# Path: google/cloud/datastore_v1/types/entity.py
# class PartitionId(proto.Message):
# class Key(proto.Message):
#     class PathElement(proto.Message):
# class ArrayValue(proto.Message):
# class Value(proto.Message):
# class Entity(proto.Message):
# 
# Path: google/cloud/datastore_v1/types/query.py
# class EntityResult(proto.Message):
#     class ResultType(proto.Enum):
# class Query(proto.Message):
# class KindExpression(proto.Message):
# class PropertyReference(proto.Message):
# class Projection(proto.Message):
# class PropertyOrder(proto.Message):
#     class Direction(proto.Enum):
# class Filter(proto.Message):
# class CompositeFilter(proto.Message):
#     class Operator(proto.Enum):
# class PropertyFilter(proto.Message):
#     class Operator(proto.Enum):
# class GqlQuery(proto.Message):
# class GqlQueryParameter(proto.Message):
# class QueryResultBatch(proto.Message):
#     class MoreResultsType(proto.Enum):
#         RESULT_TYPE_UNSPECIFIED = 0
#         FULL = 1
#         PROJECTION = 2
#         KEY_ONLY = 3
#         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
#         HAS_ANCESTOR = 11
#         MORE_RESULTS_TYPE_UNSPECIFIED = 0
#         NOT_FINISHED = 1
#         MORE_RESULTS_AFTER_LIMIT = 2
#         MORE_RESULTS_AFTER_CURSOR = 4
#         NO_MORE_RESULTS = 3


import proto  # type: ignore
from google.cloud.datastore_v1.types import entity
from google.cloud.datastore_v1.types import query as gd_query
            The options for this lookup request.
        keys (Sequence[google.cloud.datastore_v1.types.Key]):
            Required. Keys of entities to look up.
    """

    project_id = proto.Field(proto.STRING, number=8,)
    read_options = proto.Field(proto.MESSAGE, number=1, message="ReadOptions",)
    keys = proto.RepeatedField(proto.MESSAGE, number=3, message=entity.Key,)


class LookupResponse(proto.Message):
    r"""The response for
    [Datastore.Lookup][google.datastore.v1.Datastore.Lookup].

    Attributes:
        found (Sequence[google.cloud.datastore_v1.types.EntityResult]):
            Entities found as ``ResultType.FULL`` entities. The order of
            results in this field is undefined and has no relation to
            the order of the keys in the input.
        missing (Sequence[google.cloud.datastore_v1.types.EntityResult]):
            Entities not found as ``ResultType.KEY_ONLY`` entities. The
            order of results in this field is undefined and has no
            relation to the order of the keys in the input.
        deferred (Sequence[google.cloud.datastore_v1.types.Key]):
            A list of keys that were not looked up due to
            resource constraints. The order of results in
            this field is undefined and has no relation to
            the order of the keys in the input.
    """


# Path: google/cloud/datastore_v1/types/entity.py
# class PartitionId(proto.Message):
# class Key(proto.Message):
#     class PathElement(proto.Message):
# class ArrayValue(proto.Message):
# class Value(proto.Message):
# class Entity(proto.Message):
# 
# Path: google/cloud/datastore_v1/types/query.py
# class EntityResult(proto.Message):
#     class ResultType(proto.Enum):
# class Query(proto.Message):
# class KindExpression(proto.Message):
# class PropertyReference(proto.Message):
# class Projection(proto.Message):
# class PropertyOrder(proto.Message):
#     class Direction(proto.Enum):
# class Filter(proto.Message):
# class CompositeFilter(proto.Message):
#     class Operator(proto.Enum):
# class PropertyFilter(proto.Message):
#     class Operator(proto.Enum):
# class GqlQuery(proto.Message):
# class GqlQueryParameter(proto.Message):
# class QueryResultBatch(proto.Message):
#     class MoreResultsType(proto.Enum):
#         RESULT_TYPE_UNSPECIFIED = 0
#         FULL = 1
#         PROJECTION = 2
#         KEY_ONLY = 3
#         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
#         HAS_ANCESTOR = 11
#         MORE_RESULTS_TYPE_UNSPECIFIED = 0
#         NOT_FINISHED = 1
#         MORE_RESULTS_AFTER_LIMIT = 2
#         MORE_RESULTS_AFTER_CURSOR = 4
#         NO_MORE_RESULTS = 3


# Path: google/cloud/datastore_v1/types/datastore.py
import proto  # type: ignore
from google.cloud.datastore_v1.types import entity
from google.cloud.datastore_v1.types import query as gd_query

            The options for this lookup request.
        keys (Sequence[google.cloud.datastore_v1.types.Key]):
            Required. Keys of entities to look up.
    """

    project_id = proto.Field(proto.STRING, number=8,)
    read_options = proto.Field(proto.MESSAGE, number=1, message="ReadOptions",)
    keys = proto.RepeatedField(proto.MESSAGE, number=3, message=entity.Key,)


class LookupResponse(proto.Message):
    r"""The response for
    [Datastore.Lookup][google.datastore.v1.Datastore.Lookup].

    Attributes:
        found (Sequence[google.cloud.datastore_v1.types.EntityResult]):
            Entities found as ``ResultType.FULL`` entities. The order of
            results in this field is undefined and has no relation to
            the order of the keys in the input.
        missing (Sequence[google.cloud.datastore_v1.types.EntityResult]):
            Entities not found as ``ResultType.KEY_ONLY`` entities. The
            order of results in this field is undefined and has no
            relation to the order of the keys in the input.
        deferred (Sequence[google.cloud.datastore_v1.types.Key]):
            A list of keys that were not looked up due to
            resource constraints. The order of results in
            this field is undefined and has no relation to
            the order of the keys in the input.
    """


    found = proto.RepeatedField(proto.MESSAGE, number=1, message=gd_query.EntityResult,)