Class DatastoreAdminClient (2.16.0-rc)

Google Cloud Datastore Admin API.

The Datastore Admin API provides several admin services for Cloud Datastore.

Concepts: Project, namespace, kind, and entity as defined in the Google Cloud Datastore API.

Operation: An Operation represents work being performed in the background.

EntityFilter: Allows specifying a subset of entities in a project. This is specified as a combination of kinds and namespaces (either or both of which may be all).

Export/Import Service:

  • The Export/Import service provides the ability to copy all or a subset of entities to/from Google Cloud Storage.
  • Exported data may be imported into Cloud Datastore for any Google Cloud Platform project. It is not restricted to the export source project. It is possible to export from one project and then import into another.
  • Exported data can also be loaded into Google BigQuery for analysis.
  • Exports and imports are performed asynchronously. An Operation resource is created for each export/import. The state (including any errors encountered) of the export/import may be queried via the Operation resource.

Index Service:

  • The index service manages Cloud Datastore composite indexes.
  • Index creation and deletion are performed asynchronously. An Operation resource is created for each such asynchronous operation. The state of the operation (including any errors encountered) may be queried via the Operation resource.

Operation Service:

  • The Operations collection provides a record of actions performed for the specified project (including any operations in progress). Operations are not created directly but through calls on other collections or resources.
  • An operation that is not yet done may be cancelled. The request to cancel is asynchronous and the operation may continue to run for some time after the request to cancel is made.
  • An operation that is done may be deleted so that it is no longer listed as part of the Operation collection.
  • ListOperations returns all pending operations, but not completed operations.
  • Operations are created by service DatastoreAdmin, but are accessed via service google.longrunning.Operations.
Equality

Instances of this class created via copy-construction or copy-assignment always compare equal. Instances created with equal std::shared_ptr<*Connection> objects compare equal. Objects that compare equal share the same underlying resources.

Performance

Creating a new instance of this class is a relatively expensive operation, new objects establish new connections to the service. In contrast, copy-construction, move-construction, and the corresponding assignment operations are relatively efficient as the copies share all underlying resources.

Thread Safety

Concurrent access to different instances of this class, even if they compare equal, is guaranteed to work. Two or more threads operating on the same instance of this class is not guaranteed to work. Since copy-construction and move-construction is a relatively efficient operation, consider using such a copy when using this class from multiple threads.

Constructors

DatastoreAdminClient(DatastoreAdminClient const &)

Copy and move support

Parameter
NameDescription
DatastoreAdminClient const &

DatastoreAdminClient(DatastoreAdminClient &&)

Copy and move support

Parameter
NameDescription
DatastoreAdminClient &&

DatastoreAdminClient(std::shared_ptr< DatastoreAdminConnection >, Options)

Parameters
NameDescription
connection std::shared_ptr< DatastoreAdminConnection >
opts Options

Operators

operator=(DatastoreAdminClient const &)

Copy and move support

Parameter
NameDescription
DatastoreAdminClient const &
Returns
TypeDescription
DatastoreAdminClient &

operator=(DatastoreAdminClient &&)

Copy and move support

Parameter
NameDescription
DatastoreAdminClient &&
Returns
TypeDescription
DatastoreAdminClient &

Functions

ExportEntities(std::string const &, std::map< std::string, std::string > const &, google::datastore::admin::v1::EntityFilter const &, std::string const &, Options)

Exports a copy of all or a subset of entities from Google Cloud Datastore to another storage system, such as Google Cloud Storage.

Recent updates to entities may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage.

Parameters
NameDescription
project_id std::string const &

Required. Project ID against which to make the request.

labels std::map< std::string, std::string > const &

Client-assigned labels.

entity_filter google::datastore::admin::v1::EntityFilter const &

Description of what data from the project is included in the export.

output_url_prefix std::string const &

Required. Location for the export metadata and data files.
The full resource URL of the external storage location. Currently, only Google Cloud Storage is supported. So output_url_prefix should be of the form: gs://BUCKET_NAME[/NAMESPACE_PATH], where BUCKET_NAME is the name of the Cloud Storage bucket and NAMESPACE_PATH is an optional Cloud Storage namespace path (this is not a Cloud Datastore namespace). For more information about Cloud Storage namespace paths, see Object name considerations.
The resulting files will be nested deeper than the specified URL prefix. The final output URL will be provided in the [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url] field. That value should be used for subsequent ImportEntities operations.
By nesting the data files deeper, the same Cloud Storage bucket can be used in multiple ExportEntities operations without conflict.

opts Options

Optional. Override the class-level options, such as retry and backoff policies.

Returns
TypeDescription
future< StatusOr< google::datastore::admin::v1::ExportEntitiesResponse > >

A future that becomes satisfied when the LRO (Long Running Operation) completes or the polling policy in effect for this call is exhausted. The future is satisfied with an error if the LRO completes with an error or the polling policy is exhausted. In this case the StatusOr returned by the future contains the error. If the LRO completes successfully the value of the future contains the LRO's result. For this RPC the result is a google.datastore.admin.v1.ExportEntitiesResponse proto message. The C++ class representing this message is created by Protobuf, using the Protobuf mapping rules.

ExportEntities(google::datastore::admin::v1::ExportEntitiesRequest const &, Options)

Exports a copy of all or a subset of entities from Google Cloud Datastore to another storage system, such as Google Cloud Storage.

Recent updates to entities may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage.

Parameters
NameDescription
request google::datastore::admin::v1::ExportEntitiesRequest const &

Unary RPCs, such as the one wrapped by this function, receive a single request proto message which includes all the inputs for the RPC. In this case, the proto message is a google.datastore.admin.v1.ExportEntitiesRequest. Proto messages are converted to C++ classes by Protobuf, using the Protobuf mapping rules.

opts Options

Optional. Override the class-level options, such as retry and backoff policies.

Returns
TypeDescription
future< StatusOr< google::datastore::admin::v1::ExportEntitiesResponse > >

A future that becomes satisfied when the LRO (Long Running Operation) completes or the polling policy in effect for this call is exhausted. The future is satisfied with an error if the LRO completes with an error or the polling policy is exhausted. In this case the StatusOr returned by the future contains the error. If the LRO completes successfully the value of the future contains the LRO's result. For this RPC the result is a google.datastore.admin.v1.ExportEntitiesResponse proto message. The C++ class representing this message is created by Protobuf, using the Protobuf mapping rules.

ImportEntities(std::string const &, std::map< std::string, std::string > const &, std::string const &, google::datastore::admin::v1::EntityFilter const &, Options)

Imports entities into Google Cloud Datastore.

Existing entities with the same key are overwritten. The import occurs in the background and its progress can be monitored and managed via the Operation resource that is created. If an ImportEntities operation is cancelled, it is possible that a subset of the data has already been imported to Cloud Datastore.

Parameters
NameDescription
project_id std::string const &

Required. Project ID against which to make the request.

labels std::map< std::string, std::string > const &

Client-assigned labels.

input_url std::string const &

Required. The full resource URL of the external storage location. Currently, only Google Cloud Storage is supported. So input_url should be of the form: gs://BUCKET_NAME[/NAMESPACE_PATH]/OVERALL_EXPORT_METADATA_FILE, where BUCKET_NAME is the name of the Cloud Storage bucket, NAMESPACE_PATH is an optional Cloud Storage namespace path (this is not a Cloud Datastore namespace), and OVERALL_EXPORT_METADATA_FILE is the metadata file written by the ExportEntities operation. For more information about Cloud Storage namespace paths, see Object name considerations.
For more information, see [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url].

entity_filter google::datastore::admin::v1::EntityFilter const &

Optionally specify which kinds/namespaces are to be imported. If provided, the list must be a subset of the EntityFilter used in creating the export, otherwise a FAILED_PRECONDITION error will be returned. If no filter is specified then all entities from the export are imported.

opts Options

Optional. Override the class-level options, such as retry and backoff policies.

Returns
TypeDescription
future< StatusOr< google::datastore::admin::v1::ImportEntitiesMetadata > >

A future that becomes satisfied when the LRO (Long Running Operation) completes or the polling policy in effect for this call is exhausted. The future is satisfied with an error if the LRO completes with an error or the polling policy is exhausted. In this case the StatusOr returned by the future contains the error. If the LRO completes successfully the value of the future contains the LRO's result. For this RPC the result is a google.datastore.admin.v1.ImportEntitiesMetadata proto message. The C++ class representing this message is created by Protobuf, using the Protobuf mapping rules.

ImportEntities(google::datastore::admin::v1::ImportEntitiesRequest const &, Options)

Imports entities into Google Cloud Datastore.

Existing entities with the same key are overwritten. The import occurs in the background and its progress can be monitored and managed via the Operation resource that is created. If an ImportEntities operation is cancelled, it is possible that a subset of the data has already been imported to Cloud Datastore.

Parameters
NameDescription
request google::datastore::admin::v1::ImportEntitiesRequest const &

Unary RPCs, such as the one wrapped by this function, receive a single request proto message which includes all the inputs for the RPC. In this case, the proto message is a google.datastore.admin.v1.ImportEntitiesRequest. Proto messages are converted to C++ classes by Protobuf, using the Protobuf mapping rules.

opts Options

Optional. Override the class-level options, such as retry and backoff policies.

Returns
TypeDescription
future< StatusOr< google::datastore::admin::v1::ImportEntitiesMetadata > >

A future that becomes satisfied when the LRO (Long Running Operation) completes or the polling policy in effect for this call is exhausted. The future is satisfied with an error if the LRO completes with an error or the polling policy is exhausted. In this case the StatusOr returned by the future contains the error. If the LRO completes successfully the value of the future contains the LRO's result. For this RPC the result is a google.datastore.admin.v1.ImportEntitiesMetadata proto message. The C++ class representing this message is created by Protobuf, using the Protobuf mapping rules.

CreateIndex(google::datastore::admin::v1::CreateIndexRequest const &, Options)

Creates the specified index.

A newly created index's initial state is CREATING. On completion of the returned google.longrunning.Operation, the state will be READY. If the index already exists, the call will return an ALREADY_EXISTS status.

During index creation, the process could result in an error, in which case the index will move to the ERROR state. The process can be recovered by fixing the data that caused the error, removing the index with delete, then re-creating the index with [create] [google.datastore.admin.v1.DatastoreAdmin.CreateIndex].

Indexes with a single property cannot be created.

Parameters
NameDescription
request google::datastore::admin::v1::CreateIndexRequest const &

Unary RPCs, such as the one wrapped by this function, receive a single request proto message which includes all the inputs for the RPC. In this case, the proto message is a google.datastore.admin.v1.CreateIndexRequest. Proto messages are converted to C++ classes by Protobuf, using the Protobuf mapping rules.

opts Options

Optional. Override the class-level options, such as retry and backoff policies.

Returns
TypeDescription
future< StatusOr< google::datastore::admin::v1::Index > >

A future that becomes satisfied when the LRO (Long Running Operation) completes or the polling policy in effect for this call is exhausted. The future is satisfied with an error if the LRO completes with an error or the polling policy is exhausted. In this case the StatusOr returned by the future contains the error. If the LRO completes successfully the value of the future contains the LRO's result. For this RPC the result is a google.datastore.admin.v1.Index proto message. The C++ class representing this message is created by Protobuf, using the Protobuf mapping rules.

DeleteIndex(google::datastore::admin::v1::DeleteIndexRequest const &, Options)

Deletes an existing index.

An index can only be deleted if it is in a READY or ERROR state. On successful execution of the request, the index will be in a DELETINGstate. And on completion of the returned google.longrunning.Operation, the index will be removed.

During index deletion, the process could result in an error, in which case the index will move to the ERROR state. The process can be recovered by fixing the data that caused the error, followed by calling delete again.

Parameters
NameDescription
request google::datastore::admin::v1::DeleteIndexRequest const &

Unary RPCs, such as the one wrapped by this function, receive a single request proto message which includes all the inputs for the RPC. In this case, the proto message is a google.datastore.admin.v1.DeleteIndexRequest. Proto messages are converted to C++ classes by Protobuf, using the Protobuf mapping rules.

opts Options

Optional. Override the class-level options, such as retry and backoff policies.

Returns
TypeDescription
future< StatusOr< google::datastore::admin::v1::Index > >

A future that becomes satisfied when the LRO (Long Running Operation) completes or the polling policy in effect for this call is exhausted. The future is satisfied with an error if the LRO completes with an error or the polling policy is exhausted. In this case the StatusOr returned by the future contains the error. If the LRO completes successfully the value of the future contains the LRO's result. For this RPC the result is a google.datastore.admin.v1.Index proto message. The C++ class representing this message is created by Protobuf, using the Protobuf mapping rules.

GetIndex(google::datastore::admin::v1::GetIndexRequest const &, Options)

Gets an index.

Parameters
NameDescription
request google::datastore::admin::v1::GetIndexRequest const &

Unary RPCs, such as the one wrapped by this function, receive a single request proto message which includes all the inputs for the RPC. In this case, the proto message is a google.datastore.admin.v1.GetIndexRequest. Proto messages are converted to C++ classes by Protobuf, using the Protobuf mapping rules.

opts Options

Optional. Override the class-level options, such as retry and backoff policies.

Returns
TypeDescription
StatusOr< google::datastore::admin::v1::Index >

the result of the RPC. The response message type (google.datastore.admin.v1.Index) is mapped to a C++ class using the Protobuf mapping rules. If the request fails, the StatusOr contains the error details.

ListIndexes(google::datastore::admin::v1::ListIndexesRequest, Options)

Lists the indexes that match the specified filters.

Datastore uses an eventually consistent query to fetch the list of indexes and may occasionally return stale results.

Parameters
NameDescription
request google::datastore::admin::v1::ListIndexesRequest

Unary RPCs, such as the one wrapped by this function, receive a single request proto message which includes all the inputs for the RPC. In this case, the proto message is a google.datastore.admin.v1.ListIndexesRequest. Proto messages are converted to C++ classes by Protobuf, using the Protobuf mapping rules.

opts Options

Optional. Override the class-level options, such as retry and backoff policies.

Returns
TypeDescription
StreamRange< google::datastore::admin::v1::Index >

a StreamRange to iterate of the results. See the documentation of this type for details. In brief, this class has begin() and end() member functions returning a iterator class meeting the input iterator requirements. The value type for this iterator is a StatusOr as the iteration may fail even after some values are retrieved successfully, for example, if there is a network disconnect. An empty set of results does not indicate an error, it indicates that there are no resources meeting the request criteria. On a successful iteration the StatusOr<T> contains elements of type google.datastore.admin.v1.Index, or rather, the C++ class generated by Protobuf from that type. Please consult the Protobuf documentation for details on the Protobuf mapping rules.