generated/api/Models/General.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 General :
        Commvault.Powershell.Models.IGeneral,
        Commvault.Powershell.Models.IGeneralInternal
    {

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

        /// <summary>
        /// Used to assign owners to laptops automatically after installation. The owners can be all the logged in active directory
        /// users, the first user to login into the laptop after installation or the users belonging to the laptop's local user group
        /// list. The option to assign automatically can also be disabled.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string AssignLaptopOwners { get => this._assignLaptopOwners; set => this._assignLaptopOwners = value; }

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

        /// <summary>Enable or disable authcode for installation.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? AuthcodeForInstallation { get => this._authcodeForInstallation; set => this._authcodeForInstallation = value; }

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

        /// <summary>
        /// Enable or Disable Auto Discover Applications.When Auto discover applications is enabled, each member server of this company
        /// is searched once every 24 hours to discover any applications that need to be backed up. For any newly-discovered and unprotected
        /// applications, the agent software is automatically installed on the server.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? AutoDiscoverApp { get => this._autoDiscoverApp; set => this._autoDiscoverApp = value; }

        /// <summary>Internal Acessors for TwoFactorAuth</summary>
        Commvault.Powershell.Models.ITwoFactorAuth Commvault.Powershell.Models.IGeneralInternal.TwoFactorAuth { get => (this._twoFactorAuth = this._twoFactorAuth ?? new Commvault.Powershell.Models.TwoFactorAuth()); set { {_twoFactorAuth = value;} } }

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

        /// <summary>Supported domains for the company</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string EmailSuffix { get => this._emailSuffix; set => this._emailSuffix = value; }

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

        /// <summary>Enable or disable data encryption</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? EnableDataEncryption { get => this._enableDataEncryption; set => this._enableDataEncryption = value; }

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

        /// <summary>
        /// These are different types of infrastructure provided for storage in companies. It can be rented from the provider, owned
        /// or can be a hybrid. Cannot move back to rented storage from owned storage and cannot move back to rented storage/owned
        /// storage from rented and owned storage.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string InfrastructureType { get => this._infrastructureType; set => this._infrastructureType = value; }

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

        /// <summary>The company domain or NetBIOS name</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string NewAlias { get => this._newAlias; set => this._newAlias = value; }

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

        /// <summary>
        /// Enable reseller mode. A reseller is a user or user groups who can operate multiple tenant environments. The service provider
        /// can assign one or more resellers as the tenant operator for a company. The reseller can switch to any of their assigned
        /// tenant environment and operate on the company as a tenant user. Once enabled, the reseller mode cannot be disabled.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? ResellerMode { get => this._resellerMode; set => this._resellerMode = value; }

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

        /// <summary>Service commcells associated with the master commcell.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IIdName[] ServiceCommcells { get => this._serviceCommcells; set => this._serviceCommcells = value; }

        /// <summary>Backing field for <see cref="SupportedSolutions" /> property.</summary>
        private string[] _supportedSolutions;

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

        /// <summary>Backing field for <see cref="TwoFactorAuth" /> property.</summary>
        private Commvault.Powershell.Models.ITwoFactorAuth _twoFactorAuth;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.ITwoFactorAuth TwoFactorAuth { get => (this._twoFactorAuth = this._twoFactorAuth ?? new Commvault.Powershell.Models.TwoFactorAuth()); set => this._twoFactorAuth = value; }

        /// <summary>
        /// enable two factor authentication for every entity. if set to false when Two factor authentication is enabled, provide
        /// userGroupId or userGroupName. If both are provided, userGroupId is taken
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? TwoFactorAuthAll { get => ((Commvault.Powershell.Models.ITwoFactorAuthInternal)TwoFactorAuth).All; set => ((Commvault.Powershell.Models.ITwoFactorAuthInternal)TwoFactorAuth).All = value ?? default(bool); }

        /// <summary>
        /// enable or disable two factor authentication. if enabled, all or userGroups value should be provided.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? TwoFactorAuthEnable { get => ((Commvault.Powershell.Models.ITwoFactorAuthInternal)TwoFactorAuth).Enable; set => ((Commvault.Powershell.Models.ITwoFactorAuthInternal)TwoFactorAuth).Enable = value ?? default(bool); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IIdName[] TwoFactorAuthUserGroups { get => ((Commvault.Powershell.Models.ITwoFactorAuthInternal)TwoFactorAuth).UserGroups; set => ((Commvault.Powershell.Models.ITwoFactorAuthInternal)TwoFactorAuth).UserGroups = value ?? null /* arrayOf */; }

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

        /// <summary>Enable or disable the use of User Pricipal Name in place of an email address.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? UpnInsteadOfEmail { get => this._upnInsteadOfEmail; set => this._upnInsteadOfEmail = value; }

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

        }
    }
    public partial interface IGeneral :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>
        /// Used to assign owners to laptops automatically after installation. The owners can be all the logged in active directory
        /// users, the first user to login into the laptop after installation or the users belonging to the laptop's local user group
        /// list. The option to assign automatically can also be disabled.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Used to assign owners to laptops automatically after installation. The owners can be all the logged in active directory users, the first user to login into the laptop after installation or the users belonging to the laptop's local user group list. The option to assign automatically can also be disabled.",
        SerializedName = @"assignLaptopOwners",
        PossibleTypes = new [] { typeof(string) })]
        string AssignLaptopOwners { get; set; }
        /// <summary>Enable or disable authcode for installation.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Enable or disable authcode for installation.",
        SerializedName = @"authcodeForInstallation",
        PossibleTypes = new [] { typeof(bool) })]
        bool? AuthcodeForInstallation { get; set; }
        /// <summary>
        /// Enable or Disable Auto Discover Applications.When Auto discover applications is enabled, each member server of this company
        /// is searched once every 24 hours to discover any applications that need to be backed up. For any newly-discovered and unprotected
        /// applications, the agent software is automatically installed on the server.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Enable or Disable Auto Discover Applications.When Auto discover applications is enabled, each member server of this company is searched once every 24 hours to discover any applications that need to be backed up. For any newly-discovered and unprotected applications, the agent software is automatically installed on the server.",
        SerializedName = @"autoDiscoverApp",
        PossibleTypes = new [] { typeof(bool) })]
        bool? AutoDiscoverApp { get; set; }
        /// <summary>Supported domains for the company</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Supported domains for the company",
        SerializedName = @"emailSuffix",
        PossibleTypes = new [] { typeof(string) })]
        string EmailSuffix { get; set; }
        /// <summary>Enable or disable data encryption</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Enable or disable data encryption",
        SerializedName = @"enableDataEncryption",
        PossibleTypes = new [] { typeof(bool) })]
        bool? EnableDataEncryption { get; set; }
        /// <summary>
        /// These are different types of infrastructure provided for storage in companies. It can be rented from the provider, owned
        /// or can be a hybrid. Cannot move back to rented storage from owned storage and cannot move back to rented storage/owned
        /// storage from rented and owned storage.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"These are different types of infrastructure provided for storage in companies. It can be rented from the provider, owned or can be a hybrid. Cannot move back to rented storage from owned storage and cannot move back to rented storage/owned storage from rented and owned storage.",
        SerializedName = @"infrastructureType",
        PossibleTypes = new [] { typeof(string) })]
        string InfrastructureType { get; set; }
        /// <summary>The company domain or NetBIOS name</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The company domain or NetBIOS name",
        SerializedName = @"newAlias",
        PossibleTypes = new [] { typeof(string) })]
        string NewAlias { get; set; }
        /// <summary>
        /// Enable reseller mode. A reseller is a user or user groups who can operate multiple tenant environments. The service provider
        /// can assign one or more resellers as the tenant operator for a company. The reseller can switch to any of their assigned
        /// tenant environment and operate on the company as a tenant user. Once enabled, the reseller mode cannot be disabled.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Enable reseller mode. A reseller is a user or user groups who can operate multiple tenant environments. The service provider can assign one or more resellers as the tenant operator for a company. The reseller can switch to any of their assigned tenant environment and operate on the company as a tenant user. Once enabled, the reseller mode cannot be disabled.",
        SerializedName = @"resellerMode",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ResellerMode { get; set; }
        /// <summary>Service commcells associated with the master commcell.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Service commcells associated with the master commcell.",
        SerializedName = @"serviceCommcells",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdName) })]
        Commvault.Powershell.Models.IIdName[] ServiceCommcells { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"supportedSolutions",
        PossibleTypes = new [] { typeof(string) })]
        string[] SupportedSolutions { get; set; }
        /// <summary>
        /// enable two factor authentication for every entity. if set to false when Two factor authentication is enabled, provide
        /// userGroupId or userGroupName. If both are provided, userGroupId is taken
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"enable two factor authentication for every entity. if set to false when Two factor authentication is enabled, provide userGroupId or userGroupName. If both are provided, userGroupId is taken",
        SerializedName = @"all",
        PossibleTypes = new [] { typeof(bool) })]
        bool? TwoFactorAuthAll { get; set; }
        /// <summary>
        /// enable or disable two factor authentication. if enabled, all or userGroups value should be provided.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"enable or disable two factor authentication. if enabled, all or userGroups value should be provided.",
        SerializedName = @"enable",
        PossibleTypes = new [] { typeof(bool) })]
        bool? TwoFactorAuthEnable { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"userGroups",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdName) })]
        Commvault.Powershell.Models.IIdName[] TwoFactorAuthUserGroups { get; set; }
        /// <summary>Enable or disable the use of User Pricipal Name in place of an email address.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Enable or disable the use of User Pricipal Name in place of an email address.",
        SerializedName = @"upnInsteadOfEmail",
        PossibleTypes = new [] { typeof(bool) })]
        bool? UpnInsteadOfEmail { get; set; }

    }
    internal partial interface IGeneralInternal

    {
        /// <summary>
        /// Used to assign owners to laptops automatically after installation. The owners can be all the logged in active directory
        /// users, the first user to login into the laptop after installation or the users belonging to the laptop's local user group
        /// list. The option to assign automatically can also be disabled.
        /// </summary>
        string AssignLaptopOwners { get; set; }
        /// <summary>Enable or disable authcode for installation.</summary>
        bool? AuthcodeForInstallation { get; set; }
        /// <summary>
        /// Enable or Disable Auto Discover Applications.When Auto discover applications is enabled, each member server of this company
        /// is searched once every 24 hours to discover any applications that need to be backed up. For any newly-discovered and unprotected
        /// applications, the agent software is automatically installed on the server.
        /// </summary>
        bool? AutoDiscoverApp { get; set; }
        /// <summary>Supported domains for the company</summary>
        string EmailSuffix { get; set; }
        /// <summary>Enable or disable data encryption</summary>
        bool? EnableDataEncryption { get; set; }
        /// <summary>
        /// These are different types of infrastructure provided for storage in companies. It can be rented from the provider, owned
        /// or can be a hybrid. Cannot move back to rented storage from owned storage and cannot move back to rented storage/owned
        /// storage from rented and owned storage.
        /// </summary>
        string InfrastructureType { get; set; }
        /// <summary>The company domain or NetBIOS name</summary>
        string NewAlias { get; set; }
        /// <summary>
        /// Enable reseller mode. A reseller is a user or user groups who can operate multiple tenant environments. The service provider
        /// can assign one or more resellers as the tenant operator for a company. The reseller can switch to any of their assigned
        /// tenant environment and operate on the company as a tenant user. Once enabled, the reseller mode cannot be disabled.
        /// </summary>
        bool? ResellerMode { get; set; }
        /// <summary>Service commcells associated with the master commcell.</summary>
        Commvault.Powershell.Models.IIdName[] ServiceCommcells { get; set; }

        string[] SupportedSolutions { get; set; }

        Commvault.Powershell.Models.ITwoFactorAuth TwoFactorAuth { get; set; }
        /// <summary>
        /// enable two factor authentication for every entity. if set to false when Two factor authentication is enabled, provide
        /// userGroupId or userGroupName. If both are provided, userGroupId is taken
        /// </summary>
        bool? TwoFactorAuthAll { get; set; }
        /// <summary>
        /// enable or disable two factor authentication. if enabled, all or userGroups value should be provided.
        /// </summary>
        bool? TwoFactorAuthEnable { get; set; }

        Commvault.Powershell.Models.IIdName[] TwoFactorAuthUserGroups { get; set; }
        /// <summary>Enable or disable the use of User Pricipal Name in place of an email address.</summary>
        bool? UpnInsteadOfEmail { get; set; }

    }
}