import { AccessLevelList } from '../shared/access-level' ; import { PolicyStatement } from '../shared' ; param sid export class Budgets extends PolicyStatement { public servicePrefix = 'budgets' ; param sid constructor ( sid ? ) { super ( sid ) ; } /**
     * Grants permissions to create and define a response that you can configure to execute once your budget has exceeded a specific budget threshold.
     *
     * Access Level: Write
     *
     * Dependent actions:
     * - iam:PassRole
     *
     * https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-permissions-ref.html#user-permissions
     */ public toCreateBudgetAction ( ) { return this . to ( 'CreateBudgetAction' ) ; } /**
     * Grants permissions to delete an action that is associated with a specific budget.
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-permissions-ref.html#user-permissions
     */ public toDeleteBudgetAction ( ) { return this . to ( 'DeleteBudgetAction' ) ; } /**
     * Grants permissions to retrieve the details of specific budget action associated with a budget.
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-permissions-ref.html#user-permissions
     */ public toDescribeBudgetAction ( ) { return this . to ( 'DescribeBudgetAction' ) ; } /**
     * Grants permissions to retrieve a historical view of the budget actions statuses associated with a particular budget action. These status include statues such as 'Standby', 'Pending' and 'Executed'.
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-permissions-ref.html#user-permissions
     */ public toDescribeBudgetActionHistories ( ) { return this . to ( 'DescribeBudgetActionHistories' ) ; } /**
     * Grants permissions to retrieve the details of all of the budget actions associated with your account.
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-permissions-ref.html#user-permissions
     */ public toDescribeBudgetActionsForAccount ( ) { return this . to ( 'DescribeBudgetActionsForAccount' ) ; } /**
     * Grants permissions to retrieve the details of all of the budget actions associated with a budget.
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-permissions-ref.html#user-permissions
     */ public toDescribeBudgetActionsForBudget ( ) { return this . to ( 'DescribeBudgetActionsForBudget' ) ; } /**
     * Grants permissions to initiate a pending budget action as well as reverse a previously executed budget action.
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-permissions-ref.html#user-permissions
     */ public toExecuteBudgetAction ( ) { return this . to ( 'ExecuteBudgetAction' ) ; } /**
     * Grants permissions to modify budgets and budget details
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-permissions-ref.html#user-permissions
     */ public toModifyBudget ( ) { return this . to ( 'ModifyBudget' ) ; } /**
     * Grants permissions to update the details of a specific budget action associated with a budget.
     *
     * Access Level: Write
     *
     * Dependent actions:
     * - iam:PassRole
     *
     * https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-permissions-ref.html#user-permissions
     */ public toUpdateBudgetAction ( ) { return this . to ( 'UpdateBudgetAction' ) ; } /**
     * Grants permissions to view budgets and budget details
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-permissions-ref.html#user-permissions
     */ public toViewBudget ( ) { return this . to ( 'ViewBudget' ) ; } protected accessLevelList : AccessLevelList = { Write : [ 'CreateBudgetAction' , 'DeleteBudgetAction' , 'ExecuteBudgetAction' , 'ModifyBudget' , 'UpdateBudgetAction' ] , Read : [ 'DescribeBudgetAction' , 'DescribeBudgetActionHistories' , 'DescribeBudgetActionsForAccount' , 'DescribeBudgetActionsForBudget' , 'ViewBudget' ] } ; param budgetName param account param partition public onBudget ( budgetName , account ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:budgets::${ account || '*' }:budget/${ budgetName }` ) ; } param budgetName param actionId param account param partition public onBudgetAction ( budgetName , actionId , account ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:budgets::${ account || '*' }:budget/${ budgetName }/action/${ actionId }` ) ; } }