UNPKG

32 kBTypeScriptView Raw
1import {Request} from '../lib/request';
2import {Response} from '../lib/response';
3import {AWSError} from '../lib/error';
4import {Service} from '../lib/service';
5import {ServiceConfigurationOptions} from '../lib/service';
6import {ConfigBase as Config} from '../lib/config';
7interface Blob {}
8declare class Budgets extends Service {
9 /**
10 * Constructs a service object. This object has one method for each API operation.
11 */
12 constructor(options?: Budgets.Types.ClientConfiguration)
13 config: Config & Budgets.Types.ClientConfiguration;
14 /**
15 * Creates a budget and, if included, notifications and subscribers. Only one of BudgetLimit or PlannedBudgetLimits can be present in the syntax at one time. Use the syntax that matches your case. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section.
16 */
17 createBudget(params: Budgets.Types.CreateBudgetRequest, callback?: (err: AWSError, data: Budgets.Types.CreateBudgetResponse) => void): Request<Budgets.Types.CreateBudgetResponse, AWSError>;
18 /**
19 * Creates a budget and, if included, notifications and subscribers. Only one of BudgetLimit or PlannedBudgetLimits can be present in the syntax at one time. Use the syntax that matches your case. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section.
20 */
21 createBudget(callback?: (err: AWSError, data: Budgets.Types.CreateBudgetResponse) => void): Request<Budgets.Types.CreateBudgetResponse, AWSError>;
22 /**
23 * Creates a notification. You must create the budget before you create the associated notification.
24 */
25 createNotification(params: Budgets.Types.CreateNotificationRequest, callback?: (err: AWSError, data: Budgets.Types.CreateNotificationResponse) => void): Request<Budgets.Types.CreateNotificationResponse, AWSError>;
26 /**
27 * Creates a notification. You must create the budget before you create the associated notification.
28 */
29 createNotification(callback?: (err: AWSError, data: Budgets.Types.CreateNotificationResponse) => void): Request<Budgets.Types.CreateNotificationResponse, AWSError>;
30 /**
31 * Creates a subscriber. You must create the associated budget and notification before you create the subscriber.
32 */
33 createSubscriber(params: Budgets.Types.CreateSubscriberRequest, callback?: (err: AWSError, data: Budgets.Types.CreateSubscriberResponse) => void): Request<Budgets.Types.CreateSubscriberResponse, AWSError>;
34 /**
35 * Creates a subscriber. You must create the associated budget and notification before you create the subscriber.
36 */
37 createSubscriber(callback?: (err: AWSError, data: Budgets.Types.CreateSubscriberResponse) => void): Request<Budgets.Types.CreateSubscriberResponse, AWSError>;
38 /**
39 * Deletes a budget. You can delete your budget at any time. Deleting a budget also deletes the notifications and subscribers that are associated with that budget.
40 */
41 deleteBudget(params: Budgets.Types.DeleteBudgetRequest, callback?: (err: AWSError, data: Budgets.Types.DeleteBudgetResponse) => void): Request<Budgets.Types.DeleteBudgetResponse, AWSError>;
42 /**
43 * Deletes a budget. You can delete your budget at any time. Deleting a budget also deletes the notifications and subscribers that are associated with that budget.
44 */
45 deleteBudget(callback?: (err: AWSError, data: Budgets.Types.DeleteBudgetResponse) => void): Request<Budgets.Types.DeleteBudgetResponse, AWSError>;
46 /**
47 * Deletes a notification. Deleting a notification also deletes the subscribers that are associated with the notification.
48 */
49 deleteNotification(params: Budgets.Types.DeleteNotificationRequest, callback?: (err: AWSError, data: Budgets.Types.DeleteNotificationResponse) => void): Request<Budgets.Types.DeleteNotificationResponse, AWSError>;
50 /**
51 * Deletes a notification. Deleting a notification also deletes the subscribers that are associated with the notification.
52 */
53 deleteNotification(callback?: (err: AWSError, data: Budgets.Types.DeleteNotificationResponse) => void): Request<Budgets.Types.DeleteNotificationResponse, AWSError>;
54 /**
55 * Deletes a subscriber. Deleting the last subscriber to a notification also deletes the notification.
56 */
57 deleteSubscriber(params: Budgets.Types.DeleteSubscriberRequest, callback?: (err: AWSError, data: Budgets.Types.DeleteSubscriberResponse) => void): Request<Budgets.Types.DeleteSubscriberResponse, AWSError>;
58 /**
59 * Deletes a subscriber. Deleting the last subscriber to a notification also deletes the notification.
60 */
61 deleteSubscriber(callback?: (err: AWSError, data: Budgets.Types.DeleteSubscriberResponse) => void): Request<Budgets.Types.DeleteSubscriberResponse, AWSError>;
62 /**
63 * Describes a budget. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section.
64 */
65 describeBudget(params: Budgets.Types.DescribeBudgetRequest, callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetResponse) => void): Request<Budgets.Types.DescribeBudgetResponse, AWSError>;
66 /**
67 * Describes a budget. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section.
68 */
69 describeBudget(callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetResponse) => void): Request<Budgets.Types.DescribeBudgetResponse, AWSError>;
70 /**
71 * Describes the history for DAILY, MONTHLY, and QUARTERLY budgets. Budget history isn't available for ANNUAL budgets.
72 */
73 describeBudgetPerformanceHistory(params: Budgets.Types.DescribeBudgetPerformanceHistoryRequest, callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetPerformanceHistoryResponse) => void): Request<Budgets.Types.DescribeBudgetPerformanceHistoryResponse, AWSError>;
74 /**
75 * Describes the history for DAILY, MONTHLY, and QUARTERLY budgets. Budget history isn't available for ANNUAL budgets.
76 */
77 describeBudgetPerformanceHistory(callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetPerformanceHistoryResponse) => void): Request<Budgets.Types.DescribeBudgetPerformanceHistoryResponse, AWSError>;
78 /**
79 * Lists the budgets that are associated with an account. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section.
80 */
81 describeBudgets(params: Budgets.Types.DescribeBudgetsRequest, callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetsResponse) => void): Request<Budgets.Types.DescribeBudgetsResponse, AWSError>;
82 /**
83 * Lists the budgets that are associated with an account. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section.
84 */
85 describeBudgets(callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetsResponse) => void): Request<Budgets.Types.DescribeBudgetsResponse, AWSError>;
86 /**
87 * Lists the notifications that are associated with a budget.
88 */
89 describeNotificationsForBudget(params: Budgets.Types.DescribeNotificationsForBudgetRequest, callback?: (err: AWSError, data: Budgets.Types.DescribeNotificationsForBudgetResponse) => void): Request<Budgets.Types.DescribeNotificationsForBudgetResponse, AWSError>;
90 /**
91 * Lists the notifications that are associated with a budget.
92 */
93 describeNotificationsForBudget(callback?: (err: AWSError, data: Budgets.Types.DescribeNotificationsForBudgetResponse) => void): Request<Budgets.Types.DescribeNotificationsForBudgetResponse, AWSError>;
94 /**
95 * Lists the subscribers that are associated with a notification.
96 */
97 describeSubscribersForNotification(params: Budgets.Types.DescribeSubscribersForNotificationRequest, callback?: (err: AWSError, data: Budgets.Types.DescribeSubscribersForNotificationResponse) => void): Request<Budgets.Types.DescribeSubscribersForNotificationResponse, AWSError>;
98 /**
99 * Lists the subscribers that are associated with a notification.
100 */
101 describeSubscribersForNotification(callback?: (err: AWSError, data: Budgets.Types.DescribeSubscribersForNotificationResponse) => void): Request<Budgets.Types.DescribeSubscribersForNotificationResponse, AWSError>;
102 /**
103 * Updates a budget. You can change every part of a budget except for the budgetName and the calculatedSpend. When you modify a budget, the calculatedSpend drops to zero until AWS has new usage data to use for forecasting. Only one of BudgetLimit or PlannedBudgetLimits can be present in the syntax at one time. Use the syntax that matches your case. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section.
104 */
105 updateBudget(params: Budgets.Types.UpdateBudgetRequest, callback?: (err: AWSError, data: Budgets.Types.UpdateBudgetResponse) => void): Request<Budgets.Types.UpdateBudgetResponse, AWSError>;
106 /**
107 * Updates a budget. You can change every part of a budget except for the budgetName and the calculatedSpend. When you modify a budget, the calculatedSpend drops to zero until AWS has new usage data to use for forecasting. Only one of BudgetLimit or PlannedBudgetLimits can be present in the syntax at one time. Use the syntax that matches your case. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section.
108 */
109 updateBudget(callback?: (err: AWSError, data: Budgets.Types.UpdateBudgetResponse) => void): Request<Budgets.Types.UpdateBudgetResponse, AWSError>;
110 /**
111 * Updates a notification.
112 */
113 updateNotification(params: Budgets.Types.UpdateNotificationRequest, callback?: (err: AWSError, data: Budgets.Types.UpdateNotificationResponse) => void): Request<Budgets.Types.UpdateNotificationResponse, AWSError>;
114 /**
115 * Updates a notification.
116 */
117 updateNotification(callback?: (err: AWSError, data: Budgets.Types.UpdateNotificationResponse) => void): Request<Budgets.Types.UpdateNotificationResponse, AWSError>;
118 /**
119 * Updates a subscriber.
120 */
121 updateSubscriber(params: Budgets.Types.UpdateSubscriberRequest, callback?: (err: AWSError, data: Budgets.Types.UpdateSubscriberResponse) => void): Request<Budgets.Types.UpdateSubscriberResponse, AWSError>;
122 /**
123 * Updates a subscriber.
124 */
125 updateSubscriber(callback?: (err: AWSError, data: Budgets.Types.UpdateSubscriberResponse) => void): Request<Budgets.Types.UpdateSubscriberResponse, AWSError>;
126}
127declare namespace Budgets {
128 export type AccountId = string;
129 export interface Budget {
130 /**
131 * The name of a budget. The name must be unique within an account. The : and \ characters aren't allowed in BudgetName.
132 */
133 BudgetName: BudgetName;
134 /**
135 * The total amount of cost, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage that you want to track with your budget. BudgetLimit is required for cost or usage budgets, but optional for RI or Savings Plans utilization or coverage budgets. RI and Savings Plans utilization or coverage budgets default to 100, which is the only valid value for RI or Savings Plans utilization or coverage budgets. You can't use BudgetLimit with PlannedBudgetLimits for CreateBudget and UpdateBudget actions.
136 */
137 BudgetLimit?: Spend;
138 /**
139 * A map containing multiple BudgetLimit, including current or future limits. PlannedBudgetLimits is available for cost or usage budget and supports monthly and quarterly TimeUnit. For monthly budgets, provide 12 months of PlannedBudgetLimits values. This must start from the current month and include the next 11 months. The key is the start of the month, UTC in epoch seconds. For quarterly budgets, provide 4 quarters of PlannedBudgetLimits value entries in standard calendar quarter increments. This must start from the current quarter and include the next 3 quarters. The key is the start of the quarter, UTC in epoch seconds. If the planned budget expires before 12 months for monthly or 4 quarters for quarterly, provide the PlannedBudgetLimits values only for the remaining periods. If the budget begins at a date in the future, provide PlannedBudgetLimits values from the start date of the budget. After all of the BudgetLimit values in PlannedBudgetLimits are used, the budget continues to use the last limit as the BudgetLimit. At that point, the planned budget provides the same experience as a fixed budget. DescribeBudget and DescribeBudgets response along with PlannedBudgetLimits will also contain BudgetLimit representing the current month or quarter limit present in PlannedBudgetLimits. This only applies to budgets created with PlannedBudgetLimits. Budgets created without PlannedBudgetLimits will only contain BudgetLimit, and no PlannedBudgetLimits.
140 */
141 PlannedBudgetLimits?: PlannedBudgetLimits;
142 /**
143 * The cost filters, such as service or tag, that are applied to a budget. AWS Budgets supports the following services as a filter for RI budgets: Amazon Elastic Compute Cloud - Compute Amazon Redshift Amazon Relational Database Service Amazon ElastiCache Amazon Elasticsearch Service
144 */
145 CostFilters?: CostFilters;
146 /**
147 * The types of costs that are included in this COST budget. USAGE, RI_UTILIZATION, RI_COVERAGE, Savings_Plans_Utilization, and Savings_Plans_Coverage budgets do not have CostTypes.
148 */
149 CostTypes?: CostTypes;
150 /**
151 * The length of time until a budget resets the actual and forecasted spend. DAILY is available only for RI_UTILIZATION, RI_COVERAGE, Savings_Plans_Utilization, and Savings_Plans_Coverage budgets.
152 */
153 TimeUnit: TimeUnit;
154 /**
155 * The period of time that is covered by a budget. The period has a start date and an end date. The start date must come before the end date. The end date must come before 06/15/87 00:00 UTC. If you create your budget and don't specify a start date, AWS defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose DAILY, and didn't set a start date, AWS set your start date to 01/24/18 00:00 UTC. If you chose MONTHLY, AWS set your start date to 01/01/18 00:00 UTC. If you didn't specify an end date, AWS set your end date to 06/15/87 00:00 UTC. The defaults are the same for the AWS Billing and Cost Management console and the API. You can change either date with the UpdateBudget operation. After the end date, AWS deletes the budget and all associated notifications and subscribers.
156 */
157 TimePeriod?: TimePeriod;
158 /**
159 * The actual and forecasted cost or usage that the budget tracks.
160 */
161 CalculatedSpend?: CalculatedSpend;
162 /**
163 * Whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage.
164 */
165 BudgetType: BudgetType;
166 /**
167 * The last time that you updated this budget.
168 */
169 LastUpdatedTime?: GenericTimestamp;
170 }
171 export type BudgetName = string;
172 export interface BudgetPerformanceHistory {
173 BudgetName?: BudgetName;
174 BudgetType?: BudgetType;
175 /**
176 * The history of the cost filters for a budget during the specified time period.
177 */
178 CostFilters?: CostFilters;
179 /**
180 * The history of the cost types for a budget during the specified time period.
181 */
182 CostTypes?: CostTypes;
183 TimeUnit?: TimeUnit;
184 /**
185 * A list of amounts of cost or usage that you created budgets for, compared to your actual costs or usage.
186 */
187 BudgetedAndActualAmountsList?: BudgetedAndActualAmountsList;
188 }
189 export type BudgetType = "USAGE"|"COST"|"RI_UTILIZATION"|"RI_COVERAGE"|"SAVINGS_PLANS_UTILIZATION"|"SAVINGS_PLANS_COVERAGE"|string;
190 export interface BudgetedAndActualAmounts {
191 /**
192 * The amount of cost or usage that you created the budget for.
193 */
194 BudgetedAmount?: Spend;
195 /**
196 * Your actual costs or usage for a budget period.
197 */
198 ActualAmount?: Spend;
199 /**
200 * The time period covered by this budget comparison.
201 */
202 TimePeriod?: TimePeriod;
203 }
204 export type BudgetedAndActualAmountsList = BudgetedAndActualAmounts[];
205 export type Budgets = Budget[];
206 export interface CalculatedSpend {
207 /**
208 * The amount of cost, usage, or RI units that you have used.
209 */
210 ActualSpend: Spend;
211 /**
212 * The amount of cost, usage, or RI units that you are forecasted to use.
213 */
214 ForecastedSpend?: Spend;
215 }
216 export type ComparisonOperator = "GREATER_THAN"|"LESS_THAN"|"EQUAL_TO"|string;
217 export type CostFilters = {[key: string]: DimensionValues};
218 export interface CostTypes {
219 /**
220 * Specifies whether a budget includes taxes. The default value is true.
221 */
222 IncludeTax?: NullableBoolean;
223 /**
224 * Specifies whether a budget includes subscriptions. The default value is true.
225 */
226 IncludeSubscription?: NullableBoolean;
227 /**
228 * Specifies whether a budget uses a blended rate. The default value is false.
229 */
230 UseBlended?: NullableBoolean;
231 /**
232 * Specifies whether a budget includes refunds. The default value is true.
233 */
234 IncludeRefund?: NullableBoolean;
235 /**
236 * Specifies whether a budget includes credits. The default value is true.
237 */
238 IncludeCredit?: NullableBoolean;
239 /**
240 * Specifies whether a budget includes upfront RI costs. The default value is true.
241 */
242 IncludeUpfront?: NullableBoolean;
243 /**
244 * Specifies whether a budget includes recurring fees such as monthly RI fees. The default value is true.
245 */
246 IncludeRecurring?: NullableBoolean;
247 /**
248 * Specifies whether a budget includes non-RI subscription costs. The default value is true.
249 */
250 IncludeOtherSubscription?: NullableBoolean;
251 /**
252 * Specifies whether a budget includes support subscription fees. The default value is true.
253 */
254 IncludeSupport?: NullableBoolean;
255 /**
256 * Specifies whether a budget includes discounts. The default value is true.
257 */
258 IncludeDiscount?: NullableBoolean;
259 /**
260 * Specifies whether a budget uses the amortized rate. The default value is false.
261 */
262 UseAmortized?: NullableBoolean;
263 }
264 export interface CreateBudgetRequest {
265 /**
266 * The accountId that is associated with the budget.
267 */
268 AccountId: AccountId;
269 /**
270 * The budget object that you want to create.
271 */
272 Budget: Budget;
273 /**
274 * A notification that you want to associate with a budget. A budget can have up to five notifications, and each notification can have one SNS subscriber and up to 10 email subscribers. If you include notifications and subscribers in your CreateBudget call, AWS creates the notifications and subscribers for you.
275 */
276 NotificationsWithSubscribers?: NotificationWithSubscribersList;
277 }
278 export interface CreateBudgetResponse {
279 }
280 export interface CreateNotificationRequest {
281 /**
282 * The accountId that is associated with the budget that you want to create a notification for.
283 */
284 AccountId: AccountId;
285 /**
286 * The name of the budget that you want AWS to notify you about. Budget names must be unique within an account.
287 */
288 BudgetName: BudgetName;
289 /**
290 * The notification that you want to create.
291 */
292 Notification: Notification;
293 /**
294 * A list of subscribers that you want to associate with the notification. Each notification can have one SNS subscriber and up to 10 email subscribers.
295 */
296 Subscribers: Subscribers;
297 }
298 export interface CreateNotificationResponse {
299 }
300 export interface CreateSubscriberRequest {
301 /**
302 * The accountId that is associated with the budget that you want to create a subscriber for.
303 */
304 AccountId: AccountId;
305 /**
306 * The name of the budget that you want to subscribe to. Budget names must be unique within an account.
307 */
308 BudgetName: BudgetName;
309 /**
310 * The notification that you want to create a subscriber for.
311 */
312 Notification: Notification;
313 /**
314 * The subscriber that you want to associate with a budget notification.
315 */
316 Subscriber: Subscriber;
317 }
318 export interface CreateSubscriberResponse {
319 }
320 export interface DeleteBudgetRequest {
321 /**
322 * The accountId that is associated with the budget that you want to delete.
323 */
324 AccountId: AccountId;
325 /**
326 * The name of the budget that you want to delete.
327 */
328 BudgetName: BudgetName;
329 }
330 export interface DeleteBudgetResponse {
331 }
332 export interface DeleteNotificationRequest {
333 /**
334 * The accountId that is associated with the budget whose notification you want to delete.
335 */
336 AccountId: AccountId;
337 /**
338 * The name of the budget whose notification you want to delete.
339 */
340 BudgetName: BudgetName;
341 /**
342 * The notification that you want to delete.
343 */
344 Notification: Notification;
345 }
346 export interface DeleteNotificationResponse {
347 }
348 export interface DeleteSubscriberRequest {
349 /**
350 * The accountId that is associated with the budget whose subscriber you want to delete.
351 */
352 AccountId: AccountId;
353 /**
354 * The name of the budget whose subscriber you want to delete.
355 */
356 BudgetName: BudgetName;
357 /**
358 * The notification whose subscriber you want to delete.
359 */
360 Notification: Notification;
361 /**
362 * The subscriber that you want to delete.
363 */
364 Subscriber: Subscriber;
365 }
366 export interface DeleteSubscriberResponse {
367 }
368 export interface DescribeBudgetPerformanceHistoryRequest {
369 AccountId: AccountId;
370 BudgetName: BudgetName;
371 /**
372 * Retrieves how often the budget went into an ALARM state for the specified time period.
373 */
374 TimePeriod?: TimePeriod;
375 MaxResults?: MaxResults;
376 NextToken?: GenericString;
377 }
378 export interface DescribeBudgetPerformanceHistoryResponse {
379 /**
380 * The history of how often the budget has gone into an ALARM state. For DAILY budgets, the history saves the state of the budget for the last 60 days. For MONTHLY budgets, the history saves the state of the budget for the current month plus the last 12 months. For QUARTERLY budgets, the history saves the state of the budget for the last four quarters.
381 */
382 BudgetPerformanceHistory?: BudgetPerformanceHistory;
383 NextToken?: GenericString;
384 }
385 export interface DescribeBudgetRequest {
386 /**
387 * The accountId that is associated with the budget that you want a description of.
388 */
389 AccountId: AccountId;
390 /**
391 * The name of the budget that you want a description of.
392 */
393 BudgetName: BudgetName;
394 }
395 export interface DescribeBudgetResponse {
396 /**
397 * The description of the budget.
398 */
399 Budget?: Budget;
400 }
401 export interface DescribeBudgetsRequest {
402 /**
403 * The accountId that is associated with the budgets that you want descriptions of.
404 */
405 AccountId: AccountId;
406 /**
407 * An optional integer that represents how many entries a paginated response contains. The maximum is 100.
408 */
409 MaxResults?: MaxResults;
410 /**
411 * The pagination token that you include in your request to indicate the next set of results that you want to retrieve.
412 */
413 NextToken?: GenericString;
414 }
415 export interface DescribeBudgetsResponse {
416 /**
417 * A list of budgets.
418 */
419 Budgets?: Budgets;
420 /**
421 * The pagination token in the service response that indicates the next set of results that you can retrieve.
422 */
423 NextToken?: GenericString;
424 }
425 export interface DescribeNotificationsForBudgetRequest {
426 /**
427 * The accountId that is associated with the budget whose notifications you want descriptions of.
428 */
429 AccountId: AccountId;
430 /**
431 * The name of the budget whose notifications you want descriptions of.
432 */
433 BudgetName: BudgetName;
434 /**
435 * An optional integer that represents how many entries a paginated response contains. The maximum is 100.
436 */
437 MaxResults?: MaxResults;
438 /**
439 * The pagination token that you include in your request to indicate the next set of results that you want to retrieve.
440 */
441 NextToken?: GenericString;
442 }
443 export interface DescribeNotificationsForBudgetResponse {
444 /**
445 * A list of notifications that are associated with a budget.
446 */
447 Notifications?: Notifications;
448 /**
449 * The pagination token in the service response that indicates the next set of results that you can retrieve.
450 */
451 NextToken?: GenericString;
452 }
453 export interface DescribeSubscribersForNotificationRequest {
454 /**
455 * The accountId that is associated with the budget whose subscribers you want descriptions of.
456 */
457 AccountId: AccountId;
458 /**
459 * The name of the budget whose subscribers you want descriptions of.
460 */
461 BudgetName: BudgetName;
462 /**
463 * The notification whose subscribers you want to list.
464 */
465 Notification: Notification;
466 /**
467 * An optional integer that represents how many entries a paginated response contains. The maximum is 100.
468 */
469 MaxResults?: MaxResults;
470 /**
471 * The pagination token that you include in your request to indicate the next set of results that you want to retrieve.
472 */
473 NextToken?: GenericString;
474 }
475 export interface DescribeSubscribersForNotificationResponse {
476 /**
477 * A list of subscribers that are associated with a notification.
478 */
479 Subscribers?: Subscribers;
480 /**
481 * The pagination token in the service response that indicates the next set of results that you can retrieve.
482 */
483 NextToken?: GenericString;
484 }
485 export type DimensionValues = GenericString[];
486 export type GenericString = string;
487 export type GenericTimestamp = Date;
488 export type MaxResults = number;
489 export interface Notification {
490 /**
491 * Whether the notification is for how much you have spent (ACTUAL) or for how much you're forecasted to spend (FORECASTED).
492 */
493 NotificationType: NotificationType;
494 /**
495 * The comparison that is used for this notification.
496 */
497 ComparisonOperator: ComparisonOperator;
498 /**
499 * The threshold that is associated with a notification. Thresholds are always a percentage.
500 */
501 Threshold: NotificationThreshold;
502 /**
503 * The type of threshold for a notification. For ABSOLUTE_VALUE thresholds, AWS notifies you when you go over or are forecasted to go over your total cost threshold. For PERCENTAGE thresholds, AWS notifies you when you go over or are forecasted to go over a certain percentage of your forecasted spend. For example, if you have a budget for 200 dollars and you have a PERCENTAGE threshold of 80%, AWS notifies you when you go over 160 dollars.
504 */
505 ThresholdType?: ThresholdType;
506 /**
507 * Whether this notification is in alarm. If a budget notification is in the ALARM state, you have passed the set threshold for the budget.
508 */
509 NotificationState?: NotificationState;
510 }
511 export type NotificationState = "OK"|"ALARM"|string;
512 export type NotificationThreshold = number;
513 export type NotificationType = "ACTUAL"|"FORECASTED"|string;
514 export interface NotificationWithSubscribers {
515 /**
516 * The notification that is associated with a budget.
517 */
518 Notification: Notification;
519 /**
520 * A list of subscribers who are subscribed to this notification.
521 */
522 Subscribers: Subscribers;
523 }
524 export type NotificationWithSubscribersList = NotificationWithSubscribers[];
525 export type Notifications = Notification[];
526 export type NullableBoolean = boolean;
527 export type NumericValue = string;
528 export type PlannedBudgetLimits = {[key: string]: Spend};
529 export interface Spend {
530 /**
531 * The cost or usage amount that is associated with a budget forecast, actual spend, or budget threshold.
532 */
533 Amount: NumericValue;
534 /**
535 * The unit of measurement that is used for the budget forecast, actual spend, or budget threshold, such as dollars or GB.
536 */
537 Unit: UnitValue;
538 }
539 export interface Subscriber {
540 /**
541 * The type of notification that AWS sends to a subscriber.
542 */
543 SubscriptionType: SubscriptionType;
544 /**
545 * The address that AWS sends budget notifications to, either an SNS topic or an email. When you create a subscriber, the value of Address can't contain line breaks.
546 */
547 Address: SubscriberAddress;
548 }
549 export type SubscriberAddress = string;
550 export type Subscribers = Subscriber[];
551 export type SubscriptionType = "SNS"|"EMAIL"|string;
552 export type ThresholdType = "PERCENTAGE"|"ABSOLUTE_VALUE"|string;
553 export interface TimePeriod {
554 /**
555 * The start date for a budget. If you created your budget and didn't specify a start date, AWS defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose DAILY, and didn't set a start date, AWS set your start date to 01/24/18 00:00 UTC. If you chose MONTHLY, AWS set your start date to 01/01/18 00:00 UTC. The defaults are the same for the AWS Billing and Cost Management console and the API. You can change your start date with the UpdateBudget operation.
556 */
557 Start?: GenericTimestamp;
558 /**
559 * The end date for a budget. If you didn't specify an end date, AWS set your end date to 06/15/87 00:00 UTC. The defaults are the same for the AWS Billing and Cost Management console and the API. After the end date, AWS deletes the budget and all associated notifications and subscribers. You can change your end date with the UpdateBudget operation.
560 */
561 End?: GenericTimestamp;
562 }
563 export type TimeUnit = "DAILY"|"MONTHLY"|"QUARTERLY"|"ANNUALLY"|string;
564 export type UnitValue = string;
565 export interface UpdateBudgetRequest {
566 /**
567 * The accountId that is associated with the budget that you want to update.
568 */
569 AccountId: AccountId;
570 /**
571 * The budget that you want to update your budget to.
572 */
573 NewBudget: Budget;
574 }
575 export interface UpdateBudgetResponse {
576 }
577 export interface UpdateNotificationRequest {
578 /**
579 * The accountId that is associated with the budget whose notification you want to update.
580 */
581 AccountId: AccountId;
582 /**
583 * The name of the budget whose notification you want to update.
584 */
585 BudgetName: BudgetName;
586 /**
587 * The previous notification that is associated with a budget.
588 */
589 OldNotification: Notification;
590 /**
591 * The updated notification to be associated with a budget.
592 */
593 NewNotification: Notification;
594 }
595 export interface UpdateNotificationResponse {
596 }
597 export interface UpdateSubscriberRequest {
598 /**
599 * The accountId that is associated with the budget whose subscriber you want to update.
600 */
601 AccountId: AccountId;
602 /**
603 * The name of the budget whose subscriber you want to update.
604 */
605 BudgetName: BudgetName;
606 /**
607 * The notification whose subscriber you want to update.
608 */
609 Notification: Notification;
610 /**
611 * The previous subscriber that is associated with a budget notification.
612 */
613 OldSubscriber: Subscriber;
614 /**
615 * The updated subscriber that is associated with a budget notification.
616 */
617 NewSubscriber: Subscriber;
618 }
619 export interface UpdateSubscriberResponse {
620 }
621 /**
622 * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
623 */
624 export type apiVersion = "2016-10-20"|"latest"|string;
625 export interface ClientApiVersions {
626 /**
627 * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
628 */
629 apiVersion?: apiVersion;
630 }
631 export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions;
632 /**
633 * Contains interfaces for use with the Budgets client.
634 */
635 export import Types = Budgets;
636}
637export = Budgets;