//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.1433
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace MemoQServicesClient.SecurityService
{
    using System.Runtime.Serialization;
    using System;

    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="UserInfo", Namespace="http://kilgray.com/memoqservices/2007")]
    [System.SerializableAttribute()]
    public partial class UserInfo : object, System.Runtime.Serialization.IExtensibleDataObject
    {

        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string AddressField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string EmailAddressField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string FullNameField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private bool IsDisabledField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string MobilePhoneNumberField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string PasswordField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string PhoneNumberField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Guid UserGuidField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string UserNameField;

        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
        {
            get
            {
                return this.extensionDataField;
            }
            set
            {
                this.extensionDataField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Address
        {
            get
            {
                return this.AddressField;
            }
            set
            {
                this.AddressField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string EmailAddress
        {
            get
            {
                return this.EmailAddressField;
            }
            set
            {
                this.EmailAddressField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string FullName
        {
            get
            {
                return this.FullNameField;
            }
            set
            {
                this.FullNameField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool IsDisabled
        {
            get
            {
                return this.IsDisabledField;
            }
            set
            {
                this.IsDisabledField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string MobilePhoneNumber
        {
            get
            {
                return this.MobilePhoneNumberField;
            }
            set
            {
                this.MobilePhoneNumberField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Password
        {
            get
            {
                return this.PasswordField;
            }
            set
            {
                this.PasswordField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string PhoneNumber
        {
            get
            {
                return this.PhoneNumberField;
            }
            set
            {
                this.PhoneNumberField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Guid UserGuid
        {
            get
            {
                return this.UserGuidField;
            }
            set
            {
                this.UserGuidField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string UserName
        {
            get
            {
                return this.UserNameField;
            }
            set
            {
                this.UserNameField = value;
            }
        }
    }

    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="GroupInfo", Namespace="http://kilgray.com/memoqservices/2007")]
    [System.SerializableAttribute()]
    public partial class GroupInfo : object, System.Runtime.Serialization.IExtensibleDataObject
    {

        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string DescriptionField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Guid GroupGuidField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string GroupNameField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private bool IsDisabledField;

        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
        {
            get
            {
                return this.extensionDataField;
            }
            set
            {
                this.extensionDataField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Description
        {
            get
            {
                return this.DescriptionField;
            }
            set
            {
                this.DescriptionField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Guid GroupGuid
        {
            get
            {
                return this.GroupGuidField;
            }
            set
            {
                this.GroupGuidField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string GroupName
        {
            get
            {
                return this.GroupNameField;
            }
            set
            {
                this.GroupNameField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool IsDisabled
        {
            get
            {
                return this.IsDisabledField;
            }
            set
            {
                this.IsDisabledField = value;
            }
        }
    }

    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ObjectPermission", Namespace="http://kilgray.com/memoqservices/2007")]
    [System.SerializableAttribute()]
    public partial class ObjectPermission : object, System.Runtime.Serialization.IExtensibleDataObject
    {

        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.DateTime ExpirationDateField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Guid GuidOfUserOrGroupField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private int PermissionIdField;

        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
        {
            get
            {
                return this.extensionDataField;
            }
            set
            {
                this.extensionDataField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.DateTime ExpirationDate
        {
            get
            {
                return this.ExpirationDateField;
            }
            set
            {
                this.ExpirationDateField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Guid GuidOfUserOrGroup
        {
            get
            {
                return this.GuidOfUserOrGroupField;
            }
            set
            {
                this.GuidOfUserOrGroupField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public int PermissionId
        {
            get
            {
                return this.PermissionIdField;
            }
            set
            {
                this.PermissionIdField = value;
            }
        }
    }

    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(Namespace="http://kilgray.com/memoqservices/2007", ConfigurationName="MemoQServicesClient.SecurityService.ISecurityService")]
    public interface ISecurityService
    {

        [System.ServiceModel.OperationContractAttribute(Action="http://kilgray.com/memoqservices/2007/ISecurityService/ListUsers", ReplyAction="http://kilgray.com/memoqservices/2007/ISecurityService/ListUsersResponse")]
        MemoQServicesClient.SecurityService.UserInfo[] ListUsers();

        [System.ServiceModel.OperationContractAttribute(Action="http://kilgray.com/memoqservices/2007/ISecurityService/GetUser", ReplyAction="http://kilgray.com/memoqservices/2007/ISecurityService/GetUserResponse")]
        MemoQServicesClient.SecurityService.UserInfo GetUser(System.Guid userGuid);

        [System.ServiceModel.OperationContractAttribute(Action="http://kilgray.com/memoqservices/2007/ISecurityService/CreateUser", ReplyAction="http://kilgray.com/memoqservices/2007/ISecurityService/CreateUserResponse")]
        System.Guid CreateUser(MemoQServicesClient.SecurityService.UserInfo userInfo);

        [System.ServiceModel.OperationContractAttribute(Action="http://kilgray.com/memoqservices/2007/ISecurityService/UpdateUser", ReplyAction="http://kilgray.com/memoqservices/2007/ISecurityService/UpdateUserResponse")]
        void UpdateUser(MemoQServicesClient.SecurityService.UserInfo userInfo);

        [System.ServiceModel.OperationContractAttribute(Action="http://kilgray.com/memoqservices/2007/ISecurityService/DeleteUser", ReplyAction="http://kilgray.com/memoqservices/2007/ISecurityService/DeleteUserResponse")]
        void DeleteUser(System.Guid userGuid);

        [System.ServiceModel.OperationContractAttribute(Action="http://kilgray.com/memoqservices/2007/ISecurityService/ListGroupsOfUser", ReplyAction="http://kilgray.com/memoqservices/2007/ISecurityService/ListGroupsOfUserResponse")]
        MemoQServicesClient.SecurityService.GroupInfo[] ListGroupsOfUser(System.Guid userGuid);

        [System.ServiceModel.OperationContractAttribute(Action="http://kilgray.com/memoqservices/2007/ISecurityService/SetGroupsOfUser", ReplyAction="http://kilgray.com/memoqservices/2007/ISecurityService/SetGroupsOfUserResponse")]
        void SetGroupsOfUser(System.Guid userGuid, System.Guid[] groupGuids);

        [System.ServiceModel.OperationContractAttribute(Action="http://kilgray.com/memoqservices/2007/ISecurityService/ListGroups", ReplyAction="http://kilgray.com/memoqservices/2007/ISecurityService/ListGroupsResponse")]
        MemoQServicesClient.SecurityService.GroupInfo[] ListGroups();

        [System.ServiceModel.OperationContractAttribute(Action="http://kilgray.com/memoqservices/2007/ISecurityService/GetGroup", ReplyAction="http://kilgray.com/memoqservices/2007/ISecurityService/GetGroupResponse")]
        MemoQServicesClient.SecurityService.GroupInfo GetGroup(System.Guid groupGuid);

        [System.ServiceModel.OperationContractAttribute(Action="http://kilgray.com/memoqservices/2007/ISecurityService/CreateGroup", ReplyAction="http://kilgray.com/memoqservices/2007/ISecurityService/CreateGroupResponse")]
        System.Guid CreateGroup(MemoQServicesClient.SecurityService.GroupInfo groupInfo);

        [System.ServiceModel.OperationContractAttribute(Action="http://kilgray.com/memoqservices/2007/ISecurityService/UpdateGroup", ReplyAction="http://kilgray.com/memoqservices/2007/ISecurityService/UpdateGroupResponse")]
        void UpdateGroup(MemoQServicesClient.SecurityService.GroupInfo groupInfo);

        [System.ServiceModel.OperationContractAttribute(Action="http://kilgray.com/memoqservices/2007/ISecurityService/DeleteGroup", ReplyAction="http://kilgray.com/memoqservices/2007/ISecurityService/DeleteGroupResponse")]
        void DeleteGroup(System.Guid groupGuid);

        [System.ServiceModel.OperationContractAttribute(Action="http://kilgray.com/memoqservices/2007/ISecurityService/ListUsersOfGroup", ReplyAction="http://kilgray.com/memoqservices/2007/ISecurityService/ListUsersOfGroupResponse")]
        MemoQServicesClient.SecurityService.UserInfo[] ListUsersOfGroup(System.Guid groupGuid);

        [System.ServiceModel.OperationContractAttribute(Action="http://kilgray.com/memoqservices/2007/ISecurityService/SetUsersOfGroup", ReplyAction="http://kilgray.com/memoqservices/2007/ISecurityService/SetUsersOfGroupResponse")]
        void SetUsersOfGroup(System.Guid groupGuid, System.Guid[] userGuids);

        [System.ServiceModel.OperationContractAttribute(Action="http://kilgray.com/memoqservices/2007/ISecurityService/SetObjectPermissions", ReplyAction="http://kilgray.com/memoqservices/2007/ISecurityService/SetObjectPermissionsRespon" +
            "se")]
        void SetObjectPermissions(System.Guid objectGuid, MemoQServicesClient.SecurityService.ObjectPermission[] permissions);

        [System.ServiceModel.OperationContractAttribute(Action="http://kilgray.com/memoqservices/2007/ISecurityService/ListObjectPermissions", ReplyAction="http://kilgray.com/memoqservices/2007/ISecurityService/ListObjectPermissionsRespo" +
            "nse")]
        MemoQServicesClient.SecurityService.ObjectPermission[] ListObjectPermissions(System.Guid objectGuid);
    }

    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    public interface ISecurityServiceChannel : MemoQServicesClient.SecurityService.ISecurityService, System.ServiceModel.IClientChannel
    {
    }

    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    public partial class SecurityServiceClient : System.ServiceModel.ClientBase<MemoQServicesClient.SecurityService.ISecurityService>, MemoQServicesClient.SecurityService.ISecurityService
    {

        public SecurityServiceClient()
        {
        }

        public SecurityServiceClient(string endpointConfigurationName) :
                base(endpointConfigurationName)
        {
        }

        public SecurityServiceClient(string endpointConfigurationName, string remoteAddress) :
                base(endpointConfigurationName, remoteAddress)
        {
        }

        public SecurityServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
                base(endpointConfigurationName, remoteAddress)
        {
        }

        public SecurityServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
                base(binding, remoteAddress)
        {
        }

        public MemoQServicesClient.SecurityService.UserInfo[] ListUsers()
        {
            return base.Channel.ListUsers();
        }

        public MemoQServicesClient.SecurityService.UserInfo GetUser(System.Guid userGuid)
        {
            return base.Channel.GetUser(userGuid);
        }

        public System.Guid CreateUser(MemoQServicesClient.SecurityService.UserInfo userInfo)
        {
            return base.Channel.CreateUser(userInfo);
        }

        public void UpdateUser(MemoQServicesClient.SecurityService.UserInfo userInfo)
        {
            base.Channel.UpdateUser(userInfo);
        }

        public void DeleteUser(System.Guid userGuid)
        {
            base.Channel.DeleteUser(userGuid);
        }

        public MemoQServicesClient.SecurityService.GroupInfo[] ListGroupsOfUser(System.Guid userGuid)
        {
            return base.Channel.ListGroupsOfUser(userGuid);
        }

        public void SetGroupsOfUser(System.Guid userGuid, System.Guid[] groupGuids)
        {
            base.Channel.SetGroupsOfUser(userGuid, groupGuids);
        }

        public MemoQServicesClient.SecurityService.GroupInfo[] ListGroups()
        {
            return base.Channel.ListGroups();
        }

        public MemoQServicesClient.SecurityService.GroupInfo GetGroup(System.Guid groupGuid)
        {
            return base.Channel.GetGroup(groupGuid);
        }

        public System.Guid CreateGroup(MemoQServicesClient.SecurityService.GroupInfo groupInfo)
        {
            return base.Channel.CreateGroup(groupInfo);
        }

        public void UpdateGroup(MemoQServicesClient.SecurityService.GroupInfo groupInfo)
        {
            base.Channel.UpdateGroup(groupInfo);
        }

        public void DeleteGroup(System.Guid groupGuid)
        {
            base.Channel.DeleteGroup(groupGuid);
        }

        public MemoQServicesClient.SecurityService.UserInfo[] ListUsersOfGroup(System.Guid groupGuid)
        {
            return base.Channel.ListUsersOfGroup(groupGuid);
        }

        public void SetUsersOfGroup(System.Guid groupGuid, System.Guid[] userGuids)
        {
            base.Channel.SetUsersOfGroup(groupGuid, userGuids);
        }

        public void SetObjectPermissions(System.Guid objectGuid, MemoQServicesClient.SecurityService.ObjectPermission[] permissions)
        {
            base.Channel.SetObjectPermissions(objectGuid, permissions);
        }

        public MemoQServicesClient.SecurityService.ObjectPermission[] ListObjectPermissions(System.Guid objectGuid)
        {
            return base.Channel.ListObjectPermissions(objectGuid);
        }
    }
}
