# 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__ = [
    'InstanceChargeDetailArgs',
    'InstanceChargeDetailArgsDict',
    'InstanceEndpointArgs',
    'InstanceEndpointArgsDict',
    'InstanceTagArgs',
    'InstanceTagArgsDict',
    'PublicAddressChargeDetailArgs',
    'PublicAddressChargeDetailArgsDict',
    'PublicAddressEndpointArgs',
    'PublicAddressEndpointArgsDict',
    'PublicAddressTagArgs',
    'PublicAddressTagArgsDict',
]

MYPY = False

if not MYPY:
    class InstanceChargeDetailArgsDict(TypedDict):
        auto_renew: NotRequired[pulumi.Input[builtins.bool]]
        """
        包年包月实例到期后是否自动续费。
        """
        charge_end_time: NotRequired[pulumi.Input[builtins.str]]
        """
        实例的结束计费时间，时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        charge_expire_time: NotRequired[pulumi.Input[builtins.str]]
        """
        包年包月实例的到期时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        charge_start_time: NotRequired[pulumi.Input[builtins.str]]
        """
        实例的开始计费时间，时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        charge_status: NotRequired[pulumi.Input[builtins.str]]
        """
        实例的计费状态。包括：Normal：正常，Overdue：按量计费欠费，Expired：包年包月到期。
        """
        charge_type: NotRequired[pulumi.Input[builtins.str]]
        """
        实例的计费类型。支持的类型包括：PostPaid ：按量付费，PrePaid：包年包月。
        """
        overdue_reclaim_time: NotRequired[pulumi.Input[builtins.str]]
        """
        实例欠费关停后的预计释放时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        overdue_time: NotRequired[pulumi.Input[builtins.str]]
        """
        实例的欠费关停时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        period: NotRequired[pulumi.Input[builtins.int]]
        """
        包年包月类型实例的购买时长。PeriodUnit 指定为 Month 时，取值范围为 1~9。PeriodUnit 指定为 Year 时，取值范围为 1~3。
        """
        period_unit: NotRequired[pulumi.Input[builtins.str]]
        """
        购买时长的单位，取值如下：MONTHLY：按月购买。YEARLY：按年购买。
        """
elif False:
    InstanceChargeDetailArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstanceChargeDetailArgs:
    def __init__(__self__, *,
                 auto_renew: Optional[pulumi.Input[builtins.bool]] = None,
                 charge_end_time: Optional[pulumi.Input[builtins.str]] = None,
                 charge_expire_time: Optional[pulumi.Input[builtins.str]] = None,
                 charge_start_time: Optional[pulumi.Input[builtins.str]] = None,
                 charge_status: Optional[pulumi.Input[builtins.str]] = None,
                 charge_type: Optional[pulumi.Input[builtins.str]] = None,
                 overdue_reclaim_time: Optional[pulumi.Input[builtins.str]] = None,
                 overdue_time: Optional[pulumi.Input[builtins.str]] = None,
                 period: Optional[pulumi.Input[builtins.int]] = None,
                 period_unit: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.bool] auto_renew: 包年包月实例到期后是否自动续费。
        :param pulumi.Input[builtins.str] charge_end_time: 实例的结束计费时间，时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        :param pulumi.Input[builtins.str] charge_expire_time: 包年包月实例的到期时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        :param pulumi.Input[builtins.str] charge_start_time: 实例的开始计费时间，时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        :param pulumi.Input[builtins.str] charge_status: 实例的计费状态。包括：Normal：正常，Overdue：按量计费欠费，Expired：包年包月到期。
        :param pulumi.Input[builtins.str] charge_type: 实例的计费类型。支持的类型包括：PostPaid ：按量付费，PrePaid：包年包月。
        :param pulumi.Input[builtins.str] overdue_reclaim_time: 实例欠费关停后的预计释放时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        :param pulumi.Input[builtins.str] overdue_time: 实例的欠费关停时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        :param pulumi.Input[builtins.int] period: 包年包月类型实例的购买时长。PeriodUnit 指定为 Month 时，取值范围为 1~9。PeriodUnit 指定为 Year 时，取值范围为 1~3。
        :param pulumi.Input[builtins.str] period_unit: 购买时长的单位，取值如下：MONTHLY：按月购买。YEARLY：按年购买。
        """
        if auto_renew is not None:
            pulumi.set(__self__, "auto_renew", auto_renew)
        if charge_end_time is not None:
            pulumi.set(__self__, "charge_end_time", charge_end_time)
        if charge_expire_time is not None:
            pulumi.set(__self__, "charge_expire_time", charge_expire_time)
        if charge_start_time is not None:
            pulumi.set(__self__, "charge_start_time", charge_start_time)
        if charge_status is not None:
            pulumi.set(__self__, "charge_status", charge_status)
        if charge_type is not None:
            pulumi.set(__self__, "charge_type", charge_type)
        if overdue_reclaim_time is not None:
            pulumi.set(__self__, "overdue_reclaim_time", overdue_reclaim_time)
        if overdue_time is not None:
            pulumi.set(__self__, "overdue_time", overdue_time)
        if period is not None:
            pulumi.set(__self__, "period", period)
        if period_unit is not None:
            pulumi.set(__self__, "period_unit", period_unit)

    @property
    @pulumi.getter(name="autoRenew")
    def auto_renew(self) -> Optional[pulumi.Input[builtins.bool]]:
        """
        包年包月实例到期后是否自动续费。
        """
        return pulumi.get(self, "auto_renew")

    @auto_renew.setter
    def auto_renew(self, value: Optional[pulumi.Input[builtins.bool]]):
        pulumi.set(self, "auto_renew", value)

    @property
    @pulumi.getter(name="chargeEndTime")
    def charge_end_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例的结束计费时间，时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        return pulumi.get(self, "charge_end_time")

    @charge_end_time.setter
    def charge_end_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "charge_end_time", value)

    @property
    @pulumi.getter(name="chargeExpireTime")
    def charge_expire_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        包年包月实例的到期时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        return pulumi.get(self, "charge_expire_time")

    @charge_expire_time.setter
    def charge_expire_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "charge_expire_time", value)

    @property
    @pulumi.getter(name="chargeStartTime")
    def charge_start_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例的开始计费时间，时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        return pulumi.get(self, "charge_start_time")

    @charge_start_time.setter
    def charge_start_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "charge_start_time", value)

    @property
    @pulumi.getter(name="chargeStatus")
    def charge_status(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例的计费状态。包括：Normal：正常，Overdue：按量计费欠费，Expired：包年包月到期。
        """
        return pulumi.get(self, "charge_status")

    @charge_status.setter
    def charge_status(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "charge_status", value)

    @property
    @pulumi.getter(name="chargeType")
    def charge_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例的计费类型。支持的类型包括：PostPaid ：按量付费，PrePaid：包年包月。
        """
        return pulumi.get(self, "charge_type")

    @charge_type.setter
    def charge_type(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "charge_type", value)

    @property
    @pulumi.getter(name="overdueReclaimTime")
    def overdue_reclaim_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例欠费关停后的预计释放时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        return pulumi.get(self, "overdue_reclaim_time")

    @overdue_reclaim_time.setter
    def overdue_reclaim_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "overdue_reclaim_time", value)

    @property
    @pulumi.getter(name="overdueTime")
    def overdue_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例的欠费关停时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        return pulumi.get(self, "overdue_time")

    @overdue_time.setter
    def overdue_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "overdue_time", value)

    @property
    @pulumi.getter
    def period(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        包年包月类型实例的购买时长。PeriodUnit 指定为 Month 时，取值范围为 1~9。PeriodUnit 指定为 Year 时，取值范围为 1~3。
        """
        return pulumi.get(self, "period")

    @period.setter
    def period(self, value: Optional[pulumi.Input[builtins.int]]):
        pulumi.set(self, "period", value)

    @property
    @pulumi.getter(name="periodUnit")
    def period_unit(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        购买时长的单位，取值如下：MONTHLY：按月购买。YEARLY：按年购买。
        """
        return pulumi.get(self, "period_unit")

    @period_unit.setter
    def period_unit(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "period_unit", value)


if not MYPY:
    class InstanceEndpointArgsDict(TypedDict):
        endpoint_type: NotRequired[pulumi.Input[builtins.str]]
        """
        实例的接入点类型。RabbitMQ实例提供的接入点类型包括：WEB：Web UI 接入点，AMQP0*9*1：AMQP 接入点，MQTT：MQTT接入点，WEB_MQTT：WEB ，MQTT 接入点，STOMP：STOMP 接入点。
        """
        internal_endpoint: NotRequired[pulumi.Input[builtins.str]]
        """
        实例的私网访问域名。
        """
        internal_ip_endpoint: NotRequired[pulumi.Input[builtins.str]]
        """
        公共服务区 IP 接入点。
        """
        network_type: NotRequired[pulumi.Input[builtins.str]]
        """
        接入点的网络类型。PrivateNetwork 表示私有网络 VPC。
        """
        public_endpoint: NotRequired[pulumi.Input[builtins.str]]
        """
        实例公网访问域名。仅在开启公网访问之后显示。
        """
elif False:
    InstanceEndpointArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstanceEndpointArgs:
    def __init__(__self__, *,
                 endpoint_type: Optional[pulumi.Input[builtins.str]] = None,
                 internal_endpoint: Optional[pulumi.Input[builtins.str]] = None,
                 internal_ip_endpoint: Optional[pulumi.Input[builtins.str]] = None,
                 network_type: Optional[pulumi.Input[builtins.str]] = None,
                 public_endpoint: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] endpoint_type: 实例的接入点类型。RabbitMQ实例提供的接入点类型包括：WEB：Web UI 接入点，AMQP0*9*1：AMQP 接入点，MQTT：MQTT接入点，WEB_MQTT：WEB ，MQTT 接入点，STOMP：STOMP 接入点。
        :param pulumi.Input[builtins.str] internal_endpoint: 实例的私网访问域名。
        :param pulumi.Input[builtins.str] internal_ip_endpoint: 公共服务区 IP 接入点。
        :param pulumi.Input[builtins.str] network_type: 接入点的网络类型。PrivateNetwork 表示私有网络 VPC。
        :param pulumi.Input[builtins.str] public_endpoint: 实例公网访问域名。仅在开启公网访问之后显示。
        """
        if endpoint_type is not None:
            pulumi.set(__self__, "endpoint_type", endpoint_type)
        if internal_endpoint is not None:
            pulumi.set(__self__, "internal_endpoint", internal_endpoint)
        if internal_ip_endpoint is not None:
            pulumi.set(__self__, "internal_ip_endpoint", internal_ip_endpoint)
        if network_type is not None:
            pulumi.set(__self__, "network_type", network_type)
        if public_endpoint is not None:
            pulumi.set(__self__, "public_endpoint", public_endpoint)

    @property
    @pulumi.getter(name="endpointType")
    def endpoint_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例的接入点类型。RabbitMQ实例提供的接入点类型包括：WEB：Web UI 接入点，AMQP0*9*1：AMQP 接入点，MQTT：MQTT接入点，WEB_MQTT：WEB ，MQTT 接入点，STOMP：STOMP 接入点。
        """
        return pulumi.get(self, "endpoint_type")

    @endpoint_type.setter
    def endpoint_type(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "endpoint_type", value)

    @property
    @pulumi.getter(name="internalEndpoint")
    def internal_endpoint(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例的私网访问域名。
        """
        return pulumi.get(self, "internal_endpoint")

    @internal_endpoint.setter
    def internal_endpoint(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "internal_endpoint", value)

    @property
    @pulumi.getter(name="internalIpEndpoint")
    def internal_ip_endpoint(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        公共服务区 IP 接入点。
        """
        return pulumi.get(self, "internal_ip_endpoint")

    @internal_ip_endpoint.setter
    def internal_ip_endpoint(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "internal_ip_endpoint", value)

    @property
    @pulumi.getter(name="networkType")
    def network_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        接入点的网络类型。PrivateNetwork 表示私有网络 VPC。
        """
        return pulumi.get(self, "network_type")

    @network_type.setter
    def network_type(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "network_type", value)

    @property
    @pulumi.getter(name="publicEndpoint")
    def public_endpoint(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例公网访问域名。仅在开启公网访问之后显示。
        """
        return pulumi.get(self, "public_endpoint")

    @public_endpoint.setter
    def public_endpoint(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "public_endpoint", value)


if not MYPY:
    class InstanceTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        标签的键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        标签的值。
        """
elif False:
    InstanceTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstanceTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 标签的键。
        :param pulumi.Input[builtins.str] value: 标签的值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        标签的键。
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "key", value)

    @property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        标签的值。
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class PublicAddressChargeDetailArgsDict(TypedDict):
        auto_renew: NotRequired[pulumi.Input[builtins.bool]]
        """
        包年包月实例到期后是否自动续费。
        """
        charge_end_time: NotRequired[pulumi.Input[builtins.str]]
        """
        实例的结束计费时间，时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        charge_expire_time: NotRequired[pulumi.Input[builtins.str]]
        """
        包年包月实例的到期时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        charge_start_time: NotRequired[pulumi.Input[builtins.str]]
        """
        实例的开始计费时间，时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        charge_status: NotRequired[pulumi.Input[builtins.str]]
        """
        实例的计费状态。包括：Normal：正常，Overdue：按量计费欠费，Expired：包年包月到期。
        """
        charge_type: NotRequired[pulumi.Input[builtins.str]]
        """
        实例的计费类型。支持的类型包括：PostPaid ：按量付费，PrePaid：包年包月。
        """
        overdue_reclaim_time: NotRequired[pulumi.Input[builtins.str]]
        """
        实例欠费关停后的预计释放时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        overdue_time: NotRequired[pulumi.Input[builtins.str]]
        """
        实例的欠费关停时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
elif False:
    PublicAddressChargeDetailArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PublicAddressChargeDetailArgs:
    def __init__(__self__, *,
                 auto_renew: Optional[pulumi.Input[builtins.bool]] = None,
                 charge_end_time: Optional[pulumi.Input[builtins.str]] = None,
                 charge_expire_time: Optional[pulumi.Input[builtins.str]] = None,
                 charge_start_time: Optional[pulumi.Input[builtins.str]] = None,
                 charge_status: Optional[pulumi.Input[builtins.str]] = None,
                 charge_type: Optional[pulumi.Input[builtins.str]] = None,
                 overdue_reclaim_time: Optional[pulumi.Input[builtins.str]] = None,
                 overdue_time: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.bool] auto_renew: 包年包月实例到期后是否自动续费。
        :param pulumi.Input[builtins.str] charge_end_time: 实例的结束计费时间，时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        :param pulumi.Input[builtins.str] charge_expire_time: 包年包月实例的到期时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        :param pulumi.Input[builtins.str] charge_start_time: 实例的开始计费时间，时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        :param pulumi.Input[builtins.str] charge_status: 实例的计费状态。包括：Normal：正常，Overdue：按量计费欠费，Expired：包年包月到期。
        :param pulumi.Input[builtins.str] charge_type: 实例的计费类型。支持的类型包括：PostPaid ：按量付费，PrePaid：包年包月。
        :param pulumi.Input[builtins.str] overdue_reclaim_time: 实例欠费关停后的预计释放时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        :param pulumi.Input[builtins.str] overdue_time: 实例的欠费关停时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        if auto_renew is not None:
            pulumi.set(__self__, "auto_renew", auto_renew)
        if charge_end_time is not None:
            pulumi.set(__self__, "charge_end_time", charge_end_time)
        if charge_expire_time is not None:
            pulumi.set(__self__, "charge_expire_time", charge_expire_time)
        if charge_start_time is not None:
            pulumi.set(__self__, "charge_start_time", charge_start_time)
        if charge_status is not None:
            pulumi.set(__self__, "charge_status", charge_status)
        if charge_type is not None:
            pulumi.set(__self__, "charge_type", charge_type)
        if overdue_reclaim_time is not None:
            pulumi.set(__self__, "overdue_reclaim_time", overdue_reclaim_time)
        if overdue_time is not None:
            pulumi.set(__self__, "overdue_time", overdue_time)

    @property
    @pulumi.getter(name="autoRenew")
    def auto_renew(self) -> Optional[pulumi.Input[builtins.bool]]:
        """
        包年包月实例到期后是否自动续费。
        """
        return pulumi.get(self, "auto_renew")

    @auto_renew.setter
    def auto_renew(self, value: Optional[pulumi.Input[builtins.bool]]):
        pulumi.set(self, "auto_renew", value)

    @property
    @pulumi.getter(name="chargeEndTime")
    def charge_end_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例的结束计费时间，时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        return pulumi.get(self, "charge_end_time")

    @charge_end_time.setter
    def charge_end_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "charge_end_time", value)

    @property
    @pulumi.getter(name="chargeExpireTime")
    def charge_expire_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        包年包月实例的到期时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        return pulumi.get(self, "charge_expire_time")

    @charge_expire_time.setter
    def charge_expire_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "charge_expire_time", value)

    @property
    @pulumi.getter(name="chargeStartTime")
    def charge_start_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例的开始计费时间，时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        return pulumi.get(self, "charge_start_time")

    @charge_start_time.setter
    def charge_start_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "charge_start_time", value)

    @property
    @pulumi.getter(name="chargeStatus")
    def charge_status(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例的计费状态。包括：Normal：正常，Overdue：按量计费欠费，Expired：包年包月到期。
        """
        return pulumi.get(self, "charge_status")

    @charge_status.setter
    def charge_status(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "charge_status", value)

    @property
    @pulumi.getter(name="chargeType")
    def charge_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例的计费类型。支持的类型包括：PostPaid ：按量付费，PrePaid：包年包月。
        """
        return pulumi.get(self, "charge_type")

    @charge_type.setter
    def charge_type(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "charge_type", value)

    @property
    @pulumi.getter(name="overdueReclaimTime")
    def overdue_reclaim_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例欠费关停后的预计释放时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        return pulumi.get(self, "overdue_reclaim_time")

    @overdue_reclaim_time.setter
    def overdue_reclaim_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "overdue_reclaim_time", value)

    @property
    @pulumi.getter(name="overdueTime")
    def overdue_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例的欠费关停时间。时间显示格式为 YYYY-MM-DD'T'HH:MM:SS'Z'。
        """
        return pulumi.get(self, "overdue_time")

    @overdue_time.setter
    def overdue_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "overdue_time", value)


if not MYPY:
    class PublicAddressEndpointArgsDict(TypedDict):
        endpoint_type: NotRequired[pulumi.Input[builtins.str]]
        """
        实例的接入点类型。RabbitMQ实例提供的接入点类型包括：WEB：Web UI 接入点，AMQP0*9*1：AMQP 接入点，MQTT：MQTT接入点，WEB_MQTT：WEB ，MQTT 接入点，STOMP：STOMP 接入点。
        """
        internal_endpoint: NotRequired[pulumi.Input[builtins.str]]
        """
        实例的私网访问域名。
        """
        internal_ip_endpoint: NotRequired[pulumi.Input[builtins.str]]
        """
        公共服务区 IP 接入点。
        """
        network_type: NotRequired[pulumi.Input[builtins.str]]
        """
        接入点的网络类型。PrivateNetwork 表示私有网络 VPC。
        """
        public_endpoint: NotRequired[pulumi.Input[builtins.str]]
        """
        实例公网访问域名。仅在开启公网访问之后显示。
        """
elif False:
    PublicAddressEndpointArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PublicAddressEndpointArgs:
    def __init__(__self__, *,
                 endpoint_type: Optional[pulumi.Input[builtins.str]] = None,
                 internal_endpoint: Optional[pulumi.Input[builtins.str]] = None,
                 internal_ip_endpoint: Optional[pulumi.Input[builtins.str]] = None,
                 network_type: Optional[pulumi.Input[builtins.str]] = None,
                 public_endpoint: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] endpoint_type: 实例的接入点类型。RabbitMQ实例提供的接入点类型包括：WEB：Web UI 接入点，AMQP0*9*1：AMQP 接入点，MQTT：MQTT接入点，WEB_MQTT：WEB ，MQTT 接入点，STOMP：STOMP 接入点。
        :param pulumi.Input[builtins.str] internal_endpoint: 实例的私网访问域名。
        :param pulumi.Input[builtins.str] internal_ip_endpoint: 公共服务区 IP 接入点。
        :param pulumi.Input[builtins.str] network_type: 接入点的网络类型。PrivateNetwork 表示私有网络 VPC。
        :param pulumi.Input[builtins.str] public_endpoint: 实例公网访问域名。仅在开启公网访问之后显示。
        """
        if endpoint_type is not None:
            pulumi.set(__self__, "endpoint_type", endpoint_type)
        if internal_endpoint is not None:
            pulumi.set(__self__, "internal_endpoint", internal_endpoint)
        if internal_ip_endpoint is not None:
            pulumi.set(__self__, "internal_ip_endpoint", internal_ip_endpoint)
        if network_type is not None:
            pulumi.set(__self__, "network_type", network_type)
        if public_endpoint is not None:
            pulumi.set(__self__, "public_endpoint", public_endpoint)

    @property
    @pulumi.getter(name="endpointType")
    def endpoint_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例的接入点类型。RabbitMQ实例提供的接入点类型包括：WEB：Web UI 接入点，AMQP0*9*1：AMQP 接入点，MQTT：MQTT接入点，WEB_MQTT：WEB ，MQTT 接入点，STOMP：STOMP 接入点。
        """
        return pulumi.get(self, "endpoint_type")

    @endpoint_type.setter
    def endpoint_type(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "endpoint_type", value)

    @property
    @pulumi.getter(name="internalEndpoint")
    def internal_endpoint(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例的私网访问域名。
        """
        return pulumi.get(self, "internal_endpoint")

    @internal_endpoint.setter
    def internal_endpoint(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "internal_endpoint", value)

    @property
    @pulumi.getter(name="internalIpEndpoint")
    def internal_ip_endpoint(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        公共服务区 IP 接入点。
        """
        return pulumi.get(self, "internal_ip_endpoint")

    @internal_ip_endpoint.setter
    def internal_ip_endpoint(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "internal_ip_endpoint", value)

    @property
    @pulumi.getter(name="networkType")
    def network_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        接入点的网络类型。PrivateNetwork 表示私有网络 VPC。
        """
        return pulumi.get(self, "network_type")

    @network_type.setter
    def network_type(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "network_type", value)

    @property
    @pulumi.getter(name="publicEndpoint")
    def public_endpoint(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例公网访问域名。仅在开启公网访问之后显示。
        """
        return pulumi.get(self, "public_endpoint")

    @public_endpoint.setter
    def public_endpoint(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "public_endpoint", value)


if not MYPY:
    class PublicAddressTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        标签的键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        标签的值。
        """
elif False:
    PublicAddressTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PublicAddressTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 标签的键。
        :param pulumi.Input[builtins.str] value: 标签的值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        标签的键。
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "key", value)

    @property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        标签的值。
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "value", value)


