aws-sdk-budgets 1.32.0 → 1.37.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: 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