# 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 copy
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from .. import _utilities

__all__ = [
    'GetServiceQueuesQueueResult',
    'GetServiceSubscriptionsSubscriptionResult',
    'GetServiceTopicsTopicResult',
]

@pulumi.output_type
class GetServiceQueuesQueueResult(dict):
    def __init__(__self__, *,
                 active_messages: int,
                 create_time: int,
                 delay_messages: int,
                 delay_seconds: int,
                 id: str,
                 inactive_messages: int,
                 last_modify_time: int,
                 logging_enabled: bool,
                 maximum_message_size: int,
                 message_retention_period: int,
                 polling_wait_seconds: int,
                 queue_internal_url: str,
                 queue_name: str,
                 queue_url: str,
                 visibility_timeout: int):
        """
        :param int active_messages: The total number of messages that are in the Active state in the queue. The value is an approximate number.
        :param int create_time: The time when the queue was created. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.
        :param int delay_messages: The total number of the messages that are in the Delayed state in the queue. The value is an approximate number.
        :param int delay_seconds: The delay period after which all messages that are sent to the queue can be consumed. Unit: seconds.
        :param str id: The ID of the Queue. Its value is same as Queue Name.
        :param int inactive_messages: The total number of the messages that are in the Inactive state in the queue. The value is an approximate number.
        :param int last_modify_time: The time when the queue was last modified. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.
        :param bool logging_enabled: Indicates whether the log management feature is enabled for the queue.
        :param int maximum_message_size: The maximum size of a message body that can be sent to the queue. Unit: bytes.
        :param int message_retention_period: The maximum period for which a message can be retained in the queue. A message that is sent to the queue can be retained for a specified period. After the specified period ends, the message is deleted no matter whether it is consumed. Unit: seconds.
        :param int polling_wait_seconds: The maximum period for which a ReceiveMessage request waits if no message is available in the queue. Unit: seconds.
        :param str queue_internal_url: The internal url of the queue.
        :param str queue_name: The name of the queue.
        :param str queue_url: The url of the queue.
        :param int visibility_timeout: The invisibility period for which the received message remains the Inactive state. Unit: seconds.
        """
        pulumi.set(__self__, "active_messages", active_messages)
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "delay_messages", delay_messages)
        pulumi.set(__self__, "delay_seconds", delay_seconds)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "inactive_messages", inactive_messages)
        pulumi.set(__self__, "last_modify_time", last_modify_time)
        pulumi.set(__self__, "logging_enabled", logging_enabled)
        pulumi.set(__self__, "maximum_message_size", maximum_message_size)
        pulumi.set(__self__, "message_retention_period", message_retention_period)
        pulumi.set(__self__, "polling_wait_seconds", polling_wait_seconds)
        pulumi.set(__self__, "queue_internal_url", queue_internal_url)
        pulumi.set(__self__, "queue_name", queue_name)
        pulumi.set(__self__, "queue_url", queue_url)
        pulumi.set(__self__, "visibility_timeout", visibility_timeout)

    @property
    @pulumi.getter(name="activeMessages")
    def active_messages(self) -> int:
        """
        The total number of messages that are in the Active state in the queue. The value is an approximate number.
        """
        return pulumi.get(self, "active_messages")

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> int:
        """
        The time when the queue was created. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter(name="delayMessages")
    def delay_messages(self) -> int:
        """
        The total number of the messages that are in the Delayed state in the queue. The value is an approximate number.
        """
        return pulumi.get(self, "delay_messages")

    @property
    @pulumi.getter(name="delaySeconds")
    def delay_seconds(self) -> int:
        """
        The delay period after which all messages that are sent to the queue can be consumed. Unit: seconds.
        """
        return pulumi.get(self, "delay_seconds")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Queue. Its value is same as Queue Name.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="inactiveMessages")
    def inactive_messages(self) -> int:
        """
        The total number of the messages that are in the Inactive state in the queue. The value is an approximate number.
        """
        return pulumi.get(self, "inactive_messages")

    @property
    @pulumi.getter(name="lastModifyTime")
    def last_modify_time(self) -> int:
        """
        The time when the queue was last modified. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.
        """
        return pulumi.get(self, "last_modify_time")

    @property
    @pulumi.getter(name="loggingEnabled")
    def logging_enabled(self) -> bool:
        """
        Indicates whether the log management feature is enabled for the queue.
        """
        return pulumi.get(self, "logging_enabled")

    @property
    @pulumi.getter(name="maximumMessageSize")
    def maximum_message_size(self) -> int:
        """
        The maximum size of a message body that can be sent to the queue. Unit: bytes.
        """
        return pulumi.get(self, "maximum_message_size")

    @property
    @pulumi.getter(name="messageRetentionPeriod")
    def message_retention_period(self) -> int:
        """
        The maximum period for which a message can be retained in the queue. A message that is sent to the queue can be retained for a specified period. After the specified period ends, the message is deleted no matter whether it is consumed. Unit: seconds.
        """
        return pulumi.get(self, "message_retention_period")

    @property
    @pulumi.getter(name="pollingWaitSeconds")
    def polling_wait_seconds(self) -> int:
        """
        The maximum period for which a ReceiveMessage request waits if no message is available in the queue. Unit: seconds.
        """
        return pulumi.get(self, "polling_wait_seconds")

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

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

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

    @property
    @pulumi.getter(name="visibilityTimeout")
    def visibility_timeout(self) -> int:
        """
        The invisibility period for which the received message remains the Inactive state. Unit: seconds.
        """
        return pulumi.get(self, "visibility_timeout")


@pulumi.output_type
class GetServiceSubscriptionsSubscriptionResult(dict):
    def __init__(__self__, *,
                 create_time: int,
                 endpoint: str,
                 filter_tag: str,
                 id: str,
                 last_modify_time: int,
                 notify_content_format: str,
                 notify_strategy: str,
                 subscription_name: str,
                 subscription_url: str,
                 topic_name: str,
                 topic_owner: str):
        """
        :param int create_time: The time when the subscription was created. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.
        :param str endpoint: The endpoint to which the messages are pushed.
        :param str filter_tag: The tag that is used to filter messages. Only the messages that are attached with the specified tag can be pushed.
        :param str id: The id of the Subscription.
        :param int last_modify_time: The time when the subscription was last modified. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.
        :param str notify_content_format: The content format of the messages that are pushed to the endpoint.
        :param str notify_strategy: The retry policy that is applied if an error occurs when MNS pushes messages to the endpoint.
        :param str subscription_name: The name of the subscription.
        :param str subscription_url: The url of the subscription.
        :param str topic_name: The name of the topic.
        :param str topic_owner: The account ID of the topic owner.
        """
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "endpoint", endpoint)
        pulumi.set(__self__, "filter_tag", filter_tag)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "last_modify_time", last_modify_time)
        pulumi.set(__self__, "notify_content_format", notify_content_format)
        pulumi.set(__self__, "notify_strategy", notify_strategy)
        pulumi.set(__self__, "subscription_name", subscription_name)
        pulumi.set(__self__, "subscription_url", subscription_url)
        pulumi.set(__self__, "topic_name", topic_name)
        pulumi.set(__self__, "topic_owner", topic_owner)

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> int:
        """
        The time when the subscription was created. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter
    def endpoint(self) -> str:
        """
        The endpoint to which the messages are pushed.
        """
        return pulumi.get(self, "endpoint")

    @property
    @pulumi.getter(name="filterTag")
    def filter_tag(self) -> str:
        """
        The tag that is used to filter messages. Only the messages that are attached with the specified tag can be pushed.
        """
        return pulumi.get(self, "filter_tag")

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

    @property
    @pulumi.getter(name="lastModifyTime")
    def last_modify_time(self) -> int:
        """
        The time when the subscription was last modified. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.
        """
        return pulumi.get(self, "last_modify_time")

    @property
    @pulumi.getter(name="notifyContentFormat")
    def notify_content_format(self) -> str:
        """
        The content format of the messages that are pushed to the endpoint.
        """
        return pulumi.get(self, "notify_content_format")

    @property
    @pulumi.getter(name="notifyStrategy")
    def notify_strategy(self) -> str:
        """
        The retry policy that is applied if an error occurs when MNS pushes messages to the endpoint.
        """
        return pulumi.get(self, "notify_strategy")

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

    @property
    @pulumi.getter(name="subscriptionUrl")
    def subscription_url(self) -> str:
        """
        The url of the subscription.
        """
        return pulumi.get(self, "subscription_url")

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

    @property
    @pulumi.getter(name="topicOwner")
    def topic_owner(self) -> str:
        """
        The account ID of the topic owner.
        """
        return pulumi.get(self, "topic_owner")


@pulumi.output_type
class GetServiceTopicsTopicResult(dict):
    def __init__(__self__, *,
                 create_time: int,
                 id: str,
                 last_modify_time: int,
                 logging_enabled: bool,
                 max_message_size: int,
                 message_count: int,
                 message_retention_period: int,
                 topic_inner_url: str,
                 topic_name: str,
                 topic_url: str):
        """
        :param int create_time: The time when the topic was created. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.
        :param str id: The id of the Topic. Its value is same as Topic Name.
        :param int last_modify_time: The time when the topic was last modified. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.
        :param bool logging_enabled: Indicates whether the log management feature is enabled.
        :param int max_message_size: The maximum size of a message body that can be sent to the topic. Unit: bytes.
        :param int message_count: The number of messages in the topic.
        :param int message_retention_period: The maximum period for which a message can be retained in the topic. A message that is sent to the topic can be retained for a specified period. After the specified period ends, the message is deleted no matter whether it is pushed to the specified endpoints. Unit: seconds.
        :param str topic_inner_url: The inner url of the topic.
        :param str topic_name: The name of the topic.
        :param str topic_url: The url of the topic.
        """
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "last_modify_time", last_modify_time)
        pulumi.set(__self__, "logging_enabled", logging_enabled)
        pulumi.set(__self__, "max_message_size", max_message_size)
        pulumi.set(__self__, "message_count", message_count)
        pulumi.set(__self__, "message_retention_period", message_retention_period)
        pulumi.set(__self__, "topic_inner_url", topic_inner_url)
        pulumi.set(__self__, "topic_name", topic_name)
        pulumi.set(__self__, "topic_url", topic_url)

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> int:
        """
        The time when the topic was created. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The id of the Topic. Its value is same as Topic Name.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="lastModifyTime")
    def last_modify_time(self) -> int:
        """
        The time when the topic was last modified. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.
        """
        return pulumi.get(self, "last_modify_time")

    @property
    @pulumi.getter(name="loggingEnabled")
    def logging_enabled(self) -> bool:
        """
        Indicates whether the log management feature is enabled.
        """
        return pulumi.get(self, "logging_enabled")

    @property
    @pulumi.getter(name="maxMessageSize")
    def max_message_size(self) -> int:
        """
        The maximum size of a message body that can be sent to the topic. Unit: bytes.
        """
        return pulumi.get(self, "max_message_size")

    @property
    @pulumi.getter(name="messageCount")
    def message_count(self) -> int:
        """
        The number of messages in the topic.
        """
        return pulumi.get(self, "message_count")

    @property
    @pulumi.getter(name="messageRetentionPeriod")
    def message_retention_period(self) -> int:
        """
        The maximum period for which a message can be retained in the topic. A message that is sent to the topic can be retained for a specified period. After the specified period ends, the message is deleted no matter whether it is pushed to the specified endpoints. Unit: seconds.
        """
        return pulumi.get(self, "message_retention_period")

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

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

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


