google-cloud-spanner-admin-database-v1 0.10.0 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2121 @@
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/spanner/admin/database/v1/spanner_database_admin_pb"
21
+ require "google/cloud/spanner/admin/database/v1/database_admin/rest/service_stub"
22
+
23
+ module Google
24
+ module Cloud
25
+ module Spanner
26
+ module Admin
27
+ module Database
28
+ module V1
29
+ module DatabaseAdmin
30
+ module Rest
31
+ ##
32
+ # REST client for the DatabaseAdmin service.
33
+ #
34
+ # Cloud Spanner Database Admin API
35
+ #
36
+ # The Cloud Spanner Database Admin API can be used to:
37
+ # * create, drop, and list databases
38
+ # * update the schema of pre-existing databases
39
+ # * create, delete and list backups for a database
40
+ # * restore a database from an existing backup
41
+ #
42
+ class Client
43
+ include Paths
44
+
45
+ # @private
46
+ attr_reader :database_admin_stub
47
+
48
+ ##
49
+ # Configure the DatabaseAdmin Client class.
50
+ #
51
+ # See {::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Rest::Client::Configuration}
52
+ # for a description of the configuration fields.
53
+ #
54
+ # @example
55
+ #
56
+ # # Modify the configuration for all DatabaseAdmin clients
57
+ # ::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Rest::Client.configure do |config|
58
+ # config.timeout = 10.0
59
+ # end
60
+ #
61
+ # @yield [config] Configure the Client client.
62
+ # @yieldparam config [Client::Configuration]
63
+ #
64
+ # @return [Client::Configuration]
65
+ #
66
+ def self.configure
67
+ @configure ||= begin
68
+ namespace = ["Google", "Cloud", "Spanner", "Admin", "Database", "V1"]
69
+ parent_config = while namespace.any?
70
+ parent_name = namespace.join "::"
71
+ parent_const = const_get parent_name
72
+ break parent_const.configure if parent_const.respond_to? :configure
73
+ namespace.pop
74
+ end
75
+ default_config = Client::Configuration.new parent_config
76
+
77
+ default_config.rpcs.list_databases.timeout = 3600.0
78
+ default_config.rpcs.list_databases.retry_policy = {
79
+ initial_delay: 1.0, max_delay: 32.0, multiplier: 1.3, retry_codes: [14, 4]
80
+ }
81
+
82
+ default_config.rpcs.create_database.timeout = 3600.0
83
+
84
+ default_config.rpcs.get_database.timeout = 3600.0
85
+ default_config.rpcs.get_database.retry_policy = {
86
+ initial_delay: 1.0, max_delay: 32.0, multiplier: 1.3, retry_codes: [14, 4]
87
+ }
88
+
89
+ default_config.rpcs.update_database_ddl.timeout = 3600.0
90
+ default_config.rpcs.update_database_ddl.retry_policy = {
91
+ initial_delay: 1.0, max_delay: 32.0, multiplier: 1.3, retry_codes: [14, 4]
92
+ }
93
+
94
+ default_config.rpcs.drop_database.timeout = 3600.0
95
+ default_config.rpcs.drop_database.retry_policy = {
96
+ initial_delay: 1.0, max_delay: 32.0, multiplier: 1.3, retry_codes: [14, 4]
97
+ }
98
+
99
+ default_config.rpcs.get_database_ddl.timeout = 3600.0
100
+ default_config.rpcs.get_database_ddl.retry_policy = {
101
+ initial_delay: 1.0, max_delay: 32.0, multiplier: 1.3, retry_codes: [14, 4]
102
+ }
103
+
104
+ default_config.rpcs.set_iam_policy.timeout = 30.0
105
+
106
+ default_config.rpcs.get_iam_policy.timeout = 30.0
107
+ default_config.rpcs.get_iam_policy.retry_policy = {
108
+ initial_delay: 1.0, max_delay: 32.0, multiplier: 1.3, retry_codes: [14, 4]
109
+ }
110
+
111
+ default_config.rpcs.test_iam_permissions.timeout = 30.0
112
+
113
+ default_config.rpcs.create_backup.timeout = 3600.0
114
+
115
+ default_config.rpcs.copy_backup.timeout = 3600.0
116
+
117
+ default_config.rpcs.get_backup.timeout = 3600.0
118
+ default_config.rpcs.get_backup.retry_policy = {
119
+ initial_delay: 1.0, max_delay: 32.0, multiplier: 1.3, retry_codes: [14, 4]
120
+ }
121
+
122
+ default_config.rpcs.update_backup.timeout = 3600.0
123
+ default_config.rpcs.update_backup.retry_policy = {
124
+ initial_delay: 1.0, max_delay: 32.0, multiplier: 1.3, retry_codes: [14, 4]
125
+ }
126
+
127
+ default_config.rpcs.delete_backup.timeout = 3600.0
128
+ default_config.rpcs.delete_backup.retry_policy = {
129
+ initial_delay: 1.0, max_delay: 32.0, multiplier: 1.3, retry_codes: [14, 4]
130
+ }
131
+
132
+ default_config.rpcs.list_backups.timeout = 3600.0
133
+ default_config.rpcs.list_backups.retry_policy = {
134
+ initial_delay: 1.0, max_delay: 32.0, multiplier: 1.3, retry_codes: [14, 4]
135
+ }
136
+
137
+ default_config.rpcs.restore_database.timeout = 3600.0
138
+
139
+ default_config.rpcs.list_database_operations.timeout = 3600.0
140
+ default_config.rpcs.list_database_operations.retry_policy = {
141
+ initial_delay: 1.0, max_delay: 32.0, multiplier: 1.3, retry_codes: [14, 4]
142
+ }
143
+
144
+ default_config.rpcs.list_backup_operations.timeout = 3600.0
145
+ default_config.rpcs.list_backup_operations.retry_policy = {
146
+ initial_delay: 1.0, max_delay: 32.0, multiplier: 1.3, retry_codes: [14, 4]
147
+ }
148
+
149
+ default_config.rpcs.list_database_roles.timeout = 3600.0
150
+ default_config.rpcs.list_database_roles.retry_policy = {
151
+ initial_delay: 1.0, max_delay: 32.0, multiplier: 1.3, retry_codes: [14, 4]
152
+ }
153
+
154
+ default_config
155
+ end
156
+ yield @configure if block_given?
157
+ @configure
158
+ end
159
+
160
+ ##
161
+ # Configure the DatabaseAdmin Client instance.
162
+ #
163
+ # The configuration is set to the derived mode, meaning that values can be changed,
164
+ # but structural changes (adding new fields, etc.) are not allowed. Structural changes
165
+ # should be made on {Client.configure}.
166
+ #
167
+ # See {::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Rest::Client::Configuration}
168
+ # for a description of the configuration fields.
169
+ #
170
+ # @yield [config] Configure the Client client.
171
+ # @yieldparam config [Client::Configuration]
172
+ #
173
+ # @return [Client::Configuration]
174
+ #
175
+ def configure
176
+ yield @config if block_given?
177
+ @config
178
+ end
179
+
180
+ ##
181
+ # Create a new DatabaseAdmin REST client object.
182
+ #
183
+ # @example
184
+ #
185
+ # # Create a client using the default configuration
186
+ # client = ::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Rest::Client.new
187
+ #
188
+ # # Create a client using a custom configuration
189
+ # client = ::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Rest::Client.new do |config|
190
+ # config.timeout = 10.0
191
+ # end
192
+ #
193
+ # @yield [config] Configure the DatabaseAdmin client.
194
+ # @yieldparam config [Client::Configuration]
195
+ #
196
+ def initialize
197
+ # Create the configuration object
198
+ @config = Configuration.new Client.configure
199
+
200
+ # Yield the configuration if needed
201
+ yield @config if block_given?
202
+
203
+ # Create credentials
204
+ credentials = @config.credentials
205
+ # Use self-signed JWT if the endpoint is unchanged from default,
206
+ # but only if the default endpoint does not have a region prefix.
207
+ enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint &&
208
+ !@config.endpoint.split(".").first.include?("-")
209
+ credentials ||= Credentials.default scope: @config.scope,
210
+ enable_self_signed_jwt: enable_self_signed_jwt
211
+ if credentials.is_a?(::String) || credentials.is_a?(::Hash)
212
+ credentials = Credentials.new credentials, scope: @config.scope
213
+ end
214
+
215
+ @quota_project_id = @config.quota_project
216
+ @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
217
+
218
+ @operations_client = ::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Rest::Operations.new do |config|
219
+ config.credentials = credentials
220
+ config.quota_project = @quota_project_id
221
+ config.endpoint = @config.endpoint
222
+ end
223
+
224
+ @database_admin_stub = ::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Rest::ServiceStub.new endpoint: @config.endpoint, credentials: credentials
225
+ end
226
+
227
+ ##
228
+ # Get the associated client for long-running operations.
229
+ #
230
+ # @return [::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Rest::Operations]
231
+ #
232
+ attr_reader :operations_client
233
+
234
+ # Service calls
235
+
236
+ ##
237
+ # Lists Cloud Spanner databases.
238
+ #
239
+ # @overload list_databases(request, options = nil)
240
+ # Pass arguments to `list_databases` via a request object, either of type
241
+ # {::Google::Cloud::Spanner::Admin::Database::V1::ListDatabasesRequest} or an equivalent Hash.
242
+ #
243
+ # @param request [::Google::Cloud::Spanner::Admin::Database::V1::ListDatabasesRequest, ::Hash]
244
+ # A request object representing the call parameters. Required. To specify no
245
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
246
+ # @param options [::Gapic::CallOptions, ::Hash]
247
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
248
+ #
249
+ # @overload list_databases(parent: nil, page_size: nil, page_token: nil)
250
+ # Pass arguments to `list_databases` via keyword arguments. Note that at
251
+ # least one keyword argument is required. To specify no parameters, or to keep all
252
+ # the default parameter values, pass an empty Hash as a request object (see above).
253
+ #
254
+ # @param parent [::String]
255
+ # Required. The instance whose databases should be listed.
256
+ # Values are of the form `projects/<project>/instances/<instance>`.
257
+ # @param page_size [::Integer]
258
+ # Number of databases to be returned in the response. If 0 or less,
259
+ # defaults to the server's maximum allowed page size.
260
+ # @param page_token [::String]
261
+ # If non-empty, `page_token` should contain a
262
+ # {::Google::Cloud::Spanner::Admin::Database::V1::ListDatabasesResponse#next_page_token next_page_token} from a
263
+ # previous {::Google::Cloud::Spanner::Admin::Database::V1::ListDatabasesResponse ListDatabasesResponse}.
264
+ # @yield [result, operation] Access the result along with the TransportOperation object
265
+ # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Spanner::Admin::Database::V1::Database>]
266
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
267
+ #
268
+ # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Spanner::Admin::Database::V1::Database>]
269
+ #
270
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
271
+ def list_databases request, options = nil
272
+ raise ::ArgumentError, "request must be provided" if request.nil?
273
+
274
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Spanner::Admin::Database::V1::ListDatabasesRequest
275
+
276
+ # Converts hash and nil to an options object
277
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
278
+
279
+ # Customize the options with defaults
280
+ call_metadata = @config.rpcs.list_databases.metadata.to_h
281
+
282
+ # Set x-goog-api-client and x-goog-user-project headers
283
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
284
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
285
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
286
+ transports_version_send: [:rest]
287
+
288
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
289
+
290
+ options.apply_defaults timeout: @config.rpcs.list_databases.timeout,
291
+ metadata: call_metadata,
292
+ retry_policy: @config.rpcs.list_databases.retry_policy
293
+
294
+ options.apply_defaults timeout: @config.timeout,
295
+ metadata: @config.metadata,
296
+ retry_policy: @config.retry_policy
297
+
298
+ @database_admin_stub.list_databases request, options do |result, operation|
299
+ result = ::Gapic::Rest::PagedEnumerable.new @database_admin_stub, :list_databases, "databases", request, result, options
300
+ yield result, operation if block_given?
301
+ return result
302
+ end
303
+ rescue ::Gapic::Rest::Error => e
304
+ raise ::Google::Cloud::Error.from_error(e)
305
+ end
306
+
307
+ ##
308
+ # Creates a new Cloud Spanner database and starts to prepare it for serving.
309
+ # The returned {::Google::Longrunning::Operation long-running operation} will
310
+ # have a name of the format `<database_name>/operations/<operation_id>` and
311
+ # can be used to track preparation of the database. The
312
+ # {::Google::Longrunning::Operation#metadata metadata} field type is
313
+ # {::Google::Cloud::Spanner::Admin::Database::V1::CreateDatabaseMetadata CreateDatabaseMetadata}. The
314
+ # {::Google::Longrunning::Operation#response response} field type is
315
+ # {::Google::Cloud::Spanner::Admin::Database::V1::Database Database}, if successful.
316
+ #
317
+ # @overload create_database(request, options = nil)
318
+ # Pass arguments to `create_database` via a request object, either of type
319
+ # {::Google::Cloud::Spanner::Admin::Database::V1::CreateDatabaseRequest} or an equivalent Hash.
320
+ #
321
+ # @param request [::Google::Cloud::Spanner::Admin::Database::V1::CreateDatabaseRequest, ::Hash]
322
+ # A request object representing the call parameters. Required. To specify no
323
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
324
+ # @param options [::Gapic::CallOptions, ::Hash]
325
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
326
+ #
327
+ # @overload create_database(parent: nil, create_statement: nil, extra_statements: nil, encryption_config: nil, database_dialect: nil)
328
+ # Pass arguments to `create_database` via keyword arguments. Note that at
329
+ # least one keyword argument is required. To specify no parameters, or to keep all
330
+ # the default parameter values, pass an empty Hash as a request object (see above).
331
+ #
332
+ # @param parent [::String]
333
+ # Required. The name of the instance that will serve the new database.
334
+ # Values are of the form `projects/<project>/instances/<instance>`.
335
+ # @param create_statement [::String]
336
+ # Required. A `CREATE DATABASE` statement, which specifies the ID of the
337
+ # new database. The database ID must conform to the regular expression
338
+ # `[a-z][a-z0-9_\-]*[a-z0-9]` and be between 2 and 30 characters in length.
339
+ # If the database ID is a reserved word or if it contains a hyphen, the
340
+ # database ID must be enclosed in backticks (`` ` ``).
341
+ # @param extra_statements [::Array<::String>]
342
+ # Optional. A list of DDL statements to run inside the newly created
343
+ # database. Statements can create tables, indexes, etc. These
344
+ # statements execute atomically with the creation of the database:
345
+ # if there is an error in any statement, the database is not created.
346
+ # @param encryption_config [::Google::Cloud::Spanner::Admin::Database::V1::EncryptionConfig, ::Hash]
347
+ # Optional. The encryption configuration for the database. If this field is not
348
+ # specified, Cloud Spanner will encrypt/decrypt all data at rest using
349
+ # Google default encryption.
350
+ # @param database_dialect [::Google::Cloud::Spanner::Admin::Database::V1::DatabaseDialect]
351
+ # Optional. The dialect of the Cloud Spanner Database.
352
+ # @yield [result, operation] Access the result along with the TransportOperation object
353
+ # @yieldparam result [::Gapic::Operation]
354
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
355
+ #
356
+ # @return [::Gapic::Operation]
357
+ #
358
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
359
+ def create_database request, options = nil
360
+ raise ::ArgumentError, "request must be provided" if request.nil?
361
+
362
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Spanner::Admin::Database::V1::CreateDatabaseRequest
363
+
364
+ # Converts hash and nil to an options object
365
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
366
+
367
+ # Customize the options with defaults
368
+ call_metadata = @config.rpcs.create_database.metadata.to_h
369
+
370
+ # Set x-goog-api-client and x-goog-user-project headers
371
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
372
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
373
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
374
+ transports_version_send: [:rest]
375
+
376
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
377
+
378
+ options.apply_defaults timeout: @config.rpcs.create_database.timeout,
379
+ metadata: call_metadata,
380
+ retry_policy: @config.rpcs.create_database.retry_policy
381
+
382
+ options.apply_defaults timeout: @config.timeout,
383
+ metadata: @config.metadata,
384
+ retry_policy: @config.retry_policy
385
+
386
+ @database_admin_stub.create_database request, options do |result, operation|
387
+ result = ::Gapic::Operation.new result, @operations_client, options: options
388
+ yield result, operation if block_given?
389
+ return result
390
+ end
391
+ rescue ::Gapic::Rest::Error => e
392
+ raise ::Google::Cloud::Error.from_error(e)
393
+ end
394
+
395
+ ##
396
+ # Gets the state of a Cloud Spanner database.
397
+ #
398
+ # @overload get_database(request, options = nil)
399
+ # Pass arguments to `get_database` via a request object, either of type
400
+ # {::Google::Cloud::Spanner::Admin::Database::V1::GetDatabaseRequest} or an equivalent Hash.
401
+ #
402
+ # @param request [::Google::Cloud::Spanner::Admin::Database::V1::GetDatabaseRequest, ::Hash]
403
+ # A request object representing the call parameters. Required. To specify no
404
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
405
+ # @param options [::Gapic::CallOptions, ::Hash]
406
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
407
+ #
408
+ # @overload get_database(name: nil)
409
+ # Pass arguments to `get_database` via keyword arguments. Note that at
410
+ # least one keyword argument is required. To specify no parameters, or to keep all
411
+ # the default parameter values, pass an empty Hash as a request object (see above).
412
+ #
413
+ # @param name [::String]
414
+ # Required. The name of the requested database. Values are of the form
415
+ # `projects/<project>/instances/<instance>/databases/<database>`.
416
+ # @yield [result, operation] Access the result along with the TransportOperation object
417
+ # @yieldparam result [::Google::Cloud::Spanner::Admin::Database::V1::Database]
418
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
419
+ #
420
+ # @return [::Google::Cloud::Spanner::Admin::Database::V1::Database]
421
+ #
422
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
423
+ def get_database request, options = nil
424
+ raise ::ArgumentError, "request must be provided" if request.nil?
425
+
426
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Spanner::Admin::Database::V1::GetDatabaseRequest
427
+
428
+ # Converts hash and nil to an options object
429
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
430
+
431
+ # Customize the options with defaults
432
+ call_metadata = @config.rpcs.get_database.metadata.to_h
433
+
434
+ # Set x-goog-api-client and x-goog-user-project headers
435
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
436
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
437
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
438
+ transports_version_send: [:rest]
439
+
440
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
441
+
442
+ options.apply_defaults timeout: @config.rpcs.get_database.timeout,
443
+ metadata: call_metadata,
444
+ retry_policy: @config.rpcs.get_database.retry_policy
445
+
446
+ options.apply_defaults timeout: @config.timeout,
447
+ metadata: @config.metadata,
448
+ retry_policy: @config.retry_policy
449
+
450
+ @database_admin_stub.get_database request, options do |result, operation|
451
+ yield result, operation if block_given?
452
+ return result
453
+ end
454
+ rescue ::Gapic::Rest::Error => e
455
+ raise ::Google::Cloud::Error.from_error(e)
456
+ end
457
+
458
+ ##
459
+ # Updates the schema of a Cloud Spanner database by
460
+ # creating/altering/dropping tables, columns, indexes, etc. The returned
461
+ # {::Google::Longrunning::Operation long-running operation} will have a name of
462
+ # the format `<database_name>/operations/<operation_id>` and can be used to
463
+ # track execution of the schema change(s). The
464
+ # {::Google::Longrunning::Operation#metadata metadata} field type is
465
+ # {::Google::Cloud::Spanner::Admin::Database::V1::UpdateDatabaseDdlMetadata UpdateDatabaseDdlMetadata}. The operation has no response.
466
+ #
467
+ # @overload update_database_ddl(request, options = nil)
468
+ # Pass arguments to `update_database_ddl` via a request object, either of type
469
+ # {::Google::Cloud::Spanner::Admin::Database::V1::UpdateDatabaseDdlRequest} or an equivalent Hash.
470
+ #
471
+ # @param request [::Google::Cloud::Spanner::Admin::Database::V1::UpdateDatabaseDdlRequest, ::Hash]
472
+ # A request object representing the call parameters. Required. To specify no
473
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
474
+ # @param options [::Gapic::CallOptions, ::Hash]
475
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
476
+ #
477
+ # @overload update_database_ddl(database: nil, statements: nil, operation_id: nil)
478
+ # Pass arguments to `update_database_ddl` via keyword arguments. Note that at
479
+ # least one keyword argument is required. To specify no parameters, or to keep all
480
+ # the default parameter values, pass an empty Hash as a request object (see above).
481
+ #
482
+ # @param database [::String]
483
+ # Required. The database to update.
484
+ # @param statements [::Array<::String>]
485
+ # Required. DDL statements to be applied to the database.
486
+ # @param operation_id [::String]
487
+ # If empty, the new update request is assigned an
488
+ # automatically-generated operation ID. Otherwise, `operation_id`
489
+ # is used to construct the name of the resulting
490
+ # {::Google::Longrunning::Operation Operation}.
491
+ #
492
+ # Specifying an explicit operation ID simplifies determining
493
+ # whether the statements were executed in the event that the
494
+ # {::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Rest::Client#update_database_ddl UpdateDatabaseDdl} call is replayed,
495
+ # or the return value is otherwise lost: the {::Google::Cloud::Spanner::Admin::Database::V1::UpdateDatabaseDdlRequest#database database} and
496
+ # `operation_id` fields can be combined to form the
497
+ # {::Google::Longrunning::Operation#name name} of the resulting
498
+ # {::Google::Longrunning::Operation longrunning.Operation}: `<database>/operations/<operation_id>`.
499
+ #
500
+ # `operation_id` should be unique within the database, and must be
501
+ # a valid identifier: `[a-z][a-z0-9_]*`. Note that
502
+ # automatically-generated operation IDs always begin with an
503
+ # underscore. If the named operation already exists,
504
+ # {::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Rest::Client#update_database_ddl UpdateDatabaseDdl} returns
505
+ # `ALREADY_EXISTS`.
506
+ # @yield [result, operation] Access the result along with the TransportOperation object
507
+ # @yieldparam result [::Gapic::Operation]
508
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
509
+ #
510
+ # @return [::Gapic::Operation]
511
+ #
512
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
513
+ def update_database_ddl request, options = nil
514
+ raise ::ArgumentError, "request must be provided" if request.nil?
515
+
516
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Spanner::Admin::Database::V1::UpdateDatabaseDdlRequest
517
+
518
+ # Converts hash and nil to an options object
519
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
520
+
521
+ # Customize the options with defaults
522
+ call_metadata = @config.rpcs.update_database_ddl.metadata.to_h
523
+
524
+ # Set x-goog-api-client and x-goog-user-project headers
525
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
526
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
527
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
528
+ transports_version_send: [:rest]
529
+
530
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
531
+
532
+ options.apply_defaults timeout: @config.rpcs.update_database_ddl.timeout,
533
+ metadata: call_metadata,
534
+ retry_policy: @config.rpcs.update_database_ddl.retry_policy
535
+
536
+ options.apply_defaults timeout: @config.timeout,
537
+ metadata: @config.metadata,
538
+ retry_policy: @config.retry_policy
539
+
540
+ @database_admin_stub.update_database_ddl request, options do |result, operation|
541
+ result = ::Gapic::Operation.new result, @operations_client, options: options
542
+ yield result, operation if block_given?
543
+ return result
544
+ end
545
+ rescue ::Gapic::Rest::Error => e
546
+ raise ::Google::Cloud::Error.from_error(e)
547
+ end
548
+
549
+ ##
550
+ # Drops (aka deletes) a Cloud Spanner database.
551
+ # Completed backups for the database will be retained according to their
552
+ # `expire_time`.
553
+ # Note: Cloud Spanner might continue to accept requests for a few seconds
554
+ # after the database has been deleted.
555
+ #
556
+ # @overload drop_database(request, options = nil)
557
+ # Pass arguments to `drop_database` via a request object, either of type
558
+ # {::Google::Cloud::Spanner::Admin::Database::V1::DropDatabaseRequest} or an equivalent Hash.
559
+ #
560
+ # @param request [::Google::Cloud::Spanner::Admin::Database::V1::DropDatabaseRequest, ::Hash]
561
+ # A request object representing the call parameters. Required. To specify no
562
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
563
+ # @param options [::Gapic::CallOptions, ::Hash]
564
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
565
+ #
566
+ # @overload drop_database(database: nil)
567
+ # Pass arguments to `drop_database` via keyword arguments. Note that at
568
+ # least one keyword argument is required. To specify no parameters, or to keep all
569
+ # the default parameter values, pass an empty Hash as a request object (see above).
570
+ #
571
+ # @param database [::String]
572
+ # Required. The database to be dropped.
573
+ # @yield [result, operation] Access the result along with the TransportOperation object
574
+ # @yieldparam result [::Google::Protobuf::Empty]
575
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
576
+ #
577
+ # @return [::Google::Protobuf::Empty]
578
+ #
579
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
580
+ def drop_database request, options = nil
581
+ raise ::ArgumentError, "request must be provided" if request.nil?
582
+
583
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Spanner::Admin::Database::V1::DropDatabaseRequest
584
+
585
+ # Converts hash and nil to an options object
586
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
587
+
588
+ # Customize the options with defaults
589
+ call_metadata = @config.rpcs.drop_database.metadata.to_h
590
+
591
+ # Set x-goog-api-client and x-goog-user-project headers
592
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
593
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
594
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
595
+ transports_version_send: [:rest]
596
+
597
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
598
+
599
+ options.apply_defaults timeout: @config.rpcs.drop_database.timeout,
600
+ metadata: call_metadata,
601
+ retry_policy: @config.rpcs.drop_database.retry_policy
602
+
603
+ options.apply_defaults timeout: @config.timeout,
604
+ metadata: @config.metadata,
605
+ retry_policy: @config.retry_policy
606
+
607
+ @database_admin_stub.drop_database request, options do |result, operation|
608
+ yield result, operation if block_given?
609
+ return result
610
+ end
611
+ rescue ::Gapic::Rest::Error => e
612
+ raise ::Google::Cloud::Error.from_error(e)
613
+ end
614
+
615
+ ##
616
+ # Returns the schema of a Cloud Spanner database as a list of formatted
617
+ # DDL statements. This method does not show pending schema updates, those may
618
+ # be queried using the Operations API.
619
+ #
620
+ # @overload get_database_ddl(request, options = nil)
621
+ # Pass arguments to `get_database_ddl` via a request object, either of type
622
+ # {::Google::Cloud::Spanner::Admin::Database::V1::GetDatabaseDdlRequest} or an equivalent Hash.
623
+ #
624
+ # @param request [::Google::Cloud::Spanner::Admin::Database::V1::GetDatabaseDdlRequest, ::Hash]
625
+ # A request object representing the call parameters. Required. To specify no
626
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
627
+ # @param options [::Gapic::CallOptions, ::Hash]
628
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
629
+ #
630
+ # @overload get_database_ddl(database: nil)
631
+ # Pass arguments to `get_database_ddl` via keyword arguments. Note that at
632
+ # least one keyword argument is required. To specify no parameters, or to keep all
633
+ # the default parameter values, pass an empty Hash as a request object (see above).
634
+ #
635
+ # @param database [::String]
636
+ # Required. The database whose schema we wish to get.
637
+ # Values are of the form
638
+ # `projects/<project>/instances/<instance>/databases/<database>`
639
+ # @yield [result, operation] Access the result along with the TransportOperation object
640
+ # @yieldparam result [::Google::Cloud::Spanner::Admin::Database::V1::GetDatabaseDdlResponse]
641
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
642
+ #
643
+ # @return [::Google::Cloud::Spanner::Admin::Database::V1::GetDatabaseDdlResponse]
644
+ #
645
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
646
+ def get_database_ddl request, options = nil
647
+ raise ::ArgumentError, "request must be provided" if request.nil?
648
+
649
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Spanner::Admin::Database::V1::GetDatabaseDdlRequest
650
+
651
+ # Converts hash and nil to an options object
652
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
653
+
654
+ # Customize the options with defaults
655
+ call_metadata = @config.rpcs.get_database_ddl.metadata.to_h
656
+
657
+ # Set x-goog-api-client and x-goog-user-project headers
658
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
659
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
660
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
661
+ transports_version_send: [:rest]
662
+
663
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
664
+
665
+ options.apply_defaults timeout: @config.rpcs.get_database_ddl.timeout,
666
+ metadata: call_metadata,
667
+ retry_policy: @config.rpcs.get_database_ddl.retry_policy
668
+
669
+ options.apply_defaults timeout: @config.timeout,
670
+ metadata: @config.metadata,
671
+ retry_policy: @config.retry_policy
672
+
673
+ @database_admin_stub.get_database_ddl request, options do |result, operation|
674
+ yield result, operation if block_given?
675
+ return result
676
+ end
677
+ rescue ::Gapic::Rest::Error => e
678
+ raise ::Google::Cloud::Error.from_error(e)
679
+ end
680
+
681
+ ##
682
+ # Sets the access control policy on a database or backup resource.
683
+ # Replaces any existing policy.
684
+ #
685
+ # Authorization requires `spanner.databases.setIamPolicy`
686
+ # permission on {::Google::Iam::V1::SetIamPolicyRequest#resource resource}.
687
+ # For backups, authorization requires `spanner.backups.setIamPolicy`
688
+ # permission on {::Google::Iam::V1::SetIamPolicyRequest#resource resource}.
689
+ #
690
+ # @overload set_iam_policy(request, options = nil)
691
+ # Pass arguments to `set_iam_policy` via a request object, either of type
692
+ # {::Google::Iam::V1::SetIamPolicyRequest} or an equivalent Hash.
693
+ #
694
+ # @param request [::Google::Iam::V1::SetIamPolicyRequest, ::Hash]
695
+ # A request object representing the call parameters. Required. To specify no
696
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
697
+ # @param options [::Gapic::CallOptions, ::Hash]
698
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
699
+ #
700
+ # @overload set_iam_policy(resource: nil, policy: nil, update_mask: nil)
701
+ # Pass arguments to `set_iam_policy` via keyword arguments. Note that at
702
+ # least one keyword argument is required. To specify no parameters, or to keep all
703
+ # the default parameter values, pass an empty Hash as a request object (see above).
704
+ #
705
+ # @param resource [::String]
706
+ # REQUIRED: The resource for which the policy is being specified.
707
+ # See the operation documentation for the appropriate value for this field.
708
+ # @param policy [::Google::Iam::V1::Policy, ::Hash]
709
+ # REQUIRED: The complete policy to be applied to the `resource`. The size of
710
+ # the policy is limited to a few 10s of KB. An empty policy is a
711
+ # valid policy but certain Cloud Platform services (such as Projects)
712
+ # might reject them.
713
+ # @param update_mask [::Google::Protobuf::FieldMask, ::Hash]
714
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
715
+ # the fields in the mask will be modified. If no mask is provided, the
716
+ # following default mask is used:
717
+ #
718
+ # `paths: "bindings, etag"`
719
+ # @yield [result, operation] Access the result along with the TransportOperation object
720
+ # @yieldparam result [::Google::Iam::V1::Policy]
721
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
722
+ #
723
+ # @return [::Google::Iam::V1::Policy]
724
+ #
725
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
726
+ def set_iam_policy request, options = nil
727
+ raise ::ArgumentError, "request must be provided" if request.nil?
728
+
729
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::SetIamPolicyRequest
730
+
731
+ # Converts hash and nil to an options object
732
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
733
+
734
+ # Customize the options with defaults
735
+ call_metadata = @config.rpcs.set_iam_policy.metadata.to_h
736
+
737
+ # Set x-goog-api-client and x-goog-user-project headers
738
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
739
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
740
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
741
+ transports_version_send: [:rest]
742
+
743
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
744
+
745
+ options.apply_defaults timeout: @config.rpcs.set_iam_policy.timeout,
746
+ metadata: call_metadata,
747
+ retry_policy: @config.rpcs.set_iam_policy.retry_policy
748
+
749
+ options.apply_defaults timeout: @config.timeout,
750
+ metadata: @config.metadata,
751
+ retry_policy: @config.retry_policy
752
+
753
+ @database_admin_stub.set_iam_policy request, options do |result, operation|
754
+ yield result, operation if block_given?
755
+ return result
756
+ end
757
+ rescue ::Gapic::Rest::Error => e
758
+ raise ::Google::Cloud::Error.from_error(e)
759
+ end
760
+
761
+ ##
762
+ # Gets the access control policy for a database or backup resource.
763
+ # Returns an empty policy if a database or backup exists but does not have a
764
+ # policy set.
765
+ #
766
+ # Authorization requires `spanner.databases.getIamPolicy` permission on
767
+ # {::Google::Iam::V1::GetIamPolicyRequest#resource resource}.
768
+ # For backups, authorization requires `spanner.backups.getIamPolicy`
769
+ # permission on {::Google::Iam::V1::GetIamPolicyRequest#resource resource}.
770
+ #
771
+ # @overload get_iam_policy(request, options = nil)
772
+ # Pass arguments to `get_iam_policy` via a request object, either of type
773
+ # {::Google::Iam::V1::GetIamPolicyRequest} or an equivalent Hash.
774
+ #
775
+ # @param request [::Google::Iam::V1::GetIamPolicyRequest, ::Hash]
776
+ # A request object representing the call parameters. Required. To specify no
777
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
778
+ # @param options [::Gapic::CallOptions, ::Hash]
779
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
780
+ #
781
+ # @overload get_iam_policy(resource: nil, options: nil)
782
+ # Pass arguments to `get_iam_policy` via keyword arguments. Note that at
783
+ # least one keyword argument is required. To specify no parameters, or to keep all
784
+ # the default parameter values, pass an empty Hash as a request object (see above).
785
+ #
786
+ # @param resource [::String]
787
+ # REQUIRED: The resource for which the policy is being requested.
788
+ # See the operation documentation for the appropriate value for this field.
789
+ # @param options [::Google::Iam::V1::GetPolicyOptions, ::Hash]
790
+ # OPTIONAL: A `GetPolicyOptions` object for specifying options to
791
+ # `GetIamPolicy`.
792
+ # @yield [result, operation] Access the result along with the TransportOperation object
793
+ # @yieldparam result [::Google::Iam::V1::Policy]
794
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
795
+ #
796
+ # @return [::Google::Iam::V1::Policy]
797
+ #
798
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
799
+ def get_iam_policy request, options = nil
800
+ raise ::ArgumentError, "request must be provided" if request.nil?
801
+
802
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::GetIamPolicyRequest
803
+
804
+ # Converts hash and nil to an options object
805
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
806
+
807
+ # Customize the options with defaults
808
+ call_metadata = @config.rpcs.get_iam_policy.metadata.to_h
809
+
810
+ # Set x-goog-api-client and x-goog-user-project headers
811
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
812
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
813
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
814
+ transports_version_send: [:rest]
815
+
816
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
817
+
818
+ options.apply_defaults timeout: @config.rpcs.get_iam_policy.timeout,
819
+ metadata: call_metadata,
820
+ retry_policy: @config.rpcs.get_iam_policy.retry_policy
821
+
822
+ options.apply_defaults timeout: @config.timeout,
823
+ metadata: @config.metadata,
824
+ retry_policy: @config.retry_policy
825
+
826
+ @database_admin_stub.get_iam_policy request, options do |result, operation|
827
+ yield result, operation if block_given?
828
+ return result
829
+ end
830
+ rescue ::Gapic::Rest::Error => e
831
+ raise ::Google::Cloud::Error.from_error(e)
832
+ end
833
+
834
+ ##
835
+ # Returns permissions that the caller has on the specified database or backup
836
+ # resource.
837
+ #
838
+ # Attempting this RPC on a non-existent Cloud Spanner database will
839
+ # result in a NOT_FOUND error if the user has
840
+ # `spanner.databases.list` permission on the containing Cloud
841
+ # Spanner instance. Otherwise returns an empty set of permissions.
842
+ # Calling this method on a backup that does not exist will
843
+ # result in a NOT_FOUND error if the user has
844
+ # `spanner.backups.list` permission on the containing instance.
845
+ #
846
+ # @overload test_iam_permissions(request, options = nil)
847
+ # Pass arguments to `test_iam_permissions` via a request object, either of type
848
+ # {::Google::Iam::V1::TestIamPermissionsRequest} or an equivalent Hash.
849
+ #
850
+ # @param request [::Google::Iam::V1::TestIamPermissionsRequest, ::Hash]
851
+ # A request object representing the call parameters. Required. To specify no
852
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
853
+ # @param options [::Gapic::CallOptions, ::Hash]
854
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
855
+ #
856
+ # @overload test_iam_permissions(resource: nil, permissions: nil)
857
+ # Pass arguments to `test_iam_permissions` via keyword arguments. Note that at
858
+ # least one keyword argument is required. To specify no parameters, or to keep all
859
+ # the default parameter values, pass an empty Hash as a request object (see above).
860
+ #
861
+ # @param resource [::String]
862
+ # REQUIRED: The resource for which the policy detail is being requested.
863
+ # See the operation documentation for the appropriate value for this field.
864
+ # @param permissions [::Array<::String>]
865
+ # The set of permissions to check for the `resource`. Permissions with
866
+ # wildcards (such as '*' or 'storage.*') are not allowed. For more
867
+ # information see
868
+ # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
869
+ # @yield [result, operation] Access the result along with the TransportOperation object
870
+ # @yieldparam result [::Google::Iam::V1::TestIamPermissionsResponse]
871
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
872
+ #
873
+ # @return [::Google::Iam::V1::TestIamPermissionsResponse]
874
+ #
875
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
876
+ def test_iam_permissions request, options = nil
877
+ raise ::ArgumentError, "request must be provided" if request.nil?
878
+
879
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::TestIamPermissionsRequest
880
+
881
+ # Converts hash and nil to an options object
882
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
883
+
884
+ # Customize the options with defaults
885
+ call_metadata = @config.rpcs.test_iam_permissions.metadata.to_h
886
+
887
+ # Set x-goog-api-client and x-goog-user-project headers
888
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
889
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
890
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
891
+ transports_version_send: [:rest]
892
+
893
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
894
+
895
+ options.apply_defaults timeout: @config.rpcs.test_iam_permissions.timeout,
896
+ metadata: call_metadata,
897
+ retry_policy: @config.rpcs.test_iam_permissions.retry_policy
898
+
899
+ options.apply_defaults timeout: @config.timeout,
900
+ metadata: @config.metadata,
901
+ retry_policy: @config.retry_policy
902
+
903
+ @database_admin_stub.test_iam_permissions request, options do |result, operation|
904
+ yield result, operation if block_given?
905
+ return result
906
+ end
907
+ rescue ::Gapic::Rest::Error => e
908
+ raise ::Google::Cloud::Error.from_error(e)
909
+ end
910
+
911
+ ##
912
+ # Starts creating a new Cloud Spanner Backup.
913
+ # The returned backup {::Google::Longrunning::Operation long-running operation}
914
+ # will have a name of the format
915
+ # `projects/<project>/instances/<instance>/backups/<backup>/operations/<operation_id>`
916
+ # and can be used to track creation of the backup. The
917
+ # {::Google::Longrunning::Operation#metadata metadata} field type is
918
+ # {::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupMetadata CreateBackupMetadata}. The
919
+ # {::Google::Longrunning::Operation#response response} field type is
920
+ # {::Google::Cloud::Spanner::Admin::Database::V1::Backup Backup}, if successful. Cancelling the returned operation will stop the
921
+ # creation and delete the backup.
922
+ # There can be only one pending backup creation per database. Backup creation
923
+ # of different databases can run concurrently.
924
+ #
925
+ # @overload create_backup(request, options = nil)
926
+ # Pass arguments to `create_backup` via a request object, either of type
927
+ # {::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupRequest} or an equivalent Hash.
928
+ #
929
+ # @param request [::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupRequest, ::Hash]
930
+ # A request object representing the call parameters. Required. To specify no
931
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
932
+ # @param options [::Gapic::CallOptions, ::Hash]
933
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
934
+ #
935
+ # @overload create_backup(parent: nil, backup_id: nil, backup: nil, encryption_config: nil)
936
+ # Pass arguments to `create_backup` via keyword arguments. Note that at
937
+ # least one keyword argument is required. To specify no parameters, or to keep all
938
+ # the default parameter values, pass an empty Hash as a request object (see above).
939
+ #
940
+ # @param parent [::String]
941
+ # Required. The name of the instance in which the backup will be
942
+ # created. This must be the same instance that contains the database the
943
+ # backup will be created from. The backup will be stored in the
944
+ # location(s) specified in the instance configuration of this
945
+ # instance. Values are of the form
946
+ # `projects/<project>/instances/<instance>`.
947
+ # @param backup_id [::String]
948
+ # Required. The id of the backup to be created. The `backup_id` appended to
949
+ # `parent` forms the full backup name of the form
950
+ # `projects/<project>/instances/<instance>/backups/<backup_id>`.
951
+ # @param backup [::Google::Cloud::Spanner::Admin::Database::V1::Backup, ::Hash]
952
+ # Required. The backup to create.
953
+ # @param encryption_config [::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupEncryptionConfig, ::Hash]
954
+ # Optional. The encryption configuration used to encrypt the backup. If this field is
955
+ # not specified, the backup will use the same
956
+ # encryption configuration as the database by default, namely
957
+ # {::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupEncryptionConfig#encryption_type encryption_type} =
958
+ # `USE_DATABASE_ENCRYPTION`.
959
+ # @yield [result, operation] Access the result along with the TransportOperation object
960
+ # @yieldparam result [::Gapic::Operation]
961
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
962
+ #
963
+ # @return [::Gapic::Operation]
964
+ #
965
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
966
+ def create_backup request, options = nil
967
+ raise ::ArgumentError, "request must be provided" if request.nil?
968
+
969
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupRequest
970
+
971
+ # Converts hash and nil to an options object
972
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
973
+
974
+ # Customize the options with defaults
975
+ call_metadata = @config.rpcs.create_backup.metadata.to_h
976
+
977
+ # Set x-goog-api-client and x-goog-user-project headers
978
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
979
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
980
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
981
+ transports_version_send: [:rest]
982
+
983
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
984
+
985
+ options.apply_defaults timeout: @config.rpcs.create_backup.timeout,
986
+ metadata: call_metadata,
987
+ retry_policy: @config.rpcs.create_backup.retry_policy
988
+
989
+ options.apply_defaults timeout: @config.timeout,
990
+ metadata: @config.metadata,
991
+ retry_policy: @config.retry_policy
992
+
993
+ @database_admin_stub.create_backup request, options do |result, operation|
994
+ result = ::Gapic::Operation.new result, @operations_client, options: options
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
+ # Starts copying a Cloud Spanner Backup.
1004
+ # The returned backup {::Google::Longrunning::Operation long-running operation}
1005
+ # will have a name of the format
1006
+ # `projects/<project>/instances/<instance>/backups/<backup>/operations/<operation_id>`
1007
+ # and can be used to track copying of the backup. The operation is associated
1008
+ # with the destination backup.
1009
+ # The {::Google::Longrunning::Operation#metadata metadata} field type is
1010
+ # {::Google::Cloud::Spanner::Admin::Database::V1::CopyBackupMetadata CopyBackupMetadata}.
1011
+ # The {::Google::Longrunning::Operation#response response} field type is
1012
+ # {::Google::Cloud::Spanner::Admin::Database::V1::Backup Backup}, if successful. Cancelling the returned operation will stop the
1013
+ # copying and delete the backup.
1014
+ # Concurrent CopyBackup requests can run on the same source backup.
1015
+ #
1016
+ # @overload copy_backup(request, options = nil)
1017
+ # Pass arguments to `copy_backup` via a request object, either of type
1018
+ # {::Google::Cloud::Spanner::Admin::Database::V1::CopyBackupRequest} or an equivalent Hash.
1019
+ #
1020
+ # @param request [::Google::Cloud::Spanner::Admin::Database::V1::CopyBackupRequest, ::Hash]
1021
+ # A request object representing the call parameters. Required. To specify no
1022
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1023
+ # @param options [::Gapic::CallOptions, ::Hash]
1024
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
1025
+ #
1026
+ # @overload copy_backup(parent: nil, backup_id: nil, source_backup: nil, expire_time: nil, encryption_config: nil)
1027
+ # Pass arguments to `copy_backup` via keyword arguments. Note that at
1028
+ # least one keyword argument is required. To specify no parameters, or to keep all
1029
+ # the default parameter values, pass an empty Hash as a request object (see above).
1030
+ #
1031
+ # @param parent [::String]
1032
+ # Required. The name of the destination instance that will contain the backup copy.
1033
+ # Values are of the form: `projects/<project>/instances/<instance>`.
1034
+ # @param backup_id [::String]
1035
+ # Required. The id of the backup copy.
1036
+ # The `backup_id` appended to `parent` forms the full backup_uri of the form
1037
+ # `projects/<project>/instances/<instance>/backups/<backup>`.
1038
+ # @param source_backup [::String]
1039
+ # Required. The source backup to be copied.
1040
+ # The source backup needs to be in READY state for it to be copied.
1041
+ # Once CopyBackup is in progress, the source backup cannot be deleted or
1042
+ # cleaned up on expiration until CopyBackup is finished.
1043
+ # Values are of the form:
1044
+ # `projects/<project>/instances/<instance>/backups/<backup>`.
1045
+ # @param expire_time [::Google::Protobuf::Timestamp, ::Hash]
1046
+ # Required. The expiration time of the backup in microsecond granularity.
1047
+ # The expiration time must be at least 6 hours and at most 366 days
1048
+ # from the `create_time` of the source backup. Once the `expire_time` has
1049
+ # passed, the backup is eligible to be automatically deleted by Cloud Spanner
1050
+ # to free the resources used by the backup.
1051
+ # @param encryption_config [::Google::Cloud::Spanner::Admin::Database::V1::CopyBackupEncryptionConfig, ::Hash]
1052
+ # Optional. The encryption configuration used to encrypt the backup. If this field is
1053
+ # not specified, the backup will use the same
1054
+ # encryption configuration as the source backup by default, namely
1055
+ # {::Google::Cloud::Spanner::Admin::Database::V1::CopyBackupEncryptionConfig#encryption_type encryption_type} =
1056
+ # `USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION`.
1057
+ # @yield [result, operation] Access the result along with the TransportOperation object
1058
+ # @yieldparam result [::Gapic::Operation]
1059
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
1060
+ #
1061
+ # @return [::Gapic::Operation]
1062
+ #
1063
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
1064
+ def copy_backup request, options = nil
1065
+ raise ::ArgumentError, "request must be provided" if request.nil?
1066
+
1067
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Spanner::Admin::Database::V1::CopyBackupRequest
1068
+
1069
+ # Converts hash and nil to an options object
1070
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1071
+
1072
+ # Customize the options with defaults
1073
+ call_metadata = @config.rpcs.copy_backup.metadata.to_h
1074
+
1075
+ # Set x-goog-api-client and x-goog-user-project headers
1076
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
1077
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1078
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
1079
+ transports_version_send: [:rest]
1080
+
1081
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1082
+
1083
+ options.apply_defaults timeout: @config.rpcs.copy_backup.timeout,
1084
+ metadata: call_metadata,
1085
+ retry_policy: @config.rpcs.copy_backup.retry_policy
1086
+
1087
+ options.apply_defaults timeout: @config.timeout,
1088
+ metadata: @config.metadata,
1089
+ retry_policy: @config.retry_policy
1090
+
1091
+ @database_admin_stub.copy_backup request, options do |result, operation|
1092
+ result = ::Gapic::Operation.new result, @operations_client, options: options
1093
+ yield result, operation if block_given?
1094
+ return result
1095
+ end
1096
+ rescue ::Gapic::Rest::Error => e
1097
+ raise ::Google::Cloud::Error.from_error(e)
1098
+ end
1099
+
1100
+ ##
1101
+ # Gets metadata on a pending or completed {::Google::Cloud::Spanner::Admin::Database::V1::Backup Backup}.
1102
+ #
1103
+ # @overload get_backup(request, options = nil)
1104
+ # Pass arguments to `get_backup` via a request object, either of type
1105
+ # {::Google::Cloud::Spanner::Admin::Database::V1::GetBackupRequest} or an equivalent Hash.
1106
+ #
1107
+ # @param request [::Google::Cloud::Spanner::Admin::Database::V1::GetBackupRequest, ::Hash]
1108
+ # A request object representing the call parameters. Required. To specify no
1109
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1110
+ # @param options [::Gapic::CallOptions, ::Hash]
1111
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
1112
+ #
1113
+ # @overload get_backup(name: nil)
1114
+ # Pass arguments to `get_backup` via keyword arguments. Note that at
1115
+ # least one keyword argument is required. To specify no parameters, or to keep all
1116
+ # the default parameter values, pass an empty Hash as a request object (see above).
1117
+ #
1118
+ # @param name [::String]
1119
+ # Required. Name of the backup.
1120
+ # Values are of the form
1121
+ # `projects/<project>/instances/<instance>/backups/<backup>`.
1122
+ # @yield [result, operation] Access the result along with the TransportOperation object
1123
+ # @yieldparam result [::Google::Cloud::Spanner::Admin::Database::V1::Backup]
1124
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
1125
+ #
1126
+ # @return [::Google::Cloud::Spanner::Admin::Database::V1::Backup]
1127
+ #
1128
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
1129
+ def get_backup request, options = nil
1130
+ raise ::ArgumentError, "request must be provided" if request.nil?
1131
+
1132
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Spanner::Admin::Database::V1::GetBackupRequest
1133
+
1134
+ # Converts hash and nil to an options object
1135
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1136
+
1137
+ # Customize the options with defaults
1138
+ call_metadata = @config.rpcs.get_backup.metadata.to_h
1139
+
1140
+ # Set x-goog-api-client and x-goog-user-project headers
1141
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
1142
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1143
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
1144
+ transports_version_send: [:rest]
1145
+
1146
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1147
+
1148
+ options.apply_defaults timeout: @config.rpcs.get_backup.timeout,
1149
+ metadata: call_metadata,
1150
+ retry_policy: @config.rpcs.get_backup.retry_policy
1151
+
1152
+ options.apply_defaults timeout: @config.timeout,
1153
+ metadata: @config.metadata,
1154
+ retry_policy: @config.retry_policy
1155
+
1156
+ @database_admin_stub.get_backup request, options do |result, operation|
1157
+ yield result, operation if block_given?
1158
+ return result
1159
+ end
1160
+ rescue ::Gapic::Rest::Error => e
1161
+ raise ::Google::Cloud::Error.from_error(e)
1162
+ end
1163
+
1164
+ ##
1165
+ # Updates a pending or completed {::Google::Cloud::Spanner::Admin::Database::V1::Backup Backup}.
1166
+ #
1167
+ # @overload update_backup(request, options = nil)
1168
+ # Pass arguments to `update_backup` via a request object, either of type
1169
+ # {::Google::Cloud::Spanner::Admin::Database::V1::UpdateBackupRequest} or an equivalent Hash.
1170
+ #
1171
+ # @param request [::Google::Cloud::Spanner::Admin::Database::V1::UpdateBackupRequest, ::Hash]
1172
+ # A request object representing the call parameters. Required. To specify no
1173
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1174
+ # @param options [::Gapic::CallOptions, ::Hash]
1175
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
1176
+ #
1177
+ # @overload update_backup(backup: nil, update_mask: nil)
1178
+ # Pass arguments to `update_backup` via keyword arguments. Note that at
1179
+ # least one keyword argument is required. To specify no parameters, or to keep all
1180
+ # the default parameter values, pass an empty Hash as a request object (see above).
1181
+ #
1182
+ # @param backup [::Google::Cloud::Spanner::Admin::Database::V1::Backup, ::Hash]
1183
+ # Required. The backup to update. `backup.name`, and the fields to be updated
1184
+ # as specified by `update_mask` are required. Other fields are ignored.
1185
+ # Update is only supported for the following fields:
1186
+ # * `backup.expire_time`.
1187
+ # @param update_mask [::Google::Protobuf::FieldMask, ::Hash]
1188
+ # Required. A mask specifying which fields (e.g. `expire_time`) in the
1189
+ # Backup resource should be updated. This mask is relative to the Backup
1190
+ # resource, not to the request message. The field mask must always be
1191
+ # specified; this prevents any future fields from being erased accidentally
1192
+ # by clients that do not know about them.
1193
+ # @yield [result, operation] Access the result along with the TransportOperation object
1194
+ # @yieldparam result [::Google::Cloud::Spanner::Admin::Database::V1::Backup]
1195
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
1196
+ #
1197
+ # @return [::Google::Cloud::Spanner::Admin::Database::V1::Backup]
1198
+ #
1199
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
1200
+ def update_backup request, options = nil
1201
+ raise ::ArgumentError, "request must be provided" if request.nil?
1202
+
1203
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Spanner::Admin::Database::V1::UpdateBackupRequest
1204
+
1205
+ # Converts hash and nil to an options object
1206
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1207
+
1208
+ # Customize the options with defaults
1209
+ call_metadata = @config.rpcs.update_backup.metadata.to_h
1210
+
1211
+ # Set x-goog-api-client and x-goog-user-project headers
1212
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
1213
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1214
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
1215
+ transports_version_send: [:rest]
1216
+
1217
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1218
+
1219
+ options.apply_defaults timeout: @config.rpcs.update_backup.timeout,
1220
+ metadata: call_metadata,
1221
+ retry_policy: @config.rpcs.update_backup.retry_policy
1222
+
1223
+ options.apply_defaults timeout: @config.timeout,
1224
+ metadata: @config.metadata,
1225
+ retry_policy: @config.retry_policy
1226
+
1227
+ @database_admin_stub.update_backup request, options do |result, operation|
1228
+ yield result, operation if block_given?
1229
+ return result
1230
+ end
1231
+ rescue ::Gapic::Rest::Error => e
1232
+ raise ::Google::Cloud::Error.from_error(e)
1233
+ end
1234
+
1235
+ ##
1236
+ # Deletes a pending or completed {::Google::Cloud::Spanner::Admin::Database::V1::Backup Backup}.
1237
+ #
1238
+ # @overload delete_backup(request, options = nil)
1239
+ # Pass arguments to `delete_backup` via a request object, either of type
1240
+ # {::Google::Cloud::Spanner::Admin::Database::V1::DeleteBackupRequest} or an equivalent Hash.
1241
+ #
1242
+ # @param request [::Google::Cloud::Spanner::Admin::Database::V1::DeleteBackupRequest, ::Hash]
1243
+ # A request object representing the call parameters. Required. To specify no
1244
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1245
+ # @param options [::Gapic::CallOptions, ::Hash]
1246
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
1247
+ #
1248
+ # @overload delete_backup(name: nil)
1249
+ # Pass arguments to `delete_backup` via keyword arguments. Note that at
1250
+ # least one keyword argument is required. To specify no parameters, or to keep all
1251
+ # the default parameter values, pass an empty Hash as a request object (see above).
1252
+ #
1253
+ # @param name [::String]
1254
+ # Required. Name of the backup to delete.
1255
+ # Values are of the form
1256
+ # `projects/<project>/instances/<instance>/backups/<backup>`.
1257
+ # @yield [result, operation] Access the result along with the TransportOperation object
1258
+ # @yieldparam result [::Google::Protobuf::Empty]
1259
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
1260
+ #
1261
+ # @return [::Google::Protobuf::Empty]
1262
+ #
1263
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
1264
+ def delete_backup request, options = nil
1265
+ raise ::ArgumentError, "request must be provided" if request.nil?
1266
+
1267
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Spanner::Admin::Database::V1::DeleteBackupRequest
1268
+
1269
+ # Converts hash and nil to an options object
1270
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1271
+
1272
+ # Customize the options with defaults
1273
+ call_metadata = @config.rpcs.delete_backup.metadata.to_h
1274
+
1275
+ # Set x-goog-api-client and x-goog-user-project headers
1276
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
1277
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1278
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
1279
+ transports_version_send: [:rest]
1280
+
1281
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1282
+
1283
+ options.apply_defaults timeout: @config.rpcs.delete_backup.timeout,
1284
+ metadata: call_metadata,
1285
+ retry_policy: @config.rpcs.delete_backup.retry_policy
1286
+
1287
+ options.apply_defaults timeout: @config.timeout,
1288
+ metadata: @config.metadata,
1289
+ retry_policy: @config.retry_policy
1290
+
1291
+ @database_admin_stub.delete_backup request, options do |result, operation|
1292
+ yield result, operation if block_given?
1293
+ return result
1294
+ end
1295
+ rescue ::Gapic::Rest::Error => e
1296
+ raise ::Google::Cloud::Error.from_error(e)
1297
+ end
1298
+
1299
+ ##
1300
+ # Lists completed and pending backups.
1301
+ # Backups returned are ordered by `create_time` in descending order,
1302
+ # starting from the most recent `create_time`.
1303
+ #
1304
+ # @overload list_backups(request, options = nil)
1305
+ # Pass arguments to `list_backups` via a request object, either of type
1306
+ # {::Google::Cloud::Spanner::Admin::Database::V1::ListBackupsRequest} or an equivalent Hash.
1307
+ #
1308
+ # @param request [::Google::Cloud::Spanner::Admin::Database::V1::ListBackupsRequest, ::Hash]
1309
+ # A request object representing the call parameters. Required. To specify no
1310
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1311
+ # @param options [::Gapic::CallOptions, ::Hash]
1312
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
1313
+ #
1314
+ # @overload list_backups(parent: nil, filter: nil, page_size: nil, page_token: nil)
1315
+ # Pass arguments to `list_backups` via keyword arguments. Note that at
1316
+ # least one keyword argument is required. To specify no parameters, or to keep all
1317
+ # the default parameter values, pass an empty Hash as a request object (see above).
1318
+ #
1319
+ # @param parent [::String]
1320
+ # Required. The instance to list backups from. Values are of the
1321
+ # form `projects/<project>/instances/<instance>`.
1322
+ # @param filter [::String]
1323
+ # An expression that filters the list of returned backups.
1324
+ #
1325
+ # A filter expression consists of a field name, a comparison operator, and a
1326
+ # value for filtering.
1327
+ # The value must be a string, a number, or a boolean. The comparison operator
1328
+ # must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
1329
+ # Colon `:` is the contains operator. Filter rules are not case sensitive.
1330
+ #
1331
+ # The following fields in the {::Google::Cloud::Spanner::Admin::Database::V1::Backup Backup} are eligible for filtering:
1332
+ #
1333
+ # * `name`
1334
+ # * `database`
1335
+ # * `state`
1336
+ # * `create_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
1337
+ # * `expire_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
1338
+ # * `version_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
1339
+ # * `size_bytes`
1340
+ #
1341
+ # You can combine multiple expressions by enclosing each expression in
1342
+ # parentheses. By default, expressions are combined with AND logic, but
1343
+ # you can specify AND, OR, and NOT logic explicitly.
1344
+ #
1345
+ # Here are a few examples:
1346
+ #
1347
+ # * `name:Howl` - The backup's name contains the string "howl".
1348
+ # * `database:prod`
1349
+ # - The database's name contains the string "prod".
1350
+ # * `state:CREATING` - The backup is pending creation.
1351
+ # * `state:READY` - The backup is fully created and ready for use.
1352
+ # * `(name:howl) AND (create_time < \"2018-03-28T14:50:00Z\")`
1353
+ # - The backup name contains the string "howl" and `create_time`
1354
+ # of the backup is before 2018-03-28T14:50:00Z.
1355
+ # * `expire_time < \"2018-03-28T14:50:00Z\"`
1356
+ # - The backup `expire_time` is before 2018-03-28T14:50:00Z.
1357
+ # * `size_bytes > 10000000000` - The backup's size is greater than 10GB
1358
+ # @param page_size [::Integer]
1359
+ # Number of backups to be returned in the response. If 0 or
1360
+ # less, defaults to the server's maximum allowed page size.
1361
+ # @param page_token [::String]
1362
+ # If non-empty, `page_token` should contain a
1363
+ # {::Google::Cloud::Spanner::Admin::Database::V1::ListBackupsResponse#next_page_token next_page_token} from a
1364
+ # previous {::Google::Cloud::Spanner::Admin::Database::V1::ListBackupsResponse ListBackupsResponse} to the same `parent` and with the same
1365
+ # `filter`.
1366
+ # @yield [result, operation] Access the result along with the TransportOperation object
1367
+ # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Spanner::Admin::Database::V1::Backup>]
1368
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
1369
+ #
1370
+ # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Spanner::Admin::Database::V1::Backup>]
1371
+ #
1372
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
1373
+ def list_backups request, options = nil
1374
+ raise ::ArgumentError, "request must be provided" if request.nil?
1375
+
1376
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Spanner::Admin::Database::V1::ListBackupsRequest
1377
+
1378
+ # Converts hash and nil to an options object
1379
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1380
+
1381
+ # Customize the options with defaults
1382
+ call_metadata = @config.rpcs.list_backups.metadata.to_h
1383
+
1384
+ # Set x-goog-api-client and x-goog-user-project headers
1385
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
1386
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1387
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
1388
+ transports_version_send: [:rest]
1389
+
1390
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1391
+
1392
+ options.apply_defaults timeout: @config.rpcs.list_backups.timeout,
1393
+ metadata: call_metadata,
1394
+ retry_policy: @config.rpcs.list_backups.retry_policy
1395
+
1396
+ options.apply_defaults timeout: @config.timeout,
1397
+ metadata: @config.metadata,
1398
+ retry_policy: @config.retry_policy
1399
+
1400
+ @database_admin_stub.list_backups request, options do |result, operation|
1401
+ result = ::Gapic::Rest::PagedEnumerable.new @database_admin_stub, :list_backups, "backups", request, result, options
1402
+ yield result, operation if block_given?
1403
+ return result
1404
+ end
1405
+ rescue ::Gapic::Rest::Error => e
1406
+ raise ::Google::Cloud::Error.from_error(e)
1407
+ end
1408
+
1409
+ ##
1410
+ # Create a new database by restoring from a completed backup. The new
1411
+ # database must be in the same project and in an instance with the same
1412
+ # instance configuration as the instance containing
1413
+ # the backup. The returned database [long-running
1414
+ # operation][google.longrunning.Operation] has a name of the format
1415
+ # `projects/<project>/instances/<instance>/databases/<database>/operations/<operation_id>`,
1416
+ # and can be used to track the progress of the operation, and to cancel it.
1417
+ # The {::Google::Longrunning::Operation#metadata metadata} field type is
1418
+ # {::Google::Cloud::Spanner::Admin::Database::V1::RestoreDatabaseMetadata RestoreDatabaseMetadata}.
1419
+ # The {::Google::Longrunning::Operation#response response} type
1420
+ # is {::Google::Cloud::Spanner::Admin::Database::V1::Database Database}, if
1421
+ # successful. Cancelling the returned operation will stop the restore and
1422
+ # delete the database.
1423
+ # There can be only one database being restored into an instance at a time.
1424
+ # Once the restore operation completes, a new restore operation can be
1425
+ # initiated, without waiting for the optimize operation associated with the
1426
+ # first restore to complete.
1427
+ #
1428
+ # @overload restore_database(request, options = nil)
1429
+ # Pass arguments to `restore_database` via a request object, either of type
1430
+ # {::Google::Cloud::Spanner::Admin::Database::V1::RestoreDatabaseRequest} or an equivalent Hash.
1431
+ #
1432
+ # @param request [::Google::Cloud::Spanner::Admin::Database::V1::RestoreDatabaseRequest, ::Hash]
1433
+ # A request object representing the call parameters. Required. To specify no
1434
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1435
+ # @param options [::Gapic::CallOptions, ::Hash]
1436
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
1437
+ #
1438
+ # @overload restore_database(parent: nil, database_id: nil, backup: nil, encryption_config: nil)
1439
+ # Pass arguments to `restore_database` via keyword arguments. Note that at
1440
+ # least one keyword argument is required. To specify no parameters, or to keep all
1441
+ # the default parameter values, pass an empty Hash as a request object (see above).
1442
+ #
1443
+ # @param parent [::String]
1444
+ # Required. The name of the instance in which to create the
1445
+ # restored database. This instance must be in the same project and
1446
+ # have the same instance configuration as the instance containing
1447
+ # the source backup. Values are of the form
1448
+ # `projects/<project>/instances/<instance>`.
1449
+ # @param database_id [::String]
1450
+ # Required. The id of the database to create and restore to. This
1451
+ # database must not already exist. The `database_id` appended to
1452
+ # `parent` forms the full database name of the form
1453
+ # `projects/<project>/instances/<instance>/databases/<database_id>`.
1454
+ # @param backup [::String]
1455
+ # Name of the backup from which to restore. Values are of the form
1456
+ # `projects/<project>/instances/<instance>/backups/<backup>`.
1457
+ # @param encryption_config [::Google::Cloud::Spanner::Admin::Database::V1::RestoreDatabaseEncryptionConfig, ::Hash]
1458
+ # Optional. An encryption configuration describing the encryption type and key
1459
+ # resources in Cloud KMS used to encrypt/decrypt the database to restore to.
1460
+ # If this field is not specified, the restored database will use
1461
+ # the same encryption configuration as the backup by default, namely
1462
+ # {::Google::Cloud::Spanner::Admin::Database::V1::RestoreDatabaseEncryptionConfig#encryption_type encryption_type} =
1463
+ # `USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION`.
1464
+ # @yield [result, operation] Access the result along with the TransportOperation object
1465
+ # @yieldparam result [::Gapic::Operation]
1466
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
1467
+ #
1468
+ # @return [::Gapic::Operation]
1469
+ #
1470
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
1471
+ def restore_database request, options = nil
1472
+ raise ::ArgumentError, "request must be provided" if request.nil?
1473
+
1474
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Spanner::Admin::Database::V1::RestoreDatabaseRequest
1475
+
1476
+ # Converts hash and nil to an options object
1477
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1478
+
1479
+ # Customize the options with defaults
1480
+ call_metadata = @config.rpcs.restore_database.metadata.to_h
1481
+
1482
+ # Set x-goog-api-client and x-goog-user-project headers
1483
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
1484
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1485
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
1486
+ transports_version_send: [:rest]
1487
+
1488
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1489
+
1490
+ options.apply_defaults timeout: @config.rpcs.restore_database.timeout,
1491
+ metadata: call_metadata,
1492
+ retry_policy: @config.rpcs.restore_database.retry_policy
1493
+
1494
+ options.apply_defaults timeout: @config.timeout,
1495
+ metadata: @config.metadata,
1496
+ retry_policy: @config.retry_policy
1497
+
1498
+ @database_admin_stub.restore_database request, options do |result, operation|
1499
+ result = ::Gapic::Operation.new result, @operations_client, options: options
1500
+ yield result, operation if block_given?
1501
+ return result
1502
+ end
1503
+ rescue ::Gapic::Rest::Error => e
1504
+ raise ::Google::Cloud::Error.from_error(e)
1505
+ end
1506
+
1507
+ ##
1508
+ # Lists database {::Google::Longrunning::Operation longrunning-operations}.
1509
+ # A database operation has a name of the form
1510
+ # `projects/<project>/instances/<instance>/databases/<database>/operations/<operation>`.
1511
+ # The long-running operation
1512
+ # {::Google::Longrunning::Operation#metadata metadata} field type
1513
+ # `metadata.type_url` describes the type of the metadata. Operations returned
1514
+ # include those that have completed/failed/canceled within the last 7 days,
1515
+ # and pending operations.
1516
+ #
1517
+ # @overload list_database_operations(request, options = nil)
1518
+ # Pass arguments to `list_database_operations` via a request object, either of type
1519
+ # {::Google::Cloud::Spanner::Admin::Database::V1::ListDatabaseOperationsRequest} or an equivalent Hash.
1520
+ #
1521
+ # @param request [::Google::Cloud::Spanner::Admin::Database::V1::ListDatabaseOperationsRequest, ::Hash]
1522
+ # A request object representing the call parameters. Required. To specify no
1523
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1524
+ # @param options [::Gapic::CallOptions, ::Hash]
1525
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
1526
+ #
1527
+ # @overload list_database_operations(parent: nil, filter: nil, page_size: nil, page_token: nil)
1528
+ # Pass arguments to `list_database_operations` via keyword arguments. Note that at
1529
+ # least one keyword argument is required. To specify no parameters, or to keep all
1530
+ # the default parameter values, pass an empty Hash as a request object (see above).
1531
+ #
1532
+ # @param parent [::String]
1533
+ # Required. The instance of the database operations.
1534
+ # Values are of the form `projects/<project>/instances/<instance>`.
1535
+ # @param filter [::String]
1536
+ # An expression that filters the list of returned operations.
1537
+ #
1538
+ # A filter expression consists of a field name, a
1539
+ # comparison operator, and a value for filtering.
1540
+ # The value must be a string, a number, or a boolean. The comparison operator
1541
+ # must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
1542
+ # Colon `:` is the contains operator. Filter rules are not case sensitive.
1543
+ #
1544
+ # The following fields in the {::Google::Longrunning::Operation Operation}
1545
+ # are eligible for filtering:
1546
+ #
1547
+ # * `name` - The name of the long-running operation
1548
+ # * `done` - False if the operation is in progress, else true.
1549
+ # * `metadata.@type` - the type of metadata. For example, the type string
1550
+ # for {::Google::Cloud::Spanner::Admin::Database::V1::RestoreDatabaseMetadata RestoreDatabaseMetadata} is
1551
+ # `type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata`.
1552
+ # * `metadata.<field_name>` - any field in metadata.value.
1553
+ # `metadata.@type` must be specified first, if filtering on metadata
1554
+ # fields.
1555
+ # * `error` - Error associated with the long-running operation.
1556
+ # * `response.@type` - the type of response.
1557
+ # * `response.<field_name>` - any field in response.value.
1558
+ #
1559
+ # You can combine multiple expressions by enclosing each expression in
1560
+ # parentheses. By default, expressions are combined with AND logic. However,
1561
+ # you can specify AND, OR, and NOT logic explicitly.
1562
+ #
1563
+ # Here are a few examples:
1564
+ #
1565
+ # * `done:true` - The operation is complete.
1566
+ # * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata) AND` \
1567
+ # `(metadata.source_type:BACKUP) AND` \
1568
+ # `(metadata.backup_info.backup:backup_howl) AND` \
1569
+ # `(metadata.name:restored_howl) AND` \
1570
+ # `(metadata.progress.start_time < \"2018-03-28T14:50:00Z\") AND` \
1571
+ # `(error:*)` - Return operations where:
1572
+ # * The operation's metadata type is {::Google::Cloud::Spanner::Admin::Database::V1::RestoreDatabaseMetadata RestoreDatabaseMetadata}.
1573
+ # * The database is restored from a backup.
1574
+ # * The backup name contains "backup_howl".
1575
+ # * The restored database's name contains "restored_howl".
1576
+ # * The operation started before 2018-03-28T14:50:00Z.
1577
+ # * The operation resulted in an error.
1578
+ # @param page_size [::Integer]
1579
+ # Number of operations to be returned in the response. If 0 or
1580
+ # less, defaults to the server's maximum allowed page size.
1581
+ # @param page_token [::String]
1582
+ # If non-empty, `page_token` should contain a
1583
+ # {::Google::Cloud::Spanner::Admin::Database::V1::ListDatabaseOperationsResponse#next_page_token next_page_token}
1584
+ # from a previous {::Google::Cloud::Spanner::Admin::Database::V1::ListDatabaseOperationsResponse ListDatabaseOperationsResponse} to the
1585
+ # same `parent` and with the same `filter`.
1586
+ # @yield [result, operation] Access the result along with the TransportOperation object
1587
+ # @yieldparam result [::Gapic::Operation]
1588
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
1589
+ #
1590
+ # @return [::Gapic::Operation]
1591
+ #
1592
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
1593
+ def list_database_operations request, options = nil
1594
+ raise ::ArgumentError, "request must be provided" if request.nil?
1595
+
1596
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Spanner::Admin::Database::V1::ListDatabaseOperationsRequest
1597
+
1598
+ # Converts hash and nil to an options object
1599
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1600
+
1601
+ # Customize the options with defaults
1602
+ call_metadata = @config.rpcs.list_database_operations.metadata.to_h
1603
+
1604
+ # Set x-goog-api-client and x-goog-user-project headers
1605
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
1606
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1607
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
1608
+ transports_version_send: [:rest]
1609
+
1610
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1611
+
1612
+ options.apply_defaults timeout: @config.rpcs.list_database_operations.timeout,
1613
+ metadata: call_metadata,
1614
+ retry_policy: @config.rpcs.list_database_operations.retry_policy
1615
+
1616
+ options.apply_defaults timeout: @config.timeout,
1617
+ metadata: @config.metadata,
1618
+ retry_policy: @config.retry_policy
1619
+
1620
+ @database_admin_stub.list_database_operations request, options do |result, operation|
1621
+ result = ::Gapic::Rest::PagedEnumerable.new @database_admin_stub, :list_database_operations, "operations", request, result, options
1622
+ yield result, operation if block_given?
1623
+ return result
1624
+ end
1625
+ rescue ::Gapic::Rest::Error => e
1626
+ raise ::Google::Cloud::Error.from_error(e)
1627
+ end
1628
+
1629
+ ##
1630
+ # Lists the backup {::Google::Longrunning::Operation long-running operations} in
1631
+ # the given instance. A backup operation has a name of the form
1632
+ # `projects/<project>/instances/<instance>/backups/<backup>/operations/<operation>`.
1633
+ # The long-running operation
1634
+ # {::Google::Longrunning::Operation#metadata metadata} field type
1635
+ # `metadata.type_url` describes the type of the metadata. Operations returned
1636
+ # include those that have completed/failed/canceled within the last 7 days,
1637
+ # and pending operations. Operations returned are ordered by
1638
+ # `operation.metadata.value.progress.start_time` in descending order starting
1639
+ # from the most recently started operation.
1640
+ #
1641
+ # @overload list_backup_operations(request, options = nil)
1642
+ # Pass arguments to `list_backup_operations` via a request object, either of type
1643
+ # {::Google::Cloud::Spanner::Admin::Database::V1::ListBackupOperationsRequest} or an equivalent Hash.
1644
+ #
1645
+ # @param request [::Google::Cloud::Spanner::Admin::Database::V1::ListBackupOperationsRequest, ::Hash]
1646
+ # A request object representing the call parameters. Required. To specify no
1647
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1648
+ # @param options [::Gapic::CallOptions, ::Hash]
1649
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
1650
+ #
1651
+ # @overload list_backup_operations(parent: nil, filter: nil, page_size: nil, page_token: nil)
1652
+ # Pass arguments to `list_backup_operations` via keyword arguments. Note that at
1653
+ # least one keyword argument is required. To specify no parameters, or to keep all
1654
+ # the default parameter values, pass an empty Hash as a request object (see above).
1655
+ #
1656
+ # @param parent [::String]
1657
+ # Required. The instance of the backup operations. Values are of
1658
+ # the form `projects/<project>/instances/<instance>`.
1659
+ # @param filter [::String]
1660
+ # An expression that filters the list of returned backup operations.
1661
+ #
1662
+ # A filter expression consists of a field name, a
1663
+ # comparison operator, and a value for filtering.
1664
+ # The value must be a string, a number, or a boolean. The comparison operator
1665
+ # must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
1666
+ # Colon `:` is the contains operator. Filter rules are not case sensitive.
1667
+ #
1668
+ # The following fields in the {::Google::Longrunning::Operation operation}
1669
+ # are eligible for filtering:
1670
+ #
1671
+ # * `name` - The name of the long-running operation
1672
+ # * `done` - False if the operation is in progress, else true.
1673
+ # * `metadata.@type` - the type of metadata. For example, the type string
1674
+ # for {::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupMetadata CreateBackupMetadata} is
1675
+ # `type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata`.
1676
+ # * `metadata.<field_name>` - any field in metadata.value.
1677
+ # `metadata.@type` must be specified first if filtering on metadata
1678
+ # fields.
1679
+ # * `error` - Error associated with the long-running operation.
1680
+ # * `response.@type` - the type of response.
1681
+ # * `response.<field_name>` - any field in response.value.
1682
+ #
1683
+ # You can combine multiple expressions by enclosing each expression in
1684
+ # parentheses. By default, expressions are combined with AND logic, but
1685
+ # you can specify AND, OR, and NOT logic explicitly.
1686
+ #
1687
+ # Here are a few examples:
1688
+ #
1689
+ # * `done:true` - The operation is complete.
1690
+ # * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \
1691
+ # `metadata.database:prod` - Returns operations where:
1692
+ # * The operation's metadata type is {::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupMetadata CreateBackupMetadata}.
1693
+ # * The database the backup was taken from has a name containing the
1694
+ # string "prod".
1695
+ # * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \
1696
+ # `(metadata.name:howl) AND` \
1697
+ # `(metadata.progress.start_time < \"2018-03-28T14:50:00Z\") AND` \
1698
+ # `(error:*)` - Returns operations where:
1699
+ # * The operation's metadata type is {::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupMetadata CreateBackupMetadata}.
1700
+ # * The backup name contains the string "howl".
1701
+ # * The operation started before 2018-03-28T14:50:00Z.
1702
+ # * The operation resulted in an error.
1703
+ # * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CopyBackupMetadata) AND` \
1704
+ # `(metadata.source_backup:test) AND` \
1705
+ # `(metadata.progress.start_time < \"2022-01-18T14:50:00Z\") AND` \
1706
+ # `(error:*)` - Returns operations where:
1707
+ # * The operation's metadata type is {::Google::Cloud::Spanner::Admin::Database::V1::CopyBackupMetadata CopyBackupMetadata}.
1708
+ # * The source backup of the copied backup name contains the string
1709
+ # "test".
1710
+ # * The operation started before 2022-01-18T14:50:00Z.
1711
+ # * The operation resulted in an error.
1712
+ # * `((metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \
1713
+ # `(metadata.database:test_db)) OR` \
1714
+ # `((metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CopyBackupMetadata)
1715
+ # AND` \
1716
+ # `(metadata.source_backup:test_bkp)) AND` \
1717
+ # `(error:*)` - Returns operations where:
1718
+ # * The operation's metadata matches either of criteria:
1719
+ # * The operation's metadata type is {::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupMetadata CreateBackupMetadata} AND the
1720
+ # database the backup was taken from has name containing string
1721
+ # "test_db"
1722
+ # * The operation's metadata type is {::Google::Cloud::Spanner::Admin::Database::V1::CopyBackupMetadata CopyBackupMetadata} AND the
1723
+ # backup the backup was copied from has name containing string
1724
+ # "test_bkp"
1725
+ # * The operation resulted in an error.
1726
+ # @param page_size [::Integer]
1727
+ # Number of operations to be returned in the response. If 0 or
1728
+ # less, defaults to the server's maximum allowed page size.
1729
+ # @param page_token [::String]
1730
+ # If non-empty, `page_token` should contain a
1731
+ # {::Google::Cloud::Spanner::Admin::Database::V1::ListBackupOperationsResponse#next_page_token next_page_token}
1732
+ # from a previous {::Google::Cloud::Spanner::Admin::Database::V1::ListBackupOperationsResponse ListBackupOperationsResponse} to the
1733
+ # same `parent` and with the same `filter`.
1734
+ # @yield [result, operation] Access the result along with the TransportOperation object
1735
+ # @yieldparam result [::Gapic::Operation]
1736
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
1737
+ #
1738
+ # @return [::Gapic::Operation]
1739
+ #
1740
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
1741
+ def list_backup_operations request, options = nil
1742
+ raise ::ArgumentError, "request must be provided" if request.nil?
1743
+
1744
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Spanner::Admin::Database::V1::ListBackupOperationsRequest
1745
+
1746
+ # Converts hash and nil to an options object
1747
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1748
+
1749
+ # Customize the options with defaults
1750
+ call_metadata = @config.rpcs.list_backup_operations.metadata.to_h
1751
+
1752
+ # Set x-goog-api-client and x-goog-user-project headers
1753
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
1754
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1755
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
1756
+ transports_version_send: [:rest]
1757
+
1758
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1759
+
1760
+ options.apply_defaults timeout: @config.rpcs.list_backup_operations.timeout,
1761
+ metadata: call_metadata,
1762
+ retry_policy: @config.rpcs.list_backup_operations.retry_policy
1763
+
1764
+ options.apply_defaults timeout: @config.timeout,
1765
+ metadata: @config.metadata,
1766
+ retry_policy: @config.retry_policy
1767
+
1768
+ @database_admin_stub.list_backup_operations request, options do |result, operation|
1769
+ result = ::Gapic::Rest::PagedEnumerable.new @database_admin_stub, :list_backup_operations, "operations", request, result, options
1770
+ yield result, operation if block_given?
1771
+ return result
1772
+ end
1773
+ rescue ::Gapic::Rest::Error => e
1774
+ raise ::Google::Cloud::Error.from_error(e)
1775
+ end
1776
+
1777
+ ##
1778
+ # Lists Cloud Spanner database roles.
1779
+ #
1780
+ # @overload list_database_roles(request, options = nil)
1781
+ # Pass arguments to `list_database_roles` via a request object, either of type
1782
+ # {::Google::Cloud::Spanner::Admin::Database::V1::ListDatabaseRolesRequest} or an equivalent Hash.
1783
+ #
1784
+ # @param request [::Google::Cloud::Spanner::Admin::Database::V1::ListDatabaseRolesRequest, ::Hash]
1785
+ # A request object representing the call parameters. Required. To specify no
1786
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1787
+ # @param options [::Gapic::CallOptions, ::Hash]
1788
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
1789
+ #
1790
+ # @overload list_database_roles(parent: nil, page_size: nil, page_token: nil)
1791
+ # Pass arguments to `list_database_roles` via keyword arguments. Note that at
1792
+ # least one keyword argument is required. To specify no parameters, or to keep all
1793
+ # the default parameter values, pass an empty Hash as a request object (see above).
1794
+ #
1795
+ # @param parent [::String]
1796
+ # Required. The database whose roles should be listed.
1797
+ # Values are of the form
1798
+ # `projects/<project>/instances/<instance>/databases/<database>/databaseRoles`.
1799
+ # @param page_size [::Integer]
1800
+ # Number of database roles to be returned in the response. If 0 or less,
1801
+ # defaults to the server's maximum allowed page size.
1802
+ # @param page_token [::String]
1803
+ # If non-empty, `page_token` should contain a
1804
+ # {::Google::Cloud::Spanner::Admin::Database::V1::ListDatabaseRolesResponse#next_page_token next_page_token} from a
1805
+ # previous {::Google::Cloud::Spanner::Admin::Database::V1::ListDatabaseRolesResponse ListDatabaseRolesResponse}.
1806
+ # @yield [result, operation] Access the result along with the TransportOperation object
1807
+ # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Spanner::Admin::Database::V1::DatabaseRole>]
1808
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
1809
+ #
1810
+ # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Spanner::Admin::Database::V1::DatabaseRole>]
1811
+ #
1812
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
1813
+ def list_database_roles request, options = nil
1814
+ raise ::ArgumentError, "request must be provided" if request.nil?
1815
+
1816
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Spanner::Admin::Database::V1::ListDatabaseRolesRequest
1817
+
1818
+ # Converts hash and nil to an options object
1819
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1820
+
1821
+ # Customize the options with defaults
1822
+ call_metadata = @config.rpcs.list_database_roles.metadata.to_h
1823
+
1824
+ # Set x-goog-api-client and x-goog-user-project headers
1825
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
1826
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1827
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION,
1828
+ transports_version_send: [:rest]
1829
+
1830
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1831
+
1832
+ options.apply_defaults timeout: @config.rpcs.list_database_roles.timeout,
1833
+ metadata: call_metadata,
1834
+ retry_policy: @config.rpcs.list_database_roles.retry_policy
1835
+
1836
+ options.apply_defaults timeout: @config.timeout,
1837
+ metadata: @config.metadata,
1838
+ retry_policy: @config.retry_policy
1839
+
1840
+ @database_admin_stub.list_database_roles request, options do |result, operation|
1841
+ result = ::Gapic::Rest::PagedEnumerable.new @database_admin_stub, :list_database_roles, "database_roles", request, result, options
1842
+ yield result, operation if block_given?
1843
+ return result
1844
+ end
1845
+ rescue ::Gapic::Rest::Error => e
1846
+ raise ::Google::Cloud::Error.from_error(e)
1847
+ end
1848
+
1849
+ ##
1850
+ # Configuration class for the DatabaseAdmin REST API.
1851
+ #
1852
+ # This class represents the configuration for DatabaseAdmin REST,
1853
+ # providing control over timeouts, retry behavior, logging, transport
1854
+ # parameters, and other low-level controls. Certain parameters can also be
1855
+ # applied individually to specific RPCs. See
1856
+ # {::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Rest::Client::Configuration::Rpcs}
1857
+ # for a list of RPCs that can be configured independently.
1858
+ #
1859
+ # Configuration can be applied globally to all clients, or to a single client
1860
+ # on construction.
1861
+ #
1862
+ # @example
1863
+ #
1864
+ # # Modify the global config, setting the timeout for
1865
+ # # list_databases to 20 seconds,
1866
+ # # and all remaining timeouts to 10 seconds.
1867
+ # ::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Rest::Client.configure do |config|
1868
+ # config.timeout = 10.0
1869
+ # config.rpcs.list_databases.timeout = 20.0
1870
+ # end
1871
+ #
1872
+ # # Apply the above configuration only to a new client.
1873
+ # client = ::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Rest::Client.new do |config|
1874
+ # config.timeout = 10.0
1875
+ # config.rpcs.list_databases.timeout = 20.0
1876
+ # end
1877
+ #
1878
+ # @!attribute [rw] endpoint
1879
+ # The hostname or hostname:port of the service endpoint.
1880
+ # Defaults to `"spanner.googleapis.com"`.
1881
+ # @return [::String]
1882
+ # @!attribute [rw] credentials
1883
+ # Credentials to send with calls. You may provide any of the following types:
1884
+ # * (`String`) The path to a service account key file in JSON format
1885
+ # * (`Hash`) A service account key as a Hash
1886
+ # * (`Google::Auth::Credentials`) A googleauth credentials object
1887
+ # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
1888
+ # * (`Signet::OAuth2::Client`) A signet oauth2 client object
1889
+ # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
1890
+ # * (`nil`) indicating no credentials
1891
+ # @return [::Object]
1892
+ # @!attribute [rw] scope
1893
+ # The OAuth scopes
1894
+ # @return [::Array<::String>]
1895
+ # @!attribute [rw] lib_name
1896
+ # The library name as recorded in instrumentation and logging
1897
+ # @return [::String]
1898
+ # @!attribute [rw] lib_version
1899
+ # The library version as recorded in instrumentation and logging
1900
+ # @return [::String]
1901
+ # @!attribute [rw] timeout
1902
+ # The call timeout in seconds.
1903
+ # @return [::Numeric]
1904
+ # @!attribute [rw] metadata
1905
+ # Additional headers to be sent with the call.
1906
+ # @return [::Hash{::Symbol=>::String}]
1907
+ # @!attribute [rw] retry_policy
1908
+ # The retry policy. The value is a hash with the following keys:
1909
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
1910
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
1911
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
1912
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
1913
+ # trigger a retry.
1914
+ # @return [::Hash]
1915
+ # @!attribute [rw] quota_project
1916
+ # A separate project against which to charge quota.
1917
+ # @return [::String]
1918
+ #
1919
+ class Configuration
1920
+ extend ::Gapic::Config
1921
+
1922
+ config_attr :endpoint, "spanner.googleapis.com", ::String
1923
+ config_attr :credentials, nil do |value|
1924
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
1925
+ allowed.any? { |klass| klass === value }
1926
+ end
1927
+ config_attr :scope, nil, ::String, ::Array, nil
1928
+ config_attr :lib_name, nil, ::String, nil
1929
+ config_attr :lib_version, nil, ::String, nil
1930
+ config_attr :timeout, nil, ::Numeric, nil
1931
+ config_attr :metadata, nil, ::Hash, nil
1932
+ config_attr :retry_policy, nil, ::Hash, ::Proc, nil
1933
+ config_attr :quota_project, nil, ::String, nil
1934
+
1935
+ # @private
1936
+ def initialize parent_config = nil
1937
+ @parent_config = parent_config unless parent_config.nil?
1938
+
1939
+ yield self if block_given?
1940
+ end
1941
+
1942
+ ##
1943
+ # Configurations for individual RPCs
1944
+ # @return [Rpcs]
1945
+ #
1946
+ def rpcs
1947
+ @rpcs ||= begin
1948
+ parent_rpcs = nil
1949
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
1950
+ Rpcs.new parent_rpcs
1951
+ end
1952
+ end
1953
+
1954
+ ##
1955
+ # Configuration RPC class for the DatabaseAdmin API.
1956
+ #
1957
+ # Includes fields providing the configuration for each RPC in this service.
1958
+ # Each configuration object is of type `Gapic::Config::Method` and includes
1959
+ # the following configuration fields:
1960
+ #
1961
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
1962
+ # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers
1963
+ # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
1964
+ # include the following keys:
1965
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
1966
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
1967
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
1968
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
1969
+ # trigger a retry.
1970
+ #
1971
+ class Rpcs
1972
+ ##
1973
+ # RPC-specific configuration for `list_databases`
1974
+ # @return [::Gapic::Config::Method]
1975
+ #
1976
+ attr_reader :list_databases
1977
+ ##
1978
+ # RPC-specific configuration for `create_database`
1979
+ # @return [::Gapic::Config::Method]
1980
+ #
1981
+ attr_reader :create_database
1982
+ ##
1983
+ # RPC-specific configuration for `get_database`
1984
+ # @return [::Gapic::Config::Method]
1985
+ #
1986
+ attr_reader :get_database
1987
+ ##
1988
+ # RPC-specific configuration for `update_database_ddl`
1989
+ # @return [::Gapic::Config::Method]
1990
+ #
1991
+ attr_reader :update_database_ddl
1992
+ ##
1993
+ # RPC-specific configuration for `drop_database`
1994
+ # @return [::Gapic::Config::Method]
1995
+ #
1996
+ attr_reader :drop_database
1997
+ ##
1998
+ # RPC-specific configuration for `get_database_ddl`
1999
+ # @return [::Gapic::Config::Method]
2000
+ #
2001
+ attr_reader :get_database_ddl
2002
+ ##
2003
+ # RPC-specific configuration for `set_iam_policy`
2004
+ # @return [::Gapic::Config::Method]
2005
+ #
2006
+ attr_reader :set_iam_policy
2007
+ ##
2008
+ # RPC-specific configuration for `get_iam_policy`
2009
+ # @return [::Gapic::Config::Method]
2010
+ #
2011
+ attr_reader :get_iam_policy
2012
+ ##
2013
+ # RPC-specific configuration for `test_iam_permissions`
2014
+ # @return [::Gapic::Config::Method]
2015
+ #
2016
+ attr_reader :test_iam_permissions
2017
+ ##
2018
+ # RPC-specific configuration for `create_backup`
2019
+ # @return [::Gapic::Config::Method]
2020
+ #
2021
+ attr_reader :create_backup
2022
+ ##
2023
+ # RPC-specific configuration for `copy_backup`
2024
+ # @return [::Gapic::Config::Method]
2025
+ #
2026
+ attr_reader :copy_backup
2027
+ ##
2028
+ # RPC-specific configuration for `get_backup`
2029
+ # @return [::Gapic::Config::Method]
2030
+ #
2031
+ attr_reader :get_backup
2032
+ ##
2033
+ # RPC-specific configuration for `update_backup`
2034
+ # @return [::Gapic::Config::Method]
2035
+ #
2036
+ attr_reader :update_backup
2037
+ ##
2038
+ # RPC-specific configuration for `delete_backup`
2039
+ # @return [::Gapic::Config::Method]
2040
+ #
2041
+ attr_reader :delete_backup
2042
+ ##
2043
+ # RPC-specific configuration for `list_backups`
2044
+ # @return [::Gapic::Config::Method]
2045
+ #
2046
+ attr_reader :list_backups
2047
+ ##
2048
+ # RPC-specific configuration for `restore_database`
2049
+ # @return [::Gapic::Config::Method]
2050
+ #
2051
+ attr_reader :restore_database
2052
+ ##
2053
+ # RPC-specific configuration for `list_database_operations`
2054
+ # @return [::Gapic::Config::Method]
2055
+ #
2056
+ attr_reader :list_database_operations
2057
+ ##
2058
+ # RPC-specific configuration for `list_backup_operations`
2059
+ # @return [::Gapic::Config::Method]
2060
+ #
2061
+ attr_reader :list_backup_operations
2062
+ ##
2063
+ # RPC-specific configuration for `list_database_roles`
2064
+ # @return [::Gapic::Config::Method]
2065
+ #
2066
+ attr_reader :list_database_roles
2067
+
2068
+ # @private
2069
+ def initialize parent_rpcs = nil
2070
+ list_databases_config = parent_rpcs.list_databases if parent_rpcs.respond_to? :list_databases
2071
+ @list_databases = ::Gapic::Config::Method.new list_databases_config
2072
+ create_database_config = parent_rpcs.create_database if parent_rpcs.respond_to? :create_database
2073
+ @create_database = ::Gapic::Config::Method.new create_database_config
2074
+ get_database_config = parent_rpcs.get_database if parent_rpcs.respond_to? :get_database
2075
+ @get_database = ::Gapic::Config::Method.new get_database_config
2076
+ update_database_ddl_config = parent_rpcs.update_database_ddl if parent_rpcs.respond_to? :update_database_ddl
2077
+ @update_database_ddl = ::Gapic::Config::Method.new update_database_ddl_config
2078
+ drop_database_config = parent_rpcs.drop_database if parent_rpcs.respond_to? :drop_database
2079
+ @drop_database = ::Gapic::Config::Method.new drop_database_config
2080
+ get_database_ddl_config = parent_rpcs.get_database_ddl if parent_rpcs.respond_to? :get_database_ddl
2081
+ @get_database_ddl = ::Gapic::Config::Method.new get_database_ddl_config
2082
+ set_iam_policy_config = parent_rpcs.set_iam_policy if parent_rpcs.respond_to? :set_iam_policy
2083
+ @set_iam_policy = ::Gapic::Config::Method.new set_iam_policy_config
2084
+ get_iam_policy_config = parent_rpcs.get_iam_policy if parent_rpcs.respond_to? :get_iam_policy
2085
+ @get_iam_policy = ::Gapic::Config::Method.new get_iam_policy_config
2086
+ test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions
2087
+ @test_iam_permissions = ::Gapic::Config::Method.new test_iam_permissions_config
2088
+ create_backup_config = parent_rpcs.create_backup if parent_rpcs.respond_to? :create_backup
2089
+ @create_backup = ::Gapic::Config::Method.new create_backup_config
2090
+ copy_backup_config = parent_rpcs.copy_backup if parent_rpcs.respond_to? :copy_backup
2091
+ @copy_backup = ::Gapic::Config::Method.new copy_backup_config
2092
+ get_backup_config = parent_rpcs.get_backup if parent_rpcs.respond_to? :get_backup
2093
+ @get_backup = ::Gapic::Config::Method.new get_backup_config
2094
+ update_backup_config = parent_rpcs.update_backup if parent_rpcs.respond_to? :update_backup
2095
+ @update_backup = ::Gapic::Config::Method.new update_backup_config
2096
+ delete_backup_config = parent_rpcs.delete_backup if parent_rpcs.respond_to? :delete_backup
2097
+ @delete_backup = ::Gapic::Config::Method.new delete_backup_config
2098
+ list_backups_config = parent_rpcs.list_backups if parent_rpcs.respond_to? :list_backups
2099
+ @list_backups = ::Gapic::Config::Method.new list_backups_config
2100
+ restore_database_config = parent_rpcs.restore_database if parent_rpcs.respond_to? :restore_database
2101
+ @restore_database = ::Gapic::Config::Method.new restore_database_config
2102
+ list_database_operations_config = parent_rpcs.list_database_operations if parent_rpcs.respond_to? :list_database_operations
2103
+ @list_database_operations = ::Gapic::Config::Method.new list_database_operations_config
2104
+ list_backup_operations_config = parent_rpcs.list_backup_operations if parent_rpcs.respond_to? :list_backup_operations
2105
+ @list_backup_operations = ::Gapic::Config::Method.new list_backup_operations_config
2106
+ list_database_roles_config = parent_rpcs.list_database_roles if parent_rpcs.respond_to? :list_database_roles
2107
+ @list_database_roles = ::Gapic::Config::Method.new list_database_roles_config
2108
+
2109
+ yield self if block_given?
2110
+ end
2111
+ end
2112
+ end
2113
+ end
2114
+ end
2115
+ end
2116
+ end
2117
+ end
2118
+ end
2119
+ end
2120
+ end
2121
+ end