google-cloud-security_center-v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +169 -0
  4. data/LICENSE.md +203 -0
  5. data/README.md +71 -0
  6. data/lib/google/cloud/common_resources_pb.rb +15 -0
  7. data/lib/google/cloud/security_center/v1/security_center/client.rb +2673 -0
  8. data/lib/google/cloud/security_center/v1/security_center/credentials.rb +51 -0
  9. data/lib/google/cloud/security_center/v1/security_center/operations.rb +564 -0
  10. data/lib/google/cloud/security_center/v1/security_center/paths.rb +172 -0
  11. data/lib/google/cloud/security_center/v1/security_center.rb +50 -0
  12. data/lib/google/cloud/security_center/v1/version.rb +28 -0
  13. data/lib/google/cloud/security_center/v1.rb +35 -0
  14. data/lib/google/cloud/securitycenter/v1/asset_pb.rb +48 -0
  15. data/lib/google/cloud/securitycenter/v1/finding_pb.rb +43 -0
  16. data/lib/google/cloud/securitycenter/v1/notification_config_pb.rb +35 -0
  17. data/lib/google/cloud/securitycenter/v1/notification_message_pb.rb +27 -0
  18. data/lib/google/cloud/securitycenter/v1/organization_settings_pb.rb +37 -0
  19. data/lib/google/cloud/securitycenter/v1/run_asset_discovery_response_pb.rb +32 -0
  20. data/lib/google/cloud/securitycenter/v1/security_marks_pb.rb +25 -0
  21. data/lib/google/cloud/securitycenter/v1/securitycenter_service_pb.rb +237 -0
  22. data/lib/google/cloud/securitycenter/v1/securitycenter_service_services_pb.rb +105 -0
  23. data/lib/google/cloud/securitycenter/v1/source_pb.rb +26 -0
  24. data/lib/google-cloud-security_center-v1.rb +21 -0
  25. data/proto_docs/README.md +4 -0
  26. data/proto_docs/google/api/field_behavior.rb +59 -0
  27. data/proto_docs/google/api/resource.rb +247 -0
  28. data/proto_docs/google/cloud/securitycenter/v1/asset.rb +127 -0
  29. data/proto_docs/google/cloud/securitycenter/v1/finding.rb +113 -0
  30. data/proto_docs/google/cloud/securitycenter/v1/notification_config.rb +85 -0
  31. data/proto_docs/google/cloud/securitycenter/v1/notification_message.rb +39 -0
  32. data/proto_docs/google/cloud/securitycenter/v1/organization_settings.rb +82 -0
  33. data/proto_docs/google/cloud/securitycenter/v1/run_asset_discovery_response.rb +54 -0
  34. data/proto_docs/google/cloud/securitycenter/v1/security_marks.rb +61 -0
  35. data/proto_docs/google/cloud/securitycenter/v1/securitycenter_service.rb +1015 -0
  36. data/proto_docs/google/cloud/securitycenter/v1/source.rb +57 -0
  37. data/proto_docs/google/iam/v1/iam_policy.rb +80 -0
  38. data/proto_docs/google/iam/v1/options.rb +40 -0
  39. data/proto_docs/google/iam/v1/policy.rb +248 -0
  40. data/proto_docs/google/longrunning/operations.rb +150 -0
  41. data/proto_docs/google/protobuf/any.rb +138 -0
  42. data/proto_docs/google/protobuf/duration.rb +98 -0
  43. data/proto_docs/google/protobuf/empty.rb +36 -0
  44. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  45. data/proto_docs/google/protobuf/struct.rb +96 -0
  46. data/proto_docs/google/protobuf/timestamp.rb +120 -0
  47. data/proto_docs/google/rpc/status.rb +46 -0
  48. data/proto_docs/google/type/expr.rb +52 -0
  49. metadata +222 -0
@@ -0,0 +1,2673 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020 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/securitycenter/v1/securitycenter_service_pb"
21
+
22
+ module Google
23
+ module Cloud
24
+ module SecurityCenter
25
+ module V1
26
+ module SecurityCenter
27
+ ##
28
+ # Client for the SecurityCenter service.
29
+ #
30
+ # V1 APIs for Security Center service.
31
+ #
32
+ class Client
33
+ include Paths
34
+
35
+ # @private
36
+ attr_reader :security_center_stub
37
+
38
+ ##
39
+ # Configure the SecurityCenter Client class.
40
+ #
41
+ # See {Google::Cloud::SecurityCenter::V1::SecurityCenter::Client::Configuration}
42
+ # for a description of the configuration fields.
43
+ #
44
+ # ## Example
45
+ #
46
+ # To modify the configuration for all SecurityCenter clients:
47
+ #
48
+ # Google::Cloud::SecurityCenter::V1::SecurityCenter::Client.configure do |config|
49
+ # config.timeout = 10_000
50
+ # end
51
+ #
52
+ # @yield [config] Configure the Client client.
53
+ # @yieldparam config [Client::Configuration]
54
+ #
55
+ # @return [Client::Configuration]
56
+ #
57
+ def self.configure
58
+ @configure ||= begin
59
+ namespace = ["Google", "Cloud", "SecurityCenter", "V1"]
60
+ parent_config = while namespace.any?
61
+ parent_name = namespace.join "::"
62
+ parent_const = const_get parent_name
63
+ break parent_const.configure if parent_const&.respond_to? :configure
64
+ namespace.pop
65
+ end
66
+ default_config = Client::Configuration.new parent_config
67
+
68
+ default_config.rpcs.create_source.timeout = 60.0
69
+
70
+ default_config.rpcs.create_finding.timeout = 60.0
71
+
72
+ default_config.rpcs.create_notification_config.timeout = 60.0
73
+
74
+ default_config.rpcs.delete_notification_config.timeout = 60.0
75
+
76
+ default_config.rpcs.get_iam_policy.timeout = 60.0
77
+ default_config.rpcs.get_iam_policy.retry_policy = {
78
+ initial_delay: 0.1,
79
+ max_delay: 60.0,
80
+ multiplier: 1.3,
81
+ retry_codes: ["DEADLINE_EXCEEDED", "UNAVAILABLE"]
82
+ }
83
+
84
+ default_config.rpcs.get_notification_config.timeout = 60.0
85
+ default_config.rpcs.get_notification_config.retry_policy = {
86
+ initial_delay: 0.1,
87
+ max_delay: 60.0,
88
+ multiplier: 1.3,
89
+ retry_codes: ["DEADLINE_EXCEEDED", "UNAVAILABLE"]
90
+ }
91
+
92
+ default_config.rpcs.get_organization_settings.timeout = 60.0
93
+ default_config.rpcs.get_organization_settings.retry_policy = {
94
+ initial_delay: 0.1,
95
+ max_delay: 60.0,
96
+ multiplier: 1.3,
97
+ retry_codes: ["DEADLINE_EXCEEDED", "UNAVAILABLE"]
98
+ }
99
+
100
+ default_config.rpcs.get_source.timeout = 60.0
101
+ default_config.rpcs.get_source.retry_policy = {
102
+ initial_delay: 0.1,
103
+ max_delay: 60.0,
104
+ multiplier: 1.3,
105
+ retry_codes: ["DEADLINE_EXCEEDED", "UNAVAILABLE"]
106
+ }
107
+
108
+ default_config.rpcs.group_assets.timeout = 60.0
109
+ default_config.rpcs.group_assets.retry_policy = {
110
+ initial_delay: 0.1,
111
+ max_delay: 60.0,
112
+ multiplier: 1.3,
113
+ retry_codes: ["DEADLINE_EXCEEDED", "UNAVAILABLE"]
114
+ }
115
+
116
+ default_config.rpcs.group_findings.timeout = 60.0
117
+ default_config.rpcs.group_findings.retry_policy = {
118
+ initial_delay: 0.1,
119
+ max_delay: 60.0,
120
+ multiplier: 1.3,
121
+ retry_codes: ["DEADLINE_EXCEEDED", "UNAVAILABLE"]
122
+ }
123
+
124
+ default_config.rpcs.list_assets.timeout = 60.0
125
+ default_config.rpcs.list_assets.retry_policy = {
126
+ initial_delay: 0.1,
127
+ max_delay: 60.0,
128
+ multiplier: 1.3,
129
+ retry_codes: ["DEADLINE_EXCEEDED", "UNAVAILABLE"]
130
+ }
131
+
132
+ default_config.rpcs.list_findings.timeout = 60.0
133
+ default_config.rpcs.list_findings.retry_policy = {
134
+ initial_delay: 0.1,
135
+ max_delay: 60.0,
136
+ multiplier: 1.3,
137
+ retry_codes: ["DEADLINE_EXCEEDED", "UNAVAILABLE"]
138
+ }
139
+
140
+ default_config.rpcs.list_notification_configs.timeout = 60.0
141
+ default_config.rpcs.list_notification_configs.retry_policy = {
142
+ initial_delay: 0.1,
143
+ max_delay: 60.0,
144
+ multiplier: 1.3,
145
+ retry_codes: ["DEADLINE_EXCEEDED", "UNAVAILABLE"]
146
+ }
147
+
148
+ default_config.rpcs.list_sources.timeout = 60.0
149
+ default_config.rpcs.list_sources.retry_policy = {
150
+ initial_delay: 0.1,
151
+ max_delay: 60.0,
152
+ multiplier: 1.3,
153
+ retry_codes: ["DEADLINE_EXCEEDED", "UNAVAILABLE"]
154
+ }
155
+
156
+ default_config.rpcs.run_asset_discovery.timeout = 60.0
157
+
158
+ default_config.rpcs.set_finding_state.timeout = 60.0
159
+
160
+ default_config.rpcs.set_iam_policy.timeout = 60.0
161
+
162
+ default_config.rpcs.test_iam_permissions.timeout = 60.0
163
+ default_config.rpcs.test_iam_permissions.retry_policy = {
164
+ initial_delay: 0.1,
165
+ max_delay: 60.0,
166
+ multiplier: 1.3,
167
+ retry_codes: ["DEADLINE_EXCEEDED", "UNAVAILABLE"]
168
+ }
169
+
170
+ default_config.rpcs.update_finding.timeout = 60.0
171
+
172
+ default_config.rpcs.update_notification_config.timeout = 60.0
173
+
174
+ default_config.rpcs.update_organization_settings.timeout = 60.0
175
+
176
+ default_config.rpcs.update_source.timeout = 60.0
177
+
178
+ default_config.rpcs.update_security_marks.timeout = 60.0
179
+
180
+ default_config
181
+ end
182
+ yield @configure if block_given?
183
+ @configure
184
+ end
185
+
186
+ ##
187
+ # Configure the SecurityCenter Client instance.
188
+ #
189
+ # The configuration is set to the derived mode, meaning that values can be changed,
190
+ # but structural changes (adding new fields, etc.) are not allowed. Structural changes
191
+ # should be made on {Client.configure}.
192
+ #
193
+ # See {Google::Cloud::SecurityCenter::V1::SecurityCenter::Client::Configuration}
194
+ # for a description of the configuration fields.
195
+ #
196
+ # @yield [config] Configure the Client client.
197
+ # @yieldparam config [Client::Configuration]
198
+ #
199
+ # @return [Client::Configuration]
200
+ #
201
+ def configure
202
+ yield @config if block_given?
203
+ @config
204
+ end
205
+
206
+ ##
207
+ # Create a new SecurityCenter client object.
208
+ #
209
+ # ## Examples
210
+ #
211
+ # To create a new SecurityCenter client with the default
212
+ # configuration:
213
+ #
214
+ # client = Google::Cloud::SecurityCenter::V1::SecurityCenter::Client.new
215
+ #
216
+ # To create a new SecurityCenter client with a custom
217
+ # configuration:
218
+ #
219
+ # client = Google::Cloud::SecurityCenter::V1::SecurityCenter::Client.new do |config|
220
+ # config.timeout = 10_000
221
+ # end
222
+ #
223
+ # @yield [config] Configure the SecurityCenter client.
224
+ # @yieldparam config [Client::Configuration]
225
+ #
226
+ def initialize
227
+ # These require statements are intentionally placed here to initialize
228
+ # the gRPC module only when it's required.
229
+ # See https://github.com/googleapis/toolkit/issues/446
230
+ require "gapic/grpc"
231
+ require "google/cloud/securitycenter/v1/securitycenter_service_services_pb"
232
+
233
+ # Create the configuration object
234
+ @config = Configuration.new Client.configure
235
+
236
+ # Yield the configuration if needed
237
+ yield @config if block_given?
238
+
239
+ # Create credentials
240
+ credentials = @config.credentials
241
+ credentials ||= Credentials.default scope: @config.scope
242
+ if credentials.is_a?(String) || credentials.is_a?(Hash)
243
+ credentials = Credentials.new credentials, scope: @config.scope
244
+ end
245
+ @quota_project_id = credentials.respond_to?(:quota_project_id) ? credentials.quota_project_id : nil
246
+
247
+ @operations_client = Operations.new do |config|
248
+ config.credentials = credentials
249
+ config.endpoint = @config.endpoint
250
+ end
251
+
252
+ @security_center_stub = Gapic::ServiceStub.new(
253
+ Google::Cloud::SecurityCenter::V1::SecurityCenter::Stub,
254
+ credentials: credentials,
255
+ endpoint: @config.endpoint,
256
+ channel_args: @config.channel_args,
257
+ interceptors: @config.interceptors
258
+ )
259
+ end
260
+
261
+ ##
262
+ # Get the associated client for long-running operations.
263
+ #
264
+ # @return [Google::Cloud::SecurityCenter::V1::SecurityCenter::Operations]
265
+ #
266
+ attr_reader :operations_client
267
+
268
+ # Service calls
269
+
270
+ ##
271
+ # Creates a source.
272
+ #
273
+ # @overload create_source(request, options = nil)
274
+ # Pass arguments to `create_source` via a request object, either of type
275
+ # {Google::Cloud::SecurityCenter::V1::CreateSourceRequest} or an equivalent Hash.
276
+ #
277
+ # @param request [Google::Cloud::SecurityCenter::V1::CreateSourceRequest, Hash]
278
+ # A request object representing the call parameters. Required. To specify no
279
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
280
+ # @param options [Gapic::CallOptions, Hash]
281
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
282
+ #
283
+ # @overload create_source(parent: nil, source: nil)
284
+ # Pass arguments to `create_source` via keyword arguments. Note that at
285
+ # least one keyword argument is required. To specify no parameters, or to keep all
286
+ # the default parameter values, pass an empty Hash as a request object (see above).
287
+ #
288
+ # @param parent [String]
289
+ # Required. Resource name of the new source's parent. Its format should be
290
+ # "organizations/[organization_id]".
291
+ # @param source [Google::Cloud::SecurityCenter::V1::Source, Hash]
292
+ # Required. The Source being created, only the display_name and description
293
+ # will be used. All other fields will be ignored.
294
+ #
295
+ # @yield [response, operation] Access the result along with the RPC operation
296
+ # @yieldparam response [Google::Cloud::SecurityCenter::V1::Source]
297
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
298
+ #
299
+ # @return [Google::Cloud::SecurityCenter::V1::Source]
300
+ #
301
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
302
+ #
303
+ def create_source request, options = nil
304
+ raise ArgumentError, "request must be provided" if request.nil?
305
+
306
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::CreateSourceRequest
307
+
308
+ # Converts hash and nil to an options object
309
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
310
+
311
+ # Customize the options with defaults
312
+ metadata = @config.rpcs.create_source.metadata.to_h
313
+
314
+ # Set x-goog-api-client and x-goog-user-project headers
315
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
316
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
317
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
318
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
319
+
320
+ header_params = {
321
+ "parent" => request.parent
322
+ }
323
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
324
+ metadata[:"x-goog-request-params"] ||= request_params_header
325
+
326
+ options.apply_defaults timeout: @config.rpcs.create_source.timeout,
327
+ metadata: metadata,
328
+ retry_policy: @config.rpcs.create_source.retry_policy
329
+ options.apply_defaults metadata: @config.metadata,
330
+ retry_policy: @config.retry_policy
331
+
332
+ @security_center_stub.call_rpc :create_source, request, options: options do |response, operation|
333
+ yield response, operation if block_given?
334
+ return response
335
+ end
336
+ rescue GRPC::BadStatus => e
337
+ raise Google::Cloud::Error.from_error(e)
338
+ end
339
+
340
+ ##
341
+ # Creates a finding. The corresponding source must exist for finding creation
342
+ # to succeed.
343
+ #
344
+ # @overload create_finding(request, options = nil)
345
+ # Pass arguments to `create_finding` via a request object, either of type
346
+ # {Google::Cloud::SecurityCenter::V1::CreateFindingRequest} or an equivalent Hash.
347
+ #
348
+ # @param request [Google::Cloud::SecurityCenter::V1::CreateFindingRequest, Hash]
349
+ # A request object representing the call parameters. Required. To specify no
350
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
351
+ # @param options [Gapic::CallOptions, Hash]
352
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
353
+ #
354
+ # @overload create_finding(parent: nil, finding_id: nil, finding: nil)
355
+ # Pass arguments to `create_finding` via keyword arguments. Note that at
356
+ # least one keyword argument is required. To specify no parameters, or to keep all
357
+ # the default parameter values, pass an empty Hash as a request object (see above).
358
+ #
359
+ # @param parent [String]
360
+ # Required. Resource name of the new finding's parent. Its format should be
361
+ # "organizations/[organization_id]/sources/[source_id]".
362
+ # @param finding_id [String]
363
+ # Required. Unique identifier provided by the client within the parent scope.
364
+ # It must be alphanumeric and less than or equal to 32 characters and
365
+ # greater than 0 characters in length.
366
+ # @param finding [Google::Cloud::SecurityCenter::V1::Finding, Hash]
367
+ # Required. The Finding being created. The name and security_marks will be
368
+ # ignored as they are both output only fields on this resource.
369
+ #
370
+ # @yield [response, operation] Access the result along with the RPC operation
371
+ # @yieldparam response [Google::Cloud::SecurityCenter::V1::Finding]
372
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
373
+ #
374
+ # @return [Google::Cloud::SecurityCenter::V1::Finding]
375
+ #
376
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
377
+ #
378
+ def create_finding request, options = nil
379
+ raise ArgumentError, "request must be provided" if request.nil?
380
+
381
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::CreateFindingRequest
382
+
383
+ # Converts hash and nil to an options object
384
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
385
+
386
+ # Customize the options with defaults
387
+ metadata = @config.rpcs.create_finding.metadata.to_h
388
+
389
+ # Set x-goog-api-client and x-goog-user-project headers
390
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
391
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
392
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
393
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
394
+
395
+ header_params = {
396
+ "parent" => request.parent
397
+ }
398
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
399
+ metadata[:"x-goog-request-params"] ||= request_params_header
400
+
401
+ options.apply_defaults timeout: @config.rpcs.create_finding.timeout,
402
+ metadata: metadata,
403
+ retry_policy: @config.rpcs.create_finding.retry_policy
404
+ options.apply_defaults metadata: @config.metadata,
405
+ retry_policy: @config.retry_policy
406
+
407
+ @security_center_stub.call_rpc :create_finding, request, options: options do |response, operation|
408
+ yield response, operation if block_given?
409
+ return response
410
+ end
411
+ rescue GRPC::BadStatus => e
412
+ raise Google::Cloud::Error.from_error(e)
413
+ end
414
+
415
+ ##
416
+ # Creates a notification config.
417
+ #
418
+ # @overload create_notification_config(request, options = nil)
419
+ # Pass arguments to `create_notification_config` via a request object, either of type
420
+ # {Google::Cloud::SecurityCenter::V1::CreateNotificationConfigRequest} or an equivalent Hash.
421
+ #
422
+ # @param request [Google::Cloud::SecurityCenter::V1::CreateNotificationConfigRequest, Hash]
423
+ # A request object representing the call parameters. Required. To specify no
424
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
425
+ # @param options [Gapic::CallOptions, Hash]
426
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
427
+ #
428
+ # @overload create_notification_config(parent: nil, config_id: nil, notification_config: nil)
429
+ # Pass arguments to `create_notification_config` via keyword arguments. Note that at
430
+ # least one keyword argument is required. To specify no parameters, or to keep all
431
+ # the default parameter values, pass an empty Hash as a request object (see above).
432
+ #
433
+ # @param parent [String]
434
+ # Required. Resource name of the new notification config's parent. Its format
435
+ # is "organizations/[organization_id]".
436
+ # @param config_id [String]
437
+ # Required.
438
+ # Unique identifier provided by the client within the parent scope.
439
+ # It must be between 1 and 128 characters, and contains alphanumeric
440
+ # characters, underscores or hyphens only.
441
+ # @param notification_config [Google::Cloud::SecurityCenter::V1::NotificationConfig, Hash]
442
+ # Required. The notification config being created. The name and the service
443
+ # account will be ignored as they are both output only fields on this
444
+ # resource.
445
+ #
446
+ # @yield [response, operation] Access the result along with the RPC operation
447
+ # @yieldparam response [Google::Cloud::SecurityCenter::V1::NotificationConfig]
448
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
449
+ #
450
+ # @return [Google::Cloud::SecurityCenter::V1::NotificationConfig]
451
+ #
452
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
453
+ #
454
+ def create_notification_config request, options = nil
455
+ raise ArgumentError, "request must be provided" if request.nil?
456
+
457
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::CreateNotificationConfigRequest
458
+
459
+ # Converts hash and nil to an options object
460
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
461
+
462
+ # Customize the options with defaults
463
+ metadata = @config.rpcs.create_notification_config.metadata.to_h
464
+
465
+ # Set x-goog-api-client and x-goog-user-project headers
466
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
467
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
468
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
469
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
470
+
471
+ header_params = {
472
+ "parent" => request.parent
473
+ }
474
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
475
+ metadata[:"x-goog-request-params"] ||= request_params_header
476
+
477
+ options.apply_defaults timeout: @config.rpcs.create_notification_config.timeout,
478
+ metadata: metadata,
479
+ retry_policy: @config.rpcs.create_notification_config.retry_policy
480
+ options.apply_defaults metadata: @config.metadata,
481
+ retry_policy: @config.retry_policy
482
+
483
+ @security_center_stub.call_rpc :create_notification_config, request, options: options do |response, operation|
484
+ yield response, operation if block_given?
485
+ return response
486
+ end
487
+ rescue GRPC::BadStatus => e
488
+ raise Google::Cloud::Error.from_error(e)
489
+ end
490
+
491
+ ##
492
+ # Deletes a notification config.
493
+ #
494
+ # @overload delete_notification_config(request, options = nil)
495
+ # Pass arguments to `delete_notification_config` via a request object, either of type
496
+ # {Google::Cloud::SecurityCenter::V1::DeleteNotificationConfigRequest} or an equivalent Hash.
497
+ #
498
+ # @param request [Google::Cloud::SecurityCenter::V1::DeleteNotificationConfigRequest, Hash]
499
+ # A request object representing the call parameters. Required. To specify no
500
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
501
+ # @param options [Gapic::CallOptions, Hash]
502
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
503
+ #
504
+ # @overload delete_notification_config(name: nil)
505
+ # Pass arguments to `delete_notification_config` via keyword arguments. Note that at
506
+ # least one keyword argument is required. To specify no parameters, or to keep all
507
+ # the default parameter values, pass an empty Hash as a request object (see above).
508
+ #
509
+ # @param name [String]
510
+ # Required. Name of the notification config to delete. Its format is
511
+ # "organizations/[organization_id]/notificationConfigs/[config_id]".
512
+ #
513
+ # @yield [response, operation] Access the result along with the RPC operation
514
+ # @yieldparam response [Google::Protobuf::Empty]
515
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
516
+ #
517
+ # @return [Google::Protobuf::Empty]
518
+ #
519
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
520
+ #
521
+ def delete_notification_config request, options = nil
522
+ raise ArgumentError, "request must be provided" if request.nil?
523
+
524
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::DeleteNotificationConfigRequest
525
+
526
+ # Converts hash and nil to an options object
527
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
528
+
529
+ # Customize the options with defaults
530
+ metadata = @config.rpcs.delete_notification_config.metadata.to_h
531
+
532
+ # Set x-goog-api-client and x-goog-user-project headers
533
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
534
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
535
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
536
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
537
+
538
+ header_params = {
539
+ "name" => request.name
540
+ }
541
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
542
+ metadata[:"x-goog-request-params"] ||= request_params_header
543
+
544
+ options.apply_defaults timeout: @config.rpcs.delete_notification_config.timeout,
545
+ metadata: metadata,
546
+ retry_policy: @config.rpcs.delete_notification_config.retry_policy
547
+ options.apply_defaults metadata: @config.metadata,
548
+ retry_policy: @config.retry_policy
549
+
550
+ @security_center_stub.call_rpc :delete_notification_config, request, options: options do |response, operation|
551
+ yield response, operation if block_given?
552
+ return response
553
+ end
554
+ rescue GRPC::BadStatus => e
555
+ raise Google::Cloud::Error.from_error(e)
556
+ end
557
+
558
+ ##
559
+ # Gets the access control policy on the specified Source.
560
+ #
561
+ # @overload get_iam_policy(request, options = nil)
562
+ # Pass arguments to `get_iam_policy` via a request object, either of type
563
+ # {Google::Iam::V1::GetIamPolicyRequest} or an equivalent Hash.
564
+ #
565
+ # @param request [Google::Iam::V1::GetIamPolicyRequest, Hash]
566
+ # A request object representing the call parameters. Required. To specify no
567
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
568
+ # @param options [Gapic::CallOptions, Hash]
569
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
570
+ #
571
+ # @overload get_iam_policy(resource: nil, options: nil)
572
+ # Pass arguments to `get_iam_policy` via keyword arguments. Note that at
573
+ # least one keyword argument is required. To specify no parameters, or to keep all
574
+ # the default parameter values, pass an empty Hash as a request object (see above).
575
+ #
576
+ # @param resource [String]
577
+ # REQUIRED: The resource for which the policy is being requested.
578
+ # See the operation documentation for the appropriate value for this field.
579
+ # @param options [Google::Iam::V1::GetPolicyOptions, Hash]
580
+ # OPTIONAL: A `GetPolicyOptions` object for specifying options to
581
+ # `GetIamPolicy`. This field is only used by Cloud IAM.
582
+ #
583
+ # @yield [response, operation] Access the result along with the RPC operation
584
+ # @yieldparam response [Google::Iam::V1::Policy]
585
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
586
+ #
587
+ # @return [Google::Iam::V1::Policy]
588
+ #
589
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
590
+ #
591
+ def get_iam_policy request, options = nil
592
+ raise ArgumentError, "request must be provided" if request.nil?
593
+
594
+ request = Gapic::Protobuf.coerce request, to: Google::Iam::V1::GetIamPolicyRequest
595
+
596
+ # Converts hash and nil to an options object
597
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
598
+
599
+ # Customize the options with defaults
600
+ metadata = @config.rpcs.get_iam_policy.metadata.to_h
601
+
602
+ # Set x-goog-api-client and x-goog-user-project headers
603
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
604
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
605
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
606
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
607
+
608
+ header_params = {
609
+ "resource" => request.resource
610
+ }
611
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
612
+ metadata[:"x-goog-request-params"] ||= request_params_header
613
+
614
+ options.apply_defaults timeout: @config.rpcs.get_iam_policy.timeout,
615
+ metadata: metadata,
616
+ retry_policy: @config.rpcs.get_iam_policy.retry_policy
617
+ options.apply_defaults metadata: @config.metadata,
618
+ retry_policy: @config.retry_policy
619
+
620
+ @security_center_stub.call_rpc :get_iam_policy, request, options: options do |response, operation|
621
+ yield response, operation if block_given?
622
+ return response
623
+ end
624
+ rescue GRPC::BadStatus => e
625
+ raise Google::Cloud::Error.from_error(e)
626
+ end
627
+
628
+ ##
629
+ # Gets a notification config.
630
+ #
631
+ # @overload get_notification_config(request, options = nil)
632
+ # Pass arguments to `get_notification_config` via a request object, either of type
633
+ # {Google::Cloud::SecurityCenter::V1::GetNotificationConfigRequest} or an equivalent Hash.
634
+ #
635
+ # @param request [Google::Cloud::SecurityCenter::V1::GetNotificationConfigRequest, Hash]
636
+ # A request object representing the call parameters. Required. To specify no
637
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
638
+ # @param options [Gapic::CallOptions, Hash]
639
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
640
+ #
641
+ # @overload get_notification_config(name: nil)
642
+ # Pass arguments to `get_notification_config` via keyword arguments. Note that at
643
+ # least one keyword argument is required. To specify no parameters, or to keep all
644
+ # the default parameter values, pass an empty Hash as a request object (see above).
645
+ #
646
+ # @param name [String]
647
+ # Required. Name of the notification config to get. Its format is
648
+ # "organizations/[organization_id]/notificationConfigs/[config_id]".
649
+ #
650
+ # @yield [response, operation] Access the result along with the RPC operation
651
+ # @yieldparam response [Google::Cloud::SecurityCenter::V1::NotificationConfig]
652
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
653
+ #
654
+ # @return [Google::Cloud::SecurityCenter::V1::NotificationConfig]
655
+ #
656
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
657
+ #
658
+ def get_notification_config request, options = nil
659
+ raise ArgumentError, "request must be provided" if request.nil?
660
+
661
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::GetNotificationConfigRequest
662
+
663
+ # Converts hash and nil to an options object
664
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
665
+
666
+ # Customize the options with defaults
667
+ metadata = @config.rpcs.get_notification_config.metadata.to_h
668
+
669
+ # Set x-goog-api-client and x-goog-user-project headers
670
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
671
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
672
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
673
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
674
+
675
+ header_params = {
676
+ "name" => request.name
677
+ }
678
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
679
+ metadata[:"x-goog-request-params"] ||= request_params_header
680
+
681
+ options.apply_defaults timeout: @config.rpcs.get_notification_config.timeout,
682
+ metadata: metadata,
683
+ retry_policy: @config.rpcs.get_notification_config.retry_policy
684
+ options.apply_defaults metadata: @config.metadata,
685
+ retry_policy: @config.retry_policy
686
+
687
+ @security_center_stub.call_rpc :get_notification_config, request, options: options do |response, operation|
688
+ yield response, operation if block_given?
689
+ return response
690
+ end
691
+ rescue GRPC::BadStatus => e
692
+ raise Google::Cloud::Error.from_error(e)
693
+ end
694
+
695
+ ##
696
+ # Gets the settings for an organization.
697
+ #
698
+ # @overload get_organization_settings(request, options = nil)
699
+ # Pass arguments to `get_organization_settings` via a request object, either of type
700
+ # {Google::Cloud::SecurityCenter::V1::GetOrganizationSettingsRequest} or an equivalent Hash.
701
+ #
702
+ # @param request [Google::Cloud::SecurityCenter::V1::GetOrganizationSettingsRequest, Hash]
703
+ # A request object representing the call parameters. Required. To specify no
704
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
705
+ # @param options [Gapic::CallOptions, Hash]
706
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
707
+ #
708
+ # @overload get_organization_settings(name: nil)
709
+ # Pass arguments to `get_organization_settings` via keyword arguments. Note that at
710
+ # least one keyword argument is required. To specify no parameters, or to keep all
711
+ # the default parameter values, pass an empty Hash as a request object (see above).
712
+ #
713
+ # @param name [String]
714
+ # Required. Name of the organization to get organization settings for. Its
715
+ # format is "organizations/[organization_id]/organizationSettings".
716
+ #
717
+ # @yield [response, operation] Access the result along with the RPC operation
718
+ # @yieldparam response [Google::Cloud::SecurityCenter::V1::OrganizationSettings]
719
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
720
+ #
721
+ # @return [Google::Cloud::SecurityCenter::V1::OrganizationSettings]
722
+ #
723
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
724
+ #
725
+ def get_organization_settings request, options = nil
726
+ raise ArgumentError, "request must be provided" if request.nil?
727
+
728
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::GetOrganizationSettingsRequest
729
+
730
+ # Converts hash and nil to an options object
731
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
732
+
733
+ # Customize the options with defaults
734
+ metadata = @config.rpcs.get_organization_settings.metadata.to_h
735
+
736
+ # Set x-goog-api-client and x-goog-user-project headers
737
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
738
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
739
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
740
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
741
+
742
+ header_params = {
743
+ "name" => request.name
744
+ }
745
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
746
+ metadata[:"x-goog-request-params"] ||= request_params_header
747
+
748
+ options.apply_defaults timeout: @config.rpcs.get_organization_settings.timeout,
749
+ metadata: metadata,
750
+ retry_policy: @config.rpcs.get_organization_settings.retry_policy
751
+ options.apply_defaults metadata: @config.metadata,
752
+ retry_policy: @config.retry_policy
753
+
754
+ @security_center_stub.call_rpc :get_organization_settings, request, options: options do |response, operation|
755
+ yield response, operation if block_given?
756
+ return response
757
+ end
758
+ rescue GRPC::BadStatus => e
759
+ raise Google::Cloud::Error.from_error(e)
760
+ end
761
+
762
+ ##
763
+ # Gets a source.
764
+ #
765
+ # @overload get_source(request, options = nil)
766
+ # Pass arguments to `get_source` via a request object, either of type
767
+ # {Google::Cloud::SecurityCenter::V1::GetSourceRequest} or an equivalent Hash.
768
+ #
769
+ # @param request [Google::Cloud::SecurityCenter::V1::GetSourceRequest, Hash]
770
+ # A request object representing the call parameters. Required. To specify no
771
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
772
+ # @param options [Gapic::CallOptions, Hash]
773
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
774
+ #
775
+ # @overload get_source(name: nil)
776
+ # Pass arguments to `get_source` via keyword arguments. Note that at
777
+ # least one keyword argument is required. To specify no parameters, or to keep all
778
+ # the default parameter values, pass an empty Hash as a request object (see above).
779
+ #
780
+ # @param name [String]
781
+ # Required. Relative resource name of the source. Its format is
782
+ # "organizations/[organization_id]/source/[source_id]".
783
+ #
784
+ # @yield [response, operation] Access the result along with the RPC operation
785
+ # @yieldparam response [Google::Cloud::SecurityCenter::V1::Source]
786
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
787
+ #
788
+ # @return [Google::Cloud::SecurityCenter::V1::Source]
789
+ #
790
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
791
+ #
792
+ def get_source request, options = nil
793
+ raise ArgumentError, "request must be provided" if request.nil?
794
+
795
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::GetSourceRequest
796
+
797
+ # Converts hash and nil to an options object
798
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
799
+
800
+ # Customize the options with defaults
801
+ metadata = @config.rpcs.get_source.metadata.to_h
802
+
803
+ # Set x-goog-api-client and x-goog-user-project headers
804
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
805
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
806
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
807
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
808
+
809
+ header_params = {
810
+ "name" => request.name
811
+ }
812
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
813
+ metadata[:"x-goog-request-params"] ||= request_params_header
814
+
815
+ options.apply_defaults timeout: @config.rpcs.get_source.timeout,
816
+ metadata: metadata,
817
+ retry_policy: @config.rpcs.get_source.retry_policy
818
+ options.apply_defaults metadata: @config.metadata,
819
+ retry_policy: @config.retry_policy
820
+
821
+ @security_center_stub.call_rpc :get_source, request, options: options do |response, operation|
822
+ yield response, operation if block_given?
823
+ return response
824
+ end
825
+ rescue GRPC::BadStatus => e
826
+ raise Google::Cloud::Error.from_error(e)
827
+ end
828
+
829
+ ##
830
+ # Filters an organization's assets and groups them by their specified
831
+ # properties.
832
+ #
833
+ # @overload group_assets(request, options = nil)
834
+ # Pass arguments to `group_assets` via a request object, either of type
835
+ # {Google::Cloud::SecurityCenter::V1::GroupAssetsRequest} or an equivalent Hash.
836
+ #
837
+ # @param request [Google::Cloud::SecurityCenter::V1::GroupAssetsRequest, Hash]
838
+ # A request object representing the call parameters. Required. To specify no
839
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
840
+ # @param options [Gapic::CallOptions, Hash]
841
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
842
+ #
843
+ # @overload group_assets(parent: nil, filter: nil, group_by: nil, compare_duration: nil, read_time: nil, page_token: nil, page_size: nil)
844
+ # Pass arguments to `group_assets` via keyword arguments. Note that at
845
+ # least one keyword argument is required. To specify no parameters, or to keep all
846
+ # the default parameter values, pass an empty Hash as a request object (see above).
847
+ #
848
+ # @param parent [String]
849
+ # Required. Name of the organization to groupBy. Its format is
850
+ # "organizations/[organization_id]".
851
+ # @param filter [String]
852
+ # Expression that defines the filter to apply across assets.
853
+ # The expression is a list of zero or more restrictions combined via logical
854
+ # operators `AND` and `OR`.
855
+ # Parentheses are supported, and `OR` has higher precedence than `AND`.
856
+ #
857
+ # Restrictions have the form `<field> <operator> <value>` and may have a `-`
858
+ # character in front of them to indicate negation. The fields map to those
859
+ # defined in the Asset resource. Examples include:
860
+ #
861
+ # * name
862
+ # * security_center_properties.resource_name
863
+ # * resource_properties.a_property
864
+ # * security_marks.marks.marka
865
+ #
866
+ # The supported operators are:
867
+ #
868
+ # * `=` for all value types.
869
+ # * `>`, `<`, `>=`, `<=` for integer values.
870
+ # * `:`, meaning substring matching, for strings.
871
+ #
872
+ # The supported value types are:
873
+ #
874
+ # * string literals in quotes.
875
+ # * integer literals without quotes.
876
+ # * boolean literals `true` and `false` without quotes.
877
+ #
878
+ # The following field and operator combinations are supported:
879
+ #
880
+ # * name: `=`
881
+ # * update_time: `=`, `>`, `<`, `>=`, `<=`
882
+ #
883
+ # Usage: This should be milliseconds since epoch or an RFC3339 string.
884
+ # Examples:
885
+ # "update_time = \"2019-06-10T16:07:18-07:00\""
886
+ # "update_time = 1560208038000"
887
+ #
888
+ # * create_time: `=`, `>`, `<`, `>=`, `<=`
889
+ #
890
+ # Usage: This should be milliseconds since epoch or an RFC3339 string.
891
+ # Examples:
892
+ # "create_time = \"2019-06-10T16:07:18-07:00\""
893
+ # "create_time = 1560208038000"
894
+ #
895
+ # * iam_policy.policy_blob: `=`, `:`
896
+ # * resource_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
897
+ # * security_marks.marks: `=`, `:`
898
+ # * security_center_properties.resource_name: `=`, `:`
899
+ # * security_center_properties.resource_display_name: `=`, `:`
900
+ # * security_center_properties.resource_type: `=`, `:`
901
+ # * security_center_properties.resource_parent: `=`, `:`
902
+ # * security_center_properties.resource_parent_display_name: `=`, `:`
903
+ # * security_center_properties.resource_project: `=`, `:`
904
+ # * security_center_properties.resource_project_display_name: `=`, `:`
905
+ # * security_center_properties.resource_owners: `=`, `:`
906
+ #
907
+ # For example, `resource_properties.size = 100` is a valid filter string.
908
+ # @param group_by [String]
909
+ # Required. Expression that defines what assets fields to use for grouping.
910
+ # The string value should follow SQL syntax: comma separated list of fields.
911
+ # For example:
912
+ # "security_center_properties.resource_project,security_center_properties.project".
913
+ #
914
+ # The following fields are supported when compare_duration is not set:
915
+ #
916
+ # * security_center_properties.resource_project
917
+ # * security_center_properties.resource_project_display_name
918
+ # * security_center_properties.resource_type
919
+ # * security_center_properties.resource_parent
920
+ # * security_center_properties.resource_parent_display_name
921
+ #
922
+ # The following fields are supported when compare_duration is set:
923
+ #
924
+ # * security_center_properties.resource_type
925
+ # * security_center_properties.resource_project_display_name
926
+ # * security_center_properties.resource_parent_display_name
927
+ # @param compare_duration [Google::Protobuf::Duration, Hash]
928
+ # When compare_duration is set, the GroupResult's "state_change" property is
929
+ # updated to indicate whether the asset was added, removed, or remained
930
+ # present during the compare_duration period of time that precedes the
931
+ # read_time. This is the time between (read_time - compare_duration) and
932
+ # read_time.
933
+ #
934
+ # The state change value is derived based on the presence of the asset at the
935
+ # two points in time. Intermediate state changes between the two times don't
936
+ # affect the result. For example, the results aren't affected if the asset is
937
+ # removed and re-created again.
938
+ #
939
+ # Possible "state_change" values when compare_duration is specified:
940
+ #
941
+ # * "ADDED": indicates that the asset was not present at the start of
942
+ # compare_duration, but present at reference_time.
943
+ # * "REMOVED": indicates that the asset was present at the start of
944
+ # compare_duration, but not present at reference_time.
945
+ # * "ACTIVE": indicates that the asset was present at both the
946
+ # start and the end of the time period defined by
947
+ # compare_duration and reference_time.
948
+ #
949
+ # If compare_duration is not specified, then the only possible state_change
950
+ # is "UNUSED", which will be the state_change set for all assets present at
951
+ # read_time.
952
+ #
953
+ # If this field is set then `state_change` must be a specified field in
954
+ # `group_by`.
955
+ # @param read_time [Google::Protobuf::Timestamp, Hash]
956
+ # Time used as a reference point when filtering assets. The filter is limited
957
+ # to assets existing at the supplied time and their values are those at that
958
+ # specific time. Absence of this field will default to the API's version of
959
+ # NOW.
960
+ # @param page_token [String]
961
+ # The value returned by the last `GroupAssetsResponse`; indicates
962
+ # that this is a continuation of a prior `GroupAssets` call, and that the
963
+ # system should return the next page of data.
964
+ # @param page_size [Integer]
965
+ # The maximum number of results to return in a single response. Default is
966
+ # 10, minimum is 1, maximum is 1000.
967
+ #
968
+ # @yield [response, operation] Access the result along with the RPC operation
969
+ # @yieldparam response [Gapic::PagedEnumerable<Google::Cloud::SecurityCenter::V1::GroupResult>]
970
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
971
+ #
972
+ # @return [Gapic::PagedEnumerable<Google::Cloud::SecurityCenter::V1::GroupResult>]
973
+ #
974
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
975
+ #
976
+ def group_assets request, options = nil
977
+ raise ArgumentError, "request must be provided" if request.nil?
978
+
979
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::GroupAssetsRequest
980
+
981
+ # Converts hash and nil to an options object
982
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
983
+
984
+ # Customize the options with defaults
985
+ metadata = @config.rpcs.group_assets.metadata.to_h
986
+
987
+ # Set x-goog-api-client and x-goog-user-project headers
988
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
989
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
990
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
991
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
992
+
993
+ header_params = {
994
+ "parent" => request.parent
995
+ }
996
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
997
+ metadata[:"x-goog-request-params"] ||= request_params_header
998
+
999
+ options.apply_defaults timeout: @config.rpcs.group_assets.timeout,
1000
+ metadata: metadata,
1001
+ retry_policy: @config.rpcs.group_assets.retry_policy
1002
+ options.apply_defaults metadata: @config.metadata,
1003
+ retry_policy: @config.retry_policy
1004
+
1005
+ @security_center_stub.call_rpc :group_assets, request, options: options do |response, operation|
1006
+ response = Gapic::PagedEnumerable.new @security_center_stub, :group_assets, request, response, operation, options
1007
+ yield response, operation if block_given?
1008
+ return response
1009
+ end
1010
+ rescue GRPC::BadStatus => e
1011
+ raise Google::Cloud::Error.from_error(e)
1012
+ end
1013
+
1014
+ ##
1015
+ # Filters an organization or source's findings and groups them by their
1016
+ # specified properties.
1017
+ #
1018
+ # To group across all sources provide a `-` as the source id.
1019
+ # Example: /v1/organizations/\\{organization_id}/sources/-/findings
1020
+ #
1021
+ # @overload group_findings(request, options = nil)
1022
+ # Pass arguments to `group_findings` via a request object, either of type
1023
+ # {Google::Cloud::SecurityCenter::V1::GroupFindingsRequest} or an equivalent Hash.
1024
+ #
1025
+ # @param request [Google::Cloud::SecurityCenter::V1::GroupFindingsRequest, Hash]
1026
+ # A request object representing the call parameters. Required. To specify no
1027
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1028
+ # @param options [Gapic::CallOptions, Hash]
1029
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1030
+ #
1031
+ # @overload group_findings(parent: nil, filter: nil, group_by: nil, read_time: nil, compare_duration: nil, page_token: nil, page_size: nil)
1032
+ # Pass arguments to `group_findings` via keyword arguments. Note that at
1033
+ # least one keyword argument is required. To specify no parameters, or to keep all
1034
+ # the default parameter values, pass an empty Hash as a request object (see above).
1035
+ #
1036
+ # @param parent [String]
1037
+ # Required. Name of the source to groupBy. Its format is
1038
+ # "organizations/[organization_id]/sources/[source_id]". To groupBy across
1039
+ # all sources provide a source_id of `-`. For example:
1040
+ # organizations/\\{organization_id}/sources/-
1041
+ # @param filter [String]
1042
+ # Expression that defines the filter to apply across findings.
1043
+ # The expression is a list of one or more restrictions combined via logical
1044
+ # operators `AND` and `OR`.
1045
+ # Parentheses are supported, and `OR` has higher precedence than `AND`.
1046
+ #
1047
+ # Restrictions have the form `<field> <operator> <value>` and may have a `-`
1048
+ # character in front of them to indicate negation. Examples include:
1049
+ #
1050
+ # * name
1051
+ # * source_properties.a_property
1052
+ # * security_marks.marks.marka
1053
+ #
1054
+ # The supported operators are:
1055
+ #
1056
+ # * `=` for all value types.
1057
+ # * `>`, `<`, `>=`, `<=` for integer values.
1058
+ # * `:`, meaning substring matching, for strings.
1059
+ #
1060
+ # The supported value types are:
1061
+ #
1062
+ # * string literals in quotes.
1063
+ # * integer literals without quotes.
1064
+ # * boolean literals `true` and `false` without quotes.
1065
+ #
1066
+ # The following field and operator combinations are supported:
1067
+ #
1068
+ # * name: `=`
1069
+ # * parent: `=`, `:`
1070
+ # * resource_name: `=`, `:`
1071
+ # * state: `=`, `:`
1072
+ # * category: `=`, `:`
1073
+ # * external_uri: `=`, `:`
1074
+ # * event_time: `=`, `>`, `<`, `>=`, `<=`
1075
+ #
1076
+ # Usage: This should be milliseconds since epoch or an RFC3339 string.
1077
+ # Examples:
1078
+ # "event_time = \"2019-06-10T16:07:18-07:00\""
1079
+ # "event_time = 1560208038000"
1080
+ #
1081
+ # * security_marks.marks: `=`, `:`
1082
+ # * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
1083
+ #
1084
+ # For example, `source_properties.size = 100` is a valid filter string.
1085
+ # @param group_by [String]
1086
+ # Required. Expression that defines what assets fields to use for grouping
1087
+ # (including `state_change`). The string value should follow SQL syntax:
1088
+ # comma separated list of fields. For example: "parent,resource_name".
1089
+ #
1090
+ # The following fields are supported:
1091
+ #
1092
+ # * resource_name
1093
+ # * category
1094
+ # * state
1095
+ # * parent
1096
+ #
1097
+ # The following fields are supported when compare_duration is set:
1098
+ #
1099
+ # * state_change
1100
+ # @param read_time [Google::Protobuf::Timestamp, Hash]
1101
+ # Time used as a reference point when filtering findings. The filter is
1102
+ # limited to findings existing at the supplied time and their values are
1103
+ # those at that specific time. Absence of this field will default to the
1104
+ # API's version of NOW.
1105
+ # @param compare_duration [Google::Protobuf::Duration, Hash]
1106
+ # When compare_duration is set, the GroupResult's "state_change" attribute is
1107
+ # updated to indicate whether the finding had its state changed, the
1108
+ # finding's state remained unchanged, or if the finding was added during the
1109
+ # compare_duration period of time that precedes the read_time. This is the
1110
+ # time between (read_time - compare_duration) and read_time.
1111
+ #
1112
+ # The state_change value is derived based on the presence and state of the
1113
+ # finding at the two points in time. Intermediate state changes between the
1114
+ # two times don't affect the result. For example, the results aren't affected
1115
+ # if the finding is made inactive and then active again.
1116
+ #
1117
+ # Possible "state_change" values when compare_duration is specified:
1118
+ #
1119
+ # * "CHANGED": indicates that the finding was present and matched the given
1120
+ # filter at the start of compare_duration, but changed its
1121
+ # state at read_time.
1122
+ # * "UNCHANGED": indicates that the finding was present and matched the given
1123
+ # filter at the start of compare_duration and did not change
1124
+ # state at read_time.
1125
+ # * "ADDED": indicates that the finding did not match the given filter or
1126
+ # was not present at the start of compare_duration, but was
1127
+ # present at read_time.
1128
+ # * "REMOVED": indicates that the finding was present and matched the
1129
+ # filter at the start of compare_duration, but did not match
1130
+ # the filter at read_time.
1131
+ #
1132
+ # If compare_duration is not specified, then the only possible state_change
1133
+ # is "UNUSED", which will be the state_change set for all findings present
1134
+ # at read_time.
1135
+ #
1136
+ # If this field is set then `state_change` must be a specified field in
1137
+ # `group_by`.
1138
+ # @param page_token [String]
1139
+ # The value returned by the last `GroupFindingsResponse`; indicates
1140
+ # that this is a continuation of a prior `GroupFindings` call, and
1141
+ # that the system should return the next page of data.
1142
+ # @param page_size [Integer]
1143
+ # The maximum number of results to return in a single response. Default is
1144
+ # 10, minimum is 1, maximum is 1000.
1145
+ #
1146
+ # @yield [response, operation] Access the result along with the RPC operation
1147
+ # @yieldparam response [Gapic::PagedEnumerable<Google::Cloud::SecurityCenter::V1::GroupResult>]
1148
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
1149
+ #
1150
+ # @return [Gapic::PagedEnumerable<Google::Cloud::SecurityCenter::V1::GroupResult>]
1151
+ #
1152
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
1153
+ #
1154
+ def group_findings request, options = nil
1155
+ raise ArgumentError, "request must be provided" if request.nil?
1156
+
1157
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::GroupFindingsRequest
1158
+
1159
+ # Converts hash and nil to an options object
1160
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1161
+
1162
+ # Customize the options with defaults
1163
+ metadata = @config.rpcs.group_findings.metadata.to_h
1164
+
1165
+ # Set x-goog-api-client and x-goog-user-project headers
1166
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
1167
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1168
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
1169
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1170
+
1171
+ header_params = {
1172
+ "parent" => request.parent
1173
+ }
1174
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
1175
+ metadata[:"x-goog-request-params"] ||= request_params_header
1176
+
1177
+ options.apply_defaults timeout: @config.rpcs.group_findings.timeout,
1178
+ metadata: metadata,
1179
+ retry_policy: @config.rpcs.group_findings.retry_policy
1180
+ options.apply_defaults metadata: @config.metadata,
1181
+ retry_policy: @config.retry_policy
1182
+
1183
+ @security_center_stub.call_rpc :group_findings, request, options: options do |response, operation|
1184
+ response = Gapic::PagedEnumerable.new @security_center_stub, :group_findings, request, response, operation, options
1185
+ yield response, operation if block_given?
1186
+ return response
1187
+ end
1188
+ rescue GRPC::BadStatus => e
1189
+ raise Google::Cloud::Error.from_error(e)
1190
+ end
1191
+
1192
+ ##
1193
+ # Lists an organization's assets.
1194
+ #
1195
+ # @overload list_assets(request, options = nil)
1196
+ # Pass arguments to `list_assets` via a request object, either of type
1197
+ # {Google::Cloud::SecurityCenter::V1::ListAssetsRequest} or an equivalent Hash.
1198
+ #
1199
+ # @param request [Google::Cloud::SecurityCenter::V1::ListAssetsRequest, Hash]
1200
+ # A request object representing the call parameters. Required. To specify no
1201
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1202
+ # @param options [Gapic::CallOptions, Hash]
1203
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1204
+ #
1205
+ # @overload list_assets(parent: nil, filter: nil, order_by: nil, read_time: nil, compare_duration: nil, field_mask: nil, page_token: nil, page_size: nil)
1206
+ # Pass arguments to `list_assets` via keyword arguments. Note that at
1207
+ # least one keyword argument is required. To specify no parameters, or to keep all
1208
+ # the default parameter values, pass an empty Hash as a request object (see above).
1209
+ #
1210
+ # @param parent [String]
1211
+ # Required. Name of the organization assets should belong to. Its format is
1212
+ # "organizations/[organization_id]".
1213
+ # @param filter [String]
1214
+ # Expression that defines the filter to apply across assets.
1215
+ # The expression is a list of zero or more restrictions combined via logical
1216
+ # operators `AND` and `OR`.
1217
+ # Parentheses are supported, and `OR` has higher precedence than `AND`.
1218
+ #
1219
+ # Restrictions have the form `<field> <operator> <value>` and may have a `-`
1220
+ # character in front of them to indicate negation. The fields map to those
1221
+ # defined in the Asset resource. Examples include:
1222
+ #
1223
+ # * name
1224
+ # * security_center_properties.resource_name
1225
+ # * resource_properties.a_property
1226
+ # * security_marks.marks.marka
1227
+ #
1228
+ # The supported operators are:
1229
+ #
1230
+ # * `=` for all value types.
1231
+ # * `>`, `<`, `>=`, `<=` for integer values.
1232
+ # * `:`, meaning substring matching, for strings.
1233
+ #
1234
+ # The supported value types are:
1235
+ #
1236
+ # * string literals in quotes.
1237
+ # * integer literals without quotes.
1238
+ # * boolean literals `true` and `false` without quotes.
1239
+ #
1240
+ # The following are the allowed field and operator combinations:
1241
+ #
1242
+ # * name: `=`
1243
+ # * update_time: `=`, `>`, `<`, `>=`, `<=`
1244
+ #
1245
+ # Usage: This should be milliseconds since epoch or an RFC3339 string.
1246
+ # Examples:
1247
+ # "update_time = \"2019-06-10T16:07:18-07:00\""
1248
+ # "update_time = 1560208038000"
1249
+ #
1250
+ # * create_time: `=`, `>`, `<`, `>=`, `<=`
1251
+ #
1252
+ # Usage: This should be milliseconds since epoch or an RFC3339 string.
1253
+ # Examples:
1254
+ # "create_time = \"2019-06-10T16:07:18-07:00\""
1255
+ # "create_time = 1560208038000"
1256
+ #
1257
+ # * iam_policy.policy_blob: `=`, `:`
1258
+ # * resource_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
1259
+ # * security_marks.marks: `=`, `:`
1260
+ # * security_center_properties.resource_name: `=`, `:`
1261
+ # * security_center_properties.resource_display_name: `=`, `:`
1262
+ # * security_center_properties.resource_type: `=`, `:`
1263
+ # * security_center_properties.resource_parent: `=`, `:`
1264
+ # * security_center_properties.resource_parent_display_name: `=`, `:`
1265
+ # * security_center_properties.resource_project: `=`, `:`
1266
+ # * security_center_properties.resource_project_display_name: `=`, `:`
1267
+ # * security_center_properties.resource_owners: `=`, `:`
1268
+ #
1269
+ # For example, `resource_properties.size = 100` is a valid filter string.
1270
+ # @param order_by [String]
1271
+ # Expression that defines what fields and order to use for sorting. The
1272
+ # string value should follow SQL syntax: comma separated list of fields. For
1273
+ # example: "name,resource_properties.a_property". The default sorting order
1274
+ # is ascending. To specify descending order for a field, a suffix " desc"
1275
+ # should be appended to the field name. For example: "name
1276
+ # desc,resource_properties.a_property". Redundant space characters in the
1277
+ # syntax are insignificant. "name desc,resource_properties.a_property" and "
1278
+ # name desc , resource_properties.a_property " are equivalent.
1279
+ #
1280
+ # The following fields are supported:
1281
+ # name
1282
+ # update_time
1283
+ # resource_properties
1284
+ # security_marks.marks
1285
+ # security_center_properties.resource_name
1286
+ # security_center_properties.resource_display_name
1287
+ # security_center_properties.resource_parent
1288
+ # security_center_properties.resource_parent_display_name
1289
+ # security_center_properties.resource_project
1290
+ # security_center_properties.resource_project_display_name
1291
+ # security_center_properties.resource_type
1292
+ # @param read_time [Google::Protobuf::Timestamp, Hash]
1293
+ # Time used as a reference point when filtering assets. The filter is limited
1294
+ # to assets existing at the supplied time and their values are those at that
1295
+ # specific time. Absence of this field will default to the API's version of
1296
+ # NOW.
1297
+ # @param compare_duration [Google::Protobuf::Duration, Hash]
1298
+ # When compare_duration is set, the ListAssetsResult's "state_change"
1299
+ # attribute is updated to indicate whether the asset was added, removed, or
1300
+ # remained present during the compare_duration period of time that precedes
1301
+ # the read_time. This is the time between (read_time - compare_duration) and
1302
+ # read_time.
1303
+ #
1304
+ # The state_change value is derived based on the presence of the asset at the
1305
+ # two points in time. Intermediate state changes between the two times don't
1306
+ # affect the result. For example, the results aren't affected if the asset is
1307
+ # removed and re-created again.
1308
+ #
1309
+ # Possible "state_change" values when compare_duration is specified:
1310
+ #
1311
+ # * "ADDED": indicates that the asset was not present at the start of
1312
+ # compare_duration, but present at read_time.
1313
+ # * "REMOVED": indicates that the asset was present at the start of
1314
+ # compare_duration, but not present at read_time.
1315
+ # * "ACTIVE": indicates that the asset was present at both the
1316
+ # start and the end of the time period defined by
1317
+ # compare_duration and read_time.
1318
+ #
1319
+ # If compare_duration is not specified, then the only possible state_change
1320
+ # is "UNUSED", which will be the state_change set for all assets present at
1321
+ # read_time.
1322
+ # @param field_mask [Google::Protobuf::FieldMask, Hash]
1323
+ # Optional. A field mask to specify the ListAssetsResult fields to be listed
1324
+ # in the response. An empty field mask will list all fields.
1325
+ # @param page_token [String]
1326
+ # The value returned by the last `ListAssetsResponse`; indicates
1327
+ # that this is a continuation of a prior `ListAssets` call, and
1328
+ # that the system should return the next page of data.
1329
+ # @param page_size [Integer]
1330
+ # The maximum number of results to return in a single response. Default is
1331
+ # 10, minimum is 1, maximum is 1000.
1332
+ #
1333
+ # @yield [response, operation] Access the result along with the RPC operation
1334
+ # @yieldparam response [Gapic::PagedEnumerable<Google::Cloud::SecurityCenter::V1::ListAssetsResponse::ListAssetsResult>]
1335
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
1336
+ #
1337
+ # @return [Gapic::PagedEnumerable<Google::Cloud::SecurityCenter::V1::ListAssetsResponse::ListAssetsResult>]
1338
+ #
1339
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
1340
+ #
1341
+ def list_assets request, options = nil
1342
+ raise ArgumentError, "request must be provided" if request.nil?
1343
+
1344
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::ListAssetsRequest
1345
+
1346
+ # Converts hash and nil to an options object
1347
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1348
+
1349
+ # Customize the options with defaults
1350
+ metadata = @config.rpcs.list_assets.metadata.to_h
1351
+
1352
+ # Set x-goog-api-client and x-goog-user-project headers
1353
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
1354
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1355
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
1356
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1357
+
1358
+ header_params = {
1359
+ "parent" => request.parent
1360
+ }
1361
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
1362
+ metadata[:"x-goog-request-params"] ||= request_params_header
1363
+
1364
+ options.apply_defaults timeout: @config.rpcs.list_assets.timeout,
1365
+ metadata: metadata,
1366
+ retry_policy: @config.rpcs.list_assets.retry_policy
1367
+ options.apply_defaults metadata: @config.metadata,
1368
+ retry_policy: @config.retry_policy
1369
+
1370
+ @security_center_stub.call_rpc :list_assets, request, options: options do |response, operation|
1371
+ response = Gapic::PagedEnumerable.new @security_center_stub, :list_assets, request, response, operation, options
1372
+ yield response, operation if block_given?
1373
+ return response
1374
+ end
1375
+ rescue GRPC::BadStatus => e
1376
+ raise Google::Cloud::Error.from_error(e)
1377
+ end
1378
+
1379
+ ##
1380
+ # Lists an organization or source's findings.
1381
+ #
1382
+ # To list across all sources provide a `-` as the source id.
1383
+ # Example: /v1/organizations/\\{organization_id}/sources/-/findings
1384
+ #
1385
+ # @overload list_findings(request, options = nil)
1386
+ # Pass arguments to `list_findings` via a request object, either of type
1387
+ # {Google::Cloud::SecurityCenter::V1::ListFindingsRequest} or an equivalent Hash.
1388
+ #
1389
+ # @param request [Google::Cloud::SecurityCenter::V1::ListFindingsRequest, Hash]
1390
+ # A request object representing the call parameters. Required. To specify no
1391
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1392
+ # @param options [Gapic::CallOptions, Hash]
1393
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1394
+ #
1395
+ # @overload list_findings(parent: nil, filter: nil, order_by: nil, read_time: nil, compare_duration: nil, field_mask: nil, page_token: nil, page_size: nil)
1396
+ # Pass arguments to `list_findings` via keyword arguments. Note that at
1397
+ # least one keyword argument is required. To specify no parameters, or to keep all
1398
+ # the default parameter values, pass an empty Hash as a request object (see above).
1399
+ #
1400
+ # @param parent [String]
1401
+ # Required. Name of the source the findings belong to. Its format is
1402
+ # "organizations/[organization_id]/sources/[source_id]". To list across all
1403
+ # sources provide a source_id of `-`. For example:
1404
+ # organizations/\\{organization_id}/sources/-
1405
+ # @param filter [String]
1406
+ # Expression that defines the filter to apply across findings.
1407
+ # The expression is a list of one or more restrictions combined via logical
1408
+ # operators `AND` and `OR`.
1409
+ # Parentheses are supported, and `OR` has higher precedence than `AND`.
1410
+ #
1411
+ # Restrictions have the form `<field> <operator> <value>` and may have a `-`
1412
+ # character in front of them to indicate negation. Examples include:
1413
+ #
1414
+ # * name
1415
+ # * source_properties.a_property
1416
+ # * security_marks.marks.marka
1417
+ #
1418
+ # The supported operators are:
1419
+ #
1420
+ # * `=` for all value types.
1421
+ # * `>`, `<`, `>=`, `<=` for integer values.
1422
+ # * `:`, meaning substring matching, for strings.
1423
+ #
1424
+ # The supported value types are:
1425
+ #
1426
+ # * string literals in quotes.
1427
+ # * integer literals without quotes.
1428
+ # * boolean literals `true` and `false` without quotes.
1429
+ #
1430
+ # The following field and operator combinations are supported:
1431
+ #
1432
+ # name: `=`
1433
+ # parent: `=`, `:`
1434
+ # resource_name: `=`, `:`
1435
+ # state: `=`, `:`
1436
+ # category: `=`, `:`
1437
+ # external_uri: `=`, `:`
1438
+ # event_time: `=`, `>`, `<`, `>=`, `<=`
1439
+ #
1440
+ # Usage: This should be milliseconds since epoch or an RFC3339 string.
1441
+ # Examples:
1442
+ # "event_time = \"2019-06-10T16:07:18-07:00\""
1443
+ # "event_time = 1560208038000"
1444
+ #
1445
+ # security_marks.marks: `=`, `:`
1446
+ # source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
1447
+ #
1448
+ # For example, `source_properties.size = 100` is a valid filter string.
1449
+ # @param order_by [String]
1450
+ # Expression that defines what fields and order to use for sorting. The
1451
+ # string value should follow SQL syntax: comma separated list of fields. For
1452
+ # example: "name,resource_properties.a_property". The default sorting order
1453
+ # is ascending. To specify descending order for a field, a suffix " desc"
1454
+ # should be appended to the field name. For example: "name
1455
+ # desc,source_properties.a_property". Redundant space characters in the
1456
+ # syntax are insignificant. "name desc,source_properties.a_property" and "
1457
+ # name desc , source_properties.a_property " are equivalent.
1458
+ #
1459
+ # The following fields are supported:
1460
+ # name
1461
+ # parent
1462
+ # state
1463
+ # category
1464
+ # resource_name
1465
+ # event_time
1466
+ # source_properties
1467
+ # security_marks.marks
1468
+ # @param read_time [Google::Protobuf::Timestamp, Hash]
1469
+ # Time used as a reference point when filtering findings. The filter is
1470
+ # limited to findings existing at the supplied time and their values are
1471
+ # those at that specific time. Absence of this field will default to the
1472
+ # API's version of NOW.
1473
+ # @param compare_duration [Google::Protobuf::Duration, Hash]
1474
+ # When compare_duration is set, the ListFindingsResult's "state_change"
1475
+ # attribute is updated to indicate whether the finding had its state changed,
1476
+ # the finding's state remained unchanged, or if the finding was added in any
1477
+ # state during the compare_duration period of time that precedes the
1478
+ # read_time. This is the time between (read_time - compare_duration) and
1479
+ # read_time.
1480
+ #
1481
+ # The state_change value is derived based on the presence and state of the
1482
+ # finding at the two points in time. Intermediate state changes between the
1483
+ # two times don't affect the result. For example, the results aren't affected
1484
+ # if the finding is made inactive and then active again.
1485
+ #
1486
+ # Possible "state_change" values when compare_duration is specified:
1487
+ #
1488
+ # * "CHANGED": indicates that the finding was present and matched the given
1489
+ # filter at the start of compare_duration, but changed its
1490
+ # state at read_time.
1491
+ # * "UNCHANGED": indicates that the finding was present and matched the given
1492
+ # filter at the start of compare_duration and did not change
1493
+ # state at read_time.
1494
+ # * "ADDED": indicates that the finding did not match the given filter or
1495
+ # was not present at the start of compare_duration, but was
1496
+ # present at read_time.
1497
+ # * "REMOVED": indicates that the finding was present and matched the
1498
+ # filter at the start of compare_duration, but did not match
1499
+ # the filter at read_time.
1500
+ #
1501
+ # If compare_duration is not specified, then the only possible state_change
1502
+ # is "UNUSED", which will be the state_change set for all findings present at
1503
+ # read_time.
1504
+ # @param field_mask [Google::Protobuf::FieldMask, Hash]
1505
+ # Optional. A field mask to specify the Finding fields to be listed in the
1506
+ # response. An empty field mask will list all fields.
1507
+ # @param page_token [String]
1508
+ # The value returned by the last `ListFindingsResponse`; indicates
1509
+ # that this is a continuation of a prior `ListFindings` call, and
1510
+ # that the system should return the next page of data.
1511
+ # @param page_size [Integer]
1512
+ # The maximum number of results to return in a single response. Default is
1513
+ # 10, minimum is 1, maximum is 1000.
1514
+ #
1515
+ # @yield [response, operation] Access the result along with the RPC operation
1516
+ # @yieldparam response [Gapic::PagedEnumerable<Google::Cloud::SecurityCenter::V1::ListFindingsResponse::ListFindingsResult>]
1517
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
1518
+ #
1519
+ # @return [Gapic::PagedEnumerable<Google::Cloud::SecurityCenter::V1::ListFindingsResponse::ListFindingsResult>]
1520
+ #
1521
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
1522
+ #
1523
+ def list_findings request, options = nil
1524
+ raise ArgumentError, "request must be provided" if request.nil?
1525
+
1526
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::ListFindingsRequest
1527
+
1528
+ # Converts hash and nil to an options object
1529
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1530
+
1531
+ # Customize the options with defaults
1532
+ metadata = @config.rpcs.list_findings.metadata.to_h
1533
+
1534
+ # Set x-goog-api-client and x-goog-user-project headers
1535
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
1536
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1537
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
1538
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1539
+
1540
+ header_params = {
1541
+ "parent" => request.parent
1542
+ }
1543
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
1544
+ metadata[:"x-goog-request-params"] ||= request_params_header
1545
+
1546
+ options.apply_defaults timeout: @config.rpcs.list_findings.timeout,
1547
+ metadata: metadata,
1548
+ retry_policy: @config.rpcs.list_findings.retry_policy
1549
+ options.apply_defaults metadata: @config.metadata,
1550
+ retry_policy: @config.retry_policy
1551
+
1552
+ @security_center_stub.call_rpc :list_findings, request, options: options do |response, operation|
1553
+ response = Gapic::PagedEnumerable.new @security_center_stub, :list_findings, request, response, operation, options
1554
+ yield response, operation if block_given?
1555
+ return response
1556
+ end
1557
+ rescue GRPC::BadStatus => e
1558
+ raise Google::Cloud::Error.from_error(e)
1559
+ end
1560
+
1561
+ ##
1562
+ # Lists notification configs.
1563
+ #
1564
+ # @overload list_notification_configs(request, options = nil)
1565
+ # Pass arguments to `list_notification_configs` via a request object, either of type
1566
+ # {Google::Cloud::SecurityCenter::V1::ListNotificationConfigsRequest} or an equivalent Hash.
1567
+ #
1568
+ # @param request [Google::Cloud::SecurityCenter::V1::ListNotificationConfigsRequest, Hash]
1569
+ # A request object representing the call parameters. Required. To specify no
1570
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1571
+ # @param options [Gapic::CallOptions, Hash]
1572
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1573
+ #
1574
+ # @overload list_notification_configs(parent: nil, page_token: nil, page_size: nil)
1575
+ # Pass arguments to `list_notification_configs` via keyword arguments. Note that at
1576
+ # least one keyword argument is required. To specify no parameters, or to keep all
1577
+ # the default parameter values, pass an empty Hash as a request object (see above).
1578
+ #
1579
+ # @param parent [String]
1580
+ # Required. Name of the organization to list notification configs.
1581
+ # Its format is "organizations/[organization_id]".
1582
+ # @param page_token [String]
1583
+ # The value returned by the last `ListNotificationConfigsResponse`; indicates
1584
+ # that this is a continuation of a prior `ListNotificationConfigs` call, and
1585
+ # that the system should return the next page of data.
1586
+ # @param page_size [Integer]
1587
+ # The maximum number of results to return in a single response. Default is
1588
+ # 10, minimum is 1, maximum is 1000.
1589
+ #
1590
+ # @yield [response, operation] Access the result along with the RPC operation
1591
+ # @yieldparam response [Gapic::PagedEnumerable<Google::Cloud::SecurityCenter::V1::NotificationConfig>]
1592
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
1593
+ #
1594
+ # @return [Gapic::PagedEnumerable<Google::Cloud::SecurityCenter::V1::NotificationConfig>]
1595
+ #
1596
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
1597
+ #
1598
+ def list_notification_configs request, options = nil
1599
+ raise ArgumentError, "request must be provided" if request.nil?
1600
+
1601
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::ListNotificationConfigsRequest
1602
+
1603
+ # Converts hash and nil to an options object
1604
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1605
+
1606
+ # Customize the options with defaults
1607
+ metadata = @config.rpcs.list_notification_configs.metadata.to_h
1608
+
1609
+ # Set x-goog-api-client and x-goog-user-project headers
1610
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
1611
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1612
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
1613
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1614
+
1615
+ header_params = {
1616
+ "parent" => request.parent
1617
+ }
1618
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
1619
+ metadata[:"x-goog-request-params"] ||= request_params_header
1620
+
1621
+ options.apply_defaults timeout: @config.rpcs.list_notification_configs.timeout,
1622
+ metadata: metadata,
1623
+ retry_policy: @config.rpcs.list_notification_configs.retry_policy
1624
+ options.apply_defaults metadata: @config.metadata,
1625
+ retry_policy: @config.retry_policy
1626
+
1627
+ @security_center_stub.call_rpc :list_notification_configs, request, options: options do |response, operation|
1628
+ response = Gapic::PagedEnumerable.new @security_center_stub, :list_notification_configs, request, response, operation, options
1629
+ yield response, operation if block_given?
1630
+ return response
1631
+ end
1632
+ rescue GRPC::BadStatus => e
1633
+ raise Google::Cloud::Error.from_error(e)
1634
+ end
1635
+
1636
+ ##
1637
+ # Lists all sources belonging to an organization.
1638
+ #
1639
+ # @overload list_sources(request, options = nil)
1640
+ # Pass arguments to `list_sources` via a request object, either of type
1641
+ # {Google::Cloud::SecurityCenter::V1::ListSourcesRequest} or an equivalent Hash.
1642
+ #
1643
+ # @param request [Google::Cloud::SecurityCenter::V1::ListSourcesRequest, Hash]
1644
+ # A request object representing the call parameters. Required. To specify no
1645
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1646
+ # @param options [Gapic::CallOptions, Hash]
1647
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1648
+ #
1649
+ # @overload list_sources(parent: nil, page_token: nil, page_size: nil)
1650
+ # Pass arguments to `list_sources` via keyword arguments. Note that at
1651
+ # least one keyword argument is required. To specify no parameters, or to keep all
1652
+ # the default parameter values, pass an empty Hash as a request object (see above).
1653
+ #
1654
+ # @param parent [String]
1655
+ # Required. Resource name of the parent of sources to list. Its format should
1656
+ # be "organizations/[organization_id]".
1657
+ # @param page_token [String]
1658
+ # The value returned by the last `ListSourcesResponse`; indicates
1659
+ # that this is a continuation of a prior `ListSources` call, and
1660
+ # that the system should return the next page of data.
1661
+ # @param page_size [Integer]
1662
+ # The maximum number of results to return in a single response. Default is
1663
+ # 10, minimum is 1, maximum is 1000.
1664
+ #
1665
+ # @yield [response, operation] Access the result along with the RPC operation
1666
+ # @yieldparam response [Gapic::PagedEnumerable<Google::Cloud::SecurityCenter::V1::Source>]
1667
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
1668
+ #
1669
+ # @return [Gapic::PagedEnumerable<Google::Cloud::SecurityCenter::V1::Source>]
1670
+ #
1671
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
1672
+ #
1673
+ def list_sources request, options = nil
1674
+ raise ArgumentError, "request must be provided" if request.nil?
1675
+
1676
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::ListSourcesRequest
1677
+
1678
+ # Converts hash and nil to an options object
1679
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1680
+
1681
+ # Customize the options with defaults
1682
+ metadata = @config.rpcs.list_sources.metadata.to_h
1683
+
1684
+ # Set x-goog-api-client and x-goog-user-project headers
1685
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
1686
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1687
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
1688
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1689
+
1690
+ header_params = {
1691
+ "parent" => request.parent
1692
+ }
1693
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
1694
+ metadata[:"x-goog-request-params"] ||= request_params_header
1695
+
1696
+ options.apply_defaults timeout: @config.rpcs.list_sources.timeout,
1697
+ metadata: metadata,
1698
+ retry_policy: @config.rpcs.list_sources.retry_policy
1699
+ options.apply_defaults metadata: @config.metadata,
1700
+ retry_policy: @config.retry_policy
1701
+
1702
+ @security_center_stub.call_rpc :list_sources, request, options: options do |response, operation|
1703
+ response = Gapic::PagedEnumerable.new @security_center_stub, :list_sources, request, response, operation, options
1704
+ yield response, operation if block_given?
1705
+ return response
1706
+ end
1707
+ rescue GRPC::BadStatus => e
1708
+ raise Google::Cloud::Error.from_error(e)
1709
+ end
1710
+
1711
+ ##
1712
+ # Runs asset discovery. The discovery is tracked with a long-running
1713
+ # operation.
1714
+ #
1715
+ # This API can only be called with limited frequency for an organization. If
1716
+ # it is called too frequently the caller will receive a TOO_MANY_REQUESTS
1717
+ # error.
1718
+ #
1719
+ # @overload run_asset_discovery(request, options = nil)
1720
+ # Pass arguments to `run_asset_discovery` via a request object, either of type
1721
+ # {Google::Cloud::SecurityCenter::V1::RunAssetDiscoveryRequest} or an equivalent Hash.
1722
+ #
1723
+ # @param request [Google::Cloud::SecurityCenter::V1::RunAssetDiscoveryRequest, Hash]
1724
+ # A request object representing the call parameters. Required. To specify no
1725
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1726
+ # @param options [Gapic::CallOptions, Hash]
1727
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1728
+ #
1729
+ # @overload run_asset_discovery(parent: nil)
1730
+ # Pass arguments to `run_asset_discovery` via keyword arguments. Note that at
1731
+ # least one keyword argument is required. To specify no parameters, or to keep all
1732
+ # the default parameter values, pass an empty Hash as a request object (see above).
1733
+ #
1734
+ # @param parent [String]
1735
+ # Required. Name of the organization to run asset discovery for. Its format
1736
+ # is "organizations/[organization_id]".
1737
+ #
1738
+ # @yield [response, operation] Access the result along with the RPC operation
1739
+ # @yieldparam response [Gapic::Operation]
1740
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
1741
+ #
1742
+ # @return [Gapic::Operation]
1743
+ #
1744
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
1745
+ #
1746
+ def run_asset_discovery request, options = nil
1747
+ raise ArgumentError, "request must be provided" if request.nil?
1748
+
1749
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::RunAssetDiscoveryRequest
1750
+
1751
+ # Converts hash and nil to an options object
1752
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1753
+
1754
+ # Customize the options with defaults
1755
+ metadata = @config.rpcs.run_asset_discovery.metadata.to_h
1756
+
1757
+ # Set x-goog-api-client and x-goog-user-project headers
1758
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
1759
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1760
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
1761
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1762
+
1763
+ header_params = {
1764
+ "parent" => request.parent
1765
+ }
1766
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
1767
+ metadata[:"x-goog-request-params"] ||= request_params_header
1768
+
1769
+ options.apply_defaults timeout: @config.rpcs.run_asset_discovery.timeout,
1770
+ metadata: metadata,
1771
+ retry_policy: @config.rpcs.run_asset_discovery.retry_policy
1772
+ options.apply_defaults metadata: @config.metadata,
1773
+ retry_policy: @config.retry_policy
1774
+
1775
+ @security_center_stub.call_rpc :run_asset_discovery, request, options: options do |response, operation|
1776
+ response = Gapic::Operation.new response, @operations_client, options: options
1777
+ yield response, operation if block_given?
1778
+ return response
1779
+ end
1780
+ rescue GRPC::BadStatus => e
1781
+ raise Google::Cloud::Error.from_error(e)
1782
+ end
1783
+
1784
+ ##
1785
+ # Updates the state of a finding.
1786
+ #
1787
+ # @overload set_finding_state(request, options = nil)
1788
+ # Pass arguments to `set_finding_state` via a request object, either of type
1789
+ # {Google::Cloud::SecurityCenter::V1::SetFindingStateRequest} or an equivalent Hash.
1790
+ #
1791
+ # @param request [Google::Cloud::SecurityCenter::V1::SetFindingStateRequest, Hash]
1792
+ # A request object representing the call parameters. Required. To specify no
1793
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1794
+ # @param options [Gapic::CallOptions, Hash]
1795
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1796
+ #
1797
+ # @overload set_finding_state(name: nil, state: nil, start_time: nil)
1798
+ # Pass arguments to `set_finding_state` via keyword arguments. Note that at
1799
+ # least one keyword argument is required. To specify no parameters, or to keep all
1800
+ # the default parameter values, pass an empty Hash as a request object (see above).
1801
+ #
1802
+ # @param name [String]
1803
+ # Required. The relative resource name of the finding. See:
1804
+ # https://cloud.google.com/apis/design/resource_names#relative_resource_name
1805
+ # Example:
1806
+ # "organizations/\\{organization_id}/sources/\\{source_id}/finding/\\{finding_id}".
1807
+ # @param state [Google::Cloud::SecurityCenter::V1::Finding::State]
1808
+ # Required. The desired State of the finding.
1809
+ # @param start_time [Google::Protobuf::Timestamp, Hash]
1810
+ # Required. The time at which the updated state takes effect.
1811
+ #
1812
+ # @yield [response, operation] Access the result along with the RPC operation
1813
+ # @yieldparam response [Google::Cloud::SecurityCenter::V1::Finding]
1814
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
1815
+ #
1816
+ # @return [Google::Cloud::SecurityCenter::V1::Finding]
1817
+ #
1818
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
1819
+ #
1820
+ def set_finding_state request, options = nil
1821
+ raise ArgumentError, "request must be provided" if request.nil?
1822
+
1823
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::SetFindingStateRequest
1824
+
1825
+ # Converts hash and nil to an options object
1826
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1827
+
1828
+ # Customize the options with defaults
1829
+ metadata = @config.rpcs.set_finding_state.metadata.to_h
1830
+
1831
+ # Set x-goog-api-client and x-goog-user-project headers
1832
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
1833
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1834
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
1835
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1836
+
1837
+ header_params = {
1838
+ "name" => request.name
1839
+ }
1840
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
1841
+ metadata[:"x-goog-request-params"] ||= request_params_header
1842
+
1843
+ options.apply_defaults timeout: @config.rpcs.set_finding_state.timeout,
1844
+ metadata: metadata,
1845
+ retry_policy: @config.rpcs.set_finding_state.retry_policy
1846
+ options.apply_defaults metadata: @config.metadata,
1847
+ retry_policy: @config.retry_policy
1848
+
1849
+ @security_center_stub.call_rpc :set_finding_state, request, options: options do |response, operation|
1850
+ yield response, operation if block_given?
1851
+ return response
1852
+ end
1853
+ rescue GRPC::BadStatus => e
1854
+ raise Google::Cloud::Error.from_error(e)
1855
+ end
1856
+
1857
+ ##
1858
+ # Sets the access control policy on the specified Source.
1859
+ #
1860
+ # @overload set_iam_policy(request, options = nil)
1861
+ # Pass arguments to `set_iam_policy` via a request object, either of type
1862
+ # {Google::Iam::V1::SetIamPolicyRequest} or an equivalent Hash.
1863
+ #
1864
+ # @param request [Google::Iam::V1::SetIamPolicyRequest, Hash]
1865
+ # A request object representing the call parameters. Required. To specify no
1866
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1867
+ # @param options [Gapic::CallOptions, Hash]
1868
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1869
+ #
1870
+ # @overload set_iam_policy(resource: nil, policy: nil)
1871
+ # Pass arguments to `set_iam_policy` via keyword arguments. Note that at
1872
+ # least one keyword argument is required. To specify no parameters, or to keep all
1873
+ # the default parameter values, pass an empty Hash as a request object (see above).
1874
+ #
1875
+ # @param resource [String]
1876
+ # REQUIRED: The resource for which the policy is being specified.
1877
+ # See the operation documentation for the appropriate value for this field.
1878
+ # @param policy [Google::Iam::V1::Policy, Hash]
1879
+ # REQUIRED: The complete policy to be applied to the `resource`. The size of
1880
+ # the policy is limited to a few 10s of KB. An empty policy is a
1881
+ # valid policy but certain Cloud Platform services (such as Projects)
1882
+ # might reject them.
1883
+ #
1884
+ # @yield [response, operation] Access the result along with the RPC operation
1885
+ # @yieldparam response [Google::Iam::V1::Policy]
1886
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
1887
+ #
1888
+ # @return [Google::Iam::V1::Policy]
1889
+ #
1890
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
1891
+ #
1892
+ def set_iam_policy request, options = nil
1893
+ raise ArgumentError, "request must be provided" if request.nil?
1894
+
1895
+ request = Gapic::Protobuf.coerce request, to: Google::Iam::V1::SetIamPolicyRequest
1896
+
1897
+ # Converts hash and nil to an options object
1898
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1899
+
1900
+ # Customize the options with defaults
1901
+ metadata = @config.rpcs.set_iam_policy.metadata.to_h
1902
+
1903
+ # Set x-goog-api-client and x-goog-user-project headers
1904
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
1905
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1906
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
1907
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1908
+
1909
+ header_params = {
1910
+ "resource" => request.resource
1911
+ }
1912
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
1913
+ metadata[:"x-goog-request-params"] ||= request_params_header
1914
+
1915
+ options.apply_defaults timeout: @config.rpcs.set_iam_policy.timeout,
1916
+ metadata: metadata,
1917
+ retry_policy: @config.rpcs.set_iam_policy.retry_policy
1918
+ options.apply_defaults metadata: @config.metadata,
1919
+ retry_policy: @config.retry_policy
1920
+
1921
+ @security_center_stub.call_rpc :set_iam_policy, request, options: options do |response, operation|
1922
+ yield response, operation if block_given?
1923
+ return response
1924
+ end
1925
+ rescue GRPC::BadStatus => e
1926
+ raise Google::Cloud::Error.from_error(e)
1927
+ end
1928
+
1929
+ ##
1930
+ # Returns the permissions that a caller has on the specified source.
1931
+ #
1932
+ # @overload test_iam_permissions(request, options = nil)
1933
+ # Pass arguments to `test_iam_permissions` via a request object, either of type
1934
+ # {Google::Iam::V1::TestIamPermissionsRequest} or an equivalent Hash.
1935
+ #
1936
+ # @param request [Google::Iam::V1::TestIamPermissionsRequest, Hash]
1937
+ # A request object representing the call parameters. Required. To specify no
1938
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1939
+ # @param options [Gapic::CallOptions, Hash]
1940
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1941
+ #
1942
+ # @overload test_iam_permissions(resource: nil, permissions: nil)
1943
+ # Pass arguments to `test_iam_permissions` via keyword arguments. Note that at
1944
+ # least one keyword argument is required. To specify no parameters, or to keep all
1945
+ # the default parameter values, pass an empty Hash as a request object (see above).
1946
+ #
1947
+ # @param resource [String]
1948
+ # REQUIRED: The resource for which the policy detail is being requested.
1949
+ # See the operation documentation for the appropriate value for this field.
1950
+ # @param permissions [Array<String>]
1951
+ # The set of permissions to check for the `resource`. Permissions with
1952
+ # wildcards (such as '*' or 'storage.*') are not allowed. For more
1953
+ # information see
1954
+ # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
1955
+ #
1956
+ # @yield [response, operation] Access the result along with the RPC operation
1957
+ # @yieldparam response [Google::Iam::V1::TestIamPermissionsResponse]
1958
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
1959
+ #
1960
+ # @return [Google::Iam::V1::TestIamPermissionsResponse]
1961
+ #
1962
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
1963
+ #
1964
+ def test_iam_permissions request, options = nil
1965
+ raise ArgumentError, "request must be provided" if request.nil?
1966
+
1967
+ request = Gapic::Protobuf.coerce request, to: Google::Iam::V1::TestIamPermissionsRequest
1968
+
1969
+ # Converts hash and nil to an options object
1970
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1971
+
1972
+ # Customize the options with defaults
1973
+ metadata = @config.rpcs.test_iam_permissions.metadata.to_h
1974
+
1975
+ # Set x-goog-api-client and x-goog-user-project headers
1976
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
1977
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1978
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
1979
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1980
+
1981
+ header_params = {
1982
+ "resource" => request.resource
1983
+ }
1984
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
1985
+ metadata[:"x-goog-request-params"] ||= request_params_header
1986
+
1987
+ options.apply_defaults timeout: @config.rpcs.test_iam_permissions.timeout,
1988
+ metadata: metadata,
1989
+ retry_policy: @config.rpcs.test_iam_permissions.retry_policy
1990
+ options.apply_defaults metadata: @config.metadata,
1991
+ retry_policy: @config.retry_policy
1992
+
1993
+ @security_center_stub.call_rpc :test_iam_permissions, request, options: options do |response, operation|
1994
+ yield response, operation if block_given?
1995
+ return response
1996
+ end
1997
+ rescue GRPC::BadStatus => e
1998
+ raise Google::Cloud::Error.from_error(e)
1999
+ end
2000
+
2001
+ ##
2002
+ # Creates or updates a finding. The corresponding source must exist for a
2003
+ # finding creation to succeed.
2004
+ #
2005
+ # @overload update_finding(request, options = nil)
2006
+ # Pass arguments to `update_finding` via a request object, either of type
2007
+ # {Google::Cloud::SecurityCenter::V1::UpdateFindingRequest} or an equivalent Hash.
2008
+ #
2009
+ # @param request [Google::Cloud::SecurityCenter::V1::UpdateFindingRequest, Hash]
2010
+ # A request object representing the call parameters. Required. To specify no
2011
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
2012
+ # @param options [Gapic::CallOptions, Hash]
2013
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
2014
+ #
2015
+ # @overload update_finding(finding: nil, update_mask: nil)
2016
+ # Pass arguments to `update_finding` via keyword arguments. Note that at
2017
+ # least one keyword argument is required. To specify no parameters, or to keep all
2018
+ # the default parameter values, pass an empty Hash as a request object (see above).
2019
+ #
2020
+ # @param finding [Google::Cloud::SecurityCenter::V1::Finding, Hash]
2021
+ # Required. The finding resource to update or create if it does not already
2022
+ # exist. parent, security_marks, and update_time will be ignored.
2023
+ #
2024
+ # In the case of creation, the finding id portion of the name must be
2025
+ # alphanumeric and less than or equal to 32 characters and greater than 0
2026
+ # characters in length.
2027
+ # @param update_mask [Google::Protobuf::FieldMask, Hash]
2028
+ # The FieldMask to use when updating the finding resource. This field should
2029
+ # not be specified when creating a finding.
2030
+ #
2031
+ # When updating a finding, an empty mask is treated as updating all mutable
2032
+ # fields and replacing source_properties. Individual source_properties can
2033
+ # be added/updated by using "source_properties.<property key>" in the field
2034
+ # mask.
2035
+ #
2036
+ # @yield [response, operation] Access the result along with the RPC operation
2037
+ # @yieldparam response [Google::Cloud::SecurityCenter::V1::Finding]
2038
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
2039
+ #
2040
+ # @return [Google::Cloud::SecurityCenter::V1::Finding]
2041
+ #
2042
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
2043
+ #
2044
+ def update_finding request, options = nil
2045
+ raise ArgumentError, "request must be provided" if request.nil?
2046
+
2047
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::UpdateFindingRequest
2048
+
2049
+ # Converts hash and nil to an options object
2050
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
2051
+
2052
+ # Customize the options with defaults
2053
+ metadata = @config.rpcs.update_finding.metadata.to_h
2054
+
2055
+ # Set x-goog-api-client and x-goog-user-project headers
2056
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
2057
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
2058
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
2059
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
2060
+
2061
+ header_params = {
2062
+ "finding.name" => request.finding.name
2063
+ }
2064
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
2065
+ metadata[:"x-goog-request-params"] ||= request_params_header
2066
+
2067
+ options.apply_defaults timeout: @config.rpcs.update_finding.timeout,
2068
+ metadata: metadata,
2069
+ retry_policy: @config.rpcs.update_finding.retry_policy
2070
+ options.apply_defaults metadata: @config.metadata,
2071
+ retry_policy: @config.retry_policy
2072
+
2073
+ @security_center_stub.call_rpc :update_finding, request, options: options do |response, operation|
2074
+ yield response, operation if block_given?
2075
+ return response
2076
+ end
2077
+ rescue GRPC::BadStatus => e
2078
+ raise Google::Cloud::Error.from_error(e)
2079
+ end
2080
+
2081
+ ##
2082
+ # Updates a notification config.
2083
+ #
2084
+ # @overload update_notification_config(request, options = nil)
2085
+ # Pass arguments to `update_notification_config` via a request object, either of type
2086
+ # {Google::Cloud::SecurityCenter::V1::UpdateNotificationConfigRequest} or an equivalent Hash.
2087
+ #
2088
+ # @param request [Google::Cloud::SecurityCenter::V1::UpdateNotificationConfigRequest, Hash]
2089
+ # A request object representing the call parameters. Required. To specify no
2090
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
2091
+ # @param options [Gapic::CallOptions, Hash]
2092
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
2093
+ #
2094
+ # @overload update_notification_config(notification_config: nil, update_mask: nil)
2095
+ # Pass arguments to `update_notification_config` via keyword arguments. Note that at
2096
+ # least one keyword argument is required. To specify no parameters, or to keep all
2097
+ # the default parameter values, pass an empty Hash as a request object (see above).
2098
+ #
2099
+ # @param notification_config [Google::Cloud::SecurityCenter::V1::NotificationConfig, Hash]
2100
+ # Required. The notification config to update.
2101
+ # @param update_mask [Google::Protobuf::FieldMask, Hash]
2102
+ # The FieldMask to use when updating the notification config.
2103
+ #
2104
+ # If empty all mutable fields will be updated.
2105
+ #
2106
+ # @yield [response, operation] Access the result along with the RPC operation
2107
+ # @yieldparam response [Google::Cloud::SecurityCenter::V1::NotificationConfig]
2108
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
2109
+ #
2110
+ # @return [Google::Cloud::SecurityCenter::V1::NotificationConfig]
2111
+ #
2112
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
2113
+ #
2114
+ def update_notification_config request, options = nil
2115
+ raise ArgumentError, "request must be provided" if request.nil?
2116
+
2117
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::UpdateNotificationConfigRequest
2118
+
2119
+ # Converts hash and nil to an options object
2120
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
2121
+
2122
+ # Customize the options with defaults
2123
+ metadata = @config.rpcs.update_notification_config.metadata.to_h
2124
+
2125
+ # Set x-goog-api-client and x-goog-user-project headers
2126
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
2127
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
2128
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
2129
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
2130
+
2131
+ header_params = {
2132
+ "notification_config.name" => request.notification_config.name
2133
+ }
2134
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
2135
+ metadata[:"x-goog-request-params"] ||= request_params_header
2136
+
2137
+ options.apply_defaults timeout: @config.rpcs.update_notification_config.timeout,
2138
+ metadata: metadata,
2139
+ retry_policy: @config.rpcs.update_notification_config.retry_policy
2140
+ options.apply_defaults metadata: @config.metadata,
2141
+ retry_policy: @config.retry_policy
2142
+
2143
+ @security_center_stub.call_rpc :update_notification_config, request, options: options do |response, operation|
2144
+ yield response, operation if block_given?
2145
+ return response
2146
+ end
2147
+ rescue GRPC::BadStatus => e
2148
+ raise Google::Cloud::Error.from_error(e)
2149
+ end
2150
+
2151
+ ##
2152
+ # Updates an organization's settings.
2153
+ #
2154
+ # @overload update_organization_settings(request, options = nil)
2155
+ # Pass arguments to `update_organization_settings` via a request object, either of type
2156
+ # {Google::Cloud::SecurityCenter::V1::UpdateOrganizationSettingsRequest} or an equivalent Hash.
2157
+ #
2158
+ # @param request [Google::Cloud::SecurityCenter::V1::UpdateOrganizationSettingsRequest, Hash]
2159
+ # A request object representing the call parameters. Required. To specify no
2160
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
2161
+ # @param options [Gapic::CallOptions, Hash]
2162
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
2163
+ #
2164
+ # @overload update_organization_settings(organization_settings: nil, update_mask: nil)
2165
+ # Pass arguments to `update_organization_settings` via keyword arguments. Note that at
2166
+ # least one keyword argument is required. To specify no parameters, or to keep all
2167
+ # the default parameter values, pass an empty Hash as a request object (see above).
2168
+ #
2169
+ # @param organization_settings [Google::Cloud::SecurityCenter::V1::OrganizationSettings, Hash]
2170
+ # Required. The organization settings resource to update.
2171
+ # @param update_mask [Google::Protobuf::FieldMask, Hash]
2172
+ # The FieldMask to use when updating the settings resource.
2173
+ #
2174
+ # If empty all mutable fields will be updated.
2175
+ #
2176
+ # @yield [response, operation] Access the result along with the RPC operation
2177
+ # @yieldparam response [Google::Cloud::SecurityCenter::V1::OrganizationSettings]
2178
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
2179
+ #
2180
+ # @return [Google::Cloud::SecurityCenter::V1::OrganizationSettings]
2181
+ #
2182
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
2183
+ #
2184
+ def update_organization_settings request, options = nil
2185
+ raise ArgumentError, "request must be provided" if request.nil?
2186
+
2187
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::UpdateOrganizationSettingsRequest
2188
+
2189
+ # Converts hash and nil to an options object
2190
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
2191
+
2192
+ # Customize the options with defaults
2193
+ metadata = @config.rpcs.update_organization_settings.metadata.to_h
2194
+
2195
+ # Set x-goog-api-client and x-goog-user-project headers
2196
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
2197
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
2198
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
2199
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
2200
+
2201
+ header_params = {
2202
+ "organization_settings.name" => request.organization_settings.name
2203
+ }
2204
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
2205
+ metadata[:"x-goog-request-params"] ||= request_params_header
2206
+
2207
+ options.apply_defaults timeout: @config.rpcs.update_organization_settings.timeout,
2208
+ metadata: metadata,
2209
+ retry_policy: @config.rpcs.update_organization_settings.retry_policy
2210
+ options.apply_defaults metadata: @config.metadata,
2211
+ retry_policy: @config.retry_policy
2212
+
2213
+ @security_center_stub.call_rpc :update_organization_settings, request, options: options do |response, operation|
2214
+ yield response, operation if block_given?
2215
+ return response
2216
+ end
2217
+ rescue GRPC::BadStatus => e
2218
+ raise Google::Cloud::Error.from_error(e)
2219
+ end
2220
+
2221
+ ##
2222
+ # Updates a source.
2223
+ #
2224
+ # @overload update_source(request, options = nil)
2225
+ # Pass arguments to `update_source` via a request object, either of type
2226
+ # {Google::Cloud::SecurityCenter::V1::UpdateSourceRequest} or an equivalent Hash.
2227
+ #
2228
+ # @param request [Google::Cloud::SecurityCenter::V1::UpdateSourceRequest, Hash]
2229
+ # A request object representing the call parameters. Required. To specify no
2230
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
2231
+ # @param options [Gapic::CallOptions, Hash]
2232
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
2233
+ #
2234
+ # @overload update_source(source: nil, update_mask: nil)
2235
+ # Pass arguments to `update_source` via keyword arguments. Note that at
2236
+ # least one keyword argument is required. To specify no parameters, or to keep all
2237
+ # the default parameter values, pass an empty Hash as a request object (see above).
2238
+ #
2239
+ # @param source [Google::Cloud::SecurityCenter::V1::Source, Hash]
2240
+ # Required. The source resource to update.
2241
+ # @param update_mask [Google::Protobuf::FieldMask, Hash]
2242
+ # The FieldMask to use when updating the source resource.
2243
+ #
2244
+ # If empty all mutable fields will be updated.
2245
+ #
2246
+ # @yield [response, operation] Access the result along with the RPC operation
2247
+ # @yieldparam response [Google::Cloud::SecurityCenter::V1::Source]
2248
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
2249
+ #
2250
+ # @return [Google::Cloud::SecurityCenter::V1::Source]
2251
+ #
2252
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
2253
+ #
2254
+ def update_source request, options = nil
2255
+ raise ArgumentError, "request must be provided" if request.nil?
2256
+
2257
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::UpdateSourceRequest
2258
+
2259
+ # Converts hash and nil to an options object
2260
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
2261
+
2262
+ # Customize the options with defaults
2263
+ metadata = @config.rpcs.update_source.metadata.to_h
2264
+
2265
+ # Set x-goog-api-client and x-goog-user-project headers
2266
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
2267
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
2268
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
2269
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
2270
+
2271
+ header_params = {
2272
+ "source.name" => request.source.name
2273
+ }
2274
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
2275
+ metadata[:"x-goog-request-params"] ||= request_params_header
2276
+
2277
+ options.apply_defaults timeout: @config.rpcs.update_source.timeout,
2278
+ metadata: metadata,
2279
+ retry_policy: @config.rpcs.update_source.retry_policy
2280
+ options.apply_defaults metadata: @config.metadata,
2281
+ retry_policy: @config.retry_policy
2282
+
2283
+ @security_center_stub.call_rpc :update_source, request, options: options do |response, operation|
2284
+ yield response, operation if block_given?
2285
+ return response
2286
+ end
2287
+ rescue GRPC::BadStatus => e
2288
+ raise Google::Cloud::Error.from_error(e)
2289
+ end
2290
+
2291
+ ##
2292
+ # Updates security marks.
2293
+ #
2294
+ # @overload update_security_marks(request, options = nil)
2295
+ # Pass arguments to `update_security_marks` via a request object, either of type
2296
+ # {Google::Cloud::SecurityCenter::V1::UpdateSecurityMarksRequest} or an equivalent Hash.
2297
+ #
2298
+ # @param request [Google::Cloud::SecurityCenter::V1::UpdateSecurityMarksRequest, Hash]
2299
+ # A request object representing the call parameters. Required. To specify no
2300
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
2301
+ # @param options [Gapic::CallOptions, Hash]
2302
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
2303
+ #
2304
+ # @overload update_security_marks(security_marks: nil, update_mask: nil, start_time: nil)
2305
+ # Pass arguments to `update_security_marks` via keyword arguments. Note that at
2306
+ # least one keyword argument is required. To specify no parameters, or to keep all
2307
+ # the default parameter values, pass an empty Hash as a request object (see above).
2308
+ #
2309
+ # @param security_marks [Google::Cloud::SecurityCenter::V1::SecurityMarks, Hash]
2310
+ # Required. The security marks resource to update.
2311
+ # @param update_mask [Google::Protobuf::FieldMask, Hash]
2312
+ # The FieldMask to use when updating the security marks resource.
2313
+ #
2314
+ # The field mask must not contain duplicate fields.
2315
+ # If empty or set to "marks", all marks will be replaced. Individual
2316
+ # marks can be updated using "marks.<mark_key>".
2317
+ # @param start_time [Google::Protobuf::Timestamp, Hash]
2318
+ # The time at which the updated SecurityMarks take effect.
2319
+ # If not set uses current server time. Updates will be applied to the
2320
+ # SecurityMarks that are active immediately preceding this time.
2321
+ #
2322
+ # @yield [response, operation] Access the result along with the RPC operation
2323
+ # @yieldparam response [Google::Cloud::SecurityCenter::V1::SecurityMarks]
2324
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
2325
+ #
2326
+ # @return [Google::Cloud::SecurityCenter::V1::SecurityMarks]
2327
+ #
2328
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
2329
+ #
2330
+ def update_security_marks request, options = nil
2331
+ raise ArgumentError, "request must be provided" if request.nil?
2332
+
2333
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::SecurityCenter::V1::UpdateSecurityMarksRequest
2334
+
2335
+ # Converts hash and nil to an options object
2336
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
2337
+
2338
+ # Customize the options with defaults
2339
+ metadata = @config.rpcs.update_security_marks.metadata.to_h
2340
+
2341
+ # Set x-goog-api-client and x-goog-user-project headers
2342
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
2343
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
2344
+ gapic_version: ::Google::Cloud::SecurityCenter::V1::VERSION
2345
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
2346
+
2347
+ header_params = {
2348
+ "security_marks.name" => request.security_marks.name
2349
+ }
2350
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
2351
+ metadata[:"x-goog-request-params"] ||= request_params_header
2352
+
2353
+ options.apply_defaults timeout: @config.rpcs.update_security_marks.timeout,
2354
+ metadata: metadata,
2355
+ retry_policy: @config.rpcs.update_security_marks.retry_policy
2356
+ options.apply_defaults metadata: @config.metadata,
2357
+ retry_policy: @config.retry_policy
2358
+
2359
+ @security_center_stub.call_rpc :update_security_marks, request, options: options do |response, operation|
2360
+ yield response, operation if block_given?
2361
+ return response
2362
+ end
2363
+ rescue GRPC::BadStatus => e
2364
+ raise Google::Cloud::Error.from_error(e)
2365
+ end
2366
+
2367
+ ##
2368
+ # Configuration class for the SecurityCenter API.
2369
+ #
2370
+ # This class represents the configuration for SecurityCenter,
2371
+ # providing control over timeouts, retry behavior, logging, transport
2372
+ # parameters, and other low-level controls. Certain parameters can also be
2373
+ # applied individually to specific RPCs. See
2374
+ # {Google::Cloud::SecurityCenter::V1::SecurityCenter::Client::Configuration::Rpcs}
2375
+ # for a list of RPCs that can be configured independently.
2376
+ #
2377
+ # Configuration can be applied globally to all clients, or to a single client
2378
+ # on construction.
2379
+ #
2380
+ # # Examples
2381
+ #
2382
+ # To modify the global config, setting the timeout for create_source
2383
+ # to 20 seconds, and all remaining timeouts to 10 seconds:
2384
+ #
2385
+ # Google::Cloud::SecurityCenter::V1::SecurityCenter::Client.configure do |config|
2386
+ # config.timeout = 10_000
2387
+ # config.rpcs.create_source.timeout = 20_000
2388
+ # end
2389
+ #
2390
+ # To apply the above configuration only to a new client:
2391
+ #
2392
+ # client = Google::Cloud::SecurityCenter::V1::SecurityCenter::Client.new do |config|
2393
+ # config.timeout = 10_000
2394
+ # config.rpcs.create_source.timeout = 20_000
2395
+ # end
2396
+ #
2397
+ # @!attribute [rw] endpoint
2398
+ # The hostname or hostname:port of the service endpoint.
2399
+ # Defaults to `"securitycenter.googleapis.com"`.
2400
+ # @return [String]
2401
+ # @!attribute [rw] credentials
2402
+ # Credentials to send with calls. You may provide any of the following types:
2403
+ # * (`String`) The path to a service account key file in JSON format
2404
+ # * (`Hash`) A service account key as a Hash
2405
+ # * (`Google::Auth::Credentials`) A googleauth credentials object
2406
+ # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
2407
+ # * (`Signet::OAuth2::Client`) A signet oauth2 client object
2408
+ # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
2409
+ # * (`GRPC::Core::Channel`) a gRPC channel with included credentials
2410
+ # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
2411
+ # * (`nil`) indicating no credentials
2412
+ # @return [Object]
2413
+ # @!attribute [rw] scope
2414
+ # The OAuth scopes
2415
+ # @return [Array<String>]
2416
+ # @!attribute [rw] lib_name
2417
+ # The library name as recorded in instrumentation and logging
2418
+ # @return [String]
2419
+ # @!attribute [rw] lib_version
2420
+ # The library version as recorded in instrumentation and logging
2421
+ # @return [String]
2422
+ # @!attribute [rw] channel_args
2423
+ # Extra parameters passed to the gRPC channel. Note: this is ignored if a
2424
+ # `GRPC::Core::Channel` object is provided as the credential.
2425
+ # @return [Hash]
2426
+ # @!attribute [rw] interceptors
2427
+ # An array of interceptors that are run before calls are executed.
2428
+ # @return [Array<GRPC::ClientInterceptor>]
2429
+ # @!attribute [rw] timeout
2430
+ # The call timeout in milliseconds.
2431
+ # @return [Numeric]
2432
+ # @!attribute [rw] metadata
2433
+ # Additional gRPC headers to be sent with the call.
2434
+ # @return [Hash{Symbol=>String}]
2435
+ # @!attribute [rw] retry_policy
2436
+ # The retry policy. The value is a hash with the following keys:
2437
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
2438
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
2439
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
2440
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
2441
+ # trigger a retry.
2442
+ # @return [Hash]
2443
+ #
2444
+ class Configuration
2445
+ extend Gapic::Config
2446
+
2447
+ config_attr :endpoint, "securitycenter.googleapis.com", String
2448
+ config_attr :credentials, nil do |value|
2449
+ allowed = [::String, ::Hash, ::Proc, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
2450
+ allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
2451
+ allowed.any? { |klass| klass === value }
2452
+ end
2453
+ config_attr :scope, nil, String, Array, nil
2454
+ config_attr :lib_name, nil, String, nil
2455
+ config_attr :lib_version, nil, String, nil
2456
+ config_attr(:channel_args, { "grpc.service_config_disable_resolution"=>1 }, Hash, nil)
2457
+ config_attr :interceptors, nil, Array, nil
2458
+ config_attr :timeout, nil, Numeric, nil
2459
+ config_attr :metadata, nil, Hash, nil
2460
+ config_attr :retry_policy, nil, Hash, Proc, nil
2461
+
2462
+ # @private
2463
+ def initialize parent_config = nil
2464
+ @parent_config = parent_config unless parent_config.nil?
2465
+
2466
+ yield self if block_given?
2467
+ end
2468
+
2469
+ ##
2470
+ # Configurations for individual RPCs
2471
+ # @return [Rpcs]
2472
+ #
2473
+ def rpcs
2474
+ @rpcs ||= begin
2475
+ parent_rpcs = nil
2476
+ parent_rpcs = @parent_config.rpcs if @parent_config&.respond_to? :rpcs
2477
+ Rpcs.new parent_rpcs
2478
+ end
2479
+ end
2480
+
2481
+ ##
2482
+ # Configuration RPC class for the SecurityCenter API.
2483
+ #
2484
+ # Includes fields providing the configuration for each RPC in this service.
2485
+ # Each configuration object is of type `Gapic::Config::Method` and includes
2486
+ # the following configuration fields:
2487
+ #
2488
+ # * `timeout` (*type:* `Numeric`) - The call timeout in milliseconds
2489
+ # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers
2490
+ # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
2491
+ # include the following keys:
2492
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
2493
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
2494
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
2495
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
2496
+ # trigger a retry.
2497
+ #
2498
+ class Rpcs
2499
+ ##
2500
+ # RPC-specific configuration for `create_source`
2501
+ # @return [Gapic::Config::Method]
2502
+ #
2503
+ attr_reader :create_source
2504
+ ##
2505
+ # RPC-specific configuration for `create_finding`
2506
+ # @return [Gapic::Config::Method]
2507
+ #
2508
+ attr_reader :create_finding
2509
+ ##
2510
+ # RPC-specific configuration for `create_notification_config`
2511
+ # @return [Gapic::Config::Method]
2512
+ #
2513
+ attr_reader :create_notification_config
2514
+ ##
2515
+ # RPC-specific configuration for `delete_notification_config`
2516
+ # @return [Gapic::Config::Method]
2517
+ #
2518
+ attr_reader :delete_notification_config
2519
+ ##
2520
+ # RPC-specific configuration for `get_iam_policy`
2521
+ # @return [Gapic::Config::Method]
2522
+ #
2523
+ attr_reader :get_iam_policy
2524
+ ##
2525
+ # RPC-specific configuration for `get_notification_config`
2526
+ # @return [Gapic::Config::Method]
2527
+ #
2528
+ attr_reader :get_notification_config
2529
+ ##
2530
+ # RPC-specific configuration for `get_organization_settings`
2531
+ # @return [Gapic::Config::Method]
2532
+ #
2533
+ attr_reader :get_organization_settings
2534
+ ##
2535
+ # RPC-specific configuration for `get_source`
2536
+ # @return [Gapic::Config::Method]
2537
+ #
2538
+ attr_reader :get_source
2539
+ ##
2540
+ # RPC-specific configuration for `group_assets`
2541
+ # @return [Gapic::Config::Method]
2542
+ #
2543
+ attr_reader :group_assets
2544
+ ##
2545
+ # RPC-specific configuration for `group_findings`
2546
+ # @return [Gapic::Config::Method]
2547
+ #
2548
+ attr_reader :group_findings
2549
+ ##
2550
+ # RPC-specific configuration for `list_assets`
2551
+ # @return [Gapic::Config::Method]
2552
+ #
2553
+ attr_reader :list_assets
2554
+ ##
2555
+ # RPC-specific configuration for `list_findings`
2556
+ # @return [Gapic::Config::Method]
2557
+ #
2558
+ attr_reader :list_findings
2559
+ ##
2560
+ # RPC-specific configuration for `list_notification_configs`
2561
+ # @return [Gapic::Config::Method]
2562
+ #
2563
+ attr_reader :list_notification_configs
2564
+ ##
2565
+ # RPC-specific configuration for `list_sources`
2566
+ # @return [Gapic::Config::Method]
2567
+ #
2568
+ attr_reader :list_sources
2569
+ ##
2570
+ # RPC-specific configuration for `run_asset_discovery`
2571
+ # @return [Gapic::Config::Method]
2572
+ #
2573
+ attr_reader :run_asset_discovery
2574
+ ##
2575
+ # RPC-specific configuration for `set_finding_state`
2576
+ # @return [Gapic::Config::Method]
2577
+ #
2578
+ attr_reader :set_finding_state
2579
+ ##
2580
+ # RPC-specific configuration for `set_iam_policy`
2581
+ # @return [Gapic::Config::Method]
2582
+ #
2583
+ attr_reader :set_iam_policy
2584
+ ##
2585
+ # RPC-specific configuration for `test_iam_permissions`
2586
+ # @return [Gapic::Config::Method]
2587
+ #
2588
+ attr_reader :test_iam_permissions
2589
+ ##
2590
+ # RPC-specific configuration for `update_finding`
2591
+ # @return [Gapic::Config::Method]
2592
+ #
2593
+ attr_reader :update_finding
2594
+ ##
2595
+ # RPC-specific configuration for `update_notification_config`
2596
+ # @return [Gapic::Config::Method]
2597
+ #
2598
+ attr_reader :update_notification_config
2599
+ ##
2600
+ # RPC-specific configuration for `update_organization_settings`
2601
+ # @return [Gapic::Config::Method]
2602
+ #
2603
+ attr_reader :update_organization_settings
2604
+ ##
2605
+ # RPC-specific configuration for `update_source`
2606
+ # @return [Gapic::Config::Method]
2607
+ #
2608
+ attr_reader :update_source
2609
+ ##
2610
+ # RPC-specific configuration for `update_security_marks`
2611
+ # @return [Gapic::Config::Method]
2612
+ #
2613
+ attr_reader :update_security_marks
2614
+
2615
+ # @private
2616
+ def initialize parent_rpcs = nil
2617
+ create_source_config = parent_rpcs&.create_source if parent_rpcs&.respond_to? :create_source
2618
+ @create_source = Gapic::Config::Method.new create_source_config
2619
+ create_finding_config = parent_rpcs&.create_finding if parent_rpcs&.respond_to? :create_finding
2620
+ @create_finding = Gapic::Config::Method.new create_finding_config
2621
+ create_notification_config_config = parent_rpcs&.create_notification_config if parent_rpcs&.respond_to? :create_notification_config
2622
+ @create_notification_config = Gapic::Config::Method.new create_notification_config_config
2623
+ delete_notification_config_config = parent_rpcs&.delete_notification_config if parent_rpcs&.respond_to? :delete_notification_config
2624
+ @delete_notification_config = Gapic::Config::Method.new delete_notification_config_config
2625
+ get_iam_policy_config = parent_rpcs&.get_iam_policy if parent_rpcs&.respond_to? :get_iam_policy
2626
+ @get_iam_policy = Gapic::Config::Method.new get_iam_policy_config
2627
+ get_notification_config_config = parent_rpcs&.get_notification_config if parent_rpcs&.respond_to? :get_notification_config
2628
+ @get_notification_config = Gapic::Config::Method.new get_notification_config_config
2629
+ get_organization_settings_config = parent_rpcs&.get_organization_settings if parent_rpcs&.respond_to? :get_organization_settings
2630
+ @get_organization_settings = Gapic::Config::Method.new get_organization_settings_config
2631
+ get_source_config = parent_rpcs&.get_source if parent_rpcs&.respond_to? :get_source
2632
+ @get_source = Gapic::Config::Method.new get_source_config
2633
+ group_assets_config = parent_rpcs&.group_assets if parent_rpcs&.respond_to? :group_assets
2634
+ @group_assets = Gapic::Config::Method.new group_assets_config
2635
+ group_findings_config = parent_rpcs&.group_findings if parent_rpcs&.respond_to? :group_findings
2636
+ @group_findings = Gapic::Config::Method.new group_findings_config
2637
+ list_assets_config = parent_rpcs&.list_assets if parent_rpcs&.respond_to? :list_assets
2638
+ @list_assets = Gapic::Config::Method.new list_assets_config
2639
+ list_findings_config = parent_rpcs&.list_findings if parent_rpcs&.respond_to? :list_findings
2640
+ @list_findings = Gapic::Config::Method.new list_findings_config
2641
+ list_notification_configs_config = parent_rpcs&.list_notification_configs if parent_rpcs&.respond_to? :list_notification_configs
2642
+ @list_notification_configs = Gapic::Config::Method.new list_notification_configs_config
2643
+ list_sources_config = parent_rpcs&.list_sources if parent_rpcs&.respond_to? :list_sources
2644
+ @list_sources = Gapic::Config::Method.new list_sources_config
2645
+ run_asset_discovery_config = parent_rpcs&.run_asset_discovery if parent_rpcs&.respond_to? :run_asset_discovery
2646
+ @run_asset_discovery = Gapic::Config::Method.new run_asset_discovery_config
2647
+ set_finding_state_config = parent_rpcs&.set_finding_state if parent_rpcs&.respond_to? :set_finding_state
2648
+ @set_finding_state = Gapic::Config::Method.new set_finding_state_config
2649
+ set_iam_policy_config = parent_rpcs&.set_iam_policy if parent_rpcs&.respond_to? :set_iam_policy
2650
+ @set_iam_policy = Gapic::Config::Method.new set_iam_policy_config
2651
+ test_iam_permissions_config = parent_rpcs&.test_iam_permissions if parent_rpcs&.respond_to? :test_iam_permissions
2652
+ @test_iam_permissions = Gapic::Config::Method.new test_iam_permissions_config
2653
+ update_finding_config = parent_rpcs&.update_finding if parent_rpcs&.respond_to? :update_finding
2654
+ @update_finding = Gapic::Config::Method.new update_finding_config
2655
+ update_notification_config_config = parent_rpcs&.update_notification_config if parent_rpcs&.respond_to? :update_notification_config
2656
+ @update_notification_config = Gapic::Config::Method.new update_notification_config_config
2657
+ update_organization_settings_config = parent_rpcs&.update_organization_settings if parent_rpcs&.respond_to? :update_organization_settings
2658
+ @update_organization_settings = Gapic::Config::Method.new update_organization_settings_config
2659
+ update_source_config = parent_rpcs&.update_source if parent_rpcs&.respond_to? :update_source
2660
+ @update_source = Gapic::Config::Method.new update_source_config
2661
+ update_security_marks_config = parent_rpcs&.update_security_marks if parent_rpcs&.respond_to? :update_security_marks
2662
+ @update_security_marks = Gapic::Config::Method.new update_security_marks_config
2663
+
2664
+ yield self if block_given?
2665
+ end
2666
+ end
2667
+ end
2668
+ end
2669
+ end
2670
+ end
2671
+ end
2672
+ end
2673
+ end