google-cloud-security_center-v1 0.4.1 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHENTICATION.md +8 -8
  3. data/LICENSE.md +188 -190
  4. data/README.md +67 -3
  5. data/lib/google/cloud/security_center/v1/security_center/client.rb +120 -116
  6. data/lib/google/cloud/security_center/v1/security_center/operations.rb +95 -10
  7. data/lib/google/cloud/security_center/v1/security_center/paths.rb +175 -17
  8. data/lib/google/cloud/security_center/v1/version.rb +1 -1
  9. data/lib/google/cloud/securitycenter/v1/asset_pb.rb +4 -1
  10. data/lib/google/cloud/securitycenter/v1/finding_pb.rb +2 -1
  11. data/lib/google/cloud/securitycenter/v1/folder_pb.rb +24 -0
  12. data/lib/google/cloud/securitycenter/v1/notification_config_pb.rb +1 -1
  13. data/lib/google/cloud/securitycenter/v1/notification_message_pb.rb +1 -1
  14. data/lib/google/cloud/securitycenter/v1/organization_settings_pb.rb +2 -1
  15. data/lib/google/cloud/securitycenter/v1/resource_pb.rb +3 -0
  16. data/lib/google/cloud/securitycenter/v1/run_asset_discovery_response_pb.rb +1 -1
  17. data/lib/google/cloud/securitycenter/v1/security_marks_pb.rb +2 -1
  18. data/lib/google/cloud/securitycenter/v1/securitycenter_service_pb.rb +2 -0
  19. data/lib/google/cloud/securitycenter/v1/securitycenter_service_services_pb.rb +4 -1
  20. data/lib/google/cloud/securitycenter/v1/source_pb.rb +2 -1
  21. data/proto_docs/google/api/field_behavior.rb +12 -0
  22. data/proto_docs/google/cloud/securitycenter/v1/asset.rb +13 -2
  23. data/proto_docs/google/cloud/securitycenter/v1/finding.rb +10 -1
  24. data/proto_docs/google/cloud/securitycenter/v1/folder.rb +40 -0
  25. data/proto_docs/google/cloud/securitycenter/v1/organization_settings.rb +4 -0
  26. data/proto_docs/google/cloud/securitycenter/v1/resource.rb +5 -0
  27. data/proto_docs/google/cloud/securitycenter/v1/security_marks.rb +10 -0
  28. data/proto_docs/google/cloud/securitycenter/v1/securitycenter_service.rb +77 -43
  29. data/proto_docs/google/cloud/securitycenter/v1/source.rb +8 -0
  30. data/proto_docs/google/longrunning/operations.rb +17 -3
  31. data/proto_docs/google/protobuf/any.rb +5 -2
  32. data/proto_docs/google/protobuf/timestamp.rb +10 -1
  33. data/proto_docs/google/type/expr.rb +35 -12
  34. metadata +23 -13
@@ -60,7 +60,7 @@ module Google
60
60
  parent_config = while namespace.any?
61
61
  parent_name = namespace.join "::"
62
62
  parent_const = const_get parent_name
63
- break parent_const.configure if parent_const&.respond_to? :configure
63
+ break parent_const.configure if parent_const.respond_to? :configure
64
64
  namespace.pop
65
65
  end
66
66
  default_config = Client::Configuration.new parent_config
@@ -75,82 +75,52 @@ module Google
75
75
 
76
76
  default_config.rpcs.get_iam_policy.timeout = 60.0
77
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: [4, 14]
78
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
82
79
  }
83
80
 
84
81
  default_config.rpcs.get_notification_config.timeout = 60.0
85
82
  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: [4, 14]
83
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
90
84
  }
91
85
 
92
86
  default_config.rpcs.get_organization_settings.timeout = 60.0
93
87
  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: [4, 14]
88
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
98
89
  }
99
90
 
100
91
  default_config.rpcs.get_source.timeout = 60.0
101
92
  default_config.rpcs.get_source.retry_policy = {
102
- initial_delay: 0.1,
103
- max_delay: 60.0,
104
- multiplier: 1.3,
105
- retry_codes: [4, 14]
93
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
106
94
  }
107
95
 
108
96
  default_config.rpcs.group_assets.timeout = 480.0
109
97
  default_config.rpcs.group_assets.retry_policy = {
110
- initial_delay: 0.1,
111
- max_delay: 60.0,
112
- multiplier: 1.3,
113
- retry_codes: [4, 14]
98
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
114
99
  }
115
100
 
116
101
  default_config.rpcs.group_findings.timeout = 480.0
117
102
  default_config.rpcs.group_findings.retry_policy = {
118
- initial_delay: 0.1,
119
- max_delay: 60.0,
120
- multiplier: 1.3,
121
- retry_codes: [4, 14]
103
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
122
104
  }
123
105
 
124
106
  default_config.rpcs.list_assets.timeout = 480.0
125
107
  default_config.rpcs.list_assets.retry_policy = {
126
- initial_delay: 0.1,
127
- max_delay: 60.0,
128
- multiplier: 1.3,
129
- retry_codes: [4, 14]
108
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
130
109
  }
131
110
 
132
111
  default_config.rpcs.list_findings.timeout = 480.0
133
112
  default_config.rpcs.list_findings.retry_policy = {
134
- initial_delay: 0.1,
135
- max_delay: 60.0,
136
- multiplier: 1.3,
137
- retry_codes: [4, 14]
113
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
138
114
  }
139
115
 
140
116
  default_config.rpcs.list_notification_configs.timeout = 60.0
141
117
  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: [4, 14]
118
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
146
119
  }
147
120
 
148
121
  default_config.rpcs.list_sources.timeout = 60.0
149
122
  default_config.rpcs.list_sources.retry_policy = {
150
- initial_delay: 0.1,
151
- max_delay: 60.0,
152
- multiplier: 1.3,
153
- retry_codes: [4, 14]
123
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
154
124
  }
155
125
 
156
126
  default_config.rpcs.run_asset_discovery.timeout = 60.0
@@ -161,10 +131,7 @@ module Google
161
131
 
162
132
  default_config.rpcs.test_iam_permissions.timeout = 60.0
163
133
  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: [4, 14]
134
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
168
135
  }
169
136
 
170
137
  default_config.rpcs.update_finding.timeout = 60.0
@@ -238,8 +205,14 @@ module Google
238
205
 
239
206
  # Create credentials
240
207
  credentials = @config.credentials
241
- credentials ||= Credentials.default scope: @config.scope
242
- if credentials.is_a?(String) || credentials.is_a?(Hash)
208
+ # Use self-signed JWT if the scope and endpoint are unchanged from default,
209
+ # but only if the default endpoint does not have a region prefix.
210
+ enable_self_signed_jwt = @config.scope == Client.configure.scope &&
211
+ @config.endpoint == Client.configure.endpoint &&
212
+ !@config.endpoint.split(".").first.include?("-")
213
+ credentials ||= Credentials.default scope: @config.scope,
214
+ enable_self_signed_jwt: enable_self_signed_jwt
215
+ if credentials.is_a?(::String) || credentials.is_a?(::Hash)
243
216
  credentials = Credentials.new credentials, scope: @config.scope
244
217
  end
245
218
  @quota_project_id = @config.quota_project
@@ -290,8 +263,8 @@ module Google
290
263
  # Required. Resource name of the new source's parent. Its format should be
291
264
  # "organizations/[organization_id]".
292
265
  # @param source [::Google::Cloud::SecurityCenter::V1::Source, ::Hash]
293
- # Required. The Source being created, only the display_name and description will be
294
- # used. All other fields will be ignored.
266
+ # Required. The Source being created, only the display_name and description
267
+ # will be used. All other fields will be ignored.
295
268
  #
296
269
  # @yield [response, operation] Access the result along with the RPC operation
297
270
  # @yieldparam response [::Google::Cloud::SecurityCenter::V1::Source]
@@ -365,8 +338,8 @@ module Google
365
338
  # It must be alphanumeric and less than or equal to 32 characters and
366
339
  # greater than 0 characters in length.
367
340
  # @param finding [::Google::Cloud::SecurityCenter::V1::Finding, ::Hash]
368
- # Required. The Finding being created. The name and security_marks will be ignored as
369
- # they are both output only fields on this resource.
341
+ # Required. The Finding being created. The name and security_marks will be
342
+ # ignored as they are both output only fields on this resource.
370
343
  #
371
344
  # @yield [response, operation] Access the result along with the RPC operation
372
345
  # @yieldparam response [::Google::Cloud::SecurityCenter::V1::Finding]
@@ -432,16 +405,17 @@ module Google
432
405
  # the default parameter values, pass an empty Hash as a request object (see above).
433
406
  #
434
407
  # @param parent [::String]
435
- # Required. Resource name of the new notification config's parent. Its format is
436
- # "organizations/[organization_id]".
408
+ # Required. Resource name of the new notification config's parent. Its format
409
+ # is "organizations/[organization_id]".
437
410
  # @param config_id [::String]
438
411
  # Required.
439
412
  # Unique identifier provided by the client within the parent scope.
440
413
  # It must be between 1 and 128 characters, and contains alphanumeric
441
414
  # characters, underscores or hyphens only.
442
415
  # @param notification_config [::Google::Cloud::SecurityCenter::V1::NotificationConfig, ::Hash]
443
- # Required. The notification config being created. The name and the service account
444
- # will be ignored as they are both output only fields on this resource.
416
+ # Required. The notification config being created. The name and the service
417
+ # account will be ignored as they are both output only fields on this
418
+ # resource.
445
419
  #
446
420
  # @yield [response, operation] Access the result along with the RPC operation
447
421
  # @yieldparam response [::Google::Cloud::SecurityCenter::V1::NotificationConfig]
@@ -711,8 +685,8 @@ module Google
711
685
  # the default parameter values, pass an empty Hash as a request object (see above).
712
686
  #
713
687
  # @param name [::String]
714
- # Required. Name of the organization to get organization settings for. Its format is
715
- # "organizations/[organization_id]/organizationSettings".
688
+ # Required. Name of the organization to get organization settings for. Its
689
+ # format is "organizations/[organization_id]/organizationSettings".
716
690
  #
717
691
  # @yield [response, operation] Access the result along with the RPC operation
718
692
  # @yieldparam response [::Google::Cloud::SecurityCenter::V1::OrganizationSettings]
@@ -847,7 +821,8 @@ module Google
847
821
  #
848
822
  # @param parent [::String]
849
823
  # Required. Name of the organization to groupBy. Its format is
850
- # "organizations/[organization_id]".
824
+ # "organizations/[organization_id], folders/[folder_id], or
825
+ # projects/[project_id]".
851
826
  # @param filter [::String]
852
827
  # Expression that defines the filter to apply across assets.
853
828
  # The expression is a list of zero or more restrictions combined via logical
@@ -912,9 +887,9 @@ module Google
912
887
  # Use a negated partial match on the empty string to filter based on a
913
888
  # property not existing: `-resource_properties.my_property : ""`
914
889
  # @param group_by [::String]
915
- # Required. Expression that defines what assets fields to use for grouping. The string
916
- # value should follow SQL syntax: comma separated list of fields. For
917
- # example:
890
+ # Required. Expression that defines what assets fields to use for grouping.
891
+ # The string value should follow SQL syntax: comma separated list of fields.
892
+ # For example:
918
893
  # "security_center_properties.resource_project,security_center_properties.project".
919
894
  #
920
895
  # The following fields are supported when compare_duration is not set:
@@ -1022,7 +997,9 @@ module Google
1022
997
  # specified properties.
1023
998
  #
1024
999
  # To group across all sources provide a `-` as the source id.
1025
- # Example: /v1/organizations/\\{organization_id}/sources/-/findings
1000
+ # Example: /v1/organizations/\\{organization_id}/sources/-/findings,
1001
+ # /v1/folders/\\{folder_id}/sources/-/findings,
1002
+ # /v1/projects/\\{project_id}/sources/-/findings
1026
1003
  #
1027
1004
  # @overload group_findings(request, options = nil)
1028
1005
  # Pass arguments to `group_findings` via a request object, either of type
@@ -1041,9 +1018,12 @@ module Google
1041
1018
  #
1042
1019
  # @param parent [::String]
1043
1020
  # Required. Name of the source to groupBy. Its format is
1044
- # "organizations/[organization_id]/sources/[source_id]". To groupBy across
1045
- # all sources provide a source_id of `-`. For example:
1046
- # organizations/\\{organization_id}/sources/-
1021
+ # "organizations/[organization_id]/sources/[source_id]",
1022
+ # folders/[folder_id]/sources/[source_id], or
1023
+ # projects/[project_id]/sources/[source_id]. To groupBy across all sources
1024
+ # provide a source_id of `-`. For example:
1025
+ # organizations/\\{organization_id}/sources/-, folders/\\{folder_id}/sources/-,
1026
+ # or projects/\\{project_id}/sources/-
1047
1027
  # @param filter [::String]
1048
1028
  # Expression that defines the filter to apply across findings.
1049
1029
  # The expression is a list of one or more restrictions combined via logical
@@ -1078,27 +1058,36 @@ module Google
1078
1058
  # * category: `=`, `:`
1079
1059
  # * external_uri: `=`, `:`
1080
1060
  # * event_time: `=`, `>`, `<`, `>=`, `<=`
1081
- # * severity: `=`, `:`
1082
1061
  #
1083
1062
  # Usage: This should be milliseconds since epoch or an RFC3339 string.
1084
1063
  # Examples:
1085
1064
  # `event_time = "2019-06-10T16:07:18-07:00"`
1086
1065
  # `event_time = 1560208038000`
1087
1066
  #
1067
+ # * severity: `=`, `:`
1068
+ # * workflow_state: `=`, `:`
1088
1069
  # * security_marks.marks: `=`, `:`
1089
1070
  # * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
1090
1071
  #
1091
- # For example, `source_properties.size = 100` is a valid filter string.
1072
+ # For example, `source_properties.size = 100` is a valid filter string.
1092
1073
  #
1093
- # Use a partial match on the empty string to filter based on a property
1094
- # existing: `source_properties.my_property : ""`
1074
+ # Use a partial match on the empty string to filter based on a property
1075
+ # existing: `source_properties.my_property : ""`
1095
1076
  #
1096
- # Use a negated partial match on the empty string to filter based on a
1097
- # property not existing: `-source_properties.my_property : ""`
1077
+ # Use a negated partial match on the empty string to filter based on a
1078
+ # property not existing: `-source_properties.my_property : ""`
1079
+ #
1080
+ # * resource:
1081
+ # * resource.name: `=`, `:`
1082
+ # * resource.parent_name: `=`, `:`
1083
+ # * resource.parent_display_name: `=`, `:`
1084
+ # * resource.project_name: `=`, `:`
1085
+ # * resource.project_display_name: `=`, `:`
1086
+ # * resource.type: `=`, `:`
1098
1087
  # @param group_by [::String]
1099
- # Required. Expression that defines what assets fields to use for grouping (including
1100
- # `state_change`). The string value should follow SQL syntax: comma separated
1101
- # list of fields. For example: "parent,resource_name".
1088
+ # Required. Expression that defines what assets fields to use for grouping
1089
+ # (including `state_change`). The string value should follow SQL syntax:
1090
+ # comma separated list of fields. For example: "parent,resource_name".
1102
1091
  #
1103
1092
  # The following fields are supported:
1104
1093
  #
@@ -1223,7 +1212,8 @@ module Google
1223
1212
  #
1224
1213
  # @param parent [::String]
1225
1214
  # Required. Name of the organization assets should belong to. Its format is
1226
- # "organizations/[organization_id]".
1215
+ # "organizations/[organization_id], folders/[folder_id], or
1216
+ # projects/[project_id]".
1227
1217
  # @param filter [::String]
1228
1218
  # Expression that defines the filter to apply across assets.
1229
1219
  # The expression is a list of zero or more restrictions combined via logical
@@ -1420,9 +1410,12 @@ module Google
1420
1410
  #
1421
1411
  # @param parent [::String]
1422
1412
  # Required. Name of the source the findings belong to. Its format is
1423
- # "organizations/[organization_id]/sources/[source_id]". To list across all
1424
- # sources provide a source_id of `-`. For example:
1425
- # organizations/\\{organization_id}/sources/-
1413
+ # "organizations/[organization_id]/sources/[source_id],
1414
+ # folders/[folder_id]/sources/[source_id], or
1415
+ # projects/[project_id]/sources/[source_id]". To list across all sources
1416
+ # provide a source_id of `-`. For example:
1417
+ # organizations/\\{organization_id}/sources/-, folders/\\{folder_id}/sources/- or
1418
+ # projects/\\{projects_id}/sources/-
1426
1419
  # @param filter [::String]
1427
1420
  # Expression that defines the filter to apply across findings.
1428
1421
  # The expression is a list of one or more restrictions combined via logical
@@ -1457,23 +1450,33 @@ module Google
1457
1450
  # * category: `=`, `:`
1458
1451
  # * external_uri: `=`, `:`
1459
1452
  # * event_time: `=`, `>`, `<`, `>=`, `<=`
1460
- # * severity: `=`, `:`
1461
1453
  #
1462
1454
  # Usage: This should be milliseconds since epoch or an RFC3339 string.
1463
1455
  # Examples:
1464
1456
  # `event_time = "2019-06-10T16:07:18-07:00"`
1465
1457
  # `event_time = 1560208038000`
1466
1458
  #
1467
- # security_marks.marks: `=`, `:`
1468
- # source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
1459
+ # * severity: `=`, `:`
1460
+ # * workflow_state: `=`, `:`
1461
+ # * security_marks.marks: `=`, `:`
1462
+ # * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
1463
+ #
1464
+ # For example, `source_properties.size = 100` is a valid filter string.
1469
1465
  #
1470
- # For example, `source_properties.size = 100` is a valid filter string.
1466
+ # Use a partial match on the empty string to filter based on a property
1467
+ # existing: `source_properties.my_property : ""`
1471
1468
  #
1472
- # Use a partial match on the empty string to filter based on a property
1473
- # existing: `source_properties.my_property : ""`
1469
+ # Use a negated partial match on the empty string to filter based on a
1470
+ # property not existing: `-source_properties.my_property : ""`
1474
1471
  #
1475
- # Use a negated partial match on the empty string to filter based on a
1476
- # property not existing: `-source_properties.my_property : ""`
1472
+ # * resource:
1473
+ # * resource.name: `=`, `:`
1474
+ # * resource.parent_name: `=`, `:`
1475
+ # * resource.parent_display_name: `=`, `:`
1476
+ # * resource.project_name: `=`, `:`
1477
+ # * resource.project_display_name: `=`, `:`
1478
+ # * resource.type: `=`, `:`
1479
+ # * resource.folders.resource_folder: `=`, `:`
1477
1480
  # @param order_by [::String]
1478
1481
  # Expression that defines what fields and order to use for sorting. The
1479
1482
  # string value should follow SQL syntax: comma separated list of fields. For
@@ -1681,7 +1684,8 @@ module Google
1681
1684
  #
1682
1685
  # @param parent [::String]
1683
1686
  # Required. Resource name of the parent of sources to list. Its format should
1684
- # be "organizations/[organization_id]".
1687
+ # be "organizations/[organization_id], folders/[folder_id], or
1688
+ # projects/[project_id]".
1685
1689
  # @param page_token [::String]
1686
1690
  # The value returned by the last `ListSourcesResponse`; indicates
1687
1691
  # that this is a continuation of a prior `ListSources` call, and
@@ -1760,8 +1764,8 @@ module Google
1760
1764
  # the default parameter values, pass an empty Hash as a request object (see above).
1761
1765
  #
1762
1766
  # @param parent [::String]
1763
- # Required. Name of the organization to run asset discovery for. Its format is
1764
- # "organizations/[organization_id]".
1767
+ # Required. Name of the organization to run asset discovery for. Its format
1768
+ # is "organizations/[organization_id]".
1765
1769
  #
1766
1770
  # @yield [response, operation] Access the result along with the RPC operation
1767
1771
  # @yieldparam response [::Gapic::Operation]
@@ -2046,8 +2050,8 @@ module Google
2046
2050
  # the default parameter values, pass an empty Hash as a request object (see above).
2047
2051
  #
2048
2052
  # @param finding [::Google::Cloud::SecurityCenter::V1::Finding, ::Hash]
2049
- # Required. The finding resource to update or create if it does not already exist.
2050
- # parent, security_marks, and update_time will be ignored.
2053
+ # Required. The finding resource to update or create if it does not already
2054
+ # exist. parent, security_marks, and update_time will be ignored.
2051
2055
  #
2052
2056
  # In the case of creation, the finding id portion of the name must be
2053
2057
  # alphanumeric and less than or equal to 32 characters and greater than 0
@@ -2485,7 +2489,7 @@ module Google
2485
2489
  config_attr :scope, nil, ::String, ::Array, nil
2486
2490
  config_attr :lib_name, nil, ::String, nil
2487
2491
  config_attr :lib_version, nil, ::String, nil
2488
- config_attr(:channel_args, { "grpc.service_config_disable_resolution"=>1 }, ::Hash, nil)
2492
+ config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil)
2489
2493
  config_attr :interceptors, nil, ::Array, nil
2490
2494
  config_attr :timeout, nil, ::Numeric, nil
2491
2495
  config_attr :metadata, nil, ::Hash, nil
@@ -2506,7 +2510,7 @@ module Google
2506
2510
  def rpcs
2507
2511
  @rpcs ||= begin
2508
2512
  parent_rpcs = nil
2509
- parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config&.respond_to?(:rpcs)
2513
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
2510
2514
  Rpcs.new parent_rpcs
2511
2515
  end
2512
2516
  end
@@ -2647,51 +2651,51 @@ module Google
2647
2651
 
2648
2652
  # @private
2649
2653
  def initialize parent_rpcs = nil
2650
- create_source_config = parent_rpcs&.create_source if parent_rpcs&.respond_to? :create_source
2654
+ create_source_config = parent_rpcs.create_source if parent_rpcs.respond_to? :create_source
2651
2655
  @create_source = ::Gapic::Config::Method.new create_source_config
2652
- create_finding_config = parent_rpcs&.create_finding if parent_rpcs&.respond_to? :create_finding
2656
+ create_finding_config = parent_rpcs.create_finding if parent_rpcs.respond_to? :create_finding
2653
2657
  @create_finding = ::Gapic::Config::Method.new create_finding_config
2654
- create_notification_config_config = parent_rpcs&.create_notification_config if parent_rpcs&.respond_to? :create_notification_config
2658
+ create_notification_config_config = parent_rpcs.create_notification_config if parent_rpcs.respond_to? :create_notification_config
2655
2659
  @create_notification_config = ::Gapic::Config::Method.new create_notification_config_config
2656
- delete_notification_config_config = parent_rpcs&.delete_notification_config if parent_rpcs&.respond_to? :delete_notification_config
2660
+ delete_notification_config_config = parent_rpcs.delete_notification_config if parent_rpcs.respond_to? :delete_notification_config
2657
2661
  @delete_notification_config = ::Gapic::Config::Method.new delete_notification_config_config
2658
- get_iam_policy_config = parent_rpcs&.get_iam_policy if parent_rpcs&.respond_to? :get_iam_policy
2662
+ get_iam_policy_config = parent_rpcs.get_iam_policy if parent_rpcs.respond_to? :get_iam_policy
2659
2663
  @get_iam_policy = ::Gapic::Config::Method.new get_iam_policy_config
2660
- get_notification_config_config = parent_rpcs&.get_notification_config if parent_rpcs&.respond_to? :get_notification_config
2664
+ get_notification_config_config = parent_rpcs.get_notification_config if parent_rpcs.respond_to? :get_notification_config
2661
2665
  @get_notification_config = ::Gapic::Config::Method.new get_notification_config_config
2662
- get_organization_settings_config = parent_rpcs&.get_organization_settings if parent_rpcs&.respond_to? :get_organization_settings
2666
+ get_organization_settings_config = parent_rpcs.get_organization_settings if parent_rpcs.respond_to? :get_organization_settings
2663
2667
  @get_organization_settings = ::Gapic::Config::Method.new get_organization_settings_config
2664
- get_source_config = parent_rpcs&.get_source if parent_rpcs&.respond_to? :get_source
2668
+ get_source_config = parent_rpcs.get_source if parent_rpcs.respond_to? :get_source
2665
2669
  @get_source = ::Gapic::Config::Method.new get_source_config
2666
- group_assets_config = parent_rpcs&.group_assets if parent_rpcs&.respond_to? :group_assets
2670
+ group_assets_config = parent_rpcs.group_assets if parent_rpcs.respond_to? :group_assets
2667
2671
  @group_assets = ::Gapic::Config::Method.new group_assets_config
2668
- group_findings_config = parent_rpcs&.group_findings if parent_rpcs&.respond_to? :group_findings
2672
+ group_findings_config = parent_rpcs.group_findings if parent_rpcs.respond_to? :group_findings
2669
2673
  @group_findings = ::Gapic::Config::Method.new group_findings_config
2670
- list_assets_config = parent_rpcs&.list_assets if parent_rpcs&.respond_to? :list_assets
2674
+ list_assets_config = parent_rpcs.list_assets if parent_rpcs.respond_to? :list_assets
2671
2675
  @list_assets = ::Gapic::Config::Method.new list_assets_config
2672
- list_findings_config = parent_rpcs&.list_findings if parent_rpcs&.respond_to? :list_findings
2676
+ list_findings_config = parent_rpcs.list_findings if parent_rpcs.respond_to? :list_findings
2673
2677
  @list_findings = ::Gapic::Config::Method.new list_findings_config
2674
- list_notification_configs_config = parent_rpcs&.list_notification_configs if parent_rpcs&.respond_to? :list_notification_configs
2678
+ list_notification_configs_config = parent_rpcs.list_notification_configs if parent_rpcs.respond_to? :list_notification_configs
2675
2679
  @list_notification_configs = ::Gapic::Config::Method.new list_notification_configs_config
2676
- list_sources_config = parent_rpcs&.list_sources if parent_rpcs&.respond_to? :list_sources
2680
+ list_sources_config = parent_rpcs.list_sources if parent_rpcs.respond_to? :list_sources
2677
2681
  @list_sources = ::Gapic::Config::Method.new list_sources_config
2678
- run_asset_discovery_config = parent_rpcs&.run_asset_discovery if parent_rpcs&.respond_to? :run_asset_discovery
2682
+ run_asset_discovery_config = parent_rpcs.run_asset_discovery if parent_rpcs.respond_to? :run_asset_discovery
2679
2683
  @run_asset_discovery = ::Gapic::Config::Method.new run_asset_discovery_config
2680
- set_finding_state_config = parent_rpcs&.set_finding_state if parent_rpcs&.respond_to? :set_finding_state
2684
+ set_finding_state_config = parent_rpcs.set_finding_state if parent_rpcs.respond_to? :set_finding_state
2681
2685
  @set_finding_state = ::Gapic::Config::Method.new set_finding_state_config
2682
- set_iam_policy_config = parent_rpcs&.set_iam_policy if parent_rpcs&.respond_to? :set_iam_policy
2686
+ set_iam_policy_config = parent_rpcs.set_iam_policy if parent_rpcs.respond_to? :set_iam_policy
2683
2687
  @set_iam_policy = ::Gapic::Config::Method.new set_iam_policy_config
2684
- test_iam_permissions_config = parent_rpcs&.test_iam_permissions if parent_rpcs&.respond_to? :test_iam_permissions
2688
+ test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions
2685
2689
  @test_iam_permissions = ::Gapic::Config::Method.new test_iam_permissions_config
2686
- update_finding_config = parent_rpcs&.update_finding if parent_rpcs&.respond_to? :update_finding
2690
+ update_finding_config = parent_rpcs.update_finding if parent_rpcs.respond_to? :update_finding
2687
2691
  @update_finding = ::Gapic::Config::Method.new update_finding_config
2688
- update_notification_config_config = parent_rpcs&.update_notification_config if parent_rpcs&.respond_to? :update_notification_config
2692
+ update_notification_config_config = parent_rpcs.update_notification_config if parent_rpcs.respond_to? :update_notification_config
2689
2693
  @update_notification_config = ::Gapic::Config::Method.new update_notification_config_config
2690
- update_organization_settings_config = parent_rpcs&.update_organization_settings if parent_rpcs&.respond_to? :update_organization_settings
2694
+ update_organization_settings_config = parent_rpcs.update_organization_settings if parent_rpcs.respond_to? :update_organization_settings
2691
2695
  @update_organization_settings = ::Gapic::Config::Method.new update_organization_settings_config
2692
- update_source_config = parent_rpcs&.update_source if parent_rpcs&.respond_to? :update_source
2696
+ update_source_config = parent_rpcs.update_source if parent_rpcs.respond_to? :update_source
2693
2697
  @update_source = ::Gapic::Config::Method.new update_source_config
2694
- update_security_marks_config = parent_rpcs&.update_security_marks if parent_rpcs&.respond_to? :update_security_marks
2698
+ update_security_marks_config = parent_rpcs.update_security_marks if parent_rpcs.respond_to? :update_security_marks
2695
2699
  @update_security_marks = ::Gapic::Config::Method.new update_security_marks_config
2696
2700
 
2697
2701
  yield self if block_given?