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

__all__ = ['DomainArgs', 'Domain']

@pulumi.input_type
class DomainArgs:
    def __init__(__self__, *,
                 access_mode: pulumi.Input[builtins.int],
                 domain: pulumi.Input[builtins.str],
                 api_enable: Optional[pulumi.Input[builtins.int]] = None,
                 auto_cc_enable: Optional[pulumi.Input[builtins.int]] = None,
                 backend_groups: Optional[pulumi.Input[Sequence[pulumi.Input['DomainBackendGroupArgs']]]] = None,
                 black_ip_enable: Optional[pulumi.Input[builtins.int]] = None,
                 black_lct_enable: Optional[pulumi.Input[builtins.int]] = None,
                 bot_dytoken_enable: Optional[pulumi.Input[builtins.int]] = None,
                 bot_frequency_enable: Optional[pulumi.Input[builtins.int]] = None,
                 bot_repeat_enable: Optional[pulumi.Input[builtins.int]] = None,
                 bot_sequence_default_action: Optional[pulumi.Input[builtins.int]] = None,
                 bot_sequence_enable: Optional[pulumi.Input[builtins.int]] = None,
                 cc_enable: Optional[pulumi.Input[builtins.int]] = None,
                 certificate_id: Optional[pulumi.Input[builtins.str]] = None,
                 certificate_platform: Optional[pulumi.Input[builtins.str]] = None,
                 client_ip_location: Optional[pulumi.Input[builtins.int]] = None,
                 client_max_body_size: Optional[pulumi.Input[builtins.int]] = None,
                 cloud_access_configs: Optional[pulumi.Input[Sequence[pulumi.Input['DomainCloudAccessConfigArgs']]]] = None,
                 custom_bot_enable: Optional[pulumi.Input[builtins.int]] = None,
                 custom_headers: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 custom_rsp_enable: Optional[pulumi.Input[builtins.int]] = None,
                 custom_sni: Optional[pulumi.Input[builtins.str]] = None,
                 defence_mode: Optional[pulumi.Input[builtins.int]] = None,
                 dlp_enable: Optional[pulumi.Input[builtins.int]] = None,
                 enable_custom_redirect: Optional[pulumi.Input[builtins.int]] = None,
                 enable_http2: Optional[pulumi.Input[builtins.int]] = None,
                 enable_ipv6: Optional[pulumi.Input[builtins.int]] = None,
                 enable_sni: Optional[pulumi.Input[builtins.int]] = None,
                 keep_alive_request: Optional[pulumi.Input[builtins.int]] = None,
                 keep_alive_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 lb_algorithm: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 protocol_follow: Optional[pulumi.Input[builtins.int]] = None,
                 protocol_ports: Optional[pulumi.Input['DomainProtocolPortsArgs']] = None,
                 protocols: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 proxy_config: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_connect_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_keep_alive: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_keep_alive_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_read_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_retry: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_write_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 public_real_server: Optional[pulumi.Input[builtins.int]] = None,
                 ssl_ciphers: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 ssl_protocols: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 system_bot_enable: Optional[pulumi.Input[builtins.int]] = None,
                 tamper_proof_enable: Optional[pulumi.Input[builtins.int]] = None,
                 tls_enable: Optional[pulumi.Input[builtins.int]] = None,
                 tls_fields_config: Optional[pulumi.Input['DomainTlsFieldsConfigArgs']] = None,
                 vpc_id: Optional[pulumi.Input[builtins.str]] = None,
                 waf_enable: Optional[pulumi.Input[builtins.int]] = None,
                 waf_white_req_enable: Optional[pulumi.Input[builtins.int]] = None,
                 white_enable: Optional[pulumi.Input[builtins.int]] = None,
                 white_field_enable: Optional[pulumi.Input[builtins.int]] = None):
        """
        The set of arguments for constructing a Domain resource.
        :param pulumi.Input[builtins.int] access_mode: 接入模式。10：CNAME 接入，11：负载均衡（CLB）7 层接入。
        :param pulumi.Input[builtins.str] domain: 防护的域名信息，支持泛域名和精确域名。
        :param pulumi.Input[builtins.int] api_enable: 是否开启了 API 防护策略。0：关闭，1：开启。
        :param pulumi.Input[builtins.int] auto_cc_enable: 是否开启智能 CC 防护策略。0：关闭，1：开启。
        :param pulumi.Input[builtins.int] black_ip_enable: 是否开启了黑名单策略。0：关闭, 1：开启。
        :param pulumi.Input[builtins.int] black_lct_enable: 是否开启了区域封禁策略。0：关闭;1：开启。
        :param pulumi.Input[builtins.int] bot_dytoken_enable: 是否开启动态Token防护。
        :param pulumi.Input[builtins.int] bot_frequency_enable: 是否开启 bot 频率限制策略。
               0：关闭
               1：开启。
        :param pulumi.Input[builtins.int] bot_repeat_enable: 是否开启 bot 统计防护策略。
               0：关闭
               1：开启。
        :param pulumi.Input[builtins.int] bot_sequence_default_action: 设置 bot 行为地图策略默认动作，当 BotSequenceEnable = 1 开启状态时生效。默认为 0 （观察）。
               0：观察
               2：拦截
               6：JS 挑战
               7：人机验证。
        :param pulumi.Input[builtins.int] bot_sequence_enable: 是否开启 bot 行为地图。
               0：关闭
               1：开启。
        :param pulumi.Input[builtins.int] cc_enable: 是否开启 CC 防护策略。
               0：关闭
               1：开启。
        :param pulumi.Input[builtins.str] certificate_id: 托管至证书中心的证书ID。
        :param pulumi.Input[builtins.str] certificate_platform: 证书托管平台:waf/certificate_service。
        :param pulumi.Input[builtins.int] client_ip_location: 客户端IP获取方式。0:自定义Header字段,1:通过X-Forwarded-For(XFF)字段中第一个公网IP地址作为客户端真实IP地址。
        :param pulumi.Input[builtins.int] client_max_body_size: 客户端请求body最大值(MB)。
        :param pulumi.Input[builtins.int] custom_bot_enable: 是否开启自定义BOT防护。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] custom_headers: 自定义Header。
        :param pulumi.Input[builtins.int] custom_rsp_enable: 是否开启自定义响应。
        :param pulumi.Input[builtins.str] custom_sni: 自定义SNI。
        :param pulumi.Input[builtins.int] defence_mode: 为例外 ALB 实例设置防护模式。
               1：启用防护，已配置的防护策略生效。
               2：暂停防护，仅执行转发而不检测，已配置的防护策略不生效。
               3：回源模式，直接将请求解析至源站，不再转发至 WAF 实例。
               设置例外防护实例后，域名可能还会存在以下防护状态：
               5：部分启用，默认防护模式为启用防护，但存在例外实例为暂停防护或回源模式状态。
               6：部分暂停，默认防护模式为暂停防护，但存在例外实例为启用防护或回源模式状态。
               7：部分回源，默认防护模式为回源模式，但存在例外实例为启用防护或暂停防护状态。
        :param pulumi.Input[builtins.int] dlp_enable: 是否开启数据泄露防护。
        :param pulumi.Input[builtins.int] enable_custom_redirect: 是否开启用户自定义重定向。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] enable_http2: 是否开启HTTP2.0。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] enable_ipv6: 是否支持防护Ipv6请求。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] enable_sni: 是否开启SNI配置。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] keep_alive_request: 长连接复用个数。
        :param pulumi.Input[builtins.int] keep_alive_timeout: 长连接保持时间(秒)。
        :param pulumi.Input[builtins.str] lb_algorithm: 负载均衡算法类型。wrr:加权轮询,wlc:加权最小连接数,sh:源地址哈希。
        :param pulumi.Input[builtins.str] project_name: 项目名称。
        :param pulumi.Input[builtins.int] protocol_follow: 是否开启协议跟随。0:关闭,1:开启。
        :param pulumi.Input['DomainProtocolPortsArgs'] protocol_ports: 接入端口信息。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] protocols: 接入协议类型,支持HTTP/HTTPS。
        :param pulumi.Input[builtins.int] proxy_config: 是否开启代理配置。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] proxy_connect_timeout: WAF和后端服务器的建连超时时间(秒)。
        :param pulumi.Input[builtins.int] proxy_keep_alive: WAF回源长连接可复用个数。
        :param pulumi.Input[builtins.int] proxy_keep_alive_timeout: 空闲长连接超时时间(秒)。
        :param pulumi.Input[builtins.int] proxy_read_timeout: WAF从后端服务器读取响应的超时时间(秒)。
        :param pulumi.Input[builtins.int] proxy_retry: WAF回源重试次数。
        :param pulumi.Input[builtins.int] proxy_write_timeout: WAF将请求传输到后端服务器的超时时间(秒)。
        :param pulumi.Input[builtins.int] public_real_server: CNAME接入回源方式。0:私网回源,1:公网回源。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] ssl_ciphers: 加密套件。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] ssl_protocols: TLS协议版本。如:TLSv1,TLSv1.1,TLSv1.2,TLSv1.3。
        :param pulumi.Input[builtins.int] system_bot_enable: 是否开启托管BOT防护。
        :param pulumi.Input[builtins.int] tamper_proof_enable: 是否开启防篡改。
        :param pulumi.Input[builtins.int] tls_enable: 是否开启日志服务。0:关闭,1:开启。
        :param pulumi.Input['DomainTlsFieldsConfigArgs'] tls_fields_config: 日志字段配置详情。
        :param pulumi.Input[builtins.str] vpc_id: VPC ID。
        :param pulumi.Input[builtins.int] waf_enable: 是否开启WAF防护。
        :param pulumi.Input[builtins.int] waf_white_req_enable: 是否开启白名单请求防护。
        :param pulumi.Input[builtins.int] white_enable: 是否开启白名单防护。
        :param pulumi.Input[builtins.int] white_field_enable: 是否开启字段白名单防护。
        """
        pulumi.set(__self__, "access_mode", access_mode)
        pulumi.set(__self__, "domain", domain)
        if api_enable is not None:
            pulumi.set(__self__, "api_enable", api_enable)
        if auto_cc_enable is not None:
            pulumi.set(__self__, "auto_cc_enable", auto_cc_enable)
        if backend_groups is not None:
            pulumi.set(__self__, "backend_groups", backend_groups)
        if black_ip_enable is not None:
            pulumi.set(__self__, "black_ip_enable", black_ip_enable)
        if black_lct_enable is not None:
            pulumi.set(__self__, "black_lct_enable", black_lct_enable)
        if bot_dytoken_enable is not None:
            pulumi.set(__self__, "bot_dytoken_enable", bot_dytoken_enable)
        if bot_frequency_enable is not None:
            pulumi.set(__self__, "bot_frequency_enable", bot_frequency_enable)
        if bot_repeat_enable is not None:
            pulumi.set(__self__, "bot_repeat_enable", bot_repeat_enable)
        if bot_sequence_default_action is not None:
            pulumi.set(__self__, "bot_sequence_default_action", bot_sequence_default_action)
        if bot_sequence_enable is not None:
            pulumi.set(__self__, "bot_sequence_enable", bot_sequence_enable)
        if cc_enable is not None:
            pulumi.set(__self__, "cc_enable", cc_enable)
        if certificate_id is not None:
            pulumi.set(__self__, "certificate_id", certificate_id)
        if certificate_platform is not None:
            pulumi.set(__self__, "certificate_platform", certificate_platform)
        if client_ip_location is not None:
            pulumi.set(__self__, "client_ip_location", client_ip_location)
        if client_max_body_size is not None:
            pulumi.set(__self__, "client_max_body_size", client_max_body_size)
        if cloud_access_configs is not None:
            pulumi.set(__self__, "cloud_access_configs", cloud_access_configs)
        if custom_bot_enable is not None:
            pulumi.set(__self__, "custom_bot_enable", custom_bot_enable)
        if custom_headers is not None:
            pulumi.set(__self__, "custom_headers", custom_headers)
        if custom_rsp_enable is not None:
            pulumi.set(__self__, "custom_rsp_enable", custom_rsp_enable)
        if custom_sni is not None:
            pulumi.set(__self__, "custom_sni", custom_sni)
        if defence_mode is not None:
            pulumi.set(__self__, "defence_mode", defence_mode)
        if dlp_enable is not None:
            pulumi.set(__self__, "dlp_enable", dlp_enable)
        if enable_custom_redirect is not None:
            pulumi.set(__self__, "enable_custom_redirect", enable_custom_redirect)
        if enable_http2 is not None:
            pulumi.set(__self__, "enable_http2", enable_http2)
        if enable_ipv6 is not None:
            pulumi.set(__self__, "enable_ipv6", enable_ipv6)
        if enable_sni is not None:
            pulumi.set(__self__, "enable_sni", enable_sni)
        if keep_alive_request is not None:
            pulumi.set(__self__, "keep_alive_request", keep_alive_request)
        if keep_alive_timeout is not None:
            pulumi.set(__self__, "keep_alive_timeout", keep_alive_timeout)
        if lb_algorithm is not None:
            pulumi.set(__self__, "lb_algorithm", lb_algorithm)
        if project_name is not None:
            pulumi.set(__self__, "project_name", project_name)
        if protocol_follow is not None:
            pulumi.set(__self__, "protocol_follow", protocol_follow)
        if protocol_ports is not None:
            pulumi.set(__self__, "protocol_ports", protocol_ports)
        if protocols is not None:
            pulumi.set(__self__, "protocols", protocols)
        if proxy_config is not None:
            pulumi.set(__self__, "proxy_config", proxy_config)
        if proxy_connect_timeout is not None:
            pulumi.set(__self__, "proxy_connect_timeout", proxy_connect_timeout)
        if proxy_keep_alive is not None:
            pulumi.set(__self__, "proxy_keep_alive", proxy_keep_alive)
        if proxy_keep_alive_timeout is not None:
            pulumi.set(__self__, "proxy_keep_alive_timeout", proxy_keep_alive_timeout)
        if proxy_read_timeout is not None:
            pulumi.set(__self__, "proxy_read_timeout", proxy_read_timeout)
        if proxy_retry is not None:
            pulumi.set(__self__, "proxy_retry", proxy_retry)
        if proxy_write_timeout is not None:
            pulumi.set(__self__, "proxy_write_timeout", proxy_write_timeout)
        if public_real_server is not None:
            pulumi.set(__self__, "public_real_server", public_real_server)
        if ssl_ciphers is not None:
            pulumi.set(__self__, "ssl_ciphers", ssl_ciphers)
        if ssl_protocols is not None:
            pulumi.set(__self__, "ssl_protocols", ssl_protocols)
        if system_bot_enable is not None:
            pulumi.set(__self__, "system_bot_enable", system_bot_enable)
        if tamper_proof_enable is not None:
            pulumi.set(__self__, "tamper_proof_enable", tamper_proof_enable)
        if tls_enable is not None:
            pulumi.set(__self__, "tls_enable", tls_enable)
        if tls_fields_config is not None:
            pulumi.set(__self__, "tls_fields_config", tls_fields_config)
        if vpc_id is not None:
            pulumi.set(__self__, "vpc_id", vpc_id)
        if waf_enable is not None:
            pulumi.set(__self__, "waf_enable", waf_enable)
        if waf_white_req_enable is not None:
            pulumi.set(__self__, "waf_white_req_enable", waf_white_req_enable)
        if white_enable is not None:
            pulumi.set(__self__, "white_enable", white_enable)
        if white_field_enable is not None:
            pulumi.set(__self__, "white_field_enable", white_field_enable)

    @property
    @pulumi.getter(name="accessMode")
    def access_mode(self) -> pulumi.Input[builtins.int]:
        """
        接入模式。10：CNAME 接入，11：负载均衡（CLB）7 层接入。
        """
        return pulumi.get(self, "access_mode")

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

    @property
    @pulumi.getter
    def domain(self) -> pulumi.Input[builtins.str]:
        """
        防护的域名信息，支持泛域名和精确域名。
        """
        return pulumi.get(self, "domain")

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

    @property
    @pulumi.getter(name="apiEnable")
    def api_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启了 API 防护策略。0：关闭，1：开启。
        """
        return pulumi.get(self, "api_enable")

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

    @property
    @pulumi.getter(name="autoCcEnable")
    def auto_cc_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启智能 CC 防护策略。0：关闭，1：开启。
        """
        return pulumi.get(self, "auto_cc_enable")

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

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

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

    @property
    @pulumi.getter(name="blackIpEnable")
    def black_ip_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启了黑名单策略。0：关闭, 1：开启。
        """
        return pulumi.get(self, "black_ip_enable")

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

    @property
    @pulumi.getter(name="blackLctEnable")
    def black_lct_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启了区域封禁策略。0：关闭;1：开启。
        """
        return pulumi.get(self, "black_lct_enable")

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

    @property
    @pulumi.getter(name="botDytokenEnable")
    def bot_dytoken_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启动态Token防护。
        """
        return pulumi.get(self, "bot_dytoken_enable")

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

    @property
    @pulumi.getter(name="botFrequencyEnable")
    def bot_frequency_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启 bot 频率限制策略。
        0：关闭
        1：开启。
        """
        return pulumi.get(self, "bot_frequency_enable")

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

    @property
    @pulumi.getter(name="botRepeatEnable")
    def bot_repeat_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启 bot 统计防护策略。
        0：关闭
        1：开启。
        """
        return pulumi.get(self, "bot_repeat_enable")

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

    @property
    @pulumi.getter(name="botSequenceDefaultAction")
    def bot_sequence_default_action(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        设置 bot 行为地图策略默认动作，当 BotSequenceEnable = 1 开启状态时生效。默认为 0 （观察）。
        0：观察
        2：拦截
        6：JS 挑战
        7：人机验证。
        """
        return pulumi.get(self, "bot_sequence_default_action")

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

    @property
    @pulumi.getter(name="botSequenceEnable")
    def bot_sequence_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启 bot 行为地图。
        0：关闭
        1：开启。
        """
        return pulumi.get(self, "bot_sequence_enable")

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

    @property
    @pulumi.getter(name="ccEnable")
    def cc_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启 CC 防护策略。
        0：关闭
        1：开启。
        """
        return pulumi.get(self, "cc_enable")

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

    @property
    @pulumi.getter(name="certificateId")
    def certificate_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        托管至证书中心的证书ID。
        """
        return pulumi.get(self, "certificate_id")

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

    @property
    @pulumi.getter(name="certificatePlatform")
    def certificate_platform(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        证书托管平台:waf/certificate_service。
        """
        return pulumi.get(self, "certificate_platform")

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

    @property
    @pulumi.getter(name="clientIpLocation")
    def client_ip_location(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        客户端IP获取方式。0:自定义Header字段,1:通过X-Forwarded-For(XFF)字段中第一个公网IP地址作为客户端真实IP地址。
        """
        return pulumi.get(self, "client_ip_location")

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

    @property
    @pulumi.getter(name="clientMaxBodySize")
    def client_max_body_size(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        客户端请求body最大值(MB)。
        """
        return pulumi.get(self, "client_max_body_size")

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

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

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

    @property
    @pulumi.getter(name="customBotEnable")
    def custom_bot_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启自定义BOT防护。
        """
        return pulumi.get(self, "custom_bot_enable")

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

    @property
    @pulumi.getter(name="customHeaders")
    def custom_headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
        """
        自定义Header。
        """
        return pulumi.get(self, "custom_headers")

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

    @property
    @pulumi.getter(name="customRspEnable")
    def custom_rsp_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启自定义响应。
        """
        return pulumi.get(self, "custom_rsp_enable")

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

    @property
    @pulumi.getter(name="customSni")
    def custom_sni(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        自定义SNI。
        """
        return pulumi.get(self, "custom_sni")

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

    @property
    @pulumi.getter(name="defenceMode")
    def defence_mode(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        为例外 ALB 实例设置防护模式。
        1：启用防护，已配置的防护策略生效。
        2：暂停防护，仅执行转发而不检测，已配置的防护策略不生效。
        3：回源模式，直接将请求解析至源站，不再转发至 WAF 实例。
        设置例外防护实例后，域名可能还会存在以下防护状态：
        5：部分启用，默认防护模式为启用防护，但存在例外实例为暂停防护或回源模式状态。
        6：部分暂停，默认防护模式为暂停防护，但存在例外实例为启用防护或回源模式状态。
        7：部分回源，默认防护模式为回源模式，但存在例外实例为启用防护或暂停防护状态。
        """
        return pulumi.get(self, "defence_mode")

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

    @property
    @pulumi.getter(name="dlpEnable")
    def dlp_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启数据泄露防护。
        """
        return pulumi.get(self, "dlp_enable")

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

    @property
    @pulumi.getter(name="enableCustomRedirect")
    def enable_custom_redirect(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启用户自定义重定向。0:关闭,1:开启。
        """
        return pulumi.get(self, "enable_custom_redirect")

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

    @property
    @pulumi.getter(name="enableHttp2")
    def enable_http2(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启HTTP2.0。0:关闭,1:开启。
        """
        return pulumi.get(self, "enable_http2")

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

    @property
    @pulumi.getter(name="enableIpv6")
    def enable_ipv6(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否支持防护Ipv6请求。0:关闭,1:开启。
        """
        return pulumi.get(self, "enable_ipv6")

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

    @property
    @pulumi.getter(name="enableSni")
    def enable_sni(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启SNI配置。0:关闭,1:开启。
        """
        return pulumi.get(self, "enable_sni")

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

    @property
    @pulumi.getter(name="keepAliveRequest")
    def keep_alive_request(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        长连接复用个数。
        """
        return pulumi.get(self, "keep_alive_request")

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

    @property
    @pulumi.getter(name="keepAliveTimeout")
    def keep_alive_timeout(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        长连接保持时间(秒)。
        """
        return pulumi.get(self, "keep_alive_timeout")

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

    @property
    @pulumi.getter(name="lbAlgorithm")
    def lb_algorithm(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        负载均衡算法类型。wrr:加权轮询,wlc:加权最小连接数,sh:源地址哈希。
        """
        return pulumi.get(self, "lb_algorithm")

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

    @property
    @pulumi.getter(name="projectName")
    def project_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        项目名称。
        """
        return pulumi.get(self, "project_name")

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

    @property
    @pulumi.getter(name="protocolFollow")
    def protocol_follow(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启协议跟随。0:关闭,1:开启。
        """
        return pulumi.get(self, "protocol_follow")

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

    @property
    @pulumi.getter(name="protocolPorts")
    def protocol_ports(self) -> Optional[pulumi.Input['DomainProtocolPortsArgs']]:
        """
        接入端口信息。
        """
        return pulumi.get(self, "protocol_ports")

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

    @property
    @pulumi.getter
    def protocols(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
        """
        接入协议类型,支持HTTP/HTTPS。
        """
        return pulumi.get(self, "protocols")

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

    @property
    @pulumi.getter(name="proxyConfig")
    def proxy_config(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启代理配置。0:关闭,1:开启。
        """
        return pulumi.get(self, "proxy_config")

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

    @property
    @pulumi.getter(name="proxyConnectTimeout")
    def proxy_connect_timeout(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        WAF和后端服务器的建连超时时间(秒)。
        """
        return pulumi.get(self, "proxy_connect_timeout")

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

    @property
    @pulumi.getter(name="proxyKeepAlive")
    def proxy_keep_alive(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        WAF回源长连接可复用个数。
        """
        return pulumi.get(self, "proxy_keep_alive")

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

    @property
    @pulumi.getter(name="proxyKeepAliveTimeout")
    def proxy_keep_alive_timeout(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        空闲长连接超时时间(秒)。
        """
        return pulumi.get(self, "proxy_keep_alive_timeout")

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

    @property
    @pulumi.getter(name="proxyReadTimeout")
    def proxy_read_timeout(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        WAF从后端服务器读取响应的超时时间(秒)。
        """
        return pulumi.get(self, "proxy_read_timeout")

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

    @property
    @pulumi.getter(name="proxyRetry")
    def proxy_retry(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        WAF回源重试次数。
        """
        return pulumi.get(self, "proxy_retry")

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

    @property
    @pulumi.getter(name="proxyWriteTimeout")
    def proxy_write_timeout(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        WAF将请求传输到后端服务器的超时时间(秒)。
        """
        return pulumi.get(self, "proxy_write_timeout")

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

    @property
    @pulumi.getter(name="publicRealServer")
    def public_real_server(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        CNAME接入回源方式。0:私网回源,1:公网回源。
        """
        return pulumi.get(self, "public_real_server")

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

    @property
    @pulumi.getter(name="sslCiphers")
    def ssl_ciphers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
        """
        加密套件。
        """
        return pulumi.get(self, "ssl_ciphers")

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

    @property
    @pulumi.getter(name="sslProtocols")
    def ssl_protocols(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
        """
        TLS协议版本。如:TLSv1,TLSv1.1,TLSv1.2,TLSv1.3。
        """
        return pulumi.get(self, "ssl_protocols")

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

    @property
    @pulumi.getter(name="systemBotEnable")
    def system_bot_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启托管BOT防护。
        """
        return pulumi.get(self, "system_bot_enable")

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

    @property
    @pulumi.getter(name="tamperProofEnable")
    def tamper_proof_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启防篡改。
        """
        return pulumi.get(self, "tamper_proof_enable")

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

    @property
    @pulumi.getter(name="tlsEnable")
    def tls_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启日志服务。0:关闭,1:开启。
        """
        return pulumi.get(self, "tls_enable")

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

    @property
    @pulumi.getter(name="tlsFieldsConfig")
    def tls_fields_config(self) -> Optional[pulumi.Input['DomainTlsFieldsConfigArgs']]:
        """
        日志字段配置详情。
        """
        return pulumi.get(self, "tls_fields_config")

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

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        VPC ID。
        """
        return pulumi.get(self, "vpc_id")

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

    @property
    @pulumi.getter(name="wafEnable")
    def waf_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启WAF防护。
        """
        return pulumi.get(self, "waf_enable")

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

    @property
    @pulumi.getter(name="wafWhiteReqEnable")
    def waf_white_req_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启白名单请求防护。
        """
        return pulumi.get(self, "waf_white_req_enable")

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

    @property
    @pulumi.getter(name="whiteEnable")
    def white_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启白名单防护。
        """
        return pulumi.get(self, "white_enable")

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

    @property
    @pulumi.getter(name="whiteFieldEnable")
    def white_field_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启字段白名单防护。
        """
        return pulumi.get(self, "white_field_enable")

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


@pulumi.input_type
class _DomainState:
    def __init__(__self__, *,
                 access_mode: Optional[pulumi.Input[builtins.int]] = None,
                 advanced_defense_ip: Optional[pulumi.Input[builtins.str]] = None,
                 advanced_defense_ipv6: Optional[pulumi.Input[builtins.str]] = None,
                 api_enable: Optional[pulumi.Input[builtins.int]] = None,
                 attack_status: Optional[pulumi.Input[builtins.int]] = None,
                 auto_cc_enable: Optional[pulumi.Input[builtins.int]] = None,
                 automatic_black_enable: Optional[pulumi.Input[builtins.int]] = None,
                 backend_groups: Optional[pulumi.Input[Sequence[pulumi.Input['DomainBackendGroupArgs']]]] = None,
                 black_ip_enable: Optional[pulumi.Input[builtins.int]] = None,
                 black_lct_enable: Optional[pulumi.Input[builtins.int]] = None,
                 bot_dytoken_enable: Optional[pulumi.Input[builtins.int]] = None,
                 bot_frequency_enable: Optional[pulumi.Input[builtins.int]] = None,
                 bot_repeat_enable: Optional[pulumi.Input[builtins.int]] = None,
                 bot_sequence_default_action: Optional[pulumi.Input[builtins.int]] = None,
                 bot_sequence_enable: Optional[pulumi.Input[builtins.int]] = None,
                 cc_enable: Optional[pulumi.Input[builtins.int]] = None,
                 certificate_id: Optional[pulumi.Input[builtins.str]] = None,
                 certificate_name: Optional[pulumi.Input[builtins.str]] = None,
                 certificate_platform: Optional[pulumi.Input[builtins.str]] = None,
                 clb_instance_ids: Optional[pulumi.Input[builtins.str]] = None,
                 clb_listener_id: Optional[pulumi.Input[builtins.str]] = None,
                 clb_pool_id: Optional[pulumi.Input[builtins.str]] = None,
                 clb_server_id: Optional[pulumi.Input[builtins.str]] = None,
                 client_ip_location: Optional[pulumi.Input[builtins.int]] = None,
                 client_max_body_size: Optional[pulumi.Input[builtins.int]] = None,
                 cloud_access_configs: Optional[pulumi.Input[Sequence[pulumi.Input['DomainCloudAccessConfigArgs']]]] = None,
                 cname: Optional[pulumi.Input[builtins.str]] = None,
                 custom_bot_enable: Optional[pulumi.Input[builtins.int]] = None,
                 custom_headers: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 custom_rsp_enable: Optional[pulumi.Input[builtins.int]] = None,
                 custom_sni: Optional[pulumi.Input[builtins.str]] = None,
                 defence_mode: Optional[pulumi.Input[builtins.int]] = None,
                 dlp_enable: Optional[pulumi.Input[builtins.int]] = None,
                 domain: Optional[pulumi.Input[builtins.str]] = None,
                 enable_custom_redirect: Optional[pulumi.Input[builtins.int]] = None,
                 enable_http2: Optional[pulumi.Input[builtins.int]] = None,
                 enable_ipv6: Optional[pulumi.Input[builtins.int]] = None,
                 enable_sni: Optional[pulumi.Input[builtins.int]] = None,
                 keep_alive_request: Optional[pulumi.Input[builtins.int]] = None,
                 keep_alive_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 lb_algorithm: Optional[pulumi.Input[builtins.str]] = None,
                 port: Optional[pulumi.Input[builtins.int]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 protocol_follow: Optional[pulumi.Input[builtins.int]] = None,
                 protocol_ports: Optional[pulumi.Input['DomainProtocolPortsArgs']] = None,
                 protocols: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 proxy_config: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_connect_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_keep_alive: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_keep_alive_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_read_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_retry: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_write_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 public_real_server: Optional[pulumi.Input[builtins.int]] = None,
                 rsp_abnormal_enable: Optional[pulumi.Input[builtins.int]] = None,
                 server_ips: Optional[pulumi.Input[builtins.str]] = None,
                 src_ips: Optional[pulumi.Input[builtins.str]] = None,
                 src_protocol: Optional[pulumi.Input[builtins.str]] = None,
                 ssl_ciphers: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 ssl_protocols: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 status: Optional[pulumi.Input[builtins.int]] = None,
                 system_bot_enable: Optional[pulumi.Input[builtins.int]] = None,
                 tamper_proof_enable: Optional[pulumi.Input[builtins.int]] = None,
                 tcp_listener_configs: Optional[pulumi.Input[Sequence[pulumi.Input['DomainTcpListenerConfigArgs']]]] = None,
                 tls_enable: Optional[pulumi.Input[builtins.int]] = None,
                 tls_fields_config: Optional[pulumi.Input['DomainTlsFieldsConfigArgs']] = None,
                 update_time: Optional[pulumi.Input[builtins.str]] = None,
                 vpc_id: Optional[pulumi.Input[builtins.str]] = None,
                 waf_enable: Optional[pulumi.Input[builtins.int]] = None,
                 waf_white_req_enable: Optional[pulumi.Input[builtins.int]] = None,
                 white_enable: Optional[pulumi.Input[builtins.int]] = None,
                 white_field_enable: Optional[pulumi.Input[builtins.int]] = None):
        """
        Input properties used for looking up and filtering Domain resources.
        :param pulumi.Input[builtins.int] access_mode: 接入模式。10：CNAME 接入，11：负载均衡（CLB）7 层接入。
        :param pulumi.Input[builtins.str] advanced_defense_ip: 高防实例 IP。高防型 WAF 接入展示，否则为空。
        :param pulumi.Input[builtins.str] advanced_defense_ipv6: 高防实例 Ipv6。高防型 WAF 接入展示，否则为空。
        :param pulumi.Input[builtins.int] api_enable: 是否开启了 API 防护策略。0：关闭，1：开启。
        :param pulumi.Input[builtins.int] attack_status: 攻击状态。0:未发现攻击,1:发现攻击。
        :param pulumi.Input[builtins.int] auto_cc_enable: 是否开启智能 CC 防护策略。0：关闭，1：开启。
        :param pulumi.Input[builtins.int] automatic_black_enable: 是否开启自动封禁。0：关闭，1：开启。
        :param pulumi.Input[builtins.int] black_ip_enable: 是否开启了黑名单策略。0：关闭, 1：开启。
        :param pulumi.Input[builtins.int] black_lct_enable: 是否开启了区域封禁策略。0：关闭;1：开启。
        :param pulumi.Input[builtins.int] bot_dytoken_enable: 是否开启动态Token防护。
        :param pulumi.Input[builtins.int] bot_frequency_enable: 是否开启 bot 频率限制策略。
               0：关闭
               1：开启。
        :param pulumi.Input[builtins.int] bot_repeat_enable: 是否开启 bot 统计防护策略。
               0：关闭
               1：开启。
        :param pulumi.Input[builtins.int] bot_sequence_default_action: 设置 bot 行为地图策略默认动作，当 BotSequenceEnable = 1 开启状态时生效。默认为 0 （观察）。
               0：观察
               2：拦截
               6：JS 挑战
               7：人机验证。
        :param pulumi.Input[builtins.int] bot_sequence_enable: 是否开启 bot 行为地图。
               0：关闭
               1：开启。
        :param pulumi.Input[builtins.int] cc_enable: 是否开启 CC 防护策略。
               0：关闭
               1：开启。
        :param pulumi.Input[builtins.str] certificate_id: 托管至证书中心的证书ID。
        :param pulumi.Input[builtins.str] certificate_name: 证书名称，协议类型包含 HTTPS 时显示。
        :param pulumi.Input[builtins.str] certificate_platform: 证书托管平台:waf/certificate_service。
        :param pulumi.Input[builtins.str] clb_instance_ids: CLB实例ID。
        :param pulumi.Input[builtins.str] clb_listener_id: CLB监听器ID。
        :param pulumi.Input[builtins.str] clb_pool_id: CLB后端服务器组ID。
        :param pulumi.Input[builtins.str] clb_server_id: CLB后端服务器ID。
        :param pulumi.Input[builtins.int] client_ip_location: 客户端IP获取方式。0:自定义Header字段,1:通过X-Forwarded-For(XFF)字段中第一个公网IP地址作为客户端真实IP地址。
        :param pulumi.Input[builtins.int] client_max_body_size: 客户端请求body最大值(MB)。
        :param pulumi.Input[builtins.str] cname: CNAME记录。
        :param pulumi.Input[builtins.int] custom_bot_enable: 是否开启自定义BOT防护。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] custom_headers: 自定义Header。
        :param pulumi.Input[builtins.int] custom_rsp_enable: 是否开启自定义响应。
        :param pulumi.Input[builtins.str] custom_sni: 自定义SNI。
        :param pulumi.Input[builtins.int] defence_mode: 为例外 ALB 实例设置防护模式。
               1：启用防护，已配置的防护策略生效。
               2：暂停防护，仅执行转发而不检测，已配置的防护策略不生效。
               3：回源模式，直接将请求解析至源站，不再转发至 WAF 实例。
               设置例外防护实例后，域名可能还会存在以下防护状态：
               5：部分启用，默认防护模式为启用防护，但存在例外实例为暂停防护或回源模式状态。
               6：部分暂停，默认防护模式为暂停防护，但存在例外实例为启用防护或回源模式状态。
               7：部分回源，默认防护模式为回源模式，但存在例外实例为启用防护或暂停防护状态。
        :param pulumi.Input[builtins.int] dlp_enable: 是否开启数据泄露防护。
        :param pulumi.Input[builtins.str] domain: 防护的域名信息，支持泛域名和精确域名。
        :param pulumi.Input[builtins.int] enable_custom_redirect: 是否开启用户自定义重定向。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] enable_http2: 是否开启HTTP2.0。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] enable_ipv6: 是否支持防护Ipv6请求。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] enable_sni: 是否开启SNI配置。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] keep_alive_request: 长连接复用个数。
        :param pulumi.Input[builtins.int] keep_alive_timeout: 长连接保持时间(秒)。
        :param pulumi.Input[builtins.str] lb_algorithm: 负载均衡算法类型。wrr:加权轮询,wlc:加权最小连接数,sh:源地址哈希。
        :param pulumi.Input[builtins.int] port: 端口号。
        :param pulumi.Input[builtins.str] project_name: 项目名称。
        :param pulumi.Input[builtins.int] protocol_follow: 是否开启协议跟随。0:关闭,1:开启。
        :param pulumi.Input['DomainProtocolPortsArgs'] protocol_ports: 接入端口信息。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] protocols: 接入协议类型,支持HTTP/HTTPS。
        :param pulumi.Input[builtins.int] proxy_config: 是否开启代理配置。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] proxy_connect_timeout: WAF和后端服务器的建连超时时间(秒)。
        :param pulumi.Input[builtins.int] proxy_keep_alive: WAF回源长连接可复用个数。
        :param pulumi.Input[builtins.int] proxy_keep_alive_timeout: 空闲长连接超时时间(秒)。
        :param pulumi.Input[builtins.int] proxy_read_timeout: WAF从后端服务器读取响应的超时时间(秒)。
        :param pulumi.Input[builtins.int] proxy_retry: WAF回源重试次数。
        :param pulumi.Input[builtins.int] proxy_write_timeout: WAF将请求传输到后端服务器的超时时间(秒)。
        :param pulumi.Input[builtins.int] public_real_server: CNAME接入回源方式。0:私网回源,1:公网回源。
        :param pulumi.Input[builtins.int] rsp_abnormal_enable: 是否开启异常响应防护。
        :param pulumi.Input[builtins.str] server_ips: 服务IP。
        :param pulumi.Input[builtins.str] src_ips: WAF回源IP。
        :param pulumi.Input[builtins.str] src_protocol: 源站协议。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] ssl_ciphers: 加密套件。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] ssl_protocols: TLS协议版本。如:TLSv1,TLSv1.1,TLSv1.2,TLSv1.3。
        :param pulumi.Input[builtins.int] status: 接入状态。0:正常,1:DNS未解析,2:配置中,3:配置失败,4:配置未生效,5:更新中,6:实例已删除。
        :param pulumi.Input[builtins.int] system_bot_enable: 是否开启托管BOT防护。
        :param pulumi.Input[builtins.int] tamper_proof_enable: 是否开启防篡改。
        :param pulumi.Input[builtins.int] tls_enable: 是否开启日志服务。0:关闭,1:开启。
        :param pulumi.Input['DomainTlsFieldsConfigArgs'] tls_fields_config: 日志字段配置详情。
        :param pulumi.Input[builtins.str] update_time: 更新时间。
        :param pulumi.Input[builtins.str] vpc_id: VPC ID。
        :param pulumi.Input[builtins.int] waf_enable: 是否开启WAF防护。
        :param pulumi.Input[builtins.int] waf_white_req_enable: 是否开启白名单请求防护。
        :param pulumi.Input[builtins.int] white_enable: 是否开启白名单防护。
        :param pulumi.Input[builtins.int] white_field_enable: 是否开启字段白名单防护。
        """
        if access_mode is not None:
            pulumi.set(__self__, "access_mode", access_mode)
        if advanced_defense_ip is not None:
            pulumi.set(__self__, "advanced_defense_ip", advanced_defense_ip)
        if advanced_defense_ipv6 is not None:
            pulumi.set(__self__, "advanced_defense_ipv6", advanced_defense_ipv6)
        if api_enable is not None:
            pulumi.set(__self__, "api_enable", api_enable)
        if attack_status is not None:
            pulumi.set(__self__, "attack_status", attack_status)
        if auto_cc_enable is not None:
            pulumi.set(__self__, "auto_cc_enable", auto_cc_enable)
        if automatic_black_enable is not None:
            pulumi.set(__self__, "automatic_black_enable", automatic_black_enable)
        if backend_groups is not None:
            pulumi.set(__self__, "backend_groups", backend_groups)
        if black_ip_enable is not None:
            pulumi.set(__self__, "black_ip_enable", black_ip_enable)
        if black_lct_enable is not None:
            pulumi.set(__self__, "black_lct_enable", black_lct_enable)
        if bot_dytoken_enable is not None:
            pulumi.set(__self__, "bot_dytoken_enable", bot_dytoken_enable)
        if bot_frequency_enable is not None:
            pulumi.set(__self__, "bot_frequency_enable", bot_frequency_enable)
        if bot_repeat_enable is not None:
            pulumi.set(__self__, "bot_repeat_enable", bot_repeat_enable)
        if bot_sequence_default_action is not None:
            pulumi.set(__self__, "bot_sequence_default_action", bot_sequence_default_action)
        if bot_sequence_enable is not None:
            pulumi.set(__self__, "bot_sequence_enable", bot_sequence_enable)
        if cc_enable is not None:
            pulumi.set(__self__, "cc_enable", cc_enable)
        if certificate_id is not None:
            pulumi.set(__self__, "certificate_id", certificate_id)
        if certificate_name is not None:
            pulumi.set(__self__, "certificate_name", certificate_name)
        if certificate_platform is not None:
            pulumi.set(__self__, "certificate_platform", certificate_platform)
        if clb_instance_ids is not None:
            pulumi.set(__self__, "clb_instance_ids", clb_instance_ids)
        if clb_listener_id is not None:
            pulumi.set(__self__, "clb_listener_id", clb_listener_id)
        if clb_pool_id is not None:
            pulumi.set(__self__, "clb_pool_id", clb_pool_id)
        if clb_server_id is not None:
            pulumi.set(__self__, "clb_server_id", clb_server_id)
        if client_ip_location is not None:
            pulumi.set(__self__, "client_ip_location", client_ip_location)
        if client_max_body_size is not None:
            pulumi.set(__self__, "client_max_body_size", client_max_body_size)
        if cloud_access_configs is not None:
            pulumi.set(__self__, "cloud_access_configs", cloud_access_configs)
        if cname is not None:
            pulumi.set(__self__, "cname", cname)
        if custom_bot_enable is not None:
            pulumi.set(__self__, "custom_bot_enable", custom_bot_enable)
        if custom_headers is not None:
            pulumi.set(__self__, "custom_headers", custom_headers)
        if custom_rsp_enable is not None:
            pulumi.set(__self__, "custom_rsp_enable", custom_rsp_enable)
        if custom_sni is not None:
            pulumi.set(__self__, "custom_sni", custom_sni)
        if defence_mode is not None:
            pulumi.set(__self__, "defence_mode", defence_mode)
        if dlp_enable is not None:
            pulumi.set(__self__, "dlp_enable", dlp_enable)
        if domain is not None:
            pulumi.set(__self__, "domain", domain)
        if enable_custom_redirect is not None:
            pulumi.set(__self__, "enable_custom_redirect", enable_custom_redirect)
        if enable_http2 is not None:
            pulumi.set(__self__, "enable_http2", enable_http2)
        if enable_ipv6 is not None:
            pulumi.set(__self__, "enable_ipv6", enable_ipv6)
        if enable_sni is not None:
            pulumi.set(__self__, "enable_sni", enable_sni)
        if keep_alive_request is not None:
            pulumi.set(__self__, "keep_alive_request", keep_alive_request)
        if keep_alive_timeout is not None:
            pulumi.set(__self__, "keep_alive_timeout", keep_alive_timeout)
        if lb_algorithm is not None:
            pulumi.set(__self__, "lb_algorithm", lb_algorithm)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if project_name is not None:
            pulumi.set(__self__, "project_name", project_name)
        if protocol_follow is not None:
            pulumi.set(__self__, "protocol_follow", protocol_follow)
        if protocol_ports is not None:
            pulumi.set(__self__, "protocol_ports", protocol_ports)
        if protocols is not None:
            pulumi.set(__self__, "protocols", protocols)
        if proxy_config is not None:
            pulumi.set(__self__, "proxy_config", proxy_config)
        if proxy_connect_timeout is not None:
            pulumi.set(__self__, "proxy_connect_timeout", proxy_connect_timeout)
        if proxy_keep_alive is not None:
            pulumi.set(__self__, "proxy_keep_alive", proxy_keep_alive)
        if proxy_keep_alive_timeout is not None:
            pulumi.set(__self__, "proxy_keep_alive_timeout", proxy_keep_alive_timeout)
        if proxy_read_timeout is not None:
            pulumi.set(__self__, "proxy_read_timeout", proxy_read_timeout)
        if proxy_retry is not None:
            pulumi.set(__self__, "proxy_retry", proxy_retry)
        if proxy_write_timeout is not None:
            pulumi.set(__self__, "proxy_write_timeout", proxy_write_timeout)
        if public_real_server is not None:
            pulumi.set(__self__, "public_real_server", public_real_server)
        if rsp_abnormal_enable is not None:
            pulumi.set(__self__, "rsp_abnormal_enable", rsp_abnormal_enable)
        if server_ips is not None:
            pulumi.set(__self__, "server_ips", server_ips)
        if src_ips is not None:
            pulumi.set(__self__, "src_ips", src_ips)
        if src_protocol is not None:
            pulumi.set(__self__, "src_protocol", src_protocol)
        if ssl_ciphers is not None:
            pulumi.set(__self__, "ssl_ciphers", ssl_ciphers)
        if ssl_protocols is not None:
            pulumi.set(__self__, "ssl_protocols", ssl_protocols)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if system_bot_enable is not None:
            pulumi.set(__self__, "system_bot_enable", system_bot_enable)
        if tamper_proof_enable is not None:
            pulumi.set(__self__, "tamper_proof_enable", tamper_proof_enable)
        if tcp_listener_configs is not None:
            pulumi.set(__self__, "tcp_listener_configs", tcp_listener_configs)
        if tls_enable is not None:
            pulumi.set(__self__, "tls_enable", tls_enable)
        if tls_fields_config is not None:
            pulumi.set(__self__, "tls_fields_config", tls_fields_config)
        if update_time is not None:
            pulumi.set(__self__, "update_time", update_time)
        if vpc_id is not None:
            pulumi.set(__self__, "vpc_id", vpc_id)
        if waf_enable is not None:
            pulumi.set(__self__, "waf_enable", waf_enable)
        if waf_white_req_enable is not None:
            pulumi.set(__self__, "waf_white_req_enable", waf_white_req_enable)
        if white_enable is not None:
            pulumi.set(__self__, "white_enable", white_enable)
        if white_field_enable is not None:
            pulumi.set(__self__, "white_field_enable", white_field_enable)

    @property
    @pulumi.getter(name="accessMode")
    def access_mode(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        接入模式。10：CNAME 接入，11：负载均衡（CLB）7 层接入。
        """
        return pulumi.get(self, "access_mode")

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

    @property
    @pulumi.getter(name="advancedDefenseIp")
    def advanced_defense_ip(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        高防实例 IP。高防型 WAF 接入展示，否则为空。
        """
        return pulumi.get(self, "advanced_defense_ip")

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

    @property
    @pulumi.getter(name="advancedDefenseIpv6")
    def advanced_defense_ipv6(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        高防实例 Ipv6。高防型 WAF 接入展示，否则为空。
        """
        return pulumi.get(self, "advanced_defense_ipv6")

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

    @property
    @pulumi.getter(name="apiEnable")
    def api_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启了 API 防护策略。0：关闭，1：开启。
        """
        return pulumi.get(self, "api_enable")

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

    @property
    @pulumi.getter(name="attackStatus")
    def attack_status(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        攻击状态。0:未发现攻击,1:发现攻击。
        """
        return pulumi.get(self, "attack_status")

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

    @property
    @pulumi.getter(name="autoCcEnable")
    def auto_cc_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启智能 CC 防护策略。0：关闭，1：开启。
        """
        return pulumi.get(self, "auto_cc_enable")

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

    @property
    @pulumi.getter(name="automaticBlackEnable")
    def automatic_black_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启自动封禁。0：关闭，1：开启。
        """
        return pulumi.get(self, "automatic_black_enable")

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

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

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

    @property
    @pulumi.getter(name="blackIpEnable")
    def black_ip_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启了黑名单策略。0：关闭, 1：开启。
        """
        return pulumi.get(self, "black_ip_enable")

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

    @property
    @pulumi.getter(name="blackLctEnable")
    def black_lct_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启了区域封禁策略。0：关闭;1：开启。
        """
        return pulumi.get(self, "black_lct_enable")

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

    @property
    @pulumi.getter(name="botDytokenEnable")
    def bot_dytoken_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启动态Token防护。
        """
        return pulumi.get(self, "bot_dytoken_enable")

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

    @property
    @pulumi.getter(name="botFrequencyEnable")
    def bot_frequency_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启 bot 频率限制策略。
        0：关闭
        1：开启。
        """
        return pulumi.get(self, "bot_frequency_enable")

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

    @property
    @pulumi.getter(name="botRepeatEnable")
    def bot_repeat_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启 bot 统计防护策略。
        0：关闭
        1：开启。
        """
        return pulumi.get(self, "bot_repeat_enable")

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

    @property
    @pulumi.getter(name="botSequenceDefaultAction")
    def bot_sequence_default_action(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        设置 bot 行为地图策略默认动作，当 BotSequenceEnable = 1 开启状态时生效。默认为 0 （观察）。
        0：观察
        2：拦截
        6：JS 挑战
        7：人机验证。
        """
        return pulumi.get(self, "bot_sequence_default_action")

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

    @property
    @pulumi.getter(name="botSequenceEnable")
    def bot_sequence_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启 bot 行为地图。
        0：关闭
        1：开启。
        """
        return pulumi.get(self, "bot_sequence_enable")

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

    @property
    @pulumi.getter(name="ccEnable")
    def cc_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启 CC 防护策略。
        0：关闭
        1：开启。
        """
        return pulumi.get(self, "cc_enable")

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

    @property
    @pulumi.getter(name="certificateId")
    def certificate_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        托管至证书中心的证书ID。
        """
        return pulumi.get(self, "certificate_id")

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

    @property
    @pulumi.getter(name="certificateName")
    def certificate_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        证书名称，协议类型包含 HTTPS 时显示。
        """
        return pulumi.get(self, "certificate_name")

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

    @property
    @pulumi.getter(name="certificatePlatform")
    def certificate_platform(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        证书托管平台:waf/certificate_service。
        """
        return pulumi.get(self, "certificate_platform")

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

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

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

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

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

    @property
    @pulumi.getter(name="clbPoolId")
    def clb_pool_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        CLB后端服务器组ID。
        """
        return pulumi.get(self, "clb_pool_id")

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

    @property
    @pulumi.getter(name="clbServerId")
    def clb_server_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        CLB后端服务器ID。
        """
        return pulumi.get(self, "clb_server_id")

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

    @property
    @pulumi.getter(name="clientIpLocation")
    def client_ip_location(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        客户端IP获取方式。0:自定义Header字段,1:通过X-Forwarded-For(XFF)字段中第一个公网IP地址作为客户端真实IP地址。
        """
        return pulumi.get(self, "client_ip_location")

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

    @property
    @pulumi.getter(name="clientMaxBodySize")
    def client_max_body_size(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        客户端请求body最大值(MB)。
        """
        return pulumi.get(self, "client_max_body_size")

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

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

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

    @property
    @pulumi.getter
    def cname(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        CNAME记录。
        """
        return pulumi.get(self, "cname")

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

    @property
    @pulumi.getter(name="customBotEnable")
    def custom_bot_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启自定义BOT防护。
        """
        return pulumi.get(self, "custom_bot_enable")

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

    @property
    @pulumi.getter(name="customHeaders")
    def custom_headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
        """
        自定义Header。
        """
        return pulumi.get(self, "custom_headers")

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

    @property
    @pulumi.getter(name="customRspEnable")
    def custom_rsp_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启自定义响应。
        """
        return pulumi.get(self, "custom_rsp_enable")

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

    @property
    @pulumi.getter(name="customSni")
    def custom_sni(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        自定义SNI。
        """
        return pulumi.get(self, "custom_sni")

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

    @property
    @pulumi.getter(name="defenceMode")
    def defence_mode(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        为例外 ALB 实例设置防护模式。
        1：启用防护，已配置的防护策略生效。
        2：暂停防护，仅执行转发而不检测，已配置的防护策略不生效。
        3：回源模式，直接将请求解析至源站，不再转发至 WAF 实例。
        设置例外防护实例后，域名可能还会存在以下防护状态：
        5：部分启用，默认防护模式为启用防护，但存在例外实例为暂停防护或回源模式状态。
        6：部分暂停，默认防护模式为暂停防护，但存在例外实例为启用防护或回源模式状态。
        7：部分回源，默认防护模式为回源模式，但存在例外实例为启用防护或暂停防护状态。
        """
        return pulumi.get(self, "defence_mode")

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

    @property
    @pulumi.getter(name="dlpEnable")
    def dlp_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启数据泄露防护。
        """
        return pulumi.get(self, "dlp_enable")

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

    @property
    @pulumi.getter
    def domain(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        防护的域名信息，支持泛域名和精确域名。
        """
        return pulumi.get(self, "domain")

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

    @property
    @pulumi.getter(name="enableCustomRedirect")
    def enable_custom_redirect(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启用户自定义重定向。0:关闭,1:开启。
        """
        return pulumi.get(self, "enable_custom_redirect")

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

    @property
    @pulumi.getter(name="enableHttp2")
    def enable_http2(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启HTTP2.0。0:关闭,1:开启。
        """
        return pulumi.get(self, "enable_http2")

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

    @property
    @pulumi.getter(name="enableIpv6")
    def enable_ipv6(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否支持防护Ipv6请求。0:关闭,1:开启。
        """
        return pulumi.get(self, "enable_ipv6")

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

    @property
    @pulumi.getter(name="enableSni")
    def enable_sni(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启SNI配置。0:关闭,1:开启。
        """
        return pulumi.get(self, "enable_sni")

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

    @property
    @pulumi.getter(name="keepAliveRequest")
    def keep_alive_request(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        长连接复用个数。
        """
        return pulumi.get(self, "keep_alive_request")

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

    @property
    @pulumi.getter(name="keepAliveTimeout")
    def keep_alive_timeout(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        长连接保持时间(秒)。
        """
        return pulumi.get(self, "keep_alive_timeout")

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

    @property
    @pulumi.getter(name="lbAlgorithm")
    def lb_algorithm(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        负载均衡算法类型。wrr:加权轮询,wlc:加权最小连接数,sh:源地址哈希。
        """
        return pulumi.get(self, "lb_algorithm")

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

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

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

    @property
    @pulumi.getter(name="projectName")
    def project_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        项目名称。
        """
        return pulumi.get(self, "project_name")

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

    @property
    @pulumi.getter(name="protocolFollow")
    def protocol_follow(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启协议跟随。0:关闭,1:开启。
        """
        return pulumi.get(self, "protocol_follow")

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

    @property
    @pulumi.getter(name="protocolPorts")
    def protocol_ports(self) -> Optional[pulumi.Input['DomainProtocolPortsArgs']]:
        """
        接入端口信息。
        """
        return pulumi.get(self, "protocol_ports")

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

    @property
    @pulumi.getter
    def protocols(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
        """
        接入协议类型,支持HTTP/HTTPS。
        """
        return pulumi.get(self, "protocols")

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

    @property
    @pulumi.getter(name="proxyConfig")
    def proxy_config(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启代理配置。0:关闭,1:开启。
        """
        return pulumi.get(self, "proxy_config")

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

    @property
    @pulumi.getter(name="proxyConnectTimeout")
    def proxy_connect_timeout(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        WAF和后端服务器的建连超时时间(秒)。
        """
        return pulumi.get(self, "proxy_connect_timeout")

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

    @property
    @pulumi.getter(name="proxyKeepAlive")
    def proxy_keep_alive(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        WAF回源长连接可复用个数。
        """
        return pulumi.get(self, "proxy_keep_alive")

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

    @property
    @pulumi.getter(name="proxyKeepAliveTimeout")
    def proxy_keep_alive_timeout(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        空闲长连接超时时间(秒)。
        """
        return pulumi.get(self, "proxy_keep_alive_timeout")

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

    @property
    @pulumi.getter(name="proxyReadTimeout")
    def proxy_read_timeout(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        WAF从后端服务器读取响应的超时时间(秒)。
        """
        return pulumi.get(self, "proxy_read_timeout")

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

    @property
    @pulumi.getter(name="proxyRetry")
    def proxy_retry(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        WAF回源重试次数。
        """
        return pulumi.get(self, "proxy_retry")

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

    @property
    @pulumi.getter(name="proxyWriteTimeout")
    def proxy_write_timeout(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        WAF将请求传输到后端服务器的超时时间(秒)。
        """
        return pulumi.get(self, "proxy_write_timeout")

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

    @property
    @pulumi.getter(name="publicRealServer")
    def public_real_server(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        CNAME接入回源方式。0:私网回源,1:公网回源。
        """
        return pulumi.get(self, "public_real_server")

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

    @property
    @pulumi.getter(name="rspAbnormalEnable")
    def rsp_abnormal_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启异常响应防护。
        """
        return pulumi.get(self, "rsp_abnormal_enable")

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

    @property
    @pulumi.getter(name="serverIps")
    def server_ips(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        服务IP。
        """
        return pulumi.get(self, "server_ips")

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

    @property
    @pulumi.getter(name="srcIps")
    def src_ips(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        WAF回源IP。
        """
        return pulumi.get(self, "src_ips")

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

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

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

    @property
    @pulumi.getter(name="sslCiphers")
    def ssl_ciphers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
        """
        加密套件。
        """
        return pulumi.get(self, "ssl_ciphers")

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

    @property
    @pulumi.getter(name="sslProtocols")
    def ssl_protocols(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
        """
        TLS协议版本。如:TLSv1,TLSv1.1,TLSv1.2,TLSv1.3。
        """
        return pulumi.get(self, "ssl_protocols")

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

    @property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        接入状态。0:正常,1:DNS未解析,2:配置中,3:配置失败,4:配置未生效,5:更新中,6:实例已删除。
        """
        return pulumi.get(self, "status")

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

    @property
    @pulumi.getter(name="systemBotEnable")
    def system_bot_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启托管BOT防护。
        """
        return pulumi.get(self, "system_bot_enable")

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

    @property
    @pulumi.getter(name="tamperProofEnable")
    def tamper_proof_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启防篡改。
        """
        return pulumi.get(self, "tamper_proof_enable")

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

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

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

    @property
    @pulumi.getter(name="tlsEnable")
    def tls_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启日志服务。0:关闭,1:开启。
        """
        return pulumi.get(self, "tls_enable")

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

    @property
    @pulumi.getter(name="tlsFieldsConfig")
    def tls_fields_config(self) -> Optional[pulumi.Input['DomainTlsFieldsConfigArgs']]:
        """
        日志字段配置详情。
        """
        return pulumi.get(self, "tls_fields_config")

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

    @property
    @pulumi.getter(name="updateTime")
    def update_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        更新时间。
        """
        return pulumi.get(self, "update_time")

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

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        VPC ID。
        """
        return pulumi.get(self, "vpc_id")

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

    @property
    @pulumi.getter(name="wafEnable")
    def waf_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启WAF防护。
        """
        return pulumi.get(self, "waf_enable")

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

    @property
    @pulumi.getter(name="wafWhiteReqEnable")
    def waf_white_req_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启白名单请求防护。
        """
        return pulumi.get(self, "waf_white_req_enable")

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

    @property
    @pulumi.getter(name="whiteEnable")
    def white_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启白名单防护。
        """
        return pulumi.get(self, "white_enable")

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

    @property
    @pulumi.getter(name="whiteFieldEnable")
    def white_field_enable(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        是否开启字段白名单防护。
        """
        return pulumi.get(self, "white_field_enable")

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


@pulumi.type_token("bytepluscc:waf/domain:Domain")
class Domain(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 access_mode: Optional[pulumi.Input[builtins.int]] = None,
                 api_enable: Optional[pulumi.Input[builtins.int]] = None,
                 auto_cc_enable: Optional[pulumi.Input[builtins.int]] = None,
                 backend_groups: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DomainBackendGroupArgs', 'DomainBackendGroupArgsDict']]]]] = None,
                 black_ip_enable: Optional[pulumi.Input[builtins.int]] = None,
                 black_lct_enable: Optional[pulumi.Input[builtins.int]] = None,
                 bot_dytoken_enable: Optional[pulumi.Input[builtins.int]] = None,
                 bot_frequency_enable: Optional[pulumi.Input[builtins.int]] = None,
                 bot_repeat_enable: Optional[pulumi.Input[builtins.int]] = None,
                 bot_sequence_default_action: Optional[pulumi.Input[builtins.int]] = None,
                 bot_sequence_enable: Optional[pulumi.Input[builtins.int]] = None,
                 cc_enable: Optional[pulumi.Input[builtins.int]] = None,
                 certificate_id: Optional[pulumi.Input[builtins.str]] = None,
                 certificate_platform: Optional[pulumi.Input[builtins.str]] = None,
                 client_ip_location: Optional[pulumi.Input[builtins.int]] = None,
                 client_max_body_size: Optional[pulumi.Input[builtins.int]] = None,
                 cloud_access_configs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DomainCloudAccessConfigArgs', 'DomainCloudAccessConfigArgsDict']]]]] = None,
                 custom_bot_enable: Optional[pulumi.Input[builtins.int]] = None,
                 custom_headers: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 custom_rsp_enable: Optional[pulumi.Input[builtins.int]] = None,
                 custom_sni: Optional[pulumi.Input[builtins.str]] = None,
                 defence_mode: Optional[pulumi.Input[builtins.int]] = None,
                 dlp_enable: Optional[pulumi.Input[builtins.int]] = None,
                 domain: Optional[pulumi.Input[builtins.str]] = None,
                 enable_custom_redirect: Optional[pulumi.Input[builtins.int]] = None,
                 enable_http2: Optional[pulumi.Input[builtins.int]] = None,
                 enable_ipv6: Optional[pulumi.Input[builtins.int]] = None,
                 enable_sni: Optional[pulumi.Input[builtins.int]] = None,
                 keep_alive_request: Optional[pulumi.Input[builtins.int]] = None,
                 keep_alive_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 lb_algorithm: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 protocol_follow: Optional[pulumi.Input[builtins.int]] = None,
                 protocol_ports: Optional[pulumi.Input[Union['DomainProtocolPortsArgs', 'DomainProtocolPortsArgsDict']]] = None,
                 protocols: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 proxy_config: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_connect_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_keep_alive: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_keep_alive_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_read_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_retry: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_write_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 public_real_server: Optional[pulumi.Input[builtins.int]] = None,
                 ssl_ciphers: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 ssl_protocols: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 system_bot_enable: Optional[pulumi.Input[builtins.int]] = None,
                 tamper_proof_enable: Optional[pulumi.Input[builtins.int]] = None,
                 tls_enable: Optional[pulumi.Input[builtins.int]] = None,
                 tls_fields_config: Optional[pulumi.Input[Union['DomainTlsFieldsConfigArgs', 'DomainTlsFieldsConfigArgsDict']]] = None,
                 vpc_id: Optional[pulumi.Input[builtins.str]] = None,
                 waf_enable: Optional[pulumi.Input[builtins.int]] = None,
                 waf_white_req_enable: Optional[pulumi.Input[builtins.int]] = None,
                 white_enable: Optional[pulumi.Input[builtins.int]] = None,
                 white_field_enable: Optional[pulumi.Input[builtins.int]] = None,
                 __props__=None):
        """
        通过 CNAME 或是负载均衡方式接入防护网站，并配置接入能力和回源能力，将业务流量接入到 WAF 实例，实现防护。

        ## Import

        ```sh
        $ pulumi import bytepluscc:waf/domain:Domain example "domain"
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[builtins.int] access_mode: 接入模式。10：CNAME 接入，11：负载均衡（CLB）7 层接入。
        :param pulumi.Input[builtins.int] api_enable: 是否开启了 API 防护策略。0：关闭，1：开启。
        :param pulumi.Input[builtins.int] auto_cc_enable: 是否开启智能 CC 防护策略。0：关闭，1：开启。
        :param pulumi.Input[builtins.int] black_ip_enable: 是否开启了黑名单策略。0：关闭, 1：开启。
        :param pulumi.Input[builtins.int] black_lct_enable: 是否开启了区域封禁策略。0：关闭;1：开启。
        :param pulumi.Input[builtins.int] bot_dytoken_enable: 是否开启动态Token防护。
        :param pulumi.Input[builtins.int] bot_frequency_enable: 是否开启 bot 频率限制策略。
               0：关闭
               1：开启。
        :param pulumi.Input[builtins.int] bot_repeat_enable: 是否开启 bot 统计防护策略。
               0：关闭
               1：开启。
        :param pulumi.Input[builtins.int] bot_sequence_default_action: 设置 bot 行为地图策略默认动作，当 BotSequenceEnable = 1 开启状态时生效。默认为 0 （观察）。
               0：观察
               2：拦截
               6：JS 挑战
               7：人机验证。
        :param pulumi.Input[builtins.int] bot_sequence_enable: 是否开启 bot 行为地图。
               0：关闭
               1：开启。
        :param pulumi.Input[builtins.int] cc_enable: 是否开启 CC 防护策略。
               0：关闭
               1：开启。
        :param pulumi.Input[builtins.str] certificate_id: 托管至证书中心的证书ID。
        :param pulumi.Input[builtins.str] certificate_platform: 证书托管平台:waf/certificate_service。
        :param pulumi.Input[builtins.int] client_ip_location: 客户端IP获取方式。0:自定义Header字段,1:通过X-Forwarded-For(XFF)字段中第一个公网IP地址作为客户端真实IP地址。
        :param pulumi.Input[builtins.int] client_max_body_size: 客户端请求body最大值(MB)。
        :param pulumi.Input[builtins.int] custom_bot_enable: 是否开启自定义BOT防护。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] custom_headers: 自定义Header。
        :param pulumi.Input[builtins.int] custom_rsp_enable: 是否开启自定义响应。
        :param pulumi.Input[builtins.str] custom_sni: 自定义SNI。
        :param pulumi.Input[builtins.int] defence_mode: 为例外 ALB 实例设置防护模式。
               1：启用防护，已配置的防护策略生效。
               2：暂停防护，仅执行转发而不检测，已配置的防护策略不生效。
               3：回源模式，直接将请求解析至源站，不再转发至 WAF 实例。
               设置例外防护实例后，域名可能还会存在以下防护状态：
               5：部分启用，默认防护模式为启用防护，但存在例外实例为暂停防护或回源模式状态。
               6：部分暂停，默认防护模式为暂停防护，但存在例外实例为启用防护或回源模式状态。
               7：部分回源，默认防护模式为回源模式，但存在例外实例为启用防护或暂停防护状态。
        :param pulumi.Input[builtins.int] dlp_enable: 是否开启数据泄露防护。
        :param pulumi.Input[builtins.str] domain: 防护的域名信息，支持泛域名和精确域名。
        :param pulumi.Input[builtins.int] enable_custom_redirect: 是否开启用户自定义重定向。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] enable_http2: 是否开启HTTP2.0。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] enable_ipv6: 是否支持防护Ipv6请求。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] enable_sni: 是否开启SNI配置。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] keep_alive_request: 长连接复用个数。
        :param pulumi.Input[builtins.int] keep_alive_timeout: 长连接保持时间(秒)。
        :param pulumi.Input[builtins.str] lb_algorithm: 负载均衡算法类型。wrr:加权轮询,wlc:加权最小连接数,sh:源地址哈希。
        :param pulumi.Input[builtins.str] project_name: 项目名称。
        :param pulumi.Input[builtins.int] protocol_follow: 是否开启协议跟随。0:关闭,1:开启。
        :param pulumi.Input[Union['DomainProtocolPortsArgs', 'DomainProtocolPortsArgsDict']] protocol_ports: 接入端口信息。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] protocols: 接入协议类型,支持HTTP/HTTPS。
        :param pulumi.Input[builtins.int] proxy_config: 是否开启代理配置。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] proxy_connect_timeout: WAF和后端服务器的建连超时时间(秒)。
        :param pulumi.Input[builtins.int] proxy_keep_alive: WAF回源长连接可复用个数。
        :param pulumi.Input[builtins.int] proxy_keep_alive_timeout: 空闲长连接超时时间(秒)。
        :param pulumi.Input[builtins.int] proxy_read_timeout: WAF从后端服务器读取响应的超时时间(秒)。
        :param pulumi.Input[builtins.int] proxy_retry: WAF回源重试次数。
        :param pulumi.Input[builtins.int] proxy_write_timeout: WAF将请求传输到后端服务器的超时时间(秒)。
        :param pulumi.Input[builtins.int] public_real_server: CNAME接入回源方式。0:私网回源,1:公网回源。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] ssl_ciphers: 加密套件。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] ssl_protocols: TLS协议版本。如:TLSv1,TLSv1.1,TLSv1.2,TLSv1.3。
        :param pulumi.Input[builtins.int] system_bot_enable: 是否开启托管BOT防护。
        :param pulumi.Input[builtins.int] tamper_proof_enable: 是否开启防篡改。
        :param pulumi.Input[builtins.int] tls_enable: 是否开启日志服务。0:关闭,1:开启。
        :param pulumi.Input[Union['DomainTlsFieldsConfigArgs', 'DomainTlsFieldsConfigArgsDict']] tls_fields_config: 日志字段配置详情。
        :param pulumi.Input[builtins.str] vpc_id: VPC ID。
        :param pulumi.Input[builtins.int] waf_enable: 是否开启WAF防护。
        :param pulumi.Input[builtins.int] waf_white_req_enable: 是否开启白名单请求防护。
        :param pulumi.Input[builtins.int] white_enable: 是否开启白名单防护。
        :param pulumi.Input[builtins.int] white_field_enable: 是否开启字段白名单防护。
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: DomainArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        通过 CNAME 或是负载均衡方式接入防护网站，并配置接入能力和回源能力，将业务流量接入到 WAF 实例，实现防护。

        ## Import

        ```sh
        $ pulumi import bytepluscc:waf/domain:Domain example "domain"
        ```

        :param str resource_name: The name of the resource.
        :param DomainArgs args: The arguments to use to populate this resource's properties.
        :param pulumi.ResourceOptions opts: Options for the resource.
        """
        ...
    def __init__(__self__, resource_name: str, *args, **kwargs):
        resource_args, opts = _utilities.get_resource_args_opts(DomainArgs, pulumi.ResourceOptions, *args, **kwargs)
        if resource_args is not None:
            __self__._internal_init(resource_name, opts, **resource_args.__dict__)
        else:
            __self__._internal_init(resource_name, *args, **kwargs)

    def _internal_init(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 access_mode: Optional[pulumi.Input[builtins.int]] = None,
                 api_enable: Optional[pulumi.Input[builtins.int]] = None,
                 auto_cc_enable: Optional[pulumi.Input[builtins.int]] = None,
                 backend_groups: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DomainBackendGroupArgs', 'DomainBackendGroupArgsDict']]]]] = None,
                 black_ip_enable: Optional[pulumi.Input[builtins.int]] = None,
                 black_lct_enable: Optional[pulumi.Input[builtins.int]] = None,
                 bot_dytoken_enable: Optional[pulumi.Input[builtins.int]] = None,
                 bot_frequency_enable: Optional[pulumi.Input[builtins.int]] = None,
                 bot_repeat_enable: Optional[pulumi.Input[builtins.int]] = None,
                 bot_sequence_default_action: Optional[pulumi.Input[builtins.int]] = None,
                 bot_sequence_enable: Optional[pulumi.Input[builtins.int]] = None,
                 cc_enable: Optional[pulumi.Input[builtins.int]] = None,
                 certificate_id: Optional[pulumi.Input[builtins.str]] = None,
                 certificate_platform: Optional[pulumi.Input[builtins.str]] = None,
                 client_ip_location: Optional[pulumi.Input[builtins.int]] = None,
                 client_max_body_size: Optional[pulumi.Input[builtins.int]] = None,
                 cloud_access_configs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DomainCloudAccessConfigArgs', 'DomainCloudAccessConfigArgsDict']]]]] = None,
                 custom_bot_enable: Optional[pulumi.Input[builtins.int]] = None,
                 custom_headers: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 custom_rsp_enable: Optional[pulumi.Input[builtins.int]] = None,
                 custom_sni: Optional[pulumi.Input[builtins.str]] = None,
                 defence_mode: Optional[pulumi.Input[builtins.int]] = None,
                 dlp_enable: Optional[pulumi.Input[builtins.int]] = None,
                 domain: Optional[pulumi.Input[builtins.str]] = None,
                 enable_custom_redirect: Optional[pulumi.Input[builtins.int]] = None,
                 enable_http2: Optional[pulumi.Input[builtins.int]] = None,
                 enable_ipv6: Optional[pulumi.Input[builtins.int]] = None,
                 enable_sni: Optional[pulumi.Input[builtins.int]] = None,
                 keep_alive_request: Optional[pulumi.Input[builtins.int]] = None,
                 keep_alive_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 lb_algorithm: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 protocol_follow: Optional[pulumi.Input[builtins.int]] = None,
                 protocol_ports: Optional[pulumi.Input[Union['DomainProtocolPortsArgs', 'DomainProtocolPortsArgsDict']]] = None,
                 protocols: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 proxy_config: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_connect_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_keep_alive: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_keep_alive_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_read_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_retry: Optional[pulumi.Input[builtins.int]] = None,
                 proxy_write_timeout: Optional[pulumi.Input[builtins.int]] = None,
                 public_real_server: Optional[pulumi.Input[builtins.int]] = None,
                 ssl_ciphers: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 ssl_protocols: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 system_bot_enable: Optional[pulumi.Input[builtins.int]] = None,
                 tamper_proof_enable: Optional[pulumi.Input[builtins.int]] = None,
                 tls_enable: Optional[pulumi.Input[builtins.int]] = None,
                 tls_fields_config: Optional[pulumi.Input[Union['DomainTlsFieldsConfigArgs', 'DomainTlsFieldsConfigArgsDict']]] = None,
                 vpc_id: Optional[pulumi.Input[builtins.str]] = None,
                 waf_enable: Optional[pulumi.Input[builtins.int]] = None,
                 waf_white_req_enable: Optional[pulumi.Input[builtins.int]] = None,
                 white_enable: Optional[pulumi.Input[builtins.int]] = None,
                 white_field_enable: Optional[pulumi.Input[builtins.int]] = None,
                 __props__=None):
        opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.id is None:
            if __props__ is not None:
                raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
            __props__ = DomainArgs.__new__(DomainArgs)

            if access_mode is None and not opts.urn:
                raise TypeError("Missing required property 'access_mode'")
            __props__.__dict__["access_mode"] = access_mode
            __props__.__dict__["api_enable"] = api_enable
            __props__.__dict__["auto_cc_enable"] = auto_cc_enable
            __props__.__dict__["backend_groups"] = backend_groups
            __props__.__dict__["black_ip_enable"] = black_ip_enable
            __props__.__dict__["black_lct_enable"] = black_lct_enable
            __props__.__dict__["bot_dytoken_enable"] = bot_dytoken_enable
            __props__.__dict__["bot_frequency_enable"] = bot_frequency_enable
            __props__.__dict__["bot_repeat_enable"] = bot_repeat_enable
            __props__.__dict__["bot_sequence_default_action"] = bot_sequence_default_action
            __props__.__dict__["bot_sequence_enable"] = bot_sequence_enable
            __props__.__dict__["cc_enable"] = cc_enable
            __props__.__dict__["certificate_id"] = certificate_id
            __props__.__dict__["certificate_platform"] = certificate_platform
            __props__.__dict__["client_ip_location"] = client_ip_location
            __props__.__dict__["client_max_body_size"] = client_max_body_size
            __props__.__dict__["cloud_access_configs"] = cloud_access_configs
            __props__.__dict__["custom_bot_enable"] = custom_bot_enable
            __props__.__dict__["custom_headers"] = custom_headers
            __props__.__dict__["custom_rsp_enable"] = custom_rsp_enable
            __props__.__dict__["custom_sni"] = custom_sni
            __props__.__dict__["defence_mode"] = defence_mode
            __props__.__dict__["dlp_enable"] = dlp_enable
            if domain is None and not opts.urn:
                raise TypeError("Missing required property 'domain'")
            __props__.__dict__["domain"] = domain
            __props__.__dict__["enable_custom_redirect"] = enable_custom_redirect
            __props__.__dict__["enable_http2"] = enable_http2
            __props__.__dict__["enable_ipv6"] = enable_ipv6
            __props__.__dict__["enable_sni"] = enable_sni
            __props__.__dict__["keep_alive_request"] = keep_alive_request
            __props__.__dict__["keep_alive_timeout"] = keep_alive_timeout
            __props__.__dict__["lb_algorithm"] = lb_algorithm
            __props__.__dict__["project_name"] = project_name
            __props__.__dict__["protocol_follow"] = protocol_follow
            __props__.__dict__["protocol_ports"] = protocol_ports
            __props__.__dict__["protocols"] = protocols
            __props__.__dict__["proxy_config"] = proxy_config
            __props__.__dict__["proxy_connect_timeout"] = proxy_connect_timeout
            __props__.__dict__["proxy_keep_alive"] = proxy_keep_alive
            __props__.__dict__["proxy_keep_alive_timeout"] = proxy_keep_alive_timeout
            __props__.__dict__["proxy_read_timeout"] = proxy_read_timeout
            __props__.__dict__["proxy_retry"] = proxy_retry
            __props__.__dict__["proxy_write_timeout"] = proxy_write_timeout
            __props__.__dict__["public_real_server"] = public_real_server
            __props__.__dict__["ssl_ciphers"] = ssl_ciphers
            __props__.__dict__["ssl_protocols"] = ssl_protocols
            __props__.__dict__["system_bot_enable"] = system_bot_enable
            __props__.__dict__["tamper_proof_enable"] = tamper_proof_enable
            __props__.__dict__["tls_enable"] = tls_enable
            __props__.__dict__["tls_fields_config"] = tls_fields_config
            __props__.__dict__["vpc_id"] = vpc_id
            __props__.__dict__["waf_enable"] = waf_enable
            __props__.__dict__["waf_white_req_enable"] = waf_white_req_enable
            __props__.__dict__["white_enable"] = white_enable
            __props__.__dict__["white_field_enable"] = white_field_enable
            __props__.__dict__["advanced_defense_ip"] = None
            __props__.__dict__["advanced_defense_ipv6"] = None
            __props__.__dict__["attack_status"] = None
            __props__.__dict__["automatic_black_enable"] = None
            __props__.__dict__["certificate_name"] = None
            __props__.__dict__["clb_instance_ids"] = None
            __props__.__dict__["clb_listener_id"] = None
            __props__.__dict__["clb_pool_id"] = None
            __props__.__dict__["clb_server_id"] = None
            __props__.__dict__["cname"] = None
            __props__.__dict__["port"] = None
            __props__.__dict__["rsp_abnormal_enable"] = None
            __props__.__dict__["server_ips"] = None
            __props__.__dict__["src_ips"] = None
            __props__.__dict__["src_protocol"] = None
            __props__.__dict__["status"] = None
            __props__.__dict__["tcp_listener_configs"] = None
            __props__.__dict__["update_time"] = None
        super(Domain, __self__).__init__(
            'bytepluscc:waf/domain:Domain',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            access_mode: Optional[pulumi.Input[builtins.int]] = None,
            advanced_defense_ip: Optional[pulumi.Input[builtins.str]] = None,
            advanced_defense_ipv6: Optional[pulumi.Input[builtins.str]] = None,
            api_enable: Optional[pulumi.Input[builtins.int]] = None,
            attack_status: Optional[pulumi.Input[builtins.int]] = None,
            auto_cc_enable: Optional[pulumi.Input[builtins.int]] = None,
            automatic_black_enable: Optional[pulumi.Input[builtins.int]] = None,
            backend_groups: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DomainBackendGroupArgs', 'DomainBackendGroupArgsDict']]]]] = None,
            black_ip_enable: Optional[pulumi.Input[builtins.int]] = None,
            black_lct_enable: Optional[pulumi.Input[builtins.int]] = None,
            bot_dytoken_enable: Optional[pulumi.Input[builtins.int]] = None,
            bot_frequency_enable: Optional[pulumi.Input[builtins.int]] = None,
            bot_repeat_enable: Optional[pulumi.Input[builtins.int]] = None,
            bot_sequence_default_action: Optional[pulumi.Input[builtins.int]] = None,
            bot_sequence_enable: Optional[pulumi.Input[builtins.int]] = None,
            cc_enable: Optional[pulumi.Input[builtins.int]] = None,
            certificate_id: Optional[pulumi.Input[builtins.str]] = None,
            certificate_name: Optional[pulumi.Input[builtins.str]] = None,
            certificate_platform: Optional[pulumi.Input[builtins.str]] = None,
            clb_instance_ids: Optional[pulumi.Input[builtins.str]] = None,
            clb_listener_id: Optional[pulumi.Input[builtins.str]] = None,
            clb_pool_id: Optional[pulumi.Input[builtins.str]] = None,
            clb_server_id: Optional[pulumi.Input[builtins.str]] = None,
            client_ip_location: Optional[pulumi.Input[builtins.int]] = None,
            client_max_body_size: Optional[pulumi.Input[builtins.int]] = None,
            cloud_access_configs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DomainCloudAccessConfigArgs', 'DomainCloudAccessConfigArgsDict']]]]] = None,
            cname: Optional[pulumi.Input[builtins.str]] = None,
            custom_bot_enable: Optional[pulumi.Input[builtins.int]] = None,
            custom_headers: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
            custom_rsp_enable: Optional[pulumi.Input[builtins.int]] = None,
            custom_sni: Optional[pulumi.Input[builtins.str]] = None,
            defence_mode: Optional[pulumi.Input[builtins.int]] = None,
            dlp_enable: Optional[pulumi.Input[builtins.int]] = None,
            domain: Optional[pulumi.Input[builtins.str]] = None,
            enable_custom_redirect: Optional[pulumi.Input[builtins.int]] = None,
            enable_http2: Optional[pulumi.Input[builtins.int]] = None,
            enable_ipv6: Optional[pulumi.Input[builtins.int]] = None,
            enable_sni: Optional[pulumi.Input[builtins.int]] = None,
            keep_alive_request: Optional[pulumi.Input[builtins.int]] = None,
            keep_alive_timeout: Optional[pulumi.Input[builtins.int]] = None,
            lb_algorithm: Optional[pulumi.Input[builtins.str]] = None,
            port: Optional[pulumi.Input[builtins.int]] = None,
            project_name: Optional[pulumi.Input[builtins.str]] = None,
            protocol_follow: Optional[pulumi.Input[builtins.int]] = None,
            protocol_ports: Optional[pulumi.Input[Union['DomainProtocolPortsArgs', 'DomainProtocolPortsArgsDict']]] = None,
            protocols: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
            proxy_config: Optional[pulumi.Input[builtins.int]] = None,
            proxy_connect_timeout: Optional[pulumi.Input[builtins.int]] = None,
            proxy_keep_alive: Optional[pulumi.Input[builtins.int]] = None,
            proxy_keep_alive_timeout: Optional[pulumi.Input[builtins.int]] = None,
            proxy_read_timeout: Optional[pulumi.Input[builtins.int]] = None,
            proxy_retry: Optional[pulumi.Input[builtins.int]] = None,
            proxy_write_timeout: Optional[pulumi.Input[builtins.int]] = None,
            public_real_server: Optional[pulumi.Input[builtins.int]] = None,
            rsp_abnormal_enable: Optional[pulumi.Input[builtins.int]] = None,
            server_ips: Optional[pulumi.Input[builtins.str]] = None,
            src_ips: Optional[pulumi.Input[builtins.str]] = None,
            src_protocol: Optional[pulumi.Input[builtins.str]] = None,
            ssl_ciphers: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
            ssl_protocols: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
            status: Optional[pulumi.Input[builtins.int]] = None,
            system_bot_enable: Optional[pulumi.Input[builtins.int]] = None,
            tamper_proof_enable: Optional[pulumi.Input[builtins.int]] = None,
            tcp_listener_configs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DomainTcpListenerConfigArgs', 'DomainTcpListenerConfigArgsDict']]]]] = None,
            tls_enable: Optional[pulumi.Input[builtins.int]] = None,
            tls_fields_config: Optional[pulumi.Input[Union['DomainTlsFieldsConfigArgs', 'DomainTlsFieldsConfigArgsDict']]] = None,
            update_time: Optional[pulumi.Input[builtins.str]] = None,
            vpc_id: Optional[pulumi.Input[builtins.str]] = None,
            waf_enable: Optional[pulumi.Input[builtins.int]] = None,
            waf_white_req_enable: Optional[pulumi.Input[builtins.int]] = None,
            white_enable: Optional[pulumi.Input[builtins.int]] = None,
            white_field_enable: Optional[pulumi.Input[builtins.int]] = None) -> 'Domain':
        """
        Get an existing Domain resource's state with the given name, id, and optional extra
        properties used to qualify the lookup.

        :param str resource_name: The unique name of the resulting resource.
        :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[builtins.int] access_mode: 接入模式。10：CNAME 接入，11：负载均衡（CLB）7 层接入。
        :param pulumi.Input[builtins.str] advanced_defense_ip: 高防实例 IP。高防型 WAF 接入展示，否则为空。
        :param pulumi.Input[builtins.str] advanced_defense_ipv6: 高防实例 Ipv6。高防型 WAF 接入展示，否则为空。
        :param pulumi.Input[builtins.int] api_enable: 是否开启了 API 防护策略。0：关闭，1：开启。
        :param pulumi.Input[builtins.int] attack_status: 攻击状态。0:未发现攻击,1:发现攻击。
        :param pulumi.Input[builtins.int] auto_cc_enable: 是否开启智能 CC 防护策略。0：关闭，1：开启。
        :param pulumi.Input[builtins.int] automatic_black_enable: 是否开启自动封禁。0：关闭，1：开启。
        :param pulumi.Input[builtins.int] black_ip_enable: 是否开启了黑名单策略。0：关闭, 1：开启。
        :param pulumi.Input[builtins.int] black_lct_enable: 是否开启了区域封禁策略。0：关闭;1：开启。
        :param pulumi.Input[builtins.int] bot_dytoken_enable: 是否开启动态Token防护。
        :param pulumi.Input[builtins.int] bot_frequency_enable: 是否开启 bot 频率限制策略。
               0：关闭
               1：开启。
        :param pulumi.Input[builtins.int] bot_repeat_enable: 是否开启 bot 统计防护策略。
               0：关闭
               1：开启。
        :param pulumi.Input[builtins.int] bot_sequence_default_action: 设置 bot 行为地图策略默认动作，当 BotSequenceEnable = 1 开启状态时生效。默认为 0 （观察）。
               0：观察
               2：拦截
               6：JS 挑战
               7：人机验证。
        :param pulumi.Input[builtins.int] bot_sequence_enable: 是否开启 bot 行为地图。
               0：关闭
               1：开启。
        :param pulumi.Input[builtins.int] cc_enable: 是否开启 CC 防护策略。
               0：关闭
               1：开启。
        :param pulumi.Input[builtins.str] certificate_id: 托管至证书中心的证书ID。
        :param pulumi.Input[builtins.str] certificate_name: 证书名称，协议类型包含 HTTPS 时显示。
        :param pulumi.Input[builtins.str] certificate_platform: 证书托管平台:waf/certificate_service。
        :param pulumi.Input[builtins.str] clb_instance_ids: CLB实例ID。
        :param pulumi.Input[builtins.str] clb_listener_id: CLB监听器ID。
        :param pulumi.Input[builtins.str] clb_pool_id: CLB后端服务器组ID。
        :param pulumi.Input[builtins.str] clb_server_id: CLB后端服务器ID。
        :param pulumi.Input[builtins.int] client_ip_location: 客户端IP获取方式。0:自定义Header字段,1:通过X-Forwarded-For(XFF)字段中第一个公网IP地址作为客户端真实IP地址。
        :param pulumi.Input[builtins.int] client_max_body_size: 客户端请求body最大值(MB)。
        :param pulumi.Input[builtins.str] cname: CNAME记录。
        :param pulumi.Input[builtins.int] custom_bot_enable: 是否开启自定义BOT防护。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] custom_headers: 自定义Header。
        :param pulumi.Input[builtins.int] custom_rsp_enable: 是否开启自定义响应。
        :param pulumi.Input[builtins.str] custom_sni: 自定义SNI。
        :param pulumi.Input[builtins.int] defence_mode: 为例外 ALB 实例设置防护模式。
               1：启用防护，已配置的防护策略生效。
               2：暂停防护，仅执行转发而不检测，已配置的防护策略不生效。
               3：回源模式，直接将请求解析至源站，不再转发至 WAF 实例。
               设置例外防护实例后，域名可能还会存在以下防护状态：
               5：部分启用，默认防护模式为启用防护，但存在例外实例为暂停防护或回源模式状态。
               6：部分暂停，默认防护模式为暂停防护，但存在例外实例为启用防护或回源模式状态。
               7：部分回源，默认防护模式为回源模式，但存在例外实例为启用防护或暂停防护状态。
        :param pulumi.Input[builtins.int] dlp_enable: 是否开启数据泄露防护。
        :param pulumi.Input[builtins.str] domain: 防护的域名信息，支持泛域名和精确域名。
        :param pulumi.Input[builtins.int] enable_custom_redirect: 是否开启用户自定义重定向。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] enable_http2: 是否开启HTTP2.0。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] enable_ipv6: 是否支持防护Ipv6请求。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] enable_sni: 是否开启SNI配置。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] keep_alive_request: 长连接复用个数。
        :param pulumi.Input[builtins.int] keep_alive_timeout: 长连接保持时间(秒)。
        :param pulumi.Input[builtins.str] lb_algorithm: 负载均衡算法类型。wrr:加权轮询,wlc:加权最小连接数,sh:源地址哈希。
        :param pulumi.Input[builtins.int] port: 端口号。
        :param pulumi.Input[builtins.str] project_name: 项目名称。
        :param pulumi.Input[builtins.int] protocol_follow: 是否开启协议跟随。0:关闭,1:开启。
        :param pulumi.Input[Union['DomainProtocolPortsArgs', 'DomainProtocolPortsArgsDict']] protocol_ports: 接入端口信息。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] protocols: 接入协议类型,支持HTTP/HTTPS。
        :param pulumi.Input[builtins.int] proxy_config: 是否开启代理配置。0:关闭,1:开启。
        :param pulumi.Input[builtins.int] proxy_connect_timeout: WAF和后端服务器的建连超时时间(秒)。
        :param pulumi.Input[builtins.int] proxy_keep_alive: WAF回源长连接可复用个数。
        :param pulumi.Input[builtins.int] proxy_keep_alive_timeout: 空闲长连接超时时间(秒)。
        :param pulumi.Input[builtins.int] proxy_read_timeout: WAF从后端服务器读取响应的超时时间(秒)。
        :param pulumi.Input[builtins.int] proxy_retry: WAF回源重试次数。
        :param pulumi.Input[builtins.int] proxy_write_timeout: WAF将请求传输到后端服务器的超时时间(秒)。
        :param pulumi.Input[builtins.int] public_real_server: CNAME接入回源方式。0:私网回源,1:公网回源。
        :param pulumi.Input[builtins.int] rsp_abnormal_enable: 是否开启异常响应防护。
        :param pulumi.Input[builtins.str] server_ips: 服务IP。
        :param pulumi.Input[builtins.str] src_ips: WAF回源IP。
        :param pulumi.Input[builtins.str] src_protocol: 源站协议。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] ssl_ciphers: 加密套件。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] ssl_protocols: TLS协议版本。如:TLSv1,TLSv1.1,TLSv1.2,TLSv1.3。
        :param pulumi.Input[builtins.int] status: 接入状态。0:正常,1:DNS未解析,2:配置中,3:配置失败,4:配置未生效,5:更新中,6:实例已删除。
        :param pulumi.Input[builtins.int] system_bot_enable: 是否开启托管BOT防护。
        :param pulumi.Input[builtins.int] tamper_proof_enable: 是否开启防篡改。
        :param pulumi.Input[builtins.int] tls_enable: 是否开启日志服务。0:关闭,1:开启。
        :param pulumi.Input[Union['DomainTlsFieldsConfigArgs', 'DomainTlsFieldsConfigArgsDict']] tls_fields_config: 日志字段配置详情。
        :param pulumi.Input[builtins.str] update_time: 更新时间。
        :param pulumi.Input[builtins.str] vpc_id: VPC ID。
        :param pulumi.Input[builtins.int] waf_enable: 是否开启WAF防护。
        :param pulumi.Input[builtins.int] waf_white_req_enable: 是否开启白名单请求防护。
        :param pulumi.Input[builtins.int] white_enable: 是否开启白名单防护。
        :param pulumi.Input[builtins.int] white_field_enable: 是否开启字段白名单防护。
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _DomainState.__new__(_DomainState)

        __props__.__dict__["access_mode"] = access_mode
        __props__.__dict__["advanced_defense_ip"] = advanced_defense_ip
        __props__.__dict__["advanced_defense_ipv6"] = advanced_defense_ipv6
        __props__.__dict__["api_enable"] = api_enable
        __props__.__dict__["attack_status"] = attack_status
        __props__.__dict__["auto_cc_enable"] = auto_cc_enable
        __props__.__dict__["automatic_black_enable"] = automatic_black_enable
        __props__.__dict__["backend_groups"] = backend_groups
        __props__.__dict__["black_ip_enable"] = black_ip_enable
        __props__.__dict__["black_lct_enable"] = black_lct_enable
        __props__.__dict__["bot_dytoken_enable"] = bot_dytoken_enable
        __props__.__dict__["bot_frequency_enable"] = bot_frequency_enable
        __props__.__dict__["bot_repeat_enable"] = bot_repeat_enable
        __props__.__dict__["bot_sequence_default_action"] = bot_sequence_default_action
        __props__.__dict__["bot_sequence_enable"] = bot_sequence_enable
        __props__.__dict__["cc_enable"] = cc_enable
        __props__.__dict__["certificate_id"] = certificate_id
        __props__.__dict__["certificate_name"] = certificate_name
        __props__.__dict__["certificate_platform"] = certificate_platform
        __props__.__dict__["clb_instance_ids"] = clb_instance_ids
        __props__.__dict__["clb_listener_id"] = clb_listener_id
        __props__.__dict__["clb_pool_id"] = clb_pool_id
        __props__.__dict__["clb_server_id"] = clb_server_id
        __props__.__dict__["client_ip_location"] = client_ip_location
        __props__.__dict__["client_max_body_size"] = client_max_body_size
        __props__.__dict__["cloud_access_configs"] = cloud_access_configs
        __props__.__dict__["cname"] = cname
        __props__.__dict__["custom_bot_enable"] = custom_bot_enable
        __props__.__dict__["custom_headers"] = custom_headers
        __props__.__dict__["custom_rsp_enable"] = custom_rsp_enable
        __props__.__dict__["custom_sni"] = custom_sni
        __props__.__dict__["defence_mode"] = defence_mode
        __props__.__dict__["dlp_enable"] = dlp_enable
        __props__.__dict__["domain"] = domain
        __props__.__dict__["enable_custom_redirect"] = enable_custom_redirect
        __props__.__dict__["enable_http2"] = enable_http2
        __props__.__dict__["enable_ipv6"] = enable_ipv6
        __props__.__dict__["enable_sni"] = enable_sni
        __props__.__dict__["keep_alive_request"] = keep_alive_request
        __props__.__dict__["keep_alive_timeout"] = keep_alive_timeout
        __props__.__dict__["lb_algorithm"] = lb_algorithm
        __props__.__dict__["port"] = port
        __props__.__dict__["project_name"] = project_name
        __props__.__dict__["protocol_follow"] = protocol_follow
        __props__.__dict__["protocol_ports"] = protocol_ports
        __props__.__dict__["protocols"] = protocols
        __props__.__dict__["proxy_config"] = proxy_config
        __props__.__dict__["proxy_connect_timeout"] = proxy_connect_timeout
        __props__.__dict__["proxy_keep_alive"] = proxy_keep_alive
        __props__.__dict__["proxy_keep_alive_timeout"] = proxy_keep_alive_timeout
        __props__.__dict__["proxy_read_timeout"] = proxy_read_timeout
        __props__.__dict__["proxy_retry"] = proxy_retry
        __props__.__dict__["proxy_write_timeout"] = proxy_write_timeout
        __props__.__dict__["public_real_server"] = public_real_server
        __props__.__dict__["rsp_abnormal_enable"] = rsp_abnormal_enable
        __props__.__dict__["server_ips"] = server_ips
        __props__.__dict__["src_ips"] = src_ips
        __props__.__dict__["src_protocol"] = src_protocol
        __props__.__dict__["ssl_ciphers"] = ssl_ciphers
        __props__.__dict__["ssl_protocols"] = ssl_protocols
        __props__.__dict__["status"] = status
        __props__.__dict__["system_bot_enable"] = system_bot_enable
        __props__.__dict__["tamper_proof_enable"] = tamper_proof_enable
        __props__.__dict__["tcp_listener_configs"] = tcp_listener_configs
        __props__.__dict__["tls_enable"] = tls_enable
        __props__.__dict__["tls_fields_config"] = tls_fields_config
        __props__.__dict__["update_time"] = update_time
        __props__.__dict__["vpc_id"] = vpc_id
        __props__.__dict__["waf_enable"] = waf_enable
        __props__.__dict__["waf_white_req_enable"] = waf_white_req_enable
        __props__.__dict__["white_enable"] = white_enable
        __props__.__dict__["white_field_enable"] = white_field_enable
        return Domain(resource_name, opts=opts, __props__=__props__)

    @property
    @pulumi.getter(name="accessMode")
    def access_mode(self) -> pulumi.Output[builtins.int]:
        """
        接入模式。10：CNAME 接入，11：负载均衡（CLB）7 层接入。
        """
        return pulumi.get(self, "access_mode")

    @property
    @pulumi.getter(name="advancedDefenseIp")
    def advanced_defense_ip(self) -> pulumi.Output[builtins.str]:
        """
        高防实例 IP。高防型 WAF 接入展示，否则为空。
        """
        return pulumi.get(self, "advanced_defense_ip")

    @property
    @pulumi.getter(name="advancedDefenseIpv6")
    def advanced_defense_ipv6(self) -> pulumi.Output[builtins.str]:
        """
        高防实例 Ipv6。高防型 WAF 接入展示，否则为空。
        """
        return pulumi.get(self, "advanced_defense_ipv6")

    @property
    @pulumi.getter(name="apiEnable")
    def api_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启了 API 防护策略。0：关闭，1：开启。
        """
        return pulumi.get(self, "api_enable")

    @property
    @pulumi.getter(name="attackStatus")
    def attack_status(self) -> pulumi.Output[builtins.int]:
        """
        攻击状态。0:未发现攻击,1:发现攻击。
        """
        return pulumi.get(self, "attack_status")

    @property
    @pulumi.getter(name="autoCcEnable")
    def auto_cc_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启智能 CC 防护策略。0：关闭，1：开启。
        """
        return pulumi.get(self, "auto_cc_enable")

    @property
    @pulumi.getter(name="automaticBlackEnable")
    def automatic_black_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启自动封禁。0：关闭，1：开启。
        """
        return pulumi.get(self, "automatic_black_enable")

    @property
    @pulumi.getter(name="backendGroups")
    def backend_groups(self) -> pulumi.Output[Sequence['outputs.DomainBackendGroup']]:
        return pulumi.get(self, "backend_groups")

    @property
    @pulumi.getter(name="blackIpEnable")
    def black_ip_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启了黑名单策略。0：关闭, 1：开启。
        """
        return pulumi.get(self, "black_ip_enable")

    @property
    @pulumi.getter(name="blackLctEnable")
    def black_lct_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启了区域封禁策略。0：关闭;1：开启。
        """
        return pulumi.get(self, "black_lct_enable")

    @property
    @pulumi.getter(name="botDytokenEnable")
    def bot_dytoken_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启动态Token防护。
        """
        return pulumi.get(self, "bot_dytoken_enable")

    @property
    @pulumi.getter(name="botFrequencyEnable")
    def bot_frequency_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启 bot 频率限制策略。
        0：关闭
        1：开启。
        """
        return pulumi.get(self, "bot_frequency_enable")

    @property
    @pulumi.getter(name="botRepeatEnable")
    def bot_repeat_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启 bot 统计防护策略。
        0：关闭
        1：开启。
        """
        return pulumi.get(self, "bot_repeat_enable")

    @property
    @pulumi.getter(name="botSequenceDefaultAction")
    def bot_sequence_default_action(self) -> pulumi.Output[builtins.int]:
        """
        设置 bot 行为地图策略默认动作，当 BotSequenceEnable = 1 开启状态时生效。默认为 0 （观察）。
        0：观察
        2：拦截
        6：JS 挑战
        7：人机验证。
        """
        return pulumi.get(self, "bot_sequence_default_action")

    @property
    @pulumi.getter(name="botSequenceEnable")
    def bot_sequence_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启 bot 行为地图。
        0：关闭
        1：开启。
        """
        return pulumi.get(self, "bot_sequence_enable")

    @property
    @pulumi.getter(name="ccEnable")
    def cc_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启 CC 防护策略。
        0：关闭
        1：开启。
        """
        return pulumi.get(self, "cc_enable")

    @property
    @pulumi.getter(name="certificateId")
    def certificate_id(self) -> pulumi.Output[builtins.str]:
        """
        托管至证书中心的证书ID。
        """
        return pulumi.get(self, "certificate_id")

    @property
    @pulumi.getter(name="certificateName")
    def certificate_name(self) -> pulumi.Output[builtins.str]:
        """
        证书名称，协议类型包含 HTTPS 时显示。
        """
        return pulumi.get(self, "certificate_name")

    @property
    @pulumi.getter(name="certificatePlatform")
    def certificate_platform(self) -> pulumi.Output[builtins.str]:
        """
        证书托管平台:waf/certificate_service。
        """
        return pulumi.get(self, "certificate_platform")

    @property
    @pulumi.getter(name="clbInstanceIds")
    def clb_instance_ids(self) -> pulumi.Output[builtins.str]:
        """
        CLB实例ID。
        """
        return pulumi.get(self, "clb_instance_ids")

    @property
    @pulumi.getter(name="clbListenerId")
    def clb_listener_id(self) -> pulumi.Output[builtins.str]:
        """
        CLB监听器ID。
        """
        return pulumi.get(self, "clb_listener_id")

    @property
    @pulumi.getter(name="clbPoolId")
    def clb_pool_id(self) -> pulumi.Output[builtins.str]:
        """
        CLB后端服务器组ID。
        """
        return pulumi.get(self, "clb_pool_id")

    @property
    @pulumi.getter(name="clbServerId")
    def clb_server_id(self) -> pulumi.Output[builtins.str]:
        """
        CLB后端服务器ID。
        """
        return pulumi.get(self, "clb_server_id")

    @property
    @pulumi.getter(name="clientIpLocation")
    def client_ip_location(self) -> pulumi.Output[builtins.int]:
        """
        客户端IP获取方式。0:自定义Header字段,1:通过X-Forwarded-For(XFF)字段中第一个公网IP地址作为客户端真实IP地址。
        """
        return pulumi.get(self, "client_ip_location")

    @property
    @pulumi.getter(name="clientMaxBodySize")
    def client_max_body_size(self) -> pulumi.Output[builtins.int]:
        """
        客户端请求body最大值(MB)。
        """
        return pulumi.get(self, "client_max_body_size")

    @property
    @pulumi.getter(name="cloudAccessConfigs")
    def cloud_access_configs(self) -> pulumi.Output[Sequence['outputs.DomainCloudAccessConfig']]:
        return pulumi.get(self, "cloud_access_configs")

    @property
    @pulumi.getter
    def cname(self) -> pulumi.Output[builtins.str]:
        """
        CNAME记录。
        """
        return pulumi.get(self, "cname")

    @property
    @pulumi.getter(name="customBotEnable")
    def custom_bot_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启自定义BOT防护。
        """
        return pulumi.get(self, "custom_bot_enable")

    @property
    @pulumi.getter(name="customHeaders")
    def custom_headers(self) -> pulumi.Output[Sequence[builtins.str]]:
        """
        自定义Header。
        """
        return pulumi.get(self, "custom_headers")

    @property
    @pulumi.getter(name="customRspEnable")
    def custom_rsp_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启自定义响应。
        """
        return pulumi.get(self, "custom_rsp_enable")

    @property
    @pulumi.getter(name="customSni")
    def custom_sni(self) -> pulumi.Output[builtins.str]:
        """
        自定义SNI。
        """
        return pulumi.get(self, "custom_sni")

    @property
    @pulumi.getter(name="defenceMode")
    def defence_mode(self) -> pulumi.Output[builtins.int]:
        """
        为例外 ALB 实例设置防护模式。
        1：启用防护，已配置的防护策略生效。
        2：暂停防护，仅执行转发而不检测，已配置的防护策略不生效。
        3：回源模式，直接将请求解析至源站，不再转发至 WAF 实例。
        设置例外防护实例后，域名可能还会存在以下防护状态：
        5：部分启用，默认防护模式为启用防护，但存在例外实例为暂停防护或回源模式状态。
        6：部分暂停，默认防护模式为暂停防护，但存在例外实例为启用防护或回源模式状态。
        7：部分回源，默认防护模式为回源模式，但存在例外实例为启用防护或暂停防护状态。
        """
        return pulumi.get(self, "defence_mode")

    @property
    @pulumi.getter(name="dlpEnable")
    def dlp_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启数据泄露防护。
        """
        return pulumi.get(self, "dlp_enable")

    @property
    @pulumi.getter
    def domain(self) -> pulumi.Output[builtins.str]:
        """
        防护的域名信息，支持泛域名和精确域名。
        """
        return pulumi.get(self, "domain")

    @property
    @pulumi.getter(name="enableCustomRedirect")
    def enable_custom_redirect(self) -> pulumi.Output[builtins.int]:
        """
        是否开启用户自定义重定向。0:关闭,1:开启。
        """
        return pulumi.get(self, "enable_custom_redirect")

    @property
    @pulumi.getter(name="enableHttp2")
    def enable_http2(self) -> pulumi.Output[builtins.int]:
        """
        是否开启HTTP2.0。0:关闭,1:开启。
        """
        return pulumi.get(self, "enable_http2")

    @property
    @pulumi.getter(name="enableIpv6")
    def enable_ipv6(self) -> pulumi.Output[builtins.int]:
        """
        是否支持防护Ipv6请求。0:关闭,1:开启。
        """
        return pulumi.get(self, "enable_ipv6")

    @property
    @pulumi.getter(name="enableSni")
    def enable_sni(self) -> pulumi.Output[builtins.int]:
        """
        是否开启SNI配置。0:关闭,1:开启。
        """
        return pulumi.get(self, "enable_sni")

    @property
    @pulumi.getter(name="keepAliveRequest")
    def keep_alive_request(self) -> pulumi.Output[builtins.int]:
        """
        长连接复用个数。
        """
        return pulumi.get(self, "keep_alive_request")

    @property
    @pulumi.getter(name="keepAliveTimeout")
    def keep_alive_timeout(self) -> pulumi.Output[builtins.int]:
        """
        长连接保持时间(秒)。
        """
        return pulumi.get(self, "keep_alive_timeout")

    @property
    @pulumi.getter(name="lbAlgorithm")
    def lb_algorithm(self) -> pulumi.Output[builtins.str]:
        """
        负载均衡算法类型。wrr:加权轮询,wlc:加权最小连接数,sh:源地址哈希。
        """
        return pulumi.get(self, "lb_algorithm")

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

    @property
    @pulumi.getter(name="projectName")
    def project_name(self) -> pulumi.Output[builtins.str]:
        """
        项目名称。
        """
        return pulumi.get(self, "project_name")

    @property
    @pulumi.getter(name="protocolFollow")
    def protocol_follow(self) -> pulumi.Output[builtins.int]:
        """
        是否开启协议跟随。0:关闭,1:开启。
        """
        return pulumi.get(self, "protocol_follow")

    @property
    @pulumi.getter(name="protocolPorts")
    def protocol_ports(self) -> pulumi.Output['outputs.DomainProtocolPorts']:
        """
        接入端口信息。
        """
        return pulumi.get(self, "protocol_ports")

    @property
    @pulumi.getter
    def protocols(self) -> pulumi.Output[Sequence[builtins.str]]:
        """
        接入协议类型,支持HTTP/HTTPS。
        """
        return pulumi.get(self, "protocols")

    @property
    @pulumi.getter(name="proxyConfig")
    def proxy_config(self) -> pulumi.Output[builtins.int]:
        """
        是否开启代理配置。0:关闭,1:开启。
        """
        return pulumi.get(self, "proxy_config")

    @property
    @pulumi.getter(name="proxyConnectTimeout")
    def proxy_connect_timeout(self) -> pulumi.Output[builtins.int]:
        """
        WAF和后端服务器的建连超时时间(秒)。
        """
        return pulumi.get(self, "proxy_connect_timeout")

    @property
    @pulumi.getter(name="proxyKeepAlive")
    def proxy_keep_alive(self) -> pulumi.Output[builtins.int]:
        """
        WAF回源长连接可复用个数。
        """
        return pulumi.get(self, "proxy_keep_alive")

    @property
    @pulumi.getter(name="proxyKeepAliveTimeout")
    def proxy_keep_alive_timeout(self) -> pulumi.Output[builtins.int]:
        """
        空闲长连接超时时间(秒)。
        """
        return pulumi.get(self, "proxy_keep_alive_timeout")

    @property
    @pulumi.getter(name="proxyReadTimeout")
    def proxy_read_timeout(self) -> pulumi.Output[builtins.int]:
        """
        WAF从后端服务器读取响应的超时时间(秒)。
        """
        return pulumi.get(self, "proxy_read_timeout")

    @property
    @pulumi.getter(name="proxyRetry")
    def proxy_retry(self) -> pulumi.Output[builtins.int]:
        """
        WAF回源重试次数。
        """
        return pulumi.get(self, "proxy_retry")

    @property
    @pulumi.getter(name="proxyWriteTimeout")
    def proxy_write_timeout(self) -> pulumi.Output[builtins.int]:
        """
        WAF将请求传输到后端服务器的超时时间(秒)。
        """
        return pulumi.get(self, "proxy_write_timeout")

    @property
    @pulumi.getter(name="publicRealServer")
    def public_real_server(self) -> pulumi.Output[builtins.int]:
        """
        CNAME接入回源方式。0:私网回源,1:公网回源。
        """
        return pulumi.get(self, "public_real_server")

    @property
    @pulumi.getter(name="rspAbnormalEnable")
    def rsp_abnormal_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启异常响应防护。
        """
        return pulumi.get(self, "rsp_abnormal_enable")

    @property
    @pulumi.getter(name="serverIps")
    def server_ips(self) -> pulumi.Output[builtins.str]:
        """
        服务IP。
        """
        return pulumi.get(self, "server_ips")

    @property
    @pulumi.getter(name="srcIps")
    def src_ips(self) -> pulumi.Output[builtins.str]:
        """
        WAF回源IP。
        """
        return pulumi.get(self, "src_ips")

    @property
    @pulumi.getter(name="srcProtocol")
    def src_protocol(self) -> pulumi.Output[builtins.str]:
        """
        源站协议。
        """
        return pulumi.get(self, "src_protocol")

    @property
    @pulumi.getter(name="sslCiphers")
    def ssl_ciphers(self) -> pulumi.Output[Sequence[builtins.str]]:
        """
        加密套件。
        """
        return pulumi.get(self, "ssl_ciphers")

    @property
    @pulumi.getter(name="sslProtocols")
    def ssl_protocols(self) -> pulumi.Output[Sequence[builtins.str]]:
        """
        TLS协议版本。如:TLSv1,TLSv1.1,TLSv1.2,TLSv1.3。
        """
        return pulumi.get(self, "ssl_protocols")

    @property
    @pulumi.getter
    def status(self) -> pulumi.Output[builtins.int]:
        """
        接入状态。0:正常,1:DNS未解析,2:配置中,3:配置失败,4:配置未生效,5:更新中,6:实例已删除。
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter(name="systemBotEnable")
    def system_bot_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启托管BOT防护。
        """
        return pulumi.get(self, "system_bot_enable")

    @property
    @pulumi.getter(name="tamperProofEnable")
    def tamper_proof_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启防篡改。
        """
        return pulumi.get(self, "tamper_proof_enable")

    @property
    @pulumi.getter(name="tcpListenerConfigs")
    def tcp_listener_configs(self) -> pulumi.Output[Sequence['outputs.DomainTcpListenerConfig']]:
        return pulumi.get(self, "tcp_listener_configs")

    @property
    @pulumi.getter(name="tlsEnable")
    def tls_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启日志服务。0:关闭,1:开启。
        """
        return pulumi.get(self, "tls_enable")

    @property
    @pulumi.getter(name="tlsFieldsConfig")
    def tls_fields_config(self) -> pulumi.Output['outputs.DomainTlsFieldsConfig']:
        """
        日志字段配置详情。
        """
        return pulumi.get(self, "tls_fields_config")

    @property
    @pulumi.getter(name="updateTime")
    def update_time(self) -> pulumi.Output[builtins.str]:
        """
        更新时间。
        """
        return pulumi.get(self, "update_time")

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> pulumi.Output[builtins.str]:
        """
        VPC ID。
        """
        return pulumi.get(self, "vpc_id")

    @property
    @pulumi.getter(name="wafEnable")
    def waf_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启WAF防护。
        """
        return pulumi.get(self, "waf_enable")

    @property
    @pulumi.getter(name="wafWhiteReqEnable")
    def waf_white_req_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启白名单请求防护。
        """
        return pulumi.get(self, "waf_white_req_enable")

    @property
    @pulumi.getter(name="whiteEnable")
    def white_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启白名单防护。
        """
        return pulumi.get(self, "white_enable")

    @property
    @pulumi.getter(name="whiteFieldEnable")
    def white_field_enable(self) -> pulumi.Output[builtins.int]:
        """
        是否开启字段白名单防护。
        """
        return pulumi.get(self, "white_field_enable")

