// *** 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.ActionTrail.Outputs
{

    [OutputType]
    public sealed class GetInstancesInstanceResult
    {
        /// <summary>
        /// The allowed list of the instance.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetInstancesInstanceAllowedListResult> AllowedLists;
        /// <summary>
        /// The config the instance.
        /// </summary>
        public readonly string Config;
        /// <summary>
        /// The create time of the instance.
        /// </summary>
        public readonly string CreateTime;
        /// <summary>
        /// The deployed type of the instance.
        /// </summary>
        public readonly int DeployType;
        /// <summary>
        /// The disk size of the instance.
        /// </summary>
        public readonly int DiskSize;
        /// <summary>
        /// The disk type of the instance. 0: efficient cloud disk , 1: SSD.
        /// </summary>
        public readonly int DiskType;
        /// <summary>
        /// The domain point of the instance.
        /// </summary>
        public readonly string DomainEndpoint;
        /// <summary>
        /// The peak bandwidth of the instance.
        /// </summary>
        public readonly int EipMax;
        /// <summary>
        /// The endPoint to access the instance.
        /// </summary>
        public readonly string EndPoint;
        /// <summary>
        /// The expired time  of the instance.
        /// </summary>
        public readonly int ExpiredTime;
        /// <summary>
        /// ID of the instance.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// The peak value of io of the instance.
        /// </summary>
        public readonly int IoMax;
        /// <summary>
        /// The msg retain of the instance.
        /// </summary>
        public readonly int MsgRetain;
        /// <summary>
        /// Name of the instance.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// The paid type of the instance.
        /// </summary>
        public readonly string PaidType;
        /// <summary>
        /// (Available in 1.194.0+) The number of partitions.
        /// </summary>
        public readonly int PartitionNum;
        /// <summary>
        /// The SASL domain point of the instance.
        /// </summary>
        public readonly string SaslDomainEndpoint;
        /// <summary>
        /// The security group of the instance.
        /// </summary>
        public readonly string SecurityGroup;
        /// <summary>
        /// The current status of the instance. -1: unknown status, 0: wait deploy, 1: initializing, 2: preparing, 3 starting, 5: in service, 7: wait upgrade, 8: upgrading, 10: released, 15: freeze, 101: deploy error, 102: upgrade error.
        /// </summary>
        public readonly int ServiceStatus;
        /// <summary>
        /// The kafka openSource version of the instance.
        /// </summary>
        public readonly string ServiceVersion;
        /// <summary>
        /// The spec type of the instance.
        /// </summary>
        public readonly string SpecType;
        /// <summary>
        /// The SSL domain point of the instance.
        /// </summary>
        public readonly string SslDomainEndpoint;
        /// <summary>
        /// The SSL end point of the instance.
        /// </summary>
        public readonly string SslEndPoint;
        /// <summary>
        /// A mapping of tags to assign to the instance.
        /// </summary>
        public readonly ImmutableDictionary<string, object>? Tags;
        /// <summary>
        /// The max num of topic can be create of the instance.
        /// </summary>
        public readonly int TopicQuota;
        /// <summary>
        /// The UpgradeServiceDetailInfo List.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetInstancesInstanceUpgradeServiceDetailInfoResult> UpgradeServiceDetailInfos;
        /// <summary>
        /// The ID of attaching VPC to instance.
        /// </summary>
        public readonly string VpcId;
        /// <summary>
        /// The ID of attaching vswitch to instance.
        /// </summary>
        public readonly string VswitchId;
        /// <summary>
        /// The ID of attaching zone to instance.
        /// </summary>
        public readonly string ZoneId;

        [OutputConstructor]
        private GetInstancesInstanceResult(
            ImmutableArray<Outputs.GetInstancesInstanceAllowedListResult> allowedLists,

            string config,

            string createTime,

            int deployType,

            int diskSize,

            int diskType,

            string domainEndpoint,

            int eipMax,

            string endPoint,

            int expiredTime,

            string id,

            int ioMax,

            int msgRetain,

            string name,

            string paidType,

            int partitionNum,

            string saslDomainEndpoint,

            string securityGroup,

            int serviceStatus,

            string serviceVersion,

            string specType,

            string sslDomainEndpoint,

            string sslEndPoint,

            ImmutableDictionary<string, object>? tags,

            int topicQuota,

            ImmutableArray<Outputs.GetInstancesInstanceUpgradeServiceDetailInfoResult> upgradeServiceDetailInfos,

            string vpcId,

            string vswitchId,

            string zoneId)
        {
            AllowedLists = allowedLists;
            Config = config;
            CreateTime = createTime;
            DeployType = deployType;
            DiskSize = diskSize;
            DiskType = diskType;
            DomainEndpoint = domainEndpoint;
            EipMax = eipMax;
            EndPoint = endPoint;
            ExpiredTime = expiredTime;
            Id = id;
            IoMax = ioMax;
            MsgRetain = msgRetain;
            Name = name;
            PaidType = paidType;
            PartitionNum = partitionNum;
            SaslDomainEndpoint = saslDomainEndpoint;
            SecurityGroup = securityGroup;
            ServiceStatus = serviceStatus;
            ServiceVersion = serviceVersion;
            SpecType = specType;
            SslDomainEndpoint = sslDomainEndpoint;
            SslEndPoint = sslEndPoint;
            Tags = tags;
            TopicQuota = topicQuota;
            UpgradeServiceDetailInfos = upgradeServiceDetailInfos;
            VpcId = vpcId;
            VswitchId = vswitchId;
            ZoneId = zoneId;
        }
    }
}
