class Aws::Budgets::Types::Budget

Represents the output of the `CreateBudget` operation. The content consists of the detailed metadata and data file information, and the current status of the `budget` object.

This is the ARN pattern for a budget:

`arn:aws:budgets::AccountId:budget/budgetName`

@note When making an API call, you may pass Budget

data as a hash:

    {
      budget_name: "BudgetName", # required
      budget_limit: {
        amount: "NumericValue", # required
        unit: "UnitValue", # required
      },
      planned_budget_limits: {
        "GenericString" => {
          amount: "NumericValue", # required
          unit: "UnitValue", # required
        },
      },
      cost_filters: {
        "GenericString" => ["GenericString"],
      },
      cost_types: {
        include_tax: false,
        include_subscription: false,
        use_blended: false,
        include_refund: false,
        include_credit: false,
        include_upfront: false,
        include_recurring: false,
        include_other_subscription: false,
        include_support: false,
        include_discount: false,
        use_amortized: false,
      },
      time_unit: "DAILY", # required, accepts DAILY, MONTHLY, QUARTERLY, ANNUALLY
      time_period: {
        start: Time.now,
        end: Time.now,
      },
      calculated_spend: {
        actual_spend: { # required
          amount: "NumericValue", # required
          unit: "UnitValue", # required
        },
        forecasted_spend: {
          amount: "NumericValue", # required
          unit: "UnitValue", # required
        },
      },
      budget_type: "USAGE", # required, accepts USAGE, COST, RI_UTILIZATION, RI_COVERAGE, SAVINGS_PLANS_UTILIZATION, SAVINGS_PLANS_COVERAGE
      last_updated_time: Time.now,
    }

@!attribute [rw] budget_name

The name of a budget. The name must be unique within an account. The
`:` and `` characters aren't allowed in `BudgetName`.
@return [String]

@!attribute [rw] budget_limit

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.
@return [Types::Spend]

@!attribute [rw] planned_budget_limits

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`.
@return [Hash<String,Types::Spend>]

@!attribute [rw] cost_filters

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
@return [Hash<String,Array<String>>]

@!attribute [rw] cost_types

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`.
@return [Types::CostTypes]

@!attribute [rw] time_unit

The length of time until a budget resets the actual and forecasted
spend.
@return [String]

@!attribute [rw] time_period

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.
@return [Types::TimePeriod]

@!attribute [rw] calculated_spend

The actual and forecasted cost or usage that the budget tracks.
@return [Types::CalculatedSpend]

@!attribute [rw] budget_type

Whether this budget tracks costs, usage, RI utilization, RI
coverage, Savings Plans utilization, or Savings Plans coverage.
@return [String]

@!attribute [rw] last_updated_time

The last time that you updated this budget.
@return [Time]

Constants

SENSITIVE