# 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__ = [
    'InstanceEndpointsArgs',
    'InstanceEndpointsArgsDict',
    'InstanceEndpointsOverlayArgs',
    'InstanceEndpointsOverlayArgsDict',
    'InstanceEndpointsPublicArgs',
    'InstanceEndpointsPublicArgsDict',
    'InstanceResourceTagArgs',
    'InstanceResourceTagArgsDict',
    'InstanceResourceTagTagKvArgs',
    'InstanceResourceTagTagKvArgsDict',
    'InstanceResourcesArgs',
    'InstanceResourcesArgsDict',
    'InstanceResourcesStorageArgs',
    'InstanceResourcesStorageArgsDict',
    'InstanceTagArgs',
    'InstanceTagArgsDict',
]

MYPY = False

if not MYPY:
    class InstanceEndpointsArgsDict(TypedDict):
        overlay: NotRequired[pulumi.Input['InstanceEndpointsOverlayArgsDict']]
        """
        实例私网访问接入点响应数据。
        """
        public: NotRequired[pulumi.Input['InstanceEndpointsPublicArgsDict']]
        """
        实例公网访问接入点响应数据。
        """
elif False:
    InstanceEndpointsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstanceEndpointsArgs:
    def __init__(__self__, *,
                 overlay: Optional[pulumi.Input['InstanceEndpointsOverlayArgs']] = None,
                 public: Optional[pulumi.Input['InstanceEndpointsPublicArgs']] = None):
        """
        :param pulumi.Input['InstanceEndpointsOverlayArgs'] overlay: 实例私网访问接入点响应数据。
        :param pulumi.Input['InstanceEndpointsPublicArgs'] public: 实例公网访问接入点响应数据。
        """
        if overlay is not None:
            pulumi.set(__self__, "overlay", overlay)
        if public is not None:
            pulumi.set(__self__, "public", public)

    @property
    @pulumi.getter
    def overlay(self) -> Optional[pulumi.Input['InstanceEndpointsOverlayArgs']]:
        """
        实例私网访问接入点响应数据。
        """
        return pulumi.get(self, "overlay")

    @overlay.setter
    def overlay(self, value: Optional[pulumi.Input['InstanceEndpointsOverlayArgs']]):
        pulumi.set(self, "overlay", value)

    @property
    @pulumi.getter
    def public(self) -> Optional[pulumi.Input['InstanceEndpointsPublicArgs']]:
        """
        实例公网访问接入点响应数据。
        """
        return pulumi.get(self, "public")

    @public.setter
    def public(self, value: Optional[pulumi.Input['InstanceEndpointsPublicArgs']]):
        pulumi.set(self, "public", value)


if not MYPY:
    class InstanceEndpointsOverlayArgsDict(TypedDict):
        address: NotRequired[pulumi.Input[builtins.str]]
        """
        域名映射地址。
        """
        eip_id: NotRequired[pulumi.Input[builtins.str]]
        """
        实例绑定的EIP的ID。
        """
        plain: NotRequired[pulumi.Input[builtins.str]]
        """
        私网Plain接入点。
        """
        plain_port: NotRequired[pulumi.Input[builtins.int]]
        """
        普通接入点端口。
        """
        sasl: NotRequired[pulumi.Input[builtins.str]]
        """
        私网SASL认证接入点。
        """
        sasl_port: NotRequired[pulumi.Input[builtins.int]]
        """
        认证接入点端口。
        """
        ssl: NotRequired[pulumi.Input[builtins.str]]
        """
        加密接入点。
        """
        ssl_port: NotRequired[pulumi.Input[builtins.int]]
        """
        加密接入点端口。
        """
        status: NotRequired[pulumi.Input[builtins.str]]
        """
        接入点状态。
        """
        vpc_ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
        """
        售卖区网络关联的VPC ID列表。
        """
elif False:
    InstanceEndpointsOverlayArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstanceEndpointsOverlayArgs:
    def __init__(__self__, *,
                 address: Optional[pulumi.Input[builtins.str]] = None,
                 eip_id: Optional[pulumi.Input[builtins.str]] = None,
                 plain: Optional[pulumi.Input[builtins.str]] = None,
                 plain_port: Optional[pulumi.Input[builtins.int]] = None,
                 sasl: Optional[pulumi.Input[builtins.str]] = None,
                 sasl_port: Optional[pulumi.Input[builtins.int]] = None,
                 ssl: Optional[pulumi.Input[builtins.str]] = None,
                 ssl_port: Optional[pulumi.Input[builtins.int]] = None,
                 status: Optional[pulumi.Input[builtins.str]] = None,
                 vpc_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
        """
        :param pulumi.Input[builtins.str] address: 域名映射地址。
        :param pulumi.Input[builtins.str] eip_id: 实例绑定的EIP的ID。
        :param pulumi.Input[builtins.str] plain: 私网Plain接入点。
        :param pulumi.Input[builtins.int] plain_port: 普通接入点端口。
        :param pulumi.Input[builtins.str] sasl: 私网SASL认证接入点。
        :param pulumi.Input[builtins.int] sasl_port: 认证接入点端口。
        :param pulumi.Input[builtins.str] ssl: 加密接入点。
        :param pulumi.Input[builtins.int] ssl_port: 加密接入点端口。
        :param pulumi.Input[builtins.str] status: 接入点状态。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] vpc_ids: 售卖区网络关联的VPC ID列表。
        """
        if address is not None:
            pulumi.set(__self__, "address", address)
        if eip_id is not None:
            pulumi.set(__self__, "eip_id", eip_id)
        if plain is not None:
            pulumi.set(__self__, "plain", plain)
        if plain_port is not None:
            pulumi.set(__self__, "plain_port", plain_port)
        if sasl is not None:
            pulumi.set(__self__, "sasl", sasl)
        if sasl_port is not None:
            pulumi.set(__self__, "sasl_port", sasl_port)
        if ssl is not None:
            pulumi.set(__self__, "ssl", ssl)
        if ssl_port is not None:
            pulumi.set(__self__, "ssl_port", ssl_port)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if vpc_ids is not None:
            pulumi.set(__self__, "vpc_ids", vpc_ids)

    @property
    @pulumi.getter
    def address(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        域名映射地址。
        """
        return pulumi.get(self, "address")

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

    @property
    @pulumi.getter(name="eipId")
    def eip_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例绑定的EIP的ID。
        """
        return pulumi.get(self, "eip_id")

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

    @property
    @pulumi.getter
    def plain(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        私网Plain接入点。
        """
        return pulumi.get(self, "plain")

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

    @property
    @pulumi.getter(name="plainPort")
    def plain_port(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        普通接入点端口。
        """
        return pulumi.get(self, "plain_port")

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

    @property
    @pulumi.getter
    def sasl(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        私网SASL认证接入点。
        """
        return pulumi.get(self, "sasl")

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

    @property
    @pulumi.getter(name="saslPort")
    def sasl_port(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        认证接入点端口。
        """
        return pulumi.get(self, "sasl_port")

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

    @property
    @pulumi.getter
    def ssl(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        加密接入点。
        """
        return pulumi.get(self, "ssl")

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

    @property
    @pulumi.getter(name="sslPort")
    def ssl_port(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        加密接入点端口。
        """
        return pulumi.get(self, "ssl_port")

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

    @property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        接入点状态。
        """
        return pulumi.get(self, "status")

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

    @property
    @pulumi.getter(name="vpcIds")
    def vpc_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
        """
        售卖区网络关联的VPC ID列表。
        """
        return pulumi.get(self, "vpc_ids")

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


if not MYPY:
    class InstanceEndpointsPublicArgsDict(TypedDict):
        address: NotRequired[pulumi.Input[builtins.str]]
        """
        域名映射地址。
        """
        eip_id: NotRequired[pulumi.Input[builtins.str]]
        """
        实例绑定的EIP的ID。
        """
        plain: NotRequired[pulumi.Input[builtins.str]]
        """
        私网Plain接入点。
        """
        plain_port: NotRequired[pulumi.Input[builtins.int]]
        """
        普通接入点端口。
        """
        sasl: NotRequired[pulumi.Input[builtins.str]]
        """
        私网SASL认证接入点。
        """
        sasl_port: NotRequired[pulumi.Input[builtins.int]]
        """
        认证接入点端口。
        """
        ssl: NotRequired[pulumi.Input[builtins.str]]
        """
        加密接入点。
        """
        ssl_port: NotRequired[pulumi.Input[builtins.int]]
        """
        加密接入点端口。
        """
        status: NotRequired[pulumi.Input[builtins.str]]
        """
        接入点状态。
        """
        vpc_ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
        """
        售卖区网络关联的VPC ID列表。
        """
elif False:
    InstanceEndpointsPublicArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstanceEndpointsPublicArgs:
    def __init__(__self__, *,
                 address: Optional[pulumi.Input[builtins.str]] = None,
                 eip_id: Optional[pulumi.Input[builtins.str]] = None,
                 plain: Optional[pulumi.Input[builtins.str]] = None,
                 plain_port: Optional[pulumi.Input[builtins.int]] = None,
                 sasl: Optional[pulumi.Input[builtins.str]] = None,
                 sasl_port: Optional[pulumi.Input[builtins.int]] = None,
                 ssl: Optional[pulumi.Input[builtins.str]] = None,
                 ssl_port: Optional[pulumi.Input[builtins.int]] = None,
                 status: Optional[pulumi.Input[builtins.str]] = None,
                 vpc_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
        """
        :param pulumi.Input[builtins.str] address: 域名映射地址。
        :param pulumi.Input[builtins.str] eip_id: 实例绑定的EIP的ID。
        :param pulumi.Input[builtins.str] plain: 私网Plain接入点。
        :param pulumi.Input[builtins.int] plain_port: 普通接入点端口。
        :param pulumi.Input[builtins.str] sasl: 私网SASL认证接入点。
        :param pulumi.Input[builtins.int] sasl_port: 认证接入点端口。
        :param pulumi.Input[builtins.str] ssl: 加密接入点。
        :param pulumi.Input[builtins.int] ssl_port: 加密接入点端口。
        :param pulumi.Input[builtins.str] status: 接入点状态。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] vpc_ids: 售卖区网络关联的VPC ID列表。
        """
        if address is not None:
            pulumi.set(__self__, "address", address)
        if eip_id is not None:
            pulumi.set(__self__, "eip_id", eip_id)
        if plain is not None:
            pulumi.set(__self__, "plain", plain)
        if plain_port is not None:
            pulumi.set(__self__, "plain_port", plain_port)
        if sasl is not None:
            pulumi.set(__self__, "sasl", sasl)
        if sasl_port is not None:
            pulumi.set(__self__, "sasl_port", sasl_port)
        if ssl is not None:
            pulumi.set(__self__, "ssl", ssl)
        if ssl_port is not None:
            pulumi.set(__self__, "ssl_port", ssl_port)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if vpc_ids is not None:
            pulumi.set(__self__, "vpc_ids", vpc_ids)

    @property
    @pulumi.getter
    def address(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        域名映射地址。
        """
        return pulumi.get(self, "address")

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

    @property
    @pulumi.getter(name="eipId")
    def eip_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例绑定的EIP的ID。
        """
        return pulumi.get(self, "eip_id")

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

    @property
    @pulumi.getter
    def plain(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        私网Plain接入点。
        """
        return pulumi.get(self, "plain")

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

    @property
    @pulumi.getter(name="plainPort")
    def plain_port(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        普通接入点端口。
        """
        return pulumi.get(self, "plain_port")

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

    @property
    @pulumi.getter
    def sasl(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        私网SASL认证接入点。
        """
        return pulumi.get(self, "sasl")

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

    @property
    @pulumi.getter(name="saslPort")
    def sasl_port(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        认证接入点端口。
        """
        return pulumi.get(self, "sasl_port")

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

    @property
    @pulumi.getter
    def ssl(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        加密接入点。
        """
        return pulumi.get(self, "ssl")

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

    @property
    @pulumi.getter(name="sslPort")
    def ssl_port(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        加密接入点端口。
        """
        return pulumi.get(self, "ssl_port")

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

    @property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        接入点状态。
        """
        return pulumi.get(self, "status")

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

    @property
    @pulumi.getter(name="vpcIds")
    def vpc_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
        """
        售卖区网络关联的VPC ID列表。
        """
        return pulumi.get(self, "vpc_ids")

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


if not MYPY:
    class InstanceResourceTagArgsDict(TypedDict):
        tag_kvs: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstanceResourceTagTagKvArgsDict']]]]
        type: NotRequired[pulumi.Input[builtins.str]]
        """
        标签类型，取值如下：CUSTOM：自定义设置标签。SYSTEM：系统标签。
        """
elif False:
    InstanceResourceTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstanceResourceTagArgs:
    def __init__(__self__, *,
                 tag_kvs: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceResourceTagTagKvArgs']]]] = None,
                 type: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] type: 标签类型，取值如下：CUSTOM：自定义设置标签。SYSTEM：系统标签。
        """
        if tag_kvs is not None:
            pulumi.set(__self__, "tag_kvs", tag_kvs)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="tagKvs")
    def tag_kvs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceResourceTagTagKvArgs']]]]:
        return pulumi.get(self, "tag_kvs")

    @tag_kvs.setter
    def tag_kvs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceResourceTagTagKvArgs']]]]):
        pulumi.set(self, "tag_kvs", value)

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        标签类型，取值如下：CUSTOM：自定义设置标签。SYSTEM：系统标签。
        """
        return pulumi.get(self, "type")

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


if not MYPY:
    class InstanceResourceTagTagKvArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        标签键。
        """
        type: NotRequired[pulumi.Input[builtins.str]]
        """
        实例标签的类型，取值如下：CUSTOM：自定义设置标签。SYSTEM：系统标签。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        标签值。
        """
elif False:
    InstanceResourceTagTagKvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstanceResourceTagTagKvArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 type: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 标签键。
        :param pulumi.Input[builtins.str] type: 实例标签的类型，取值如下：CUSTOM：自定义设置标签。SYSTEM：系统标签。
        :param pulumi.Input[builtins.str] value: 标签值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if type is not None:
            pulumi.set(__self__, "type", type)
        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 type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例标签的类型，取值如下：CUSTOM：自定义设置标签。SYSTEM：系统标签。
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "type", 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 InstanceResourcesArgsDict(TypedDict):
        storage: NotRequired[pulumi.Input['InstanceResourcesStorageArgsDict']]
        """
        资源统计响应数据。
        """
elif False:
    InstanceResourcesArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstanceResourcesArgs:
    def __init__(__self__, *,
                 storage: Optional[pulumi.Input['InstanceResourcesStorageArgs']] = None):
        """
        :param pulumi.Input['InstanceResourcesStorageArgs'] storage: 资源统计响应数据。
        """
        if storage is not None:
            pulumi.set(__self__, "storage", storage)

    @property
    @pulumi.getter
    def storage(self) -> Optional[pulumi.Input['InstanceResourcesStorageArgs']]:
        """
        资源统计响应数据。
        """
        return pulumi.get(self, "storage")

    @storage.setter
    def storage(self, value: Optional[pulumi.Input['InstanceResourcesStorageArgs']]):
        pulumi.set(self, "storage", value)


if not MYPY:
    class InstanceResourcesStorageArgsDict(TypedDict):
        size: NotRequired[pulumi.Input[builtins.int]]
        """
        资源大小。
        """
        unit: NotRequired[pulumi.Input[builtins.str]]
        """
        资源单位。
        """
elif False:
    InstanceResourcesStorageArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstanceResourcesStorageArgs:
    def __init__(__self__, *,
                 size: Optional[pulumi.Input[builtins.int]] = None,
                 unit: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.int] size: 资源大小。
        :param pulumi.Input[builtins.str] unit: 资源单位。
        """
        if size is not None:
            pulumi.set(__self__, "size", size)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter
    def size(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        资源大小。
        """
        return pulumi.get(self, "size")

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

    @property
    @pulumi.getter
    def unit(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        资源单位。
        """
        return pulumi.get(self, "unit")

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


if not MYPY:
    class InstanceTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        标签键。
        """
        type: NotRequired[pulumi.Input[builtins.str]]
        """
        实例标签的类型，取值如下：CUSTOM：自定义设置标签。SYSTEM：系统标签。
        """
        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,
                 type: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 标签键。
        :param pulumi.Input[builtins.str] type: 实例标签的类型，取值如下：CUSTOM：自定义设置标签。SYSTEM：系统标签。
        :param pulumi.Input[builtins.str] value: 标签值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if type is not None:
            pulumi.set(__self__, "type", type)
        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 type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例标签的类型，取值如下：CUSTOM：自定义设置标签。SYSTEM：系统标签。
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "type", 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)


