Menu
AWS Cost Explorer Service
Cost Management APIs

CreateBudget

Creates a budget and, if included, notifications and subscribers.

Request Syntax

{ "AccountId": "string", "Budget": { "BudgetLimit": { "Amount": "string", "Unit": "string" }, "BudgetName": "string", "BudgetType": "string", "CalculatedSpend": { "ActualSpend": { "Amount": "string", "Unit": "string" }, "ForecastedSpend": { "Amount": "string", "Unit": "string" } }, "CostFilters": { "string" : [ "string" ] }, "CostTypes": { "IncludeCredit": boolean, "IncludeDiscount": boolean, "IncludeOtherSubscription": boolean, "IncludeRecurring": boolean, "IncludeRefund": boolean, "IncludeSubscription": boolean, "IncludeSupport": boolean, "IncludeTax": boolean, "IncludeUpfront": boolean, "UseAmortized": boolean, "UseBlended": boolean }, "TimePeriod": { "End": number, "Start": number }, "TimeUnit": "string" }, "NotificationsWithSubscribers": [ { "Notification": { "ComparisonOperator": "string", "NotificationType": "string", "Threshold": number, "ThresholdType": "string" }, "Subscribers": [ { "Address": "string", "SubscriptionType": "string" } ] } ] }

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

The request accepts the following data in JSON format.

AccountId

The accountId that is associated with the budget.

Type: String

Length Constraints: Fixed length of 12.

Required: Yes

Budget

The budget object that you want to create.

Type: Budget object

Required: Yes

NotificationsWithSubscribers

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 ten email subscribers. If you include notifications and subscribers in your CreateBudget call, AWS creates the notifications and subscribers for you.

Type: Array of NotificationWithSubscribers objects

Array Members: Maximum number of 5 items.

Required: No

Response Elements

If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.

Errors

For information about the errors that are common to all actions, see Common Errors.

CreationLimitExceededException

You've exceeded the notification or subscriber limit.

HTTP Status Code: 400

DuplicateRecordException

The budget name already exists. Budget names must be unique within an account.

HTTP Status Code: 400

InternalErrorException

An error on the server occurred during the processing of your request. Try again later.

HTTP Status Code: 400

InvalidParameterException

An error on the client occurred. Typically, the cause is an invalid input value.

HTTP Status Code: 400

Example

The following is a sample request of the CreateBudget operation.

Sample Request

POST / HTTP/1.1 Host: awsbudgets.<region>.<domain> x-amz-Date: <Date> Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=contenttype;date;host;user-agent;x-amz-date;x-amz-target;x-amzn-requestid,Signature=<Signature> User-Agent: <UserAgentString> Content-Type: application/x-amz-json-1.1 Content-Length: <PayloadSizeBytes> Connection: Keep-Alive X-Amz-Target: AWSBudgetServiceGateway.CreateBudgets { "AccountId": "111122223333", "Budget": { "BudgetLimit": { "Amount": "100", "Unit": "USD" }, "BudgetName": "Example Budget", "BudgetType": "COST", "CostFilters": { "AZ" : [ "us-east-1" ] }, "CostTypes": { "IncludeCredit": true, "IncludeDiscount": true, "IncludeOtherSubscription": true, "IncludeRecurring": true, "IncludeRefund": true, "IncludeSubscription": true, "IncludeSupport": true, "IncludeTax": true, "IncludeUpfront": true, "UseBlended": false }, "TimePeriod": { "Start": 1477353600, "End": 1477958399 }, "TimeUnit": "MONTHLY" }, "NotificationsWithSubscribers": [ { "Notification": { "ComparisonOperator": "GREATER_THAN", "NotificationType": "ACTUAL", "Threshold": 80, "ThresholdType": "PERCENTAGE" }, "Subscribers": [ { "Address": "example@example.com", "SubscriptionType": "EMAIL" } ] } ] }

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: