aws-sdk-securityhub 1.22.0 → 1.27.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 89f10debc69f9443f604043c3bfe512c45784151
4
- data.tar.gz: fc09834716b14aadba3f2b416496d6054dff5714
2
+ SHA256:
3
+ metadata.gz: 3c80b12893827f02fe1a43880dc46f121913e14991a7d466ac2bf883a5aa12a7
4
+ data.tar.gz: 0e1f321d930049c973735f6b04c3e17085b158873c023cea69846c7426495f08
5
5
  SHA512:
6
- metadata.gz: e4238c3da0ef80dc573aee20252fae605ac77deb5bc42334cb912afe85428ec91a4e861eb4094b7bd55e358b853a93c2ec149fc948b4166b914938063f5134f0
7
- data.tar.gz: 2693d46141e62f894df2271cee291abda14bef53941989613049bd51a0b41f10706d986b024539cd35b6b876e62f8c4fdbd989457308cf3b0f86e233403f0cb7
6
+ metadata.gz: 9c082d0989b2d868e4cf247b0d4d00f0d331022f31d40096e8deaecda37979aeb68ce151fa6e5138c7fb090491452997a27e7bfa833b1c56257f9722815c6068
7
+ data.tar.gz: 8124f8cb3b33bb52d78a16664f39d3a1f8a8b8da7e3a7b2fe2c8add2d5cb50ec5a3037a92ec5124d0e8a99d8e14c5143cdf39a9ea9a3c90d49dee1361bb161f9
@@ -45,6 +45,6 @@ require_relative 'aws-sdk-securityhub/customizations'
45
45
  # @service
46
46
  module Aws::SecurityHub
47
47
 
48
- GEM_VERSION = '1.22.0'
48
+ GEM_VERSION = '1.27.1'
49
49
 
50
50
  end
@@ -24,6 +24,7 @@ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
24
24
  require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
25
25
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
26
26
  require 'aws-sdk-core/plugins/transfer_encoding.rb'
27
+ require 'aws-sdk-core/plugins/http_checksum.rb'
27
28
  require 'aws-sdk-core/plugins/signature_v4.rb'
28
29
  require 'aws-sdk-core/plugins/protocols/rest_json.rb'
29
30
 
@@ -69,6 +70,7 @@ module Aws::SecurityHub
69
70
  add_plugin(Aws::Plugins::ClientMetricsPlugin)
70
71
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
71
72
  add_plugin(Aws::Plugins::TransferEncoding)
73
+ add_plugin(Aws::Plugins::HttpChecksum)
72
74
  add_plugin(Aws::Plugins::SignatureV4)
73
75
  add_plugin(Aws::Plugins::Protocols::RestJson)
74
76
 
@@ -105,7 +107,7 @@ module Aws::SecurityHub
105
107
  # @option options [required, String] :region
106
108
  # The AWS region to connect to. The configured `:region` is
107
109
  # used to determine the service `:endpoint`. When not passed,
108
- # a default `:region` is search for in the following locations:
110
+ # a default `:region` is searched for in the following locations:
109
111
  #
110
112
  # * `Aws.config[:region]`
111
113
  # * `ENV['AWS_REGION']`
@@ -161,7 +163,7 @@ module Aws::SecurityHub
161
163
  # @option options [String] :endpoint
162
164
  # The client endpoint is normally constructed from the `:region`
163
165
  # option. You should only configure an `:endpoint` when connecting
164
- # to test endpoints. This should be avalid HTTP(S) URI.
166
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
165
167
  #
166
168
  # @option options [Integer] :endpoint_cache_max_entries (1000)
167
169
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -176,7 +178,7 @@ module Aws::SecurityHub
176
178
  # requests fetching endpoints information. Defaults to 60 sec.
177
179
  #
178
180
  # @option options [Boolean] :endpoint_discovery (false)
179
- # When set to `true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.
181
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
180
182
  #
181
183
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
182
184
  # The log formatter.
@@ -437,6 +439,28 @@ module Aws::SecurityHub
437
439
  # The maximum allowed size for a finding is 240 Kb. An error is returned
438
440
  # for any finding larger than 240 Kb.
439
441
  #
442
+ # After a finding is created, `BatchImportFindings` cannot be used to
443
+ # update the following finding fields and objects, which Security Hub
444
+ # customers use to manage their investigation workflow.
445
+ #
446
+ # * `Confidence`
447
+ #
448
+ # * `Criticality`
449
+ #
450
+ # * `Note`
451
+ #
452
+ # * `RelatedFindings`
453
+ #
454
+ # * `Severity`
455
+ #
456
+ # * `Types`
457
+ #
458
+ # * `UserDefinedFields`
459
+ #
460
+ # * `VerificationState`
461
+ #
462
+ # * `Workflow`
463
+ #
440
464
  # @option params [required, Array<Types::AwsSecurityFinding>] :findings
441
465
  # A list of findings to import. To successfully import a finding, it
442
466
  # must follow the [AWS Security Finding Format][1]. Maximum of 100
@@ -471,6 +495,7 @@ module Aws::SecurityHub
471
495
  # product: 1.0,
472
496
  # label: "INFORMATIONAL", # accepts INFORMATIONAL, LOW, MEDIUM, HIGH, CRITICAL
473
497
  # normalized: 1,
498
+ # original: "NonEmptyString",
474
499
  # },
475
500
  # confidence: 1,
476
501
  # criticality: 1,
@@ -921,6 +946,12 @@ module Aws::SecurityHub
921
946
  # compliance: {
922
947
  # status: "PASSED", # accepts PASSED, WARNING, FAILED, NOT_AVAILABLE
923
948
  # related_requirements: ["NonEmptyString"],
949
+ # status_reasons: [
950
+ # {
951
+ # reason_code: "NonEmptyString", # required
952
+ # description: "NonEmptyString",
953
+ # },
954
+ # ],
924
955
  # },
925
956
  # verification_state: "UNKNOWN", # accepts UNKNOWN, TRUE_POSITIVE, FALSE_POSITIVE, BENIGN_POSITIVE
926
957
  # workflow_state: "NEW", # accepts NEW, ASSIGNED, IN_PROGRESS, DEFERRED, RESOLVED
@@ -961,6 +992,172 @@ module Aws::SecurityHub
961
992
  req.send_request(options)
962
993
  end
963
994
 
995
+ # Used by Security Hub customers to update information about their
996
+ # investigation into a finding. Requested by master accounts or member
997
+ # accounts. Master accounts can update findings for their account and
998
+ # their member accounts. Member accounts can update findings for their
999
+ # account.
1000
+ #
1001
+ # Updates from `BatchUpdateFindings` do not affect the value of
1002
+ # `UpdatedAt` for a finding.
1003
+ #
1004
+ # Master accounts can use `BatchUpdateFindings` to update the following
1005
+ # finding fields and objects.
1006
+ #
1007
+ # * `Confidence`
1008
+ #
1009
+ # * `Criticality`
1010
+ #
1011
+ # * `Note`
1012
+ #
1013
+ # * `RelatedFindings`
1014
+ #
1015
+ # * `Severity`
1016
+ #
1017
+ # * `Types`
1018
+ #
1019
+ # * `UserDefinedFields`
1020
+ #
1021
+ # * `VerificationState`
1022
+ #
1023
+ # * `Workflow`
1024
+ #
1025
+ # Member accounts can only use `BatchUpdateFindings` to update the Note
1026
+ # object.
1027
+ #
1028
+ # @option params [required, Array<Types::AwsSecurityFindingIdentifier>] :finding_identifiers
1029
+ # The list of findings to update. `BatchUpdateFindings` can be used to
1030
+ # update up to 100 findings at a time.
1031
+ #
1032
+ # For each finding, the list provides the finding identifier and the ARN
1033
+ # of the finding provider.
1034
+ #
1035
+ # @option params [Types::NoteUpdate] :note
1036
+ # The updated note.
1037
+ #
1038
+ # @option params [Types::SeverityUpdate] :severity
1039
+ # Used to update the finding severity.
1040
+ #
1041
+ # @option params [String] :verification_state
1042
+ # Indicates the veracity of a finding.
1043
+ #
1044
+ # The available values for `VerificationState` are as follows.
1045
+ #
1046
+ # * `UNKNOWN` – The default disposition of a security finding
1047
+ #
1048
+ # * `TRUE_POSITIVE` – The security finding is confirmed
1049
+ #
1050
+ # * `FALSE_POSITIVE` – The security finding was determined to be a false
1051
+ # alarm
1052
+ #
1053
+ # * `BENIGN_POSITIVE` – A special case of `TRUE_POSITIVE` where the
1054
+ # finding doesn't pose any threat, is expected, or both
1055
+ #
1056
+ # @option params [Integer] :confidence
1057
+ # The updated value for the finding confidence. Confidence is defined as
1058
+ # the likelihood that a finding accurately identifies the behavior or
1059
+ # issue that it was intended to identify.
1060
+ #
1061
+ # Confidence is scored on a 0-100 basis using a ratio scale, where 0
1062
+ # means zero percent confidence and 100 means 100 percent confidence.
1063
+ #
1064
+ # @option params [Integer] :criticality
1065
+ # The updated value for the level of importance assigned to the
1066
+ # resources associated with the findings.
1067
+ #
1068
+ # A score of 0 means that the underlying resources have no criticality,
1069
+ # and a score of 100 is reserved for the most critical resources.
1070
+ #
1071
+ # @option params [Array<String>] :types
1072
+ # One or more finding types in the format of
1073
+ # namespace/category/classifier that classify a finding.
1074
+ #
1075
+ # Valid namespace values are as follows.
1076
+ #
1077
+ # * Software and Configuration Checks
1078
+ #
1079
+ # * TTPs
1080
+ #
1081
+ # * Effects
1082
+ #
1083
+ # * Unusual Behaviors
1084
+ #
1085
+ # * Sensitive Data Identifications
1086
+ #
1087
+ # @option params [Hash<String,String>] :user_defined_fields
1088
+ # A list of name/value string pairs associated with the finding. These
1089
+ # are custom, user-defined fields added to a finding.
1090
+ #
1091
+ # @option params [Types::WorkflowUpdate] :workflow
1092
+ # Used to update the workflow status of a finding.
1093
+ #
1094
+ # The workflow status indicates the progress of the investigation into
1095
+ # the finding.
1096
+ #
1097
+ # @option params [Array<Types::RelatedFinding>] :related_findings
1098
+ # A list of findings that are related to the updated findings.
1099
+ #
1100
+ # @return [Types::BatchUpdateFindingsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1101
+ #
1102
+ # * {Types::BatchUpdateFindingsResponse#processed_findings #processed_findings} => Array&lt;Types::AwsSecurityFindingIdentifier&gt;
1103
+ # * {Types::BatchUpdateFindingsResponse#unprocessed_findings #unprocessed_findings} => Array&lt;Types::BatchUpdateFindingsUnprocessedFinding&gt;
1104
+ #
1105
+ # @example Request syntax with placeholder values
1106
+ #
1107
+ # resp = client.batch_update_findings({
1108
+ # finding_identifiers: [ # required
1109
+ # {
1110
+ # id: "NonEmptyString", # required
1111
+ # product_arn: "NonEmptyString", # required
1112
+ # },
1113
+ # ],
1114
+ # note: {
1115
+ # text: "NonEmptyString", # required
1116
+ # updated_by: "NonEmptyString", # required
1117
+ # },
1118
+ # severity: {
1119
+ # normalized: 1,
1120
+ # product: 1.0,
1121
+ # label: "INFORMATIONAL", # accepts INFORMATIONAL, LOW, MEDIUM, HIGH, CRITICAL
1122
+ # },
1123
+ # verification_state: "UNKNOWN", # accepts UNKNOWN, TRUE_POSITIVE, FALSE_POSITIVE, BENIGN_POSITIVE
1124
+ # confidence: 1,
1125
+ # criticality: 1,
1126
+ # types: ["NonEmptyString"],
1127
+ # user_defined_fields: {
1128
+ # "NonEmptyString" => "NonEmptyString",
1129
+ # },
1130
+ # workflow: {
1131
+ # status: "NEW", # accepts NEW, NOTIFIED, RESOLVED, SUPPRESSED
1132
+ # },
1133
+ # related_findings: [
1134
+ # {
1135
+ # product_arn: "NonEmptyString", # required
1136
+ # id: "NonEmptyString", # required
1137
+ # },
1138
+ # ],
1139
+ # })
1140
+ #
1141
+ # @example Response structure
1142
+ #
1143
+ # resp.processed_findings #=> Array
1144
+ # resp.processed_findings[0].id #=> String
1145
+ # resp.processed_findings[0].product_arn #=> String
1146
+ # resp.unprocessed_findings #=> Array
1147
+ # resp.unprocessed_findings[0].finding_identifier.id #=> String
1148
+ # resp.unprocessed_findings[0].finding_identifier.product_arn #=> String
1149
+ # resp.unprocessed_findings[0].error_code #=> String
1150
+ # resp.unprocessed_findings[0].error_message #=> String
1151
+ #
1152
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchUpdateFindings AWS API Documentation
1153
+ #
1154
+ # @overload batch_update_findings(params = {})
1155
+ # @param [Hash] params ({})
1156
+ def batch_update_findings(params = {}, options = {})
1157
+ req = build_request(:batch_update_findings, params)
1158
+ req.send_request(options)
1159
+ end
1160
+
964
1161
  # Creates a custom action target in Security Hub.
965
1162
  #
966
1163
  # You can use custom actions on findings and insights in Security Hub to
@@ -1612,7 +1809,7 @@ module Aws::SecurityHub
1612
1809
  # Security Hub.
1613
1810
  #
1614
1811
  # If the account owner accepts the invitation, the account becomes a
1615
- # member account in Security Hub, and a permission policy is added that
1812
+ # member account in Security Hub. A permissions policy is added that
1616
1813
  # permits the master account to view the findings generated in the
1617
1814
  # member account. When Security Hub is enabled in the invited account,
1618
1815
  # findings start to be sent to both the member and master accounts.
@@ -2147,8 +2344,8 @@ module Aws::SecurityHub
2147
2344
  # Enables the integration of a partner product with Security Hub.
2148
2345
  # Integrated products send findings to Security Hub.
2149
2346
  #
2150
- # When you enable a product integration, a permission policy that grants
2151
- # permission for the product to send findings to Security Hub is
2347
+ # When you enable a product integration, a permissions policy that
2348
+ # grants permission for the product to send findings to Security Hub is
2152
2349
  # applied.
2153
2350
  #
2154
2351
  # @option params [required, String] :product_arn
@@ -2185,9 +2382,16 @@ module Aws::SecurityHub
2185
2382
  # integrated with Security Hub.
2186
2383
  #
2187
2384
  # When you use the `EnableSecurityHub` operation to enable Security Hub,
2188
- # you also automatically enable the CIS AWS Foundations standard. You do
2189
- # not enable the Payment Card Industry Data Security Standard (PCI DSS)
2190
- # standard. To not enable the CIS AWS Foundations standard, set
2385
+ # you also automatically enable the following standards.
2386
+ #
2387
+ # * CIS AWS Foundations
2388
+ #
2389
+ # * AWS Foundational Security Best Practices
2390
+ #
2391
+ # You do not enable the Payment Card Industry Data Security Standard
2392
+ # (PCI DSS) standard.
2393
+ #
2394
+ # To not enable the automatically enabled standards, set
2191
2395
  # `EnableDefaultStandards` to `false`.
2192
2396
  #
2193
2397
  # After you enable Security Hub, to enable a standard, use the `
@@ -2202,7 +2406,7 @@ module Aws::SecurityHub
2202
2406
  # [1]: https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-settingup.html
2203
2407
  #
2204
2408
  # @option params [Hash<String,String>] :tags
2205
- # The tags to add to the Hub resource when you enable Security Hub.
2409
+ # The tags to add to the hub resource when you enable Security Hub.
2206
2410
  #
2207
2411
  # @option params [Boolean] :enable_default_standards
2208
2412
  # Whether to enable the security standards that Security Hub has
@@ -2895,6 +3099,7 @@ module Aws::SecurityHub
2895
3099
  # resp.findings[0].severity.product #=> Float
2896
3100
  # resp.findings[0].severity.label #=> String, one of "INFORMATIONAL", "LOW", "MEDIUM", "HIGH", "CRITICAL"
2897
3101
  # resp.findings[0].severity.normalized #=> Integer
3102
+ # resp.findings[0].severity.original #=> String
2898
3103
  # resp.findings[0].confidence #=> Integer
2899
3104
  # resp.findings[0].criticality #=> Integer
2900
3105
  # resp.findings[0].title #=> String
@@ -3186,6 +3391,9 @@ module Aws::SecurityHub
3186
3391
  # resp.findings[0].compliance.status #=> String, one of "PASSED", "WARNING", "FAILED", "NOT_AVAILABLE"
3187
3392
  # resp.findings[0].compliance.related_requirements #=> Array
3188
3393
  # resp.findings[0].compliance.related_requirements[0] #=> String
3394
+ # resp.findings[0].compliance.status_reasons #=> Array
3395
+ # resp.findings[0].compliance.status_reasons[0].reason_code #=> String
3396
+ # resp.findings[0].compliance.status_reasons[0].description #=> String
3189
3397
  # resp.findings[0].verification_state #=> String, one of "UNKNOWN", "TRUE_POSITIVE", "FALSE_POSITIVE", "BENIGN_POSITIVE"
3190
3398
  # resp.findings[0].workflow_state #=> String, one of "NEW", "ASSIGNED", "IN_PROGRESS", "DEFERRED", "RESOLVED"
3191
3399
  # resp.findings[0].workflow.status #=> String, one of "NEW", "NOTIFIED", "RESOLVED", "SUPPRESSED"
@@ -3959,6 +4167,9 @@ module Aws::SecurityHub
3959
4167
  req.send_request(options)
3960
4168
  end
3961
4169
 
4170
+ # `UpdateFindings` is deprecated. Instead of `UpdateFindings`, use
4171
+ # `BatchUpdateFindings`.
4172
+ #
3962
4173
  # Updates the `Note` and `RecordState` of the Security Hub-aggregated
3963
4174
  # findings that the filter attributes specify. Any member account that
3964
4175
  # can view the finding also sees the update to the finding.
@@ -5183,7 +5394,7 @@ module Aws::SecurityHub
5183
5394
  params: params,
5184
5395
  config: config)
5185
5396
  context[:gem_name] = 'aws-sdk-securityhub'
5186
- context[:gem_version] = '1.22.0'
5397
+ context[:gem_version] = '1.27.1'
5187
5398
  Seahorse::Client::Request.new(handlers, context)
5188
5399
  end
5189
5400
 
@@ -85,6 +85,8 @@ module Aws::SecurityHub
85
85
  AwsS3ObjectDetails = Shapes::StructureShape.new(name: 'AwsS3ObjectDetails')
86
86
  AwsSecurityFinding = Shapes::StructureShape.new(name: 'AwsSecurityFinding')
87
87
  AwsSecurityFindingFilters = Shapes::StructureShape.new(name: 'AwsSecurityFindingFilters')
88
+ AwsSecurityFindingIdentifier = Shapes::StructureShape.new(name: 'AwsSecurityFindingIdentifier')
89
+ AwsSecurityFindingIdentifierList = Shapes::ListShape.new(name: 'AwsSecurityFindingIdentifierList')
88
90
  AwsSecurityFindingList = Shapes::ListShape.new(name: 'AwsSecurityFindingList')
89
91
  AwsSnsTopicDetails = Shapes::StructureShape.new(name: 'AwsSnsTopicDetails')
90
92
  AwsSnsTopicSubscription = Shapes::StructureShape.new(name: 'AwsSnsTopicSubscription')
@@ -99,6 +101,10 @@ module Aws::SecurityHub
99
101
  BatchEnableStandardsResponse = Shapes::StructureShape.new(name: 'BatchEnableStandardsResponse')
100
102
  BatchImportFindingsRequest = Shapes::StructureShape.new(name: 'BatchImportFindingsRequest')
101
103
  BatchImportFindingsResponse = Shapes::StructureShape.new(name: 'BatchImportFindingsResponse')
104
+ BatchUpdateFindingsRequest = Shapes::StructureShape.new(name: 'BatchUpdateFindingsRequest')
105
+ BatchUpdateFindingsResponse = Shapes::StructureShape.new(name: 'BatchUpdateFindingsResponse')
106
+ BatchUpdateFindingsUnprocessedFinding = Shapes::StructureShape.new(name: 'BatchUpdateFindingsUnprocessedFinding')
107
+ BatchUpdateFindingsUnprocessedFindingsList = Shapes::ListShape.new(name: 'BatchUpdateFindingsUnprocessedFindingsList')
102
108
  Boolean = Shapes::BooleanShape.new(name: 'Boolean')
103
109
  CategoryList = Shapes::ListShape.new(name: 'CategoryList')
104
110
  Compliance = Shapes::StructureShape.new(name: 'Compliance')
@@ -218,6 +224,7 @@ module Aws::SecurityHub
218
224
  Product = Shapes::StructureShape.new(name: 'Product')
219
225
  ProductSubscriptionArnList = Shapes::ListShape.new(name: 'ProductSubscriptionArnList')
220
226
  ProductsList = Shapes::ListShape.new(name: 'ProductsList')
227
+ RatioScale = Shapes::IntegerShape.new(name: 'RatioScale')
221
228
  Recommendation = Shapes::StructureShape.new(name: 'Recommendation')
222
229
  RecordState = Shapes::StringShape.new(name: 'RecordState')
223
230
  RelatedFinding = Shapes::StructureShape.new(name: 'RelatedFinding')
@@ -236,6 +243,7 @@ module Aws::SecurityHub
236
243
  Severity = Shapes::StructureShape.new(name: 'Severity')
237
244
  SeverityLabel = Shapes::StringShape.new(name: 'SeverityLabel')
238
245
  SeverityRating = Shapes::StringShape.new(name: 'SeverityRating')
246
+ SeverityUpdate = Shapes::StructureShape.new(name: 'SeverityUpdate')
239
247
  SortCriteria = Shapes::ListShape.new(name: 'SortCriteria')
240
248
  SortCriterion = Shapes::StructureShape.new(name: 'SortCriterion')
241
249
  SortOrder = Shapes::StringShape.new(name: 'SortOrder')
@@ -250,6 +258,8 @@ module Aws::SecurityHub
250
258
  StandardsSubscriptionRequest = Shapes::StructureShape.new(name: 'StandardsSubscriptionRequest')
251
259
  StandardsSubscriptionRequests = Shapes::ListShape.new(name: 'StandardsSubscriptionRequests')
252
260
  StandardsSubscriptions = Shapes::ListShape.new(name: 'StandardsSubscriptions')
261
+ StatusReason = Shapes::StructureShape.new(name: 'StatusReason')
262
+ StatusReasonsList = Shapes::ListShape.new(name: 'StatusReasonsList')
253
263
  StringFilter = Shapes::StructureShape.new(name: 'StringFilter')
254
264
  StringFilterComparison = Shapes::StringShape.new(name: 'StringFilterComparison')
255
265
  StringFilterList = Shapes::ListShape.new(name: 'StringFilterList')
@@ -284,6 +294,7 @@ module Aws::SecurityHub
284
294
  Workflow = Shapes::StructureShape.new(name: 'Workflow')
285
295
  WorkflowState = Shapes::StringShape.new(name: 'WorkflowState')
286
296
  WorkflowStatus = Shapes::StringShape.new(name: 'WorkflowStatus')
297
+ WorkflowUpdate = Shapes::StructureShape.new(name: 'WorkflowUpdate')
287
298
 
288
299
  AcceptInvitationRequest.add_member(:master_id, Shapes::ShapeRef.new(shape: NonEmptyString, required: true, location_name: "MasterId"))
289
300
  AcceptInvitationRequest.add_member(:invitation_id, Shapes::ShapeRef.new(shape: NonEmptyString, required: true, location_name: "InvitationId"))
@@ -753,6 +764,12 @@ module Aws::SecurityHub
753
764
  AwsSecurityFindingFilters.add_member(:keyword, Shapes::ShapeRef.new(shape: KeywordFilterList, location_name: "Keyword"))
754
765
  AwsSecurityFindingFilters.struct_class = Types::AwsSecurityFindingFilters
755
766
 
767
+ AwsSecurityFindingIdentifier.add_member(:id, Shapes::ShapeRef.new(shape: NonEmptyString, required: true, location_name: "Id"))
768
+ AwsSecurityFindingIdentifier.add_member(:product_arn, Shapes::ShapeRef.new(shape: NonEmptyString, required: true, location_name: "ProductArn"))
769
+ AwsSecurityFindingIdentifier.struct_class = Types::AwsSecurityFindingIdentifier
770
+
771
+ AwsSecurityFindingIdentifierList.member = Shapes::ShapeRef.new(shape: AwsSecurityFindingIdentifier)
772
+
756
773
  AwsSecurityFindingList.member = Shapes::ShapeRef.new(shape: AwsSecurityFinding)
757
774
 
758
775
  AwsSnsTopicDetails.add_member(:kms_master_key_id, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "KmsMasterKeyId"))
@@ -809,10 +826,34 @@ module Aws::SecurityHub
809
826
  BatchImportFindingsResponse.add_member(:failed_findings, Shapes::ShapeRef.new(shape: ImportFindingsErrorList, location_name: "FailedFindings"))
810
827
  BatchImportFindingsResponse.struct_class = Types::BatchImportFindingsResponse
811
828
 
829
+ BatchUpdateFindingsRequest.add_member(:finding_identifiers, Shapes::ShapeRef.new(shape: AwsSecurityFindingIdentifierList, required: true, location_name: "FindingIdentifiers"))
830
+ BatchUpdateFindingsRequest.add_member(:note, Shapes::ShapeRef.new(shape: NoteUpdate, location_name: "Note"))
831
+ BatchUpdateFindingsRequest.add_member(:severity, Shapes::ShapeRef.new(shape: SeverityUpdate, location_name: "Severity"))
832
+ BatchUpdateFindingsRequest.add_member(:verification_state, Shapes::ShapeRef.new(shape: VerificationState, location_name: "VerificationState"))
833
+ BatchUpdateFindingsRequest.add_member(:confidence, Shapes::ShapeRef.new(shape: RatioScale, location_name: "Confidence"))
834
+ BatchUpdateFindingsRequest.add_member(:criticality, Shapes::ShapeRef.new(shape: RatioScale, location_name: "Criticality"))
835
+ BatchUpdateFindingsRequest.add_member(:types, Shapes::ShapeRef.new(shape: TypeList, location_name: "Types"))
836
+ BatchUpdateFindingsRequest.add_member(:user_defined_fields, Shapes::ShapeRef.new(shape: FieldMap, location_name: "UserDefinedFields"))
837
+ BatchUpdateFindingsRequest.add_member(:workflow, Shapes::ShapeRef.new(shape: WorkflowUpdate, location_name: "Workflow"))
838
+ BatchUpdateFindingsRequest.add_member(:related_findings, Shapes::ShapeRef.new(shape: RelatedFindingList, location_name: "RelatedFindings"))
839
+ BatchUpdateFindingsRequest.struct_class = Types::BatchUpdateFindingsRequest
840
+
841
+ BatchUpdateFindingsResponse.add_member(:processed_findings, Shapes::ShapeRef.new(shape: AwsSecurityFindingIdentifierList, required: true, location_name: "ProcessedFindings"))
842
+ BatchUpdateFindingsResponse.add_member(:unprocessed_findings, Shapes::ShapeRef.new(shape: BatchUpdateFindingsUnprocessedFindingsList, required: true, location_name: "UnprocessedFindings"))
843
+ BatchUpdateFindingsResponse.struct_class = Types::BatchUpdateFindingsResponse
844
+
845
+ BatchUpdateFindingsUnprocessedFinding.add_member(:finding_identifier, Shapes::ShapeRef.new(shape: AwsSecurityFindingIdentifier, required: true, location_name: "FindingIdentifier"))
846
+ BatchUpdateFindingsUnprocessedFinding.add_member(:error_code, Shapes::ShapeRef.new(shape: NonEmptyString, required: true, location_name: "ErrorCode"))
847
+ BatchUpdateFindingsUnprocessedFinding.add_member(:error_message, Shapes::ShapeRef.new(shape: NonEmptyString, required: true, location_name: "ErrorMessage"))
848
+ BatchUpdateFindingsUnprocessedFinding.struct_class = Types::BatchUpdateFindingsUnprocessedFinding
849
+
850
+ BatchUpdateFindingsUnprocessedFindingsList.member = Shapes::ShapeRef.new(shape: BatchUpdateFindingsUnprocessedFinding)
851
+
812
852
  CategoryList.member = Shapes::ShapeRef.new(shape: NonEmptyString)
813
853
 
814
854
  Compliance.add_member(:status, Shapes::ShapeRef.new(shape: ComplianceStatus, location_name: "Status"))
815
855
  Compliance.add_member(:related_requirements, Shapes::ShapeRef.new(shape: RelatedRequirementsList, location_name: "RelatedRequirements"))
856
+ Compliance.add_member(:status_reasons, Shapes::ShapeRef.new(shape: StatusReasonsList, location_name: "StatusReasons"))
816
857
  Compliance.struct_class = Types::Compliance
817
858
 
818
859
  ContainerDetails.add_member(:name, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "Name"))
@@ -1257,8 +1298,14 @@ module Aws::SecurityHub
1257
1298
  Severity.add_member(:product, Shapes::ShapeRef.new(shape: Double, location_name: "Product"))
1258
1299
  Severity.add_member(:label, Shapes::ShapeRef.new(shape: SeverityLabel, location_name: "Label"))
1259
1300
  Severity.add_member(:normalized, Shapes::ShapeRef.new(shape: Integer, location_name: "Normalized"))
1301
+ Severity.add_member(:original, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "Original"))
1260
1302
  Severity.struct_class = Types::Severity
1261
1303
 
1304
+ SeverityUpdate.add_member(:normalized, Shapes::ShapeRef.new(shape: RatioScale, location_name: "Normalized"))
1305
+ SeverityUpdate.add_member(:product, Shapes::ShapeRef.new(shape: Double, location_name: "Product"))
1306
+ SeverityUpdate.add_member(:label, Shapes::ShapeRef.new(shape: SeverityLabel, location_name: "Label"))
1307
+ SeverityUpdate.struct_class = Types::SeverityUpdate
1308
+
1262
1309
  SortCriteria.member = Shapes::ShapeRef.new(shape: SortCriterion)
1263
1310
 
1264
1311
  SortCriterion.add_member(:field, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "Field"))
@@ -1306,6 +1353,12 @@ module Aws::SecurityHub
1306
1353
 
1307
1354
  StandardsSubscriptions.member = Shapes::ShapeRef.new(shape: StandardsSubscription)
1308
1355
 
1356
+ StatusReason.add_member(:reason_code, Shapes::ShapeRef.new(shape: NonEmptyString, required: true, location_name: "ReasonCode"))
1357
+ StatusReason.add_member(:description, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "Description"))
1358
+ StatusReason.struct_class = Types::StatusReason
1359
+
1360
+ StatusReasonsList.member = Shapes::ShapeRef.new(shape: StatusReason)
1361
+
1309
1362
  StringFilter.add_member(:value, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "Value"))
1310
1363
  StringFilter.add_member(:comparison, Shapes::ShapeRef.new(shape: StringFilterComparison, location_name: "Comparison"))
1311
1364
  StringFilter.struct_class = Types::StringFilter
@@ -1386,6 +1439,9 @@ module Aws::SecurityHub
1386
1439
  Workflow.add_member(:status, Shapes::ShapeRef.new(shape: WorkflowStatus, location_name: "Status"))
1387
1440
  Workflow.struct_class = Types::Workflow
1388
1441
 
1442
+ WorkflowUpdate.add_member(:status, Shapes::ShapeRef.new(shape: WorkflowStatus, location_name: "Status"))
1443
+ WorkflowUpdate.struct_class = Types::WorkflowUpdate
1444
+
1389
1445
 
1390
1446
  # @api private
1391
1447
  API = Seahorse::Model::Api.new.tap do |api|
@@ -1453,6 +1509,18 @@ module Aws::SecurityHub
1453
1509
  o.errors << Shapes::ShapeRef.new(shape: InvalidAccessException)
1454
1510
  end)
1455
1511
 
1512
+ api.add_operation(:batch_update_findings, Seahorse::Model::Operation.new.tap do |o|
1513
+ o.name = "BatchUpdateFindings"
1514
+ o.http_method = "PATCH"
1515
+ o.http_request_uri = "/findings/batchupdate"
1516
+ o.input = Shapes::ShapeRef.new(shape: BatchUpdateFindingsRequest)
1517
+ o.output = Shapes::ShapeRef.new(shape: BatchUpdateFindingsResponse)
1518
+ o.errors << Shapes::ShapeRef.new(shape: InternalException)
1519
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
1520
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1521
+ o.errors << Shapes::ShapeRef.new(shape: InvalidAccessException)
1522
+ end)
1523
+
1456
1524
  api.add_operation(:create_action_target, Seahorse::Model::Operation.new.tap do |o|
1457
1525
  o.name = "CreateActionTarget"
1458
1526
  o.http_method = "POST"