aws-sdk-budgets 1.32.0 → 1.37.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7d23c2dab82404112afaa3a4f6355a6c9ff8502b8b8dfe0567b9822a39e21948
4
- data.tar.gz: 97fd4bdffdbc7f439dae059cb248c553e90741c7d1f61aece74a26d2d698ffea
3
+ metadata.gz: 492fcf5c02246e457a48ec1da99fcf8e1c8402bc112d31cbf4fd41c200f4444c
4
+ data.tar.gz: d4a4141868ba478c0ee0f0b01c02e882ec2e495540d088223e7d289d57fbb176
5
5
  SHA512:
6
- metadata.gz: b86c7a71f12a029875bf8af78555765e796a80fbe80609caa031a2ba2eef9e61a37ae54c12526b4da0b0d5dbf380190fee7db65877d52f1e66bef4cd0debe3e8
7
- data.tar.gz: e1e17a6132e5568f8ec51ebe87d0d8bd1462dbad5785f2272ca8c570d2e1029cd0505d64a5a83a2c2412f1b63bb7e50eed7a7a659189d706e715f36a08ca1092
6
+ metadata.gz: a32fa64395225906ea4600399546e72eb7eed147809348e78ed5b234ab5b374b424a87c2f3688b214495e6c85955474c824889a799f4131817b55b0d886a696d
7
+ data.tar.gz: 10c23548bba784479d9cf5ac30731644731d12dc0e6754c66e950b460d27a8599eb11a379d878a5e1de01efe82bd4a465bd88ab07f5f1d5b523e12b0a5ca9e12
@@ -7,6 +7,7 @@
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
+
10
11
  require 'aws-sdk-core'
11
12
  require 'aws-sigv4'
12
13
 
@@ -44,9 +45,9 @@ require_relative 'aws-sdk-budgets/customizations'
44
45
  #
45
46
  # See {Errors} for more information.
46
47
  #
47
- # @service
48
+ # @!group service
48
49
  module Aws::Budgets
49
50
 
50
- GEM_VERSION = '1.32.0'
51
+ GEM_VERSION = '1.37.0'
51
52
 
52
53
  end
@@ -85,13 +85,28 @@ module Aws::Budgets
85
85
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
86
86
  # credentials.
87
87
  #
88
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
89
+ # shared file, such as `~/.aws/config`.
90
+ #
91
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
92
+ #
93
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
94
+ # assume a role after providing credentials via the web.
95
+ #
96
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
97
+ # access token generated from `aws login`.
98
+ #
99
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
100
+ # process that outputs to stdout.
101
+ #
88
102
  # * `Aws::InstanceProfileCredentials` - Used for loading credentials
89
103
  # from an EC2 IMDS on an EC2 instance.
90
104
  #
91
- # * `Aws::SharedCredentials` - Used for loading credentials from a
92
- # shared file, such as `~/.aws/config`.
105
+ # * `Aws::ECSCredentials` - Used for loading credentials from
106
+ # instances running in ECS.
93
107
  #
94
- # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
109
+ # from the Cognito Identity service.
95
110
  #
96
111
  # When `:credentials` are not configured directly, the following
97
112
  # locations will be searched for credentials:
@@ -101,10 +116,10 @@ module Aws::Budgets
101
116
  # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
102
117
  # * `~/.aws/credentials`
103
118
  # * `~/.aws/config`
104
- # * EC2 IMDS instance profile - When used by default, the timeouts are
105
- # very aggressive. Construct and pass an instance of
106
- # `Aws::InstanceProfileCredentails` to enable retries and extended
107
- # timeouts.
119
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
120
+ # are very aggressive. Construct and pass an instance of
121
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
122
+ # enable retries and extended timeouts.
108
123
  #
109
124
  # @option options [required, String] :region
110
125
  # The AWS region to connect to. The configured `:region` is
@@ -424,6 +439,96 @@ module Aws::Budgets
424
439
  req.send_request(options)
425
440
  end
426
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
+
427
532
  # Creates a notification. You must create the budget before you create
428
533
  # the associated notification.
429
534
  #
@@ -544,6 +649,71 @@ module Aws::Budgets
544
649
  req.send_request(options)
545
650
  end
546
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
+
547
717
  # Deletes a notification.
548
718
  #
549
719
  # Deleting a notification also deletes the subscribers that are
@@ -693,6 +863,294 @@ module Aws::Budgets
693
863
  req.send_request(options)
694
864
  end
695
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
+
696
1154
  # Describes the history for `DAILY`, `MONTHLY`, and `QUARTERLY` budgets.
697
1155
  # Budget history isn't available for `ANNUAL` budgets.
698
1156
  #
@@ -719,6 +1177,8 @@ module Aws::Budgets
719
1177
  # * {Types::DescribeBudgetPerformanceHistoryResponse#budget_performance_history #budget_performance_history} => Types::BudgetPerformanceHistory
720
1178
  # * {Types::DescribeBudgetPerformanceHistoryResponse#next_token #next_token} => String
721
1179
  #
1180
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1181
+ #
722
1182
  # @example Request syntax with placeholder values
723
1183
  #
724
1184
  # resp = client.describe_budget_performance_history({
@@ -793,6 +1253,8 @@ module Aws::Budgets
793
1253
  # * {Types::DescribeBudgetsResponse#budgets #budgets} => Array&lt;Types::Budget&gt;
794
1254
  # * {Types::DescribeBudgetsResponse#next_token #next_token} => String
795
1255
  #
1256
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1257
+ #
796
1258
  # @example Request syntax with placeholder values
797
1259
  #
798
1260
  # resp = client.describe_budgets({
@@ -864,6 +1326,8 @@ module Aws::Budgets
864
1326
  # * {Types::DescribeNotificationsForBudgetResponse#notifications #notifications} => Array&lt;Types::Notification&gt;
865
1327
  # * {Types::DescribeNotificationsForBudgetResponse#next_token #next_token} => String
866
1328
  #
1329
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1330
+ #
867
1331
  # @example Request syntax with placeholder values
868
1332
  #
869
1333
  # resp = client.describe_notifications_for_budget({
@@ -915,6 +1379,8 @@ module Aws::Budgets
915
1379
  # * {Types::DescribeSubscribersForNotificationResponse#subscribers #subscribers} => Array&lt;Types::Subscriber&gt;
916
1380
  # * {Types::DescribeSubscribersForNotificationResponse#next_token #next_token} => String
917
1381
  #
1382
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1383
+ #
918
1384
  # @example Request syntax with placeholder values
919
1385
  #
920
1386
  # resp = client.describe_subscribers_for_notification({
@@ -945,6 +1411,52 @@ module Aws::Budgets
945
1411
  req.send_request(options)
946
1412
  end
947
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
+
948
1460
  # Updates a budget. You can change every part of a budget except for the
949
1461
  # `budgetName` and the `calculatedSpend`. When you modify a budget, the
950
1462
  # `calculatedSpend` drops to zero until AWS has new usage data to use
@@ -1027,6 +1539,147 @@ module Aws::Budgets
1027
1539
  req.send_request(options)
1028
1540
  end
1029
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
+
1030
1683
  # Updates a notification.
1031
1684
  #
1032
1685
  # @option params [required, String] :account_id
@@ -1134,7 +1787,7 @@ module Aws::Budgets
1134
1787
  params: params,
1135
1788
  config: config)
1136
1789
  context[:gem_name] = 'aws-sdk-budgets'
1137
- context[:gem_version] = '1.32.0'
1790
+ context[:gem_version] = '1.37.0'
1138
1791
  Seahorse::Client::Request.new(handlers, context)
1139
1792
  end
1140
1793