aws-sdk-budgets 1.35.0 → 1.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f2fc92baebba83690855ca3306fc983735fc8d9e9c39cf7d14912e16dbc44ab8
4
- data.tar.gz: 450423430b98b85570ff17bd050075a1f805636832f358e0ddec2e3ede92c22a
3
+ metadata.gz: 46c33dfd5a9bbfd1a99cf783c17012b937488c0faf6912da2e2a56bffdfad0b6
4
+ data.tar.gz: fedfdb9ee563f7abd64a3562f46f518446fa65c25a1ad67de1cb3c3e33ea84b0
5
5
  SHA512:
6
- metadata.gz: 58a0195664e3248890e19ff8edbe6916fb4c4733c81297a7f5f8062217e30a475ccdd0d2782219aca47b38cfb7bd6300e60ce92494e7e8321bc23f2a4054ece3
7
- data.tar.gz: 97bdbc1d07fc53e9ef940f308750dcc295f210fd996f89c058fd4242d827672798b796ddf787d33273633b227c6821eb3b98c75c8de0a0f00184e4ec0c7eaeea
6
+ metadata.gz: a2e5659861222df742a73d96db199c42342b1875fd5201c830bcfbf8afd9033bd0bbf0790d96bbc10c89d14abfab30c9b4221474bb95f7a51268f51dd342793e
7
+ data.tar.gz: 9ecfa5ccc9a99dfd627094ed729b658144b8d60ad3f351f5ef8cef4ac9cd1e09cad541295aa8342f2a16bc10460d7e8581076e7e2ae734aa8f0014c52ea25d12
@@ -48,6 +48,6 @@ require_relative 'aws-sdk-budgets/customizations'
48
48
  # @!group service
49
49
  module Aws::Budgets
50
50
 
51
- GEM_VERSION = '1.35.0'
51
+ GEM_VERSION = '1.36.0'
52
52
 
53
53
  end
@@ -439,6 +439,96 @@ module Aws::Budgets
439
439
  req.send_request(options)
440
440
  end
441
441
 
442
+ # Creates a budget action.
443
+ #
444
+ # @option params [required, String] :account_id
445
+ # The account ID of the user. It should be a 12-digit number.
446
+ #
447
+ # @option params [required, String] :budget_name
448
+ # A string that represents the budget name. The ":" and "\\"
449
+ # characters aren't allowed.
450
+ #
451
+ # @option params [required, String] :notification_type
452
+ # The type of a notification. It must be ACTUAL or FORECASTED.
453
+ #
454
+ # @option params [required, String] :action_type
455
+ # The type of action. This defines the type of tasks that can be carried
456
+ # out by this action. This field also determines the format for
457
+ # definition.
458
+ #
459
+ # @option params [required, Types::ActionThreshold] :action_threshold
460
+ # The trigger threshold of the action.
461
+ #
462
+ # @option params [required, Types::Definition] :definition
463
+ # Specifies all of the type-specific parameters.
464
+ #
465
+ # @option params [required, String] :execution_role_arn
466
+ # The role passed for action execution and reversion. Roles and actions
467
+ # must be in the same account.
468
+ #
469
+ # @option params [required, String] :approval_model
470
+ # This specifies if the action needs manual or automatic approval.
471
+ #
472
+ # @option params [required, Array<Types::Subscriber>] :subscribers
473
+ # A list of subscribers.
474
+ #
475
+ # @return [Types::CreateBudgetActionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
476
+ #
477
+ # * {Types::CreateBudgetActionResponse#account_id #account_id} => String
478
+ # * {Types::CreateBudgetActionResponse#budget_name #budget_name} => String
479
+ # * {Types::CreateBudgetActionResponse#action_id #action_id} => String
480
+ #
481
+ # @example Request syntax with placeholder values
482
+ #
483
+ # resp = client.create_budget_action({
484
+ # account_id: "AccountId", # required
485
+ # budget_name: "BudgetName", # required
486
+ # notification_type: "ACTUAL", # required, accepts ACTUAL, FORECASTED
487
+ # action_type: "APPLY_IAM_POLICY", # required, accepts APPLY_IAM_POLICY, APPLY_SCP_POLICY, RUN_SSM_DOCUMENTS
488
+ # action_threshold: { # required
489
+ # action_threshold_value: 1.0, # required
490
+ # action_threshold_type: "PERCENTAGE", # required, accepts PERCENTAGE, ABSOLUTE_VALUE
491
+ # },
492
+ # definition: { # required
493
+ # iam_action_definition: {
494
+ # policy_arn: "PolicyArn", # required
495
+ # roles: ["Role"],
496
+ # groups: ["Group"],
497
+ # users: ["User"],
498
+ # },
499
+ # scp_action_definition: {
500
+ # policy_id: "PolicyId", # required
501
+ # target_ids: ["TargetId"], # required
502
+ # },
503
+ # ssm_action_definition: {
504
+ # action_sub_type: "STOP_EC2_INSTANCES", # required, accepts STOP_EC2_INSTANCES, STOP_RDS_INSTANCES
505
+ # region: "Region", # required
506
+ # instance_ids: ["InstanceId"], # required
507
+ # },
508
+ # },
509
+ # execution_role_arn: "RoleArn", # required
510
+ # approval_model: "AUTOMATIC", # required, accepts AUTOMATIC, MANUAL
511
+ # subscribers: [ # required
512
+ # {
513
+ # subscription_type: "SNS", # required, accepts SNS, EMAIL
514
+ # address: "SubscriberAddress", # required
515
+ # },
516
+ # ],
517
+ # })
518
+ #
519
+ # @example Response structure
520
+ #
521
+ # resp.account_id #=> String
522
+ # resp.budget_name #=> String
523
+ # resp.action_id #=> String
524
+ #
525
+ # @overload create_budget_action(params = {})
526
+ # @param [Hash] params ({})
527
+ def create_budget_action(params = {}, options = {})
528
+ req = build_request(:create_budget_action, params)
529
+ req.send_request(options)
530
+ end
531
+
442
532
  # Creates a notification. You must create the budget before you create
443
533
  # the associated notification.
444
534
  #
@@ -559,6 +649,71 @@ module Aws::Budgets
559
649
  req.send_request(options)
560
650
  end
561
651
 
652
+ # Deletes a budget action.
653
+ #
654
+ # @option params [required, String] :account_id
655
+ # The account ID of the user. It should be a 12-digit number.
656
+ #
657
+ # @option params [required, String] :budget_name
658
+ # A string that represents the budget name. The ":" and "\\"
659
+ # characters aren't allowed.
660
+ #
661
+ # @option params [required, String] :action_id
662
+ # A system-generated universally unique identifier (UUID) for the
663
+ # action.
664
+ #
665
+ # @return [Types::DeleteBudgetActionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
666
+ #
667
+ # * {Types::DeleteBudgetActionResponse#account_id #account_id} => String
668
+ # * {Types::DeleteBudgetActionResponse#budget_name #budget_name} => String
669
+ # * {Types::DeleteBudgetActionResponse#action #action} => Types::Action
670
+ #
671
+ # @example Request syntax with placeholder values
672
+ #
673
+ # resp = client.delete_budget_action({
674
+ # account_id: "AccountId", # required
675
+ # budget_name: "BudgetName", # required
676
+ # action_id: "ActionId", # required
677
+ # })
678
+ #
679
+ # @example Response structure
680
+ #
681
+ # resp.account_id #=> String
682
+ # resp.budget_name #=> String
683
+ # resp.action.action_id #=> String
684
+ # resp.action.budget_name #=> String
685
+ # resp.action.notification_type #=> String, one of "ACTUAL", "FORECASTED"
686
+ # resp.action.action_type #=> String, one of "APPLY_IAM_POLICY", "APPLY_SCP_POLICY", "RUN_SSM_DOCUMENTS"
687
+ # resp.action.action_threshold.action_threshold_value #=> Float
688
+ # resp.action.action_threshold.action_threshold_type #=> String, one of "PERCENTAGE", "ABSOLUTE_VALUE"
689
+ # resp.action.definition.iam_action_definition.policy_arn #=> String
690
+ # resp.action.definition.iam_action_definition.roles #=> Array
691
+ # resp.action.definition.iam_action_definition.roles[0] #=> String
692
+ # resp.action.definition.iam_action_definition.groups #=> Array
693
+ # resp.action.definition.iam_action_definition.groups[0] #=> String
694
+ # resp.action.definition.iam_action_definition.users #=> Array
695
+ # resp.action.definition.iam_action_definition.users[0] #=> String
696
+ # resp.action.definition.scp_action_definition.policy_id #=> String
697
+ # resp.action.definition.scp_action_definition.target_ids #=> Array
698
+ # resp.action.definition.scp_action_definition.target_ids[0] #=> String
699
+ # resp.action.definition.ssm_action_definition.action_sub_type #=> String, one of "STOP_EC2_INSTANCES", "STOP_RDS_INSTANCES"
700
+ # resp.action.definition.ssm_action_definition.region #=> String
701
+ # resp.action.definition.ssm_action_definition.instance_ids #=> Array
702
+ # resp.action.definition.ssm_action_definition.instance_ids[0] #=> String
703
+ # resp.action.execution_role_arn #=> String
704
+ # resp.action.approval_model #=> String, one of "AUTOMATIC", "MANUAL"
705
+ # resp.action.status #=> String, one of "STANDBY", "PENDING", "EXECUTION_IN_PROGRESS", "EXECUTION_SUCCESS", "EXECUTION_FAILURE", "REVERSE_IN_PROGRESS", "REVERSE_SUCCESS", "REVERSE_FAILURE", "RESET_IN_PROGRESS", "RESET_FAILURE"
706
+ # resp.action.subscribers #=> Array
707
+ # resp.action.subscribers[0].subscription_type #=> String, one of "SNS", "EMAIL"
708
+ # resp.action.subscribers[0].address #=> String
709
+ #
710
+ # @overload delete_budget_action(params = {})
711
+ # @param [Hash] params ({})
712
+ def delete_budget_action(params = {}, options = {})
713
+ req = build_request(:delete_budget_action, params)
714
+ req.send_request(options)
715
+ end
716
+
562
717
  # Deletes a notification.
563
718
  #
564
719
  # Deleting a notification also deletes the subscribers that are
@@ -708,6 +863,294 @@ module Aws::Budgets
708
863
  req.send_request(options)
709
864
  end
710
865
 
866
+ # Describes a budget action detail.
867
+ #
868
+ # @option params [required, String] :account_id
869
+ # The account ID of the user. It should be a 12-digit number.
870
+ #
871
+ # @option params [required, String] :budget_name
872
+ # A string that represents the budget name. The ":" and "\\"
873
+ # characters aren't allowed.
874
+ #
875
+ # @option params [required, String] :action_id
876
+ # A system-generated universally unique identifier (UUID) for the
877
+ # action.
878
+ #
879
+ # @return [Types::DescribeBudgetActionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
880
+ #
881
+ # * {Types::DescribeBudgetActionResponse#account_id #account_id} => String
882
+ # * {Types::DescribeBudgetActionResponse#budget_name #budget_name} => String
883
+ # * {Types::DescribeBudgetActionResponse#action #action} => Types::Action
884
+ #
885
+ # @example Request syntax with placeholder values
886
+ #
887
+ # resp = client.describe_budget_action({
888
+ # account_id: "AccountId", # required
889
+ # budget_name: "BudgetName", # required
890
+ # action_id: "ActionId", # required
891
+ # })
892
+ #
893
+ # @example Response structure
894
+ #
895
+ # resp.account_id #=> String
896
+ # resp.budget_name #=> String
897
+ # resp.action.action_id #=> String
898
+ # resp.action.budget_name #=> String
899
+ # resp.action.notification_type #=> String, one of "ACTUAL", "FORECASTED"
900
+ # resp.action.action_type #=> String, one of "APPLY_IAM_POLICY", "APPLY_SCP_POLICY", "RUN_SSM_DOCUMENTS"
901
+ # resp.action.action_threshold.action_threshold_value #=> Float
902
+ # resp.action.action_threshold.action_threshold_type #=> String, one of "PERCENTAGE", "ABSOLUTE_VALUE"
903
+ # resp.action.definition.iam_action_definition.policy_arn #=> String
904
+ # resp.action.definition.iam_action_definition.roles #=> Array
905
+ # resp.action.definition.iam_action_definition.roles[0] #=> String
906
+ # resp.action.definition.iam_action_definition.groups #=> Array
907
+ # resp.action.definition.iam_action_definition.groups[0] #=> String
908
+ # resp.action.definition.iam_action_definition.users #=> Array
909
+ # resp.action.definition.iam_action_definition.users[0] #=> String
910
+ # resp.action.definition.scp_action_definition.policy_id #=> String
911
+ # resp.action.definition.scp_action_definition.target_ids #=> Array
912
+ # resp.action.definition.scp_action_definition.target_ids[0] #=> String
913
+ # resp.action.definition.ssm_action_definition.action_sub_type #=> String, one of "STOP_EC2_INSTANCES", "STOP_RDS_INSTANCES"
914
+ # resp.action.definition.ssm_action_definition.region #=> String
915
+ # resp.action.definition.ssm_action_definition.instance_ids #=> Array
916
+ # resp.action.definition.ssm_action_definition.instance_ids[0] #=> String
917
+ # resp.action.execution_role_arn #=> String
918
+ # resp.action.approval_model #=> String, one of "AUTOMATIC", "MANUAL"
919
+ # resp.action.status #=> String, one of "STANDBY", "PENDING", "EXECUTION_IN_PROGRESS", "EXECUTION_SUCCESS", "EXECUTION_FAILURE", "REVERSE_IN_PROGRESS", "REVERSE_SUCCESS", "REVERSE_FAILURE", "RESET_IN_PROGRESS", "RESET_FAILURE"
920
+ # resp.action.subscribers #=> Array
921
+ # resp.action.subscribers[0].subscription_type #=> String, one of "SNS", "EMAIL"
922
+ # resp.action.subscribers[0].address #=> String
923
+ #
924
+ # @overload describe_budget_action(params = {})
925
+ # @param [Hash] params ({})
926
+ def describe_budget_action(params = {}, options = {})
927
+ req = build_request(:describe_budget_action, params)
928
+ req.send_request(options)
929
+ end
930
+
931
+ # Describes a budget action history detail.
932
+ #
933
+ # @option params [required, String] :account_id
934
+ # The account ID of the user. It should be a 12-digit number.
935
+ #
936
+ # @option params [required, String] :budget_name
937
+ # A string that represents the budget name. The ":" and "\\"
938
+ # characters aren't allowed.
939
+ #
940
+ # @option params [required, String] :action_id
941
+ # A system-generated universally unique identifier (UUID) for the
942
+ # action.
943
+ #
944
+ # @option params [Types::TimePeriod] :time_period
945
+ # The period of time that is covered by a budget. The period has a start
946
+ # date and an end date. The start date must come before the end date.
947
+ # There are no restrictions on the end date.
948
+ #
949
+ # @option params [Integer] :max_results
950
+ # An integer that represents how many entries a paginated response
951
+ # contains. The maximum is 100.
952
+ #
953
+ # @option params [String] :next_token
954
+ # A generic string.
955
+ #
956
+ # @return [Types::DescribeBudgetActionHistoriesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
957
+ #
958
+ # * {Types::DescribeBudgetActionHistoriesResponse#action_histories #action_histories} => Array&lt;Types::ActionHistory&gt;
959
+ # * {Types::DescribeBudgetActionHistoriesResponse#next_token #next_token} => String
960
+ #
961
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
962
+ #
963
+ # @example Request syntax with placeholder values
964
+ #
965
+ # resp = client.describe_budget_action_histories({
966
+ # account_id: "AccountId", # required
967
+ # budget_name: "BudgetName", # required
968
+ # action_id: "ActionId", # required
969
+ # time_period: {
970
+ # start: Time.now,
971
+ # end: Time.now,
972
+ # },
973
+ # max_results: 1,
974
+ # next_token: "GenericString",
975
+ # })
976
+ #
977
+ # @example Response structure
978
+ #
979
+ # resp.action_histories #=> Array
980
+ # resp.action_histories[0].timestamp #=> Time
981
+ # resp.action_histories[0].status #=> String, one of "STANDBY", "PENDING", "EXECUTION_IN_PROGRESS", "EXECUTION_SUCCESS", "EXECUTION_FAILURE", "REVERSE_IN_PROGRESS", "REVERSE_SUCCESS", "REVERSE_FAILURE", "RESET_IN_PROGRESS", "RESET_FAILURE"
982
+ # resp.action_histories[0].event_type #=> String, one of "SYSTEM", "CREATE_ACTION", "DELETE_ACTION", "UPDATE_ACTION", "EXECUTE_ACTION"
983
+ # resp.action_histories[0].action_history_details.message #=> String
984
+ # resp.action_histories[0].action_history_details.action.action_id #=> String
985
+ # resp.action_histories[0].action_history_details.action.budget_name #=> String
986
+ # resp.action_histories[0].action_history_details.action.notification_type #=> String, one of "ACTUAL", "FORECASTED"
987
+ # resp.action_histories[0].action_history_details.action.action_type #=> String, one of "APPLY_IAM_POLICY", "APPLY_SCP_POLICY", "RUN_SSM_DOCUMENTS"
988
+ # resp.action_histories[0].action_history_details.action.action_threshold.action_threshold_value #=> Float
989
+ # resp.action_histories[0].action_history_details.action.action_threshold.action_threshold_type #=> String, one of "PERCENTAGE", "ABSOLUTE_VALUE"
990
+ # resp.action_histories[0].action_history_details.action.definition.iam_action_definition.policy_arn #=> String
991
+ # resp.action_histories[0].action_history_details.action.definition.iam_action_definition.roles #=> Array
992
+ # resp.action_histories[0].action_history_details.action.definition.iam_action_definition.roles[0] #=> String
993
+ # resp.action_histories[0].action_history_details.action.definition.iam_action_definition.groups #=> Array
994
+ # resp.action_histories[0].action_history_details.action.definition.iam_action_definition.groups[0] #=> String
995
+ # resp.action_histories[0].action_history_details.action.definition.iam_action_definition.users #=> Array
996
+ # resp.action_histories[0].action_history_details.action.definition.iam_action_definition.users[0] #=> String
997
+ # resp.action_histories[0].action_history_details.action.definition.scp_action_definition.policy_id #=> String
998
+ # resp.action_histories[0].action_history_details.action.definition.scp_action_definition.target_ids #=> Array
999
+ # resp.action_histories[0].action_history_details.action.definition.scp_action_definition.target_ids[0] #=> String
1000
+ # resp.action_histories[0].action_history_details.action.definition.ssm_action_definition.action_sub_type #=> String, one of "STOP_EC2_INSTANCES", "STOP_RDS_INSTANCES"
1001
+ # resp.action_histories[0].action_history_details.action.definition.ssm_action_definition.region #=> String
1002
+ # resp.action_histories[0].action_history_details.action.definition.ssm_action_definition.instance_ids #=> Array
1003
+ # resp.action_histories[0].action_history_details.action.definition.ssm_action_definition.instance_ids[0] #=> String
1004
+ # resp.action_histories[0].action_history_details.action.execution_role_arn #=> String
1005
+ # resp.action_histories[0].action_history_details.action.approval_model #=> String, one of "AUTOMATIC", "MANUAL"
1006
+ # resp.action_histories[0].action_history_details.action.status #=> String, one of "STANDBY", "PENDING", "EXECUTION_IN_PROGRESS", "EXECUTION_SUCCESS", "EXECUTION_FAILURE", "REVERSE_IN_PROGRESS", "REVERSE_SUCCESS", "REVERSE_FAILURE", "RESET_IN_PROGRESS", "RESET_FAILURE"
1007
+ # resp.action_histories[0].action_history_details.action.subscribers #=> Array
1008
+ # resp.action_histories[0].action_history_details.action.subscribers[0].subscription_type #=> String, one of "SNS", "EMAIL"
1009
+ # resp.action_histories[0].action_history_details.action.subscribers[0].address #=> String
1010
+ # resp.next_token #=> String
1011
+ #
1012
+ # @overload describe_budget_action_histories(params = {})
1013
+ # @param [Hash] params ({})
1014
+ def describe_budget_action_histories(params = {}, options = {})
1015
+ req = build_request(:describe_budget_action_histories, params)
1016
+ req.send_request(options)
1017
+ end
1018
+
1019
+ # Describes all of the budget actions for an account.
1020
+ #
1021
+ # @option params [required, String] :account_id
1022
+ # The account ID of the user. It should be a 12-digit number.
1023
+ #
1024
+ # @option params [Integer] :max_results
1025
+ # An integer that represents how many entries a paginated response
1026
+ # contains. The maximum is 100.
1027
+ #
1028
+ # @option params [String] :next_token
1029
+ # A generic string.
1030
+ #
1031
+ # @return [Types::DescribeBudgetActionsForAccountResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1032
+ #
1033
+ # * {Types::DescribeBudgetActionsForAccountResponse#actions #actions} => Array&lt;Types::Action&gt;
1034
+ # * {Types::DescribeBudgetActionsForAccountResponse#next_token #next_token} => String
1035
+ #
1036
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1037
+ #
1038
+ # @example Request syntax with placeholder values
1039
+ #
1040
+ # resp = client.describe_budget_actions_for_account({
1041
+ # account_id: "AccountId", # required
1042
+ # max_results: 1,
1043
+ # next_token: "GenericString",
1044
+ # })
1045
+ #
1046
+ # @example Response structure
1047
+ #
1048
+ # resp.actions #=> Array
1049
+ # resp.actions[0].action_id #=> String
1050
+ # resp.actions[0].budget_name #=> String
1051
+ # resp.actions[0].notification_type #=> String, one of "ACTUAL", "FORECASTED"
1052
+ # resp.actions[0].action_type #=> String, one of "APPLY_IAM_POLICY", "APPLY_SCP_POLICY", "RUN_SSM_DOCUMENTS"
1053
+ # resp.actions[0].action_threshold.action_threshold_value #=> Float
1054
+ # resp.actions[0].action_threshold.action_threshold_type #=> String, one of "PERCENTAGE", "ABSOLUTE_VALUE"
1055
+ # resp.actions[0].definition.iam_action_definition.policy_arn #=> String
1056
+ # resp.actions[0].definition.iam_action_definition.roles #=> Array
1057
+ # resp.actions[0].definition.iam_action_definition.roles[0] #=> String
1058
+ # resp.actions[0].definition.iam_action_definition.groups #=> Array
1059
+ # resp.actions[0].definition.iam_action_definition.groups[0] #=> String
1060
+ # resp.actions[0].definition.iam_action_definition.users #=> Array
1061
+ # resp.actions[0].definition.iam_action_definition.users[0] #=> String
1062
+ # resp.actions[0].definition.scp_action_definition.policy_id #=> String
1063
+ # resp.actions[0].definition.scp_action_definition.target_ids #=> Array
1064
+ # resp.actions[0].definition.scp_action_definition.target_ids[0] #=> String
1065
+ # resp.actions[0].definition.ssm_action_definition.action_sub_type #=> String, one of "STOP_EC2_INSTANCES", "STOP_RDS_INSTANCES"
1066
+ # resp.actions[0].definition.ssm_action_definition.region #=> String
1067
+ # resp.actions[0].definition.ssm_action_definition.instance_ids #=> Array
1068
+ # resp.actions[0].definition.ssm_action_definition.instance_ids[0] #=> String
1069
+ # resp.actions[0].execution_role_arn #=> String
1070
+ # resp.actions[0].approval_model #=> String, one of "AUTOMATIC", "MANUAL"
1071
+ # resp.actions[0].status #=> String, one of "STANDBY", "PENDING", "EXECUTION_IN_PROGRESS", "EXECUTION_SUCCESS", "EXECUTION_FAILURE", "REVERSE_IN_PROGRESS", "REVERSE_SUCCESS", "REVERSE_FAILURE", "RESET_IN_PROGRESS", "RESET_FAILURE"
1072
+ # resp.actions[0].subscribers #=> Array
1073
+ # resp.actions[0].subscribers[0].subscription_type #=> String, one of "SNS", "EMAIL"
1074
+ # resp.actions[0].subscribers[0].address #=> String
1075
+ # resp.next_token #=> String
1076
+ #
1077
+ # @overload describe_budget_actions_for_account(params = {})
1078
+ # @param [Hash] params ({})
1079
+ def describe_budget_actions_for_account(params = {}, options = {})
1080
+ req = build_request(:describe_budget_actions_for_account, params)
1081
+ req.send_request(options)
1082
+ end
1083
+
1084
+ # Describes all of the budget actions for a budget.
1085
+ #
1086
+ # @option params [required, String] :account_id
1087
+ # The account ID of the user. It should be a 12-digit number.
1088
+ #
1089
+ # @option params [required, String] :budget_name
1090
+ # A string that represents the budget name. The ":" and "\\"
1091
+ # characters aren't allowed.
1092
+ #
1093
+ # @option params [Integer] :max_results
1094
+ # An integer that represents how many entries a paginated response
1095
+ # contains. The maximum is 100.
1096
+ #
1097
+ # @option params [String] :next_token
1098
+ # A generic string.
1099
+ #
1100
+ # @return [Types::DescribeBudgetActionsForBudgetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1101
+ #
1102
+ # * {Types::DescribeBudgetActionsForBudgetResponse#actions #actions} => Array&lt;Types::Action&gt;
1103
+ # * {Types::DescribeBudgetActionsForBudgetResponse#next_token #next_token} => String
1104
+ #
1105
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1106
+ #
1107
+ # @example Request syntax with placeholder values
1108
+ #
1109
+ # resp = client.describe_budget_actions_for_budget({
1110
+ # account_id: "AccountId", # required
1111
+ # budget_name: "BudgetName", # required
1112
+ # max_results: 1,
1113
+ # next_token: "GenericString",
1114
+ # })
1115
+ #
1116
+ # @example Response structure
1117
+ #
1118
+ # resp.actions #=> Array
1119
+ # resp.actions[0].action_id #=> String
1120
+ # resp.actions[0].budget_name #=> String
1121
+ # resp.actions[0].notification_type #=> String, one of "ACTUAL", "FORECASTED"
1122
+ # resp.actions[0].action_type #=> String, one of "APPLY_IAM_POLICY", "APPLY_SCP_POLICY", "RUN_SSM_DOCUMENTS"
1123
+ # resp.actions[0].action_threshold.action_threshold_value #=> Float
1124
+ # resp.actions[0].action_threshold.action_threshold_type #=> String, one of "PERCENTAGE", "ABSOLUTE_VALUE"
1125
+ # resp.actions[0].definition.iam_action_definition.policy_arn #=> String
1126
+ # resp.actions[0].definition.iam_action_definition.roles #=> Array
1127
+ # resp.actions[0].definition.iam_action_definition.roles[0] #=> String
1128
+ # resp.actions[0].definition.iam_action_definition.groups #=> Array
1129
+ # resp.actions[0].definition.iam_action_definition.groups[0] #=> String
1130
+ # resp.actions[0].definition.iam_action_definition.users #=> Array
1131
+ # resp.actions[0].definition.iam_action_definition.users[0] #=> String
1132
+ # resp.actions[0].definition.scp_action_definition.policy_id #=> String
1133
+ # resp.actions[0].definition.scp_action_definition.target_ids #=> Array
1134
+ # resp.actions[0].definition.scp_action_definition.target_ids[0] #=> String
1135
+ # resp.actions[0].definition.ssm_action_definition.action_sub_type #=> String, one of "STOP_EC2_INSTANCES", "STOP_RDS_INSTANCES"
1136
+ # resp.actions[0].definition.ssm_action_definition.region #=> String
1137
+ # resp.actions[0].definition.ssm_action_definition.instance_ids #=> Array
1138
+ # resp.actions[0].definition.ssm_action_definition.instance_ids[0] #=> String
1139
+ # resp.actions[0].execution_role_arn #=> String
1140
+ # resp.actions[0].approval_model #=> String, one of "AUTOMATIC", "MANUAL"
1141
+ # resp.actions[0].status #=> String, one of "STANDBY", "PENDING", "EXECUTION_IN_PROGRESS", "EXECUTION_SUCCESS", "EXECUTION_FAILURE", "REVERSE_IN_PROGRESS", "REVERSE_SUCCESS", "REVERSE_FAILURE", "RESET_IN_PROGRESS", "RESET_FAILURE"
1142
+ # resp.actions[0].subscribers #=> Array
1143
+ # resp.actions[0].subscribers[0].subscription_type #=> String, one of "SNS", "EMAIL"
1144
+ # resp.actions[0].subscribers[0].address #=> String
1145
+ # resp.next_token #=> String
1146
+ #
1147
+ # @overload describe_budget_actions_for_budget(params = {})
1148
+ # @param [Hash] params ({})
1149
+ def describe_budget_actions_for_budget(params = {}, options = {})
1150
+ req = build_request(:describe_budget_actions_for_budget, params)
1151
+ req.send_request(options)
1152
+ end
1153
+
711
1154
  # Describes the history for `DAILY`, `MONTHLY`, and `QUARTERLY` budgets.
712
1155
  # Budget history isn't available for `ANNUAL` budgets.
713
1156
  #
@@ -968,6 +1411,52 @@ module Aws::Budgets
968
1411
  req.send_request(options)
969
1412
  end
970
1413
 
1414
+ # Executes a budget action.
1415
+ #
1416
+ # @option params [required, String] :account_id
1417
+ # The account ID of the user. It should be a 12-digit number.
1418
+ #
1419
+ # @option params [required, String] :budget_name
1420
+ # A string that represents the budget name. The ":" and "\\"
1421
+ # characters aren't allowed.
1422
+ #
1423
+ # @option params [required, String] :action_id
1424
+ # A system-generated universally unique identifier (UUID) for the
1425
+ # action.
1426
+ #
1427
+ # @option params [required, String] :execution_type
1428
+ # The type of execution.
1429
+ #
1430
+ # @return [Types::ExecuteBudgetActionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1431
+ #
1432
+ # * {Types::ExecuteBudgetActionResponse#account_id #account_id} => String
1433
+ # * {Types::ExecuteBudgetActionResponse#budget_name #budget_name} => String
1434
+ # * {Types::ExecuteBudgetActionResponse#action_id #action_id} => String
1435
+ # * {Types::ExecuteBudgetActionResponse#execution_type #execution_type} => String
1436
+ #
1437
+ # @example Request syntax with placeholder values
1438
+ #
1439
+ # resp = client.execute_budget_action({
1440
+ # account_id: "AccountId", # required
1441
+ # budget_name: "BudgetName", # required
1442
+ # action_id: "ActionId", # required
1443
+ # execution_type: "APPROVE_BUDGET_ACTION", # required, accepts APPROVE_BUDGET_ACTION, RETRY_BUDGET_ACTION, REVERSE_BUDGET_ACTION, RESET_BUDGET_ACTION
1444
+ # })
1445
+ #
1446
+ # @example Response structure
1447
+ #
1448
+ # resp.account_id #=> String
1449
+ # resp.budget_name #=> String
1450
+ # resp.action_id #=> String
1451
+ # resp.execution_type #=> String, one of "APPROVE_BUDGET_ACTION", "RETRY_BUDGET_ACTION", "REVERSE_BUDGET_ACTION", "RESET_BUDGET_ACTION"
1452
+ #
1453
+ # @overload execute_budget_action(params = {})
1454
+ # @param [Hash] params ({})
1455
+ def execute_budget_action(params = {}, options = {})
1456
+ req = build_request(:execute_budget_action, params)
1457
+ req.send_request(options)
1458
+ end
1459
+
971
1460
  # Updates a budget. You can change every part of a budget except for the
972
1461
  # `budgetName` and the `calculatedSpend`. When you modify a budget, the
973
1462
  # `calculatedSpend` drops to zero until AWS has new usage data to use
@@ -1050,6 +1539,147 @@ module Aws::Budgets
1050
1539
  req.send_request(options)
1051
1540
  end
1052
1541
 
1542
+ # Updates a budget action.
1543
+ #
1544
+ # @option params [required, String] :account_id
1545
+ # The account ID of the user. It should be a 12-digit number.
1546
+ #
1547
+ # @option params [required, String] :budget_name
1548
+ # A string that represents the budget name. The ":" and "\\"
1549
+ # characters aren't allowed.
1550
+ #
1551
+ # @option params [required, String] :action_id
1552
+ # A system-generated universally unique identifier (UUID) for the
1553
+ # action.
1554
+ #
1555
+ # @option params [String] :notification_type
1556
+ # The type of a notification. It must be ACTUAL or FORECASTED.
1557
+ #
1558
+ # @option params [Types::ActionThreshold] :action_threshold
1559
+ # The trigger threshold of the action.
1560
+ #
1561
+ # @option params [Types::Definition] :definition
1562
+ # Specifies all of the type-specific parameters.
1563
+ #
1564
+ # @option params [String] :execution_role_arn
1565
+ # The role passed for action execution and reversion. Roles and actions
1566
+ # must be in the same account.
1567
+ #
1568
+ # @option params [String] :approval_model
1569
+ # This specifies if the action needs manual or automatic approval.
1570
+ #
1571
+ # @option params [Array<Types::Subscriber>] :subscribers
1572
+ # A list of subscribers.
1573
+ #
1574
+ # @return [Types::UpdateBudgetActionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1575
+ #
1576
+ # * {Types::UpdateBudgetActionResponse#account_id #account_id} => String
1577
+ # * {Types::UpdateBudgetActionResponse#budget_name #budget_name} => String
1578
+ # * {Types::UpdateBudgetActionResponse#old_action #old_action} => Types::Action
1579
+ # * {Types::UpdateBudgetActionResponse#new_action #new_action} => Types::Action
1580
+ #
1581
+ # @example Request syntax with placeholder values
1582
+ #
1583
+ # resp = client.update_budget_action({
1584
+ # account_id: "AccountId", # required
1585
+ # budget_name: "BudgetName", # required
1586
+ # action_id: "ActionId", # required
1587
+ # notification_type: "ACTUAL", # accepts ACTUAL, FORECASTED
1588
+ # action_threshold: {
1589
+ # action_threshold_value: 1.0, # required
1590
+ # action_threshold_type: "PERCENTAGE", # required, accepts PERCENTAGE, ABSOLUTE_VALUE
1591
+ # },
1592
+ # definition: {
1593
+ # iam_action_definition: {
1594
+ # policy_arn: "PolicyArn", # required
1595
+ # roles: ["Role"],
1596
+ # groups: ["Group"],
1597
+ # users: ["User"],
1598
+ # },
1599
+ # scp_action_definition: {
1600
+ # policy_id: "PolicyId", # required
1601
+ # target_ids: ["TargetId"], # required
1602
+ # },
1603
+ # ssm_action_definition: {
1604
+ # action_sub_type: "STOP_EC2_INSTANCES", # required, accepts STOP_EC2_INSTANCES, STOP_RDS_INSTANCES
1605
+ # region: "Region", # required
1606
+ # instance_ids: ["InstanceId"], # required
1607
+ # },
1608
+ # },
1609
+ # execution_role_arn: "RoleArn",
1610
+ # approval_model: "AUTOMATIC", # accepts AUTOMATIC, MANUAL
1611
+ # subscribers: [
1612
+ # {
1613
+ # subscription_type: "SNS", # required, accepts SNS, EMAIL
1614
+ # address: "SubscriberAddress", # required
1615
+ # },
1616
+ # ],
1617
+ # })
1618
+ #
1619
+ # @example Response structure
1620
+ #
1621
+ # resp.account_id #=> String
1622
+ # resp.budget_name #=> String
1623
+ # resp.old_action.action_id #=> String
1624
+ # resp.old_action.budget_name #=> String
1625
+ # resp.old_action.notification_type #=> String, one of "ACTUAL", "FORECASTED"
1626
+ # resp.old_action.action_type #=> String, one of "APPLY_IAM_POLICY", "APPLY_SCP_POLICY", "RUN_SSM_DOCUMENTS"
1627
+ # resp.old_action.action_threshold.action_threshold_value #=> Float
1628
+ # resp.old_action.action_threshold.action_threshold_type #=> String, one of "PERCENTAGE", "ABSOLUTE_VALUE"
1629
+ # resp.old_action.definition.iam_action_definition.policy_arn #=> String
1630
+ # resp.old_action.definition.iam_action_definition.roles #=> Array
1631
+ # resp.old_action.definition.iam_action_definition.roles[0] #=> String
1632
+ # resp.old_action.definition.iam_action_definition.groups #=> Array
1633
+ # resp.old_action.definition.iam_action_definition.groups[0] #=> String
1634
+ # resp.old_action.definition.iam_action_definition.users #=> Array
1635
+ # resp.old_action.definition.iam_action_definition.users[0] #=> String
1636
+ # resp.old_action.definition.scp_action_definition.policy_id #=> String
1637
+ # resp.old_action.definition.scp_action_definition.target_ids #=> Array
1638
+ # resp.old_action.definition.scp_action_definition.target_ids[0] #=> String
1639
+ # resp.old_action.definition.ssm_action_definition.action_sub_type #=> String, one of "STOP_EC2_INSTANCES", "STOP_RDS_INSTANCES"
1640
+ # resp.old_action.definition.ssm_action_definition.region #=> String
1641
+ # resp.old_action.definition.ssm_action_definition.instance_ids #=> Array
1642
+ # resp.old_action.definition.ssm_action_definition.instance_ids[0] #=> String
1643
+ # resp.old_action.execution_role_arn #=> String
1644
+ # resp.old_action.approval_model #=> String, one of "AUTOMATIC", "MANUAL"
1645
+ # resp.old_action.status #=> String, one of "STANDBY", "PENDING", "EXECUTION_IN_PROGRESS", "EXECUTION_SUCCESS", "EXECUTION_FAILURE", "REVERSE_IN_PROGRESS", "REVERSE_SUCCESS", "REVERSE_FAILURE", "RESET_IN_PROGRESS", "RESET_FAILURE"
1646
+ # resp.old_action.subscribers #=> Array
1647
+ # resp.old_action.subscribers[0].subscription_type #=> String, one of "SNS", "EMAIL"
1648
+ # resp.old_action.subscribers[0].address #=> String
1649
+ # resp.new_action.action_id #=> String
1650
+ # resp.new_action.budget_name #=> String
1651
+ # resp.new_action.notification_type #=> String, one of "ACTUAL", "FORECASTED"
1652
+ # resp.new_action.action_type #=> String, one of "APPLY_IAM_POLICY", "APPLY_SCP_POLICY", "RUN_SSM_DOCUMENTS"
1653
+ # resp.new_action.action_threshold.action_threshold_value #=> Float
1654
+ # resp.new_action.action_threshold.action_threshold_type #=> String, one of "PERCENTAGE", "ABSOLUTE_VALUE"
1655
+ # resp.new_action.definition.iam_action_definition.policy_arn #=> String
1656
+ # resp.new_action.definition.iam_action_definition.roles #=> Array
1657
+ # resp.new_action.definition.iam_action_definition.roles[0] #=> String
1658
+ # resp.new_action.definition.iam_action_definition.groups #=> Array
1659
+ # resp.new_action.definition.iam_action_definition.groups[0] #=> String
1660
+ # resp.new_action.definition.iam_action_definition.users #=> Array
1661
+ # resp.new_action.definition.iam_action_definition.users[0] #=> String
1662
+ # resp.new_action.definition.scp_action_definition.policy_id #=> String
1663
+ # resp.new_action.definition.scp_action_definition.target_ids #=> Array
1664
+ # resp.new_action.definition.scp_action_definition.target_ids[0] #=> String
1665
+ # resp.new_action.definition.ssm_action_definition.action_sub_type #=> String, one of "STOP_EC2_INSTANCES", "STOP_RDS_INSTANCES"
1666
+ # resp.new_action.definition.ssm_action_definition.region #=> String
1667
+ # resp.new_action.definition.ssm_action_definition.instance_ids #=> Array
1668
+ # resp.new_action.definition.ssm_action_definition.instance_ids[0] #=> String
1669
+ # resp.new_action.execution_role_arn #=> String
1670
+ # resp.new_action.approval_model #=> String, one of "AUTOMATIC", "MANUAL"
1671
+ # resp.new_action.status #=> String, one of "STANDBY", "PENDING", "EXECUTION_IN_PROGRESS", "EXECUTION_SUCCESS", "EXECUTION_FAILURE", "REVERSE_IN_PROGRESS", "REVERSE_SUCCESS", "REVERSE_FAILURE", "RESET_IN_PROGRESS", "RESET_FAILURE"
1672
+ # resp.new_action.subscribers #=> Array
1673
+ # resp.new_action.subscribers[0].subscription_type #=> String, one of "SNS", "EMAIL"
1674
+ # resp.new_action.subscribers[0].address #=> String
1675
+ #
1676
+ # @overload update_budget_action(params = {})
1677
+ # @param [Hash] params ({})
1678
+ def update_budget_action(params = {}, options = {})
1679
+ req = build_request(:update_budget_action, params)
1680
+ req.send_request(options)
1681
+ end
1682
+
1053
1683
  # Updates a notification.
1054
1684
  #
1055
1685
  # @option params [required, String] :account_id
@@ -1157,7 +1787,7 @@ module Aws::Budgets
1157
1787
  params: params,
1158
1788
  config: config)
1159
1789
  context[:gem_name] = 'aws-sdk-budgets'
1160
- context[:gem_version] = '1.35.0'
1790
+ context[:gem_version] = '1.36.0'
1161
1791
  Seahorse::Client::Request.new(handlers, context)
1162
1792
  end
1163
1793