# 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
from . import outputs

__all__ = [
    'InstanceEndpoints',
    'InstanceEndpointsOverlay',
    'InstanceEndpointsPublic',
    'InstanceResourceTag',
    'InstanceResourceTagTagKv',
    'InstanceResources',
    'InstanceResourcesStorage',
    'InstanceTag',
    'GetInstanceEndpointsResult',
    'GetInstanceEndpointsOverlayResult',
    'GetInstanceEndpointsPublicResult',
    'GetInstanceResourceTagResult',
    'GetInstanceResourceTagTagKvResult',
    'GetInstanceResourcesResult',
    'GetInstanceResourcesStorageResult',
    'GetInstanceTagResult',
]

@pulumi.output_type
class InstanceEndpoints(dict):
    def __init__(__self__, *,
                 overlay: Optional['outputs.InstanceEndpointsOverlay'] = None,
                 public: Optional['outputs.InstanceEndpointsPublic'] = None):
        """
        :param 'InstanceEndpointsOverlayArgs' overlay: 实例私网访问接入点响应数据。
        :param '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['outputs.InstanceEndpointsOverlay']:
        """
        实例私网访问接入点响应数据。
        """
        return pulumi.get(self, "overlay")

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


@pulumi.output_type
class InstanceEndpointsOverlay(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "eipId":
            suggest = "eip_id"
        elif key == "plainPort":
            suggest = "plain_port"
        elif key == "saslPort":
            suggest = "sasl_port"
        elif key == "sslPort":
            suggest = "ssl_port"
        elif key == "vpcIds":
            suggest = "vpc_ids"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in InstanceEndpointsOverlay. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        InstanceEndpointsOverlay.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        InstanceEndpointsOverlay.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 address: Optional[builtins.str] = None,
                 eip_id: Optional[builtins.str] = None,
                 plain: Optional[builtins.str] = None,
                 plain_port: Optional[builtins.int] = None,
                 sasl: Optional[builtins.str] = None,
                 sasl_port: Optional[builtins.int] = None,
                 ssl: Optional[builtins.str] = None,
                 ssl_port: Optional[builtins.int] = None,
                 status: Optional[builtins.str] = None,
                 vpc_ids: Optional[Sequence[builtins.str]] = None):
        """
        :param builtins.str address: 域名映射地址。
        :param builtins.str eip_id: 实例绑定的EIP的ID。
        :param builtins.str plain: 私网Plain接入点。
        :param builtins.int plain_port: 普通接入点端口。
        :param builtins.str sasl: 私网SASL认证接入点。
        :param builtins.int sasl_port: 认证接入点端口。
        :param builtins.str ssl: 加密接入点。
        :param builtins.int ssl_port: 加密接入点端口。
        :param builtins.str status: 接入点状态。
        :param Sequence[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[builtins.str]:
        """
        域名映射地址。
        """
        return pulumi.get(self, "address")

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

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

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

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

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

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

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

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

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


@pulumi.output_type
class InstanceEndpointsPublic(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "eipId":
            suggest = "eip_id"
        elif key == "plainPort":
            suggest = "plain_port"
        elif key == "saslPort":
            suggest = "sasl_port"
        elif key == "sslPort":
            suggest = "ssl_port"
        elif key == "vpcIds":
            suggest = "vpc_ids"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in InstanceEndpointsPublic. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        InstanceEndpointsPublic.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        InstanceEndpointsPublic.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 address: Optional[builtins.str] = None,
                 eip_id: Optional[builtins.str] = None,
                 plain: Optional[builtins.str] = None,
                 plain_port: Optional[builtins.int] = None,
                 sasl: Optional[builtins.str] = None,
                 sasl_port: Optional[builtins.int] = None,
                 ssl: Optional[builtins.str] = None,
                 ssl_port: Optional[builtins.int] = None,
                 status: Optional[builtins.str] = None,
                 vpc_ids: Optional[Sequence[builtins.str]] = None):
        """
        :param builtins.str address: 域名映射地址。
        :param builtins.str eip_id: 实例绑定的EIP的ID。
        :param builtins.str plain: 私网Plain接入点。
        :param builtins.int plain_port: 普通接入点端口。
        :param builtins.str sasl: 私网SASL认证接入点。
        :param builtins.int sasl_port: 认证接入点端口。
        :param builtins.str ssl: 加密接入点。
        :param builtins.int ssl_port: 加密接入点端口。
        :param builtins.str status: 接入点状态。
        :param Sequence[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[builtins.str]:
        """
        域名映射地址。
        """
        return pulumi.get(self, "address")

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

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

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

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

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

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

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

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

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


@pulumi.output_type
class InstanceResourceTag(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "tagKvs":
            suggest = "tag_kvs"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in InstanceResourceTag. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        InstanceResourceTag.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        InstanceResourceTag.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 tag_kvs: Optional[Sequence['outputs.InstanceResourceTagTagKv']] = None,
                 type: Optional[builtins.str] = None):
        """
        :param 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[Sequence['outputs.InstanceResourceTagTagKv']]:
        return pulumi.get(self, "tag_kvs")

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


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

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

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


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

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


@pulumi.output_type
class InstanceResourcesStorage(dict):
    def __init__(__self__, *,
                 size: Optional[builtins.int] = None,
                 unit: Optional[builtins.str] = None):
        """
        :param builtins.int size: 资源大小。
        :param 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[builtins.int]:
        """
        资源大小。
        """
        return pulumi.get(self, "size")

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


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

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

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


@pulumi.output_type
class GetInstanceEndpointsResult(dict):
    def __init__(__self__, *,
                 overlay: 'outputs.GetInstanceEndpointsOverlayResult',
                 public: 'outputs.GetInstanceEndpointsPublicResult'):
        """
        :param 'GetInstanceEndpointsOverlayArgs' overlay: 实例私网访问接入点响应数据。
        :param 'GetInstanceEndpointsPublicArgs' public: 实例公网访问接入点响应数据。
        """
        pulumi.set(__self__, "overlay", overlay)
        pulumi.set(__self__, "public", public)

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

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


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


@pulumi.output_type
class GetInstanceResourceTagResult(dict):
    def __init__(__self__, *,
                 tag_kvs: Sequence['outputs.GetInstanceResourceTagTagKvResult'],
                 type: builtins.str):
        """
        :param Sequence['GetInstanceResourceTagTagKvArgs'] tag_kvs: 标签键值对。
        :param builtins.str type: 标签类型，取值如下：CUSTOM：自定义设置标签。SYSTEM：系统标签。
        """
        pulumi.set(__self__, "tag_kvs", tag_kvs)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="tagKvs")
    def tag_kvs(self) -> Sequence['outputs.GetInstanceResourceTagTagKvResult']:
        """
        标签键值对。
        """
        return pulumi.get(self, "tag_kvs")

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


@pulumi.output_type
class GetInstanceResourceTagTagKvResult(dict):
    def __init__(__self__, *,
                 key: builtins.str,
                 type: builtins.str,
                 value: builtins.str):
        """
        :param builtins.str key: 标签键。
        :param builtins.str type: 实例标签的类型，取值如下：CUSTOM：自定义设置标签。SYSTEM：系统标签。
        :param builtins.str value: 标签值。
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "type", type)
        pulumi.set(__self__, "value", value)

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

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

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


@pulumi.output_type
class GetInstanceResourcesResult(dict):
    def __init__(__self__, *,
                 storage: 'outputs.GetInstanceResourcesStorageResult'):
        """
        :param 'GetInstanceResourcesStorageArgs' storage: 资源统计响应数据。
        """
        pulumi.set(__self__, "storage", storage)

    @property
    @pulumi.getter
    def storage(self) -> 'outputs.GetInstanceResourcesStorageResult':
        """
        资源统计响应数据。
        """
        return pulumi.get(self, "storage")


@pulumi.output_type
class GetInstanceResourcesStorageResult(dict):
    def __init__(__self__, *,
                 size: builtins.int,
                 unit: builtins.str):
        """
        :param builtins.int size: 资源大小。
        :param builtins.str unit: 资源单位。
        """
        pulumi.set(__self__, "size", size)
        pulumi.set(__self__, "unit", unit)

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

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


@pulumi.output_type
class GetInstanceTagResult(dict):
    def __init__(__self__, *,
                 key: builtins.str,
                 type: builtins.str,
                 value: builtins.str):
        """
        :param builtins.str key: 标签键。
        :param builtins.str type: 实例标签的类型，取值如下：CUSTOM：自定义设置标签。SYSTEM：系统标签。
        :param builtins.str value: 标签值。
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "type", type)
        pulumi.set(__self__, "value", value)

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

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

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


