generated/api/Models/AutomaticServerGroupAssociationDetails.cs

// Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.10.2, generator: @autorest/powershell@4.0.708)
// 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 AutomaticServerGroupAssociationDetails :
        Commvault.Powershell.Models.IAutomaticServerGroupAssociationDetails,
        Commvault.Powershell.Models.IAutomaticServerGroupAssociationDetailsInternal
    {

        /// <summary>Backing field for <see cref="ClientScope" /> property.</summary>
        private Commvault.Powershell.Models.IClientScopeDetails _clientScope;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IClientScopeDetails ClientScope { get => (this._clientScope = this._clientScope ?? new Commvault.Powershell.Models.ClientScopeDetails()); set => this._clientScope = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string ClientScopeType { get => ((Commvault.Powershell.Models.IClientScopeDetailsInternal)ClientScope).ClientScopeType; set => ((Commvault.Powershell.Models.IClientScopeDetailsInternal)ClientScope).ClientScopeType = value ?? null; }

        /// <summary>Internal Acessors for ClientScope</summary>
        Commvault.Powershell.Models.IClientScopeDetails Commvault.Powershell.Models.IAutomaticServerGroupAssociationDetailsInternal.ClientScope { get => (this._clientScope = this._clientScope ?? new Commvault.Powershell.Models.ClientScopeDetails()); set { {_clientScope = value;} } }

        /// <summary>Internal Acessors for ClientScopeEntityInfo</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IAutomaticServerGroupAssociationDetailsInternal.ClientScopeEntityInfo { get => ((Commvault.Powershell.Models.IClientScopeDetailsInternal)ClientScope).EntityInfo; set => ((Commvault.Powershell.Models.IClientScopeDetailsInternal)ClientScope).EntityInfo = value; }

        /// <summary>Internal Acessors for ServerGroupRule</summary>
        Commvault.Powershell.Models.IServerRuleGroups Commvault.Powershell.Models.IAutomaticServerGroupAssociationDetailsInternal.ServerGroupRule { get => (this._serverGroupRule = this._serverGroupRule ?? new Commvault.Powershell.Models.ServerRuleGroups()); set { {_serverGroupRule = value;} } }

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

        /// <summary>
        /// Confirm that server group rule impacts server of a specific company smart client group only
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? ConfirmRuleChange { get => this._confirmRuleChange; set => this._confirmRuleChange = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? EntityInfoId { get => ((Commvault.Powershell.Models.IClientScopeDetailsInternal)ClientScope).EntityInfoId; set => ((Commvault.Powershell.Models.IClientScopeDetailsInternal)ClientScope).EntityInfoId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string EntityInfoName { get => ((Commvault.Powershell.Models.IClientScopeDetailsInternal)ClientScope).EntityInfoName; set => ((Commvault.Powershell.Models.IClientScopeDetailsInternal)ClientScope).EntityInfoName = value ?? null; }

        /// <summary>Backing field for <see cref="ServerGroupRule" /> property.</summary>
        private Commvault.Powershell.Models.IServerRuleGroups _serverGroupRule;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IServerRuleGroups ServerGroupRule { get => (this._serverGroupRule = this._serverGroupRule ?? new Commvault.Powershell.Models.ServerRuleGroups()); set => this._serverGroupRule = value; }

        /// <summary>List of rule groups</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public System.Collections.Generic.List<Commvault.Powershell.Models.IServerRuleGroup> ServerGroupRuleGroup { get => ((Commvault.Powershell.Models.IServerRuleGroupsInternal)ServerGroupRule).RuleGroup; set => ((Commvault.Powershell.Models.IServerRuleGroupsInternal)ServerGroupRule).RuleGroup = value ?? null /* arrayOf */; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string ServerGroupRuleMatch { get => ((Commvault.Powershell.Models.IServerRuleGroupsInternal)ServerGroupRule).Match; set => ((Commvault.Powershell.Models.IServerRuleGroupsInternal)ServerGroupRule).Match = value ?? null; }

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

        }
    }
    public partial interface IAutomaticServerGroupAssociationDetails :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"clientScopeType",
        PossibleTypes = new [] { typeof(string) })]
        string ClientScopeType { get; set; }
        /// <summary>
        /// Confirm that server group rule impacts server of a specific company smart client group only
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Confirm that server group rule impacts server of a specific company smart client group only",
        SerializedName = @"confirmRuleChange",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ConfirmRuleChange { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string EntityInfoName { get; set; }
        /// <summary>List of rule groups</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"List of rule groups",
        SerializedName = @"ruleGroup",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IServerRuleGroup) })]
        System.Collections.Generic.List<Commvault.Powershell.Models.IServerRuleGroup> ServerGroupRuleGroup { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"match",
        PossibleTypes = new [] { typeof(string) })]
        string ServerGroupRuleMatch { get; set; }

    }
    internal partial interface IAutomaticServerGroupAssociationDetailsInternal

    {
        Commvault.Powershell.Models.IClientScopeDetails ClientScope { get; set; }

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

        string ClientScopeType { get; set; }
        /// <summary>
        /// Confirm that server group rule impacts server of a specific company smart client group only
        /// </summary>
        bool? ConfirmRuleChange { get; set; }

        long? EntityInfoId { get; set; }

        string EntityInfoName { get; set; }

        Commvault.Powershell.Models.IServerRuleGroups ServerGroupRule { get; set; }
        /// <summary>List of rule groups</summary>
        System.Collections.Generic.List<Commvault.Powershell.Models.IServerRuleGroup> ServerGroupRuleGroup { get; set; }

        string ServerGroupRuleMatch { get; set; }

    }
}