123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370 |
- // Copyright 2019 Google LLC.
- //
- // 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.firestore.admin.v1beta1;
- import "google/api/annotations.proto";
- import "google/firestore/admin/v1beta1/index.proto";
- import "google/longrunning/operations.proto";
- import "google/protobuf/empty.proto";
- import "google/protobuf/timestamp.proto";
- import "google/api/client.proto";
- option csharp_namespace = "Google.Cloud.Firestore.Admin.V1Beta1";
- option go_package = "google.golang.org/genproto/googleapis/firestore/admin/v1beta1;admin";
- option java_multiple_files = true;
- option java_outer_classname = "FirestoreAdminProto";
- option java_package = "com.google.firestore.admin.v1beta1";
- option objc_class_prefix = "GCFS";
- // The Cloud Firestore Admin API.
- //
- // This API provides several administrative services for Cloud Firestore.
- //
- // # Concepts
- //
- // Project, Database, Namespace, Collection, and Document are used as defined in
- // the Google Cloud Firestore API.
- //
- // Operation: An Operation represents work being performed in the background.
- //
- //
- // # Services
- //
- // ## Index
- //
- // The index service manages Cloud Firestore indexes.
- //
- // Index creation is 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.
- //
- // ## Metadata
- //
- // Provides metadata and statistical information about data in Cloud Firestore.
- // The data provided as part of this API may be stale.
- //
- // ## 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.
- //
- // Operations are created by service `FirestoreAdmin`, but are accessed via
- // service `google.longrunning.Operations`.
- service FirestoreAdmin {
- option (google.api.default_host) = "firestore.googleapis.com";
- option (google.api.oauth_scopes) =
- "https://www.googleapis.com/auth/cloud-platform,"
- "https://www.googleapis.com/auth/datastore";
- // Creates the specified index.
- // A newly created index's initial state is `CREATING`. On completion of the
- // returned [google.longrunning.Operation][google.longrunning.Operation], the state will be `READY`.
- // If the index already exists, the call will return an `ALREADY_EXISTS`
- // status.
- //
- // During 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][google.firestore.admin.v1beta1.FirestoreAdmin.DeleteIndex], then re-creating the index with
- // [create][google.firestore.admin.v1beta1.FirestoreAdmin.CreateIndex].
- //
- // Indexes with a single field cannot be created.
- rpc CreateIndex(CreateIndexRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1beta1/{parent=projects/*/databases/*}/indexes"
- body: "index"
- };
- }
- // Lists the indexes that match the specified filters.
- rpc ListIndexes(ListIndexesRequest) returns (ListIndexesResponse) {
- option (google.api.http) = {
- get: "/v1beta1/{parent=projects/*/databases/*}/indexes"
- };
- }
- // Gets an index.
- rpc GetIndex(GetIndexRequest) returns (Index) {
- option (google.api.http) = {
- get: "/v1beta1/{name=projects/*/databases/*/indexes/*}"
- };
- }
- // Deletes an index.
- rpc DeleteIndex(DeleteIndexRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = {
- delete: "/v1beta1/{name=projects/*/databases/*/indexes/*}"
- };
- }
- // Exports a copy of all or a subset of documents from Google Cloud Firestore
- // to another storage system, such as Google Cloud Storage. Recent updates to
- // documents 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 ExportDocuments(ExportDocumentsRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1beta1/{name=projects/*/databases/*}:exportDocuments"
- body: "*"
- };
- }
- // Imports documents into Google Cloud Firestore. Existing documents with the
- // same name 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 ImportDocuments operation is cancelled, it is possible
- // that a subset of the data has already been imported to Cloud Firestore.
- rpc ImportDocuments(ImportDocumentsRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1beta1/{name=projects/*/databases/*}:importDocuments"
- body: "*"
- };
- }
- }
- // Metadata for index operations. This metadata populates
- // the metadata field of [google.longrunning.Operation][google.longrunning.Operation].
- message IndexOperationMetadata {
- // The type of index operation.
- enum OperationType {
- // Unspecified. Never set by server.
- OPERATION_TYPE_UNSPECIFIED = 0;
- // The operation is creating the index. Initiated by a `CreateIndex` call.
- CREATING_INDEX = 1;
- }
- // The time that work began on the operation.
- google.protobuf.Timestamp start_time = 1;
- // The time the operation ended, either successfully or otherwise. Unset if
- // the operation is still active.
- google.protobuf.Timestamp end_time = 2;
- // The index resource that this operation is acting on. For example:
- // `projects/{project_id}/databases/{database_id}/indexes/{index_id}`
- string index = 3;
- // The type of index operation.
- OperationType operation_type = 4;
- // True if the [google.longrunning.Operation] was cancelled. If the
- // cancellation is in progress, cancelled will be true but
- // [google.longrunning.Operation.done][google.longrunning.Operation.done] will be false.
- bool cancelled = 5;
- // Progress of the existing operation, measured in number of documents.
- Progress document_progress = 6;
- }
- // Measures the progress of a particular metric.
- message Progress {
- // An estimate of how much work 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. Zero if the
- // work estimate is unavailable. May change as work progresses.
- int64 work_estimated = 2;
- }
- // The request for [FirestoreAdmin.CreateIndex][google.firestore.admin.v1beta1.FirestoreAdmin.CreateIndex].
- message CreateIndexRequest {
- // The name of the database this index will apply to. For example:
- // `projects/{project_id}/databases/{database_id}`
- string parent = 1;
- // The index to create. The name and state fields are output only and will be
- // ignored. Certain single field indexes cannot be created or deleted.
- Index index = 2;
- }
- // The request for [FirestoreAdmin.GetIndex][google.firestore.admin.v1beta1.FirestoreAdmin.GetIndex].
- message GetIndexRequest {
- // The name of the index. For example:
- // `projects/{project_id}/databases/{database_id}/indexes/{index_id}`
- string name = 1;
- }
- // The request for [FirestoreAdmin.ListIndexes][google.firestore.admin.v1beta1.FirestoreAdmin.ListIndexes].
- message ListIndexesRequest {
- // The database name. For example:
- // `projects/{project_id}/databases/{database_id}`
- string parent = 1;
- string filter = 2;
- // The standard List page size.
- int32 page_size = 3;
- // The standard List page token.
- string page_token = 4;
- }
- // The request for [FirestoreAdmin.DeleteIndex][google.firestore.admin.v1beta1.FirestoreAdmin.DeleteIndex].
- message DeleteIndexRequest {
- // The index name. For example:
- // `projects/{project_id}/databases/{database_id}/indexes/{index_id}`
- string name = 1;
- }
- // The response for [FirestoreAdmin.ListIndexes][google.firestore.admin.v1beta1.FirestoreAdmin.ListIndexes].
- message ListIndexesResponse {
- // The indexes.
- repeated Index indexes = 1;
- // The standard List next-page token.
- string next_page_token = 2;
- }
- // The request for [FirestoreAdmin.ExportDocuments][google.firestore.admin.v1beta1.FirestoreAdmin.ExportDocuments].
- message ExportDocumentsRequest {
- // Database to export. Should be of the form:
- // `projects/{project_id}/databases/{database_id}`.
- string name = 1;
- // Which collection ids to export. Unspecified means all collections.
- repeated string collection_ids = 3;
- // The output URI. Currently only supports Google Cloud Storage URIs of the
- // form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the name
- // of the Google Cloud Storage bucket and `NAMESPACE_PATH` is an optional
- // Google Cloud Storage namespace path. When
- // choosing a name, be sure to consider Google Cloud Storage naming
- // guidelines: https://cloud.google.com/storage/docs/naming.
- // If the URI is a bucket (without a namespace path), a prefix will be
- // generated based on the start time.
- string output_uri_prefix = 4;
- }
- // The request for [FirestoreAdmin.ImportDocuments][google.firestore.admin.v1beta1.FirestoreAdmin.ImportDocuments].
- message ImportDocumentsRequest {
- // Database to import into. Should be of the form:
- // `projects/{project_id}/databases/{database_id}`.
- string name = 1;
- // Which collection ids to import. Unspecified means all collections included
- // in the import.
- repeated string collection_ids = 3;
- // Location of the exported files.
- // This must match the output_uri_prefix of an ExportDocumentsResponse from
- // an export that has completed successfully.
- // See:
- // [google.firestore.admin.v1beta1.ExportDocumentsResponse.output_uri_prefix][google.firestore.admin.v1beta1.ExportDocumentsResponse.output_uri_prefix].
- string input_uri_prefix = 4;
- }
- // Returned in the [google.longrunning.Operation][google.longrunning.Operation] response field.
- message ExportDocumentsResponse {
- // Location of the output files. This can be used to begin an import
- // into Cloud Firestore (this project or another project) after the operation
- // completes successfully.
- string output_uri_prefix = 1;
- }
- // Metadata for ExportDocuments operations.
- message ExportDocumentsMetadata {
- // The time that work began on the operation.
- google.protobuf.Timestamp start_time = 1;
- // The time the operation ended, either successfully or otherwise. Unset if
- // the operation is still active.
- google.protobuf.Timestamp end_time = 2;
- // The state of the export operation.
- OperationState operation_state = 3;
- // An estimate of the number of documents processed.
- Progress progress_documents = 4;
- // An estimate of the number of bytes processed.
- Progress progress_bytes = 5;
- // Which collection ids are being exported.
- repeated string collection_ids = 6;
- // Where the entities are being exported to.
- string output_uri_prefix = 7;
- }
- // Metadata for ImportDocuments operations.
- message ImportDocumentsMetadata {
- // The time that work began on the operation.
- google.protobuf.Timestamp start_time = 1;
- // The time the operation ended, either successfully or otherwise. Unset if
- // the operation is still active.
- google.protobuf.Timestamp end_time = 2;
- // The state of the import operation.
- OperationState operation_state = 3;
- // An estimate of the number of documents processed.
- Progress progress_documents = 4;
- // An estimate of the number of bytes processed.
- Progress progress_bytes = 5;
- // Which collection ids are being imported.
- repeated string collection_ids = 6;
- // The location of the documents being imported.
- string input_uri_prefix = 7;
- }
- // The various possible states for an ongoing Operation.
- enum OperationState {
- // 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;
- }
|