# 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__ = [
    'DomainBackendGroup',
    'DomainBackendGroupBackend',
    'DomainCloudAccessConfig',
    'DomainProtocolPorts',
    'DomainTcpListenerConfig',
    'DomainTlsFieldsConfig',
    'DomainTlsFieldsConfigHeadersConfig',
    'GetDomainBackendGroupResult',
    'GetDomainBackendGroupBackendResult',
    'GetDomainCloudAccessConfigResult',
    'GetDomainProtocolPortsResult',
    'GetDomainTcpListenerConfigResult',
    'GetDomainTlsFieldsConfigResult',
    'GetDomainTlsFieldsConfigHeadersConfigResult',
]

@pulumi.output_type
class DomainBackendGroup(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessPorts":
            suggest = "access_ports"

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

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

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

    def __init__(__self__, *,
                 access_ports: Optional[Sequence[builtins.int]] = None,
                 backends: Optional[Sequence['outputs.DomainBackendGroupBackend']] = None,
                 name: Optional[builtins.str] = None):
        """
        :param Sequence[builtins.int] access_ports: 接入的端口号。
        :param builtins.str name: 源站组名称。
        """
        if access_ports is not None:
            pulumi.set(__self__, "access_ports", access_ports)
        if backends is not None:
            pulumi.set(__self__, "backends", backends)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter(name="accessPorts")
    def access_ports(self) -> Optional[Sequence[builtins.int]]:
        """
        接入的端口号。
        """
        return pulumi.get(self, "access_ports")

    @property
    @pulumi.getter
    def backends(self) -> Optional[Sequence['outputs.DomainBackendGroupBackend']]:
        return pulumi.get(self, "backends")

    @property
    @pulumi.getter
    def name(self) -> Optional[builtins.str]:
        """
        源站组名称。
        """
        return pulumi.get(self, "name")


@pulumi.output_type
class DomainBackendGroupBackend(dict):
    def __init__(__self__, *,
                 ip: Optional[builtins.str] = None,
                 port: Optional[builtins.int] = None,
                 protocol: Optional[builtins.str] = None,
                 weight: Optional[builtins.int] = None):
        """
        :param builtins.str ip: 源站 IP 地址。
        :param builtins.int port: 源站端口。
        :param builtins.str protocol: 源站协议。
        :param builtins.int weight: 源站权重。
        """
        if ip is not None:
            pulumi.set(__self__, "ip", ip)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if protocol is not None:
            pulumi.set(__self__, "protocol", protocol)
        if weight is not None:
            pulumi.set(__self__, "weight", weight)

    @property
    @pulumi.getter
    def ip(self) -> Optional[builtins.str]:
        """
        源站 IP 地址。
        """
        return pulumi.get(self, "ip")

    @property
    @pulumi.getter
    def port(self) -> Optional[builtins.int]:
        """
        源站端口。
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter
    def protocol(self) -> Optional[builtins.str]:
        """
        源站协议。
        """
        return pulumi.get(self, "protocol")

    @property
    @pulumi.getter
    def weight(self) -> Optional[builtins.int]:
        """
        源站权重。
        """
        return pulumi.get(self, "weight")


@pulumi.output_type
class DomainCloudAccessConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessProtocol":
            suggest = "access_protocol"
        elif key == "defenceMode":
            suggest = "defence_mode"
        elif key == "instanceId":
            suggest = "instance_id"
        elif key == "instanceName":
            suggest = "instance_name"
        elif key == "listenerId":
            suggest = "listener_id"
        elif key == "lostAssociationFromAlb":
            suggest = "lost_association_from_alb"

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

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

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

    def __init__(__self__, *,
                 access_protocol: Optional[builtins.str] = None,
                 defence_mode: Optional[builtins.int] = None,
                 instance_id: Optional[builtins.str] = None,
                 instance_name: Optional[builtins.str] = None,
                 listener_id: Optional[builtins.str] = None,
                 lost_association_from_alb: Optional[builtins.int] = None,
                 port: Optional[builtins.str] = None,
                 protocol: Optional[builtins.str] = None):
        """
        :param builtins.str access_protocol: 接入协议类型。
        :param builtins.int defence_mode: 防护模式。
        :param builtins.str instance_id: 负载均衡实例 ID。
        :param builtins.str instance_name: 负载均衡实例名称。
        :param builtins.str listener_id: 负载均衡监听器 ID。
        :param builtins.int lost_association_from_alb: 是否从 ALB 中丢失关联。
        :param builtins.str port: 监听器转发规则的端口号。
        :param builtins.str protocol: 监听器转发规则的协议类型。
        """
        if access_protocol is not None:
            pulumi.set(__self__, "access_protocol", access_protocol)
        if defence_mode is not None:
            pulumi.set(__self__, "defence_mode", defence_mode)
        if instance_id is not None:
            pulumi.set(__self__, "instance_id", instance_id)
        if instance_name is not None:
            pulumi.set(__self__, "instance_name", instance_name)
        if listener_id is not None:
            pulumi.set(__self__, "listener_id", listener_id)
        if lost_association_from_alb is not None:
            pulumi.set(__self__, "lost_association_from_alb", lost_association_from_alb)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if protocol is not None:
            pulumi.set(__self__, "protocol", protocol)

    @property
    @pulumi.getter(name="accessProtocol")
    def access_protocol(self) -> Optional[builtins.str]:
        """
        接入协议类型。
        """
        return pulumi.get(self, "access_protocol")

    @property
    @pulumi.getter(name="defenceMode")
    def defence_mode(self) -> Optional[builtins.int]:
        """
        防护模式。
        """
        return pulumi.get(self, "defence_mode")

    @property
    @pulumi.getter(name="instanceId")
    def instance_id(self) -> Optional[builtins.str]:
        """
        负载均衡实例 ID。
        """
        return pulumi.get(self, "instance_id")

    @property
    @pulumi.getter(name="instanceName")
    def instance_name(self) -> Optional[builtins.str]:
        """
        负载均衡实例名称。
        """
        return pulumi.get(self, "instance_name")

    @property
    @pulumi.getter(name="listenerId")
    def listener_id(self) -> Optional[builtins.str]:
        """
        负载均衡监听器 ID。
        """
        return pulumi.get(self, "listener_id")

    @property
    @pulumi.getter(name="lostAssociationFromAlb")
    def lost_association_from_alb(self) -> Optional[builtins.int]:
        """
        是否从 ALB 中丢失关联。
        """
        return pulumi.get(self, "lost_association_from_alb")

    @property
    @pulumi.getter
    def port(self) -> Optional[builtins.str]:
        """
        监听器转发规则的端口号。
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter
    def protocol(self) -> Optional[builtins.str]:
        """
        监听器转发规则的协议类型。
        """
        return pulumi.get(self, "protocol")


@pulumi.output_type
class DomainProtocolPorts(dict):
    def __init__(__self__, *,
                 http: Optional[Sequence[builtins.int]] = None,
                 https: Optional[Sequence[builtins.int]] = None):
        """
        :param Sequence[builtins.int] http: HTTP 协议的端口号。
        :param Sequence[builtins.int] https: HTTPS 协议的端口号。
        """
        if http is not None:
            pulumi.set(__self__, "http", http)
        if https is not None:
            pulumi.set(__self__, "https", https)

    @property
    @pulumi.getter
    def http(self) -> Optional[Sequence[builtins.int]]:
        """
        HTTP 协议的端口号。
        """
        return pulumi.get(self, "http")

    @property
    @pulumi.getter
    def https(self) -> Optional[Sequence[builtins.int]]:
        """
        HTTPS 协议的端口号。
        """
        return pulumi.get(self, "https")


@pulumi.output_type
class DomainTcpListenerConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessProtocol":
            suggest = "access_protocol"
        elif key == "defenceMode":
            suggest = "defence_mode"
        elif key == "instanceId":
            suggest = "instance_id"
        elif key == "instanceName":
            suggest = "instance_name"
        elif key == "listenerId":
            suggest = "listener_id"
        elif key == "lostAssociationFromAlb":
            suggest = "lost_association_from_alb"

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

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

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

    def __init__(__self__, *,
                 access_protocol: Optional[builtins.str] = None,
                 defence_mode: Optional[builtins.int] = None,
                 instance_id: Optional[builtins.str] = None,
                 instance_name: Optional[builtins.str] = None,
                 listener_id: Optional[builtins.str] = None,
                 lost_association_from_alb: Optional[builtins.int] = None,
                 port: Optional[builtins.str] = None,
                 protocol: Optional[builtins.str] = None):
        """
        :param builtins.str access_protocol: 接入协议类型。
        :param builtins.int defence_mode: 防护模式。
        :param builtins.str instance_id: 实例 ID。
        :param builtins.str instance_name: 实例名称。
        :param builtins.str listener_id: 监听器 ID。
        :param builtins.int lost_association_from_alb: 是否从 ALB 中丢失关联。
        :param builtins.str port: 监听器的端口号。
        :param builtins.str protocol: 监听器协议类型。
        """
        if access_protocol is not None:
            pulumi.set(__self__, "access_protocol", access_protocol)
        if defence_mode is not None:
            pulumi.set(__self__, "defence_mode", defence_mode)
        if instance_id is not None:
            pulumi.set(__self__, "instance_id", instance_id)
        if instance_name is not None:
            pulumi.set(__self__, "instance_name", instance_name)
        if listener_id is not None:
            pulumi.set(__self__, "listener_id", listener_id)
        if lost_association_from_alb is not None:
            pulumi.set(__self__, "lost_association_from_alb", lost_association_from_alb)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if protocol is not None:
            pulumi.set(__self__, "protocol", protocol)

    @property
    @pulumi.getter(name="accessProtocol")
    def access_protocol(self) -> Optional[builtins.str]:
        """
        接入协议类型。
        """
        return pulumi.get(self, "access_protocol")

    @property
    @pulumi.getter(name="defenceMode")
    def defence_mode(self) -> Optional[builtins.int]:
        """
        防护模式。
        """
        return pulumi.get(self, "defence_mode")

    @property
    @pulumi.getter(name="instanceId")
    def instance_id(self) -> Optional[builtins.str]:
        """
        实例 ID。
        """
        return pulumi.get(self, "instance_id")

    @property
    @pulumi.getter(name="instanceName")
    def instance_name(self) -> Optional[builtins.str]:
        """
        实例名称。
        """
        return pulumi.get(self, "instance_name")

    @property
    @pulumi.getter(name="listenerId")
    def listener_id(self) -> Optional[builtins.str]:
        """
        监听器 ID。
        """
        return pulumi.get(self, "listener_id")

    @property
    @pulumi.getter(name="lostAssociationFromAlb")
    def lost_association_from_alb(self) -> Optional[builtins.int]:
        """
        是否从 ALB 中丢失关联。
        """
        return pulumi.get(self, "lost_association_from_alb")

    @property
    @pulumi.getter
    def port(self) -> Optional[builtins.str]:
        """
        监听器的端口号。
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter
    def protocol(self) -> Optional[builtins.str]:
        """
        监听器协议类型。
        """
        return pulumi.get(self, "protocol")


@pulumi.output_type
class DomainTlsFieldsConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "headersConfig":
            suggest = "headers_config"

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

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

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

    def __init__(__self__, *,
                 headers_config: Optional['outputs.DomainTlsFieldsConfigHeadersConfig'] = None):
        if headers_config is not None:
            pulumi.set(__self__, "headers_config", headers_config)

    @property
    @pulumi.getter(name="headersConfig")
    def headers_config(self) -> Optional['outputs.DomainTlsFieldsConfigHeadersConfig']:
        return pulumi.get(self, "headers_config")


@pulumi.output_type
class DomainTlsFieldsConfigHeadersConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "excludedKeyLists":
            suggest = "excluded_key_lists"
        elif key == "statisticalKeyLists":
            suggest = "statistical_key_lists"

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

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

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

    def __init__(__self__, *,
                 enable: Optional[builtins.int] = None,
                 excluded_key_lists: Optional[Sequence[builtins.str]] = None,
                 statistical_key_lists: Optional[Sequence[builtins.str]] = None):
        """
        :param builtins.int enable: 是否记录全量 header。
        :param Sequence[builtins.str] excluded_key_lists: 例外 header 字段，将对应字段从字段的 JSON 中排除，可帮助节约日志存储空间。
        :param Sequence[builtins.str] statistical_key_lists: 统计 header 字段，将对应字段用于日志统计分析和告警。
        """
        if enable is not None:
            pulumi.set(__self__, "enable", enable)
        if excluded_key_lists is not None:
            pulumi.set(__self__, "excluded_key_lists", excluded_key_lists)
        if statistical_key_lists is not None:
            pulumi.set(__self__, "statistical_key_lists", statistical_key_lists)

    @property
    @pulumi.getter
    def enable(self) -> Optional[builtins.int]:
        """
        是否记录全量 header。
        """
        return pulumi.get(self, "enable")

    @property
    @pulumi.getter(name="excludedKeyLists")
    def excluded_key_lists(self) -> Optional[Sequence[builtins.str]]:
        """
        例外 header 字段，将对应字段从字段的 JSON 中排除，可帮助节约日志存储空间。
        """
        return pulumi.get(self, "excluded_key_lists")

    @property
    @pulumi.getter(name="statisticalKeyLists")
    def statistical_key_lists(self) -> Optional[Sequence[builtins.str]]:
        """
        统计 header 字段，将对应字段用于日志统计分析和告警。
        """
        return pulumi.get(self, "statistical_key_lists")


@pulumi.output_type
class GetDomainBackendGroupResult(dict):
    def __init__(__self__, *,
                 access_ports: Sequence[builtins.int],
                 backends: Sequence['outputs.GetDomainBackendGroupBackendResult'],
                 name: builtins.str):
        """
        :param Sequence[builtins.int] access_ports: 接入的端口号。
        :param Sequence['GetDomainBackendGroupBackendArgs'] backends: 源站组详情。
        :param builtins.str name: 源站组名称。
        """
        pulumi.set(__self__, "access_ports", access_ports)
        pulumi.set(__self__, "backends", backends)
        pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter(name="accessPorts")
    def access_ports(self) -> Sequence[builtins.int]:
        """
        接入的端口号。
        """
        return pulumi.get(self, "access_ports")

    @property
    @pulumi.getter
    def backends(self) -> Sequence['outputs.GetDomainBackendGroupBackendResult']:
        """
        源站组详情。
        """
        return pulumi.get(self, "backends")

    @property
    @pulumi.getter
    def name(self) -> builtins.str:
        """
        源站组名称。
        """
        return pulumi.get(self, "name")


@pulumi.output_type
class GetDomainBackendGroupBackendResult(dict):
    def __init__(__self__, *,
                 ip: builtins.str,
                 port: builtins.int,
                 protocol: builtins.str,
                 weight: builtins.int):
        """
        :param builtins.str ip: 源站 IP 地址。
        :param builtins.int port: 源站端口。
        :param builtins.str protocol: 源站协议。
        :param builtins.int weight: 源站权重。
        """
        pulumi.set(__self__, "ip", ip)
        pulumi.set(__self__, "port", port)
        pulumi.set(__self__, "protocol", protocol)
        pulumi.set(__self__, "weight", weight)

    @property
    @pulumi.getter
    def ip(self) -> builtins.str:
        """
        源站 IP 地址。
        """
        return pulumi.get(self, "ip")

    @property
    @pulumi.getter
    def port(self) -> builtins.int:
        """
        源站端口。
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter
    def protocol(self) -> builtins.str:
        """
        源站协议。
        """
        return pulumi.get(self, "protocol")

    @property
    @pulumi.getter
    def weight(self) -> builtins.int:
        """
        源站权重。
        """
        return pulumi.get(self, "weight")


@pulumi.output_type
class GetDomainCloudAccessConfigResult(dict):
    def __init__(__self__, *,
                 access_protocol: builtins.str,
                 defence_mode: builtins.int,
                 instance_id: builtins.str,
                 instance_name: builtins.str,
                 listener_id: builtins.str,
                 lost_association_from_alb: builtins.int,
                 port: builtins.str,
                 protocol: builtins.str):
        """
        :param builtins.str access_protocol: 接入协议类型。
        :param builtins.int defence_mode: 防护模式。
        :param builtins.str instance_id: 负载均衡实例 ID。
        :param builtins.str instance_name: 负载均衡实例名称。
        :param builtins.str listener_id: 负载均衡监听器 ID。
        :param builtins.int lost_association_from_alb: 是否从 ALB 中丢失关联。
        :param builtins.str port: 监听器转发规则的端口号。
        :param builtins.str protocol: 监听器转发规则的协议类型。
        """
        pulumi.set(__self__, "access_protocol", access_protocol)
        pulumi.set(__self__, "defence_mode", defence_mode)
        pulumi.set(__self__, "instance_id", instance_id)
        pulumi.set(__self__, "instance_name", instance_name)
        pulumi.set(__self__, "listener_id", listener_id)
        pulumi.set(__self__, "lost_association_from_alb", lost_association_from_alb)
        pulumi.set(__self__, "port", port)
        pulumi.set(__self__, "protocol", protocol)

    @property
    @pulumi.getter(name="accessProtocol")
    def access_protocol(self) -> builtins.str:
        """
        接入协议类型。
        """
        return pulumi.get(self, "access_protocol")

    @property
    @pulumi.getter(name="defenceMode")
    def defence_mode(self) -> builtins.int:
        """
        防护模式。
        """
        return pulumi.get(self, "defence_mode")

    @property
    @pulumi.getter(name="instanceId")
    def instance_id(self) -> builtins.str:
        """
        负载均衡实例 ID。
        """
        return pulumi.get(self, "instance_id")

    @property
    @pulumi.getter(name="instanceName")
    def instance_name(self) -> builtins.str:
        """
        负载均衡实例名称。
        """
        return pulumi.get(self, "instance_name")

    @property
    @pulumi.getter(name="listenerId")
    def listener_id(self) -> builtins.str:
        """
        负载均衡监听器 ID。
        """
        return pulumi.get(self, "listener_id")

    @property
    @pulumi.getter(name="lostAssociationFromAlb")
    def lost_association_from_alb(self) -> builtins.int:
        """
        是否从 ALB 中丢失关联。
        """
        return pulumi.get(self, "lost_association_from_alb")

    @property
    @pulumi.getter
    def port(self) -> builtins.str:
        """
        监听器转发规则的端口号。
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter
    def protocol(self) -> builtins.str:
        """
        监听器转发规则的协议类型。
        """
        return pulumi.get(self, "protocol")


@pulumi.output_type
class GetDomainProtocolPortsResult(dict):
    def __init__(__self__, *,
                 http: Sequence[builtins.int],
                 https: Sequence[builtins.int]):
        """
        :param Sequence[builtins.int] http: HTTP 协议的端口号。
        :param Sequence[builtins.int] https: HTTPS 协议的端口号。
        """
        pulumi.set(__self__, "http", http)
        pulumi.set(__self__, "https", https)

    @property
    @pulumi.getter
    def http(self) -> Sequence[builtins.int]:
        """
        HTTP 协议的端口号。
        """
        return pulumi.get(self, "http")

    @property
    @pulumi.getter
    def https(self) -> Sequence[builtins.int]:
        """
        HTTPS 协议的端口号。
        """
        return pulumi.get(self, "https")


@pulumi.output_type
class GetDomainTcpListenerConfigResult(dict):
    def __init__(__self__, *,
                 access_protocol: builtins.str,
                 defence_mode: builtins.int,
                 instance_id: builtins.str,
                 instance_name: builtins.str,
                 listener_id: builtins.str,
                 lost_association_from_alb: builtins.int,
                 port: builtins.str,
                 protocol: builtins.str):
        """
        :param builtins.str access_protocol: 接入协议类型。
        :param builtins.int defence_mode: 防护模式。
        :param builtins.str instance_id: 实例 ID。
        :param builtins.str instance_name: 实例名称。
        :param builtins.str listener_id: 监听器 ID。
        :param builtins.int lost_association_from_alb: 是否从 ALB 中丢失关联。
        :param builtins.str port: 监听器的端口号。
        :param builtins.str protocol: 监听器协议类型。
        """
        pulumi.set(__self__, "access_protocol", access_protocol)
        pulumi.set(__self__, "defence_mode", defence_mode)
        pulumi.set(__self__, "instance_id", instance_id)
        pulumi.set(__self__, "instance_name", instance_name)
        pulumi.set(__self__, "listener_id", listener_id)
        pulumi.set(__self__, "lost_association_from_alb", lost_association_from_alb)
        pulumi.set(__self__, "port", port)
        pulumi.set(__self__, "protocol", protocol)

    @property
    @pulumi.getter(name="accessProtocol")
    def access_protocol(self) -> builtins.str:
        """
        接入协议类型。
        """
        return pulumi.get(self, "access_protocol")

    @property
    @pulumi.getter(name="defenceMode")
    def defence_mode(self) -> builtins.int:
        """
        防护模式。
        """
        return pulumi.get(self, "defence_mode")

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

    @property
    @pulumi.getter(name="instanceName")
    def instance_name(self) -> builtins.str:
        """
        实例名称。
        """
        return pulumi.get(self, "instance_name")

    @property
    @pulumi.getter(name="listenerId")
    def listener_id(self) -> builtins.str:
        """
        监听器 ID。
        """
        return pulumi.get(self, "listener_id")

    @property
    @pulumi.getter(name="lostAssociationFromAlb")
    def lost_association_from_alb(self) -> builtins.int:
        """
        是否从 ALB 中丢失关联。
        """
        return pulumi.get(self, "lost_association_from_alb")

    @property
    @pulumi.getter
    def port(self) -> builtins.str:
        """
        监听器的端口号。
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter
    def protocol(self) -> builtins.str:
        """
        监听器协议类型。
        """
        return pulumi.get(self, "protocol")


@pulumi.output_type
class GetDomainTlsFieldsConfigResult(dict):
    def __init__(__self__, *,
                 headers_config: 'outputs.GetDomainTlsFieldsConfigHeadersConfigResult'):
        pulumi.set(__self__, "headers_config", headers_config)

    @property
    @pulumi.getter(name="headersConfig")
    def headers_config(self) -> 'outputs.GetDomainTlsFieldsConfigHeadersConfigResult':
        return pulumi.get(self, "headers_config")


@pulumi.output_type
class GetDomainTlsFieldsConfigHeadersConfigResult(dict):
    def __init__(__self__, *,
                 enable: builtins.int,
                 excluded_key_lists: Sequence[builtins.str],
                 statistical_key_lists: Sequence[builtins.str]):
        """
        :param builtins.int enable: 是否记录全量 header。
        :param Sequence[builtins.str] excluded_key_lists: 例外 header 字段，将对应字段从字段的 JSON 中排除，可帮助节约日志存储空间。
        :param Sequence[builtins.str] statistical_key_lists: 统计 header 字段，将对应字段用于日志统计分析和告警。
        """
        pulumi.set(__self__, "enable", enable)
        pulumi.set(__self__, "excluded_key_lists", excluded_key_lists)
        pulumi.set(__self__, "statistical_key_lists", statistical_key_lists)

    @property
    @pulumi.getter
    def enable(self) -> builtins.int:
        """
        是否记录全量 header。
        """
        return pulumi.get(self, "enable")

    @property
    @pulumi.getter(name="excludedKeyLists")
    def excluded_key_lists(self) -> Sequence[builtins.str]:
        """
        例外 header 字段，将对应字段从字段的 JSON 中排除，可帮助节约日志存储空间。
        """
        return pulumi.get(self, "excluded_key_lists")

    @property
    @pulumi.getter(name="statisticalKeyLists")
    def statistical_key_lists(self) -> Sequence[builtins.str]:
        """
        统计 header 字段，将对应字段用于日志统计分析和告警。
        """
        return pulumi.get(self, "statistical_key_lists")


