@google-cloud/firestore-api 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +111 -0
  2. package/build/protos/google/firestore/admin/v1/backup.proto +112 -0
  3. package/build/protos/google/firestore/admin/v1/database.proto +403 -0
  4. package/build/protos/google/firestore/admin/v1/field.proto +154 -0
  5. package/build/protos/google/firestore/admin/v1/firestore_admin.proto +1229 -0
  6. package/build/protos/google/firestore/admin/v1/index.proto +378 -0
  7. package/build/protos/google/firestore/admin/v1/location.proto +30 -0
  8. package/build/protos/google/firestore/admin/v1/operation.proto +330 -0
  9. package/build/protos/google/firestore/admin/v1/realtime_updates.proto +40 -0
  10. package/build/protos/google/firestore/admin/v1/schedule.proto +95 -0
  11. package/build/protos/google/firestore/admin/v1/snapshot.proto +53 -0
  12. package/build/protos/google/firestore/admin/v1/user_creds.proto +86 -0
  13. package/build/protos/google/firestore/v1/aggregation_result.proto +43 -0
  14. package/build/protos/google/firestore/v1/bloom_filter.proto +73 -0
  15. package/build/protos/google/firestore/v1/common.proto +111 -0
  16. package/build/protos/google/firestore/v1/document.proto +247 -0
  17. package/build/protos/google/firestore/v1/explain_stats.proto +41 -0
  18. package/build/protos/google/firestore/v1/firestore.proto +1237 -0
  19. package/build/protos/google/firestore/v1/pipeline.proto +43 -0
  20. package/build/protos/google/firestore/v1/query.proto +600 -0
  21. package/build/protos/google/firestore/v1/query_profile.proto +92 -0
  22. package/build/protos/google/firestore/v1/write.proto +286 -0
  23. package/build/protos/google/firestore/v1beta1/common.proto +82 -0
  24. package/build/protos/google/firestore/v1beta1/document.proto +149 -0
  25. package/build/protos/google/firestore/v1beta1/firestore.proto +900 -0
  26. package/build/protos/google/firestore/v1beta1/query.proto +300 -0
  27. package/build/protos/google/firestore/v1beta1/undeliverable_first_gen_event.proto +75 -0
  28. package/build/protos/google/firestore/v1beta1/write.proto +258 -0
  29. package/build/protos/protos.d.ts +35648 -0
  30. package/build/protos/protos.js +1 -0
  31. package/build/protos/protos.json +1 -0
  32. package/build/src/index.d.ts +13 -0
  33. package/build/src/index.js +30 -0
  34. package/build/src/index.js.map +1 -0
  35. package/build/src/v1/firestore_admin_client.d.ts +1925 -0
  36. package/build/src/v1/firestore_admin_client.js +2734 -0
  37. package/build/src/v1/firestore_admin_client.js.map +1 -0
  38. package/build/src/v1/firestore_admin_client_config.json +172 -0
  39. package/build/src/v1/firestore_admin_proto_list.json +13 -0
  40. package/build/src/v1/firestore_client.d.ts +1204 -0
  41. package/build/src/v1/firestore_client.js +1605 -0
  42. package/build/src/v1/firestore_client.js.map +1 -0
  43. package/build/src/v1/firestore_client_config.json +135 -0
  44. package/build/src/v1/firestore_proto_list.json +12 -0
  45. package/build/src/v1/gapic_metadata.json +351 -0
  46. package/build/src/v1/index.d.ts +2 -0
  47. package/build/src/v1/index.js +25 -0
  48. package/build/src/v1/index.js.map +1 -0
  49. package/build/src/v1beta1/firestore_client.d.ts +930 -0
  50. package/build/src/v1beta1/firestore_client.js +1310 -0
  51. package/build/src/v1beta1/firestore_client.js.map +1 -0
  52. package/build/src/v1beta1/firestore_client_config.json +99 -0
  53. package/build/src/v1beta1/firestore_proto_list.json +8 -0
  54. package/build/src/v1beta1/gapic_metadata.json +165 -0
  55. package/build/src/v1beta1/index.d.ts +1 -0
  56. package/build/src/v1beta1/index.js +23 -0
  57. package/build/src/v1beta1/index.js.map +1 -0
  58. package/package.json +65 -0
@@ -0,0 +1,1229 @@
1
+ // Copyright 2026 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.firestore.admin.v1;
18
+
19
+ import "google/api/annotations.proto";
20
+ import "google/api/client.proto";
21
+ import "google/api/field_behavior.proto";
22
+ import "google/api/resource.proto";
23
+ import "google/api/routing.proto";
24
+ import "google/firestore/admin/v1/backup.proto";
25
+ import "google/firestore/admin/v1/database.proto";
26
+ import "google/firestore/admin/v1/field.proto";
27
+ import "google/firestore/admin/v1/index.proto";
28
+ import "google/firestore/admin/v1/operation.proto";
29
+ import "google/firestore/admin/v1/schedule.proto";
30
+ import "google/firestore/admin/v1/snapshot.proto";
31
+ import "google/firestore/admin/v1/user_creds.proto";
32
+ import "google/longrunning/operations.proto";
33
+ import "google/protobuf/empty.proto";
34
+ import "google/protobuf/field_mask.proto";
35
+ import "google/protobuf/timestamp.proto";
36
+
37
+ option csharp_namespace = "Google.Cloud.Firestore.Admin.V1";
38
+ option go_package = "cloud.google.com/go/firestore/apiv1/admin/adminpb;adminpb";
39
+ option java_multiple_files = true;
40
+ option java_outer_classname = "FirestoreAdminProto";
41
+ option java_package = "com.google.firestore.admin.v1";
42
+ option objc_class_prefix = "GCFS";
43
+ option php_namespace = "Google\\Cloud\\Firestore\\Admin\\V1";
44
+ option ruby_package = "Google::Cloud::Firestore::Admin::V1";
45
+ option (google.api.resource_definition) = {
46
+ type: "firestore.googleapis.com/Location"
47
+ pattern: "projects/{project}/locations/{location}"
48
+ };
49
+ option (google.api.resource_definition) = {
50
+ type: "firestore.googleapis.com/CollectionGroup"
51
+ pattern: "projects/{project}/databases/{database}/collectionGroups/{collection}"
52
+ };
53
+
54
+ // The Cloud Firestore Admin API.
55
+ //
56
+ // This API provides several administrative services for Cloud Firestore.
57
+ //
58
+ // Project, Database, Namespace, Collection, Collection Group, and Document are
59
+ // used as defined in the Google Cloud Firestore API.
60
+ //
61
+ // Operation: An Operation represents work being performed in the background.
62
+ //
63
+ // The index service manages Cloud Firestore indexes.
64
+ //
65
+ // Index creation is performed asynchronously.
66
+ // An Operation resource is created for each such asynchronous operation.
67
+ // The state of the operation (including any errors encountered)
68
+ // may be queried via the Operation resource.
69
+ //
70
+ // The Operations collection provides a record of actions performed for the
71
+ // specified Project (including any Operations in progress). Operations are not
72
+ // created directly but through calls on other collections or resources.
73
+ //
74
+ // An Operation that is done may be deleted so that it is no longer listed as
75
+ // part of the Operation collection. Operations are garbage collected after
76
+ // 30 days. By default, ListOperations will only return in progress and failed
77
+ // operations. To list completed operation, issue a ListOperations request with
78
+ // the filter `done: true`.
79
+ //
80
+ // Operations are created by service `FirestoreAdmin`, but are accessed via
81
+ // service `google.longrunning.Operations`.
82
+ service FirestoreAdmin {
83
+ option (google.api.default_host) = "firestore.googleapis.com";
84
+ option (google.api.oauth_scopes) =
85
+ "https://www.googleapis.com/auth/cloud-platform,"
86
+ "https://www.googleapis.com/auth/datastore";
87
+
88
+ // Creates a composite index. This returns a
89
+ // [google.longrunning.Operation][google.longrunning.Operation] which may be
90
+ // used to track the status of the creation. The metadata for the operation
91
+ // will be the type
92
+ // [IndexOperationMetadata][google.firestore.admin.v1.IndexOperationMetadata].
93
+ rpc CreateIndex(CreateIndexRequest) returns (google.longrunning.Operation) {
94
+ option (google.api.http) = {
95
+ post: "/v1/{parent=projects/*/databases/*/collectionGroups/*}/indexes"
96
+ body: "index"
97
+ };
98
+ option (google.api.method_signature) = "parent,index";
99
+ option (google.longrunning.operation_info) = {
100
+ response_type: "Index"
101
+ metadata_type: "IndexOperationMetadata"
102
+ };
103
+ }
104
+
105
+ // Lists composite indexes.
106
+ rpc ListIndexes(ListIndexesRequest) returns (ListIndexesResponse) {
107
+ option (google.api.http) = {
108
+ get: "/v1/{parent=projects/*/databases/*/collectionGroups/*}/indexes"
109
+ };
110
+ option (google.api.method_signature) = "parent";
111
+ }
112
+
113
+ // Gets a composite index.
114
+ rpc GetIndex(GetIndexRequest) returns (Index) {
115
+ option (google.api.http) = {
116
+ get: "/v1/{name=projects/*/databases/*/collectionGroups/*/indexes/*}"
117
+ };
118
+ option (google.api.method_signature) = "name";
119
+ }
120
+
121
+ // Deletes a composite index.
122
+ rpc DeleteIndex(DeleteIndexRequest) returns (google.protobuf.Empty) {
123
+ option (google.api.http) = {
124
+ delete: "/v1/{name=projects/*/databases/*/collectionGroups/*/indexes/*}"
125
+ };
126
+ option (google.api.method_signature) = "name";
127
+ }
128
+
129
+ // Gets the metadata and configuration for a Field.
130
+ rpc GetField(GetFieldRequest) returns (Field) {
131
+ option (google.api.http) = {
132
+ get: "/v1/{name=projects/*/databases/*/collectionGroups/*/fields/*}"
133
+ };
134
+ option (google.api.method_signature) = "name";
135
+ }
136
+
137
+ // Updates a field configuration. Currently, field updates apply only to
138
+ // single field index configuration. However, calls to
139
+ // [FirestoreAdmin.UpdateField][google.firestore.admin.v1.FirestoreAdmin.UpdateField]
140
+ // should provide a field mask to avoid changing any configuration that the
141
+ // caller isn't aware of. The field mask should be specified as: `{ paths:
142
+ // "index_config" }`.
143
+ //
144
+ // This call returns a
145
+ // [google.longrunning.Operation][google.longrunning.Operation] which may be
146
+ // used to track the status of the field update. The metadata for the
147
+ // operation will be the type
148
+ // [FieldOperationMetadata][google.firestore.admin.v1.FieldOperationMetadata].
149
+ //
150
+ // To configure the default field settings for the database, use
151
+ // the special `Field` with resource name:
152
+ // `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*`.
153
+ rpc UpdateField(UpdateFieldRequest) returns (google.longrunning.Operation) {
154
+ option (google.api.http) = {
155
+ patch: "/v1/{field.name=projects/*/databases/*/collectionGroups/*/fields/*}"
156
+ body: "field"
157
+ };
158
+ option (google.api.method_signature) = "field";
159
+ option (google.longrunning.operation_info) = {
160
+ response_type: "Field"
161
+ metadata_type: "FieldOperationMetadata"
162
+ };
163
+ }
164
+
165
+ // Lists the field configuration and metadata for this database.
166
+ //
167
+ // Currently,
168
+ // [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields]
169
+ // only supports listing fields that have been explicitly overridden. To issue
170
+ // this query, call
171
+ // [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields]
172
+ // with the filter set to `indexConfig.usesAncestorConfig:false` or
173
+ // `ttlConfig:*`.
174
+ rpc ListFields(ListFieldsRequest) returns (ListFieldsResponse) {
175
+ option (google.api.http) = {
176
+ get: "/v1/{parent=projects/*/databases/*/collectionGroups/*}/fields"
177
+ };
178
+ option (google.api.method_signature) = "parent";
179
+ }
180
+
181
+ // Exports a copy of all or a subset of documents from Google Cloud Firestore
182
+ // to another storage system, such as Google Cloud Storage. Recent updates to
183
+ // documents may not be reflected in the export. The export occurs in the
184
+ // background and its progress can be monitored and managed via the
185
+ // Operation resource that is created. The output of an export may only be
186
+ // used once the associated operation is done. If an export operation is
187
+ // cancelled before completion it may leave partial data behind in Google
188
+ // Cloud Storage.
189
+ //
190
+ // For more details on export behavior and output format, refer to:
191
+ // https://cloud.google.com/firestore/docs/manage-data/export-import
192
+ rpc ExportDocuments(ExportDocumentsRequest)
193
+ returns (google.longrunning.Operation) {
194
+ option (google.api.http) = {
195
+ post: "/v1/{name=projects/*/databases/*}:exportDocuments"
196
+ body: "*"
197
+ };
198
+ option (google.api.method_signature) = "name";
199
+ option (google.longrunning.operation_info) = {
200
+ response_type: "ExportDocumentsResponse"
201
+ metadata_type: "ExportDocumentsMetadata"
202
+ };
203
+ }
204
+
205
+ // Imports documents into Google Cloud Firestore. Existing documents with the
206
+ // same name are overwritten. The import occurs in the background and its
207
+ // progress can be monitored and managed via the Operation resource that is
208
+ // created. If an ImportDocuments operation is cancelled, it is possible
209
+ // that a subset of the data has already been imported to Cloud Firestore.
210
+ rpc ImportDocuments(ImportDocumentsRequest)
211
+ returns (google.longrunning.Operation) {
212
+ option (google.api.http) = {
213
+ post: "/v1/{name=projects/*/databases/*}:importDocuments"
214
+ body: "*"
215
+ };
216
+ option (google.api.method_signature) = "name";
217
+ option (google.longrunning.operation_info) = {
218
+ response_type: "google.protobuf.Empty"
219
+ metadata_type: "ImportDocumentsMetadata"
220
+ };
221
+ }
222
+
223
+ // Bulk deletes a subset of documents from Google Cloud Firestore.
224
+ // Documents created or updated after the underlying system starts to process
225
+ // the request will not be deleted. The bulk delete occurs in the background
226
+ // and its progress can be monitored and managed via the Operation resource
227
+ // that is created.
228
+ //
229
+ // For more details on bulk delete behavior, refer to:
230
+ // https://cloud.google.com/firestore/docs/manage-data/bulk-delete
231
+ rpc BulkDeleteDocuments(BulkDeleteDocumentsRequest)
232
+ returns (google.longrunning.Operation) {
233
+ option (google.api.http) = {
234
+ post: "/v1/{name=projects/*/databases/*}:bulkDeleteDocuments"
235
+ body: "*"
236
+ };
237
+ option (google.api.method_signature) = "name";
238
+ option (google.longrunning.operation_info) = {
239
+ response_type: "BulkDeleteDocumentsResponse"
240
+ metadata_type: "BulkDeleteDocumentsMetadata"
241
+ };
242
+ }
243
+
244
+ // Create a database.
245
+ rpc CreateDatabase(CreateDatabaseRequest)
246
+ returns (google.longrunning.Operation) {
247
+ option (google.api.http) = {
248
+ post: "/v1/{parent=projects/*}/databases"
249
+ body: "database"
250
+ };
251
+ option (google.api.method_signature) = "parent,database,database_id";
252
+ option (google.longrunning.operation_info) = {
253
+ response_type: "Database"
254
+ metadata_type: "CreateDatabaseMetadata"
255
+ };
256
+ }
257
+
258
+ // Gets information about a database.
259
+ rpc GetDatabase(GetDatabaseRequest) returns (Database) {
260
+ option (google.api.http) = {
261
+ get: "/v1/{name=projects/*/databases/*}"
262
+ };
263
+ option (google.api.method_signature) = "name";
264
+ }
265
+
266
+ // List all the databases in the project.
267
+ rpc ListDatabases(ListDatabasesRequest) returns (ListDatabasesResponse) {
268
+ option (google.api.http) = {
269
+ get: "/v1/{parent=projects/*}/databases"
270
+ };
271
+ option (google.api.method_signature) = "parent";
272
+ }
273
+
274
+ // Updates a database.
275
+ rpc UpdateDatabase(UpdateDatabaseRequest)
276
+ returns (google.longrunning.Operation) {
277
+ option (google.api.http) = {
278
+ patch: "/v1/{database.name=projects/*/databases/*}"
279
+ body: "database"
280
+ };
281
+ option (google.api.method_signature) = "database,update_mask";
282
+ option (google.longrunning.operation_info) = {
283
+ response_type: "Database"
284
+ metadata_type: "UpdateDatabaseMetadata"
285
+ };
286
+ }
287
+
288
+ // Deletes a database.
289
+ rpc DeleteDatabase(DeleteDatabaseRequest)
290
+ returns (google.longrunning.Operation) {
291
+ option (google.api.http) = {
292
+ delete: "/v1/{name=projects/*/databases/*}"
293
+ };
294
+ option (google.api.method_signature) = "name";
295
+ option (google.longrunning.operation_info) = {
296
+ response_type: "Database"
297
+ metadata_type: "DeleteDatabaseMetadata"
298
+ };
299
+ }
300
+
301
+ // Create a user creds.
302
+ rpc CreateUserCreds(CreateUserCredsRequest) returns (UserCreds) {
303
+ option (google.api.http) = {
304
+ post: "/v1/{parent=projects/*/databases/*}/userCreds"
305
+ body: "user_creds"
306
+ };
307
+ option (google.api.method_signature) = "parent,user_creds,user_creds_id";
308
+ }
309
+
310
+ // Gets a user creds resource. Note that the returned resource does not
311
+ // contain the secret value itself.
312
+ rpc GetUserCreds(GetUserCredsRequest) returns (UserCreds) {
313
+ option (google.api.http) = {
314
+ get: "/v1/{name=projects/*/databases/*/userCreds/*}"
315
+ };
316
+ option (google.api.method_signature) = "name";
317
+ }
318
+
319
+ // List all user creds in the database. Note that the returned resource
320
+ // does not contain the secret value itself.
321
+ rpc ListUserCreds(ListUserCredsRequest) returns (ListUserCredsResponse) {
322
+ option (google.api.http) = {
323
+ get: "/v1/{parent=projects/*/databases/*}/userCreds"
324
+ };
325
+ option (google.api.method_signature) = "parent";
326
+ }
327
+
328
+ // Enables a user creds. No-op if the user creds are already enabled.
329
+ rpc EnableUserCreds(EnableUserCredsRequest) returns (UserCreds) {
330
+ option (google.api.http) = {
331
+ post: "/v1/{name=projects/*/databases/*/userCreds/*}:enable"
332
+ body: "*"
333
+ };
334
+ option (google.api.method_signature) = "name";
335
+ }
336
+
337
+ // Disables a user creds. No-op if the user creds are already disabled.
338
+ rpc DisableUserCreds(DisableUserCredsRequest) returns (UserCreds) {
339
+ option (google.api.http) = {
340
+ post: "/v1/{name=projects/*/databases/*/userCreds/*}:disable"
341
+ body: "*"
342
+ };
343
+ option (google.api.method_signature) = "name";
344
+ }
345
+
346
+ // Resets the password of a user creds.
347
+ rpc ResetUserPassword(ResetUserPasswordRequest) returns (UserCreds) {
348
+ option (google.api.http) = {
349
+ post: "/v1/{name=projects/*/databases/*/userCreds/*}:resetPassword"
350
+ body: "*"
351
+ };
352
+ option (google.api.method_signature) = "name";
353
+ }
354
+
355
+ // Deletes a user creds.
356
+ rpc DeleteUserCreds(DeleteUserCredsRequest) returns (google.protobuf.Empty) {
357
+ option (google.api.http) = {
358
+ delete: "/v1/{name=projects/*/databases/*/userCreds/*}"
359
+ };
360
+ option (google.api.method_signature) = "name";
361
+ }
362
+
363
+ // Gets information about a backup.
364
+ rpc GetBackup(GetBackupRequest) returns (Backup) {
365
+ option (google.api.http) = {
366
+ get: "/v1/{name=projects/*/locations/*/backups/*}"
367
+ };
368
+ option (google.api.method_signature) = "name";
369
+ }
370
+
371
+ // Lists all the backups.
372
+ rpc ListBackups(ListBackupsRequest) returns (ListBackupsResponse) {
373
+ option (google.api.http) = {
374
+ get: "/v1/{parent=projects/*/locations/*}/backups"
375
+ };
376
+ option (google.api.method_signature) = "parent";
377
+ }
378
+
379
+ // Deletes a backup.
380
+ rpc DeleteBackup(DeleteBackupRequest) returns (google.protobuf.Empty) {
381
+ option (google.api.http) = {
382
+ delete: "/v1/{name=projects/*/locations/*/backups/*}"
383
+ };
384
+ option (google.api.method_signature) = "name";
385
+ }
386
+
387
+ // Creates a new database by restoring from an existing backup.
388
+ //
389
+ // The new database must be in the same cloud region or multi-region location
390
+ // as the existing backup. This behaves similar to
391
+ // [FirestoreAdmin.CreateDatabase][google.firestore.admin.v1.FirestoreAdmin.CreateDatabase]
392
+ // except instead of creating a new empty database, a new database is created
393
+ // with the database type, index configuration, and documents from an existing
394
+ // backup.
395
+ //
396
+ // The [long-running operation][google.longrunning.Operation] can be used to
397
+ // track the progress of the restore, with the Operation's
398
+ // [metadata][google.longrunning.Operation.metadata] field type being the
399
+ // [RestoreDatabaseMetadata][google.firestore.admin.v1.RestoreDatabaseMetadata].
400
+ // The [response][google.longrunning.Operation.response] type is the
401
+ // [Database][google.firestore.admin.v1.Database] if the restore was
402
+ // successful. The new database is not readable or writeable until the LRO has
403
+ // completed.
404
+ rpc RestoreDatabase(RestoreDatabaseRequest)
405
+ returns (google.longrunning.Operation) {
406
+ option (google.api.http) = {
407
+ post: "/v1/{parent=projects/*}/databases:restore"
408
+ body: "*"
409
+ };
410
+ option (google.longrunning.operation_info) = {
411
+ response_type: "Database"
412
+ metadata_type: "RestoreDatabaseMetadata"
413
+ };
414
+ }
415
+
416
+ // Creates a backup schedule on a database.
417
+ // At most two backup schedules can be configured on a database, one daily
418
+ // backup schedule and one weekly backup schedule.
419
+ rpc CreateBackupSchedule(CreateBackupScheduleRequest)
420
+ returns (BackupSchedule) {
421
+ option (google.api.http) = {
422
+ post: "/v1/{parent=projects/*/databases/*}/backupSchedules"
423
+ body: "backup_schedule"
424
+ };
425
+ option (google.api.method_signature) = "parent,backup_schedule";
426
+ }
427
+
428
+ // Gets information about a backup schedule.
429
+ rpc GetBackupSchedule(GetBackupScheduleRequest) returns (BackupSchedule) {
430
+ option (google.api.http) = {
431
+ get: "/v1/{name=projects/*/databases/*/backupSchedules/*}"
432
+ };
433
+ option (google.api.method_signature) = "name";
434
+ }
435
+
436
+ // List backup schedules.
437
+ rpc ListBackupSchedules(ListBackupSchedulesRequest)
438
+ returns (ListBackupSchedulesResponse) {
439
+ option (google.api.http) = {
440
+ get: "/v1/{parent=projects/*/databases/*}/backupSchedules"
441
+ };
442
+ option (google.api.method_signature) = "parent";
443
+ }
444
+
445
+ // Updates a backup schedule.
446
+ rpc UpdateBackupSchedule(UpdateBackupScheduleRequest)
447
+ returns (BackupSchedule) {
448
+ option (google.api.http) = {
449
+ patch: "/v1/{backup_schedule.name=projects/*/databases/*/backupSchedules/*}"
450
+ body: "backup_schedule"
451
+ };
452
+ option (google.api.method_signature) = "backup_schedule,update_mask";
453
+ }
454
+
455
+ // Deletes a backup schedule.
456
+ rpc DeleteBackupSchedule(DeleteBackupScheduleRequest)
457
+ returns (google.protobuf.Empty) {
458
+ option (google.api.http) = {
459
+ delete: "/v1/{name=projects/*/databases/*/backupSchedules/*}"
460
+ };
461
+ option (google.api.method_signature) = "name";
462
+ }
463
+
464
+ // Creates a new database by cloning an existing one.
465
+ //
466
+ // The new database must be in the same cloud region or multi-region location
467
+ // as the existing database. This behaves similar to
468
+ // [FirestoreAdmin.CreateDatabase][google.firestore.admin.v1.FirestoreAdmin.CreateDatabase]
469
+ // except instead of creating a new empty database, a new database is created
470
+ // with the database type, index configuration, and documents from an existing
471
+ // database.
472
+ //
473
+ // The [long-running operation][google.longrunning.Operation] can be used to
474
+ // track the progress of the clone, with the Operation's
475
+ // [metadata][google.longrunning.Operation.metadata] field type being the
476
+ // [CloneDatabaseMetadata][google.firestore.admin.v1.CloneDatabaseMetadata].
477
+ // The [response][google.longrunning.Operation.response] type is the
478
+ // [Database][google.firestore.admin.v1.Database] if the clone was
479
+ // successful. The new database is not readable or writeable until the LRO has
480
+ // completed.
481
+ rpc CloneDatabase(CloneDatabaseRequest)
482
+ returns (google.longrunning.Operation) {
483
+ option (google.api.http) = {
484
+ post: "/v1/{parent=projects/*}/databases:clone"
485
+ body: "*"
486
+ };
487
+ option (google.api.routing) = {
488
+ routing_parameters {
489
+ field: "pitr_snapshot.database"
490
+ path_template: "projects/{project_id=*}/**"
491
+ }
492
+ routing_parameters {
493
+ field: "pitr_snapshot.database"
494
+ path_template: "projects/*/databases/{database_id=*}/**"
495
+ }
496
+ };
497
+ option (google.longrunning.operation_info) = {
498
+ response_type: "Database"
499
+ metadata_type: "CloneDatabaseMetadata"
500
+ };
501
+ }
502
+ }
503
+
504
+ // A request to list the Firestore Databases in all locations for a project.
505
+ message ListDatabasesRequest {
506
+ // Required. A parent name of the form
507
+ // `projects/{project_id}`
508
+ string parent = 1 [
509
+ (google.api.field_behavior) = REQUIRED,
510
+ (google.api.resource_reference) = {
511
+ child_type: "firestore.googleapis.com/Database"
512
+ }
513
+ ];
514
+
515
+ // If true, also returns deleted resources.
516
+ bool show_deleted = 4;
517
+ }
518
+
519
+ // The request for
520
+ // [FirestoreAdmin.CreateDatabase][google.firestore.admin.v1.FirestoreAdmin.CreateDatabase].
521
+ message CreateDatabaseRequest {
522
+ // Required. A parent name of the form
523
+ // `projects/{project_id}`
524
+ string parent = 1 [
525
+ (google.api.field_behavior) = REQUIRED,
526
+ (google.api.resource_reference) = {
527
+ child_type: "firestore.googleapis.com/Database"
528
+ }
529
+ ];
530
+
531
+ // Required. The Database to create.
532
+ Database database = 2 [(google.api.field_behavior) = REQUIRED];
533
+
534
+ // Required. The ID to use for the database, which will become the final
535
+ // component of the database's resource name.
536
+ //
537
+ // This value should be 4-63 characters. Valid characters are /[a-z][0-9]-/
538
+ // with first character a letter and the last a letter or a number. Must not
539
+ // be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/.
540
+ //
541
+ // "(default)" database ID is also valid if the database is Standard edition.
542
+ string database_id = 3 [(google.api.field_behavior) = REQUIRED];
543
+ }
544
+
545
+ // Metadata related to the create database operation.
546
+ message CreateDatabaseMetadata {}
547
+
548
+ // The list of databases for a project.
549
+ message ListDatabasesResponse {
550
+ // The databases in the project.
551
+ repeated Database databases = 1;
552
+
553
+ // In the event that data about individual databases cannot be listed they
554
+ // will be recorded here.
555
+ //
556
+ // An example entry might be: projects/some_project/locations/some_location
557
+ // This can happen if the Cloud Region that the Database resides in is
558
+ // currently unavailable. In this case we can't fetch all the details about
559
+ // the database. You may be able to get a more detailed error message
560
+ // (or possibly fetch the resource) by sending a 'Get' request for the
561
+ // resource or a 'List' request for the specific location.
562
+ repeated string unreachable = 3;
563
+ }
564
+
565
+ // The request for
566
+ // [FirestoreAdmin.GetDatabase][google.firestore.admin.v1.FirestoreAdmin.GetDatabase].
567
+ message GetDatabaseRequest {
568
+ // Required. A name of the form
569
+ // `projects/{project_id}/databases/{database_id}`
570
+ string name = 1 [
571
+ (google.api.field_behavior) = REQUIRED,
572
+ (google.api.resource_reference) = {
573
+ type: "firestore.googleapis.com/Database"
574
+ }
575
+ ];
576
+ }
577
+
578
+ // The request for
579
+ // [FirestoreAdmin.UpdateDatabase][google.firestore.admin.v1.FirestoreAdmin.UpdateDatabase].
580
+ message UpdateDatabaseRequest {
581
+ // Required. The database to update.
582
+ Database database = 1 [(google.api.field_behavior) = REQUIRED];
583
+
584
+ // The list of fields to be updated.
585
+ google.protobuf.FieldMask update_mask = 2;
586
+ }
587
+
588
+ // Metadata related to the update database operation.
589
+ message UpdateDatabaseMetadata {}
590
+
591
+ // The request for
592
+ // [FirestoreAdmin.DeleteDatabase][google.firestore.admin.v1.FirestoreAdmin.DeleteDatabase].
593
+ message DeleteDatabaseRequest {
594
+ // Required. A name of the form
595
+ // `projects/{project_id}/databases/{database_id}`
596
+ string name = 1 [
597
+ (google.api.field_behavior) = REQUIRED,
598
+ (google.api.resource_reference) = {
599
+ type: "firestore.googleapis.com/Database"
600
+ }
601
+ ];
602
+
603
+ // The current etag of the Database.
604
+ // If an etag is provided and does not match the current etag of the database,
605
+ // deletion will be blocked and a FAILED_PRECONDITION error will be returned.
606
+ string etag = 3;
607
+ }
608
+
609
+ // Metadata related to the delete database operation.
610
+ message DeleteDatabaseMetadata {}
611
+
612
+ // The request for
613
+ // [FirestoreAdmin.CreateUserCreds][google.firestore.admin.v1.FirestoreAdmin.CreateUserCreds].
614
+ message CreateUserCredsRequest {
615
+ // Required. A parent name of the form
616
+ // `projects/{project_id}/databases/{database_id}`
617
+ string parent = 1 [
618
+ (google.api.field_behavior) = REQUIRED,
619
+ (google.api.resource_reference) = {
620
+ child_type: "firestore.googleapis.com/UserCreds"
621
+ }
622
+ ];
623
+
624
+ // Required. The user creds to create.
625
+ UserCreds user_creds = 2 [(google.api.field_behavior) = REQUIRED];
626
+
627
+ // Required. The ID to use for the user creds, which will become the final
628
+ // component of the user creds's resource name.
629
+ //
630
+ // This value should be 4-63 characters. Valid characters are /[a-z][0-9]-/
631
+ // with first character a letter and the last a letter or a number. Must not
632
+ // be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/.
633
+ string user_creds_id = 3 [(google.api.field_behavior) = REQUIRED];
634
+ }
635
+
636
+ // The request for
637
+ // [FirestoreAdmin.GetUserCreds][google.firestore.admin.v1.FirestoreAdmin.GetUserCreds].
638
+ message GetUserCredsRequest {
639
+ // Required. A name of the form
640
+ // `projects/{project_id}/databases/{database_id}/userCreds/{user_creds_id}`
641
+ string name = 1 [
642
+ (google.api.field_behavior) = REQUIRED,
643
+ (google.api.resource_reference) = {
644
+ type: "firestore.googleapis.com/UserCreds"
645
+ }
646
+ ];
647
+ }
648
+
649
+ // The request for
650
+ // [FirestoreAdmin.ListUserCreds][google.firestore.admin.v1.FirestoreAdmin.ListUserCreds].
651
+ message ListUserCredsRequest {
652
+ // Required. A parent database name of the form
653
+ // `projects/{project_id}/databases/{database_id}`
654
+ string parent = 1 [
655
+ (google.api.field_behavior) = REQUIRED,
656
+ (google.api.resource_reference) = {
657
+ child_type: "firestore.googleapis.com/UserCreds"
658
+ }
659
+ ];
660
+ }
661
+
662
+ // The response for
663
+ // [FirestoreAdmin.ListUserCreds][google.firestore.admin.v1.FirestoreAdmin.ListUserCreds].
664
+ message ListUserCredsResponse {
665
+ // The user creds for the database.
666
+ repeated UserCreds user_creds = 1;
667
+ }
668
+
669
+ // The request for
670
+ // [FirestoreAdmin.EnableUserCreds][google.firestore.admin.v1.FirestoreAdmin.EnableUserCreds].
671
+ message EnableUserCredsRequest {
672
+ // Required. A name of the form
673
+ // `projects/{project_id}/databases/{database_id}/userCreds/{user_creds_id}`
674
+ string name = 1 [
675
+ (google.api.field_behavior) = REQUIRED,
676
+ (google.api.resource_reference) = {
677
+ type: "firestore.googleapis.com/UserCreds"
678
+ }
679
+ ];
680
+ }
681
+
682
+ // The request for
683
+ // [FirestoreAdmin.DisableUserCreds][google.firestore.admin.v1.FirestoreAdmin.DisableUserCreds].
684
+ message DisableUserCredsRequest {
685
+ // Required. A name of the form
686
+ // `projects/{project_id}/databases/{database_id}/userCreds/{user_creds_id}`
687
+ string name = 1 [
688
+ (google.api.field_behavior) = REQUIRED,
689
+ (google.api.resource_reference) = {
690
+ type: "firestore.googleapis.com/UserCreds"
691
+ }
692
+ ];
693
+ }
694
+
695
+ // The request for
696
+ // [FirestoreAdmin.ResetUserPassword][google.firestore.admin.v1.FirestoreAdmin.ResetUserPassword].
697
+ message ResetUserPasswordRequest {
698
+ // Required. A name of the form
699
+ // `projects/{project_id}/databases/{database_id}/userCreds/{user_creds_id}`
700
+ string name = 1 [
701
+ (google.api.field_behavior) = REQUIRED,
702
+ (google.api.resource_reference) = {
703
+ type: "firestore.googleapis.com/UserCreds"
704
+ }
705
+ ];
706
+ }
707
+
708
+ // The request for
709
+ // [FirestoreAdmin.DeleteUserCreds][google.firestore.admin.v1.FirestoreAdmin.DeleteUserCreds].
710
+ message DeleteUserCredsRequest {
711
+ // Required. A name of the form
712
+ // `projects/{project_id}/databases/{database_id}/userCreds/{user_creds_id}`
713
+ string name = 1 [
714
+ (google.api.field_behavior) = REQUIRED,
715
+ (google.api.resource_reference) = {
716
+ type: "firestore.googleapis.com/UserCreds"
717
+ }
718
+ ];
719
+ }
720
+
721
+ // The request for
722
+ // [FirestoreAdmin.CreateBackupSchedule][google.firestore.admin.v1.FirestoreAdmin.CreateBackupSchedule].
723
+ message CreateBackupScheduleRequest {
724
+ // Required. The parent database.
725
+ //
726
+ // Format `projects/{project}/databases/{database}`
727
+ string parent = 1 [
728
+ (google.api.field_behavior) = REQUIRED,
729
+ (google.api.resource_reference) = {
730
+ type: "firestore.googleapis.com/Database"
731
+ }
732
+ ];
733
+
734
+ // Required. The backup schedule to create.
735
+ BackupSchedule backup_schedule = 2 [(google.api.field_behavior) = REQUIRED];
736
+ }
737
+
738
+ // The request for
739
+ // [FirestoreAdmin.GetBackupSchedule][google.firestore.admin.v1.FirestoreAdmin.GetBackupSchedule].
740
+ message GetBackupScheduleRequest {
741
+ // Required. The name of the backup schedule.
742
+ //
743
+ // Format
744
+ // `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}`
745
+ string name = 1 [
746
+ (google.api.field_behavior) = REQUIRED,
747
+ (google.api.resource_reference) = {
748
+ type: "firestore.googleapis.com/BackupSchedule"
749
+ }
750
+ ];
751
+ }
752
+
753
+ // The request for
754
+ // [FirestoreAdmin.UpdateBackupSchedule][google.firestore.admin.v1.FirestoreAdmin.UpdateBackupSchedule].
755
+ message UpdateBackupScheduleRequest {
756
+ // Required. The backup schedule to update.
757
+ BackupSchedule backup_schedule = 1 [(google.api.field_behavior) = REQUIRED];
758
+
759
+ // The list of fields to be updated.
760
+ google.protobuf.FieldMask update_mask = 2;
761
+ }
762
+
763
+ // The request for
764
+ // [FirestoreAdmin.ListBackupSchedules][google.firestore.admin.v1.FirestoreAdmin.ListBackupSchedules].
765
+ message ListBackupSchedulesRequest {
766
+ // Required. The parent database.
767
+ //
768
+ // Format is `projects/{project}/databases/{database}`.
769
+ string parent = 1 [
770
+ (google.api.field_behavior) = REQUIRED,
771
+ (google.api.resource_reference) = {
772
+ type: "firestore.googleapis.com/Database"
773
+ }
774
+ ];
775
+ }
776
+
777
+ // The response for
778
+ // [FirestoreAdmin.ListBackupSchedules][google.firestore.admin.v1.FirestoreAdmin.ListBackupSchedules].
779
+ message ListBackupSchedulesResponse {
780
+ // List of all backup schedules.
781
+ repeated BackupSchedule backup_schedules = 1;
782
+ }
783
+
784
+ // The request for [FirestoreAdmin.DeleteBackupSchedules][].
785
+ message DeleteBackupScheduleRequest {
786
+ // Required. The name of the backup schedule.
787
+ //
788
+ // Format
789
+ // `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}`
790
+ string name = 1 [
791
+ (google.api.field_behavior) = REQUIRED,
792
+ (google.api.resource_reference) = {
793
+ type: "firestore.googleapis.com/BackupSchedule"
794
+ }
795
+ ];
796
+ }
797
+
798
+ // The request for
799
+ // [FirestoreAdmin.CreateIndex][google.firestore.admin.v1.FirestoreAdmin.CreateIndex].
800
+ message CreateIndexRequest {
801
+ // Required. A parent name of the form
802
+ // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
803
+ string parent = 1 [
804
+ (google.api.field_behavior) = REQUIRED,
805
+ (google.api.resource_reference) = {
806
+ type: "firestore.googleapis.com/CollectionGroup"
807
+ }
808
+ ];
809
+
810
+ // Required. The composite index to create.
811
+ Index index = 2 [(google.api.field_behavior) = REQUIRED];
812
+ }
813
+
814
+ // The request for
815
+ // [FirestoreAdmin.ListIndexes][google.firestore.admin.v1.FirestoreAdmin.ListIndexes].
816
+ message ListIndexesRequest {
817
+ // Required. A parent name of the form
818
+ // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
819
+ string parent = 1 [
820
+ (google.api.field_behavior) = REQUIRED,
821
+ (google.api.resource_reference) = {
822
+ type: "firestore.googleapis.com/CollectionGroup"
823
+ }
824
+ ];
825
+
826
+ // The filter to apply to list results.
827
+ string filter = 2;
828
+
829
+ // The number of results to return.
830
+ int32 page_size = 3;
831
+
832
+ // A page token, returned from a previous call to
833
+ // [FirestoreAdmin.ListIndexes][google.firestore.admin.v1.FirestoreAdmin.ListIndexes],
834
+ // that may be used to get the next page of results.
835
+ string page_token = 4;
836
+ }
837
+
838
+ // The response for
839
+ // [FirestoreAdmin.ListIndexes][google.firestore.admin.v1.FirestoreAdmin.ListIndexes].
840
+ message ListIndexesResponse {
841
+ // The requested indexes.
842
+ repeated Index indexes = 1;
843
+
844
+ // A page token that may be used to request another page of results. If blank,
845
+ // this is the last page.
846
+ string next_page_token = 2;
847
+ }
848
+
849
+ // The request for
850
+ // [FirestoreAdmin.GetIndex][google.firestore.admin.v1.FirestoreAdmin.GetIndex].
851
+ message GetIndexRequest {
852
+ // Required. A name of the form
853
+ // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`
854
+ string name = 1 [
855
+ (google.api.field_behavior) = REQUIRED,
856
+ (google.api.resource_reference) = { type: "firestore.googleapis.com/Index" }
857
+ ];
858
+ }
859
+
860
+ // The request for
861
+ // [FirestoreAdmin.DeleteIndex][google.firestore.admin.v1.FirestoreAdmin.DeleteIndex].
862
+ message DeleteIndexRequest {
863
+ // Required. A name of the form
864
+ // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`
865
+ string name = 1 [
866
+ (google.api.field_behavior) = REQUIRED,
867
+ (google.api.resource_reference) = { type: "firestore.googleapis.com/Index" }
868
+ ];
869
+ }
870
+
871
+ // The request for
872
+ // [FirestoreAdmin.UpdateField][google.firestore.admin.v1.FirestoreAdmin.UpdateField].
873
+ message UpdateFieldRequest {
874
+ // Required. The field to be updated.
875
+ Field field = 1 [(google.api.field_behavior) = REQUIRED];
876
+
877
+ // A mask, relative to the field. If specified, only configuration specified
878
+ // by this field_mask will be updated in the field.
879
+ google.protobuf.FieldMask update_mask = 2;
880
+ }
881
+
882
+ // The request for
883
+ // [FirestoreAdmin.GetField][google.firestore.admin.v1.FirestoreAdmin.GetField].
884
+ message GetFieldRequest {
885
+ // Required. A name of the form
886
+ // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_id}`
887
+ string name = 1 [
888
+ (google.api.field_behavior) = REQUIRED,
889
+ (google.api.resource_reference) = { type: "firestore.googleapis.com/Field" }
890
+ ];
891
+ }
892
+
893
+ // The request for
894
+ // [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields].
895
+ message ListFieldsRequest {
896
+ // Required. A parent name of the form
897
+ // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
898
+ string parent = 1 [
899
+ (google.api.field_behavior) = REQUIRED,
900
+ (google.api.resource_reference) = {
901
+ type: "firestore.googleapis.com/CollectionGroup"
902
+ }
903
+ ];
904
+
905
+ // The filter to apply to list results. Currently,
906
+ // [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields]
907
+ // only supports listing fields that have been explicitly overridden. To issue
908
+ // this query, call
909
+ // [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields]
910
+ // with a filter that includes `indexConfig.usesAncestorConfig:false` or
911
+ // `ttlConfig:*`.
912
+ string filter = 2;
913
+
914
+ // The number of results to return.
915
+ int32 page_size = 3;
916
+
917
+ // A page token, returned from a previous call to
918
+ // [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields],
919
+ // that may be used to get the next page of results.
920
+ string page_token = 4;
921
+ }
922
+
923
+ // The response for
924
+ // [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields].
925
+ message ListFieldsResponse {
926
+ // The requested fields.
927
+ repeated Field fields = 1;
928
+
929
+ // A page token that may be used to request another page of results. If blank,
930
+ // this is the last page.
931
+ string next_page_token = 2;
932
+ }
933
+
934
+ // The request for
935
+ // [FirestoreAdmin.ExportDocuments][google.firestore.admin.v1.FirestoreAdmin.ExportDocuments].
936
+ message ExportDocumentsRequest {
937
+ // Required. Database to export. Should be of the form:
938
+ // `projects/{project_id}/databases/{database_id}`.
939
+ string name = 1 [
940
+ (google.api.field_behavior) = REQUIRED,
941
+ (google.api.resource_reference) = {
942
+ type: "firestore.googleapis.com/Database"
943
+ }
944
+ ];
945
+
946
+ // IDs of the collection groups to export. Unspecified means all
947
+ // collection groups. Each collection group in this list must be unique.
948
+ repeated string collection_ids = 2;
949
+
950
+ // The output URI. Currently only supports Google Cloud Storage URIs of the
951
+ // form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the name
952
+ // of the Google Cloud Storage bucket and `NAMESPACE_PATH` is an optional
953
+ // Google Cloud Storage namespace path. When
954
+ // choosing a name, be sure to consider Google Cloud Storage naming
955
+ // guidelines: https://cloud.google.com/storage/docs/naming.
956
+ // If the URI is a bucket (without a namespace path), a prefix will be
957
+ // generated based on the start time.
958
+ string output_uri_prefix = 3;
959
+
960
+ // An empty list represents all namespaces. This is the preferred
961
+ // usage for databases that don't use namespaces.
962
+ //
963
+ // An empty string element represents the default namespace. This should be
964
+ // used if the database has data in non-default namespaces, but doesn't want
965
+ // to include them. Each namespace in this list must be unique.
966
+ repeated string namespace_ids = 4;
967
+
968
+ // The timestamp that corresponds to the version of the database to be
969
+ // exported. The timestamp must be in the past, rounded to the minute and not
970
+ // older than
971
+ // [earliestVersionTime][google.firestore.admin.v1.Database.earliest_version_time].
972
+ // If specified, then the exported documents will represent a consistent view
973
+ // of the database at the provided time. Otherwise, there are no guarantees
974
+ // about the consistency of the exported documents.
975
+ google.protobuf.Timestamp snapshot_time = 5;
976
+ }
977
+
978
+ // The request for
979
+ // [FirestoreAdmin.ImportDocuments][google.firestore.admin.v1.FirestoreAdmin.ImportDocuments].
980
+ message ImportDocumentsRequest {
981
+ // Required. Database to import into. Should be of the form:
982
+ // `projects/{project_id}/databases/{database_id}`.
983
+ string name = 1 [
984
+ (google.api.field_behavior) = REQUIRED,
985
+ (google.api.resource_reference) = {
986
+ type: "firestore.googleapis.com/Database"
987
+ }
988
+ ];
989
+
990
+ // IDs of the collection groups to import. Unspecified means all collection
991
+ // groups that were included in the export. Each collection group in this list
992
+ // must be unique.
993
+ repeated string collection_ids = 2;
994
+
995
+ // Location of the exported files.
996
+ // This must match the output_uri_prefix of an ExportDocumentsResponse from
997
+ // an export that has completed successfully.
998
+ // See:
999
+ // [google.firestore.admin.v1.ExportDocumentsResponse.output_uri_prefix][google.firestore.admin.v1.ExportDocumentsResponse.output_uri_prefix].
1000
+ string input_uri_prefix = 3;
1001
+
1002
+ // An empty list represents all namespaces. This is the preferred
1003
+ // usage for databases that don't use namespaces.
1004
+ //
1005
+ // An empty string element represents the default namespace. This should be
1006
+ // used if the database has data in non-default namespaces, but doesn't want
1007
+ // to include them. Each namespace in this list must be unique.
1008
+ repeated string namespace_ids = 4;
1009
+ }
1010
+
1011
+ // The request for
1012
+ // [FirestoreAdmin.BulkDeleteDocuments][google.firestore.admin.v1.FirestoreAdmin.BulkDeleteDocuments].
1013
+ //
1014
+ // When both collection_ids and namespace_ids are set, only documents satisfying
1015
+ // both conditions will be deleted.
1016
+ //
1017
+ // Requests with namespace_ids and collection_ids both empty will be rejected.
1018
+ // Please use
1019
+ // [FirestoreAdmin.DeleteDatabase][google.firestore.admin.v1.FirestoreAdmin.DeleteDatabase]
1020
+ // instead.
1021
+ message BulkDeleteDocumentsRequest {
1022
+ // Required. Database to operate. Should be of the form:
1023
+ // `projects/{project_id}/databases/{database_id}`.
1024
+ string name = 1 [
1025
+ (google.api.field_behavior) = REQUIRED,
1026
+ (google.api.resource_reference) = {
1027
+ type: "firestore.googleapis.com/Database"
1028
+ }
1029
+ ];
1030
+
1031
+ // Optional. IDs of the collection groups to delete. Unspecified means all
1032
+ // collection groups.
1033
+ //
1034
+ // Each collection group in this list must be unique.
1035
+ repeated string collection_ids = 2 [(google.api.field_behavior) = OPTIONAL];
1036
+
1037
+ // Optional. Namespaces to delete.
1038
+ //
1039
+ // An empty list means all namespaces. This is the recommended
1040
+ // usage for databases that don't use namespaces.
1041
+ //
1042
+ // An empty string element represents the default namespace. This should be
1043
+ // used if the database has data in non-default namespaces, but doesn't want
1044
+ // to delete from them.
1045
+ //
1046
+ // Each namespace in this list must be unique.
1047
+ repeated string namespace_ids = 3 [(google.api.field_behavior) = OPTIONAL];
1048
+ }
1049
+
1050
+ // The response for
1051
+ // [FirestoreAdmin.BulkDeleteDocuments][google.firestore.admin.v1.FirestoreAdmin.BulkDeleteDocuments].
1052
+ message BulkDeleteDocumentsResponse {}
1053
+
1054
+ // The request for
1055
+ // [FirestoreAdmin.GetBackup][google.firestore.admin.v1.FirestoreAdmin.GetBackup].
1056
+ message GetBackupRequest {
1057
+ // Required. Name of the backup to fetch.
1058
+ //
1059
+ // Format is `projects/{project}/locations/{location}/backups/{backup}`.
1060
+ string name = 1 [
1061
+ (google.api.field_behavior) = REQUIRED,
1062
+ (google.api.resource_reference) = {
1063
+ type: "firestore.googleapis.com/Backup"
1064
+ }
1065
+ ];
1066
+ }
1067
+
1068
+ // The request for
1069
+ // [FirestoreAdmin.ListBackups][google.firestore.admin.v1.FirestoreAdmin.ListBackups].
1070
+ message ListBackupsRequest {
1071
+ // Required. The location to list backups from.
1072
+ //
1073
+ // Format is `projects/{project}/locations/{location}`.
1074
+ // Use `{location} = '-'` to list backups from all locations for the given
1075
+ // project. This allows listing backups from a single location or from all
1076
+ // locations.
1077
+ string parent = 1 [
1078
+ (google.api.field_behavior) = REQUIRED,
1079
+ (google.api.resource_reference) = {
1080
+ type: "firestore.googleapis.com/Location"
1081
+ }
1082
+ ];
1083
+
1084
+ // An expression that filters the list of returned backups.
1085
+ //
1086
+ // A filter expression consists of a field name, a comparison operator, and a
1087
+ // value for filtering.
1088
+ // The value must be a string, a number, or a boolean. The comparison operator
1089
+ // must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
1090
+ // Colon `:` is the contains operator. Filter rules are not case sensitive.
1091
+ //
1092
+ // The following fields in the [Backup][google.firestore.admin.v1.Backup] are
1093
+ // eligible for filtering:
1094
+ //
1095
+ // * `database_uid` (supports `=` only)
1096
+ string filter = 2;
1097
+ }
1098
+
1099
+ // The response for
1100
+ // [FirestoreAdmin.ListBackups][google.firestore.admin.v1.FirestoreAdmin.ListBackups].
1101
+ message ListBackupsResponse {
1102
+ // List of all backups for the project.
1103
+ repeated Backup backups = 1;
1104
+
1105
+ // List of locations that existing backups were not able to be fetched from.
1106
+ //
1107
+ // Instead of failing the entire requests when a single location is
1108
+ // unreachable, this response returns a partial result set and list of
1109
+ // locations unable to be reached here. The request can be retried against a
1110
+ // single location to get a concrete error.
1111
+ repeated string unreachable = 3;
1112
+ }
1113
+
1114
+ // The request for
1115
+ // [FirestoreAdmin.DeleteBackup][google.firestore.admin.v1.FirestoreAdmin.DeleteBackup].
1116
+ message DeleteBackupRequest {
1117
+ // Required. Name of the backup to delete.
1118
+ //
1119
+ // format is `projects/{project}/locations/{location}/backups/{backup}`.
1120
+ string name = 1 [
1121
+ (google.api.field_behavior) = REQUIRED,
1122
+ (google.api.resource_reference) = {
1123
+ type: "firestore.googleapis.com/Backup"
1124
+ }
1125
+ ];
1126
+ }
1127
+
1128
+ // The request message for
1129
+ // [FirestoreAdmin.RestoreDatabase][google.firestore.admin.v1.FirestoreAdmin.RestoreDatabase].
1130
+ message RestoreDatabaseRequest {
1131
+ // Required. The project to restore the database in. Format is
1132
+ // `projects/{project_id}`.
1133
+ string parent = 1 [
1134
+ (google.api.field_behavior) = REQUIRED,
1135
+ (google.api.resource_reference) = {
1136
+ child_type: "firestore.googleapis.com/Database"
1137
+ }
1138
+ ];
1139
+
1140
+ // Required. The ID to use for the database, which will become the final
1141
+ // component of the database's resource name. This database ID must not be
1142
+ // associated with an existing database.
1143
+ //
1144
+ // This value should be 4-63 characters. Valid characters are /[a-z][0-9]-/
1145
+ // with first character a letter and the last a letter or a number. Must not
1146
+ // be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/.
1147
+ //
1148
+ // "(default)" database ID is also valid if the database is Standard edition.
1149
+ string database_id = 2 [(google.api.field_behavior) = REQUIRED];
1150
+
1151
+ // Required. Backup to restore from. Must be from the same project as the
1152
+ // parent.
1153
+ //
1154
+ // The restored database will be created in the same location as the source
1155
+ // backup.
1156
+ //
1157
+ // Format is: `projects/{project_id}/locations/{location}/backups/{backup}`
1158
+ string backup = 3 [
1159
+ (google.api.field_behavior) = REQUIRED,
1160
+ (google.api.resource_reference) = {
1161
+ type: "firestore.googleapis.com/Backup"
1162
+ }
1163
+ ];
1164
+
1165
+ // Optional. Encryption configuration for the restored database.
1166
+ //
1167
+ // If this field is not specified, the restored database will use
1168
+ // the same encryption configuration as the backup, namely
1169
+ // [use_source_encryption][google.firestore.admin.v1.Database.EncryptionConfig.use_source_encryption].
1170
+ Database.EncryptionConfig encryption_config = 9
1171
+ [(google.api.field_behavior) = OPTIONAL];
1172
+
1173
+ // Optional. Immutable. Tags to be bound to the restored database.
1174
+ //
1175
+ // The tags should be provided in the format of
1176
+ // `tagKeys/{tag_key_id} -> tagValues/{tag_value_id}`.
1177
+ map<string, string> tags = 10 [
1178
+ (google.api.field_behavior) = IMMUTABLE,
1179
+ (google.api.field_behavior) = OPTIONAL
1180
+ ];
1181
+ }
1182
+
1183
+ // The request message for
1184
+ // [FirestoreAdmin.CloneDatabase][google.firestore.admin.v1.FirestoreAdmin.CloneDatabase].
1185
+ message CloneDatabaseRequest {
1186
+ // Required. The project to clone the database in. Format is
1187
+ // `projects/{project_id}`.
1188
+ string parent = 1 [
1189
+ (google.api.field_behavior) = REQUIRED,
1190
+ (google.api.resource_reference) = {
1191
+ child_type: "firestore.googleapis.com/Database"
1192
+ }
1193
+ ];
1194
+
1195
+ // Required. The ID to use for the database, which will become the final
1196
+ // component of the database's resource name. This database ID must not be
1197
+ // associated with an existing database.
1198
+ //
1199
+ // This value should be 4-63 characters. Valid characters are /[a-z][0-9]-/
1200
+ // with first character a letter and the last a letter or a number. Must not
1201
+ // be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/.
1202
+ //
1203
+ // "(default)" database ID is also valid if the database is Standard edition.
1204
+ string database_id = 2 [(google.api.field_behavior) = REQUIRED];
1205
+
1206
+ // Required. Specification of the PITR data to clone from. The source database
1207
+ // must exist.
1208
+ //
1209
+ // The cloned database will be created in the same location as the source
1210
+ // database.
1211
+ PitrSnapshot pitr_snapshot = 6 [(google.api.field_behavior) = REQUIRED];
1212
+
1213
+ // Optional. Encryption configuration for the cloned database.
1214
+ //
1215
+ // If this field is not specified, the cloned database will use
1216
+ // the same encryption configuration as the source database, namely
1217
+ // [use_source_encryption][google.firestore.admin.v1.Database.EncryptionConfig.use_source_encryption].
1218
+ Database.EncryptionConfig encryption_config = 4
1219
+ [(google.api.field_behavior) = OPTIONAL];
1220
+
1221
+ // Optional. Immutable. Tags to be bound to the cloned database.
1222
+ //
1223
+ // The tags should be provided in the format of
1224
+ // `tagKeys/{tag_key_id} -> tagValues/{tag_value_id}`.
1225
+ map<string, string> tags = 5 [
1226
+ (google.api.field_behavior) = IMMUTABLE,
1227
+ (google.api.field_behavior) = OPTIONAL
1228
+ ];
1229
+ }