<filename>sdk/dotnet/Tencentcloud/Tcmq/Outputs/GetSubscribeSubscriptionListResult.cs// *** 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 GetSubscribeSubscriptionListResult
    {
        /// <summary>
        /// Filtering policy for subscribing to and receiving messages.
        /// </summary>
        public readonly ImmutableArray<string> BindingKeys;
        /// <summary>
        /// Subscription creation time. A Unix timestamp accurate down to the millisecond will be returned.
        /// </summary>
        public readonly int CreateTime;
        /// <summary>
        /// Endpoint that receives notifications, which varies by `protocol`: for HTTP, the endpoint must start with `http://`, and the `host` can be a domain or IP; for `queue`, `queueName` should be entered.
        /// </summary>
        public readonly string Endpoint;
        /// <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 ImmutableArray<string> FilterTags;
        /// <summary>
        /// Time when the subscription attribute is last modified. A Unix timestamp accurate down to the millisecond will be returned.
        /// </summary>
        public readonly int LastModifyTime;
        /// <summary>
        /// Number of messages to be delivered in the subscription.
        /// </summary>
        public readonly int MsgCount;
        /// <summary>
        /// Push content format. Valid values: 1. `JSON`; 2. `SIMPLIFIED`, i.e., the raw format. If `Protocol` is `queue`, this value must be `SIMPLIFIED`. If `Protocol` is `http`, both options are acceptable, and the default value is `JSON`.
        /// </summary>
        public readonly string NotifyContentFormat;
        /// <summary>
        /// CMQ push server retry policy in case an error occurs while pushing a message to `Endpoint`. Valid values: 1. `BACKOFF_RETRY`: backoff retry, which is to retry at a fixed interval, discard the message after a certain number of retries, and continue to push the next message; 2. `EXPONENTIAL_DECAY_RETRY`: exponential decay retry, which is to retry at an exponentially increasing interval, such as 1s, 2s, 4s, 8s, and so on. As a message can be retained in a topic for one day, failed messages will be discarded at most after one day of retry. Default value: `EXPONENTIAL_DECAY_RETRY`.
        /// </summary>
        public readonly string NotifyStrategy;
        /// <summary>
        /// Subscription protocol. Currently, two protocols are supported: HTTP and queue. To use the HTTP protocol, you need to build your own web server to receive messages. With the queue protocol, messages are automatically pushed to a CMQ queue and you can pull them concurrently.
        /// </summary>
        public readonly string Protocol;
        /// <summary>
        /// Subscription ID, which will be used during monitoring data pull.
        /// </summary>
        public readonly string SubscriptionId;
        /// <summary>
        /// Fuzzy search by SubscriptionName.
        /// </summary>
        public readonly string SubscriptionName;
        /// <summary>
        /// Subscription owner APPID.
        /// </summary>
        public readonly int TopicOwner;

        [OutputConstructor]
        private GetSubscribeSubscriptionListResult(
            ImmutableArray<string> bindingKeys,

            int createTime,

            string endpoint,

            ImmutableArray<string> filterTags,

            int lastModifyTime,

            int msgCount,

            string notifyContentFormat,

            string notifyStrategy,

            string protocol,

            string subscriptionId,

            string subscriptionName,

            int topicOwner)
        {
            BindingKeys = bindingKeys;
            CreateTime = createTime;
            Endpoint = endpoint;
            FilterTags = filterTags;
            LastModifyTime = lastModifyTime;
            MsgCount = msgCount;
            NotifyContentFormat = notifyContentFormat;
            NotifyStrategy = notifyStrategy;
            Protocol = protocol;
            SubscriptionId = subscriptionId;
            SubscriptionName = subscriptionName;
            TopicOwner = topicOwner;
        }
    }
}
