generated/api/Models/CreateKubernetesClusterRequest.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 CreateKubernetesClusterRequest :
        Commvault.Powershell.Models.ICreateKubernetesClusterRequest,
        Commvault.Powershell.Models.ICreateKubernetesClusterRequestInternal,
        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>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 EtcdProtection</summary>
        Commvault.Powershell.Models.IEtcdProtectionItem Commvault.Powershell.Models.ICreateKubernetesClusterRequestInternal.EtcdProtection { get => (this._etcdProtection = this._etcdProtection ?? new Commvault.Powershell.Models.EtcdProtectionItem()); set { {_etcdProtection = value;} } }

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

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

        /// <summary>Enable ETCD Protection on the Kubernetes Cluster</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IEtcdProtectionItem EtcdProtection { get => (this._etcdProtection = this._etcdProtection ?? new Commvault.Powershell.Models.EtcdProtectionItem()); 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); }

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

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? PlanId { 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 PlanName { get => ((Commvault.Powershell.Models.IEtcdProtectionItemInternal)EtcdProtection).PlanName; set => ((Commvault.Powershell.Models.IEtcdProtectionItemInternal)EtcdProtection).PlanName = 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>Creates an new <see cref="CreateKubernetesClusterRequest" /> instance.</summary>
        public CreateKubernetesClusterRequest()
        {

        }

        /// <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 ICreateKubernetesClusterRequest :
        Commvault.Powershell.Runtime.IJsonSerializable,
        Commvault.Powershell.Models.IKubernetesClusterCredentials,
        Commvault.Powershell.Models.IKubernetesAccessNodes
    {
        /// <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; }
        /// <summary>Name of the Kubernetes Cluster</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = true,
        ReadOnly = false,
        Description = @"Name of the Kubernetes Cluster",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string Name { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PlanName { get; set; }
        /// <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; }

    }
    /// Request definition for creating Kubernetes cluster
    internal partial interface ICreateKubernetesClusterRequestInternal :
        Commvault.Powershell.Models.IKubernetesClusterCredentialsInternal,
        Commvault.Powershell.Models.IKubernetesAccessNodesInternal
    {
        /// <summary>Enable ETCD Protection on the Kubernetes Cluster</summary>
        Commvault.Powershell.Models.IEtcdProtectionItem EtcdProtection { get; set; }
        /// <summary>Denote if etcd protection is enabled</summary>
        bool? EtcdProtectionEnabled { get; set; }

        Commvault.Powershell.Models.IIdName EtcdProtectionPlan { get; set; }
        /// <summary>Name of the Kubernetes Cluster</summary>
        string Name { get; set; }

        long? PlanId { get; set; }

        string PlanName { get; set; }
        /// <summary>The Service Type of the Kubernetes cluster</summary>
        string ServiceType { get; set; }

    }
}