# Path: google/cloud/firestore_v1/types/document.py
# class Document(proto.Message):
# class Value(proto.Message):
# class ArrayValue(proto.Message):
# class MapValue(proto.Message):


import proto  # type: ignore
from google.cloud.firestore_v1.types import document
from google.protobuf import wrappers_pb2  # type: ignore
        fields = proto.RepeatedField(
            proto.MESSAGE, number=2, message="StructuredQuery.FieldReference",
        )

    select = proto.Field(proto.MESSAGE, number=1, message=Projection,)
    from_ = proto.RepeatedField(proto.MESSAGE, number=2, message=CollectionSelector,)
    where = proto.Field(proto.MESSAGE, number=3, message=Filter,)
    order_by = proto.RepeatedField(proto.MESSAGE, number=4, message=Order,)
    start_at = proto.Field(proto.MESSAGE, number=7, message="Cursor",)
    end_at = proto.Field(proto.MESSAGE, number=8, message="Cursor",)
    offset = proto.Field(proto.INT32, number=6,)
    limit = proto.Field(proto.MESSAGE, number=5, message=wrappers_pb2.Int32Value,)


class Cursor(proto.Message):
    r"""A position in a query result set.

    Attributes:
        values (Sequence[google.cloud.firestore_v1.types.Value]):
            The values that represent a position, in the
            order they appear in the order by clause of a
            query.
            Can contain fewer values than specified in the
            order by clause.
        before (bool):
            If the position is just before or just after
            the given values, relative to the sort order
            defined by the query.
    """


# Path: google/cloud/firestore_v1/types/document.py
# class Document(proto.Message):
# class Value(proto.Message):
# class ArrayValue(proto.Message):
# class MapValue(proto.Message):


# Path: google/cloud/firestore_v1/types/query.py
import proto  # type: ignore
from google.cloud.firestore_v1.types import document
from google.protobuf import wrappers_pb2  # type: ignore

        fields = proto.RepeatedField(
            proto.MESSAGE, number=2, message="StructuredQuery.FieldReference",
        )

    select = proto.Field(proto.MESSAGE, number=1, message=Projection,)
    from_ = proto.RepeatedField(proto.MESSAGE, number=2, message=CollectionSelector,)
    where = proto.Field(proto.MESSAGE, number=3, message=Filter,)
    order_by = proto.RepeatedField(proto.MESSAGE, number=4, message=Order,)
    start_at = proto.Field(proto.MESSAGE, number=7, message="Cursor",)
    end_at = proto.Field(proto.MESSAGE, number=8, message="Cursor",)
    offset = proto.Field(proto.INT32, number=6,)
    limit = proto.Field(proto.MESSAGE, number=5, message=wrappers_pb2.Int32Value,)


class Cursor(proto.Message):
    r"""A position in a query result set.

    Attributes:
        values (Sequence[google.cloud.firestore_v1.types.Value]):
            The values that represent a position, in the
            order they appear in the order by clause of a
            query.
            Can contain fewer values than specified in the
            order by clause.
        before (bool):
            If the position is just before or just after
            the given values, relative to the sort order
            defined by the query.
    """


    values = proto.RepeatedField(proto.MESSAGE, number=1, message=document.Value,)