# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import builtins
import copy
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from .. import _utilities

__all__ = [
    'BandwidthPackageEipAddressArgs',
    'BandwidthPackageEipAddressArgsDict',
    'BandwidthPackageTagArgs',
    'BandwidthPackageTagArgsDict',
    'EipTagArgs',
    'EipTagArgsDict',
    'EniPrimaryIpAddressArgs',
    'EniPrimaryIpAddressArgsDict',
    'EniPrimaryIpAddressAssociatedElasticIpArgs',
    'EniPrimaryIpAddressAssociatedElasticIpArgsDict',
    'EniPrivateIpSetArgs',
    'EniPrivateIpSetArgsDict',
    'EniPrivateIpSetAssociatedElasticIpArgs',
    'EniPrivateIpSetAssociatedElasticIpArgsDict',
    'EniTagArgs',
    'EniTagArgsDict',
    'FlowLogTagArgs',
    'FlowLogTagArgsDict',
    'HaVipTagArgs',
    'HaVipTagArgsDict',
    'Ipv6AddressBandwidthTagArgs',
    'Ipv6AddressBandwidthTagArgsDict',
    'Ipv6GatewayTagArgs',
    'Ipv6GatewayTagArgsDict',
    'NetworkAclDefaultEgressAclEntryArgs',
    'NetworkAclDefaultEgressAclEntryArgsDict',
    'NetworkAclDefaultIngressAclEntryArgs',
    'NetworkAclDefaultIngressAclEntryArgsDict',
    'NetworkAclEgressAclEntryArgs',
    'NetworkAclEgressAclEntryArgsDict',
    'NetworkAclIngressAclEntryArgs',
    'NetworkAclIngressAclEntryArgsDict',
    'NetworkAclResourceArgs',
    'NetworkAclResourceArgsDict',
    'NetworkAclTagArgs',
    'NetworkAclTagArgsDict',
    'PrefixListAssociationsRouteTableArgs',
    'PrefixListAssociationsRouteTableArgsDict',
    'PrefixListAssociationsSecurityGroupArgs',
    'PrefixListAssociationsSecurityGroupArgsDict',
    'PrefixListPrefixListEntryArgs',
    'PrefixListPrefixListEntryArgsDict',
    'PrefixListTagArgs',
    'PrefixListTagArgsDict',
    'RouteTableCustomRouteEntryArgs',
    'RouteTableCustomRouteEntryArgsDict',
    'RouteTableSystemRouteEntryArgs',
    'RouteTableSystemRouteEntryArgsDict',
    'RouteTableTagArgs',
    'RouteTableTagArgsDict',
    'SecurityGroupEgressPermissionArgs',
    'SecurityGroupEgressPermissionArgsDict',
    'SecurityGroupIngressPermissionArgs',
    'SecurityGroupIngressPermissionArgsDict',
    'SecurityGroupTagArgs',
    'SecurityGroupTagArgsDict',
    'SubnetRouteTableArgs',
    'SubnetRouteTableArgsDict',
    'SubnetTagArgs',
    'SubnetTagArgsDict',
    'TrafficMirrorFilterEgressFilterRuleArgs',
    'TrafficMirrorFilterEgressFilterRuleArgsDict',
    'TrafficMirrorFilterIngressFilterRuleArgs',
    'TrafficMirrorFilterIngressFilterRuleArgsDict',
    'TrafficMirrorFilterTagArgs',
    'TrafficMirrorFilterTagArgsDict',
    'TrafficMirrorSessionTagArgs',
    'TrafficMirrorSessionTagArgsDict',
    'TrafficMirrorTargetTagArgs',
    'TrafficMirrorTargetTagArgsDict',
    'VpcAssociateCenArgs',
    'VpcAssociateCenArgsDict',
    'VpcTagArgs',
    'VpcTagArgsDict',
]

MYPY = False

if not MYPY:
    class BandwidthPackageEipAddressArgsDict(TypedDict):
        allocation_id: NotRequired[pulumi.Input[builtins.str]]
        """
        分配ID
        """
elif False:
    BandwidthPackageEipAddressArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class BandwidthPackageEipAddressArgs:
    def __init__(__self__, *,
                 allocation_id: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] allocation_id: 分配ID
        """
        if allocation_id is not None:
            pulumi.set(__self__, "allocation_id", allocation_id)

    @property
    @pulumi.getter(name="allocationId")
    def allocation_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        分配ID
        """
        return pulumi.get(self, "allocation_id")

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


if not MYPY:
    class BandwidthPackageTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签值。
        """
elif False:
    BandwidthPackageTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class BandwidthPackageTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 用户标签的标签键。
        :param pulumi.Input[builtins.str] value: 用户标签的标签值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户标签的标签键。
        """
        return pulumi.get(self, "key")

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

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

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


if not MYPY:
    class EipTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        标签键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        标签值。
        """
elif False:
    EipTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class EipTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 标签键。
        :param pulumi.Input[builtins.str] value: 标签值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

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

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

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

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


if not MYPY:
    class EniPrimaryIpAddressArgsDict(TypedDict):
        associated_elastic_ip: NotRequired[pulumi.Input['EniPrimaryIpAddressAssociatedElasticIpArgsDict']]
        """
        网卡主私网IPv4关联的公网IP的信息。
        """
        primary: NotRequired[pulumi.Input[builtins.bool]]
        """
        是否为主私网IPv4地址。
        """
        private_ip_address: NotRequired[pulumi.Input[builtins.str]]
        """
        网卡的私网IP地址。
        """
elif False:
    EniPrimaryIpAddressArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class EniPrimaryIpAddressArgs:
    def __init__(__self__, *,
                 associated_elastic_ip: Optional[pulumi.Input['EniPrimaryIpAddressAssociatedElasticIpArgs']] = None,
                 primary: Optional[pulumi.Input[builtins.bool]] = None,
                 private_ip_address: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input['EniPrimaryIpAddressAssociatedElasticIpArgs'] associated_elastic_ip: 网卡主私网IPv4关联的公网IP的信息。
        :param pulumi.Input[builtins.bool] primary: 是否为主私网IPv4地址。
        :param pulumi.Input[builtins.str] private_ip_address: 网卡的私网IP地址。
        """
        if associated_elastic_ip is not None:
            pulumi.set(__self__, "associated_elastic_ip", associated_elastic_ip)
        if primary is not None:
            pulumi.set(__self__, "primary", primary)
        if private_ip_address is not None:
            pulumi.set(__self__, "private_ip_address", private_ip_address)

    @property
    @pulumi.getter(name="associatedElasticIp")
    def associated_elastic_ip(self) -> Optional[pulumi.Input['EniPrimaryIpAddressAssociatedElasticIpArgs']]:
        """
        网卡主私网IPv4关联的公网IP的信息。
        """
        return pulumi.get(self, "associated_elastic_ip")

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

    @property
    @pulumi.getter
    def primary(self) -> Optional[pulumi.Input[builtins.bool]]:
        """
        是否为主私网IPv4地址。
        """
        return pulumi.get(self, "primary")

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

    @property
    @pulumi.getter(name="privateIpAddress")
    def private_ip_address(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        网卡的私网IP地址。
        """
        return pulumi.get(self, "private_ip_address")

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


if not MYPY:
    class EniPrimaryIpAddressAssociatedElasticIpArgsDict(TypedDict):
        allocation_id: NotRequired[pulumi.Input[builtins.str]]
        """
        公网IP的ID。
        """
        eip_address: NotRequired[pulumi.Input[builtins.str]]
        """
        公网IP的地址。
        """
        release_with_instance: NotRequired[pulumi.Input[builtins.bool]]
        """
        公网IP是否随云服务器实例删除。仅主网卡的主私网IP绑定按量计费公网IP有效。开启后，当云服务器实例被系统自动回收（退订24小时后、到期回收、欠费回收）或被调用DeleteInstances接口时，公网IP随其一同释放，true：是，false：否。
        """
elif False:
    EniPrimaryIpAddressAssociatedElasticIpArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class EniPrimaryIpAddressAssociatedElasticIpArgs:
    def __init__(__self__, *,
                 allocation_id: Optional[pulumi.Input[builtins.str]] = None,
                 eip_address: Optional[pulumi.Input[builtins.str]] = None,
                 release_with_instance: Optional[pulumi.Input[builtins.bool]] = None):
        """
        :param pulumi.Input[builtins.str] allocation_id: 公网IP的ID。
        :param pulumi.Input[builtins.str] eip_address: 公网IP的地址。
        :param pulumi.Input[builtins.bool] release_with_instance: 公网IP是否随云服务器实例删除。仅主网卡的主私网IP绑定按量计费公网IP有效。开启后，当云服务器实例被系统自动回收（退订24小时后、到期回收、欠费回收）或被调用DeleteInstances接口时，公网IP随其一同释放，true：是，false：否。
        """
        if allocation_id is not None:
            pulumi.set(__self__, "allocation_id", allocation_id)
        if eip_address is not None:
            pulumi.set(__self__, "eip_address", eip_address)
        if release_with_instance is not None:
            pulumi.set(__self__, "release_with_instance", release_with_instance)

    @property
    @pulumi.getter(name="allocationId")
    def allocation_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        公网IP的ID。
        """
        return pulumi.get(self, "allocation_id")

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

    @property
    @pulumi.getter(name="eipAddress")
    def eip_address(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        公网IP的地址。
        """
        return pulumi.get(self, "eip_address")

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

    @property
    @pulumi.getter(name="releaseWithInstance")
    def release_with_instance(self) -> Optional[pulumi.Input[builtins.bool]]:
        """
        公网IP是否随云服务器实例删除。仅主网卡的主私网IP绑定按量计费公网IP有效。开启后，当云服务器实例被系统自动回收（退订24小时后、到期回收、欠费回收）或被调用DeleteInstances接口时，公网IP随其一同释放，true：是，false：否。
        """
        return pulumi.get(self, "release_with_instance")

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


if not MYPY:
    class EniPrivateIpSetArgsDict(TypedDict):
        associated_elastic_ip: NotRequired[pulumi.Input['EniPrivateIpSetAssociatedElasticIpArgsDict']]
        """
        网卡主私网IPv4关联的公网IP的信息。
        """
        private_ip_address: NotRequired[pulumi.Input[builtins.str]]
        """
        网卡的私网IP地址。
        """
elif False:
    EniPrivateIpSetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class EniPrivateIpSetArgs:
    def __init__(__self__, *,
                 associated_elastic_ip: Optional[pulumi.Input['EniPrivateIpSetAssociatedElasticIpArgs']] = None,
                 private_ip_address: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input['EniPrivateIpSetAssociatedElasticIpArgs'] associated_elastic_ip: 网卡主私网IPv4关联的公网IP的信息。
        :param pulumi.Input[builtins.str] private_ip_address: 网卡的私网IP地址。
        """
        if associated_elastic_ip is not None:
            pulumi.set(__self__, "associated_elastic_ip", associated_elastic_ip)
        if private_ip_address is not None:
            pulumi.set(__self__, "private_ip_address", private_ip_address)

    @property
    @pulumi.getter(name="associatedElasticIp")
    def associated_elastic_ip(self) -> Optional[pulumi.Input['EniPrivateIpSetAssociatedElasticIpArgs']]:
        """
        网卡主私网IPv4关联的公网IP的信息。
        """
        return pulumi.get(self, "associated_elastic_ip")

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

    @property
    @pulumi.getter(name="privateIpAddress")
    def private_ip_address(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        网卡的私网IP地址。
        """
        return pulumi.get(self, "private_ip_address")

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


if not MYPY:
    class EniPrivateIpSetAssociatedElasticIpArgsDict(TypedDict):
        allocation_id: NotRequired[pulumi.Input[builtins.str]]
        """
        公网IP的ID。
        """
elif False:
    EniPrivateIpSetAssociatedElasticIpArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class EniPrivateIpSetAssociatedElasticIpArgs:
    def __init__(__self__, *,
                 allocation_id: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] allocation_id: 公网IP的ID。
        """
        if allocation_id is not None:
            pulumi.set(__self__, "allocation_id", allocation_id)

    @property
    @pulumi.getter(name="allocationId")
    def allocation_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        公网IP的ID。
        """
        return pulumi.get(self, "allocation_id")

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


if not MYPY:
    class EniTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签值。
        """
elif False:
    EniTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class EniTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 用户标签的标签键。
        :param pulumi.Input[builtins.str] value: 用户标签的标签值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户标签的标签键。
        """
        return pulumi.get(self, "key")

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

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

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


if not MYPY:
    class FlowLogTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签键。长度取值范围为1~128字符，允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。若标签键开头或结尾存在空格，系统会自动为其去除。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签值。允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。大小写敏感。若标签值开头或结尾存在空格，系统会自动为其去除。
        """
elif False:
    FlowLogTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FlowLogTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 用户标签的标签键。长度取值范围为1~128字符，允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。若标签键开头或结尾存在空格，系统会自动为其去除。
        :param pulumi.Input[builtins.str] value: 用户标签的标签值。允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。大小写敏感。若标签值开头或结尾存在空格，系统会自动为其去除。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户标签的标签键。长度取值范围为1~128字符，允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。若标签键开头或结尾存在空格，系统会自动为其去除。
        """
        return pulumi.get(self, "key")

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

    @property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户标签的标签值。允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。大小写敏感。若标签值开头或结尾存在空格，系统会自动为其去除。
        """
        return pulumi.get(self, "value")

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


if not MYPY:
    class HaVipTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签键。长度取值范围为1~128字符，允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。若标签键开头或结尾存在空格，系统会自动为其去除。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签值。允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。大小写敏感。若标签值开头或结尾存在空格，系统会自动为其去除。
        """
elif False:
    HaVipTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class HaVipTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 用户标签的标签键。长度取值范围为1~128字符，允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。若标签键开头或结尾存在空格，系统会自动为其去除。
        :param pulumi.Input[builtins.str] value: 用户标签的标签值。允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。大小写敏感。若标签值开头或结尾存在空格，系统会自动为其去除。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户标签的标签键。长度取值范围为1~128字符，允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。若标签键开头或结尾存在空格，系统会自动为其去除。
        """
        return pulumi.get(self, "key")

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

    @property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户标签的标签值。允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。大小写敏感。若标签值开头或结尾存在空格，系统会自动为其去除。
        """
        return pulumi.get(self, "value")

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


if not MYPY:
    class Ipv6AddressBandwidthTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        标签键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        标签值。
        """
elif False:
    Ipv6AddressBandwidthTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class Ipv6AddressBandwidthTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 标签键。
        :param pulumi.Input[builtins.str] value: 标签值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

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

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

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

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


if not MYPY:
    class Ipv6GatewayTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        标签键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        标签值。
        """
elif False:
    Ipv6GatewayTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class Ipv6GatewayTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 标签键。
        :param pulumi.Input[builtins.str] value: 标签值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

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

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

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

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


if not MYPY:
    class NetworkAclDefaultEgressAclEntryArgsDict(TypedDict):
        cidr_ip: NotRequired[pulumi.Input[builtins.str]]
        """
        入向规则时为源地址的网段。出向规则时为目标地址的网段。支持CIDR格式和IPv4格式的IP地址范围。默认值：无。
        """
        description: NotRequired[pulumi.Input[builtins.str]]
        """
        规则的描述信息。
        """
        network_acl_entry_id: NotRequired[pulumi.Input[builtins.str]]
        """
        规则的ID。
        """
        network_acl_entry_name: NotRequired[pulumi.Input[builtins.str]]
        """
        规则的名称。
        """
        policy: NotRequired[pulumi.Input[builtins.str]]
        """
        授权策略。accept：允许访问。drop：拒绝访问，不返回拒绝访问的信息，仅表现出发起端请求超时或类似无法建立连接的信息。
        """
        port: NotRequired[pulumi.Input[builtins.str]]
        """
        规则的目的端口范围。当方向规则的Protocol为all、icmp或gre时，端口范围为-1/-1，表示不限制端口。当方向规则的Protocol为tcp或udp时，端口范围为1~65535，格式为1/200、80/80，表示端口1到端口200、端口80。
        """
        priority: NotRequired[pulumi.Input[builtins.int]]
        """
        方向规则的优先级，数字越小，代表优先级越高。不填默认值：1。
        """
        protocol: NotRequired[pulumi.Input[builtins.str]]
        """
        协议类型。tcp：TCP协议。udp：UDP协议。icmp：ICMP协议。icmpv6：ICMPV6协议。gre：GRE协议。all：支持所有协议。
        """
elif False:
    NetworkAclDefaultEgressAclEntryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class NetworkAclDefaultEgressAclEntryArgs:
    def __init__(__self__, *,
                 cidr_ip: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 network_acl_entry_id: Optional[pulumi.Input[builtins.str]] = None,
                 network_acl_entry_name: Optional[pulumi.Input[builtins.str]] = None,
                 policy: Optional[pulumi.Input[builtins.str]] = None,
                 port: Optional[pulumi.Input[builtins.str]] = None,
                 priority: Optional[pulumi.Input[builtins.int]] = None,
                 protocol: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] cidr_ip: 入向规则时为源地址的网段。出向规则时为目标地址的网段。支持CIDR格式和IPv4格式的IP地址范围。默认值：无。
        :param pulumi.Input[builtins.str] description: 规则的描述信息。
        :param pulumi.Input[builtins.str] network_acl_entry_id: 规则的ID。
        :param pulumi.Input[builtins.str] network_acl_entry_name: 规则的名称。
        :param pulumi.Input[builtins.str] policy: 授权策略。accept：允许访问。drop：拒绝访问，不返回拒绝访问的信息，仅表现出发起端请求超时或类似无法建立连接的信息。
        :param pulumi.Input[builtins.str] port: 规则的目的端口范围。当方向规则的Protocol为all、icmp或gre时，端口范围为-1/-1，表示不限制端口。当方向规则的Protocol为tcp或udp时，端口范围为1~65535，格式为1/200、80/80，表示端口1到端口200、端口80。
        :param pulumi.Input[builtins.int] priority: 方向规则的优先级，数字越小，代表优先级越高。不填默认值：1。
        :param pulumi.Input[builtins.str] protocol: 协议类型。tcp：TCP协议。udp：UDP协议。icmp：ICMP协议。icmpv6：ICMPV6协议。gre：GRE协议。all：支持所有协议。
        """
        if cidr_ip is not None:
            pulumi.set(__self__, "cidr_ip", cidr_ip)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if network_acl_entry_id is not None:
            pulumi.set(__self__, "network_acl_entry_id", network_acl_entry_id)
        if network_acl_entry_name is not None:
            pulumi.set(__self__, "network_acl_entry_name", network_acl_entry_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if priority is not None:
            pulumi.set(__self__, "priority", priority)
        if protocol is not None:
            pulumi.set(__self__, "protocol", protocol)

    @property
    @pulumi.getter(name="cidrIp")
    def cidr_ip(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        入向规则时为源地址的网段。出向规则时为目标地址的网段。支持CIDR格式和IPv4格式的IP地址范围。默认值：无。
        """
        return pulumi.get(self, "cidr_ip")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        规则的描述信息。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="networkAclEntryId")
    def network_acl_entry_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        规则的ID。
        """
        return pulumi.get(self, "network_acl_entry_id")

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

    @property
    @pulumi.getter(name="networkAclEntryName")
    def network_acl_entry_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        规则的名称。
        """
        return pulumi.get(self, "network_acl_entry_name")

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

    @property
    @pulumi.getter
    def policy(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        授权策略。accept：允许访问。drop：拒绝访问，不返回拒绝访问的信息，仅表现出发起端请求超时或类似无法建立连接的信息。
        """
        return pulumi.get(self, "policy")

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

    @property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        规则的目的端口范围。当方向规则的Protocol为all、icmp或gre时，端口范围为-1/-1，表示不限制端口。当方向规则的Protocol为tcp或udp时，端口范围为1~65535，格式为1/200、80/80，表示端口1到端口200、端口80。
        """
        return pulumi.get(self, "port")

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

    @property
    @pulumi.getter
    def priority(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        方向规则的优先级，数字越小，代表优先级越高。不填默认值：1。
        """
        return pulumi.get(self, "priority")

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

    @property
    @pulumi.getter
    def protocol(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        协议类型。tcp：TCP协议。udp：UDP协议。icmp：ICMP协议。icmpv6：ICMPV6协议。gre：GRE协议。all：支持所有协议。
        """
        return pulumi.get(self, "protocol")

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


if not MYPY:
    class NetworkAclDefaultIngressAclEntryArgsDict(TypedDict):
        cidr_ip: NotRequired[pulumi.Input[builtins.str]]
        """
        入向规则时为源地址的网段。出向规则时为目标地址的网段。支持CIDR格式和IPv4格式的IP地址范围。默认值：无。
        """
        description: NotRequired[pulumi.Input[builtins.str]]
        """
        规则的描述信息。
        """
        network_acl_entry_id: NotRequired[pulumi.Input[builtins.str]]
        """
        规则的ID。
        """
        network_acl_entry_name: NotRequired[pulumi.Input[builtins.str]]
        """
        规则的名称。
        """
        policy: NotRequired[pulumi.Input[builtins.str]]
        """
        授权策略。accept：允许访问。drop：拒绝访问，不返回拒绝访问的信息，仅表现出发起端请求超时或类似无法建立连接的信息。
        """
        port: NotRequired[pulumi.Input[builtins.str]]
        """
        规则的目的端口范围。当方向规则的Protocol为all、icmp或gre时，端口范围为-1/-1，表示不限制端口。当方向规则的Protocol为tcp或udp时，端口范围为1~65535，格式为1/200、80/80，表示端口1到端口200、端口80。
        """
        priority: NotRequired[pulumi.Input[builtins.int]]
        """
        方向规则的优先级，数字越小，代表优先级越高。不填默认值：1。
        """
        protocol: NotRequired[pulumi.Input[builtins.str]]
        """
        协议类型。tcp：TCP协议。udp：UDP协议。icmp：ICMP协议。icmpv6：ICMPV6协议。gre：GRE协议。all：支持所有协议。
        """
elif False:
    NetworkAclDefaultIngressAclEntryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class NetworkAclDefaultIngressAclEntryArgs:
    def __init__(__self__, *,
                 cidr_ip: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 network_acl_entry_id: Optional[pulumi.Input[builtins.str]] = None,
                 network_acl_entry_name: Optional[pulumi.Input[builtins.str]] = None,
                 policy: Optional[pulumi.Input[builtins.str]] = None,
                 port: Optional[pulumi.Input[builtins.str]] = None,
                 priority: Optional[pulumi.Input[builtins.int]] = None,
                 protocol: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] cidr_ip: 入向规则时为源地址的网段。出向规则时为目标地址的网段。支持CIDR格式和IPv4格式的IP地址范围。默认值：无。
        :param pulumi.Input[builtins.str] description: 规则的描述信息。
        :param pulumi.Input[builtins.str] network_acl_entry_id: 规则的ID。
        :param pulumi.Input[builtins.str] network_acl_entry_name: 规则的名称。
        :param pulumi.Input[builtins.str] policy: 授权策略。accept：允许访问。drop：拒绝访问，不返回拒绝访问的信息，仅表现出发起端请求超时或类似无法建立连接的信息。
        :param pulumi.Input[builtins.str] port: 规则的目的端口范围。当方向规则的Protocol为all、icmp或gre时，端口范围为-1/-1，表示不限制端口。当方向规则的Protocol为tcp或udp时，端口范围为1~65535，格式为1/200、80/80，表示端口1到端口200、端口80。
        :param pulumi.Input[builtins.int] priority: 方向规则的优先级，数字越小，代表优先级越高。不填默认值：1。
        :param pulumi.Input[builtins.str] protocol: 协议类型。tcp：TCP协议。udp：UDP协议。icmp：ICMP协议。icmpv6：ICMPV6协议。gre：GRE协议。all：支持所有协议。
        """
        if cidr_ip is not None:
            pulumi.set(__self__, "cidr_ip", cidr_ip)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if network_acl_entry_id is not None:
            pulumi.set(__self__, "network_acl_entry_id", network_acl_entry_id)
        if network_acl_entry_name is not None:
            pulumi.set(__self__, "network_acl_entry_name", network_acl_entry_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if priority is not None:
            pulumi.set(__self__, "priority", priority)
        if protocol is not None:
            pulumi.set(__self__, "protocol", protocol)

    @property
    @pulumi.getter(name="cidrIp")
    def cidr_ip(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        入向规则时为源地址的网段。出向规则时为目标地址的网段。支持CIDR格式和IPv4格式的IP地址范围。默认值：无。
        """
        return pulumi.get(self, "cidr_ip")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        规则的描述信息。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="networkAclEntryId")
    def network_acl_entry_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        规则的ID。
        """
        return pulumi.get(self, "network_acl_entry_id")

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

    @property
    @pulumi.getter(name="networkAclEntryName")
    def network_acl_entry_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        规则的名称。
        """
        return pulumi.get(self, "network_acl_entry_name")

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

    @property
    @pulumi.getter
    def policy(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        授权策略。accept：允许访问。drop：拒绝访问，不返回拒绝访问的信息，仅表现出发起端请求超时或类似无法建立连接的信息。
        """
        return pulumi.get(self, "policy")

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

    @property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        规则的目的端口范围。当方向规则的Protocol为all、icmp或gre时，端口范围为-1/-1，表示不限制端口。当方向规则的Protocol为tcp或udp时，端口范围为1~65535，格式为1/200、80/80，表示端口1到端口200、端口80。
        """
        return pulumi.get(self, "port")

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

    @property
    @pulumi.getter
    def priority(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        方向规则的优先级，数字越小，代表优先级越高。不填默认值：1。
        """
        return pulumi.get(self, "priority")

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

    @property
    @pulumi.getter
    def protocol(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        协议类型。tcp：TCP协议。udp：UDP协议。icmp：ICMP协议。icmpv6：ICMPV6协议。gre：GRE协议。all：支持所有协议。
        """
        return pulumi.get(self, "protocol")

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


if not MYPY:
    class NetworkAclEgressAclEntryArgsDict(TypedDict):
        cidr_ip: NotRequired[pulumi.Input[builtins.str]]
        """
        入向规则时为源地址的网段。出向规则时为目标地址的网段。支持CIDR格式和IPv4格式的IP地址范围。默认值：无。
        """
        description: NotRequired[pulumi.Input[builtins.str]]
        """
        规则的描述信息。
        """
        network_acl_entry_name: NotRequired[pulumi.Input[builtins.str]]
        """
        规则的名称。
        """
        policy: NotRequired[pulumi.Input[builtins.str]]
        """
        授权策略。accept：允许访问。drop：拒绝访问，不返回拒绝访问的信息，仅表现出发起端请求超时或类似无法建立连接的信息。
        """
        port: NotRequired[pulumi.Input[builtins.str]]
        """
        规则的目的端口范围。当方向规则的Protocol为all、icmp或gre时，端口范围为-1/-1，表示不限制端口。当方向规则的Protocol为tcp或udp时，端口范围为1~65535，格式为1/200、80/80，表示端口1到端口200、端口80。
        """
        protocol: NotRequired[pulumi.Input[builtins.str]]
        """
        协议类型。tcp：TCP协议。udp：UDP协议。icmp：ICMP协议。icmpv6：ICMPV6协议。gre：GRE协议。all：支持所有协议。
        """
elif False:
    NetworkAclEgressAclEntryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class NetworkAclEgressAclEntryArgs:
    def __init__(__self__, *,
                 cidr_ip: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 network_acl_entry_name: Optional[pulumi.Input[builtins.str]] = None,
                 policy: Optional[pulumi.Input[builtins.str]] = None,
                 port: Optional[pulumi.Input[builtins.str]] = None,
                 protocol: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] cidr_ip: 入向规则时为源地址的网段。出向规则时为目标地址的网段。支持CIDR格式和IPv4格式的IP地址范围。默认值：无。
        :param pulumi.Input[builtins.str] description: 规则的描述信息。
        :param pulumi.Input[builtins.str] network_acl_entry_name: 规则的名称。
        :param pulumi.Input[builtins.str] policy: 授权策略。accept：允许访问。drop：拒绝访问，不返回拒绝访问的信息，仅表现出发起端请求超时或类似无法建立连接的信息。
        :param pulumi.Input[builtins.str] port: 规则的目的端口范围。当方向规则的Protocol为all、icmp或gre时，端口范围为-1/-1，表示不限制端口。当方向规则的Protocol为tcp或udp时，端口范围为1~65535，格式为1/200、80/80，表示端口1到端口200、端口80。
        :param pulumi.Input[builtins.str] protocol: 协议类型。tcp：TCP协议。udp：UDP协议。icmp：ICMP协议。icmpv6：ICMPV6协议。gre：GRE协议。all：支持所有协议。
        """
        if cidr_ip is not None:
            pulumi.set(__self__, "cidr_ip", cidr_ip)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if network_acl_entry_name is not None:
            pulumi.set(__self__, "network_acl_entry_name", network_acl_entry_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if protocol is not None:
            pulumi.set(__self__, "protocol", protocol)

    @property
    @pulumi.getter(name="cidrIp")
    def cidr_ip(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        入向规则时为源地址的网段。出向规则时为目标地址的网段。支持CIDR格式和IPv4格式的IP地址范围。默认值：无。
        """
        return pulumi.get(self, "cidr_ip")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        规则的描述信息。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="networkAclEntryName")
    def network_acl_entry_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        规则的名称。
        """
        return pulumi.get(self, "network_acl_entry_name")

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

    @property
    @pulumi.getter
    def policy(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        授权策略。accept：允许访问。drop：拒绝访问，不返回拒绝访问的信息，仅表现出发起端请求超时或类似无法建立连接的信息。
        """
        return pulumi.get(self, "policy")

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

    @property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        规则的目的端口范围。当方向规则的Protocol为all、icmp或gre时，端口范围为-1/-1，表示不限制端口。当方向规则的Protocol为tcp或udp时，端口范围为1~65535，格式为1/200、80/80，表示端口1到端口200、端口80。
        """
        return pulumi.get(self, "port")

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

    @property
    @pulumi.getter
    def protocol(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        协议类型。tcp：TCP协议。udp：UDP协议。icmp：ICMP协议。icmpv6：ICMPV6协议。gre：GRE协议。all：支持所有协议。
        """
        return pulumi.get(self, "protocol")

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


if not MYPY:
    class NetworkAclIngressAclEntryArgsDict(TypedDict):
        cidr_ip: NotRequired[pulumi.Input[builtins.str]]
        """
        入向规则时为源地址的网段。出向规则时为目标地址的网段。支持CIDR格式和IPv4格式的IP地址范围。默认值：无。
        """
        description: NotRequired[pulumi.Input[builtins.str]]
        """
        规则的描述信息。
        """
        network_acl_entry_name: NotRequired[pulumi.Input[builtins.str]]
        """
        规则的名称。
        """
        policy: NotRequired[pulumi.Input[builtins.str]]
        """
        授权策略。accept：允许访问。drop：拒绝访问，不返回拒绝访问的信息，仅表现出发起端请求超时或类似无法建立连接的信息。
        """
        port: NotRequired[pulumi.Input[builtins.str]]
        """
        规则的目的端口范围。当方向规则的Protocol为all、icmp或gre时，端口范围为-1/-1，表示不限制端口。当方向规则的Protocol为tcp或udp时，端口范围为1~65535，格式为1/200、80/80，表示端口1到端口200、端口80。
        """
        protocol: NotRequired[pulumi.Input[builtins.str]]
        """
        协议类型。tcp：TCP协议。udp：UDP协议。icmp：ICMP协议。icmpv6：ICMPV6协议。gre：GRE协议。all：支持所有协议。
        """
elif False:
    NetworkAclIngressAclEntryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class NetworkAclIngressAclEntryArgs:
    def __init__(__self__, *,
                 cidr_ip: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 network_acl_entry_name: Optional[pulumi.Input[builtins.str]] = None,
                 policy: Optional[pulumi.Input[builtins.str]] = None,
                 port: Optional[pulumi.Input[builtins.str]] = None,
                 protocol: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] cidr_ip: 入向规则时为源地址的网段。出向规则时为目标地址的网段。支持CIDR格式和IPv4格式的IP地址范围。默认值：无。
        :param pulumi.Input[builtins.str] description: 规则的描述信息。
        :param pulumi.Input[builtins.str] network_acl_entry_name: 规则的名称。
        :param pulumi.Input[builtins.str] policy: 授权策略。accept：允许访问。drop：拒绝访问，不返回拒绝访问的信息，仅表现出发起端请求超时或类似无法建立连接的信息。
        :param pulumi.Input[builtins.str] port: 规则的目的端口范围。当方向规则的Protocol为all、icmp或gre时，端口范围为-1/-1，表示不限制端口。当方向规则的Protocol为tcp或udp时，端口范围为1~65535，格式为1/200、80/80，表示端口1到端口200、端口80。
        :param pulumi.Input[builtins.str] protocol: 协议类型。tcp：TCP协议。udp：UDP协议。icmp：ICMP协议。icmpv6：ICMPV6协议。gre：GRE协议。all：支持所有协议。
        """
        if cidr_ip is not None:
            pulumi.set(__self__, "cidr_ip", cidr_ip)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if network_acl_entry_name is not None:
            pulumi.set(__self__, "network_acl_entry_name", network_acl_entry_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if protocol is not None:
            pulumi.set(__self__, "protocol", protocol)

    @property
    @pulumi.getter(name="cidrIp")
    def cidr_ip(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        入向规则时为源地址的网段。出向规则时为目标地址的网段。支持CIDR格式和IPv4格式的IP地址范围。默认值：无。
        """
        return pulumi.get(self, "cidr_ip")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        规则的描述信息。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="networkAclEntryName")
    def network_acl_entry_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        规则的名称。
        """
        return pulumi.get(self, "network_acl_entry_name")

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

    @property
    @pulumi.getter
    def policy(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        授权策略。accept：允许访问。drop：拒绝访问，不返回拒绝访问的信息，仅表现出发起端请求超时或类似无法建立连接的信息。
        """
        return pulumi.get(self, "policy")

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

    @property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        规则的目的端口范围。当方向规则的Protocol为all、icmp或gre时，端口范围为-1/-1，表示不限制端口。当方向规则的Protocol为tcp或udp时，端口范围为1~65535，格式为1/200、80/80，表示端口1到端口200、端口80。
        """
        return pulumi.get(self, "port")

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

    @property
    @pulumi.getter
    def protocol(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        协议类型。tcp：TCP协议。udp：UDP协议。icmp：ICMP协议。icmpv6：ICMPV6协议。gre：GRE协议。all：支持所有协议。
        """
        return pulumi.get(self, "protocol")

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


if not MYPY:
    class NetworkAclResourceArgsDict(TypedDict):
        resource_id: NotRequired[pulumi.Input[builtins.str]]
        """
        关联资源的ID。
        """
elif False:
    NetworkAclResourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class NetworkAclResourceArgs:
    def __init__(__self__, *,
                 resource_id: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] resource_id: 关联资源的ID。
        """
        if resource_id is not None:
            pulumi.set(__self__, "resource_id", resource_id)

    @property
    @pulumi.getter(name="resourceId")
    def resource_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        关联资源的ID。
        """
        return pulumi.get(self, "resource_id")

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


if not MYPY:
    class NetworkAclTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签值。
        """
elif False:
    NetworkAclTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class NetworkAclTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 用户标签的标签键。
        :param pulumi.Input[builtins.str] value: 用户标签的标签值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户标签的标签键。
        """
        return pulumi.get(self, "key")

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

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

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


if not MYPY:
    class PrefixListAssociationsRouteTableArgsDict(TypedDict):
        resource_id: NotRequired[pulumi.Input[builtins.str]]
        """
        关联资源的ID。
        """
        resource_type: NotRequired[pulumi.Input[builtins.str]]
        """
        关联资源的类型。VpcRouteTable：路由表；VpcSecurityGroup：安全组。
        """
elif False:
    PrefixListAssociationsRouteTableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PrefixListAssociationsRouteTableArgs:
    def __init__(__self__, *,
                 resource_id: Optional[pulumi.Input[builtins.str]] = None,
                 resource_type: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] resource_id: 关联资源的ID。
        :param pulumi.Input[builtins.str] resource_type: 关联资源的类型。VpcRouteTable：路由表；VpcSecurityGroup：安全组。
        """
        if resource_id is not None:
            pulumi.set(__self__, "resource_id", resource_id)
        if resource_type is not None:
            pulumi.set(__self__, "resource_type", resource_type)

    @property
    @pulumi.getter(name="resourceId")
    def resource_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        关联资源的ID。
        """
        return pulumi.get(self, "resource_id")

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

    @property
    @pulumi.getter(name="resourceType")
    def resource_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        关联资源的类型。VpcRouteTable：路由表；VpcSecurityGroup：安全组。
        """
        return pulumi.get(self, "resource_type")

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


if not MYPY:
    class PrefixListAssociationsSecurityGroupArgsDict(TypedDict):
        resource_id: NotRequired[pulumi.Input[builtins.str]]
        """
        关联资源的ID。
        """
        resource_type: NotRequired[pulumi.Input[builtins.str]]
        """
        关联资源的类型。VpcRouteTable：路由表；VpcSecurityGroup：安全组。
        """
elif False:
    PrefixListAssociationsSecurityGroupArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PrefixListAssociationsSecurityGroupArgs:
    def __init__(__self__, *,
                 resource_id: Optional[pulumi.Input[builtins.str]] = None,
                 resource_type: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] resource_id: 关联资源的ID。
        :param pulumi.Input[builtins.str] resource_type: 关联资源的类型。VpcRouteTable：路由表；VpcSecurityGroup：安全组。
        """
        if resource_id is not None:
            pulumi.set(__self__, "resource_id", resource_id)
        if resource_type is not None:
            pulumi.set(__self__, "resource_type", resource_type)

    @property
    @pulumi.getter(name="resourceId")
    def resource_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        关联资源的ID。
        """
        return pulumi.get(self, "resource_id")

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

    @property
    @pulumi.getter(name="resourceType")
    def resource_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        关联资源的类型。VpcRouteTable：路由表；VpcSecurityGroup：安全组。
        """
        return pulumi.get(self, "resource_type")

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


if not MYPY:
    class PrefixListPrefixListEntryArgsDict(TypedDict):
        cidr: NotRequired[pulumi.Input[builtins.str]]
        """
        前缀列表条目的CIDR。
        """
        description: NotRequired[pulumi.Input[builtins.str]]
        """
        前缀列表条目的描述。长度限制为0~255个字符，需要以字母、中文或数字开头。可包含英文逗号（,）、点号（.）、下划线（_）、空格（ ）、等号（=）、短横线（-）、中文逗号（，）、中文句号（。）。
        """
elif False:
    PrefixListPrefixListEntryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PrefixListPrefixListEntryArgs:
    def __init__(__self__, *,
                 cidr: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] cidr: 前缀列表条目的CIDR。
        :param pulumi.Input[builtins.str] description: 前缀列表条目的描述。长度限制为0~255个字符，需要以字母、中文或数字开头。可包含英文逗号（,）、点号（.）、下划线（_）、空格（ ）、等号（=）、短横线（-）、中文逗号（，）、中文句号（。）。
        """
        if cidr is not None:
            pulumi.set(__self__, "cidr", cidr)
        if description is not None:
            pulumi.set(__self__, "description", description)

    @property
    @pulumi.getter
    def cidr(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        前缀列表条目的CIDR。
        """
        return pulumi.get(self, "cidr")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        前缀列表条目的描述。长度限制为0~255个字符，需要以字母、中文或数字开头。可包含英文逗号（,）、点号（.）、下划线（_）、空格（ ）、等号（=）、短横线（-）、中文逗号（，）、中文句号（。）。
        """
        return pulumi.get(self, "description")

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


if not MYPY:
    class PrefixListTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签值。
        """
elif False:
    PrefixListTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PrefixListTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 用户标签的标签键。
        :param pulumi.Input[builtins.str] value: 用户标签的标签值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户标签的标签键。
        """
        return pulumi.get(self, "key")

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

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

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


if not MYPY:
    class RouteTableCustomRouteEntryArgsDict(TypedDict):
        description: NotRequired[pulumi.Input[builtins.str]]
        """
        路由条目描述。
        """
        destination_cidr_block: NotRequired[pulumi.Input[builtins.str]]
        """
        路由条目的目标网段。
        """
        destination_prefix_list_id: NotRequired[pulumi.Input[builtins.str]]
        """
        前缀列表ID。
        """
        next_hop_id: NotRequired[pulumi.Input[builtins.str]]
        """
        下一跳资源ID。
        """
        next_hop_name: NotRequired[pulumi.Input[builtins.str]]
        """
        路由条目下一跳资源的名称。
        """
        next_hop_type: NotRequired[pulumi.Input[builtins.str]]
        """
        自定义路由条目的下一跳的类型。1、Instance：ECS实例。2、HaVip：高可用虚拟IP。3、NetworkInterface：辅助网卡。4、NatGW：NAT网关。5、VpnGW：VPN网关。6、TransitRouter：中转路由器。7、IPv6GW：IPv6网关。8、CloudConnector：云连接器。9、GWLBEndpoint：网关负载均衡终端节点。
        """
        route_entry_name: NotRequired[pulumi.Input[builtins.str]]
        """
        路由条目名称。
        """
elif False:
    RouteTableCustomRouteEntryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class RouteTableCustomRouteEntryArgs:
    def __init__(__self__, *,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 destination_cidr_block: Optional[pulumi.Input[builtins.str]] = None,
                 destination_prefix_list_id: Optional[pulumi.Input[builtins.str]] = None,
                 next_hop_id: Optional[pulumi.Input[builtins.str]] = None,
                 next_hop_name: Optional[pulumi.Input[builtins.str]] = None,
                 next_hop_type: Optional[pulumi.Input[builtins.str]] = None,
                 route_entry_name: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] description: 路由条目描述。
        :param pulumi.Input[builtins.str] destination_cidr_block: 路由条目的目标网段。
        :param pulumi.Input[builtins.str] destination_prefix_list_id: 前缀列表ID。
        :param pulumi.Input[builtins.str] next_hop_id: 下一跳资源ID。
        :param pulumi.Input[builtins.str] next_hop_name: 路由条目下一跳资源的名称。
        :param pulumi.Input[builtins.str] next_hop_type: 自定义路由条目的下一跳的类型。1、Instance：ECS实例。2、HaVip：高可用虚拟IP。3、NetworkInterface：辅助网卡。4、NatGW：NAT网关。5、VpnGW：VPN网关。6、TransitRouter：中转路由器。7、IPv6GW：IPv6网关。8、CloudConnector：云连接器。9、GWLBEndpoint：网关负载均衡终端节点。
        :param pulumi.Input[builtins.str] route_entry_name: 路由条目名称。
        """
        if description is not None:
            pulumi.set(__self__, "description", description)
        if destination_cidr_block is not None:
            pulumi.set(__self__, "destination_cidr_block", destination_cidr_block)
        if destination_prefix_list_id is not None:
            pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id)
        if next_hop_id is not None:
            pulumi.set(__self__, "next_hop_id", next_hop_id)
        if next_hop_name is not None:
            pulumi.set(__self__, "next_hop_name", next_hop_name)
        if next_hop_type is not None:
            pulumi.set(__self__, "next_hop_type", next_hop_type)
        if route_entry_name is not None:
            pulumi.set(__self__, "route_entry_name", route_entry_name)

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        路由条目描述。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="destinationCidrBlock")
    def destination_cidr_block(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        路由条目的目标网段。
        """
        return pulumi.get(self, "destination_cidr_block")

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

    @property
    @pulumi.getter(name="destinationPrefixListId")
    def destination_prefix_list_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        前缀列表ID。
        """
        return pulumi.get(self, "destination_prefix_list_id")

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

    @property
    @pulumi.getter(name="nextHopId")
    def next_hop_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        下一跳资源ID。
        """
        return pulumi.get(self, "next_hop_id")

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

    @property
    @pulumi.getter(name="nextHopName")
    def next_hop_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        路由条目下一跳资源的名称。
        """
        return pulumi.get(self, "next_hop_name")

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

    @property
    @pulumi.getter(name="nextHopType")
    def next_hop_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        自定义路由条目的下一跳的类型。1、Instance：ECS实例。2、HaVip：高可用虚拟IP。3、NetworkInterface：辅助网卡。4、NatGW：NAT网关。5、VpnGW：VPN网关。6、TransitRouter：中转路由器。7、IPv6GW：IPv6网关。8、CloudConnector：云连接器。9、GWLBEndpoint：网关负载均衡终端节点。
        """
        return pulumi.get(self, "next_hop_type")

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

    @property
    @pulumi.getter(name="routeEntryName")
    def route_entry_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        路由条目名称。
        """
        return pulumi.get(self, "route_entry_name")

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


if not MYPY:
    class RouteTableSystemRouteEntryArgsDict(TypedDict):
        description: NotRequired[pulumi.Input[builtins.str]]
        """
        路由条目描述。
        """
        destination_cidr_block: NotRequired[pulumi.Input[builtins.str]]
        """
        路由条目的目标网段。
        """
        destination_prefix_list_id: NotRequired[pulumi.Input[builtins.str]]
        """
        前缀列表ID。
        """
        next_hop_id: NotRequired[pulumi.Input[builtins.str]]
        """
        下一跳资源ID。
        """
        next_hop_name: NotRequired[pulumi.Input[builtins.str]]
        """
        路由条目下一跳资源的名称。
        """
        next_hop_type: NotRequired[pulumi.Input[builtins.str]]
        """
        自定义路由条目的下一跳的类型。1、Instance：ECS实例。2、HaVip：高可用虚拟IP。3、NetworkInterface：辅助网卡。4、NatGW：NAT网关。5、VpnGW：VPN网关。6、TransitRouter：中转路由器。7、IPv6GW：IPv6网关。8、CloudConnector：云连接器。9、GWLBEndpoint：网关负载均衡终端节点。
        """
        prefix_list_cidr_blocks: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
        """
        前缀列表的CIDR。
        """
        route_entry_id: NotRequired[pulumi.Input[builtins.str]]
        """
        路由条目ID。
        """
        route_entry_name: NotRequired[pulumi.Input[builtins.str]]
        """
        路由条目名称。
        """
        route_table_id: NotRequired[pulumi.Input[builtins.str]]
        """
        路由表ID。
        """
        status: NotRequired[pulumi.Input[builtins.str]]
        """
        路由条目状态。1、Pending：待创建。2、Available：可用。
        """
        type: NotRequired[pulumi.Input[builtins.str]]
        """
        路由条目类型。1、Custom：自定义路由条目。2、System：系统默认路由条目。
        """
        vpc_id: NotRequired[pulumi.Input[builtins.str]]
        """
        路由条目所属私有网络的ID。
        """
elif False:
    RouteTableSystemRouteEntryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class RouteTableSystemRouteEntryArgs:
    def __init__(__self__, *,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 destination_cidr_block: Optional[pulumi.Input[builtins.str]] = None,
                 destination_prefix_list_id: Optional[pulumi.Input[builtins.str]] = None,
                 next_hop_id: Optional[pulumi.Input[builtins.str]] = None,
                 next_hop_name: Optional[pulumi.Input[builtins.str]] = None,
                 next_hop_type: Optional[pulumi.Input[builtins.str]] = None,
                 prefix_list_cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 route_entry_id: Optional[pulumi.Input[builtins.str]] = None,
                 route_entry_name: Optional[pulumi.Input[builtins.str]] = None,
                 route_table_id: Optional[pulumi.Input[builtins.str]] = None,
                 status: Optional[pulumi.Input[builtins.str]] = None,
                 type: Optional[pulumi.Input[builtins.str]] = None,
                 vpc_id: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] description: 路由条目描述。
        :param pulumi.Input[builtins.str] destination_cidr_block: 路由条目的目标网段。
        :param pulumi.Input[builtins.str] destination_prefix_list_id: 前缀列表ID。
        :param pulumi.Input[builtins.str] next_hop_id: 下一跳资源ID。
        :param pulumi.Input[builtins.str] next_hop_name: 路由条目下一跳资源的名称。
        :param pulumi.Input[builtins.str] next_hop_type: 自定义路由条目的下一跳的类型。1、Instance：ECS实例。2、HaVip：高可用虚拟IP。3、NetworkInterface：辅助网卡。4、NatGW：NAT网关。5、VpnGW：VPN网关。6、TransitRouter：中转路由器。7、IPv6GW：IPv6网关。8、CloudConnector：云连接器。9、GWLBEndpoint：网关负载均衡终端节点。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] prefix_list_cidr_blocks: 前缀列表的CIDR。
        :param pulumi.Input[builtins.str] route_entry_id: 路由条目ID。
        :param pulumi.Input[builtins.str] route_entry_name: 路由条目名称。
        :param pulumi.Input[builtins.str] route_table_id: 路由表ID。
        :param pulumi.Input[builtins.str] status: 路由条目状态。1、Pending：待创建。2、Available：可用。
        :param pulumi.Input[builtins.str] type: 路由条目类型。1、Custom：自定义路由条目。2、System：系统默认路由条目。
        :param pulumi.Input[builtins.str] vpc_id: 路由条目所属私有网络的ID。
        """
        if description is not None:
            pulumi.set(__self__, "description", description)
        if destination_cidr_block is not None:
            pulumi.set(__self__, "destination_cidr_block", destination_cidr_block)
        if destination_prefix_list_id is not None:
            pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id)
        if next_hop_id is not None:
            pulumi.set(__self__, "next_hop_id", next_hop_id)
        if next_hop_name is not None:
            pulumi.set(__self__, "next_hop_name", next_hop_name)
        if next_hop_type is not None:
            pulumi.set(__self__, "next_hop_type", next_hop_type)
        if prefix_list_cidr_blocks is not None:
            pulumi.set(__self__, "prefix_list_cidr_blocks", prefix_list_cidr_blocks)
        if route_entry_id is not None:
            pulumi.set(__self__, "route_entry_id", route_entry_id)
        if route_entry_name is not None:
            pulumi.set(__self__, "route_entry_name", route_entry_name)
        if route_table_id is not None:
            pulumi.set(__self__, "route_table_id", route_table_id)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if type is not None:
            pulumi.set(__self__, "type", type)
        if vpc_id is not None:
            pulumi.set(__self__, "vpc_id", vpc_id)

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        路由条目描述。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="destinationCidrBlock")
    def destination_cidr_block(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        路由条目的目标网段。
        """
        return pulumi.get(self, "destination_cidr_block")

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

    @property
    @pulumi.getter(name="destinationPrefixListId")
    def destination_prefix_list_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        前缀列表ID。
        """
        return pulumi.get(self, "destination_prefix_list_id")

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

    @property
    @pulumi.getter(name="nextHopId")
    def next_hop_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        下一跳资源ID。
        """
        return pulumi.get(self, "next_hop_id")

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

    @property
    @pulumi.getter(name="nextHopName")
    def next_hop_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        路由条目下一跳资源的名称。
        """
        return pulumi.get(self, "next_hop_name")

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

    @property
    @pulumi.getter(name="nextHopType")
    def next_hop_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        自定义路由条目的下一跳的类型。1、Instance：ECS实例。2、HaVip：高可用虚拟IP。3、NetworkInterface：辅助网卡。4、NatGW：NAT网关。5、VpnGW：VPN网关。6、TransitRouter：中转路由器。7、IPv6GW：IPv6网关。8、CloudConnector：云连接器。9、GWLBEndpoint：网关负载均衡终端节点。
        """
        return pulumi.get(self, "next_hop_type")

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

    @property
    @pulumi.getter(name="prefixListCidrBlocks")
    def prefix_list_cidr_blocks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
        """
        前缀列表的CIDR。
        """
        return pulumi.get(self, "prefix_list_cidr_blocks")

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

    @property
    @pulumi.getter(name="routeEntryId")
    def route_entry_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        路由条目ID。
        """
        return pulumi.get(self, "route_entry_id")

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

    @property
    @pulumi.getter(name="routeEntryName")
    def route_entry_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        路由条目名称。
        """
        return pulumi.get(self, "route_entry_name")

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

    @property
    @pulumi.getter(name="routeTableId")
    def route_table_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        路由表ID。
        """
        return pulumi.get(self, "route_table_id")

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

    @property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        路由条目状态。1、Pending：待创建。2、Available：可用。
        """
        return pulumi.get(self, "status")

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

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        路由条目类型。1、Custom：自定义路由条目。2、System：系统默认路由条目。
        """
        return pulumi.get(self, "type")

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

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        路由条目所属私有网络的ID。
        """
        return pulumi.get(self, "vpc_id")

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


if not MYPY:
    class RouteTableTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签值。
        """
elif False:
    RouteTableTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class RouteTableTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 用户标签的标签键。
        :param pulumi.Input[builtins.str] value: 用户标签的标签值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户标签的标签键。
        """
        return pulumi.get(self, "key")

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

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

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


if not MYPY:
    class SecurityGroupEgressPermissionArgsDict(TypedDict):
        cidr_ip: NotRequired[pulumi.Input[builtins.str]]
        """
        源地址的IPv4 CIDR或IPv6 CIDR
        """
        description: NotRequired[pulumi.Input[builtins.str]]
        """
        安全组规则的描述信息。需要以字母、中文或数字开头。可包含英文逗号（,）、点号（.）、下划线（_）、空格（ ）、等号（=）、短横线（-）、中文逗号（，）、中文句号（。）。长度限制为1~ 255个字符。不填保持原有配置。
        """
        direction: NotRequired[pulumi.Input[builtins.str]]
        """
        安全组规则方向。ingress：入方向。egress：出方向
        """
        policy: NotRequired[pulumi.Input[builtins.str]]
        """
        访问策略。即CidrIp 、SourceGroupId 或 PrefixListId 对应的资源访问安全组内的网卡。取值如下：accept：允许；drop：拒绝。
        """
        port_end: NotRequired[pulumi.Input[builtins.int]]
        """
        端口范围结束值。1、当Protocol 传入tcp或udp时，取值范围为1~65535。2、当Protocol 传入icmp、icmpv6或all时，仅支持传入-1，表示不限制端口
        """
        port_start: NotRequired[pulumi.Input[builtins.int]]
        """
        端口范围起始值。1、当Protocol 传入tcp或udp时，取值范围为1~65535。2、当Protocol 传入icmp、icmpv6或all时，仅支持传入-1，表示不限制端口
        """
        prefix_list_id: NotRequired[pulumi.Input[builtins.str]]
        """
        前缀列表的ID
        """
        priority: NotRequired[pulumi.Input[builtins.int]]
        """
        安全组规则优先级，数字越小，代表优先级越高。取值范围：1～100。不填默认值：1
        """
        protocol: NotRequired[pulumi.Input[builtins.str]]
        """
        协议类型。tcp、udp、icmp、icmpv6、all
        """
        source_group_id: NotRequired[pulumi.Input[builtins.str]]
        """
        源地址安全组ID。即该安全组中的所有网卡的地址作为源地址。
        """
elif False:
    SecurityGroupEgressPermissionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecurityGroupEgressPermissionArgs:
    def __init__(__self__, *,
                 cidr_ip: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 direction: Optional[pulumi.Input[builtins.str]] = None,
                 policy: Optional[pulumi.Input[builtins.str]] = None,
                 port_end: Optional[pulumi.Input[builtins.int]] = None,
                 port_start: Optional[pulumi.Input[builtins.int]] = None,
                 prefix_list_id: Optional[pulumi.Input[builtins.str]] = None,
                 priority: Optional[pulumi.Input[builtins.int]] = None,
                 protocol: Optional[pulumi.Input[builtins.str]] = None,
                 source_group_id: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] cidr_ip: 源地址的IPv4 CIDR或IPv6 CIDR
        :param pulumi.Input[builtins.str] description: 安全组规则的描述信息。需要以字母、中文或数字开头。可包含英文逗号（,）、点号（.）、下划线（_）、空格（ ）、等号（=）、短横线（-）、中文逗号（，）、中文句号（。）。长度限制为1~ 255个字符。不填保持原有配置。
        :param pulumi.Input[builtins.str] direction: 安全组规则方向。ingress：入方向。egress：出方向
        :param pulumi.Input[builtins.str] policy: 访问策略。即CidrIp 、SourceGroupId 或 PrefixListId 对应的资源访问安全组内的网卡。取值如下：accept：允许；drop：拒绝。
        :param pulumi.Input[builtins.int] port_end: 端口范围结束值。1、当Protocol 传入tcp或udp时，取值范围为1~65535。2、当Protocol 传入icmp、icmpv6或all时，仅支持传入-1，表示不限制端口
        :param pulumi.Input[builtins.int] port_start: 端口范围起始值。1、当Protocol 传入tcp或udp时，取值范围为1~65535。2、当Protocol 传入icmp、icmpv6或all时，仅支持传入-1，表示不限制端口
        :param pulumi.Input[builtins.str] prefix_list_id: 前缀列表的ID
        :param pulumi.Input[builtins.int] priority: 安全组规则优先级，数字越小，代表优先级越高。取值范围：1～100。不填默认值：1
        :param pulumi.Input[builtins.str] protocol: 协议类型。tcp、udp、icmp、icmpv6、all
        :param pulumi.Input[builtins.str] source_group_id: 源地址安全组ID。即该安全组中的所有网卡的地址作为源地址。
        """
        if cidr_ip is not None:
            pulumi.set(__self__, "cidr_ip", cidr_ip)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if direction is not None:
            pulumi.set(__self__, "direction", direction)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if port_end is not None:
            pulumi.set(__self__, "port_end", port_end)
        if port_start is not None:
            pulumi.set(__self__, "port_start", port_start)
        if prefix_list_id is not None:
            pulumi.set(__self__, "prefix_list_id", prefix_list_id)
        if priority is not None:
            pulumi.set(__self__, "priority", priority)
        if protocol is not None:
            pulumi.set(__self__, "protocol", protocol)
        if source_group_id is not None:
            pulumi.set(__self__, "source_group_id", source_group_id)

    @property
    @pulumi.getter(name="cidrIp")
    def cidr_ip(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        源地址的IPv4 CIDR或IPv6 CIDR
        """
        return pulumi.get(self, "cidr_ip")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        安全组规则的描述信息。需要以字母、中文或数字开头。可包含英文逗号（,）、点号（.）、下划线（_）、空格（ ）、等号（=）、短横线（-）、中文逗号（，）、中文句号（。）。长度限制为1~ 255个字符。不填保持原有配置。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter
    def direction(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        安全组规则方向。ingress：入方向。egress：出方向
        """
        return pulumi.get(self, "direction")

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

    @property
    @pulumi.getter
    def policy(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        访问策略。即CidrIp 、SourceGroupId 或 PrefixListId 对应的资源访问安全组内的网卡。取值如下：accept：允许；drop：拒绝。
        """
        return pulumi.get(self, "policy")

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

    @property
    @pulumi.getter(name="portEnd")
    def port_end(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        端口范围结束值。1、当Protocol 传入tcp或udp时，取值范围为1~65535。2、当Protocol 传入icmp、icmpv6或all时，仅支持传入-1，表示不限制端口
        """
        return pulumi.get(self, "port_end")

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

    @property
    @pulumi.getter(name="portStart")
    def port_start(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        端口范围起始值。1、当Protocol 传入tcp或udp时，取值范围为1~65535。2、当Protocol 传入icmp、icmpv6或all时，仅支持传入-1，表示不限制端口
        """
        return pulumi.get(self, "port_start")

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

    @property
    @pulumi.getter(name="prefixListId")
    def prefix_list_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        前缀列表的ID
        """
        return pulumi.get(self, "prefix_list_id")

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

    @property
    @pulumi.getter
    def priority(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        安全组规则优先级，数字越小，代表优先级越高。取值范围：1～100。不填默认值：1
        """
        return pulumi.get(self, "priority")

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

    @property
    @pulumi.getter
    def protocol(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        协议类型。tcp、udp、icmp、icmpv6、all
        """
        return pulumi.get(self, "protocol")

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

    @property
    @pulumi.getter(name="sourceGroupId")
    def source_group_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        源地址安全组ID。即该安全组中的所有网卡的地址作为源地址。
        """
        return pulumi.get(self, "source_group_id")

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


if not MYPY:
    class SecurityGroupIngressPermissionArgsDict(TypedDict):
        cidr_ip: NotRequired[pulumi.Input[builtins.str]]
        """
        源地址的IPv4 CIDR或IPv6 CIDR
        """
        description: NotRequired[pulumi.Input[builtins.str]]
        """
        安全组规则的描述信息。需要以字母、中文或数字开头。可包含英文逗号（,）、点号（.）、下划线（_）、空格（ ）、等号（=）、短横线（-）、中文逗号（，）、中文句号（。）。长度限制为1~ 255个字符。不填保持原有配置。
        """
        direction: NotRequired[pulumi.Input[builtins.str]]
        """
        安全组规则方向。ingress：入方向。egress：出方向
        """
        policy: NotRequired[pulumi.Input[builtins.str]]
        """
        访问策略。即CidrIp 、SourceGroupId 或 PrefixListId 对应的资源访问安全组内的网卡。取值如下：accept：允许；drop：拒绝。
        """
        port_end: NotRequired[pulumi.Input[builtins.int]]
        """
        端口范围结束值。1、当Protocol 传入tcp或udp时，取值范围为1~65535。2、当Protocol 传入icmp、icmpv6或all时，仅支持传入-1，表示不限制端口
        """
        port_start: NotRequired[pulumi.Input[builtins.int]]
        """
        端口范围起始值。1、当Protocol 传入tcp或udp时，取值范围为1~65535。2、当Protocol 传入icmp、icmpv6或all时，仅支持传入-1，表示不限制端口
        """
        prefix_list_id: NotRequired[pulumi.Input[builtins.str]]
        """
        前缀列表的ID
        """
        priority: NotRequired[pulumi.Input[builtins.int]]
        """
        安全组规则优先级，数字越小，代表优先级越高。取值范围：1～100。不填默认值：1
        """
        protocol: NotRequired[pulumi.Input[builtins.str]]
        """
        协议类型。tcp、udp、icmp、icmpv6、all
        """
        source_group_id: NotRequired[pulumi.Input[builtins.str]]
        """
        源地址安全组ID。即该安全组中的所有网卡的地址作为源地址。
        """
elif False:
    SecurityGroupIngressPermissionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecurityGroupIngressPermissionArgs:
    def __init__(__self__, *,
                 cidr_ip: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 direction: Optional[pulumi.Input[builtins.str]] = None,
                 policy: Optional[pulumi.Input[builtins.str]] = None,
                 port_end: Optional[pulumi.Input[builtins.int]] = None,
                 port_start: Optional[pulumi.Input[builtins.int]] = None,
                 prefix_list_id: Optional[pulumi.Input[builtins.str]] = None,
                 priority: Optional[pulumi.Input[builtins.int]] = None,
                 protocol: Optional[pulumi.Input[builtins.str]] = None,
                 source_group_id: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] cidr_ip: 源地址的IPv4 CIDR或IPv6 CIDR
        :param pulumi.Input[builtins.str] description: 安全组规则的描述信息。需要以字母、中文或数字开头。可包含英文逗号（,）、点号（.）、下划线（_）、空格（ ）、等号（=）、短横线（-）、中文逗号（，）、中文句号（。）。长度限制为1~ 255个字符。不填保持原有配置。
        :param pulumi.Input[builtins.str] direction: 安全组规则方向。ingress：入方向。egress：出方向
        :param pulumi.Input[builtins.str] policy: 访问策略。即CidrIp 、SourceGroupId 或 PrefixListId 对应的资源访问安全组内的网卡。取值如下：accept：允许；drop：拒绝。
        :param pulumi.Input[builtins.int] port_end: 端口范围结束值。1、当Protocol 传入tcp或udp时，取值范围为1~65535。2、当Protocol 传入icmp、icmpv6或all时，仅支持传入-1，表示不限制端口
        :param pulumi.Input[builtins.int] port_start: 端口范围起始值。1、当Protocol 传入tcp或udp时，取值范围为1~65535。2、当Protocol 传入icmp、icmpv6或all时，仅支持传入-1，表示不限制端口
        :param pulumi.Input[builtins.str] prefix_list_id: 前缀列表的ID
        :param pulumi.Input[builtins.int] priority: 安全组规则优先级，数字越小，代表优先级越高。取值范围：1～100。不填默认值：1
        :param pulumi.Input[builtins.str] protocol: 协议类型。tcp、udp、icmp、icmpv6、all
        :param pulumi.Input[builtins.str] source_group_id: 源地址安全组ID。即该安全组中的所有网卡的地址作为源地址。
        """
        if cidr_ip is not None:
            pulumi.set(__self__, "cidr_ip", cidr_ip)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if direction is not None:
            pulumi.set(__self__, "direction", direction)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if port_end is not None:
            pulumi.set(__self__, "port_end", port_end)
        if port_start is not None:
            pulumi.set(__self__, "port_start", port_start)
        if prefix_list_id is not None:
            pulumi.set(__self__, "prefix_list_id", prefix_list_id)
        if priority is not None:
            pulumi.set(__self__, "priority", priority)
        if protocol is not None:
            pulumi.set(__self__, "protocol", protocol)
        if source_group_id is not None:
            pulumi.set(__self__, "source_group_id", source_group_id)

    @property
    @pulumi.getter(name="cidrIp")
    def cidr_ip(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        源地址的IPv4 CIDR或IPv6 CIDR
        """
        return pulumi.get(self, "cidr_ip")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        安全组规则的描述信息。需要以字母、中文或数字开头。可包含英文逗号（,）、点号（.）、下划线（_）、空格（ ）、等号（=）、短横线（-）、中文逗号（，）、中文句号（。）。长度限制为1~ 255个字符。不填保持原有配置。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter
    def direction(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        安全组规则方向。ingress：入方向。egress：出方向
        """
        return pulumi.get(self, "direction")

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

    @property
    @pulumi.getter
    def policy(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        访问策略。即CidrIp 、SourceGroupId 或 PrefixListId 对应的资源访问安全组内的网卡。取值如下：accept：允许；drop：拒绝。
        """
        return pulumi.get(self, "policy")

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

    @property
    @pulumi.getter(name="portEnd")
    def port_end(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        端口范围结束值。1、当Protocol 传入tcp或udp时，取值范围为1~65535。2、当Protocol 传入icmp、icmpv6或all时，仅支持传入-1，表示不限制端口
        """
        return pulumi.get(self, "port_end")

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

    @property
    @pulumi.getter(name="portStart")
    def port_start(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        端口范围起始值。1、当Protocol 传入tcp或udp时，取值范围为1~65535。2、当Protocol 传入icmp、icmpv6或all时，仅支持传入-1，表示不限制端口
        """
        return pulumi.get(self, "port_start")

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

    @property
    @pulumi.getter(name="prefixListId")
    def prefix_list_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        前缀列表的ID
        """
        return pulumi.get(self, "prefix_list_id")

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

    @property
    @pulumi.getter
    def priority(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        安全组规则优先级，数字越小，代表优先级越高。取值范围：1～100。不填默认值：1
        """
        return pulumi.get(self, "priority")

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

    @property
    @pulumi.getter
    def protocol(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        协议类型。tcp、udp、icmp、icmpv6、all
        """
        return pulumi.get(self, "protocol")

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

    @property
    @pulumi.getter(name="sourceGroupId")
    def source_group_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        源地址安全组ID。即该安全组中的所有网卡的地址作为源地址。
        """
        return pulumi.get(self, "source_group_id")

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


if not MYPY:
    class SecurityGroupTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签值。
        """
elif False:
    SecurityGroupTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecurityGroupTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 用户标签的标签键。
        :param pulumi.Input[builtins.str] value: 用户标签的标签值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户标签的标签键。
        """
        return pulumi.get(self, "key")

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

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

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


if not MYPY:
    class SubnetRouteTableArgsDict(TypedDict):
        route_table_id: NotRequired[pulumi.Input[builtins.str]]
        """
        子网关联的路由表ID。
        """
        route_table_type: NotRequired[pulumi.Input[builtins.str]]
        """
        子网关联的路由表的类型。1、System：表示系统路由表。2、Custom：表示自定义路由表。
        """
elif False:
    SubnetRouteTableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SubnetRouteTableArgs:
    def __init__(__self__, *,
                 route_table_id: Optional[pulumi.Input[builtins.str]] = None,
                 route_table_type: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] route_table_id: 子网关联的路由表ID。
        :param pulumi.Input[builtins.str] route_table_type: 子网关联的路由表的类型。1、System：表示系统路由表。2、Custom：表示自定义路由表。
        """
        if route_table_id is not None:
            pulumi.set(__self__, "route_table_id", route_table_id)
        if route_table_type is not None:
            pulumi.set(__self__, "route_table_type", route_table_type)

    @property
    @pulumi.getter(name="routeTableId")
    def route_table_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        子网关联的路由表ID。
        """
        return pulumi.get(self, "route_table_id")

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

    @property
    @pulumi.getter(name="routeTableType")
    def route_table_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        子网关联的路由表的类型。1、System：表示系统路由表。2、Custom：表示自定义路由表。
        """
        return pulumi.get(self, "route_table_type")

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


if not MYPY:
    class SubnetTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        用户标签的标签值。
        """
elif False:
    SubnetTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SubnetTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 用户标签的标签键。
        :param pulumi.Input[builtins.str] value: 用户标签的标签值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户标签的标签键。
        """
        return pulumi.get(self, "key")

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

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

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


if not MYPY:
    class TrafficMirrorFilterEgressFilterRuleArgsDict(TypedDict):
        description: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则实例描述。
        """
        destination_cidr_block: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则目的地址。
        """
        destination_port_range: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则目的端口范围。
        """
        policy: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则行为。accept：采集流量镜像。reject：不采集流量镜像。
        """
        priority: NotRequired[pulumi.Input[builtins.int]]
        """
        筛选规则优先级。
        """
        project_name: NotRequired[pulumi.Input[builtins.str]]
        """
        所属项目的名称。
        """
        protocol: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则协议类型。
        """
        source_cidr_block: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则源地址。
        """
        source_port_range: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则源端口范围。
        """
        status: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则状态。
        """
        traffic_direction: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则方向。egress：出方向。ingress：入方向。
        """
        traffic_mirror_filter_id: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选条件实例ID。
        """
        traffic_mirror_filter_rule_id: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则实例ID。
        """
elif False:
    TrafficMirrorFilterEgressFilterRuleArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class TrafficMirrorFilterEgressFilterRuleArgs:
    def __init__(__self__, *,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 destination_cidr_block: Optional[pulumi.Input[builtins.str]] = None,
                 destination_port_range: Optional[pulumi.Input[builtins.str]] = None,
                 policy: Optional[pulumi.Input[builtins.str]] = None,
                 priority: Optional[pulumi.Input[builtins.int]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 protocol: Optional[pulumi.Input[builtins.str]] = None,
                 source_cidr_block: Optional[pulumi.Input[builtins.str]] = None,
                 source_port_range: Optional[pulumi.Input[builtins.str]] = None,
                 status: Optional[pulumi.Input[builtins.str]] = None,
                 traffic_direction: Optional[pulumi.Input[builtins.str]] = None,
                 traffic_mirror_filter_id: Optional[pulumi.Input[builtins.str]] = None,
                 traffic_mirror_filter_rule_id: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] description: 筛选规则实例描述。
        :param pulumi.Input[builtins.str] destination_cidr_block: 筛选规则目的地址。
        :param pulumi.Input[builtins.str] destination_port_range: 筛选规则目的端口范围。
        :param pulumi.Input[builtins.str] policy: 筛选规则行为。accept：采集流量镜像。reject：不采集流量镜像。
        :param pulumi.Input[builtins.int] priority: 筛选规则优先级。
        :param pulumi.Input[builtins.str] project_name: 所属项目的名称。
        :param pulumi.Input[builtins.str] protocol: 筛选规则协议类型。
        :param pulumi.Input[builtins.str] source_cidr_block: 筛选规则源地址。
        :param pulumi.Input[builtins.str] source_port_range: 筛选规则源端口范围。
        :param pulumi.Input[builtins.str] status: 筛选规则状态。
        :param pulumi.Input[builtins.str] traffic_direction: 筛选规则方向。egress：出方向。ingress：入方向。
        :param pulumi.Input[builtins.str] traffic_mirror_filter_id: 筛选条件实例ID。
        :param pulumi.Input[builtins.str] traffic_mirror_filter_rule_id: 筛选规则实例ID。
        """
        if description is not None:
            pulumi.set(__self__, "description", description)
        if destination_cidr_block is not None:
            pulumi.set(__self__, "destination_cidr_block", destination_cidr_block)
        if destination_port_range is not None:
            pulumi.set(__self__, "destination_port_range", destination_port_range)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if priority is not None:
            pulumi.set(__self__, "priority", priority)
        if project_name is not None:
            pulumi.set(__self__, "project_name", project_name)
        if protocol is not None:
            pulumi.set(__self__, "protocol", protocol)
        if source_cidr_block is not None:
            pulumi.set(__self__, "source_cidr_block", source_cidr_block)
        if source_port_range is not None:
            pulumi.set(__self__, "source_port_range", source_port_range)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if traffic_direction is not None:
            pulumi.set(__self__, "traffic_direction", traffic_direction)
        if traffic_mirror_filter_id is not None:
            pulumi.set(__self__, "traffic_mirror_filter_id", traffic_mirror_filter_id)
        if traffic_mirror_filter_rule_id is not None:
            pulumi.set(__self__, "traffic_mirror_filter_rule_id", traffic_mirror_filter_rule_id)

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则实例描述。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="destinationCidrBlock")
    def destination_cidr_block(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则目的地址。
        """
        return pulumi.get(self, "destination_cidr_block")

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

    @property
    @pulumi.getter(name="destinationPortRange")
    def destination_port_range(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则目的端口范围。
        """
        return pulumi.get(self, "destination_port_range")

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

    @property
    @pulumi.getter
    def policy(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则行为。accept：采集流量镜像。reject：不采集流量镜像。
        """
        return pulumi.get(self, "policy")

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

    @property
    @pulumi.getter
    def priority(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        筛选规则优先级。
        """
        return pulumi.get(self, "priority")

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

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

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

    @property
    @pulumi.getter
    def protocol(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则协议类型。
        """
        return pulumi.get(self, "protocol")

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

    @property
    @pulumi.getter(name="sourceCidrBlock")
    def source_cidr_block(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则源地址。
        """
        return pulumi.get(self, "source_cidr_block")

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

    @property
    @pulumi.getter(name="sourcePortRange")
    def source_port_range(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则源端口范围。
        """
        return pulumi.get(self, "source_port_range")

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

    @property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则状态。
        """
        return pulumi.get(self, "status")

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

    @property
    @pulumi.getter(name="trafficDirection")
    def traffic_direction(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则方向。egress：出方向。ingress：入方向。
        """
        return pulumi.get(self, "traffic_direction")

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

    @property
    @pulumi.getter(name="trafficMirrorFilterId")
    def traffic_mirror_filter_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选条件实例ID。
        """
        return pulumi.get(self, "traffic_mirror_filter_id")

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

    @property
    @pulumi.getter(name="trafficMirrorFilterRuleId")
    def traffic_mirror_filter_rule_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则实例ID。
        """
        return pulumi.get(self, "traffic_mirror_filter_rule_id")

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


if not MYPY:
    class TrafficMirrorFilterIngressFilterRuleArgsDict(TypedDict):
        description: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则实例描述。
        """
        destination_cidr_block: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则目的地址。
        """
        destination_port_range: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则目的端口范围。
        """
        policy: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则行为。accept：采集流量镜像。reject：不采集流量镜像。
        """
        priority: NotRequired[pulumi.Input[builtins.int]]
        """
        筛选规则优先级。
        """
        project_name: NotRequired[pulumi.Input[builtins.str]]
        """
        所属项目的名称。
        """
        protocol: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则协议类型。
        """
        source_cidr_block: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则源地址。
        """
        source_port_range: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则源端口范围。
        """
        status: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则状态。
        """
        traffic_direction: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则方向。egress：出方向。ingress：入方向。
        """
        traffic_mirror_filter_id: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选条件实例ID。
        """
        traffic_mirror_filter_rule_id: NotRequired[pulumi.Input[builtins.str]]
        """
        筛选规则实例ID。
        """
elif False:
    TrafficMirrorFilterIngressFilterRuleArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class TrafficMirrorFilterIngressFilterRuleArgs:
    def __init__(__self__, *,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 destination_cidr_block: Optional[pulumi.Input[builtins.str]] = None,
                 destination_port_range: Optional[pulumi.Input[builtins.str]] = None,
                 policy: Optional[pulumi.Input[builtins.str]] = None,
                 priority: Optional[pulumi.Input[builtins.int]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 protocol: Optional[pulumi.Input[builtins.str]] = None,
                 source_cidr_block: Optional[pulumi.Input[builtins.str]] = None,
                 source_port_range: Optional[pulumi.Input[builtins.str]] = None,
                 status: Optional[pulumi.Input[builtins.str]] = None,
                 traffic_direction: Optional[pulumi.Input[builtins.str]] = None,
                 traffic_mirror_filter_id: Optional[pulumi.Input[builtins.str]] = None,
                 traffic_mirror_filter_rule_id: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] description: 筛选规则实例描述。
        :param pulumi.Input[builtins.str] destination_cidr_block: 筛选规则目的地址。
        :param pulumi.Input[builtins.str] destination_port_range: 筛选规则目的端口范围。
        :param pulumi.Input[builtins.str] policy: 筛选规则行为。accept：采集流量镜像。reject：不采集流量镜像。
        :param pulumi.Input[builtins.int] priority: 筛选规则优先级。
        :param pulumi.Input[builtins.str] project_name: 所属项目的名称。
        :param pulumi.Input[builtins.str] protocol: 筛选规则协议类型。
        :param pulumi.Input[builtins.str] source_cidr_block: 筛选规则源地址。
        :param pulumi.Input[builtins.str] source_port_range: 筛选规则源端口范围。
        :param pulumi.Input[builtins.str] status: 筛选规则状态。
        :param pulumi.Input[builtins.str] traffic_direction: 筛选规则方向。egress：出方向。ingress：入方向。
        :param pulumi.Input[builtins.str] traffic_mirror_filter_id: 筛选条件实例ID。
        :param pulumi.Input[builtins.str] traffic_mirror_filter_rule_id: 筛选规则实例ID。
        """
        if description is not None:
            pulumi.set(__self__, "description", description)
        if destination_cidr_block is not None:
            pulumi.set(__self__, "destination_cidr_block", destination_cidr_block)
        if destination_port_range is not None:
            pulumi.set(__self__, "destination_port_range", destination_port_range)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if priority is not None:
            pulumi.set(__self__, "priority", priority)
        if project_name is not None:
            pulumi.set(__self__, "project_name", project_name)
        if protocol is not None:
            pulumi.set(__self__, "protocol", protocol)
        if source_cidr_block is not None:
            pulumi.set(__self__, "source_cidr_block", source_cidr_block)
        if source_port_range is not None:
            pulumi.set(__self__, "source_port_range", source_port_range)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if traffic_direction is not None:
            pulumi.set(__self__, "traffic_direction", traffic_direction)
        if traffic_mirror_filter_id is not None:
            pulumi.set(__self__, "traffic_mirror_filter_id", traffic_mirror_filter_id)
        if traffic_mirror_filter_rule_id is not None:
            pulumi.set(__self__, "traffic_mirror_filter_rule_id", traffic_mirror_filter_rule_id)

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则实例描述。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="destinationCidrBlock")
    def destination_cidr_block(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则目的地址。
        """
        return pulumi.get(self, "destination_cidr_block")

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

    @property
    @pulumi.getter(name="destinationPortRange")
    def destination_port_range(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则目的端口范围。
        """
        return pulumi.get(self, "destination_port_range")

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

    @property
    @pulumi.getter
    def policy(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则行为。accept：采集流量镜像。reject：不采集流量镜像。
        """
        return pulumi.get(self, "policy")

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

    @property
    @pulumi.getter
    def priority(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        筛选规则优先级。
        """
        return pulumi.get(self, "priority")

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

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

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

    @property
    @pulumi.getter
    def protocol(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则协议类型。
        """
        return pulumi.get(self, "protocol")

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

    @property
    @pulumi.getter(name="sourceCidrBlock")
    def source_cidr_block(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则源地址。
        """
        return pulumi.get(self, "source_cidr_block")

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

    @property
    @pulumi.getter(name="sourcePortRange")
    def source_port_range(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则源端口范围。
        """
        return pulumi.get(self, "source_port_range")

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

    @property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则状态。
        """
        return pulumi.get(self, "status")

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

    @property
    @pulumi.getter(name="trafficDirection")
    def traffic_direction(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则方向。egress：出方向。ingress：入方向。
        """
        return pulumi.get(self, "traffic_direction")

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

    @property
    @pulumi.getter(name="trafficMirrorFilterId")
    def traffic_mirror_filter_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选条件实例ID。
        """
        return pulumi.get(self, "traffic_mirror_filter_id")

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

    @property
    @pulumi.getter(name="trafficMirrorFilterRuleId")
    def traffic_mirror_filter_rule_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        筛选规则实例ID。
        """
        return pulumi.get(self, "traffic_mirror_filter_rule_id")

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


if not MYPY:
    class TrafficMirrorFilterTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        标签键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        标签值。
        """
elif False:
    TrafficMirrorFilterTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class TrafficMirrorFilterTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 标签键。
        :param pulumi.Input[builtins.str] value: 标签值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

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

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

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

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


if not MYPY:
    class TrafficMirrorSessionTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        标签键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        标签值。
        """
elif False:
    TrafficMirrorSessionTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class TrafficMirrorSessionTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 标签键。
        :param pulumi.Input[builtins.str] value: 标签值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

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

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

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

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


if not MYPY:
    class TrafficMirrorTargetTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        标签的标签键。长度取值范围为1~128字符，允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。若标签键开头或结尾存在空格，系统会自动为其去除。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        标签的标签值。长度取值范围为0～256字符，不填默认为空。允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。大小写敏感。若标签值开头或结尾存在空格，系统会自动为其去除。
        """
elif False:
    TrafficMirrorTargetTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class TrafficMirrorTargetTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 标签的标签键。长度取值范围为1~128字符，允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。若标签键开头或结尾存在空格，系统会自动为其去除。
        :param pulumi.Input[builtins.str] value: 标签的标签值。长度取值范围为0～256字符，不填默认为空。允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。大小写敏感。若标签值开头或结尾存在空格，系统会自动为其去除。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        标签的标签键。长度取值范围为1~128字符，允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。若标签键开头或结尾存在空格，系统会自动为其去除。
        """
        return pulumi.get(self, "key")

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

    @property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        标签的标签值。长度取值范围为0～256字符，不填默认为空。允许输入各国语言文字、数字、空格（ ）、下划线（_）、点号（.）、半角冒号（:）、斜杠（/）、等号（=）、加号（+）、中划线（-）和@（@）。大小写敏感。若标签值开头或结尾存在空格，系统会自动为其去除。
        """
        return pulumi.get(self, "value")

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


if not MYPY:
    class VpcAssociateCenArgsDict(TypedDict):
        cen_id: NotRequired[pulumi.Input[builtins.str]]
        """
        CEN的ID。
        """
        cen_owner_id: NotRequired[pulumi.Input[builtins.str]]
        """
        CEN的用户ID。
        """
        cen_status: NotRequired[pulumi.Input[builtins.str]]
        """
        VPC在CEN中的状态。Attaching：加载中，Attached：已加载
        """
elif False:
    VpcAssociateCenArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class VpcAssociateCenArgs:
    def __init__(__self__, *,
                 cen_id: Optional[pulumi.Input[builtins.str]] = None,
                 cen_owner_id: Optional[pulumi.Input[builtins.str]] = None,
                 cen_status: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] cen_id: CEN的ID。
        :param pulumi.Input[builtins.str] cen_owner_id: CEN的用户ID。
        :param pulumi.Input[builtins.str] cen_status: VPC在CEN中的状态。Attaching：加载中，Attached：已加载
        """
        if cen_id is not None:
            pulumi.set(__self__, "cen_id", cen_id)
        if cen_owner_id is not None:
            pulumi.set(__self__, "cen_owner_id", cen_owner_id)
        if cen_status is not None:
            pulumi.set(__self__, "cen_status", cen_status)

    @property
    @pulumi.getter(name="cenId")
    def cen_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        CEN的ID。
        """
        return pulumi.get(self, "cen_id")

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

    @property
    @pulumi.getter(name="cenOwnerId")
    def cen_owner_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        CEN的用户ID。
        """
        return pulumi.get(self, "cen_owner_id")

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

    @property
    @pulumi.getter(name="cenStatus")
    def cen_status(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        VPC在CEN中的状态。Attaching：加载中，Attached：已加载
        """
        return pulumi.get(self, "cen_status")

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


if not MYPY:
    class VpcTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        标签键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        标签值。
        """
elif False:
    VpcTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class VpcTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 标签键。
        :param pulumi.Input[builtins.str] value: 标签值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

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

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

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

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


