google-cloud-security_center-v1 0.4.0 → 0.7.1

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 (32) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.md +188 -190
  3. data/README.md +66 -2
  4. data/lib/google/cloud/security_center/v1/security_center/client.rb +142 -105
  5. data/lib/google/cloud/security_center/v1/security_center/operations.rb +95 -10
  6. data/lib/google/cloud/security_center/v1/security_center/paths.rb +175 -17
  7. data/lib/google/cloud/security_center/v1/version.rb +1 -1
  8. data/lib/google/cloud/securitycenter/v1/asset_pb.rb +4 -1
  9. data/lib/google/cloud/securitycenter/v1/finding_pb.rb +2 -1
  10. data/lib/google/cloud/securitycenter/v1/folder_pb.rb +24 -0
  11. data/lib/google/cloud/securitycenter/v1/notification_config_pb.rb +1 -1
  12. data/lib/google/cloud/securitycenter/v1/notification_message_pb.rb +1 -1
  13. data/lib/google/cloud/securitycenter/v1/organization_settings_pb.rb +2 -1
  14. data/lib/google/cloud/securitycenter/v1/resource_pb.rb +3 -0
  15. data/lib/google/cloud/securitycenter/v1/run_asset_discovery_response_pb.rb +1 -1
  16. data/lib/google/cloud/securitycenter/v1/security_marks_pb.rb +2 -1
  17. data/lib/google/cloud/securitycenter/v1/securitycenter_service_pb.rb +2 -0
  18. data/lib/google/cloud/securitycenter/v1/securitycenter_service_services_pb.rb +5 -2
  19. data/lib/google/cloud/securitycenter/v1/source_pb.rb +2 -1
  20. data/proto_docs/google/api/field_behavior.rb +6 -0
  21. data/proto_docs/google/cloud/securitycenter/v1/asset.rb +13 -2
  22. data/proto_docs/google/cloud/securitycenter/v1/finding.rb +10 -1
  23. data/proto_docs/google/cloud/securitycenter/v1/folder.rb +40 -0
  24. data/proto_docs/google/cloud/securitycenter/v1/organization_settings.rb +4 -0
  25. data/proto_docs/google/cloud/securitycenter/v1/resource.rb +5 -0
  26. data/proto_docs/google/cloud/securitycenter/v1/security_marks.rb +10 -0
  27. data/proto_docs/google/cloud/securitycenter/v1/securitycenter_service.rb +77 -43
  28. data/proto_docs/google/cloud/securitycenter/v1/source.rb +8 -0
  29. data/proto_docs/google/longrunning/operations.rb +17 -3
  30. data/proto_docs/google/protobuf/any.rb +5 -2
  31. data/proto_docs/google/protobuf/timestamp.rb +10 -1
  32. 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
@@ -76,81 +76,81 @@ module Google
76
76
  default_config.rpcs.get_iam_policy.timeout = 60.0
77
77
  default_config.rpcs.get_iam_policy.retry_policy = {
78
78
  initial_delay: 0.1,
79
- max_delay: 60.0,
80
- multiplier: 1.3,
81
- retry_codes: [4, 14]
79
+ max_delay: 60.0,
80
+ multiplier: 1.3,
81
+ retry_codes: [4, 14]
82
82
  }
83
83
 
84
84
  default_config.rpcs.get_notification_config.timeout = 60.0
85
85
  default_config.rpcs.get_notification_config.retry_policy = {
86
86
  initial_delay: 0.1,
87
- max_delay: 60.0,
88
- multiplier: 1.3,
89
- retry_codes: [4, 14]
87
+ max_delay: 60.0,
88
+ multiplier: 1.3,
89
+ retry_codes: [4, 14]
90
90
  }
91
91
 
92
92
  default_config.rpcs.get_organization_settings.timeout = 60.0
93
93
  default_config.rpcs.get_organization_settings.retry_policy = {
94
94
  initial_delay: 0.1,
95
- max_delay: 60.0,
96
- multiplier: 1.3,
97
- retry_codes: [4, 14]
95
+ max_delay: 60.0,
96
+ multiplier: 1.3,
97
+ retry_codes: [4, 14]
98
98
  }
99
99
 
100
100
  default_config.rpcs.get_source.timeout = 60.0
101
101
  default_config.rpcs.get_source.retry_policy = {
102
102
  initial_delay: 0.1,
103
- max_delay: 60.0,
104
- multiplier: 1.3,
105
- retry_codes: [4, 14]
103
+ max_delay: 60.0,
104
+ multiplier: 1.3,
105
+ retry_codes: [4, 14]
106
106
  }
107
107
 
108
108
  default_config.rpcs.group_assets.timeout = 480.0
109
109
  default_config.rpcs.group_assets.retry_policy = {
110
110
  initial_delay: 0.1,
111
- max_delay: 60.0,
112
- multiplier: 1.3,
113
- retry_codes: [4, 14]
111
+ max_delay: 60.0,
112
+ multiplier: 1.3,
113
+ retry_codes: [4, 14]
114
114
  }
115
115
 
116
116
  default_config.rpcs.group_findings.timeout = 480.0
117
117
  default_config.rpcs.group_findings.retry_policy = {
118
118
  initial_delay: 0.1,
119
- max_delay: 60.0,
120
- multiplier: 1.3,
121
- retry_codes: [4, 14]
119
+ max_delay: 60.0,
120
+ multiplier: 1.3,
121
+ retry_codes: [4, 14]
122
122
  }
123
123
 
124
124
  default_config.rpcs.list_assets.timeout = 480.0
125
125
  default_config.rpcs.list_assets.retry_policy = {
126
126
  initial_delay: 0.1,
127
- max_delay: 60.0,
128
- multiplier: 1.3,
129
- retry_codes: [4, 14]
127
+ max_delay: 60.0,
128
+ multiplier: 1.3,
129
+ retry_codes: [4, 14]
130
130
  }
131
131
 
132
132
  default_config.rpcs.list_findings.timeout = 480.0
133
133
  default_config.rpcs.list_findings.retry_policy = {
134
134
  initial_delay: 0.1,
135
- max_delay: 60.0,
136
- multiplier: 1.3,
137
- retry_codes: [4, 14]
135
+ max_delay: 60.0,
136
+ multiplier: 1.3,
137
+ retry_codes: [4, 14]
138
138
  }
139
139
 
140
140
  default_config.rpcs.list_notification_configs.timeout = 60.0
141
141
  default_config.rpcs.list_notification_configs.retry_policy = {
142
142
  initial_delay: 0.1,
143
- max_delay: 60.0,
144
- multiplier: 1.3,
145
- retry_codes: [4, 14]
143
+ max_delay: 60.0,
144
+ multiplier: 1.3,
145
+ retry_codes: [4, 14]
146
146
  }
147
147
 
148
148
  default_config.rpcs.list_sources.timeout = 60.0
149
149
  default_config.rpcs.list_sources.retry_policy = {
150
150
  initial_delay: 0.1,
151
- max_delay: 60.0,
152
- multiplier: 1.3,
153
- retry_codes: [4, 14]
151
+ max_delay: 60.0,
152
+ multiplier: 1.3,
153
+ retry_codes: [4, 14]
154
154
  }
155
155
 
156
156
  default_config.rpcs.run_asset_discovery.timeout = 60.0
@@ -162,9 +162,9 @@ module Google
162
162
  default_config.rpcs.test_iam_permissions.timeout = 60.0
163
163
  default_config.rpcs.test_iam_permissions.retry_policy = {
164
164
  initial_delay: 0.1,
165
- max_delay: 60.0,
166
- multiplier: 1.3,
167
- retry_codes: [4, 14]
165
+ max_delay: 60.0,
166
+ multiplier: 1.3,
167
+ retry_codes: [4, 14]
168
168
  }
169
169
 
170
170
  default_config.rpcs.update_finding.timeout = 60.0
@@ -238,7 +238,13 @@ module Google
238
238
 
239
239
  # Create credentials
240
240
  credentials = @config.credentials
241
- credentials ||= Credentials.default scope: @config.scope
241
+ # Use self-signed JWT if the scope and endpoint are unchanged from default,
242
+ # but only if the default endpoint does not have a region prefix.
243
+ enable_self_signed_jwt = @config.scope == Client.configure.scope &&
244
+ @config.endpoint == Client.configure.endpoint &&
245
+ !@config.endpoint.split(".").first.include?("-")
246
+ credentials ||= Credentials.default scope: @config.scope,
247
+ enable_self_signed_jwt: enable_self_signed_jwt
242
248
  if credentials.is_a?(String) || credentials.is_a?(Hash)
243
249
  credentials = Credentials.new credentials, scope: @config.scope
244
250
  end
@@ -290,8 +296,8 @@ module Google
290
296
  # Required. Resource name of the new source's parent. Its format should be
291
297
  # "organizations/[organization_id]".
292
298
  # @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.
299
+ # Required. The Source being created, only the display_name and description
300
+ # will be used. All other fields will be ignored.
295
301
  #
296
302
  # @yield [response, operation] Access the result along with the RPC operation
297
303
  # @yieldparam response [::Google::Cloud::SecurityCenter::V1::Source]
@@ -365,8 +371,8 @@ module Google
365
371
  # It must be alphanumeric and less than or equal to 32 characters and
366
372
  # greater than 0 characters in length.
367
373
  # @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.
374
+ # Required. The Finding being created. The name and security_marks will be
375
+ # ignored as they are both output only fields on this resource.
370
376
  #
371
377
  # @yield [response, operation] Access the result along with the RPC operation
372
378
  # @yieldparam response [::Google::Cloud::SecurityCenter::V1::Finding]
@@ -432,16 +438,17 @@ module Google
432
438
  # the default parameter values, pass an empty Hash as a request object (see above).
433
439
  #
434
440
  # @param parent [::String]
435
- # Required. Resource name of the new notification config's parent. Its format is
436
- # "organizations/[organization_id]".
441
+ # Required. Resource name of the new notification config's parent. Its format
442
+ # is "organizations/[organization_id]".
437
443
  # @param config_id [::String]
438
444
  # Required.
439
445
  # Unique identifier provided by the client within the parent scope.
440
446
  # It must be between 1 and 128 characters, and contains alphanumeric
441
447
  # characters, underscores or hyphens only.
442
448
  # @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.
449
+ # Required. The notification config being created. The name and the service
450
+ # account will be ignored as they are both output only fields on this
451
+ # resource.
445
452
  #
446
453
  # @yield [response, operation] Access the result along with the RPC operation
447
454
  # @yieldparam response [::Google::Cloud::SecurityCenter::V1::NotificationConfig]
@@ -711,8 +718,8 @@ module Google
711
718
  # the default parameter values, pass an empty Hash as a request object (see above).
712
719
  #
713
720
  # @param name [::String]
714
- # Required. Name of the organization to get organization settings for. Its format is
715
- # "organizations/[organization_id]/organizationSettings".
721
+ # Required. Name of the organization to get organization settings for. Its
722
+ # format is "organizations/[organization_id]/organizationSettings".
716
723
  #
717
724
  # @yield [response, operation] Access the result along with the RPC operation
718
725
  # @yieldparam response [::Google::Cloud::SecurityCenter::V1::OrganizationSettings]
@@ -847,7 +854,8 @@ module Google
847
854
  #
848
855
  # @param parent [::String]
849
856
  # Required. Name of the organization to groupBy. Its format is
850
- # "organizations/[organization_id]".
857
+ # "organizations/[organization_id], folders/[folder_id], or
858
+ # projects/[project_id]".
851
859
  # @param filter [::String]
852
860
  # Expression that defines the filter to apply across assets.
853
861
  # The expression is a list of zero or more restrictions combined via logical
@@ -912,9 +920,9 @@ module Google
912
920
  # Use a negated partial match on the empty string to filter based on a
913
921
  # property not existing: `-resource_properties.my_property : ""`
914
922
  # @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:
923
+ # Required. Expression that defines what assets fields to use for grouping.
924
+ # The string value should follow SQL syntax: comma separated list of fields.
925
+ # For example:
918
926
  # "security_center_properties.resource_project,security_center_properties.project".
919
927
  #
920
928
  # The following fields are supported when compare_duration is not set:
@@ -1022,7 +1030,9 @@ module Google
1022
1030
  # specified properties.
1023
1031
  #
1024
1032
  # To group across all sources provide a `-` as the source id.
1025
- # Example: /v1/organizations/\\{organization_id}/sources/-/findings
1033
+ # Example: /v1/organizations/\\{organization_id}/sources/-/findings,
1034
+ # /v1/folders/\\{folder_id}/sources/-/findings,
1035
+ # /v1/projects/\\{project_id}/sources/-/findings
1026
1036
  #
1027
1037
  # @overload group_findings(request, options = nil)
1028
1038
  # Pass arguments to `group_findings` via a request object, either of type
@@ -1041,9 +1051,12 @@ module Google
1041
1051
  #
1042
1052
  # @param parent [::String]
1043
1053
  # 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/-
1054
+ # "organizations/[organization_id]/sources/[source_id]",
1055
+ # folders/[folder_id]/sources/[source_id], or
1056
+ # projects/[project_id]/sources/[source_id]. To groupBy across all sources
1057
+ # provide a source_id of `-`. For example:
1058
+ # organizations/\\{organization_id}/sources/-, folders/\\{folder_id}/sources/-,
1059
+ # or projects/\\{project_id}/sources/-
1047
1060
  # @param filter [::String]
1048
1061
  # Expression that defines the filter to apply across findings.
1049
1062
  # The expression is a list of one or more restrictions combined via logical
@@ -1078,27 +1091,36 @@ module Google
1078
1091
  # * category: `=`, `:`
1079
1092
  # * external_uri: `=`, `:`
1080
1093
  # * event_time: `=`, `>`, `<`, `>=`, `<=`
1081
- # * severity: `=`, `:`
1082
1094
  #
1083
1095
  # Usage: This should be milliseconds since epoch or an RFC3339 string.
1084
1096
  # Examples:
1085
1097
  # `event_time = "2019-06-10T16:07:18-07:00"`
1086
1098
  # `event_time = 1560208038000`
1087
1099
  #
1100
+ # * severity: `=`, `:`
1101
+ # * workflow_state: `=`, `:`
1088
1102
  # * security_marks.marks: `=`, `:`
1089
1103
  # * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
1090
1104
  #
1091
- # For example, `source_properties.size = 100` is a valid filter string.
1105
+ # For example, `source_properties.size = 100` is a valid filter string.
1092
1106
  #
1093
- # Use a partial match on the empty string to filter based on a property
1094
- # existing: `source_properties.my_property : ""`
1107
+ # Use a partial match on the empty string to filter based on a property
1108
+ # existing: `source_properties.my_property : ""`
1095
1109
  #
1096
- # Use a negated partial match on the empty string to filter based on a
1097
- # property not existing: `-source_properties.my_property : ""`
1110
+ # Use a negated partial match on the empty string to filter based on a
1111
+ # property not existing: `-source_properties.my_property : ""`
1112
+ #
1113
+ # * resource:
1114
+ # * resource.name: `=`, `:`
1115
+ # * resource.parent_name: `=`, `:`
1116
+ # * resource.parent_display_name: `=`, `:`
1117
+ # * resource.project_name: `=`, `:`
1118
+ # * resource.project_display_name: `=`, `:`
1119
+ # * resource.type: `=`, `:`
1098
1120
  # @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".
1121
+ # Required. Expression that defines what assets fields to use for grouping
1122
+ # (including `state_change`). The string value should follow SQL syntax:
1123
+ # comma separated list of fields. For example: "parent,resource_name".
1102
1124
  #
1103
1125
  # The following fields are supported:
1104
1126
  #
@@ -1223,7 +1245,8 @@ module Google
1223
1245
  #
1224
1246
  # @param parent [::String]
1225
1247
  # Required. Name of the organization assets should belong to. Its format is
1226
- # "organizations/[organization_id]".
1248
+ # "organizations/[organization_id], folders/[folder_id], or
1249
+ # projects/[project_id]".
1227
1250
  # @param filter [::String]
1228
1251
  # Expression that defines the filter to apply across assets.
1229
1252
  # The expression is a list of zero or more restrictions combined via logical
@@ -1420,9 +1443,12 @@ module Google
1420
1443
  #
1421
1444
  # @param parent [::String]
1422
1445
  # 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/-
1446
+ # "organizations/[organization_id]/sources/[source_id],
1447
+ # folders/[folder_id]/sources/[source_id], or
1448
+ # projects/[project_id]/sources/[source_id]". To list across all sources
1449
+ # provide a source_id of `-`. For example:
1450
+ # organizations/\\{organization_id}/sources/-, folders/\\{folder_id}/sources/- or
1451
+ # projects/\\{projects_id}/sources/-
1426
1452
  # @param filter [::String]
1427
1453
  # Expression that defines the filter to apply across findings.
1428
1454
  # The expression is a list of one or more restrictions combined via logical
@@ -1457,23 +1483,33 @@ module Google
1457
1483
  # * category: `=`, `:`
1458
1484
  # * external_uri: `=`, `:`
1459
1485
  # * event_time: `=`, `>`, `<`, `>=`, `<=`
1460
- # * severity: `=`, `:`
1461
1486
  #
1462
1487
  # Usage: This should be milliseconds since epoch or an RFC3339 string.
1463
1488
  # Examples:
1464
1489
  # `event_time = "2019-06-10T16:07:18-07:00"`
1465
1490
  # `event_time = 1560208038000`
1466
1491
  #
1467
- # security_marks.marks: `=`, `:`
1468
- # source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
1492
+ # * severity: `=`, `:`
1493
+ # * workflow_state: `=`, `:`
1494
+ # * security_marks.marks: `=`, `:`
1495
+ # * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
1496
+ #
1497
+ # For example, `source_properties.size = 100` is a valid filter string.
1469
1498
  #
1470
- # For example, `source_properties.size = 100` is a valid filter string.
1499
+ # Use a partial match on the empty string to filter based on a property
1500
+ # existing: `source_properties.my_property : ""`
1471
1501
  #
1472
- # Use a partial match on the empty string to filter based on a property
1473
- # existing: `source_properties.my_property : ""`
1502
+ # Use a negated partial match on the empty string to filter based on a
1503
+ # property not existing: `-source_properties.my_property : ""`
1474
1504
  #
1475
- # Use a negated partial match on the empty string to filter based on a
1476
- # property not existing: `-source_properties.my_property : ""`
1505
+ # * resource:
1506
+ # * resource.name: `=`, `:`
1507
+ # * resource.parent_name: `=`, `:`
1508
+ # * resource.parent_display_name: `=`, `:`
1509
+ # * resource.project_name: `=`, `:`
1510
+ # * resource.project_display_name: `=`, `:`
1511
+ # * resource.type: `=`, `:`
1512
+ # * resource.folders.resource_folder: `=`, `:`
1477
1513
  # @param order_by [::String]
1478
1514
  # Expression that defines what fields and order to use for sorting. The
1479
1515
  # string value should follow SQL syntax: comma separated list of fields. For
@@ -1681,7 +1717,8 @@ module Google
1681
1717
  #
1682
1718
  # @param parent [::String]
1683
1719
  # Required. Resource name of the parent of sources to list. Its format should
1684
- # be "organizations/[organization_id]".
1720
+ # be "organizations/[organization_id], folders/[folder_id], or
1721
+ # projects/[project_id]".
1685
1722
  # @param page_token [::String]
1686
1723
  # The value returned by the last `ListSourcesResponse`; indicates
1687
1724
  # that this is a continuation of a prior `ListSources` call, and
@@ -1760,8 +1797,8 @@ module Google
1760
1797
  # the default parameter values, pass an empty Hash as a request object (see above).
1761
1798
  #
1762
1799
  # @param parent [::String]
1763
- # Required. Name of the organization to run asset discovery for. Its format is
1764
- # "organizations/[organization_id]".
1800
+ # Required. Name of the organization to run asset discovery for. Its format
1801
+ # is "organizations/[organization_id]".
1765
1802
  #
1766
1803
  # @yield [response, operation] Access the result along with the RPC operation
1767
1804
  # @yieldparam response [::Gapic::Operation]
@@ -2046,8 +2083,8 @@ module Google
2046
2083
  # the default parameter values, pass an empty Hash as a request object (see above).
2047
2084
  #
2048
2085
  # @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.
2086
+ # Required. The finding resource to update or create if it does not already
2087
+ # exist. parent, security_marks, and update_time will be ignored.
2051
2088
  #
2052
2089
  # In the case of creation, the finding id portion of the name must be
2053
2090
  # alphanumeric and less than or equal to 32 characters and greater than 0
@@ -2485,7 +2522,7 @@ module Google
2485
2522
  config_attr :scope, nil, ::String, ::Array, nil
2486
2523
  config_attr :lib_name, nil, ::String, nil
2487
2524
  config_attr :lib_version, nil, ::String, nil
2488
- config_attr(:channel_args, { "grpc.service_config_disable_resolution"=>1 }, ::Hash, nil)
2525
+ config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil)
2489
2526
  config_attr :interceptors, nil, ::Array, nil
2490
2527
  config_attr :timeout, nil, ::Numeric, nil
2491
2528
  config_attr :metadata, nil, ::Hash, nil
@@ -2506,7 +2543,7 @@ module Google
2506
2543
  def rpcs
2507
2544
  @rpcs ||= begin
2508
2545
  parent_rpcs = nil
2509
- parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config&.respond_to?(:rpcs)
2546
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
2510
2547
  Rpcs.new parent_rpcs
2511
2548
  end
2512
2549
  end
@@ -2518,7 +2555,7 @@ module Google
2518
2555
  # Each configuration object is of type `Gapic::Config::Method` and includes
2519
2556
  # the following configuration fields:
2520
2557
  #
2521
- # * `timeout` (*type:* `Numeric`) - The call timeout in milliseconds
2558
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
2522
2559
  # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers
2523
2560
  # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
2524
2561
  # include the following keys:
@@ -2647,51 +2684,51 @@ module Google
2647
2684
 
2648
2685
  # @private
2649
2686
  def initialize parent_rpcs = nil
2650
- create_source_config = parent_rpcs&.create_source if parent_rpcs&.respond_to? :create_source
2687
+ create_source_config = parent_rpcs.create_source if parent_rpcs.respond_to? :create_source
2651
2688
  @create_source = ::Gapic::Config::Method.new create_source_config
2652
- create_finding_config = parent_rpcs&.create_finding if parent_rpcs&.respond_to? :create_finding
2689
+ create_finding_config = parent_rpcs.create_finding if parent_rpcs.respond_to? :create_finding
2653
2690
  @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
2691
+ create_notification_config_config = parent_rpcs.create_notification_config if parent_rpcs.respond_to? :create_notification_config
2655
2692
  @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
2693
+ delete_notification_config_config = parent_rpcs.delete_notification_config if parent_rpcs.respond_to? :delete_notification_config
2657
2694
  @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
2695
+ get_iam_policy_config = parent_rpcs.get_iam_policy if parent_rpcs.respond_to? :get_iam_policy
2659
2696
  @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
2697
+ get_notification_config_config = parent_rpcs.get_notification_config if parent_rpcs.respond_to? :get_notification_config
2661
2698
  @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
2699
+ get_organization_settings_config = parent_rpcs.get_organization_settings if parent_rpcs.respond_to? :get_organization_settings
2663
2700
  @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
2701
+ get_source_config = parent_rpcs.get_source if parent_rpcs.respond_to? :get_source
2665
2702
  @get_source = ::Gapic::Config::Method.new get_source_config
2666
- group_assets_config = parent_rpcs&.group_assets if parent_rpcs&.respond_to? :group_assets
2703
+ group_assets_config = parent_rpcs.group_assets if parent_rpcs.respond_to? :group_assets
2667
2704
  @group_assets = ::Gapic::Config::Method.new group_assets_config
2668
- group_findings_config = parent_rpcs&.group_findings if parent_rpcs&.respond_to? :group_findings
2705
+ group_findings_config = parent_rpcs.group_findings if parent_rpcs.respond_to? :group_findings
2669
2706
  @group_findings = ::Gapic::Config::Method.new group_findings_config
2670
- list_assets_config = parent_rpcs&.list_assets if parent_rpcs&.respond_to? :list_assets
2707
+ list_assets_config = parent_rpcs.list_assets if parent_rpcs.respond_to? :list_assets
2671
2708
  @list_assets = ::Gapic::Config::Method.new list_assets_config
2672
- list_findings_config = parent_rpcs&.list_findings if parent_rpcs&.respond_to? :list_findings
2709
+ list_findings_config = parent_rpcs.list_findings if parent_rpcs.respond_to? :list_findings
2673
2710
  @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
2711
+ list_notification_configs_config = parent_rpcs.list_notification_configs if parent_rpcs.respond_to? :list_notification_configs
2675
2712
  @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
2713
+ list_sources_config = parent_rpcs.list_sources if parent_rpcs.respond_to? :list_sources
2677
2714
  @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
2715
+ run_asset_discovery_config = parent_rpcs.run_asset_discovery if parent_rpcs.respond_to? :run_asset_discovery
2679
2716
  @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
2717
+ set_finding_state_config = parent_rpcs.set_finding_state if parent_rpcs.respond_to? :set_finding_state
2681
2718
  @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
2719
+ set_iam_policy_config = parent_rpcs.set_iam_policy if parent_rpcs.respond_to? :set_iam_policy
2683
2720
  @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
2721
+ test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions
2685
2722
  @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
2723
+ update_finding_config = parent_rpcs.update_finding if parent_rpcs.respond_to? :update_finding
2687
2724
  @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
2725
+ update_notification_config_config = parent_rpcs.update_notification_config if parent_rpcs.respond_to? :update_notification_config
2689
2726
  @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
2727
+ update_organization_settings_config = parent_rpcs.update_organization_settings if parent_rpcs.respond_to? :update_organization_settings
2691
2728
  @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
2729
+ update_source_config = parent_rpcs.update_source if parent_rpcs.respond_to? :update_source
2693
2730
  @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
2731
+ update_security_marks_config = parent_rpcs.update_security_marks if parent_rpcs.respond_to? :update_security_marks
2695
2732
  @update_security_marks = ::Gapic::Config::Method.new update_security_marks_config
2696
2733
 
2697
2734
  yield self if block_given?