"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import cosmos.base.query.v1beta1.pagination_pb2
import google.protobuf.any_pb2
import google.protobuf.descriptor
import google.protobuf.duration_pb2
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.timestamp_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 GetRequest(google.protobuf.message.Message):
    """GetRequest is the Query/Get request type."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MESSAGE_NAME_FIELD_NUMBER: builtins.int
    INDEX_FIELD_NUMBER: builtins.int
    VALUES_FIELD_NUMBER: builtins.int
    message_name: builtins.str
    """message_name is the fully-qualified message name of the ORM table being queried."""
    index: builtins.str
    """index is the index fields expression used in orm definitions. If it
    is empty, the table's primary key is assumed. If it is non-empty, it must
    refer to an unique index.
    """
    @property
    def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___IndexValue]:
        """values are the values of the fields corresponding to the requested index.
        There must be as many values provided as there are fields in the index and
        these values must correspond to the index field types.
        """
    def __init__(
        self,
        *,
        message_name: builtins.str = ...,
        index: builtins.str = ...,
        values: collections.abc.Iterable[global___IndexValue] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["index", b"index", "message_name", b"message_name", "values", b"values"]) -> None: ...

global___GetRequest = GetRequest

@typing_extensions.final
class GetResponse(google.protobuf.message.Message):
    """GetResponse is the Query/Get response type."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESULT_FIELD_NUMBER: builtins.int
    @property
    def result(self) -> google.protobuf.any_pb2.Any:
        """result is the result of the get query. If no value is found, the gRPC
        status code NOT_FOUND will be returned.
        """
    def __init__(
        self,
        *,
        result: google.protobuf.any_pb2.Any | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ...

global___GetResponse = GetResponse

@typing_extensions.final
class ListRequest(google.protobuf.message.Message):
    """ListRequest is the Query/List request type."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class Prefix(google.protobuf.message.Message):
        """Prefix specifies the arguments to a prefix query."""

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        VALUES_FIELD_NUMBER: builtins.int
        @property
        def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___IndexValue]:
            """values specifies the index values for the prefix query.
            It is valid to special a partial prefix with fewer values than
            the number of fields in the index.
            """
        def __init__(
            self,
            *,
            values: collections.abc.Iterable[global___IndexValue] | None = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ...

    @typing_extensions.final
    class Range(google.protobuf.message.Message):
        """Range specifies the arguments to a range query."""

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        START_FIELD_NUMBER: builtins.int
        END_FIELD_NUMBER: builtins.int
        @property
        def start(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___IndexValue]:
            """start specifies the starting index values for the range query.
            It is valid to provide fewer values than the number of fields in the
            index.
            """
        @property
        def end(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___IndexValue]:
            """end specifies the inclusive ending index values for the range query.
            It is valid to provide fewer values than the number of fields in the
            index.
            """
        def __init__(
            self,
            *,
            start: collections.abc.Iterable[global___IndexValue] | None = ...,
            end: collections.abc.Iterable[global___IndexValue] | None = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["end", b"end", "start", b"start"]) -> None: ...

    MESSAGE_NAME_FIELD_NUMBER: builtins.int
    INDEX_FIELD_NUMBER: builtins.int
    PREFIX_FIELD_NUMBER: builtins.int
    RANGE_FIELD_NUMBER: builtins.int
    PAGINATION_FIELD_NUMBER: builtins.int
    message_name: builtins.str
    """message_name is the fully-qualified message name of the ORM table being queried."""
    index: builtins.str
    """index is the index fields expression used in orm definitions. If it
    is empty, the table's primary key is assumed.
    """
    @property
    def prefix(self) -> global___ListRequest.Prefix:
        """prefix defines a prefix query."""
    @property
    def range(self) -> global___ListRequest.Range:
        """range defines a range query."""
    @property
    def pagination(self) -> cosmos.base.query.v1beta1.pagination_pb2.PageRequest:
        """pagination is the pagination request."""
    def __init__(
        self,
        *,
        message_name: builtins.str = ...,
        index: builtins.str = ...,
        prefix: global___ListRequest.Prefix | None = ...,
        range: global___ListRequest.Range | None = ...,
        pagination: cosmos.base.query.v1beta1.pagination_pb2.PageRequest | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "prefix", b"prefix", "query", b"query", "range", b"range"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["index", b"index", "message_name", b"message_name", "pagination", b"pagination", "prefix", b"prefix", "query", b"query", "range", b"range"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["query", b"query"]) -> typing_extensions.Literal["prefix", "range"] | None: ...

global___ListRequest = ListRequest

@typing_extensions.final
class ListResponse(google.protobuf.message.Message):
    """ListResponse is the Query/List response type."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESULTS_FIELD_NUMBER: builtins.int
    PAGINATION_FIELD_NUMBER: builtins.int
    @property
    def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.any_pb2.Any]:
        """results are the results of the query."""
    @property
    def pagination(self) -> cosmos.base.query.v1beta1.pagination_pb2.PageResponse:
        """pagination is the pagination response."""
    def __init__(
        self,
        *,
        results: collections.abc.Iterable[google.protobuf.any_pb2.Any] | None = ...,
        pagination: cosmos.base.query.v1beta1.pagination_pb2.PageResponse | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "results", b"results"]) -> None: ...

global___ListResponse = ListResponse

@typing_extensions.final
class IndexValue(google.protobuf.message.Message):
    """IndexValue represents the value of a field in an ORM index expression."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    UINT_FIELD_NUMBER: builtins.int
    INT_FIELD_NUMBER: builtins.int
    STR_FIELD_NUMBER: builtins.int
    BYTES_FIELD_NUMBER: builtins.int
    ENUM_FIELD_NUMBER: builtins.int
    BOOL_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    DURATION_FIELD_NUMBER: builtins.int
    uint: builtins.int
    """uint specifies a value for an uint32, fixed32, uint64, or fixed64
    index field.
    """
    int: builtins.int
    """int64 specifies a value for an int32, sfixed32, int64, or sfixed64
    index field.
    """
    str: builtins.str
    """str specifies a value for a string index field."""
    bytes: builtins.bytes
    """bytes specifies a value for a bytes index field."""
    enum: builtins.str
    """enum specifies a value for an enum index field."""
    bool: builtins.bool
    """bool specifies a value for a bool index field."""
    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """timestamp specifies a value for a timestamp index field."""
    @property
    def duration(self) -> google.protobuf.duration_pb2.Duration:
        """duration specifies a value for a duration index field."""
    def __init__(
        self,
        *,
        uint: builtins.int = ...,
        int: builtins.int = ...,
        str: builtins.str = ...,
        bytes: builtins.bytes = ...,
        enum: builtins.str = ...,
        bool: builtins.bool = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        duration: google.protobuf.duration_pb2.Duration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["bool", b"bool", "bytes", b"bytes", "duration", b"duration", "enum", b"enum", "int", b"int", "str", b"str", "timestamp", b"timestamp", "uint", b"uint", "value", b"value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["bool", b"bool", "bytes", b"bytes", "duration", b"duration", "enum", b"enum", "int", b"int", "str", b"str", "timestamp", b"timestamp", "uint", b"uint", "value", b"value"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["value", b"value"]) -> typing_extensions.Literal["uint", "int", "str", "bytes", "enum", "bool", "timestamp", "duration"] | None: ...

global___IndexValue = IndexValue
