generated/api/Models/GetClusterDetailsResp.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;

    /// <summary>Details of a Kubernetes Cluster</summary>
    public partial class GetClusterDetailsResp :
        Commvault.Powershell.Models.IGetClusterDetailsResp,
        Commvault.Powershell.Models.IGetClusterDetailsRespInternal,
        Commvault.Powershell.Runtime.IValidates
    {
        /// <summary>
        /// Backing field for Inherited model <see cref= "Commvault.Powershell.Models.IIdNameDisplayName" />
        /// </summary>
        private Commvault.Powershell.Models.IIdNameDisplayName __idNameDisplayName = new Commvault.Powershell.Models.IdNameDisplayName();

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

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

        /// <summary>Backing field for <see cref="ActivityControl" /> property.</summary>
        private Commvault.Powershell.Models.IClusterActivityControlOptions _activityControl;

        /// <summary>Activity Control Options for Kubernetes Cluster</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IClusterActivityControlOptions ActivityControl { get => (this._activityControl = this._activityControl ?? new Commvault.Powershell.Models.ClusterActivityControlOptions()); set => this._activityControl = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? ActivityControlEnableBackup { get => ((Commvault.Powershell.Models.IClusterActivityControlOptionsInternal)ActivityControl).EnableBackup; set => ((Commvault.Powershell.Models.IClusterActivityControlOptionsInternal)ActivityControl).EnableBackup = value ?? default(bool); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? ActivityControlEnableRestore { get => ((Commvault.Powershell.Models.IClusterActivityControlOptionsInternal)ActivityControl).EnableRestore; set => ((Commvault.Powershell.Models.IClusterActivityControlOptionsInternal)ActivityControl).EnableRestore = value ?? default(bool); }

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

        /// <summary>API Server Endpoint of the cluster</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string ApiServer { get => this._apiServer; set => this._apiServer = value; }

        /// <summary>Backing field for <see cref="ApplicationCount" /> property.</summary>
        private Commvault.Powershell.Models.IKubernetesApplicationCountInfo _applicationCount;

        /// <summary>Describe the Backup info for a Kubernetes Application</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IKubernetesApplicationCountInfo ApplicationCount { get => (this._applicationCount = this._applicationCount ?? new Commvault.Powershell.Models.KubernetesApplicationCountInfo()); set => this._applicationCount = value; }

        /// <summary>Count of Applications Backed up with errors</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? ApplicationCountBackupUpWithErrorCount { get => ((Commvault.Powershell.Models.IKubernetesApplicationCountInfoInternal)ApplicationCount).BackupUpWithErrorCount; set => ((Commvault.Powershell.Models.IKubernetesApplicationCountInfoInternal)ApplicationCount).BackupUpWithErrorCount = value ?? default(long); }

        /// <summary>Count of Applications Never Backed up</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? ApplicationCountNeverBackedUpCount { get => ((Commvault.Powershell.Models.IKubernetesApplicationCountInfoInternal)ApplicationCount).NeverBackedUpCount; set => ((Commvault.Powershell.Models.IKubernetesApplicationCountInfoInternal)ApplicationCount).NeverBackedUpCount = value ?? default(long); }

        /// <summary>Count of Applications Not Protected</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? ApplicationCountNotProtectedCount { get => ((Commvault.Powershell.Models.IKubernetesApplicationCountInfoInternal)ApplicationCount).NotProtectedCount; set => ((Commvault.Powershell.Models.IKubernetesApplicationCountInfoInternal)ApplicationCount).NotProtectedCount = value ?? default(long); }

        /// <summary>Count of Applications Pending backup</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? ApplicationCountPendingCount { get => ((Commvault.Powershell.Models.IKubernetesApplicationCountInfoInternal)ApplicationCount).PendingCount; set => ((Commvault.Powershell.Models.IKubernetesApplicationCountInfoInternal)ApplicationCount).PendingCount = value ?? default(long); }

        /// <summary>Count of Applications Protected</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? ApplicationCountProtectedCount { get => ((Commvault.Powershell.Models.IKubernetesApplicationCountInfoInternal)ApplicationCount).ProtectedCount; set => ((Commvault.Powershell.Models.IKubernetesApplicationCountInfoInternal)ApplicationCount).ProtectedCount = value ?? default(long); }

        /// <summary>Count of total number of Applications</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? ApplicationCountTotalCount { get => ((Commvault.Powershell.Models.IKubernetesApplicationCountInfoInternal)ApplicationCount).TotalCount; set => ((Commvault.Powershell.Models.IKubernetesApplicationCountInfoInternal)ApplicationCount).TotalCount = value ?? default(long); }

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

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

        /// <summary>Backing field for <see cref="CommonProperties" /> property.</summary>
        private Commvault.Powershell.Models.IClusterDetailsCommonProps _commonProperties;

        /// <summary>Describe the common properties of a Kubernetes cluster</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IClusterDetailsCommonProps CommonProperties { get => (this._commonProperties = this._commonProperties ?? new Commvault.Powershell.Models.ClusterDetailsCommonProps()); set => this._commonProperties = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IIdName[] CommonPropertyAssociatedUserGroups { get => ((Commvault.Powershell.Models.IClusterDetailsCommonPropsInternal)CommonProperties).AssociatedUserGroups; set => ((Commvault.Powershell.Models.IClusterDetailsCommonPropsInternal)CommonProperties).AssociatedUserGroups = value ?? null /* arrayOf */; }

        /// <summary>Internal Acessors for ActivityControl</summary>
        Commvault.Powershell.Models.IClusterActivityControlOptions Commvault.Powershell.Models.IGetClusterDetailsRespInternal.ActivityControl { get => (this._activityControl = this._activityControl ?? new Commvault.Powershell.Models.ClusterActivityControlOptions()); set { {_activityControl = value;} } }

        /// <summary>Internal Acessors for ApplicationCount</summary>
        Commvault.Powershell.Models.IKubernetesApplicationCountInfo Commvault.Powershell.Models.IGetClusterDetailsRespInternal.ApplicationCount { get => (this._applicationCount = this._applicationCount ?? new Commvault.Powershell.Models.KubernetesApplicationCountInfo()); set { {_applicationCount = value;} } }

        /// <summary>Internal Acessors for CommonProperties</summary>
        Commvault.Powershell.Models.IClusterDetailsCommonProps Commvault.Powershell.Models.IGetClusterDetailsRespInternal.CommonProperties { get => (this._commonProperties = this._commonProperties ?? new Commvault.Powershell.Models.ClusterDetailsCommonProps()); set { {_commonProperties = value;} } }

        /// <summary>Internal Acessors for CommonPropertySecurity</summary>
        Commvault.Powershell.Models.IClusterDetailsCommonClientSecurity Commvault.Powershell.Models.IGetClusterDetailsRespInternal.CommonPropertySecurity { get => ((Commvault.Powershell.Models.IClusterDetailsCommonPropsInternal)CommonProperties).Security; set => ((Commvault.Powershell.Models.IClusterDetailsCommonPropsInternal)CommonProperties).Security = value; }

        /// <summary>Internal Acessors for EtcdProtection</summary>
        Commvault.Powershell.Models.IGetEtcdProtectionItem Commvault.Powershell.Models.IGetClusterDetailsRespInternal.EtcdProtection { get => (this._etcdProtection = this._etcdProtection ?? new Commvault.Powershell.Models.GetEtcdProtectionItem()); set { {_etcdProtection = value;} } }

        /// <summary>Internal Acessors for EtcdProtectionPlan</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IGetClusterDetailsRespInternal.EtcdProtectionPlan { get => ((Commvault.Powershell.Models.IEtcdProtectionItemInternal)EtcdProtection).Plan; set => ((Commvault.Powershell.Models.IEtcdProtectionItemInternal)EtcdProtection).Plan = value; }

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

        /// <summary>Internal Acessors for OptionImageRegistry</summary>
        Commvault.Powershell.Models.IClusterImageRegistryOptions Commvault.Powershell.Models.IGetClusterDetailsRespInternal.OptionImageRegistry { get => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).ImageRegistry; set => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).ImageRegistry = value; }

        /// <summary>Internal Acessors for OptionJobStepWaitTime</summary>
        Commvault.Powershell.Models.IJobStepWaitTimeOptions Commvault.Powershell.Models.IGetClusterDetailsRespInternal.OptionJobStepWaitTime { get => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).JobStepWaitTime; set => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).JobStepWaitTime = value; }

        /// <summary>Internal Acessors for Options</summary>
        Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfo Commvault.Powershell.Models.IGetClusterDetailsRespInternal.Options { get => (this._options = this._options ?? new Commvault.Powershell.Models.EditClusterAdvancedOptionsInfo()); set { {_options = value;} } }

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

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string DisplayName { get => ((Commvault.Powershell.Models.IIdNameDisplayNameInternal)__idNameDisplayName).DisplayName; set => ((Commvault.Powershell.Models.IIdNameDisplayNameInternal)__idNameDisplayName).DisplayName = value; }

        /// <summary>Backing field for <see cref="EtcdProtection" /> property.</summary>
        private Commvault.Powershell.Models.IGetEtcdProtectionItem _etcdProtection;

        /// <summary>ETCD Protection options</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IGetEtcdProtectionItem EtcdProtection { get => (this._etcdProtection = this._etcdProtection ?? new Commvault.Powershell.Models.GetEtcdProtectionItem()); set => this._etcdProtection = value; }

        /// <summary>Denote if etcd protection is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? EtcdProtectionEnabled { get => ((Commvault.Powershell.Models.IEtcdProtectionItemInternal)EtcdProtection).Enabled; set => ((Commvault.Powershell.Models.IEtcdProtectionItemInternal)EtcdProtection).Enabled = value ?? default(bool); }

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

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

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

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

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public long? Id { get => ((Commvault.Powershell.Models.IIdNameDisplayNameInternal)__idNameDisplayName).Id; set => ((Commvault.Powershell.Models.IIdNameDisplayNameInternal)__idNameDisplayName).Id = value; }

        /// <summary>Specify image pull secret to authenticate with the image repository</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string ImageRegistryPullSecret { get => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).ImageRegistryPullSecret; set => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).ImageRegistryPullSecret = value ?? null; }

        /// <summary>Specify image registry URL for internal image repository</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string ImageRegistryUrl { get => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).ImageRegistryUrl; set => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).ImageRegistryUrl = value ?? null; }

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

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

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

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

        /// <summary>Specify wait time for Worker Pod to be deleted</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? JobStepWaitTimeResourceCleanup { get => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).JobStepWaitTimeResourceCleanup; set => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).JobStepWaitTimeResourceCleanup = value ?? default(long); }

        /// <summary>Specify wait time for snapshot to be deleted</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? JobStepWaitTimeSnapshotCleanup { get => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).JobStepWaitTimeSnapshotCleanup; set => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).JobStepWaitTimeSnapshotCleanup = value ?? default(long); }

        /// <summary>Specify wait time for snapshot to be Ready</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? JobStepWaitTimeSnapshotReady { get => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).JobStepWaitTimeSnapshotReady; set => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).JobStepWaitTimeSnapshotReady = value ?? default(long); }

        /// <summary>Specify wait time for Worker Pod to start</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? JobStepWaitTimeWorkerPodStartup { get => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).JobStepWaitTimeWorkerPodStartup; set => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).JobStepWaitTimeWorkerPodStartup = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string Name { get => ((Commvault.Powershell.Models.IIdNameDisplayNameInternal)__idNameDisplayName).Name; set => ((Commvault.Powershell.Models.IIdNameDisplayNameInternal)__idNameDisplayName).Name = value; }

        /// <summary>Specify the name of the Namespace where Commvault resources will be deployed</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string OptionConfigNamespace { get => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).ConfigNamespace; set => ((Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfoInternal)Options).ConfigNamespace = value ?? null; }

        /// <summary>Backing field for <see cref="Options" /> property.</summary>
        private Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfo _options;

        /// <summary>Request definition for cluster advanced options</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfo Options { get => (this._options = this._options ?? new Commvault.Powershell.Models.EditClusterAdvancedOptionsInfo()); set => this._options = value; }

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

        /// <summary>Workload region of the client</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IIdName Region { get => (this._region = this._region ?? new Commvault.Powershell.Models.IdName()); set => this._region = value; }

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

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

        /// <summary>List of owners associated to the cluster</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string[] SecurityOwners { get => ((Commvault.Powershell.Models.IClusterDetailsCommonPropsInternal)CommonProperties).SecurityOwners; set => ((Commvault.Powershell.Models.IClusterDetailsCommonPropsInternal)CommonProperties).SecurityOwners = value ?? null /* arrayOf */; }

        /// <summary>Backing field for <see cref="Tags" /> property.</summary>
        private Commvault.Powershell.Models.IIdNameValue[] _tags;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IIdNameValue[] Tags { get => this._tags; set => this._tags = value; }

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

        /// <summary>Kubernetes client version</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Version { get => this._version; set => this._version = value; }

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

        }

        /// <summary>Validates that this object meets the validation criteria.</summary>
        /// <param name="eventListener">an <see cref="Commvault.Powershell.Runtime.IEventListener" /> instance that will receive validation
        /// events.</param>
        /// <returns>
        /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed.
        /// </returns>
        public async global::System.Threading.Tasks.Task Validate(Commvault.Powershell.Runtime.IEventListener eventListener)
        {
            await eventListener.AssertNotNull(nameof(__idNameDisplayName), __idNameDisplayName);
            await eventListener.AssertObjectIsValid(nameof(__idNameDisplayName), __idNameDisplayName);
        }
    }
    /// Details of a Kubernetes Cluster
    public partial interface IGetClusterDetailsResp :
        Commvault.Powershell.Runtime.IJsonSerializable,
        Commvault.Powershell.Models.IIdNameDisplayName
    {
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"accessNode",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdName) })]
        Commvault.Powershell.Models.IIdName[] AccessNode { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"enableRestore",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ActivityControlEnableRestore { get; set; }
        /// <summary>API Server Endpoint of the cluster</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"API Server Endpoint of the cluster",
        SerializedName = @"apiServer",
        PossibleTypes = new [] { typeof(string) })]
        string ApiServer { get; set; }
        /// <summary>Count of Applications Backed up with errors</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Count of Applications Backed up with errors",
        SerializedName = @"backupUpWithErrorCount",
        PossibleTypes = new [] { typeof(long) })]
        long? ApplicationCountBackupUpWithErrorCount { get; set; }
        /// <summary>Count of Applications Never Backed up</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Count of Applications Never Backed up",
        SerializedName = @"neverBackedUpCount",
        PossibleTypes = new [] { typeof(long) })]
        long? ApplicationCountNeverBackedUpCount { get; set; }
        /// <summary>Count of Applications Not Protected</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Count of Applications Not Protected",
        SerializedName = @"notProtectedCount",
        PossibleTypes = new [] { typeof(long) })]
        long? ApplicationCountNotProtectedCount { get; set; }
        /// <summary>Count of Applications Pending backup</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Count of Applications Pending backup",
        SerializedName = @"pendingCount",
        PossibleTypes = new [] { typeof(long) })]
        long? ApplicationCountPendingCount { get; set; }
        /// <summary>Count of Applications Protected</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Count of Applications Protected",
        SerializedName = @"protectedCount",
        PossibleTypes = new [] { typeof(long) })]
        long? ApplicationCountProtectedCount { get; set; }
        /// <summary>Count of total number of Applications</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Count of total number of Applications",
        SerializedName = @"totalCount",
        PossibleTypes = new [] { typeof(long) })]
        long? ApplicationCountTotalCount { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"associatedUserGroups",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdName) })]
        Commvault.Powershell.Models.IIdName[] CommonPropertyAssociatedUserGroups { get; set; }
        /// <summary>Denote if etcd protection is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Denote if etcd protection is enabled",
        SerializedName = @"enabled",
        PossibleTypes = new [] { typeof(bool) })]
        bool? EtcdProtectionEnabled { get; set; }

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

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

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string EtcdProtectionPlanName { get; set; }
        /// <summary>Specify image pull secret to authenticate with the image repository</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Specify image pull secret to authenticate with the image repository",
        SerializedName = @"pullSecret",
        PossibleTypes = new [] { typeof(string) })]
        string ImageRegistryPullSecret { get; set; }
        /// <summary>Specify image registry URL for internal image repository</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Specify image registry URL for internal image repository",
        SerializedName = @"url",
        PossibleTypes = new [] { typeof(string) })]
        string ImageRegistryUrl { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string InstanceName { get; set; }
        /// <summary>Specify wait time for Worker Pod to be deleted</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Specify wait time for Worker Pod to be deleted",
        SerializedName = @"resourceCleanup",
        PossibleTypes = new [] { typeof(long) })]
        long? JobStepWaitTimeResourceCleanup { get; set; }
        /// <summary>Specify wait time for snapshot to be deleted</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Specify wait time for snapshot to be deleted",
        SerializedName = @"snapshotCleanup",
        PossibleTypes = new [] { typeof(long) })]
        long? JobStepWaitTimeSnapshotCleanup { get; set; }
        /// <summary>Specify wait time for snapshot to be Ready</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Specify wait time for snapshot to be Ready",
        SerializedName = @"snapshotReady",
        PossibleTypes = new [] { typeof(long) })]
        long? JobStepWaitTimeSnapshotReady { get; set; }
        /// <summary>Specify wait time for Worker Pod to start</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Specify wait time for Worker Pod to start",
        SerializedName = @"workerPodStartup",
        PossibleTypes = new [] { typeof(long) })]
        long? JobStepWaitTimeWorkerPodStartup { get; set; }
        /// <summary>Specify the name of the Namespace where Commvault resources will be deployed</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Specify the name of the Namespace where Commvault resources will be deployed",
        SerializedName = @"configNamespace",
        PossibleTypes = new [] { typeof(string) })]
        string OptionConfigNamespace { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string RegionName { get; set; }
        /// <summary>List of owners associated to the cluster</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"List of owners associated to the cluster",
        SerializedName = @"owners",
        PossibleTypes = new [] { typeof(string) })]
        string[] SecurityOwners { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"tags",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdNameValue) })]
        Commvault.Powershell.Models.IIdNameValue[] Tags { get; set; }
        /// <summary>Kubernetes client version</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Kubernetes client version",
        SerializedName = @"version",
        PossibleTypes = new [] { typeof(string) })]
        string Version { get; set; }

    }
    /// Details of a Kubernetes Cluster
    internal partial interface IGetClusterDetailsRespInternal :
        Commvault.Powershell.Models.IIdNameDisplayNameInternal
    {
        Commvault.Powershell.Models.IIdName[] AccessNode { get; set; }
        /// <summary>Activity Control Options for Kubernetes Cluster</summary>
        Commvault.Powershell.Models.IClusterActivityControlOptions ActivityControl { get; set; }

        bool? ActivityControlEnableBackup { get; set; }

        bool? ActivityControlEnableRestore { get; set; }
        /// <summary>API Server Endpoint of the cluster</summary>
        string ApiServer { get; set; }
        /// <summary>Describe the Backup info for a Kubernetes Application</summary>
        Commvault.Powershell.Models.IKubernetesApplicationCountInfo ApplicationCount { get; set; }
        /// <summary>Count of Applications Backed up with errors</summary>
        long? ApplicationCountBackupUpWithErrorCount { get; set; }
        /// <summary>Count of Applications Never Backed up</summary>
        long? ApplicationCountNeverBackedUpCount { get; set; }
        /// <summary>Count of Applications Not Protected</summary>
        long? ApplicationCountNotProtectedCount { get; set; }
        /// <summary>Count of Applications Pending backup</summary>
        long? ApplicationCountPendingCount { get; set; }
        /// <summary>Count of Applications Protected</summary>
        long? ApplicationCountProtectedCount { get; set; }
        /// <summary>Count of total number of Applications</summary>
        long? ApplicationCountTotalCount { get; set; }

        Commvault.Powershell.Models.IIdName[] ClientGroups { get; set; }
        /// <summary>Describe the common properties of a Kubernetes cluster</summary>
        Commvault.Powershell.Models.IClusterDetailsCommonProps CommonProperties { get; set; }

        Commvault.Powershell.Models.IIdName[] CommonPropertyAssociatedUserGroups { get; set; }
        /// <summary>Describe the client security details of a Kubernetes cluster</summary>
        Commvault.Powershell.Models.IClusterDetailsCommonClientSecurity CommonPropertySecurity { get; set; }
        /// <summary>ETCD Protection options</summary>
        Commvault.Powershell.Models.IGetEtcdProtectionItem EtcdProtection { get; set; }
        /// <summary>Denote if etcd protection is enabled</summary>
        bool? EtcdProtectionEnabled { get; set; }

        long? EtcdProtectionId { get; set; }

        string EtcdProtectionName { get; set; }

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

        long? EtcdProtectionPlanId { get; set; }

        string EtcdProtectionPlanName { get; set; }
        /// <summary>Specify image pull secret to authenticate with the image repository</summary>
        string ImageRegistryPullSecret { get; set; }
        /// <summary>Specify image registry URL for internal image repository</summary>
        string ImageRegistryUrl { get; set; }

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

        long? InstanceId { get; set; }

        string InstanceName { get; set; }
        /// <summary>Specify wait time for Worker Pod to be deleted</summary>
        long? JobStepWaitTimeResourceCleanup { get; set; }
        /// <summary>Specify wait time for snapshot to be deleted</summary>
        long? JobStepWaitTimeSnapshotCleanup { get; set; }
        /// <summary>Specify wait time for snapshot to be Ready</summary>
        long? JobStepWaitTimeSnapshotReady { get; set; }
        /// <summary>Specify wait time for Worker Pod to start</summary>
        long? JobStepWaitTimeWorkerPodStartup { get; set; }
        /// <summary>Specify the name of the Namespace where Commvault resources will be deployed</summary>
        string OptionConfigNamespace { get; set; }
        /// <summary>Request definition changing image registry options for cluster</summary>
        Commvault.Powershell.Models.IClusterImageRegistryOptions OptionImageRegistry { get; set; }
        /// <summary>Request definition changing job step wait time options for cluster</summary>
        Commvault.Powershell.Models.IJobStepWaitTimeOptions OptionJobStepWaitTime { get; set; }
        /// <summary>Request definition for cluster advanced options</summary>
        Commvault.Powershell.Models.IEditClusterAdvancedOptionsInfo Options { get; set; }
        /// <summary>Workload region of the client</summary>
        Commvault.Powershell.Models.IIdName Region { get; set; }

        long? RegionId { get; set; }

        string RegionName { get; set; }
        /// <summary>List of owners associated to the cluster</summary>
        string[] SecurityOwners { get; set; }

        Commvault.Powershell.Models.IIdNameValue[] Tags { get; set; }
        /// <summary>Kubernetes client version</summary>
        string Version { get; set; }

    }
}