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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    VIRTUAL_SERVICE_NAME_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    virtual_service_name: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        virtual_service_name: 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["resource_info", b"resource_info", "virtual_service_name", b"virtual_service_name"]) -> None: ...

global___GatewayRouteGatewayRouteVirtualService = GatewayRouteGatewayRouteVirtualService

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

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

global___GatewayRouteGatewayRouteTarget = GatewayRouteGatewayRouteTarget

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

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

global___GatewayRouteHttpGatewayRouteAction = GatewayRouteHttpGatewayRouteAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PREFIX_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    prefix: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        prefix: 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["prefix", b"prefix", "resource_info", b"resource_info"]) -> None: ...

global___GatewayRouteHttpGatewayRouteMatch = GatewayRouteHttpGatewayRouteMatch

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    MATCH_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def action(self) -> global___GatewayRouteHttpGatewayRouteAction: ...
    @property
    def match(self) -> global___GatewayRouteHttpGatewayRouteMatch: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        action: global___GatewayRouteHttpGatewayRouteAction | None = ...,
        match: global___GatewayRouteHttpGatewayRouteMatch | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["action", b"action", "match", b"match", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["action", b"action", "match", b"match", "resource_info", b"resource_info"]) -> None: ...

global___GatewayRouteHttpGatewayRoute = GatewayRouteHttpGatewayRoute

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

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

global___GatewayRouteGrpcGatewayRouteAction = GatewayRouteGrpcGatewayRouteAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    SERVICE_NAME_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    service_name: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        service_name: 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["resource_info", b"resource_info", "service_name", b"service_name"]) -> None: ...

global___GatewayRouteGrpcGatewayRouteMatch = GatewayRouteGrpcGatewayRouteMatch

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    MATCH_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def action(self) -> global___GatewayRouteGrpcGatewayRouteAction: ...
    @property
    def match(self) -> global___GatewayRouteGrpcGatewayRouteMatch: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        action: global___GatewayRouteGrpcGatewayRouteAction | None = ...,
        match: global___GatewayRouteGrpcGatewayRouteMatch | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["action", b"action", "match", b"match", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["action", b"action", "match", b"match", "resource_info", b"resource_info"]) -> None: ...

global___GatewayRouteGrpcGatewayRoute = GatewayRouteGrpcGatewayRoute

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    HTTP_ROUTE_FIELD_NUMBER: builtins.int
    HTTP2_ROUTE_FIELD_NUMBER: builtins.int
    GRPC_ROUTE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def http_route(self) -> global___GatewayRouteHttpGatewayRoute: ...
    @property
    def http2_route(self) -> global___GatewayRouteHttpGatewayRoute: ...
    @property
    def grpc_route(self) -> global___GatewayRouteGrpcGatewayRoute: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        http_route: global___GatewayRouteHttpGatewayRoute | None = ...,
        http2_route: global___GatewayRouteHttpGatewayRoute | None = ...,
        grpc_route: global___GatewayRouteGrpcGatewayRoute | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["grpc_route", b"grpc_route", "http2_route", b"http2_route", "http_route", b"http_route", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["grpc_route", b"grpc_route", "http2_route", b"http2_route", "http_route", b"http_route", "resource_info", b"resource_info"]) -> None: ...

global___GatewayRouteGatewayRouteSpec = GatewayRouteGatewayRouteSpec

@typing_extensions.final
class GatewayRoute(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
    MESH_NAME_FIELD_NUMBER: builtins.int
    VIRTUAL_GATEWAY_NAME_FIELD_NUMBER: builtins.int
    MESH_OWNER_FIELD_NUMBER: builtins.int
    GATEWAY_ROUTE_NAME_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    mesh_name: builtins.str
    virtual_gateway_name: builtins.str
    mesh_owner: builtins.str
    gateway_route_name: builtins.str
    @property
    def spec(self) -> global___GatewayRouteGatewayRouteSpec: ...
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        mesh_name: builtins.str = ...,
        virtual_gateway_name: builtins.str = ...,
        mesh_owner: builtins.str = ...,
        gateway_route_name: builtins.str = ...,
        spec: global___GatewayRouteGatewayRouteSpec | None = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "spec", b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["gateway_route_name", b"gateway_route_name", "mesh_name", b"mesh_name", "mesh_owner", b"mesh_owner", "resource_info", b"resource_info", "spec", b"spec", "tags", b"tags", "virtual_gateway_name", b"virtual_gateway_name"]) -> None: ...

global___GatewayRoute = GatewayRoute

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

    GATEWAY_ROUTE_FIELD_NUMBER: builtins.int
    MESH_FIELD_NUMBER: builtins.int
    ROUTE_FIELD_NUMBER: builtins.int
    VIRTUAL_GATEWAY_FIELD_NUMBER: builtins.int
    VIRTUAL_NODE_FIELD_NUMBER: builtins.int
    VIRTUAL_ROUTER_FIELD_NUMBER: builtins.int
    VIRTUAL_SERVICE_FIELD_NUMBER: builtins.int
    @property
    def gateway_route(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GatewayRoute]: ...
    @property
    def mesh(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Mesh]: ...
    @property
    def route(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Route]: ...
    @property
    def virtual_gateway(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VirtualGateway]: ...
    @property
    def virtual_node(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VirtualNode]: ...
    @property
    def virtual_router(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VirtualRouter]: ...
    @property
    def virtual_service(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VirtualService]: ...
    def __init__(
        self,
        *,
        gateway_route: collections.abc.Iterable[global___GatewayRoute] | None = ...,
        mesh: collections.abc.Iterable[global___Mesh] | None = ...,
        route: collections.abc.Iterable[global___Route] | None = ...,
        virtual_gateway: collections.abc.Iterable[global___VirtualGateway] | None = ...,
        virtual_node: collections.abc.Iterable[global___VirtualNode] | None = ...,
        virtual_router: collections.abc.Iterable[global___VirtualRouter] | None = ...,
        virtual_service: collections.abc.Iterable[global___VirtualService] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["gateway_route", b"gateway_route", "mesh", b"mesh", "route", b"route", "virtual_gateway", b"virtual_gateway", "virtual_node", b"virtual_node", "virtual_router", b"virtual_router", "virtual_service", b"virtual_service"]) -> None: ...

global___AppMesh = AppMesh

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | 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["resource_info", b"resource_info"]) -> None: ...

global___MeshEgressFilter = MeshEgressFilter

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

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

global___MeshMeshSpec = MeshMeshSpec

@typing_extensions.final
class Mesh(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
    MESH_NAME_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    mesh_name: builtins.str
    @property
    def spec(self) -> global___MeshMeshSpec: ...
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        mesh_name: builtins.str = ...,
        spec: global___MeshMeshSpec | None = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "spec", b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["mesh_name", b"mesh_name", "resource_info", b"resource_info", "spec", b"spec", "tags", b"tags"]) -> None: ...

global___Mesh = Mesh

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

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

global___RouteWeightedTarget = RouteWeightedTarget

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    WEIGHTED_TARGETS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def weighted_targets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RouteWeightedTarget]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        weighted_targets: collections.abc.Iterable[global___RouteWeightedTarget] | 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["resource_info", b"resource_info", "weighted_targets", b"weighted_targets"]) -> None: ...

global___RouteHttpRouteAction = RouteHttpRouteAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    UNIT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    value: builtins.int
    unit: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        value: builtins.int = ...,
        unit: 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["resource_info", b"resource_info", "unit", b"unit", "value", b"value"]) -> None: ...

global___RouteDuration = RouteDuration

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PER_REQUEST_FIELD_NUMBER: builtins.int
    IDLE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def per_request(self) -> global___RouteDuration: ...
    @property
    def idle(self) -> global___RouteDuration: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        per_request: global___RouteDuration | None = ...,
        idle: global___RouteDuration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["idle", b"idle", "per_request", b"per_request", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["idle", b"idle", "per_request", b"per_request", "resource_info", b"resource_info"]) -> None: ...

global___RouteHttpTimeout = RouteHttpTimeout

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    MAX_RETRIES_FIELD_NUMBER: builtins.int
    PER_RETRY_TIMEOUT_FIELD_NUMBER: builtins.int
    HTTP_RETRY_EVENTS_FIELD_NUMBER: builtins.int
    TCP_RETRY_EVENTS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    max_retries: builtins.int
    @property
    def per_retry_timeout(self) -> global___RouteDuration: ...
    @property
    def http_retry_events(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def tcp_retry_events(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        max_retries: builtins.int = ...,
        per_retry_timeout: global___RouteDuration | None = ...,
        http_retry_events: collections.abc.Iterable[builtins.str] | None = ...,
        tcp_retry_events: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["per_retry_timeout", b"per_retry_timeout", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["http_retry_events", b"http_retry_events", "max_retries", b"max_retries", "per_retry_timeout", b"per_retry_timeout", "resource_info", b"resource_info", "tcp_retry_events", b"tcp_retry_events"]) -> None: ...

global___RouteHttpRetryPolicy = RouteHttpRetryPolicy

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    START_FIELD_NUMBER: builtins.int
    END_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    start: builtins.int
    end: builtins.int
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        start: builtins.int = ...,
        end: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["end", b"end", "resource_info", b"resource_info", "start", b"start"]) -> None: ...

global___RouteMatchRange = RouteMatchRange

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    SUFFIX_FIELD_NUMBER: builtins.int
    REGEX_FIELD_NUMBER: builtins.int
    EXACT_FIELD_NUMBER: builtins.int
    PREFIX_FIELD_NUMBER: builtins.int
    RANGE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    suffix: builtins.str
    regex: builtins.str
    exact: builtins.str
    prefix: builtins.str
    @property
    def range(self) -> global___RouteMatchRange: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        suffix: builtins.str = ...,
        regex: builtins.str = ...,
        exact: builtins.str = ...,
        prefix: builtins.str = ...,
        range: global___RouteMatchRange | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["range", b"range", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["exact", b"exact", "prefix", b"prefix", "range", b"range", "regex", b"regex", "resource_info", b"resource_info", "suffix", b"suffix"]) -> None: ...

global___RouteHeaderMatchMethod = RouteHeaderMatchMethod

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    INVERT_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    MATCH_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    invert: builtins.bool
    name: builtins.str
    @property
    def match(self) -> global___RouteHeaderMatchMethod: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        invert: builtins.bool = ...,
        name: builtins.str = ...,
        match: global___RouteHeaderMatchMethod | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["match", b"match", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["invert", b"invert", "match", b"match", "name", b"name", "resource_info", b"resource_info"]) -> None: ...

global___RouteHttpRouteHeader = RouteHttpRouteHeader

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    SCHEME_FIELD_NUMBER: builtins.int
    HEADERS_FIELD_NUMBER: builtins.int
    PREFIX_FIELD_NUMBER: builtins.int
    METHOD_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    scheme: builtins.str
    @property
    def headers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RouteHttpRouteHeader]: ...
    prefix: builtins.str
    method: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        scheme: builtins.str = ...,
        headers: collections.abc.Iterable[global___RouteHttpRouteHeader] | None = ...,
        prefix: builtins.str = ...,
        method: 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["headers", b"headers", "method", b"method", "prefix", b"prefix", "resource_info", b"resource_info", "scheme", b"scheme"]) -> None: ...

global___RouteHttpRouteMatch = RouteHttpRouteMatch

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    TIMEOUT_FIELD_NUMBER: builtins.int
    RETRY_POLICY_FIELD_NUMBER: builtins.int
    MATCH_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def action(self) -> global___RouteHttpRouteAction: ...
    @property
    def timeout(self) -> global___RouteHttpTimeout: ...
    @property
    def retry_policy(self) -> global___RouteHttpRetryPolicy: ...
    @property
    def match(self) -> global___RouteHttpRouteMatch: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        action: global___RouteHttpRouteAction | None = ...,
        timeout: global___RouteHttpTimeout | None = ...,
        retry_policy: global___RouteHttpRetryPolicy | None = ...,
        match: global___RouteHttpRouteMatch | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["action", b"action", "match", b"match", "resource_info", b"resource_info", "retry_policy", b"retry_policy", "timeout", b"timeout"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["action", b"action", "match", b"match", "resource_info", b"resource_info", "retry_policy", b"retry_policy", "timeout", b"timeout"]) -> None: ...

global___RouteHttpRoute = RouteHttpRoute

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    WEIGHTED_TARGETS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def weighted_targets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RouteWeightedTarget]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        weighted_targets: collections.abc.Iterable[global___RouteWeightedTarget] | 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["resource_info", b"resource_info", "weighted_targets", b"weighted_targets"]) -> None: ...

global___RouteGrpcRouteAction = RouteGrpcRouteAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PER_REQUEST_FIELD_NUMBER: builtins.int
    IDLE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def per_request(self) -> global___RouteDuration: ...
    @property
    def idle(self) -> global___RouteDuration: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        per_request: global___RouteDuration | None = ...,
        idle: global___RouteDuration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["idle", b"idle", "per_request", b"per_request", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["idle", b"idle", "per_request", b"per_request", "resource_info", b"resource_info"]) -> None: ...

global___RouteGrpcTimeout = RouteGrpcTimeout

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    MAX_RETRIES_FIELD_NUMBER: builtins.int
    PER_RETRY_TIMEOUT_FIELD_NUMBER: builtins.int
    GRPC_RETRY_EVENTS_FIELD_NUMBER: builtins.int
    HTTP_RETRY_EVENTS_FIELD_NUMBER: builtins.int
    TCP_RETRY_EVENTS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    max_retries: builtins.int
    @property
    def per_retry_timeout(self) -> global___RouteDuration: ...
    @property
    def grpc_retry_events(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def http_retry_events(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def tcp_retry_events(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        max_retries: builtins.int = ...,
        per_retry_timeout: global___RouteDuration | None = ...,
        grpc_retry_events: collections.abc.Iterable[builtins.str] | None = ...,
        http_retry_events: collections.abc.Iterable[builtins.str] | None = ...,
        tcp_retry_events: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["per_retry_timeout", b"per_retry_timeout", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["grpc_retry_events", b"grpc_retry_events", "http_retry_events", b"http_retry_events", "max_retries", b"max_retries", "per_retry_timeout", b"per_retry_timeout", "resource_info", b"resource_info", "tcp_retry_events", b"tcp_retry_events"]) -> None: ...

global___RouteGrpcRetryPolicy = RouteGrpcRetryPolicy

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    SUFFIX_FIELD_NUMBER: builtins.int
    REGEX_FIELD_NUMBER: builtins.int
    EXACT_FIELD_NUMBER: builtins.int
    PREFIX_FIELD_NUMBER: builtins.int
    RANGE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    suffix: builtins.str
    regex: builtins.str
    exact: builtins.str
    prefix: builtins.str
    @property
    def range(self) -> global___RouteMatchRange: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        suffix: builtins.str = ...,
        regex: builtins.str = ...,
        exact: builtins.str = ...,
        prefix: builtins.str = ...,
        range: global___RouteMatchRange | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["range", b"range", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["exact", b"exact", "prefix", b"prefix", "range", b"range", "regex", b"regex", "resource_info", b"resource_info", "suffix", b"suffix"]) -> None: ...

global___RouteGrpcRouteMetadataMatchMethod = RouteGrpcRouteMetadataMatchMethod

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    INVERT_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    MATCH_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    invert: builtins.bool
    name: builtins.str
    @property
    def match(self) -> global___RouteGrpcRouteMetadataMatchMethod: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        invert: builtins.bool = ...,
        name: builtins.str = ...,
        match: global___RouteGrpcRouteMetadataMatchMethod | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["match", b"match", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["invert", b"invert", "match", b"match", "name", b"name", "resource_info", b"resource_info"]) -> None: ...

global___RouteGrpcRouteMetadata = RouteGrpcRouteMetadata

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    SERVICE_NAME_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    METHOD_NAME_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    service_name: builtins.str
    @property
    def metadata(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RouteGrpcRouteMetadata]: ...
    method_name: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        service_name: builtins.str = ...,
        metadata: collections.abc.Iterable[global___RouteGrpcRouteMetadata] | None = ...,
        method_name: 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["metadata", b"metadata", "method_name", b"method_name", "resource_info", b"resource_info", "service_name", b"service_name"]) -> None: ...

global___RouteGrpcRouteMatch = RouteGrpcRouteMatch

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    TIMEOUT_FIELD_NUMBER: builtins.int
    RETRY_POLICY_FIELD_NUMBER: builtins.int
    MATCH_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def action(self) -> global___RouteGrpcRouteAction: ...
    @property
    def timeout(self) -> global___RouteGrpcTimeout: ...
    @property
    def retry_policy(self) -> global___RouteGrpcRetryPolicy: ...
    @property
    def match(self) -> global___RouteGrpcRouteMatch: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        action: global___RouteGrpcRouteAction | None = ...,
        timeout: global___RouteGrpcTimeout | None = ...,
        retry_policy: global___RouteGrpcRetryPolicy | None = ...,
        match: global___RouteGrpcRouteMatch | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["action", b"action", "match", b"match", "resource_info", b"resource_info", "retry_policy", b"retry_policy", "timeout", b"timeout"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["action", b"action", "match", b"match", "resource_info", b"resource_info", "retry_policy", b"retry_policy", "timeout", b"timeout"]) -> None: ...

global___RouteGrpcRoute = RouteGrpcRoute

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    WEIGHTED_TARGETS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def weighted_targets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RouteWeightedTarget]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        weighted_targets: collections.abc.Iterable[global___RouteWeightedTarget] | 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["resource_info", b"resource_info", "weighted_targets", b"weighted_targets"]) -> None: ...

global___RouteTcpRouteAction = RouteTcpRouteAction

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

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

global___RouteTcpTimeout = RouteTcpTimeout

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    TIMEOUT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def action(self) -> global___RouteTcpRouteAction: ...
    @property
    def timeout(self) -> global___RouteTcpTimeout: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        action: global___RouteTcpRouteAction | None = ...,
        timeout: global___RouteTcpTimeout | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["action", b"action", "resource_info", b"resource_info", "timeout", b"timeout"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["action", b"action", "resource_info", b"resource_info", "timeout", b"timeout"]) -> None: ...

global___RouteTcpRoute = RouteTcpRoute

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    HTTP_ROUTE_FIELD_NUMBER: builtins.int
    PRIORITY_FIELD_NUMBER: builtins.int
    HTTP2_ROUTE_FIELD_NUMBER: builtins.int
    GRPC_ROUTE_FIELD_NUMBER: builtins.int
    TCP_ROUTE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def http_route(self) -> global___RouteHttpRoute: ...
    priority: builtins.int
    @property
    def http2_route(self) -> global___RouteHttpRoute: ...
    @property
    def grpc_route(self) -> global___RouteGrpcRoute: ...
    @property
    def tcp_route(self) -> global___RouteTcpRoute: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        http_route: global___RouteHttpRoute | None = ...,
        priority: builtins.int = ...,
        http2_route: global___RouteHttpRoute | None = ...,
        grpc_route: global___RouteGrpcRoute | None = ...,
        tcp_route: global___RouteTcpRoute | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["grpc_route", b"grpc_route", "http2_route", b"http2_route", "http_route", b"http_route", "resource_info", b"resource_info", "tcp_route", b"tcp_route"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["grpc_route", b"grpc_route", "http2_route", b"http2_route", "http_route", b"http_route", "priority", b"priority", "resource_info", b"resource_info", "tcp_route", b"tcp_route"]) -> None: ...

global___RouteRouteSpec = RouteRouteSpec

@typing_extensions.final
class Route(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
    MESH_NAME_FIELD_NUMBER: builtins.int
    VIRTUAL_ROUTER_NAME_FIELD_NUMBER: builtins.int
    MESH_OWNER_FIELD_NUMBER: builtins.int
    ROUTE_NAME_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    mesh_name: builtins.str
    virtual_router_name: builtins.str
    mesh_owner: builtins.str
    route_name: builtins.str
    @property
    def spec(self) -> global___RouteRouteSpec: ...
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        mesh_name: builtins.str = ...,
        virtual_router_name: builtins.str = ...,
        mesh_owner: builtins.str = ...,
        route_name: builtins.str = ...,
        spec: global___RouteRouteSpec | None = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "spec", b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["mesh_name", b"mesh_name", "mesh_owner", b"mesh_owner", "resource_info", b"resource_info", "route_name", b"route_name", "spec", b"spec", "tags", b"tags", "virtual_router_name", b"virtual_router_name"]) -> None: ...

global___Route = Route

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PATH_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    path: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        path: 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["path", b"path", "resource_info", b"resource_info"]) -> None: ...

global___VirtualGatewayVirtualGatewayFileAccessLog = VirtualGatewayVirtualGatewayFileAccessLog

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

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

global___VirtualGatewayVirtualGatewayAccessLog = VirtualGatewayVirtualGatewayAccessLog

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

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

global___VirtualGatewayVirtualGatewayLogging = VirtualGatewayVirtualGatewayLogging

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PATH_FIELD_NUMBER: builtins.int
    UNHEALTHY_THRESHOLD_FIELD_NUMBER: builtins.int
    PORT_FIELD_NUMBER: builtins.int
    HEALTHY_THRESHOLD_FIELD_NUMBER: builtins.int
    TIMEOUT_MILLIS_FIELD_NUMBER: builtins.int
    PROTOCOL_FIELD_NUMBER: builtins.int
    INTERVAL_MILLIS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    path: builtins.str
    unhealthy_threshold: builtins.int
    port: builtins.int
    healthy_threshold: builtins.int
    timeout_millis: builtins.int
    protocol: builtins.str
    interval_millis: builtins.int
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        path: builtins.str = ...,
        unhealthy_threshold: builtins.int = ...,
        port: builtins.int = ...,
        healthy_threshold: builtins.int = ...,
        timeout_millis: builtins.int = ...,
        protocol: builtins.str = ...,
        interval_millis: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["healthy_threshold", b"healthy_threshold", "interval_millis", b"interval_millis", "path", b"path", "port", b"port", "protocol", b"protocol", "resource_info", b"resource_info", "timeout_millis", b"timeout_millis", "unhealthy_threshold", b"unhealthy_threshold"]) -> None: ...

global___VirtualGatewayVirtualGatewayHealthCheckPolicy = VirtualGatewayVirtualGatewayHealthCheckPolicy

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    CERTIFICATE_ARN_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    certificate_arn: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        certificate_arn: 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["certificate_arn", b"certificate_arn", "resource_info", b"resource_info"]) -> None: ...

global___VirtualGatewayVirtualGatewayListenerTlsAcmCertificate = VirtualGatewayVirtualGatewayListenerTlsAcmCertificate

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PRIVATE_KEY_FIELD_NUMBER: builtins.int
    CERTIFICATE_CHAIN_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    private_key: builtins.str
    certificate_chain: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        private_key: builtins.str = ...,
        certificate_chain: 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["certificate_chain", b"certificate_chain", "private_key", b"private_key", "resource_info", b"resource_info"]) -> None: ...

global___VirtualGatewayVirtualGatewayListenerTlsFileCertificate = VirtualGatewayVirtualGatewayListenerTlsFileCertificate

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ACM_FIELD_NUMBER: builtins.int
    FILE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def acm(self) -> global___VirtualGatewayVirtualGatewayListenerTlsAcmCertificate: ...
    @property
    def file(self) -> global___VirtualGatewayVirtualGatewayListenerTlsFileCertificate: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        acm: global___VirtualGatewayVirtualGatewayListenerTlsAcmCertificate | None = ...,
        file: global___VirtualGatewayVirtualGatewayListenerTlsFileCertificate | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["acm", b"acm", "file", b"file", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["acm", b"acm", "file", b"file", "resource_info", b"resource_info"]) -> None: ...

global___VirtualGatewayVirtualGatewayListenerTlsCertificate = VirtualGatewayVirtualGatewayListenerTlsCertificate

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    MODE_FIELD_NUMBER: builtins.int
    CERTIFICATE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    mode: builtins.str
    @property
    def certificate(self) -> global___VirtualGatewayVirtualGatewayListenerTlsCertificate: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        mode: builtins.str = ...,
        certificate: global___VirtualGatewayVirtualGatewayListenerTlsCertificate | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["certificate", b"certificate", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["certificate", b"certificate", "mode", b"mode", "resource_info", b"resource_info"]) -> None: ...

global___VirtualGatewayVirtualGatewayListenerTls = VirtualGatewayVirtualGatewayListenerTls

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PORT_FIELD_NUMBER: builtins.int
    PROTOCOL_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    port: builtins.int
    protocol: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        port: builtins.int = ...,
        protocol: 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["port", b"port", "protocol", b"protocol", "resource_info", b"resource_info"]) -> None: ...

global___VirtualGatewayVirtualGatewayPortMapping = VirtualGatewayVirtualGatewayPortMapping

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    HEALTH_CHECK_FIELD_NUMBER: builtins.int
    TLS_FIELD_NUMBER: builtins.int
    PORT_MAPPING_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def health_check(self) -> global___VirtualGatewayVirtualGatewayHealthCheckPolicy: ...
    @property
    def tls(self) -> global___VirtualGatewayVirtualGatewayListenerTls: ...
    @property
    def port_mapping(self) -> global___VirtualGatewayVirtualGatewayPortMapping: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        health_check: global___VirtualGatewayVirtualGatewayHealthCheckPolicy | None = ...,
        tls: global___VirtualGatewayVirtualGatewayListenerTls | None = ...,
        port_mapping: global___VirtualGatewayVirtualGatewayPortMapping | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["health_check", b"health_check", "port_mapping", b"port_mapping", "resource_info", b"resource_info", "tls", b"tls"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["health_check", b"health_check", "port_mapping", b"port_mapping", "resource_info", b"resource_info", "tls", b"tls"]) -> None: ...

global___VirtualGatewayVirtualGatewayListener = VirtualGatewayVirtualGatewayListener

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    CERTIFICATE_AUTHORITY_ARNS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def certificate_authority_arns(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        certificate_authority_arns: collections.abc.Iterable[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["certificate_authority_arns", b"certificate_authority_arns", "resource_info", b"resource_info"]) -> None: ...

global___VirtualGatewayVirtualGatewayTlsValidationContextAcmTrust = VirtualGatewayVirtualGatewayTlsValidationContextAcmTrust

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    CERTIFICATE_CHAIN_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    certificate_chain: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        certificate_chain: 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["certificate_chain", b"certificate_chain", "resource_info", b"resource_info"]) -> None: ...

global___VirtualGatewayVirtualGatewayTlsValidationContextFileTrust = VirtualGatewayVirtualGatewayTlsValidationContextFileTrust

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ACM_FIELD_NUMBER: builtins.int
    FILE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def acm(self) -> global___VirtualGatewayVirtualGatewayTlsValidationContextAcmTrust: ...
    @property
    def file(self) -> global___VirtualGatewayVirtualGatewayTlsValidationContextFileTrust: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        acm: global___VirtualGatewayVirtualGatewayTlsValidationContextAcmTrust | None = ...,
        file: global___VirtualGatewayVirtualGatewayTlsValidationContextFileTrust | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["acm", b"acm", "file", b"file", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["acm", b"acm", "file", b"file", "resource_info", b"resource_info"]) -> None: ...

global___VirtualGatewayVirtualGatewayTlsValidationContextTrust = VirtualGatewayVirtualGatewayTlsValidationContextTrust

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

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

global___VirtualGatewayVirtualGatewayTlsValidationContext = VirtualGatewayVirtualGatewayTlsValidationContext

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    VALIDATION_FIELD_NUMBER: builtins.int
    ENFORCE_FIELD_NUMBER: builtins.int
    PORTS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def validation(self) -> global___VirtualGatewayVirtualGatewayTlsValidationContext: ...
    enforce: builtins.bool
    @property
    def ports(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        validation: global___VirtualGatewayVirtualGatewayTlsValidationContext | None = ...,
        enforce: builtins.bool = ...,
        ports: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "validation", b"validation"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["enforce", b"enforce", "ports", b"ports", "resource_info", b"resource_info", "validation", b"validation"]) -> None: ...

global___VirtualGatewayVirtualGatewayClientPolicyTls = VirtualGatewayVirtualGatewayClientPolicyTls

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

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

global___VirtualGatewayVirtualGatewayClientPolicy = VirtualGatewayVirtualGatewayClientPolicy

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

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

global___VirtualGatewayVirtualGatewayBackendDefaults = VirtualGatewayVirtualGatewayBackendDefaults

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    LOGGING_FIELD_NUMBER: builtins.int
    LISTENERS_FIELD_NUMBER: builtins.int
    BACKEND_DEFAULTS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def logging(self) -> global___VirtualGatewayVirtualGatewayLogging: ...
    @property
    def listeners(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VirtualGatewayVirtualGatewayListener]: ...
    @property
    def backend_defaults(self) -> global___VirtualGatewayVirtualGatewayBackendDefaults: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        logging: global___VirtualGatewayVirtualGatewayLogging | None = ...,
        listeners: collections.abc.Iterable[global___VirtualGatewayVirtualGatewayListener] | None = ...,
        backend_defaults: global___VirtualGatewayVirtualGatewayBackendDefaults | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["backend_defaults", b"backend_defaults", "logging", b"logging", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["backend_defaults", b"backend_defaults", "listeners", b"listeners", "logging", b"logging", "resource_info", b"resource_info"]) -> None: ...

global___VirtualGatewayVirtualGatewaySpec = VirtualGatewayVirtualGatewaySpec

@typing_extensions.final
class VirtualGateway(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
    VIRTUAL_GATEWAY_NAME_FIELD_NUMBER: builtins.int
    MESH_NAME_FIELD_NUMBER: builtins.int
    MESH_OWNER_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    virtual_gateway_name: builtins.str
    mesh_name: builtins.str
    mesh_owner: builtins.str
    @property
    def spec(self) -> global___VirtualGatewayVirtualGatewaySpec: ...
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        virtual_gateway_name: builtins.str = ...,
        mesh_name: builtins.str = ...,
        mesh_owner: builtins.str = ...,
        spec: global___VirtualGatewayVirtualGatewaySpec | None = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "spec", b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["mesh_name", b"mesh_name", "mesh_owner", b"mesh_owner", "resource_info", b"resource_info", "spec", b"spec", "tags", b"tags", "virtual_gateway_name", b"virtual_gateway_name"]) -> None: ...

global___VirtualGateway = VirtualGateway

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PATH_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    path: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        path: 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["path", b"path", "resource_info", b"resource_info"]) -> None: ...

global___VirtualNodeFileAccessLog = VirtualNodeFileAccessLog

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

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

global___VirtualNodeAccessLog = VirtualNodeAccessLog

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

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

global___VirtualNodeLogging = VirtualNodeLogging

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    CERTIFICATE_AUTHORITY_ARNS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def certificate_authority_arns(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        certificate_authority_arns: collections.abc.Iterable[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["certificate_authority_arns", b"certificate_authority_arns", "resource_info", b"resource_info"]) -> None: ...

global___VirtualNodeTlsValidationContextAcmTrust = VirtualNodeTlsValidationContextAcmTrust

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    CERTIFICATE_CHAIN_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    certificate_chain: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        certificate_chain: 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["certificate_chain", b"certificate_chain", "resource_info", b"resource_info"]) -> None: ...

global___VirtualNodeTlsValidationContextFileTrust = VirtualNodeTlsValidationContextFileTrust

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ACM_FIELD_NUMBER: builtins.int
    FILE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def acm(self) -> global___VirtualNodeTlsValidationContextAcmTrust: ...
    @property
    def file(self) -> global___VirtualNodeTlsValidationContextFileTrust: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        acm: global___VirtualNodeTlsValidationContextAcmTrust | None = ...,
        file: global___VirtualNodeTlsValidationContextFileTrust | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["acm", b"acm", "file", b"file", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["acm", b"acm", "file", b"file", "resource_info", b"resource_info"]) -> None: ...

global___VirtualNodeTlsValidationContextTrust = VirtualNodeTlsValidationContextTrust

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

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

global___VirtualNodeTlsValidationContext = VirtualNodeTlsValidationContext

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    VALIDATION_FIELD_NUMBER: builtins.int
    ENFORCE_FIELD_NUMBER: builtins.int
    PORTS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def validation(self) -> global___VirtualNodeTlsValidationContext: ...
    enforce: builtins.bool
    @property
    def ports(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        validation: global___VirtualNodeTlsValidationContext | None = ...,
        enforce: builtins.bool = ...,
        ports: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "validation", b"validation"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["enforce", b"enforce", "ports", b"ports", "resource_info", b"resource_info", "validation", b"validation"]) -> None: ...

global___VirtualNodeClientPolicyTls = VirtualNodeClientPolicyTls

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

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

global___VirtualNodeClientPolicy = VirtualNodeClientPolicy

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    CLIENT_POLICY_FIELD_NUMBER: builtins.int
    VIRTUAL_SERVICE_NAME_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def client_policy(self) -> global___VirtualNodeClientPolicy: ...
    virtual_service_name: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        client_policy: global___VirtualNodeClientPolicy | None = ...,
        virtual_service_name: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["client_policy", b"client_policy", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["client_policy", b"client_policy", "resource_info", b"resource_info", "virtual_service_name", b"virtual_service_name"]) -> None: ...

global___VirtualNodeVirtualServiceBackend = VirtualNodeVirtualServiceBackend

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

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

global___VirtualNodeBackend = VirtualNodeBackend

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    UNIT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    value: builtins.int
    unit: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        value: builtins.int = ...,
        unit: 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["resource_info", b"resource_info", "unit", b"unit", "value", b"value"]) -> None: ...

global___VirtualNodeDuration = VirtualNodeDuration

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

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

global___VirtualNodeTcpTimeout = VirtualNodeTcpTimeout

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PER_REQUEST_FIELD_NUMBER: builtins.int
    IDLE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def per_request(self) -> global___VirtualNodeDuration: ...
    @property
    def idle(self) -> global___VirtualNodeDuration: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        per_request: global___VirtualNodeDuration | None = ...,
        idle: global___VirtualNodeDuration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["idle", b"idle", "per_request", b"per_request", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["idle", b"idle", "per_request", b"per_request", "resource_info", b"resource_info"]) -> None: ...

global___VirtualNodeHttpTimeout = VirtualNodeHttpTimeout

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PER_REQUEST_FIELD_NUMBER: builtins.int
    IDLE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def per_request(self) -> global___VirtualNodeDuration: ...
    @property
    def idle(self) -> global___VirtualNodeDuration: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        per_request: global___VirtualNodeDuration | None = ...,
        idle: global___VirtualNodeDuration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["idle", b"idle", "per_request", b"per_request", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["idle", b"idle", "per_request", b"per_request", "resource_info", b"resource_info"]) -> None: ...

global___VirtualNodeGrpcTimeout = VirtualNodeGrpcTimeout

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    TCP_FIELD_NUMBER: builtins.int
    HTTP2_FIELD_NUMBER: builtins.int
    HTTP_FIELD_NUMBER: builtins.int
    GRPC_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def tcp(self) -> global___VirtualNodeTcpTimeout: ...
    @property
    def http2(self) -> global___VirtualNodeHttpTimeout: ...
    @property
    def http(self) -> global___VirtualNodeHttpTimeout: ...
    @property
    def grpc(self) -> global___VirtualNodeGrpcTimeout: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        tcp: global___VirtualNodeTcpTimeout | None = ...,
        http2: global___VirtualNodeHttpTimeout | None = ...,
        http: global___VirtualNodeHttpTimeout | None = ...,
        grpc: global___VirtualNodeGrpcTimeout | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["grpc", b"grpc", "http", b"http", "http2", b"http2", "resource_info", b"resource_info", "tcp", b"tcp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["grpc", b"grpc", "http", b"http", "http2", b"http2", "resource_info", b"resource_info", "tcp", b"tcp"]) -> None: ...

global___VirtualNodeListenerTimeout = VirtualNodeListenerTimeout

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PATH_FIELD_NUMBER: builtins.int
    UNHEALTHY_THRESHOLD_FIELD_NUMBER: builtins.int
    PORT_FIELD_NUMBER: builtins.int
    HEALTHY_THRESHOLD_FIELD_NUMBER: builtins.int
    TIMEOUT_MILLIS_FIELD_NUMBER: builtins.int
    PROTOCOL_FIELD_NUMBER: builtins.int
    INTERVAL_MILLIS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    path: builtins.str
    unhealthy_threshold: builtins.int
    port: builtins.int
    healthy_threshold: builtins.int
    timeout_millis: builtins.int
    protocol: builtins.str
    interval_millis: builtins.int
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        path: builtins.str = ...,
        unhealthy_threshold: builtins.int = ...,
        port: builtins.int = ...,
        healthy_threshold: builtins.int = ...,
        timeout_millis: builtins.int = ...,
        protocol: builtins.str = ...,
        interval_millis: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["healthy_threshold", b"healthy_threshold", "interval_millis", b"interval_millis", "path", b"path", "port", b"port", "protocol", b"protocol", "resource_info", b"resource_info", "timeout_millis", b"timeout_millis", "unhealthy_threshold", b"unhealthy_threshold"]) -> None: ...

global___VirtualNodeHealthCheck = VirtualNodeHealthCheck

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    CERTIFICATE_ARN_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    certificate_arn: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        certificate_arn: 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["certificate_arn", b"certificate_arn", "resource_info", b"resource_info"]) -> None: ...

global___VirtualNodeListenerTlsAcmCertificate = VirtualNodeListenerTlsAcmCertificate

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PRIVATE_KEY_FIELD_NUMBER: builtins.int
    CERTIFICATE_CHAIN_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    private_key: builtins.str
    certificate_chain: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        private_key: builtins.str = ...,
        certificate_chain: 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["certificate_chain", b"certificate_chain", "private_key", b"private_key", "resource_info", b"resource_info"]) -> None: ...

global___VirtualNodeListenerTlsFileCertificate = VirtualNodeListenerTlsFileCertificate

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ACM_FIELD_NUMBER: builtins.int
    FILE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def acm(self) -> global___VirtualNodeListenerTlsAcmCertificate: ...
    @property
    def file(self) -> global___VirtualNodeListenerTlsFileCertificate: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        acm: global___VirtualNodeListenerTlsAcmCertificate | None = ...,
        file: global___VirtualNodeListenerTlsFileCertificate | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["acm", b"acm", "file", b"file", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["acm", b"acm", "file", b"file", "resource_info", b"resource_info"]) -> None: ...

global___VirtualNodeListenerTlsCertificate = VirtualNodeListenerTlsCertificate

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    MODE_FIELD_NUMBER: builtins.int
    CERTIFICATE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    mode: builtins.str
    @property
    def certificate(self) -> global___VirtualNodeListenerTlsCertificate: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        mode: builtins.str = ...,
        certificate: global___VirtualNodeListenerTlsCertificate | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["certificate", b"certificate", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["certificate", b"certificate", "mode", b"mode", "resource_info", b"resource_info"]) -> None: ...

global___VirtualNodeListenerTls = VirtualNodeListenerTls

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PORT_FIELD_NUMBER: builtins.int
    PROTOCOL_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    port: builtins.int
    protocol: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        port: builtins.int = ...,
        protocol: 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["port", b"port", "protocol", b"protocol", "resource_info", b"resource_info"]) -> None: ...

global___VirtualNodePortMapping = VirtualNodePortMapping

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    TIMEOUT_FIELD_NUMBER: builtins.int
    HEALTH_CHECK_FIELD_NUMBER: builtins.int
    TLS_FIELD_NUMBER: builtins.int
    PORT_MAPPING_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def timeout(self) -> global___VirtualNodeListenerTimeout: ...
    @property
    def health_check(self) -> global___VirtualNodeHealthCheck: ...
    @property
    def tls(self) -> global___VirtualNodeListenerTls: ...
    @property
    def port_mapping(self) -> global___VirtualNodePortMapping: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        timeout: global___VirtualNodeListenerTimeout | None = ...,
        health_check: global___VirtualNodeHealthCheck | None = ...,
        tls: global___VirtualNodeListenerTls | None = ...,
        port_mapping: global___VirtualNodePortMapping | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["health_check", b"health_check", "port_mapping", b"port_mapping", "resource_info", b"resource_info", "timeout", b"timeout", "tls", b"tls"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["health_check", b"health_check", "port_mapping", b"port_mapping", "resource_info", b"resource_info", "timeout", b"timeout", "tls", b"tls"]) -> None: ...

global___VirtualNodeListener = VirtualNodeListener

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

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

global___VirtualNodeBackendDefaults = VirtualNodeBackendDefaults

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    HOSTNAME_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    hostname: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        hostname: 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["hostname", b"hostname", "resource_info", b"resource_info"]) -> None: ...

global___VirtualNodeDnsServiceDiscovery = VirtualNodeDnsServiceDiscovery

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    KEY_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    value: builtins.str
    key: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        value: builtins.str = ...,
        key: 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["key", b"key", "resource_info", b"resource_info", "value", b"value"]) -> None: ...

global___VirtualNodeAwsCloudMapInstanceAttribute = VirtualNodeAwsCloudMapInstanceAttribute

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    NAMESPACE_NAME_FIELD_NUMBER: builtins.int
    SERVICE_NAME_FIELD_NUMBER: builtins.int
    ATTRIBUTES_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    namespace_name: builtins.str
    service_name: builtins.str
    @property
    def attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VirtualNodeAwsCloudMapInstanceAttribute]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        namespace_name: builtins.str = ...,
        service_name: builtins.str = ...,
        attributes: collections.abc.Iterable[global___VirtualNodeAwsCloudMapInstanceAttribute] | 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["attributes", b"attributes", "namespace_name", b"namespace_name", "resource_info", b"resource_info", "service_name", b"service_name"]) -> None: ...

global___VirtualNodeAwsCloudMapServiceDiscovery = VirtualNodeAwsCloudMapServiceDiscovery

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    DNS_FIELD_NUMBER: builtins.int
    AWS_CLOUD_MAP_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def dns(self) -> global___VirtualNodeDnsServiceDiscovery: ...
    @property
    def aws_cloud_map(self) -> global___VirtualNodeAwsCloudMapServiceDiscovery: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        dns: global___VirtualNodeDnsServiceDiscovery | None = ...,
        aws_cloud_map: global___VirtualNodeAwsCloudMapServiceDiscovery | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["aws_cloud_map", b"aws_cloud_map", "dns", b"dns", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["aws_cloud_map", b"aws_cloud_map", "dns", b"dns", "resource_info", b"resource_info"]) -> None: ...

global___VirtualNodeServiceDiscovery = VirtualNodeServiceDiscovery

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    LOGGING_FIELD_NUMBER: builtins.int
    BACKENDS_FIELD_NUMBER: builtins.int
    LISTENERS_FIELD_NUMBER: builtins.int
    BACKEND_DEFAULTS_FIELD_NUMBER: builtins.int
    SERVICE_DISCOVERY_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def logging(self) -> global___VirtualNodeLogging: ...
    @property
    def backends(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VirtualNodeBackend]: ...
    @property
    def listeners(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VirtualNodeListener]: ...
    @property
    def backend_defaults(self) -> global___VirtualNodeBackendDefaults: ...
    @property
    def service_discovery(self) -> global___VirtualNodeServiceDiscovery: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        logging: global___VirtualNodeLogging | None = ...,
        backends: collections.abc.Iterable[global___VirtualNodeBackend] | None = ...,
        listeners: collections.abc.Iterable[global___VirtualNodeListener] | None = ...,
        backend_defaults: global___VirtualNodeBackendDefaults | None = ...,
        service_discovery: global___VirtualNodeServiceDiscovery | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["backend_defaults", b"backend_defaults", "logging", b"logging", "resource_info", b"resource_info", "service_discovery", b"service_discovery"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["backend_defaults", b"backend_defaults", "backends", b"backends", "listeners", b"listeners", "logging", b"logging", "resource_info", b"resource_info", "service_discovery", b"service_discovery"]) -> None: ...

global___VirtualNodeVirtualNodeSpec = VirtualNodeVirtualNodeSpec

@typing_extensions.final
class VirtualNode(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
    MESH_NAME_FIELD_NUMBER: builtins.int
    MESH_OWNER_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    VIRTUAL_NODE_NAME_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    mesh_name: builtins.str
    mesh_owner: builtins.str
    @property
    def spec(self) -> global___VirtualNodeVirtualNodeSpec: ...
    virtual_node_name: 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 = ...,
        mesh_name: builtins.str = ...,
        mesh_owner: builtins.str = ...,
        spec: global___VirtualNodeVirtualNodeSpec | None = ...,
        virtual_node_name: 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", "spec", b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["mesh_name", b"mesh_name", "mesh_owner", b"mesh_owner", "resource_info", b"resource_info", "spec", b"spec", "tags", b"tags", "virtual_node_name", b"virtual_node_name"]) -> None: ...

global___VirtualNode = VirtualNode

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PORT_FIELD_NUMBER: builtins.int
    PROTOCOL_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    port: builtins.int
    protocol: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        port: builtins.int = ...,
        protocol: 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["port", b"port", "protocol", b"protocol", "resource_info", b"resource_info"]) -> None: ...

global___VirtualRouterPortMapping = VirtualRouterPortMapping

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

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

global___VirtualRouterVirtualRouterListener = VirtualRouterVirtualRouterListener

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    LISTENERS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def listeners(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VirtualRouterVirtualRouterListener]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        listeners: collections.abc.Iterable[global___VirtualRouterVirtualRouterListener] | 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["listeners", b"listeners", "resource_info", b"resource_info"]) -> None: ...

global___VirtualRouterVirtualRouterSpec = VirtualRouterVirtualRouterSpec

@typing_extensions.final
class VirtualRouter(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
    MESH_NAME_FIELD_NUMBER: builtins.int
    VIRTUAL_ROUTER_NAME_FIELD_NUMBER: builtins.int
    MESH_OWNER_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    mesh_name: builtins.str
    virtual_router_name: builtins.str
    mesh_owner: builtins.str
    @property
    def spec(self) -> global___VirtualRouterVirtualRouterSpec: ...
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        mesh_name: builtins.str = ...,
        virtual_router_name: builtins.str = ...,
        mesh_owner: builtins.str = ...,
        spec: global___VirtualRouterVirtualRouterSpec | None = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "spec", b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["mesh_name", b"mesh_name", "mesh_owner", b"mesh_owner", "resource_info", b"resource_info", "spec", b"spec", "tags", b"tags", "virtual_router_name", b"virtual_router_name"]) -> None: ...

global___VirtualRouter = VirtualRouter

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    VIRTUAL_NODE_NAME_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    virtual_node_name: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        virtual_node_name: 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["resource_info", b"resource_info", "virtual_node_name", b"virtual_node_name"]) -> None: ...

global___VirtualServiceVirtualNodeServiceProvider = VirtualServiceVirtualNodeServiceProvider

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    VIRTUAL_ROUTER_NAME_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    virtual_router_name: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        virtual_router_name: 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["resource_info", b"resource_info", "virtual_router_name", b"virtual_router_name"]) -> None: ...

global___VirtualServiceVirtualRouterServiceProvider = VirtualServiceVirtualRouterServiceProvider

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    VIRTUAL_NODE_FIELD_NUMBER: builtins.int
    VIRTUAL_ROUTER_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def virtual_node(self) -> global___VirtualServiceVirtualNodeServiceProvider: ...
    @property
    def virtual_router(self) -> global___VirtualServiceVirtualRouterServiceProvider: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        virtual_node: global___VirtualServiceVirtualNodeServiceProvider | None = ...,
        virtual_router: global___VirtualServiceVirtualRouterServiceProvider | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "virtual_node", b"virtual_node", "virtual_router", b"virtual_router"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "virtual_node", b"virtual_node", "virtual_router", b"virtual_router"]) -> None: ...

global___VirtualServiceVirtualServiceProvider = VirtualServiceVirtualServiceProvider

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

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

global___VirtualServiceVirtualServiceSpec = VirtualServiceVirtualServiceSpec

@typing_extensions.final
class VirtualService(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
    MESH_NAME_FIELD_NUMBER: builtins.int
    MESH_OWNER_FIELD_NUMBER: builtins.int
    VIRTUAL_SERVICE_NAME_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    mesh_name: builtins.str
    mesh_owner: builtins.str
    virtual_service_name: builtins.str
    @property
    def spec(self) -> global___VirtualServiceVirtualServiceSpec: ...
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        mesh_name: builtins.str = ...,
        mesh_owner: builtins.str = ...,
        virtual_service_name: builtins.str = ...,
        spec: global___VirtualServiceVirtualServiceSpec | None = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "spec", b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["mesh_name", b"mesh_name", "mesh_owner", b"mesh_owner", "resource_info", b"resource_info", "spec", b"spec", "tags", b"tags", "virtual_service_name", b"virtual_service_name"]) -> None: ...

global___VirtualService = VirtualService
