@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Budgets
@version 2016-10-20
@auth AWS SigV4
@endpoints 26
@hint download_for_search
@toc root(26)

@endpoint POST /
@desc 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.
@required {AccountId: str, Budget: Budget}
@optional {NotificationsWithSubscribers: [NotificationWithSubscribers], ResourceTags: [ResourceTag]}

@endpoint POST /
@desc Creates a budget action.
@required {AccountId: str, BudgetName: str, NotificationType: str, ActionType: str, ActionThreshold: ActionThreshold, Definition: Definition, ExecutionRoleArn: str, ApprovalModel: str, Subscribers: [Subscriber]}
@optional {ResourceTags: [ResourceTag]}
@returns(200) {AccountId: str, BudgetName: str, ActionId: str}

@endpoint POST /
@desc Creates a notification. You must create the budget before you create the associated notification.
@required {AccountId: str, BudgetName: str, Notification: Notification, Subscribers: [Subscriber]}

@endpoint POST /
@desc Creates a subscriber. You must create the associated budget and notification before you create the subscriber.
@required {AccountId: str, BudgetName: str, Notification: Notification, Subscriber: Subscriber}

@endpoint POST /
@desc 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.
@required {AccountId: str, BudgetName: str}

@endpoint POST /
@desc Deletes a budget action.
@required {AccountId: str, BudgetName: str, ActionId: str}
@returns(200) {AccountId: str, BudgetName: str, Action: Action{ActionId: str, BudgetName: str, NotificationType: str, ActionType: str, ActionThreshold: ActionThreshold{ActionThresholdValue: num(f64), ActionThresholdType: str}, Definition: Definition{IamActionDefinition: IamActionDefinition?{PolicyArn: str, Roles: [str]?, Groups: [str]?, Users: [str]?}, ScpActionDefinition: ScpActionDefinition?{PolicyId: str, TargetIds: [str]}, SsmActionDefinition: SsmActionDefinition?{ActionSubType: str, Region: str, InstanceIds: [str]}}, ExecutionRoleArn: str, ApprovalModel: str, Status: str, Subscribers: [Subscriber]}}

@endpoint POST /
@desc Deletes a notification.  Deleting a notification also deletes the subscribers that are associated with the notification.
@required {AccountId: str, BudgetName: str, Notification: Notification}

@endpoint POST /
@desc Deletes a subscriber.  Deleting the last subscriber to a notification also deletes the notification.
@required {AccountId: str, BudgetName: str, Notification: Notification, Subscriber: Subscriber}

@endpoint POST /
@desc Describes a budget.  The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section.
@required {AccountId: str, BudgetName: str}
@returns(200) {Budget: Budget?{BudgetName: str, BudgetLimit: Spend?{Amount: str, Unit: str}, PlannedBudgetLimits: map<str,Spend>?, CostFilters: map<str,[str]>?, CostTypes: CostTypes?{IncludeTax: bool?, IncludeSubscription: bool?, UseBlended: bool?, IncludeRefund: bool?, IncludeCredit: bool?, IncludeUpfront: bool?, IncludeRecurring: bool?, IncludeOtherSubscription: bool?, IncludeSupport: bool?, IncludeDiscount: bool?, UseAmortized: bool?}, TimeUnit: str, TimePeriod: TimePeriod?{Start: str(timestamp)?, End: str(timestamp)?}, CalculatedSpend: CalculatedSpend?{ActualSpend: Spend{Amount: str, Unit: str}, ForecastedSpend: Spend?{Amount: str, Unit: str}}, BudgetType: str, LastUpdatedTime: str(timestamp)?, AutoAdjustData: AutoAdjustData?{AutoAdjustType: str, HistoricalOptions: HistoricalOptions?{BudgetAdjustmentPeriod: int, LookBackAvailablePeriods: int?}, LastAutoAdjustTime: str(timestamp)?}}}

@endpoint POST /
@desc Describes a budget action detail.
@required {AccountId: str, BudgetName: str, ActionId: str}
@returns(200) {AccountId: str, BudgetName: str, Action: Action{ActionId: str, BudgetName: str, NotificationType: str, ActionType: str, ActionThreshold: ActionThreshold{ActionThresholdValue: num(f64), ActionThresholdType: str}, Definition: Definition{IamActionDefinition: IamActionDefinition?{PolicyArn: str, Roles: [str]?, Groups: [str]?, Users: [str]?}, ScpActionDefinition: ScpActionDefinition?{PolicyId: str, TargetIds: [str]}, SsmActionDefinition: SsmActionDefinition?{ActionSubType: str, Region: str, InstanceIds: [str]}}, ExecutionRoleArn: str, ApprovalModel: str, Status: str, Subscribers: [Subscriber]}}

@endpoint POST /
@desc Describes a budget action history detail.
@required {AccountId: str, BudgetName: str, ActionId: str}
@optional {TimePeriod: TimePeriod, MaxResults: int, NextToken: str}
@returns(200) {ActionHistories: [ActionHistory], NextToken: str?}

@endpoint POST /
@desc Describes all of the budget actions for an account.
@required {AccountId: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {Actions: [Action], NextToken: str?}

@endpoint POST /
@desc Describes all of the budget actions for a budget.
@required {AccountId: str, BudgetName: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {Actions: [Action], NextToken: str?}

@endpoint POST /
@desc Lists the budget names and notifications that are associated with an account.
@required {AccountId: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {BudgetNotificationsForAccount: [BudgetNotificationsForAccount]?, NextToken: str?}

@endpoint POST /
@desc Describes the history for DAILY, MONTHLY, and QUARTERLY budgets. Budget history isn't available for ANNUAL budgets.
@required {AccountId: str, BudgetName: str}
@optional {TimePeriod: TimePeriod, MaxResults: int, NextToken: str}
@returns(200) {BudgetPerformanceHistory: BudgetPerformanceHistory?{BudgetName: str?, BudgetType: str?, CostFilters: map<str,[str]>?, CostTypes: CostTypes?{IncludeTax: bool?, IncludeSubscription: bool?, UseBlended: bool?, IncludeRefund: bool?, IncludeCredit: bool?, IncludeUpfront: bool?, IncludeRecurring: bool?, IncludeOtherSubscription: bool?, IncludeSupport: bool?, IncludeDiscount: bool?, UseAmortized: bool?}, TimeUnit: str?, BudgetedAndActualAmountsList: [BudgetedAndActualAmounts]?}, NextToken: str?}

@endpoint POST /
@desc Lists the budgets that are associated with an account.  The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section.
@required {AccountId: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {Budgets: [Budget]?, NextToken: str?}

@endpoint POST /
@desc Lists the notifications that are associated with a budget.
@required {AccountId: str, BudgetName: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {Notifications: [Notification]?, NextToken: str?}

@endpoint POST /
@desc Lists the subscribers that are associated with a notification.
@required {AccountId: str, BudgetName: str, Notification: Notification}
@optional {MaxResults: int, NextToken: str}
@returns(200) {Subscribers: [Subscriber]?, NextToken: str?}

@endpoint POST /
@desc Executes a budget action.
@required {AccountId: str, BudgetName: str, ActionId: str, ExecutionType: str}
@returns(200) {AccountId: str, BudgetName: str, ActionId: str, ExecutionType: str}

@endpoint POST /
@desc Lists tags associated with a budget or budget action resource.
@required {ResourceARN: str}
@returns(200) {ResourceTags: [ResourceTag]?}

@endpoint POST /
@desc Creates tags for a budget or budget action resource.
@required {ResourceARN: str, ResourceTags: [ResourceTag]}

@endpoint POST /
@desc Deletes tags associated with a budget or budget action resource.
@required {ResourceARN: str, ResourceTagKeys: [str]}

@endpoint POST /
@desc 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 Amazon Web Services 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.
@required {AccountId: str, NewBudget: Budget}

@endpoint POST /
@desc Updates a budget action.
@required {AccountId: str, BudgetName: str, ActionId: str}
@optional {NotificationType: str, ActionThreshold: ActionThreshold, Definition: Definition, ExecutionRoleArn: str, ApprovalModel: str, Subscribers: [Subscriber]}
@returns(200) {AccountId: str, BudgetName: str, OldAction: Action{ActionId: str, BudgetName: str, NotificationType: str, ActionType: str, ActionThreshold: ActionThreshold{ActionThresholdValue: num(f64), ActionThresholdType: str}, Definition: Definition{IamActionDefinition: IamActionDefinition?{PolicyArn: str, Roles: [str]?, Groups: [str]?, Users: [str]?}, ScpActionDefinition: ScpActionDefinition?{PolicyId: str, TargetIds: [str]}, SsmActionDefinition: SsmActionDefinition?{ActionSubType: str, Region: str, InstanceIds: [str]}}, ExecutionRoleArn: str, ApprovalModel: str, Status: str, Subscribers: [Subscriber]}, NewAction: Action{ActionId: str, BudgetName: str, NotificationType: str, ActionType: str, ActionThreshold: ActionThreshold{ActionThresholdValue: num(f64), ActionThresholdType: str}, Definition: Definition{IamActionDefinition: IamActionDefinition?{PolicyArn: str, Roles: [str]?, Groups: [str]?, Users: [str]?}, ScpActionDefinition: ScpActionDefinition?{PolicyId: str, TargetIds: [str]}, SsmActionDefinition: SsmActionDefinition?{ActionSubType: str, Region: str, InstanceIds: [str]}}, ExecutionRoleArn: str, ApprovalModel: str, Status: str, Subscribers: [Subscriber]}}

@endpoint POST /
@desc Updates a notification.
@required {AccountId: str, BudgetName: str, OldNotification: Notification, NewNotification: Notification}

@endpoint POST /
@desc Updates a subscriber.
@required {AccountId: str, BudgetName: str, Notification: Notification, OldSubscriber: Subscriber, NewSubscriber: Subscriber}

@end
