aws-sdk-securityhub 1.83.0 → 1.84.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -468,6 +468,67 @@ module Aws::SecurityHub
468
468
  req.send_request(options)
469
469
  end
470
470
 
471
+ # Deletes one or more automation rules.
472
+ #
473
+ # @option params [required, Array<String>] :automation_rules_arns
474
+ # A list of Amazon Resource Names (ARNs) for the rules that are to be
475
+ # deleted.
476
+ #
477
+ # @return [Types::BatchDeleteAutomationRulesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
478
+ #
479
+ # * {Types::BatchDeleteAutomationRulesResponse#processed_automation_rules #processed_automation_rules} => Array&lt;String&gt;
480
+ # * {Types::BatchDeleteAutomationRulesResponse#unprocessed_automation_rules #unprocessed_automation_rules} => Array&lt;Types::UnprocessedAutomationRule&gt;
481
+ #
482
+ #
483
+ # @example Example: To delete one or more automation rules
484
+ #
485
+ # # The following example deletes the specified automation rules.
486
+ #
487
+ # resp = client.batch_delete_automation_rules({
488
+ # automation_rules_arns: [
489
+ # "arn:aws:securityhub:us-east-1:123456789012:automation-rule/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
490
+ # "arn:aws:securityhub:us-east-1:123456789012:automation-rule/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
491
+ # ],
492
+ # })
493
+ #
494
+ # resp.to_h outputs the following:
495
+ # {
496
+ # processed_automation_rules: [
497
+ # "arn:aws:securityhub:us-east-1:123456789012:automation-rule/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
498
+ # ],
499
+ # unprocessed_automation_rules: [
500
+ # {
501
+ # error_code: 500,
502
+ # error_message: "InternalException",
503
+ # rule_arn: "arn:aws:securityhub:us-east-1:123456789012:automation-rule/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
504
+ # },
505
+ # ],
506
+ # }
507
+ #
508
+ # @example Request syntax with placeholder values
509
+ #
510
+ # resp = client.batch_delete_automation_rules({
511
+ # automation_rules_arns: ["NonEmptyString"], # required
512
+ # })
513
+ #
514
+ # @example Response structure
515
+ #
516
+ # resp.processed_automation_rules #=> Array
517
+ # resp.processed_automation_rules[0] #=> String
518
+ # resp.unprocessed_automation_rules #=> Array
519
+ # resp.unprocessed_automation_rules[0].rule_arn #=> String
520
+ # resp.unprocessed_automation_rules[0].error_code #=> Integer
521
+ # resp.unprocessed_automation_rules[0].error_message #=> String
522
+ #
523
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchDeleteAutomationRules AWS API Documentation
524
+ #
525
+ # @overload batch_delete_automation_rules(params = {})
526
+ # @param [Hash] params ({})
527
+ def batch_delete_automation_rules(params = {}, options = {})
528
+ req = build_request(:batch_delete_automation_rules, params)
529
+ req.send_request(options)
530
+ end
531
+
471
532
  # Disables the standards specified by the provided
472
533
  # `StandardsSubscriptionArns`.
473
534
  #
@@ -610,6 +671,281 @@ module Aws::SecurityHub
610
671
  req.send_request(options)
611
672
  end
612
673
 
674
+ # Retrieves a list of details for automation rules based on rule Amazon
675
+ # Resource Names (ARNs).
676
+ #
677
+ # @option params [required, Array<String>] :automation_rules_arns
678
+ # A list of rule ARNs to get details for.
679
+ #
680
+ # @return [Types::BatchGetAutomationRulesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
681
+ #
682
+ # * {Types::BatchGetAutomationRulesResponse#rules #rules} => Array&lt;Types::AutomationRulesConfig&gt;
683
+ # * {Types::BatchGetAutomationRulesResponse#unprocessed_automation_rules #unprocessed_automation_rules} => Array&lt;Types::UnprocessedAutomationRule&gt;
684
+ #
685
+ #
686
+ # @example Example: To update one ore more automation rules
687
+ #
688
+ # # The following example updates the specified automation rules.
689
+ #
690
+ # resp = client.batch_get_automation_rules({
691
+ # automation_rules_arns: [
692
+ # "arn:aws:securityhub:us-east-1:123456789012:automation-rule/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
693
+ # "arn:aws:securityhub:us-east-1:123456789012:automation-rule/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
694
+ # ],
695
+ # })
696
+ #
697
+ # resp.to_h outputs the following:
698
+ # {
699
+ # rules: [
700
+ # {
701
+ # actions: [
702
+ # {
703
+ # finding_fields_update: {
704
+ # workflow: {
705
+ # status: "RESOLVED",
706
+ # },
707
+ # },
708
+ # type: "FINDING_FIELDS_UPDATE",
709
+ # },
710
+ # ],
711
+ # created_at: Time.parse("2022-08-31T01:52:33.250Z"),
712
+ # created_by: "AROAJURBUYQQNL5OL2TIM:TEST-16MJ75L9VBK14",
713
+ # criteria: {
714
+ # aws_account_id: [
715
+ # {
716
+ # comparison: "EQUALS",
717
+ # value: "111122223333",
718
+ # },
719
+ # ],
720
+ # first_observed_at: [
721
+ # {
722
+ # date_range: {
723
+ # unit: "DAYS",
724
+ # value: 5,
725
+ # },
726
+ # },
727
+ # ],
728
+ # type: [
729
+ # {
730
+ # comparison: "EQUALS",
731
+ # value: "Software and Configuration Checks/Industry and Regulatory Standards",
732
+ # },
733
+ # ],
734
+ # },
735
+ # description: "sample rule description 1",
736
+ # rule_arn: "arn:aws:securityhub:us-east-1:123456789012:automation-rule/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
737
+ # rule_name: "sample-rule-name-1",
738
+ # rule_order: 1,
739
+ # rule_status: "ENABLED",
740
+ # updated_at: Time.parse("2022-08-31T01:52:33.250Z"),
741
+ # },
742
+ # {
743
+ # actions: [
744
+ # {
745
+ # finding_fields_update: {
746
+ # workflow: {
747
+ # status: "RESOLVED",
748
+ # },
749
+ # },
750
+ # type: "FINDING_FIELDS_UPDATE",
751
+ # },
752
+ # ],
753
+ # created_at: Time.parse("2022-08-31T01:52:33.250Z"),
754
+ # created_by: "AROAJURBUYQQNL5OL2TIM:TEST-16MJ75L9VBK14",
755
+ # criteria: {
756
+ # resource_type: [
757
+ # {
758
+ # comparison: "EQUALS",
759
+ # value: "Ec2Instance",
760
+ # },
761
+ # ],
762
+ # severity_label: [
763
+ # {
764
+ # comparison: "EQUALS",
765
+ # value: "INFORMATIONAL",
766
+ # },
767
+ # ],
768
+ # },
769
+ # description: "Sample rule description 2",
770
+ # rule_arn: "arn:aws:securityhub:us-east-1:123456789012:automation-rule/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
771
+ # rule_name: "sample-rule-name-2",
772
+ # rule_order: 2,
773
+ # rule_status: "ENABLED",
774
+ # updated_at: Time.parse("2022-08-31T01:52:33.250Z"),
775
+ # },
776
+ # ],
777
+ # }
778
+ #
779
+ # @example Request syntax with placeholder values
780
+ #
781
+ # resp = client.batch_get_automation_rules({
782
+ # automation_rules_arns: ["NonEmptyString"], # required
783
+ # })
784
+ #
785
+ # @example Response structure
786
+ #
787
+ # resp.rules #=> Array
788
+ # resp.rules[0].rule_arn #=> String
789
+ # resp.rules[0].rule_status #=> String, one of "ENABLED", "DISABLED"
790
+ # resp.rules[0].rule_order #=> Integer
791
+ # resp.rules[0].rule_name #=> String
792
+ # resp.rules[0].description #=> String
793
+ # resp.rules[0].is_terminal #=> Boolean
794
+ # resp.rules[0].criteria.product_arn #=> Array
795
+ # resp.rules[0].criteria.product_arn[0].value #=> String
796
+ # resp.rules[0].criteria.product_arn[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
797
+ # resp.rules[0].criteria.aws_account_id #=> Array
798
+ # resp.rules[0].criteria.aws_account_id[0].value #=> String
799
+ # resp.rules[0].criteria.aws_account_id[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
800
+ # resp.rules[0].criteria.id #=> Array
801
+ # resp.rules[0].criteria.id[0].value #=> String
802
+ # resp.rules[0].criteria.id[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
803
+ # resp.rules[0].criteria.generator_id #=> Array
804
+ # resp.rules[0].criteria.generator_id[0].value #=> String
805
+ # resp.rules[0].criteria.generator_id[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
806
+ # resp.rules[0].criteria.type #=> Array
807
+ # resp.rules[0].criteria.type[0].value #=> String
808
+ # resp.rules[0].criteria.type[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
809
+ # resp.rules[0].criteria.first_observed_at #=> Array
810
+ # resp.rules[0].criteria.first_observed_at[0].start #=> String
811
+ # resp.rules[0].criteria.first_observed_at[0].end #=> String
812
+ # resp.rules[0].criteria.first_observed_at[0].date_range.value #=> Integer
813
+ # resp.rules[0].criteria.first_observed_at[0].date_range.unit #=> String, one of "DAYS"
814
+ # resp.rules[0].criteria.last_observed_at #=> Array
815
+ # resp.rules[0].criteria.last_observed_at[0].start #=> String
816
+ # resp.rules[0].criteria.last_observed_at[0].end #=> String
817
+ # resp.rules[0].criteria.last_observed_at[0].date_range.value #=> Integer
818
+ # resp.rules[0].criteria.last_observed_at[0].date_range.unit #=> String, one of "DAYS"
819
+ # resp.rules[0].criteria.created_at #=> Array
820
+ # resp.rules[0].criteria.created_at[0].start #=> String
821
+ # resp.rules[0].criteria.created_at[0].end #=> String
822
+ # resp.rules[0].criteria.created_at[0].date_range.value #=> Integer
823
+ # resp.rules[0].criteria.created_at[0].date_range.unit #=> String, one of "DAYS"
824
+ # resp.rules[0].criteria.updated_at #=> Array
825
+ # resp.rules[0].criteria.updated_at[0].start #=> String
826
+ # resp.rules[0].criteria.updated_at[0].end #=> String
827
+ # resp.rules[0].criteria.updated_at[0].date_range.value #=> Integer
828
+ # resp.rules[0].criteria.updated_at[0].date_range.unit #=> String, one of "DAYS"
829
+ # resp.rules[0].criteria.confidence #=> Array
830
+ # resp.rules[0].criteria.confidence[0].gte #=> Float
831
+ # resp.rules[0].criteria.confidence[0].lte #=> Float
832
+ # resp.rules[0].criteria.confidence[0].eq #=> Float
833
+ # resp.rules[0].criteria.criticality #=> Array
834
+ # resp.rules[0].criteria.criticality[0].gte #=> Float
835
+ # resp.rules[0].criteria.criticality[0].lte #=> Float
836
+ # resp.rules[0].criteria.criticality[0].eq #=> Float
837
+ # resp.rules[0].criteria.title #=> Array
838
+ # resp.rules[0].criteria.title[0].value #=> String
839
+ # resp.rules[0].criteria.title[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
840
+ # resp.rules[0].criteria.description #=> Array
841
+ # resp.rules[0].criteria.description[0].value #=> String
842
+ # resp.rules[0].criteria.description[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
843
+ # resp.rules[0].criteria.source_url #=> Array
844
+ # resp.rules[0].criteria.source_url[0].value #=> String
845
+ # resp.rules[0].criteria.source_url[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
846
+ # resp.rules[0].criteria.product_name #=> Array
847
+ # resp.rules[0].criteria.product_name[0].value #=> String
848
+ # resp.rules[0].criteria.product_name[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
849
+ # resp.rules[0].criteria.company_name #=> Array
850
+ # resp.rules[0].criteria.company_name[0].value #=> String
851
+ # resp.rules[0].criteria.company_name[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
852
+ # resp.rules[0].criteria.severity_label #=> Array
853
+ # resp.rules[0].criteria.severity_label[0].value #=> String
854
+ # resp.rules[0].criteria.severity_label[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
855
+ # resp.rules[0].criteria.resource_type #=> Array
856
+ # resp.rules[0].criteria.resource_type[0].value #=> String
857
+ # resp.rules[0].criteria.resource_type[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
858
+ # resp.rules[0].criteria.resource_id #=> Array
859
+ # resp.rules[0].criteria.resource_id[0].value #=> String
860
+ # resp.rules[0].criteria.resource_id[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
861
+ # resp.rules[0].criteria.resource_partition #=> Array
862
+ # resp.rules[0].criteria.resource_partition[0].value #=> String
863
+ # resp.rules[0].criteria.resource_partition[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
864
+ # resp.rules[0].criteria.resource_region #=> Array
865
+ # resp.rules[0].criteria.resource_region[0].value #=> String
866
+ # resp.rules[0].criteria.resource_region[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
867
+ # resp.rules[0].criteria.resource_tags #=> Array
868
+ # resp.rules[0].criteria.resource_tags[0].key #=> String
869
+ # resp.rules[0].criteria.resource_tags[0].value #=> String
870
+ # resp.rules[0].criteria.resource_tags[0].comparison #=> String, one of "EQUALS", "NOT_EQUALS"
871
+ # resp.rules[0].criteria.resource_details_other #=> Array
872
+ # resp.rules[0].criteria.resource_details_other[0].key #=> String
873
+ # resp.rules[0].criteria.resource_details_other[0].value #=> String
874
+ # resp.rules[0].criteria.resource_details_other[0].comparison #=> String, one of "EQUALS", "NOT_EQUALS"
875
+ # resp.rules[0].criteria.compliance_status #=> Array
876
+ # resp.rules[0].criteria.compliance_status[0].value #=> String
877
+ # resp.rules[0].criteria.compliance_status[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
878
+ # resp.rules[0].criteria.compliance_security_control_id #=> Array
879
+ # resp.rules[0].criteria.compliance_security_control_id[0].value #=> String
880
+ # resp.rules[0].criteria.compliance_security_control_id[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
881
+ # resp.rules[0].criteria.compliance_associated_standards_id #=> Array
882
+ # resp.rules[0].criteria.compliance_associated_standards_id[0].value #=> String
883
+ # resp.rules[0].criteria.compliance_associated_standards_id[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
884
+ # resp.rules[0].criteria.verification_state #=> Array
885
+ # resp.rules[0].criteria.verification_state[0].value #=> String
886
+ # resp.rules[0].criteria.verification_state[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
887
+ # resp.rules[0].criteria.workflow_status #=> Array
888
+ # resp.rules[0].criteria.workflow_status[0].value #=> String
889
+ # resp.rules[0].criteria.workflow_status[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
890
+ # resp.rules[0].criteria.record_state #=> Array
891
+ # resp.rules[0].criteria.record_state[0].value #=> String
892
+ # resp.rules[0].criteria.record_state[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
893
+ # resp.rules[0].criteria.related_findings_product_arn #=> Array
894
+ # resp.rules[0].criteria.related_findings_product_arn[0].value #=> String
895
+ # resp.rules[0].criteria.related_findings_product_arn[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
896
+ # resp.rules[0].criteria.related_findings_id #=> Array
897
+ # resp.rules[0].criteria.related_findings_id[0].value #=> String
898
+ # resp.rules[0].criteria.related_findings_id[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
899
+ # resp.rules[0].criteria.note_text #=> Array
900
+ # resp.rules[0].criteria.note_text[0].value #=> String
901
+ # resp.rules[0].criteria.note_text[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
902
+ # resp.rules[0].criteria.note_updated_at #=> Array
903
+ # resp.rules[0].criteria.note_updated_at[0].start #=> String
904
+ # resp.rules[0].criteria.note_updated_at[0].end #=> String
905
+ # resp.rules[0].criteria.note_updated_at[0].date_range.value #=> Integer
906
+ # resp.rules[0].criteria.note_updated_at[0].date_range.unit #=> String, one of "DAYS"
907
+ # resp.rules[0].criteria.note_updated_by #=> Array
908
+ # resp.rules[0].criteria.note_updated_by[0].value #=> String
909
+ # resp.rules[0].criteria.note_updated_by[0].comparison #=> String, one of "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS"
910
+ # resp.rules[0].criteria.user_defined_fields #=> Array
911
+ # resp.rules[0].criteria.user_defined_fields[0].key #=> String
912
+ # resp.rules[0].criteria.user_defined_fields[0].value #=> String
913
+ # resp.rules[0].criteria.user_defined_fields[0].comparison #=> String, one of "EQUALS", "NOT_EQUALS"
914
+ # resp.rules[0].actions #=> Array
915
+ # resp.rules[0].actions[0].type #=> String, one of "FINDING_FIELDS_UPDATE"
916
+ # resp.rules[0].actions[0].finding_fields_update.note.text #=> String
917
+ # resp.rules[0].actions[0].finding_fields_update.note.updated_by #=> String
918
+ # resp.rules[0].actions[0].finding_fields_update.severity.normalized #=> Integer
919
+ # resp.rules[0].actions[0].finding_fields_update.severity.product #=> Float
920
+ # resp.rules[0].actions[0].finding_fields_update.severity.label #=> String, one of "INFORMATIONAL", "LOW", "MEDIUM", "HIGH", "CRITICAL"
921
+ # resp.rules[0].actions[0].finding_fields_update.verification_state #=> String, one of "UNKNOWN", "TRUE_POSITIVE", "FALSE_POSITIVE", "BENIGN_POSITIVE"
922
+ # resp.rules[0].actions[0].finding_fields_update.confidence #=> Integer
923
+ # resp.rules[0].actions[0].finding_fields_update.criticality #=> Integer
924
+ # resp.rules[0].actions[0].finding_fields_update.types #=> Array
925
+ # resp.rules[0].actions[0].finding_fields_update.types[0] #=> String
926
+ # resp.rules[0].actions[0].finding_fields_update.user_defined_fields #=> Hash
927
+ # resp.rules[0].actions[0].finding_fields_update.user_defined_fields["NonEmptyString"] #=> String
928
+ # resp.rules[0].actions[0].finding_fields_update.workflow.status #=> String, one of "NEW", "NOTIFIED", "RESOLVED", "SUPPRESSED"
929
+ # resp.rules[0].actions[0].finding_fields_update.related_findings #=> Array
930
+ # resp.rules[0].actions[0].finding_fields_update.related_findings[0].product_arn #=> String
931
+ # resp.rules[0].actions[0].finding_fields_update.related_findings[0].id #=> String
932
+ # resp.rules[0].created_at #=> Time
933
+ # resp.rules[0].updated_at #=> Time
934
+ # resp.rules[0].created_by #=> String
935
+ # resp.unprocessed_automation_rules #=> Array
936
+ # resp.unprocessed_automation_rules[0].rule_arn #=> String
937
+ # resp.unprocessed_automation_rules[0].error_code #=> Integer
938
+ # resp.unprocessed_automation_rules[0].error_message #=> String
939
+ #
940
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchGetAutomationRules AWS API Documentation
941
+ #
942
+ # @overload batch_get_automation_rules(params = {})
943
+ # @param [Hash] params ({})
944
+ def batch_get_automation_rules(params = {}, options = {})
945
+ req = build_request(:batch_get_automation_rules, params)
946
+ req.send_request(options)
947
+ end
948
+
613
949
  # Provides details about a batch of security controls for the current
614
950
  # Amazon Web Services account and Amazon Web Services Region.
615
951
  #
@@ -926,6 +1262,347 @@ module Aws::SecurityHub
926
1262
  req.send_request(options)
927
1263
  end
928
1264
 
1265
+ # Updates one or more automation rules based on rule Amazon Resource
1266
+ # Names (ARNs) and input parameters.
1267
+ #
1268
+ # @option params [required, Array<Types::UpdateAutomationRulesRequestItem>] :update_automation_rules_request_items
1269
+ # An array of ARNs for the rules that are to be updated. Optionally, you
1270
+ # can also include `RuleStatus` and `RuleOrder`.
1271
+ #
1272
+ # @return [Types::BatchUpdateAutomationRulesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1273
+ #
1274
+ # * {Types::BatchUpdateAutomationRulesResponse#processed_automation_rules #processed_automation_rules} => Array&lt;String&gt;
1275
+ # * {Types::BatchUpdateAutomationRulesResponse#unprocessed_automation_rules #unprocessed_automation_rules} => Array&lt;Types::UnprocessedAutomationRule&gt;
1276
+ #
1277
+ #
1278
+ # @example Example: To update one ore more automation rules
1279
+ #
1280
+ # # The following example updates the specified automation rules.
1281
+ #
1282
+ # resp = client.batch_update_automation_rules({
1283
+ # update_automation_rules_request_items: [
1284
+ # {
1285
+ # rule_arn: "arn:aws:securityhub:us-east-1:123456789012:automation-rule/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
1286
+ # rule_order: 15,
1287
+ # rule_status: "ENABLED",
1288
+ # },
1289
+ # {
1290
+ # rule_arn: "arn:aws:securityhub:us-east-1:123456789012:automation-rule/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
1291
+ # rule_status: "DISABLED",
1292
+ # },
1293
+ # ],
1294
+ # })
1295
+ #
1296
+ # resp.to_h outputs the following:
1297
+ # {
1298
+ # processed_automation_rules: [
1299
+ # "arn:aws:securityhub:us-east-1:123456789012:automation-rule/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
1300
+ # "arn:aws:securityhub:us-east-1:123456789012:automation-rule/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
1301
+ # ],
1302
+ # }
1303
+ #
1304
+ # @example Request syntax with placeholder values
1305
+ #
1306
+ # resp = client.batch_update_automation_rules({
1307
+ # update_automation_rules_request_items: [ # required
1308
+ # {
1309
+ # rule_arn: "NonEmptyString", # required
1310
+ # rule_status: "ENABLED", # accepts ENABLED, DISABLED
1311
+ # rule_order: 1,
1312
+ # description: "NonEmptyString",
1313
+ # rule_name: "NonEmptyString",
1314
+ # is_terminal: false,
1315
+ # criteria: {
1316
+ # product_arn: [
1317
+ # {
1318
+ # value: "NonEmptyString",
1319
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1320
+ # },
1321
+ # ],
1322
+ # aws_account_id: [
1323
+ # {
1324
+ # value: "NonEmptyString",
1325
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1326
+ # },
1327
+ # ],
1328
+ # id: [
1329
+ # {
1330
+ # value: "NonEmptyString",
1331
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1332
+ # },
1333
+ # ],
1334
+ # generator_id: [
1335
+ # {
1336
+ # value: "NonEmptyString",
1337
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1338
+ # },
1339
+ # ],
1340
+ # type: [
1341
+ # {
1342
+ # value: "NonEmptyString",
1343
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1344
+ # },
1345
+ # ],
1346
+ # first_observed_at: [
1347
+ # {
1348
+ # start: "NonEmptyString",
1349
+ # end: "NonEmptyString",
1350
+ # date_range: {
1351
+ # value: 1,
1352
+ # unit: "DAYS", # accepts DAYS
1353
+ # },
1354
+ # },
1355
+ # ],
1356
+ # last_observed_at: [
1357
+ # {
1358
+ # start: "NonEmptyString",
1359
+ # end: "NonEmptyString",
1360
+ # date_range: {
1361
+ # value: 1,
1362
+ # unit: "DAYS", # accepts DAYS
1363
+ # },
1364
+ # },
1365
+ # ],
1366
+ # created_at: [
1367
+ # {
1368
+ # start: "NonEmptyString",
1369
+ # end: "NonEmptyString",
1370
+ # date_range: {
1371
+ # value: 1,
1372
+ # unit: "DAYS", # accepts DAYS
1373
+ # },
1374
+ # },
1375
+ # ],
1376
+ # updated_at: [
1377
+ # {
1378
+ # start: "NonEmptyString",
1379
+ # end: "NonEmptyString",
1380
+ # date_range: {
1381
+ # value: 1,
1382
+ # unit: "DAYS", # accepts DAYS
1383
+ # },
1384
+ # },
1385
+ # ],
1386
+ # confidence: [
1387
+ # {
1388
+ # gte: 1.0,
1389
+ # lte: 1.0,
1390
+ # eq: 1.0,
1391
+ # },
1392
+ # ],
1393
+ # criticality: [
1394
+ # {
1395
+ # gte: 1.0,
1396
+ # lte: 1.0,
1397
+ # eq: 1.0,
1398
+ # },
1399
+ # ],
1400
+ # title: [
1401
+ # {
1402
+ # value: "NonEmptyString",
1403
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1404
+ # },
1405
+ # ],
1406
+ # description: [
1407
+ # {
1408
+ # value: "NonEmptyString",
1409
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1410
+ # },
1411
+ # ],
1412
+ # source_url: [
1413
+ # {
1414
+ # value: "NonEmptyString",
1415
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1416
+ # },
1417
+ # ],
1418
+ # product_name: [
1419
+ # {
1420
+ # value: "NonEmptyString",
1421
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1422
+ # },
1423
+ # ],
1424
+ # company_name: [
1425
+ # {
1426
+ # value: "NonEmptyString",
1427
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1428
+ # },
1429
+ # ],
1430
+ # severity_label: [
1431
+ # {
1432
+ # value: "NonEmptyString",
1433
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1434
+ # },
1435
+ # ],
1436
+ # resource_type: [
1437
+ # {
1438
+ # value: "NonEmptyString",
1439
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1440
+ # },
1441
+ # ],
1442
+ # resource_id: [
1443
+ # {
1444
+ # value: "NonEmptyString",
1445
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1446
+ # },
1447
+ # ],
1448
+ # resource_partition: [
1449
+ # {
1450
+ # value: "NonEmptyString",
1451
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1452
+ # },
1453
+ # ],
1454
+ # resource_region: [
1455
+ # {
1456
+ # value: "NonEmptyString",
1457
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1458
+ # },
1459
+ # ],
1460
+ # resource_tags: [
1461
+ # {
1462
+ # key: "NonEmptyString",
1463
+ # value: "NonEmptyString",
1464
+ # comparison: "EQUALS", # accepts EQUALS, NOT_EQUALS
1465
+ # },
1466
+ # ],
1467
+ # resource_details_other: [
1468
+ # {
1469
+ # key: "NonEmptyString",
1470
+ # value: "NonEmptyString",
1471
+ # comparison: "EQUALS", # accepts EQUALS, NOT_EQUALS
1472
+ # },
1473
+ # ],
1474
+ # compliance_status: [
1475
+ # {
1476
+ # value: "NonEmptyString",
1477
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1478
+ # },
1479
+ # ],
1480
+ # compliance_security_control_id: [
1481
+ # {
1482
+ # value: "NonEmptyString",
1483
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1484
+ # },
1485
+ # ],
1486
+ # compliance_associated_standards_id: [
1487
+ # {
1488
+ # value: "NonEmptyString",
1489
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1490
+ # },
1491
+ # ],
1492
+ # verification_state: [
1493
+ # {
1494
+ # value: "NonEmptyString",
1495
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1496
+ # },
1497
+ # ],
1498
+ # workflow_status: [
1499
+ # {
1500
+ # value: "NonEmptyString",
1501
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1502
+ # },
1503
+ # ],
1504
+ # record_state: [
1505
+ # {
1506
+ # value: "NonEmptyString",
1507
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1508
+ # },
1509
+ # ],
1510
+ # related_findings_product_arn: [
1511
+ # {
1512
+ # value: "NonEmptyString",
1513
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1514
+ # },
1515
+ # ],
1516
+ # related_findings_id: [
1517
+ # {
1518
+ # value: "NonEmptyString",
1519
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1520
+ # },
1521
+ # ],
1522
+ # note_text: [
1523
+ # {
1524
+ # value: "NonEmptyString",
1525
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1526
+ # },
1527
+ # ],
1528
+ # note_updated_at: [
1529
+ # {
1530
+ # start: "NonEmptyString",
1531
+ # end: "NonEmptyString",
1532
+ # date_range: {
1533
+ # value: 1,
1534
+ # unit: "DAYS", # accepts DAYS
1535
+ # },
1536
+ # },
1537
+ # ],
1538
+ # note_updated_by: [
1539
+ # {
1540
+ # value: "NonEmptyString",
1541
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
1542
+ # },
1543
+ # ],
1544
+ # user_defined_fields: [
1545
+ # {
1546
+ # key: "NonEmptyString",
1547
+ # value: "NonEmptyString",
1548
+ # comparison: "EQUALS", # accepts EQUALS, NOT_EQUALS
1549
+ # },
1550
+ # ],
1551
+ # },
1552
+ # actions: [
1553
+ # {
1554
+ # type: "FINDING_FIELDS_UPDATE", # accepts FINDING_FIELDS_UPDATE
1555
+ # finding_fields_update: {
1556
+ # note: {
1557
+ # text: "NonEmptyString", # required
1558
+ # updated_by: "NonEmptyString", # required
1559
+ # },
1560
+ # severity: {
1561
+ # normalized: 1,
1562
+ # product: 1.0,
1563
+ # label: "INFORMATIONAL", # accepts INFORMATIONAL, LOW, MEDIUM, HIGH, CRITICAL
1564
+ # },
1565
+ # verification_state: "UNKNOWN", # accepts UNKNOWN, TRUE_POSITIVE, FALSE_POSITIVE, BENIGN_POSITIVE
1566
+ # confidence: 1,
1567
+ # criticality: 1,
1568
+ # types: ["NonEmptyString"],
1569
+ # user_defined_fields: {
1570
+ # "NonEmptyString" => "NonEmptyString",
1571
+ # },
1572
+ # workflow: {
1573
+ # status: "NEW", # accepts NEW, NOTIFIED, RESOLVED, SUPPRESSED
1574
+ # },
1575
+ # related_findings: [
1576
+ # {
1577
+ # product_arn: "NonEmptyString", # required
1578
+ # id: "NonEmptyString", # required
1579
+ # },
1580
+ # ],
1581
+ # },
1582
+ # },
1583
+ # ],
1584
+ # },
1585
+ # ],
1586
+ # })
1587
+ #
1588
+ # @example Response structure
1589
+ #
1590
+ # resp.processed_automation_rules #=> Array
1591
+ # resp.processed_automation_rules[0] #=> String
1592
+ # resp.unprocessed_automation_rules #=> Array
1593
+ # resp.unprocessed_automation_rules[0].rule_arn #=> String
1594
+ # resp.unprocessed_automation_rules[0].error_code #=> Integer
1595
+ # resp.unprocessed_automation_rules[0].error_message #=> String
1596
+ #
1597
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchUpdateAutomationRules AWS API Documentation
1598
+ #
1599
+ # @overload batch_update_automation_rules(params = {})
1600
+ # @param [Hash] params ({})
1601
+ def batch_update_automation_rules(params = {}, options = {})
1602
+ req = build_request(:batch_update_automation_rules, params)
1603
+ req.send_request(options)
1604
+ end
1605
+
929
1606
  # Used by Security Hub customers to update information about their
930
1607
  # investigation into a finding. Requested by administrator accounts or
931
1608
  # member accounts. Administrator accounts can update findings for their
@@ -1130,170 +1807,577 @@ module Aws::SecurityHub
1130
1807
  # workflow: {
1131
1808
  # status: "NEW", # accepts NEW, NOTIFIED, RESOLVED, SUPPRESSED
1132
1809
  # },
1133
- # related_findings: [
1134
- # {
1135
- # product_arn: "NonEmptyString", # required
1136
- # id: "NonEmptyString", # required
1137
- # },
1138
- # ],
1139
- # })
1140
- #
1141
- # @example Response structure
1142
- #
1143
- # resp.processed_findings #=> Array
1144
- # resp.processed_findings[0].id #=> String
1145
- # resp.processed_findings[0].product_arn #=> String
1146
- # resp.unprocessed_findings #=> Array
1147
- # resp.unprocessed_findings[0].finding_identifier.id #=> String
1148
- # resp.unprocessed_findings[0].finding_identifier.product_arn #=> String
1149
- # resp.unprocessed_findings[0].error_code #=> String
1150
- # resp.unprocessed_findings[0].error_message #=> String
1151
- #
1152
- # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchUpdateFindings AWS API Documentation
1153
- #
1154
- # @overload batch_update_findings(params = {})
1155
- # @param [Hash] params ({})
1156
- def batch_update_findings(params = {}, options = {})
1157
- req = build_request(:batch_update_findings, params)
1158
- req.send_request(options)
1159
- end
1160
-
1161
- # For a batch of security controls and standards, this operation updates
1162
- # the enablement status of a control in a standard.
1163
- #
1164
- # @option params [required, Array<Types::StandardsControlAssociationUpdate>] :standards_control_association_updates
1165
- # Updates the enablement status of a security control in a specified
1166
- # standard.
1167
- #
1168
- # @return [Types::BatchUpdateStandardsControlAssociationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1169
- #
1170
- # * {Types::BatchUpdateStandardsControlAssociationsResponse#unprocessed_association_updates #unprocessed_association_updates} => Array&lt;Types::UnprocessedStandardsControlAssociationUpdate&gt;
1171
- #
1172
- #
1173
- # @example Example: To update enablement status of a batch of controls
1174
- #
1175
- # # The following example disables CloudWatch.12 in CIS AWS Foundations Benchmark v1.2.0. The example returns an error for
1176
- # # CloudTrail.1 because an invalid standard ARN is provided.
1177
- #
1178
- # resp = client.batch_update_standards_control_associations({
1179
- # standards_control_association_updates: [
1180
- # {
1181
- # association_status: "DISABLED",
1182
- # security_control_id: "CloudTrail.1",
1183
- # standards_arn: "arn:aws:securityhub:::ruleset/sample-standard/v/1.1.0",
1184
- # updated_reason: "Not relevant to environment",
1185
- # },
1186
- # {
1187
- # association_status: "DISABLED",
1188
- # security_control_id: "CloudWatch.12",
1189
- # standards_arn: "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0",
1190
- # updated_reason: "Not relevant to environment",
1191
- # },
1192
- # ],
1193
- # })
1194
- #
1195
- # resp.to_h outputs the following:
1196
- # {
1197
- # unprocessed_association_updates: [
1198
- # {
1199
- # error_code: "INVALID_INPUT",
1200
- # error_reason: "Invalid Standards Arn: 'arn:aws:securityhub:::ruleset/sample-standard/v/1.1.0'",
1201
- # standards_control_association_update: {
1202
- # association_status: "DISABLED",
1203
- # security_control_id: "CloudTrail.1",
1204
- # standards_arn: "arn:aws:securityhub:::ruleset/sample-standard/v/1.1.0",
1205
- # updated_reason: "Test Reason",
1206
- # },
1207
- # },
1208
- # ],
1209
- # }
1210
- #
1211
- # @example Request syntax with placeholder values
1212
- #
1213
- # resp = client.batch_update_standards_control_associations({
1214
- # standards_control_association_updates: [ # required
1810
+ # related_findings: [
1811
+ # {
1812
+ # product_arn: "NonEmptyString", # required
1813
+ # id: "NonEmptyString", # required
1814
+ # },
1815
+ # ],
1816
+ # })
1817
+ #
1818
+ # @example Response structure
1819
+ #
1820
+ # resp.processed_findings #=> Array
1821
+ # resp.processed_findings[0].id #=> String
1822
+ # resp.processed_findings[0].product_arn #=> String
1823
+ # resp.unprocessed_findings #=> Array
1824
+ # resp.unprocessed_findings[0].finding_identifier.id #=> String
1825
+ # resp.unprocessed_findings[0].finding_identifier.product_arn #=> String
1826
+ # resp.unprocessed_findings[0].error_code #=> String
1827
+ # resp.unprocessed_findings[0].error_message #=> String
1828
+ #
1829
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchUpdateFindings AWS API Documentation
1830
+ #
1831
+ # @overload batch_update_findings(params = {})
1832
+ # @param [Hash] params ({})
1833
+ def batch_update_findings(params = {}, options = {})
1834
+ req = build_request(:batch_update_findings, params)
1835
+ req.send_request(options)
1836
+ end
1837
+
1838
+ # For a batch of security controls and standards, this operation updates
1839
+ # the enablement status of a control in a standard.
1840
+ #
1841
+ # @option params [required, Array<Types::StandardsControlAssociationUpdate>] :standards_control_association_updates
1842
+ # Updates the enablement status of a security control in a specified
1843
+ # standard.
1844
+ #
1845
+ # @return [Types::BatchUpdateStandardsControlAssociationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1846
+ #
1847
+ # * {Types::BatchUpdateStandardsControlAssociationsResponse#unprocessed_association_updates #unprocessed_association_updates} => Array&lt;Types::UnprocessedStandardsControlAssociationUpdate&gt;
1848
+ #
1849
+ #
1850
+ # @example Example: To update enablement status of a batch of controls
1851
+ #
1852
+ # # The following example disables CloudWatch.12 in CIS AWS Foundations Benchmark v1.2.0. The example returns an error for
1853
+ # # CloudTrail.1 because an invalid standard ARN is provided.
1854
+ #
1855
+ # resp = client.batch_update_standards_control_associations({
1856
+ # standards_control_association_updates: [
1857
+ # {
1858
+ # association_status: "DISABLED",
1859
+ # security_control_id: "CloudTrail.1",
1860
+ # standards_arn: "arn:aws:securityhub:::ruleset/sample-standard/v/1.1.0",
1861
+ # updated_reason: "Not relevant to environment",
1862
+ # },
1863
+ # {
1864
+ # association_status: "DISABLED",
1865
+ # security_control_id: "CloudWatch.12",
1866
+ # standards_arn: "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0",
1867
+ # updated_reason: "Not relevant to environment",
1868
+ # },
1869
+ # ],
1870
+ # })
1871
+ #
1872
+ # resp.to_h outputs the following:
1873
+ # {
1874
+ # unprocessed_association_updates: [
1875
+ # {
1876
+ # error_code: "INVALID_INPUT",
1877
+ # error_reason: "Invalid Standards Arn: 'arn:aws:securityhub:::ruleset/sample-standard/v/1.1.0'",
1878
+ # standards_control_association_update: {
1879
+ # association_status: "DISABLED",
1880
+ # security_control_id: "CloudTrail.1",
1881
+ # standards_arn: "arn:aws:securityhub:::ruleset/sample-standard/v/1.1.0",
1882
+ # updated_reason: "Test Reason",
1883
+ # },
1884
+ # },
1885
+ # ],
1886
+ # }
1887
+ #
1888
+ # @example Request syntax with placeholder values
1889
+ #
1890
+ # resp = client.batch_update_standards_control_associations({
1891
+ # standards_control_association_updates: [ # required
1892
+ # {
1893
+ # standards_arn: "NonEmptyString", # required
1894
+ # security_control_id: "NonEmptyString", # required
1895
+ # association_status: "ENABLED", # required, accepts ENABLED, DISABLED
1896
+ # updated_reason: "NonEmptyString",
1897
+ # },
1898
+ # ],
1899
+ # })
1900
+ #
1901
+ # @example Response structure
1902
+ #
1903
+ # resp.unprocessed_association_updates #=> Array
1904
+ # resp.unprocessed_association_updates[0].standards_control_association_update.standards_arn #=> String
1905
+ # resp.unprocessed_association_updates[0].standards_control_association_update.security_control_id #=> String
1906
+ # resp.unprocessed_association_updates[0].standards_control_association_update.association_status #=> String, one of "ENABLED", "DISABLED"
1907
+ # resp.unprocessed_association_updates[0].standards_control_association_update.updated_reason #=> String
1908
+ # resp.unprocessed_association_updates[0].error_code #=> String, one of "INVALID_INPUT", "ACCESS_DENIED", "NOT_FOUND", "LIMIT_EXCEEDED"
1909
+ # resp.unprocessed_association_updates[0].error_reason #=> String
1910
+ #
1911
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchUpdateStandardsControlAssociations AWS API Documentation
1912
+ #
1913
+ # @overload batch_update_standards_control_associations(params = {})
1914
+ # @param [Hash] params ({})
1915
+ def batch_update_standards_control_associations(params = {}, options = {})
1916
+ req = build_request(:batch_update_standards_control_associations, params)
1917
+ req.send_request(options)
1918
+ end
1919
+
1920
+ # Creates a custom action target in Security Hub.
1921
+ #
1922
+ # You can use custom actions on findings and insights in Security Hub to
1923
+ # trigger target actions in Amazon CloudWatch Events.
1924
+ #
1925
+ # @option params [required, String] :name
1926
+ # The name of the custom action target. Can contain up to 20 characters.
1927
+ #
1928
+ # @option params [required, String] :description
1929
+ # The description for the custom action target.
1930
+ #
1931
+ # @option params [required, String] :id
1932
+ # The ID for the custom action target. Can contain up to 20 alphanumeric
1933
+ # characters.
1934
+ #
1935
+ # @return [Types::CreateActionTargetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1936
+ #
1937
+ # * {Types::CreateActionTargetResponse#action_target_arn #action_target_arn} => String
1938
+ #
1939
+ #
1940
+ # @example Example: To create a custom action target
1941
+ #
1942
+ # # The following example creates a custom action target in Security Hub. Custom actions on findings and insights
1943
+ # # automatically trigger actions in Amazon CloudWatch Events.
1944
+ #
1945
+ # resp = client.create_action_target({
1946
+ # description: "Action to send the finding for remediation tracking",
1947
+ # id: "Remediation",
1948
+ # name: "Send to remediation",
1949
+ # })
1950
+ #
1951
+ # resp.to_h outputs the following:
1952
+ # {
1953
+ # action_target_arn: "arn:aws:securityhub:us-west-1:123456789012:action/custom/Remediation",
1954
+ # }
1955
+ #
1956
+ # @example Request syntax with placeholder values
1957
+ #
1958
+ # resp = client.create_action_target({
1959
+ # name: "NonEmptyString", # required
1960
+ # description: "NonEmptyString", # required
1961
+ # id: "NonEmptyString", # required
1962
+ # })
1963
+ #
1964
+ # @example Response structure
1965
+ #
1966
+ # resp.action_target_arn #=> String
1967
+ #
1968
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/CreateActionTarget AWS API Documentation
1969
+ #
1970
+ # @overload create_action_target(params = {})
1971
+ # @param [Hash] params ({})
1972
+ def create_action_target(params = {}, options = {})
1973
+ req = build_request(:create_action_target, params)
1974
+ req.send_request(options)
1975
+ end
1976
+
1977
+ # Creates an automation rule based on input parameters.
1978
+ #
1979
+ # @option params [Hash<String,String>] :tags
1980
+ # User-defined tags that help you label the purpose of a rule.
1981
+ #
1982
+ # @option params [String] :rule_status
1983
+ # Whether the rule is active after it is created. If this parameter is
1984
+ # equal to `Enabled`, Security Hub will apply the rule to findings and
1985
+ # finding updates after the rule is created. To change the value of this
1986
+ # parameter after creating a rule, use `BatchUpdateAutomationRules`.
1987
+ #
1988
+ # @option params [required, Integer] :rule_order
1989
+ # An integer ranging from 1 to 1000 that represents the order in which
1990
+ # the rule action is applied to findings. Security Hub applies rules
1991
+ # with lower values for this parameter first.
1992
+ #
1993
+ # @option params [required, String] :rule_name
1994
+ # The name of the rule.
1995
+ #
1996
+ # @option params [required, String] :description
1997
+ # A description of the rule.
1998
+ #
1999
+ # @option params [Boolean] :is_terminal
2000
+ # Specifies whether a rule is the last to be applied with respect to a
2001
+ # finding that matches the rule criteria. This is useful when a finding
2002
+ # matches the criteria for multiple rules, and each rule has different
2003
+ # actions. If the value of this field is set to `true` for a rule,
2004
+ # Security Hub applies the rule action to a finding that matches the
2005
+ # rule criteria and won't evaluate other rules for the finding. The
2006
+ # default value of this field is `false`.
2007
+ #
2008
+ # @option params [required, Types::AutomationRulesFindingFilters] :criteria
2009
+ # A set of ASFF finding field attributes and corresponding expected
2010
+ # values that Security Hub uses to filter findings. If a finding matches
2011
+ # the conditions specified in this parameter, Security Hub applies the
2012
+ # rule action to the finding.
2013
+ #
2014
+ # @option params [required, Array<Types::AutomationRulesAction>] :actions
2015
+ # One or more actions to update finding fields if a finding matches the
2016
+ # conditions specified in `Criteria`.
2017
+ #
2018
+ # @return [Types::CreateAutomationRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2019
+ #
2020
+ # * {Types::CreateAutomationRuleResponse#rule_arn #rule_arn} => String
2021
+ #
2022
+ #
2023
+ # @example Example: To create an automation rule
2024
+ #
2025
+ # # The following example creates an automation rule.
2026
+ #
2027
+ # resp = client.create_automation_rule({
2028
+ # actions: [
2029
+ # {
2030
+ # finding_fields_update: {
2031
+ # note: {
2032
+ # text: "This is a critical S3 bucket, please look into this ASAP",
2033
+ # updated_by: "test-user",
2034
+ # },
2035
+ # severity: {
2036
+ # label: "CRITICAL",
2037
+ # },
2038
+ # },
2039
+ # type: "FINDING_FIELDS_UPDATE",
2040
+ # },
2041
+ # ],
2042
+ # criteria: {
2043
+ # compliance_status: [
2044
+ # {
2045
+ # comparison: "EQUALS",
2046
+ # value: "FAILED",
2047
+ # },
2048
+ # ],
2049
+ # product_name: [
2050
+ # {
2051
+ # comparison: "EQUALS",
2052
+ # value: "Security Hub",
2053
+ # },
2054
+ # ],
2055
+ # record_state: [
2056
+ # {
2057
+ # comparison: "EQUALS",
2058
+ # value: "ACTIVE",
2059
+ # },
2060
+ # ],
2061
+ # resource_id: [
2062
+ # {
2063
+ # comparison: "EQUALS",
2064
+ # value: "arn:aws:s3:::examplebucket/developers/design_info.doc",
2065
+ # },
2066
+ # ],
2067
+ # workflow_status: [
2068
+ # {
2069
+ # comparison: "EQUALS",
2070
+ # value: "NEW",
2071
+ # },
2072
+ # ],
2073
+ # },
2074
+ # description: "Elevate finding severity to Critical for important resources",
2075
+ # is_terminal: false,
2076
+ # rule_name: "Elevate severity for important resources",
2077
+ # rule_order: 1,
2078
+ # rule_status: "ENABLED",
2079
+ # tags: {
2080
+ # "important-resources-rule" => "s3-bucket",
2081
+ # },
2082
+ # })
2083
+ #
2084
+ # resp.to_h outputs the following:
2085
+ # {
2086
+ # rule_arn: "arn:aws:securityhub:us-east-1:123456789012:automation-rule/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
2087
+ # }
2088
+ #
2089
+ # @example Request syntax with placeholder values
2090
+ #
2091
+ # resp = client.create_automation_rule({
2092
+ # tags: {
2093
+ # "TagKey" => "TagValue",
2094
+ # },
2095
+ # rule_status: "ENABLED", # accepts ENABLED, DISABLED
2096
+ # rule_order: 1, # required
2097
+ # rule_name: "NonEmptyString", # required
2098
+ # description: "NonEmptyString", # required
2099
+ # is_terminal: false,
2100
+ # criteria: { # required
2101
+ # product_arn: [
2102
+ # {
2103
+ # value: "NonEmptyString",
2104
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2105
+ # },
2106
+ # ],
2107
+ # aws_account_id: [
2108
+ # {
2109
+ # value: "NonEmptyString",
2110
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2111
+ # },
2112
+ # ],
2113
+ # id: [
2114
+ # {
2115
+ # value: "NonEmptyString",
2116
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2117
+ # },
2118
+ # ],
2119
+ # generator_id: [
2120
+ # {
2121
+ # value: "NonEmptyString",
2122
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2123
+ # },
2124
+ # ],
2125
+ # type: [
2126
+ # {
2127
+ # value: "NonEmptyString",
2128
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2129
+ # },
2130
+ # ],
2131
+ # first_observed_at: [
2132
+ # {
2133
+ # start: "NonEmptyString",
2134
+ # end: "NonEmptyString",
2135
+ # date_range: {
2136
+ # value: 1,
2137
+ # unit: "DAYS", # accepts DAYS
2138
+ # },
2139
+ # },
2140
+ # ],
2141
+ # last_observed_at: [
2142
+ # {
2143
+ # start: "NonEmptyString",
2144
+ # end: "NonEmptyString",
2145
+ # date_range: {
2146
+ # value: 1,
2147
+ # unit: "DAYS", # accepts DAYS
2148
+ # },
2149
+ # },
2150
+ # ],
2151
+ # created_at: [
2152
+ # {
2153
+ # start: "NonEmptyString",
2154
+ # end: "NonEmptyString",
2155
+ # date_range: {
2156
+ # value: 1,
2157
+ # unit: "DAYS", # accepts DAYS
2158
+ # },
2159
+ # },
2160
+ # ],
2161
+ # updated_at: [
2162
+ # {
2163
+ # start: "NonEmptyString",
2164
+ # end: "NonEmptyString",
2165
+ # date_range: {
2166
+ # value: 1,
2167
+ # unit: "DAYS", # accepts DAYS
2168
+ # },
2169
+ # },
2170
+ # ],
2171
+ # confidence: [
2172
+ # {
2173
+ # gte: 1.0,
2174
+ # lte: 1.0,
2175
+ # eq: 1.0,
2176
+ # },
2177
+ # ],
2178
+ # criticality: [
2179
+ # {
2180
+ # gte: 1.0,
2181
+ # lte: 1.0,
2182
+ # eq: 1.0,
2183
+ # },
2184
+ # ],
2185
+ # title: [
2186
+ # {
2187
+ # value: "NonEmptyString",
2188
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2189
+ # },
2190
+ # ],
2191
+ # description: [
2192
+ # {
2193
+ # value: "NonEmptyString",
2194
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2195
+ # },
2196
+ # ],
2197
+ # source_url: [
2198
+ # {
2199
+ # value: "NonEmptyString",
2200
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2201
+ # },
2202
+ # ],
2203
+ # product_name: [
2204
+ # {
2205
+ # value: "NonEmptyString",
2206
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2207
+ # },
2208
+ # ],
2209
+ # company_name: [
2210
+ # {
2211
+ # value: "NonEmptyString",
2212
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2213
+ # },
2214
+ # ],
2215
+ # severity_label: [
2216
+ # {
2217
+ # value: "NonEmptyString",
2218
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2219
+ # },
2220
+ # ],
2221
+ # resource_type: [
2222
+ # {
2223
+ # value: "NonEmptyString",
2224
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2225
+ # },
2226
+ # ],
2227
+ # resource_id: [
2228
+ # {
2229
+ # value: "NonEmptyString",
2230
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2231
+ # },
2232
+ # ],
2233
+ # resource_partition: [
2234
+ # {
2235
+ # value: "NonEmptyString",
2236
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2237
+ # },
2238
+ # ],
2239
+ # resource_region: [
2240
+ # {
2241
+ # value: "NonEmptyString",
2242
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2243
+ # },
2244
+ # ],
2245
+ # resource_tags: [
2246
+ # {
2247
+ # key: "NonEmptyString",
2248
+ # value: "NonEmptyString",
2249
+ # comparison: "EQUALS", # accepts EQUALS, NOT_EQUALS
2250
+ # },
2251
+ # ],
2252
+ # resource_details_other: [
2253
+ # {
2254
+ # key: "NonEmptyString",
2255
+ # value: "NonEmptyString",
2256
+ # comparison: "EQUALS", # accepts EQUALS, NOT_EQUALS
2257
+ # },
2258
+ # ],
2259
+ # compliance_status: [
2260
+ # {
2261
+ # value: "NonEmptyString",
2262
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2263
+ # },
2264
+ # ],
2265
+ # compliance_security_control_id: [
2266
+ # {
2267
+ # value: "NonEmptyString",
2268
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2269
+ # },
2270
+ # ],
2271
+ # compliance_associated_standards_id: [
2272
+ # {
2273
+ # value: "NonEmptyString",
2274
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2275
+ # },
2276
+ # ],
2277
+ # verification_state: [
2278
+ # {
2279
+ # value: "NonEmptyString",
2280
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2281
+ # },
2282
+ # ],
2283
+ # workflow_status: [
2284
+ # {
2285
+ # value: "NonEmptyString",
2286
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2287
+ # },
2288
+ # ],
2289
+ # record_state: [
2290
+ # {
2291
+ # value: "NonEmptyString",
2292
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2293
+ # },
2294
+ # ],
2295
+ # related_findings_product_arn: [
2296
+ # {
2297
+ # value: "NonEmptyString",
2298
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2299
+ # },
2300
+ # ],
2301
+ # related_findings_id: [
2302
+ # {
2303
+ # value: "NonEmptyString",
2304
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2305
+ # },
2306
+ # ],
2307
+ # note_text: [
2308
+ # {
2309
+ # value: "NonEmptyString",
2310
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2311
+ # },
2312
+ # ],
2313
+ # note_updated_at: [
2314
+ # {
2315
+ # start: "NonEmptyString",
2316
+ # end: "NonEmptyString",
2317
+ # date_range: {
2318
+ # value: 1,
2319
+ # unit: "DAYS", # accepts DAYS
2320
+ # },
2321
+ # },
2322
+ # ],
2323
+ # note_updated_by: [
2324
+ # {
2325
+ # value: "NonEmptyString",
2326
+ # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
2327
+ # },
2328
+ # ],
2329
+ # user_defined_fields: [
2330
+ # {
2331
+ # key: "NonEmptyString",
2332
+ # value: "NonEmptyString",
2333
+ # comparison: "EQUALS", # accepts EQUALS, NOT_EQUALS
2334
+ # },
2335
+ # ],
2336
+ # },
2337
+ # actions: [ # required
1215
2338
  # {
1216
- # standards_arn: "NonEmptyString", # required
1217
- # security_control_id: "NonEmptyString", # required
1218
- # association_status: "ENABLED", # required, accepts ENABLED, DISABLED
1219
- # updated_reason: "NonEmptyString",
2339
+ # type: "FINDING_FIELDS_UPDATE", # accepts FINDING_FIELDS_UPDATE
2340
+ # finding_fields_update: {
2341
+ # note: {
2342
+ # text: "NonEmptyString", # required
2343
+ # updated_by: "NonEmptyString", # required
2344
+ # },
2345
+ # severity: {
2346
+ # normalized: 1,
2347
+ # product: 1.0,
2348
+ # label: "INFORMATIONAL", # accepts INFORMATIONAL, LOW, MEDIUM, HIGH, CRITICAL
2349
+ # },
2350
+ # verification_state: "UNKNOWN", # accepts UNKNOWN, TRUE_POSITIVE, FALSE_POSITIVE, BENIGN_POSITIVE
2351
+ # confidence: 1,
2352
+ # criticality: 1,
2353
+ # types: ["NonEmptyString"],
2354
+ # user_defined_fields: {
2355
+ # "NonEmptyString" => "NonEmptyString",
2356
+ # },
2357
+ # workflow: {
2358
+ # status: "NEW", # accepts NEW, NOTIFIED, RESOLVED, SUPPRESSED
2359
+ # },
2360
+ # related_findings: [
2361
+ # {
2362
+ # product_arn: "NonEmptyString", # required
2363
+ # id: "NonEmptyString", # required
2364
+ # },
2365
+ # ],
2366
+ # },
1220
2367
  # },
1221
2368
  # ],
1222
2369
  # })
1223
2370
  #
1224
2371
  # @example Response structure
1225
2372
  #
1226
- # resp.unprocessed_association_updates #=> Array
1227
- # resp.unprocessed_association_updates[0].standards_control_association_update.standards_arn #=> String
1228
- # resp.unprocessed_association_updates[0].standards_control_association_update.security_control_id #=> String
1229
- # resp.unprocessed_association_updates[0].standards_control_association_update.association_status #=> String, one of "ENABLED", "DISABLED"
1230
- # resp.unprocessed_association_updates[0].standards_control_association_update.updated_reason #=> String
1231
- # resp.unprocessed_association_updates[0].error_code #=> String, one of "INVALID_INPUT", "ACCESS_DENIED", "NOT_FOUND", "LIMIT_EXCEEDED"
1232
- # resp.unprocessed_association_updates[0].error_reason #=> String
1233
- #
1234
- # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchUpdateStandardsControlAssociations AWS API Documentation
1235
- #
1236
- # @overload batch_update_standards_control_associations(params = {})
1237
- # @param [Hash] params ({})
1238
- def batch_update_standards_control_associations(params = {}, options = {})
1239
- req = build_request(:batch_update_standards_control_associations, params)
1240
- req.send_request(options)
1241
- end
1242
-
1243
- # Creates a custom action target in Security Hub.
1244
- #
1245
- # You can use custom actions on findings and insights in Security Hub to
1246
- # trigger target actions in Amazon CloudWatch Events.
1247
- #
1248
- # @option params [required, String] :name
1249
- # The name of the custom action target. Can contain up to 20 characters.
1250
- #
1251
- # @option params [required, String] :description
1252
- # The description for the custom action target.
1253
- #
1254
- # @option params [required, String] :id
1255
- # The ID for the custom action target. Can contain up to 20 alphanumeric
1256
- # characters.
1257
- #
1258
- # @return [Types::CreateActionTargetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1259
- #
1260
- # * {Types::CreateActionTargetResponse#action_target_arn #action_target_arn} => String
1261
- #
1262
- #
1263
- # @example Example: To create a custom action target
1264
- #
1265
- # # The following example creates a custom action target in Security Hub. Custom actions on findings and insights
1266
- # # automatically trigger actions in Amazon CloudWatch Events.
1267
- #
1268
- # resp = client.create_action_target({
1269
- # description: "Action to send the finding for remediation tracking",
1270
- # id: "Remediation",
1271
- # name: "Send to remediation",
1272
- # })
1273
- #
1274
- # resp.to_h outputs the following:
1275
- # {
1276
- # action_target_arn: "arn:aws:securityhub:us-west-1:123456789012:action/custom/Remediation",
1277
- # }
1278
- #
1279
- # @example Request syntax with placeholder values
1280
- #
1281
- # resp = client.create_action_target({
1282
- # name: "NonEmptyString", # required
1283
- # description: "NonEmptyString", # required
1284
- # id: "NonEmptyString", # required
1285
- # })
1286
- #
1287
- # @example Response structure
1288
- #
1289
- # resp.action_target_arn #=> String
2373
+ # resp.rule_arn #=> String
1290
2374
  #
1291
- # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/CreateActionTarget AWS API Documentation
2375
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/CreateAutomationRule AWS API Documentation
1292
2376
  #
1293
- # @overload create_action_target(params = {})
2377
+ # @overload create_automation_rule(params = {})
1294
2378
  # @param [Hash] params ({})
1295
- def create_action_target(params = {}, options = {})
1296
- req = build_request(:create_action_target, params)
2379
+ def create_automation_rule(params = {}, options = {})
2380
+ req = build_request(:create_automation_rule, params)
1297
2381
  req.send_request(options)
1298
2382
  end
1299
2383
 
@@ -5161,6 +6245,90 @@ module Aws::SecurityHub
5161
6245
  req.send_request(options)
5162
6246
  end
5163
6247
 
6248
+ # A list of automation rules and their metadata for the calling account.
6249
+ #
6250
+ # @option params [String] :next_token
6251
+ # A token to specify where to start paginating the response. This is the
6252
+ # `NextToken` from a previously truncated response. On your first call
6253
+ # to the `ListAutomationRules` API, set the value of this parameter to
6254
+ # `NULL`.
6255
+ #
6256
+ # @option params [Integer] :max_results
6257
+ # The maximum number of rules to return in the response. This currently
6258
+ # ranges from 1 to 100.
6259
+ #
6260
+ # @return [Types::ListAutomationRulesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6261
+ #
6262
+ # * {Types::ListAutomationRulesResponse#automation_rules_metadata #automation_rules_metadata} => Array&lt;Types::AutomationRulesMetadata&gt;
6263
+ # * {Types::ListAutomationRulesResponse#next_token #next_token} => String
6264
+ #
6265
+ #
6266
+ # @example Example: To list automation rules
6267
+ #
6268
+ # # The following example lists automation rules and rule metadata in the calling account.
6269
+ #
6270
+ # resp = client.list_automation_rules({
6271
+ # max_results: 2,
6272
+ # next_token: "example-token",
6273
+ # })
6274
+ #
6275
+ # resp.to_h outputs the following:
6276
+ # {
6277
+ # automation_rules_metadata: [
6278
+ # {
6279
+ # created_at: Time.parse("2022-08-31T01:52:33.250Z"),
6280
+ # created_by: "AROAJURBUYQQNL5OL2TIM:TEST-16MJ75L9VBK14",
6281
+ # description: "IAM.8 is a known issue and can be resolved",
6282
+ # rule_arn: "arn:aws:securityhub:us-east-1:123456789012:automation-rule/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
6283
+ # rule_name: "sample-rule-name-1",
6284
+ # rule_order: 1,
6285
+ # rule_status: "ENABLED",
6286
+ # updated_at: Time.parse("2022-08-31T01:52:33.250Z"),
6287
+ # },
6288
+ # {
6289
+ # created_at: Time.parse("2022-08-31T01:52:33.250Z"),
6290
+ # created_by: "AROAJURBUYQQNL5OL2TIM:TEST-16MJ75L9VBK14",
6291
+ # description: "Lambda.2 is a known issue and can be resolved",
6292
+ # rule_arn: "arn:aws:securityhub:us-east-1:123456789012:automation-rule/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
6293
+ # rule_name: "sample-rule-name-2",
6294
+ # rule_order: 2,
6295
+ # rule_status: "ENABLED",
6296
+ # updated_at: Time.parse("2022-08-31T01:52:33.250Z"),
6297
+ # },
6298
+ # ],
6299
+ # next_token: "example-token",
6300
+ # }
6301
+ #
6302
+ # @example Request syntax with placeholder values
6303
+ #
6304
+ # resp = client.list_automation_rules({
6305
+ # next_token: "NextToken",
6306
+ # max_results: 1,
6307
+ # })
6308
+ #
6309
+ # @example Response structure
6310
+ #
6311
+ # resp.automation_rules_metadata #=> Array
6312
+ # resp.automation_rules_metadata[0].rule_arn #=> String
6313
+ # resp.automation_rules_metadata[0].rule_status #=> String, one of "ENABLED", "DISABLED"
6314
+ # resp.automation_rules_metadata[0].rule_order #=> Integer
6315
+ # resp.automation_rules_metadata[0].rule_name #=> String
6316
+ # resp.automation_rules_metadata[0].description #=> String
6317
+ # resp.automation_rules_metadata[0].is_terminal #=> Boolean
6318
+ # resp.automation_rules_metadata[0].created_at #=> Time
6319
+ # resp.automation_rules_metadata[0].updated_at #=> Time
6320
+ # resp.automation_rules_metadata[0].created_by #=> String
6321
+ # resp.next_token #=> String
6322
+ #
6323
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListAutomationRules AWS API Documentation
6324
+ #
6325
+ # @overload list_automation_rules(params = {})
6326
+ # @param [Hash] params ({})
6327
+ def list_automation_rules(params = {}, options = {})
6328
+ req = build_request(:list_automation_rules, params)
6329
+ req.send_request(options)
6330
+ end
6331
+
5164
6332
  # Lists all findings-generating solutions (products) that you are
5165
6333
  # subscribed to receive findings from in Security Hub.
5166
6334
  #
@@ -7515,7 +8683,7 @@ module Aws::SecurityHub
7515
8683
  params: params,
7516
8684
  config: config)
7517
8685
  context[:gem_name] = 'aws-sdk-securityhub'
7518
- context[:gem_version] = '1.83.0'
8686
+ context[:gem_version] = '1.84.0'
7519
8687
  Seahorse::Client::Request.new(handlers, context)
7520
8688
  end
7521
8689