google-cloud-assured_workloads-v1 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,756 @@
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/cloud/assuredworkloads/v1/assuredworkloads_pb"
21
+ require "google/cloud/assured_workloads/v1/assured_workloads_service/rest/service_stub"
22
+
23
+ module Google
24
+ module Cloud
25
+ module AssuredWorkloads
26
+ module V1
27
+ module AssuredWorkloadsService
28
+ module Rest
29
+ ##
30
+ # REST client for the AssuredWorkloadsService service.
31
+ #
32
+ # Service to manage AssuredWorkloads.
33
+ #
34
+ class Client
35
+ include Paths
36
+
37
+ # @private
38
+ attr_reader :assured_workloads_service_stub
39
+
40
+ ##
41
+ # Configure the AssuredWorkloadsService Client class.
42
+ #
43
+ # See {::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Rest::Client::Configuration}
44
+ # for a description of the configuration fields.
45
+ #
46
+ # @example
47
+ #
48
+ # # Modify the configuration for all AssuredWorkloadsService clients
49
+ # ::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Rest::Client.configure do |config|
50
+ # config.timeout = 10.0
51
+ # end
52
+ #
53
+ # @yield [config] Configure the Client client.
54
+ # @yieldparam config [Client::Configuration]
55
+ #
56
+ # @return [Client::Configuration]
57
+ #
58
+ def self.configure
59
+ @configure ||= begin
60
+ namespace = ["Google", "Cloud", "AssuredWorkloads", "V1"]
61
+ parent_config = while namespace.any?
62
+ parent_name = namespace.join "::"
63
+ parent_const = const_get parent_name
64
+ break parent_const.configure if parent_const.respond_to? :configure
65
+ namespace.pop
66
+ end
67
+ default_config = Client::Configuration.new parent_config
68
+
69
+ default_config.timeout = 60.0
70
+
71
+ default_config
72
+ end
73
+ yield @configure if block_given?
74
+ @configure
75
+ end
76
+
77
+ ##
78
+ # Configure the AssuredWorkloadsService Client instance.
79
+ #
80
+ # The configuration is set to the derived mode, meaning that values can be changed,
81
+ # but structural changes (adding new fields, etc.) are not allowed. Structural changes
82
+ # should be made on {Client.configure}.
83
+ #
84
+ # See {::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Rest::Client::Configuration}
85
+ # for a description of the configuration fields.
86
+ #
87
+ # @yield [config] Configure the Client client.
88
+ # @yieldparam config [Client::Configuration]
89
+ #
90
+ # @return [Client::Configuration]
91
+ #
92
+ def configure
93
+ yield @config if block_given?
94
+ @config
95
+ end
96
+
97
+ ##
98
+ # Create a new AssuredWorkloadsService REST client object.
99
+ #
100
+ # @example
101
+ #
102
+ # # Create a client using the default configuration
103
+ # client = ::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Rest::Client.new
104
+ #
105
+ # # Create a client using a custom configuration
106
+ # client = ::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Rest::Client.new do |config|
107
+ # config.timeout = 10.0
108
+ # end
109
+ #
110
+ # @yield [config] Configure the AssuredWorkloadsService client.
111
+ # @yieldparam config [Client::Configuration]
112
+ #
113
+ def initialize
114
+ # Create the configuration object
115
+ @config = Configuration.new Client.configure
116
+
117
+ # Yield the configuration if needed
118
+ yield @config if block_given?
119
+
120
+ # Create credentials
121
+ credentials = @config.credentials
122
+ # Use self-signed JWT if the endpoint is unchanged from default,
123
+ # but only if the default endpoint does not have a region prefix.
124
+ enable_self_signed_jwt = @config.endpoint == Configuration::DEFAULT_ENDPOINT &&
125
+ !@config.endpoint.split(".").first.include?("-")
126
+ credentials ||= Credentials.default scope: @config.scope,
127
+ enable_self_signed_jwt: enable_self_signed_jwt
128
+ if credentials.is_a?(::String) || credentials.is_a?(::Hash)
129
+ credentials = Credentials.new credentials, scope: @config.scope
130
+ end
131
+
132
+ @quota_project_id = @config.quota_project
133
+ @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
134
+
135
+ @operations_client = ::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Rest::Operations.new do |config|
136
+ config.credentials = credentials
137
+ config.quota_project = @quota_project_id
138
+ config.endpoint = @config.endpoint
139
+ end
140
+
141
+ @assured_workloads_service_stub = ::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Rest::ServiceStub.new endpoint: @config.endpoint, credentials: credentials
142
+ end
143
+
144
+ ##
145
+ # Get the associated client for long-running operations.
146
+ #
147
+ # @return [::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Rest::Operations]
148
+ #
149
+ attr_reader :operations_client
150
+
151
+ # Service calls
152
+
153
+ ##
154
+ # Creates Assured Workload.
155
+ #
156
+ # @overload create_workload(request, options = nil)
157
+ # Pass arguments to `create_workload` via a request object, either of type
158
+ # {::Google::Cloud::AssuredWorkloads::V1::CreateWorkloadRequest} or an equivalent Hash.
159
+ #
160
+ # @param request [::Google::Cloud::AssuredWorkloads::V1::CreateWorkloadRequest, ::Hash]
161
+ # A request object representing the call parameters. Required. To specify no
162
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
163
+ # @param options [::Gapic::CallOptions, ::Hash]
164
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
165
+ #
166
+ # @overload create_workload(parent: nil, workload: nil, external_id: nil)
167
+ # Pass arguments to `create_workload` via keyword arguments. Note that at
168
+ # least one keyword argument is required. To specify no parameters, or to keep all
169
+ # the default parameter values, pass an empty Hash as a request object (see above).
170
+ #
171
+ # @param parent [::String]
172
+ # Required. The resource name of the new Workload's parent.
173
+ # Must be of the form `organizations/{org_id}/locations/{location_id}`.
174
+ # @param workload [::Google::Cloud::AssuredWorkloads::V1::Workload, ::Hash]
175
+ # Required. Assured Workload to create
176
+ # @param external_id [::String]
177
+ # Optional. A identifier associated with the workload and underlying projects which
178
+ # allows for the break down of billing costs for a workload. The value
179
+ # provided for the identifier will add a label to the workload and contained
180
+ # projects with the identifier as the value.
181
+ # @yield [result, operation] Access the result along with the TransportOperation object
182
+ # @yieldparam result [::Gapic::Operation]
183
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
184
+ #
185
+ # @return [::Gapic::Operation]
186
+ #
187
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
188
+ def create_workload request, options = nil
189
+ raise ::ArgumentError, "request must be provided" if request.nil?
190
+
191
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AssuredWorkloads::V1::CreateWorkloadRequest
192
+
193
+ # Converts hash and nil to an options object
194
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
195
+
196
+ # Customize the options with defaults
197
+ call_metadata = @config.rpcs.create_workload.metadata.to_h
198
+
199
+ # Set x-goog-api-client and x-goog-user-project headers
200
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
201
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
202
+ gapic_version: ::Google::Cloud::AssuredWorkloads::V1::VERSION,
203
+ transports_version_send: [:rest]
204
+
205
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
206
+
207
+ options.apply_defaults timeout: @config.rpcs.create_workload.timeout,
208
+ metadata: call_metadata,
209
+ retry_policy: @config.rpcs.create_workload.retry_policy
210
+
211
+ options.apply_defaults timeout: @config.timeout,
212
+ metadata: @config.metadata,
213
+ retry_policy: @config.retry_policy
214
+
215
+ @assured_workloads_service_stub.create_workload request, options do |result, operation|
216
+ result = ::Gapic::Operation.new result, @operations_client, options: options
217
+ yield result, operation if block_given?
218
+ return result
219
+ end
220
+ rescue ::Gapic::Rest::Error => e
221
+ raise ::Google::Cloud::Error.from_error(e)
222
+ end
223
+
224
+ ##
225
+ # Updates an existing workload.
226
+ # Currently allows updating of workload display_name and labels.
227
+ # For force updates don't set etag field in the Workload.
228
+ # Only one update operation per workload can be in progress.
229
+ #
230
+ # @overload update_workload(request, options = nil)
231
+ # Pass arguments to `update_workload` via a request object, either of type
232
+ # {::Google::Cloud::AssuredWorkloads::V1::UpdateWorkloadRequest} or an equivalent Hash.
233
+ #
234
+ # @param request [::Google::Cloud::AssuredWorkloads::V1::UpdateWorkloadRequest, ::Hash]
235
+ # A request object representing the call parameters. Required. To specify no
236
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
237
+ # @param options [::Gapic::CallOptions, ::Hash]
238
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
239
+ #
240
+ # @overload update_workload(workload: nil, update_mask: nil)
241
+ # Pass arguments to `update_workload` via keyword arguments. Note that at
242
+ # least one keyword argument is required. To specify no parameters, or to keep all
243
+ # the default parameter values, pass an empty Hash as a request object (see above).
244
+ #
245
+ # @param workload [::Google::Cloud::AssuredWorkloads::V1::Workload, ::Hash]
246
+ # Required. The workload to update.
247
+ # The workload's `name` field is used to identify the workload to be updated.
248
+ # Format:
249
+ # organizations/\\{org_id}/locations/\\{location_id}/workloads/\\{workload_id}
250
+ # @param update_mask [::Google::Protobuf::FieldMask, ::Hash]
251
+ # Required. The list of fields to be updated.
252
+ # @yield [result, operation] Access the result along with the TransportOperation object
253
+ # @yieldparam result [::Google::Cloud::AssuredWorkloads::V1::Workload]
254
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
255
+ #
256
+ # @return [::Google::Cloud::AssuredWorkloads::V1::Workload]
257
+ #
258
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
259
+ def update_workload request, options = nil
260
+ raise ::ArgumentError, "request must be provided" if request.nil?
261
+
262
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AssuredWorkloads::V1::UpdateWorkloadRequest
263
+
264
+ # Converts hash and nil to an options object
265
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
266
+
267
+ # Customize the options with defaults
268
+ call_metadata = @config.rpcs.update_workload.metadata.to_h
269
+
270
+ # Set x-goog-api-client and x-goog-user-project headers
271
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
272
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
273
+ gapic_version: ::Google::Cloud::AssuredWorkloads::V1::VERSION,
274
+ transports_version_send: [:rest]
275
+
276
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
277
+
278
+ options.apply_defaults timeout: @config.rpcs.update_workload.timeout,
279
+ metadata: call_metadata,
280
+ retry_policy: @config.rpcs.update_workload.retry_policy
281
+
282
+ options.apply_defaults timeout: @config.timeout,
283
+ metadata: @config.metadata,
284
+ retry_policy: @config.retry_policy
285
+
286
+ @assured_workloads_service_stub.update_workload request, options do |result, operation|
287
+ yield result, operation if block_given?
288
+ return result
289
+ end
290
+ rescue ::Gapic::Rest::Error => e
291
+ raise ::Google::Cloud::Error.from_error(e)
292
+ end
293
+
294
+ ##
295
+ # Restrict the list of resources allowed in the Workload environment.
296
+ # The current list of allowed products can be found at
297
+ # https://cloud.google.com/assured-workloads/docs/supported-products
298
+ # In addition to assuredworkloads.workload.update permission, the user should
299
+ # also have orgpolicy.policy.set permission on the folder resource
300
+ # to use this functionality.
301
+ #
302
+ # @overload restrict_allowed_resources(request, options = nil)
303
+ # Pass arguments to `restrict_allowed_resources` via a request object, either of type
304
+ # {::Google::Cloud::AssuredWorkloads::V1::RestrictAllowedResourcesRequest} or an equivalent Hash.
305
+ #
306
+ # @param request [::Google::Cloud::AssuredWorkloads::V1::RestrictAllowedResourcesRequest, ::Hash]
307
+ # A request object representing the call parameters. Required. To specify no
308
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
309
+ # @param options [::Gapic::CallOptions, ::Hash]
310
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
311
+ #
312
+ # @overload restrict_allowed_resources(name: nil, restriction_type: nil)
313
+ # Pass arguments to `restrict_allowed_resources` via keyword arguments. Note that at
314
+ # least one keyword argument is required. To specify no parameters, or to keep all
315
+ # the default parameter values, pass an empty Hash as a request object (see above).
316
+ #
317
+ # @param name [::String]
318
+ # Required. The resource name of the Workload. This is the workloads's
319
+ # relative path in the API, formatted as
320
+ # "organizations/\\{organization_id}/locations/\\{location_id}/workloads/\\{workload_id}".
321
+ # For example,
322
+ # "organizations/123/locations/us-east1/workloads/assured-workload-1".
323
+ # @param restriction_type [::Google::Cloud::AssuredWorkloads::V1::RestrictAllowedResourcesRequest::RestrictionType]
324
+ # Required. The type of restriction for using gcp products in the Workload environment.
325
+ # @yield [result, operation] Access the result along with the TransportOperation object
326
+ # @yieldparam result [::Google::Cloud::AssuredWorkloads::V1::RestrictAllowedResourcesResponse]
327
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
328
+ #
329
+ # @return [::Google::Cloud::AssuredWorkloads::V1::RestrictAllowedResourcesResponse]
330
+ #
331
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
332
+ def restrict_allowed_resources request, options = nil
333
+ raise ::ArgumentError, "request must be provided" if request.nil?
334
+
335
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AssuredWorkloads::V1::RestrictAllowedResourcesRequest
336
+
337
+ # Converts hash and nil to an options object
338
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
339
+
340
+ # Customize the options with defaults
341
+ call_metadata = @config.rpcs.restrict_allowed_resources.metadata.to_h
342
+
343
+ # Set x-goog-api-client and x-goog-user-project headers
344
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
345
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
346
+ gapic_version: ::Google::Cloud::AssuredWorkloads::V1::VERSION,
347
+ transports_version_send: [:rest]
348
+
349
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
350
+
351
+ options.apply_defaults timeout: @config.rpcs.restrict_allowed_resources.timeout,
352
+ metadata: call_metadata,
353
+ retry_policy: @config.rpcs.restrict_allowed_resources.retry_policy
354
+
355
+ options.apply_defaults timeout: @config.timeout,
356
+ metadata: @config.metadata,
357
+ retry_policy: @config.retry_policy
358
+
359
+ @assured_workloads_service_stub.restrict_allowed_resources request, options do |result, operation|
360
+ yield result, operation if block_given?
361
+ return result
362
+ end
363
+ rescue ::Gapic::Rest::Error => e
364
+ raise ::Google::Cloud::Error.from_error(e)
365
+ end
366
+
367
+ ##
368
+ # Deletes the workload. Make sure that workload's direct children are already
369
+ # in a deleted state, otherwise the request will fail with a
370
+ # FAILED_PRECONDITION error.
371
+ #
372
+ # @overload delete_workload(request, options = nil)
373
+ # Pass arguments to `delete_workload` via a request object, either of type
374
+ # {::Google::Cloud::AssuredWorkloads::V1::DeleteWorkloadRequest} or an equivalent Hash.
375
+ #
376
+ # @param request [::Google::Cloud::AssuredWorkloads::V1::DeleteWorkloadRequest, ::Hash]
377
+ # A request object representing the call parameters. Required. To specify no
378
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
379
+ # @param options [::Gapic::CallOptions, ::Hash]
380
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
381
+ #
382
+ # @overload delete_workload(name: nil, etag: nil)
383
+ # Pass arguments to `delete_workload` via keyword arguments. Note that at
384
+ # least one keyword argument is required. To specify no parameters, or to keep all
385
+ # the default parameter values, pass an empty Hash as a request object (see above).
386
+ #
387
+ # @param name [::String]
388
+ # Required. The `name` field is used to identify the workload.
389
+ # Format:
390
+ # organizations/\\{org_id}/locations/\\{location_id}/workloads/\\{workload_id}
391
+ # @param etag [::String]
392
+ # Optional. The etag of the workload.
393
+ # If this is provided, it must match the server's etag.
394
+ # @yield [result, operation] Access the result along with the TransportOperation object
395
+ # @yieldparam result [::Google::Protobuf::Empty]
396
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
397
+ #
398
+ # @return [::Google::Protobuf::Empty]
399
+ #
400
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
401
+ def delete_workload request, options = nil
402
+ raise ::ArgumentError, "request must be provided" if request.nil?
403
+
404
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AssuredWorkloads::V1::DeleteWorkloadRequest
405
+
406
+ # Converts hash and nil to an options object
407
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
408
+
409
+ # Customize the options with defaults
410
+ call_metadata = @config.rpcs.delete_workload.metadata.to_h
411
+
412
+ # Set x-goog-api-client and x-goog-user-project headers
413
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
414
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
415
+ gapic_version: ::Google::Cloud::AssuredWorkloads::V1::VERSION,
416
+ transports_version_send: [:rest]
417
+
418
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
419
+
420
+ options.apply_defaults timeout: @config.rpcs.delete_workload.timeout,
421
+ metadata: call_metadata,
422
+ retry_policy: @config.rpcs.delete_workload.retry_policy
423
+
424
+ options.apply_defaults timeout: @config.timeout,
425
+ metadata: @config.metadata,
426
+ retry_policy: @config.retry_policy
427
+
428
+ @assured_workloads_service_stub.delete_workload request, options do |result, operation|
429
+ yield result, operation if block_given?
430
+ return result
431
+ end
432
+ rescue ::Gapic::Rest::Error => e
433
+ raise ::Google::Cloud::Error.from_error(e)
434
+ end
435
+
436
+ ##
437
+ # Gets Assured Workload associated with a CRM Node
438
+ #
439
+ # @overload get_workload(request, options = nil)
440
+ # Pass arguments to `get_workload` via a request object, either of type
441
+ # {::Google::Cloud::AssuredWorkloads::V1::GetWorkloadRequest} or an equivalent Hash.
442
+ #
443
+ # @param request [::Google::Cloud::AssuredWorkloads::V1::GetWorkloadRequest, ::Hash]
444
+ # A request object representing the call parameters. Required. To specify no
445
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
446
+ # @param options [::Gapic::CallOptions, ::Hash]
447
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
448
+ #
449
+ # @overload get_workload(name: nil)
450
+ # Pass arguments to `get_workload` via keyword arguments. Note that at
451
+ # least one keyword argument is required. To specify no parameters, or to keep all
452
+ # the default parameter values, pass an empty Hash as a request object (see above).
453
+ #
454
+ # @param name [::String]
455
+ # Required. The resource name of the Workload to fetch. This is the workload's
456
+ # relative path in the API, formatted as
457
+ # "organizations/\\{organization_id}/locations/\\{location_id}/workloads/\\{workload_id}".
458
+ # For example,
459
+ # "organizations/123/locations/us-east1/workloads/assured-workload-1".
460
+ # @yield [result, operation] Access the result along with the TransportOperation object
461
+ # @yieldparam result [::Google::Cloud::AssuredWorkloads::V1::Workload]
462
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
463
+ #
464
+ # @return [::Google::Cloud::AssuredWorkloads::V1::Workload]
465
+ #
466
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
467
+ def get_workload request, options = nil
468
+ raise ::ArgumentError, "request must be provided" if request.nil?
469
+
470
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AssuredWorkloads::V1::GetWorkloadRequest
471
+
472
+ # Converts hash and nil to an options object
473
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
474
+
475
+ # Customize the options with defaults
476
+ call_metadata = @config.rpcs.get_workload.metadata.to_h
477
+
478
+ # Set x-goog-api-client and x-goog-user-project headers
479
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
480
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
481
+ gapic_version: ::Google::Cloud::AssuredWorkloads::V1::VERSION,
482
+ transports_version_send: [:rest]
483
+
484
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
485
+
486
+ options.apply_defaults timeout: @config.rpcs.get_workload.timeout,
487
+ metadata: call_metadata,
488
+ retry_policy: @config.rpcs.get_workload.retry_policy
489
+
490
+ options.apply_defaults timeout: @config.timeout,
491
+ metadata: @config.metadata,
492
+ retry_policy: @config.retry_policy
493
+
494
+ @assured_workloads_service_stub.get_workload request, options do |result, operation|
495
+ yield result, operation if block_given?
496
+ return result
497
+ end
498
+ rescue ::Gapic::Rest::Error => e
499
+ raise ::Google::Cloud::Error.from_error(e)
500
+ end
501
+
502
+ ##
503
+ # Lists Assured Workloads under a CRM Node.
504
+ #
505
+ # @overload list_workloads(request, options = nil)
506
+ # Pass arguments to `list_workloads` via a request object, either of type
507
+ # {::Google::Cloud::AssuredWorkloads::V1::ListWorkloadsRequest} or an equivalent Hash.
508
+ #
509
+ # @param request [::Google::Cloud::AssuredWorkloads::V1::ListWorkloadsRequest, ::Hash]
510
+ # A request object representing the call parameters. Required. To specify no
511
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
512
+ # @param options [::Gapic::CallOptions, ::Hash]
513
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
514
+ #
515
+ # @overload list_workloads(parent: nil, page_size: nil, page_token: nil, filter: nil)
516
+ # Pass arguments to `list_workloads` via keyword arguments. Note that at
517
+ # least one keyword argument is required. To specify no parameters, or to keep all
518
+ # the default parameter values, pass an empty Hash as a request object (see above).
519
+ #
520
+ # @param parent [::String]
521
+ # Required. Parent Resource to list workloads from.
522
+ # Must be of the form `organizations/{org_id}/locations/{location}`.
523
+ # @param page_size [::Integer]
524
+ # Page size.
525
+ # @param page_token [::String]
526
+ # Page token returned from previous request. Page token contains context from
527
+ # previous request. Page token needs to be passed in the second and following
528
+ # requests.
529
+ # @param filter [::String]
530
+ # A custom filter for filtering by properties of a workload. At this time,
531
+ # only filtering by labels is supported.
532
+ # @yield [result, operation] Access the result along with the TransportOperation object
533
+ # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::AssuredWorkloads::V1::Workload>]
534
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
535
+ #
536
+ # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::AssuredWorkloads::V1::Workload>]
537
+ #
538
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
539
+ def list_workloads request, options = nil
540
+ raise ::ArgumentError, "request must be provided" if request.nil?
541
+
542
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AssuredWorkloads::V1::ListWorkloadsRequest
543
+
544
+ # Converts hash and nil to an options object
545
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
546
+
547
+ # Customize the options with defaults
548
+ call_metadata = @config.rpcs.list_workloads.metadata.to_h
549
+
550
+ # Set x-goog-api-client and x-goog-user-project headers
551
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
552
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
553
+ gapic_version: ::Google::Cloud::AssuredWorkloads::V1::VERSION,
554
+ transports_version_send: [:rest]
555
+
556
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
557
+
558
+ options.apply_defaults timeout: @config.rpcs.list_workloads.timeout,
559
+ metadata: call_metadata,
560
+ retry_policy: @config.rpcs.list_workloads.retry_policy
561
+
562
+ options.apply_defaults timeout: @config.timeout,
563
+ metadata: @config.metadata,
564
+ retry_policy: @config.retry_policy
565
+
566
+ @assured_workloads_service_stub.list_workloads request, options do |result, operation|
567
+ result = ::Gapic::Rest::PagedEnumerable.new @assured_workloads_service_stub, :list_workloads, "workloads", request, result, options
568
+ yield result, operation if block_given?
569
+ return result
570
+ end
571
+ rescue ::Gapic::Rest::Error => e
572
+ raise ::Google::Cloud::Error.from_error(e)
573
+ end
574
+
575
+ ##
576
+ # Configuration class for the AssuredWorkloadsService REST API.
577
+ #
578
+ # This class represents the configuration for AssuredWorkloadsService REST,
579
+ # providing control over timeouts, retry behavior, logging, transport
580
+ # parameters, and other low-level controls. Certain parameters can also be
581
+ # applied individually to specific RPCs. See
582
+ # {::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Rest::Client::Configuration::Rpcs}
583
+ # for a list of RPCs that can be configured independently.
584
+ #
585
+ # Configuration can be applied globally to all clients, or to a single client
586
+ # on construction.
587
+ #
588
+ # @example
589
+ #
590
+ # # Modify the global config, setting the timeout for
591
+ # # create_workload to 20 seconds,
592
+ # # and all remaining timeouts to 10 seconds.
593
+ # ::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Rest::Client.configure do |config|
594
+ # config.timeout = 10.0
595
+ # config.rpcs.create_workload.timeout = 20.0
596
+ # end
597
+ #
598
+ # # Apply the above configuration only to a new client.
599
+ # client = ::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Rest::Client.new do |config|
600
+ # config.timeout = 10.0
601
+ # config.rpcs.create_workload.timeout = 20.0
602
+ # end
603
+ #
604
+ # @!attribute [rw] endpoint
605
+ # The hostname or hostname:port of the service endpoint.
606
+ # Defaults to `"assuredworkloads.googleapis.com"`.
607
+ # @return [::String]
608
+ # @!attribute [rw] credentials
609
+ # Credentials to send with calls. You may provide any of the following types:
610
+ # * (`String`) The path to a service account key file in JSON format
611
+ # * (`Hash`) A service account key as a Hash
612
+ # * (`Google::Auth::Credentials`) A googleauth credentials object
613
+ # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
614
+ # * (`Signet::OAuth2::Client`) A signet oauth2 client object
615
+ # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
616
+ # * (`nil`) indicating no credentials
617
+ # @return [::Object]
618
+ # @!attribute [rw] scope
619
+ # The OAuth scopes
620
+ # @return [::Array<::String>]
621
+ # @!attribute [rw] lib_name
622
+ # The library name as recorded in instrumentation and logging
623
+ # @return [::String]
624
+ # @!attribute [rw] lib_version
625
+ # The library version as recorded in instrumentation and logging
626
+ # @return [::String]
627
+ # @!attribute [rw] timeout
628
+ # The call timeout in seconds.
629
+ # @return [::Numeric]
630
+ # @!attribute [rw] metadata
631
+ # Additional headers to be sent with the call.
632
+ # @return [::Hash{::Symbol=>::String}]
633
+ # @!attribute [rw] retry_policy
634
+ # The retry policy. The value is a hash with the following keys:
635
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
636
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
637
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
638
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
639
+ # trigger a retry.
640
+ # @return [::Hash]
641
+ # @!attribute [rw] quota_project
642
+ # A separate project against which to charge quota.
643
+ # @return [::String]
644
+ #
645
+ class Configuration
646
+ extend ::Gapic::Config
647
+
648
+ DEFAULT_ENDPOINT = "assuredworkloads.googleapis.com"
649
+
650
+ config_attr :endpoint, DEFAULT_ENDPOINT, ::String
651
+ config_attr :credentials, nil do |value|
652
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
653
+ allowed.any? { |klass| klass === value }
654
+ end
655
+ config_attr :scope, nil, ::String, ::Array, nil
656
+ config_attr :lib_name, nil, ::String, nil
657
+ config_attr :lib_version, nil, ::String, nil
658
+ config_attr :timeout, nil, ::Numeric, nil
659
+ config_attr :metadata, nil, ::Hash, nil
660
+ config_attr :retry_policy, nil, ::Hash, ::Proc, nil
661
+ config_attr :quota_project, nil, ::String, nil
662
+
663
+ # @private
664
+ def initialize parent_config = nil
665
+ @parent_config = parent_config unless parent_config.nil?
666
+
667
+ yield self if block_given?
668
+ end
669
+
670
+ ##
671
+ # Configurations for individual RPCs
672
+ # @return [Rpcs]
673
+ #
674
+ def rpcs
675
+ @rpcs ||= begin
676
+ parent_rpcs = nil
677
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
678
+ Rpcs.new parent_rpcs
679
+ end
680
+ end
681
+
682
+ ##
683
+ # Configuration RPC class for the AssuredWorkloadsService API.
684
+ #
685
+ # Includes fields providing the configuration for each RPC in this service.
686
+ # Each configuration object is of type `Gapic::Config::Method` and includes
687
+ # the following configuration fields:
688
+ #
689
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
690
+ # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers
691
+ # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
692
+ # include the following keys:
693
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
694
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
695
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
696
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
697
+ # trigger a retry.
698
+ #
699
+ class Rpcs
700
+ ##
701
+ # RPC-specific configuration for `create_workload`
702
+ # @return [::Gapic::Config::Method]
703
+ #
704
+ attr_reader :create_workload
705
+ ##
706
+ # RPC-specific configuration for `update_workload`
707
+ # @return [::Gapic::Config::Method]
708
+ #
709
+ attr_reader :update_workload
710
+ ##
711
+ # RPC-specific configuration for `restrict_allowed_resources`
712
+ # @return [::Gapic::Config::Method]
713
+ #
714
+ attr_reader :restrict_allowed_resources
715
+ ##
716
+ # RPC-specific configuration for `delete_workload`
717
+ # @return [::Gapic::Config::Method]
718
+ #
719
+ attr_reader :delete_workload
720
+ ##
721
+ # RPC-specific configuration for `get_workload`
722
+ # @return [::Gapic::Config::Method]
723
+ #
724
+ attr_reader :get_workload
725
+ ##
726
+ # RPC-specific configuration for `list_workloads`
727
+ # @return [::Gapic::Config::Method]
728
+ #
729
+ attr_reader :list_workloads
730
+
731
+ # @private
732
+ def initialize parent_rpcs = nil
733
+ create_workload_config = parent_rpcs.create_workload if parent_rpcs.respond_to? :create_workload
734
+ @create_workload = ::Gapic::Config::Method.new create_workload_config
735
+ update_workload_config = parent_rpcs.update_workload if parent_rpcs.respond_to? :update_workload
736
+ @update_workload = ::Gapic::Config::Method.new update_workload_config
737
+ restrict_allowed_resources_config = parent_rpcs.restrict_allowed_resources if parent_rpcs.respond_to? :restrict_allowed_resources
738
+ @restrict_allowed_resources = ::Gapic::Config::Method.new restrict_allowed_resources_config
739
+ delete_workload_config = parent_rpcs.delete_workload if parent_rpcs.respond_to? :delete_workload
740
+ @delete_workload = ::Gapic::Config::Method.new delete_workload_config
741
+ get_workload_config = parent_rpcs.get_workload if parent_rpcs.respond_to? :get_workload
742
+ @get_workload = ::Gapic::Config::Method.new get_workload_config
743
+ list_workloads_config = parent_rpcs.list_workloads if parent_rpcs.respond_to? :list_workloads
744
+ @list_workloads = ::Gapic::Config::Method.new list_workloads_config
745
+
746
+ yield self if block_given?
747
+ end
748
+ end
749
+ end
750
+ end
751
+ end
752
+ end
753
+ end
754
+ end
755
+ end
756
+ end