# 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 builtins
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__ = [
    'GetBindingsBindingResult',
    'GetExchangesExchangeResult',
    'GetInstancesInstanceResult',
    'GetQueuesQueueResult',
    'GetStaticAccountsAccountResult',
    'GetVirtualHostsHostResult',
]

@pulumi.output_type
class GetBindingsBindingResult(dict):
    def __init__(__self__, *,
                 argument: builtins.str,
                 binding_key: builtins.str,
                 binding_type: builtins.str,
                 destination_name: builtins.str,
                 id: builtins.str,
                 instance_id: builtins.str,
                 source_exchange: builtins.str,
                 virtual_host_name: builtins.str):
        """
        :param builtins.str argument: X-match Attributes. Valid Values: All: Default Value, All the Message Header of Key-Value Pairs Stored in the Must Match. Any: at Least One Pair of the Message Header of Key-Value Pairs Stored in the Must Match. This Parameter Applies Only to Headers Exchange Other Types of Exchange Is Invalid. Other Types of Exchange Here Can Either Be an Arbitrary Value.
        :param builtins.str binding_key: The Binding Key. The Source of the Binding Exchange Non-Topic Type: Can Only Contain Letters, Lowercase Letters, Numbers, and the Dash (-), the Underscore Character (_), English Periods (.) and the at Sign (@). Length from 1 to 255 Characters. The Source of the Binding Exchange Topic Type: Can Contain Letters, Lowercase Letters, Numbers, and the Dash (-), the Underscore Character (_), English Periods (.) and the at Sign (@). If You Include the Hash (.
        :param builtins.str binding_type: The Target Binding Types.
        :param builtins.str destination_name: The Target Queue Or Exchange of the Name.
        :param builtins.str id: The ID of the Binding. The value formats as `<instance_id>:<virtual_host_name>:<source_exchange>:<destination_name>`.
        :param builtins.str instance_id: Instance Id.
        :param builtins.str source_exchange: The Source Exchange Name.
        :param builtins.str virtual_host_name: Virtualhost Name.
        """
        pulumi.set(__self__, "argument", argument)
        pulumi.set(__self__, "binding_key", binding_key)
        pulumi.set(__self__, "binding_type", binding_type)
        pulumi.set(__self__, "destination_name", destination_name)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "instance_id", instance_id)
        pulumi.set(__self__, "source_exchange", source_exchange)
        pulumi.set(__self__, "virtual_host_name", virtual_host_name)

    @property
    @pulumi.getter
    def argument(self) -> builtins.str:
        """
        X-match Attributes. Valid Values: All: Default Value, All the Message Header of Key-Value Pairs Stored in the Must Match. Any: at Least One Pair of the Message Header of Key-Value Pairs Stored in the Must Match. This Parameter Applies Only to Headers Exchange Other Types of Exchange Is Invalid. Other Types of Exchange Here Can Either Be an Arbitrary Value.
        """
        return pulumi.get(self, "argument")

    @property
    @pulumi.getter(name="bindingKey")
    def binding_key(self) -> builtins.str:
        """
        The Binding Key. The Source of the Binding Exchange Non-Topic Type: Can Only Contain Letters, Lowercase Letters, Numbers, and the Dash (-), the Underscore Character (_), English Periods (.) and the at Sign (@). Length from 1 to 255 Characters. The Source of the Binding Exchange Topic Type: Can Contain Letters, Lowercase Letters, Numbers, and the Dash (-), the Underscore Character (_), English Periods (.) and the at Sign (@). If You Include the Hash (.
        """
        return pulumi.get(self, "binding_key")

    @property
    @pulumi.getter(name="bindingType")
    def binding_type(self) -> builtins.str:
        """
        The Target Binding Types.
        """
        return pulumi.get(self, "binding_type")

    @property
    @pulumi.getter(name="destinationName")
    def destination_name(self) -> builtins.str:
        """
        The Target Queue Or Exchange of the Name.
        """
        return pulumi.get(self, "destination_name")

    @property
    @pulumi.getter
    def id(self) -> builtins.str:
        """
        The ID of the Binding. The value formats as `<instance_id>:<virtual_host_name>:<source_exchange>:<destination_name>`.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="instanceId")
    def instance_id(self) -> builtins.str:
        """
        Instance Id.
        """
        return pulumi.get(self, "instance_id")

    @property
    @pulumi.getter(name="sourceExchange")
    def source_exchange(self) -> builtins.str:
        """
        The Source Exchange Name.
        """
        return pulumi.get(self, "source_exchange")

    @property
    @pulumi.getter(name="virtualHostName")
    def virtual_host_name(self) -> builtins.str:
        """
        Virtualhost Name.
        """
        return pulumi.get(self, "virtual_host_name")


@pulumi.output_type
class GetExchangesExchangeResult(dict):
    def __init__(__self__, *,
                 attributes: Mapping[str, builtins.str],
                 auto_delete_state: builtins.bool,
                 create_time: builtins.str,
                 exchange_name: builtins.str,
                 exchange_type: builtins.str,
                 id: builtins.str,
                 instance_id: builtins.str,
                 virtual_host_name: builtins.str):
        """
        :param Mapping[str, builtins.str] attributes: The attributes.
        :param builtins.bool auto_delete_state: Indicates whether the Auto Delete attribute is configured.
        :param builtins.str create_time: The creation time.
        :param builtins.str exchange_name: The name of the exchange.
        :param builtins.str exchange_type: The type of the exchange.
        :param builtins.str id: The ID of the Exchange. Its value is same as Queue Name.
        :param builtins.str instance_id: The ID of the instance.
        :param builtins.str virtual_host_name: The name of virtual host where an exchange resides.
        """
        pulumi.set(__self__, "attributes", attributes)
        pulumi.set(__self__, "auto_delete_state", auto_delete_state)
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "exchange_name", exchange_name)
        pulumi.set(__self__, "exchange_type", exchange_type)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "instance_id", instance_id)
        pulumi.set(__self__, "virtual_host_name", virtual_host_name)

    @property
    @pulumi.getter
    def attributes(self) -> Mapping[str, builtins.str]:
        """
        The attributes.
        """
        return pulumi.get(self, "attributes")

    @property
    @pulumi.getter(name="autoDeleteState")
    def auto_delete_state(self) -> builtins.bool:
        """
        Indicates whether the Auto Delete attribute is configured.
        """
        return pulumi.get(self, "auto_delete_state")

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> builtins.str:
        """
        The creation time.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter(name="exchangeName")
    def exchange_name(self) -> builtins.str:
        """
        The name of the exchange.
        """
        return pulumi.get(self, "exchange_name")

    @property
    @pulumi.getter(name="exchangeType")
    def exchange_type(self) -> builtins.str:
        """
        The type of the exchange.
        """
        return pulumi.get(self, "exchange_type")

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

    @property
    @pulumi.getter(name="instanceId")
    def instance_id(self) -> builtins.str:
        """
        The ID of the instance.
        """
        return pulumi.get(self, "instance_id")

    @property
    @pulumi.getter(name="virtualHostName")
    def virtual_host_name(self) -> builtins.str:
        """
        The name of virtual host where an exchange resides.
        """
        return pulumi.get(self, "virtual_host_name")


@pulumi.output_type
class GetInstancesInstanceResult(dict):
    def __init__(__self__, *,
                 create_time: builtins.str,
                 expire_time: builtins.str,
                 id: builtins.str,
                 instance_id: builtins.str,
                 instance_name: builtins.str,
                 instance_type: builtins.str,
                 payment_type: builtins.str,
                 private_end_point: builtins.str,
                 public_endpoint: builtins.str,
                 renewal_duration: builtins.int,
                 renewal_duration_unit: builtins.str,
                 renewal_status: builtins.str,
                 status: builtins.str,
                 support_eip: builtins.bool):
        """
        :param builtins.str create_time: OrderCreateTime.
        :param builtins.str expire_time: ExpireTime.
        :param builtins.str id: The ID of the Instance.
        :param builtins.str instance_id: THe instance Id.
        :param builtins.str instance_name: THe instance name.
        :param builtins.str instance_type: The instance type.
        :param builtins.str payment_type: The Pay-as-You-Type Values Include: the Subscription of a Pre-Paid.
        :param builtins.str private_end_point: The private endPoint.
        :param builtins.str public_endpoint: The public dndpoint.
        :param builtins.int renewal_duration: Renewal duration.
        :param builtins.str renewal_duration_unit: Auto-Renewal Cycle Unit Values Include: Month: Month. Year: Years.
        :param builtins.str renewal_status: Renew status.
        :param builtins.str status: The status of the resource.
        :param builtins.bool support_eip: Whether to support eip.
        """
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "expire_time", expire_time)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "instance_id", instance_id)
        pulumi.set(__self__, "instance_name", instance_name)
        pulumi.set(__self__, "instance_type", instance_type)
        pulumi.set(__self__, "payment_type", payment_type)
        pulumi.set(__self__, "private_end_point", private_end_point)
        pulumi.set(__self__, "public_endpoint", public_endpoint)
        pulumi.set(__self__, "renewal_duration", renewal_duration)
        pulumi.set(__self__, "renewal_duration_unit", renewal_duration_unit)
        pulumi.set(__self__, "renewal_status", renewal_status)
        pulumi.set(__self__, "status", status)
        pulumi.set(__self__, "support_eip", support_eip)

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> builtins.str:
        """
        OrderCreateTime.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter(name="expireTime")
    def expire_time(self) -> builtins.str:
        """
        ExpireTime.
        """
        return pulumi.get(self, "expire_time")

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

    @property
    @pulumi.getter(name="instanceId")
    def instance_id(self) -> builtins.str:
        """
        THe instance Id.
        """
        return pulumi.get(self, "instance_id")

    @property
    @pulumi.getter(name="instanceName")
    def instance_name(self) -> builtins.str:
        """
        THe instance name.
        """
        return pulumi.get(self, "instance_name")

    @property
    @pulumi.getter(name="instanceType")
    def instance_type(self) -> builtins.str:
        """
        The instance type.
        """
        return pulumi.get(self, "instance_type")

    @property
    @pulumi.getter(name="paymentType")
    def payment_type(self) -> builtins.str:
        """
        The Pay-as-You-Type Values Include: the Subscription of a Pre-Paid.
        """
        return pulumi.get(self, "payment_type")

    @property
    @pulumi.getter(name="privateEndPoint")
    def private_end_point(self) -> builtins.str:
        """
        The private endPoint.
        """
        return pulumi.get(self, "private_end_point")

    @property
    @pulumi.getter(name="publicEndpoint")
    def public_endpoint(self) -> builtins.str:
        """
        The public dndpoint.
        """
        return pulumi.get(self, "public_endpoint")

    @property
    @pulumi.getter(name="renewalDuration")
    def renewal_duration(self) -> builtins.int:
        """
        Renewal duration.
        """
        return pulumi.get(self, "renewal_duration")

    @property
    @pulumi.getter(name="renewalDurationUnit")
    def renewal_duration_unit(self) -> builtins.str:
        """
        Auto-Renewal Cycle Unit Values Include: Month: Month. Year: Years.
        """
        return pulumi.get(self, "renewal_duration_unit")

    @property
    @pulumi.getter(name="renewalStatus")
    def renewal_status(self) -> builtins.str:
        """
        Renew status.
        """
        return pulumi.get(self, "renewal_status")

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

    @property
    @pulumi.getter(name="supportEip")
    def support_eip(self) -> builtins.bool:
        """
        Whether to support eip.
        """
        return pulumi.get(self, "support_eip")


@pulumi.output_type
class GetQueuesQueueResult(dict):
    def __init__(__self__, *,
                 attributes: Mapping[str, builtins.str],
                 auto_delete_state: builtins.bool,
                 create_time: builtins.str,
                 exclusive_state: builtins.bool,
                 id: builtins.str,
                 instance_id: builtins.str,
                 last_consume_time: builtins.str,
                 queue_name: builtins.str,
                 virtual_host_name: builtins.str):
        """
        :param Mapping[str, builtins.str] attributes: The attributes for the Queue.
        :param builtins.bool auto_delete_state: Specifies whether the Auto Delete attribute is configured.
        :param builtins.str create_time: CreateTime.
        :param builtins.bool exclusive_state: Specifies whether the queue is an exclusive queue.
        :param builtins.str id: The ID of the Queue. Its value is same as Queue Name.
        :param builtins.str instance_id: The ID of the instance.
        :param builtins.str last_consume_time: The last consume time.
        :param builtins.str queue_name: The queue name.
        :param builtins.str virtual_host_name: The name of the virtual host.
        """
        pulumi.set(__self__, "attributes", attributes)
        pulumi.set(__self__, "auto_delete_state", auto_delete_state)
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "exclusive_state", exclusive_state)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "instance_id", instance_id)
        pulumi.set(__self__, "last_consume_time", last_consume_time)
        pulumi.set(__self__, "queue_name", queue_name)
        pulumi.set(__self__, "virtual_host_name", virtual_host_name)

    @property
    @pulumi.getter
    def attributes(self) -> Mapping[str, builtins.str]:
        """
        The attributes for the Queue.
        """
        return pulumi.get(self, "attributes")

    @property
    @pulumi.getter(name="autoDeleteState")
    def auto_delete_state(self) -> builtins.bool:
        """
        Specifies whether the Auto Delete attribute is configured.
        """
        return pulumi.get(self, "auto_delete_state")

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> builtins.str:
        """
        CreateTime.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter(name="exclusiveState")
    def exclusive_state(self) -> builtins.bool:
        """
        Specifies whether the queue is an exclusive queue.
        """
        return pulumi.get(self, "exclusive_state")

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

    @property
    @pulumi.getter(name="instanceId")
    def instance_id(self) -> builtins.str:
        """
        The ID of the instance.
        """
        return pulumi.get(self, "instance_id")

    @property
    @pulumi.getter(name="lastConsumeTime")
    def last_consume_time(self) -> builtins.str:
        """
        The last consume time.
        """
        return pulumi.get(self, "last_consume_time")

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

    @property
    @pulumi.getter(name="virtualHostName")
    def virtual_host_name(self) -> builtins.str:
        """
        The name of the virtual host.
        """
        return pulumi.get(self, "virtual_host_name")


@pulumi.output_type
class GetStaticAccountsAccountResult(dict):
    def __init__(__self__, *,
                 access_key: builtins.str,
                 create_time: builtins.str,
                 id: builtins.str,
                 instance_id: builtins.str,
                 master_uid: builtins.str,
                 password: builtins.str,
                 user_name: builtins.str):
        """
        :param builtins.str access_key: Access key.
        :param builtins.str create_time: Create time stamp. Unix timestamp, to millisecond level.
        :param builtins.str id: The `key` of the resource supplied above.The value is formulated as `<instance_id>:<access_key>`.
        :param builtins.str instance_id: InstanceId
        :param builtins.str master_uid: The ID of the user's primary account.
        :param builtins.str password: Static password.
        :param builtins.str user_name: Static username.
        """
        pulumi.set(__self__, "access_key", access_key)
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "instance_id", instance_id)
        pulumi.set(__self__, "master_uid", master_uid)
        pulumi.set(__self__, "password", password)
        pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter(name="accessKey")
    def access_key(self) -> builtins.str:
        """
        Access key.
        """
        return pulumi.get(self, "access_key")

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> builtins.str:
        """
        Create time stamp. Unix timestamp, to millisecond level.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter
    def id(self) -> builtins.str:
        """
        The `key` of the resource supplied above.The value is formulated as `<instance_id>:<access_key>`.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="instanceId")
    def instance_id(self) -> builtins.str:
        """
        InstanceId
        """
        return pulumi.get(self, "instance_id")

    @property
    @pulumi.getter(name="masterUid")
    def master_uid(self) -> builtins.str:
        """
        The ID of the user's primary account.
        """
        return pulumi.get(self, "master_uid")

    @property
    @pulumi.getter
    def password(self) -> builtins.str:
        """
        Static password.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> builtins.str:
        """
        Static username.
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class GetVirtualHostsHostResult(dict):
    def __init__(__self__, *,
                 id: builtins.str,
                 instance_id: builtins.str,
                 virtual_host_name: builtins.str):
        """
        :param builtins.str id: The ID of the Virtual Host.
        :param builtins.str instance_id: InstanceId.
        :param builtins.str virtual_host_name: VirtualHostName.
        """
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "instance_id", instance_id)
        pulumi.set(__self__, "virtual_host_name", virtual_host_name)

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

    @property
    @pulumi.getter(name="instanceId")
    def instance_id(self) -> builtins.str:
        """
        InstanceId.
        """
        return pulumi.get(self, "instance_id")

    @property
    @pulumi.getter(name="virtualHostName")
    def virtual_host_name(self) -> builtins.str:
        """
        VirtualHostName.
        """
        return pulumi.get(self, "virtual_host_name")


