generated/api/Models/UpdateKubernetesClusterRequest.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>Request definition for creating Kubernetes cluster</summary>
    public partial class UpdateKubernetesClusterRequest :
        Commvault.Powershell.Models.IUpdateKubernetesClusterRequest,
        Commvault.Powershell.Models.IUpdateKubernetesClusterRequestInternal,
        Commvault.Powershell.Runtime.IValidates
    {
        /// <summary>
        /// Backing field for Inherited model <see cref= "Commvault.Powershell.Models.IKubernetesAccessNodes" />
        /// </summary>
        private Commvault.Powershell.Models.IKubernetesAccessNodes __kubernetesAccessNodes = new Commvault.Powershell.Models.KubernetesAccessNodes();

        /// <summary>
        /// Backing field for Inherited model <see cref= "Commvault.Powershell.Models.IKubernetesClusterCredentials" />
        /// </summary>
        private Commvault.Powershell.Models.IKubernetesClusterCredentials __kubernetesClusterCredentials = new Commvault.Powershell.Models.KubernetesClusterCredentials();

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.IIdNameType[] AccessNodes { get => ((Commvault.Powershell.Models.IKubernetesAccessNodesInternal)__kubernetesAccessNodes).AccessNodes; set => ((Commvault.Powershell.Models.IKubernetesAccessNodesInternal)__kubernetesAccessNodes).AccessNodes = value; }

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

        /// <summary>Request definition changing activity control options for cluster</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IEditClusterActivityControlOptions ActivityControl { get => (this._activityControl = this._activityControl ?? new Commvault.Powershell.Models.EditClusterActivityControlOptions()); set => this._activityControl = value; }

        /// <summary>Enable or disable backup for cluster</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? ActivityControlEnableBackup { get => ((Commvault.Powershell.Models.IEditClusterActivityControlOptionsInternal)ActivityControl).EnableBackup; set => ((Commvault.Powershell.Models.IEditClusterActivityControlOptionsInternal)ActivityControl).EnableBackup = value ?? default(bool); }

        /// <summary>Enabling backup after a delay. Provide UTC Time in Unix format</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? ActivityControlEnableBackupAfterADelay { get => ((Commvault.Powershell.Models.IEditClusterActivityControlOptionsInternal)ActivityControl).EnableBackupAfterADelay; set => ((Commvault.Powershell.Models.IEditClusterActivityControlOptionsInternal)ActivityControl).EnableBackupAfterADelay = value ?? default(long); }

        /// <summary>Enable or disable restore for cluster</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? ActivityControlEnableRestore { get => ((Commvault.Powershell.Models.IEditClusterActivityControlOptionsInternal)ActivityControl).EnableRestore; set => ((Commvault.Powershell.Models.IEditClusterActivityControlOptionsInternal)ActivityControl).EnableRestore = value ?? default(bool); }

        /// <summary>Enabling restore after a delay. Provide UTC Time in Unix format</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? ActivityControlEnableRestoreAfterADelay { get => ((Commvault.Powershell.Models.IEditClusterActivityControlOptionsInternal)ActivityControl).EnableRestoreAfterADelay; set => ((Commvault.Powershell.Models.IEditClusterActivityControlOptionsInternal)ActivityControl).EnableRestoreAfterADelay = value ?? default(long); }

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

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

        /// <summary>Internal Acessors for EtcdProtection</summary>
        Commvault.Powershell.Models.IGetEtcdProtectionItem Commvault.Powershell.Models.IUpdateKubernetesClusterRequestInternal.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.IUpdateKubernetesClusterRequestInternal.EtcdProtectionPlan { get => ((Commvault.Powershell.Models.IEtcdProtectionItemInternal)EtcdProtection).Plan; set => ((Commvault.Powershell.Models.IEtcdProtectionItemInternal)EtcdProtection).Plan = value; }

        /// <summary>Internal Acessors for OptionImageRegistry</summary>
        Commvault.Powershell.Models.IClusterImageRegistryOptions Commvault.Powershell.Models.IUpdateKubernetesClusterRequestInternal.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.IUpdateKubernetesClusterRequestInternal.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.IUpdateKubernetesClusterRequestInternal.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.IUpdateKubernetesClusterRequestInternal.Region { get => (this._region = this._region ?? new Commvault.Powershell.Models.IdName()); set { {_region = value;} } }

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

        /// <summary>Enable ETCD Protection on the Kubernetes Cluster</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; }

        /// <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>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); }

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

        /// <summary>Name of the Kubernetes Cluster</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Name { get => this._name; set => this._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>Update the workload region of the cluster</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>Name of the Service Account to authenticate with the cluster</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string ServiceAccount { get => ((Commvault.Powershell.Models.IKubernetesClusterCredentialsInternal)__kubernetesClusterCredentials).ServiceAccount; set => ((Commvault.Powershell.Models.IKubernetesClusterCredentialsInternal)__kubernetesClusterCredentials).ServiceAccount = value; }

        /// <summary>Secret token to authenticate with the cluster</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string ServiceToken { get => ((Commvault.Powershell.Models.IKubernetesClusterCredentialsInternal)__kubernetesClusterCredentials).ServiceToken; set => ((Commvault.Powershell.Models.IKubernetesClusterCredentialsInternal)__kubernetesClusterCredentials).ServiceToken = value; }

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

        /// <summary>The Service Type of the Kubernetes cluster</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string ServiceType { get => this._serviceType; set => this._serviceType = value; }

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

        /// <summary>Modify or add tags on the cluster</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.INameValue[] Tags { get => this._tags; set => this._tags = value; }

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

        }

        /// <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(__kubernetesClusterCredentials), __kubernetesClusterCredentials);
            await eventListener.AssertObjectIsValid(nameof(__kubernetesClusterCredentials), __kubernetesClusterCredentials);
            await eventListener.AssertNotNull(nameof(__kubernetesAccessNodes), __kubernetesAccessNodes);
            await eventListener.AssertObjectIsValid(nameof(__kubernetesAccessNodes), __kubernetesAccessNodes);
        }
    }
    /// Request definition for creating Kubernetes cluster
    public partial interface IUpdateKubernetesClusterRequest :
        Commvault.Powershell.Runtime.IJsonSerializable,
        Commvault.Powershell.Models.IKubernetesClusterCredentials,
        Commvault.Powershell.Models.IKubernetesAccessNodes
    {
        /// <summary>Enable or disable backup for cluster</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Enable or disable backup for cluster",
        SerializedName = @"enableBackup",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ActivityControlEnableBackup { get; set; }
        /// <summary>Enabling backup after a delay. Provide UTC Time in Unix format</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Enabling backup after a delay. Provide UTC Time in Unix format",
        SerializedName = @"enableBackupAfterADelay",
        PossibleTypes = new [] { typeof(long) })]
        long? ActivityControlEnableBackupAfterADelay { get; set; }
        /// <summary>Enable or disable restore for cluster</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Enable or disable restore for cluster",
        SerializedName = @"enableRestore",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ActivityControlEnableRestore { get; set; }
        /// <summary>Enabling restore after a delay. Provide UTC Time in Unix format</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Enabling restore after a delay. Provide UTC Time in Unix format",
        SerializedName = @"enableRestoreAfterADelay",
        PossibleTypes = new [] { typeof(long) })]
        long? ActivityControlEnableRestoreAfterADelay { 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; }
        /// <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>Name of the Kubernetes Cluster</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Name of the Kubernetes Cluster",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string Name { 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>The Service Type of the Kubernetes cluster</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The Service Type of the Kubernetes cluster",
        SerializedName = @"serviceType",
        PossibleTypes = new [] { typeof(string) })]
        string ServiceType { get; set; }
        /// <summary>Modify or add tags on the cluster</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Modify or add tags on the cluster",
        SerializedName = @"tags",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.INameValue) })]
        Commvault.Powershell.Models.INameValue[] Tags { get; set; }

    }
    /// Request definition for creating Kubernetes cluster
    internal partial interface IUpdateKubernetesClusterRequestInternal :
        Commvault.Powershell.Models.IKubernetesClusterCredentialsInternal,
        Commvault.Powershell.Models.IKubernetesAccessNodesInternal
    {
        /// <summary>Request definition changing activity control options for cluster</summary>
        Commvault.Powershell.Models.IEditClusterActivityControlOptions ActivityControl { get; set; }
        /// <summary>Enable or disable backup for cluster</summary>
        bool? ActivityControlEnableBackup { get; set; }
        /// <summary>Enabling backup after a delay. Provide UTC Time in Unix format</summary>
        long? ActivityControlEnableBackupAfterADelay { get; set; }
        /// <summary>Enable or disable restore for cluster</summary>
        bool? ActivityControlEnableRestore { get; set; }
        /// <summary>Enabling restore after a delay. Provide UTC Time in Unix format</summary>
        long? ActivityControlEnableRestoreAfterADelay { get; set; }
        /// <summary>Enable ETCD Protection on the Kubernetes Cluster</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; }
        /// <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>Name of the Kubernetes Cluster</summary>
        string Name { 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>Update the workload region of the cluster</summary>
        Commvault.Powershell.Models.IIdName Region { get; set; }

        long? RegionId { get; set; }

        string RegionName { get; set; }
        /// <summary>The Service Type of the Kubernetes cluster</summary>
        string ServiceType { get; set; }
        /// <summary>Modify or add tags on the cluster</summary>
        Commvault.Powershell.Models.INameValue[] Tags { get; set; }

    }
}