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

    [OutputType]
    public sealed class GetInstancesInstanceListResult
    {
        /// <summary>
        /// The charge type of instance. Valid values are `POSTPAID` and `PREPAID`.
        /// </summary>
        public readonly string ChargeType;
        /// <summary>
        /// The time when the instance is created.
        /// </summary>
        public readonly string CreateTime;
        /// <summary>
        /// IP address of an instance.
        /// </summary>
        public readonly string Ip;
        /// <summary>
        /// Memory size in MB.
        /// </summary>
        public readonly int MemSize;
        /// <summary>
        /// Name of a redis instance.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// List of instance node information. Currently, information about the node type (master or replica) and node availability zone can be passed in.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetInstancesInstanceListNodeInfoResult> NodeInfos;
        /// <summary>
        /// The port used to access a redis instance.
        /// </summary>
        public readonly int Port;
        /// <summary>
        /// ID of the project to which redis instance belongs.
        /// </summary>
        public readonly int ProjectId;
        /// <summary>
        /// ID of a redis instance.
        /// </summary>
        public readonly string RedisId;
        /// <summary>
        /// The number of instance copies.
        /// </summary>
        public readonly int RedisReplicasNum;
        /// <summary>
        /// The number of instance shard.
        /// </summary>
        public readonly int RedisShardNum;
        /// <summary>
        /// Current status of an instance, maybe: `init`, `processing`, `online`, `isolate` and `todelete`.
        /// </summary>
        public readonly string Status;
        /// <summary>
        /// ID of the vpc subnet.
        /// </summary>
        public readonly string SubnetId;
        /// <summary>
        /// Tags of redis instance.
        /// </summary>
        public readonly ImmutableDictionary<string, object> Tags;
        /// <summary>
        /// (**Deprecated**) It has been deprecated from version 1.33.1. Please use 'type_id' instead. Instance type. Available values: `master_slave_redis`, `master_slave_ckv`, `cluster_ckv`, `cluster_redis` and `standalone_redis`.
        /// </summary>
        public readonly string Type;
        /// <summary>
        /// Instance type. Refer to `data.tencentcloud_redis_zone_config.list.type_id` get available values.
        /// </summary>
        public readonly int TypeId;
        /// <summary>
        /// ID of the vpc with which the instance is associated.
        /// </summary>
        public readonly string VpcId;
        /// <summary>
        /// ID of an available zone.
        /// </summary>
        public readonly string Zone;

        [OutputConstructor]
        private GetInstancesInstanceListResult(
            string chargeType,

            string createTime,

            string ip,

            int memSize,

            string name,

            ImmutableArray<Outputs.GetInstancesInstanceListNodeInfoResult> nodeInfos,

            int port,

            int projectId,

            string redisId,

            int redisReplicasNum,

            int redisShardNum,

            string status,

            string subnetId,

            ImmutableDictionary<string, object> tags,

            string type,

            int typeId,

            string vpcId,

            string zone)
        {
            ChargeType = chargeType;
            CreateTime = createTime;
            Ip = ip;
            MemSize = memSize;
            Name = name;
            NodeInfos = nodeInfos;
            Port = port;
            ProjectId = projectId;
            RedisId = redisId;
            RedisReplicasNum = redisReplicasNum;
            RedisShardNum = redisShardNum;
            Status = status;
            SubnetId = subnetId;
            Tags = tags;
            Type = type;
            TypeId = typeId;
            VpcId = vpcId;
            Zone = zone;
        }
    }
}
