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

    [OutputType]
    public sealed class GetQueueQueueListResult
    {
        /// <summary>
        /// Total number of messages in `Active` status (i.e., unconsumed) in the queue, which is an approximate value.
        /// </summary>
        public readonly int ActiveMsgNum;
        /// <summary>
        /// Bandwidth limit.
        /// </summary>
        public readonly int Bps;
        /// <summary>
        /// Queue creation time. A Unix timestamp accurate down to the millisecond will be returned.
        /// </summary>
        public readonly int CreateTime;
        /// <summary>
        /// Creator `Uin`.
        /// </summary>
        public readonly int CreateUin;
        /// <summary>
        /// Dead letter queue policy.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetQueueQueueListDeadLetterPolicyResult> DeadLetterPolicies;
        /// <summary>
        /// Dead letter queue.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetQueueQueueListDeadLetterSourceResult> DeadLetterSources;
        /// <summary>
        /// Number of delayed messages.
        /// </summary>
        public readonly int DelayMsgNum;
        /// <summary>
        /// Total number of messages in `Inactive` status (i.e., being consumed) in the queue, which is an approximate value.
        /// </summary>
        public readonly int InactiveMsgNum;
        /// <summary>
        /// Time when the queue attribute is last modified. A Unix timestamp accurate down to the millisecond will be returned.
        /// </summary>
        public readonly int LastModifyTime;
        /// <summary>
        /// Maximum retention period for inflight messages.
        /// </summary>
        public readonly int MaxDelaySeconds;
        /// <summary>
        /// Maximum size of heaped messages in bytes.
        /// </summary>
        public readonly int MaxMsgBacklogSize;
        /// <summary>
        /// Maximum number of heaped messages. The value range is 1,000,000-10,000,000 during the beta test and can be 1,000,000-1,000,000,000 after the product is officially released. The default value is 10,000,000 during the beta test and will be 100,000,000 after the product is officially released.
        /// </summary>
        public readonly int MaxMsgHeapNum;
        /// <summary>
        /// Maximum message length. Value range: 1024-65536 bytes (i.e., 1-64 KB). Default value: 65536.
        /// </summary>
        public readonly int MaxMsgSize;
        /// <summary>
        /// The maximum number of unacknowledged messages.
        /// </summary>
        public readonly int MaxUnackedMsgNum;
        /// <summary>
        /// Minimum unconsumed time of message in seconds.
        /// </summary>
        public readonly int MinMsgTime;
        /// <summary>
        /// The max period during which a message is retained before it is automatically acknowledged. Value range: 30-43,200 seconds (30 seconds to 12 hours). Default value: 3600 seconds (1 hour).
        /// </summary>
        public readonly int MsgRetentionSeconds;
        /// <summary>
        /// Namespace name.
        /// </summary>
        public readonly string NamespaceName;
        /// <summary>
        /// Long polling wait time for message reception. Value range: 0-30 seconds. Default value: 0.
        /// </summary>
        public readonly int PollingWaitSeconds;
        /// <summary>
        /// Limit of the number of messages produced per second. The value for consumed messages is 1.1 times this value.
        /// </summary>
        public readonly int Qps;
        /// <summary>
        /// Message queue ID.
        /// </summary>
        public readonly string QueueId;
        /// <summary>
        /// Filter by QueueName.
        /// </summary>
        public readonly string QueueName;
        /// <summary>
        /// Queue storage space configured for message rewind. Value range: 1,024-10,240 MB (if message rewind is enabled). The value `0` indicates that message rewind is not enabled.
        /// </summary>
        public readonly int RetentionSizeInMb;
        /// <summary>
        /// Number of retained messages which have been deleted by the `DelMsg` API but are still within their rewind time range.
        /// </summary>
        public readonly int RewindMsgNum;
        /// <summary>
        /// Rewindable time of messages in the queue. Value range: 0-1,296,000s (if message rewind is enabled). The value `0` indicates that message rewind is not enabled.
        /// </summary>
        public readonly int RewindSeconds;
        /// <summary>
        /// Cluster status. `0`: creating; `1`: normal; `2`: terminating; `3`: deleted; `4`: isolated; `5`: creation failed; `6`: deletion failed.
        /// </summary>
        public readonly int Status;
        /// <summary>
        /// Associated tag.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetQueueQueueListTagResult> Tags;
        /// <summary>
        /// Tenant ID.
        /// </summary>
        public readonly string TenantId;
        /// <summary>
        /// Message trace. true: enabled; false: not enabled.
        /// </summary>
        public readonly bool Trace;
        /// <summary>
        /// 1: transaction queue; 0: general queue.
        /// </summary>
        public readonly bool Transaction;
        /// <summary>
        /// Transaction message policy.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetQueueQueueListTransactionPolicyResult> TransactionPolicies;
        /// <summary>
        /// Message visibility timeout period. Value range: 1-43200 seconds (i.e., 12 hours). Default value: 30.
        /// </summary>
        public readonly int VisibilityTimeout;

        [OutputConstructor]
        private GetQueueQueueListResult(
            int activeMsgNum,

            int bps,

            int createTime,

            int createUin,

            ImmutableArray<Outputs.GetQueueQueueListDeadLetterPolicyResult> deadLetterPolicies,

            ImmutableArray<Outputs.GetQueueQueueListDeadLetterSourceResult> deadLetterSources,

            int delayMsgNum,

            int inactiveMsgNum,

            int lastModifyTime,

            int maxDelaySeconds,

            int maxMsgBacklogSize,

            int maxMsgHeapNum,

            int maxMsgSize,

            int maxUnackedMsgNum,

            int minMsgTime,

            int msgRetentionSeconds,

            string namespaceName,

            int pollingWaitSeconds,

            int qps,

            string queueId,

            string queueName,

            int retentionSizeInMb,

            int rewindMsgNum,

            int rewindSeconds,

            int status,

            ImmutableArray<Outputs.GetQueueQueueListTagResult> tags,

            string tenantId,

            bool trace,

            bool transaction,

            ImmutableArray<Outputs.GetQueueQueueListTransactionPolicyResult> transactionPolicies,

            int visibilityTimeout)
        {
            ActiveMsgNum = activeMsgNum;
            Bps = bps;
            CreateTime = createTime;
            CreateUin = createUin;
            DeadLetterPolicies = deadLetterPolicies;
            DeadLetterSources = deadLetterSources;
            DelayMsgNum = delayMsgNum;
            InactiveMsgNum = inactiveMsgNum;
            LastModifyTime = lastModifyTime;
            MaxDelaySeconds = maxDelaySeconds;
            MaxMsgBacklogSize = maxMsgBacklogSize;
            MaxMsgHeapNum = maxMsgHeapNum;
            MaxMsgSize = maxMsgSize;
            MaxUnackedMsgNum = maxUnackedMsgNum;
            MinMsgTime = minMsgTime;
            MsgRetentionSeconds = msgRetentionSeconds;
            NamespaceName = namespaceName;
            PollingWaitSeconds = pollingWaitSeconds;
            Qps = qps;
            QueueId = queueId;
            QueueName = queueName;
            RetentionSizeInMb = retentionSizeInMb;
            RewindMsgNum = rewindMsgNum;
            RewindSeconds = rewindSeconds;
            Status = status;
            Tags = tags;
            TenantId = tenantId;
            Trace = trace;
            Transaction = transaction;
            TransactionPolicies = transactionPolicies;
            VisibilityTimeout = visibilityTimeout;
        }
    }
}
