123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332 |
- // Copyright 2018 Google Inc.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- syntax = "proto3";
- package google.datastore.admin.v1beta1;
- import "google/api/annotations.proto";
- import "google/longrunning/operations.proto";
- import "google/protobuf/timestamp.proto";
- option csharp_namespace = "Google.Cloud.Datastore.Admin.V1Beta1";
- option go_package = "google.golang.org/genproto/googleapis/datastore/admin/v1beta1;admin";
- option java_multiple_files = true;
- option java_outer_classname = "DatastoreAdminProto";
- option java_package = "com.google.datastore.admin.v1beta1";
- option ruby_package = "Google::Cloud::Datastore::Admin::V1beta1";
- // 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).
- //
- // -----------------------------------------------------------------------------
- // ## Services
- //
- // # Export/Import
- //
- // 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.
- //
- // # Operation
- //
- // 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.
- service DatastoreAdmin {
- // 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.
- rpc ExportEntities(ExportEntitiesRequest)
- returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1beta1/projects/{project_id}:export"
- body: "*"
- };
- }
- // 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.
- rpc ImportEntities(ImportEntitiesRequest)
- returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1beta1/projects/{project_id}:import"
- body: "*"
- };
- }
- }
- // Metadata common to all Datastore Admin operations.
- message CommonMetadata {
- // The various possible states for an ongoing Operation.
- enum State {
- // Unspecified.
- STATE_UNSPECIFIED = 0;
- // Request is being prepared for processing.
- INITIALIZING = 1;
- // Request is actively being processed.
- PROCESSING = 2;
- // Request is in the process of being cancelled after user called
- // google.longrunning.Operations.CancelOperation on the operation.
- CANCELLING = 3;
- // Request has been processed and is in its finalization stage.
- FINALIZING = 4;
- // Request has completed successfully.
- SUCCESSFUL = 5;
- // Request has finished being processed, but encountered an error.
- FAILED = 6;
- // Request has finished being cancelled after user called
- // google.longrunning.Operations.CancelOperation.
- CANCELLED = 7;
- }
- // The time that work began on the operation.
- google.protobuf.Timestamp start_time = 1;
- // The time the operation ended, either successfully or otherwise.
- google.protobuf.Timestamp end_time = 2;
- // The type of the operation. Can be used as a filter in
- // ListOperationsRequest.
- OperationType operation_type = 3;
- // The client-assigned labels which were provided when the operation was
- // created. May also include additional labels.
- map<string, string> labels = 4;
- // The current state of the Operation.
- State state = 5;
- }
- // Measures the progress of a particular metric.
- message Progress {
- // The amount of work that has been completed. Note that this may be greater
- // than work_estimated.
- int64 work_completed = 1;
- // An estimate of how much work needs to be performed. May be zero if the
- // work estimate is unavailable.
- int64 work_estimated = 2;
- }
- // The request for
- // [google.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities][google.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities].
- message ExportEntitiesRequest {
- // Project ID against which to make the request.
- string project_id = 1;
- // Client-assigned labels.
- map<string, string> labels = 2;
- // Description of what data from the project is included in the export.
- EntityFilter entity_filter = 3;
- // 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](https://cloud.google.com/storage/docs/naming#object-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.v1beta1.ExportEntitiesResponse.output_url][google.datastore.admin.v1beta1.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.
- string output_url_prefix = 4;
- }
- // The request for
- // [google.datastore.admin.v1beta1.DatastoreAdmin.ImportEntities][google.datastore.admin.v1beta1.DatastoreAdmin.ImportEntities].
- message ImportEntitiesRequest {
- // Project ID against which to make the request.
- string project_id = 1;
- // Client-assigned labels.
- map<string, string> labels = 2;
- // 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](https://cloud.google.com/storage/docs/naming#object-considerations).
- //
- // For more information, see
- // [google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url][google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url].
- string input_url = 3;
- // 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.
- EntityFilter entity_filter = 4;
- }
- // The response for
- // [google.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities][google.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities].
- message ExportEntitiesResponse {
- // Location of the output metadata file. This can be used to begin an import
- // into Cloud Datastore (this project or another project). See
- // [google.datastore.admin.v1beta1.ImportEntitiesRequest.input_url][google.datastore.admin.v1beta1.ImportEntitiesRequest.input_url].
- // Only present if the operation completed successfully.
- string output_url = 1;
- }
- // Metadata for ExportEntities operations.
- message ExportEntitiesMetadata {
- // Metadata common to all Datastore Admin operations.
- CommonMetadata common = 1;
- // An estimate of the number of entities processed.
- Progress progress_entities = 2;
- // An estimate of the number of bytes processed.
- Progress progress_bytes = 3;
- // Description of which entities are being exported.
- EntityFilter entity_filter = 4;
- // Location for the export metadata and data files. This will be the same
- // value as the
- // [google.datastore.admin.v1beta1.ExportEntitiesRequest.output_url_prefix][google.datastore.admin.v1beta1.ExportEntitiesRequest.output_url_prefix]
- // field. The final output location is provided in
- // [google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url][google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url].
- string output_url_prefix = 5;
- }
- // Metadata for ImportEntities operations.
- message ImportEntitiesMetadata {
- // Metadata common to all Datastore Admin operations.
- CommonMetadata common = 1;
- // An estimate of the number of entities processed.
- Progress progress_entities = 2;
- // An estimate of the number of bytes processed.
- Progress progress_bytes = 3;
- // Description of which entities are being imported.
- EntityFilter entity_filter = 4;
- // The location of the import metadata file. This will be the same value as
- // the
- // [google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url][google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url]
- // field.
- string input_url = 5;
- }
- // Identifies a subset of entities in a project. This is specified as
- // combinations of kinds and namespaces (either or both of which may be all, as
- // described in the following examples).
- // Example usage:
- //
- // Entire project:
- // kinds=[], namespace_ids=[]
- //
- // Kinds Foo and Bar in all namespaces:
- // kinds=['Foo', 'Bar'], namespace_ids=[]
- //
- // Kinds Foo and Bar only in the default namespace:
- // kinds=['Foo', 'Bar'], namespace_ids=['']
- //
- // Kinds Foo and Bar in both the default and Baz namespaces:
- // kinds=['Foo', 'Bar'], namespace_ids=['', 'Baz']
- //
- // The entire Baz namespace:
- // kinds=[], namespace_ids=['Baz']
- message EntityFilter {
- // If empty, then this represents all kinds.
- repeated string kinds = 1;
- // An empty list represents all namespaces. This is the preferred
- // usage for projects that don't use namespaces.
- //
- // An empty string element represents the default namespace. This should be
- // used if the project has data in non-default namespaces, but doesn't want to
- // include them.
- // Each namespace in this list must be unique.
- repeated string namespace_ids = 2;
- }
- // Operation types.
- enum OperationType {
- // Unspecified.
- OPERATION_TYPE_UNSPECIFIED = 0;
- // ExportEntities.
- EXPORT_ENTITIES = 1;
- // ImportEntities.
- IMPORT_ENTITIES = 2;
- }
|