# 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
    r"""The request for
    [Firestore.CreateDocument][google.firestore.v1.Firestore.CreateDocument].

    Attributes:
        parent (str):
            Required. The parent resource. For example:
            ``projects/{project_id}/databases/{database_id}/documents``
            or
            ``projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}``
        collection_id (str):
            Required. The collection ID, relative to ``parent``, to
            list. For example: ``chatrooms``.
        document_id (str):
            The client-assigned document ID to use for
            this document.
            Optional. If not specified, an ID will be
            assigned by the service.
        document (google.cloud.firestore_v1.types.Document):
            Required. The document to create. ``name`` must not be set.
        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
            the response.
    """

    parent = proto.Field(proto.STRING, number=1,)
    collection_id = proto.Field(proto.STRING, number=2,)
    document_id = proto.Field(proto.STRING, number=3,)

# 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

    r"""The request for
    [Firestore.CreateDocument][google.firestore.v1.Firestore.CreateDocument].

    Attributes:
        parent (str):
            Required. The parent resource. For example:
            ``projects/{project_id}/databases/{database_id}/documents``
            or
            ``projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}``
        collection_id (str):
            Required. The collection ID, relative to ``parent``, to
            list. For example: ``chatrooms``.
        document_id (str):
            The client-assigned document ID to use for
            this document.
            Optional. If not specified, an ID will be
            assigned by the service.
        document (google.cloud.firestore_v1.types.Document):
            Required. The document to create. ``name`` must not be set.
        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
            the response.
    """

    parent = proto.Field(proto.STRING, number=1,)
    collection_id = proto.Field(proto.STRING, number=2,)
    document_id = proto.Field(proto.STRING, number=3,)

    document = proto.Field(proto.MESSAGE, number=4, message=gf_document.Document,)