google-cloud-firestore-admin-v1 0.7.1 → 0.9.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.
@@ -0,0 +1,1289 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2023 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "google/cloud/errors"
20
+ require "google/firestore/admin/v1/firestore_admin_pb"
21
+ require "google/cloud/firestore/admin/v1/firestore_admin/rest/service_stub"
22
+ require "google/cloud/location/rest"
23
+
24
+ module Google
25
+ module Cloud
26
+ module Firestore
27
+ module Admin
28
+ module V1
29
+ module FirestoreAdmin
30
+ module Rest
31
+ ##
32
+ # REST client for the FirestoreAdmin service.
33
+ #
34
+ # The Cloud Firestore Admin API.
35
+ #
36
+ # This API provides several administrative services for Cloud Firestore.
37
+ #
38
+ # Project, Database, Namespace, Collection, Collection Group, and Document are
39
+ # used as defined in the Google Cloud Firestore API.
40
+ #
41
+ # Operation: An Operation represents work being performed in the background.
42
+ #
43
+ # The index service manages Cloud Firestore indexes.
44
+ #
45
+ # Index creation is performed asynchronously.
46
+ # An Operation resource is created for each such asynchronous operation.
47
+ # The state of the operation (including any errors encountered)
48
+ # may be queried via the Operation resource.
49
+ #
50
+ # The Operations collection provides a record of actions performed for the
51
+ # specified Project (including any Operations in progress). Operations are not
52
+ # created directly but through calls on other collections or resources.
53
+ #
54
+ # An Operation that is done may be deleted so that it is no longer listed as
55
+ # part of the Operation collection. Operations are garbage collected after
56
+ # 30 days. By default, ListOperations will only return in progress and failed
57
+ # operations. To list completed operation, issue a ListOperations request with
58
+ # the filter `done: true`.
59
+ #
60
+ # Operations are created by service `FirestoreAdmin`, but are accessed via
61
+ # service `google.longrunning.Operations`.
62
+ #
63
+ class Client
64
+ include Paths
65
+
66
+ # @private
67
+ attr_reader :firestore_admin_stub
68
+
69
+ ##
70
+ # Configure the FirestoreAdmin Client class.
71
+ #
72
+ # See {::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Client::Configuration}
73
+ # for a description of the configuration fields.
74
+ #
75
+ # @example
76
+ #
77
+ # # Modify the configuration for all FirestoreAdmin clients
78
+ # ::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Client.configure do |config|
79
+ # config.timeout = 10.0
80
+ # end
81
+ #
82
+ # @yield [config] Configure the Client client.
83
+ # @yieldparam config [Client::Configuration]
84
+ #
85
+ # @return [Client::Configuration]
86
+ #
87
+ def self.configure
88
+ @configure ||= begin
89
+ namespace = ["Google", "Cloud", "Firestore", "Admin", "V1"]
90
+ parent_config = while namespace.any?
91
+ parent_name = namespace.join "::"
92
+ parent_const = const_get parent_name
93
+ break parent_const.configure if parent_const.respond_to? :configure
94
+ namespace.pop
95
+ end
96
+ default_config = Client::Configuration.new parent_config
97
+
98
+ default_config.rpcs.create_index.timeout = 60.0
99
+
100
+ default_config.rpcs.list_indexes.timeout = 60.0
101
+ default_config.rpcs.list_indexes.retry_policy = {
102
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [14, 13, 4]
103
+ }
104
+
105
+ default_config.rpcs.get_index.timeout = 60.0
106
+ default_config.rpcs.get_index.retry_policy = {
107
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [14, 13, 4]
108
+ }
109
+
110
+ default_config.rpcs.delete_index.timeout = 60.0
111
+ default_config.rpcs.delete_index.retry_policy = {
112
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [14, 13, 4]
113
+ }
114
+
115
+ default_config.rpcs.get_field.timeout = 60.0
116
+ default_config.rpcs.get_field.retry_policy = {
117
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [14, 13, 4]
118
+ }
119
+
120
+ default_config.rpcs.update_field.timeout = 60.0
121
+
122
+ default_config.rpcs.list_fields.timeout = 60.0
123
+ default_config.rpcs.list_fields.retry_policy = {
124
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [14, 13, 4]
125
+ }
126
+
127
+ default_config.rpcs.export_documents.timeout = 60.0
128
+
129
+ default_config.rpcs.import_documents.timeout = 60.0
130
+
131
+ default_config
132
+ end
133
+ yield @configure if block_given?
134
+ @configure
135
+ end
136
+
137
+ ##
138
+ # Configure the FirestoreAdmin Client instance.
139
+ #
140
+ # The configuration is set to the derived mode, meaning that values can be changed,
141
+ # but structural changes (adding new fields, etc.) are not allowed. Structural changes
142
+ # should be made on {Client.configure}.
143
+ #
144
+ # See {::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Client::Configuration}
145
+ # for a description of the configuration fields.
146
+ #
147
+ # @yield [config] Configure the Client client.
148
+ # @yieldparam config [Client::Configuration]
149
+ #
150
+ # @return [Client::Configuration]
151
+ #
152
+ def configure
153
+ yield @config if block_given?
154
+ @config
155
+ end
156
+
157
+ ##
158
+ # Create a new FirestoreAdmin REST client object.
159
+ #
160
+ # @example
161
+ #
162
+ # # Create a client using the default configuration
163
+ # client = ::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Client.new
164
+ #
165
+ # # Create a client using a custom configuration
166
+ # client = ::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Client.new do |config|
167
+ # config.timeout = 10.0
168
+ # end
169
+ #
170
+ # @yield [config] Configure the FirestoreAdmin client.
171
+ # @yieldparam config [Client::Configuration]
172
+ #
173
+ def initialize
174
+ # Create the configuration object
175
+ @config = Configuration.new Client.configure
176
+
177
+ # Yield the configuration if needed
178
+ yield @config if block_given?
179
+
180
+ # Create credentials
181
+ credentials = @config.credentials
182
+ # Use self-signed JWT if the endpoint is unchanged from default,
183
+ # but only if the default endpoint does not have a region prefix.
184
+ enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint &&
185
+ !@config.endpoint.split(".").first.include?("-")
186
+ credentials ||= Credentials.default scope: @config.scope,
187
+ enable_self_signed_jwt: enable_self_signed_jwt
188
+ if credentials.is_a?(::String) || credentials.is_a?(::Hash)
189
+ credentials = Credentials.new credentials, scope: @config.scope
190
+ end
191
+
192
+ @quota_project_id = @config.quota_project
193
+ @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
194
+
195
+ @operations_client = ::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Operations.new do |config|
196
+ config.credentials = credentials
197
+ config.quota_project = @quota_project_id
198
+ config.endpoint = @config.endpoint
199
+ end
200
+
201
+ @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config|
202
+ config.credentials = credentials
203
+ config.quota_project = @quota_project_id
204
+ config.endpoint = @config.endpoint
205
+ end
206
+
207
+ @firestore_admin_stub = ::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::ServiceStub.new endpoint: @config.endpoint, credentials: credentials
208
+ end
209
+
210
+ ##
211
+ # Get the associated client for long-running operations.
212
+ #
213
+ # @return [::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Operations]
214
+ #
215
+ attr_reader :operations_client
216
+
217
+ ##
218
+ # Get the associated client for mix-in of the Locations.
219
+ #
220
+ # @return [Google::Cloud::Location::Locations::Rest::Client]
221
+ #
222
+ attr_reader :location_client
223
+
224
+ # Service calls
225
+
226
+ ##
227
+ # Creates a composite index. This returns a {::Google::Longrunning::Operation google.longrunning.Operation}
228
+ # which may be used to track the status of the creation. The metadata for
229
+ # the operation will be the type {::Google::Cloud::Firestore::Admin::V1::IndexOperationMetadata IndexOperationMetadata}.
230
+ #
231
+ # @overload create_index(request, options = nil)
232
+ # Pass arguments to `create_index` via a request object, either of type
233
+ # {::Google::Cloud::Firestore::Admin::V1::CreateIndexRequest} or an equivalent Hash.
234
+ #
235
+ # @param request [::Google::Cloud::Firestore::Admin::V1::CreateIndexRequest, ::Hash]
236
+ # A request object representing the call parameters. Required. To specify no
237
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
238
+ # @param options [::Gapic::CallOptions, ::Hash]
239
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
240
+ #
241
+ # @overload create_index(parent: nil, index: nil)
242
+ # Pass arguments to `create_index` via keyword arguments. Note that at
243
+ # least one keyword argument is required. To specify no parameters, or to keep all
244
+ # the default parameter values, pass an empty Hash as a request object (see above).
245
+ #
246
+ # @param parent [::String]
247
+ # Required. A parent name of the form
248
+ # `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
249
+ # @param index [::Google::Cloud::Firestore::Admin::V1::Index, ::Hash]
250
+ # Required. The composite index to create.
251
+ # @yield [result, operation] Access the result along with the TransportOperation object
252
+ # @yieldparam result [::Gapic::Operation]
253
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
254
+ #
255
+ # @return [::Gapic::Operation]
256
+ #
257
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
258
+ def create_index request, options = nil
259
+ raise ::ArgumentError, "request must be provided" if request.nil?
260
+
261
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Firestore::Admin::V1::CreateIndexRequest
262
+
263
+ # Converts hash and nil to an options object
264
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
265
+
266
+ # Customize the options with defaults
267
+ call_metadata = @config.rpcs.create_index.metadata.to_h
268
+
269
+ # Set x-goog-api-client and x-goog-user-project headers
270
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
271
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
272
+ gapic_version: ::Google::Cloud::Firestore::Admin::V1::VERSION,
273
+ transports_version_send: [:rest]
274
+
275
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
276
+
277
+ options.apply_defaults timeout: @config.rpcs.create_index.timeout,
278
+ metadata: call_metadata,
279
+ retry_policy: @config.rpcs.create_index.retry_policy
280
+
281
+ options.apply_defaults timeout: @config.timeout,
282
+ metadata: @config.metadata,
283
+ retry_policy: @config.retry_policy
284
+
285
+ @firestore_admin_stub.create_index request, options do |result, operation|
286
+ result = ::Gapic::Operation.new result, @operations_client, options: options
287
+ yield result, operation if block_given?
288
+ return result
289
+ end
290
+ rescue ::Gapic::Rest::Error => e
291
+ raise ::Google::Cloud::Error.from_error(e)
292
+ end
293
+
294
+ ##
295
+ # Lists composite indexes.
296
+ #
297
+ # @overload list_indexes(request, options = nil)
298
+ # Pass arguments to `list_indexes` via a request object, either of type
299
+ # {::Google::Cloud::Firestore::Admin::V1::ListIndexesRequest} or an equivalent Hash.
300
+ #
301
+ # @param request [::Google::Cloud::Firestore::Admin::V1::ListIndexesRequest, ::Hash]
302
+ # A request object representing the call parameters. Required. To specify no
303
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
304
+ # @param options [::Gapic::CallOptions, ::Hash]
305
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
306
+ #
307
+ # @overload list_indexes(parent: nil, filter: nil, page_size: nil, page_token: nil)
308
+ # Pass arguments to `list_indexes` via keyword arguments. Note that at
309
+ # least one keyword argument is required. To specify no parameters, or to keep all
310
+ # the default parameter values, pass an empty Hash as a request object (see above).
311
+ #
312
+ # @param parent [::String]
313
+ # Required. A parent name of the form
314
+ # `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
315
+ # @param filter [::String]
316
+ # The filter to apply to list results.
317
+ # @param page_size [::Integer]
318
+ # The number of results to return.
319
+ # @param page_token [::String]
320
+ # A page token, returned from a previous call to
321
+ # {::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Client#list_indexes FirestoreAdmin.ListIndexes}, that may be used to get the next
322
+ # page of results.
323
+ # @yield [result, operation] Access the result along with the TransportOperation object
324
+ # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Firestore::Admin::V1::Index>]
325
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
326
+ #
327
+ # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Firestore::Admin::V1::Index>]
328
+ #
329
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
330
+ def list_indexes request, options = nil
331
+ raise ::ArgumentError, "request must be provided" if request.nil?
332
+
333
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Firestore::Admin::V1::ListIndexesRequest
334
+
335
+ # Converts hash and nil to an options object
336
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
337
+
338
+ # Customize the options with defaults
339
+ call_metadata = @config.rpcs.list_indexes.metadata.to_h
340
+
341
+ # Set x-goog-api-client and x-goog-user-project headers
342
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
343
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
344
+ gapic_version: ::Google::Cloud::Firestore::Admin::V1::VERSION,
345
+ transports_version_send: [:rest]
346
+
347
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
348
+
349
+ options.apply_defaults timeout: @config.rpcs.list_indexes.timeout,
350
+ metadata: call_metadata,
351
+ retry_policy: @config.rpcs.list_indexes.retry_policy
352
+
353
+ options.apply_defaults timeout: @config.timeout,
354
+ metadata: @config.metadata,
355
+ retry_policy: @config.retry_policy
356
+
357
+ @firestore_admin_stub.list_indexes request, options do |result, operation|
358
+ result = ::Gapic::Rest::PagedEnumerable.new @firestore_admin_stub, :list_indexes, "indexes", request, result, options
359
+ yield result, operation if block_given?
360
+ return result
361
+ end
362
+ rescue ::Gapic::Rest::Error => e
363
+ raise ::Google::Cloud::Error.from_error(e)
364
+ end
365
+
366
+ ##
367
+ # Gets a composite index.
368
+ #
369
+ # @overload get_index(request, options = nil)
370
+ # Pass arguments to `get_index` via a request object, either of type
371
+ # {::Google::Cloud::Firestore::Admin::V1::GetIndexRequest} or an equivalent Hash.
372
+ #
373
+ # @param request [::Google::Cloud::Firestore::Admin::V1::GetIndexRequest, ::Hash]
374
+ # A request object representing the call parameters. Required. To specify no
375
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
376
+ # @param options [::Gapic::CallOptions, ::Hash]
377
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
378
+ #
379
+ # @overload get_index(name: nil)
380
+ # Pass arguments to `get_index` via keyword arguments. Note that at
381
+ # least one keyword argument is required. To specify no parameters, or to keep all
382
+ # the default parameter values, pass an empty Hash as a request object (see above).
383
+ #
384
+ # @param name [::String]
385
+ # Required. A name of the form
386
+ # `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`
387
+ # @yield [result, operation] Access the result along with the TransportOperation object
388
+ # @yieldparam result [::Google::Cloud::Firestore::Admin::V1::Index]
389
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
390
+ #
391
+ # @return [::Google::Cloud::Firestore::Admin::V1::Index]
392
+ #
393
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
394
+ def get_index request, options = nil
395
+ raise ::ArgumentError, "request must be provided" if request.nil?
396
+
397
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Firestore::Admin::V1::GetIndexRequest
398
+
399
+ # Converts hash and nil to an options object
400
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
401
+
402
+ # Customize the options with defaults
403
+ call_metadata = @config.rpcs.get_index.metadata.to_h
404
+
405
+ # Set x-goog-api-client and x-goog-user-project headers
406
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
407
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
408
+ gapic_version: ::Google::Cloud::Firestore::Admin::V1::VERSION,
409
+ transports_version_send: [:rest]
410
+
411
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
412
+
413
+ options.apply_defaults timeout: @config.rpcs.get_index.timeout,
414
+ metadata: call_metadata,
415
+ retry_policy: @config.rpcs.get_index.retry_policy
416
+
417
+ options.apply_defaults timeout: @config.timeout,
418
+ metadata: @config.metadata,
419
+ retry_policy: @config.retry_policy
420
+
421
+ @firestore_admin_stub.get_index request, options do |result, operation|
422
+ yield result, operation if block_given?
423
+ return result
424
+ end
425
+ rescue ::Gapic::Rest::Error => e
426
+ raise ::Google::Cloud::Error.from_error(e)
427
+ end
428
+
429
+ ##
430
+ # Deletes a composite index.
431
+ #
432
+ # @overload delete_index(request, options = nil)
433
+ # Pass arguments to `delete_index` via a request object, either of type
434
+ # {::Google::Cloud::Firestore::Admin::V1::DeleteIndexRequest} or an equivalent Hash.
435
+ #
436
+ # @param request [::Google::Cloud::Firestore::Admin::V1::DeleteIndexRequest, ::Hash]
437
+ # A request object representing the call parameters. Required. To specify no
438
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
439
+ # @param options [::Gapic::CallOptions, ::Hash]
440
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
441
+ #
442
+ # @overload delete_index(name: nil)
443
+ # Pass arguments to `delete_index` via keyword arguments. Note that at
444
+ # least one keyword argument is required. To specify no parameters, or to keep all
445
+ # the default parameter values, pass an empty Hash as a request object (see above).
446
+ #
447
+ # @param name [::String]
448
+ # Required. A name of the form
449
+ # `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`
450
+ # @yield [result, operation] Access the result along with the TransportOperation object
451
+ # @yieldparam result [::Google::Protobuf::Empty]
452
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
453
+ #
454
+ # @return [::Google::Protobuf::Empty]
455
+ #
456
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
457
+ def delete_index request, options = nil
458
+ raise ::ArgumentError, "request must be provided" if request.nil?
459
+
460
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Firestore::Admin::V1::DeleteIndexRequest
461
+
462
+ # Converts hash and nil to an options object
463
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
464
+
465
+ # Customize the options with defaults
466
+ call_metadata = @config.rpcs.delete_index.metadata.to_h
467
+
468
+ # Set x-goog-api-client and x-goog-user-project headers
469
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
470
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
471
+ gapic_version: ::Google::Cloud::Firestore::Admin::V1::VERSION,
472
+ transports_version_send: [:rest]
473
+
474
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
475
+
476
+ options.apply_defaults timeout: @config.rpcs.delete_index.timeout,
477
+ metadata: call_metadata,
478
+ retry_policy: @config.rpcs.delete_index.retry_policy
479
+
480
+ options.apply_defaults timeout: @config.timeout,
481
+ metadata: @config.metadata,
482
+ retry_policy: @config.retry_policy
483
+
484
+ @firestore_admin_stub.delete_index request, options do |result, operation|
485
+ yield result, operation if block_given?
486
+ return result
487
+ end
488
+ rescue ::Gapic::Rest::Error => e
489
+ raise ::Google::Cloud::Error.from_error(e)
490
+ end
491
+
492
+ ##
493
+ # Gets the metadata and configuration for a Field.
494
+ #
495
+ # @overload get_field(request, options = nil)
496
+ # Pass arguments to `get_field` via a request object, either of type
497
+ # {::Google::Cloud::Firestore::Admin::V1::GetFieldRequest} or an equivalent Hash.
498
+ #
499
+ # @param request [::Google::Cloud::Firestore::Admin::V1::GetFieldRequest, ::Hash]
500
+ # A request object representing the call parameters. Required. To specify no
501
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
502
+ # @param options [::Gapic::CallOptions, ::Hash]
503
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
504
+ #
505
+ # @overload get_field(name: nil)
506
+ # Pass arguments to `get_field` via keyword arguments. Note that at
507
+ # least one keyword argument is required. To specify no parameters, or to keep all
508
+ # the default parameter values, pass an empty Hash as a request object (see above).
509
+ #
510
+ # @param name [::String]
511
+ # Required. A name of the form
512
+ # `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_id}`
513
+ # @yield [result, operation] Access the result along with the TransportOperation object
514
+ # @yieldparam result [::Google::Cloud::Firestore::Admin::V1::Field]
515
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
516
+ #
517
+ # @return [::Google::Cloud::Firestore::Admin::V1::Field]
518
+ #
519
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
520
+ def get_field request, options = nil
521
+ raise ::ArgumentError, "request must be provided" if request.nil?
522
+
523
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Firestore::Admin::V1::GetFieldRequest
524
+
525
+ # Converts hash and nil to an options object
526
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
527
+
528
+ # Customize the options with defaults
529
+ call_metadata = @config.rpcs.get_field.metadata.to_h
530
+
531
+ # Set x-goog-api-client and x-goog-user-project headers
532
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
533
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
534
+ gapic_version: ::Google::Cloud::Firestore::Admin::V1::VERSION,
535
+ transports_version_send: [:rest]
536
+
537
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
538
+
539
+ options.apply_defaults timeout: @config.rpcs.get_field.timeout,
540
+ metadata: call_metadata,
541
+ retry_policy: @config.rpcs.get_field.retry_policy
542
+
543
+ options.apply_defaults timeout: @config.timeout,
544
+ metadata: @config.metadata,
545
+ retry_policy: @config.retry_policy
546
+
547
+ @firestore_admin_stub.get_field request, options do |result, operation|
548
+ yield result, operation if block_given?
549
+ return result
550
+ end
551
+ rescue ::Gapic::Rest::Error => e
552
+ raise ::Google::Cloud::Error.from_error(e)
553
+ end
554
+
555
+ ##
556
+ # Updates a field configuration. Currently, field updates apply only to
557
+ # single field index configuration. However, calls to
558
+ # {::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Client#update_field FirestoreAdmin.UpdateField} should provide a field mask to avoid
559
+ # changing any configuration that the caller isn't aware of. The field mask
560
+ # should be specified as: `{ paths: "index_config" }`.
561
+ #
562
+ # This call returns a {::Google::Longrunning::Operation google.longrunning.Operation} which may be used to
563
+ # track the status of the field update. The metadata for
564
+ # the operation will be the type {::Google::Cloud::Firestore::Admin::V1::FieldOperationMetadata FieldOperationMetadata}.
565
+ #
566
+ # To configure the default field settings for the database, use
567
+ # the special `Field` with resource name:
568
+ # `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*`.
569
+ #
570
+ # @overload update_field(request, options = nil)
571
+ # Pass arguments to `update_field` via a request object, either of type
572
+ # {::Google::Cloud::Firestore::Admin::V1::UpdateFieldRequest} or an equivalent Hash.
573
+ #
574
+ # @param request [::Google::Cloud::Firestore::Admin::V1::UpdateFieldRequest, ::Hash]
575
+ # A request object representing the call parameters. Required. To specify no
576
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
577
+ # @param options [::Gapic::CallOptions, ::Hash]
578
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
579
+ #
580
+ # @overload update_field(field: nil, update_mask: nil)
581
+ # Pass arguments to `update_field` via keyword arguments. Note that at
582
+ # least one keyword argument is required. To specify no parameters, or to keep all
583
+ # the default parameter values, pass an empty Hash as a request object (see above).
584
+ #
585
+ # @param field [::Google::Cloud::Firestore::Admin::V1::Field, ::Hash]
586
+ # Required. The field to be updated.
587
+ # @param update_mask [::Google::Protobuf::FieldMask, ::Hash]
588
+ # A mask, relative to the field. If specified, only configuration specified
589
+ # by this field_mask will be updated in the field.
590
+ # @yield [result, operation] Access the result along with the TransportOperation object
591
+ # @yieldparam result [::Gapic::Operation]
592
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
593
+ #
594
+ # @return [::Gapic::Operation]
595
+ #
596
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
597
+ def update_field request, options = nil
598
+ raise ::ArgumentError, "request must be provided" if request.nil?
599
+
600
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Firestore::Admin::V1::UpdateFieldRequest
601
+
602
+ # Converts hash and nil to an options object
603
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
604
+
605
+ # Customize the options with defaults
606
+ call_metadata = @config.rpcs.update_field.metadata.to_h
607
+
608
+ # Set x-goog-api-client and x-goog-user-project headers
609
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
610
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
611
+ gapic_version: ::Google::Cloud::Firestore::Admin::V1::VERSION,
612
+ transports_version_send: [:rest]
613
+
614
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
615
+
616
+ options.apply_defaults timeout: @config.rpcs.update_field.timeout,
617
+ metadata: call_metadata,
618
+ retry_policy: @config.rpcs.update_field.retry_policy
619
+
620
+ options.apply_defaults timeout: @config.timeout,
621
+ metadata: @config.metadata,
622
+ retry_policy: @config.retry_policy
623
+
624
+ @firestore_admin_stub.update_field request, options do |result, operation|
625
+ result = ::Gapic::Operation.new result, @operations_client, options: options
626
+ yield result, operation if block_given?
627
+ return result
628
+ end
629
+ rescue ::Gapic::Rest::Error => e
630
+ raise ::Google::Cloud::Error.from_error(e)
631
+ end
632
+
633
+ ##
634
+ # Lists the field configuration and metadata for this database.
635
+ #
636
+ # Currently, {::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Client#list_fields FirestoreAdmin.ListFields} only supports listing fields
637
+ # that have been explicitly overridden. To issue this query, call
638
+ # {::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Client#list_fields FirestoreAdmin.ListFields} with the filter set to
639
+ # `indexConfig.usesAncestorConfig:false` .
640
+ #
641
+ # @overload list_fields(request, options = nil)
642
+ # Pass arguments to `list_fields` via a request object, either of type
643
+ # {::Google::Cloud::Firestore::Admin::V1::ListFieldsRequest} or an equivalent Hash.
644
+ #
645
+ # @param request [::Google::Cloud::Firestore::Admin::V1::ListFieldsRequest, ::Hash]
646
+ # A request object representing the call parameters. Required. To specify no
647
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
648
+ # @param options [::Gapic::CallOptions, ::Hash]
649
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
650
+ #
651
+ # @overload list_fields(parent: nil, filter: nil, page_size: nil, page_token: nil)
652
+ # Pass arguments to `list_fields` via keyword arguments. Note that at
653
+ # least one keyword argument is required. To specify no parameters, or to keep all
654
+ # the default parameter values, pass an empty Hash as a request object (see above).
655
+ #
656
+ # @param parent [::String]
657
+ # Required. A parent name of the form
658
+ # `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
659
+ # @param filter [::String]
660
+ # The filter to apply to list results. Currently,
661
+ # {::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Client#list_fields FirestoreAdmin.ListFields} only supports listing fields
662
+ # that have been explicitly overridden. To issue this query, call
663
+ # {::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Client#list_fields FirestoreAdmin.ListFields} with a filter that includes
664
+ # `indexConfig.usesAncestorConfig:false` .
665
+ # @param page_size [::Integer]
666
+ # The number of results to return.
667
+ # @param page_token [::String]
668
+ # A page token, returned from a previous call to
669
+ # {::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Client#list_fields FirestoreAdmin.ListFields}, that may be used to get the next
670
+ # page of results.
671
+ # @yield [result, operation] Access the result along with the TransportOperation object
672
+ # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Firestore::Admin::V1::Field>]
673
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
674
+ #
675
+ # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Firestore::Admin::V1::Field>]
676
+ #
677
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
678
+ def list_fields request, options = nil
679
+ raise ::ArgumentError, "request must be provided" if request.nil?
680
+
681
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Firestore::Admin::V1::ListFieldsRequest
682
+
683
+ # Converts hash and nil to an options object
684
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
685
+
686
+ # Customize the options with defaults
687
+ call_metadata = @config.rpcs.list_fields.metadata.to_h
688
+
689
+ # Set x-goog-api-client and x-goog-user-project headers
690
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
691
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
692
+ gapic_version: ::Google::Cloud::Firestore::Admin::V1::VERSION,
693
+ transports_version_send: [:rest]
694
+
695
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
696
+
697
+ options.apply_defaults timeout: @config.rpcs.list_fields.timeout,
698
+ metadata: call_metadata,
699
+ retry_policy: @config.rpcs.list_fields.retry_policy
700
+
701
+ options.apply_defaults timeout: @config.timeout,
702
+ metadata: @config.metadata,
703
+ retry_policy: @config.retry_policy
704
+
705
+ @firestore_admin_stub.list_fields request, options do |result, operation|
706
+ result = ::Gapic::Rest::PagedEnumerable.new @firestore_admin_stub, :list_fields, "fields", request, result, options
707
+ yield result, operation if block_given?
708
+ return result
709
+ end
710
+ rescue ::Gapic::Rest::Error => e
711
+ raise ::Google::Cloud::Error.from_error(e)
712
+ end
713
+
714
+ ##
715
+ # Exports a copy of all or a subset of documents from Google Cloud Firestore
716
+ # to another storage system, such as Google Cloud Storage. Recent updates to
717
+ # documents may not be reflected in the export. The export occurs in the
718
+ # background and its progress can be monitored and managed via the
719
+ # Operation resource that is created. The output of an export may only be
720
+ # used once the associated operation is done. If an export operation is
721
+ # cancelled before completion it may leave partial data behind in Google
722
+ # Cloud Storage.
723
+ #
724
+ # For more details on export behavior and output format, refer to:
725
+ # https://cloud.google.com/firestore/docs/manage-data/export-import
726
+ #
727
+ # @overload export_documents(request, options = nil)
728
+ # Pass arguments to `export_documents` via a request object, either of type
729
+ # {::Google::Cloud::Firestore::Admin::V1::ExportDocumentsRequest} or an equivalent Hash.
730
+ #
731
+ # @param request [::Google::Cloud::Firestore::Admin::V1::ExportDocumentsRequest, ::Hash]
732
+ # A request object representing the call parameters. Required. To specify no
733
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
734
+ # @param options [::Gapic::CallOptions, ::Hash]
735
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
736
+ #
737
+ # @overload export_documents(name: nil, collection_ids: nil, output_uri_prefix: nil)
738
+ # Pass arguments to `export_documents` via keyword arguments. Note that at
739
+ # least one keyword argument is required. To specify no parameters, or to keep all
740
+ # the default parameter values, pass an empty Hash as a request object (see above).
741
+ #
742
+ # @param name [::String]
743
+ # Required. Database to export. Should be of the form:
744
+ # `projects/{project_id}/databases/{database_id}`.
745
+ # @param collection_ids [::Array<::String>]
746
+ # Which collection ids to export. Unspecified means all collections.
747
+ # @param output_uri_prefix [::String]
748
+ # The output URI. Currently only supports Google Cloud Storage URIs of the
749
+ # form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the name
750
+ # of the Google Cloud Storage bucket and `NAMESPACE_PATH` is an optional
751
+ # Google Cloud Storage namespace path. When
752
+ # choosing a name, be sure to consider Google Cloud Storage naming
753
+ # guidelines: https://cloud.google.com/storage/docs/naming.
754
+ # If the URI is a bucket (without a namespace path), a prefix will be
755
+ # generated based on the start time.
756
+ # @yield [result, operation] Access the result along with the TransportOperation object
757
+ # @yieldparam result [::Gapic::Operation]
758
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
759
+ #
760
+ # @return [::Gapic::Operation]
761
+ #
762
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
763
+ def export_documents request, options = nil
764
+ raise ::ArgumentError, "request must be provided" if request.nil?
765
+
766
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Firestore::Admin::V1::ExportDocumentsRequest
767
+
768
+ # Converts hash and nil to an options object
769
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
770
+
771
+ # Customize the options with defaults
772
+ call_metadata = @config.rpcs.export_documents.metadata.to_h
773
+
774
+ # Set x-goog-api-client and x-goog-user-project headers
775
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
776
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
777
+ gapic_version: ::Google::Cloud::Firestore::Admin::V1::VERSION,
778
+ transports_version_send: [:rest]
779
+
780
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
781
+
782
+ options.apply_defaults timeout: @config.rpcs.export_documents.timeout,
783
+ metadata: call_metadata,
784
+ retry_policy: @config.rpcs.export_documents.retry_policy
785
+
786
+ options.apply_defaults timeout: @config.timeout,
787
+ metadata: @config.metadata,
788
+ retry_policy: @config.retry_policy
789
+
790
+ @firestore_admin_stub.export_documents request, options do |result, operation|
791
+ result = ::Gapic::Operation.new result, @operations_client, options: options
792
+ yield result, operation if block_given?
793
+ return result
794
+ end
795
+ rescue ::Gapic::Rest::Error => e
796
+ raise ::Google::Cloud::Error.from_error(e)
797
+ end
798
+
799
+ ##
800
+ # Imports documents into Google Cloud Firestore. Existing documents with the
801
+ # same name are overwritten. The import occurs in the background and its
802
+ # progress can be monitored and managed via the Operation resource that is
803
+ # created. If an ImportDocuments operation is cancelled, it is possible
804
+ # that a subset of the data has already been imported to Cloud Firestore.
805
+ #
806
+ # @overload import_documents(request, options = nil)
807
+ # Pass arguments to `import_documents` via a request object, either of type
808
+ # {::Google::Cloud::Firestore::Admin::V1::ImportDocumentsRequest} or an equivalent Hash.
809
+ #
810
+ # @param request [::Google::Cloud::Firestore::Admin::V1::ImportDocumentsRequest, ::Hash]
811
+ # A request object representing the call parameters. Required. To specify no
812
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
813
+ # @param options [::Gapic::CallOptions, ::Hash]
814
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
815
+ #
816
+ # @overload import_documents(name: nil, collection_ids: nil, input_uri_prefix: nil)
817
+ # Pass arguments to `import_documents` via keyword arguments. Note that at
818
+ # least one keyword argument is required. To specify no parameters, or to keep all
819
+ # the default parameter values, pass an empty Hash as a request object (see above).
820
+ #
821
+ # @param name [::String]
822
+ # Required. Database to import into. Should be of the form:
823
+ # `projects/{project_id}/databases/{database_id}`.
824
+ # @param collection_ids [::Array<::String>]
825
+ # Which collection ids to import. Unspecified means all collections included
826
+ # in the import.
827
+ # @param input_uri_prefix [::String]
828
+ # Location of the exported files.
829
+ # This must match the output_uri_prefix of an ExportDocumentsResponse from
830
+ # an export that has completed successfully.
831
+ # See:
832
+ # {::Google::Cloud::Firestore::Admin::V1::ExportDocumentsResponse#output_uri_prefix google.firestore.admin.v1.ExportDocumentsResponse.output_uri_prefix}.
833
+ # @yield [result, operation] Access the result along with the TransportOperation object
834
+ # @yieldparam result [::Gapic::Operation]
835
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
836
+ #
837
+ # @return [::Gapic::Operation]
838
+ #
839
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
840
+ def import_documents request, options = nil
841
+ raise ::ArgumentError, "request must be provided" if request.nil?
842
+
843
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Firestore::Admin::V1::ImportDocumentsRequest
844
+
845
+ # Converts hash and nil to an options object
846
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
847
+
848
+ # Customize the options with defaults
849
+ call_metadata = @config.rpcs.import_documents.metadata.to_h
850
+
851
+ # Set x-goog-api-client and x-goog-user-project headers
852
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
853
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
854
+ gapic_version: ::Google::Cloud::Firestore::Admin::V1::VERSION,
855
+ transports_version_send: [:rest]
856
+
857
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
858
+
859
+ options.apply_defaults timeout: @config.rpcs.import_documents.timeout,
860
+ metadata: call_metadata,
861
+ retry_policy: @config.rpcs.import_documents.retry_policy
862
+
863
+ options.apply_defaults timeout: @config.timeout,
864
+ metadata: @config.metadata,
865
+ retry_policy: @config.retry_policy
866
+
867
+ @firestore_admin_stub.import_documents request, options do |result, operation|
868
+ result = ::Gapic::Operation.new result, @operations_client, options: options
869
+ yield result, operation if block_given?
870
+ return result
871
+ end
872
+ rescue ::Gapic::Rest::Error => e
873
+ raise ::Google::Cloud::Error.from_error(e)
874
+ end
875
+
876
+ ##
877
+ # Gets information about a database.
878
+ #
879
+ # @overload get_database(request, options = nil)
880
+ # Pass arguments to `get_database` via a request object, either of type
881
+ # {::Google::Cloud::Firestore::Admin::V1::GetDatabaseRequest} or an equivalent Hash.
882
+ #
883
+ # @param request [::Google::Cloud::Firestore::Admin::V1::GetDatabaseRequest, ::Hash]
884
+ # A request object representing the call parameters. Required. To specify no
885
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
886
+ # @param options [::Gapic::CallOptions, ::Hash]
887
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
888
+ #
889
+ # @overload get_database(name: nil)
890
+ # Pass arguments to `get_database` via keyword arguments. Note that at
891
+ # least one keyword argument is required. To specify no parameters, or to keep all
892
+ # the default parameter values, pass an empty Hash as a request object (see above).
893
+ #
894
+ # @param name [::String]
895
+ # Required. A name of the form
896
+ # `projects/{project_id}/databases/{database_id}`
897
+ # @yield [result, operation] Access the result along with the TransportOperation object
898
+ # @yieldparam result [::Google::Cloud::Firestore::Admin::V1::Database]
899
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
900
+ #
901
+ # @return [::Google::Cloud::Firestore::Admin::V1::Database]
902
+ #
903
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
904
+ def get_database request, options = nil
905
+ raise ::ArgumentError, "request must be provided" if request.nil?
906
+
907
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Firestore::Admin::V1::GetDatabaseRequest
908
+
909
+ # Converts hash and nil to an options object
910
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
911
+
912
+ # Customize the options with defaults
913
+ call_metadata = @config.rpcs.get_database.metadata.to_h
914
+
915
+ # Set x-goog-api-client and x-goog-user-project headers
916
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
917
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
918
+ gapic_version: ::Google::Cloud::Firestore::Admin::V1::VERSION,
919
+ transports_version_send: [:rest]
920
+
921
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
922
+
923
+ options.apply_defaults timeout: @config.rpcs.get_database.timeout,
924
+ metadata: call_metadata,
925
+ retry_policy: @config.rpcs.get_database.retry_policy
926
+
927
+ options.apply_defaults timeout: @config.timeout,
928
+ metadata: @config.metadata,
929
+ retry_policy: @config.retry_policy
930
+
931
+ @firestore_admin_stub.get_database request, options do |result, operation|
932
+ yield result, operation if block_given?
933
+ return result
934
+ end
935
+ rescue ::Gapic::Rest::Error => e
936
+ raise ::Google::Cloud::Error.from_error(e)
937
+ end
938
+
939
+ ##
940
+ # List all the databases in the project.
941
+ #
942
+ # @overload list_databases(request, options = nil)
943
+ # Pass arguments to `list_databases` via a request object, either of type
944
+ # {::Google::Cloud::Firestore::Admin::V1::ListDatabasesRequest} or an equivalent Hash.
945
+ #
946
+ # @param request [::Google::Cloud::Firestore::Admin::V1::ListDatabasesRequest, ::Hash]
947
+ # A request object representing the call parameters. Required. To specify no
948
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
949
+ # @param options [::Gapic::CallOptions, ::Hash]
950
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
951
+ #
952
+ # @overload list_databases(parent: nil)
953
+ # Pass arguments to `list_databases` via keyword arguments. Note that at
954
+ # least one keyword argument is required. To specify no parameters, or to keep all
955
+ # the default parameter values, pass an empty Hash as a request object (see above).
956
+ #
957
+ # @param parent [::String]
958
+ # Required. A parent name of the form
959
+ # `projects/{project_id}`
960
+ # @yield [result, operation] Access the result along with the TransportOperation object
961
+ # @yieldparam result [::Google::Cloud::Firestore::Admin::V1::ListDatabasesResponse]
962
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
963
+ #
964
+ # @return [::Google::Cloud::Firestore::Admin::V1::ListDatabasesResponse]
965
+ #
966
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
967
+ def list_databases request, options = nil
968
+ raise ::ArgumentError, "request must be provided" if request.nil?
969
+
970
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Firestore::Admin::V1::ListDatabasesRequest
971
+
972
+ # Converts hash and nil to an options object
973
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
974
+
975
+ # Customize the options with defaults
976
+ call_metadata = @config.rpcs.list_databases.metadata.to_h
977
+
978
+ # Set x-goog-api-client and x-goog-user-project headers
979
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
980
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
981
+ gapic_version: ::Google::Cloud::Firestore::Admin::V1::VERSION,
982
+ transports_version_send: [:rest]
983
+
984
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
985
+
986
+ options.apply_defaults timeout: @config.rpcs.list_databases.timeout,
987
+ metadata: call_metadata,
988
+ retry_policy: @config.rpcs.list_databases.retry_policy
989
+
990
+ options.apply_defaults timeout: @config.timeout,
991
+ metadata: @config.metadata,
992
+ retry_policy: @config.retry_policy
993
+
994
+ @firestore_admin_stub.list_databases request, options do |result, operation|
995
+ yield result, operation if block_given?
996
+ return result
997
+ end
998
+ rescue ::Gapic::Rest::Error => e
999
+ raise ::Google::Cloud::Error.from_error(e)
1000
+ end
1001
+
1002
+ ##
1003
+ # Updates a database.
1004
+ #
1005
+ # @overload update_database(request, options = nil)
1006
+ # Pass arguments to `update_database` via a request object, either of type
1007
+ # {::Google::Cloud::Firestore::Admin::V1::UpdateDatabaseRequest} or an equivalent Hash.
1008
+ #
1009
+ # @param request [::Google::Cloud::Firestore::Admin::V1::UpdateDatabaseRequest, ::Hash]
1010
+ # A request object representing the call parameters. Required. To specify no
1011
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1012
+ # @param options [::Gapic::CallOptions, ::Hash]
1013
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
1014
+ #
1015
+ # @overload update_database(database: nil, update_mask: nil)
1016
+ # Pass arguments to `update_database` via keyword arguments. Note that at
1017
+ # least one keyword argument is required. To specify no parameters, or to keep all
1018
+ # the default parameter values, pass an empty Hash as a request object (see above).
1019
+ #
1020
+ # @param database [::Google::Cloud::Firestore::Admin::V1::Database, ::Hash]
1021
+ # Required. The database to update.
1022
+ # @param update_mask [::Google::Protobuf::FieldMask, ::Hash]
1023
+ # The list of fields to be updated.
1024
+ # @yield [result, operation] Access the result along with the TransportOperation object
1025
+ # @yieldparam result [::Gapic::Operation]
1026
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
1027
+ #
1028
+ # @return [::Gapic::Operation]
1029
+ #
1030
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
1031
+ def update_database request, options = nil
1032
+ raise ::ArgumentError, "request must be provided" if request.nil?
1033
+
1034
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Firestore::Admin::V1::UpdateDatabaseRequest
1035
+
1036
+ # Converts hash and nil to an options object
1037
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1038
+
1039
+ # Customize the options with defaults
1040
+ call_metadata = @config.rpcs.update_database.metadata.to_h
1041
+
1042
+ # Set x-goog-api-client and x-goog-user-project headers
1043
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
1044
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1045
+ gapic_version: ::Google::Cloud::Firestore::Admin::V1::VERSION,
1046
+ transports_version_send: [:rest]
1047
+
1048
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1049
+
1050
+ options.apply_defaults timeout: @config.rpcs.update_database.timeout,
1051
+ metadata: call_metadata,
1052
+ retry_policy: @config.rpcs.update_database.retry_policy
1053
+
1054
+ options.apply_defaults timeout: @config.timeout,
1055
+ metadata: @config.metadata,
1056
+ retry_policy: @config.retry_policy
1057
+
1058
+ @firestore_admin_stub.update_database request, options do |result, operation|
1059
+ result = ::Gapic::Operation.new result, @operations_client, options: options
1060
+ yield result, operation if block_given?
1061
+ return result
1062
+ end
1063
+ rescue ::Gapic::Rest::Error => e
1064
+ raise ::Google::Cloud::Error.from_error(e)
1065
+ end
1066
+
1067
+ ##
1068
+ # Configuration class for the FirestoreAdmin REST API.
1069
+ #
1070
+ # This class represents the configuration for FirestoreAdmin REST,
1071
+ # providing control over timeouts, retry behavior, logging, transport
1072
+ # parameters, and other low-level controls. Certain parameters can also be
1073
+ # applied individually to specific RPCs. See
1074
+ # {::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Client::Configuration::Rpcs}
1075
+ # for a list of RPCs that can be configured independently.
1076
+ #
1077
+ # Configuration can be applied globally to all clients, or to a single client
1078
+ # on construction.
1079
+ #
1080
+ # @example
1081
+ #
1082
+ # # Modify the global config, setting the timeout for
1083
+ # # create_index to 20 seconds,
1084
+ # # and all remaining timeouts to 10 seconds.
1085
+ # ::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Client.configure do |config|
1086
+ # config.timeout = 10.0
1087
+ # config.rpcs.create_index.timeout = 20.0
1088
+ # end
1089
+ #
1090
+ # # Apply the above configuration only to a new client.
1091
+ # client = ::Google::Cloud::Firestore::Admin::V1::FirestoreAdmin::Rest::Client.new do |config|
1092
+ # config.timeout = 10.0
1093
+ # config.rpcs.create_index.timeout = 20.0
1094
+ # end
1095
+ #
1096
+ # @!attribute [rw] endpoint
1097
+ # The hostname or hostname:port of the service endpoint.
1098
+ # Defaults to `"firestore.googleapis.com"`.
1099
+ # @return [::String]
1100
+ # @!attribute [rw] credentials
1101
+ # Credentials to send with calls. You may provide any of the following types:
1102
+ # * (`String`) The path to a service account key file in JSON format
1103
+ # * (`Hash`) A service account key as a Hash
1104
+ # * (`Google::Auth::Credentials`) A googleauth credentials object
1105
+ # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
1106
+ # * (`Signet::OAuth2::Client`) A signet oauth2 client object
1107
+ # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
1108
+ # * (`nil`) indicating no credentials
1109
+ # @return [::Object]
1110
+ # @!attribute [rw] scope
1111
+ # The OAuth scopes
1112
+ # @return [::Array<::String>]
1113
+ # @!attribute [rw] lib_name
1114
+ # The library name as recorded in instrumentation and logging
1115
+ # @return [::String]
1116
+ # @!attribute [rw] lib_version
1117
+ # The library version as recorded in instrumentation and logging
1118
+ # @return [::String]
1119
+ # @!attribute [rw] timeout
1120
+ # The call timeout in seconds.
1121
+ # @return [::Numeric]
1122
+ # @!attribute [rw] metadata
1123
+ # Additional headers to be sent with the call.
1124
+ # @return [::Hash{::Symbol=>::String}]
1125
+ # @!attribute [rw] retry_policy
1126
+ # The retry policy. The value is a hash with the following keys:
1127
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
1128
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
1129
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
1130
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
1131
+ # trigger a retry.
1132
+ # @return [::Hash]
1133
+ # @!attribute [rw] quota_project
1134
+ # A separate project against which to charge quota.
1135
+ # @return [::String]
1136
+ #
1137
+ class Configuration
1138
+ extend ::Gapic::Config
1139
+
1140
+ config_attr :endpoint, "firestore.googleapis.com", ::String
1141
+ config_attr :credentials, nil do |value|
1142
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
1143
+ allowed.any? { |klass| klass === value }
1144
+ end
1145
+ config_attr :scope, nil, ::String, ::Array, nil
1146
+ config_attr :lib_name, nil, ::String, nil
1147
+ config_attr :lib_version, nil, ::String, nil
1148
+ config_attr :timeout, nil, ::Numeric, nil
1149
+ config_attr :metadata, nil, ::Hash, nil
1150
+ config_attr :retry_policy, nil, ::Hash, ::Proc, nil
1151
+ config_attr :quota_project, nil, ::String, nil
1152
+
1153
+ # @private
1154
+ def initialize parent_config = nil
1155
+ @parent_config = parent_config unless parent_config.nil?
1156
+
1157
+ yield self if block_given?
1158
+ end
1159
+
1160
+ ##
1161
+ # Configurations for individual RPCs
1162
+ # @return [Rpcs]
1163
+ #
1164
+ def rpcs
1165
+ @rpcs ||= begin
1166
+ parent_rpcs = nil
1167
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
1168
+ Rpcs.new parent_rpcs
1169
+ end
1170
+ end
1171
+
1172
+ ##
1173
+ # Configuration RPC class for the FirestoreAdmin API.
1174
+ #
1175
+ # Includes fields providing the configuration for each RPC in this service.
1176
+ # Each configuration object is of type `Gapic::Config::Method` and includes
1177
+ # the following configuration fields:
1178
+ #
1179
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
1180
+ # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers
1181
+ # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
1182
+ # include the following keys:
1183
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
1184
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
1185
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
1186
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
1187
+ # trigger a retry.
1188
+ #
1189
+ class Rpcs
1190
+ ##
1191
+ # RPC-specific configuration for `create_index`
1192
+ # @return [::Gapic::Config::Method]
1193
+ #
1194
+ attr_reader :create_index
1195
+ ##
1196
+ # RPC-specific configuration for `list_indexes`
1197
+ # @return [::Gapic::Config::Method]
1198
+ #
1199
+ attr_reader :list_indexes
1200
+ ##
1201
+ # RPC-specific configuration for `get_index`
1202
+ # @return [::Gapic::Config::Method]
1203
+ #
1204
+ attr_reader :get_index
1205
+ ##
1206
+ # RPC-specific configuration for `delete_index`
1207
+ # @return [::Gapic::Config::Method]
1208
+ #
1209
+ attr_reader :delete_index
1210
+ ##
1211
+ # RPC-specific configuration for `get_field`
1212
+ # @return [::Gapic::Config::Method]
1213
+ #
1214
+ attr_reader :get_field
1215
+ ##
1216
+ # RPC-specific configuration for `update_field`
1217
+ # @return [::Gapic::Config::Method]
1218
+ #
1219
+ attr_reader :update_field
1220
+ ##
1221
+ # RPC-specific configuration for `list_fields`
1222
+ # @return [::Gapic::Config::Method]
1223
+ #
1224
+ attr_reader :list_fields
1225
+ ##
1226
+ # RPC-specific configuration for `export_documents`
1227
+ # @return [::Gapic::Config::Method]
1228
+ #
1229
+ attr_reader :export_documents
1230
+ ##
1231
+ # RPC-specific configuration for `import_documents`
1232
+ # @return [::Gapic::Config::Method]
1233
+ #
1234
+ attr_reader :import_documents
1235
+ ##
1236
+ # RPC-specific configuration for `get_database`
1237
+ # @return [::Gapic::Config::Method]
1238
+ #
1239
+ attr_reader :get_database
1240
+ ##
1241
+ # RPC-specific configuration for `list_databases`
1242
+ # @return [::Gapic::Config::Method]
1243
+ #
1244
+ attr_reader :list_databases
1245
+ ##
1246
+ # RPC-specific configuration for `update_database`
1247
+ # @return [::Gapic::Config::Method]
1248
+ #
1249
+ attr_reader :update_database
1250
+
1251
+ # @private
1252
+ def initialize parent_rpcs = nil
1253
+ create_index_config = parent_rpcs.create_index if parent_rpcs.respond_to? :create_index
1254
+ @create_index = ::Gapic::Config::Method.new create_index_config
1255
+ list_indexes_config = parent_rpcs.list_indexes if parent_rpcs.respond_to? :list_indexes
1256
+ @list_indexes = ::Gapic::Config::Method.new list_indexes_config
1257
+ get_index_config = parent_rpcs.get_index if parent_rpcs.respond_to? :get_index
1258
+ @get_index = ::Gapic::Config::Method.new get_index_config
1259
+ delete_index_config = parent_rpcs.delete_index if parent_rpcs.respond_to? :delete_index
1260
+ @delete_index = ::Gapic::Config::Method.new delete_index_config
1261
+ get_field_config = parent_rpcs.get_field if parent_rpcs.respond_to? :get_field
1262
+ @get_field = ::Gapic::Config::Method.new get_field_config
1263
+ update_field_config = parent_rpcs.update_field if parent_rpcs.respond_to? :update_field
1264
+ @update_field = ::Gapic::Config::Method.new update_field_config
1265
+ list_fields_config = parent_rpcs.list_fields if parent_rpcs.respond_to? :list_fields
1266
+ @list_fields = ::Gapic::Config::Method.new list_fields_config
1267
+ export_documents_config = parent_rpcs.export_documents if parent_rpcs.respond_to? :export_documents
1268
+ @export_documents = ::Gapic::Config::Method.new export_documents_config
1269
+ import_documents_config = parent_rpcs.import_documents if parent_rpcs.respond_to? :import_documents
1270
+ @import_documents = ::Gapic::Config::Method.new import_documents_config
1271
+ get_database_config = parent_rpcs.get_database if parent_rpcs.respond_to? :get_database
1272
+ @get_database = ::Gapic::Config::Method.new get_database_config
1273
+ list_databases_config = parent_rpcs.list_databases if parent_rpcs.respond_to? :list_databases
1274
+ @list_databases = ::Gapic::Config::Method.new list_databases_config
1275
+ update_database_config = parent_rpcs.update_database if parent_rpcs.respond_to? :update_database
1276
+ @update_database = ::Gapic::Config::Method.new update_database_config
1277
+
1278
+ yield self if block_given?
1279
+ end
1280
+ end
1281
+ end
1282
+ end
1283
+ end
1284
+ end
1285
+ end
1286
+ end
1287
+ end
1288
+ end
1289
+ end