"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import shared.shared_pb2
import sys

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class VPC(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class TagsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    CIDR_BLOCK_FIELD_NUMBER: builtins.int
    ENABLE_DNS_HOSTNAMES_FIELD_NUMBER: builtins.int
    ENABLE_DNS_SUPPORT_FIELD_NUMBER: builtins.int
    INSTANCE_TENANCY_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    cidr_block: builtins.str
    enable_dns_hostnames: builtins.bool
    enable_dns_support: builtins.bool
    instance_tenancy: builtins.str
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        cidr_block: builtins.str = ...,
        enable_dns_hostnames: builtins.bool = ...,
        enable_dns_support: builtins.bool = ...,
        instance_tenancy: builtins.str = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cidr_block", b"cidr_block", "enable_dns_hostnames", b"enable_dns_hostnames", "enable_dns_support", b"enable_dns_support", "instance_tenancy", b"instance_tenancy", "resource_info", b"resource_info", "tags", b"tags"]) -> None: ...

global___VPC = VPC

@typing_extensions.final
class EC2_VPC(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VPC_FIELD_NUMBER: builtins.int
    VPC_CIDR_BLOCK_FIELD_NUMBER: builtins.int
    VPC_DHCP_OPTIONS_ASSOCIATION_FIELD_NUMBER: builtins.int
    VPC_PEERING_CONNECTION_FIELD_NUMBER: builtins.int
    @property
    def vpc(self) -> global___VPC: ...
    @property
    def vpc_cidr_block(self) -> global___VPCCidrBlock: ...
    @property
    def vpc_dhcp_options_association(self) -> global___VPCDHCPOptionsAssociation: ...
    @property
    def vpc_peering_connection(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VPCPeeringConnection]: ...
    def __init__(
        self,
        *,
        vpc: global___VPC | None = ...,
        vpc_cidr_block: global___VPCCidrBlock | None = ...,
        vpc_dhcp_options_association: global___VPCDHCPOptionsAssociation | None = ...,
        vpc_peering_connection: collections.abc.Iterable[global___VPCPeeringConnection] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["vpc", b"vpc", "vpc_cidr_block", b"vpc_cidr_block", "vpc_dhcp_options_association", b"vpc_dhcp_options_association"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["vpc", b"vpc", "vpc_cidr_block", b"vpc_cidr_block", "vpc_dhcp_options_association", b"vpc_dhcp_options_association", "vpc_peering_connection", b"vpc_peering_connection"]) -> None: ...

global___EC2_VPC = EC2_VPC

@typing_extensions.final
class VPCCidrBlock(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    AMAZON_PROVIDED_IPV6_CIDR_BLOCK_FIELD_NUMBER: builtins.int
    CIDR_BLOCK_FIELD_NUMBER: builtins.int
    VPC_ID_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    amazon_provided_ipv6_cidr_block: builtins.bool
    cidr_block: builtins.str
    vpc_id: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        amazon_provided_ipv6_cidr_block: builtins.bool = ...,
        cidr_block: builtins.str = ...,
        vpc_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["amazon_provided_ipv6_cidr_block", b"amazon_provided_ipv6_cidr_block", "cidr_block", b"cidr_block", "resource_info", b"resource_info", "vpc_id", b"vpc_id"]) -> None: ...

global___VPCCidrBlock = VPCCidrBlock

@typing_extensions.final
class VPCDHCPOptionsAssociation(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    DHCP_OPTIONS_ID_FIELD_NUMBER: builtins.int
    VPC_ID_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    dhcp_options_id: builtins.str
    vpc_id: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        dhcp_options_id: builtins.str = ...,
        vpc_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["dhcp_options_id", b"dhcp_options_id", "resource_info", b"resource_info", "vpc_id", b"vpc_id"]) -> None: ...

global___VPCDHCPOptionsAssociation = VPCDHCPOptionsAssociation

@typing_extensions.final
class VPCPeeringConnection(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class TagsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PEER_OWNER_ID_FIELD_NUMBER: builtins.int
    PEER_REGION_FIELD_NUMBER: builtins.int
    PEER_ROLE_ARN_FIELD_NUMBER: builtins.int
    PEER_VPC_ID_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    VPC_ID_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    peer_owner_id: builtins.str
    peer_region: builtins.str
    peer_role_arn: builtins.str
    peer_vpc_id: builtins.str
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    vpc_id: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        peer_owner_id: builtins.str = ...,
        peer_region: builtins.str = ...,
        peer_role_arn: builtins.str = ...,
        peer_vpc_id: builtins.str = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        vpc_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["peer_owner_id", b"peer_owner_id", "peer_region", b"peer_region", "peer_role_arn", b"peer_role_arn", "peer_vpc_id", b"peer_vpc_id", "resource_info", b"resource_info", "tags", b"tags", "vpc_id", b"vpc_id"]) -> None: ...

global___VPCPeeringConnection = VPCPeeringConnection
