generated/api/Models/UserGroup.cs

// Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.9.4, generator: @autorest/powershell@3.0.415)
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

namespace Commvault.Powershell.Models
{
    using static Commvault.Powershell.Runtime.Extensions;

    public partial class UserGroup :
        Commvault.Powershell.Models.IUserGroup,
        Commvault.Powershell.Models.IUserGroupInternal
    {

        /// <summary>Backing field for <see cref="AllowMultipleCompanyMembers" /> property.</summary>
        private bool? _allowMultipleCompanyMembers;

        /// <summary>
        /// This property denotes that addition of users/groups from child companies is allowed. Only applicable for commcell and
        /// reseller company group.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? AllowMultipleCompanyMembers { get => this._allowMultipleCompanyMembers; set => this._allowMultipleCompanyMembers = value; }

        /// <summary>Backing field for <see cref="AssociatedEntities" /> property.</summary>
        private Commvault.Powershell.Models.IAssocEntity[] _associatedEntities;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IAssocEntity[] AssociatedEntities { get => this._associatedEntities; set => this._associatedEntities = value; }

        /// <summary>Backing field for <see cref="AssociatedExternalGroups" /> property.</summary>
        private Commvault.Powershell.Models.IIdName[] _associatedExternalGroups;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IIdName[] AssociatedExternalGroups { get => this._associatedExternalGroups; set => this._associatedExternalGroups = value; }

        /// <summary>Backing field for <see cref="AssociatedLocalGroups" /> property.</summary>
        private Commvault.Powershell.Models.IIdName[] _associatedLocalGroups;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IIdName[] AssociatedLocalGroups { get => this._associatedLocalGroups; set => this._associatedLocalGroups = value; }

        /// <summary>Backing field for <see cref="AzureGuid" /> property.</summary>
        private string _azureGuid;

        /// <summary>
        /// Azure Object ID used to link this user group to Azure AD group and manage group membership of the user during SAML login
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string AzureGuid { get => this._azureGuid; set => this._azureGuid = value; }

        /// <summary>Internal Acessors for Company</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IUserGroupInternal.Company { get => (this._company = this._company ?? new Commvault.Powershell.Models.IdName()); set { {_company = value;} } }

        /// <summary>Internal Acessors for EligibleToAllowMultipleCompanyMembers</summary>
        bool? Commvault.Powershell.Models.IUserGroupInternal.EligibleToAllowMultipleCompanyMembers { get => this._eligibleToAllowMultipleCompanyMembers; set { {_eligibleToAllowMultipleCompanyMembers = value;} } }

        /// <summary>Internal Acessors for GlobalConfigInfo</summary>
        Commvault.Powershell.Models.IGlobalConfigInfo Commvault.Powershell.Models.IUserGroupInternal.GlobalConfigInfo { get => (this._globalConfigInfo = this._globalConfigInfo ?? new Commvault.Powershell.Models.GlobalConfigInfo()); set { {_globalConfigInfo = value;} } }

        /// <summary>Internal Acessors for Plan</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IUserGroupInternal.Plan { get => (this._plan = this._plan ?? new Commvault.Powershell.Models.IdName()); set { {_plan = value;} } }

        /// <summary>Internal Acessors for ShowAzureGuidOption</summary>
        bool? Commvault.Powershell.Models.IUserGroupInternal.ShowAzureGuidOption { get => this._showAzureGuidOption; set { {_showAzureGuidOption = value;} } }

        /// <summary>Backing field for <see cref="Company" /> property.</summary>
        private Commvault.Powershell.Models.IIdName _company;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IIdName Company { get => (this._company = this._company ?? new Commvault.Powershell.Models.IdName()); set => this._company = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? CompanyId { get => ((Commvault.Powershell.Models.IIdNameInternal)Company).Id; set => ((Commvault.Powershell.Models.IIdNameInternal)Company).Id = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string CompanyName { get => ((Commvault.Powershell.Models.IIdNameInternal)Company).Name; set => ((Commvault.Powershell.Models.IIdNameInternal)Company).Name = value ?? null; }

        /// <summary>Backing field for <see cref="Description" /> property.</summary>
        private string _description;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Description { get => this._description; set => this._description = value; }

        /// <summary>Backing field for <see cref="DoNotInheritRestrictConsoleTypes" /> property.</summary>
        private bool? _doNotInheritRestrictConsoleTypes;

        /// <summary>RestrictConsoleTypes are inherited from the parent or not.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? DoNotInheritRestrictConsoleTypes { get => this._doNotInheritRestrictConsoleTypes; set => this._doNotInheritRestrictConsoleTypes = value; }

        /// <summary>
        /// Backing field for <see cref="EligibleToAllowMultipleCompanyMembers" /> property.
        /// </summary>
        private bool? _eligibleToAllowMultipleCompanyMembers;

        /// <summary>
        /// Read only property. Denotes if the group is eligible for allowMultipleCompanyMembers
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? EligibleToAllowMultipleCompanyMembers { get => this._eligibleToAllowMultipleCompanyMembers; }

        /// <summary>Backing field for <see cref="Email" /> property.</summary>
        private string _email;

        /// <summary>Returns if there is a email ID associated with the usergroup.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Email { get => this._email; set => this._email = value; }

        /// <summary>Backing field for <see cref="EnableLocalAuthentication" /> property.</summary>
        private string _enableLocalAuthentication;

        /// <summary>
        /// Allows two-factor authentication to be enabled for the specific types of usergroups. it can be turned on or off based
        /// on user preferences. There will be usergroups that will not have this option.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string EnableLocalAuthentication { get => this._enableLocalAuthentication; set => this._enableLocalAuthentication = value; }

        /// <summary>Backing field for <see cref="EnableTwoFactorAuthentication" /> property.</summary>
        private string _enableTwoFactorAuthentication;

        /// <summary>
        /// Allows two-factor authentication to be enabled for the specific types of usergroups. it can be turned on or off based
        /// on user preferences. There will be usergroups that will not have this option.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string EnableTwoFactorAuthentication { get => this._enableTwoFactorAuthentication; set => this._enableTwoFactorAuthentication = value; }

        /// <summary>Backing field for <see cref="Enabled" /> property.</summary>
        private bool? _enabled;

        /// <summary>Returns if the user group is enabled or disabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? Enabled { get => this._enabled; set => this._enabled = value; }

        /// <summary>Backing field for <see cref="EnforceFsQuota" /> property.</summary>
        private bool? _enforceFsQuota;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? EnforceFsQuota { get => this._enforceFsQuota; set => this._enforceFsQuota = value; }

        /// <summary>Backing field for <see cref="GlobalConfigInfo" /> property.</summary>
        private Commvault.Powershell.Models.IGlobalConfigInfo _globalConfigInfo;

        /// <summary>Only applicable on Global CommCells</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IGlobalConfigInfo GlobalConfigInfo { get => (this._globalConfigInfo = this._globalConfigInfo ?? new Commvault.Powershell.Models.GlobalConfigInfo()); set => this._globalConfigInfo = value; }

        /// <summary>
        /// Decides whether the global configuration should be applied to all the Service commcells, including the newly created ones
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? GlobalConfigInfoApplyOnAllCommCells { get => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).ApplyOnAllCommCells; set => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).ApplyOnAllCommCells = value ?? default(bool); }

        /// <summary>List of Service CommCells where the global configuration is applied</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IGlobalConfigCommcellInfo[] GlobalConfigInfoCommcells { get => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Commcells; set => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Commcells = value ?? null /* arrayOf */; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GlobalConfigInfoId { get => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Id; set => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Id = value ?? null; }

        /// <summary>Indicates whether global configuration deletion has been started.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? GlobalConfigInfoIsMarkedForDeletion { get => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).IsMarkedForDeletion; set => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).IsMarkedForDeletion = value ?? default(bool); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GlobalConfigInfoName { get => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Name; set => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Name = value ?? null; }

        /// <summary>The entity level at which the config is applied.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GlobalConfigInfoScope { get => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Scope; set => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Scope = value ?? null; }

        /// <summary>CommCellEntityCache filter query string used for filtering the scope</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GlobalConfigInfoScopeFilterQuery { get => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).ScopeFilterQuery; set => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).ScopeFilterQuery = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GlobalConfigInfoStatus { get => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Status; set => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Status = value ?? null; }

        /// <summary>Backing field for <see cref="Guid" /> property.</summary>
        private string _guid;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Guid { get => this._guid; set => this._guid = value; }

        /// <summary>Backing field for <see cref="Id" /> property.</summary>
        private string _id;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Id { get => this._id; set => this._id = value; }

        /// <summary>Backing field for <see cref="LaptopAdmins" /> property.</summary>
        private bool? _laptopAdmins;

        /// <summary>When set to true, users in this group cannot activate or be set as server owner</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? LaptopAdmins { get => this._laptopAdmins; set => this._laptopAdmins = value; }

        /// <summary>Backing field for <see cref="Name" /> property.</summary>
        private string _name;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Name { get => this._name; set => this._name = value; }

        /// <summary>Backing field for <see cref="Plan" /> property.</summary>
        private Commvault.Powershell.Models.IIdName _plan;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IIdName Plan { get => (this._plan = this._plan ?? new Commvault.Powershell.Models.IdName()); set => this._plan = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? PlanId { get => ((Commvault.Powershell.Models.IIdNameInternal)Plan).Id; set => ((Commvault.Powershell.Models.IIdNameInternal)Plan).Id = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PlanName { get => ((Commvault.Powershell.Models.IIdNameInternal)Plan).Name; set => ((Commvault.Powershell.Models.IIdNameInternal)Plan).Name = value ?? null; }

        /// <summary>Backing field for <see cref="QuotaLimitInGb" /> property.</summary>
        private long? _quotaLimitInGb;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? QuotaLimitInGb { get => this._quotaLimitInGb; set => this._quotaLimitInGb = value; }

        /// <summary>Backing field for <see cref="RestrictedConsoleTypes" /> property.</summary>
        private Commvault.Powershell.Models.IRestrictedConsoleTypes[] _restrictedConsoleTypes;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IRestrictedConsoleTypes[] RestrictedConsoleTypes { get => this._restrictedConsoleTypes; set => this._restrictedConsoleTypes = value; }

        /// <summary>Backing field for <see cref="ServiceType" /> property.</summary>
        private string _serviceType;

        /// <summary>
        /// The values that are returned by serviceType are- 0(unknown),1(commserver users),2(Active directory users),3(domino directory
        /// service users),4(hosted exchange users),5(company users),12(dummy domain users)
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string ServiceType { get => this._serviceType; set => this._serviceType = value; }

        /// <summary>Backing field for <see cref="ShowAzureGuidOption" /> property.</summary>
        private bool? _showAzureGuidOption;

        /// <summary>
        /// Read only property. Denotes if the group is eligible to have Azure Object ID property
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? ShowAzureGuidOption { get => this._showAzureGuidOption; }

        /// <summary>Backing field for <see cref="Users" /> property.</summary>
        private Commvault.Powershell.Models.IIdName[] _users;

        /// <summary>Returns list of users that are associated with this userGroup</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IIdName[] Users { get => this._users; set => this._users = value; }

        /// <summary>Creates an new <see cref="UserGroup" /> instance.</summary>
        public UserGroup()
        {

        }
    }
    public partial interface IUserGroup :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>
        /// This property denotes that addition of users/groups from child companies is allowed. Only applicable for commcell and
        /// reseller company group.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"This property denotes that addition of users/groups from child companies is allowed. Only applicable for commcell and reseller company group.",
        SerializedName = @"allowMultipleCompanyMembers",
        PossibleTypes = new [] { typeof(bool) })]
        bool? AllowMultipleCompanyMembers { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"associatedEntities",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IAssocEntity) })]
        Commvault.Powershell.Models.IAssocEntity[] AssociatedEntities { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"associatedExternalGroups",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdName) })]
        Commvault.Powershell.Models.IIdName[] AssociatedExternalGroups { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"associatedLocalGroups",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdName) })]
        Commvault.Powershell.Models.IIdName[] AssociatedLocalGroups { get; set; }
        /// <summary>
        /// Azure Object ID used to link this user group to Azure AD group and manage group membership of the user during SAML login
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Azure Object ID used to link this user group to Azure AD group and manage group membership of the user during SAML login",
        SerializedName = @"azureGUID",
        PossibleTypes = new [] { typeof(string) })]
        string AzureGuid { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? CompanyId { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string CompanyName { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"description",
        PossibleTypes = new [] { typeof(string) })]
        string Description { get; set; }
        /// <summary>RestrictConsoleTypes are inherited from the parent or not.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"RestrictConsoleTypes are inherited from the parent or not.",
        SerializedName = @"doNotInheritRestrictConsoleTypes",
        PossibleTypes = new [] { typeof(bool) })]
        bool? DoNotInheritRestrictConsoleTypes { get; set; }
        /// <summary>
        /// Read only property. Denotes if the group is eligible for allowMultipleCompanyMembers
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = true,
        Description = @"Read only property. Denotes if the group is eligible for allowMultipleCompanyMembers",
        SerializedName = @"eligibleToAllowMultipleCompanyMembers",
        PossibleTypes = new [] { typeof(bool) })]
        bool? EligibleToAllowMultipleCompanyMembers { get; }
        /// <summary>Returns if there is a email ID associated with the usergroup.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Returns if there is a email ID associated with the usergroup.",
        SerializedName = @"email",
        PossibleTypes = new [] { typeof(string) })]
        string Email { get; set; }
        /// <summary>
        /// Allows two-factor authentication to be enabled for the specific types of usergroups. it can be turned on or off based
        /// on user preferences. There will be usergroups that will not have this option.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Allows two-factor authentication to be enabled for the specific types of usergroups. it can be turned on or off based on user preferences. There will be usergroups that will not have this option.",
        SerializedName = @"enableLocalAuthentication",
        PossibleTypes = new [] { typeof(string) })]
        string EnableLocalAuthentication { get; set; }
        /// <summary>
        /// Allows two-factor authentication to be enabled for the specific types of usergroups. it can be turned on or off based
        /// on user preferences. There will be usergroups that will not have this option.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Allows two-factor authentication to be enabled for the specific types of usergroups. it can be turned on or off based on user preferences. There will be usergroups that will not have this option.",
        SerializedName = @"enableTwoFactorAuthentication",
        PossibleTypes = new [] { typeof(string) })]
        string EnableTwoFactorAuthentication { get; set; }
        /// <summary>Returns if the user group is enabled or disabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Returns if the user group is enabled or disabled",
        SerializedName = @"enabled",
        PossibleTypes = new [] { typeof(bool) })]
        bool? Enabled { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"enforceFSQuota",
        PossibleTypes = new [] { typeof(bool) })]
        bool? EnforceFsQuota { get; set; }
        /// <summary>
        /// Decides whether the global configuration should be applied to all the Service commcells, including the newly created ones
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Decides whether the global configuration should be applied to all the Service commcells, including the newly created ones",
        SerializedName = @"applyOnAllCommCells",
        PossibleTypes = new [] { typeof(bool) })]
        bool? GlobalConfigInfoApplyOnAllCommCells { get; set; }
        /// <summary>List of Service CommCells where the global configuration is applied</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"List of Service CommCells where the global configuration is applied",
        SerializedName = @"commcells",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IGlobalConfigCommcellInfo) })]
        Commvault.Powershell.Models.IGlobalConfigCommcellInfo[] GlobalConfigInfoCommcells { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(string) })]
        string GlobalConfigInfoId { get; set; }
        /// <summary>Indicates whether global configuration deletion has been started.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Indicates whether global configuration deletion has been started.",
        SerializedName = @"isMarkedForDeletion",
        PossibleTypes = new [] { typeof(bool) })]
        bool? GlobalConfigInfoIsMarkedForDeletion { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string GlobalConfigInfoName { get; set; }
        /// <summary>The entity level at which the config is applied.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The entity level at which the config is applied.",
        SerializedName = @"scope",
        PossibleTypes = new [] { typeof(string) })]
        string GlobalConfigInfoScope { get; set; }
        /// <summary>CommCellEntityCache filter query string used for filtering the scope</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"CommCellEntityCache filter query string used for filtering the scope",
        SerializedName = @"scopeFilterQuery",
        PossibleTypes = new [] { typeof(string) })]
        string GlobalConfigInfoScopeFilterQuery { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"status",
        PossibleTypes = new [] { typeof(string) })]
        string GlobalConfigInfoStatus { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"GUID",
        PossibleTypes = new [] { typeof(string) })]
        string Guid { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(string) })]
        string Id { get; set; }
        /// <summary>When set to true, users in this group cannot activate or be set as server owner</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"When set to true, users in this group cannot activate or be set as server owner",
        SerializedName = @"laptopAdmins",
        PossibleTypes = new [] { typeof(bool) })]
        bool? LaptopAdmins { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string Name { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? PlanId { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PlanName { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"quotaLimitInGB",
        PossibleTypes = new [] { typeof(long) })]
        long? QuotaLimitInGb { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"restrictedConsoleTypes",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IRestrictedConsoleTypes) })]
        Commvault.Powershell.Models.IRestrictedConsoleTypes[] RestrictedConsoleTypes { get; set; }
        /// <summary>
        /// The values that are returned by serviceType are- 0(unknown),1(commserver users),2(Active directory users),3(domino directory
        /// service users),4(hosted exchange users),5(company users),12(dummy domain users)
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The values that are returned by serviceType are- 0(unknown),1(commserver users),2(Active directory users),3(domino directory service users),4(hosted exchange users),5(company users),12(dummy domain users)",
        SerializedName = @"serviceType",
        PossibleTypes = new [] { typeof(string) })]
        string ServiceType { get; set; }
        /// <summary>
        /// Read only property. Denotes if the group is eligible to have Azure Object ID property
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = true,
        Description = @"Read only property. Denotes if the group is eligible to have Azure Object ID property",
        SerializedName = @"showAzureGuidOption",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ShowAzureGuidOption { get; }
        /// <summary>Returns list of users that are associated with this userGroup</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Returns list of users that are associated with this userGroup",
        SerializedName = @"users",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdName) })]
        Commvault.Powershell.Models.IIdName[] Users { get; set; }

    }
    internal partial interface IUserGroupInternal

    {
        /// <summary>
        /// This property denotes that addition of users/groups from child companies is allowed. Only applicable for commcell and
        /// reseller company group.
        /// </summary>
        bool? AllowMultipleCompanyMembers { get; set; }

        Commvault.Powershell.Models.IAssocEntity[] AssociatedEntities { get; set; }

        Commvault.Powershell.Models.IIdName[] AssociatedExternalGroups { get; set; }

        Commvault.Powershell.Models.IIdName[] AssociatedLocalGroups { get; set; }
        /// <summary>
        /// Azure Object ID used to link this user group to Azure AD group and manage group membership of the user during SAML login
        /// </summary>
        string AzureGuid { get; set; }

        Commvault.Powershell.Models.IIdName Company { get; set; }

        long? CompanyId { get; set; }

        string CompanyName { get; set; }

        string Description { get; set; }
        /// <summary>RestrictConsoleTypes are inherited from the parent or not.</summary>
        bool? DoNotInheritRestrictConsoleTypes { get; set; }
        /// <summary>
        /// Read only property. Denotes if the group is eligible for allowMultipleCompanyMembers
        /// </summary>
        bool? EligibleToAllowMultipleCompanyMembers { get; set; }
        /// <summary>Returns if there is a email ID associated with the usergroup.</summary>
        string Email { get; set; }
        /// <summary>
        /// Allows two-factor authentication to be enabled for the specific types of usergroups. it can be turned on or off based
        /// on user preferences. There will be usergroups that will not have this option.
        /// </summary>
        string EnableLocalAuthentication { get; set; }
        /// <summary>
        /// Allows two-factor authentication to be enabled for the specific types of usergroups. it can be turned on or off based
        /// on user preferences. There will be usergroups that will not have this option.
        /// </summary>
        string EnableTwoFactorAuthentication { get; set; }
        /// <summary>Returns if the user group is enabled or disabled</summary>
        bool? Enabled { get; set; }

        bool? EnforceFsQuota { get; set; }
        /// <summary>Only applicable on Global CommCells</summary>
        Commvault.Powershell.Models.IGlobalConfigInfo GlobalConfigInfo { get; set; }
        /// <summary>
        /// Decides whether the global configuration should be applied to all the Service commcells, including the newly created ones
        /// </summary>
        bool? GlobalConfigInfoApplyOnAllCommCells { get; set; }
        /// <summary>List of Service CommCells where the global configuration is applied</summary>
        Commvault.Powershell.Models.IGlobalConfigCommcellInfo[] GlobalConfigInfoCommcells { get; set; }

        string GlobalConfigInfoId { get; set; }
        /// <summary>Indicates whether global configuration deletion has been started.</summary>
        bool? GlobalConfigInfoIsMarkedForDeletion { get; set; }

        string GlobalConfigInfoName { get; set; }
        /// <summary>The entity level at which the config is applied.</summary>
        string GlobalConfigInfoScope { get; set; }
        /// <summary>CommCellEntityCache filter query string used for filtering the scope</summary>
        string GlobalConfigInfoScopeFilterQuery { get; set; }

        string GlobalConfigInfoStatus { get; set; }

        string Guid { get; set; }

        string Id { get; set; }
        /// <summary>When set to true, users in this group cannot activate or be set as server owner</summary>
        bool? LaptopAdmins { get; set; }

        string Name { get; set; }

        Commvault.Powershell.Models.IIdName Plan { get; set; }

        long? PlanId { get; set; }

        string PlanName { get; set; }

        long? QuotaLimitInGb { get; set; }

        Commvault.Powershell.Models.IRestrictedConsoleTypes[] RestrictedConsoleTypes { get; set; }
        /// <summary>
        /// The values that are returned by serviceType are- 0(unknown),1(commserver users),2(Active directory users),3(domino directory
        /// service users),4(hosted exchange users),5(company users),12(dummy domain users)
        /// </summary>
        string ServiceType { get; set; }
        /// <summary>
        /// Read only property. Denotes if the group is eligible to have Azure Object ID property
        /// </summary>
        bool? ShowAzureGuidOption { get; set; }
        /// <summary>Returns list of users that are associated with this userGroup</summary>
        Commvault.Powershell.Models.IIdName[] Users { get; set; }

    }
}