aws-sdk-securityhub 1.145.0 → 1.146.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a58b84e22aeb3cff9a012b7a3907a80a631f5067a6598d308bd88b85b89b77aa
4
- data.tar.gz: e3797eab5a0cda36334a37606a83a271c89c9eda5227dfd4323e45f8d3cebe4a
3
+ metadata.gz: 07f12016b685f5be1332235370c2da738dda5094ce09993d1b0bd791645a33a5
4
+ data.tar.gz: 043a2a6edd05d4129912331a519ad06135ed81cd5f75c17dd4005201c0320d04
5
5
  SHA512:
6
- metadata.gz: 027fcadc28d0324e120fd07c13fa157f582d2d4bf13736f2557f8213b234085eda7f9e8cf847801e0b9e26a0a4c5b208efb5d013c13b98e71c8849d7f20b8dd0
7
- data.tar.gz: c652cfcbb6e3d7d7a35a75f14d61d3d5ea60fffe7f9d4c788150240e36d07c5001069c8dc4d678019e83cf9ff1680195f729169603f519413822b5ff14d31b01
6
+ metadata.gz: a01461bd5702c14ed1dbc0f414deed844ff3d31333344dcadb2ca141331fc9217f0aa849bb8bbebe427603f206a74d11ebfd98ee06388c292f833e9fde6af8c9
7
+ data.tar.gz: 7dcf5d65ef1fe19d01a5573bc85c95209630cd6e7536917e50ee8f80075afd423cb743934d8f7859360871c679166c7cc0285547ab1035ba19f4948e3d025290
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.146.0 (2025-11-20)
5
+ ------------------
6
+
7
+ * Feature - Release Findings and Resources Trends APIs- GetFindingsTrendsV2 and GetResourcesTrendsV2. This supports time-series aggregated counts with composite filtering for 1-year of historical data analysis of Findings and Resources.
8
+
4
9
  1.145.0 (2025-10-24)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.145.0
1
+ 1.146.0
@@ -2299,7 +2299,7 @@ module Aws::SecurityHub
2299
2299
  end
2300
2300
 
2301
2301
  # Grants permission to complete the authorization based on input
2302
- # parameters. This API is in preview release and subject to change.
2302
+ # parameters. This API is in public preview and subject to change.
2303
2303
  #
2304
2304
  # @option params [required, String] :auth_code
2305
2305
  # The authCode retrieved from authUrl to complete the OAuth 2.0
@@ -3222,7 +3222,7 @@ module Aws::SecurityHub
3222
3222
  end
3223
3223
 
3224
3224
  # Grants permission to create a connectorV2 based on input parameters.
3225
- # This API is in preview release and subject to change.
3225
+ # This API is in public preview and subject to change.
3226
3226
  #
3227
3227
  # @option params [required, String] :name
3228
3228
  # The unique name of the connectorV2.
@@ -4280,7 +4280,7 @@ module Aws::SecurityHub
4280
4280
 
4281
4281
  # Grants permission to create a ticket in the chosen ITSM based on
4282
4282
  # finding information for the provided finding metadata UID. This API is
4283
- # in preview release and subject to change.
4283
+ # in public preview and subject to change.
4284
4284
  #
4285
4285
  # @option params [required, String] :connector_id
4286
4286
  # The UUID of the connectorV2 to identify connectorV2 resource.
@@ -4519,8 +4519,8 @@ module Aws::SecurityHub
4519
4519
  req.send_request(options)
4520
4520
  end
4521
4521
 
4522
- # Grants permission to delete a connectorV2. This API is in preview
4523
- # release and subject to change.
4522
+ # Grants permission to delete a connectorV2. This API is in public
4523
+ # preview and subject to change.
4524
4524
  #
4525
4525
  # @option params [required, String] :connector_id
4526
4526
  # The UUID of the connectorV2 to identify connectorV2 resource.
@@ -6080,7 +6080,7 @@ module Aws::SecurityHub
6080
6080
  end
6081
6081
 
6082
6082
  # Grants permission to retrieve details for a connectorV2 based on
6083
- # connector id. This API is in preview release and subject to change.
6083
+ # connector id. This API is in public preview and subject to change.
6084
6084
  #
6085
6085
  # @option params [required, String] :connector_id
6086
6086
  # The UUID of the connectorV2 to identify connectorV2 resource.
@@ -7422,6 +7422,90 @@ module Aws::SecurityHub
7422
7422
  req.send_request(options)
7423
7423
  end
7424
7424
 
7425
+ # Returns findings trend data based on the specified criteria. This
7426
+ # operation helps you analyze patterns and changes in findings over
7427
+ # time. This API is in public preview and subject to change.
7428
+ #
7429
+ # @option params [Types::FindingsTrendsFilters] :filters
7430
+ # The filters to apply to the findings trend data.
7431
+ #
7432
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
7433
+ # The starting timestamp for the time period to analyze findings trends,
7434
+ # in ISO 8601 format.
7435
+ #
7436
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
7437
+ # The ending timestamp for the time period to analyze findings trends,
7438
+ # in ISO 8601 format.
7439
+ #
7440
+ # @option params [String] :next_token
7441
+ # The token to use for paginating results. This value is returned in the
7442
+ # response if more results are available.
7443
+ #
7444
+ # @option params [Integer] :max_results
7445
+ # The maximum number of trend data points to return in a single
7446
+ # response.
7447
+ #
7448
+ # @return [Types::GetFindingsTrendsV2Response] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7449
+ #
7450
+ # * {Types::GetFindingsTrendsV2Response#granularity #granularity} => String
7451
+ # * {Types::GetFindingsTrendsV2Response#trends_metrics #trends_metrics} => Array<Types::TrendsMetricsResult>
7452
+ # * {Types::GetFindingsTrendsV2Response#next_token #next_token} => String
7453
+ #
7454
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
7455
+ #
7456
+ # @example Request syntax with placeholder values
7457
+ #
7458
+ # resp = client.get_findings_trends_v2({
7459
+ # filters: {
7460
+ # composite_filters: [
7461
+ # {
7462
+ # string_filters: [
7463
+ # {
7464
+ # field_name: "account_id", # accepts account_id, region, finding_types, finding_status, finding_cve_ids, finding_compliance_status, finding_control_id, finding_class_name, finding_provider, finding_activity_name
7465
+ # filter: {
7466
+ # value: "NonEmptyString",
7467
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS, CONTAINS, NOT_CONTAINS, CONTAINS_WORD
7468
+ # },
7469
+ # },
7470
+ # ],
7471
+ # nested_composite_filters: {
7472
+ # # recursive FindingsTrendsCompositeFilterList
7473
+ # },
7474
+ # operator: "AND", # accepts AND, OR
7475
+ # },
7476
+ # ],
7477
+ # composite_operator: "AND", # accepts AND, OR
7478
+ # },
7479
+ # start_time: Time.now, # required
7480
+ # end_time: Time.now, # required
7481
+ # next_token: "NextToken",
7482
+ # max_results: 1,
7483
+ # })
7484
+ #
7485
+ # @example Response structure
7486
+ #
7487
+ # resp.granularity #=> String, one of "Daily", "Weekly", "Monthly"
7488
+ # resp.trends_metrics #=> Array
7489
+ # resp.trends_metrics[0].timestamp #=> Time
7490
+ # resp.trends_metrics[0].trends_values.severity_trends.unknown #=> Integer
7491
+ # resp.trends_metrics[0].trends_values.severity_trends.informational #=> Integer
7492
+ # resp.trends_metrics[0].trends_values.severity_trends.low #=> Integer
7493
+ # resp.trends_metrics[0].trends_values.severity_trends.medium #=> Integer
7494
+ # resp.trends_metrics[0].trends_values.severity_trends.high #=> Integer
7495
+ # resp.trends_metrics[0].trends_values.severity_trends.critical #=> Integer
7496
+ # resp.trends_metrics[0].trends_values.severity_trends.fatal #=> Integer
7497
+ # resp.trends_metrics[0].trends_values.severity_trends.other #=> Integer
7498
+ # resp.next_token #=> String
7499
+ #
7500
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetFindingsTrendsV2 AWS API Documentation
7501
+ #
7502
+ # @overload get_findings_trends_v2(params = {})
7503
+ # @param [Hash] params ({})
7504
+ def get_findings_trends_v2(params = {}, options = {})
7505
+ req = build_request(:get_findings_trends_v2, params)
7506
+ req.send_request(options)
7507
+ end
7508
+
7425
7509
  # Return a list of findings that match the specified criteria.
7426
7510
  # `GetFindings` and `GetFindingsV2` both use `securityhub:GetFindings`
7427
7511
  # in the `Action` element of an IAM policy statement. You must have
@@ -8326,6 +8410,84 @@ module Aws::SecurityHub
8326
8410
  req.send_request(options)
8327
8411
  end
8328
8412
 
8413
+ # Returns resource trend data based on the specified criteria. This
8414
+ # operation helps you analyze patterns and changes in resource
8415
+ # compliance over time. This API is in public preview and subject to
8416
+ # change.
8417
+ #
8418
+ # @option params [Types::ResourcesTrendsFilters] :filters
8419
+ # The filters to apply to the resources trend data.
8420
+ #
8421
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
8422
+ # The starting timestamp for the time period to analyze resources
8423
+ # trends, in ISO 8601 format.
8424
+ #
8425
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
8426
+ # The ending timestamp for the time period to analyze resources trends,
8427
+ # in ISO 8601 format.
8428
+ #
8429
+ # @option params [String] :next_token
8430
+ # The token to use for paginating results. This value is returned in the
8431
+ # response if more results are available.
8432
+ #
8433
+ # @option params [Integer] :max_results
8434
+ # The maximum number of trend data points to return in a single
8435
+ # response.
8436
+ #
8437
+ # @return [Types::GetResourcesTrendsV2Response] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
8438
+ #
8439
+ # * {Types::GetResourcesTrendsV2Response#granularity #granularity} => String
8440
+ # * {Types::GetResourcesTrendsV2Response#trends_metrics #trends_metrics} => Array<Types::ResourcesTrendsMetricsResult>
8441
+ # * {Types::GetResourcesTrendsV2Response#next_token #next_token} => String
8442
+ #
8443
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
8444
+ #
8445
+ # @example Request syntax with placeholder values
8446
+ #
8447
+ # resp = client.get_resources_trends_v2({
8448
+ # filters: {
8449
+ # composite_filters: [
8450
+ # {
8451
+ # string_filters: [
8452
+ # {
8453
+ # field_name: "account_id", # accepts account_id, region, resource_type, resource_category
8454
+ # filter: {
8455
+ # value: "NonEmptyString",
8456
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS, CONTAINS, NOT_CONTAINS, CONTAINS_WORD
8457
+ # },
8458
+ # },
8459
+ # ],
8460
+ # nested_composite_filters: {
8461
+ # # recursive ResourcesTrendsCompositeFilterList
8462
+ # },
8463
+ # operator: "AND", # accepts AND, OR
8464
+ # },
8465
+ # ],
8466
+ # composite_operator: "AND", # accepts AND, OR
8467
+ # },
8468
+ # start_time: Time.now, # required
8469
+ # end_time: Time.now, # required
8470
+ # next_token: "NextToken",
8471
+ # max_results: 1,
8472
+ # })
8473
+ #
8474
+ # @example Response structure
8475
+ #
8476
+ # resp.granularity #=> String, one of "Daily", "Weekly", "Monthly"
8477
+ # resp.trends_metrics #=> Array
8478
+ # resp.trends_metrics[0].timestamp #=> Time
8479
+ # resp.trends_metrics[0].trends_values.resources_count.all_resources #=> Integer
8480
+ # resp.next_token #=> String
8481
+ #
8482
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetResourcesTrendsV2 AWS API Documentation
8483
+ #
8484
+ # @overload get_resources_trends_v2(params = {})
8485
+ # @param [Hash] params ({})
8486
+ def get_resources_trends_v2(params = {}, options = {})
8487
+ req = build_request(:get_resources_trends_v2, params)
8488
+ req.send_request(options)
8489
+ end
8490
+
8329
8491
  # Returns a list of resources. This API is in public preview and subject
8330
8492
  # to change.
8331
8493
  #
@@ -8987,7 +9149,7 @@ module Aws::SecurityHub
8987
9149
  end
8988
9150
 
8989
9151
  # Grants permission to retrieve a list of connectorsV2 and their
8990
- # metadata for the calling account. This API is in preview release and
9152
+ # metadata for the calling account. This API is in public preview and
8991
9153
  # subject to change.
8992
9154
  #
8993
9155
  # @option params [String] :next_token
@@ -10327,7 +10489,7 @@ module Aws::SecurityHub
10327
10489
  end
10328
10490
 
10329
10491
  # Grants permission to update a connectorV2 based on its id and input
10330
- # parameters. This API is in preview release and subject to change.
10492
+ # parameters. This API is in public preview and subject to change.
10331
10493
  #
10332
10494
  # @option params [required, String] :connector_id
10333
10495
  # The UUID of the connectorV2 to identify connectorV2 resource.
@@ -12249,7 +12411,7 @@ module Aws::SecurityHub
12249
12411
  tracer: tracer
12250
12412
  )
12251
12413
  context[:gem_name] = 'aws-sdk-securityhub'
12252
- context[:gem_version] = '1.145.0'
12414
+ context[:gem_version] = '1.146.0'
12253
12415
  Seahorse::Client::Request.new(handlers, context)
12254
12416
  end
12255
12417
 
@@ -912,6 +912,12 @@ module Aws::SecurityHub
912
912
  FindingHistoryUpdatesList = Shapes::ListShape.new(name: 'FindingHistoryUpdatesList')
913
913
  FindingProviderFields = Shapes::StructureShape.new(name: 'FindingProviderFields')
914
914
  FindingProviderSeverity = Shapes::StructureShape.new(name: 'FindingProviderSeverity')
915
+ FindingsTrendsCompositeFilter = Shapes::StructureShape.new(name: 'FindingsTrendsCompositeFilter')
916
+ FindingsTrendsCompositeFilterList = Shapes::ListShape.new(name: 'FindingsTrendsCompositeFilterList')
917
+ FindingsTrendsFilters = Shapes::StructureShape.new(name: 'FindingsTrendsFilters')
918
+ FindingsTrendsStringField = Shapes::StringShape.new(name: 'FindingsTrendsStringField')
919
+ FindingsTrendsStringFilter = Shapes::StructureShape.new(name: 'FindingsTrendsStringFilter')
920
+ FindingsTrendsStringFilterList = Shapes::ListShape.new(name: 'FindingsTrendsStringFilterList')
915
921
  FirewallPolicyDetails = Shapes::StructureShape.new(name: 'FirewallPolicyDetails')
916
922
  FirewallPolicyStatefulRuleGroupReferencesDetails = Shapes::StructureShape.new(name: 'FirewallPolicyStatefulRuleGroupReferencesDetails')
917
923
  FirewallPolicyStatefulRuleGroupReferencesList = Shapes::ListShape.new(name: 'FirewallPolicyStatefulRuleGroupReferencesList')
@@ -943,6 +949,8 @@ module Aws::SecurityHub
943
949
  GetFindingStatisticsV2Response = Shapes::StructureShape.new(name: 'GetFindingStatisticsV2Response')
944
950
  GetFindingsRequest = Shapes::StructureShape.new(name: 'GetFindingsRequest')
945
951
  GetFindingsResponse = Shapes::StructureShape.new(name: 'GetFindingsResponse')
952
+ GetFindingsTrendsV2Request = Shapes::StructureShape.new(name: 'GetFindingsTrendsV2Request')
953
+ GetFindingsTrendsV2Response = Shapes::StructureShape.new(name: 'GetFindingsTrendsV2Response')
946
954
  GetFindingsV2Request = Shapes::StructureShape.new(name: 'GetFindingsV2Request')
947
955
  GetFindingsV2Response = Shapes::StructureShape.new(name: 'GetFindingsV2Response')
948
956
  GetInsightResultsRequest = Shapes::StructureShape.new(name: 'GetInsightResultsRequest')
@@ -957,10 +965,13 @@ module Aws::SecurityHub
957
965
  GetMembersResponse = Shapes::StructureShape.new(name: 'GetMembersResponse')
958
966
  GetResourcesStatisticsV2Request = Shapes::StructureShape.new(name: 'GetResourcesStatisticsV2Request')
959
967
  GetResourcesStatisticsV2Response = Shapes::StructureShape.new(name: 'GetResourcesStatisticsV2Response')
968
+ GetResourcesTrendsV2Request = Shapes::StructureShape.new(name: 'GetResourcesTrendsV2Request')
969
+ GetResourcesTrendsV2Response = Shapes::StructureShape.new(name: 'GetResourcesTrendsV2Response')
960
970
  GetResourcesV2Request = Shapes::StructureShape.new(name: 'GetResourcesV2Request')
961
971
  GetResourcesV2Response = Shapes::StructureShape.new(name: 'GetResourcesV2Response')
962
972
  GetSecurityControlDefinitionRequest = Shapes::StructureShape.new(name: 'GetSecurityControlDefinitionRequest')
963
973
  GetSecurityControlDefinitionResponse = Shapes::StructureShape.new(name: 'GetSecurityControlDefinitionResponse')
974
+ GranularityField = Shapes::StringShape.new(name: 'GranularityField')
964
975
  GroupByField = Shapes::StringShape.new(name: 'GroupByField')
965
976
  GroupByResult = Shapes::StructureShape.new(name: 'GroupByResult')
966
977
  GroupByResults = Shapes::ListShape.new(name: 'GroupByResults')
@@ -1156,6 +1167,7 @@ module Aws::SecurityHub
1156
1167
  Resources = Shapes::ListShape.new(name: 'Resources')
1157
1168
  ResourcesCompositeFilter = Shapes::StructureShape.new(name: 'ResourcesCompositeFilter')
1158
1169
  ResourcesCompositeFilterList = Shapes::ListShape.new(name: 'ResourcesCompositeFilterList')
1170
+ ResourcesCount = Shapes::StructureShape.new(name: 'ResourcesCount')
1159
1171
  ResourcesDateField = Shapes::StringShape.new(name: 'ResourcesDateField')
1160
1172
  ResourcesDateFilter = Shapes::StructureShape.new(name: 'ResourcesDateFilter')
1161
1173
  ResourcesDateFilterList = Shapes::ListShape.new(name: 'ResourcesDateFilterList')
@@ -1169,6 +1181,15 @@ module Aws::SecurityHub
1169
1181
  ResourcesStringField = Shapes::StringShape.new(name: 'ResourcesStringField')
1170
1182
  ResourcesStringFilter = Shapes::StructureShape.new(name: 'ResourcesStringFilter')
1171
1183
  ResourcesStringFilterList = Shapes::ListShape.new(name: 'ResourcesStringFilterList')
1184
+ ResourcesTrendsCompositeFilter = Shapes::StructureShape.new(name: 'ResourcesTrendsCompositeFilter')
1185
+ ResourcesTrendsCompositeFilterList = Shapes::ListShape.new(name: 'ResourcesTrendsCompositeFilterList')
1186
+ ResourcesTrendsFilters = Shapes::StructureShape.new(name: 'ResourcesTrendsFilters')
1187
+ ResourcesTrendsMetrics = Shapes::ListShape.new(name: 'ResourcesTrendsMetrics')
1188
+ ResourcesTrendsMetricsResult = Shapes::StructureShape.new(name: 'ResourcesTrendsMetricsResult')
1189
+ ResourcesTrendsStringField = Shapes::StringShape.new(name: 'ResourcesTrendsStringField')
1190
+ ResourcesTrendsStringFilter = Shapes::StructureShape.new(name: 'ResourcesTrendsStringFilter')
1191
+ ResourcesTrendsStringFilterList = Shapes::ListShape.new(name: 'ResourcesTrendsStringFilterList')
1192
+ ResourcesTrendsValues = Shapes::StructureShape.new(name: 'ResourcesTrendsValues')
1172
1193
  Result = Shapes::StructureShape.new(name: 'Result')
1173
1194
  ResultList = Shapes::ListShape.new(name: 'ResultList')
1174
1195
  RouteSetDetails = Shapes::StructureShape.new(name: 'RouteSetDetails')
@@ -1231,6 +1252,7 @@ module Aws::SecurityHub
1231
1252
  Severity = Shapes::StructureShape.new(name: 'Severity')
1232
1253
  SeverityLabel = Shapes::StringShape.new(name: 'SeverityLabel')
1233
1254
  SeverityRating = Shapes::StringShape.new(name: 'SeverityRating')
1255
+ SeverityTrendsCount = Shapes::StructureShape.new(name: 'SeverityTrendsCount')
1234
1256
  SeverityUpdate = Shapes::StructureShape.new(name: 'SeverityUpdate')
1235
1257
  Signal = Shapes::StructureShape.new(name: 'Signal')
1236
1258
  SignalsList = Shapes::ListShape.new(name: 'SignalsList')
@@ -1296,6 +1318,10 @@ module Aws::SecurityHub
1296
1318
  ThreatList = Shapes::ListShape.new(name: 'ThreatList')
1297
1319
  ThrottlingException = Shapes::StructureShape.new(name: 'ThrottlingException')
1298
1320
  Timestamp = Shapes::TimestampShape.new(name: 'Timestamp', timestampFormat: "iso8601")
1321
+ TrendsMetrics = Shapes::ListShape.new(name: 'TrendsMetrics')
1322
+ TrendsMetricsResult = Shapes::StructureShape.new(name: 'TrendsMetricsResult')
1323
+ TrendsValueCount = Shapes::IntegerShape.new(name: 'TrendsValueCount')
1324
+ TrendsValues = Shapes::StructureShape.new(name: 'TrendsValues')
1299
1325
  TypeList = Shapes::ListShape.new(name: 'TypeList')
1300
1326
  UnprocessedAutomationRule = Shapes::StructureShape.new(name: 'UnprocessedAutomationRule')
1301
1327
  UnprocessedAutomationRulesList = Shapes::ListShape.new(name: 'UnprocessedAutomationRulesList')
@@ -6006,6 +6032,23 @@ module Aws::SecurityHub
6006
6032
  FindingProviderSeverity.add_member(:original, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "Original"))
6007
6033
  FindingProviderSeverity.struct_class = Types::FindingProviderSeverity
6008
6034
 
6035
+ FindingsTrendsCompositeFilter.add_member(:string_filters, Shapes::ShapeRef.new(shape: FindingsTrendsStringFilterList, location_name: "StringFilters"))
6036
+ FindingsTrendsCompositeFilter.add_member(:nested_composite_filters, Shapes::ShapeRef.new(shape: FindingsTrendsCompositeFilterList, location_name: "NestedCompositeFilters"))
6037
+ FindingsTrendsCompositeFilter.add_member(:operator, Shapes::ShapeRef.new(shape: AllowedOperators, location_name: "Operator"))
6038
+ FindingsTrendsCompositeFilter.struct_class = Types::FindingsTrendsCompositeFilter
6039
+
6040
+ FindingsTrendsCompositeFilterList.member = Shapes::ShapeRef.new(shape: FindingsTrendsCompositeFilter)
6041
+
6042
+ FindingsTrendsFilters.add_member(:composite_filters, Shapes::ShapeRef.new(shape: FindingsTrendsCompositeFilterList, location_name: "CompositeFilters"))
6043
+ FindingsTrendsFilters.add_member(:composite_operator, Shapes::ShapeRef.new(shape: AllowedOperators, location_name: "CompositeOperator"))
6044
+ FindingsTrendsFilters.struct_class = Types::FindingsTrendsFilters
6045
+
6046
+ FindingsTrendsStringFilter.add_member(:field_name, Shapes::ShapeRef.new(shape: FindingsTrendsStringField, location_name: "FieldName"))
6047
+ FindingsTrendsStringFilter.add_member(:filter, Shapes::ShapeRef.new(shape: StringFilter, location_name: "Filter"))
6048
+ FindingsTrendsStringFilter.struct_class = Types::FindingsTrendsStringFilter
6049
+
6050
+ FindingsTrendsStringFilterList.member = Shapes::ShapeRef.new(shape: FindingsTrendsStringFilter)
6051
+
6009
6052
  FirewallPolicyDetails.add_member(:stateful_rule_group_references, Shapes::ShapeRef.new(shape: FirewallPolicyStatefulRuleGroupReferencesList, location_name: "StatefulRuleGroupReferences"))
6010
6053
  FirewallPolicyDetails.add_member(:stateless_custom_actions, Shapes::ShapeRef.new(shape: FirewallPolicyStatelessCustomActionsList, location_name: "StatelessCustomActions"))
6011
6054
  FirewallPolicyDetails.add_member(:stateless_default_actions, Shapes::ShapeRef.new(shape: NonEmptyStringList, location_name: "StatelessDefaultActions"))
@@ -6153,6 +6196,18 @@ module Aws::SecurityHub
6153
6196
  GetFindingsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
6154
6197
  GetFindingsResponse.struct_class = Types::GetFindingsResponse
6155
6198
 
6199
+ GetFindingsTrendsV2Request.add_member(:filters, Shapes::ShapeRef.new(shape: FindingsTrendsFilters, location_name: "Filters"))
6200
+ GetFindingsTrendsV2Request.add_member(:start_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "StartTime"))
6201
+ GetFindingsTrendsV2Request.add_member(:end_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "EndTime"))
6202
+ GetFindingsTrendsV2Request.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
6203
+ GetFindingsTrendsV2Request.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
6204
+ GetFindingsTrendsV2Request.struct_class = Types::GetFindingsTrendsV2Request
6205
+
6206
+ GetFindingsTrendsV2Response.add_member(:granularity, Shapes::ShapeRef.new(shape: GranularityField, required: true, location_name: "Granularity"))
6207
+ GetFindingsTrendsV2Response.add_member(:trends_metrics, Shapes::ShapeRef.new(shape: TrendsMetrics, required: true, location_name: "TrendsMetrics"))
6208
+ GetFindingsTrendsV2Response.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
6209
+ GetFindingsTrendsV2Response.struct_class = Types::GetFindingsTrendsV2Response
6210
+
6156
6211
  GetFindingsV2Request.add_member(:filters, Shapes::ShapeRef.new(shape: OcsfFindingFilters, location_name: "Filters"))
6157
6212
  GetFindingsV2Request.add_member(:sort_criteria, Shapes::ShapeRef.new(shape: SortCriteria, location_name: "SortCriteria"))
6158
6213
  GetFindingsV2Request.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
@@ -6203,6 +6258,18 @@ module Aws::SecurityHub
6203
6258
  GetResourcesStatisticsV2Response.add_member(:group_by_results, Shapes::ShapeRef.new(shape: GroupByResults, required: true, location_name: "GroupByResults"))
6204
6259
  GetResourcesStatisticsV2Response.struct_class = Types::GetResourcesStatisticsV2Response
6205
6260
 
6261
+ GetResourcesTrendsV2Request.add_member(:filters, Shapes::ShapeRef.new(shape: ResourcesTrendsFilters, location_name: "Filters"))
6262
+ GetResourcesTrendsV2Request.add_member(:start_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "StartTime"))
6263
+ GetResourcesTrendsV2Request.add_member(:end_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "EndTime"))
6264
+ GetResourcesTrendsV2Request.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
6265
+ GetResourcesTrendsV2Request.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
6266
+ GetResourcesTrendsV2Request.struct_class = Types::GetResourcesTrendsV2Request
6267
+
6268
+ GetResourcesTrendsV2Response.add_member(:granularity, Shapes::ShapeRef.new(shape: GranularityField, required: true, location_name: "Granularity"))
6269
+ GetResourcesTrendsV2Response.add_member(:trends_metrics, Shapes::ShapeRef.new(shape: ResourcesTrendsMetrics, required: true, location_name: "TrendsMetrics"))
6270
+ GetResourcesTrendsV2Response.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
6271
+ GetResourcesTrendsV2Response.struct_class = Types::GetResourcesTrendsV2Response
6272
+
6206
6273
  GetResourcesV2Request.add_member(:filters, Shapes::ShapeRef.new(shape: ResourcesFilters, location_name: "Filters"))
6207
6274
  GetResourcesV2Request.add_member(:sort_criteria, Shapes::ShapeRef.new(shape: SortCriteria, location_name: "SortCriteria"))
6208
6275
  GetResourcesV2Request.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
@@ -7019,6 +7086,9 @@ module Aws::SecurityHub
7019
7086
 
7020
7087
  ResourcesCompositeFilterList.member = Shapes::ShapeRef.new(shape: ResourcesCompositeFilter)
7021
7088
 
7089
+ ResourcesCount.add_member(:all_resources, Shapes::ShapeRef.new(shape: TrendsValueCount, required: true, location_name: "AllResources"))
7090
+ ResourcesCount.struct_class = Types::ResourcesCount
7091
+
7022
7092
  ResourcesDateFilter.add_member(:field_name, Shapes::ShapeRef.new(shape: ResourcesDateField, location_name: "FieldName"))
7023
7093
  ResourcesDateFilter.add_member(:filter, Shapes::ShapeRef.new(shape: DateFilter, location_name: "Filter"))
7024
7094
  ResourcesDateFilter.struct_class = Types::ResourcesDateFilter
@@ -7047,6 +7117,32 @@ module Aws::SecurityHub
7047
7117
 
7048
7118
  ResourcesStringFilterList.member = Shapes::ShapeRef.new(shape: ResourcesStringFilter)
7049
7119
 
7120
+ ResourcesTrendsCompositeFilter.add_member(:string_filters, Shapes::ShapeRef.new(shape: ResourcesTrendsStringFilterList, location_name: "StringFilters"))
7121
+ ResourcesTrendsCompositeFilter.add_member(:nested_composite_filters, Shapes::ShapeRef.new(shape: ResourcesTrendsCompositeFilterList, location_name: "NestedCompositeFilters"))
7122
+ ResourcesTrendsCompositeFilter.add_member(:operator, Shapes::ShapeRef.new(shape: AllowedOperators, location_name: "Operator"))
7123
+ ResourcesTrendsCompositeFilter.struct_class = Types::ResourcesTrendsCompositeFilter
7124
+
7125
+ ResourcesTrendsCompositeFilterList.member = Shapes::ShapeRef.new(shape: ResourcesTrendsCompositeFilter)
7126
+
7127
+ ResourcesTrendsFilters.add_member(:composite_filters, Shapes::ShapeRef.new(shape: ResourcesTrendsCompositeFilterList, location_name: "CompositeFilters"))
7128
+ ResourcesTrendsFilters.add_member(:composite_operator, Shapes::ShapeRef.new(shape: AllowedOperators, location_name: "CompositeOperator"))
7129
+ ResourcesTrendsFilters.struct_class = Types::ResourcesTrendsFilters
7130
+
7131
+ ResourcesTrendsMetrics.member = Shapes::ShapeRef.new(shape: ResourcesTrendsMetricsResult)
7132
+
7133
+ ResourcesTrendsMetricsResult.add_member(:timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "Timestamp"))
7134
+ ResourcesTrendsMetricsResult.add_member(:trends_values, Shapes::ShapeRef.new(shape: ResourcesTrendsValues, required: true, location_name: "TrendsValues"))
7135
+ ResourcesTrendsMetricsResult.struct_class = Types::ResourcesTrendsMetricsResult
7136
+
7137
+ ResourcesTrendsStringFilter.add_member(:field_name, Shapes::ShapeRef.new(shape: ResourcesTrendsStringField, location_name: "FieldName"))
7138
+ ResourcesTrendsStringFilter.add_member(:filter, Shapes::ShapeRef.new(shape: StringFilter, location_name: "Filter"))
7139
+ ResourcesTrendsStringFilter.struct_class = Types::ResourcesTrendsStringFilter
7140
+
7141
+ ResourcesTrendsStringFilterList.member = Shapes::ShapeRef.new(shape: ResourcesTrendsStringFilter)
7142
+
7143
+ ResourcesTrendsValues.add_member(:resources_count, Shapes::ShapeRef.new(shape: ResourcesCount, required: true, location_name: "ResourcesCount"))
7144
+ ResourcesTrendsValues.struct_class = Types::ResourcesTrendsValues
7145
+
7050
7146
  Result.add_member(:account_id, Shapes::ShapeRef.new(shape: AccountId, location_name: "AccountId"))
7051
7147
  Result.add_member(:processing_result, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "ProcessingResult"))
7052
7148
  Result.struct_class = Types::Result
@@ -7266,6 +7362,16 @@ module Aws::SecurityHub
7266
7362
  Severity.add_member(:original, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "Original"))
7267
7363
  Severity.struct_class = Types::Severity
7268
7364
 
7365
+ SeverityTrendsCount.add_member(:unknown, Shapes::ShapeRef.new(shape: TrendsValueCount, required: true, location_name: "Unknown"))
7366
+ SeverityTrendsCount.add_member(:informational, Shapes::ShapeRef.new(shape: TrendsValueCount, required: true, location_name: "Informational"))
7367
+ SeverityTrendsCount.add_member(:low, Shapes::ShapeRef.new(shape: TrendsValueCount, required: true, location_name: "Low"))
7368
+ SeverityTrendsCount.add_member(:medium, Shapes::ShapeRef.new(shape: TrendsValueCount, required: true, location_name: "Medium"))
7369
+ SeverityTrendsCount.add_member(:high, Shapes::ShapeRef.new(shape: TrendsValueCount, required: true, location_name: "High"))
7370
+ SeverityTrendsCount.add_member(:critical, Shapes::ShapeRef.new(shape: TrendsValueCount, required: true, location_name: "Critical"))
7371
+ SeverityTrendsCount.add_member(:fatal, Shapes::ShapeRef.new(shape: TrendsValueCount, required: true, location_name: "Fatal"))
7372
+ SeverityTrendsCount.add_member(:other, Shapes::ShapeRef.new(shape: TrendsValueCount, required: true, location_name: "Other"))
7373
+ SeverityTrendsCount.struct_class = Types::SeverityTrendsCount
7374
+
7269
7375
  SeverityUpdate.add_member(:normalized, Shapes::ShapeRef.new(shape: RatioScale, location_name: "Normalized"))
7270
7376
  SeverityUpdate.add_member(:product, Shapes::ShapeRef.new(shape: Double, location_name: "Product"))
7271
7377
  SeverityUpdate.add_member(:label, Shapes::ShapeRef.new(shape: SeverityLabel, location_name: "Label"))
@@ -7503,6 +7609,15 @@ module Aws::SecurityHub
7503
7609
  ThrottlingException.add_member(:code, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "Code"))
7504
7610
  ThrottlingException.struct_class = Types::ThrottlingException
7505
7611
 
7612
+ TrendsMetrics.member = Shapes::ShapeRef.new(shape: TrendsMetricsResult)
7613
+
7614
+ TrendsMetricsResult.add_member(:timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "Timestamp"))
7615
+ TrendsMetricsResult.add_member(:trends_values, Shapes::ShapeRef.new(shape: TrendsValues, required: true, location_name: "TrendsValues"))
7616
+ TrendsMetricsResult.struct_class = Types::TrendsMetricsResult
7617
+
7618
+ TrendsValues.add_member(:severity_trends, Shapes::ShapeRef.new(shape: SeverityTrendsCount, required: true, location_name: "SeverityTrends"))
7619
+ TrendsValues.struct_class = Types::TrendsValues
7620
+
7506
7621
  TypeList.member = Shapes::ShapeRef.new(shape: NonEmptyString)
7507
7622
 
7508
7623
  UnprocessedAutomationRule.add_member(:rule_arn, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "RuleArn"))
@@ -8657,6 +8772,24 @@ module Aws::SecurityHub
8657
8772
  )
8658
8773
  end)
8659
8774
 
8775
+ api.add_operation(:get_findings_trends_v2, Seahorse::Model::Operation.new.tap do |o|
8776
+ o.name = "GetFindingsTrendsV2"
8777
+ o.http_method = "POST"
8778
+ o.http_request_uri = "/findingsTrendsv2"
8779
+ o.input = Shapes::ShapeRef.new(shape: GetFindingsTrendsV2Request)
8780
+ o.output = Shapes::ShapeRef.new(shape: GetFindingsTrendsV2Response)
8781
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
8782
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
8783
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
8784
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
8785
+ o[:pager] = Aws::Pager.new(
8786
+ limit_key: "max_results",
8787
+ tokens: {
8788
+ "next_token" => "next_token"
8789
+ }
8790
+ )
8791
+ end)
8792
+
8660
8793
  api.add_operation(:get_findings_v2, Seahorse::Model::Operation.new.tap do |o|
8661
8794
  o.name = "GetFindingsV2"
8662
8795
  o.http_method = "POST"
@@ -8761,6 +8894,24 @@ module Aws::SecurityHub
8761
8894
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
8762
8895
  end)
8763
8896
 
8897
+ api.add_operation(:get_resources_trends_v2, Seahorse::Model::Operation.new.tap do |o|
8898
+ o.name = "GetResourcesTrendsV2"
8899
+ o.http_method = "POST"
8900
+ o.http_request_uri = "/resourcesTrendsv2"
8901
+ o.input = Shapes::ShapeRef.new(shape: GetResourcesTrendsV2Request)
8902
+ o.output = Shapes::ShapeRef.new(shape: GetResourcesTrendsV2Response)
8903
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
8904
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
8905
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
8906
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
8907
+ o[:pager] = Aws::Pager.new(
8908
+ limit_key: "max_results",
8909
+ tokens: {
8910
+ "next_token" => "next_token"
8911
+ }
8912
+ )
8913
+ end)
8914
+
8764
8915
  api.add_operation(:get_resources_v2, Seahorse::Model::Operation.new.tap do |o|
8765
8916
  o.name = "GetResourcesV2"
8766
8917
  o.http_method = "POST"
@@ -25025,6 +25025,73 @@ module Aws::SecurityHub
25025
25025
  include Aws::Structure
25026
25026
  end
25027
25027
 
25028
+ # A filter structure that contains a logical combination of string
25029
+ # filters and nested composite filters for findings trend data.
25030
+ #
25031
+ # @!attribute [rw] string_filters
25032
+ # A list of string filters that apply to findings trend data fields.
25033
+ # @return [Array<Types::FindingsTrendsStringFilter>]
25034
+ #
25035
+ # @!attribute [rw] nested_composite_filters
25036
+ # A list of nested composite filters that you can use to create
25037
+ # complex filter conditions for findings trend data.
25038
+ # @return [Array<Types::FindingsTrendsCompositeFilter>]
25039
+ #
25040
+ # @!attribute [rw] operator
25041
+ # The logical operator (AND, OR) to apply between the string filters
25042
+ # and nested composite filters.
25043
+ # @return [String]
25044
+ #
25045
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/FindingsTrendsCompositeFilter AWS API Documentation
25046
+ #
25047
+ class FindingsTrendsCompositeFilter < Struct.new(
25048
+ :string_filters,
25049
+ :nested_composite_filters,
25050
+ :operator)
25051
+ SENSITIVE = []
25052
+ include Aws::Structure
25053
+ end
25054
+
25055
+ # The structure that defines filters to apply to findings trend data
25056
+ # queries.
25057
+ #
25058
+ # @!attribute [rw] composite_filters
25059
+ # A list of composite filters to apply to the findings trend data.
25060
+ # @return [Array<Types::FindingsTrendsCompositeFilter>]
25061
+ #
25062
+ # @!attribute [rw] composite_operator
25063
+ # The logical operator (AND, OR) to apply between multiple composite
25064
+ # filters.
25065
+ # @return [String]
25066
+ #
25067
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/FindingsTrendsFilters AWS API Documentation
25068
+ #
25069
+ class FindingsTrendsFilters < Struct.new(
25070
+ :composite_filters,
25071
+ :composite_operator)
25072
+ SENSITIVE = []
25073
+ include Aws::Structure
25074
+ end
25075
+
25076
+ # A filter for string-based fields in findings trend data.
25077
+ #
25078
+ # @!attribute [rw] field_name
25079
+ # The name of the findings field to filter on.
25080
+ # @return [String]
25081
+ #
25082
+ # @!attribute [rw] filter
25083
+ # A string filter for filtering Security Hub findings.
25084
+ # @return [Types::StringFilter]
25085
+ #
25086
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/FindingsTrendsStringFilter AWS API Documentation
25087
+ #
25088
+ class FindingsTrendsStringFilter < Struct.new(
25089
+ :field_name,
25090
+ :filter)
25091
+ SENSITIVE = []
25092
+ include Aws::Structure
25093
+ end
25094
+
25028
25095
  # Defines the behavior of the firewall.
25029
25096
  #
25030
25097
  # @!attribute [rw] stateful_rule_group_references
@@ -25777,6 +25844,66 @@ module Aws::SecurityHub
25777
25844
  include Aws::Structure
25778
25845
  end
25779
25846
 
25847
+ # @!attribute [rw] filters
25848
+ # The filters to apply to the findings trend data.
25849
+ # @return [Types::FindingsTrendsFilters]
25850
+ #
25851
+ # @!attribute [rw] start_time
25852
+ # The starting timestamp for the time period to analyze findings
25853
+ # trends, in ISO 8601 format.
25854
+ # @return [Time]
25855
+ #
25856
+ # @!attribute [rw] end_time
25857
+ # The ending timestamp for the time period to analyze findings trends,
25858
+ # in ISO 8601 format.
25859
+ # @return [Time]
25860
+ #
25861
+ # @!attribute [rw] next_token
25862
+ # The token to use for paginating results. This value is returned in
25863
+ # the response if more results are available.
25864
+ # @return [String]
25865
+ #
25866
+ # @!attribute [rw] max_results
25867
+ # The maximum number of trend data points to return in a single
25868
+ # response.
25869
+ # @return [Integer]
25870
+ #
25871
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetFindingsTrendsV2Request AWS API Documentation
25872
+ #
25873
+ class GetFindingsTrendsV2Request < Struct.new(
25874
+ :filters,
25875
+ :start_time,
25876
+ :end_time,
25877
+ :next_token,
25878
+ :max_results)
25879
+ SENSITIVE = []
25880
+ include Aws::Structure
25881
+ end
25882
+
25883
+ # @!attribute [rw] granularity
25884
+ # The time interval granularity for the returned trend data.
25885
+ # @return [String]
25886
+ #
25887
+ # @!attribute [rw] trends_metrics
25888
+ # The collection of time-series trend metrics, including counts of
25889
+ # findings by severity across the specified time period.
25890
+ # @return [Array<Types::TrendsMetricsResult>]
25891
+ #
25892
+ # @!attribute [rw] next_token
25893
+ # The token to use for retrieving the next page of results, if more
25894
+ # trend data is available.
25895
+ # @return [String]
25896
+ #
25897
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetFindingsTrendsV2Response AWS API Documentation
25898
+ #
25899
+ class GetFindingsTrendsV2Response < Struct.new(
25900
+ :granularity,
25901
+ :trends_metrics,
25902
+ :next_token)
25903
+ SENSITIVE = []
25904
+ include Aws::Structure
25905
+ end
25906
+
25780
25907
  # @!attribute [rw] filters
25781
25908
  # The finding attributes used to define a condition to filter the
25782
25909
  # returned OCSF findings. You can filter up to 10 composite filters.
@@ -26004,6 +26131,67 @@ module Aws::SecurityHub
26004
26131
  include Aws::Structure
26005
26132
  end
26006
26133
 
26134
+ # @!attribute [rw] filters
26135
+ # The filters to apply to the resources trend data.
26136
+ # @return [Types::ResourcesTrendsFilters]
26137
+ #
26138
+ # @!attribute [rw] start_time
26139
+ # The starting timestamp for the time period to analyze resources
26140
+ # trends, in ISO 8601 format.
26141
+ # @return [Time]
26142
+ #
26143
+ # @!attribute [rw] end_time
26144
+ # The ending timestamp for the time period to analyze resources
26145
+ # trends, in ISO 8601 format.
26146
+ # @return [Time]
26147
+ #
26148
+ # @!attribute [rw] next_token
26149
+ # The token to use for paginating results. This value is returned in
26150
+ # the response if more results are available.
26151
+ # @return [String]
26152
+ #
26153
+ # @!attribute [rw] max_results
26154
+ # The maximum number of trend data points to return in a single
26155
+ # response.
26156
+ # @return [Integer]
26157
+ #
26158
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetResourcesTrendsV2Request AWS API Documentation
26159
+ #
26160
+ class GetResourcesTrendsV2Request < Struct.new(
26161
+ :filters,
26162
+ :start_time,
26163
+ :end_time,
26164
+ :next_token,
26165
+ :max_results)
26166
+ SENSITIVE = []
26167
+ include Aws::Structure
26168
+ end
26169
+
26170
+ # @!attribute [rw] granularity
26171
+ # The time interval granularity for the returned trend data (such as
26172
+ # DAILY or WEEKLY).
26173
+ # @return [String]
26174
+ #
26175
+ # @!attribute [rw] trends_metrics
26176
+ # The collection of time-series trend metrics, including counts of
26177
+ # resources across the specified time period.
26178
+ # @return [Array<Types::ResourcesTrendsMetricsResult>]
26179
+ #
26180
+ # @!attribute [rw] next_token
26181
+ # The token to use for retrieving the next page of results, if more
26182
+ # trend data is available.
26183
+ # @return [String]
26184
+ #
26185
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetResourcesTrendsV2Response AWS API Documentation
26186
+ #
26187
+ class GetResourcesTrendsV2Response < Struct.new(
26188
+ :granularity,
26189
+ :trends_metrics,
26190
+ :next_token)
26191
+ SENSITIVE = []
26192
+ include Aws::Structure
26193
+ end
26194
+
26007
26195
  # @!attribute [rw] filters
26008
26196
  # Filters resources based on a set of criteria.
26009
26197
  # @return [Types::ResourcesFilters]
@@ -29976,6 +30164,20 @@ module Aws::SecurityHub
29976
30164
  include Aws::Structure
29977
30165
  end
29978
30166
 
30167
+ # Contains counts of resources for trend analysis.
30168
+ #
30169
+ # @!attribute [rw] all_resources
30170
+ # The total count of all resources for the given time interval.
30171
+ # @return [Integer]
30172
+ #
30173
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ResourcesCount AWS API Documentation
30174
+ #
30175
+ class ResourcesCount < Struct.new(
30176
+ :all_resources)
30177
+ SENSITIVE = []
30178
+ include Aws::Structure
30179
+ end
30180
+
29979
30181
  # Enables the filtering of Amazon Web Services resources based on date
29980
30182
  # and timestamp attributes.
29981
30183
  #
@@ -30079,6 +30281,112 @@ module Aws::SecurityHub
30079
30281
  include Aws::Structure
30080
30282
  end
30081
30283
 
30284
+ # A filter structure that contains a logical combination of string
30285
+ # filters and nested composite filters for resources trend data.
30286
+ #
30287
+ # @!attribute [rw] string_filters
30288
+ # A list of string filters that apply to resources trend data fields.
30289
+ # @return [Array<Types::ResourcesTrendsStringFilter>]
30290
+ #
30291
+ # @!attribute [rw] nested_composite_filters
30292
+ # A list of nested composite filters that you can use to create
30293
+ # complex filter conditions for resources trend data.
30294
+ # @return [Array<Types::ResourcesTrendsCompositeFilter>]
30295
+ #
30296
+ # @!attribute [rw] operator
30297
+ # The logical operator (AND, OR) to apply between the string filters
30298
+ # and nested composite filters.
30299
+ # @return [String]
30300
+ #
30301
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ResourcesTrendsCompositeFilter AWS API Documentation
30302
+ #
30303
+ class ResourcesTrendsCompositeFilter < Struct.new(
30304
+ :string_filters,
30305
+ :nested_composite_filters,
30306
+ :operator)
30307
+ SENSITIVE = []
30308
+ include Aws::Structure
30309
+ end
30310
+
30311
+ # The structure that defines filters to apply to resources trend data
30312
+ # queries.
30313
+ #
30314
+ # @!attribute [rw] composite_filters
30315
+ # A list of composite filters to apply to the resources trend data.
30316
+ # @return [Array<Types::ResourcesTrendsCompositeFilter>]
30317
+ #
30318
+ # @!attribute [rw] composite_operator
30319
+ # The logical operator (AND, OR) to apply between multiple composite
30320
+ # filters.
30321
+ # @return [String]
30322
+ #
30323
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ResourcesTrendsFilters AWS API Documentation
30324
+ #
30325
+ class ResourcesTrendsFilters < Struct.new(
30326
+ :composite_filters,
30327
+ :composite_operator)
30328
+ SENSITIVE = []
30329
+ include Aws::Structure
30330
+ end
30331
+
30332
+ # Contains the resource trend metrics data for a specific time point in
30333
+ # the requested time period.
30334
+ #
30335
+ # @!attribute [rw] timestamp
30336
+ # The timestamp for this data point in the resources trend metrics.
30337
+ # @return [Time]
30338
+ #
30339
+ # @!attribute [rw] trends_values
30340
+ # The resource trend metric values associated with this timestamp,
30341
+ # including resource counts.
30342
+ # @return [Types::ResourcesTrendsValues]
30343
+ #
30344
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ResourcesTrendsMetricsResult AWS API Documentation
30345
+ #
30346
+ class ResourcesTrendsMetricsResult < Struct.new(
30347
+ :timestamp,
30348
+ :trends_values)
30349
+ SENSITIVE = []
30350
+ include Aws::Structure
30351
+ end
30352
+
30353
+ # A filter for string-based fields in resources trend data, such as
30354
+ # resource type or account ID.
30355
+ #
30356
+ # @!attribute [rw] field_name
30357
+ # The name of the resources field to filter on, such as resourceType,
30358
+ # accountId, or region.
30359
+ # @return [String]
30360
+ #
30361
+ # @!attribute [rw] filter
30362
+ # A string filter for filtering Security Hub findings.
30363
+ # @return [Types::StringFilter]
30364
+ #
30365
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ResourcesTrendsStringFilter AWS API Documentation
30366
+ #
30367
+ class ResourcesTrendsStringFilter < Struct.new(
30368
+ :field_name,
30369
+ :filter)
30370
+ SENSITIVE = []
30371
+ include Aws::Structure
30372
+ end
30373
+
30374
+ # Contains the aggregated resource count values for a specific point in
30375
+ # the resources trend timeline.
30376
+ #
30377
+ # @!attribute [rw] resources_count
30378
+ # The resource count statistics for this data point in the trend
30379
+ # timeline.
30380
+ # @return [Types::ResourcesCount]
30381
+ #
30382
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ResourcesTrendsValues AWS API Documentation
30383
+ #
30384
+ class ResourcesTrendsValues < Struct.new(
30385
+ :resources_count)
30386
+ SENSITIVE = []
30387
+ include Aws::Structure
30388
+ end
30389
+
30082
30390
  # Details about the account that was not processed.
30083
30391
  #
30084
30392
  # @!attribute [rw] account_id
@@ -31141,6 +31449,64 @@ module Aws::SecurityHub
31141
31449
  include Aws::Structure
31142
31450
  end
31143
31451
 
31452
+ # Contains counts of findings grouped by severity level for trend
31453
+ # analysis.
31454
+ #
31455
+ # @!attribute [rw] unknown
31456
+ # The count of findings with Unknown severity level at this point in
31457
+ # the trend timeline.
31458
+ # @return [Integer]
31459
+ #
31460
+ # @!attribute [rw] informational
31461
+ # The count of findings with Informational severity level at this
31462
+ # point in the trend timeline.
31463
+ # @return [Integer]
31464
+ #
31465
+ # @!attribute [rw] low
31466
+ # The count of findings with Low severity level at this point in the
31467
+ # trend timeline.
31468
+ # @return [Integer]
31469
+ #
31470
+ # @!attribute [rw] medium
31471
+ # The count of findings with Medium severity level at this point in
31472
+ # the trend timeline.
31473
+ # @return [Integer]
31474
+ #
31475
+ # @!attribute [rw] high
31476
+ # The count of findings with High severity level at this point in the
31477
+ # trend timeline.
31478
+ # @return [Integer]
31479
+ #
31480
+ # @!attribute [rw] critical
31481
+ # The count of findings with Critical severity level at this point in
31482
+ # the trend timeline.
31483
+ # @return [Integer]
31484
+ #
31485
+ # @!attribute [rw] fatal
31486
+ # The count of findings with Fatal severity level at this point in the
31487
+ # trend timeline.
31488
+ # @return [Integer]
31489
+ #
31490
+ # @!attribute [rw] other
31491
+ # The count of findings with severity levels not fitting into the
31492
+ # standard categories at this point in the trend timeline.
31493
+ # @return [Integer]
31494
+ #
31495
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/SeverityTrendsCount AWS API Documentation
31496
+ #
31497
+ class SeverityTrendsCount < Struct.new(
31498
+ :unknown,
31499
+ :informational,
31500
+ :low,
31501
+ :medium,
31502
+ :high,
31503
+ :critical,
31504
+ :fatal,
31505
+ :other)
31506
+ SENSITIVE = []
31507
+ include Aws::Structure
31508
+ end
31509
+
31144
31510
  # Updates to the severity information for a finding.
31145
31511
  #
31146
31512
  # @!attribute [rw] normalized
@@ -32346,6 +32712,43 @@ module Aws::SecurityHub
32346
32712
  include Aws::Structure
32347
32713
  end
32348
32714
 
32715
+ # Contains the findings trend metrics data for a specific time point in
32716
+ # the requested time period.
32717
+ #
32718
+ # @!attribute [rw] timestamp
32719
+ # The timestamp for this data point in the findings trend metrics.
32720
+ # @return [Time]
32721
+ #
32722
+ # @!attribute [rw] trends_values
32723
+ # The finding trend metric values associated with this timestamp,
32724
+ # including severity counts.
32725
+ # @return [Types::TrendsValues]
32726
+ #
32727
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/TrendsMetricsResult AWS API Documentation
32728
+ #
32729
+ class TrendsMetricsResult < Struct.new(
32730
+ :timestamp,
32731
+ :trends_values)
32732
+ SENSITIVE = []
32733
+ include Aws::Structure
32734
+ end
32735
+
32736
+ # Contains the aggregated finding values for a specific point in the
32737
+ # findings trend timeline.
32738
+ #
32739
+ # @!attribute [rw] severity_trends
32740
+ # The count of findings organized by severity level for this data
32741
+ # point in the trend timeline.
32742
+ # @return [Types::SeverityTrendsCount]
32743
+ #
32744
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/TrendsValues AWS API Documentation
32745
+ #
32746
+ class TrendsValues < Struct.new(
32747
+ :severity_trends)
32748
+ SENSITIVE = []
32749
+ include Aws::Structure
32750
+ end
32751
+
32349
32752
  # A list of objects containing `RuleArn`, `ErrorCode`, and
32350
32753
  # `ErrorMessage`. This parameter tells you which automation rules the
32351
32754
  # request didn't process and why.
@@ -54,7 +54,7 @@ module Aws::SecurityHub
54
54
  autoload :EndpointProvider, 'aws-sdk-securityhub/endpoint_provider'
55
55
  autoload :Endpoints, 'aws-sdk-securityhub/endpoints'
56
56
 
57
- GEM_VERSION = '1.145.0'
57
+ GEM_VERSION = '1.146.0'
58
58
 
59
59
  end
60
60
 
data/sig/client.rbs CHANGED
@@ -7353,6 +7353,39 @@ module Aws
7353
7353
  ) -> _GetFindingsResponseSuccess
7354
7354
  | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetFindingsResponseSuccess
7355
7355
 
7356
+ interface _GetFindingsTrendsV2ResponseSuccess
7357
+ include ::Seahorse::Client::_ResponseSuccess[Types::GetFindingsTrendsV2Response]
7358
+ def granularity: () -> ("Daily" | "Weekly" | "Monthly")
7359
+ def trends_metrics: () -> ::Array[Types::TrendsMetricsResult]
7360
+ def next_token: () -> ::String
7361
+ end
7362
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecurityHub/Client.html#get_findings_trends_v2-instance_method
7363
+ def get_findings_trends_v2: (
7364
+ ?filters: {
7365
+ composite_filters: Array[
7366
+ {
7367
+ string_filters: Array[
7368
+ {
7369
+ field_name: ("account_id" | "region" | "finding_types" | "finding_status" | "finding_cve_ids" | "finding_compliance_status" | "finding_control_id" | "finding_class_name" | "finding_provider" | "finding_activity_name")?,
7370
+ filter: {
7371
+ value: ::String?,
7372
+ comparison: ("EQUALS" | "PREFIX" | "NOT_EQUALS" | "PREFIX_NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "CONTAINS_WORD")?
7373
+ }?
7374
+ },
7375
+ ]?,
7376
+ nested_composite_filters: untyped?,
7377
+ operator: ("AND" | "OR")?
7378
+ },
7379
+ ]?,
7380
+ composite_operator: ("AND" | "OR")?
7381
+ },
7382
+ start_time: ::Time,
7383
+ end_time: ::Time,
7384
+ ?next_token: ::String,
7385
+ ?max_results: ::Integer
7386
+ ) -> _GetFindingsTrendsV2ResponseSuccess
7387
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetFindingsTrendsV2ResponseSuccess
7388
+
7356
7389
  interface _GetFindingsV2ResponseSuccess
7357
7390
  include ::Seahorse::Client::_ResponseSuccess[Types::GetFindingsV2Response]
7358
7391
  def findings: () -> ::Array[untyped]
@@ -7561,6 +7594,39 @@ module Aws
7561
7594
  ) -> _GetResourcesStatisticsV2ResponseSuccess
7562
7595
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetResourcesStatisticsV2ResponseSuccess
7563
7596
 
7597
+ interface _GetResourcesTrendsV2ResponseSuccess
7598
+ include ::Seahorse::Client::_ResponseSuccess[Types::GetResourcesTrendsV2Response]
7599
+ def granularity: () -> ("Daily" | "Weekly" | "Monthly")
7600
+ def trends_metrics: () -> ::Array[Types::ResourcesTrendsMetricsResult]
7601
+ def next_token: () -> ::String
7602
+ end
7603
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecurityHub/Client.html#get_resources_trends_v2-instance_method
7604
+ def get_resources_trends_v2: (
7605
+ ?filters: {
7606
+ composite_filters: Array[
7607
+ {
7608
+ string_filters: Array[
7609
+ {
7610
+ field_name: ("account_id" | "region" | "resource_type" | "resource_category")?,
7611
+ filter: {
7612
+ value: ::String?,
7613
+ comparison: ("EQUALS" | "PREFIX" | "NOT_EQUALS" | "PREFIX_NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "CONTAINS_WORD")?
7614
+ }?
7615
+ },
7616
+ ]?,
7617
+ nested_composite_filters: untyped?,
7618
+ operator: ("AND" | "OR")?
7619
+ },
7620
+ ]?,
7621
+ composite_operator: ("AND" | "OR")?
7622
+ },
7623
+ start_time: ::Time,
7624
+ end_time: ::Time,
7625
+ ?next_token: ::String,
7626
+ ?max_results: ::Integer
7627
+ ) -> _GetResourcesTrendsV2ResponseSuccess
7628
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetResourcesTrendsV2ResponseSuccess
7629
+
7564
7630
  interface _GetResourcesV2ResponseSuccess
7565
7631
  include ::Seahorse::Client::_ResponseSuccess[Types::GetResourcesV2Response]
7566
7632
  def resources: () -> ::Array[Types::ResourceResult]
data/sig/types.rbs CHANGED
@@ -5606,6 +5606,25 @@ module Aws::SecurityHub
5606
5606
  SENSITIVE: []
5607
5607
  end
5608
5608
 
5609
+ class FindingsTrendsCompositeFilter
5610
+ attr_accessor string_filters: ::Array[Types::FindingsTrendsStringFilter]
5611
+ attr_accessor nested_composite_filters: ::Array[Types::FindingsTrendsCompositeFilter]
5612
+ attr_accessor operator: ("AND" | "OR")
5613
+ SENSITIVE: []
5614
+ end
5615
+
5616
+ class FindingsTrendsFilters
5617
+ attr_accessor composite_filters: ::Array[Types::FindingsTrendsCompositeFilter]
5618
+ attr_accessor composite_operator: ("AND" | "OR")
5619
+ SENSITIVE: []
5620
+ end
5621
+
5622
+ class FindingsTrendsStringFilter
5623
+ attr_accessor field_name: ("account_id" | "region" | "finding_types" | "finding_status" | "finding_cve_ids" | "finding_compliance_status" | "finding_control_id" | "finding_class_name" | "finding_provider" | "finding_activity_name")
5624
+ attr_accessor filter: Types::StringFilter
5625
+ SENSITIVE: []
5626
+ end
5627
+
5609
5628
  class FirewallPolicyDetails
5610
5629
  attr_accessor stateful_rule_group_references: ::Array[Types::FirewallPolicyStatefulRuleGroupReferencesDetails]
5611
5630
  attr_accessor stateless_custom_actions: ::Array[Types::FirewallPolicyStatelessCustomActionsDetails]
@@ -5802,6 +5821,22 @@ module Aws::SecurityHub
5802
5821
  SENSITIVE: []
5803
5822
  end
5804
5823
 
5824
+ class GetFindingsTrendsV2Request
5825
+ attr_accessor filters: Types::FindingsTrendsFilters
5826
+ attr_accessor start_time: ::Time
5827
+ attr_accessor end_time: ::Time
5828
+ attr_accessor next_token: ::String
5829
+ attr_accessor max_results: ::Integer
5830
+ SENSITIVE: []
5831
+ end
5832
+
5833
+ class GetFindingsTrendsV2Response
5834
+ attr_accessor granularity: ("Daily" | "Weekly" | "Monthly")
5835
+ attr_accessor trends_metrics: ::Array[Types::TrendsMetricsResult]
5836
+ attr_accessor next_token: ::String
5837
+ SENSITIVE: []
5838
+ end
5839
+
5805
5840
  class GetFindingsV2Request
5806
5841
  attr_accessor filters: Types::OcsfFindingFilters
5807
5842
  attr_accessor sort_criteria: ::Array[Types::SortCriterion]
@@ -5878,6 +5913,22 @@ module Aws::SecurityHub
5878
5913
  SENSITIVE: []
5879
5914
  end
5880
5915
 
5916
+ class GetResourcesTrendsV2Request
5917
+ attr_accessor filters: Types::ResourcesTrendsFilters
5918
+ attr_accessor start_time: ::Time
5919
+ attr_accessor end_time: ::Time
5920
+ attr_accessor next_token: ::String
5921
+ attr_accessor max_results: ::Integer
5922
+ SENSITIVE: []
5923
+ end
5924
+
5925
+ class GetResourcesTrendsV2Response
5926
+ attr_accessor granularity: ("Daily" | "Weekly" | "Monthly")
5927
+ attr_accessor trends_metrics: ::Array[Types::ResourcesTrendsMetricsResult]
5928
+ attr_accessor next_token: ::String
5929
+ SENSITIVE: []
5930
+ end
5931
+
5881
5932
  class GetResourcesV2Request
5882
5933
  attr_accessor filters: Types::ResourcesFilters
5883
5934
  attr_accessor sort_criteria: ::Array[Types::SortCriterion]
@@ -6856,6 +6907,11 @@ module Aws::SecurityHub
6856
6907
  SENSITIVE: []
6857
6908
  end
6858
6909
 
6910
+ class ResourcesCount
6911
+ attr_accessor all_resources: ::Integer
6912
+ SENSITIVE: []
6913
+ end
6914
+
6859
6915
  class ResourcesDateFilter
6860
6916
  attr_accessor field_name: ("ResourceDetailCaptureTime" | "ResourceCreationTime")
6861
6917
  attr_accessor filter: Types::DateFilter
@@ -6886,6 +6942,36 @@ module Aws::SecurityHub
6886
6942
  SENSITIVE: []
6887
6943
  end
6888
6944
 
6945
+ class ResourcesTrendsCompositeFilter
6946
+ attr_accessor string_filters: ::Array[Types::ResourcesTrendsStringFilter]
6947
+ attr_accessor nested_composite_filters: ::Array[Types::ResourcesTrendsCompositeFilter]
6948
+ attr_accessor operator: ("AND" | "OR")
6949
+ SENSITIVE: []
6950
+ end
6951
+
6952
+ class ResourcesTrendsFilters
6953
+ attr_accessor composite_filters: ::Array[Types::ResourcesTrendsCompositeFilter]
6954
+ attr_accessor composite_operator: ("AND" | "OR")
6955
+ SENSITIVE: []
6956
+ end
6957
+
6958
+ class ResourcesTrendsMetricsResult
6959
+ attr_accessor timestamp: ::Time
6960
+ attr_accessor trends_values: Types::ResourcesTrendsValues
6961
+ SENSITIVE: []
6962
+ end
6963
+
6964
+ class ResourcesTrendsStringFilter
6965
+ attr_accessor field_name: ("account_id" | "region" | "resource_type" | "resource_category")
6966
+ attr_accessor filter: Types::StringFilter
6967
+ SENSITIVE: []
6968
+ end
6969
+
6970
+ class ResourcesTrendsValues
6971
+ attr_accessor resources_count: Types::ResourcesCount
6972
+ SENSITIVE: []
6973
+ end
6974
+
6889
6975
  class Result
6890
6976
  attr_accessor account_id: ::String
6891
6977
  attr_accessor processing_result: ::String
@@ -7131,6 +7217,18 @@ module Aws::SecurityHub
7131
7217
  SENSITIVE: []
7132
7218
  end
7133
7219
 
7220
+ class SeverityTrendsCount
7221
+ attr_accessor unknown: ::Integer
7222
+ attr_accessor informational: ::Integer
7223
+ attr_accessor low: ::Integer
7224
+ attr_accessor medium: ::Integer
7225
+ attr_accessor high: ::Integer
7226
+ attr_accessor critical: ::Integer
7227
+ attr_accessor fatal: ::Integer
7228
+ attr_accessor other: ::Integer
7229
+ SENSITIVE: []
7230
+ end
7231
+
7134
7232
  class SeverityUpdate
7135
7233
  attr_accessor normalized: ::Integer
7136
7234
  attr_accessor product: ::Float
@@ -7387,6 +7485,17 @@ module Aws::SecurityHub
7387
7485
  SENSITIVE: []
7388
7486
  end
7389
7487
 
7488
+ class TrendsMetricsResult
7489
+ attr_accessor timestamp: ::Time
7490
+ attr_accessor trends_values: Types::TrendsValues
7491
+ SENSITIVE: []
7492
+ end
7493
+
7494
+ class TrendsValues
7495
+ attr_accessor severity_trends: Types::SeverityTrendsCount
7496
+ SENSITIVE: []
7497
+ end
7498
+
7390
7499
  class UnprocessedAutomationRule
7391
7500
  attr_accessor rule_arn: ::String
7392
7501
  attr_accessor error_code: ::Integer
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-securityhub
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.145.0
4
+ version: 1.146.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services