aws-sdk-budgets 1.35.0 → 1.36.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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