<html><body> <style> body, h1, h2, h3, div, span, p, pre, a { margin: 0; padding: 0; border: 0; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; } body { font-size: 13px; padding: 1em; } h1 { font-size: 26px; margin-bottom: 1em; } h2 { font-size: 24px; margin-bottom: 1em; } h3 { font-size: 20px; margin-bottom: 1em; margin-top: 1em; } pre, code { line-height: 1.5; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace; } pre { margin-top: 0.5em; } h1, h2, h3, p { font-family: Arial, sans serif; } h1, h2, h3 { border-bottom: solid #CCC 1px; } .toc_element { margin-top: 0.5em; } .firstline { margin-left: 2 em; } .method { margin-top: 1em; border: solid 1px #CCC; padding: 1em; background: #EEE; } .details { font-weight: bold; font-size: 14px; } </style> <h1><a href="datastore_v1.html">Google Cloud Datastore API</a> . <a href="datastore_v1.projects.html">projects</a></h1> <h2>Instance Methods</h2> <p class="toc_element"> <code><a href="#allocateIds">allocateIds(projectId, body, x__xgafv=None)</a></code></p> <p class="firstline">Allocates IDs for the given keys, which is useful for referencing an entity</p> <p class="toc_element"> <code><a href="#beginTransaction">beginTransaction(projectId, body, x__xgafv=None)</a></code></p> <p class="firstline">Begins a new transaction.</p> <p class="toc_element"> <code><a href="#commit">commit(projectId, body, x__xgafv=None)</a></code></p> <p class="firstline">Commits a transaction, optionally creating, deleting or modifying some</p> <p class="toc_element"> <code><a href="#lookup">lookup(projectId, body, x__xgafv=None)</a></code></p> <p class="firstline">Looks up entities by key.</p> <p class="toc_element"> <code><a href="#rollback">rollback(projectId, body, x__xgafv=None)</a></code></p> <p class="firstline">Rolls back a transaction.</p> <p class="toc_element"> <code><a href="#runQuery">runQuery(projectId, body, x__xgafv=None)</a></code></p> <p class="firstline">Queries for entities.</p> <h3>Method Details</h3> <div class="method"> <code class="details" id="allocateIds">allocateIds(projectId, body, x__xgafv=None)</code> <pre>Allocates IDs for the given keys, which is useful for referencing an entity before it is inserted. Args: projectId: string, The ID of the project against which to make the request. (required) body: object, The request body. (required) The object takes the form of: { # The request for Datastore.AllocateIds. "keys": [ # 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 `""`. "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. "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 `""`. }, ], "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 `""`. "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. "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 `""`. }, ], "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. }, }, ], }</pre> </div> <div class="method"> <code class="details" id="beginTransaction">beginTransaction(projectId, body, x__xgafv=None)</code> <pre>Begins a new transaction. Args: projectId: string, The ID of the project against which to make the request. (required) body: object, The request body. (required) The object takes the form of: { # The request for 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.BeginTransaction. "transaction": "A String", # The transaction identifier (always present). }</pre> </div> <div class="method"> <code class="details" id="commit">commit(projectId, body, x__xgafv=None)</code> <pre>Commits a transaction, optionally creating, deleting or modifying some entities. Args: projectId: string, The ID of the project against which to make the request. (required) body: object, The request body. (required) 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. "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. # # Example of normalization code in Python: # # def NormalizeLongitude(longitude): # """Wraps decimal degrees longitude to [-180.0, 180.0].""" # q, r = divmod(longitude, 360.0) # if r > 180.0 or (r == 180.0 and q <= -1.0): # return r - 360.0 # return r # # def NormalizeLatLng(latitude, longitude): # """Wraps decimal degrees latitude and longitude to # [-90.0, 90.0] and [-180.0, 180.0], respectively.""" # r = latitude % 360.0 # if r <= 90.0: # return r, NormalizeLongitude(longitude) # elif r >= 270.0: # return r - 360, NormalizeLongitude(longitude) # else: # return 180 - r, NormalizeLongitude(longitude + 180.0) # # assert 180.0 == NormalizeLongitude(180.0) # assert -180.0 == NormalizeLongitude(-180.0) # assert -179.0 == NormalizeLongitude(181.0) # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) "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]. }, "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 `""`. "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. "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 `""`. }, ], "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. }, }, "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. "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. "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 this array may not be preserved if it contains a mix of # indexed and unindexed values. # Object with schema name: Value ], }, "integerValue": "A String", # An integer value. "nullValue": "A String", # A null value. }, }, "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 `""`. "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. "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 `""`. }, ], "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. "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. # # Example of normalization code in Python: # # def NormalizeLongitude(longitude): # """Wraps decimal degrees longitude to [-180.0, 180.0].""" # q, r = divmod(longitude, 360.0) # if r > 180.0 or (r == 180.0 and q <= -1.0): # return r - 360.0 # return r # # def NormalizeLatLng(latitude, longitude): # """Wraps decimal degrees latitude and longitude to # [-90.0, 90.0] and [-180.0, 180.0], respectively.""" # r = latitude % 360.0 # if r <= 90.0: # return r, NormalizeLongitude(longitude) # elif r >= 270.0: # return r - 360, NormalizeLongitude(longitude) # else: # return 180 - r, NormalizeLongitude(longitude + 180.0) # # assert 180.0 == NormalizeLongitude(180.0) # assert -180.0 == NormalizeLongitude(-180.0) # assert -179.0 == NormalizeLongitude(181.0) # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) "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]. }, "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 `""`. "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. "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 `""`. }, ], "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. }, }, "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. "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. "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 this array may not be preserved if it contains a mix of # indexed and unindexed values. # Object with schema name: Value ], }, "integerValue": "A String", # An integer value. "nullValue": "A String", # A null value. }, }, "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 `""`. "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. "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 `""`. }, ], "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. "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. # # Example of normalization code in Python: # # def NormalizeLongitude(longitude): # """Wraps decimal degrees longitude to [-180.0, 180.0].""" # q, r = divmod(longitude, 360.0) # if r > 180.0 or (r == 180.0 and q <= -1.0): # return r - 360.0 # return r # # def NormalizeLatLng(latitude, longitude): # """Wraps decimal degrees latitude and longitude to # [-90.0, 90.0] and [-180.0, 180.0], respectively.""" # r = latitude % 360.0 # if r <= 90.0: # return r, NormalizeLongitude(longitude) # elif r >= 270.0: # return r - 360, NormalizeLongitude(longitude) # else: # return 180 - r, NormalizeLongitude(longitude + 180.0) # # assert 180.0 == NormalizeLongitude(180.0) # assert -180.0 == NormalizeLongitude(-180.0) # assert -179.0 == NormalizeLongitude(181.0) # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) "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]. }, "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 `""`. "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. "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 `""`. }, ], "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. }, }, "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. "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. "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 this array may not be preserved if it contains a mix of # indexed and unindexed values. # Object with schema name: Value ], }, "integerValue": "A String", # An integer value. "nullValue": "A String", # A null value. }, }, "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 `""`. "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. "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 `""`. }, ], "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 `""`. "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. "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 `""`. }, ], "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 `""`. "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. "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 `""`. }, ], "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. }</pre> </div> <div class="method"> <code class="details" id="lookup">lookup(projectId, body, x__xgafv=None)</code> <pre>Looks up entities by key. Args: projectId: string, The ID of the project against which to make the request. (required) body: object, The request body. (required) The object takes the form of: { # The request for Datastore.Lookup. "keys": [ # 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 `""`. "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. "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 `""`. }, ], "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. "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. "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. # # Example of normalization code in Python: # # def NormalizeLongitude(longitude): # """Wraps decimal degrees longitude to [-180.0, 180.0].""" # q, r = divmod(longitude, 360.0) # if r > 180.0 or (r == 180.0 and q <= -1.0): # return r - 360.0 # return r # # def NormalizeLatLng(latitude, longitude): # """Wraps decimal degrees latitude and longitude to # [-90.0, 90.0] and [-180.0, 180.0], respectively.""" # r = latitude % 360.0 # if r <= 90.0: # return r, NormalizeLongitude(longitude) # elif r >= 270.0: # return r - 360, NormalizeLongitude(longitude) # else: # return 180 - r, NormalizeLongitude(longitude + 180.0) # # assert 180.0 == NormalizeLongitude(180.0) # assert -180.0 == NormalizeLongitude(-180.0) # assert -179.0 == NormalizeLongitude(181.0) # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) "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]. }, "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 `""`. "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. "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 `""`. }, ], "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. }, }, "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. "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. "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 this array may not be preserved if it contains a mix of # indexed and unindexed values. # Object with schema name: Value ], }, "integerValue": "A String", # An integer value. "nullValue": "A String", # A null value. }, }, "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 `""`. "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. "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 `""`. }, ], "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. }, }, }, }, ], "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 `""`. "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. "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 `""`. }, ], "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. "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. # # Example of normalization code in Python: # # def NormalizeLongitude(longitude): # """Wraps decimal degrees longitude to [-180.0, 180.0].""" # q, r = divmod(longitude, 360.0) # if r > 180.0 or (r == 180.0 and q <= -1.0): # return r - 360.0 # return r # # def NormalizeLatLng(latitude, longitude): # """Wraps decimal degrees latitude and longitude to # [-90.0, 90.0] and [-180.0, 180.0], respectively.""" # r = latitude % 360.0 # if r <= 90.0: # return r, NormalizeLongitude(longitude) # elif r >= 270.0: # return r - 360, NormalizeLongitude(longitude) # else: # return 180 - r, NormalizeLongitude(longitude + 180.0) # # assert 180.0 == NormalizeLongitude(180.0) # assert -180.0 == NormalizeLongitude(-180.0) # assert -179.0 == NormalizeLongitude(181.0) # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) "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]. }, "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 `""`. "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. "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 `""`. }, ], "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. }, }, "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. "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. "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 this array may not be preserved if it contains a mix of # indexed and unindexed values. # Object with schema name: Value ], }, "integerValue": "A String", # An integer value. "nullValue": "A String", # A null value. }, }, "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 `""`. "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. "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 `""`. }, ], "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. }, }, }, }, ], }</pre> </div> <div class="method"> <code class="details" id="rollback">rollback(projectId, body, x__xgafv=None)</code> <pre>Rolls back a transaction. Args: projectId: string, The ID of the project against which to make the request. (required) body: object, The request body. (required) The object takes the form of: { # The request for Datastore.Rollback. "transaction": "A String", # 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). }</pre> </div> <div class="method"> <code class="details" id="runQuery">runQuery(projectId, body, x__xgafv=None)</code> <pre>Queries for entities. Args: projectId: string, The ID of the project against which to make the request. (required) body: object, The request body. (required) 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. "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. # # Example of normalization code in Python: # # def NormalizeLongitude(longitude): # """Wraps decimal degrees longitude to [-180.0, 180.0].""" # q, r = divmod(longitude, 360.0) # if r > 180.0 or (r == 180.0 and q <= -1.0): # return r - 360.0 # return r # # def NormalizeLatLng(latitude, longitude): # """Wraps decimal degrees latitude and longitude to # [-90.0, 90.0] and [-180.0, 180.0], respectively.""" # r = latitude % 360.0 # if r <= 90.0: # return r, NormalizeLongitude(longitude) # elif r >= 270.0: # return r - 360, NormalizeLongitude(longitude) # else: # return 180 - r, NormalizeLongitude(longitude + 180.0) # # assert 180.0 == NormalizeLongitude(180.0) # assert -180.0 == NormalizeLongitude(-180.0) # assert -179.0 == NormalizeLongitude(181.0) # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) "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]. }, "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 `""`. "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. "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 `""`. }, ], "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. }, }, "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. "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. "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 this array may not be preserved if it contains a mix of # indexed and unindexed values. # Object with schema name: Value ], }, "integerValue": "A String", # An integer value. "nullValue": "A String", # A null value. }, "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 query](https://cloud.google.com/datastore/docs/apis/gql/gql_reference). # The GQL query to run. "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. "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. # # Example of normalization code in Python: # # def NormalizeLongitude(longitude): # """Wraps decimal degrees longitude to [-180.0, 180.0].""" # q, r = divmod(longitude, 360.0) # if r > 180.0 or (r == 180.0 and q <= -1.0): # return r - 360.0 # return r # # def NormalizeLatLng(latitude, longitude): # """Wraps decimal degrees latitude and longitude to # [-90.0, 90.0] and [-180.0, 180.0], respectively.""" # r = latitude % 360.0 # if r <= 90.0: # return r, NormalizeLongitude(longitude) # elif r >= 270.0: # return r - 360, NormalizeLongitude(longitude) # else: # return 180 - r, NormalizeLongitude(longitude + 180.0) # # assert 180.0 == NormalizeLongitude(180.0) # assert -180.0 == NormalizeLongitude(-180.0) # assert -179.0 == NormalizeLongitude(181.0) # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) "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]. }, "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 `""`. "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. "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 `""`. }, ], "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. }, }, "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. "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. "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 this array may not be preserved if it contains a mix of # indexed and unindexed values. # Object with schema name: Value ], }, "integerValue": "A String", # An integer value. "nullValue": "A String", # A null value. }, }, }, "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. "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. # # Example of normalization code in Python: # # def NormalizeLongitude(longitude): # """Wraps decimal degrees longitude to [-180.0, 180.0].""" # q, r = divmod(longitude, 360.0) # if r > 180.0 or (r == 180.0 and q <= -1.0): # return r - 360.0 # return r # # def NormalizeLatLng(latitude, longitude): # """Wraps decimal degrees latitude and longitude to # [-90.0, 90.0] and [-180.0, 180.0], respectively.""" # r = latitude % 360.0 # if r <= 90.0: # return r, NormalizeLongitude(longitude) # elif r >= 270.0: # return r - 360, NormalizeLongitude(longitude) # else: # return 180 - r, NormalizeLongitude(longitude + 180.0) # # assert 180.0 == NormalizeLongitude(180.0) # assert -180.0 == NormalizeLongitude(-180.0) # assert -179.0 == NormalizeLongitude(181.0) # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) "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]. }, "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 `""`. "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. "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 `""`. }, ], "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. }, }, "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. "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. "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 this array may not be preserved if it contains a mix of # indexed and unindexed values. # Object with schema name: Value ], }, "integerValue": "A String", # An integer value. "nullValue": "A String", # A null value. }, }, ], "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. "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. # # Example of normalization code in Python: # # def NormalizeLongitude(longitude): # """Wraps decimal degrees longitude to [-180.0, 180.0].""" # q, r = divmod(longitude, 360.0) # if r > 180.0 or (r == 180.0 and q <= -1.0): # return r - 360.0 # return r # # def NormalizeLatLng(latitude, longitude): # """Wraps decimal degrees latitude and longitude to # [-90.0, 90.0] and [-180.0, 180.0], respectively.""" # r = latitude % 360.0 # if r <= 90.0: # return r, NormalizeLongitude(longitude) # elif r >= 270.0: # return r - 360, NormalizeLongitude(longitude) # else: # return 180 - r, NormalizeLongitude(longitude + 180.0) # # assert 180.0 == NormalizeLongitude(180.0) # assert -180.0 == NormalizeLongitude(-180.0) # assert -179.0 == NormalizeLongitude(181.0) # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) "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]. }, "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 `""`. "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. "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 `""`. }, ], "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. }, }, "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. "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. "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 this array may not be preserved if it contains a mix of # indexed and unindexed values. # Object with schema name: Value ], }, "integerValue": "A String", # An integer value. "nullValue": "A String", # A null value. }, "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. "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. # # Example of normalization code in Python: # # def NormalizeLongitude(longitude): # """Wraps decimal degrees longitude to [-180.0, 180.0].""" # q, r = divmod(longitude, 360.0) # if r > 180.0 or (r == 180.0 and q <= -1.0): # return r - 360.0 # return r # # def NormalizeLatLng(latitude, longitude): # """Wraps decimal degrees latitude and longitude to # [-90.0, 90.0] and [-180.0, 180.0], respectively.""" # r = latitude % 360.0 # if r <= 90.0: # return r, NormalizeLongitude(longitude) # elif r >= 270.0: # return r - 360, NormalizeLongitude(longitude) # else: # return 180 - r, NormalizeLongitude(longitude + 180.0) # # assert 180.0 == NormalizeLongitude(180.0) # assert -180.0 == NormalizeLongitude(-180.0) # assert -179.0 == NormalizeLongitude(181.0) # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) "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]. }, "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 `""`. "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. "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 `""`. }, ], "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. }, }, "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. "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. "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 this array may not be preserved if it contains a mix of # indexed and unindexed values. # Object with schema name: Value ], }, "integerValue": "A String", # An integer value. "nullValue": "A String", # A null value. }, }, "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 `""`. "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. "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 `""`. }, ], "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. }, }</pre> </div> </body></html>