Cloud Datastore API . projects

Instance Methods

allocateIds(projectId=*, body=None, x__xgafv=None)

Allocates IDs for the given keys, which is useful for referencing an entity

beginTransaction(projectId=*, body=None, x__xgafv=None)

Begins a new transaction.

commit(projectId=*, body=None, x__xgafv=None)

Commits a transaction, optionally creating, deleting or modifying some

lookup(projectId=*, body=None, x__xgafv=None)

Looks up entities by key.

reserveIds(projectId=*, body=None, x__xgafv=None)

Prevents the supplied keys' IDs from being auto-allocated by Cloud

rollback(projectId=*, body=None, x__xgafv=None)

Rolls back a transaction.

runQuery(projectId=*, body=None, x__xgafv=None)

Queries for entities.

Method Details

allocateIds(projectId=*, body=None, x__xgafv=None)
Allocates IDs for the given keys, which is useful for referencing an entity
before it is inserted.

Args:
  projectId: string, Required. The ID of the project against which to make the request. (required)
  body: object, The request body.
    The object takes the form of:

{ # The request for Datastore.AllocateIds.
    "keys": [ # Required. A list of keys with incomplete key paths for which to allocate IDs.
        # No key may be reserved/read-only.
      { # 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.
        "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.
          { # 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.
            "kind": "A String", # 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 `""`.
            "name": "A String", # 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 `""`.
            "id": "A String", # 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.
          },
        ],
        "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
            # ID and namespace ID.
            # Queries are scoped to a single partition.
            # 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.
          "projectId": "A String", # The ID of the project to which the entities belong.
          "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
        },
      },
    ],
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The response for Datastore.AllocateIds.
    "keys": [ # The keys specified in the request (in the same order), each with
        # its key path completed with a newly allocated ID.
      { # 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.
        "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.
          { # 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.
            "kind": "A String", # 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 `""`.
            "name": "A String", # 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 `""`.
            "id": "A String", # 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.
          },
        ],
        "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
            # ID and namespace ID.
            # Queries are scoped to a single partition.
            # 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.
          "projectId": "A String", # The ID of the project to which the entities belong.
          "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
        },
      },
    ],
  }
beginTransaction(projectId=*, body=None, x__xgafv=None)
Begins a new transaction.

Args:
  projectId: string, Required. The ID of the project against which to make the request. (required)
  body: object, The request body.
    The object takes the form of:

{ # The request for Datastore.BeginTransaction.
    "transactionOptions": { # Options for beginning a new transaction. # Options for a new transaction.
        #
        # Transactions can be created explicitly with calls to
        # Datastore.BeginTransaction or implicitly by setting
        # ReadOptions.new_transaction in read requests.
      "readWrite": { # Options specific to read / write transactions. # The transaction should allow both reads and writes.
        "previousTransaction": "A String", # The transaction identifier of the transaction being retried.
      },
      "readOnly": { # Options specific to read-only transactions. # The transaction should only allow reads.
      },
    },
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The response for Datastore.BeginTransaction.
    "transaction": "A String", # The transaction identifier (always present).
  }
commit(projectId=*, body=None, x__xgafv=None)
Commits a transaction, optionally creating, deleting or modifying some
entities.

Args:
  projectId: string, Required. The ID of the project against which to make the request. (required)
  body: object, The request body.
    The object takes the form of:

{ # The request for Datastore.Commit.
    "transaction": "A String", # The identifier of the transaction associated with the commit. A
        # transaction identifier is returned by a call to
        # Datastore.BeginTransaction.
    "mode": "A String", # The type of commit to perform. Defaults to `TRANSACTIONAL`.
    "mutations": [ # The mutations to perform.
        # 
        # When mode is `TRANSACTIONAL`, mutations affecting a single entity are
        # applied in order. The following sequences of mutations affecting a single
        # entity are not permitted in a single `Commit` request:
        # 
        # - `insert` followed by `insert`
        # - `update` followed by `insert`
        # - `upsert` followed by `insert`
        # - `delete` followed by `update`
        # 
        # When mode is `NON_TRANSACTIONAL`, no two mutations may affect a single
        # entity.
      { # A mutation to apply to an entity.
        "insert": { # A Datastore data object. # The entity to insert. The entity must not already exist.
            # The entity key's final path element may be incomplete.
            #
            # 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.
          "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 `""`.
            "a_key": { # A message that can hold any of the supported value types and associated
                # metadata.
              "entityValue": # Object with schema name: Entity # An entity value.
                  #
                  # - May have no key.
                  # - May have a key with an incomplete key path.
                  # - May have a reserved/read-only key.
              "timestampValue": "A String", # A timestamp value.
                  # When stored in the Datastore, precise only to microseconds;
                  # any additional precision is rounded down.
              "nullValue": "A String", # A null value.
              "doubleValue": 3.14, # A double value.
              "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                  # explicitly.
              "keyValue": { # A unique identifier for an entity. # A key value.
                  # 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.
                "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.
                  { # 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.
                    "kind": "A String", # 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 `""`.
                    "name": "A String", # 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 `""`.
                    "id": "A String", # 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.
                  },
                ],
                "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
                    # ID and namespace ID.
                    # Queries are scoped to a single partition.
                    # 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.
                  "projectId": "A String", # The ID of the project to which the entities belong.
                  "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                },
              },
              "blobValue": "A String", # 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.
              "stringValue": "A String", # 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 least 1,000,000 bytes.
              "booleanValue": True or False, # A boolean value.
              "arrayValue": { # An 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`.
                "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'.
                  # Object with schema name: Value
                ],
              },
              "integerValue": "A String", # An integer value.
              "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
                  # of doubles representing degrees latitude and degrees longitude. Unless
                  # specified otherwise, this must conform to the
                  # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
                  # standard</a>. Values must be within normalized ranges.
                "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
              },
            },
          },
          "key": { # A unique identifier for an entity. # 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.
              # 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.
            "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.
              { # 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.
                "kind": "A String", # 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 `""`.
                "name": "A String", # 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 `""`.
                "id": "A String", # 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.
              },
            ],
            "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
                # ID and namespace ID.
                # Queries are scoped to a single partition.
                # 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.
              "projectId": "A String", # The ID of the project to which the entities belong.
              "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
            },
          },
        },
        "upsert": { # A Datastore data object. # The entity to upsert. The entity may or may not already exist.
            # The entity key's final path element may be incomplete.
            #
            # 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.
          "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 `""`.
            "a_key": { # A message that can hold any of the supported value types and associated
                # metadata.
              "entityValue": # Object with schema name: Entity # An entity value.
                  #
                  # - May have no key.
                  # - May have a key with an incomplete key path.
                  # - May have a reserved/read-only key.
              "timestampValue": "A String", # A timestamp value.
                  # When stored in the Datastore, precise only to microseconds;
                  # any additional precision is rounded down.
              "nullValue": "A String", # A null value.
              "doubleValue": 3.14, # A double value.
              "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                  # explicitly.
              "keyValue": { # A unique identifier for an entity. # A key value.
                  # 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.
                "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.
                  { # 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.
                    "kind": "A String", # 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 `""`.
                    "name": "A String", # 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 `""`.
                    "id": "A String", # 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.
                  },
                ],
                "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
                    # ID and namespace ID.
                    # Queries are scoped to a single partition.
                    # 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.
                  "projectId": "A String", # The ID of the project to which the entities belong.
                  "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                },
              },
              "blobValue": "A String", # 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.
              "stringValue": "A String", # 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 least 1,000,000 bytes.
              "booleanValue": True or False, # A boolean value.
              "arrayValue": { # An 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`.
                "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'.
                  # Object with schema name: Value
                ],
              },
              "integerValue": "A String", # An integer value.
              "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
                  # of doubles representing degrees latitude and degrees longitude. Unless
                  # specified otherwise, this must conform to the
                  # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
                  # standard</a>. Values must be within normalized ranges.
                "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
              },
            },
          },
          "key": { # A unique identifier for an entity. # 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.
              # 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.
            "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.
              { # 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.
                "kind": "A String", # 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 `""`.
                "name": "A String", # 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 `""`.
                "id": "A String", # 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.
              },
            ],
            "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
                # ID and namespace ID.
                # Queries are scoped to a single partition.
                # 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.
              "projectId": "A String", # The ID of the project to which the entities belong.
              "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
            },
          },
        },
        "update": { # A Datastore data object. # The entity to update. The entity must already exist.
            # Must have a complete key path.
            #
            # 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.
          "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 `""`.
            "a_key": { # A message that can hold any of the supported value types and associated
                # metadata.
              "entityValue": # Object with schema name: Entity # An entity value.
                  #
                  # - May have no key.
                  # - May have a key with an incomplete key path.
                  # - May have a reserved/read-only key.
              "timestampValue": "A String", # A timestamp value.
                  # When stored in the Datastore, precise only to microseconds;
                  # any additional precision is rounded down.
              "nullValue": "A String", # A null value.
              "doubleValue": 3.14, # A double value.
              "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                  # explicitly.
              "keyValue": { # A unique identifier for an entity. # A key value.
                  # 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.
                "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.
                  { # 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.
                    "kind": "A String", # 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 `""`.
                    "name": "A String", # 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 `""`.
                    "id": "A String", # 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.
                  },
                ],
                "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
                    # ID and namespace ID.
                    # Queries are scoped to a single partition.
                    # 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.
                  "projectId": "A String", # The ID of the project to which the entities belong.
                  "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                },
              },
              "blobValue": "A String", # 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.
              "stringValue": "A String", # 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 least 1,000,000 bytes.
              "booleanValue": True or False, # A boolean value.
              "arrayValue": { # An 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`.
                "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'.
                  # Object with schema name: Value
                ],
              },
              "integerValue": "A String", # An integer value.
              "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
                  # of doubles representing degrees latitude and degrees longitude. Unless
                  # specified otherwise, this must conform to the
                  # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
                  # standard</a>. Values must be within normalized ranges.
                "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
              },
            },
          },
          "key": { # A unique identifier for an entity. # 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.
              # 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.
            "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.
              { # 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.
                "kind": "A String", # 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 `""`.
                "name": "A String", # 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 `""`.
                "id": "A String", # 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.
              },
            ],
            "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
                # ID and namespace ID.
                # Queries are scoped to a single partition.
                # 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.
              "projectId": "A String", # The ID of the project to which the entities belong.
              "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
            },
          },
        },
        "baseVersion": "A String", # The version of the entity that this mutation is being applied to. If this
            # does not match the current version on the server, the mutation conflicts.
        "delete": { # A unique identifier for an entity. # The key of the entity to delete. The entity may or may not already exist.
            # Must have a complete key path and must not be reserved/read-only.
            # 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.
          "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.
            { # 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.
              "kind": "A String", # 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 `""`.
              "name": "A String", # 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 `""`.
              "id": "A String", # 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.
            },
          ],
          "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
              # ID and namespace ID.
              # Queries are scoped to a single partition.
              # 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.
            "projectId": "A String", # The ID of the project to which the entities belong.
            "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
          },
        },
      },
    ],
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The response for Datastore.Commit.
    "mutationResults": [ # The result of performing the mutations.
        # The i-th mutation result corresponds to the i-th mutation in the request.
      { # The result of applying a mutation.
        "version": "A String", # The version of the entity on the server after processing the mutation. If
            # the mutation doesn't change anything on the server, then the version will
            # be the version of the current entity or, if no entity is present, a version
            # that is strictly greater than the version of any previous entity and less
            # than the version of any possible future entity.
        "conflictDetected": True or False, # Whether a conflict was detected for this mutation. Always false when a
            # conflict detection strategy field is not set in the mutation.
        "key": { # A unique identifier for an entity. # The automatically allocated key.
            # Set only when the mutation allocated a key.
            # 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.
          "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.
            { # 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.
              "kind": "A String", # 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 `""`.
              "name": "A String", # 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 `""`.
              "id": "A String", # 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.
            },
          ],
          "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
              # ID and namespace ID.
              # Queries are scoped to a single partition.
              # 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.
            "projectId": "A String", # The ID of the project to which the entities belong.
            "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
          },
        },
      },
    ],
    "indexUpdates": 42, # The number of index entries updated during the commit, or zero if none were
        # updated.
  }
lookup(projectId=*, body=None, x__xgafv=None)
Looks up entities by key.

Args:
  projectId: string, Required. The ID of the project against which to make the request. (required)
  body: object, The request body.
    The object takes the form of:

{ # The request for Datastore.Lookup.
    "keys": [ # Required. Keys of entities to look up.
      { # 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.
        "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.
          { # 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.
            "kind": "A String", # 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 `""`.
            "name": "A String", # 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 `""`.
            "id": "A String", # 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.
          },
        ],
        "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
            # ID and namespace ID.
            # Queries are scoped to a single partition.
            # 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.
          "projectId": "A String", # The ID of the project to which the entities belong.
          "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
        },
      },
    ],
    "readOptions": { # The options shared by read requests. # The options for this lookup request.
      "transaction": "A String", # The identifier of the transaction in which to read. A
          # transaction identifier is returned by a call to
          # Datastore.BeginTransaction.
      "readConsistency": "A String", # The non-transactional read consistency to use.
          # Cannot be set to `STRONG` for global queries.
    },
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The response for Datastore.Lookup.
    "deferred": [ # 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.
      { # 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.
        "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.
          { # 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.
            "kind": "A String", # 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 `""`.
            "name": "A String", # 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 `""`.
            "id": "A String", # 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.
          },
        ],
        "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
            # ID and namespace ID.
            # Queries are scoped to a single partition.
            # 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.
          "projectId": "A String", # The ID of the project to which the entities belong.
          "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
        },
      },
    ],
    "missing": [ # 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.
      { # The result of fetching an entity from Datastore.
        "cursor": "A String", # A cursor that points to the position after the result entity.
            # Set only when the `EntityResult` is part of a `QueryResultBatch` message.
        "version": "A String", # The version of the entity, a strictly positive number that monotonically
            # increases with changes to the entity.
            #
            # This field is set for `FULL` entity
            # results.
            #
            # For missing entities in `LookupResponse`, this
            # is the version of the snapshot that was used to look up the entity, and it
            # is always set except for eventually consistent reads.
        "entity": { # A Datastore data object. # The resulting entity.
            #
            # 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.
          "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 `""`.
            "a_key": { # A message that can hold any of the supported value types and associated
                # metadata.
              "entityValue": # Object with schema name: Entity # An entity value.
                  #
                  # - May have no key.
                  # - May have a key with an incomplete key path.
                  # - May have a reserved/read-only key.
              "timestampValue": "A String", # A timestamp value.
                  # When stored in the Datastore, precise only to microseconds;
                  # any additional precision is rounded down.
              "nullValue": "A String", # A null value.
              "doubleValue": 3.14, # A double value.
              "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                  # explicitly.
              "keyValue": { # A unique identifier for an entity. # A key value.
                  # 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.
                "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.
                  { # 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.
                    "kind": "A String", # 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 `""`.
                    "name": "A String", # 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 `""`.
                    "id": "A String", # 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.
                  },
                ],
                "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
                    # ID and namespace ID.
                    # Queries are scoped to a single partition.
                    # 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.
                  "projectId": "A String", # The ID of the project to which the entities belong.
                  "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                },
              },
              "blobValue": "A String", # 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.
              "stringValue": "A String", # 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 least 1,000,000 bytes.
              "booleanValue": True or False, # A boolean value.
              "arrayValue": { # An 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`.
                "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'.
                  # Object with schema name: Value
                ],
              },
              "integerValue": "A String", # An integer value.
              "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
                  # of doubles representing degrees latitude and degrees longitude. Unless
                  # specified otherwise, this must conform to the
                  # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
                  # standard</a>. Values must be within normalized ranges.
                "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
              },
            },
          },
          "key": { # A unique identifier for an entity. # 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.
              # 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.
            "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.
              { # 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.
                "kind": "A String", # 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 `""`.
                "name": "A String", # 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 `""`.
                "id": "A String", # 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.
              },
            ],
            "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
                # ID and namespace ID.
                # Queries are scoped to a single partition.
                # 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.
              "projectId": "A String", # The ID of the project to which the entities belong.
              "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
            },
          },
        },
      },
    ],
    "found": [ # 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.
      { # The result of fetching an entity from Datastore.
        "cursor": "A String", # A cursor that points to the position after the result entity.
            # Set only when the `EntityResult` is part of a `QueryResultBatch` message.
        "version": "A String", # The version of the entity, a strictly positive number that monotonically
            # increases with changes to the entity.
            #
            # This field is set for `FULL` entity
            # results.
            #
            # For missing entities in `LookupResponse`, this
            # is the version of the snapshot that was used to look up the entity, and it
            # is always set except for eventually consistent reads.
        "entity": { # A Datastore data object. # The resulting entity.
            #
            # 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.
          "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 `""`.
            "a_key": { # A message that can hold any of the supported value types and associated
                # metadata.
              "entityValue": # Object with schema name: Entity # An entity value.
                  #
                  # - May have no key.
                  # - May have a key with an incomplete key path.
                  # - May have a reserved/read-only key.
              "timestampValue": "A String", # A timestamp value.
                  # When stored in the Datastore, precise only to microseconds;
                  # any additional precision is rounded down.
              "nullValue": "A String", # A null value.
              "doubleValue": 3.14, # A double value.
              "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                  # explicitly.
              "keyValue": { # A unique identifier for an entity. # A key value.
                  # 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.
                "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.
                  { # 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.
                    "kind": "A String", # 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 `""`.
                    "name": "A String", # 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 `""`.
                    "id": "A String", # 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.
                  },
                ],
                "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
                    # ID and namespace ID.
                    # Queries are scoped to a single partition.
                    # 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.
                  "projectId": "A String", # The ID of the project to which the entities belong.
                  "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                },
              },
              "blobValue": "A String", # 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.
              "stringValue": "A String", # 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 least 1,000,000 bytes.
              "booleanValue": True or False, # A boolean value.
              "arrayValue": { # An 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`.
                "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'.
                  # Object with schema name: Value
                ],
              },
              "integerValue": "A String", # An integer value.
              "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
                  # of doubles representing degrees latitude and degrees longitude. Unless
                  # specified otherwise, this must conform to the
                  # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
                  # standard</a>. Values must be within normalized ranges.
                "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
              },
            },
          },
          "key": { # A unique identifier for an entity. # 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.
              # 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.
            "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.
              { # 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.
                "kind": "A String", # 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 `""`.
                "name": "A String", # 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 `""`.
                "id": "A String", # 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.
              },
            ],
            "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
                # ID and namespace ID.
                # Queries are scoped to a single partition.
                # 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.
              "projectId": "A String", # The ID of the project to which the entities belong.
              "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
            },
          },
        },
      },
    ],
  }
reserveIds(projectId=*, body=None, x__xgafv=None)
Prevents the supplied keys' IDs from being auto-allocated by Cloud
Datastore.

Args:
  projectId: string, Required. The ID of the project against which to make the request. (required)
  body: object, The request body.
    The object takes the form of:

{ # The request for Datastore.ReserveIds.
    "keys": [ # Required. A list of keys with complete key paths whose numeric IDs should not be
        # auto-allocated.
      { # 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.
        "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.
          { # 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.
            "kind": "A String", # 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 `""`.
            "name": "A String", # 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 `""`.
            "id": "A String", # 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.
          },
        ],
        "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
            # ID and namespace ID.
            # Queries are scoped to a single partition.
            # 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.
          "projectId": "A String", # The ID of the project to which the entities belong.
          "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
        },
      },
    ],
    "databaseId": "A String", # If not empty, the ID of the database against which to make the request.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The response for Datastore.ReserveIds.
  }
rollback(projectId=*, body=None, x__xgafv=None)
Rolls back a transaction.

Args:
  projectId: string, Required. The ID of the project against which to make the request. (required)
  body: object, The request body.
    The object takes the form of:

{ # The request for Datastore.Rollback.
    "transaction": "A String", # Required. The transaction identifier, returned by a call to
        # Datastore.BeginTransaction.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The response for Datastore.Rollback.
      # (an empty message).
  }
runQuery(projectId=*, body=None, x__xgafv=None)
Queries for entities.

Args:
  projectId: string, Required. The ID of the project against which to make the request. (required)
  body: object, The request body.
    The object takes the form of:

{ # The request for Datastore.RunQuery.
    "query": { # A query for entities. # The query to run.
      "startCursor": "A String", # A starting point for the query results. Query cursors are
          # returned in query result batches and
          # [can only be used to continue the same
          # query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).
      "kind": [ # The kinds to query (if empty, returns entities of all kinds).
          # Currently at most 1 kind may be specified.
        { # A representation of a kind.
          "name": "A String", # The name of the kind.
        },
      ],
      "projection": [ # The projection to return. Defaults to returning all properties.
        { # A representation of a property in a projection.
          "property": { # A reference to a property relative to the kind expressions. # The property to project.
            "name": "A String", # The name of the property.
                # If name includes "."s, it may be interpreted as a property name path.
          },
        },
      ],
      "distinctOn": [ # The properties to make distinct. The query results will contain the first
          # result for each distinct combination of values for the given properties
          # (if empty, all results are returned).
        { # A reference to a property relative to the kind expressions.
          "name": "A String", # The name of the property.
              # If name includes "."s, it may be interpreted as a property name path.
        },
      ],
      "filter": { # A holder for any type of filter. # The filter to apply.
        "compositeFilter": { # A filter that merges multiple other filters using the given operator. # A composite filter.
          "filters": [ # The list of filters to combine.
              # Must contain at least one filter.
            # Object with schema name: Filter
          ],
          "op": "A String", # The operator for combining multiple filters.
        },
        "propertyFilter": { # A filter on a specific property. # A filter on a property.
          "property": { # A reference to a property relative to the kind expressions. # The property to filter by.
            "name": "A String", # The name of the property.
                # If name includes "."s, it may be interpreted as a property name path.
          },
          "value": { # A message that can hold any of the supported value types and associated # The value to compare the property to.
              # metadata.
            "entityValue": # Object with schema name: Entity # An entity value.
                #
                # - May have no key.
                # - May have a key with an incomplete key path.
                # - May have a reserved/read-only key.
            "timestampValue": "A String", # A timestamp value.
                # When stored in the Datastore, precise only to microseconds;
                # any additional precision is rounded down.
            "nullValue": "A String", # A null value.
            "doubleValue": 3.14, # A double value.
            "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
            "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                # explicitly.
            "keyValue": { # A unique identifier for an entity. # A key value.
                # 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.
              "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.
                { # 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.
                  "kind": "A String", # 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 `""`.
                  "name": "A String", # 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 `""`.
                  "id": "A String", # 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.
                },
              ],
              "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
                  # ID and namespace ID.
                  # Queries are scoped to a single partition.
                  # 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.
                "projectId": "A String", # The ID of the project to which the entities belong.
                "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
              },
            },
            "blobValue": "A String", # 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.
            "stringValue": "A String", # 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 least 1,000,000 bytes.
            "booleanValue": True or False, # A boolean value.
            "arrayValue": { # An 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`.
              "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'.
                # Object with schema name: Value
              ],
            },
            "integerValue": "A String", # An integer value.
            "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
                # of doubles representing degrees latitude and degrees longitude. Unless
                # specified otherwise, this must conform to the
                # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
                # standard</a>. Values must be within normalized ranges.
              "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
              "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
            },
          },
          "op": "A String", # The operator to filter by.
        },
      },
      "limit": 42, # The maximum number of results to return. Applies after all other
          # constraints. Optional.
          # Unspecified is interpreted as no limit.
          # Must be >= 0 if specified.
      "offset": 42, # The number of results to skip. Applies before limit, but after all other
          # constraints. Optional. Must be >= 0 if specified.
      "endCursor": "A String", # An ending point for the query results. Query cursors are
          # returned in query result batches and
          # [can only be used to limit the same
          # query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).
      "order": [ # The order to apply to the query results (if empty, order is unspecified).
        { # The desired order for a specific property.
          "direction": "A String", # The direction to order by. Defaults to `ASCENDING`.
          "property": { # A reference to a property relative to the kind expressions. # The property to order by.
            "name": "A String", # The name of the property.
                # If name includes "."s, it may be interpreted as a property name path.
          },
        },
      ],
    },
    "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, identified by a partition ID.
        # Queries are scoped to a single partition.
        # This partition ID is normalized with the standard default context
        # partition ID.
        # 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.
      "projectId": "A String", # The ID of the project to which the entities belong.
      "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
    },
    "gqlQuery": { # A [GQL # The GQL query to run.
        # query](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).
      "namedBindings": { # For each non-reserved named binding site in the query string, there must be
          # a named parameter with that name, but not necessarily the inverse.
          #
          # Key must match regex `A-Za-z_$*`, must not match regex
          # `__.*__`, and must not be `""`.
        "a_key": { # A binding parameter for a GQL query.
          "cursor": "A String", # A query cursor. Query cursors are returned in query
              # result batches.
          "value": { # A message that can hold any of the supported value types and associated # A value parameter.
              # metadata.
            "entityValue": # Object with schema name: Entity # An entity value.
                #
                # - May have no key.
                # - May have a key with an incomplete key path.
                # - May have a reserved/read-only key.
            "timestampValue": "A String", # A timestamp value.
                # When stored in the Datastore, precise only to microseconds;
                # any additional precision is rounded down.
            "nullValue": "A String", # A null value.
            "doubleValue": 3.14, # A double value.
            "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
            "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                # explicitly.
            "keyValue": { # A unique identifier for an entity. # A key value.
                # 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.
              "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.
                { # 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.
                  "kind": "A String", # 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 `""`.
                  "name": "A String", # 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 `""`.
                  "id": "A String", # 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.
                },
              ],
              "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
                  # ID and namespace ID.
                  # Queries are scoped to a single partition.
                  # 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.
                "projectId": "A String", # The ID of the project to which the entities belong.
                "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
              },
            },
            "blobValue": "A String", # 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.
            "stringValue": "A String", # 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 least 1,000,000 bytes.
            "booleanValue": True or False, # A boolean value.
            "arrayValue": { # An 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`.
              "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'.
                # Object with schema name: Value
              ],
            },
            "integerValue": "A String", # An integer value.
            "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
                # of doubles representing degrees latitude and degrees longitude. Unless
                # specified otherwise, this must conform to the
                # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
                # standard</a>. Values must be within normalized ranges.
              "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
              "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
            },
          },
        },
      },
      "positionalBindings": [ # Numbered binding site @1 references the first numbered parameter,
          # effectively using 1-based indexing, rather than the usual 0.
          #
          # For each binding site numbered i in `query_string`, there must be an i-th
          # numbered parameter. The inverse must also be true.
        { # A binding parameter for a GQL query.
          "cursor": "A String", # A query cursor. Query cursors are returned in query
              # result batches.
          "value": { # A message that can hold any of the supported value types and associated # A value parameter.
              # metadata.
            "entityValue": # Object with schema name: Entity # An entity value.
                #
                # - May have no key.
                # - May have a key with an incomplete key path.
                # - May have a reserved/read-only key.
            "timestampValue": "A String", # A timestamp value.
                # When stored in the Datastore, precise only to microseconds;
                # any additional precision is rounded down.
            "nullValue": "A String", # A null value.
            "doubleValue": 3.14, # A double value.
            "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
            "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                # explicitly.
            "keyValue": { # A unique identifier for an entity. # A key value.
                # 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.
              "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.
                { # 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.
                  "kind": "A String", # 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 `""`.
                  "name": "A String", # 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 `""`.
                  "id": "A String", # 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.
                },
              ],
              "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
                  # ID and namespace ID.
                  # Queries are scoped to a single partition.
                  # 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.
                "projectId": "A String", # The ID of the project to which the entities belong.
                "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
              },
            },
            "blobValue": "A String", # 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.
            "stringValue": "A String", # 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 least 1,000,000 bytes.
            "booleanValue": True or False, # A boolean value.
            "arrayValue": { # An 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`.
              "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'.
                # Object with schema name: Value
              ],
            },
            "integerValue": "A String", # An integer value.
            "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
                # of doubles representing degrees latitude and degrees longitude. Unless
                # specified otherwise, this must conform to the
                # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
                # standard</a>. Values must be within normalized ranges.
              "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
              "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
            },
          },
        },
      ],
      "queryString": "A String", # A string of the format described
          # [here](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).
      "allowLiterals": True or False, # When false, the query string must not contain any literals and instead must
          # bind all values. For example,
          # `SELECT * FROM Kind WHERE a = 'string literal'` is not allowed, while
          # `SELECT * FROM Kind WHERE a = @value` is.
    },
    "readOptions": { # The options shared by read requests. # The options for this query.
      "transaction": "A String", # The identifier of the transaction in which to read. A
          # transaction identifier is returned by a call to
          # Datastore.BeginTransaction.
      "readConsistency": "A String", # The non-transactional read consistency to use.
          # Cannot be set to `STRONG` for global queries.
    },
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The response for Datastore.RunQuery.
    "query": { # A query for entities. # The parsed form of the `GqlQuery` from the request, if it was set.
      "startCursor": "A String", # A starting point for the query results. Query cursors are
          # returned in query result batches and
          # [can only be used to continue the same
          # query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).
      "kind": [ # The kinds to query (if empty, returns entities of all kinds).
          # Currently at most 1 kind may be specified.
        { # A representation of a kind.
          "name": "A String", # The name of the kind.
        },
      ],
      "projection": [ # The projection to return. Defaults to returning all properties.
        { # A representation of a property in a projection.
          "property": { # A reference to a property relative to the kind expressions. # The property to project.
            "name": "A String", # The name of the property.
                # If name includes "."s, it may be interpreted as a property name path.
          },
        },
      ],
      "distinctOn": [ # The properties to make distinct. The query results will contain the first
          # result for each distinct combination of values for the given properties
          # (if empty, all results are returned).
        { # A reference to a property relative to the kind expressions.
          "name": "A String", # The name of the property.
              # If name includes "."s, it may be interpreted as a property name path.
        },
      ],
      "filter": { # A holder for any type of filter. # The filter to apply.
        "compositeFilter": { # A filter that merges multiple other filters using the given operator. # A composite filter.
          "filters": [ # The list of filters to combine.
              # Must contain at least one filter.
            # Object with schema name: Filter
          ],
          "op": "A String", # The operator for combining multiple filters.
        },
        "propertyFilter": { # A filter on a specific property. # A filter on a property.
          "property": { # A reference to a property relative to the kind expressions. # The property to filter by.
            "name": "A String", # The name of the property.
                # If name includes "."s, it may be interpreted as a property name path.
          },
          "value": { # A message that can hold any of the supported value types and associated # The value to compare the property to.
              # metadata.
            "entityValue": # Object with schema name: Entity # An entity value.
                #
                # - May have no key.
                # - May have a key with an incomplete key path.
                # - May have a reserved/read-only key.
            "timestampValue": "A String", # A timestamp value.
                # When stored in the Datastore, precise only to microseconds;
                # any additional precision is rounded down.
            "nullValue": "A String", # A null value.
            "doubleValue": 3.14, # A double value.
            "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
            "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                # explicitly.
            "keyValue": { # A unique identifier for an entity. # A key value.
                # 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.
              "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.
                { # 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.
                  "kind": "A String", # 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 `""`.
                  "name": "A String", # 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 `""`.
                  "id": "A String", # 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.
                },
              ],
              "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
                  # ID and namespace ID.
                  # Queries are scoped to a single partition.
                  # 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.
                "projectId": "A String", # The ID of the project to which the entities belong.
                "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
              },
            },
            "blobValue": "A String", # 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.
            "stringValue": "A String", # 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 least 1,000,000 bytes.
            "booleanValue": True or False, # A boolean value.
            "arrayValue": { # An 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`.
              "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'.
                # Object with schema name: Value
              ],
            },
            "integerValue": "A String", # An integer value.
            "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
                # of doubles representing degrees latitude and degrees longitude. Unless
                # specified otherwise, this must conform to the
                # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
                # standard</a>. Values must be within normalized ranges.
              "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
              "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
            },
          },
          "op": "A String", # The operator to filter by.
        },
      },
      "limit": 42, # The maximum number of results to return. Applies after all other
          # constraints. Optional.
          # Unspecified is interpreted as no limit.
          # Must be >= 0 if specified.
      "offset": 42, # The number of results to skip. Applies before limit, but after all other
          # constraints. Optional. Must be >= 0 if specified.
      "endCursor": "A String", # An ending point for the query results. Query cursors are
          # returned in query result batches and
          # [can only be used to limit the same
          # query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).
      "order": [ # The order to apply to the query results (if empty, order is unspecified).
        { # The desired order for a specific property.
          "direction": "A String", # The direction to order by. Defaults to `ASCENDING`.
          "property": { # A reference to a property relative to the kind expressions. # The property to order by.
            "name": "A String", # The name of the property.
                # If name includes "."s, it may be interpreted as a property name path.
          },
        },
      ],
    },
    "batch": { # A batch of results produced by a query. # A batch of query results (always present).
      "entityResultType": "A String", # The result type for every entity in `entity_results`.
      "snapshotVersion": "A String", # The version number of the snapshot this batch was returned from.
          # This applies to the range of results from the query's `start_cursor` (or
          # the beginning of the query if no cursor was given) to this batch's
          # `end_cursor` (not the query's `end_cursor`).
          #
          # In a single transaction, subsequent query result batches for the same query
          # can have a greater snapshot version number. Each batch's snapshot version
          # is valid for all preceding batches.
          # The value will be zero for eventually consistent queries.
      "skippedResults": 42, # The number of results skipped, typically because of an offset.
      "entityResults": [ # The results for this batch.
        { # The result of fetching an entity from Datastore.
          "cursor": "A String", # A cursor that points to the position after the result entity.
              # Set only when the `EntityResult` is part of a `QueryResultBatch` message.
          "version": "A String", # The version of the entity, a strictly positive number that monotonically
              # increases with changes to the entity.
              #
              # This field is set for `FULL` entity
              # results.
              #
              # For missing entities in `LookupResponse`, this
              # is the version of the snapshot that was used to look up the entity, and it
              # is always set except for eventually consistent reads.
          "entity": { # A Datastore data object. # The resulting entity.
              #
              # 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.
            "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 `""`.
              "a_key": { # A message that can hold any of the supported value types and associated
                  # metadata.
                "entityValue": # Object with schema name: Entity # An entity value.
                    #
                    # - May have no key.
                    # - May have a key with an incomplete key path.
                    # - May have a reserved/read-only key.
                "timestampValue": "A String", # A timestamp value.
                    # When stored in the Datastore, precise only to microseconds;
                    # any additional precision is rounded down.
                "nullValue": "A String", # A null value.
                "doubleValue": 3.14, # A double value.
                "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
                "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                    # explicitly.
                "keyValue": { # A unique identifier for an entity. # A key value.
                    # 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.
                  "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.
                    { # 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.
                      "kind": "A String", # 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 `""`.
                      "name": "A String", # 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 `""`.
                      "id": "A String", # 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.
                    },
                  ],
                  "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
                      # ID and namespace ID.
                      # Queries are scoped to a single partition.
                      # 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.
                    "projectId": "A String", # The ID of the project to which the entities belong.
                    "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                  },
                },
                "blobValue": "A String", # 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.
                "stringValue": "A String", # 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 least 1,000,000 bytes.
                "booleanValue": True or False, # A boolean value.
                "arrayValue": { # An 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`.
                  "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'.
                    # Object with schema name: Value
                  ],
                },
                "integerValue": "A String", # An integer value.
                "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
                    # of doubles representing degrees latitude and degrees longitude. Unless
                    # specified otherwise, this must conform to the
                    # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
                    # standard</a>. Values must be within normalized ranges.
                  "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                  "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
                },
              },
            },
            "key": { # A unique identifier for an entity. # 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.
                # 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.
              "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.
                { # 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.
                  "kind": "A String", # 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 `""`.
                  "name": "A String", # 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 `""`.
                  "id": "A String", # 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.
                },
              ],
              "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
                  # ID and namespace ID.
                  # Queries are scoped to a single partition.
                  # 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.
                "projectId": "A String", # The ID of the project to which the entities belong.
                "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
              },
            },
          },
        },
      ],
      "skippedCursor": "A String", # A cursor that points to the position after the last skipped result.
          # Will be set when `skipped_results` != 0.
      "moreResults": "A String", # The state of the query after the current batch.
      "endCursor": "A String", # A cursor that points to the position after the last result in the batch.
    },
  }