295 lines
11 KiB
Protocol Buffer
295 lines
11 KiB
Protocol Buffer
// Copyright 2018 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.v1;
|
|
|
|
import "google/api/annotations.proto";
|
|
import "google/firestore/admin/v1/field.proto";
|
|
import "google/firestore/admin/v1/index.proto";
|
|
import "google/longrunning/operations.proto";
|
|
import "google/protobuf/empty.proto";
|
|
import "google/protobuf/field_mask.proto";
|
|
|
|
option csharp_namespace = "Google.Cloud.Firestore.Admin.V1";
|
|
option go_package = "google.golang.org/genproto/googleapis/firestore/admin/v1;admin";
|
|
option java_multiple_files = true;
|
|
option java_outer_classname = "FirestoreAdminProto";
|
|
option java_package = "com.google.firestore.admin.v1";
|
|
option objc_class_prefix = "GCFS";
|
|
option php_namespace = "Google\\Cloud\\Firestore\\Admin\\V1";
|
|
|
|
// Operations are created by service `FirestoreAdmin`, but are accessed via
|
|
// service `google.longrunning.Operations`.
|
|
service FirestoreAdmin {
|
|
// Creates a composite index. This returns a
|
|
// [google.longrunning.Operation][google.longrunning.Operation] which may be
|
|
// used to track the status of the creation. The metadata for the operation
|
|
// will be the type
|
|
// [IndexOperationMetadata][google.firestore.admin.v1.IndexOperationMetadata].
|
|
rpc CreateIndex(CreateIndexRequest) returns (google.longrunning.Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1/{parent=projects/*/databases/*/collectionGroups/*}/indexes"
|
|
body: "index"
|
|
};
|
|
}
|
|
|
|
// Lists composite indexes.
|
|
rpc ListIndexes(ListIndexesRequest) returns (ListIndexesResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1/{parent=projects/*/databases/*/collectionGroups/*}/indexes"
|
|
};
|
|
}
|
|
|
|
// Gets a composite index.
|
|
rpc GetIndex(GetIndexRequest) returns (Index) {
|
|
option (google.api.http) = {
|
|
get: "/v1/{name=projects/*/databases/*/collectionGroups/*/indexes/*}"
|
|
};
|
|
}
|
|
|
|
// Deletes a composite index.
|
|
rpc DeleteIndex(DeleteIndexRequest) returns (google.protobuf.Empty) {
|
|
option (google.api.http) = {
|
|
delete: "/v1/{name=projects/*/databases/*/collectionGroups/*/indexes/*}"
|
|
};
|
|
}
|
|
|
|
// Gets the metadata and configuration for a Field.
|
|
rpc GetField(GetFieldRequest) returns (Field) {
|
|
option (google.api.http) = {
|
|
get: "/v1/{name=projects/*/databases/*/collectionGroups/*/fields/*}"
|
|
};
|
|
}
|
|
|
|
// Updates a field configuration. Currently, field updates apply only to
|
|
// single field index configuration. However, calls to
|
|
// [FirestoreAdmin.UpdateField][google.firestore.admin.v1.FirestoreAdmin.UpdateField]
|
|
// should provide a field mask to avoid changing any configuration that the
|
|
// caller isn't aware of. The field mask should be specified as: `{ paths:
|
|
// "index_config" }`.
|
|
//
|
|
// This call returns a
|
|
// [google.longrunning.Operation][google.longrunning.Operation] which may be
|
|
// used to track the status of the field update. The metadata for the
|
|
// operation will be the type
|
|
// [FieldOperationMetadata][google.firestore.admin.v1.FieldOperationMetadata].
|
|
//
|
|
// To configure the default field settings for the database, use
|
|
// the special `Field` with resource name:
|
|
// `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*`.
|
|
rpc UpdateField(UpdateFieldRequest) returns (google.longrunning.Operation) {
|
|
option (google.api.http) = {
|
|
patch: "/v1/{field.name=projects/*/databases/*/collectionGroups/*/fields/*}"
|
|
body: "field"
|
|
};
|
|
}
|
|
|
|
// Lists the field configuration and metadata for this database.
|
|
//
|
|
// Currently,
|
|
// [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields]
|
|
// only supports listing fields that have been explicitly overridden. To issue
|
|
// this query, call
|
|
// [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields]
|
|
// with the filter set to `indexConfig.usesAncestorConfig:false`.
|
|
rpc ListFields(ListFieldsRequest) returns (ListFieldsResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1/{parent=projects/*/databases/*/collectionGroups/*}/fields"
|
|
};
|
|
}
|
|
|
|
// 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: "/v1/{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: "/v1/{name=projects/*/databases/*}:importDocuments"
|
|
body: "*"
|
|
};
|
|
}
|
|
}
|
|
|
|
// The request for
|
|
// [FirestoreAdmin.CreateIndex][google.firestore.admin.v1.FirestoreAdmin.CreateIndex].
|
|
message CreateIndexRequest {
|
|
// A parent name of the form
|
|
// `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
|
|
string parent = 1;
|
|
|
|
// The composite index to create.
|
|
Index index = 2;
|
|
}
|
|
|
|
// The request for
|
|
// [FirestoreAdmin.ListIndexes][google.firestore.admin.v1.FirestoreAdmin.ListIndexes].
|
|
message ListIndexesRequest {
|
|
// A parent name of the form
|
|
// `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
|
|
string parent = 1;
|
|
|
|
// The filter to apply to list results.
|
|
string filter = 2;
|
|
|
|
// The number of results to return.
|
|
int32 page_size = 3;
|
|
|
|
// A page token, returned from a previous call to
|
|
// [FirestoreAdmin.ListIndexes][google.firestore.admin.v1.FirestoreAdmin.ListIndexes],
|
|
// that may be used to get the next page of results.
|
|
string page_token = 4;
|
|
}
|
|
|
|
// The response for
|
|
// [FirestoreAdmin.ListIndexes][google.firestore.admin.v1.FirestoreAdmin.ListIndexes].
|
|
message ListIndexesResponse {
|
|
// The requested indexes.
|
|
repeated Index indexes = 1;
|
|
|
|
// A page token that may be used to request another page of results. If blank,
|
|
// this is the last page.
|
|
string next_page_token = 2;
|
|
}
|
|
|
|
// The request for
|
|
// [FirestoreAdmin.GetIndex][google.firestore.admin.v1.FirestoreAdmin.GetIndex].
|
|
message GetIndexRequest {
|
|
// A name of the form
|
|
// `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`
|
|
string name = 1;
|
|
}
|
|
|
|
// The request for
|
|
// [FirestoreAdmin.DeleteIndex][google.firestore.admin.v1.FirestoreAdmin.DeleteIndex].
|
|
message DeleteIndexRequest {
|
|
// A name of the form
|
|
// `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`
|
|
string name = 1;
|
|
}
|
|
|
|
// The request for
|
|
// [FirestoreAdmin.UpdateField][google.firestore.admin.v1.FirestoreAdmin.UpdateField].
|
|
message UpdateFieldRequest {
|
|
// The field to be updated.
|
|
Field field = 1;
|
|
|
|
// A mask, relative to the field. If specified, only configuration specified
|
|
// by this field_mask will be updated in the field.
|
|
google.protobuf.FieldMask update_mask = 2;
|
|
}
|
|
|
|
// The request for
|
|
// [FirestoreAdmin.GetField][google.firestore.admin.v1.FirestoreAdmin.GetField].
|
|
message GetFieldRequest {
|
|
// A name of the form
|
|
// `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_id}`
|
|
string name = 1;
|
|
}
|
|
|
|
// The request for
|
|
// [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields].
|
|
message ListFieldsRequest {
|
|
// A parent name of the form
|
|
// `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
|
|
string parent = 1;
|
|
|
|
// The filter to apply to list results. Currently,
|
|
// [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields]
|
|
// only supports listing fields that have been explicitly overridden. To issue
|
|
// this query, call
|
|
// [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields]
|
|
// with the filter set to `indexConfig.usesAncestorConfig:false`.
|
|
string filter = 2;
|
|
|
|
// The number of results to return.
|
|
int32 page_size = 3;
|
|
|
|
// A page token, returned from a previous call to
|
|
// [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields],
|
|
// that may be used to get the next page of results.
|
|
string page_token = 4;
|
|
}
|
|
|
|
// The response for
|
|
// [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields].
|
|
message ListFieldsResponse {
|
|
// The requested fields.
|
|
repeated Field fields = 1;
|
|
|
|
// A page token that may be used to request another page of results. If blank,
|
|
// this is the last page.
|
|
string next_page_token = 2;
|
|
}
|
|
|
|
// The request for
|
|
// [FirestoreAdmin.ExportDocuments][google.firestore.admin.v1.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 = 2;
|
|
|
|
// 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 = 3;
|
|
}
|
|
|
|
// The request for
|
|
// [FirestoreAdmin.ImportDocuments][google.firestore.admin.v1.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 = 2;
|
|
|
|
// 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.v1.ExportDocumentsResponse.output_uri_prefix][google.firestore.admin.v1.ExportDocumentsResponse.output_uri_prefix].
|
|
string input_uri_prefix = 3;
|
|
}
|