google-cloud-cloud_security_compliance-v1 0.a → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +122 -0
  4. data/README.md +154 -8
  5. data/lib/google/cloud/cloud_security_compliance/v1/bindings_override.rb +75 -0
  6. data/lib/google/cloud/cloud_security_compliance/v1/config/client.rb +1467 -0
  7. data/lib/google/cloud/cloud_security_compliance/v1/config/credentials.rb +47 -0
  8. data/lib/google/cloud/cloud_security_compliance/v1/config/paths.rb +88 -0
  9. data/lib/google/cloud/cloud_security_compliance/v1/config/rest/client.rb +1379 -0
  10. data/lib/google/cloud/cloud_security_compliance/v1/config/rest/service_stub.rb +695 -0
  11. data/lib/google/cloud/cloud_security_compliance/v1/config/rest.rb +54 -0
  12. data/lib/google/cloud/cloud_security_compliance/v1/config.rb +56 -0
  13. data/lib/google/cloud/cloud_security_compliance/v1/deployment/client.rb +1047 -0
  14. data/lib/google/cloud/cloud_security_compliance/v1/deployment/credentials.rb +47 -0
  15. data/lib/google/cloud/cloud_security_compliance/v1/deployment/operations.rb +824 -0
  16. data/lib/google/cloud/cloud_security_compliance/v1/deployment/paths.rb +88 -0
  17. data/lib/google/cloud/cloud_security_compliance/v1/deployment/rest/client.rb +987 -0
  18. data/lib/google/cloud/cloud_security_compliance/v1/deployment/rest/operations.rb +925 -0
  19. data/lib/google/cloud/cloud_security_compliance/v1/deployment/rest/service_stub.rb +448 -0
  20. data/lib/google/cloud/cloud_security_compliance/v1/deployment/rest.rb +55 -0
  21. data/lib/google/cloud/cloud_security_compliance/v1/deployment.rb +57 -0
  22. data/lib/google/cloud/cloud_security_compliance/v1/rest.rb +39 -0
  23. data/lib/google/cloud/cloud_security_compliance/v1/version.rb +7 -2
  24. data/lib/google/cloud/cloud_security_compliance/v1.rb +46 -0
  25. data/lib/google/cloud/cloudsecuritycompliance/v1/common_pb.rb +73 -0
  26. data/lib/google/cloud/cloudsecuritycompliance/v1/config_pb.rb +63 -0
  27. data/lib/google/cloud/cloudsecuritycompliance/v1/config_services_pb.rb +117 -0
  28. data/lib/google/cloud/cloudsecuritycompliance/v1/deployment_pb.rb +70 -0
  29. data/lib/google/cloud/cloudsecuritycompliance/v1/deployment_services_pb.rb +56 -0
  30. data/lib/google-cloud-cloud_security_compliance-v1.rb +21 -0
  31. data/proto_docs/README.md +4 -0
  32. data/proto_docs/google/api/client.rb +473 -0
  33. data/proto_docs/google/api/field_behavior.rb +85 -0
  34. data/proto_docs/google/api/launch_stage.rb +71 -0
  35. data/proto_docs/google/api/resource.rb +227 -0
  36. data/proto_docs/google/cloud/cloudsecuritycompliance/v1/common.rb +638 -0
  37. data/proto_docs/google/cloud/cloudsecuritycompliance/v1/config.rb +223 -0
  38. data/proto_docs/google/cloud/cloudsecuritycompliance/v1/deployment.rb +429 -0
  39. data/proto_docs/google/longrunning/operations.rb +191 -0
  40. data/proto_docs/google/protobuf/any.rb +145 -0
  41. data/proto_docs/google/protobuf/duration.rb +98 -0
  42. data/proto_docs/google/protobuf/empty.rb +34 -0
  43. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  44. data/proto_docs/google/protobuf/timestamp.rb +127 -0
  45. data/proto_docs/google/rpc/status.rb +48 -0
  46. metadata +93 -9
@@ -0,0 +1,1379 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 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/cloudsecuritycompliance/v1/config_pb"
21
+ require "google/cloud/cloud_security_compliance/v1/config/rest/service_stub"
22
+ require "google/cloud/location/rest"
23
+
24
+ module Google
25
+ module Cloud
26
+ module CloudSecurityCompliance
27
+ module V1
28
+ module Config
29
+ module Rest
30
+ ##
31
+ # REST client for the Config service.
32
+ #
33
+ # Config Service manages compliance frameworks, cloud controls, and their
34
+ # configurations.
35
+ #
36
+ class Client
37
+ # @private
38
+ API_VERSION = ""
39
+
40
+ # @private
41
+ DEFAULT_ENDPOINT_TEMPLATE = "cloudsecuritycompliance.$UNIVERSE_DOMAIN$"
42
+
43
+ include Paths
44
+
45
+ # @private
46
+ attr_reader :config_stub
47
+
48
+ ##
49
+ # Configure the Config Client class.
50
+ #
51
+ # See {::Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client::Configuration}
52
+ # for a description of the configuration fields.
53
+ #
54
+ # @example
55
+ #
56
+ # # Modify the configuration for all Config clients
57
+ # ::Google::Cloud::CloudSecurityCompliance::V1::Config::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", "CloudSecurityCompliance", "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_frameworks.timeout = 60.0
78
+ default_config.rpcs.list_frameworks.retry_policy = {
79
+ initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14]
80
+ }
81
+
82
+ default_config.rpcs.get_framework.timeout = 60.0
83
+ default_config.rpcs.get_framework.retry_policy = {
84
+ initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14]
85
+ }
86
+
87
+ default_config.rpcs.create_framework.timeout = 60.0
88
+
89
+ default_config.rpcs.update_framework.timeout = 60.0
90
+
91
+ default_config.rpcs.delete_framework.timeout = 60.0
92
+
93
+ default_config.rpcs.list_cloud_controls.timeout = 60.0
94
+ default_config.rpcs.list_cloud_controls.retry_policy = {
95
+ initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14]
96
+ }
97
+
98
+ default_config.rpcs.get_cloud_control.timeout = 60.0
99
+ default_config.rpcs.get_cloud_control.retry_policy = {
100
+ initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14]
101
+ }
102
+
103
+ default_config.rpcs.create_cloud_control.timeout = 60.0
104
+
105
+ default_config.rpcs.update_cloud_control.timeout = 60.0
106
+
107
+ default_config.rpcs.delete_cloud_control.timeout = 60.0
108
+
109
+ default_config
110
+ end
111
+ yield @configure if block_given?
112
+ @configure
113
+ end
114
+
115
+ ##
116
+ # Configure the Config Client instance.
117
+ #
118
+ # The configuration is set to the derived mode, meaning that values can be changed,
119
+ # but structural changes (adding new fields, etc.) are not allowed. Structural changes
120
+ # should be made on {Client.configure}.
121
+ #
122
+ # See {::Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client::Configuration}
123
+ # for a description of the configuration fields.
124
+ #
125
+ # @yield [config] Configure the Client client.
126
+ # @yieldparam config [Client::Configuration]
127
+ #
128
+ # @return [Client::Configuration]
129
+ #
130
+ def configure
131
+ yield @config if block_given?
132
+ @config
133
+ end
134
+
135
+ ##
136
+ # The effective universe domain
137
+ #
138
+ # @return [String]
139
+ #
140
+ def universe_domain
141
+ @config_stub.universe_domain
142
+ end
143
+
144
+ ##
145
+ # Create a new Config REST client object.
146
+ #
147
+ # @example
148
+ #
149
+ # # Create a client using the default configuration
150
+ # client = ::Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client.new
151
+ #
152
+ # # Create a client using a custom configuration
153
+ # client = ::Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client.new do |config|
154
+ # config.timeout = 10.0
155
+ # end
156
+ #
157
+ # @yield [config] Configure the Config client.
158
+ # @yieldparam config [Client::Configuration]
159
+ #
160
+ def initialize
161
+ # Create the configuration object
162
+ @config = Configuration.new Client.configure
163
+
164
+ # Yield the configuration if needed
165
+ yield @config if block_given?
166
+
167
+ # Create credentials
168
+ credentials = @config.credentials
169
+ # Use self-signed JWT if the endpoint is unchanged from default,
170
+ # but only if the default endpoint does not have a region prefix.
171
+ enable_self_signed_jwt = @config.endpoint.nil? ||
172
+ (@config.endpoint == Configuration::DEFAULT_ENDPOINT &&
173
+ !@config.endpoint.split(".").first.include?("-"))
174
+ credentials ||= Credentials.default scope: @config.scope,
175
+ enable_self_signed_jwt: enable_self_signed_jwt
176
+ if credentials.is_a?(::String) || credentials.is_a?(::Hash)
177
+ credentials = Credentials.new credentials, scope: @config.scope
178
+ end
179
+
180
+ @quota_project_id = @config.quota_project
181
+ @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
182
+
183
+ @config_stub = ::Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::ServiceStub.new(
184
+ endpoint: @config.endpoint,
185
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
186
+ universe_domain: @config.universe_domain,
187
+ credentials: credentials,
188
+ logger: @config.logger
189
+ )
190
+
191
+ @config_stub.logger(stub: true)&.info do |entry|
192
+ entry.set_system_name
193
+ entry.set_service
194
+ entry.message = "Created client for #{entry.service}"
195
+ entry.set_credentials_fields credentials
196
+ entry.set "customEndpoint", @config.endpoint if @config.endpoint
197
+ entry.set "defaultTimeout", @config.timeout if @config.timeout
198
+ entry.set "quotaProject", @quota_project_id if @quota_project_id
199
+ end
200
+
201
+ @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config|
202
+ config.credentials = credentials
203
+ config.quota_project = @quota_project_id
204
+ config.endpoint = @config_stub.endpoint
205
+ config.universe_domain = @config_stub.universe_domain
206
+ config.bindings_override = @config.bindings_override
207
+ config.logger = @config_stub.logger if config.respond_to? :logger=
208
+ end
209
+ end
210
+
211
+ ##
212
+ # Get the associated client for mix-in of the Locations.
213
+ #
214
+ # @return [Google::Cloud::Location::Locations::Rest::Client]
215
+ #
216
+ attr_reader :location_client
217
+
218
+ ##
219
+ # The logger used for request/response debug logging.
220
+ #
221
+ # @return [Logger]
222
+ #
223
+ def logger
224
+ @config_stub.logger
225
+ end
226
+
227
+ # Service calls
228
+
229
+ ##
230
+ # Lists all Frameworks (both Built-in and Custom) available within a given
231
+ # parent resource. This method supports pagination.
232
+ # The latest major version of each Framework is returned.
233
+ #
234
+ # @overload list_frameworks(request, options = nil)
235
+ # Pass arguments to `list_frameworks` via a request object, either of type
236
+ # {::Google::Cloud::CloudSecurityCompliance::V1::ListFrameworksRequest} or an equivalent Hash.
237
+ #
238
+ # @param request [::Google::Cloud::CloudSecurityCompliance::V1::ListFrameworksRequest, ::Hash]
239
+ # A request object representing the call parameters. Required. To specify no
240
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
241
+ # @param options [::Gapic::CallOptions, ::Hash]
242
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
243
+ #
244
+ # @overload list_frameworks(parent: nil, page_size: nil, page_token: nil)
245
+ # Pass arguments to `list_frameworks` via keyword arguments. Note that at
246
+ # least one keyword argument is required. To specify no parameters, or to keep all
247
+ # the default parameter values, pass an empty Hash as a request object (see above).
248
+ #
249
+ # @param parent [::String]
250
+ # Required. The parent resource name, in the format
251
+ # `organizations/{organization}/locations/{location}`.
252
+ # Only global location is supported.
253
+ # @param page_size [::Integer]
254
+ # Optional. The maximum number of frameworks to return. The default value is
255
+ # `500`.
256
+ #
257
+ # If you exceed the maximum value of `1000`, then the service uses the
258
+ # maximum value.
259
+ # @param page_token [::String]
260
+ # Optional. A pagination token returned from a previous request to list
261
+ # frameworks. Provide this token to retrieve the next page of results.
262
+ # @yield [result, operation] Access the result along with the TransportOperation object
263
+ # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::CloudSecurityCompliance::V1::Framework>]
264
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
265
+ #
266
+ # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::CloudSecurityCompliance::V1::Framework>]
267
+ #
268
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
269
+ #
270
+ # @example Basic example
271
+ # require "google/cloud/cloud_security_compliance/v1"
272
+ #
273
+ # # Create a client object. The client can be reused for multiple calls.
274
+ # client = Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client.new
275
+ #
276
+ # # Create a request. To set request fields, pass in keyword arguments.
277
+ # request = Google::Cloud::CloudSecurityCompliance::V1::ListFrameworksRequest.new
278
+ #
279
+ # # Call the list_frameworks method.
280
+ # result = client.list_frameworks request
281
+ #
282
+ # # The returned object is of type Gapic::PagedEnumerable. You can iterate
283
+ # # over elements, and API calls will be issued to fetch pages as needed.
284
+ # result.each do |item|
285
+ # # Each element is of type ::Google::Cloud::CloudSecurityCompliance::V1::Framework.
286
+ # p item
287
+ # end
288
+ #
289
+ def list_frameworks request, options = nil
290
+ raise ::ArgumentError, "request must be provided" if request.nil?
291
+
292
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::CloudSecurityCompliance::V1::ListFrameworksRequest
293
+
294
+ # Converts hash and nil to an options object
295
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
296
+
297
+ # Customize the options with defaults
298
+ call_metadata = @config.rpcs.list_frameworks.metadata.to_h
299
+
300
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
301
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
302
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
303
+ gapic_version: ::Google::Cloud::CloudSecurityCompliance::V1::VERSION,
304
+ transports_version_send: [:rest]
305
+
306
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
307
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
308
+
309
+ options.apply_defaults timeout: @config.rpcs.list_frameworks.timeout,
310
+ metadata: call_metadata,
311
+ retry_policy: @config.rpcs.list_frameworks.retry_policy
312
+
313
+ options.apply_defaults timeout: @config.timeout,
314
+ metadata: @config.metadata,
315
+ retry_policy: @config.retry_policy
316
+
317
+ @config_stub.list_frameworks request, options do |result, operation|
318
+ result = ::Gapic::Rest::PagedEnumerable.new @config_stub, :list_frameworks, "frameworks", request, result, options
319
+ yield result, operation if block_given?
320
+ throw :response, result
321
+ end
322
+ rescue ::Gapic::Rest::Error => e
323
+ raise ::Google::Cloud::Error.from_error(e)
324
+ end
325
+
326
+ ##
327
+ # Gets details of a single Framework.
328
+ # This method retrieves a Framework resource, which can be either Built-in or
329
+ # Custom, identified by its name.
330
+ #
331
+ # By default, the latest major version of the Framework is returned.
332
+ # A specific major version can be retrieved by specifying the
333
+ # `major_revision_id` in the request.
334
+ #
335
+ # @overload get_framework(request, options = nil)
336
+ # Pass arguments to `get_framework` via a request object, either of type
337
+ # {::Google::Cloud::CloudSecurityCompliance::V1::GetFrameworkRequest} or an equivalent Hash.
338
+ #
339
+ # @param request [::Google::Cloud::CloudSecurityCompliance::V1::GetFrameworkRequest, ::Hash]
340
+ # A request object representing the call parameters. Required. To specify no
341
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
342
+ # @param options [::Gapic::CallOptions, ::Hash]
343
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
344
+ #
345
+ # @overload get_framework(name: nil, major_revision_id: nil)
346
+ # Pass arguments to `get_framework` via keyword arguments. Note that at
347
+ # least one keyword argument is required. To specify no parameters, or to keep all
348
+ # the default parameter values, pass an empty Hash as a request object (see above).
349
+ #
350
+ # @param name [::String]
351
+ # Required. The name of the framework to retrieve.
352
+ # Format:
353
+ # organizations/\\{organization}/locations/\\{location}/frameworks/\\{framework_id}
354
+ # @param major_revision_id [::Integer]
355
+ # Optional. The Framework major version to retrieve. If not specified, the
356
+ # most recently updated revision_id is retrieved.
357
+ # @yield [result, operation] Access the result along with the TransportOperation object
358
+ # @yieldparam result [::Google::Cloud::CloudSecurityCompliance::V1::Framework]
359
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
360
+ #
361
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::Framework]
362
+ #
363
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
364
+ #
365
+ # @example Basic example
366
+ # require "google/cloud/cloud_security_compliance/v1"
367
+ #
368
+ # # Create a client object. The client can be reused for multiple calls.
369
+ # client = Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client.new
370
+ #
371
+ # # Create a request. To set request fields, pass in keyword arguments.
372
+ # request = Google::Cloud::CloudSecurityCompliance::V1::GetFrameworkRequest.new
373
+ #
374
+ # # Call the get_framework method.
375
+ # result = client.get_framework request
376
+ #
377
+ # # The returned object is of type Google::Cloud::CloudSecurityCompliance::V1::Framework.
378
+ # p result
379
+ #
380
+ def get_framework request, options = nil
381
+ raise ::ArgumentError, "request must be provided" if request.nil?
382
+
383
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::CloudSecurityCompliance::V1::GetFrameworkRequest
384
+
385
+ # Converts hash and nil to an options object
386
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
387
+
388
+ # Customize the options with defaults
389
+ call_metadata = @config.rpcs.get_framework.metadata.to_h
390
+
391
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
392
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
393
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
394
+ gapic_version: ::Google::Cloud::CloudSecurityCompliance::V1::VERSION,
395
+ transports_version_send: [:rest]
396
+
397
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
398
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
399
+
400
+ options.apply_defaults timeout: @config.rpcs.get_framework.timeout,
401
+ metadata: call_metadata,
402
+ retry_policy: @config.rpcs.get_framework.retry_policy
403
+
404
+ options.apply_defaults timeout: @config.timeout,
405
+ metadata: @config.metadata,
406
+ retry_policy: @config.retry_policy
407
+
408
+ @config_stub.get_framework request, options do |result, operation|
409
+ yield result, operation if block_given?
410
+ end
411
+ rescue ::Gapic::Rest::Error => e
412
+ raise ::Google::Cloud::Error.from_error(e)
413
+ end
414
+
415
+ ##
416
+ # Creates a new Framework with type `Custom` under a given parent resource.
417
+ # Frameworks with type `Built-in` are managed by Google and cannot be created
418
+ # through this API.
419
+ #
420
+ # @overload create_framework(request, options = nil)
421
+ # Pass arguments to `create_framework` via a request object, either of type
422
+ # {::Google::Cloud::CloudSecurityCompliance::V1::CreateFrameworkRequest} or an equivalent Hash.
423
+ #
424
+ # @param request [::Google::Cloud::CloudSecurityCompliance::V1::CreateFrameworkRequest, ::Hash]
425
+ # A request object representing the call parameters. Required. To specify no
426
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
427
+ # @param options [::Gapic::CallOptions, ::Hash]
428
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
429
+ #
430
+ # @overload create_framework(parent: nil, framework_id: nil, framework: nil)
431
+ # Pass arguments to `create_framework` via keyword arguments. Note that at
432
+ # least one keyword argument is required. To specify no parameters, or to keep all
433
+ # the default parameter values, pass an empty Hash as a request object (see above).
434
+ #
435
+ # @param parent [::String]
436
+ # Required. The parent resource name, in the format
437
+ # `organizations/{organization}/locations/{location}`.
438
+ # @param framework_id [::String]
439
+ # Required. ID of the framework.
440
+ # This is not the full name of the framework.
441
+ # This is the last part of the full name of the framework.
442
+ # @param framework [::Google::Cloud::CloudSecurityCompliance::V1::Framework, ::Hash]
443
+ # Required. The resource being created
444
+ # @yield [result, operation] Access the result along with the TransportOperation object
445
+ # @yieldparam result [::Google::Cloud::CloudSecurityCompliance::V1::Framework]
446
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
447
+ #
448
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::Framework]
449
+ #
450
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
451
+ #
452
+ # @example Basic example
453
+ # require "google/cloud/cloud_security_compliance/v1"
454
+ #
455
+ # # Create a client object. The client can be reused for multiple calls.
456
+ # client = Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client.new
457
+ #
458
+ # # Create a request. To set request fields, pass in keyword arguments.
459
+ # request = Google::Cloud::CloudSecurityCompliance::V1::CreateFrameworkRequest.new
460
+ #
461
+ # # Call the create_framework method.
462
+ # result = client.create_framework request
463
+ #
464
+ # # The returned object is of type Google::Cloud::CloudSecurityCompliance::V1::Framework.
465
+ # p result
466
+ #
467
+ def create_framework request, options = nil
468
+ raise ::ArgumentError, "request must be provided" if request.nil?
469
+
470
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::CloudSecurityCompliance::V1::CreateFrameworkRequest
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.create_framework.metadata.to_h
477
+
478
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::CloudSecurityCompliance::V1::VERSION,
482
+ transports_version_send: [:rest]
483
+
484
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
485
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
486
+
487
+ options.apply_defaults timeout: @config.rpcs.create_framework.timeout,
488
+ metadata: call_metadata,
489
+ retry_policy: @config.rpcs.create_framework.retry_policy
490
+
491
+ options.apply_defaults timeout: @config.timeout,
492
+ metadata: @config.metadata,
493
+ retry_policy: @config.retry_policy
494
+
495
+ @config_stub.create_framework request, options do |result, operation|
496
+ yield result, operation if block_given?
497
+ end
498
+ rescue ::Gapic::Rest::Error => e
499
+ raise ::Google::Cloud::Error.from_error(e)
500
+ end
501
+
502
+ ##
503
+ # Updates a single Framework.
504
+ # This method allows for partial updates of a Framework resource. The fields
505
+ # to be updated are specified using the `update_mask`.
506
+ #
507
+ # - If an `update_mask` is provided, only the fields specified in the mask
508
+ # will be updated.
509
+ # - If no `update_mask` is provided, all fields present in the request's
510
+ # `framework` body will be used to overwrite the existing resource.
511
+ #
512
+ # This operation can only be performed on Frameworks with type `CUSTOM`.
513
+ # A successful update will result in a new version of the Framework.
514
+ #
515
+ # @overload update_framework(request, options = nil)
516
+ # Pass arguments to `update_framework` via a request object, either of type
517
+ # {::Google::Cloud::CloudSecurityCompliance::V1::UpdateFrameworkRequest} or an equivalent Hash.
518
+ #
519
+ # @param request [::Google::Cloud::CloudSecurityCompliance::V1::UpdateFrameworkRequest, ::Hash]
520
+ # A request object representing the call parameters. Required. To specify no
521
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
522
+ # @param options [::Gapic::CallOptions, ::Hash]
523
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
524
+ #
525
+ # @overload update_framework(update_mask: nil, framework: nil, major_revision_id: nil)
526
+ # Pass arguments to `update_framework` via keyword arguments. Note that at
527
+ # least one keyword argument is required. To specify no parameters, or to keep all
528
+ # the default parameter values, pass an empty Hash as a request object (see above).
529
+ #
530
+ # @param update_mask [::Google::Protobuf::FieldMask, ::Hash]
531
+ # Optional. Field mask is used to specify the fields to be overwritten in the
532
+ # Framework resource by the update.
533
+ # The fields specified in the update_mask are relative to the resource, not
534
+ # the full request. A field will be overwritten if it is in the mask. If the
535
+ # user does not provide a mask then all fields present in the request will be
536
+ # overwritten.
537
+ # @param framework [::Google::Cloud::CloudSecurityCompliance::V1::Framework, ::Hash]
538
+ # Required. The resource being updated
539
+ # @param major_revision_id [::Integer]
540
+ # Optional. The major version ID of the framework to update.
541
+ # @yield [result, operation] Access the result along with the TransportOperation object
542
+ # @yieldparam result [::Google::Cloud::CloudSecurityCompliance::V1::Framework]
543
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
544
+ #
545
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::Framework]
546
+ #
547
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
548
+ #
549
+ # @example Basic example
550
+ # require "google/cloud/cloud_security_compliance/v1"
551
+ #
552
+ # # Create a client object. The client can be reused for multiple calls.
553
+ # client = Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client.new
554
+ #
555
+ # # Create a request. To set request fields, pass in keyword arguments.
556
+ # request = Google::Cloud::CloudSecurityCompliance::V1::UpdateFrameworkRequest.new
557
+ #
558
+ # # Call the update_framework method.
559
+ # result = client.update_framework request
560
+ #
561
+ # # The returned object is of type Google::Cloud::CloudSecurityCompliance::V1::Framework.
562
+ # p result
563
+ #
564
+ def update_framework request, options = nil
565
+ raise ::ArgumentError, "request must be provided" if request.nil?
566
+
567
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::CloudSecurityCompliance::V1::UpdateFrameworkRequest
568
+
569
+ # Converts hash and nil to an options object
570
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
571
+
572
+ # Customize the options with defaults
573
+ call_metadata = @config.rpcs.update_framework.metadata.to_h
574
+
575
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
576
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
577
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
578
+ gapic_version: ::Google::Cloud::CloudSecurityCompliance::V1::VERSION,
579
+ transports_version_send: [:rest]
580
+
581
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
582
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
583
+
584
+ options.apply_defaults timeout: @config.rpcs.update_framework.timeout,
585
+ metadata: call_metadata,
586
+ retry_policy: @config.rpcs.update_framework.retry_policy
587
+
588
+ options.apply_defaults timeout: @config.timeout,
589
+ metadata: @config.metadata,
590
+ retry_policy: @config.retry_policy
591
+
592
+ @config_stub.update_framework request, options do |result, operation|
593
+ yield result, operation if block_given?
594
+ end
595
+ rescue ::Gapic::Rest::Error => e
596
+ raise ::Google::Cloud::Error.from_error(e)
597
+ end
598
+
599
+ ##
600
+ # Deletes a single Custom Framework, including all its minor and
601
+ # minor revisions.
602
+ #
603
+ # - This operation can only be performed on Frameworks with type `CUSTOM`.
604
+ # Built-in Frameworks cannot be deleted.
605
+ # - The Framework cannot be deleted if it is currently deployed on any
606
+ # resource.
607
+ # - This action is permanent and cannot be undone.
608
+ #
609
+ # @overload delete_framework(request, options = nil)
610
+ # Pass arguments to `delete_framework` via a request object, either of type
611
+ # {::Google::Cloud::CloudSecurityCompliance::V1::DeleteFrameworkRequest} or an equivalent Hash.
612
+ #
613
+ # @param request [::Google::Cloud::CloudSecurityCompliance::V1::DeleteFrameworkRequest, ::Hash]
614
+ # A request object representing the call parameters. Required. To specify no
615
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
616
+ # @param options [::Gapic::CallOptions, ::Hash]
617
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
618
+ #
619
+ # @overload delete_framework(name: nil)
620
+ # Pass arguments to `delete_framework` via keyword arguments. Note that at
621
+ # least one keyword argument is required. To specify no parameters, or to keep all
622
+ # the default parameter values, pass an empty Hash as a request object (see above).
623
+ #
624
+ # @param name [::String]
625
+ # Required. Name of the resource, in the format
626
+ # `organizations/{organization}/locations/{location}/frameworks/{framework}`.
627
+ # @yield [result, operation] Access the result along with the TransportOperation object
628
+ # @yieldparam result [::Google::Protobuf::Empty]
629
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
630
+ #
631
+ # @return [::Google::Protobuf::Empty]
632
+ #
633
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
634
+ #
635
+ # @example Basic example
636
+ # require "google/cloud/cloud_security_compliance/v1"
637
+ #
638
+ # # Create a client object. The client can be reused for multiple calls.
639
+ # client = Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client.new
640
+ #
641
+ # # Create a request. To set request fields, pass in keyword arguments.
642
+ # request = Google::Cloud::CloudSecurityCompliance::V1::DeleteFrameworkRequest.new
643
+ #
644
+ # # Call the delete_framework method.
645
+ # result = client.delete_framework request
646
+ #
647
+ # # The returned object is of type Google::Protobuf::Empty.
648
+ # p result
649
+ #
650
+ def delete_framework request, options = nil
651
+ raise ::ArgumentError, "request must be provided" if request.nil?
652
+
653
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::CloudSecurityCompliance::V1::DeleteFrameworkRequest
654
+
655
+ # Converts hash and nil to an options object
656
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
657
+
658
+ # Customize the options with defaults
659
+ call_metadata = @config.rpcs.delete_framework.metadata.to_h
660
+
661
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
662
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
663
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
664
+ gapic_version: ::Google::Cloud::CloudSecurityCompliance::V1::VERSION,
665
+ transports_version_send: [:rest]
666
+
667
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
668
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
669
+
670
+ options.apply_defaults timeout: @config.rpcs.delete_framework.timeout,
671
+ metadata: call_metadata,
672
+ retry_policy: @config.rpcs.delete_framework.retry_policy
673
+
674
+ options.apply_defaults timeout: @config.timeout,
675
+ metadata: @config.metadata,
676
+ retry_policy: @config.retry_policy
677
+
678
+ @config_stub.delete_framework request, options do |result, operation|
679
+ yield result, operation if block_given?
680
+ end
681
+ rescue ::Gapic::Rest::Error => e
682
+ raise ::Google::Cloud::Error.from_error(e)
683
+ end
684
+
685
+ ##
686
+ # Lists all CloudControls (both Built-in and Custom) available within a given
687
+ # parent resource. This method supports pagination.
688
+ # The latest major version of each CloudControl is returned.
689
+ #
690
+ # @overload list_cloud_controls(request, options = nil)
691
+ # Pass arguments to `list_cloud_controls` via a request object, either of type
692
+ # {::Google::Cloud::CloudSecurityCompliance::V1::ListCloudControlsRequest} or an equivalent Hash.
693
+ #
694
+ # @param request [::Google::Cloud::CloudSecurityCompliance::V1::ListCloudControlsRequest, ::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 list_cloud_controls(parent: nil, page_size: nil, page_token: nil)
701
+ # Pass arguments to `list_cloud_controls` 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 parent [::String]
706
+ # Required. The parent resource name, in the format
707
+ # `organizations/{organization}/locations/{location}`.
708
+ # @param page_size [::Integer]
709
+ # Optional. The maximum number of CloudControls to return. The default value
710
+ # is `500`.
711
+ #
712
+ # If you exceed the maximum value of `1000`, then the service uses the
713
+ # maximum value.
714
+ # @param page_token [::String]
715
+ # Optional. A pagination token returned from a previous request to list
716
+ # CloudControls. Provide this token to retrieve the next page of results.
717
+ #
718
+ # When paginating, parent provided to
719
+ # ListCloudControls request must match the call that provided the page
720
+ # token.
721
+ # @yield [result, operation] Access the result along with the TransportOperation object
722
+ # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::CloudSecurityCompliance::V1::CloudControl>]
723
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
724
+ #
725
+ # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::CloudSecurityCompliance::V1::CloudControl>]
726
+ #
727
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
728
+ #
729
+ # @example Basic example
730
+ # require "google/cloud/cloud_security_compliance/v1"
731
+ #
732
+ # # Create a client object. The client can be reused for multiple calls.
733
+ # client = Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client.new
734
+ #
735
+ # # Create a request. To set request fields, pass in keyword arguments.
736
+ # request = Google::Cloud::CloudSecurityCompliance::V1::ListCloudControlsRequest.new
737
+ #
738
+ # # Call the list_cloud_controls method.
739
+ # result = client.list_cloud_controls request
740
+ #
741
+ # # The returned object is of type Gapic::PagedEnumerable. You can iterate
742
+ # # over elements, and API calls will be issued to fetch pages as needed.
743
+ # result.each do |item|
744
+ # # Each element is of type ::Google::Cloud::CloudSecurityCompliance::V1::CloudControl.
745
+ # p item
746
+ # end
747
+ #
748
+ def list_cloud_controls request, options = nil
749
+ raise ::ArgumentError, "request must be provided" if request.nil?
750
+
751
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::CloudSecurityCompliance::V1::ListCloudControlsRequest
752
+
753
+ # Converts hash and nil to an options object
754
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
755
+
756
+ # Customize the options with defaults
757
+ call_metadata = @config.rpcs.list_cloud_controls.metadata.to_h
758
+
759
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
760
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
761
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
762
+ gapic_version: ::Google::Cloud::CloudSecurityCompliance::V1::VERSION,
763
+ transports_version_send: [:rest]
764
+
765
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
766
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
767
+
768
+ options.apply_defaults timeout: @config.rpcs.list_cloud_controls.timeout,
769
+ metadata: call_metadata,
770
+ retry_policy: @config.rpcs.list_cloud_controls.retry_policy
771
+
772
+ options.apply_defaults timeout: @config.timeout,
773
+ metadata: @config.metadata,
774
+ retry_policy: @config.retry_policy
775
+
776
+ @config_stub.list_cloud_controls request, options do |result, operation|
777
+ result = ::Gapic::Rest::PagedEnumerable.new @config_stub, :list_cloud_controls, "cloud_controls", request, result, options
778
+ yield result, operation if block_given?
779
+ throw :response, result
780
+ end
781
+ rescue ::Gapic::Rest::Error => e
782
+ raise ::Google::Cloud::Error.from_error(e)
783
+ end
784
+
785
+ ##
786
+ # Gets details of a single CloudControl.
787
+ # This method retrieves a CloudControl resource, which can be either Built-in
788
+ # or Custom, identified by its name.
789
+ #
790
+ # By default, the latest major version of the CloudControl is returned.
791
+ # A specific major version can be retrieved by specifying the
792
+ # `major_revision_id` in the request.
793
+ #
794
+ # @overload get_cloud_control(request, options = nil)
795
+ # Pass arguments to `get_cloud_control` via a request object, either of type
796
+ # {::Google::Cloud::CloudSecurityCompliance::V1::GetCloudControlRequest} or an equivalent Hash.
797
+ #
798
+ # @param request [::Google::Cloud::CloudSecurityCompliance::V1::GetCloudControlRequest, ::Hash]
799
+ # A request object representing the call parameters. Required. To specify no
800
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
801
+ # @param options [::Gapic::CallOptions, ::Hash]
802
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
803
+ #
804
+ # @overload get_cloud_control(name: nil)
805
+ # Pass arguments to `get_cloud_control` via keyword arguments. Note that at
806
+ # least one keyword argument is required. To specify no parameters, or to keep all
807
+ # the default parameter values, pass an empty Hash as a request object (see above).
808
+ #
809
+ # @param name [::String]
810
+ # Required. The name of the cloudcontrol to retrieve in the format:
811
+ # organizations/\\{organization}/locations/\\{location}/cloudControls/\\{cloud_control}
812
+ # @yield [result, operation] Access the result along with the TransportOperation object
813
+ # @yieldparam result [::Google::Cloud::CloudSecurityCompliance::V1::CloudControl]
814
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
815
+ #
816
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::CloudControl]
817
+ #
818
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
819
+ #
820
+ # @example Basic example
821
+ # require "google/cloud/cloud_security_compliance/v1"
822
+ #
823
+ # # Create a client object. The client can be reused for multiple calls.
824
+ # client = Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client.new
825
+ #
826
+ # # Create a request. To set request fields, pass in keyword arguments.
827
+ # request = Google::Cloud::CloudSecurityCompliance::V1::GetCloudControlRequest.new
828
+ #
829
+ # # Call the get_cloud_control method.
830
+ # result = client.get_cloud_control request
831
+ #
832
+ # # The returned object is of type Google::Cloud::CloudSecurityCompliance::V1::CloudControl.
833
+ # p result
834
+ #
835
+ def get_cloud_control request, options = nil
836
+ raise ::ArgumentError, "request must be provided" if request.nil?
837
+
838
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::CloudSecurityCompliance::V1::GetCloudControlRequest
839
+
840
+ # Converts hash and nil to an options object
841
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
842
+
843
+ # Customize the options with defaults
844
+ call_metadata = @config.rpcs.get_cloud_control.metadata.to_h
845
+
846
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
847
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
848
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
849
+ gapic_version: ::Google::Cloud::CloudSecurityCompliance::V1::VERSION,
850
+ transports_version_send: [:rest]
851
+
852
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
853
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
854
+
855
+ options.apply_defaults timeout: @config.rpcs.get_cloud_control.timeout,
856
+ metadata: call_metadata,
857
+ retry_policy: @config.rpcs.get_cloud_control.retry_policy
858
+
859
+ options.apply_defaults timeout: @config.timeout,
860
+ metadata: @config.metadata,
861
+ retry_policy: @config.retry_policy
862
+
863
+ @config_stub.get_cloud_control request, options do |result, operation|
864
+ yield result, operation if block_given?
865
+ end
866
+ rescue ::Gapic::Rest::Error => e
867
+ raise ::Google::Cloud::Error.from_error(e)
868
+ end
869
+
870
+ ##
871
+ # Creates a new CloudControl with type `Custom` under a given parent
872
+ # resource. `Built-in` CloudControls are managed by Google and cannot be
873
+ # created through this API.
874
+ #
875
+ # @overload create_cloud_control(request, options = nil)
876
+ # Pass arguments to `create_cloud_control` via a request object, either of type
877
+ # {::Google::Cloud::CloudSecurityCompliance::V1::CreateCloudControlRequest} or an equivalent Hash.
878
+ #
879
+ # @param request [::Google::Cloud::CloudSecurityCompliance::V1::CreateCloudControlRequest, ::Hash]
880
+ # A request object representing the call parameters. Required. To specify no
881
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
882
+ # @param options [::Gapic::CallOptions, ::Hash]
883
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
884
+ #
885
+ # @overload create_cloud_control(parent: nil, cloud_control_id: nil, cloud_control: nil)
886
+ # Pass arguments to `create_cloud_control` via keyword arguments. Note that at
887
+ # least one keyword argument is required. To specify no parameters, or to keep all
888
+ # the default parameter values, pass an empty Hash as a request object (see above).
889
+ #
890
+ # @param parent [::String]
891
+ # Required. The parent resource name, in the format
892
+ # `organizations/{organization}/locations/{location}`.
893
+ # @param cloud_control_id [::String]
894
+ # Required. ID of the CloudControl.
895
+ # This is the last segment of the CloudControl resource name.
896
+ # Format: `^[a-zA-Z][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]$`.
897
+ # @param cloud_control [::Google::Cloud::CloudSecurityCompliance::V1::CloudControl, ::Hash]
898
+ # Required. The resource being created
899
+ # @yield [result, operation] Access the result along with the TransportOperation object
900
+ # @yieldparam result [::Google::Cloud::CloudSecurityCompliance::V1::CloudControl]
901
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
902
+ #
903
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::CloudControl]
904
+ #
905
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
906
+ #
907
+ # @example Basic example
908
+ # require "google/cloud/cloud_security_compliance/v1"
909
+ #
910
+ # # Create a client object. The client can be reused for multiple calls.
911
+ # client = Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client.new
912
+ #
913
+ # # Create a request. To set request fields, pass in keyword arguments.
914
+ # request = Google::Cloud::CloudSecurityCompliance::V1::CreateCloudControlRequest.new
915
+ #
916
+ # # Call the create_cloud_control method.
917
+ # result = client.create_cloud_control request
918
+ #
919
+ # # The returned object is of type Google::Cloud::CloudSecurityCompliance::V1::CloudControl.
920
+ # p result
921
+ #
922
+ def create_cloud_control request, options = nil
923
+ raise ::ArgumentError, "request must be provided" if request.nil?
924
+
925
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::CloudSecurityCompliance::V1::CreateCloudControlRequest
926
+
927
+ # Converts hash and nil to an options object
928
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
929
+
930
+ # Customize the options with defaults
931
+ call_metadata = @config.rpcs.create_cloud_control.metadata.to_h
932
+
933
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
934
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
935
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
936
+ gapic_version: ::Google::Cloud::CloudSecurityCompliance::V1::VERSION,
937
+ transports_version_send: [:rest]
938
+
939
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
940
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
941
+
942
+ options.apply_defaults timeout: @config.rpcs.create_cloud_control.timeout,
943
+ metadata: call_metadata,
944
+ retry_policy: @config.rpcs.create_cloud_control.retry_policy
945
+
946
+ options.apply_defaults timeout: @config.timeout,
947
+ metadata: @config.metadata,
948
+ retry_policy: @config.retry_policy
949
+
950
+ @config_stub.create_cloud_control request, options do |result, operation|
951
+ yield result, operation if block_given?
952
+ end
953
+ rescue ::Gapic::Rest::Error => e
954
+ raise ::Google::Cloud::Error.from_error(e)
955
+ end
956
+
957
+ ##
958
+ # Updates a single CloudControl.
959
+ # This method allows for partial updates of a Custom CloudControl resource.
960
+ # Built-in CloudControls cannot be updated.
961
+ #
962
+ # - If an `update_mask` is provided, only the fields specified in the mask
963
+ # will be updated.
964
+ # - If no `update_mask` is provided, all fields present in the request's
965
+ # `cloud_control` body will be used to overwrite the existing resource.
966
+ #
967
+ # A successful update will result in a new version of the CloudControl.
968
+ #
969
+ # @overload update_cloud_control(request, options = nil)
970
+ # Pass arguments to `update_cloud_control` via a request object, either of type
971
+ # {::Google::Cloud::CloudSecurityCompliance::V1::UpdateCloudControlRequest} or an equivalent Hash.
972
+ #
973
+ # @param request [::Google::Cloud::CloudSecurityCompliance::V1::UpdateCloudControlRequest, ::Hash]
974
+ # A request object representing the call parameters. Required. To specify no
975
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
976
+ # @param options [::Gapic::CallOptions, ::Hash]
977
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
978
+ #
979
+ # @overload update_cloud_control(update_mask: nil, cloud_control: nil)
980
+ # Pass arguments to `update_cloud_control` via keyword arguments. Note that at
981
+ # least one keyword argument is required. To specify no parameters, or to keep all
982
+ # the default parameter values, pass an empty Hash as a request object (see above).
983
+ #
984
+ # @param update_mask [::Google::Protobuf::FieldMask, ::Hash]
985
+ # Optional. Field mask is used to specify the fields to be overwritten in the
986
+ # CloudControl resource by the update.
987
+ # The fields specified in the update_mask are relative to the resource, not
988
+ # the full request. A field will be overwritten if it is in the mask. If the
989
+ # user does not provide a mask then all fields present in the request will be
990
+ # overwritten. The fields that can be updated are:
991
+ # 1. Display_name
992
+ # 2. Description
993
+ # 3. Parameters
994
+ # 4. Rules
995
+ # 5. ParameterSpec.
996
+ # @param cloud_control [::Google::Cloud::CloudSecurityCompliance::V1::CloudControl, ::Hash]
997
+ # Required. The resource being updated
998
+ # @yield [result, operation] Access the result along with the TransportOperation object
999
+ # @yieldparam result [::Google::Cloud::CloudSecurityCompliance::V1::CloudControl]
1000
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
1001
+ #
1002
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::CloudControl]
1003
+ #
1004
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
1005
+ #
1006
+ # @example Basic example
1007
+ # require "google/cloud/cloud_security_compliance/v1"
1008
+ #
1009
+ # # Create a client object. The client can be reused for multiple calls.
1010
+ # client = Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client.new
1011
+ #
1012
+ # # Create a request. To set request fields, pass in keyword arguments.
1013
+ # request = Google::Cloud::CloudSecurityCompliance::V1::UpdateCloudControlRequest.new
1014
+ #
1015
+ # # Call the update_cloud_control method.
1016
+ # result = client.update_cloud_control request
1017
+ #
1018
+ # # The returned object is of type Google::Cloud::CloudSecurityCompliance::V1::CloudControl.
1019
+ # p result
1020
+ #
1021
+ def update_cloud_control request, options = nil
1022
+ raise ::ArgumentError, "request must be provided" if request.nil?
1023
+
1024
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::CloudSecurityCompliance::V1::UpdateCloudControlRequest
1025
+
1026
+ # Converts hash and nil to an options object
1027
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1028
+
1029
+ # Customize the options with defaults
1030
+ call_metadata = @config.rpcs.update_cloud_control.metadata.to_h
1031
+
1032
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
1033
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
1034
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1035
+ gapic_version: ::Google::Cloud::CloudSecurityCompliance::V1::VERSION,
1036
+ transports_version_send: [:rest]
1037
+
1038
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
1039
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1040
+
1041
+ options.apply_defaults timeout: @config.rpcs.update_cloud_control.timeout,
1042
+ metadata: call_metadata,
1043
+ retry_policy: @config.rpcs.update_cloud_control.retry_policy
1044
+
1045
+ options.apply_defaults timeout: @config.timeout,
1046
+ metadata: @config.metadata,
1047
+ retry_policy: @config.retry_policy
1048
+
1049
+ @config_stub.update_cloud_control request, options do |result, operation|
1050
+ yield result, operation if block_given?
1051
+ end
1052
+ rescue ::Gapic::Rest::Error => e
1053
+ raise ::Google::Cloud::Error.from_error(e)
1054
+ end
1055
+
1056
+ ##
1057
+ # Deletes a single Custom CloudControl, including all its
1058
+ # major and minor revisions.
1059
+ #
1060
+ # - This operation can only be performed on CloudControls with type `CUSTOM`.
1061
+ # Built-in CloudControls cannot be deleted.
1062
+ # - The CloudControl cannot be deleted if any of its revisions are currently
1063
+ # referenced by any Framework.
1064
+ # - This action is permanent and cannot be undone.
1065
+ #
1066
+ # @overload delete_cloud_control(request, options = nil)
1067
+ # Pass arguments to `delete_cloud_control` via a request object, either of type
1068
+ # {::Google::Cloud::CloudSecurityCompliance::V1::DeleteCloudControlRequest} or an equivalent Hash.
1069
+ #
1070
+ # @param request [::Google::Cloud::CloudSecurityCompliance::V1::DeleteCloudControlRequest, ::Hash]
1071
+ # A request object representing the call parameters. Required. To specify no
1072
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1073
+ # @param options [::Gapic::CallOptions, ::Hash]
1074
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
1075
+ #
1076
+ # @overload delete_cloud_control(name: nil)
1077
+ # Pass arguments to `delete_cloud_control` via keyword arguments. Note that at
1078
+ # least one keyword argument is required. To specify no parameters, or to keep all
1079
+ # the default parameter values, pass an empty Hash as a request object (see above).
1080
+ #
1081
+ # @param name [::String]
1082
+ # Required. Name of the resource, in the format
1083
+ # `organizations/{organization}/locations/{location}/CloudControls/{CloudControl}`.
1084
+ # @yield [result, operation] Access the result along with the TransportOperation object
1085
+ # @yieldparam result [::Google::Protobuf::Empty]
1086
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
1087
+ #
1088
+ # @return [::Google::Protobuf::Empty]
1089
+ #
1090
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
1091
+ #
1092
+ # @example Basic example
1093
+ # require "google/cloud/cloud_security_compliance/v1"
1094
+ #
1095
+ # # Create a client object. The client can be reused for multiple calls.
1096
+ # client = Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client.new
1097
+ #
1098
+ # # Create a request. To set request fields, pass in keyword arguments.
1099
+ # request = Google::Cloud::CloudSecurityCompliance::V1::DeleteCloudControlRequest.new
1100
+ #
1101
+ # # Call the delete_cloud_control method.
1102
+ # result = client.delete_cloud_control request
1103
+ #
1104
+ # # The returned object is of type Google::Protobuf::Empty.
1105
+ # p result
1106
+ #
1107
+ def delete_cloud_control request, options = nil
1108
+ raise ::ArgumentError, "request must be provided" if request.nil?
1109
+
1110
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::CloudSecurityCompliance::V1::DeleteCloudControlRequest
1111
+
1112
+ # Converts hash and nil to an options object
1113
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1114
+
1115
+ # Customize the options with defaults
1116
+ call_metadata = @config.rpcs.delete_cloud_control.metadata.to_h
1117
+
1118
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
1119
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
1120
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1121
+ gapic_version: ::Google::Cloud::CloudSecurityCompliance::V1::VERSION,
1122
+ transports_version_send: [:rest]
1123
+
1124
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
1125
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1126
+
1127
+ options.apply_defaults timeout: @config.rpcs.delete_cloud_control.timeout,
1128
+ metadata: call_metadata,
1129
+ retry_policy: @config.rpcs.delete_cloud_control.retry_policy
1130
+
1131
+ options.apply_defaults timeout: @config.timeout,
1132
+ metadata: @config.metadata,
1133
+ retry_policy: @config.retry_policy
1134
+
1135
+ @config_stub.delete_cloud_control request, options do |result, operation|
1136
+ yield result, operation if block_given?
1137
+ end
1138
+ rescue ::Gapic::Rest::Error => e
1139
+ raise ::Google::Cloud::Error.from_error(e)
1140
+ end
1141
+
1142
+ ##
1143
+ # Configuration class for the Config REST API.
1144
+ #
1145
+ # This class represents the configuration for Config REST,
1146
+ # providing control over timeouts, retry behavior, logging, transport
1147
+ # parameters, and other low-level controls. Certain parameters can also be
1148
+ # applied individually to specific RPCs. See
1149
+ # {::Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client::Configuration::Rpcs}
1150
+ # for a list of RPCs that can be configured independently.
1151
+ #
1152
+ # Configuration can be applied globally to all clients, or to a single client
1153
+ # on construction.
1154
+ #
1155
+ # @example
1156
+ #
1157
+ # # Modify the global config, setting the timeout for
1158
+ # # list_frameworks to 20 seconds,
1159
+ # # and all remaining timeouts to 10 seconds.
1160
+ # ::Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client.configure do |config|
1161
+ # config.timeout = 10.0
1162
+ # config.rpcs.list_frameworks.timeout = 20.0
1163
+ # end
1164
+ #
1165
+ # # Apply the above configuration only to a new client.
1166
+ # client = ::Google::Cloud::CloudSecurityCompliance::V1::Config::Rest::Client.new do |config|
1167
+ # config.timeout = 10.0
1168
+ # config.rpcs.list_frameworks.timeout = 20.0
1169
+ # end
1170
+ #
1171
+ # @!attribute [rw] endpoint
1172
+ # A custom service endpoint, as a hostname or hostname:port. The default is
1173
+ # nil, indicating to use the default endpoint in the current universe domain.
1174
+ # @return [::String,nil]
1175
+ # @!attribute [rw] credentials
1176
+ # Credentials to send with calls. You may provide any of the following types:
1177
+ # * (`String`) The path to a service account key file in JSON format
1178
+ # * (`Hash`) A service account key as a Hash
1179
+ # * (`Google::Auth::Credentials`) A googleauth credentials object
1180
+ # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
1181
+ # * (`Signet::OAuth2::Client`) A signet oauth2 client object
1182
+ # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
1183
+ # * (`nil`) indicating no credentials
1184
+ #
1185
+ # Warning: If you accept a credential configuration (JSON file or Hash) from an
1186
+ # external source for authentication to Google Cloud, you must validate it before
1187
+ # providing it to a Google API client library. Providing an unvalidated credential
1188
+ # configuration to Google APIs can compromise the security of your systems and data.
1189
+ # For more information, refer to [Validate credential configurations from external
1190
+ # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
1191
+ # @return [::Object]
1192
+ # @!attribute [rw] scope
1193
+ # The OAuth scopes
1194
+ # @return [::Array<::String>]
1195
+ # @!attribute [rw] lib_name
1196
+ # The library name as recorded in instrumentation and logging
1197
+ # @return [::String]
1198
+ # @!attribute [rw] lib_version
1199
+ # The library version as recorded in instrumentation and logging
1200
+ # @return [::String]
1201
+ # @!attribute [rw] timeout
1202
+ # The call timeout in seconds.
1203
+ # @return [::Numeric]
1204
+ # @!attribute [rw] metadata
1205
+ # Additional headers to be sent with the call.
1206
+ # @return [::Hash{::Symbol=>::String}]
1207
+ # @!attribute [rw] retry_policy
1208
+ # The retry policy. The value is a hash with the following keys:
1209
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
1210
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
1211
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
1212
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
1213
+ # trigger a retry.
1214
+ # @return [::Hash]
1215
+ # @!attribute [rw] quota_project
1216
+ # A separate project against which to charge quota.
1217
+ # @return [::String]
1218
+ # @!attribute [rw] universe_domain
1219
+ # The universe domain within which to make requests. This determines the
1220
+ # default endpoint URL. The default value of nil uses the environment
1221
+ # universe (usually the default "googleapis.com" universe).
1222
+ # @return [::String,nil]
1223
+ # @!attribute [rw] logger
1224
+ # A custom logger to use for request/response debug logging, or the value
1225
+ # `:default` (the default) to construct a default logger, or `nil` to
1226
+ # explicitly disable logging.
1227
+ # @return [::Logger,:default,nil]
1228
+ #
1229
+ class Configuration
1230
+ extend ::Gapic::Config
1231
+
1232
+ # @private
1233
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
1234
+ DEFAULT_ENDPOINT = "cloudsecuritycompliance.googleapis.com"
1235
+
1236
+ config_attr :endpoint, nil, ::String, nil
1237
+ config_attr :credentials, nil do |value|
1238
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil]
1239
+ allowed.any? { |klass| klass === value }
1240
+ end
1241
+ config_attr :scope, nil, ::String, ::Array, nil
1242
+ config_attr :lib_name, nil, ::String, nil
1243
+ config_attr :lib_version, nil, ::String, nil
1244
+ config_attr :timeout, nil, ::Numeric, nil
1245
+ config_attr :metadata, nil, ::Hash, nil
1246
+ config_attr :retry_policy, nil, ::Hash, ::Proc, nil
1247
+ config_attr :quota_project, nil, ::String, nil
1248
+ config_attr :universe_domain, nil, ::String, nil
1249
+
1250
+ # @private
1251
+ # Overrides for http bindings for the RPCs of this service
1252
+ # are only used when this service is used as mixin, and only
1253
+ # by the host service.
1254
+ # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}]
1255
+ config_attr :bindings_override, {}, ::Hash, nil
1256
+ config_attr :logger, :default, ::Logger, nil, :default
1257
+
1258
+ # @private
1259
+ def initialize parent_config = nil
1260
+ @parent_config = parent_config unless parent_config.nil?
1261
+
1262
+ yield self if block_given?
1263
+ end
1264
+
1265
+ ##
1266
+ # Configurations for individual RPCs
1267
+ # @return [Rpcs]
1268
+ #
1269
+ def rpcs
1270
+ @rpcs ||= begin
1271
+ parent_rpcs = nil
1272
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
1273
+ Rpcs.new parent_rpcs
1274
+ end
1275
+ end
1276
+
1277
+ ##
1278
+ # Configuration RPC class for the Config API.
1279
+ #
1280
+ # Includes fields providing the configuration for each RPC in this service.
1281
+ # Each configuration object is of type `Gapic::Config::Method` and includes
1282
+ # the following configuration fields:
1283
+ #
1284
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
1285
+ # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers
1286
+ # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
1287
+ # include the following keys:
1288
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
1289
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
1290
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
1291
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
1292
+ # trigger a retry.
1293
+ #
1294
+ class Rpcs
1295
+ ##
1296
+ # RPC-specific configuration for `list_frameworks`
1297
+ # @return [::Gapic::Config::Method]
1298
+ #
1299
+ attr_reader :list_frameworks
1300
+ ##
1301
+ # RPC-specific configuration for `get_framework`
1302
+ # @return [::Gapic::Config::Method]
1303
+ #
1304
+ attr_reader :get_framework
1305
+ ##
1306
+ # RPC-specific configuration for `create_framework`
1307
+ # @return [::Gapic::Config::Method]
1308
+ #
1309
+ attr_reader :create_framework
1310
+ ##
1311
+ # RPC-specific configuration for `update_framework`
1312
+ # @return [::Gapic::Config::Method]
1313
+ #
1314
+ attr_reader :update_framework
1315
+ ##
1316
+ # RPC-specific configuration for `delete_framework`
1317
+ # @return [::Gapic::Config::Method]
1318
+ #
1319
+ attr_reader :delete_framework
1320
+ ##
1321
+ # RPC-specific configuration for `list_cloud_controls`
1322
+ # @return [::Gapic::Config::Method]
1323
+ #
1324
+ attr_reader :list_cloud_controls
1325
+ ##
1326
+ # RPC-specific configuration for `get_cloud_control`
1327
+ # @return [::Gapic::Config::Method]
1328
+ #
1329
+ attr_reader :get_cloud_control
1330
+ ##
1331
+ # RPC-specific configuration for `create_cloud_control`
1332
+ # @return [::Gapic::Config::Method]
1333
+ #
1334
+ attr_reader :create_cloud_control
1335
+ ##
1336
+ # RPC-specific configuration for `update_cloud_control`
1337
+ # @return [::Gapic::Config::Method]
1338
+ #
1339
+ attr_reader :update_cloud_control
1340
+ ##
1341
+ # RPC-specific configuration for `delete_cloud_control`
1342
+ # @return [::Gapic::Config::Method]
1343
+ #
1344
+ attr_reader :delete_cloud_control
1345
+
1346
+ # @private
1347
+ def initialize parent_rpcs = nil
1348
+ list_frameworks_config = parent_rpcs.list_frameworks if parent_rpcs.respond_to? :list_frameworks
1349
+ @list_frameworks = ::Gapic::Config::Method.new list_frameworks_config
1350
+ get_framework_config = parent_rpcs.get_framework if parent_rpcs.respond_to? :get_framework
1351
+ @get_framework = ::Gapic::Config::Method.new get_framework_config
1352
+ create_framework_config = parent_rpcs.create_framework if parent_rpcs.respond_to? :create_framework
1353
+ @create_framework = ::Gapic::Config::Method.new create_framework_config
1354
+ update_framework_config = parent_rpcs.update_framework if parent_rpcs.respond_to? :update_framework
1355
+ @update_framework = ::Gapic::Config::Method.new update_framework_config
1356
+ delete_framework_config = parent_rpcs.delete_framework if parent_rpcs.respond_to? :delete_framework
1357
+ @delete_framework = ::Gapic::Config::Method.new delete_framework_config
1358
+ list_cloud_controls_config = parent_rpcs.list_cloud_controls if parent_rpcs.respond_to? :list_cloud_controls
1359
+ @list_cloud_controls = ::Gapic::Config::Method.new list_cloud_controls_config
1360
+ get_cloud_control_config = parent_rpcs.get_cloud_control if parent_rpcs.respond_to? :get_cloud_control
1361
+ @get_cloud_control = ::Gapic::Config::Method.new get_cloud_control_config
1362
+ create_cloud_control_config = parent_rpcs.create_cloud_control if parent_rpcs.respond_to? :create_cloud_control
1363
+ @create_cloud_control = ::Gapic::Config::Method.new create_cloud_control_config
1364
+ update_cloud_control_config = parent_rpcs.update_cloud_control if parent_rpcs.respond_to? :update_cloud_control
1365
+ @update_cloud_control = ::Gapic::Config::Method.new update_cloud_control_config
1366
+ delete_cloud_control_config = parent_rpcs.delete_cloud_control if parent_rpcs.respond_to? :delete_cloud_control
1367
+ @delete_cloud_control = ::Gapic::Config::Method.new delete_cloud_control_config
1368
+
1369
+ yield self if block_given?
1370
+ end
1371
+ end
1372
+ end
1373
+ end
1374
+ end
1375
+ end
1376
+ end
1377
+ end
1378
+ end
1379
+ end