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

import copy
import warnings
import 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__ = [
    'AddressBookEcsTagArgs',
    'AddressBookEcsTagArgsDict',
    'FirewallVpcFirewallCenLocalVpcArgs',
    'FirewallVpcFirewallCenLocalVpcArgsDict',
    'FirewallVpcFirewallCenLocalVpcEniListArgs',
    'FirewallVpcFirewallCenLocalVpcEniListArgsDict',
    'FirewallVpcFirewallCenLocalVpcVpcCidrTableListArgs',
    'FirewallVpcFirewallCenLocalVpcVpcCidrTableListArgsDict',
    'FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryListArgs',
    'FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryListArgsDict',
    'FirewallVpcFirewallLocalVpcArgs',
    'FirewallVpcFirewallLocalVpcArgsDict',
    'FirewallVpcFirewallLocalVpcLocalVpcCidrTableListArgs',
    'FirewallVpcFirewallLocalVpcLocalVpcCidrTableListArgsDict',
    'FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListArgs',
    'FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListArgsDict',
    'FirewallVpcFirewallPeerVpcArgs',
    'FirewallVpcFirewallPeerVpcArgsDict',
    'FirewallVpcFirewallPeerVpcPeerVpcCidrTableListArgs',
    'FirewallVpcFirewallPeerVpcPeerVpcCidrTableListArgsDict',
    'FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListArgs',
    'FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListArgsDict',
    'NatFirewallNatRouteEntryListArgs',
    'NatFirewallNatRouteEntryListArgsDict',
]

MYPY = False

if not MYPY:
    class AddressBookEcsTagArgsDict(TypedDict):
        tag_key: NotRequired[pulumi.Input[str]]
        """
        The key of ECS tag that to be matched.
        """
        tag_value: NotRequired[pulumi.Input[str]]
        """
        The value of ECS tag that to be matched.
        """
elif False:
    AddressBookEcsTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AddressBookEcsTagArgs:
    def __init__(__self__, *,
                 tag_key: Optional[pulumi.Input[str]] = None,
                 tag_value: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] tag_key: The key of ECS tag that to be matched.
        :param pulumi.Input[str] tag_value: The value of ECS tag that to be matched.
        """
        if tag_key is not None:
            pulumi.set(__self__, "tag_key", tag_key)
        if tag_value is not None:
            pulumi.set(__self__, "tag_value", tag_value)

    @property
    @pulumi.getter(name="tagKey")
    def tag_key(self) -> Optional[pulumi.Input[str]]:
        """
        The key of ECS tag that to be matched.
        """
        return pulumi.get(self, "tag_key")

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

    @property
    @pulumi.getter(name="tagValue")
    def tag_value(self) -> Optional[pulumi.Input[str]]:
        """
        The value of ECS tag that to be matched.
        """
        return pulumi.get(self, "tag_value")

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


if not MYPY:
    class FirewallVpcFirewallCenLocalVpcArgsDict(TypedDict):
        network_instance_id: pulumi.Input[str]
        """
        The ID of the VPC instance that created the VPC firewall.
        """
        attachment_id: NotRequired[pulumi.Input[str]]
        """
        The connection ID of the network instance.
        """
        attachment_name: NotRequired[pulumi.Input[str]]
        """
        The connection name of the network instance.
        """
        defend_cidr_lists: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
        """
        The list of network segments protected by the VPC firewall.
        """
        eni_lists: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallCenLocalVpcEniListArgsDict']]]]
        """
        List of elastic network cards.
        """
        manual_vswitch_id: NotRequired[pulumi.Input[str]]
        """
        The ID of the vSwitch specified when the routing mode is manual mode.
        """
        network_instance_name: NotRequired[pulumi.Input[str]]
        """
        The name of the network instance.
        """
        network_instance_type: NotRequired[pulumi.Input[str]]
        """
        The type of the network instance. Value: **VPC * *.
        """
        owner_id: NotRequired[pulumi.Input[str]]
        """
        The UID of the Alibaba Cloud account to which the VPC belongs.
        """
        region_no: NotRequired[pulumi.Input[str]]
        """
        The region ID of the VPC.
        """
        route_mode: NotRequired[pulumi.Input[str]]
        """
        Routing mode,. Value:-auto: indicates automatic mode.-manual: indicates manual mode.
        """
        support_manual_mode: NotRequired[pulumi.Input[str]]
        """
        Whether routing mode supports manual mode. Value:-**1**: Supported.-**0**: Not supported.
        """
        transit_router_id: NotRequired[pulumi.Input[str]]
        """
        The ID of the CEN-TR instance.
        """
        transit_router_type: NotRequired[pulumi.Input[str]]
        """
        The version of the cloud enterprise network forwarding router (CEN-TR). Value:-**Basic**: Basic Edition.-**Enterprise**: Enterprise Edition.
        """
        vpc_cidr_table_lists: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallCenLocalVpcVpcCidrTableListArgsDict']]]]
        """
        The VPC network segment list.
        """
        vpc_id: NotRequired[pulumi.Input[str]]
        """
        The ID of the VPC instance.
        """
        vpc_name: NotRequired[pulumi.Input[str]]
        """
        The instance name of the VPC.
        """
elif False:
    FirewallVpcFirewallCenLocalVpcArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FirewallVpcFirewallCenLocalVpcArgs:
    def __init__(__self__, *,
                 network_instance_id: pulumi.Input[str],
                 attachment_id: Optional[pulumi.Input[str]] = None,
                 attachment_name: Optional[pulumi.Input[str]] = None,
                 defend_cidr_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 eni_lists: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallCenLocalVpcEniListArgs']]]] = None,
                 manual_vswitch_id: Optional[pulumi.Input[str]] = None,
                 network_instance_name: Optional[pulumi.Input[str]] = None,
                 network_instance_type: Optional[pulumi.Input[str]] = None,
                 owner_id: Optional[pulumi.Input[str]] = None,
                 region_no: Optional[pulumi.Input[str]] = None,
                 route_mode: Optional[pulumi.Input[str]] = None,
                 support_manual_mode: Optional[pulumi.Input[str]] = None,
                 transit_router_id: Optional[pulumi.Input[str]] = None,
                 transit_router_type: Optional[pulumi.Input[str]] = None,
                 vpc_cidr_table_lists: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallCenLocalVpcVpcCidrTableListArgs']]]] = None,
                 vpc_id: Optional[pulumi.Input[str]] = None,
                 vpc_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] network_instance_id: The ID of the VPC instance that created the VPC firewall.
        :param pulumi.Input[str] attachment_id: The connection ID of the network instance.
        :param pulumi.Input[str] attachment_name: The connection name of the network instance.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] defend_cidr_lists: The list of network segments protected by the VPC firewall.
        :param pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallCenLocalVpcEniListArgs']]] eni_lists: List of elastic network cards.
        :param pulumi.Input[str] manual_vswitch_id: The ID of the vSwitch specified when the routing mode is manual mode.
        :param pulumi.Input[str] network_instance_name: The name of the network instance.
        :param pulumi.Input[str] network_instance_type: The type of the network instance. Value: **VPC * *.
        :param pulumi.Input[str] owner_id: The UID of the Alibaba Cloud account to which the VPC belongs.
        :param pulumi.Input[str] region_no: The region ID of the VPC.
        :param pulumi.Input[str] route_mode: Routing mode,. Value:-auto: indicates automatic mode.-manual: indicates manual mode.
        :param pulumi.Input[str] support_manual_mode: Whether routing mode supports manual mode. Value:-**1**: Supported.-**0**: Not supported.
        :param pulumi.Input[str] transit_router_id: The ID of the CEN-TR instance.
        :param pulumi.Input[str] transit_router_type: The version of the cloud enterprise network forwarding router (CEN-TR). Value:-**Basic**: Basic Edition.-**Enterprise**: Enterprise Edition.
        :param pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallCenLocalVpcVpcCidrTableListArgs']]] vpc_cidr_table_lists: The VPC network segment list.
        :param pulumi.Input[str] vpc_id: The ID of the VPC instance.
        :param pulumi.Input[str] vpc_name: The instance name of the VPC.
        """
        pulumi.set(__self__, "network_instance_id", network_instance_id)
        if attachment_id is not None:
            pulumi.set(__self__, "attachment_id", attachment_id)
        if attachment_name is not None:
            pulumi.set(__self__, "attachment_name", attachment_name)
        if defend_cidr_lists is not None:
            pulumi.set(__self__, "defend_cidr_lists", defend_cidr_lists)
        if eni_lists is not None:
            pulumi.set(__self__, "eni_lists", eni_lists)
        if manual_vswitch_id is not None:
            pulumi.set(__self__, "manual_vswitch_id", manual_vswitch_id)
        if network_instance_name is not None:
            pulumi.set(__self__, "network_instance_name", network_instance_name)
        if network_instance_type is not None:
            pulumi.set(__self__, "network_instance_type", network_instance_type)
        if owner_id is not None:
            pulumi.set(__self__, "owner_id", owner_id)
        if region_no is not None:
            pulumi.set(__self__, "region_no", region_no)
        if route_mode is not None:
            pulumi.set(__self__, "route_mode", route_mode)
        if support_manual_mode is not None:
            pulumi.set(__self__, "support_manual_mode", support_manual_mode)
        if transit_router_id is not None:
            pulumi.set(__self__, "transit_router_id", transit_router_id)
        if transit_router_type is not None:
            pulumi.set(__self__, "transit_router_type", transit_router_type)
        if vpc_cidr_table_lists is not None:
            pulumi.set(__self__, "vpc_cidr_table_lists", vpc_cidr_table_lists)
        if vpc_id is not None:
            pulumi.set(__self__, "vpc_id", vpc_id)
        if vpc_name is not None:
            pulumi.set(__self__, "vpc_name", vpc_name)

    @property
    @pulumi.getter(name="networkInstanceId")
    def network_instance_id(self) -> pulumi.Input[str]:
        """
        The ID of the VPC instance that created the VPC firewall.
        """
        return pulumi.get(self, "network_instance_id")

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

    @property
    @pulumi.getter(name="attachmentId")
    def attachment_id(self) -> Optional[pulumi.Input[str]]:
        """
        The connection ID of the network instance.
        """
        return pulumi.get(self, "attachment_id")

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

    @property
    @pulumi.getter(name="attachmentName")
    def attachment_name(self) -> Optional[pulumi.Input[str]]:
        """
        The connection name of the network instance.
        """
        return pulumi.get(self, "attachment_name")

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

    @property
    @pulumi.getter(name="defendCidrLists")
    def defend_cidr_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        The list of network segments protected by the VPC firewall.
        """
        return pulumi.get(self, "defend_cidr_lists")

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

    @property
    @pulumi.getter(name="eniLists")
    def eni_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallCenLocalVpcEniListArgs']]]]:
        """
        List of elastic network cards.
        """
        return pulumi.get(self, "eni_lists")

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

    @property
    @pulumi.getter(name="manualVswitchId")
    def manual_vswitch_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the vSwitch specified when the routing mode is manual mode.
        """
        return pulumi.get(self, "manual_vswitch_id")

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

    @property
    @pulumi.getter(name="networkInstanceName")
    def network_instance_name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of the network instance.
        """
        return pulumi.get(self, "network_instance_name")

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

    @property
    @pulumi.getter(name="networkInstanceType")
    def network_instance_type(self) -> Optional[pulumi.Input[str]]:
        """
        The type of the network instance. Value: **VPC * *.
        """
        return pulumi.get(self, "network_instance_type")

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

    @property
    @pulumi.getter(name="ownerId")
    def owner_id(self) -> Optional[pulumi.Input[str]]:
        """
        The UID of the Alibaba Cloud account to which the VPC belongs.
        """
        return pulumi.get(self, "owner_id")

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

    @property
    @pulumi.getter(name="regionNo")
    def region_no(self) -> Optional[pulumi.Input[str]]:
        """
        The region ID of the VPC.
        """
        return pulumi.get(self, "region_no")

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

    @property
    @pulumi.getter(name="routeMode")
    def route_mode(self) -> Optional[pulumi.Input[str]]:
        """
        Routing mode,. Value:-auto: indicates automatic mode.-manual: indicates manual mode.
        """
        return pulumi.get(self, "route_mode")

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

    @property
    @pulumi.getter(name="supportManualMode")
    def support_manual_mode(self) -> Optional[pulumi.Input[str]]:
        """
        Whether routing mode supports manual mode. Value:-**1**: Supported.-**0**: Not supported.
        """
        return pulumi.get(self, "support_manual_mode")

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

    @property
    @pulumi.getter(name="transitRouterId")
    def transit_router_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the CEN-TR instance.
        """
        return pulumi.get(self, "transit_router_id")

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

    @property
    @pulumi.getter(name="transitRouterType")
    def transit_router_type(self) -> Optional[pulumi.Input[str]]:
        """
        The version of the cloud enterprise network forwarding router (CEN-TR). Value:-**Basic**: Basic Edition.-**Enterprise**: Enterprise Edition.
        """
        return pulumi.get(self, "transit_router_type")

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

    @property
    @pulumi.getter(name="vpcCidrTableLists")
    def vpc_cidr_table_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallCenLocalVpcVpcCidrTableListArgs']]]]:
        """
        The VPC network segment list.
        """
        return pulumi.get(self, "vpc_cidr_table_lists")

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

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

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

    @property
    @pulumi.getter(name="vpcName")
    def vpc_name(self) -> Optional[pulumi.Input[str]]:
        """
        The instance name of the VPC.
        """
        return pulumi.get(self, "vpc_name")

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


if not MYPY:
    class FirewallVpcFirewallCenLocalVpcEniListArgsDict(TypedDict):
        eni_id: NotRequired[pulumi.Input[str]]
        """
        The ID of the instance of the ENI in the VPC.
        """
        eni_private_ip_address: NotRequired[pulumi.Input[str]]
        """
        The private IP address of the ENI in the VPC.
        """
elif False:
    FirewallVpcFirewallCenLocalVpcEniListArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FirewallVpcFirewallCenLocalVpcEniListArgs:
    def __init__(__self__, *,
                 eni_id: Optional[pulumi.Input[str]] = None,
                 eni_private_ip_address: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] eni_id: The ID of the instance of the ENI in the VPC.
        :param pulumi.Input[str] eni_private_ip_address: The private IP address of the ENI in the VPC.
        """
        if eni_id is not None:
            pulumi.set(__self__, "eni_id", eni_id)
        if eni_private_ip_address is not None:
            pulumi.set(__self__, "eni_private_ip_address", eni_private_ip_address)

    @property
    @pulumi.getter(name="eniId")
    def eni_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the instance of the ENI in the VPC.
        """
        return pulumi.get(self, "eni_id")

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

    @property
    @pulumi.getter(name="eniPrivateIpAddress")
    def eni_private_ip_address(self) -> Optional[pulumi.Input[str]]:
        """
        The private IP address of the ENI in the VPC.
        """
        return pulumi.get(self, "eni_private_ip_address")

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


if not MYPY:
    class FirewallVpcFirewallCenLocalVpcVpcCidrTableListArgsDict(TypedDict):
        route_entry_lists: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryListArgsDict']]]]
        """
        The list of route entries in the VPC.
        """
        route_table_id: NotRequired[pulumi.Input[str]]
        """
        The ID of the route table of the VPC.
        """
elif False:
    FirewallVpcFirewallCenLocalVpcVpcCidrTableListArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FirewallVpcFirewallCenLocalVpcVpcCidrTableListArgs:
    def __init__(__self__, *,
                 route_entry_lists: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryListArgs']]]] = None,
                 route_table_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryListArgs']]] route_entry_lists: The list of route entries in the VPC.
        :param pulumi.Input[str] route_table_id: The ID of the route table of the VPC.
        """
        if route_entry_lists is not None:
            pulumi.set(__self__, "route_entry_lists", route_entry_lists)
        if route_table_id is not None:
            pulumi.set(__self__, "route_table_id", route_table_id)

    @property
    @pulumi.getter(name="routeEntryLists")
    def route_entry_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryListArgs']]]]:
        """
        The list of route entries in the VPC.
        """
        return pulumi.get(self, "route_entry_lists")

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

    @property
    @pulumi.getter(name="routeTableId")
    def route_table_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the route table of the VPC.
        """
        return pulumi.get(self, "route_table_id")

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


if not MYPY:
    class FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryListArgsDict(TypedDict):
        destination_cidr: NotRequired[pulumi.Input[str]]
        """
        The target network segment of the VPC.
        """
        next_hop_instance_id: NotRequired[pulumi.Input[str]]
        """
        The ID of the next hop instance in the VPC.
        """
elif False:
    FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryListArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryListArgs:
    def __init__(__self__, *,
                 destination_cidr: Optional[pulumi.Input[str]] = None,
                 next_hop_instance_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] destination_cidr: The target network segment of the VPC.
        :param pulumi.Input[str] next_hop_instance_id: The ID of the next hop instance in the VPC.
        """
        if destination_cidr is not None:
            pulumi.set(__self__, "destination_cidr", destination_cidr)
        if next_hop_instance_id is not None:
            pulumi.set(__self__, "next_hop_instance_id", next_hop_instance_id)

    @property
    @pulumi.getter(name="destinationCidr")
    def destination_cidr(self) -> Optional[pulumi.Input[str]]:
        """
        The target network segment of the VPC.
        """
        return pulumi.get(self, "destination_cidr")

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

    @property
    @pulumi.getter(name="nextHopInstanceId")
    def next_hop_instance_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the next hop instance in the VPC.
        """
        return pulumi.get(self, "next_hop_instance_id")

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


if not MYPY:
    class FirewallVpcFirewallLocalVpcArgsDict(TypedDict):
        local_vpc_cidr_table_lists: pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallLocalVpcLocalVpcCidrTableListArgsDict']]]
        """
        The network segment list of the local VPC. See `local_vpc_cidr_table_list` below.
        """
        region_no: pulumi.Input[str]
        """
        The region ID of the local VPC.
        """
        vpc_id: pulumi.Input[str]
        """
        The ID of the local VPC instance.
        """
        eni_id: NotRequired[pulumi.Input[str]]
        """
        The ID of the instance of the ENI in the peer VPC.
        """
        eni_private_ip_address: NotRequired[pulumi.Input[str]]
        """
        The private IP address of the elastic network card in the peer VPC.
        """
        router_interface_id: NotRequired[pulumi.Input[str]]
        """
        The ID of the router interface in the peer VPC.
        """
        vpc_name: NotRequired[pulumi.Input[str]]
        """
        The instance name of the peer VPC.
        """
elif False:
    FirewallVpcFirewallLocalVpcArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FirewallVpcFirewallLocalVpcArgs:
    def __init__(__self__, *,
                 local_vpc_cidr_table_lists: pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallLocalVpcLocalVpcCidrTableListArgs']]],
                 region_no: pulumi.Input[str],
                 vpc_id: pulumi.Input[str],
                 eni_id: Optional[pulumi.Input[str]] = None,
                 eni_private_ip_address: Optional[pulumi.Input[str]] = None,
                 router_interface_id: Optional[pulumi.Input[str]] = None,
                 vpc_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallLocalVpcLocalVpcCidrTableListArgs']]] local_vpc_cidr_table_lists: The network segment list of the local VPC. See `local_vpc_cidr_table_list` below.
        :param pulumi.Input[str] region_no: The region ID of the local VPC.
        :param pulumi.Input[str] vpc_id: The ID of the local VPC instance.
        :param pulumi.Input[str] eni_id: The ID of the instance of the ENI in the peer VPC.
        :param pulumi.Input[str] eni_private_ip_address: The private IP address of the elastic network card in the peer VPC.
        :param pulumi.Input[str] router_interface_id: The ID of the router interface in the peer VPC.
        :param pulumi.Input[str] vpc_name: The instance name of the peer VPC.
        """
        pulumi.set(__self__, "local_vpc_cidr_table_lists", local_vpc_cidr_table_lists)
        pulumi.set(__self__, "region_no", region_no)
        pulumi.set(__self__, "vpc_id", vpc_id)
        if eni_id is not None:
            pulumi.set(__self__, "eni_id", eni_id)
        if eni_private_ip_address is not None:
            pulumi.set(__self__, "eni_private_ip_address", eni_private_ip_address)
        if router_interface_id is not None:
            pulumi.set(__self__, "router_interface_id", router_interface_id)
        if vpc_name is not None:
            pulumi.set(__self__, "vpc_name", vpc_name)

    @property
    @pulumi.getter(name="localVpcCidrTableLists")
    def local_vpc_cidr_table_lists(self) -> pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallLocalVpcLocalVpcCidrTableListArgs']]]:
        """
        The network segment list of the local VPC. See `local_vpc_cidr_table_list` below.
        """
        return pulumi.get(self, "local_vpc_cidr_table_lists")

    @local_vpc_cidr_table_lists.setter
    def local_vpc_cidr_table_lists(self, value: pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallLocalVpcLocalVpcCidrTableListArgs']]]):
        pulumi.set(self, "local_vpc_cidr_table_lists", value)

    @property
    @pulumi.getter(name="regionNo")
    def region_no(self) -> pulumi.Input[str]:
        """
        The region ID of the local VPC.
        """
        return pulumi.get(self, "region_no")

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

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> pulumi.Input[str]:
        """
        The ID of the local VPC instance.
        """
        return pulumi.get(self, "vpc_id")

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

    @property
    @pulumi.getter(name="eniId")
    def eni_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the instance of the ENI in the peer VPC.
        """
        return pulumi.get(self, "eni_id")

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

    @property
    @pulumi.getter(name="eniPrivateIpAddress")
    def eni_private_ip_address(self) -> Optional[pulumi.Input[str]]:
        """
        The private IP address of the elastic network card in the peer VPC.
        """
        return pulumi.get(self, "eni_private_ip_address")

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

    @property
    @pulumi.getter(name="routerInterfaceId")
    def router_interface_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the router interface in the peer VPC.
        """
        return pulumi.get(self, "router_interface_id")

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

    @property
    @pulumi.getter(name="vpcName")
    def vpc_name(self) -> Optional[pulumi.Input[str]]:
        """
        The instance name of the peer VPC.
        """
        return pulumi.get(self, "vpc_name")

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


if not MYPY:
    class FirewallVpcFirewallLocalVpcLocalVpcCidrTableListArgsDict(TypedDict):
        local_route_entry_lists: pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListArgsDict']]]
        """
        The list of route entries of the local VPC. See `local_route_entry_list` below.
        """
        local_route_table_id: pulumi.Input[str]
        """
        The ID of the route table of the local VPC.
        """
elif False:
    FirewallVpcFirewallLocalVpcLocalVpcCidrTableListArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FirewallVpcFirewallLocalVpcLocalVpcCidrTableListArgs:
    def __init__(__self__, *,
                 local_route_entry_lists: pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListArgs']]],
                 local_route_table_id: pulumi.Input[str]):
        """
        :param pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListArgs']]] local_route_entry_lists: The list of route entries of the local VPC. See `local_route_entry_list` below.
        :param pulumi.Input[str] local_route_table_id: The ID of the route table of the local VPC.
        """
        pulumi.set(__self__, "local_route_entry_lists", local_route_entry_lists)
        pulumi.set(__self__, "local_route_table_id", local_route_table_id)

    @property
    @pulumi.getter(name="localRouteEntryLists")
    def local_route_entry_lists(self) -> pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListArgs']]]:
        """
        The list of route entries of the local VPC. See `local_route_entry_list` below.
        """
        return pulumi.get(self, "local_route_entry_lists")

    @local_route_entry_lists.setter
    def local_route_entry_lists(self, value: pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListArgs']]]):
        pulumi.set(self, "local_route_entry_lists", value)

    @property
    @pulumi.getter(name="localRouteTableId")
    def local_route_table_id(self) -> pulumi.Input[str]:
        """
        The ID of the route table of the local VPC.
        """
        return pulumi.get(self, "local_route_table_id")

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


if not MYPY:
    class FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListArgsDict(TypedDict):
        local_destination_cidr: pulumi.Input[str]
        """
        The target network segment of the local VPC.
        """
        local_next_hop_instance_id: pulumi.Input[str]
        """
        The ID of the next-hop instance in the local VPC.
        """
elif False:
    FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListArgs:
    def __init__(__self__, *,
                 local_destination_cidr: pulumi.Input[str],
                 local_next_hop_instance_id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] local_destination_cidr: The target network segment of the local VPC.
        :param pulumi.Input[str] local_next_hop_instance_id: The ID of the next-hop instance in the local VPC.
        """
        pulumi.set(__self__, "local_destination_cidr", local_destination_cidr)
        pulumi.set(__self__, "local_next_hop_instance_id", local_next_hop_instance_id)

    @property
    @pulumi.getter(name="localDestinationCidr")
    def local_destination_cidr(self) -> pulumi.Input[str]:
        """
        The target network segment of the local VPC.
        """
        return pulumi.get(self, "local_destination_cidr")

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

    @property
    @pulumi.getter(name="localNextHopInstanceId")
    def local_next_hop_instance_id(self) -> pulumi.Input[str]:
        """
        The ID of the next-hop instance in the local VPC.
        """
        return pulumi.get(self, "local_next_hop_instance_id")

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


if not MYPY:
    class FirewallVpcFirewallPeerVpcArgsDict(TypedDict):
        peer_vpc_cidr_table_lists: pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallPeerVpcPeerVpcCidrTableListArgsDict']]]
        """
        The network segment list of the peer VPC. See `peer_vpc_cidr_table_list` below.
        """
        region_no: pulumi.Input[str]
        """
        The region ID of the peer VPC.
        """
        vpc_id: pulumi.Input[str]
        """
        The ID of the peer VPC instance.
        """
        eni_id: NotRequired[pulumi.Input[str]]
        """
        The ID of the instance of the ENI in the peer VPC.
        """
        eni_private_ip_address: NotRequired[pulumi.Input[str]]
        """
        The private IP address of the elastic network card in the peer VPC.
        """
        router_interface_id: NotRequired[pulumi.Input[str]]
        """
        The ID of the router interface in the peer VPC.
        """
        vpc_name: NotRequired[pulumi.Input[str]]
        """
        The instance name of the peer VPC.
        """
elif False:
    FirewallVpcFirewallPeerVpcArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FirewallVpcFirewallPeerVpcArgs:
    def __init__(__self__, *,
                 peer_vpc_cidr_table_lists: pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallPeerVpcPeerVpcCidrTableListArgs']]],
                 region_no: pulumi.Input[str],
                 vpc_id: pulumi.Input[str],
                 eni_id: Optional[pulumi.Input[str]] = None,
                 eni_private_ip_address: Optional[pulumi.Input[str]] = None,
                 router_interface_id: Optional[pulumi.Input[str]] = None,
                 vpc_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallPeerVpcPeerVpcCidrTableListArgs']]] peer_vpc_cidr_table_lists: The network segment list of the peer VPC. See `peer_vpc_cidr_table_list` below.
        :param pulumi.Input[str] region_no: The region ID of the peer VPC.
        :param pulumi.Input[str] vpc_id: The ID of the peer VPC instance.
        :param pulumi.Input[str] eni_id: The ID of the instance of the ENI in the peer VPC.
        :param pulumi.Input[str] eni_private_ip_address: The private IP address of the elastic network card in the peer VPC.
        :param pulumi.Input[str] router_interface_id: The ID of the router interface in the peer VPC.
        :param pulumi.Input[str] vpc_name: The instance name of the peer VPC.
        """
        pulumi.set(__self__, "peer_vpc_cidr_table_lists", peer_vpc_cidr_table_lists)
        pulumi.set(__self__, "region_no", region_no)
        pulumi.set(__self__, "vpc_id", vpc_id)
        if eni_id is not None:
            pulumi.set(__self__, "eni_id", eni_id)
        if eni_private_ip_address is not None:
            pulumi.set(__self__, "eni_private_ip_address", eni_private_ip_address)
        if router_interface_id is not None:
            pulumi.set(__self__, "router_interface_id", router_interface_id)
        if vpc_name is not None:
            pulumi.set(__self__, "vpc_name", vpc_name)

    @property
    @pulumi.getter(name="peerVpcCidrTableLists")
    def peer_vpc_cidr_table_lists(self) -> pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallPeerVpcPeerVpcCidrTableListArgs']]]:
        """
        The network segment list of the peer VPC. See `peer_vpc_cidr_table_list` below.
        """
        return pulumi.get(self, "peer_vpc_cidr_table_lists")

    @peer_vpc_cidr_table_lists.setter
    def peer_vpc_cidr_table_lists(self, value: pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallPeerVpcPeerVpcCidrTableListArgs']]]):
        pulumi.set(self, "peer_vpc_cidr_table_lists", value)

    @property
    @pulumi.getter(name="regionNo")
    def region_no(self) -> pulumi.Input[str]:
        """
        The region ID of the peer VPC.
        """
        return pulumi.get(self, "region_no")

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

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> pulumi.Input[str]:
        """
        The ID of the peer VPC instance.
        """
        return pulumi.get(self, "vpc_id")

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

    @property
    @pulumi.getter(name="eniId")
    def eni_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the instance of the ENI in the peer VPC.
        """
        return pulumi.get(self, "eni_id")

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

    @property
    @pulumi.getter(name="eniPrivateIpAddress")
    def eni_private_ip_address(self) -> Optional[pulumi.Input[str]]:
        """
        The private IP address of the elastic network card in the peer VPC.
        """
        return pulumi.get(self, "eni_private_ip_address")

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

    @property
    @pulumi.getter(name="routerInterfaceId")
    def router_interface_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the router interface in the peer VPC.
        """
        return pulumi.get(self, "router_interface_id")

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

    @property
    @pulumi.getter(name="vpcName")
    def vpc_name(self) -> Optional[pulumi.Input[str]]:
        """
        The instance name of the peer VPC.
        """
        return pulumi.get(self, "vpc_name")

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


if not MYPY:
    class FirewallVpcFirewallPeerVpcPeerVpcCidrTableListArgsDict(TypedDict):
        peer_route_entry_lists: pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListArgsDict']]]
        """
        Peer VPC route entry list information. See `peer_route_entry_list` below.
        """
        peer_route_table_id: pulumi.Input[str]
        """
        The ID of the route table of the peer VPC.
        """
elif False:
    FirewallVpcFirewallPeerVpcPeerVpcCidrTableListArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FirewallVpcFirewallPeerVpcPeerVpcCidrTableListArgs:
    def __init__(__self__, *,
                 peer_route_entry_lists: pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListArgs']]],
                 peer_route_table_id: pulumi.Input[str]):
        """
        :param pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListArgs']]] peer_route_entry_lists: Peer VPC route entry list information. See `peer_route_entry_list` below.
        :param pulumi.Input[str] peer_route_table_id: The ID of the route table of the peer VPC.
        """
        pulumi.set(__self__, "peer_route_entry_lists", peer_route_entry_lists)
        pulumi.set(__self__, "peer_route_table_id", peer_route_table_id)

    @property
    @pulumi.getter(name="peerRouteEntryLists")
    def peer_route_entry_lists(self) -> pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListArgs']]]:
        """
        Peer VPC route entry list information. See `peer_route_entry_list` below.
        """
        return pulumi.get(self, "peer_route_entry_lists")

    @peer_route_entry_lists.setter
    def peer_route_entry_lists(self, value: pulumi.Input[Sequence[pulumi.Input['FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListArgs']]]):
        pulumi.set(self, "peer_route_entry_lists", value)

    @property
    @pulumi.getter(name="peerRouteTableId")
    def peer_route_table_id(self) -> pulumi.Input[str]:
        """
        The ID of the route table of the peer VPC.
        """
        return pulumi.get(self, "peer_route_table_id")

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


if not MYPY:
    class FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListArgsDict(TypedDict):
        peer_destination_cidr: pulumi.Input[str]
        """
        The target network segment of the peer VPC.
        """
        peer_next_hop_instance_id: pulumi.Input[str]
        """
        The ID of the next-hop instance in the peer VPC.
        """
elif False:
    FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListArgs:
    def __init__(__self__, *,
                 peer_destination_cidr: pulumi.Input[str],
                 peer_next_hop_instance_id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] peer_destination_cidr: The target network segment of the peer VPC.
        :param pulumi.Input[str] peer_next_hop_instance_id: The ID of the next-hop instance in the peer VPC.
        """
        pulumi.set(__self__, "peer_destination_cidr", peer_destination_cidr)
        pulumi.set(__self__, "peer_next_hop_instance_id", peer_next_hop_instance_id)

    @property
    @pulumi.getter(name="peerDestinationCidr")
    def peer_destination_cidr(self) -> pulumi.Input[str]:
        """
        The target network segment of the peer VPC.
        """
        return pulumi.get(self, "peer_destination_cidr")

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

    @property
    @pulumi.getter(name="peerNextHopInstanceId")
    def peer_next_hop_instance_id(self) -> pulumi.Input[str]:
        """
        The ID of the next-hop instance in the peer VPC.
        """
        return pulumi.get(self, "peer_next_hop_instance_id")

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


if not MYPY:
    class NatFirewallNatRouteEntryListArgsDict(TypedDict):
        destination_cidr: pulumi.Input[str]
        """
        The destination network segment of the default route.
        """
        nexthop_id: pulumi.Input[str]
        """
        The next hop address of the original NAT gateway.
        """
        nexthop_type: pulumi.Input[str]
        """
        The network type of the next hop. Value: NatGateway : NAT Gateway.
        """
        route_table_id: pulumi.Input[str]
        """
        The route table where the default route of the NAT gateway is located.
        """
elif False:
    NatFirewallNatRouteEntryListArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class NatFirewallNatRouteEntryListArgs:
    def __init__(__self__, *,
                 destination_cidr: pulumi.Input[str],
                 nexthop_id: pulumi.Input[str],
                 nexthop_type: pulumi.Input[str],
                 route_table_id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] destination_cidr: The destination network segment of the default route.
        :param pulumi.Input[str] nexthop_id: The next hop address of the original NAT gateway.
        :param pulumi.Input[str] nexthop_type: The network type of the next hop. Value: NatGateway : NAT Gateway.
        :param pulumi.Input[str] route_table_id: The route table where the default route of the NAT gateway is located.
        """
        pulumi.set(__self__, "destination_cidr", destination_cidr)
        pulumi.set(__self__, "nexthop_id", nexthop_id)
        pulumi.set(__self__, "nexthop_type", nexthop_type)
        pulumi.set(__self__, "route_table_id", route_table_id)

    @property
    @pulumi.getter(name="destinationCidr")
    def destination_cidr(self) -> pulumi.Input[str]:
        """
        The destination network segment of the default route.
        """
        return pulumi.get(self, "destination_cidr")

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

    @property
    @pulumi.getter(name="nexthopId")
    def nexthop_id(self) -> pulumi.Input[str]:
        """
        The next hop address of the original NAT gateway.
        """
        return pulumi.get(self, "nexthop_id")

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

    @property
    @pulumi.getter(name="nexthopType")
    def nexthop_type(self) -> pulumi.Input[str]:
        """
        The network type of the next hop. Value: NatGateway : NAT Gateway.
        """
        return pulumi.get(self, "nexthop_type")

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

    @property
    @pulumi.getter(name="routeTableId")
    def route_table_id(self) -> pulumi.Input[str]:
        """
        The route table where the default route of the NAT gateway is located.
        """
        return pulumi.get(self, "route_table_id")

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


