# coding=utf-8
# *** 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! ***

import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities

__all__ = [
    'GetQueuesQueueResult',
    'GetTopicSubscriptionsSubscriptionResult',
    'GetTopicsTopicResult',
]

@pulumi.output_type
class GetQueuesQueueResult(dict):
    def __init__(__self__, *,
                 delay_seconds: int,
                 id: str,
                 maximum_message_size: int,
                 message_retention_period: int,
                 name: str,
                 polling_wait_seconds: int,
                 visibility_timeouts: int):
        """
        :param int delay_seconds: This attribute defines the length of time, in seconds, after which every message sent to the queue is dequeued.
        :param str id: The id of the queue, The value is set to `name`.
        :param int maximum_message_size: This indicates the maximum length, in bytes, of any message body sent to the queue.
        :param int message_retention_period: Messages are deleted from the queue after a specified length of time, whether they have been activated or not. This attribute defines the viability period, in seconds, for every message in the queue.
        :param str name: The name of the queue
        :param int polling_wait_seconds: Long polling is measured in seconds. When this attribute is set to 0, long polling is disabled. When it is not set to 0, long polling is enabled and message dequeue requests will be processed only when valid messages are received or when long polling times out.
        :param int visibility_timeouts: Dequeued messages change from active (visible) status to inactive (invisible) status. This attribute defines the length of time, in seconds, that messages remain invisible. Messages return to active status after the set period.
        """
        pulumi.set(__self__, "delay_seconds", delay_seconds)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "maximum_message_size", maximum_message_size)
        pulumi.set(__self__, "message_retention_period", message_retention_period)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "polling_wait_seconds", polling_wait_seconds)
        pulumi.set(__self__, "visibility_timeouts", visibility_timeouts)

    @property
    @pulumi.getter(name="delaySeconds")
    def delay_seconds(self) -> int:
        """
        This attribute defines the length of time, in seconds, after which every message sent to the queue is dequeued.
        """
        return pulumi.get(self, "delay_seconds")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The id of the queue, The value is set to `name`.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="maximumMessageSize")
    def maximum_message_size(self) -> int:
        """
        This indicates the maximum length, in bytes, of any message body sent to the queue.
        """
        return pulumi.get(self, "maximum_message_size")

    @property
    @pulumi.getter(name="messageRetentionPeriod")
    def message_retention_period(self) -> int:
        """
        Messages are deleted from the queue after a specified length of time, whether they have been activated or not. This attribute defines the viability period, in seconds, for every message in the queue.
        """
        return pulumi.get(self, "message_retention_period")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The name of the queue
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="pollingWaitSeconds")
    def polling_wait_seconds(self) -> int:
        """
        Long polling is measured in seconds. When this attribute is set to 0, long polling is disabled. When it is not set to 0, long polling is enabled and message dequeue requests will be processed only when valid messages are received or when long polling times out.
        """
        return pulumi.get(self, "polling_wait_seconds")

    @property
    @pulumi.getter(name="visibilityTimeouts")
    def visibility_timeouts(self) -> int:
        """
        Dequeued messages change from active (visible) status to inactive (invisible) status. This attribute defines the length of time, in seconds, that messages remain invisible. Messages return to active status after the set period.
        """
        return pulumi.get(self, "visibility_timeouts")


@pulumi.output_type
class GetTopicSubscriptionsSubscriptionResult(dict):
    def __init__(__self__, *,
                 endpoint: str,
                 filter_tag: str,
                 id: str,
                 name: str,
                 notify_content_format: str,
                 notify_strategy: str,
                 topic_name: str):
        """
        :param str endpoint: Describe the terminal address of the message received in this subscription.
               * `filter_tag`- A string to filter resulting messages of the topic by their message tag.
        :param str id: The ID of the topic subscription. The value is set to `name`.
        :param str name: The name of the subscription.
               * `topic_name`- The topic which The subscription belongs to was named with the name.
        :param str notify_content_format: The NotifyContentFormat attribute of Subscription. This attribute specifies the content format of the messages pushed to users.
        :param str notify_strategy: The NotifyStrategy attribute of Subscription. This attribute specifies the retry strategy when message sending fails.
        :param str topic_name: Two topics on a single account in the same region cannot have the same name. A topic name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 256 characters.
        """
        pulumi.set(__self__, "endpoint", endpoint)
        pulumi.set(__self__, "filter_tag", filter_tag)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "notify_content_format", notify_content_format)
        pulumi.set(__self__, "notify_strategy", notify_strategy)
        pulumi.set(__self__, "topic_name", topic_name)

    @property
    @pulumi.getter
    def endpoint(self) -> str:
        """
        Describe the terminal address of the message received in this subscription.
        * `filter_tag`- A string to filter resulting messages of the topic by their message tag.
        """
        return pulumi.get(self, "endpoint")

    @property
    @pulumi.getter(name="filterTag")
    def filter_tag(self) -> str:
        return pulumi.get(self, "filter_tag")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the topic subscription. The value is set to `name`.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The name of the subscription.
        * `topic_name`- The topic which The subscription belongs to was named with the name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="notifyContentFormat")
    def notify_content_format(self) -> str:
        """
        The NotifyContentFormat attribute of Subscription. This attribute specifies the content format of the messages pushed to users.
        """
        return pulumi.get(self, "notify_content_format")

    @property
    @pulumi.getter(name="notifyStrategy")
    def notify_strategy(self) -> str:
        """
        The NotifyStrategy attribute of Subscription. This attribute specifies the retry strategy when message sending fails.
        """
        return pulumi.get(self, "notify_strategy")

    @property
    @pulumi.getter(name="topicName")
    def topic_name(self) -> str:
        """
        Two topics on a single account in the same region cannot have the same name. A topic name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 256 characters.
        """
        return pulumi.get(self, "topic_name")


@pulumi.output_type
class GetTopicsTopicResult(dict):
    def __init__(__self__, *,
                 id: str,
                 logging_enabled: bool,
                 maximum_message_size: int,
                 name: str):
        """
        :param str id: The id of the topic. The value is set to `name`.
        :param bool logging_enabled: Whether to enable logging.
        :param int maximum_message_size: This indicates the maximum length, in bytes, of any message body sent to the topic.
        :param str name: The name of the topic.
        """
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "logging_enabled", logging_enabled)
        pulumi.set(__self__, "maximum_message_size", maximum_message_size)
        pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The id of the topic. The value is set to `name`.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="loggingEnabled")
    def logging_enabled(self) -> bool:
        """
        Whether to enable logging.
        """
        return pulumi.get(self, "logging_enabled")

    @property
    @pulumi.getter(name="maximumMessageSize")
    def maximum_message_size(self) -> int:
        """
        This indicates the maximum length, in bytes, of any message body sent to the topic.
        """
        return pulumi.get(self, "maximum_message_size")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The name of the topic.
        """
        return pulumi.get(self, "name")


