"""
@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 ComputeRouterXBgpXAdvertisedIpRanges(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DESCRIPTION_FIELD_NUMBER: builtins.int
    RANGE_FIELD_NUMBER: builtins.int
    description: builtins.str
    range: builtins.str
    def __init__(
        self,
        *,
        description: builtins.str = ...,
        range: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "range", b"range"]) -> None: ...

global___ComputeRouterXBgpXAdvertisedIpRanges = ComputeRouterXBgpXAdvertisedIpRanges

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

    ADVERTISE_MODE_FIELD_NUMBER: builtins.int
    ADVERTISED_GROUPS_FIELD_NUMBER: builtins.int
    ASN_FIELD_NUMBER: builtins.int
    KEEPALIVE_INTERVAL_FIELD_NUMBER: builtins.int
    ADVERTISED_IP_RANGES_FIELD_NUMBER: builtins.int
    advertise_mode: builtins.str
    @property
    def advertised_groups(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    asn: builtins.float
    keepalive_interval: builtins.float
    @property
    def advertised_ip_ranges(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ComputeRouterXBgpXAdvertisedIpRanges]: ...
    def __init__(
        self,
        *,
        advertise_mode: builtins.str = ...,
        advertised_groups: collections.abc.Iterable[builtins.str] | None = ...,
        asn: builtins.float = ...,
        keepalive_interval: builtins.float = ...,
        advertised_ip_ranges: collections.abc.Iterable[global___ComputeRouterXBgpXAdvertisedIpRanges] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["advertise_mode", b"advertise_mode", "advertised_groups", b"advertised_groups", "advertised_ip_ranges", b"advertised_ip_ranges", "asn", b"asn", "keepalive_interval", b"keepalive_interval"]) -> None: ...

global___ComputeRouterXBgp = ComputeRouterXBgp

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

    CREATE_FIELD_NUMBER: builtins.int
    DELETE_FIELD_NUMBER: builtins.int
    UPDATE_FIELD_NUMBER: builtins.int
    create: builtins.str
    delete: builtins.str
    update: builtins.str
    def __init__(
        self,
        *,
        create: builtins.str = ...,
        delete: builtins.str = ...,
        update: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["create", b"create", "delete", b"delete", "update", b"update"]) -> None: ...

global___ComputeRouterXTimeouts = ComputeRouterXTimeouts

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

    CREATION_TIMESTAMP_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    ENCRYPTED_INTERCONNECT_ROUTER_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    NETWORK_FIELD_NUMBER: builtins.int
    PROJECT_FIELD_NUMBER: builtins.int
    REGION_FIELD_NUMBER: builtins.int
    SELF_LINK_FIELD_NUMBER: builtins.int
    BGP_FIELD_NUMBER: builtins.int
    TIMEOUTS_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    creation_timestamp: builtins.str
    description: builtins.str
    encrypted_interconnect_router: builtins.bool
    id: builtins.str
    name: builtins.str
    network: builtins.str
    project: builtins.str
    region: builtins.str
    self_link: builtins.str
    @property
    def bgp(self) -> global___ComputeRouterXBgp: ...
    @property
    def timeouts(self) -> global___ComputeRouterXTimeouts: ...
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        creation_timestamp: builtins.str = ...,
        description: builtins.str = ...,
        encrypted_interconnect_router: builtins.bool = ...,
        id: builtins.str = ...,
        name: builtins.str = ...,
        network: builtins.str = ...,
        project: builtins.str = ...,
        region: builtins.str = ...,
        self_link: builtins.str = ...,
        bgp: global___ComputeRouterXBgp | None = ...,
        timeouts: global___ComputeRouterXTimeouts | None = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["bgp", b"bgp", "resource_info", b"resource_info", "timeouts", b"timeouts"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["bgp", b"bgp", "creation_timestamp", b"creation_timestamp", "description", b"description", "encrypted_interconnect_router", b"encrypted_interconnect_router", "id", b"id", "name", b"name", "network", b"network", "project", b"project", "region", b"region", "resource_info", b"resource_info", "self_link", b"self_link", "timeouts", b"timeouts"]) -> None: ...

global___ComputeRouter = ComputeRouter

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

    CREATE_FIELD_NUMBER: builtins.int
    DELETE_FIELD_NUMBER: builtins.int
    create: builtins.str
    delete: builtins.str
    def __init__(
        self,
        *,
        create: builtins.str = ...,
        delete: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["create", b"create", "delete", b"delete"]) -> None: ...

global___ComputeRouterInterfaceXTimeouts = ComputeRouterInterfaceXTimeouts

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

    ID_FIELD_NUMBER: builtins.int
    INTERCONNECT_ATTACHMENT_FIELD_NUMBER: builtins.int
    IP_RANGE_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    PROJECT_FIELD_NUMBER: builtins.int
    REGION_FIELD_NUMBER: builtins.int
    ROUTER_FIELD_NUMBER: builtins.int
    VPN_TUNNEL_FIELD_NUMBER: builtins.int
    TIMEOUTS_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    id: builtins.str
    interconnect_attachment: builtins.str
    ip_range: builtins.str
    name: builtins.str
    project: builtins.str
    region: builtins.str
    router: builtins.str
    vpn_tunnel: builtins.str
    @property
    def timeouts(self) -> global___ComputeRouterInterfaceXTimeouts: ...
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        interconnect_attachment: builtins.str = ...,
        ip_range: builtins.str = ...,
        name: builtins.str = ...,
        project: builtins.str = ...,
        region: builtins.str = ...,
        router: builtins.str = ...,
        vpn_tunnel: builtins.str = ...,
        timeouts: global___ComputeRouterInterfaceXTimeouts | None = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "timeouts", b"timeouts"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["id", b"id", "interconnect_attachment", b"interconnect_attachment", "ip_range", b"ip_range", "name", b"name", "project", b"project", "region", b"region", "resource_info", b"resource_info", "router", b"router", "timeouts", b"timeouts", "vpn_tunnel", b"vpn_tunnel"]) -> None: ...

global___ComputeRouterInterface = ComputeRouterInterface

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

    ENABLE_FIELD_NUMBER: builtins.int
    FILTER_FIELD_NUMBER: builtins.int
    enable: builtins.bool
    filter: builtins.str
    def __init__(
        self,
        *,
        enable: builtins.bool = ...,
        filter: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["enable", b"enable", "filter", b"filter"]) -> None: ...

global___ComputeRouterNatXLogConfig = ComputeRouterNatXLogConfig

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

    NAME_FIELD_NUMBER: builtins.int
    SECONDARY_IP_RANGE_NAMES_FIELD_NUMBER: builtins.int
    SOURCE_IP_RANGES_TO_NAT_FIELD_NUMBER: builtins.int
    name: builtins.str
    @property
    def secondary_ip_range_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def source_ip_ranges_to_nat(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        secondary_ip_range_names: collections.abc.Iterable[builtins.str] | None = ...,
        source_ip_ranges_to_nat: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "secondary_ip_range_names", b"secondary_ip_range_names", "source_ip_ranges_to_nat", b"source_ip_ranges_to_nat"]) -> None: ...

global___ComputeRouterNatXSubnetwork = ComputeRouterNatXSubnetwork

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

    CREATE_FIELD_NUMBER: builtins.int
    DELETE_FIELD_NUMBER: builtins.int
    UPDATE_FIELD_NUMBER: builtins.int
    create: builtins.str
    delete: builtins.str
    update: builtins.str
    def __init__(
        self,
        *,
        create: builtins.str = ...,
        delete: builtins.str = ...,
        update: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["create", b"create", "delete", b"delete", "update", b"update"]) -> None: ...

global___ComputeRouterNatXTimeouts = ComputeRouterNatXTimeouts

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

    DRAIN_NAT_IPS_FIELD_NUMBER: builtins.int
    ENABLE_DYNAMIC_PORT_ALLOCATION_FIELD_NUMBER: builtins.int
    ENABLE_ENDPOINT_INDEPENDENT_MAPPING_FIELD_NUMBER: builtins.int
    ICMP_IDLE_TIMEOUT_SEC_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    MAX_PORTS_PER_VM_FIELD_NUMBER: builtins.int
    MIN_PORTS_PER_VM_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    NAT_IP_ALLOCATE_OPTION_FIELD_NUMBER: builtins.int
    NAT_IPS_FIELD_NUMBER: builtins.int
    PROJECT_FIELD_NUMBER: builtins.int
    REGION_FIELD_NUMBER: builtins.int
    ROUTER_FIELD_NUMBER: builtins.int
    SOURCE_SUBNETWORK_IP_RANGES_TO_NAT_FIELD_NUMBER: builtins.int
    TCP_ESTABLISHED_IDLE_TIMEOUT_SEC_FIELD_NUMBER: builtins.int
    TCP_TRANSITORY_IDLE_TIMEOUT_SEC_FIELD_NUMBER: builtins.int
    UDP_IDLE_TIMEOUT_SEC_FIELD_NUMBER: builtins.int
    LOG_CONFIG_FIELD_NUMBER: builtins.int
    SUBNETWORK_FIELD_NUMBER: builtins.int
    TIMEOUTS_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    @property
    def drain_nat_ips(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    enable_dynamic_port_allocation: builtins.bool
    enable_endpoint_independent_mapping: builtins.bool
    icmp_idle_timeout_sec: builtins.float
    id: builtins.str
    max_ports_per_vm: builtins.float
    min_ports_per_vm: builtins.float
    name: builtins.str
    nat_ip_allocate_option: builtins.str
    @property
    def nat_ips(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    project: builtins.str
    region: builtins.str
    router: builtins.str
    source_subnetwork_ip_ranges_to_nat: builtins.str
    tcp_established_idle_timeout_sec: builtins.float
    tcp_transitory_idle_timeout_sec: builtins.float
    udp_idle_timeout_sec: builtins.float
    @property
    def log_config(self) -> global___ComputeRouterNatXLogConfig: ...
    @property
    def subnetwork(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ComputeRouterNatXSubnetwork]: ...
    @property
    def timeouts(self) -> global___ComputeRouterNatXTimeouts: ...
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        drain_nat_ips: collections.abc.Iterable[builtins.str] | None = ...,
        enable_dynamic_port_allocation: builtins.bool = ...,
        enable_endpoint_independent_mapping: builtins.bool = ...,
        icmp_idle_timeout_sec: builtins.float = ...,
        id: builtins.str = ...,
        max_ports_per_vm: builtins.float = ...,
        min_ports_per_vm: builtins.float = ...,
        name: builtins.str = ...,
        nat_ip_allocate_option: builtins.str = ...,
        nat_ips: collections.abc.Iterable[builtins.str] | None = ...,
        project: builtins.str = ...,
        region: builtins.str = ...,
        router: builtins.str = ...,
        source_subnetwork_ip_ranges_to_nat: builtins.str = ...,
        tcp_established_idle_timeout_sec: builtins.float = ...,
        tcp_transitory_idle_timeout_sec: builtins.float = ...,
        udp_idle_timeout_sec: builtins.float = ...,
        log_config: global___ComputeRouterNatXLogConfig | None = ...,
        subnetwork: collections.abc.Iterable[global___ComputeRouterNatXSubnetwork] | None = ...,
        timeouts: global___ComputeRouterNatXTimeouts | None = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["log_config", b"log_config", "resource_info", b"resource_info", "timeouts", b"timeouts"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["drain_nat_ips", b"drain_nat_ips", "enable_dynamic_port_allocation", b"enable_dynamic_port_allocation", "enable_endpoint_independent_mapping", b"enable_endpoint_independent_mapping", "icmp_idle_timeout_sec", b"icmp_idle_timeout_sec", "id", b"id", "log_config", b"log_config", "max_ports_per_vm", b"max_ports_per_vm", "min_ports_per_vm", b"min_ports_per_vm", "name", b"name", "nat_ip_allocate_option", b"nat_ip_allocate_option", "nat_ips", b"nat_ips", "project", b"project", "region", b"region", "resource_info", b"resource_info", "router", b"router", "source_subnetwork_ip_ranges_to_nat", b"source_subnetwork_ip_ranges_to_nat", "subnetwork", b"subnetwork", "tcp_established_idle_timeout_sec", b"tcp_established_idle_timeout_sec", "tcp_transitory_idle_timeout_sec", b"tcp_transitory_idle_timeout_sec", "timeouts", b"timeouts", "udp_idle_timeout_sec", b"udp_idle_timeout_sec"]) -> None: ...

global___ComputeRouterNat = ComputeRouterNat

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

    DESCRIPTION_FIELD_NUMBER: builtins.int
    RANGE_FIELD_NUMBER: builtins.int
    description: builtins.str
    range: builtins.str
    def __init__(
        self,
        *,
        description: builtins.str = ...,
        range: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "range", b"range"]) -> None: ...

global___ComputeRouterPeerXAdvertisedIpRanges = ComputeRouterPeerXAdvertisedIpRanges

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

    MIN_RECEIVE_INTERVAL_FIELD_NUMBER: builtins.int
    MIN_TRANSMIT_INTERVAL_FIELD_NUMBER: builtins.int
    MULTIPLIER_FIELD_NUMBER: builtins.int
    SESSION_INITIALIZATION_MODE_FIELD_NUMBER: builtins.int
    min_receive_interval: builtins.float
    min_transmit_interval: builtins.float
    multiplier: builtins.float
    session_initialization_mode: builtins.str
    def __init__(
        self,
        *,
        min_receive_interval: builtins.float = ...,
        min_transmit_interval: builtins.float = ...,
        multiplier: builtins.float = ...,
        session_initialization_mode: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["min_receive_interval", b"min_receive_interval", "min_transmit_interval", b"min_transmit_interval", "multiplier", b"multiplier", "session_initialization_mode", b"session_initialization_mode"]) -> None: ...

global___ComputeRouterPeerXBfd = ComputeRouterPeerXBfd

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

    CREATE_FIELD_NUMBER: builtins.int
    DELETE_FIELD_NUMBER: builtins.int
    UPDATE_FIELD_NUMBER: builtins.int
    create: builtins.str
    delete: builtins.str
    update: builtins.str
    def __init__(
        self,
        *,
        create: builtins.str = ...,
        delete: builtins.str = ...,
        update: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["create", b"create", "delete", b"delete", "update", b"update"]) -> None: ...

global___ComputeRouterPeerXTimeouts = ComputeRouterPeerXTimeouts

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

    ADVERTISE_MODE_FIELD_NUMBER: builtins.int
    ADVERTISED_GROUPS_FIELD_NUMBER: builtins.int
    ADVERTISED_ROUTE_PRIORITY_FIELD_NUMBER: builtins.int
    ENABLE_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    INTERFACE_FIELD_NUMBER: builtins.int
    IP_ADDRESS_FIELD_NUMBER: builtins.int
    MANAGEMENT_TYPE_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    PEER_ASN_FIELD_NUMBER: builtins.int
    PEER_IP_ADDRESS_FIELD_NUMBER: builtins.int
    PROJECT_FIELD_NUMBER: builtins.int
    REGION_FIELD_NUMBER: builtins.int
    ROUTER_FIELD_NUMBER: builtins.int
    ADVERTISED_IP_RANGES_FIELD_NUMBER: builtins.int
    BFD_FIELD_NUMBER: builtins.int
    TIMEOUTS_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    advertise_mode: builtins.str
    @property
    def advertised_groups(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    advertised_route_priority: builtins.float
    enable: builtins.bool
    id: builtins.str
    interface: builtins.str
    ip_address: builtins.str
    management_type: builtins.str
    name: builtins.str
    peer_asn: builtins.float
    peer_ip_address: builtins.str
    project: builtins.str
    region: builtins.str
    router: builtins.str
    @property
    def advertised_ip_ranges(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ComputeRouterPeerXAdvertisedIpRanges]: ...
    @property
    def bfd(self) -> global___ComputeRouterPeerXBfd: ...
    @property
    def timeouts(self) -> global___ComputeRouterPeerXTimeouts: ...
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        advertise_mode: builtins.str = ...,
        advertised_groups: collections.abc.Iterable[builtins.str] | None = ...,
        advertised_route_priority: builtins.float = ...,
        enable: builtins.bool = ...,
        id: builtins.str = ...,
        interface: builtins.str = ...,
        ip_address: builtins.str = ...,
        management_type: builtins.str = ...,
        name: builtins.str = ...,
        peer_asn: builtins.float = ...,
        peer_ip_address: builtins.str = ...,
        project: builtins.str = ...,
        region: builtins.str = ...,
        router: builtins.str = ...,
        advertised_ip_ranges: collections.abc.Iterable[global___ComputeRouterPeerXAdvertisedIpRanges] | None = ...,
        bfd: global___ComputeRouterPeerXBfd | None = ...,
        timeouts: global___ComputeRouterPeerXTimeouts | None = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["bfd", b"bfd", "resource_info", b"resource_info", "timeouts", b"timeouts"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["advertise_mode", b"advertise_mode", "advertised_groups", b"advertised_groups", "advertised_ip_ranges", b"advertised_ip_ranges", "advertised_route_priority", b"advertised_route_priority", "bfd", b"bfd", "enable", b"enable", "id", b"id", "interface", b"interface", "ip_address", b"ip_address", "management_type", b"management_type", "name", b"name", "peer_asn", b"peer_asn", "peer_ip_address", b"peer_ip_address", "project", b"project", "region", b"region", "resource_info", b"resource_info", "router", b"router", "timeouts", b"timeouts"]) -> None: ...

global___ComputeRouterPeer = ComputeRouterPeer
