# Path: google/cloud/firestore_v1/types/common.py
# class DocumentMask(proto.Message):
# class Precondition(proto.Message):
# class TransactionOptions(proto.Message):
#     class ReadWrite(proto.Message):
#     class ReadOnly(proto.Message):
# 
# 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
# class StructuredQuery(proto.Message):
#     class Direction(proto.Enum):
#     class CollectionSelector(proto.Message):
#     class Filter(proto.Message):
#     class CompositeFilter(proto.Message):
#         class Operator(proto.Enum):
#     class FieldFilter(proto.Message):
#         class Operator(proto.Enum):
#     class UnaryFilter(proto.Message):
#         class Operator(proto.Enum):
#     class Order(proto.Message):
#     class FieldReference(proto.Message):
#     class Projection(proto.Message):
# class Cursor(proto.Message):
#         DIRECTION_UNSPECIFIED = 0
#         ASCENDING = 1
#         DESCENDING = 2
#             OPERATOR_UNSPECIFIED = 0
#             AND = 1
#             OPERATOR_UNSPECIFIED = 0
#             LESS_THAN = 1
#             LESS_THAN_OR_EQUAL = 2
#             GREATER_THAN = 3
#             GREATER_THAN_OR_EQUAL = 4
#             EQUAL = 5
#             NOT_EQUAL = 6
#             ARRAY_CONTAINS = 7
#             IN = 8
#             ARRAY_CONTAINS_ANY = 9
#             NOT_IN = 10
#             OPERATOR_UNSPECIFIED = 0
#             IS_NAN = 2
#             IS_NULL = 3
#             IS_NOT_NAN = 4
#             IS_NOT_NULL = 5
# 
# Path: google/cloud/firestore_v1/types/write.py
# class Write(proto.Message):
# class DocumentTransform(proto.Message):
#     class FieldTransform(proto.Message):
#         class ServerValue(proto.Enum):
# class WriteResult(proto.Message):
# class DocumentChange(proto.Message):
# class DocumentDelete(proto.Message):
# class DocumentRemove(proto.Message):
# class ExistenceFilter(proto.Message):
#             SERVER_VALUE_UNSPECIFIED = 0
#             REQUEST_TIME = 1


import proto  # type: ignore
from google.cloud.firestore_v1.types import common
from google.cloud.firestore_v1.types import document as gf_document
from google.cloud.firestore_v1.types import query as gf_query
from google.cloud.firestore_v1.types import write
from google.protobuf import timestamp_pb2  # type: ignore
from google.rpc import status_pb2  # type: ignore
        "Target",
        "TargetChange",
        "ListCollectionIdsRequest",
        "ListCollectionIdsResponse",
        "BatchWriteRequest",
        "BatchWriteResponse",
    },
)


class GetDocumentRequest(proto.Message):
    r"""The request for
    [Firestore.GetDocument][google.firestore.v1.Firestore.GetDocument].

    This message has `oneof`_ fields (mutually exclusive fields).
    For each oneof, at most one member field can be set at the same time.
    Setting any member of the oneof automatically clears all other
    members.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            Required. The resource name of the Document to get. In the
            format:
            ``projects/{project_id}/databases/{database_id}/documents/{document_path}``.
        mask (google.cloud.firestore_v1.types.DocumentMask):
            The fields to return. If not set, returns all
            fields.
            If the document has a field that is not present

# Path: google/cloud/firestore_v1/types/common.py
# class DocumentMask(proto.Message):
# class Precondition(proto.Message):
# class TransactionOptions(proto.Message):
#     class ReadWrite(proto.Message):
#     class ReadOnly(proto.Message):
# 
# 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
# class StructuredQuery(proto.Message):
#     class Direction(proto.Enum):
#     class CollectionSelector(proto.Message):
#     class Filter(proto.Message):
#     class CompositeFilter(proto.Message):
#         class Operator(proto.Enum):
#     class FieldFilter(proto.Message):
#         class Operator(proto.Enum):
#     class UnaryFilter(proto.Message):
#         class Operator(proto.Enum):
#     class Order(proto.Message):
#     class FieldReference(proto.Message):
#     class Projection(proto.Message):
# class Cursor(proto.Message):
#         DIRECTION_UNSPECIFIED = 0
#         ASCENDING = 1
#         DESCENDING = 2
#             OPERATOR_UNSPECIFIED = 0
#             AND = 1
#             OPERATOR_UNSPECIFIED = 0
#             LESS_THAN = 1
#             LESS_THAN_OR_EQUAL = 2
#             GREATER_THAN = 3
#             GREATER_THAN_OR_EQUAL = 4
#             EQUAL = 5
#             NOT_EQUAL = 6
#             ARRAY_CONTAINS = 7
#             IN = 8
#             ARRAY_CONTAINS_ANY = 9
#             NOT_IN = 10
#             OPERATOR_UNSPECIFIED = 0
#             IS_NAN = 2
#             IS_NULL = 3
#             IS_NOT_NAN = 4
#             IS_NOT_NULL = 5
# 
# Path: google/cloud/firestore_v1/types/write.py
# class Write(proto.Message):
# class DocumentTransform(proto.Message):
#     class FieldTransform(proto.Message):
#         class ServerValue(proto.Enum):
# class WriteResult(proto.Message):
# class DocumentChange(proto.Message):
# class DocumentDelete(proto.Message):
# class DocumentRemove(proto.Message):
# class ExistenceFilter(proto.Message):
#             SERVER_VALUE_UNSPECIFIED = 0
#             REQUEST_TIME = 1


# Path: google/cloud/firestore_v1/types/firestore.py
import proto  # type: ignore
from google.cloud.firestore_v1.types import common
from google.cloud.firestore_v1.types import document as gf_document
from google.cloud.firestore_v1.types import query as gf_query
from google.cloud.firestore_v1.types import write
from google.protobuf import timestamp_pb2  # type: ignore
from google.rpc import status_pb2  # type: ignore

        "Target",
        "TargetChange",
        "ListCollectionIdsRequest",
        "ListCollectionIdsResponse",
        "BatchWriteRequest",
        "BatchWriteResponse",
    },
)


class GetDocumentRequest(proto.Message):
    r"""The request for
    [Firestore.GetDocument][google.firestore.v1.Firestore.GetDocument].

    This message has `oneof`_ fields (mutually exclusive fields).
    For each oneof, at most one member field can be set at the same time.
    Setting any member of the oneof automatically clears all other
    members.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            Required. The resource name of the Document to get. In the
            format:
            ``projects/{project_id}/databases/{database_id}/documents/{document_path}``.
        mask (google.cloud.firestore_v1.types.DocumentMask):
            The fields to return. If not set, returns all
            fields.
            If the document has a field that is not present

            in this mask, that field will not be returned in