# 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 copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities

__all__ = [
    'DomainConfigFunctionArgArgs',
    'DomainSourceArgs',
    'ErEnvConfArgs',
    'ErEnvConfPresetCanaryAnhuiArgs',
    'ErEnvConfPresetCanaryBeijingArgs',
    'ErEnvConfPresetCanaryChongqingArgs',
    'ErEnvConfPresetCanaryFujianArgs',
    'ErEnvConfPresetCanaryGansuArgs',
    'ErEnvConfPresetCanaryGuangdongArgs',
    'ErEnvConfPresetCanaryGuangxiArgs',
    'ErEnvConfPresetCanaryGuizhouArgs',
    'ErEnvConfPresetCanaryHainanArgs',
    'ErEnvConfPresetCanaryHebeiArgs',
    'ErEnvConfPresetCanaryHeilongjiangArgs',
    'ErEnvConfPresetCanaryHenanArgs',
    'ErEnvConfPresetCanaryHongKongArgs',
    'ErEnvConfPresetCanaryHubeiArgs',
    'ErEnvConfPresetCanaryHunanArgs',
    'ErEnvConfPresetCanaryJiangsuArgs',
    'ErEnvConfPresetCanaryJiangxiArgs',
    'ErEnvConfPresetCanaryJilinArgs',
    'ErEnvConfPresetCanaryLiaoningArgs',
    'ErEnvConfPresetCanaryMacauArgs',
    'ErEnvConfPresetCanaryNeimengguArgs',
    'ErEnvConfPresetCanaryNingxiaArgs',
    'ErEnvConfPresetCanaryOverseasArgs',
    'ErEnvConfPresetCanaryQinghaiArgs',
    'ErEnvConfPresetCanaryShaanxiArgs',
    'ErEnvConfPresetCanaryShandongArgs',
    'ErEnvConfPresetCanaryShanghaiArgs',
    'ErEnvConfPresetCanaryShanxiArgs',
    'ErEnvConfPresetCanarySichuanArgs',
    'ErEnvConfPresetCanaryTaiwanArgs',
    'ErEnvConfPresetCanaryTianjinArgs',
    'ErEnvConfPresetCanaryXinjiangArgs',
    'ErEnvConfPresetCanaryXizangArgs',
    'ErEnvConfPresetCanaryYunnanArgs',
    'ErEnvConfPresetCanaryZhejiangArgs',
    'ErEnvConfProductionArgs',
    'ErEnvConfStagingArgs',
    'IpaDomainSourceArgs',
    'WafRuleConditionArgs',
    'WafRuleRateLimitArgs',
    'WafRuleRateLimitStatusArgs',
]

@pulumi.input_type
class DomainConfigFunctionArgArgs:
    def __init__(__self__, *,
                 arg_name: pulumi.Input[str],
                 arg_value: pulumi.Input[str]):
        """
        :param pulumi.Input[str] arg_name: The name of arg.
        :param pulumi.Input[str] arg_value: The value of arg.
        """
        pulumi.set(__self__, "arg_name", arg_name)
        pulumi.set(__self__, "arg_value", arg_value)

    @property
    @pulumi.getter(name="argName")
    def arg_name(self) -> pulumi.Input[str]:
        """
        The name of arg.
        """
        return pulumi.get(self, "arg_name")

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

    @property
    @pulumi.getter(name="argValue")
    def arg_value(self) -> pulumi.Input[str]:
        """
        The value of arg.
        """
        return pulumi.get(self, "arg_value")

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


@pulumi.input_type
class DomainSourceArgs:
    def __init__(__self__, *,
                 content: pulumi.Input[str],
                 type: pulumi.Input[str],
                 port: Optional[pulumi.Input[int]] = None,
                 priority: Optional[pulumi.Input[str]] = None,
                 weight: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] content: The origin address.
        :param pulumi.Input[str] type: The type of the origin. Valid values:
               `ipaddr`: The origin is configured using an IP address.
               `domain`: The origin is configured using a domain name.
               `oss`: The origin is configured using the Internet domain name of an Alibaba Cloud Object Storage Service (OSS) bucket.
        :param pulumi.Input[int] port: The port number. Valid values: `443` and `80`. Default to `80`.
        :param pulumi.Input[str] priority: The priority of the origin if multiple origins are specified. Default to `20`.
        :param pulumi.Input[str] weight: The weight of the origin if multiple origins are specified. Default to `10`.
        """
        pulumi.set(__self__, "content", content)
        pulumi.set(__self__, "type", type)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if priority is not None:
            pulumi.set(__self__, "priority", priority)
        if weight is not None:
            pulumi.set(__self__, "weight", weight)

    @property
    @pulumi.getter
    def content(self) -> pulumi.Input[str]:
        """
        The origin address.
        """
        return pulumi.get(self, "content")

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

    @property
    @pulumi.getter
    def type(self) -> pulumi.Input[str]:
        """
        The type of the origin. Valid values:
        `ipaddr`: The origin is configured using an IP address.
        `domain`: The origin is configured using a domain name.
        `oss`: The origin is configured using the Internet domain name of an Alibaba Cloud Object Storage Service (OSS) bucket.
        """
        return pulumi.get(self, "type")

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

    @property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[int]]:
        """
        The port number. Valid values: `443` and `80`. Default to `80`.
        """
        return pulumi.get(self, "port")

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

    @property
    @pulumi.getter
    def priority(self) -> Optional[pulumi.Input[str]]:
        """
        The priority of the origin if multiple origins are specified. Default to `20`.
        """
        return pulumi.get(self, "priority")

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

    @property
    @pulumi.getter
    def weight(self) -> Optional[pulumi.Input[str]]:
        """
        The weight of the origin if multiple origins are specified. Default to `10`.
        """
        return pulumi.get(self, "weight")

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


@pulumi.input_type
class ErEnvConfArgs:
    def __init__(__self__, *,
                 preset_canary_anhui: Optional[pulumi.Input['ErEnvConfPresetCanaryAnhuiArgs']] = None,
                 preset_canary_beijing: Optional[pulumi.Input['ErEnvConfPresetCanaryBeijingArgs']] = None,
                 preset_canary_chongqing: Optional[pulumi.Input['ErEnvConfPresetCanaryChongqingArgs']] = None,
                 preset_canary_fujian: Optional[pulumi.Input['ErEnvConfPresetCanaryFujianArgs']] = None,
                 preset_canary_gansu: Optional[pulumi.Input['ErEnvConfPresetCanaryGansuArgs']] = None,
                 preset_canary_guangdong: Optional[pulumi.Input['ErEnvConfPresetCanaryGuangdongArgs']] = None,
                 preset_canary_guangxi: Optional[pulumi.Input['ErEnvConfPresetCanaryGuangxiArgs']] = None,
                 preset_canary_guizhou: Optional[pulumi.Input['ErEnvConfPresetCanaryGuizhouArgs']] = None,
                 preset_canary_hainan: Optional[pulumi.Input['ErEnvConfPresetCanaryHainanArgs']] = None,
                 preset_canary_hebei: Optional[pulumi.Input['ErEnvConfPresetCanaryHebeiArgs']] = None,
                 preset_canary_heilongjiang: Optional[pulumi.Input['ErEnvConfPresetCanaryHeilongjiangArgs']] = None,
                 preset_canary_henan: Optional[pulumi.Input['ErEnvConfPresetCanaryHenanArgs']] = None,
                 preset_canary_hong_kong: Optional[pulumi.Input['ErEnvConfPresetCanaryHongKongArgs']] = None,
                 preset_canary_hubei: Optional[pulumi.Input['ErEnvConfPresetCanaryHubeiArgs']] = None,
                 preset_canary_hunan: Optional[pulumi.Input['ErEnvConfPresetCanaryHunanArgs']] = None,
                 preset_canary_jiangsu: Optional[pulumi.Input['ErEnvConfPresetCanaryJiangsuArgs']] = None,
                 preset_canary_jiangxi: Optional[pulumi.Input['ErEnvConfPresetCanaryJiangxiArgs']] = None,
                 preset_canary_jilin: Optional[pulumi.Input['ErEnvConfPresetCanaryJilinArgs']] = None,
                 preset_canary_liaoning: Optional[pulumi.Input['ErEnvConfPresetCanaryLiaoningArgs']] = None,
                 preset_canary_macau: Optional[pulumi.Input['ErEnvConfPresetCanaryMacauArgs']] = None,
                 preset_canary_neimenggu: Optional[pulumi.Input['ErEnvConfPresetCanaryNeimengguArgs']] = None,
                 preset_canary_ningxia: Optional[pulumi.Input['ErEnvConfPresetCanaryNingxiaArgs']] = None,
                 preset_canary_overseas: Optional[pulumi.Input['ErEnvConfPresetCanaryOverseasArgs']] = None,
                 preset_canary_qinghai: Optional[pulumi.Input['ErEnvConfPresetCanaryQinghaiArgs']] = None,
                 preset_canary_shaanxi: Optional[pulumi.Input['ErEnvConfPresetCanaryShaanxiArgs']] = None,
                 preset_canary_shandong: Optional[pulumi.Input['ErEnvConfPresetCanaryShandongArgs']] = None,
                 preset_canary_shanghai: Optional[pulumi.Input['ErEnvConfPresetCanaryShanghaiArgs']] = None,
                 preset_canary_shanxi: Optional[pulumi.Input['ErEnvConfPresetCanaryShanxiArgs']] = None,
                 preset_canary_sichuan: Optional[pulumi.Input['ErEnvConfPresetCanarySichuanArgs']] = None,
                 preset_canary_taiwan: Optional[pulumi.Input['ErEnvConfPresetCanaryTaiwanArgs']] = None,
                 preset_canary_tianjin: Optional[pulumi.Input['ErEnvConfPresetCanaryTianjinArgs']] = None,
                 preset_canary_xinjiang: Optional[pulumi.Input['ErEnvConfPresetCanaryXinjiangArgs']] = None,
                 preset_canary_xizang: Optional[pulumi.Input['ErEnvConfPresetCanaryXizangArgs']] = None,
                 preset_canary_yunnan: Optional[pulumi.Input['ErEnvConfPresetCanaryYunnanArgs']] = None,
                 preset_canary_zhejiang: Optional[pulumi.Input['ErEnvConfPresetCanaryZhejiangArgs']] = None,
                 production: Optional[pulumi.Input['ErEnvConfProductionArgs']] = None,
                 staging: Optional[pulumi.Input['ErEnvConfStagingArgs']] = None):
        """
        :param pulumi.Input['ErEnvConfPresetCanaryAnhuiArgs'] preset_canary_anhui: The configuration of a presetCanaryAnhui environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryBeijingArgs'] preset_canary_beijing: The configuration of a presetCanaryBeijing environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryChongqingArgs'] preset_canary_chongqing: The configuration of a presetCanaryChongqing environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryFujianArgs'] preset_canary_fujian: The configuration of a presetCanaryFujian environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryGansuArgs'] preset_canary_gansu: The configuration of a presetCanaryGansu environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryGuangdongArgs'] preset_canary_guangdong: The configuration of a presetCanaryGuangdong environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryGuangxiArgs'] preset_canary_guangxi: The configuration of a presetCanaryGuangxi environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryGuizhouArgs'] preset_canary_guizhou: The configuration of a presetCanaryGuizhou environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryHainanArgs'] preset_canary_hainan: The configuration of a presetCanaryHainan environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryHebeiArgs'] preset_canary_hebei: The configuration of a presetCanaryHebei environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryHeilongjiangArgs'] preset_canary_heilongjiang: The configuration of a presetCanaryHeilongjiang environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryHenanArgs'] preset_canary_henan: The configuration of a presetCanaryHenan environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryHongKongArgs'] preset_canary_hong_kong: The configuration of a presetCanaryHongKong environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryHubeiArgs'] preset_canary_hubei: The configuration of a presetCanaryHubei environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryHunanArgs'] preset_canary_hunan: The configuration of a presetCanaryHunan environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryJiangsuArgs'] preset_canary_jiangsu: The configuration of a presetCanaryJiangsu environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryJiangxiArgs'] preset_canary_jiangxi: The configuration of a presetCanaryJiangxi environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryJilinArgs'] preset_canary_jilin: The configuration of a presetCanaryJilin environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryLiaoningArgs'] preset_canary_liaoning: The configuration of a presetCanaryLiaoning environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryMacauArgs'] preset_canary_macau: The configuration of a presetCanaryMacau environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryNeimengguArgs'] preset_canary_neimenggu: The configuration of a presetCanaryNeimenggu environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryNingxiaArgs'] preset_canary_ningxia: The configuration of a presetCanaryNingxia environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryOverseasArgs'] preset_canary_overseas: The configuration of a presetCanaryOverseas environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryQinghaiArgs'] preset_canary_qinghai: The configuration of a presetCanaryQinghai environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryShaanxiArgs'] preset_canary_shaanxi: The configuration of a presetCanaryShaanxi environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryShandongArgs'] preset_canary_shandong: The configuration of a presetCanaryShandong environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryShanghaiArgs'] preset_canary_shanghai: The configuration of a presetCanaryShanghai environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryShanxiArgs'] preset_canary_shanxi: The configuration of a presetCanaryShanxi environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanarySichuanArgs'] preset_canary_sichuan: The configuration of a presetCanarySichuan environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryTaiwanArgs'] preset_canary_taiwan: The configuration of a presetCanaryTaiwan environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryTianjinArgs'] preset_canary_tianjin: The configuration of a presetCanaryTianjin environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryXinjiangArgs'] preset_canary_xinjiang: The configuration of a presetCanaryXinjiang environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryXizangArgs'] preset_canary_xizang: The configuration of a presetCanaryXizang environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryYunnanArgs'] preset_canary_yunnan: The configuration of a presetCanaryYunnan environment. See `staging` below.
        :param pulumi.Input['ErEnvConfPresetCanaryZhejiangArgs'] preset_canary_zhejiang: The configuration of a presetCanaryZhejiang environment. See `staging` below.
        :param pulumi.Input['ErEnvConfProductionArgs'] production: The configuration of a production environment. See `staging` below.
        :param pulumi.Input['ErEnvConfStagingArgs'] staging: The configuration of a staging environment. See `staging` below.
        """
        if preset_canary_anhui is not None:
            pulumi.set(__self__, "preset_canary_anhui", preset_canary_anhui)
        if preset_canary_beijing is not None:
            pulumi.set(__self__, "preset_canary_beijing", preset_canary_beijing)
        if preset_canary_chongqing is not None:
            pulumi.set(__self__, "preset_canary_chongqing", preset_canary_chongqing)
        if preset_canary_fujian is not None:
            pulumi.set(__self__, "preset_canary_fujian", preset_canary_fujian)
        if preset_canary_gansu is not None:
            pulumi.set(__self__, "preset_canary_gansu", preset_canary_gansu)
        if preset_canary_guangdong is not None:
            pulumi.set(__self__, "preset_canary_guangdong", preset_canary_guangdong)
        if preset_canary_guangxi is not None:
            pulumi.set(__self__, "preset_canary_guangxi", preset_canary_guangxi)
        if preset_canary_guizhou is not None:
            pulumi.set(__self__, "preset_canary_guizhou", preset_canary_guizhou)
        if preset_canary_hainan is not None:
            pulumi.set(__self__, "preset_canary_hainan", preset_canary_hainan)
        if preset_canary_hebei is not None:
            pulumi.set(__self__, "preset_canary_hebei", preset_canary_hebei)
        if preset_canary_heilongjiang is not None:
            pulumi.set(__self__, "preset_canary_heilongjiang", preset_canary_heilongjiang)
        if preset_canary_henan is not None:
            pulumi.set(__self__, "preset_canary_henan", preset_canary_henan)
        if preset_canary_hong_kong is not None:
            pulumi.set(__self__, "preset_canary_hong_kong", preset_canary_hong_kong)
        if preset_canary_hubei is not None:
            pulumi.set(__self__, "preset_canary_hubei", preset_canary_hubei)
        if preset_canary_hunan is not None:
            pulumi.set(__self__, "preset_canary_hunan", preset_canary_hunan)
        if preset_canary_jiangsu is not None:
            pulumi.set(__self__, "preset_canary_jiangsu", preset_canary_jiangsu)
        if preset_canary_jiangxi is not None:
            pulumi.set(__self__, "preset_canary_jiangxi", preset_canary_jiangxi)
        if preset_canary_jilin is not None:
            pulumi.set(__self__, "preset_canary_jilin", preset_canary_jilin)
        if preset_canary_liaoning is not None:
            pulumi.set(__self__, "preset_canary_liaoning", preset_canary_liaoning)
        if preset_canary_macau is not None:
            pulumi.set(__self__, "preset_canary_macau", preset_canary_macau)
        if preset_canary_neimenggu is not None:
            pulumi.set(__self__, "preset_canary_neimenggu", preset_canary_neimenggu)
        if preset_canary_ningxia is not None:
            pulumi.set(__self__, "preset_canary_ningxia", preset_canary_ningxia)
        if preset_canary_overseas is not None:
            pulumi.set(__self__, "preset_canary_overseas", preset_canary_overseas)
        if preset_canary_qinghai is not None:
            pulumi.set(__self__, "preset_canary_qinghai", preset_canary_qinghai)
        if preset_canary_shaanxi is not None:
            pulumi.set(__self__, "preset_canary_shaanxi", preset_canary_shaanxi)
        if preset_canary_shandong is not None:
            pulumi.set(__self__, "preset_canary_shandong", preset_canary_shandong)
        if preset_canary_shanghai is not None:
            pulumi.set(__self__, "preset_canary_shanghai", preset_canary_shanghai)
        if preset_canary_shanxi is not None:
            pulumi.set(__self__, "preset_canary_shanxi", preset_canary_shanxi)
        if preset_canary_sichuan is not None:
            pulumi.set(__self__, "preset_canary_sichuan", preset_canary_sichuan)
        if preset_canary_taiwan is not None:
            pulumi.set(__self__, "preset_canary_taiwan", preset_canary_taiwan)
        if preset_canary_tianjin is not None:
            pulumi.set(__self__, "preset_canary_tianjin", preset_canary_tianjin)
        if preset_canary_xinjiang is not None:
            pulumi.set(__self__, "preset_canary_xinjiang", preset_canary_xinjiang)
        if preset_canary_xizang is not None:
            pulumi.set(__self__, "preset_canary_xizang", preset_canary_xizang)
        if preset_canary_yunnan is not None:
            pulumi.set(__self__, "preset_canary_yunnan", preset_canary_yunnan)
        if preset_canary_zhejiang is not None:
            pulumi.set(__self__, "preset_canary_zhejiang", preset_canary_zhejiang)
        if production is not None:
            pulumi.set(__self__, "production", production)
        if staging is not None:
            pulumi.set(__self__, "staging", staging)

    @property
    @pulumi.getter(name="presetCanaryAnhui")
    def preset_canary_anhui(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryAnhuiArgs']]:
        """
        The configuration of a presetCanaryAnhui environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_anhui")

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

    @property
    @pulumi.getter(name="presetCanaryBeijing")
    def preset_canary_beijing(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryBeijingArgs']]:
        """
        The configuration of a presetCanaryBeijing environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_beijing")

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

    @property
    @pulumi.getter(name="presetCanaryChongqing")
    def preset_canary_chongqing(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryChongqingArgs']]:
        """
        The configuration of a presetCanaryChongqing environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_chongqing")

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

    @property
    @pulumi.getter(name="presetCanaryFujian")
    def preset_canary_fujian(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryFujianArgs']]:
        """
        The configuration of a presetCanaryFujian environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_fujian")

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

    @property
    @pulumi.getter(name="presetCanaryGansu")
    def preset_canary_gansu(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryGansuArgs']]:
        """
        The configuration of a presetCanaryGansu environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_gansu")

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

    @property
    @pulumi.getter(name="presetCanaryGuangdong")
    def preset_canary_guangdong(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryGuangdongArgs']]:
        """
        The configuration of a presetCanaryGuangdong environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_guangdong")

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

    @property
    @pulumi.getter(name="presetCanaryGuangxi")
    def preset_canary_guangxi(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryGuangxiArgs']]:
        """
        The configuration of a presetCanaryGuangxi environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_guangxi")

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

    @property
    @pulumi.getter(name="presetCanaryGuizhou")
    def preset_canary_guizhou(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryGuizhouArgs']]:
        """
        The configuration of a presetCanaryGuizhou environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_guizhou")

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

    @property
    @pulumi.getter(name="presetCanaryHainan")
    def preset_canary_hainan(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryHainanArgs']]:
        """
        The configuration of a presetCanaryHainan environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_hainan")

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

    @property
    @pulumi.getter(name="presetCanaryHebei")
    def preset_canary_hebei(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryHebeiArgs']]:
        """
        The configuration of a presetCanaryHebei environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_hebei")

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

    @property
    @pulumi.getter(name="presetCanaryHeilongjiang")
    def preset_canary_heilongjiang(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryHeilongjiangArgs']]:
        """
        The configuration of a presetCanaryHeilongjiang environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_heilongjiang")

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

    @property
    @pulumi.getter(name="presetCanaryHenan")
    def preset_canary_henan(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryHenanArgs']]:
        """
        The configuration of a presetCanaryHenan environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_henan")

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

    @property
    @pulumi.getter(name="presetCanaryHongKong")
    def preset_canary_hong_kong(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryHongKongArgs']]:
        """
        The configuration of a presetCanaryHongKong environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_hong_kong")

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

    @property
    @pulumi.getter(name="presetCanaryHubei")
    def preset_canary_hubei(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryHubeiArgs']]:
        """
        The configuration of a presetCanaryHubei environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_hubei")

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

    @property
    @pulumi.getter(name="presetCanaryHunan")
    def preset_canary_hunan(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryHunanArgs']]:
        """
        The configuration of a presetCanaryHunan environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_hunan")

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

    @property
    @pulumi.getter(name="presetCanaryJiangsu")
    def preset_canary_jiangsu(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryJiangsuArgs']]:
        """
        The configuration of a presetCanaryJiangsu environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_jiangsu")

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

    @property
    @pulumi.getter(name="presetCanaryJiangxi")
    def preset_canary_jiangxi(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryJiangxiArgs']]:
        """
        The configuration of a presetCanaryJiangxi environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_jiangxi")

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

    @property
    @pulumi.getter(name="presetCanaryJilin")
    def preset_canary_jilin(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryJilinArgs']]:
        """
        The configuration of a presetCanaryJilin environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_jilin")

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

    @property
    @pulumi.getter(name="presetCanaryLiaoning")
    def preset_canary_liaoning(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryLiaoningArgs']]:
        """
        The configuration of a presetCanaryLiaoning environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_liaoning")

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

    @property
    @pulumi.getter(name="presetCanaryMacau")
    def preset_canary_macau(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryMacauArgs']]:
        """
        The configuration of a presetCanaryMacau environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_macau")

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

    @property
    @pulumi.getter(name="presetCanaryNeimenggu")
    def preset_canary_neimenggu(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryNeimengguArgs']]:
        """
        The configuration of a presetCanaryNeimenggu environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_neimenggu")

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

    @property
    @pulumi.getter(name="presetCanaryNingxia")
    def preset_canary_ningxia(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryNingxiaArgs']]:
        """
        The configuration of a presetCanaryNingxia environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_ningxia")

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

    @property
    @pulumi.getter(name="presetCanaryOverseas")
    def preset_canary_overseas(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryOverseasArgs']]:
        """
        The configuration of a presetCanaryOverseas environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_overseas")

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

    @property
    @pulumi.getter(name="presetCanaryQinghai")
    def preset_canary_qinghai(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryQinghaiArgs']]:
        """
        The configuration of a presetCanaryQinghai environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_qinghai")

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

    @property
    @pulumi.getter(name="presetCanaryShaanxi")
    def preset_canary_shaanxi(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryShaanxiArgs']]:
        """
        The configuration of a presetCanaryShaanxi environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_shaanxi")

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

    @property
    @pulumi.getter(name="presetCanaryShandong")
    def preset_canary_shandong(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryShandongArgs']]:
        """
        The configuration of a presetCanaryShandong environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_shandong")

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

    @property
    @pulumi.getter(name="presetCanaryShanghai")
    def preset_canary_shanghai(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryShanghaiArgs']]:
        """
        The configuration of a presetCanaryShanghai environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_shanghai")

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

    @property
    @pulumi.getter(name="presetCanaryShanxi")
    def preset_canary_shanxi(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryShanxiArgs']]:
        """
        The configuration of a presetCanaryShanxi environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_shanxi")

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

    @property
    @pulumi.getter(name="presetCanarySichuan")
    def preset_canary_sichuan(self) -> Optional[pulumi.Input['ErEnvConfPresetCanarySichuanArgs']]:
        """
        The configuration of a presetCanarySichuan environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_sichuan")

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

    @property
    @pulumi.getter(name="presetCanaryTaiwan")
    def preset_canary_taiwan(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryTaiwanArgs']]:
        """
        The configuration of a presetCanaryTaiwan environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_taiwan")

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

    @property
    @pulumi.getter(name="presetCanaryTianjin")
    def preset_canary_tianjin(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryTianjinArgs']]:
        """
        The configuration of a presetCanaryTianjin environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_tianjin")

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

    @property
    @pulumi.getter(name="presetCanaryXinjiang")
    def preset_canary_xinjiang(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryXinjiangArgs']]:
        """
        The configuration of a presetCanaryXinjiang environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_xinjiang")

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

    @property
    @pulumi.getter(name="presetCanaryXizang")
    def preset_canary_xizang(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryXizangArgs']]:
        """
        The configuration of a presetCanaryXizang environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_xizang")

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

    @property
    @pulumi.getter(name="presetCanaryYunnan")
    def preset_canary_yunnan(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryYunnanArgs']]:
        """
        The configuration of a presetCanaryYunnan environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_yunnan")

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

    @property
    @pulumi.getter(name="presetCanaryZhejiang")
    def preset_canary_zhejiang(self) -> Optional[pulumi.Input['ErEnvConfPresetCanaryZhejiangArgs']]:
        """
        The configuration of a presetCanaryZhejiang environment. See `staging` below.
        """
        return pulumi.get(self, "preset_canary_zhejiang")

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

    @property
    @pulumi.getter
    def production(self) -> Optional[pulumi.Input['ErEnvConfProductionArgs']]:
        """
        The configuration of a production environment. See `staging` below.
        """
        return pulumi.get(self, "production")

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

    @property
    @pulumi.getter
    def staging(self) -> Optional[pulumi.Input['ErEnvConfStagingArgs']]:
        """
        The configuration of a staging environment. See `staging` below.
        """
        return pulumi.get(self, "staging")

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


@pulumi.input_type
class ErEnvConfPresetCanaryAnhuiArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryBeijingArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryChongqingArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryFujianArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryGansuArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryGuangdongArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryGuangxiArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryGuizhouArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryHainanArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryHebeiArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryHeilongjiangArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryHenanArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryHongKongArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryHubeiArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryHunanArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryJiangsuArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryJiangxiArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryJilinArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryLiaoningArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryMacauArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryNeimengguArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryNingxiaArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryOverseasArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryQinghaiArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryShaanxiArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryShandongArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryShanghaiArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryShanxiArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanarySichuanArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryTaiwanArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryTianjinArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryXinjiangArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryXizangArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryYunnanArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfPresetCanaryZhejiangArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfProductionArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class ErEnvConfStagingArgs:
    def __init__(__self__, *,
                 allowed_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 code_rev: Optional[pulumi.Input[str]] = None,
                 spec_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_hosts: Allowed DCDN domain names.
        :param pulumi.Input[str] code_rev: The version number of the code.
        :param pulumi.Input[str] spec_name: The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        if allowed_hosts is not None:
            pulumi.set(__self__, "allowed_hosts", allowed_hosts)
        if code_rev is not None:
            pulumi.set(__self__, "code_rev", code_rev)
        if spec_name is not None:
            pulumi.set(__self__, "spec_name", spec_name)

    @property
    @pulumi.getter(name="allowedHosts")
    def allowed_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Allowed DCDN domain names.
        """
        return pulumi.get(self, "allowed_hosts")

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

    @property
    @pulumi.getter(name="codeRev")
    def code_rev(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the code.
        """
        return pulumi.get(self, "code_rev")

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

    @property
    @pulumi.getter(name="specName")
    def spec_name(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of the CPU time slice. Valid values: `5ms`, `50ms`, `100ms`.
        """
        return pulumi.get(self, "spec_name")

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


@pulumi.input_type
class IpaDomainSourceArgs:
    def __init__(__self__, *,
                 content: pulumi.Input[str],
                 port: pulumi.Input[int],
                 priority: pulumi.Input[str],
                 type: pulumi.Input[str],
                 weight: pulumi.Input[int]):
        """
        :param pulumi.Input[str] content: The address of the origin server. You can specify an IP address or a domain name.
        :param pulumi.Input[int] port: The custom port number. Valid values: `0` to `65535`.
        :param pulumi.Input[str] priority: The priority of the origin server. Valid values: `20` and `30`. Default value: `20`. A value of 20 specifies that the origin is a primary origin. A value of 30 specifies that the origin is a secondary origin.
        :param pulumi.Input[str] type: The type of the origin server. Valid values: `ipaddr`, `domain`, `oss`.
        :param pulumi.Input[int] weight: The weight of the origin server. You must specify a value that is less than `100`. Default value: `10`.
        """
        pulumi.set(__self__, "content", content)
        pulumi.set(__self__, "port", port)
        pulumi.set(__self__, "priority", priority)
        pulumi.set(__self__, "type", type)
        pulumi.set(__self__, "weight", weight)

    @property
    @pulumi.getter
    def content(self) -> pulumi.Input[str]:
        """
        The address of the origin server. You can specify an IP address or a domain name.
        """
        return pulumi.get(self, "content")

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

    @property
    @pulumi.getter
    def port(self) -> pulumi.Input[int]:
        """
        The custom port number. Valid values: `0` to `65535`.
        """
        return pulumi.get(self, "port")

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

    @property
    @pulumi.getter
    def priority(self) -> pulumi.Input[str]:
        """
        The priority of the origin server. Valid values: `20` and `30`. Default value: `20`. A value of 20 specifies that the origin is a primary origin. A value of 30 specifies that the origin is a secondary origin.
        """
        return pulumi.get(self, "priority")

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

    @property
    @pulumi.getter
    def type(self) -> pulumi.Input[str]:
        """
        The type of the origin server. Valid values: `ipaddr`, `domain`, `oss`.
        """
        return pulumi.get(self, "type")

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

    @property
    @pulumi.getter
    def weight(self) -> pulumi.Input[int]:
        """
        The weight of the origin server. You must specify a value that is less than `100`. Default value: `10`.
        """
        return pulumi.get(self, "weight")

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


@pulumi.input_type
class WafRuleConditionArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[str],
                 op_value: pulumi.Input[str],
                 sub_key: Optional[pulumi.Input[str]] = None,
                 values: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] key: The match field.
        :param pulumi.Input[str] op_value: The logical symbol.
        :param pulumi.Input[str] sub_key: The match subfield.
        :param pulumi.Input[str] values: The match content. Separate multiple values with commas (,).
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "op_value", op_value)
        if sub_key is not None:
            pulumi.set(__self__, "sub_key", sub_key)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @property
    @pulumi.getter
    def key(self) -> pulumi.Input[str]:
        """
        The match field.
        """
        return pulumi.get(self, "key")

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

    @property
    @pulumi.getter(name="opValue")
    def op_value(self) -> pulumi.Input[str]:
        """
        The logical symbol.
        """
        return pulumi.get(self, "op_value")

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

    @property
    @pulumi.getter(name="subKey")
    def sub_key(self) -> Optional[pulumi.Input[str]]:
        """
        The match subfield.
        """
        return pulumi.get(self, "sub_key")

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

    @property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[str]]:
        """
        The match content. Separate multiple values with commas (,).
        """
        return pulumi.get(self, "values")

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


@pulumi.input_type
class WafRuleRateLimitArgs:
    def __init__(__self__, *,
                 interval: Optional[pulumi.Input[int]] = None,
                 status: Optional[pulumi.Input['WafRuleRateLimitStatusArgs']] = None,
                 sub_key: Optional[pulumi.Input[str]] = None,
                 target: Optional[pulumi.Input[str]] = None,
                 threshold: Optional[pulumi.Input[int]] = None,
                 ttl: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] interval: Statistical duration, 5-1800.
        :param pulumi.Input['WafRuleRateLimitStatusArgs'] status: Response code statistics. See `status` below.
        :param pulumi.Input[str] sub_key: The subfield of the target field. If you set `target` to `Header`, `Query String Parameter`, or `Cookie Name`, you must configure `sub_key`.
        :param pulumi.Input[str] target: The statistical field for frequency control. Currently, `IP`, `Header`, `Query String Parameter`, `Cookie Name`, `Session` is supported.
        :param pulumi.Input[int] threshold: The trigger threshold of rate limiting. Valid values: 2 to 500000. Unit: requests.
        :param pulumi.Input[int] ttl: The validity period of the blacklist. Valid values: 60 to 86400. Unit: seconds.
        """
        if interval is not None:
            pulumi.set(__self__, "interval", interval)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if sub_key is not None:
            pulumi.set(__self__, "sub_key", sub_key)
        if target is not None:
            pulumi.set(__self__, "target", target)
        if threshold is not None:
            pulumi.set(__self__, "threshold", threshold)
        if ttl is not None:
            pulumi.set(__self__, "ttl", ttl)

    @property
    @pulumi.getter
    def interval(self) -> Optional[pulumi.Input[int]]:
        """
        Statistical duration, 5-1800.
        """
        return pulumi.get(self, "interval")

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

    @property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input['WafRuleRateLimitStatusArgs']]:
        """
        Response code statistics. See `status` below.
        """
        return pulumi.get(self, "status")

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

    @property
    @pulumi.getter(name="subKey")
    def sub_key(self) -> Optional[pulumi.Input[str]]:
        """
        The subfield of the target field. If you set `target` to `Header`, `Query String Parameter`, or `Cookie Name`, you must configure `sub_key`.
        """
        return pulumi.get(self, "sub_key")

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

    @property
    @pulumi.getter
    def target(self) -> Optional[pulumi.Input[str]]:
        """
        The statistical field for frequency control. Currently, `IP`, `Header`, `Query String Parameter`, `Cookie Name`, `Session` is supported.
        """
        return pulumi.get(self, "target")

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

    @property
    @pulumi.getter
    def threshold(self) -> Optional[pulumi.Input[int]]:
        """
        The trigger threshold of rate limiting. Valid values: 2 to 500000. Unit: requests.
        """
        return pulumi.get(self, "threshold")

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

    @property
    @pulumi.getter
    def ttl(self) -> Optional[pulumi.Input[int]]:
        """
        The validity period of the blacklist. Valid values: 60 to 86400. Unit: seconds.
        """
        return pulumi.get(self, "ttl")

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


@pulumi.input_type
class WafRuleRateLimitStatusArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[str]] = None,
                 count: Optional[pulumi.Input[int]] = None,
                 ratio: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[str] code: The HTTP status code returned.
        :param pulumi.Input[int] count: The number of times that the HTTP status code that was returned. Valid values: 2 to 50000. You can configure only one of the `ratio` and `count` fields.
        :param pulumi.Input[int] ratio: The percentage of HTTP status codes. Valid values: 1 to 100. You can configure only one of the `ratio` and `count` fields.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if count is not None:
            pulumi.set(__self__, "count", count)
        if ratio is not None:
            pulumi.set(__self__, "ratio", ratio)

    @property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[str]]:
        """
        The HTTP status code returned.
        """
        return pulumi.get(self, "code")

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

    @property
    @pulumi.getter
    def count(self) -> Optional[pulumi.Input[int]]:
        """
        The number of times that the HTTP status code that was returned. Valid values: 2 to 50000. You can configure only one of the `ratio` and `count` fields.
        """
        return pulumi.get(self, "count")

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

    @property
    @pulumi.getter
    def ratio(self) -> Optional[pulumi.Input[int]]:
        """
        The percentage of HTTP status codes. Valid values: 1 to 100. You can configure only one of the `ratio` and `count` fields.
        """
        return pulumi.get(self, "ratio")

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


