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

import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities
from . import outputs

__all__ = [
    'AddressBookEcsTag',
    'FirewallVpcFirewallCenLocalVpc',
    'FirewallVpcFirewallCenLocalVpcEniList',
    'FirewallVpcFirewallCenLocalVpcVpcCidrTableList',
    'FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryList',
    'FirewallVpcFirewallLocalVpc',
    'FirewallVpcFirewallLocalVpcLocalVpcCidrTableList',
    'FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryList',
    'FirewallVpcFirewallPeerVpc',
    'FirewallVpcFirewallPeerVpcPeerVpcCidrTableList',
    'FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryList',
    'GetAddressBooksBookResult',
    'GetAddressBooksBookEcsTagResult',
    'GetControlPoliciesPolicyResult',
    'GetInstanceMembersMemberResult',
    'GetInstancesInstanceResult',
    'GetVpcFirewallCensCenResult',
    'GetVpcFirewallCensCenLocalVpcResult',
    'GetVpcFirewallCensCenLocalVpcEniListResult',
    'GetVpcFirewallCensCenLocalVpcVpcCidrTableListResult',
    'GetVpcFirewallCensCenLocalVpcVpcCidrTableListRouteEntryListResult',
    'GetVpcFirewallControlPoliciesPolicyResult',
    'GetVpcFirewallsFirewallResult',
    'GetVpcFirewallsFirewallLocalVpcResult',
    'GetVpcFirewallsFirewallLocalVpcLocalVpcCidrTableListResult',
    'GetVpcFirewallsFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListResult',
    'GetVpcFirewallsFirewallPeerVpcResult',
    'GetVpcFirewallsFirewallPeerVpcPeerVpcCidrTableListResult',
    'GetVpcFirewallsFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListResult',
]

@pulumi.output_type
class AddressBookEcsTag(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "tagKey":
            suggest = "tag_key"
        elif key == "tagValue":
            suggest = "tag_value"

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

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

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

    def __init__(__self__, *,
                 tag_key: Optional[str] = None,
                 tag_value: Optional[str] = None):
        """
        :param str tag_key: The key of ECS tag that to be matched.
        :param 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[str]:
        """
        The key of ECS tag that to be matched.
        """
        return pulumi.get(self, "tag_key")

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


@pulumi.output_type
class FirewallVpcFirewallCenLocalVpc(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "networkInstanceId":
            suggest = "network_instance_id"
        elif key == "attachmentId":
            suggest = "attachment_id"
        elif key == "attachmentName":
            suggest = "attachment_name"
        elif key == "defendCidrLists":
            suggest = "defend_cidr_lists"
        elif key == "eniLists":
            suggest = "eni_lists"
        elif key == "manualVswitchId":
            suggest = "manual_vswitch_id"
        elif key == "networkInstanceName":
            suggest = "network_instance_name"
        elif key == "networkInstanceType":
            suggest = "network_instance_type"
        elif key == "ownerId":
            suggest = "owner_id"
        elif key == "regionNo":
            suggest = "region_no"
        elif key == "routeMode":
            suggest = "route_mode"
        elif key == "supportManualMode":
            suggest = "support_manual_mode"
        elif key == "transitRouterId":
            suggest = "transit_router_id"
        elif key == "transitRouterType":
            suggest = "transit_router_type"
        elif key == "vpcCidrTableLists":
            suggest = "vpc_cidr_table_lists"
        elif key == "vpcId":
            suggest = "vpc_id"
        elif key == "vpcName":
            suggest = "vpc_name"

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

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

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

    def __init__(__self__, *,
                 network_instance_id: str,
                 attachment_id: Optional[str] = None,
                 attachment_name: Optional[str] = None,
                 defend_cidr_lists: Optional[Sequence[str]] = None,
                 eni_lists: Optional[Sequence['outputs.FirewallVpcFirewallCenLocalVpcEniList']] = None,
                 manual_vswitch_id: Optional[str] = None,
                 network_instance_name: Optional[str] = None,
                 network_instance_type: Optional[str] = None,
                 owner_id: Optional[str] = None,
                 region_no: Optional[str] = None,
                 route_mode: Optional[str] = None,
                 support_manual_mode: Optional[str] = None,
                 transit_router_id: Optional[str] = None,
                 transit_router_type: Optional[str] = None,
                 vpc_cidr_table_lists: Optional[Sequence['outputs.FirewallVpcFirewallCenLocalVpcVpcCidrTableList']] = None,
                 vpc_id: Optional[str] = None,
                 vpc_name: Optional[str] = None):
        """
        :param str network_instance_id: The ID of the VPC instance that created the VPC firewall.
        :param str attachment_id: The connection ID of the network instance.
        :param str attachment_name: The connection name of the network instance.
        :param Sequence[str] defend_cidr_lists: The list of network segments protected by the VPC firewall.
        :param Sequence['FirewallVpcFirewallCenLocalVpcEniListArgs'] eni_lists: List of elastic network cards.
        :param str network_instance_name: The name of the network instance.
        :param str network_instance_type: The type of the network instance. Value: **VPC * *.
        :param str owner_id: The UID of the Alibaba Cloud account to which the VPC belongs.
        :param str region_no: The region ID of the VPC.
        :param str route_mode: Routing mode,. Value:-auto: indicates automatic mode.-manual: indicates manual mode.
        :param str support_manual_mode: Whether routing mode supports manual mode. Value:-**1**: Supported.-**0**: Not supported.
        :param str transit_router_id: The ID of the CEN-TR instance.
        :param str transit_router_type: The version of the cloud enterprise network forwarding router (CEN-TR). Value:-**Basic**: Basic Edition.-**Enterprise**: Enterprise Edition.
        :param Sequence['FirewallVpcFirewallCenLocalVpcVpcCidrTableListArgs'] vpc_cidr_table_lists: The VPC network segment list.
        :param str vpc_id: The ID of the VPC instance.
        :param 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) -> str:
        """
        The ID of the VPC instance that created the VPC firewall.
        """
        return pulumi.get(self, "network_instance_id")

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

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

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

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

    @property
    @pulumi.getter(name="manualVswitchId")
    def manual_vswitch_id(self) -> Optional[str]:
        return pulumi.get(self, "manual_vswitch_id")

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="transitRouterType")
    def transit_router_type(self) -> Optional[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")

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

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

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


@pulumi.output_type
class FirewallVpcFirewallCenLocalVpcEniList(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "eniId":
            suggest = "eni_id"
        elif key == "eniPrivateIpAddress":
            suggest = "eni_private_ip_address"

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

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

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

    def __init__(__self__, *,
                 eni_id: Optional[str] = None,
                 eni_private_ip_address: Optional[str] = None):
        """
        :param str eni_id: The ID of the instance of the ENI in the VPC.
        :param 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[str]:
        """
        The ID of the instance of the ENI in the VPC.
        """
        return pulumi.get(self, "eni_id")

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


@pulumi.output_type
class FirewallVpcFirewallCenLocalVpcVpcCidrTableList(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "routeEntryLists":
            suggest = "route_entry_lists"
        elif key == "routeTableId":
            suggest = "route_table_id"

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

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

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

    def __init__(__self__, *,
                 route_entry_lists: Optional[Sequence['outputs.FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryList']] = None,
                 route_table_id: Optional[str] = None):
        """
        :param Sequence['FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryListArgs'] route_entry_lists: The list of route entries in the VPC.
        :param 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[Sequence['outputs.FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryList']]:
        """
        The list of route entries in the VPC.
        """
        return pulumi.get(self, "route_entry_lists")

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


@pulumi.output_type
class FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryList(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "destinationCidr":
            suggest = "destination_cidr"
        elif key == "nextHopInstanceId":
            suggest = "next_hop_instance_id"

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

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

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

    def __init__(__self__, *,
                 destination_cidr: Optional[str] = None,
                 next_hop_instance_id: Optional[str] = None):
        """
        :param str destination_cidr: The target network segment of the VPC.
        :param 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[str]:
        """
        The target network segment of the VPC.
        """
        return pulumi.get(self, "destination_cidr")

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


@pulumi.output_type
class FirewallVpcFirewallLocalVpc(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "localVpcCidrTableLists":
            suggest = "local_vpc_cidr_table_lists"
        elif key == "regionNo":
            suggest = "region_no"
        elif key == "vpcId":
            suggest = "vpc_id"
        elif key == "eniId":
            suggest = "eni_id"
        elif key == "eniPrivateIpAddress":
            suggest = "eni_private_ip_address"
        elif key == "routerInterfaceId":
            suggest = "router_interface_id"
        elif key == "vpcName":
            suggest = "vpc_name"

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

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

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

    def __init__(__self__, *,
                 local_vpc_cidr_table_lists: Sequence['outputs.FirewallVpcFirewallLocalVpcLocalVpcCidrTableList'],
                 region_no: str,
                 vpc_id: str,
                 eni_id: Optional[str] = None,
                 eni_private_ip_address: Optional[str] = None,
                 router_interface_id: Optional[str] = None,
                 vpc_name: Optional[str] = None):
        """
        :param Sequence['FirewallVpcFirewallLocalVpcLocalVpcCidrTableListArgs'] local_vpc_cidr_table_lists: The network segment list of the local VPC.See the following `Block LocalVpcCidrTableList`.
        :param str region_no: The region ID of the local VPC.
        :param str vpc_id: The ID of the local VPC instance.
        :param str eni_id: The ID of the instance of the Eni in the local VPC.
        :param str eni_private_ip_address: The private IP address of the elastic network card in the local VPC.
        :param str router_interface_id: The ID of the router interface in the local VPC.
        :param str vpc_name: The instance name of the local 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) -> Sequence['outputs.FirewallVpcFirewallLocalVpcLocalVpcCidrTableList']:
        """
        The network segment list of the local VPC.See the following `Block LocalVpcCidrTableList`.
        """
        return pulumi.get(self, "local_vpc_cidr_table_lists")

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

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

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

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

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

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


@pulumi.output_type
class FirewallVpcFirewallLocalVpcLocalVpcCidrTableList(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "localRouteEntryLists":
            suggest = "local_route_entry_lists"
        elif key == "localRouteTableId":
            suggest = "local_route_table_id"

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

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

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

    def __init__(__self__, *,
                 local_route_entry_lists: Sequence['outputs.FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryList'],
                 local_route_table_id: str):
        """
        :param Sequence['FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListArgs'] local_route_entry_lists: The list of route entries of the local VPC.See the following `Block LocalRouteEntryList`.
        :param 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) -> Sequence['outputs.FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryList']:
        """
        The list of route entries of the local VPC.See the following `Block LocalRouteEntryList`.
        """
        return pulumi.get(self, "local_route_entry_lists")

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


@pulumi.output_type
class FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryList(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "localDestinationCidr":
            suggest = "local_destination_cidr"
        elif key == "localNextHopInstanceId":
            suggest = "local_next_hop_instance_id"

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

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

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

    def __init__(__self__, *,
                 local_destination_cidr: str,
                 local_next_hop_instance_id: str):
        """
        :param str local_destination_cidr: The target network segment of the local VPC.
        :param 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) -> str:
        """
        The target network segment of the local VPC.
        """
        return pulumi.get(self, "local_destination_cidr")

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


@pulumi.output_type
class FirewallVpcFirewallPeerVpc(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "peerVpcCidrTableLists":
            suggest = "peer_vpc_cidr_table_lists"
        elif key == "regionNo":
            suggest = "region_no"
        elif key == "vpcId":
            suggest = "vpc_id"
        elif key == "eniId":
            suggest = "eni_id"
        elif key == "eniPrivateIpAddress":
            suggest = "eni_private_ip_address"
        elif key == "routerInterfaceId":
            suggest = "router_interface_id"
        elif key == "vpcName":
            suggest = "vpc_name"

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

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

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

    def __init__(__self__, *,
                 peer_vpc_cidr_table_lists: Sequence['outputs.FirewallVpcFirewallPeerVpcPeerVpcCidrTableList'],
                 region_no: str,
                 vpc_id: str,
                 eni_id: Optional[str] = None,
                 eni_private_ip_address: Optional[str] = None,
                 router_interface_id: Optional[str] = None,
                 vpc_name: Optional[str] = None):
        """
        :param Sequence['FirewallVpcFirewallPeerVpcPeerVpcCidrTableListArgs'] peer_vpc_cidr_table_lists: The network segment list of the peer VPC.See the following `Block PeerVpcCidrTableList`.
        :param str region_no: The region ID of the local VPC.
        :param str vpc_id: The ID of the local VPC instance.
        :param str eni_id: The ID of the instance of the Eni in the local VPC.
        :param str eni_private_ip_address: The private IP address of the elastic network card in the local VPC.
        :param str router_interface_id: The ID of the router interface in the local VPC.
        :param str vpc_name: The instance name of the local 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) -> Sequence['outputs.FirewallVpcFirewallPeerVpcPeerVpcCidrTableList']:
        """
        The network segment list of the peer VPC.See the following `Block PeerVpcCidrTableList`.
        """
        return pulumi.get(self, "peer_vpc_cidr_table_lists")

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

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

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

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

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

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


@pulumi.output_type
class FirewallVpcFirewallPeerVpcPeerVpcCidrTableList(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "peerRouteEntryLists":
            suggest = "peer_route_entry_lists"
        elif key == "peerRouteTableId":
            suggest = "peer_route_table_id"

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

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

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

    def __init__(__self__, *,
                 peer_route_entry_lists: Sequence['outputs.FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryList'],
                 peer_route_table_id: str):
        """
        :param Sequence['FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListArgs'] peer_route_entry_lists: Peer VPC route entry list information.See the following `Block PeerRouteEntryList`.
        :param 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) -> Sequence['outputs.FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryList']:
        """
        Peer VPC route entry list information.See the following `Block PeerRouteEntryList`.
        """
        return pulumi.get(self, "peer_route_entry_lists")

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


@pulumi.output_type
class FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryList(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "peerDestinationCidr":
            suggest = "peer_destination_cidr"
        elif key == "peerNextHopInstanceId":
            suggest = "peer_next_hop_instance_id"

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

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

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

    def __init__(__self__, *,
                 peer_destination_cidr: str,
                 peer_next_hop_instance_id: str):
        """
        :param str peer_destination_cidr: The target network segment of the peer VPC.
        :param 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) -> str:
        """
        The target network segment of the peer VPC.
        """
        return pulumi.get(self, "peer_destination_cidr")

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


@pulumi.output_type
class GetAddressBooksBookResult(dict):
    def __init__(__self__, *,
                 address_lists: Sequence[str],
                 auto_add_tag_ecs: int,
                 description: str,
                 group_name: str,
                 group_type: str,
                 group_uuid: str,
                 id: str,
                 tag_relation: str,
                 ecs_tags: Optional[Sequence['outputs.GetAddressBooksBookEcsTagResult']] = None):
        """
        :param Sequence[str] address_lists: The addresses in the Address Book.
        :param int auto_add_tag_ecs: Whether you want to automatically add new matching tags of the ECS IP address to the Address Book.
        :param str description: The description of the Address Book.
        :param str group_name: The name of the Address Book.
        :param str group_type: The type of the Address Book.
        :param str group_uuid: The ID of the Address Book.
        :param str id: The ID of the Address Book.
        :param str tag_relation: One or more tags for the relationship between.
        :param Sequence['GetAddressBooksBookEcsTagArgs'] ecs_tags: The logical relation among the ECS tags that to be matchedh.
        """
        pulumi.set(__self__, "address_lists", address_lists)
        pulumi.set(__self__, "auto_add_tag_ecs", auto_add_tag_ecs)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "group_name", group_name)
        pulumi.set(__self__, "group_type", group_type)
        pulumi.set(__self__, "group_uuid", group_uuid)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "tag_relation", tag_relation)
        if ecs_tags is not None:
            pulumi.set(__self__, "ecs_tags", ecs_tags)

    @property
    @pulumi.getter(name="addressLists")
    def address_lists(self) -> Sequence[str]:
        """
        The addresses in the Address Book.
        """
        return pulumi.get(self, "address_lists")

    @property
    @pulumi.getter(name="autoAddTagEcs")
    def auto_add_tag_ecs(self) -> int:
        """
        Whether you want to automatically add new matching tags of the ECS IP address to the Address Book.
        """
        return pulumi.get(self, "auto_add_tag_ecs")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        The description of the Address Book.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="groupName")
    def group_name(self) -> str:
        """
        The name of the Address Book.
        """
        return pulumi.get(self, "group_name")

    @property
    @pulumi.getter(name="groupType")
    def group_type(self) -> str:
        """
        The type of the Address Book.
        """
        return pulumi.get(self, "group_type")

    @property
    @pulumi.getter(name="groupUuid")
    def group_uuid(self) -> str:
        """
        The ID of the Address Book.
        """
        return pulumi.get(self, "group_uuid")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Address Book.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="tagRelation")
    def tag_relation(self) -> str:
        """
        One or more tags for the relationship between.
        """
        return pulumi.get(self, "tag_relation")

    @property
    @pulumi.getter(name="ecsTags")
    def ecs_tags(self) -> Optional[Sequence['outputs.GetAddressBooksBookEcsTagResult']]:
        """
        The logical relation among the ECS tags that to be matchedh.
        """
        return pulumi.get(self, "ecs_tags")


@pulumi.output_type
class GetAddressBooksBookEcsTagResult(dict):
    def __init__(__self__, *,
                 tag_key: Optional[str] = None,
                 tag_value: Optional[str] = None):
        """
        :param str tag_key: The key of ECS tag that to be matched.
        :param 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[str]:
        """
        The key of ECS tag that to be matched.
        """
        return pulumi.get(self, "tag_key")

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


@pulumi.output_type
class GetControlPoliciesPolicyResult(dict):
    def __init__(__self__, *,
                 acl_action: str,
                 acl_uuid: str,
                 application_id: str,
                 application_name: str,
                 description: str,
                 dest_port: str,
                 dest_port_group: str,
                 dest_port_group_ports: Sequence[str],
                 dest_port_type: str,
                 destination: str,
                 destination_group_cidrs: Sequence[str],
                 destination_group_type: str,
                 destination_type: str,
                 direction: str,
                 dns_result: str,
                 dns_result_time: str,
                 hit_times: str,
                 id: str,
                 order: int,
                 proto: str,
                 release: bool,
                 source: str,
                 source_group_cidrs: Sequence[str],
                 source_group_type: str,
                 source_type: str):
        """
        :param str acl_action: The action that Cloud Firewall performs on the traffic. Valid values: `accept`, `drop`, `log`.
        :param str acl_uuid: The unique ID of the access control policy.
        :param str application_name: The application type that the access control policy supports.If `direction` is `in`, the valid value is `ANY`. If `direction` is `out`, `ANY`, `HTTP`, `HTTPS`, `MQTT`, `Memcache`, `MongoDB`, `MySQL`, `RDP`, `Redis`, `SMTP`, `SMTPS`, `SSH`, `SSL`, `VNC`.
        :param str description: The description of the access control policy.
        :param str dest_port: The destination port defined in the access control policy.
        :param str dest_port_group: The destination port address book defined in the access control policy.
        :param str dest_port_type: The destination port type defined in the access control policy. Valid values: `group`, `port`.
        :param str destination: The destination address defined in the access control policy.
        :param str destination_type: The destination address type defined in the access control policy.Valid values: If `direction` is `in`, the valid values are `net`, `group`. If `direction` is `out`, the valid values are `net`, `group`, `domain`, `location`.
        :param str direction: The direction of traffic to which the access control policy applies. Valid values: `in`, `out`.
        :param str id: The ID of the Control Policy.
        :param str proto: The protocol type of traffic to which the access control policy applies. Valid values: If `direction` is `in`, the valid value is `ANY`. If `direction` is `out`, the valid values are `ANY`, `TCP`, `UDP`, `ICMP`.
        :param bool release: Specifies whether the access control policy is enabled. By default, an access control policy is enabled after it is created. Valid values: `true`, `false`.
        :param str source: The source address defined in the access control policy.
        :param str source_type: The type of the source address book defined in the access control policy. Valid values: If `direction` is to `in`, the valid values are `net`, `group`, `location`. If `direction` is `out`, the valid values are `net`, `group`.
        """
        pulumi.set(__self__, "acl_action", acl_action)
        pulumi.set(__self__, "acl_uuid", acl_uuid)
        pulumi.set(__self__, "application_id", application_id)
        pulumi.set(__self__, "application_name", application_name)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "dest_port", dest_port)
        pulumi.set(__self__, "dest_port_group", dest_port_group)
        pulumi.set(__self__, "dest_port_group_ports", dest_port_group_ports)
        pulumi.set(__self__, "dest_port_type", dest_port_type)
        pulumi.set(__self__, "destination", destination)
        pulumi.set(__self__, "destination_group_cidrs", destination_group_cidrs)
        pulumi.set(__self__, "destination_group_type", destination_group_type)
        pulumi.set(__self__, "destination_type", destination_type)
        pulumi.set(__self__, "direction", direction)
        pulumi.set(__self__, "dns_result", dns_result)
        pulumi.set(__self__, "dns_result_time", dns_result_time)
        pulumi.set(__self__, "hit_times", hit_times)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "order", order)
        pulumi.set(__self__, "proto", proto)
        pulumi.set(__self__, "release", release)
        pulumi.set(__self__, "source", source)
        pulumi.set(__self__, "source_group_cidrs", source_group_cidrs)
        pulumi.set(__self__, "source_group_type", source_group_type)
        pulumi.set(__self__, "source_type", source_type)

    @property
    @pulumi.getter(name="aclAction")
    def acl_action(self) -> str:
        """
        The action that Cloud Firewall performs on the traffic. Valid values: `accept`, `drop`, `log`.
        """
        return pulumi.get(self, "acl_action")

    @property
    @pulumi.getter(name="aclUuid")
    def acl_uuid(self) -> str:
        """
        The unique ID of the access control policy.
        """
        return pulumi.get(self, "acl_uuid")

    @property
    @pulumi.getter(name="applicationId")
    def application_id(self) -> str:
        return pulumi.get(self, "application_id")

    @property
    @pulumi.getter(name="applicationName")
    def application_name(self) -> str:
        """
        The application type that the access control policy supports.If `direction` is `in`, the valid value is `ANY`. If `direction` is `out`, `ANY`, `HTTP`, `HTTPS`, `MQTT`, `Memcache`, `MongoDB`, `MySQL`, `RDP`, `Redis`, `SMTP`, `SMTPS`, `SSH`, `SSL`, `VNC`.
        """
        return pulumi.get(self, "application_name")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        The description of the access control policy.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="destPort")
    def dest_port(self) -> str:
        """
        The destination port defined in the access control policy.
        """
        return pulumi.get(self, "dest_port")

    @property
    @pulumi.getter(name="destPortGroup")
    def dest_port_group(self) -> str:
        """
        The destination port address book defined in the access control policy.
        """
        return pulumi.get(self, "dest_port_group")

    @property
    @pulumi.getter(name="destPortGroupPorts")
    def dest_port_group_ports(self) -> Sequence[str]:
        return pulumi.get(self, "dest_port_group_ports")

    @property
    @pulumi.getter(name="destPortType")
    def dest_port_type(self) -> str:
        """
        The destination port type defined in the access control policy. Valid values: `group`, `port`.
        """
        return pulumi.get(self, "dest_port_type")

    @property
    @pulumi.getter
    def destination(self) -> str:
        """
        The destination address defined in the access control policy.
        """
        return pulumi.get(self, "destination")

    @property
    @pulumi.getter(name="destinationGroupCidrs")
    def destination_group_cidrs(self) -> Sequence[str]:
        return pulumi.get(self, "destination_group_cidrs")

    @property
    @pulumi.getter(name="destinationGroupType")
    def destination_group_type(self) -> str:
        return pulumi.get(self, "destination_group_type")

    @property
    @pulumi.getter(name="destinationType")
    def destination_type(self) -> str:
        """
        The destination address type defined in the access control policy.Valid values: If `direction` is `in`, the valid values are `net`, `group`. If `direction` is `out`, the valid values are `net`, `group`, `domain`, `location`.
        """
        return pulumi.get(self, "destination_type")

    @property
    @pulumi.getter
    def direction(self) -> str:
        """
        The direction of traffic to which the access control policy applies. Valid values: `in`, `out`.
        """
        return pulumi.get(self, "direction")

    @property
    @pulumi.getter(name="dnsResult")
    def dns_result(self) -> str:
        return pulumi.get(self, "dns_result")

    @property
    @pulumi.getter(name="dnsResultTime")
    def dns_result_time(self) -> str:
        return pulumi.get(self, "dns_result_time")

    @property
    @pulumi.getter(name="hitTimes")
    def hit_times(self) -> str:
        return pulumi.get(self, "hit_times")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Control Policy.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def order(self) -> int:
        return pulumi.get(self, "order")

    @property
    @pulumi.getter
    def proto(self) -> str:
        """
        The protocol type of traffic to which the access control policy applies. Valid values: If `direction` is `in`, the valid value is `ANY`. If `direction` is `out`, the valid values are `ANY`, `TCP`, `UDP`, `ICMP`.
        """
        return pulumi.get(self, "proto")

    @property
    @pulumi.getter
    def release(self) -> bool:
        """
        Specifies whether the access control policy is enabled. By default, an access control policy is enabled after it is created. Valid values: `true`, `false`.
        """
        return pulumi.get(self, "release")

    @property
    @pulumi.getter
    def source(self) -> str:
        """
        The source address defined in the access control policy.
        """
        return pulumi.get(self, "source")

    @property
    @pulumi.getter(name="sourceGroupCidrs")
    def source_group_cidrs(self) -> Sequence[str]:
        return pulumi.get(self, "source_group_cidrs")

    @property
    @pulumi.getter(name="sourceGroupType")
    def source_group_type(self) -> str:
        return pulumi.get(self, "source_group_type")

    @property
    @pulumi.getter(name="sourceType")
    def source_type(self) -> str:
        """
        The type of the source address book defined in the access control policy. Valid values: If `direction` is to `in`, the valid values are `net`, `group`, `location`. If `direction` is `out`, the valid values are `net`, `group`.
        """
        return pulumi.get(self, "source_type")


@pulumi.output_type
class GetInstanceMembersMemberResult(dict):
    def __init__(__self__, *,
                 create_time: int,
                 id: str,
                 member_desc: str,
                 member_display_name: str,
                 member_uid: str,
                 modify_time: int,
                 status: str):
        """
        :param int create_time: When the cloud firewall member account was added.> use second-level timestamp format.
        :param str member_desc: Remarks of cloud firewall member accounts.
        :param str member_display_name: The name of the cloud firewall member account.
        :param str member_uid: The UID of the cloud firewall member account.
        :param int modify_time: The last modification time of the cloud firewall member account.> use second-level timestamp format.
        :param str status: The resource attribute field that represents the resource status.
        """
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "member_desc", member_desc)
        pulumi.set(__self__, "member_display_name", member_display_name)
        pulumi.set(__self__, "member_uid", member_uid)
        pulumi.set(__self__, "modify_time", modify_time)
        pulumi.set(__self__, "status", status)

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> int:
        """
        When the cloud firewall member account was added.> use second-level timestamp format.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="memberDesc")
    def member_desc(self) -> str:
        """
        Remarks of cloud firewall member accounts.
        """
        return pulumi.get(self, "member_desc")

    @property
    @pulumi.getter(name="memberDisplayName")
    def member_display_name(self) -> str:
        """
        The name of the cloud firewall member account.
        """
        return pulumi.get(self, "member_display_name")

    @property
    @pulumi.getter(name="memberUid")
    def member_uid(self) -> str:
        """
        The UID of the cloud firewall member account.
        """
        return pulumi.get(self, "member_uid")

    @property
    @pulumi.getter(name="modifyTime")
    def modify_time(self) -> int:
        """
        The last modification time of the cloud firewall member account.> use second-level timestamp format.
        """
        return pulumi.get(self, "modify_time")

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        The resource attribute field that represents the resource status.
        """
        return pulumi.get(self, "status")


@pulumi.output_type
class GetInstancesInstanceResult(dict):
    def __init__(__self__, *,
                 create_time: str,
                 end_time: str,
                 id: str,
                 instance_id: str,
                 payment_type: str,
                 renewal_duration_unit: str,
                 renewal_status: str,
                 status: str):
        """
        :param str create_time: The Creation time of the resource.
        :param str end_time: The end time of the resource..
        :param str id: The ID of the Instance.
        :param str instance_id: The first ID of the resource.
        :param str payment_type: The payment type of the resource. Valid values: `Subscription`.
        :param str renewal_duration_unit: Automatic renewal period unit. Valid values: `Month`,`Year`.
        :param str renewal_status: Automatic renewal status. Valid values: `AutoRenewal`,`ManualRenewal`. Default Value: `ManualRenewal`.
        :param str status: The Status of Instance.
        """
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "end_time", end_time)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "instance_id", instance_id)
        pulumi.set(__self__, "payment_type", payment_type)
        pulumi.set(__self__, "renewal_duration_unit", renewal_duration_unit)
        pulumi.set(__self__, "renewal_status", renewal_status)
        pulumi.set(__self__, "status", status)

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> str:
        """
        The Creation time of the resource.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter(name="endTime")
    def end_time(self) -> str:
        """
        The end time of the resource..
        """
        return pulumi.get(self, "end_time")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Instance.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="instanceId")
    def instance_id(self) -> str:
        """
        The first ID of the resource.
        """
        return pulumi.get(self, "instance_id")

    @property
    @pulumi.getter(name="paymentType")
    def payment_type(self) -> str:
        """
        The payment type of the resource. Valid values: `Subscription`.
        """
        return pulumi.get(self, "payment_type")

    @property
    @pulumi.getter(name="renewalDurationUnit")
    def renewal_duration_unit(self) -> str:
        """
        Automatic renewal period unit. Valid values: `Month`,`Year`.
        """
        return pulumi.get(self, "renewal_duration_unit")

    @property
    @pulumi.getter(name="renewalStatus")
    def renewal_status(self) -> str:
        """
        Automatic renewal status. Valid values: `AutoRenewal`,`ManualRenewal`. Default Value: `ManualRenewal`.
        """
        return pulumi.get(self, "renewal_status")

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        The Status of Instance.
        """
        return pulumi.get(self, "status")


@pulumi.output_type
class GetVpcFirewallCensCenResult(dict):
    def __init__(__self__, *,
                 cen_id: str,
                 connect_type: str,
                 id: str,
                 local_vpcs: Sequence['outputs.GetVpcFirewallCensCenLocalVpcResult'],
                 network_instance_id: str,
                 status: str,
                 vpc_firewall_id: str,
                 vpc_firewall_name: str):
        """
        :param str cen_id: The ID of the CEN instance.
        :param str connect_type: Intercommunication type, value: `expressconnect`: Express Channel `cen`: Cloud Enterprise Network
        :param str id: The ID of the CEN instance.
        :param Sequence['GetVpcFirewallCensCenLocalVpcArgs'] local_vpcs: The details of the VPC.
        :param str network_instance_id: The ID of the VPC instance that created the VPC firewall.
        :param str status: Firewall switch status
        :param str vpc_firewall_id: VPC firewall ID
        :param str vpc_firewall_name: The name of the VPC firewall instance.
        """
        pulumi.set(__self__, "cen_id", cen_id)
        pulumi.set(__self__, "connect_type", connect_type)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "local_vpcs", local_vpcs)
        pulumi.set(__self__, "network_instance_id", network_instance_id)
        pulumi.set(__self__, "status", status)
        pulumi.set(__self__, "vpc_firewall_id", vpc_firewall_id)
        pulumi.set(__self__, "vpc_firewall_name", vpc_firewall_name)

    @property
    @pulumi.getter(name="cenId")
    def cen_id(self) -> str:
        """
        The ID of the CEN instance.
        """
        return pulumi.get(self, "cen_id")

    @property
    @pulumi.getter(name="connectType")
    def connect_type(self) -> str:
        """
        Intercommunication type, value: `expressconnect`: Express Channel `cen`: Cloud Enterprise Network
        """
        return pulumi.get(self, "connect_type")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the CEN instance.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="localVpcs")
    def local_vpcs(self) -> Sequence['outputs.GetVpcFirewallCensCenLocalVpcResult']:
        """
        The details of the VPC.
        """
        return pulumi.get(self, "local_vpcs")

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

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        Firewall switch status
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter(name="vpcFirewallId")
    def vpc_firewall_id(self) -> str:
        """
        VPC firewall ID
        """
        return pulumi.get(self, "vpc_firewall_id")

    @property
    @pulumi.getter(name="vpcFirewallName")
    def vpc_firewall_name(self) -> str:
        """
        The name of the VPC firewall instance.
        """
        return pulumi.get(self, "vpc_firewall_name")


@pulumi.output_type
class GetVpcFirewallCensCenLocalVpcResult(dict):
    def __init__(__self__, *,
                 attachment_id: str,
                 attachment_name: str,
                 defend_cidr_lists: Sequence[str],
                 eni_lists: Sequence['outputs.GetVpcFirewallCensCenLocalVpcEniListResult'],
                 manual_vswitch_id: str,
                 network_instance_id: str,
                 network_instance_name: str,
                 network_instance_type: str,
                 owner_id: str,
                 region_no: str,
                 route_mode: str,
                 support_manual_mode: str,
                 transit_router_id: str,
                 transit_router_type: str,
                 vpc_cidr_table_lists: Sequence['outputs.GetVpcFirewallCensCenLocalVpcVpcCidrTableListResult'],
                 vpc_id: str,
                 vpc_name: str):
        """
        :param Sequence[str] defend_cidr_lists: The list of network segments protected by the VPC firewall.
        :param str network_instance_id: The ID of the VPC instance that created the VPC firewall.
        :param str network_instance_name: The name of the network instance.
        :param str network_instance_type: The type of the network instance. Value: **VPC * *.
        :param str owner_id: The UID of the Alibaba Cloud account to which the VPC belongs.
        :param str region_no: The region ID of the VPC.
        :param str route_mode: Routing mode,. Value:-auto: indicates automatic mode.-manual: indicates manual mode.
        :param str support_manual_mode: Whether routing mode supports manual mode. Value:-**1**: Supported.-**0**: Not supported.
        :param str transit_router_type: The version of the cloud enterprise network forwarding router (CEN-TR). Value:-**Basic**: Basic Edition.-**Enterprise**: Enterprise Edition.
        :param Sequence['GetVpcFirewallCensCenLocalVpcVpcCidrTableListArgs'] vpc_cidr_table_lists: The VPC network segment list.
        :param str vpc_id: The ID of the VPC instance.
        :param str vpc_name: The instance name of the VPC.
        """
        pulumi.set(__self__, "attachment_id", attachment_id)
        pulumi.set(__self__, "attachment_name", attachment_name)
        pulumi.set(__self__, "defend_cidr_lists", defend_cidr_lists)
        pulumi.set(__self__, "eni_lists", eni_lists)
        pulumi.set(__self__, "manual_vswitch_id", manual_vswitch_id)
        pulumi.set(__self__, "network_instance_id", network_instance_id)
        pulumi.set(__self__, "network_instance_name", network_instance_name)
        pulumi.set(__self__, "network_instance_type", network_instance_type)
        pulumi.set(__self__, "owner_id", owner_id)
        pulumi.set(__self__, "region_no", region_no)
        pulumi.set(__self__, "route_mode", route_mode)
        pulumi.set(__self__, "support_manual_mode", support_manual_mode)
        pulumi.set(__self__, "transit_router_id", transit_router_id)
        pulumi.set(__self__, "transit_router_type", transit_router_type)
        pulumi.set(__self__, "vpc_cidr_table_lists", vpc_cidr_table_lists)
        pulumi.set(__self__, "vpc_id", vpc_id)
        pulumi.set(__self__, "vpc_name", vpc_name)

    @property
    @pulumi.getter(name="attachmentId")
    def attachment_id(self) -> str:
        return pulumi.get(self, "attachment_id")

    @property
    @pulumi.getter(name="attachmentName")
    def attachment_name(self) -> str:
        return pulumi.get(self, "attachment_name")

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

    @property
    @pulumi.getter(name="eniLists")
    def eni_lists(self) -> Sequence['outputs.GetVpcFirewallCensCenLocalVpcEniListResult']:
        return pulumi.get(self, "eni_lists")

    @property
    @pulumi.getter(name="manualVswitchId")
    def manual_vswitch_id(self) -> str:
        return pulumi.get(self, "manual_vswitch_id")

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="transitRouterId")
    def transit_router_id(self) -> str:
        return pulumi.get(self, "transit_router_id")

    @property
    @pulumi.getter(name="transitRouterType")
    def transit_router_type(self) -> 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")

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

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

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


@pulumi.output_type
class GetVpcFirewallCensCenLocalVpcEniListResult(dict):
    def __init__(__self__, *,
                 eni_id: str,
                 eni_private_ip_address: str):
        pulumi.set(__self__, "eni_id", eni_id)
        pulumi.set(__self__, "eni_private_ip_address", eni_private_ip_address)

    @property
    @pulumi.getter(name="eniId")
    def eni_id(self) -> str:
        return pulumi.get(self, "eni_id")

    @property
    @pulumi.getter(name="eniPrivateIpAddress")
    def eni_private_ip_address(self) -> str:
        return pulumi.get(self, "eni_private_ip_address")


@pulumi.output_type
class GetVpcFirewallCensCenLocalVpcVpcCidrTableListResult(dict):
    def __init__(__self__, *,
                 route_entry_lists: Sequence['outputs.GetVpcFirewallCensCenLocalVpcVpcCidrTableListRouteEntryListResult'],
                 route_table_id: str):
        """
        :param Sequence['GetVpcFirewallCensCenLocalVpcVpcCidrTableListRouteEntryListArgs'] route_entry_lists: The list of route entries in the VPC.
        :param str route_table_id: The ID of the route table of the VPC.
        """
        pulumi.set(__self__, "route_entry_lists", route_entry_lists)
        pulumi.set(__self__, "route_table_id", route_table_id)

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

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


@pulumi.output_type
class GetVpcFirewallCensCenLocalVpcVpcCidrTableListRouteEntryListResult(dict):
    def __init__(__self__, *,
                 destination_cidr: str,
                 next_hop_instance_id: str):
        """
        :param str destination_cidr: The target network segment of the VPC.
        :param str next_hop_instance_id: The ID of the next hop instance in the VPC.
        """
        pulumi.set(__self__, "destination_cidr", destination_cidr)
        pulumi.set(__self__, "next_hop_instance_id", next_hop_instance_id)

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

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


@pulumi.output_type
class GetVpcFirewallControlPoliciesPolicyResult(dict):
    def __init__(__self__, *,
                 acl_action: str,
                 acl_uuid: str,
                 application_id: str,
                 application_name: str,
                 description: str,
                 dest_port: str,
                 dest_port_group: str,
                 dest_port_group_ports: Sequence[str],
                 dest_port_type: str,
                 destination: str,
                 destination_group_cidrs: Sequence[str],
                 destination_group_type: str,
                 destination_type: str,
                 hit_times: int,
                 id: str,
                 member_uid: str,
                 order: int,
                 proto: str,
                 release: bool,
                 source: str,
                 source_group_cidrs: Sequence[str],
                 source_group_type: str,
                 source_type: str,
                 vpc_firewall_id: str):
        """
        :param str acl_action: Access control over VPC firewalls are set in the access traffic via Alibaba cloud firewall way (ACT).
        :param str acl_uuid: Access control over VPC firewalls strategy unique identifier.
        :param str application_id: Policy specifies the application ID.
        :param str application_name: Access control over VPC firewalls policies support the application types.
        :param str description: Access control over VPC firewalls description of the strategy information.
        :param str dest_port: Access control over VPC firewalls strategy access traffic of the destination port.
        :param str dest_port_group: Access control policy in the access traffic of the destination port address book name.
        :param Sequence[str] dest_port_group_ports: Port Address Book port list.
        :param str dest_port_type: Access control over VPC firewalls strategy access traffic of the destination port type.
        :param str destination: Access control over VPC firewalls strategy the destination address in.
        :param Sequence[str] destination_group_cidrs: Destination address book defined in the address list.
        :param str destination_group_type: The destination address book type in the access control policy. Value: `ip`, `domain`.
        :param str destination_type: Access control over VPC firewalls strategy in the destination address of the type.
        :param int hit_times: Control strategy of hits per second.
        :param str id: The ID of the Cloud Firewall Vpc Firewall Control Policy.
        :param str member_uid: The UID of the member account of the current Alibaba cloud account.
        :param int order: Access control over VPC firewalls policies will go into effect of priority. The priority value starts from 1, the smaller the priority number, the higher the priority. -1 represents the lowest priority.
        :param str proto: Access control over VPC firewalls strategy access traffic of the protocol type.
        :param bool release: The enabled status of the access control policy. The policy is enabled by default after it is created. Value:
        :param str source: Access control over VPC firewalls strategy in the source address.
        :param Sequence[str] source_group_cidrs: SOURCE address of the address list.
        :param str source_group_type: The source address type in the access control policy. Unique value: **ip**. The IP address book contains one or more IP address segments.
        :param str source_type: Access control over VPC firewalls policy source address type.
        :param str vpc_firewall_id: The ID of the VPC firewall instance.
        """
        pulumi.set(__self__, "acl_action", acl_action)
        pulumi.set(__self__, "acl_uuid", acl_uuid)
        pulumi.set(__self__, "application_id", application_id)
        pulumi.set(__self__, "application_name", application_name)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "dest_port", dest_port)
        pulumi.set(__self__, "dest_port_group", dest_port_group)
        pulumi.set(__self__, "dest_port_group_ports", dest_port_group_ports)
        pulumi.set(__self__, "dest_port_type", dest_port_type)
        pulumi.set(__self__, "destination", destination)
        pulumi.set(__self__, "destination_group_cidrs", destination_group_cidrs)
        pulumi.set(__self__, "destination_group_type", destination_group_type)
        pulumi.set(__self__, "destination_type", destination_type)
        pulumi.set(__self__, "hit_times", hit_times)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "member_uid", member_uid)
        pulumi.set(__self__, "order", order)
        pulumi.set(__self__, "proto", proto)
        pulumi.set(__self__, "release", release)
        pulumi.set(__self__, "source", source)
        pulumi.set(__self__, "source_group_cidrs", source_group_cidrs)
        pulumi.set(__self__, "source_group_type", source_group_type)
        pulumi.set(__self__, "source_type", source_type)
        pulumi.set(__self__, "vpc_firewall_id", vpc_firewall_id)

    @property
    @pulumi.getter(name="aclAction")
    def acl_action(self) -> str:
        """
        Access control over VPC firewalls are set in the access traffic via Alibaba cloud firewall way (ACT).
        """
        return pulumi.get(self, "acl_action")

    @property
    @pulumi.getter(name="aclUuid")
    def acl_uuid(self) -> str:
        """
        Access control over VPC firewalls strategy unique identifier.
        """
        return pulumi.get(self, "acl_uuid")

    @property
    @pulumi.getter(name="applicationId")
    def application_id(self) -> str:
        """
        Policy specifies the application ID.
        """
        return pulumi.get(self, "application_id")

    @property
    @pulumi.getter(name="applicationName")
    def application_name(self) -> str:
        """
        Access control over VPC firewalls policies support the application types.
        """
        return pulumi.get(self, "application_name")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Access control over VPC firewalls description of the strategy information.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="destPort")
    def dest_port(self) -> str:
        """
        Access control over VPC firewalls strategy access traffic of the destination port.
        """
        return pulumi.get(self, "dest_port")

    @property
    @pulumi.getter(name="destPortGroup")
    def dest_port_group(self) -> str:
        """
        Access control policy in the access traffic of the destination port address book name.
        """
        return pulumi.get(self, "dest_port_group")

    @property
    @pulumi.getter(name="destPortGroupPorts")
    def dest_port_group_ports(self) -> Sequence[str]:
        """
        Port Address Book port list.
        """
        return pulumi.get(self, "dest_port_group_ports")

    @property
    @pulumi.getter(name="destPortType")
    def dest_port_type(self) -> str:
        """
        Access control over VPC firewalls strategy access traffic of the destination port type.
        """
        return pulumi.get(self, "dest_port_type")

    @property
    @pulumi.getter
    def destination(self) -> str:
        """
        Access control over VPC firewalls strategy the destination address in.
        """
        return pulumi.get(self, "destination")

    @property
    @pulumi.getter(name="destinationGroupCidrs")
    def destination_group_cidrs(self) -> Sequence[str]:
        """
        Destination address book defined in the address list.
        """
        return pulumi.get(self, "destination_group_cidrs")

    @property
    @pulumi.getter(name="destinationGroupType")
    def destination_group_type(self) -> str:
        """
        The destination address book type in the access control policy. Value: `ip`, `domain`.
        """
        return pulumi.get(self, "destination_group_type")

    @property
    @pulumi.getter(name="destinationType")
    def destination_type(self) -> str:
        """
        Access control over VPC firewalls strategy in the destination address of the type.
        """
        return pulumi.get(self, "destination_type")

    @property
    @pulumi.getter(name="hitTimes")
    def hit_times(self) -> int:
        """
        Control strategy of hits per second.
        """
        return pulumi.get(self, "hit_times")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Cloud Firewall Vpc Firewall Control Policy.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="memberUid")
    def member_uid(self) -> str:
        """
        The UID of the member account of the current Alibaba cloud account.
        """
        return pulumi.get(self, "member_uid")

    @property
    @pulumi.getter
    def order(self) -> int:
        """
        Access control over VPC firewalls policies will go into effect of priority. The priority value starts from 1, the smaller the priority number, the higher the priority. -1 represents the lowest priority.
        """
        return pulumi.get(self, "order")

    @property
    @pulumi.getter
    def proto(self) -> str:
        """
        Access control over VPC firewalls strategy access traffic of the protocol type.
        """
        return pulumi.get(self, "proto")

    @property
    @pulumi.getter
    def release(self) -> bool:
        """
        The enabled status of the access control policy. The policy is enabled by default after it is created. Value:
        """
        return pulumi.get(self, "release")

    @property
    @pulumi.getter
    def source(self) -> str:
        """
        Access control over VPC firewalls strategy in the source address.
        """
        return pulumi.get(self, "source")

    @property
    @pulumi.getter(name="sourceGroupCidrs")
    def source_group_cidrs(self) -> Sequence[str]:
        """
        SOURCE address of the address list.
        """
        return pulumi.get(self, "source_group_cidrs")

    @property
    @pulumi.getter(name="sourceGroupType")
    def source_group_type(self) -> str:
        """
        The source address type in the access control policy. Unique value: **ip**. The IP address book contains one or more IP address segments.
        """
        return pulumi.get(self, "source_group_type")

    @property
    @pulumi.getter(name="sourceType")
    def source_type(self) -> str:
        """
        Access control over VPC firewalls policy source address type.
        """
        return pulumi.get(self, "source_type")

    @property
    @pulumi.getter(name="vpcFirewallId")
    def vpc_firewall_id(self) -> str:
        """
        The ID of the VPC firewall instance.
        """
        return pulumi.get(self, "vpc_firewall_id")


@pulumi.output_type
class GetVpcFirewallsFirewallResult(dict):
    def __init__(__self__, *,
                 bandwidth: int,
                 connect_type: str,
                 id: str,
                 local_vpcs: Sequence['outputs.GetVpcFirewallsFirewallLocalVpcResult'],
                 peer_vpcs: Sequence['outputs.GetVpcFirewallsFirewallPeerVpcResult'],
                 region_status: str,
                 status: str,
                 vpc_firewall_id: str,
                 vpc_firewall_name: str):
        """
        :param int bandwidth: Bandwidth specifications for high-speed channels. Unit: Mbps.
        :param str connect_type: The communication type of the VPC firewall. Valid value: **expressconnect**, which indicates Express Connect.
        :param str id: The name of the VPC firewall instance and the value same as `vpc_firewall_id`.
        :param Sequence['GetVpcFirewallsFirewallLocalVpcArgs'] local_vpcs: The details of the local VPC.
        :param Sequence['GetVpcFirewallsFirewallPeerVpcArgs'] peer_vpcs: The details of the peer VPC.
        :param str region_status: The region is open. Value:-**enable**: is enabled, indicating that VPC firewall can be configured in this region.-**disable**: indicates that VPC firewall cannot be configured in this region.
        :param str status: The status of the resource
        :param str vpc_firewall_id: The ID of the VPC firewall instance.
        :param str vpc_firewall_name: The name of the VPC firewall instance.
        """
        pulumi.set(__self__, "bandwidth", bandwidth)
        pulumi.set(__self__, "connect_type", connect_type)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "local_vpcs", local_vpcs)
        pulumi.set(__self__, "peer_vpcs", peer_vpcs)
        pulumi.set(__self__, "region_status", region_status)
        pulumi.set(__self__, "status", status)
        pulumi.set(__self__, "vpc_firewall_id", vpc_firewall_id)
        pulumi.set(__self__, "vpc_firewall_name", vpc_firewall_name)

    @property
    @pulumi.getter
    def bandwidth(self) -> int:
        """
        Bandwidth specifications for high-speed channels. Unit: Mbps.
        """
        return pulumi.get(self, "bandwidth")

    @property
    @pulumi.getter(name="connectType")
    def connect_type(self) -> str:
        """
        The communication type of the VPC firewall. Valid value: **expressconnect**, which indicates Express Connect.
        """
        return pulumi.get(self, "connect_type")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The name of the VPC firewall instance and the value same as `vpc_firewall_id`.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="localVpcs")
    def local_vpcs(self) -> Sequence['outputs.GetVpcFirewallsFirewallLocalVpcResult']:
        """
        The details of the local VPC.
        """
        return pulumi.get(self, "local_vpcs")

    @property
    @pulumi.getter(name="peerVpcs")
    def peer_vpcs(self) -> Sequence['outputs.GetVpcFirewallsFirewallPeerVpcResult']:
        """
        The details of the peer VPC.
        """
        return pulumi.get(self, "peer_vpcs")

    @property
    @pulumi.getter(name="regionStatus")
    def region_status(self) -> str:
        """
        The region is open. Value:-**enable**: is enabled, indicating that VPC firewall can be configured in this region.-**disable**: indicates that VPC firewall cannot be configured in this region.
        """
        return pulumi.get(self, "region_status")

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        The status of the resource
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter(name="vpcFirewallId")
    def vpc_firewall_id(self) -> str:
        """
        The ID of the VPC firewall instance.
        """
        return pulumi.get(self, "vpc_firewall_id")

    @property
    @pulumi.getter(name="vpcFirewallName")
    def vpc_firewall_name(self) -> str:
        """
        The name of the VPC firewall instance.
        """
        return pulumi.get(self, "vpc_firewall_name")


@pulumi.output_type
class GetVpcFirewallsFirewallLocalVpcResult(dict):
    def __init__(__self__, *,
                 eni_id: str,
                 eni_private_ip_address: str,
                 local_vpc_cidr_table_lists: Sequence['outputs.GetVpcFirewallsFirewallLocalVpcLocalVpcCidrTableListResult'],
                 region_no: str,
                 router_interface_id: str,
                 vpc_id: str,
                 vpc_name: str):
        """
        :param Sequence['GetVpcFirewallsFirewallLocalVpcLocalVpcCidrTableListArgs'] local_vpc_cidr_table_lists: The network segment list of the local VPC.
        :param str region_no: The region ID of the peer VPC.
        :param str vpc_id: The ID of the peer VPC instance.
        :param str vpc_name: The instance name of the peer VPC.
        """
        pulumi.set(__self__, "eni_id", eni_id)
        pulumi.set(__self__, "eni_private_ip_address", eni_private_ip_address)
        pulumi.set(__self__, "local_vpc_cidr_table_lists", local_vpc_cidr_table_lists)
        pulumi.set(__self__, "region_no", region_no)
        pulumi.set(__self__, "router_interface_id", router_interface_id)
        pulumi.set(__self__, "vpc_id", vpc_id)
        pulumi.set(__self__, "vpc_name", vpc_name)

    @property
    @pulumi.getter(name="eniId")
    def eni_id(self) -> str:
        return pulumi.get(self, "eni_id")

    @property
    @pulumi.getter(name="eniPrivateIpAddress")
    def eni_private_ip_address(self) -> str:
        return pulumi.get(self, "eni_private_ip_address")

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

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

    @property
    @pulumi.getter(name="routerInterfaceId")
    def router_interface_id(self) -> str:
        return pulumi.get(self, "router_interface_id")

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

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


@pulumi.output_type
class GetVpcFirewallsFirewallLocalVpcLocalVpcCidrTableListResult(dict):
    def __init__(__self__, *,
                 local_route_entry_lists: Sequence['outputs.GetVpcFirewallsFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListResult'],
                 local_route_table_id: str):
        """
        :param Sequence['GetVpcFirewallsFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListArgs'] local_route_entry_lists: The list of route entries of the local VPC.
        :param 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) -> Sequence['outputs.GetVpcFirewallsFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListResult']:
        """
        The list of route entries of the local VPC.
        """
        return pulumi.get(self, "local_route_entry_lists")

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


@pulumi.output_type
class GetVpcFirewallsFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListResult(dict):
    def __init__(__self__, *,
                 local_destination_cidr: str,
                 local_next_hop_instance_id: str):
        """
        :param str local_destination_cidr: The target network segment of the local VPC.
        :param 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) -> str:
        """
        The target network segment of the local VPC.
        """
        return pulumi.get(self, "local_destination_cidr")

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


@pulumi.output_type
class GetVpcFirewallsFirewallPeerVpcResult(dict):
    def __init__(__self__, *,
                 eni_id: str,
                 eni_private_ip_address: str,
                 peer_vpc_cidr_table_lists: Sequence['outputs.GetVpcFirewallsFirewallPeerVpcPeerVpcCidrTableListResult'],
                 region_no: str,
                 router_interface_id: str,
                 vpc_id: str,
                 vpc_name: str):
        """
        :param Sequence['GetVpcFirewallsFirewallPeerVpcPeerVpcCidrTableListArgs'] peer_vpc_cidr_table_lists: The network segment list of the peer VPC.
        :param str region_no: The region ID of the peer VPC.
        :param str vpc_id: The ID of the peer VPC instance.
        :param str vpc_name: The instance name of the peer VPC.
        """
        pulumi.set(__self__, "eni_id", eni_id)
        pulumi.set(__self__, "eni_private_ip_address", eni_private_ip_address)
        pulumi.set(__self__, "peer_vpc_cidr_table_lists", peer_vpc_cidr_table_lists)
        pulumi.set(__self__, "region_no", region_no)
        pulumi.set(__self__, "router_interface_id", router_interface_id)
        pulumi.set(__self__, "vpc_id", vpc_id)
        pulumi.set(__self__, "vpc_name", vpc_name)

    @property
    @pulumi.getter(name="eniId")
    def eni_id(self) -> str:
        return pulumi.get(self, "eni_id")

    @property
    @pulumi.getter(name="eniPrivateIpAddress")
    def eni_private_ip_address(self) -> str:
        return pulumi.get(self, "eni_private_ip_address")

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

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

    @property
    @pulumi.getter(name="routerInterfaceId")
    def router_interface_id(self) -> str:
        return pulumi.get(self, "router_interface_id")

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

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


@pulumi.output_type
class GetVpcFirewallsFirewallPeerVpcPeerVpcCidrTableListResult(dict):
    def __init__(__self__, *,
                 peer_route_entry_lists: Sequence['outputs.GetVpcFirewallsFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListResult'],
                 peer_route_table_id: str):
        """
        :param Sequence['GetVpcFirewallsFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListArgs'] peer_route_entry_lists: Peer VPC route entry list information.
        :param 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) -> Sequence['outputs.GetVpcFirewallsFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListResult']:
        """
        Peer VPC route entry list information.
        """
        return pulumi.get(self, "peer_route_entry_lists")

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


@pulumi.output_type
class GetVpcFirewallsFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListResult(dict):
    def __init__(__self__, *,
                 peer_destination_cidr: str,
                 peer_next_hop_instance_id: str):
        """
        :param str peer_destination_cidr: The target network segment of the peer VPC.
        :param 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) -> str:
        """
        The target network segment of the peer VPC.
        """
        return pulumi.get(self, "peer_destination_cidr")

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


