aws-sdk-securityhub 1.165.0 → 1.167.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.
@@ -2356,6 +2356,66 @@ module Aws::SecurityHub
2356
2356
  req.send_request(options)
2357
2357
  end
2358
2358
 
2359
+ # Cancels a findings export job that is in progress. Security Hub
2360
+ # transitions a running job to the `CANCELLED` state and returns the
2361
+ # `ExportJobId` and its new `Status`. Canceling a job that is already in
2362
+ # the `CANCELLED` state succeeds and returns the same result, so you can
2363
+ # safely retry a cancel request.
2364
+ #
2365
+ # You can't cancel an export job that has already reached a terminal
2366
+ # `SUCCEEDED` or `FAILED` state; in that case, this operation returns a
2367
+ # `ConflictException`. If no export job matches the `ExportJobId` that
2368
+ # you provide, this operation returns a `ResourceNotFoundException`.
2369
+ #
2370
+ # The `Status` value returned by this operation reflects the
2371
+ # cancellation immediately, even though the job can take a short time to
2372
+ # stop completely.
2373
+ #
2374
+ # @option params [required, String] :export_job_id
2375
+ # The unique identifier of the export job to cancel. This is the value
2376
+ # returned by `StartExportJobV2`.
2377
+ #
2378
+ # @return [Types::CancelExportJobV2Response] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2379
+ #
2380
+ # * {Types::CancelExportJobV2Response#export_job_id #export_job_id} => String
2381
+ # * {Types::CancelExportJobV2Response#status #status} => String
2382
+ #
2383
+ #
2384
+ # @example Example: Example – Canceling a running export job
2385
+ #
2386
+ # # The following example cancels an export job that is in progress. Security Hub transitions the job to the CANCELLED state
2387
+ # # and returns its new status.
2388
+ #
2389
+ # resp = client.cancel_export_job_v2({
2390
+ # export_job_id: "a1b2c3d4e5f6",
2391
+ # })
2392
+ #
2393
+ # resp.to_h outputs the following:
2394
+ # {
2395
+ # export_job_id: "a1b2c3d4e5f6",
2396
+ # status: "CANCELLED",
2397
+ # }
2398
+ #
2399
+ # @example Request syntax with placeholder values
2400
+ #
2401
+ # resp = client.cancel_export_job_v2({
2402
+ # export_job_id: "ExportJobId", # required
2403
+ # })
2404
+ #
2405
+ # @example Response structure
2406
+ #
2407
+ # resp.export_job_id #=> String
2408
+ # resp.status #=> String, one of "RUNNING", "SUCCEEDED", "FAILED", "CANCELLED"
2409
+ #
2410
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/CancelExportJobV2 AWS API Documentation
2411
+ #
2412
+ # @overload cancel_export_job_v2(params = {})
2413
+ # @param [Hash] params ({})
2414
+ def cancel_export_job_v2(params = {}, options = {})
2415
+ req = build_request(:cancel_export_job_v2, params)
2416
+ req.send_request(options)
2417
+ end
2418
+
2359
2419
  # Creates a custom action target in Security Hub CSPM.
2360
2420
  #
2361
2421
  # You can use custom actions on findings and insights in Security Hub
@@ -6703,6 +6763,227 @@ module Aws::SecurityHub
6703
6763
  req.send_request(options)
6704
6764
  end
6705
6765
 
6766
+ # Returns the details of a single findings export job, including its
6767
+ # current `Status`, the `Destination` it writes to, the
6768
+ # `OutputConfiguration` it was started with, and its `StartedAt` and
6769
+ # `EndedAt` timestamps. Use this operation to poll an export job that
6770
+ # you started with `StartExportJobV2` until it reaches a terminal state
6771
+ # (`SUCCEEDED`, `FAILED`, or `CANCELLED`).
6772
+ #
6773
+ # If the job failed, the response includes a `FailureCode` and
6774
+ # `FailureMessage` that describe the reason. Input values such as
6775
+ # `Scopes` and `Filters` are echoed back as they were submitted, with
6776
+ # relative date ranges returned unresolved. If no export job matches the
6777
+ # `ExportJobId` that you provide, this operation returns a
6778
+ # `ResourceNotFoundException`.
6779
+ #
6780
+ # @option params [required, String] :export_job_id
6781
+ # The unique identifier of the export job to retrieve. This is the value
6782
+ # returned by `StartExportJobV2`.
6783
+ #
6784
+ # @return [Types::GetExportJobV2Response] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6785
+ #
6786
+ # * {Types::GetExportJobV2Response#export_job_id #export_job_id} => String
6787
+ # * {Types::GetExportJobV2Response#name #name} => String
6788
+ # * {Types::GetExportJobV2Response#status #status} => String
6789
+ # * {Types::GetExportJobV2Response#data_type #data_type} => String
6790
+ # * {Types::GetExportJobV2Response#output_configuration #output_configuration} => Types::ExportOutput
6791
+ # * {Types::GetExportJobV2Response#scopes #scopes} => Types::ExportScopes
6792
+ # * {Types::GetExportJobV2Response#destination #destination} => Types::ExportDestination
6793
+ # * {Types::GetExportJobV2Response#failure_code #failure_code} => String
6794
+ # * {Types::GetExportJobV2Response#failure_message #failure_message} => String
6795
+ # * {Types::GetExportJobV2Response#started_at #started_at} => Time
6796
+ # * {Types::GetExportJobV2Response#ended_at #ended_at} => Time
6797
+ #
6798
+ #
6799
+ # @example Example: Example – Getting the details of a completed export job
6800
+ #
6801
+ # # The following example retrieves an export job that has finished successfully. The output is available in the destination
6802
+ # # bucket.
6803
+ #
6804
+ # resp = client.get_export_job_v2({
6805
+ # export_job_id: "a1b2c3d4e5f6",
6806
+ # })
6807
+ #
6808
+ # resp.to_h outputs the following:
6809
+ # {
6810
+ # data_type: "FINDINGS",
6811
+ # destination: {
6812
+ # s3: {
6813
+ # bucket_arn: "arn:aws:s3:::amzn-s3-demo-bucket",
6814
+ # kms_key_arn: "arn:aws:kms:aa-example-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
6815
+ # object_prefix: "security-hub-exports/2026-Q1",
6816
+ # },
6817
+ # },
6818
+ # ended_at: Time.parse("2026-03-27T18:09:52Z"),
6819
+ # export_job_id: "a1b2c3d4e5f6",
6820
+ # name: "quarterly-critical-findings",
6821
+ # output_configuration: {
6822
+ # findings: {
6823
+ # filters: {
6824
+ # composite_filters: [
6825
+ # {
6826
+ # operator: "AND",
6827
+ # string_filters: [
6828
+ # {
6829
+ # field_name: "severity",
6830
+ # filter: {
6831
+ # comparison: "EQUALS",
6832
+ # value: "Critical",
6833
+ # },
6834
+ # },
6835
+ # {
6836
+ # field_name: "status",
6837
+ # filter: {
6838
+ # comparison: "EQUALS",
6839
+ # value: "New",
6840
+ # },
6841
+ # },
6842
+ # ],
6843
+ # },
6844
+ # ],
6845
+ # composite_operator: "AND",
6846
+ # },
6847
+ # format: "CSV",
6848
+ # selected_fields: [
6849
+ # "finding_info.title",
6850
+ # "severity",
6851
+ # "status",
6852
+ # "cloud.account.uid",
6853
+ # "resources.uid",
6854
+ # ],
6855
+ # },
6856
+ # },
6857
+ # started_at: Time.parse("2026-03-27T18:04:11Z"),
6858
+ # status: "SUCCEEDED",
6859
+ # }
6860
+ #
6861
+ # @example Example: Example – Getting the details of a failed export job
6862
+ #
6863
+ # # The following example retrieves an export job that failed because Security Hub couldn't write to the destination. The
6864
+ # # FailureCode and FailureMessage explain the cause.
6865
+ #
6866
+ # resp = client.get_export_job_v2({
6867
+ # export_job_id: "f6e5d4c3b2a1",
6868
+ # })
6869
+ #
6870
+ # resp.to_h outputs the following:
6871
+ # {
6872
+ # data_type: "FINDINGS",
6873
+ # destination: {
6874
+ # s3: {
6875
+ # bucket_arn: "arn:aws:s3:::amzn-s3-demo-bucket",
6876
+ # kms_key_arn: "arn:aws:kms:aa-example-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
6877
+ # },
6878
+ # },
6879
+ # ended_at: Time.parse("2026-03-27T18:05:03Z"),
6880
+ # export_job_id: "f6e5d4c3b2a1",
6881
+ # failure_code: "ACCESS_DENIED",
6882
+ # failure_message: "Security Hub could not write to the destination bucket. Verify the bucket policy and KMS key policy.",
6883
+ # output_configuration: {
6884
+ # findings: {
6885
+ # filters: {
6886
+ # composite_filters: [
6887
+ # {
6888
+ # date_filters: [
6889
+ # {
6890
+ # field_name: "finding_info.last_seen_time_dt",
6891
+ # filter: {
6892
+ # date_range: {
6893
+ # comparison: "WITHIN",
6894
+ # unit: "DAYS",
6895
+ # value: 30,
6896
+ # },
6897
+ # },
6898
+ # },
6899
+ # ],
6900
+ # operator: "AND",
6901
+ # },
6902
+ # ],
6903
+ # composite_operator: "AND",
6904
+ # },
6905
+ # format: "OCSF_JSON",
6906
+ # },
6907
+ # },
6908
+ # scopes: {
6909
+ # aws_organizations: [
6910
+ # {
6911
+ # organizational_unit_id: "ou-1234-a1b2c3d4",
6912
+ # },
6913
+ # ],
6914
+ # },
6915
+ # started_at: Time.parse("2026-03-27T18:04:11Z"),
6916
+ # status: "FAILED",
6917
+ # }
6918
+ #
6919
+ # @example Request syntax with placeholder values
6920
+ #
6921
+ # resp = client.get_export_job_v2({
6922
+ # export_job_id: "ExportJobId", # required
6923
+ # })
6924
+ #
6925
+ # @example Response structure
6926
+ #
6927
+ # resp.export_job_id #=> String
6928
+ # resp.name #=> String
6929
+ # resp.status #=> String, one of "RUNNING", "SUCCEEDED", "FAILED", "CANCELLED"
6930
+ # resp.data_type #=> String, one of "FINDINGS"
6931
+ # resp.output_configuration.findings.format #=> String, one of "CSV", "OCSF_JSON"
6932
+ # resp.output_configuration.findings.filters.composite_filters #=> Array
6933
+ # resp.output_configuration.findings.filters.composite_filters[0].string_filters #=> Array
6934
+ # resp.output_configuration.findings.filters.composite_filters[0].string_filters[0].field_name #=> String, one of "metadata.uid", "activity_name", "cloud.account.uid", "cloud.provider", "cloud.region", "compliance.assessments.category", "compliance.assessments.name", "compliance.control", "compliance.status", "compliance.standards", "finding_info.desc", "finding_info.src_url", "finding_info.title", "finding_info.types", "finding_info.uid", "finding_info.related_events.traits.category", "finding_info.related_events.uid", "finding_info.related_events.product.uid", "finding_info.related_events.title", "metadata.product.name", "metadata.product.uid", "metadata.product.vendor_name", "remediation.desc", "remediation.references", "resources.cloud_partition", "resources.name", "resources.owner.account.uid", "resources.owner.org.uid", "resources.owner.account.name", "resources.provider", "resources.region", "resources.type", "resources.uid", "severity", "status", "comment", "vulnerabilities.fix_coverage", "class_name", "databucket.encryption_details.algorithm", "databucket.encryption_details.key_uid", "databucket.file.data_classifications.classifier_details.type", "evidences.actor.user.account.uid", "evidences.api.operation", "evidences.api.response.error_message", "evidences.api.service.name", "evidences.connection_info.direction", "evidences.connection_info.protocol_name", "evidences.dst_endpoint.autonomous_system.name", "evidences.dst_endpoint.location.city", "evidences.dst_endpoint.location.country", "evidences.src_endpoint.autonomous_system.name", "evidences.src_endpoint.hostname", "evidences.src_endpoint.location.city", "evidences.src_endpoint.location.country", "finding_info.analytic.name", "malware.name", "malware_scan_info.uid", "malware.severity", "resources.cloud_function.layers.uid_alt", "resources.cloud_function.runtime", "resources.cloud_function.user.uid", "resources.device.encryption_details.key_uid", "resources.device.image.uid", "resources.image.architecture", "resources.image.registry_uid", "resources.image.repository_name", "resources.image.uid", "resources.subnet_info.uid", "resources.vpc_uid", "vulnerabilities.affected_code.file.path", "vulnerabilities.affected_packages.name", "vulnerabilities.cve.epss.score", "vulnerabilities.cve.uid", "vulnerabilities.related_vulnerabilities", "cloud.account.name", "vendor_attributes.severity"
6935
+ # resp.output_configuration.findings.filters.composite_filters[0].string_filters[0].filter.value #=> String
6936
+ # resp.output_configuration.findings.filters.composite_filters[0].string_filters[0].filter.comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS", "CONTAINS", "NOT_CONTAINS", "CONTAINS_WORD"
6937
+ # resp.output_configuration.findings.filters.composite_filters[0].date_filters #=> Array
6938
+ # resp.output_configuration.findings.filters.composite_filters[0].date_filters[0].field_name #=> String, one of "finding_info.created_time_dt", "finding_info.first_seen_time_dt", "finding_info.last_seen_time_dt", "finding_info.modified_time_dt", "resources.image.created_time_dt", "resources.image.last_used_time_dt", "resources.modified_time_dt"
6939
+ # resp.output_configuration.findings.filters.composite_filters[0].date_filters[0].filter.start #=> String
6940
+ # resp.output_configuration.findings.filters.composite_filters[0].date_filters[0].filter.end #=> String
6941
+ # resp.output_configuration.findings.filters.composite_filters[0].date_filters[0].filter.date_range.value #=> Integer
6942
+ # resp.output_configuration.findings.filters.composite_filters[0].date_filters[0].filter.date_range.unit #=> String, one of "DAYS"
6943
+ # resp.output_configuration.findings.filters.composite_filters[0].date_filters[0].filter.date_range.comparison #=> String, one of "WITHIN", "OLDER_THAN"
6944
+ # resp.output_configuration.findings.filters.composite_filters[0].boolean_filters #=> Array
6945
+ # resp.output_configuration.findings.filters.composite_filters[0].boolean_filters[0].field_name #=> String, one of "compliance.assessments.meets_criteria", "vulnerabilities.is_exploit_available", "vulnerabilities.is_fix_available"
6946
+ # resp.output_configuration.findings.filters.composite_filters[0].boolean_filters[0].filter.value #=> Boolean
6947
+ # resp.output_configuration.findings.filters.composite_filters[0].number_filters #=> Array
6948
+ # resp.output_configuration.findings.filters.composite_filters[0].number_filters[0].field_name #=> String, one of "activity_id", "compliance.status_id", "confidence_score", "severity_id", "status_id", "finding_info.related_events_count", "evidences.api.response.code", "evidences.dst_endpoint.autonomous_system.number", "evidences.dst_endpoint.port", "evidences.src_endpoint.autonomous_system.number", "evidences.src_endpoint.port", "resources.image.in_use_count", "vulnerabilities.cve.cvss.base_score", "vendor_attributes.severity_id"
6949
+ # resp.output_configuration.findings.filters.composite_filters[0].number_filters[0].filter.gte #=> Float
6950
+ # resp.output_configuration.findings.filters.composite_filters[0].number_filters[0].filter.lte #=> Float
6951
+ # resp.output_configuration.findings.filters.composite_filters[0].number_filters[0].filter.eq #=> Float
6952
+ # resp.output_configuration.findings.filters.composite_filters[0].number_filters[0].filter.gt #=> Float
6953
+ # resp.output_configuration.findings.filters.composite_filters[0].number_filters[0].filter.lt #=> Float
6954
+ # resp.output_configuration.findings.filters.composite_filters[0].map_filters #=> Array
6955
+ # resp.output_configuration.findings.filters.composite_filters[0].map_filters[0].field_name #=> String, one of "resources.tags", "compliance.control_parameters", "databucket.tags", "finding_info.tags"
6956
+ # resp.output_configuration.findings.filters.composite_filters[0].map_filters[0].filter.key #=> String
6957
+ # resp.output_configuration.findings.filters.composite_filters[0].map_filters[0].filter.value #=> String
6958
+ # resp.output_configuration.findings.filters.composite_filters[0].map_filters[0].filter.comparison #=> String, one of "EQUALS", "NOT_EQUALS", "CONTAINS", "NOT_CONTAINS"
6959
+ # resp.output_configuration.findings.filters.composite_filters[0].ip_filters #=> Array
6960
+ # resp.output_configuration.findings.filters.composite_filters[0].ip_filters[0].field_name #=> String, one of "evidences.dst_endpoint.ip", "evidences.src_endpoint.ip"
6961
+ # resp.output_configuration.findings.filters.composite_filters[0].ip_filters[0].filter.cidr #=> String
6962
+ # resp.output_configuration.findings.filters.composite_filters[0].nested_composite_filters #=> Types::CompositeFilterList
6963
+ # resp.output_configuration.findings.filters.composite_filters[0].operator #=> String, one of "AND", "OR"
6964
+ # resp.output_configuration.findings.filters.composite_operator #=> String, one of "AND", "OR"
6965
+ # resp.output_configuration.findings.selected_fields #=> Array
6966
+ # resp.output_configuration.findings.selected_fields[0] #=> String, one of "metadata.uid", "activity_name", "cloud.account.name", "cloud.account.uid", "cloud.provider", "cloud.region", "compliance.assessments.category", "compliance.assessments.name", "compliance.control", "compliance.status", "compliance.standards", "finding_info.desc", "finding_info.src_url", "finding_info.title", "finding_info.types", "finding_info.uid", "finding_info.related_events.traits.category", "finding_info.related_events.uid", "finding_info.related_events.product.uid", "finding_info.related_events.title", "metadata.product.feature.uid", "metadata.product.name", "metadata.product.uid", "metadata.product.vendor_name", "remediation.desc", "remediation.references", "resources.cloud_partition", "resources.name", "resources.owner.account.uid", "resources.owner.org.uid", "resources.owner.account.name", "resources.provider", "resources.region", "resources.type", "resources.uid", "severity", "status", "comment", "vulnerabilities.fix_coverage", "class_name", "databucket.encryption_details.algorithm", "databucket.encryption_details.key_uid", "databucket.file.data_classifications.classifier_details.type", "evidences.actor.user.account.uid", "evidences.api.operation", "evidences.api.response.error_message", "evidences.api.service.name", "evidences.connection_info.direction", "evidences.connection_info.protocol_name", "evidences.dst_endpoint.autonomous_system.name", "evidences.dst_endpoint.location.city", "evidences.dst_endpoint.location.country", "evidences.src_endpoint.autonomous_system.name", "evidences.src_endpoint.hostname", "evidences.src_endpoint.location.city", "evidences.src_endpoint.location.country", "finding_info.analytic.name", "malware.name", "malware_scan_info.uid", "malware.severity", "resources.cloud_function.layers.uid_alt", "resources.cloud_function.runtime", "resources.cloud_function.user.uid", "resources.device.encryption_details.key_uid", "resources.device.image.uid", "resources.image.architecture", "resources.image.registry_uid", "resources.image.repository_name", "resources.image.uid", "resources.subnet_info.uid", "resources.vpc_uid", "vulnerabilities.affected_code.file.path", "vulnerabilities.affected_packages.name", "vulnerabilities.cve.cvss.vendor_name", "vulnerabilities.cve.cvss.version", "vulnerabilities.cve.epss.score", "vulnerabilities.cve.uid", "vulnerabilities.related_vulnerabilities", "vendor_attributes.severity", "activity_id", "compliance.status_id", "confidence_score", "severity_id", "status_id", "finding_info.related_events_count", "evidences.api.response.code", "evidences.dst_endpoint.autonomous_system.number", "evidences.dst_endpoint.port", "evidences.src_endpoint.autonomous_system.number", "evidences.src_endpoint.port", "resources.image.in_use_count", "vulnerabilities.cve.cvss.base_score", "vendor_attributes.severity_id", "finding_info.created_time_dt", "finding_info.first_seen_time_dt", "finding_info.last_seen_time_dt", "finding_info.modified_time_dt", "resources.image.created_time_dt", "resources.image.last_used_time_dt", "resources.modified_time_dt", "compliance.assessments.meets_criteria", "vulnerabilities.is_exploit_available", "vulnerabilities.is_fix_available", "resources.tags", "compliance.control_parameters", "databucket.tags", "finding_info.tags", "evidences.dst_endpoint.ip", "evidences.src_endpoint.ip"
6967
+ # resp.scopes.aws_organizations #=> Array
6968
+ # resp.scopes.aws_organizations[0].organization_id #=> String
6969
+ # resp.scopes.aws_organizations[0].organizational_unit_id #=> String
6970
+ # resp.destination.s3.bucket_arn #=> String
6971
+ # resp.destination.s3.kms_key_arn #=> String
6972
+ # resp.destination.s3.object_prefix #=> String
6973
+ # resp.failure_code #=> String, one of "ACCESS_DENIED", "RESOURCE_NOT_FOUND", "INTERNAL_ERROR"
6974
+ # resp.failure_message #=> String
6975
+ # resp.started_at #=> Time
6976
+ # resp.ended_at #=> Time
6977
+ #
6978
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetExportJobV2 AWS API Documentation
6979
+ #
6980
+ # @overload get_export_job_v2(params = {})
6981
+ # @param [Hash] params ({})
6982
+ def get_export_job_v2(params = {}, options = {})
6983
+ req = build_request(:get_export_job_v2, params)
6984
+ req.send_request(options)
6985
+ end
6986
+
6706
6987
  # <note markdown="1"> The *aggregation Region* is now called the *home Region*.
6707
6988
  #
6708
6989
  # </note>
@@ -8975,6 +9256,162 @@ module Aws::SecurityHub
8975
9256
  req.send_request(options)
8976
9257
  end
8977
9258
 
9259
+ # Retrieves remediation targets for the account, or for all member
9260
+ # accounts if the caller is the delegated administrator. Results are
9261
+ # sorted by priority, highest first, and are paginated. Use `TargetUid`
9262
+ # or `MetadataUid` to scope the request to a single target or finding.
9263
+ #
9264
+ # @option params [String] :target_uid
9265
+ # The unique identifier (ID) of an existing remediation target to
9266
+ # return. Returns the single matching target. You can't use `TargetUid`
9267
+ # together with `MetadataUid` or `Filters`.
9268
+ #
9269
+ # @option params [String] :metadata_uid
9270
+ # The unique identifier (ID) of the Security Hub exposure finding, found
9271
+ # under the `metadata.uid` field of the finding. Returns the remediation
9272
+ # targets associated with that finding. You can't use `MetadataUid`
9273
+ # together with `TargetUid` or `Filters`.
9274
+ #
9275
+ # @option params [Types::RemediationFilters] :filters
9276
+ # Filters remediation targets based on a set of criteria. You can't use
9277
+ # `Filters` together with `TargetUid` or `MetadataUid`.
9278
+ #
9279
+ # @option params [Boolean] :show_guidance
9280
+ # Specifies whether to show remediation target guidance.
9281
+ #
9282
+ # @option params [String] :guidance_format
9283
+ # The format of the remediation guidance examples to return. Valid
9284
+ # values are `All`, `AwsCli`, `Cli`, `Python`, `Terraform`, `Cdk`,
9285
+ # `CloudFormation`, `IaC`, and `Template`. If you don't specify a
9286
+ # value, all formats are returned. Applies only when `ShowGuidance` is
9287
+ # `true`.
9288
+ #
9289
+ # @option params [Integer] :max_results
9290
+ # The maximum number of results to return. Valid range is 1-100. If you
9291
+ # don't specify a value, the operation returns up to 25 results.
9292
+ #
9293
+ # @option params [String] :next_token
9294
+ # The token used to paginate the remediations target list returned. On
9295
+ # your first call to `GetRemediationsV2`, omit this parameter or set it
9296
+ # to `NULL`. For subsequent calls, use the `NextToken` value returned in
9297
+ # the previous response to retrieve the next page of results.
9298
+ #
9299
+ # @return [Types::GetRemediationsV2Response] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9300
+ #
9301
+ # * {Types::GetRemediationsV2Response#items #items} => Array&lt;Types::RemediationV2Item&gt;
9302
+ # * {Types::GetRemediationsV2Response#next_token #next_token} => String
9303
+ #
9304
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
9305
+ #
9306
+ # @example Request syntax with placeholder values
9307
+ #
9308
+ # resp = client.get_remediations_v2({
9309
+ # target_uid: "RemediationStringUid",
9310
+ # metadata_uid: "RemediationStringUid",
9311
+ # filters: {
9312
+ # composite_filters: [
9313
+ # {
9314
+ # string_filters: [
9315
+ # {
9316
+ # field_name: "Resource.Type", # required, accepts Resource.Type, Priority, Status, Resource.Id, Resource.ResourceOwnerAccountId, Resource.CloudProvider
9317
+ # filter: { # required
9318
+ # value: "NonEmptyString", # required
9319
+ # },
9320
+ # },
9321
+ # ],
9322
+ # },
9323
+ # ],
9324
+ # },
9325
+ # show_guidance: false,
9326
+ # guidance_format: "All", # accepts All, AwsCli, Cli, Python, Terraform, Cdk, CloudFormation, IaC, Template
9327
+ # max_results: 1,
9328
+ # next_token: "NextToken",
9329
+ # })
9330
+ #
9331
+ # @example Response structure
9332
+ #
9333
+ # resp.items #=> Array
9334
+ # resp.items[0].target_uid #=> String
9335
+ # resp.items[0].outcome.resolved_findings_count #=> Integer
9336
+ # resp.items[0].outcome.severity_reduction_findings_count #=> Integer
9337
+ # resp.items[0].outcome.severity_unchanged_count #=> Integer
9338
+ # resp.items[0].priority #=> String, one of "Critical", "High", "Medium", "Low"
9339
+ # resp.items[0].remediation_summary.action #=> String
9340
+ # resp.items[0].remediation_summary.description #=> String
9341
+ # resp.items[0].remediation_summary.is_immediate #=> Boolean
9342
+ # resp.items[0].remediation_summary.post_remediation_steps #=> Array
9343
+ # resp.items[0].remediation_summary.post_remediation_steps[0] #=> String
9344
+ # resp.items[0].remediation_summary.kb_articles #=> Array
9345
+ # resp.items[0].remediation_summary.kb_articles[0].title #=> String
9346
+ # resp.items[0].remediation_summary.kb_articles[0].url #=> String
9347
+ # resp.items[0].resource.account_id #=> String
9348
+ # resp.items[0].resource.region #=> String
9349
+ # resp.items[0].resource.resource_owner_account_id #=> String
9350
+ # resp.items[0].resource.resource_owner_org_id #=> String
9351
+ # resp.items[0].resource.type #=> String
9352
+ # resp.items[0].resource.name #=> String
9353
+ # resp.items[0].resource.id #=> String
9354
+ # resp.items[0].resource.resource_guid #=> String
9355
+ # resp.items[0].resource.resource_region #=> String
9356
+ # resp.items[0].resource.cloud_provider #=> String, one of "Azure", "AWS"
9357
+ # resp.items[0].status #=> String, one of "New", "Updated", "Resolved"
9358
+ # resp.items[0].trait.type #=> String
9359
+ # resp.items[0].trait.title #=> String
9360
+ # resp.items[0].guidance.target_type_name #=> String
9361
+ # resp.items[0].guidance.pattern #=> String
9362
+ # resp.items[0].guidance.version #=> String
9363
+ # resp.items[0].guidance.context.problem_statement #=> String
9364
+ # resp.items[0].guidance.context.risk_assessment #=> String
9365
+ # resp.items[0].guidance.context.affected_scope #=> String
9366
+ # resp.items[0].guidance.context.prerequisites #=> Array
9367
+ # resp.items[0].guidance.context.prerequisites[0] #=> String
9368
+ # resp.items[0].guidance.specification.parameters #=> Array
9369
+ # resp.items[0].guidance.specification.parameters[0].name #=> String
9370
+ # resp.items[0].guidance.specification.parameters[0].type #=> String
9371
+ # resp.items[0].guidance.specification.parameters[0].description #=> String
9372
+ # resp.items[0].guidance.specification.parameters[0].required #=> Boolean
9373
+ # resp.items[0].guidance.specification.steps #=> Array
9374
+ # resp.items[0].guidance.specification.steps[0].phase #=> String
9375
+ # resp.items[0].guidance.specification.steps[0].description #=> String
9376
+ # resp.items[0].guidance.specification.steps[0].service #=> String
9377
+ # resp.items[0].guidance.specification.steps[0].action #=> String
9378
+ # resp.items[0].guidance.specification.steps[0].logic #=> String
9379
+ # resp.items[0].guidance.specification.steps[0].inverse #=> String
9380
+ # resp.items[0].guidance.specification.steps[0].verify_after #=> String
9381
+ # resp.items[0].guidance.specification.expected_end_state #=> String
9382
+ # resp.items[0].guidance.specification.required_permissions #=> Array
9383
+ # resp.items[0].guidance.specification.required_permissions[0] #=> String
9384
+ # resp.items[0].guidance.examples.aws_cli #=> String
9385
+ # resp.items[0].guidance.examples.cli #=> String
9386
+ # resp.items[0].guidance.examples.python #=> String
9387
+ # resp.items[0].guidance.examples.terraform #=> String
9388
+ # resp.items[0].guidance.examples.cdk #=> String
9389
+ # resp.items[0].guidance.examples.cloud_formation #=> String
9390
+ # resp.items[0].guidance.examples.ia_c #=> String
9391
+ # resp.items[0].guidance.examples.template #=> String
9392
+ # resp.items[0].guidance.metadata.resource_type #=> String
9393
+ # resp.items[0].guidance.metadata.exposure_type #=> String
9394
+ # resp.items[0].guidance.metadata.trait_titles #=> Array
9395
+ # resp.items[0].guidance.metadata.trait_titles[0] #=> String
9396
+ # resp.items[0].guidance.metadata.reversibility #=> String
9397
+ # resp.items[0].guidance.metadata.fix_effect #=> String
9398
+ # resp.items[0].guidance.metadata.risk_level #=> String
9399
+ # resp.items[0].guidance.metadata.automation_level #=> String
9400
+ # resp.items[0].guidance.metadata.human_review_required #=> Boolean
9401
+ # resp.items[0].guidance.metadata.generated_at #=> Time
9402
+ # resp.items[0].guidance.metadata.verification_status #=> String
9403
+ # resp.items[0].updated_at #=> Time
9404
+ # resp.next_token #=> String
9405
+ #
9406
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetRemediationsV2 AWS API Documentation
9407
+ #
9408
+ # @overload get_remediations_v2(params = {})
9409
+ # @param [Hash] params ({})
9410
+ def get_remediations_v2(params = {}, options = {})
9411
+ req = build_request(:get_remediations_v2, params)
9412
+ req.send_request(options)
9413
+ end
9414
+
8978
9415
  # Retrieves statistical information about Amazon Web Services resources
8979
9416
  # and their associated security findings.
8980
9417
  #
@@ -10132,6 +10569,189 @@ module Aws::SecurityHub
10132
10569
  req.send_request(options)
10133
10570
  end
10134
10571
 
10572
+ # Returns the findings export jobs in your account as a paginated list
10573
+ # of `ExportSummary` objects. You can filter the results by job `Status`
10574
+ # or `DataType`.
10575
+ #
10576
+ # To page through the results, use the `MaxResults` and `NextToken`
10577
+ # parameters. If the response includes a `NextToken` value, pass it in a
10578
+ # subsequent request to retrieve the next page of results.
10579
+ #
10580
+ # Each `ExportSummary` reports the output `Format` of the job but not
10581
+ # its full `OutputConfiguration`. To retrieve the filters and selected
10582
+ # fields that a job was started with, call `GetExportJobV2`.
10583
+ #
10584
+ # @option params [String] :status
10585
+ # Filters the results to export jobs that have the specified status.
10586
+ #
10587
+ # @option params [String] :data_type
10588
+ # Filters the results to export jobs that produce the specified data
10589
+ # type.
10590
+ #
10591
+ # @option params [Integer] :max_results
10592
+ # The maximum number of results to return in a single call. Valid range
10593
+ # is 1–20.
10594
+ #
10595
+ # @option params [String] :next_token
10596
+ # The token required for pagination. On your first call, set the value
10597
+ # of this parameter to `NULL`. For subsequent calls, to continue listing
10598
+ # data, set the value of this parameter to the value returned in the
10599
+ # previous response.
10600
+ #
10601
+ # @return [Types::ListExportJobsV2Response] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
10602
+ #
10603
+ # * {Types::ListExportJobsV2Response#items #items} => Array&lt;Types::ExportSummary&gt;
10604
+ # * {Types::ListExportJobsV2Response#next_token #next_token} => String
10605
+ #
10606
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
10607
+ #
10608
+ #
10609
+ # @example Example: Example – Listing successful findings export jobs
10610
+ #
10611
+ # # The following example lists the findings export jobs in the account that have succeeded, returning up to 10 results per
10612
+ # # page.
10613
+ #
10614
+ # resp = client.list_export_jobs_v2({
10615
+ # data_type: "FINDINGS",
10616
+ # max_results: 10,
10617
+ # status: "SUCCEEDED",
10618
+ # })
10619
+ #
10620
+ # resp.to_h outputs the following:
10621
+ # {
10622
+ # items: [
10623
+ # {
10624
+ # data_type: "FINDINGS",
10625
+ # destination: {
10626
+ # s3: {
10627
+ # bucket_arn: "arn:aws:s3:::amzn-s3-demo-bucket",
10628
+ # kms_key_arn: "arn:aws:kms:aa-example-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
10629
+ # object_prefix: "security-hub-exports/2026-Q1",
10630
+ # },
10631
+ # },
10632
+ # ended_at: Time.parse("2026-03-27T18:09:52Z"),
10633
+ # export_job_id: "a1b2c3d4e5f6",
10634
+ # name: "quarterly-critical-findings",
10635
+ # output_configuration: {
10636
+ # findings: {
10637
+ # format: "CSV",
10638
+ # },
10639
+ # },
10640
+ # started_at: Time.parse("2026-03-27T18:04:11Z"),
10641
+ # status: "SUCCEEDED",
10642
+ # },
10643
+ # ],
10644
+ # next_token: "U2VjdXJpdHlIdWJFeGFtcGxlUGFnaW5hdGlvblRva2Vu",
10645
+ # }
10646
+ #
10647
+ # @example Request syntax with placeholder values
10648
+ #
10649
+ # resp = client.list_export_jobs_v2({
10650
+ # status: "RUNNING", # accepts RUNNING, SUCCEEDED, FAILED, CANCELLED
10651
+ # data_type: "FINDINGS", # accepts FINDINGS
10652
+ # max_results: 1,
10653
+ # next_token: "NextToken",
10654
+ # })
10655
+ #
10656
+ # @example Response structure
10657
+ #
10658
+ # resp.items #=> Array
10659
+ # resp.items[0].export_job_id #=> String
10660
+ # resp.items[0].name #=> String
10661
+ # resp.items[0].status #=> String, one of "RUNNING", "SUCCEEDED", "FAILED", "CANCELLED"
10662
+ # resp.items[0].data_type #=> String, one of "FINDINGS"
10663
+ # resp.items[0].output_configuration.findings.format #=> String, one of "CSV", "OCSF_JSON"
10664
+ # resp.items[0].scopes.aws_organizations #=> Array
10665
+ # resp.items[0].scopes.aws_organizations[0].organization_id #=> String
10666
+ # resp.items[0].scopes.aws_organizations[0].organizational_unit_id #=> String
10667
+ # resp.items[0].destination.s3.bucket_arn #=> String
10668
+ # resp.items[0].destination.s3.kms_key_arn #=> String
10669
+ # resp.items[0].destination.s3.object_prefix #=> String
10670
+ # resp.items[0].failure_code #=> String, one of "ACCESS_DENIED", "RESOURCE_NOT_FOUND", "INTERNAL_ERROR"
10671
+ # resp.items[0].failure_message #=> String
10672
+ # resp.items[0].started_at #=> Time
10673
+ # resp.items[0].ended_at #=> Time
10674
+ # resp.next_token #=> String
10675
+ #
10676
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListExportJobsV2 AWS API Documentation
10677
+ #
10678
+ # @overload list_export_jobs_v2(params = {})
10679
+ # @param [Hash] params ({})
10680
+ def list_export_jobs_v2(params = {}, options = {})
10681
+ req = build_request(:list_export_jobs_v2, params)
10682
+ req.send_request(options)
10683
+ end
10684
+
10685
+ # Retrieves the exposure findings tied to a specific remediation target.
10686
+ # Results are sorted by previous severity, highest first, and are
10687
+ # paginated.
10688
+ #
10689
+ # @option params [required, String] :target_uid
10690
+ # The unique identifier (ID) of an existing remediation target to list
10691
+ # exposure findings for.
10692
+ #
10693
+ # @option params [Integer] :max_results
10694
+ # The maximum number of results to return. Valid range is 1-100. If you
10695
+ # don't specify a value, the operation returns up to 25 results.
10696
+ #
10697
+ # @option params [String] :next_token
10698
+ # The token used to paginate the exposures list returned. On your first
10699
+ # call to `ListExposuresByRemediationV2`, omit this parameter or set it
10700
+ # to `NULL`. For subsequent calls, use the `NextToken` value returned in
10701
+ # the previous response to retrieve the next page of results.
10702
+ #
10703
+ # @return [Types::ListExposuresByRemediationV2Response] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
10704
+ #
10705
+ # * {Types::ListExposuresByRemediationV2Response#items #items} => Array&lt;Types::ExposureFinding&gt;
10706
+ # * {Types::ListExposuresByRemediationV2Response#target_uid #target_uid} => String
10707
+ # * {Types::ListExposuresByRemediationV2Response#resource #resource} => Types::RemediationResource
10708
+ # * {Types::ListExposuresByRemediationV2Response#total_count #total_count} => Integer
10709
+ # * {Types::ListExposuresByRemediationV2Response#trait #trait} => Types::RemediationTrait
10710
+ # * {Types::ListExposuresByRemediationV2Response#next_token #next_token} => String
10711
+ #
10712
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
10713
+ #
10714
+ # @example Request syntax with placeholder values
10715
+ #
10716
+ # resp = client.list_exposures_by_remediation_v2({
10717
+ # target_uid: "RemediationStringUid", # required
10718
+ # max_results: 1,
10719
+ # next_token: "NextToken",
10720
+ # })
10721
+ #
10722
+ # @example Response structure
10723
+ #
10724
+ # resp.items #=> Array
10725
+ # resp.items[0].metadata_uid #=> String
10726
+ # resp.items[0].title #=> String
10727
+ # resp.items[0].previous_severity #=> String, one of "Informational", "Low", "Medium", "High", "Critical"
10728
+ # resp.items[0].projected_severity #=> String, one of "Informational", "Low", "Medium", "High", "Critical"
10729
+ # resp.items[0].impact #=> String, one of "Reduces", "Resolves", "Unchanged"
10730
+ # resp.target_uid #=> String
10731
+ # resp.resource.account_id #=> String
10732
+ # resp.resource.region #=> String
10733
+ # resp.resource.resource_owner_account_id #=> String
10734
+ # resp.resource.resource_owner_org_id #=> String
10735
+ # resp.resource.type #=> String
10736
+ # resp.resource.name #=> String
10737
+ # resp.resource.id #=> String
10738
+ # resp.resource.resource_guid #=> String
10739
+ # resp.resource.resource_region #=> String
10740
+ # resp.resource.cloud_provider #=> String, one of "Azure", "AWS"
10741
+ # resp.total_count #=> Integer
10742
+ # resp.trait.type #=> String
10743
+ # resp.trait.title #=> String
10744
+ # resp.next_token #=> String
10745
+ #
10746
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListExposuresByRemediationV2 AWS API Documentation
10747
+ #
10748
+ # @overload list_exposures_by_remediation_v2(params = {})
10749
+ # @param [Hash] params ({})
10750
+ def list_exposures_by_remediation_v2(params = {}, options = {})
10751
+ req = build_request(:list_exposures_by_remediation_v2, params)
10752
+ req.send_request(options)
10753
+ end
10754
+
10135
10755
  # If cross-Region aggregation is enabled, then `ListFindingAggregators`
10136
10756
  # returns the Amazon Resource Name (ARN) of the finding aggregator. You
10137
10757
  # can run this operation from any Amazon Web Services Region.
@@ -11031,6 +11651,307 @@ module Aws::SecurityHub
11031
11651
  req.send_request(options)
11032
11652
  end
11033
11653
 
11654
+ # Starts an ad hoc export job that writes Security Hub findings to an
11655
+ # Amazon Simple Storage Service (Amazon S3) bucket that you own. Because
11656
+ # the export runs asynchronously, this operation returns only the
11657
+ # `ExportJobId` of the new job; it doesn't wait for the export to
11658
+ # finish. Use `GetExportJobV2` to poll the job, and `ListExportJobsV2`
11659
+ # to view the export jobs in your account.
11660
+ #
11661
+ # Security Hub allows only one export job in the `RUNNING` state per
11662
+ # account at a time. If an export job is already running, this operation
11663
+ # returns a `ServiceQuotaExceededException`. Wait for the running job to
11664
+ # finish, or cancel it with `CancelExportJobV2`, before you start a new
11665
+ # one.
11666
+ #
11667
+ # Specify the destination bucket and Amazon Web Services Key Management
11668
+ # Service (Amazon Web Services KMS) key in the `Destination` parameter,
11669
+ # and the output format (`CSV` or `OCSF_JSON`), optional filters, and
11670
+ # field selection in the `OutputConfiguration` parameter. Before you
11671
+ # call this operation, you must grant Security Hub permission to write
11672
+ # to your bucket and use your Amazon Web Services KMS key by adding the
11673
+ # bucket policy and key policy statements shown in the Examples section.
11674
+ #
11675
+ # Two identities use your Amazon Web Services KMS key, and each needs
11676
+ # its own permission. Security Hub uses the key when it writes the
11677
+ # export objects to your bucket. The IAM principal that calls
11678
+ # `StartExportJobV2` must also have `kms:GenerateDataKey` and
11679
+ # `kms:Decrypt` permissions on the key. The Examples section shows both
11680
+ # grants.
11681
+ #
11682
+ # A delegated administrator can use the optional `Scopes` parameter to
11683
+ # export findings for specific organizations or organizational units
11684
+ # (OUs).
11685
+ #
11686
+ # To make the request idempotent, provide a `ClientToken`. If you retry
11687
+ # a `StartExportJobV2` request with the same `ClientToken` and the same
11688
+ # request parameters, Security Hub returns the `ExportJobId` of the
11689
+ # original job instead of starting a new one. If you reuse a
11690
+ # `ClientToken` with different request parameters, this operation
11691
+ # returns a `ConflictException`.
11692
+ #
11693
+ # @option params [String] :name
11694
+ # An optional, user-provided name for the export job that helps you
11695
+ # identify it in `ListExportJobsV2` results. The value can be 1–256
11696
+ # characters. Alphanumeric characters, spaces, and the following ASCII
11697
+ # characters are permitted: `. _ , : ( ) / + -`.
11698
+ #
11699
+ # @option params [required, Types::ExportDestination] :destination
11700
+ # The destination that Security Hub writes the export to. You must
11701
+ # specify exactly one destination type. Currently, the only supported
11702
+ # type is Amazon S3.
11703
+ #
11704
+ # @option params [required, Types::ExportOutput] :output_configuration
11705
+ # Specifies what data to export and how to format it. You must specify
11706
+ # exactly one output type. Currently, the only supported type is
11707
+ # `Findings`.
11708
+ #
11709
+ # @option params [Types::ExportScopes] :scopes
11710
+ # Limits the export to findings from specific organizational units (OUs)
11711
+ # or from the delegated administrator's organization. Only the
11712
+ # delegated administrator account can use this parameter; other accounts
11713
+ # that specify it receive an `AccessDeniedException`.
11714
+ #
11715
+ # This parameter is optional. If you omit it, the delegated
11716
+ # administrator exports findings from all accounts across the entire
11717
+ # organization, and other accounts export only their own findings.
11718
+ #
11719
+ # You can specify up to 10 entries in `Scopes.AwsOrganizations`. If you
11720
+ # specify multiple entries, Security Hub combines them using OR logic.
11721
+ #
11722
+ # @option params [String] :client_token
11723
+ # A unique identifier used to ensure idempotency.
11724
+ #
11725
+ # **A suitable default value is auto-generated.** You should normally
11726
+ # not need to pass this option.**
11727
+ #
11728
+ # @return [Types::StartExportJobV2Response] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
11729
+ #
11730
+ # * {Types::StartExportJobV2Response#export_job_id #export_job_id} => String
11731
+ #
11732
+ #
11733
+ # @example Example: Example – Starting a CSV export of critical findings
11734
+ #
11735
+ # # The following example starts an export that writes selected fields of new, critical findings to an Amazon S3 bucket in
11736
+ # # CSV format.
11737
+ #
11738
+ # resp = client.start_export_job_v2({
11739
+ # client_token: "b3d1f9a2-1c4e-4b9a-9f2e-EXAMPLE11111",
11740
+ # destination: {
11741
+ # s3: {
11742
+ # bucket_arn: "arn:aws:s3:::amzn-s3-demo-bucket",
11743
+ # kms_key_arn: "arn:aws:kms:aa-example-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
11744
+ # object_prefix: "security-hub-exports/2026-Q1",
11745
+ # },
11746
+ # },
11747
+ # name: "quarterly-critical-findings",
11748
+ # output_configuration: {
11749
+ # findings: {
11750
+ # filters: {
11751
+ # composite_filters: [
11752
+ # {
11753
+ # operator: "AND",
11754
+ # string_filters: [
11755
+ # {
11756
+ # field_name: "severity",
11757
+ # filter: {
11758
+ # comparison: "EQUALS",
11759
+ # value: "Critical",
11760
+ # },
11761
+ # },
11762
+ # {
11763
+ # field_name: "status",
11764
+ # filter: {
11765
+ # comparison: "EQUALS",
11766
+ # value: "New",
11767
+ # },
11768
+ # },
11769
+ # ],
11770
+ # },
11771
+ # ],
11772
+ # composite_operator: "AND",
11773
+ # },
11774
+ # format: "CSV",
11775
+ # selected_fields: [
11776
+ # "finding_info.title",
11777
+ # "severity",
11778
+ # "status",
11779
+ # "cloud.account.uid",
11780
+ # "resources.uid",
11781
+ # ],
11782
+ # },
11783
+ # },
11784
+ # })
11785
+ #
11786
+ # resp.to_h outputs the following:
11787
+ # {
11788
+ # export_job_id: "a1b2c3d4e5f6",
11789
+ # }
11790
+ #
11791
+ # @example Example: Example – Starting an OCSF JSON export scoped to an organizational unit
11792
+ #
11793
+ # # The following example, run by a delegated administrator, starts an export of the last 30 days of findings for a specific
11794
+ # # organizational unit (OU) in OCSF JSON format.
11795
+ #
11796
+ # resp = client.start_export_job_v2({
11797
+ # destination: {
11798
+ # s3: {
11799
+ # bucket_arn: "arn:aws:s3:::amzn-s3-demo-bucket",
11800
+ # kms_key_arn: "arn:aws:kms:aa-example-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
11801
+ # },
11802
+ # },
11803
+ # output_configuration: {
11804
+ # findings: {
11805
+ # filters: {
11806
+ # composite_filters: [
11807
+ # {
11808
+ # date_filters: [
11809
+ # {
11810
+ # field_name: "finding_info.last_seen_time_dt",
11811
+ # filter: {
11812
+ # date_range: {
11813
+ # comparison: "WITHIN",
11814
+ # unit: "DAYS",
11815
+ # value: 30,
11816
+ # },
11817
+ # },
11818
+ # },
11819
+ # ],
11820
+ # operator: "AND",
11821
+ # },
11822
+ # ],
11823
+ # composite_operator: "AND",
11824
+ # },
11825
+ # format: "OCSF_JSON",
11826
+ # },
11827
+ # },
11828
+ # scopes: {
11829
+ # aws_organizations: [
11830
+ # {
11831
+ # organizational_unit_id: "ou-1234-a1b2c3d4",
11832
+ # },
11833
+ # ],
11834
+ # },
11835
+ # })
11836
+ #
11837
+ # resp.to_h outputs the following:
11838
+ # {
11839
+ # export_job_id: "f6e5d4c3b2a1",
11840
+ # }
11841
+ #
11842
+ # @example Request syntax with placeholder values
11843
+ #
11844
+ # resp = client.start_export_job_v2({
11845
+ # name: "ExportName",
11846
+ # destination: { # required
11847
+ # s3: {
11848
+ # bucket_arn: "NonEmptyString", # required
11849
+ # kms_key_arn: "NonEmptyString", # required
11850
+ # object_prefix: "S3ObjectPrefix",
11851
+ # },
11852
+ # },
11853
+ # output_configuration: { # required
11854
+ # findings: {
11855
+ # format: "CSV", # required, accepts CSV, OCSF_JSON
11856
+ # filters: {
11857
+ # composite_filters: [
11858
+ # {
11859
+ # string_filters: [
11860
+ # {
11861
+ # field_name: "metadata.uid", # accepts metadata.uid, activity_name, cloud.account.uid, cloud.provider, cloud.region, compliance.assessments.category, compliance.assessments.name, compliance.control, compliance.status, compliance.standards, finding_info.desc, finding_info.src_url, finding_info.title, finding_info.types, finding_info.uid, finding_info.related_events.traits.category, finding_info.related_events.uid, finding_info.related_events.product.uid, finding_info.related_events.title, metadata.product.name, metadata.product.uid, metadata.product.vendor_name, remediation.desc, remediation.references, resources.cloud_partition, resources.name, resources.owner.account.uid, resources.owner.org.uid, resources.owner.account.name, resources.provider, resources.region, resources.type, resources.uid, severity, status, comment, vulnerabilities.fix_coverage, class_name, databucket.encryption_details.algorithm, databucket.encryption_details.key_uid, databucket.file.data_classifications.classifier_details.type, evidences.actor.user.account.uid, evidences.api.operation, evidences.api.response.error_message, evidences.api.service.name, evidences.connection_info.direction, evidences.connection_info.protocol_name, evidences.dst_endpoint.autonomous_system.name, evidences.dst_endpoint.location.city, evidences.dst_endpoint.location.country, evidences.src_endpoint.autonomous_system.name, evidences.src_endpoint.hostname, evidences.src_endpoint.location.city, evidences.src_endpoint.location.country, finding_info.analytic.name, malware.name, malware_scan_info.uid, malware.severity, resources.cloud_function.layers.uid_alt, resources.cloud_function.runtime, resources.cloud_function.user.uid, resources.device.encryption_details.key_uid, resources.device.image.uid, resources.image.architecture, resources.image.registry_uid, resources.image.repository_name, resources.image.uid, resources.subnet_info.uid, resources.vpc_uid, vulnerabilities.affected_code.file.path, vulnerabilities.affected_packages.name, vulnerabilities.cve.epss.score, vulnerabilities.cve.uid, vulnerabilities.related_vulnerabilities, cloud.account.name, vendor_attributes.severity
11862
+ # filter: {
11863
+ # value: "NonEmptyString",
11864
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS, CONTAINS, NOT_CONTAINS, CONTAINS_WORD
11865
+ # },
11866
+ # },
11867
+ # ],
11868
+ # date_filters: [
11869
+ # {
11870
+ # field_name: "finding_info.created_time_dt", # accepts finding_info.created_time_dt, finding_info.first_seen_time_dt, finding_info.last_seen_time_dt, finding_info.modified_time_dt, resources.image.created_time_dt, resources.image.last_used_time_dt, resources.modified_time_dt
11871
+ # filter: {
11872
+ # start: "NonEmptyString",
11873
+ # end: "NonEmptyString",
11874
+ # date_range: {
11875
+ # value: 1,
11876
+ # unit: "DAYS", # accepts DAYS
11877
+ # comparison: "WITHIN", # accepts WITHIN, OLDER_THAN
11878
+ # },
11879
+ # },
11880
+ # },
11881
+ # ],
11882
+ # boolean_filters: [
11883
+ # {
11884
+ # field_name: "compliance.assessments.meets_criteria", # accepts compliance.assessments.meets_criteria, vulnerabilities.is_exploit_available, vulnerabilities.is_fix_available
11885
+ # filter: {
11886
+ # value: false,
11887
+ # },
11888
+ # },
11889
+ # ],
11890
+ # number_filters: [
11891
+ # {
11892
+ # field_name: "activity_id", # accepts activity_id, compliance.status_id, confidence_score, severity_id, status_id, finding_info.related_events_count, evidences.api.response.code, evidences.dst_endpoint.autonomous_system.number, evidences.dst_endpoint.port, evidences.src_endpoint.autonomous_system.number, evidences.src_endpoint.port, resources.image.in_use_count, vulnerabilities.cve.cvss.base_score, vendor_attributes.severity_id
11893
+ # filter: {
11894
+ # gte: 1.0,
11895
+ # lte: 1.0,
11896
+ # eq: 1.0,
11897
+ # gt: 1.0,
11898
+ # lt: 1.0,
11899
+ # },
11900
+ # },
11901
+ # ],
11902
+ # map_filters: [
11903
+ # {
11904
+ # field_name: "resources.tags", # accepts resources.tags, compliance.control_parameters, databucket.tags, finding_info.tags
11905
+ # filter: {
11906
+ # key: "NonEmptyString",
11907
+ # value: "NonEmptyString",
11908
+ # comparison: "EQUALS", # accepts EQUALS, NOT_EQUALS, CONTAINS, NOT_CONTAINS
11909
+ # },
11910
+ # },
11911
+ # ],
11912
+ # ip_filters: [
11913
+ # {
11914
+ # field_name: "evidences.dst_endpoint.ip", # accepts evidences.dst_endpoint.ip, evidences.src_endpoint.ip
11915
+ # filter: {
11916
+ # cidr: "NonEmptyString",
11917
+ # },
11918
+ # },
11919
+ # ],
11920
+ # nested_composite_filters: {
11921
+ # # recursive CompositeFilterList
11922
+ # },
11923
+ # operator: "AND", # accepts AND, OR
11924
+ # },
11925
+ # ],
11926
+ # composite_operator: "AND", # accepts AND, OR
11927
+ # },
11928
+ # selected_fields: ["metadata.uid"], # accepts metadata.uid, activity_name, cloud.account.name, cloud.account.uid, cloud.provider, cloud.region, compliance.assessments.category, compliance.assessments.name, compliance.control, compliance.status, compliance.standards, finding_info.desc, finding_info.src_url, finding_info.title, finding_info.types, finding_info.uid, finding_info.related_events.traits.category, finding_info.related_events.uid, finding_info.related_events.product.uid, finding_info.related_events.title, metadata.product.feature.uid, metadata.product.name, metadata.product.uid, metadata.product.vendor_name, remediation.desc, remediation.references, resources.cloud_partition, resources.name, resources.owner.account.uid, resources.owner.org.uid, resources.owner.account.name, resources.provider, resources.region, resources.type, resources.uid, severity, status, comment, vulnerabilities.fix_coverage, class_name, databucket.encryption_details.algorithm, databucket.encryption_details.key_uid, databucket.file.data_classifications.classifier_details.type, evidences.actor.user.account.uid, evidences.api.operation, evidences.api.response.error_message, evidences.api.service.name, evidences.connection_info.direction, evidences.connection_info.protocol_name, evidences.dst_endpoint.autonomous_system.name, evidences.dst_endpoint.location.city, evidences.dst_endpoint.location.country, evidences.src_endpoint.autonomous_system.name, evidences.src_endpoint.hostname, evidences.src_endpoint.location.city, evidences.src_endpoint.location.country, finding_info.analytic.name, malware.name, malware_scan_info.uid, malware.severity, resources.cloud_function.layers.uid_alt, resources.cloud_function.runtime, resources.cloud_function.user.uid, resources.device.encryption_details.key_uid, resources.device.image.uid, resources.image.architecture, resources.image.registry_uid, resources.image.repository_name, resources.image.uid, resources.subnet_info.uid, resources.vpc_uid, vulnerabilities.affected_code.file.path, vulnerabilities.affected_packages.name, vulnerabilities.cve.cvss.vendor_name, vulnerabilities.cve.cvss.version, vulnerabilities.cve.epss.score, vulnerabilities.cve.uid, vulnerabilities.related_vulnerabilities, vendor_attributes.severity, activity_id, compliance.status_id, confidence_score, severity_id, status_id, finding_info.related_events_count, evidences.api.response.code, evidences.dst_endpoint.autonomous_system.number, evidences.dst_endpoint.port, evidences.src_endpoint.autonomous_system.number, evidences.src_endpoint.port, resources.image.in_use_count, vulnerabilities.cve.cvss.base_score, vendor_attributes.severity_id, finding_info.created_time_dt, finding_info.first_seen_time_dt, finding_info.last_seen_time_dt, finding_info.modified_time_dt, resources.image.created_time_dt, resources.image.last_used_time_dt, resources.modified_time_dt, compliance.assessments.meets_criteria, vulnerabilities.is_exploit_available, vulnerabilities.is_fix_available, resources.tags, compliance.control_parameters, databucket.tags, finding_info.tags, evidences.dst_endpoint.ip, evidences.src_endpoint.ip
11929
+ # },
11930
+ # },
11931
+ # scopes: {
11932
+ # aws_organizations: [
11933
+ # {
11934
+ # organization_id: "NonEmptyString",
11935
+ # organizational_unit_id: "NonEmptyString",
11936
+ # },
11937
+ # ],
11938
+ # },
11939
+ # client_token: "ClientToken",
11940
+ # })
11941
+ #
11942
+ # @example Response structure
11943
+ #
11944
+ # resp.export_job_id #=> String
11945
+ #
11946
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/StartExportJobV2 AWS API Documentation
11947
+ #
11948
+ # @overload start_export_job_v2(params = {})
11949
+ # @param [Hash] params ({})
11950
+ def start_export_job_v2(params = {}, options = {})
11951
+ req = build_request(:start_export_job_v2, params)
11952
+ req.send_request(options)
11953
+ end
11954
+
11034
11955
  # Adds one or more tags to a resource.
11035
11956
  #
11036
11957
  # @option params [required, String] :resource_arn
@@ -13609,7 +14530,7 @@ module Aws::SecurityHub
13609
14530
  tracer: tracer
13610
14531
  )
13611
14532
  context[:gem_name] = 'aws-sdk-securityhub'
13612
- context[:gem_version] = '1.165.0'
14533
+ context[:gem_version] = '1.167.0'
13613
14534
  Seahorse::Client::Request.new(handlers, context)
13614
14535
  end
13615
14536