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.
@@ -35,6 +35,7 @@ module Aws::Budgets
35
35
  # * {InvalidNextTokenException}
36
36
  # * {InvalidParameterException}
37
37
  # * {NotFoundException}
38
+ # * {ResourceLockedException}
38
39
  #
39
40
  # Additionally, error classes are dynamically generated for service errors based on the error code
40
41
  # if they are not defined above.
@@ -162,5 +163,20 @@ module Aws::Budgets
162
163
  end
163
164
  end
164
165
 
166
+ class ResourceLockedException < ServiceError
167
+
168
+ # @param [Seahorse::Client::RequestContext] context
169
+ # @param [String] message
170
+ # @param [Aws::Budgets::Types::ResourceLockedException] data
171
+ def initialize(context, message, data = Aws::EmptyStructure.new)
172
+ super(context, message, data)
173
+ end
174
+
175
+ # @return [String]
176
+ def message
177
+ @message || @data[:message]
178
+ end
179
+ end
180
+
165
181
  end
166
182
  end
@@ -23,6 +23,138 @@ module Aws::Budgets
23
23
  include Aws::Structure
24
24
  end
25
25
 
26
+ # A budget action resource.
27
+ #
28
+ # @!attribute [rw] action_id
29
+ # A system-generated universally unique identifier (UUID) for the
30
+ # action.
31
+ # @return [String]
32
+ #
33
+ # @!attribute [rw] budget_name
34
+ # A string that represents the budget name. The ":" and "\\"
35
+ # characters aren't allowed.
36
+ # @return [String]
37
+ #
38
+ # @!attribute [rw] notification_type
39
+ # The type of a notification. It must be ACTUAL or FORECASTED.
40
+ # @return [String]
41
+ #
42
+ # @!attribute [rw] action_type
43
+ # The type of action. This defines the type of tasks that can be
44
+ # carried out by this action. This field also determines the format
45
+ # for definition.
46
+ # @return [String]
47
+ #
48
+ # @!attribute [rw] action_threshold
49
+ # The trigger threshold of the action.
50
+ # @return [Types::ActionThreshold]
51
+ #
52
+ # @!attribute [rw] definition
53
+ # Where you specify all of the type-specific parameters.
54
+ # @return [Types::Definition]
55
+ #
56
+ # @!attribute [rw] execution_role_arn
57
+ # The role passed for action execution and reversion. Roles and
58
+ # actions must be in the same account.
59
+ # @return [String]
60
+ #
61
+ # @!attribute [rw] approval_model
62
+ # This specifies if the action needs manual or automatic approval.
63
+ # @return [String]
64
+ #
65
+ # @!attribute [rw] status
66
+ # The status of action.
67
+ # @return [String]
68
+ #
69
+ # @!attribute [rw] subscribers
70
+ # A list of subscribers.
71
+ # @return [Array<Types::Subscriber>]
72
+ #
73
+ class Action < Struct.new(
74
+ :action_id,
75
+ :budget_name,
76
+ :notification_type,
77
+ :action_type,
78
+ :action_threshold,
79
+ :definition,
80
+ :execution_role_arn,
81
+ :approval_model,
82
+ :status,
83
+ :subscribers)
84
+ SENSITIVE = []
85
+ include Aws::Structure
86
+ end
87
+
88
+ # The historical records for a budget action.
89
+ #
90
+ # @!attribute [rw] timestamp
91
+ # A generic time stamp. In Java, it is transformed to a `Date` object.
92
+ # @return [Time]
93
+ #
94
+ # @!attribute [rw] status
95
+ # The status of action at the time of the event.
96
+ # @return [String]
97
+ #
98
+ # @!attribute [rw] event_type
99
+ # This distinguishes between whether the events are triggered by the
100
+ # user or generated by the system.
101
+ # @return [String]
102
+ #
103
+ # @!attribute [rw] action_history_details
104
+ # The description of details of the event.
105
+ # @return [Types::ActionHistoryDetails]
106
+ #
107
+ class ActionHistory < Struct.new(
108
+ :timestamp,
109
+ :status,
110
+ :event_type,
111
+ :action_history_details)
112
+ SENSITIVE = []
113
+ include Aws::Structure
114
+ end
115
+
116
+ # The description of details of the event.
117
+ #
118
+ # @!attribute [rw] message
119
+ # A generic string.
120
+ # @return [String]
121
+ #
122
+ # @!attribute [rw] action
123
+ # The budget action resource.
124
+ # @return [Types::Action]
125
+ #
126
+ class ActionHistoryDetails < Struct.new(
127
+ :message,
128
+ :action)
129
+ SENSITIVE = []
130
+ include Aws::Structure
131
+ end
132
+
133
+ # The trigger threshold of the action.
134
+ #
135
+ # @note When making an API call, you may pass ActionThreshold
136
+ # data as a hash:
137
+ #
138
+ # {
139
+ # action_threshold_value: 1.0, # required
140
+ # action_threshold_type: "PERCENTAGE", # required, accepts PERCENTAGE, ABSOLUTE_VALUE
141
+ # }
142
+ #
143
+ # @!attribute [rw] action_threshold_value
144
+ # The threshold of a notification.
145
+ # @return [Float]
146
+ #
147
+ # @!attribute [rw] action_threshold_type
148
+ # The type of threshold for a notification.
149
+ # @return [String]
150
+ #
151
+ class ActionThreshold < Struct.new(
152
+ :action_threshold_value,
153
+ :action_threshold_type)
154
+ SENSITIVE = []
155
+ include Aws::Structure
156
+ end
157
+
26
158
  # Represents the output of the `CreateBudget` operation. The content
27
159
  # consists of the detailed metadata and data file information, and the
28
160
  # current status of the `budget` object.
@@ -430,6 +562,121 @@ module Aws::Budgets
430
562
  include Aws::Structure
431
563
  end
432
564
 
565
+ # @note When making an API call, you may pass CreateBudgetActionRequest
566
+ # data as a hash:
567
+ #
568
+ # {
569
+ # account_id: "AccountId", # required
570
+ # budget_name: "BudgetName", # required
571
+ # notification_type: "ACTUAL", # required, accepts ACTUAL, FORECASTED
572
+ # action_type: "APPLY_IAM_POLICY", # required, accepts APPLY_IAM_POLICY, APPLY_SCP_POLICY, RUN_SSM_DOCUMENTS
573
+ # action_threshold: { # required
574
+ # action_threshold_value: 1.0, # required
575
+ # action_threshold_type: "PERCENTAGE", # required, accepts PERCENTAGE, ABSOLUTE_VALUE
576
+ # },
577
+ # definition: { # required
578
+ # iam_action_definition: {
579
+ # policy_arn: "PolicyArn", # required
580
+ # roles: ["Role"],
581
+ # groups: ["Group"],
582
+ # users: ["User"],
583
+ # },
584
+ # scp_action_definition: {
585
+ # policy_id: "PolicyId", # required
586
+ # target_ids: ["TargetId"], # required
587
+ # },
588
+ # ssm_action_definition: {
589
+ # action_sub_type: "STOP_EC2_INSTANCES", # required, accepts STOP_EC2_INSTANCES, STOP_RDS_INSTANCES
590
+ # region: "Region", # required
591
+ # instance_ids: ["InstanceId"], # required
592
+ # },
593
+ # },
594
+ # execution_role_arn: "RoleArn", # required
595
+ # approval_model: "AUTOMATIC", # required, accepts AUTOMATIC, MANUAL
596
+ # subscribers: [ # required
597
+ # {
598
+ # subscription_type: "SNS", # required, accepts SNS, EMAIL
599
+ # address: "SubscriberAddress", # required
600
+ # },
601
+ # ],
602
+ # }
603
+ #
604
+ # @!attribute [rw] account_id
605
+ # The account ID of the user. It should be a 12-digit number.
606
+ # @return [String]
607
+ #
608
+ # @!attribute [rw] budget_name
609
+ # A string that represents the budget name. The ":" and "\\"
610
+ # characters aren't allowed.
611
+ # @return [String]
612
+ #
613
+ # @!attribute [rw] notification_type
614
+ # The type of a notification. It must be ACTUAL or FORECASTED.
615
+ # @return [String]
616
+ #
617
+ # @!attribute [rw] action_type
618
+ # The type of action. This defines the type of tasks that can be
619
+ # carried out by this action. This field also determines the format
620
+ # for definition.
621
+ # @return [String]
622
+ #
623
+ # @!attribute [rw] action_threshold
624
+ # The trigger threshold of the action.
625
+ # @return [Types::ActionThreshold]
626
+ #
627
+ # @!attribute [rw] definition
628
+ # Specifies all of the type-specific parameters.
629
+ # @return [Types::Definition]
630
+ #
631
+ # @!attribute [rw] execution_role_arn
632
+ # The role passed for action execution and reversion. Roles and
633
+ # actions must be in the same account.
634
+ # @return [String]
635
+ #
636
+ # @!attribute [rw] approval_model
637
+ # This specifies if the action needs manual or automatic approval.
638
+ # @return [String]
639
+ #
640
+ # @!attribute [rw] subscribers
641
+ # A list of subscribers.
642
+ # @return [Array<Types::Subscriber>]
643
+ #
644
+ class CreateBudgetActionRequest < Struct.new(
645
+ :account_id,
646
+ :budget_name,
647
+ :notification_type,
648
+ :action_type,
649
+ :action_threshold,
650
+ :definition,
651
+ :execution_role_arn,
652
+ :approval_model,
653
+ :subscribers)
654
+ SENSITIVE = []
655
+ include Aws::Structure
656
+ end
657
+
658
+ # @!attribute [rw] account_id
659
+ # The account ID of the user. It should be a 12-digit number.
660
+ # @return [String]
661
+ #
662
+ # @!attribute [rw] budget_name
663
+ # A string that represents the budget name. The ":" and "\\"
664
+ # characters aren't allowed.
665
+ # @return [String]
666
+ #
667
+ # @!attribute [rw] action_id
668
+ # A system-generated universally unique identifier (UUID) for the
669
+ # action.
670
+ # @return [String]
671
+ #
672
+ class CreateBudgetActionResponse < Struct.new(
673
+ :account_id,
674
+ :budget_name,
675
+ :action_id)
676
+ SENSITIVE = []
677
+ include Aws::Structure
678
+ end
679
+
433
680
  # Request of CreateBudget
434
681
  #
435
682
  # @note When making an API call, you may pass CreateBudgetRequest
@@ -651,6 +898,102 @@ module Aws::Budgets
651
898
  include Aws::Structure
652
899
  end
653
900
 
901
+ # Specifies all of the type-specific parameters.
902
+ #
903
+ # @note When making an API call, you may pass Definition
904
+ # data as a hash:
905
+ #
906
+ # {
907
+ # iam_action_definition: {
908
+ # policy_arn: "PolicyArn", # required
909
+ # roles: ["Role"],
910
+ # groups: ["Group"],
911
+ # users: ["User"],
912
+ # },
913
+ # scp_action_definition: {
914
+ # policy_id: "PolicyId", # required
915
+ # target_ids: ["TargetId"], # required
916
+ # },
917
+ # ssm_action_definition: {
918
+ # action_sub_type: "STOP_EC2_INSTANCES", # required, accepts STOP_EC2_INSTANCES, STOP_RDS_INSTANCES
919
+ # region: "Region", # required
920
+ # instance_ids: ["InstanceId"], # required
921
+ # },
922
+ # }
923
+ #
924
+ # @!attribute [rw] iam_action_definition
925
+ # The AWS Identity and Access Management (IAM) action definition
926
+ # details.
927
+ # @return [Types::IamActionDefinition]
928
+ #
929
+ # @!attribute [rw] scp_action_definition
930
+ # The service control policies (SCPs) action definition details.
931
+ # @return [Types::ScpActionDefinition]
932
+ #
933
+ # @!attribute [rw] ssm_action_definition
934
+ # The AWS Systems Manager (SSM) action definition details.
935
+ # @return [Types::SsmActionDefinition]
936
+ #
937
+ class Definition < Struct.new(
938
+ :iam_action_definition,
939
+ :scp_action_definition,
940
+ :ssm_action_definition)
941
+ SENSITIVE = []
942
+ include Aws::Structure
943
+ end
944
+
945
+ # @note When making an API call, you may pass DeleteBudgetActionRequest
946
+ # data as a hash:
947
+ #
948
+ # {
949
+ # account_id: "AccountId", # required
950
+ # budget_name: "BudgetName", # required
951
+ # action_id: "ActionId", # required
952
+ # }
953
+ #
954
+ # @!attribute [rw] account_id
955
+ # The account ID of the user. It should be a 12-digit number.
956
+ # @return [String]
957
+ #
958
+ # @!attribute [rw] budget_name
959
+ # A string that represents the budget name. The ":" and "\\"
960
+ # characters aren't allowed.
961
+ # @return [String]
962
+ #
963
+ # @!attribute [rw] action_id
964
+ # A system-generated universally unique identifier (UUID) for the
965
+ # action.
966
+ # @return [String]
967
+ #
968
+ class DeleteBudgetActionRequest < Struct.new(
969
+ :account_id,
970
+ :budget_name,
971
+ :action_id)
972
+ SENSITIVE = []
973
+ include Aws::Structure
974
+ end
975
+
976
+ # @!attribute [rw] account_id
977
+ # The account ID of the user. It should be a 12-digit number.
978
+ # @return [String]
979
+ #
980
+ # @!attribute [rw] budget_name
981
+ # A string that represents the budget name. The ":" and "\\"
982
+ # characters aren't allowed.
983
+ # @return [String]
984
+ #
985
+ # @!attribute [rw] action
986
+ # A budget action resource.
987
+ # @return [Types::Action]
988
+ #
989
+ class DeleteBudgetActionResponse < Struct.new(
990
+ :account_id,
991
+ :budget_name,
992
+ :action)
993
+ SENSITIVE = []
994
+ include Aws::Structure
995
+ end
996
+
654
997
  # Request of DeleteBudget
655
998
  #
656
999
  # @note When making an API call, you may pass DeleteBudgetRequest
@@ -774,12 +1117,13 @@ module Aws::Budgets
774
1117
  #
775
1118
  class DeleteSubscriberResponse < Aws::EmptyStructure; end
776
1119
 
777
- # @note When making an API call, you may pass DescribeBudgetPerformanceHistoryRequest
1120
+ # @note When making an API call, you may pass DescribeBudgetActionHistoriesRequest
778
1121
  # data as a hash:
779
1122
  #
780
1123
  # {
781
1124
  # account_id: "AccountId", # required
782
1125
  # budget_name: "BudgetName", # required
1126
+ # action_id: "ActionId", # required
783
1127
  # time_period: {
784
1128
  # start: Time.now,
785
1129
  # end: Time.now,
@@ -797,9 +1141,15 @@ module Aws::Budgets
797
1141
  # characters aren't allowed.
798
1142
  # @return [String]
799
1143
  #
1144
+ # @!attribute [rw] action_id
1145
+ # A system-generated universally unique identifier (UUID) for the
1146
+ # action.
1147
+ # @return [String]
1148
+ #
800
1149
  # @!attribute [rw] time_period
801
- # Retrieves how often the budget went into an `ALARM` state for the
802
- # specified time period.
1150
+ # The period of time that is covered by a budget. The period has a
1151
+ # start date and an end date. The start date must come before the end
1152
+ # date. There are no restrictions on the end date.
803
1153
  # @return [Types::TimePeriod]
804
1154
  #
805
1155
  # @!attribute [rw] max_results
@@ -811,9 +1161,10 @@ module Aws::Budgets
811
1161
  # A generic string.
812
1162
  # @return [String]
813
1163
  #
814
- class DescribeBudgetPerformanceHistoryRequest < Struct.new(
1164
+ class DescribeBudgetActionHistoriesRequest < Struct.new(
815
1165
  :account_id,
816
1166
  :budget_name,
1167
+ :action_id,
817
1168
  :time_period,
818
1169
  :max_results,
819
1170
  :next_token)
@@ -821,68 +1172,74 @@ module Aws::Budgets
821
1172
  include Aws::Structure
822
1173
  end
823
1174
 
824
- # @!attribute [rw] budget_performance_history
825
- # The history of how often the budget has gone into an `ALARM` state.
826
- #
827
- # For `DAILY` budgets, the history saves the state of the budget for
828
- # the last 60 days. For `MONTHLY` budgets, the history saves the state
829
- # of the budget for the current month plus the last 12 months. For
830
- # `QUARTERLY` budgets, the history saves the state of the budget for
831
- # the last four quarters.
832
- # @return [Types::BudgetPerformanceHistory]
1175
+ # @!attribute [rw] action_histories
1176
+ # The historical record of the budget action resource.
1177
+ # @return [Array<Types::ActionHistory>]
833
1178
  #
834
1179
  # @!attribute [rw] next_token
835
1180
  # A generic string.
836
1181
  # @return [String]
837
1182
  #
838
- class DescribeBudgetPerformanceHistoryResponse < Struct.new(
839
- :budget_performance_history,
1183
+ class DescribeBudgetActionHistoriesResponse < Struct.new(
1184
+ :action_histories,
840
1185
  :next_token)
841
1186
  SENSITIVE = []
842
1187
  include Aws::Structure
843
1188
  end
844
1189
 
845
- # Request of DescribeBudget
846
- #
847
- # @note When making an API call, you may pass DescribeBudgetRequest
1190
+ # @note When making an API call, you may pass DescribeBudgetActionRequest
848
1191
  # data as a hash:
849
1192
  #
850
1193
  # {
851
1194
  # account_id: "AccountId", # required
852
1195
  # budget_name: "BudgetName", # required
1196
+ # action_id: "ActionId", # required
853
1197
  # }
854
1198
  #
855
1199
  # @!attribute [rw] account_id
856
- # The `accountId` that is associated with the budget that you want a
857
- # description of.
1200
+ # The account ID of the user. It should be a 12-digit number.
858
1201
  # @return [String]
859
1202
  #
860
1203
  # @!attribute [rw] budget_name
861
- # The name of the budget that you want a description of.
1204
+ # A string that represents the budget name. The ":" and "\\"
1205
+ # characters aren't allowed.
862
1206
  # @return [String]
863
1207
  #
864
- class DescribeBudgetRequest < Struct.new(
1208
+ # @!attribute [rw] action_id
1209
+ # A system-generated universally unique identifier (UUID) for the
1210
+ # action.
1211
+ # @return [String]
1212
+ #
1213
+ class DescribeBudgetActionRequest < Struct.new(
865
1214
  :account_id,
866
- :budget_name)
1215
+ :budget_name,
1216
+ :action_id)
867
1217
  SENSITIVE = []
868
1218
  include Aws::Structure
869
1219
  end
870
1220
 
871
- # Response of DescribeBudget
1221
+ # @!attribute [rw] account_id
1222
+ # The account ID of the user. It should be a 12-digit number.
1223
+ # @return [String]
872
1224
  #
873
- # @!attribute [rw] budget
874
- # The description of the budget.
875
- # @return [Types::Budget]
1225
+ # @!attribute [rw] budget_name
1226
+ # A string that represents the budget name. The ":" and "\\"
1227
+ # characters aren't allowed.
1228
+ # @return [String]
876
1229
  #
877
- class DescribeBudgetResponse < Struct.new(
878
- :budget)
1230
+ # @!attribute [rw] action
1231
+ # A budget action resource.
1232
+ # @return [Types::Action]
1233
+ #
1234
+ class DescribeBudgetActionResponse < Struct.new(
1235
+ :account_id,
1236
+ :budget_name,
1237
+ :action)
879
1238
  SENSITIVE = []
880
1239
  include Aws::Structure
881
1240
  end
882
1241
 
883
- # Request of DescribeBudgets
884
- #
885
- # @note When making an API call, you may pass DescribeBudgetsRequest
1242
+ # @note When making an API call, you may pass DescribeBudgetActionsForAccountRequest
886
1243
  # data as a hash:
887
1244
  #
888
1245
  # {
@@ -892,21 +1249,19 @@ module Aws::Budgets
892
1249
  # }
893
1250
  #
894
1251
  # @!attribute [rw] account_id
895
- # The `accountId` that is associated with the budgets that you want
896
- # descriptions of.
1252
+ # The account ID of the user. It should be a 12-digit number.
897
1253
  # @return [String]
898
1254
  #
899
1255
  # @!attribute [rw] max_results
900
- # An optional integer that represents how many entries a paginated
901
- # response contains. The maximum is 100.
1256
+ # An integer that represents how many entries a paginated response
1257
+ # contains. The maximum is 100.
902
1258
  # @return [Integer]
903
1259
  #
904
1260
  # @!attribute [rw] next_token
905
- # The pagination token that you include in your request to indicate
906
- # the next set of results that you want to retrieve.
1261
+ # A generic string.
907
1262
  # @return [String]
908
1263
  #
909
- class DescribeBudgetsRequest < Struct.new(
1264
+ class DescribeBudgetActionsForAccountRequest < Struct.new(
910
1265
  :account_id,
911
1266
  :max_results,
912
1267
  :next_token)
@@ -914,10 +1269,217 @@ module Aws::Budgets
914
1269
  include Aws::Structure
915
1270
  end
916
1271
 
917
- # Response of DescribeBudgets
1272
+ # @!attribute [rw] actions
1273
+ # A list of the budget action resources information.
1274
+ # @return [Array<Types::Action>]
918
1275
  #
919
- # @!attribute [rw] budgets
920
- # A list of budgets.
1276
+ # @!attribute [rw] next_token
1277
+ # A generic string.
1278
+ # @return [String]
1279
+ #
1280
+ class DescribeBudgetActionsForAccountResponse < Struct.new(
1281
+ :actions,
1282
+ :next_token)
1283
+ SENSITIVE = []
1284
+ include Aws::Structure
1285
+ end
1286
+
1287
+ # @note When making an API call, you may pass DescribeBudgetActionsForBudgetRequest
1288
+ # data as a hash:
1289
+ #
1290
+ # {
1291
+ # account_id: "AccountId", # required
1292
+ # budget_name: "BudgetName", # required
1293
+ # max_results: 1,
1294
+ # next_token: "GenericString",
1295
+ # }
1296
+ #
1297
+ # @!attribute [rw] account_id
1298
+ # The account ID of the user. It should be a 12-digit number.
1299
+ # @return [String]
1300
+ #
1301
+ # @!attribute [rw] budget_name
1302
+ # A string that represents the budget name. The ":" and "\\"
1303
+ # characters aren't allowed.
1304
+ # @return [String]
1305
+ #
1306
+ # @!attribute [rw] max_results
1307
+ # An integer that represents how many entries a paginated response
1308
+ # contains. The maximum is 100.
1309
+ # @return [Integer]
1310
+ #
1311
+ # @!attribute [rw] next_token
1312
+ # A generic string.
1313
+ # @return [String]
1314
+ #
1315
+ class DescribeBudgetActionsForBudgetRequest < Struct.new(
1316
+ :account_id,
1317
+ :budget_name,
1318
+ :max_results,
1319
+ :next_token)
1320
+ SENSITIVE = []
1321
+ include Aws::Structure
1322
+ end
1323
+
1324
+ # @!attribute [rw] actions
1325
+ # A list of the budget action resources information.
1326
+ # @return [Array<Types::Action>]
1327
+ #
1328
+ # @!attribute [rw] next_token
1329
+ # A generic string.
1330
+ # @return [String]
1331
+ #
1332
+ class DescribeBudgetActionsForBudgetResponse < Struct.new(
1333
+ :actions,
1334
+ :next_token)
1335
+ SENSITIVE = []
1336
+ include Aws::Structure
1337
+ end
1338
+
1339
+ # @note When making an API call, you may pass DescribeBudgetPerformanceHistoryRequest
1340
+ # data as a hash:
1341
+ #
1342
+ # {
1343
+ # account_id: "AccountId", # required
1344
+ # budget_name: "BudgetName", # required
1345
+ # time_period: {
1346
+ # start: Time.now,
1347
+ # end: Time.now,
1348
+ # },
1349
+ # max_results: 1,
1350
+ # next_token: "GenericString",
1351
+ # }
1352
+ #
1353
+ # @!attribute [rw] account_id
1354
+ # The account ID of the user. It should be a 12-digit number.
1355
+ # @return [String]
1356
+ #
1357
+ # @!attribute [rw] budget_name
1358
+ # A string that represents the budget name. The ":" and "\\"
1359
+ # characters aren't allowed.
1360
+ # @return [String]
1361
+ #
1362
+ # @!attribute [rw] time_period
1363
+ # Retrieves how often the budget went into an `ALARM` state for the
1364
+ # specified time period.
1365
+ # @return [Types::TimePeriod]
1366
+ #
1367
+ # @!attribute [rw] max_results
1368
+ # An integer that represents how many entries a paginated response
1369
+ # contains. The maximum is 100.
1370
+ # @return [Integer]
1371
+ #
1372
+ # @!attribute [rw] next_token
1373
+ # A generic string.
1374
+ # @return [String]
1375
+ #
1376
+ class DescribeBudgetPerformanceHistoryRequest < Struct.new(
1377
+ :account_id,
1378
+ :budget_name,
1379
+ :time_period,
1380
+ :max_results,
1381
+ :next_token)
1382
+ SENSITIVE = []
1383
+ include Aws::Structure
1384
+ end
1385
+
1386
+ # @!attribute [rw] budget_performance_history
1387
+ # The history of how often the budget has gone into an `ALARM` state.
1388
+ #
1389
+ # For `DAILY` budgets, the history saves the state of the budget for
1390
+ # the last 60 days. For `MONTHLY` budgets, the history saves the state
1391
+ # of the budget for the current month plus the last 12 months. For
1392
+ # `QUARTERLY` budgets, the history saves the state of the budget for
1393
+ # the last four quarters.
1394
+ # @return [Types::BudgetPerformanceHistory]
1395
+ #
1396
+ # @!attribute [rw] next_token
1397
+ # A generic string.
1398
+ # @return [String]
1399
+ #
1400
+ class DescribeBudgetPerformanceHistoryResponse < Struct.new(
1401
+ :budget_performance_history,
1402
+ :next_token)
1403
+ SENSITIVE = []
1404
+ include Aws::Structure
1405
+ end
1406
+
1407
+ # Request of DescribeBudget
1408
+ #
1409
+ # @note When making an API call, you may pass DescribeBudgetRequest
1410
+ # data as a hash:
1411
+ #
1412
+ # {
1413
+ # account_id: "AccountId", # required
1414
+ # budget_name: "BudgetName", # required
1415
+ # }
1416
+ #
1417
+ # @!attribute [rw] account_id
1418
+ # The `accountId` that is associated with the budget that you want a
1419
+ # description of.
1420
+ # @return [String]
1421
+ #
1422
+ # @!attribute [rw] budget_name
1423
+ # The name of the budget that you want a description of.
1424
+ # @return [String]
1425
+ #
1426
+ class DescribeBudgetRequest < Struct.new(
1427
+ :account_id,
1428
+ :budget_name)
1429
+ SENSITIVE = []
1430
+ include Aws::Structure
1431
+ end
1432
+
1433
+ # Response of DescribeBudget
1434
+ #
1435
+ # @!attribute [rw] budget
1436
+ # The description of the budget.
1437
+ # @return [Types::Budget]
1438
+ #
1439
+ class DescribeBudgetResponse < Struct.new(
1440
+ :budget)
1441
+ SENSITIVE = []
1442
+ include Aws::Structure
1443
+ end
1444
+
1445
+ # Request of DescribeBudgets
1446
+ #
1447
+ # @note When making an API call, you may pass DescribeBudgetsRequest
1448
+ # data as a hash:
1449
+ #
1450
+ # {
1451
+ # account_id: "AccountId", # required
1452
+ # max_results: 1,
1453
+ # next_token: "GenericString",
1454
+ # }
1455
+ #
1456
+ # @!attribute [rw] account_id
1457
+ # The `accountId` that is associated with the budgets that you want
1458
+ # descriptions of.
1459
+ # @return [String]
1460
+ #
1461
+ # @!attribute [rw] max_results
1462
+ # An optional integer that represents how many entries a paginated
1463
+ # response contains. The maximum is 100.
1464
+ # @return [Integer]
1465
+ #
1466
+ # @!attribute [rw] next_token
1467
+ # The pagination token that you include in your request to indicate
1468
+ # the next set of results that you want to retrieve.
1469
+ # @return [String]
1470
+ #
1471
+ class DescribeBudgetsRequest < Struct.new(
1472
+ :account_id,
1473
+ :max_results,
1474
+ :next_token)
1475
+ SENSITIVE = []
1476
+ include Aws::Structure
1477
+ end
1478
+
1479
+ # Response of DescribeBudgets
1480
+ #
1481
+ # @!attribute [rw] budgets
1482
+ # A list of budgets.
921
1483
  # @return [Array<Types::Budget>]
922
1484
  #
923
1485
  # @!attribute [rw] next_token
@@ -1073,6 +1635,70 @@ module Aws::Budgets
1073
1635
  include Aws::Structure
1074
1636
  end
1075
1637
 
1638
+ # @note When making an API call, you may pass ExecuteBudgetActionRequest
1639
+ # data as a hash:
1640
+ #
1641
+ # {
1642
+ # account_id: "AccountId", # required
1643
+ # budget_name: "BudgetName", # required
1644
+ # action_id: "ActionId", # required
1645
+ # execution_type: "APPROVE_BUDGET_ACTION", # required, accepts APPROVE_BUDGET_ACTION, RETRY_BUDGET_ACTION, REVERSE_BUDGET_ACTION, RESET_BUDGET_ACTION
1646
+ # }
1647
+ #
1648
+ # @!attribute [rw] account_id
1649
+ # The account ID of the user. It should be a 12-digit number.
1650
+ # @return [String]
1651
+ #
1652
+ # @!attribute [rw] budget_name
1653
+ # A string that represents the budget name. The ":" and "\\"
1654
+ # characters aren't allowed.
1655
+ # @return [String]
1656
+ #
1657
+ # @!attribute [rw] action_id
1658
+ # A system-generated universally unique identifier (UUID) for the
1659
+ # action.
1660
+ # @return [String]
1661
+ #
1662
+ # @!attribute [rw] execution_type
1663
+ # The type of execution.
1664
+ # @return [String]
1665
+ #
1666
+ class ExecuteBudgetActionRequest < Struct.new(
1667
+ :account_id,
1668
+ :budget_name,
1669
+ :action_id,
1670
+ :execution_type)
1671
+ SENSITIVE = []
1672
+ include Aws::Structure
1673
+ end
1674
+
1675
+ # @!attribute [rw] account_id
1676
+ # The account ID of the user. It should be a 12-digit number.
1677
+ # @return [String]
1678
+ #
1679
+ # @!attribute [rw] budget_name
1680
+ # A string that represents the budget name. The ":" and "\\"
1681
+ # characters aren't allowed.
1682
+ # @return [String]
1683
+ #
1684
+ # @!attribute [rw] action_id
1685
+ # A system-generated universally unique identifier (UUID) for the
1686
+ # action.
1687
+ # @return [String]
1688
+ #
1689
+ # @!attribute [rw] execution_type
1690
+ # The type of execution.
1691
+ # @return [String]
1692
+ #
1693
+ class ExecuteBudgetActionResponse < Struct.new(
1694
+ :account_id,
1695
+ :budget_name,
1696
+ :action_id,
1697
+ :execution_type)
1698
+ SENSITIVE = []
1699
+ include Aws::Structure
1700
+ end
1701
+
1076
1702
  # The pagination token expired.
1077
1703
  #
1078
1704
  # @!attribute [rw] message
@@ -1085,6 +1711,44 @@ module Aws::Budgets
1085
1711
  include Aws::Structure
1086
1712
  end
1087
1713
 
1714
+ # The AWS Identity and Access Management (IAM) action definition
1715
+ # details.
1716
+ #
1717
+ # @note When making an API call, you may pass IamActionDefinition
1718
+ # data as a hash:
1719
+ #
1720
+ # {
1721
+ # policy_arn: "PolicyArn", # required
1722
+ # roles: ["Role"],
1723
+ # groups: ["Group"],
1724
+ # users: ["User"],
1725
+ # }
1726
+ #
1727
+ # @!attribute [rw] policy_arn
1728
+ # The Amazon Resource Name (ARN) of the policy to be attached.
1729
+ # @return [String]
1730
+ #
1731
+ # @!attribute [rw] roles
1732
+ # A list of roles to be attached. There must be at least one role.
1733
+ # @return [Array<String>]
1734
+ #
1735
+ # @!attribute [rw] groups
1736
+ # A list of groups to be attached. There must be at least one group.
1737
+ # @return [Array<String>]
1738
+ #
1739
+ # @!attribute [rw] users
1740
+ # A list of users to be attached. There must be at least one user.
1741
+ # @return [Array<String>]
1742
+ #
1743
+ class IamActionDefinition < Struct.new(
1744
+ :policy_arn,
1745
+ :roles,
1746
+ :groups,
1747
+ :users)
1748
+ SENSITIVE = []
1749
+ include Aws::Structure
1750
+ end
1751
+
1088
1752
  # An error on the server occurred during the processing of your request.
1089
1753
  # Try again later.
1090
1754
  #
@@ -1245,6 +1909,44 @@ module Aws::Budgets
1245
1909
  include Aws::Structure
1246
1910
  end
1247
1911
 
1912
+ # The request was received and recognized by the server, but the server
1913
+ # rejected that particular method for the requested resource.
1914
+ #
1915
+ # @!attribute [rw] message
1916
+ # The error message the exception carries.
1917
+ # @return [String]
1918
+ #
1919
+ class ResourceLockedException < Struct.new(
1920
+ :message)
1921
+ SENSITIVE = []
1922
+ include Aws::Structure
1923
+ end
1924
+
1925
+ # The service control policies (SCP) action definition details.
1926
+ #
1927
+ # @note When making an API call, you may pass ScpActionDefinition
1928
+ # data as a hash:
1929
+ #
1930
+ # {
1931
+ # policy_id: "PolicyId", # required
1932
+ # target_ids: ["TargetId"], # required
1933
+ # }
1934
+ #
1935
+ # @!attribute [rw] policy_id
1936
+ # The policy ID attached.
1937
+ # @return [String]
1938
+ #
1939
+ # @!attribute [rw] target_ids
1940
+ # A list of target IDs.
1941
+ # @return [Array<String>]
1942
+ #
1943
+ class ScpActionDefinition < Struct.new(
1944
+ :policy_id,
1945
+ :target_ids)
1946
+ SENSITIVE = []
1947
+ include Aws::Structure
1948
+ end
1949
+
1248
1950
  # The amount of cost or usage that is measured for a budget.
1249
1951
  #
1250
1952
  # For example, a `Spend` for `3 GB` of S3 usage would have the following
@@ -1279,6 +1981,37 @@ module Aws::Budgets
1279
1981
  include Aws::Structure
1280
1982
  end
1281
1983
 
1984
+ # The AWS Systems Manager (SSM) action definition details.
1985
+ #
1986
+ # @note When making an API call, you may pass SsmActionDefinition
1987
+ # data as a hash:
1988
+ #
1989
+ # {
1990
+ # action_sub_type: "STOP_EC2_INSTANCES", # required, accepts STOP_EC2_INSTANCES, STOP_RDS_INSTANCES
1991
+ # region: "Region", # required
1992
+ # instance_ids: ["InstanceId"], # required
1993
+ # }
1994
+ #
1995
+ # @!attribute [rw] action_sub_type
1996
+ # The action subType.
1997
+ # @return [String]
1998
+ #
1999
+ # @!attribute [rw] region
2000
+ # The Region to run the SSM document.
2001
+ # @return [String]
2002
+ #
2003
+ # @!attribute [rw] instance_ids
2004
+ # The EC2 and RDS instance IDs.
2005
+ # @return [Array<String>]
2006
+ #
2007
+ class SsmActionDefinition < Struct.new(
2008
+ :action_sub_type,
2009
+ :region,
2010
+ :instance_ids)
2011
+ SENSITIVE = []
2012
+ include Aws::Structure
2013
+ end
2014
+
1282
2015
  # The subscriber to a budget notification. The subscriber consists of a
1283
2016
  # subscription type and either an Amazon SNS topic or an email address.
1284
2017
  #
@@ -1357,6 +2090,124 @@ module Aws::Budgets
1357
2090
  include Aws::Structure
1358
2091
  end
1359
2092
 
2093
+ # @note When making an API call, you may pass UpdateBudgetActionRequest
2094
+ # data as a hash:
2095
+ #
2096
+ # {
2097
+ # account_id: "AccountId", # required
2098
+ # budget_name: "BudgetName", # required
2099
+ # action_id: "ActionId", # required
2100
+ # notification_type: "ACTUAL", # accepts ACTUAL, FORECASTED
2101
+ # action_threshold: {
2102
+ # action_threshold_value: 1.0, # required
2103
+ # action_threshold_type: "PERCENTAGE", # required, accepts PERCENTAGE, ABSOLUTE_VALUE
2104
+ # },
2105
+ # definition: {
2106
+ # iam_action_definition: {
2107
+ # policy_arn: "PolicyArn", # required
2108
+ # roles: ["Role"],
2109
+ # groups: ["Group"],
2110
+ # users: ["User"],
2111
+ # },
2112
+ # scp_action_definition: {
2113
+ # policy_id: "PolicyId", # required
2114
+ # target_ids: ["TargetId"], # required
2115
+ # },
2116
+ # ssm_action_definition: {
2117
+ # action_sub_type: "STOP_EC2_INSTANCES", # required, accepts STOP_EC2_INSTANCES, STOP_RDS_INSTANCES
2118
+ # region: "Region", # required
2119
+ # instance_ids: ["InstanceId"], # required
2120
+ # },
2121
+ # },
2122
+ # execution_role_arn: "RoleArn",
2123
+ # approval_model: "AUTOMATIC", # accepts AUTOMATIC, MANUAL
2124
+ # subscribers: [
2125
+ # {
2126
+ # subscription_type: "SNS", # required, accepts SNS, EMAIL
2127
+ # address: "SubscriberAddress", # required
2128
+ # },
2129
+ # ],
2130
+ # }
2131
+ #
2132
+ # @!attribute [rw] account_id
2133
+ # The account ID of the user. It should be a 12-digit number.
2134
+ # @return [String]
2135
+ #
2136
+ # @!attribute [rw] budget_name
2137
+ # A string that represents the budget name. The ":" and "\\"
2138
+ # characters aren't allowed.
2139
+ # @return [String]
2140
+ #
2141
+ # @!attribute [rw] action_id
2142
+ # A system-generated universally unique identifier (UUID) for the
2143
+ # action.
2144
+ # @return [String]
2145
+ #
2146
+ # @!attribute [rw] notification_type
2147
+ # The type of a notification. It must be ACTUAL or FORECASTED.
2148
+ # @return [String]
2149
+ #
2150
+ # @!attribute [rw] action_threshold
2151
+ # The trigger threshold of the action.
2152
+ # @return [Types::ActionThreshold]
2153
+ #
2154
+ # @!attribute [rw] definition
2155
+ # Specifies all of the type-specific parameters.
2156
+ # @return [Types::Definition]
2157
+ #
2158
+ # @!attribute [rw] execution_role_arn
2159
+ # The role passed for action execution and reversion. Roles and
2160
+ # actions must be in the same account.
2161
+ # @return [String]
2162
+ #
2163
+ # @!attribute [rw] approval_model
2164
+ # This specifies if the action needs manual or automatic approval.
2165
+ # @return [String]
2166
+ #
2167
+ # @!attribute [rw] subscribers
2168
+ # A list of subscribers.
2169
+ # @return [Array<Types::Subscriber>]
2170
+ #
2171
+ class UpdateBudgetActionRequest < Struct.new(
2172
+ :account_id,
2173
+ :budget_name,
2174
+ :action_id,
2175
+ :notification_type,
2176
+ :action_threshold,
2177
+ :definition,
2178
+ :execution_role_arn,
2179
+ :approval_model,
2180
+ :subscribers)
2181
+ SENSITIVE = []
2182
+ include Aws::Structure
2183
+ end
2184
+
2185
+ # @!attribute [rw] account_id
2186
+ # The account ID of the user. It should be a 12-digit number.
2187
+ # @return [String]
2188
+ #
2189
+ # @!attribute [rw] budget_name
2190
+ # A string that represents the budget name. The ":" and "\\"
2191
+ # characters aren't allowed.
2192
+ # @return [String]
2193
+ #
2194
+ # @!attribute [rw] old_action
2195
+ # The previous action resource information.
2196
+ # @return [Types::Action]
2197
+ #
2198
+ # @!attribute [rw] new_action
2199
+ # The updated action resource information.
2200
+ # @return [Types::Action]
2201
+ #
2202
+ class UpdateBudgetActionResponse < Struct.new(
2203
+ :account_id,
2204
+ :budget_name,
2205
+ :old_action,
2206
+ :new_action)
2207
+ SENSITIVE = []
2208
+ include Aws::Structure
2209
+ end
2210
+
1360
2211
  # Request of UpdateBudget
1361
2212
  #
1362
2213
  # @note When making an API call, you may pass UpdateBudgetRequest