"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
Warning: this entire file is deprecated. Use this instead:
https://github.com/grpc/grpc-proto/blob/master/grpc/reflection/v1/reflection.proto
"""

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class ServerReflectionRequest(google.protobuf.message.Message):
    """The message sent by the client when calling ServerReflectionInfo method."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HOST_FIELD_NUMBER: builtins.int
    FILE_BY_FILENAME_FIELD_NUMBER: builtins.int
    FILE_CONTAINING_SYMBOL_FIELD_NUMBER: builtins.int
    FILE_CONTAINING_EXTENSION_FIELD_NUMBER: builtins.int
    ALL_EXTENSION_NUMBERS_OF_TYPE_FIELD_NUMBER: builtins.int
    LIST_SERVICES_FIELD_NUMBER: builtins.int
    host: builtins.str
    file_by_filename: builtins.str
    """Find a proto file by the file name."""
    file_containing_symbol: builtins.str
    """Find the proto file that declares the given fully-qualified symbol name.
    This field should be a fully-qualified symbol name
    (e.g. <package>.<service>[.<method>] or <package>.<type>).
    """
    all_extension_numbers_of_type: builtins.str
    """Finds the tag numbers used by all known extensions of extendee_type, and
    appends them to ExtensionNumberResponse in an undefined order.
    Its corresponding method is best-effort: it's not guaranteed that the
    reflection service will implement this method, and it's not guaranteed
    that this method will provide all extensions. Returns
    StatusCode::UNIMPLEMENTED if it's not implemented.
    This field should be a fully-qualified type name. The format is
    <package>.<type>
    """
    list_services: builtins.str
    """List the full names of registered services. The content will not be
    checked.
    """
    @property
    def file_containing_extension(self) -> global___ExtensionRequest:
        """Find the proto file which defines an extension extending the given
        message type with the given field number.
        """

    def __init__(
        self,
        *,
        host: builtins.str = ...,
        file_by_filename: builtins.str = ...,
        file_containing_symbol: builtins.str = ...,
        file_containing_extension: global___ExtensionRequest | None = ...,
        all_extension_numbers_of_type: builtins.str = ...,
        list_services: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["all_extension_numbers_of_type", b"all_extension_numbers_of_type", "file_by_filename", b"file_by_filename", "file_containing_extension", b"file_containing_extension", "file_containing_symbol", b"file_containing_symbol", "list_services", b"list_services", "message_request", b"message_request"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["all_extension_numbers_of_type", b"all_extension_numbers_of_type", "file_by_filename", b"file_by_filename", "file_containing_extension", b"file_containing_extension", "file_containing_symbol", b"file_containing_symbol", "host", b"host", "list_services", b"list_services", "message_request", b"message_request"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["message_request", b"message_request"]) -> typing.Literal["file_by_filename", "file_containing_symbol", "file_containing_extension", "all_extension_numbers_of_type", "list_services"] | None: ...

global___ServerReflectionRequest = ServerReflectionRequest

@typing.final
class ExtensionRequest(google.protobuf.message.Message):
    """The type name and extension number sent by the client when requesting
    file_containing_extension.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONTAINING_TYPE_FIELD_NUMBER: builtins.int
    EXTENSION_NUMBER_FIELD_NUMBER: builtins.int
    containing_type: builtins.str
    """Fully-qualified type name. The format should be <package>.<type>"""
    extension_number: builtins.int
    def __init__(
        self,
        *,
        containing_type: builtins.str = ...,
        extension_number: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["containing_type", b"containing_type", "extension_number", b"extension_number"]) -> None: ...

global___ExtensionRequest = ExtensionRequest

@typing.final
class ServerReflectionResponse(google.protobuf.message.Message):
    """The message sent by the server to answer ServerReflectionInfo method."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VALID_HOST_FIELD_NUMBER: builtins.int
    ORIGINAL_REQUEST_FIELD_NUMBER: builtins.int
    FILE_DESCRIPTOR_RESPONSE_FIELD_NUMBER: builtins.int
    ALL_EXTENSION_NUMBERS_RESPONSE_FIELD_NUMBER: builtins.int
    LIST_SERVICES_RESPONSE_FIELD_NUMBER: builtins.int
    ERROR_RESPONSE_FIELD_NUMBER: builtins.int
    valid_host: builtins.str
    @property
    def original_request(self) -> global___ServerReflectionRequest: ...
    @property
    def file_descriptor_response(self) -> global___FileDescriptorResponse:
        """This message is used to answer file_by_filename, file_containing_symbol,
        file_containing_extension requests with transitive dependencies. As
        the repeated label is not allowed in oneof fields, we use a
        FileDescriptorResponse message to encapsulate the repeated fields.
        The reflection service is allowed to avoid sending FileDescriptorProtos
        that were previously sent in response to earlier requests in the stream.
        """

    @property
    def all_extension_numbers_response(self) -> global___ExtensionNumberResponse:
        """This message is used to answer all_extension_numbers_of_type requst."""

    @property
    def list_services_response(self) -> global___ListServiceResponse:
        """This message is used to answer list_services request."""

    @property
    def error_response(self) -> global___ErrorResponse:
        """This message is used when an error occurs."""

    def __init__(
        self,
        *,
        valid_host: builtins.str = ...,
        original_request: global___ServerReflectionRequest | None = ...,
        file_descriptor_response: global___FileDescriptorResponse | None = ...,
        all_extension_numbers_response: global___ExtensionNumberResponse | None = ...,
        list_services_response: global___ListServiceResponse | None = ...,
        error_response: global___ErrorResponse | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["all_extension_numbers_response", b"all_extension_numbers_response", "error_response", b"error_response", "file_descriptor_response", b"file_descriptor_response", "list_services_response", b"list_services_response", "message_response", b"message_response", "original_request", b"original_request"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["all_extension_numbers_response", b"all_extension_numbers_response", "error_response", b"error_response", "file_descriptor_response", b"file_descriptor_response", "list_services_response", b"list_services_response", "message_response", b"message_response", "original_request", b"original_request", "valid_host", b"valid_host"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["message_response", b"message_response"]) -> typing.Literal["file_descriptor_response", "all_extension_numbers_response", "list_services_response", "error_response"] | None: ...

global___ServerReflectionResponse = ServerReflectionResponse

@typing.final
class FileDescriptorResponse(google.protobuf.message.Message):
    """Serialized FileDescriptorProto messages sent by the server answering
    a file_by_filename, file_containing_symbol, or file_containing_extension
    request.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FILE_DESCRIPTOR_PROTO_FIELD_NUMBER: builtins.int
    @property
    def file_descriptor_proto(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]:
        """Serialized FileDescriptorProto messages. We avoid taking a dependency on
        descriptor.proto, which uses proto2 only features, by making them opaque
        bytes instead.
        """

    def __init__(
        self,
        *,
        file_descriptor_proto: collections.abc.Iterable[builtins.bytes] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["file_descriptor_proto", b"file_descriptor_proto"]) -> None: ...

global___FileDescriptorResponse = FileDescriptorResponse

@typing.final
class ExtensionNumberResponse(google.protobuf.message.Message):
    """A list of extension numbers sent by the server answering
    all_extension_numbers_of_type request.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BASE_TYPE_NAME_FIELD_NUMBER: builtins.int
    EXTENSION_NUMBER_FIELD_NUMBER: builtins.int
    base_type_name: builtins.str
    """Full name of the base type, including the package name. The format
    is <package>.<type>
    """
    @property
    def extension_number(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        base_type_name: builtins.str = ...,
        extension_number: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["base_type_name", b"base_type_name", "extension_number", b"extension_number"]) -> None: ...

global___ExtensionNumberResponse = ExtensionNumberResponse

@typing.final
class ListServiceResponse(google.protobuf.message.Message):
    """A list of ServiceResponse sent by the server answering list_services request."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SERVICE_FIELD_NUMBER: builtins.int
    @property
    def service(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ServiceResponse]:
        """The information of each service may be expanded in the future, so we use
        ServiceResponse message to encapsulate it.
        """

    def __init__(
        self,
        *,
        service: collections.abc.Iterable[global___ServiceResponse] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["service", b"service"]) -> None: ...

global___ListServiceResponse = ListServiceResponse

@typing.final
class ServiceResponse(google.protobuf.message.Message):
    """The information of a single service used by ListServiceResponse to answer
    list_services request.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Full name of a registered service, including its package name. The format
    is <package>.<service>
    """
    def __init__(
        self,
        *,
        name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["name", b"name"]) -> None: ...

global___ServiceResponse = ServiceResponse

@typing.final
class ErrorResponse(google.protobuf.message.Message):
    """The error code and error message sent by the server when an error occurs."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ERROR_CODE_FIELD_NUMBER: builtins.int
    ERROR_MESSAGE_FIELD_NUMBER: builtins.int
    error_code: builtins.int
    """This field uses the error codes defined in grpc::StatusCode."""
    error_message: builtins.str
    def __init__(
        self,
        *,
        error_code: builtins.int = ...,
        error_message: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["error_code", b"error_code", "error_message", b"error_message"]) -> None: ...

global___ErrorResponse = ErrorResponse
