// *** 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;
using Pulumi;

namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Mysql.Outputs
{

    [OutputType]
    public sealed class GetInstanceInstanceListResult
    {
        /// <summary>
        /// Auto renew flag. NOTES: Only supported prepay instance.
        /// </summary>
        public readonly int AutoRenewFlag;
        /// <summary>
        /// Pay type of instance, valid values are `PREPAID` and `POSTPAID`.
        /// </summary>
        public readonly string ChargeType;
        /// <summary>
        /// CPU count.
        /// </summary>
        public readonly int CpuCoreCount;
        /// <summary>
        /// The time at which a instance is created.
        /// </summary>
        public readonly string CreateTime;
        /// <summary>
        /// Expire date of instance. NOTES: Only supported prepay instance.
        /// </summary>
        public readonly string DeadLineTime;
        /// <summary>
        /// Supported instance model. `HA` - high available version; `Basic` - basic version.
        /// </summary>
        public readonly string DeviceType;
        /// <summary>
        /// ID list of disaster-recovery type associated with the current instance.
        /// </summary>
        public readonly ImmutableArray<string> DrInstanceIds;
        /// <summary>
        /// The version number of the database engine to use. Supported versions include 5.5/5.6/5.7/8.0.
        /// </summary>
        public readonly string EngineVersion;
        /// <summary>
        /// Initialization mark. Available values: `0` - Uninitialized; `1` - Initialized.
        /// </summary>
        public readonly int InitFlag;
        /// <summary>
        /// Name of mysql instance.
        /// </summary>
        public readonly string InstanceName;
        /// <summary>
        /// Instance type. Supported values include: `master` - master instance, `dr` - disaster recovery instance, and `ro` - read-only instance.
        /// </summary>
        public readonly string InstanceRole;
        /// <summary>
        /// Public network domain name.
        /// </summary>
        public readonly string InternetHost;
        /// <summary>
        /// Public network port.
        /// </summary>
        public readonly int InternetPort;
        /// <summary>
        /// Status of public network.
        /// </summary>
        public readonly int InternetStatus;
        /// <summary>
        /// Instance IP for internal access.
        /// </summary>
        public readonly string IntranetIp;
        /// <summary>
        /// Transport layer port number for internal purpose.
        /// </summary>
        public readonly int IntranetPort;
        /// <summary>
        /// Indicates the master instance ID of recovery instances.
        /// </summary>
        public readonly string MasterInstanceId;
        /// <summary>
        /// Memory size (in MB).
        /// </summary>
        public readonly int MemorySize;
        /// <summary>
        /// Instance ID, such as `cdb-c1nl9rpv`. It is identical to the instance ID displayed in the database console page.
        /// </summary>
        public readonly string MysqlId;
        /// <summary>
        /// It has been deprecated from version 1.36.0. Please use `charge_type` instead. Pay type of instance, `0`: prepay, `1`: postpaid.
        /// </summary>
        public readonly int PayType;
        /// <summary>
        /// Project ID to which the current instance belongs.
        /// </summary>
        public readonly int ProjectId;
        /// <summary>
        /// ID list of read-only type associated with the current instance.
        /// </summary>
        public readonly ImmutableArray<string> RoInstanceIds;
        /// <summary>
        /// Data replication mode. `0` - Async replication; `1` - Semisync replication; `2` - Strongsync replication.
        /// </summary>
        public readonly int SlaveSyncMode;
        /// <summary>
        /// Instance status. Available values: `0` - Creating; `1` - Running; `4` - Isolating; `5` - Isolated.
        /// </summary>
        public readonly int Status;
        /// <summary>
        /// ID of subnet to which the current instance belongs.
        /// </summary>
        public readonly string SubnetId;
        /// <summary>
        /// Disk capacity (in GB).
        /// </summary>
        public readonly int VolumeSize;
        /// <summary>
        /// ID of Virtual Private Cloud.
        /// </summary>
        public readonly string VpcId;
        /// <summary>
        /// Information of available zone.
        /// </summary>
        public readonly string Zone;

        [OutputConstructor]
        private GetInstanceInstanceListResult(
            int autoRenewFlag,

            string chargeType,

            int cpuCoreCount,

            string createTime,

            string deadLineTime,

            string deviceType,

            ImmutableArray<string> drInstanceIds,

            string engineVersion,

            int initFlag,

            string instanceName,

            string instanceRole,

            string internetHost,

            int internetPort,

            int internetStatus,

            string intranetIp,

            int intranetPort,

            string masterInstanceId,

            int memorySize,

            string mysqlId,

            int payType,

            int projectId,

            ImmutableArray<string> roInstanceIds,

            int slaveSyncMode,

            int status,

            string subnetId,

            int volumeSize,

            string vpcId,

            string zone)
        {
            AutoRenewFlag = autoRenewFlag;
            ChargeType = chargeType;
            CpuCoreCount = cpuCoreCount;
            CreateTime = createTime;
            DeadLineTime = deadLineTime;
            DeviceType = deviceType;
            DrInstanceIds = drInstanceIds;
            EngineVersion = engineVersion;
            InitFlag = initFlag;
            InstanceName = instanceName;
            InstanceRole = instanceRole;
            InternetHost = internetHost;
            InternetPort = internetPort;
            InternetStatus = internetStatus;
            IntranetIp = intranetIp;
            IntranetPort = intranetPort;
            MasterInstanceId = masterInstanceId;
            MemorySize = memorySize;
            MysqlId = mysqlId;
            PayType = payType;
            ProjectId = projectId;
            RoInstanceIds = roInstanceIds;
            SlaveSyncMode = slaveSyncMode;
            Status = status;
            SubnetId = subnetId;
            VolumeSize = volumeSize;
            VpcId = vpcId;
            Zone = zone;
        }
    }
}
