// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;

namespace Pulumi.AliCloud.CS.Outputs
{

    [OutputType]
    public sealed class GetKubernetesClustersClusterResult
    {
        /// <summary>
        /// The ID of availability zone.
        /// </summary>
        public readonly string AvailabilityZone;
        public readonly string ClusterNetworkType;
        /// <summary>
        /// Map of kubernetes cluster connection information. It contains several attributes to `Block Connections`.
        /// </summary>
        public readonly Outputs.GetKubernetesClustersClusterConnectionsResult Connections;
        /// <summary>
        /// ID of the node.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// The ID of node image.
        /// </summary>
        public readonly string ImageId;
        /// <summary>
        /// The keypair of ssh login cluster node, you have to create it first.
        /// </summary>
        public readonly string KeyName;
        /// <summary>
        /// A list of one element containing information about the associated log store. It contains the following attributes:
        /// </summary>
        public readonly ImmutableArray<Outputs.GetKubernetesClustersClusterLogConfigResult> LogConfigs;
        public readonly bool MasterAutoRenew;
        public readonly int MasterAutoRenewPeriod;
        /// <summary>
        /// The system disk category of master node.
        /// </summary>
        public readonly string MasterDiskCategory;
        /// <summary>
        /// The system disk size of master node.
        /// </summary>
        public readonly int MasterDiskSize;
        public readonly string MasterInstanceChargeType;
        /// <summary>
        /// The instance type of master node.
        /// </summary>
        public readonly ImmutableArray<string> MasterInstanceTypes;
        /// <summary>
        /// List of cluster master nodes. It contains several attributes to `Block Nodes`.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetKubernetesClustersClusterMasterNodeResult> MasterNodes;
        public readonly int MasterPeriod;
        public readonly string MasterPeriodUnit;
        /// <summary>
        /// Node name.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// The ID of nat gateway used to launch kubernetes cluster.
        /// </summary>
        public readonly string NatGatewayId;
        /// <summary>
        /// The network mask used on pods for each node.
        /// </summary>
        public readonly int NodeCidrMask;
        public readonly string PodCidr;
        /// <summary>
        /// The ID of security group where the current cluster worker node is located.
        /// </summary>
        public readonly string SecurityGroupId;
        public readonly string ServiceCidr;
        /// <summary>
        /// Whether internet load balancer for API Server is created
        /// </summary>
        public readonly bool SlbInternetEnabled;
        /// <summary>
        /// The ID of VPC where the current cluster is located.
        /// </summary>
        public readonly string VpcId;
        /// <summary>
        /// The ID of VSwitches where the current cluster is located.
        /// </summary>
        public readonly ImmutableArray<string> VswitchIds;
        public readonly bool WorkerAutoRenew;
        public readonly int WorkerAutoRenewPeriod;
        /// <summary>
        /// The data disk size of worker node.
        /// </summary>
        public readonly string WorkerDataDiskCategory;
        /// <summary>
        /// The data disk category of worker node.
        /// </summary>
        public readonly int WorkerDataDiskSize;
        /// <summary>
        /// The system disk category of worker node.
        /// </summary>
        public readonly string WorkerDiskCategory;
        /// <summary>
        /// The system disk size of worker node.
        /// </summary>
        public readonly int WorkerDiskSize;
        public readonly string WorkerInstanceChargeType;
        /// <summary>
        /// The instance type of worker node.
        /// </summary>
        public readonly ImmutableArray<string> WorkerInstanceTypes;
        /// <summary>
        /// List of cluster worker nodes. It contains several attributes to `Block Nodes`.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetKubernetesClustersClusterWorkerNodeResult> WorkerNodes;
        /// <summary>
        /// The ECS instance node number in the current container cluster.
        /// </summary>
        public readonly ImmutableArray<int> WorkerNumbers;
        public readonly int WorkerPeriod;
        public readonly string WorkerPeriodUnit;

        [OutputConstructor]
        private GetKubernetesClustersClusterResult(
            string availabilityZone,

            string clusterNetworkType,

            Outputs.GetKubernetesClustersClusterConnectionsResult connections,

            string id,

            string imageId,

            string keyName,

            ImmutableArray<Outputs.GetKubernetesClustersClusterLogConfigResult> logConfigs,

            bool masterAutoRenew,

            int masterAutoRenewPeriod,

            string masterDiskCategory,

            int masterDiskSize,

            string masterInstanceChargeType,

            ImmutableArray<string> masterInstanceTypes,

            ImmutableArray<Outputs.GetKubernetesClustersClusterMasterNodeResult> masterNodes,

            int masterPeriod,

            string masterPeriodUnit,

            string name,

            string natGatewayId,

            int nodeCidrMask,

            string podCidr,

            string securityGroupId,

            string serviceCidr,

            bool slbInternetEnabled,

            string vpcId,

            ImmutableArray<string> vswitchIds,

            bool workerAutoRenew,

            int workerAutoRenewPeriod,

            string workerDataDiskCategory,

            int workerDataDiskSize,

            string workerDiskCategory,

            int workerDiskSize,

            string workerInstanceChargeType,

            ImmutableArray<string> workerInstanceTypes,

            ImmutableArray<Outputs.GetKubernetesClustersClusterWorkerNodeResult> workerNodes,

            ImmutableArray<int> workerNumbers,

            int workerPeriod,

            string workerPeriodUnit)
        {
            AvailabilityZone = availabilityZone;
            ClusterNetworkType = clusterNetworkType;
            Connections = connections;
            Id = id;
            ImageId = imageId;
            KeyName = keyName;
            LogConfigs = logConfigs;
            MasterAutoRenew = masterAutoRenew;
            MasterAutoRenewPeriod = masterAutoRenewPeriod;
            MasterDiskCategory = masterDiskCategory;
            MasterDiskSize = masterDiskSize;
            MasterInstanceChargeType = masterInstanceChargeType;
            MasterInstanceTypes = masterInstanceTypes;
            MasterNodes = masterNodes;
            MasterPeriod = masterPeriod;
            MasterPeriodUnit = masterPeriodUnit;
            Name = name;
            NatGatewayId = natGatewayId;
            NodeCidrMask = nodeCidrMask;
            PodCidr = podCidr;
            SecurityGroupId = securityGroupId;
            ServiceCidr = serviceCidr;
            SlbInternetEnabled = slbInternetEnabled;
            VpcId = vpcId;
            VswitchIds = vswitchIds;
            WorkerAutoRenew = workerAutoRenew;
            WorkerAutoRenewPeriod = workerAutoRenewPeriod;
            WorkerDataDiskCategory = workerDataDiskCategory;
            WorkerDataDiskSize = workerDataDiskSize;
            WorkerDiskCategory = workerDiskCategory;
            WorkerDiskSize = workerDiskSize;
            WorkerInstanceChargeType = workerInstanceChargeType;
            WorkerInstanceTypes = workerInstanceTypes;
            WorkerNodes = workerNodes;
            WorkerNumbers = workerNumbers;
            WorkerPeriod = workerPeriod;
            WorkerPeriodUnit = workerPeriodUnit;
        }
    }
}
