<gh_stars>0// *** 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
{
    public static class GetSubscribe
    {
        /// <summary>
        /// Use this data source to query detailed information of tcmq subscribe
        /// </summary>
        public static Task<GetSubscribeResult> InvokeAsync(GetSubscribeArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.InvokeAsync<GetSubscribeResult>("tencentcloud:Tcmq/getSubscribe:getSubscribe", args ?? new GetSubscribeArgs(), options.WithDefaults());

        /// <summary>
        /// Use this data source to query detailed information of tcmq subscribe
        /// </summary>
        public static Output<GetSubscribeResult> Invoke(GetSubscribeInvokeArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.Invoke<GetSubscribeResult>("tencentcloud:Tcmq/getSubscribe:getSubscribe", args ?? new GetSubscribeInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetSubscribeArgs : Pulumi.InvokeArgs
    {
        /// <summary>
        /// Number of topics to be returned per page in case of paginated return. If this parameter is not passed in, 20 will be used by default. Maximum value: 50.
        /// </summary>
        [Input("limit")]
        public int? Limit { get; set; }

        /// <summary>
        /// Starting position of the list of topics to be returned on the current page in case of paginated return. If a value is entered, limit is required. If this parameter is left empty, 0 will be used by default.
        /// </summary>
        [Input("offset")]
        public int? Offset { get; set; }

        /// <summary>
        /// Used to save results.
        /// </summary>
        [Input("resultOutputFile")]
        public string? ResultOutputFile { get; set; }

        /// <summary>
        /// Fuzzy search by SubscriptionName.
        /// </summary>
        [Input("subscriptionName")]
        public string? SubscriptionName { get; set; }

        /// <summary>
        /// Topic name, which must be unique in the same topic under the same account in the same region. It can contain up to 64 letters, digits, and hyphens and must begin with a letter.
        /// </summary>
        [Input("topicName", required: true)]
        public string TopicName { get; set; } = null!;

        public GetSubscribeArgs()
        {
        }
    }

    public sealed class GetSubscribeInvokeArgs : Pulumi.InvokeArgs
    {
        /// <summary>
        /// Number of topics to be returned per page in case of paginated return. If this parameter is not passed in, 20 will be used by default. Maximum value: 50.
        /// </summary>
        [Input("limit")]
        public Input<int>? Limit { get; set; }

        /// <summary>
        /// Starting position of the list of topics to be returned on the current page in case of paginated return. If a value is entered, limit is required. If this parameter is left empty, 0 will be used by default.
        /// </summary>
        [Input("offset")]
        public Input<int>? Offset { get; set; }

        /// <summary>
        /// Used to save results.
        /// </summary>
        [Input("resultOutputFile")]
        public Input<string>? ResultOutputFile { get; set; }

        /// <summary>
        /// Fuzzy search by SubscriptionName.
        /// </summary>
        [Input("subscriptionName")]
        public Input<string>? SubscriptionName { get; set; }

        /// <summary>
        /// Topic name, which must be unique in the same topic under the same account in the same region. It can contain up to 64 letters, digits, and hyphens and must begin with a letter.
        /// </summary>
        [Input("topicName", required: true)]
        public Input<string> TopicName { get; set; } = null!;

        public GetSubscribeInvokeArgs()
        {
        }
    }


    [OutputType]
    public sealed class GetSubscribeResult
    {
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        public readonly int? Limit;
        public readonly int? Offset;
        public readonly string? ResultOutputFile;
        /// <summary>
        /// Set of subscription attributes.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetSubscribeSubscriptionListResult> SubscriptionLists;
        /// <summary>
        /// Subscription name, which must be unique in the same topic under the same account in the same region. It can contain up to 64 letters, digits, and hyphens and must begin with a letter.
        /// </summary>
        public readonly string? SubscriptionName;
        public readonly string TopicName;

        [OutputConstructor]
        private GetSubscribeResult(
            string id,

            int? limit,

            int? offset,

            string? resultOutputFile,

            ImmutableArray<Outputs.GetSubscribeSubscriptionListResult> subscriptionLists,

            string? subscriptionName,

            string topicName)
        {
            Id = id;
            Limit = limit;
            Offset = offset;
            ResultOutputFile = resultOutputFile;
            SubscriptionLists = subscriptionLists;
            SubscriptionName = subscriptionName;
            TopicName = topicName;
        }
    }
}
