# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/datastore_v1/proto/entity.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database

# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
from google.type import latlng_pb2 as google_dot_type_dot_latlng__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
    name="google/cloud/datastore_v1/proto/entity.proto",
    package="google.datastore.v1",
    syntax="proto3",
    serialized_options=b"\n\027com.google.datastore.v1B\013EntityProtoP\001Z<google.golang.org/genproto/googleapis/datastore/v1;datastore\252\002\031Google.Cloud.Datastore.V1\312\002\031Google\\Cloud\\Datastore\\V1\352\002\034Google::Cloud::Datastore::V1",
    create_key=_descriptor._internal_create_key,
    serialized_pb=b'\n,google/cloud/datastore_v1/proto/entity.proto\x12\x13google.datastore.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x18google/type/latlng.proto"7\n\x0bPartitionId\x12\x12\n\nproject_id\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x04 \x01(\t"\xb7\x01\n\x03Key\x12\x36\n\x0cpartition_id\x18\x01 \x01(\x0b\x32 .google.datastore.v1.PartitionId\x12\x32\n\x04path\x18\x02 \x03(\x0b\x32$.google.datastore.v1.Key.PathElement\x1a\x44\n\x0bPathElement\x12\x0c\n\x04kind\x18\x01 \x01(\t\x12\x0c\n\x02id\x18\x02 \x01(\x03H\x00\x12\x0e\n\x04name\x18\x03 \x01(\tH\x00\x42\t\n\x07id_type"8\n\nArrayValue\x12*\n\x06values\x18\x01 \x03(\x0b\x32\x1a.google.datastore.v1.Value"\xf1\x03\n\x05Value\x12\x30\n\nnull_value\x18\x0b \x01(\x0e\x32\x1a.google.protobuf.NullValueH\x00\x12\x17\n\rboolean_value\x18\x01 \x01(\x08H\x00\x12\x17\n\rinteger_value\x18\x02 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x03 \x01(\x01H\x00\x12\x35\n\x0ftimestamp_value\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12-\n\tkey_value\x18\x05 \x01(\x0b\x32\x18.google.datastore.v1.KeyH\x00\x12\x16\n\x0cstring_value\x18\x11 \x01(\tH\x00\x12\x14\n\nblob_value\x18\x12 \x01(\x0cH\x00\x12.\n\x0fgeo_point_value\x18\x08 \x01(\x0b\x32\x13.google.type.LatLngH\x00\x12\x33\n\x0c\x65ntity_value\x18\x06 \x01(\x0b\x32\x1b.google.datastore.v1.EntityH\x00\x12\x36\n\x0b\x61rray_value\x18\t \x01(\x0b\x32\x1f.google.datastore.v1.ArrayValueH\x00\x12\x0f\n\x07meaning\x18\x0e \x01(\x05\x12\x1c\n\x14\x65xclude_from_indexes\x18\x13 \x01(\x08\x42\x0c\n\nvalue_type"\xbf\x01\n\x06\x45ntity\x12%\n\x03key\x18\x01 \x01(\x0b\x32\x18.google.datastore.v1.Key\x12?\n\nproperties\x18\x03 \x03(\x0b\x32+.google.datastore.v1.Entity.PropertiesEntry\x1aM\n\x0fPropertiesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.datastore.v1.Value:\x02\x38\x01\x42\xbd\x01\n\x17\x63om.google.datastore.v1B\x0b\x45ntityProtoP\x01Z<google.golang.org/genproto/googleapis/datastore/v1;datastore\xaa\x02\x19Google.Cloud.Datastore.V1\xca\x02\x19Google\\Cloud\\Datastore\\V1\xea\x02\x1cGoogle::Cloud::Datastore::V1b\x06proto3',
    dependencies=[
        google_dot_api_dot_annotations__pb2.DESCRIPTOR,
        google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,
        google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,
        google_dot_type_dot_latlng__pb2.DESCRIPTOR,
    ],
)


_PARTITIONID = _descriptor.Descriptor(
    name="PartitionId",
    full_name="google.datastore.v1.PartitionId",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name="project_id",
            full_name="google.datastore.v1.PartitionId.project_id",
            index=0,
            number=2,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=b"".decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="namespace_id",
            full_name="google.datastore.v1.PartitionId.namespace_id",
            index=1,
            number=4,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=b"".decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=188,
    serialized_end=243,
)


_KEY_PATHELEMENT = _descriptor.Descriptor(
    name="PathElement",
    full_name="google.datastore.v1.Key.PathElement",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name="kind",
            full_name="google.datastore.v1.Key.PathElement.kind",
            index=0,
            number=1,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=b"".decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="id",
            full_name="google.datastore.v1.Key.PathElement.id",
            index=1,
            number=2,
            type=3,
            cpp_type=2,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="name",
            full_name="google.datastore.v1.Key.PathElement.name",
            index=2,
            number=3,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=b"".decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[
        _descriptor.OneofDescriptor(
            name="id_type",
            full_name="google.datastore.v1.Key.PathElement.id_type",
            index=0,
            containing_type=None,
            create_key=_descriptor._internal_create_key,
            fields=[],
        ),
    ],
    serialized_start=361,
    serialized_end=429,
)

_KEY = _descriptor.Descriptor(
    name="Key",
    full_name="google.datastore.v1.Key",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name="partition_id",
            full_name="google.datastore.v1.Key.partition_id",
            index=0,
            number=1,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="path",
            full_name="google.datastore.v1.Key.path",
            index=1,
            number=2,
            type=11,
            cpp_type=10,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
    ],
    extensions=[],
    nested_types=[_KEY_PATHELEMENT,],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=246,
    serialized_end=429,
)


_ARRAYVALUE = _descriptor.Descriptor(
    name="ArrayValue",
    full_name="google.datastore.v1.ArrayValue",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name="values",
            full_name="google.datastore.v1.ArrayValue.values",
            index=0,
            number=1,
            type=11,
            cpp_type=10,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=431,
    serialized_end=487,
)


_VALUE = _descriptor.Descriptor(
    name="Value",
    full_name="google.datastore.v1.Value",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name="null_value",
            full_name="google.datastore.v1.Value.null_value",
            index=0,
            number=11,
            type=14,
            cpp_type=8,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="boolean_value",
            full_name="google.datastore.v1.Value.boolean_value",
            index=1,
            number=1,
            type=8,
            cpp_type=7,
            label=1,
            has_default_value=False,
            default_value=False,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="integer_value",
            full_name="google.datastore.v1.Value.integer_value",
            index=2,
            number=2,
            type=3,
            cpp_type=2,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="double_value",
            full_name="google.datastore.v1.Value.double_value",
            index=3,
            number=3,
            type=1,
            cpp_type=5,
            label=1,
            has_default_value=False,
            default_value=float(0),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="timestamp_value",
            full_name="google.datastore.v1.Value.timestamp_value",
            index=4,
            number=10,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="key_value",
            full_name="google.datastore.v1.Value.key_value",
            index=5,
            number=5,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="string_value",
            full_name="google.datastore.v1.Value.string_value",
            index=6,
            number=17,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=b"".decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="blob_value",
            full_name="google.datastore.v1.Value.blob_value",
            index=7,
            number=18,
            type=12,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=b"",
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="geo_point_value",
            full_name="google.datastore.v1.Value.geo_point_value",
            index=8,
            number=8,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="entity_value",
            full_name="google.datastore.v1.Value.entity_value",
            index=9,
            number=6,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="array_value",
            full_name="google.datastore.v1.Value.array_value",
            index=10,
            number=9,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="meaning",
            full_name="google.datastore.v1.Value.meaning",
            index=11,
            number=14,
            type=5,
            cpp_type=1,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="exclude_from_indexes",
            full_name="google.datastore.v1.Value.exclude_from_indexes",
            index=12,
            number=19,
            type=8,
            cpp_type=7,
            label=1,
            has_default_value=False,
            default_value=False,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[
        _descriptor.OneofDescriptor(
            name="value_type",
            full_name="google.datastore.v1.Value.value_type",
            index=0,
            containing_type=None,
            create_key=_descriptor._internal_create_key,
            fields=[],
        ),
    ],
    serialized_start=490,
    serialized_end=987,
)


_ENTITY_PROPERTIESENTRY = _descriptor.Descriptor(
    name="PropertiesEntry",
    full_name="google.datastore.v1.Entity.PropertiesEntry",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name="key",
            full_name="google.datastore.v1.Entity.PropertiesEntry.key",
            index=0,
            number=1,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=b"".decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="value",
            full_name="google.datastore.v1.Entity.PropertiesEntry.value",
            index=1,
            number=2,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=b"8\001",
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=1104,
    serialized_end=1181,
)

_ENTITY = _descriptor.Descriptor(
    name="Entity",
    full_name="google.datastore.v1.Entity",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name="key",
            full_name="google.datastore.v1.Entity.key",
            index=0,
            number=1,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.FieldDescriptor(
            name="properties",
            full_name="google.datastore.v1.Entity.properties",
            index=1,
            number=3,
            type=11,
            cpp_type=10,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key,
        ),
    ],
    extensions=[],
    nested_types=[_ENTITY_PROPERTIESENTRY,],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=990,
    serialized_end=1181,
)

_KEY_PATHELEMENT.containing_type = _KEY
_KEY_PATHELEMENT.oneofs_by_name["id_type"].fields.append(
    _KEY_PATHELEMENT.fields_by_name["id"]
)
_KEY_PATHELEMENT.fields_by_name[
    "id"
].containing_oneof = _KEY_PATHELEMENT.oneofs_by_name["id_type"]
_KEY_PATHELEMENT.oneofs_by_name["id_type"].fields.append(
    _KEY_PATHELEMENT.fields_by_name["name"]
)
_KEY_PATHELEMENT.fields_by_name[
    "name"
].containing_oneof = _KEY_PATHELEMENT.oneofs_by_name["id_type"]
_KEY.fields_by_name["partition_id"].message_type = _PARTITIONID
_KEY.fields_by_name["path"].message_type = _KEY_PATHELEMENT
_ARRAYVALUE.fields_by_name["values"].message_type = _VALUE
_VALUE.fields_by_name[
    "null_value"
].enum_type = google_dot_protobuf_dot_struct__pb2._NULLVALUE
_VALUE.fields_by_name[
    "timestamp_value"
].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_VALUE.fields_by_name["key_value"].message_type = _KEY
_VALUE.fields_by_name[
    "geo_point_value"
].message_type = google_dot_type_dot_latlng__pb2._LATLNG
_VALUE.fields_by_name["entity_value"].message_type = _ENTITY
_VALUE.fields_by_name["array_value"].message_type = _ARRAYVALUE
_VALUE.oneofs_by_name["value_type"].fields.append(_VALUE.fields_by_name["null_value"])
_VALUE.fields_by_name["null_value"].containing_oneof = _VALUE.oneofs_by_name[
    "value_type"
]
_VALUE.oneofs_by_name["value_type"].fields.append(
    _VALUE.fields_by_name["boolean_value"]
)
_VALUE.fields_by_name["boolean_value"].containing_oneof = _VALUE.oneofs_by_name[
    "value_type"
]
_VALUE.oneofs_by_name["value_type"].fields.append(
    _VALUE.fields_by_name["integer_value"]
)
_VALUE.fields_by_name["integer_value"].containing_oneof = _VALUE.oneofs_by_name[
    "value_type"
]
_VALUE.oneofs_by_name["value_type"].fields.append(_VALUE.fields_by_name["double_value"])
_VALUE.fields_by_name["double_value"].containing_oneof = _VALUE.oneofs_by_name[
    "value_type"
]
_VALUE.oneofs_by_name["value_type"].fields.append(
    _VALUE.fields_by_name["timestamp_value"]
)
_VALUE.fields_by_name["timestamp_value"].containing_oneof = _VALUE.oneofs_by_name[
    "value_type"
]
_VALUE.oneofs_by_name["value_type"].fields.append(_VALUE.fields_by_name["key_value"])
_VALUE.fields_by_name["key_value"].containing_oneof = _VALUE.oneofs_by_name[
    "value_type"
]
_VALUE.oneofs_by_name["value_type"].fields.append(_VALUE.fields_by_name["string_value"])
_VALUE.fields_by_name["string_value"].containing_oneof = _VALUE.oneofs_by_name[
    "value_type"
]
_VALUE.oneofs_by_name["value_type"].fields.append(_VALUE.fields_by_name["blob_value"])
_VALUE.fields_by_name["blob_value"].containing_oneof = _VALUE.oneofs_by_name[
    "value_type"
]
_VALUE.oneofs_by_name["value_type"].fields.append(
    _VALUE.fields_by_name["geo_point_value"]
)
_VALUE.fields_by_name["geo_point_value"].containing_oneof = _VALUE.oneofs_by_name[
    "value_type"
]
_VALUE.oneofs_by_name["value_type"].fields.append(_VALUE.fields_by_name["entity_value"])
_VALUE.fields_by_name["entity_value"].containing_oneof = _VALUE.oneofs_by_name[
    "value_type"
]
_VALUE.oneofs_by_name["value_type"].fields.append(_VALUE.fields_by_name["array_value"])
_VALUE.fields_by_name["array_value"].containing_oneof = _VALUE.oneofs_by_name[
    "value_type"
]
_ENTITY_PROPERTIESENTRY.fields_by_name["value"].message_type = _VALUE
_ENTITY_PROPERTIESENTRY.containing_type = _ENTITY
_ENTITY.fields_by_name["key"].message_type = _KEY
_ENTITY.fields_by_name["properties"].message_type = _ENTITY_PROPERTIESENTRY
DESCRIPTOR.message_types_by_name["PartitionId"] = _PARTITIONID
DESCRIPTOR.message_types_by_name["Key"] = _KEY
DESCRIPTOR.message_types_by_name["ArrayValue"] = _ARRAYVALUE
DESCRIPTOR.message_types_by_name["Value"] = _VALUE
DESCRIPTOR.message_types_by_name["Entity"] = _ENTITY
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

PartitionId = _reflection.GeneratedProtocolMessageType(
    "PartitionId",
    (_message.Message,),
    {
        "DESCRIPTOR": _PARTITIONID,
        "__module__": "google.cloud.datastore_v1.proto.entity_pb2",
        "__doc__": """A partition ID identifies a grouping of entities. The grouping is
  always by project and namespace, however the namespace ID may be
  empty.  A partition ID contains several dimensions: project ID and
  namespace ID.  Partition dimensions:  -  May be ``""``. -  Must be
  valid UTF-8 bytes. -  Must have values that match regex
  ``[A-Za-z\d\.\-_]{1,100}`` If the    value of any dimension matches
  regex ``__.*__``, the partition is    reserved/read-only. A
  reserved/read-only partition ID is forbidden in    certain documented
  contexts.  Foreign partition IDs (in which the project ID does not
  match the context project ID ) are discouraged. Reads and writes of
  foreign partition IDs may fail if the project is not in an active
  state.
  
  Attributes:
      project_id:
          The ID of the project to which the entities belong.
      namespace_id:
          If not empty, the ID of the namespace to which the entities
          belong.
  """,
        # @@protoc_insertion_point(class_scope:google.datastore.v1.PartitionId)
    },
)
_sym_db.RegisterMessage(PartitionId)

Key = _reflection.GeneratedProtocolMessageType(
    "Key",
    (_message.Message,),
    {
        "PathElement": _reflection.GeneratedProtocolMessageType(
            "PathElement",
            (_message.Message,),
            {
                "DESCRIPTOR": _KEY_PATHELEMENT,
                "__module__": "google.cloud.datastore_v1.proto.entity_pb2",
                "__doc__": """A (kind, ID/name) pair used to construct a key path.  If either name
    or ID is set, the element is complete. If neither is set, the element
    is incomplete.
    
    Attributes:
        kind:
            The kind of the entity. A kind matching regex ``__.*__`` is
            reserved/read-only. A kind must not contain more than 1500
            bytes when UTF-8 encoded. Cannot be ``""``.
        id_type:
            The type of ID.
        id:
            The auto-allocated ID of the entity. Never equal to zero.
            Values less than zero are discouraged and may not be supported
            in the future.
        name:
            The name of the entity. A name matching regex ``__.*__`` is
            reserved/read-only. A name must not be more than 1500 bytes
            when UTF-8 encoded. Cannot be ``""``.
    """,
                # @@protoc_insertion_point(class_scope:google.datastore.v1.Key.PathElement)
            },
        ),
        "DESCRIPTOR": _KEY,
        "__module__": "google.cloud.datastore_v1.proto.entity_pb2",
        "__doc__": """A unique identifier for an entity. If a key’s partition ID or any of
  its path kinds or names are reserved/read-only, the key is
  reserved/read-only. A reserved/read-only key is forbidden in certain
  documented contexts.
  
  Attributes:
      partition_id:
          Entities are partitioned into subsets, currently identified by
          a project ID and namespace ID. Queries are scoped to a single
          partition.
      path:
          The entity path. An entity path consists of one or more
          elements composed of a kind and a string or numerical
          identifier, which identify entities. The first element
          identifies a *root entity*, the second element identifies a
          *child* of the root entity, the third element identifies a
          child of the second entity, and so forth. The entities
          identified by all prefixes of the path are called the
          element’s *ancestors*.  An entity path is always fully
          complete: *all* of the entity’s ancestors are required to be
          in the path along with the entity identifier itself. The only
          exception is that in some documented cases, the identifier in
          the last path element (for the entity) itself may be omitted.
          For example, the last path element of the key of
          ``Mutation.insert`` may have no identifier.  A path can never
          be empty, and a path can have at most 100 elements.
  """,
        # @@protoc_insertion_point(class_scope:google.datastore.v1.Key)
    },
)
_sym_db.RegisterMessage(Key)
_sym_db.RegisterMessage(Key.PathElement)

ArrayValue = _reflection.GeneratedProtocolMessageType(
    "ArrayValue",
    (_message.Message,),
    {
        "DESCRIPTOR": _ARRAYVALUE,
        "__module__": "google.cloud.datastore_v1.proto.entity_pb2",
        "__doc__": """An array value.
  
  Attributes:
      values:
          Values in the array. The order of values in an array is
          preserved as long as all values have identical settings for
          ‘exclude_from_indexes’.
  """,
        # @@protoc_insertion_point(class_scope:google.datastore.v1.ArrayValue)
    },
)
_sym_db.RegisterMessage(ArrayValue)

Value = _reflection.GeneratedProtocolMessageType(
    "Value",
    (_message.Message,),
    {
        "DESCRIPTOR": _VALUE,
        "__module__": "google.cloud.datastore_v1.proto.entity_pb2",
        "__doc__": """A message that can hold any of the supported value types and
  associated metadata.
  
  Attributes:
      value_type:
          Must have a value set.
      null_value:
          A null value.
      boolean_value:
          A boolean value.
      integer_value:
          An integer value.
      double_value:
          A double value.
      timestamp_value:
          A timestamp value. When stored in the Datastore, precise only
          to microseconds; any additional precision is rounded down.
      key_value:
          A key value.
      string_value:
          A UTF-8 encoded string value. When ``exclude_from_indexes`` is
          false (it is indexed), may have at most 1500 bytes. Otherwise,
          may be set to at most 1,000,000 bytes.
      blob_value:
          A blob value. May have at most 1,000,000 bytes. When
          ``exclude_from_indexes`` is false, may have at most 1500
          bytes. In JSON requests, must be base64-encoded.
      geo_point_value:
          A geo point value representing a point on the surface of
          Earth.
      entity_value:
          An entity value.  -  May have no key. -  May have a key with
          an incomplete key path. -  May have a reserved/read-only key.
      array_value:
          An array value. Cannot contain another array value. A
          ``Value`` instance that sets field ``array_value`` must not
          set fields ``meaning`` or ``exclude_from_indexes``.
      meaning:
          The ``meaning`` field should only be populated for backwards
          compatibility.
      exclude_from_indexes:
          If the value should be excluded from all indexes including
          those defined explicitly.
  """,
        # @@protoc_insertion_point(class_scope:google.datastore.v1.Value)
    },
)
_sym_db.RegisterMessage(Value)

Entity = _reflection.GeneratedProtocolMessageType(
    "Entity",
    (_message.Message,),
    {
        "PropertiesEntry": _reflection.GeneratedProtocolMessageType(
            "PropertiesEntry",
            (_message.Message,),
            {
                "DESCRIPTOR": _ENTITY_PROPERTIESENTRY,
                "__module__": "google.cloud.datastore_v1.proto.entity_pb2"
                # @@protoc_insertion_point(class_scope:google.datastore.v1.Entity.PropertiesEntry)
            },
        ),
        "DESCRIPTOR": _ENTITY,
        "__module__": "google.cloud.datastore_v1.proto.entity_pb2",
        "__doc__": """A Datastore data object.  An entity is limited to 1 megabyte when
  stored. That *roughly* corresponds to a limit of 1 megabyte for the
  serialized form of this message.
  
  Attributes:
      key:
          The entity’s key.  An entity must have a key, unless otherwise
          documented (for example, an entity in ``Value.entity_value``
          may have no key). An entity’s kind is its key path’s last
          element’s kind, or null if it has no key.
      properties:
          The entity’s properties. The map’s keys are property names. A
          property name matching regex ``__.*__`` is reserved. A
          reserved property name is forbidden in certain documented
          contexts. The name must not contain more than 500 characters.
          The name cannot be ``""``.
  """,
        # @@protoc_insertion_point(class_scope:google.datastore.v1.Entity)
    },
)
_sym_db.RegisterMessage(Entity)
_sym_db.RegisterMessage(Entity.PropertiesEntry)


DESCRIPTOR._options = None
_ENTITY_PROPERTIESENTRY._options = None
# @@protoc_insertion_point(module_scope)
