// *** 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 GetTopicTopicListResult
    {
        /// <summary>
        /// Valid values: `0` (Pulsar), `1` (RocketMQ).
        /// </summary>
        public readonly int BrokerType;
        /// <summary>
        /// Topic creation time. A Unix timestamp accurate down to the millisecond will be returned.
        /// </summary>
        public readonly int CreateTime;
        /// <summary>
        /// Creator `Uin`. The `resource` field for CAM authentication is composed of this field.
        /// </summary>
        public readonly int CreateUin;
        /// <summary>
        /// Filtering policy selected when a subscription is created: If `filterType` is 1, `FilterTag` will be used for filtering. If `filterType` is 2, `BindingKey` will be used for filtering.
        /// </summary>
        public readonly int FilterType;
        /// <summary>
        /// Time when the topic attribute is last modified. A Unix timestamp accurate down to the millisecond will be returned.
        /// </summary>
        public readonly int LastModifyTime;
        /// <summary>
        /// Maximum message size, which ranges from 1,024 to 1,048,576 bytes (i.e., 1-1,024 KB). The default value is 65,536.
        /// </summary>
        public readonly int MaxMsgSize;
        /// <summary>
        /// Number of current messages in the topic (number of retained messages).
        /// </summary>
        public readonly int MsgCount;
        /// <summary>
        /// Maximum lifecycle of message in topic. After the period specified by this parameter has elapsed since a message is sent to the topic, the message will be deleted no matter whether it has been successfully pushed to the user. This parameter is measured in seconds and defaulted to one day (86,400 seconds), which cannot be modified.
        /// </summary>
        public readonly int MsgRetentionSeconds;
        /// <summary>
        /// Namespace name.
        /// </summary>
        public readonly string NamespaceName;
        /// <summary>
        /// Number of messages published per second.
        /// </summary>
        public readonly int Qps;
        /// <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.GetTopicTopicListTagResult> Tags;
        /// <summary>
        /// Tenant ID.
        /// </summary>
        public readonly string TenantId;
        /// <summary>
        /// Topic ID.
        /// </summary>
        public readonly string TopicId;
        /// <summary>
        /// Fuzzy search by TopicName.
        /// </summary>
        public readonly string TopicName;
        /// <summary>
        /// Message trace. true: enabled; false: not enabled.
        /// </summary>
        public readonly bool Trace;

        [OutputConstructor]
        private GetTopicTopicListResult(
            int brokerType,

            int createTime,

            int createUin,

            int filterType,

            int lastModifyTime,

            int maxMsgSize,

            int msgCount,

            int msgRetentionSeconds,

            string namespaceName,

            int qps,

            int status,

            ImmutableArray<Outputs.GetTopicTopicListTagResult> tags,

            string tenantId,

            string topicId,

            string topicName,

            bool trace)
        {
            BrokerType = brokerType;
            CreateTime = createTime;
            CreateUin = createUin;
            FilterType = filterType;
            LastModifyTime = lastModifyTime;
            MaxMsgSize = maxMsgSize;
            MsgCount = msgCount;
            MsgRetentionSeconds = msgRetentionSeconds;
            NamespaceName = namespaceName;
            Qps = qps;
            Status = status;
            Tags = tags;
            TenantId = tenantId;
            TopicId = topicId;
            TopicName = topicName;
            Trace = trace;
        }
    }
}
