google-cloud-spanner-admin-database-v1 0.2.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -67,7 +67,7 @@ module Google
67
67
  parent_config = while namespace.any?
68
68
  parent_name = namespace.join "::"
69
69
  parent_const = const_get parent_name
70
- break parent_const.configure if parent_const&.respond_to? :configure
70
+ break parent_const.configure if parent_const.respond_to? :configure
71
71
  namespace.pop
72
72
  end
73
73
  default_config = Client::Configuration.new parent_config
@@ -75,9 +75,9 @@ module Google
75
75
  default_config.rpcs.list_databases.timeout = 3600.0
76
76
  default_config.rpcs.list_databases.retry_policy = {
77
77
  initial_delay: 1.0,
78
- max_delay: 32.0,
79
- multiplier: 1.3,
80
- retry_codes: [14, 4]
78
+ max_delay: 32.0,
79
+ multiplier: 1.3,
80
+ retry_codes: [14, 4]
81
81
  }
82
82
 
83
83
  default_config.rpcs.create_database.timeout = 3600.0
@@ -85,33 +85,33 @@ module Google
85
85
  default_config.rpcs.get_database.timeout = 3600.0
86
86
  default_config.rpcs.get_database.retry_policy = {
87
87
  initial_delay: 1.0,
88
- max_delay: 32.0,
89
- multiplier: 1.3,
90
- retry_codes: [14, 4]
88
+ max_delay: 32.0,
89
+ multiplier: 1.3,
90
+ retry_codes: [14, 4]
91
91
  }
92
92
 
93
93
  default_config.rpcs.update_database_ddl.timeout = 3600.0
94
94
  default_config.rpcs.update_database_ddl.retry_policy = {
95
95
  initial_delay: 1.0,
96
- max_delay: 32.0,
97
- multiplier: 1.3,
98
- retry_codes: [14, 4]
96
+ max_delay: 32.0,
97
+ multiplier: 1.3,
98
+ retry_codes: [14, 4]
99
99
  }
100
100
 
101
101
  default_config.rpcs.drop_database.timeout = 3600.0
102
102
  default_config.rpcs.drop_database.retry_policy = {
103
103
  initial_delay: 1.0,
104
- max_delay: 32.0,
105
- multiplier: 1.3,
106
- retry_codes: [14, 4]
104
+ max_delay: 32.0,
105
+ multiplier: 1.3,
106
+ retry_codes: [14, 4]
107
107
  }
108
108
 
109
109
  default_config.rpcs.get_database_ddl.timeout = 3600.0
110
110
  default_config.rpcs.get_database_ddl.retry_policy = {
111
111
  initial_delay: 1.0,
112
- max_delay: 32.0,
113
- multiplier: 1.3,
114
- retry_codes: [14, 4]
112
+ max_delay: 32.0,
113
+ multiplier: 1.3,
114
+ retry_codes: [14, 4]
115
115
  }
116
116
 
117
117
  default_config.rpcs.set_iam_policy.timeout = 30.0
@@ -119,9 +119,9 @@ module Google
119
119
  default_config.rpcs.get_iam_policy.timeout = 30.0
120
120
  default_config.rpcs.get_iam_policy.retry_policy = {
121
121
  initial_delay: 1.0,
122
- max_delay: 32.0,
123
- multiplier: 1.3,
124
- retry_codes: [14, 4]
122
+ max_delay: 32.0,
123
+ multiplier: 1.3,
124
+ retry_codes: [14, 4]
125
125
  }
126
126
 
127
127
  default_config.rpcs.test_iam_permissions.timeout = 30.0
@@ -131,33 +131,33 @@ module Google
131
131
  default_config.rpcs.get_backup.timeout = 3600.0
132
132
  default_config.rpcs.get_backup.retry_policy = {
133
133
  initial_delay: 1.0,
134
- max_delay: 32.0,
135
- multiplier: 1.3,
136
- retry_codes: [14, 4]
134
+ max_delay: 32.0,
135
+ multiplier: 1.3,
136
+ retry_codes: [14, 4]
137
137
  }
138
138
 
139
139
  default_config.rpcs.update_backup.timeout = 3600.0
140
140
  default_config.rpcs.update_backup.retry_policy = {
141
141
  initial_delay: 1.0,
142
- max_delay: 32.0,
143
- multiplier: 1.3,
144
- retry_codes: [14, 4]
142
+ max_delay: 32.0,
143
+ multiplier: 1.3,
144
+ retry_codes: [14, 4]
145
145
  }
146
146
 
147
147
  default_config.rpcs.delete_backup.timeout = 3600.0
148
148
  default_config.rpcs.delete_backup.retry_policy = {
149
149
  initial_delay: 1.0,
150
- max_delay: 32.0,
151
- multiplier: 1.3,
152
- retry_codes: [14, 4]
150
+ max_delay: 32.0,
151
+ multiplier: 1.3,
152
+ retry_codes: [14, 4]
153
153
  }
154
154
 
155
155
  default_config.rpcs.list_backups.timeout = 3600.0
156
156
  default_config.rpcs.list_backups.retry_policy = {
157
157
  initial_delay: 1.0,
158
- max_delay: 32.0,
159
- multiplier: 1.3,
160
- retry_codes: [14, 4]
158
+ max_delay: 32.0,
159
+ multiplier: 1.3,
160
+ retry_codes: [14, 4]
161
161
  }
162
162
 
163
163
  default_config.rpcs.restore_database.timeout = 3600.0
@@ -165,17 +165,17 @@ module Google
165
165
  default_config.rpcs.list_database_operations.timeout = 3600.0
166
166
  default_config.rpcs.list_database_operations.retry_policy = {
167
167
  initial_delay: 1.0,
168
- max_delay: 32.0,
169
- multiplier: 1.3,
170
- retry_codes: [14, 4]
168
+ max_delay: 32.0,
169
+ multiplier: 1.3,
170
+ retry_codes: [14, 4]
171
171
  }
172
172
 
173
173
  default_config.rpcs.list_backup_operations.timeout = 3600.0
174
174
  default_config.rpcs.list_backup_operations.retry_policy = {
175
175
  initial_delay: 1.0,
176
- max_delay: 32.0,
177
- multiplier: 1.3,
178
- retry_codes: [14, 4]
176
+ max_delay: 32.0,
177
+ multiplier: 1.3,
178
+ retry_codes: [14, 4]
179
179
  }
180
180
 
181
181
  default_config
@@ -239,7 +239,13 @@ module Google
239
239
 
240
240
  # Create credentials
241
241
  credentials = @config.credentials
242
- credentials ||= Credentials.default scope: @config.scope
242
+ # Use self-signed JWT if the scope and endpoint are unchanged from default,
243
+ # but only if the default endpoint does not have a region prefix.
244
+ enable_self_signed_jwt = @config.scope == Client.configure.scope &&
245
+ @config.endpoint == Client.configure.endpoint &&
246
+ !@config.endpoint.split(".").first.include?("-")
247
+ credentials ||= Credentials.default scope: @config.scope,
248
+ enable_self_signed_jwt: enable_self_signed_jwt
243
249
  if credentials.is_a?(String) || credentials.is_a?(Hash)
244
250
  credentials = Credentials.new credentials, scope: @config.scope
245
251
  end
@@ -364,7 +370,7 @@ module Google
364
370
  # @param options [::Gapic::CallOptions, ::Hash]
365
371
  # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
366
372
  #
367
- # @overload create_database(parent: nil, create_statement: nil, extra_statements: nil)
373
+ # @overload create_database(parent: nil, create_statement: nil, extra_statements: nil, encryption_config: nil)
368
374
  # Pass arguments to `create_database` via keyword arguments. Note that at
369
375
  # least one keyword argument is required. To specify no parameters, or to keep all
370
376
  # the default parameter values, pass an empty Hash as a request object (see above).
@@ -383,6 +389,10 @@ module Google
383
389
  # database. Statements can create tables, indexes, etc. These
384
390
  # statements execute atomically with the creation of the database:
385
391
  # if there is an error in any statement, the database is not created.
392
+ # @param encryption_config [::Google::Cloud::Spanner::Admin::Database::V1::EncryptionConfig, ::Hash]
393
+ # Optional. The encryption configuration for the database. If this field is not
394
+ # specified, Cloud Spanner will encrypt/decrypt all data at rest using
395
+ # Google default encryption.
386
396
  #
387
397
  # @yield [response, operation] Access the result along with the RPC operation
388
398
  # @yieldparam response [::Gapic::Operation]
@@ -682,6 +692,8 @@ module Google
682
692
  #
683
693
  # @param database [::String]
684
694
  # Required. The database whose schema we wish to get.
695
+ # Values are of the form
696
+ # `projects/<project>/instances/<instance>/databases/<database>`
685
697
  #
686
698
  # @yield [response, operation] Access the result along with the RPC operation
687
699
  # @yieldparam response [::Google::Cloud::Spanner::Admin::Database::V1::GetDatabaseDdlResponse]
@@ -988,7 +1000,7 @@ module Google
988
1000
  # @param options [::Gapic::CallOptions, ::Hash]
989
1001
  # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
990
1002
  #
991
- # @overload create_backup(parent: nil, backup_id: nil, backup: nil)
1003
+ # @overload create_backup(parent: nil, backup_id: nil, backup: nil, encryption_config: nil)
992
1004
  # Pass arguments to `create_backup` via keyword arguments. Note that at
993
1005
  # least one keyword argument is required. To specify no parameters, or to keep all
994
1006
  # the default parameter values, pass an empty Hash as a request object (see above).
@@ -1006,6 +1018,12 @@ module Google
1006
1018
  # `projects/<project>/instances/<instance>/backups/<backup_id>`.
1007
1019
  # @param backup [::Google::Cloud::Spanner::Admin::Database::V1::Backup, ::Hash]
1008
1020
  # Required. The backup to create.
1021
+ # @param encryption_config [::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupEncryptionConfig, ::Hash]
1022
+ # Optional. The encryption configuration used to encrypt the backup. If this field is
1023
+ # not specified, the backup will use the same
1024
+ # encryption configuration as the database by default, namely
1025
+ # {::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupEncryptionConfig#encryption_type encryption_type} =
1026
+ # `USE_DATABASE_ENCRYPTION`.
1009
1027
  #
1010
1028
  # @yield [response, operation] Access the result along with the RPC operation
1011
1029
  # @yieldparam response [::Gapic::Operation]
@@ -1301,8 +1319,9 @@ module Google
1301
1319
  # * `name`
1302
1320
  # * `database`
1303
1321
  # * `state`
1304
- # * `create_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
1305
- # * `expire_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
1322
+ # * `create_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
1323
+ # * `expire_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
1324
+ # * `version_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
1306
1325
  # * `size_bytes`
1307
1326
  #
1308
1327
  # You can combine multiple expressions by enclosing each expression in
@@ -1406,7 +1425,7 @@ module Google
1406
1425
  # @param options [::Gapic::CallOptions, ::Hash]
1407
1426
  # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1408
1427
  #
1409
- # @overload restore_database(parent: nil, database_id: nil, backup: nil)
1428
+ # @overload restore_database(parent: nil, database_id: nil, backup: nil, encryption_config: nil)
1410
1429
  # Pass arguments to `restore_database` via keyword arguments. Note that at
1411
1430
  # least one keyword argument is required. To specify no parameters, or to keep all
1412
1431
  # the default parameter values, pass an empty Hash as a request object (see above).
@@ -1425,6 +1444,13 @@ module Google
1425
1444
  # @param backup [::String]
1426
1445
  # Name of the backup from which to restore. Values are of the form
1427
1446
  # `projects/<project>/instances/<instance>/backups/<backup>`.
1447
+ # @param encryption_config [::Google::Cloud::Spanner::Admin::Database::V1::RestoreDatabaseEncryptionConfig, ::Hash]
1448
+ # Optional. An encryption configuration describing the encryption type and key
1449
+ # resources in Cloud KMS used to encrypt/decrypt the database to restore to.
1450
+ # If this field is not specified, the restored database will use
1451
+ # the same encryption configuration as the backup by default, namely
1452
+ # {::Google::Cloud::Spanner::Admin::Database::V1::RestoreDatabaseEncryptionConfig#encryption_type encryption_type} =
1453
+ # `USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION`.
1428
1454
  #
1429
1455
  # @yield [response, operation] Access the result along with the RPC operation
1430
1456
  # @yieldparam response [::Gapic::Operation]
@@ -1529,11 +1555,11 @@ module Google
1529
1555
  # Here are a few examples:
1530
1556
  #
1531
1557
  # * `done:true` - The operation is complete.
1532
- # * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata) AND` <br/>
1533
- # `(metadata.source_type:BACKUP) AND` <br/>
1534
- # `(metadata.backup_info.backup:backup_howl) AND` <br/>
1535
- # `(metadata.name:restored_howl) AND` <br/>
1536
- # `(metadata.progress.start_time < \"2018-03-28T14:50:00Z\") AND` <br/>
1558
+ # * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata) AND` \
1559
+ # `(metadata.source_type:BACKUP) AND` \
1560
+ # `(metadata.backup_info.backup:backup_howl) AND` \
1561
+ # `(metadata.name:restored_howl) AND` \
1562
+ # `(metadata.progress.start_time < \"2018-03-28T14:50:00Z\") AND` \
1537
1563
  # `(error:*)` - Return operations where:
1538
1564
  # * The operation's metadata type is {::Google::Cloud::Spanner::Admin::Database::V1::RestoreDatabaseMetadata RestoreDatabaseMetadata}.
1539
1565
  # * The database is restored from a backup.
@@ -1658,9 +1684,9 @@ module Google
1658
1684
  # * `done:true` - The operation is complete.
1659
1685
  # * `metadata.database:prod` - The database the backup was taken from has
1660
1686
  # a name containing the string "prod".
1661
- # * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` <br/>
1662
- # `(metadata.name:howl) AND` <br/>
1663
- # `(metadata.progress.start_time < \"2018-03-28T14:50:00Z\") AND` <br/>
1687
+ # * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \
1688
+ # `(metadata.name:howl) AND` \
1689
+ # `(metadata.progress.start_time < \"2018-03-28T14:50:00Z\") AND` \
1664
1690
  # `(error:*)` - Returns operations where:
1665
1691
  # * The operation's metadata type is {::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupMetadata CreateBackupMetadata}.
1666
1692
  # * The backup name contains the string "howl".
@@ -1814,7 +1840,7 @@ module Google
1814
1840
  config_attr :scope, nil, ::String, ::Array, nil
1815
1841
  config_attr :lib_name, nil, ::String, nil
1816
1842
  config_attr :lib_version, nil, ::String, nil
1817
- config_attr(:channel_args, { "grpc.service_config_disable_resolution"=>1 }, ::Hash, nil)
1843
+ config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil)
1818
1844
  config_attr :interceptors, nil, ::Array, nil
1819
1845
  config_attr :timeout, nil, ::Numeric, nil
1820
1846
  config_attr :metadata, nil, ::Hash, nil
@@ -1835,7 +1861,7 @@ module Google
1835
1861
  def rpcs
1836
1862
  @rpcs ||= begin
1837
1863
  parent_rpcs = nil
1838
- parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config&.respond_to?(:rpcs)
1864
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
1839
1865
  Rpcs.new parent_rpcs
1840
1866
  end
1841
1867
  end
@@ -1946,39 +1972,39 @@ module Google
1946
1972
 
1947
1973
  # @private
1948
1974
  def initialize parent_rpcs = nil
1949
- list_databases_config = parent_rpcs&.list_databases if parent_rpcs&.respond_to? :list_databases
1975
+ list_databases_config = parent_rpcs.list_databases if parent_rpcs.respond_to? :list_databases
1950
1976
  @list_databases = ::Gapic::Config::Method.new list_databases_config
1951
- create_database_config = parent_rpcs&.create_database if parent_rpcs&.respond_to? :create_database
1977
+ create_database_config = parent_rpcs.create_database if parent_rpcs.respond_to? :create_database
1952
1978
  @create_database = ::Gapic::Config::Method.new create_database_config
1953
- get_database_config = parent_rpcs&.get_database if parent_rpcs&.respond_to? :get_database
1979
+ get_database_config = parent_rpcs.get_database if parent_rpcs.respond_to? :get_database
1954
1980
  @get_database = ::Gapic::Config::Method.new get_database_config
1955
- update_database_ddl_config = parent_rpcs&.update_database_ddl if parent_rpcs&.respond_to? :update_database_ddl
1981
+ update_database_ddl_config = parent_rpcs.update_database_ddl if parent_rpcs.respond_to? :update_database_ddl
1956
1982
  @update_database_ddl = ::Gapic::Config::Method.new update_database_ddl_config
1957
- drop_database_config = parent_rpcs&.drop_database if parent_rpcs&.respond_to? :drop_database
1983
+ drop_database_config = parent_rpcs.drop_database if parent_rpcs.respond_to? :drop_database
1958
1984
  @drop_database = ::Gapic::Config::Method.new drop_database_config
1959
- get_database_ddl_config = parent_rpcs&.get_database_ddl if parent_rpcs&.respond_to? :get_database_ddl
1985
+ get_database_ddl_config = parent_rpcs.get_database_ddl if parent_rpcs.respond_to? :get_database_ddl
1960
1986
  @get_database_ddl = ::Gapic::Config::Method.new get_database_ddl_config
1961
- set_iam_policy_config = parent_rpcs&.set_iam_policy if parent_rpcs&.respond_to? :set_iam_policy
1987
+ set_iam_policy_config = parent_rpcs.set_iam_policy if parent_rpcs.respond_to? :set_iam_policy
1962
1988
  @set_iam_policy = ::Gapic::Config::Method.new set_iam_policy_config
1963
- get_iam_policy_config = parent_rpcs&.get_iam_policy if parent_rpcs&.respond_to? :get_iam_policy
1989
+ get_iam_policy_config = parent_rpcs.get_iam_policy if parent_rpcs.respond_to? :get_iam_policy
1964
1990
  @get_iam_policy = ::Gapic::Config::Method.new get_iam_policy_config
1965
- test_iam_permissions_config = parent_rpcs&.test_iam_permissions if parent_rpcs&.respond_to? :test_iam_permissions
1991
+ test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions
1966
1992
  @test_iam_permissions = ::Gapic::Config::Method.new test_iam_permissions_config
1967
- create_backup_config = parent_rpcs&.create_backup if parent_rpcs&.respond_to? :create_backup
1993
+ create_backup_config = parent_rpcs.create_backup if parent_rpcs.respond_to? :create_backup
1968
1994
  @create_backup = ::Gapic::Config::Method.new create_backup_config
1969
- get_backup_config = parent_rpcs&.get_backup if parent_rpcs&.respond_to? :get_backup
1995
+ get_backup_config = parent_rpcs.get_backup if parent_rpcs.respond_to? :get_backup
1970
1996
  @get_backup = ::Gapic::Config::Method.new get_backup_config
1971
- update_backup_config = parent_rpcs&.update_backup if parent_rpcs&.respond_to? :update_backup
1997
+ update_backup_config = parent_rpcs.update_backup if parent_rpcs.respond_to? :update_backup
1972
1998
  @update_backup = ::Gapic::Config::Method.new update_backup_config
1973
- delete_backup_config = parent_rpcs&.delete_backup if parent_rpcs&.respond_to? :delete_backup
1999
+ delete_backup_config = parent_rpcs.delete_backup if parent_rpcs.respond_to? :delete_backup
1974
2000
  @delete_backup = ::Gapic::Config::Method.new delete_backup_config
1975
- list_backups_config = parent_rpcs&.list_backups if parent_rpcs&.respond_to? :list_backups
2001
+ list_backups_config = parent_rpcs.list_backups if parent_rpcs.respond_to? :list_backups
1976
2002
  @list_backups = ::Gapic::Config::Method.new list_backups_config
1977
- restore_database_config = parent_rpcs&.restore_database if parent_rpcs&.respond_to? :restore_database
2003
+ restore_database_config = parent_rpcs.restore_database if parent_rpcs.respond_to? :restore_database
1978
2004
  @restore_database = ::Gapic::Config::Method.new restore_database_config
1979
- list_database_operations_config = parent_rpcs&.list_database_operations if parent_rpcs&.respond_to? :list_database_operations
2005
+ list_database_operations_config = parent_rpcs.list_database_operations if parent_rpcs.respond_to? :list_database_operations
1980
2006
  @list_database_operations = ::Gapic::Config::Method.new list_database_operations_config
1981
- list_backup_operations_config = parent_rpcs&.list_backup_operations if parent_rpcs&.respond_to? :list_backup_operations
2007
+ list_backup_operations_config = parent_rpcs.list_backup_operations if parent_rpcs.respond_to? :list_backup_operations
1982
2008
  @list_backup_operations = ::Gapic::Config::Method.new list_backup_operations_config
1983
2009
 
1984
2010
  yield self if block_given?
@@ -105,8 +105,13 @@ module Google
105
105
  # Lists operations that match the specified filter in the request. If the
106
106
  # server doesn't support this method, it returns `UNIMPLEMENTED`.
107
107
  #
108
- # NOTE: the `name` binding below allows API services to override the binding
109
- # to use different resource name schemes, such as `users/*/operations`.
108
+ # NOTE: the `name` binding allows API services to override the binding
109
+ # to use different resource name schemes, such as `users/*/operations`. To
110
+ # override the binding, API services can add a binding such as
111
+ # `"/v1/{name=users/*}/operations"` to their service configuration.
112
+ # For backwards compatibility, the default name includes the operations
113
+ # collection id, however overriding users must ensure the name binding
114
+ # is the parent resource, without the operations collection id.
110
115
  #
111
116
  # @overload list_operations(request, options = nil)
112
117
  # Pass arguments to `list_operations` via a request object, either of type
@@ -124,7 +129,7 @@ module Google
124
129
  # the default parameter values, pass an empty Hash as a request object (see above).
125
130
  #
126
131
  # @param name [::String]
127
- # The name of the operation collection.
132
+ # The name of the operation's parent resource.
128
133
  # @param filter [::String]
129
134
  # The standard list filter.
130
135
  # @param page_size [::Integer]
@@ -392,6 +397,79 @@ module Google
392
397
  raise ::Google::Cloud::Error.from_error(e)
393
398
  end
394
399
 
400
+ ##
401
+ # Waits for the specified long-running operation until it is done or reaches
402
+ # at most a specified timeout, returning the latest state. If the operation
403
+ # is already done, the latest state is immediately returned. If the timeout
404
+ # specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
405
+ # timeout is used. If the server does not support this method, it returns
406
+ # `google.rpc.Code.UNIMPLEMENTED`.
407
+ # Note that this method is on a best-effort basis. It may return the latest
408
+ # state before the specified timeout (including immediately), meaning even an
409
+ # immediate response is no guarantee that the operation is done.
410
+ #
411
+ # @overload wait_operation(request, options = nil)
412
+ # Pass arguments to `wait_operation` via a request object, either of type
413
+ # {::Google::Longrunning::WaitOperationRequest} or an equivalent Hash.
414
+ #
415
+ # @param request [::Google::Longrunning::WaitOperationRequest, ::Hash]
416
+ # A request object representing the call parameters. Required. To specify no
417
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
418
+ # @param options [::Gapic::CallOptions, ::Hash]
419
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
420
+ #
421
+ # @overload wait_operation(name: nil, timeout: nil)
422
+ # Pass arguments to `wait_operation` via keyword arguments. Note that at
423
+ # least one keyword argument is required. To specify no parameters, or to keep all
424
+ # the default parameter values, pass an empty Hash as a request object (see above).
425
+ #
426
+ # @param name [::String]
427
+ # The name of the operation resource to wait on.
428
+ # @param timeout [::Google::Protobuf::Duration, ::Hash]
429
+ # The maximum duration to wait before timing out. If left blank, the wait
430
+ # will be at most the time permitted by the underlying HTTP/RPC protocol.
431
+ # If RPC context deadline is also specified, the shorter one will be used.
432
+ #
433
+ # @yield [response, operation] Access the result along with the RPC operation
434
+ # @yieldparam response [::Gapic::Operation]
435
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
436
+ #
437
+ # @return [::Gapic::Operation]
438
+ #
439
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
440
+ #
441
+ def wait_operation request, options = nil
442
+ raise ::ArgumentError, "request must be provided" if request.nil?
443
+
444
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::WaitOperationRequest
445
+
446
+ # Converts hash and nil to an options object
447
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
448
+
449
+ # Customize the options with defaults
450
+ metadata = @config.rpcs.wait_operation.metadata.to_h
451
+
452
+ # Set x-goog-api-client and x-goog-user-project headers
453
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
454
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
455
+ gapic_version: ::Google::Cloud::Spanner::Admin::Database::V1::VERSION
456
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
457
+
458
+ options.apply_defaults timeout: @config.rpcs.wait_operation.timeout,
459
+ metadata: metadata,
460
+ retry_policy: @config.rpcs.wait_operation.retry_policy
461
+ options.apply_defaults metadata: @config.metadata,
462
+ retry_policy: @config.retry_policy
463
+
464
+ @operations_stub.call_rpc :wait_operation, request, options: options do |response, operation|
465
+ response = ::Gapic::Operation.new response, @operations_client, options: options
466
+ yield response, operation if block_given?
467
+ return response
468
+ end
469
+ rescue ::GRPC::BadStatus => e
470
+ raise ::Google::Cloud::Error.from_error(e)
471
+ end
472
+
395
473
  ##
396
474
  # Configuration class for the Operations API.
397
475
  #
@@ -484,7 +562,7 @@ module Google
484
562
  config_attr :scope, nil, ::String, ::Array, nil
485
563
  config_attr :lib_name, nil, ::String, nil
486
564
  config_attr :lib_version, nil, ::String, nil
487
- config_attr(:channel_args, { "grpc.service_config_disable_resolution"=>1 }, ::Hash, nil)
565
+ config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil)
488
566
  config_attr :interceptors, nil, ::Array, nil
489
567
  config_attr :timeout, nil, ::Numeric, nil
490
568
  config_attr :metadata, nil, ::Hash, nil
@@ -505,7 +583,7 @@ module Google
505
583
  def rpcs
506
584
  @rpcs ||= begin
507
585
  parent_rpcs = nil
508
- parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config&.respond_to?(:rpcs)
586
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
509
587
  Rpcs.new parent_rpcs
510
588
  end
511
589
  end
@@ -548,17 +626,24 @@ module Google
548
626
  # @return [::Gapic::Config::Method]
549
627
  #
550
628
  attr_reader :cancel_operation
629
+ ##
630
+ # RPC-specific configuration for `wait_operation`
631
+ # @return [::Gapic::Config::Method]
632
+ #
633
+ attr_reader :wait_operation
551
634
 
552
635
  # @private
553
636
  def initialize parent_rpcs = nil
554
- list_operations_config = parent_rpcs&.list_operations if parent_rpcs&.respond_to? :list_operations
637
+ list_operations_config = parent_rpcs.list_operations if parent_rpcs.respond_to? :list_operations
555
638
  @list_operations = ::Gapic::Config::Method.new list_operations_config
556
- get_operation_config = parent_rpcs&.get_operation if parent_rpcs&.respond_to? :get_operation
639
+ get_operation_config = parent_rpcs.get_operation if parent_rpcs.respond_to? :get_operation
557
640
  @get_operation = ::Gapic::Config::Method.new get_operation_config
558
- delete_operation_config = parent_rpcs&.delete_operation if parent_rpcs&.respond_to? :delete_operation
641
+ delete_operation_config = parent_rpcs.delete_operation if parent_rpcs.respond_to? :delete_operation
559
642
  @delete_operation = ::Gapic::Config::Method.new delete_operation_config
560
- cancel_operation_config = parent_rpcs&.cancel_operation if parent_rpcs&.respond_to? :cancel_operation
643
+ cancel_operation_config = parent_rpcs.cancel_operation if parent_rpcs.respond_to? :cancel_operation
561
644
  @cancel_operation = ::Gapic::Config::Method.new cancel_operation_config
645
+ wait_operation_config = parent_rpcs.wait_operation if parent_rpcs.respond_to? :wait_operation
646
+ @wait_operation = ::Gapic::Config::Method.new wait_operation_config
562
647
 
563
648
  yield self if block_given?
564
649
  end