/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Budgets { namespace Model { /** *

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 Amazon Resource * Name (ARN) pattern for a budget:

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

See * Also:

AWS API * Reference

*/ class Budget { public: AWS_BUDGETS_API Budget(); AWS_BUDGETS_API Budget(Aws::Utils::Json::JsonView jsonValue); AWS_BUDGETS_API Budget& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_BUDGETS_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The name of a budget. The name must be unique within an account. The * : and \ characters aren't allowed in * BudgetName.

*/ inline const Aws::String& GetBudgetName() const{ return m_budgetName; } /** *

The name of a budget. The name must be unique within an account. The * : and \ characters aren't allowed in * BudgetName.

*/ inline bool BudgetNameHasBeenSet() const { return m_budgetNameHasBeenSet; } /** *

The name of a budget. The name must be unique within an account. The * : and \ characters aren't allowed in * BudgetName.

*/ inline void SetBudgetName(const Aws::String& value) { m_budgetNameHasBeenSet = true; m_budgetName = value; } /** *

The name of a budget. The name must be unique within an account. The * : and \ characters aren't allowed in * BudgetName.

*/ inline void SetBudgetName(Aws::String&& value) { m_budgetNameHasBeenSet = true; m_budgetName = std::move(value); } /** *

The name of a budget. The name must be unique within an account. The * : and \ characters aren't allowed in * BudgetName.

*/ inline void SetBudgetName(const char* value) { m_budgetNameHasBeenSet = true; m_budgetName.assign(value); } /** *

The name of a budget. The name must be unique within an account. The * : and \ characters aren't allowed in * BudgetName.

*/ inline Budget& WithBudgetName(const Aws::String& value) { SetBudgetName(value); return *this;} /** *

The name of a budget. The name must be unique within an account. The * : and \ characters aren't allowed in * BudgetName.

*/ inline Budget& WithBudgetName(Aws::String&& value) { SetBudgetName(std::move(value)); return *this;} /** *

The name of a budget. The name must be unique within an account. The * : and \ characters aren't allowed in * BudgetName.

*/ inline Budget& WithBudgetName(const char* value) { SetBudgetName(value); return *this;} /** *

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. This * 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.

*/ inline const Spend& GetBudgetLimit() const{ return m_budgetLimit; } /** *

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. This * 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.

*/ inline bool BudgetLimitHasBeenSet() const { return m_budgetLimitHasBeenSet; } /** *

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. This * 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.

*/ inline void SetBudgetLimit(const Spend& value) { m_budgetLimitHasBeenSet = true; m_budgetLimit = value; } /** *

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. This * 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.

*/ inline void SetBudgetLimit(Spend&& value) { m_budgetLimitHasBeenSet = true; m_budgetLimit = std::move(value); } /** *

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. This * 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.

*/ inline Budget& WithBudgetLimit(const Spend& value) { SetBudgetLimit(value); return *this;} /** *

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. This * 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.

*/ inline Budget& WithBudgetLimit(Spend&& value) { SetBudgetLimit(std::move(value)); return *this;} /** *

A map containing multiple BudgetLimit, including current or * future limits.

PlannedBudgetLimits is available for cost or * usage budget and supports both 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 four quarters of * PlannedBudgetLimits value entries in standard calendar quarter * increments. This must start from the current quarter and include the next three * quarters. The key is the start of the quarter, UTC in * epoch seconds.

If the planned budget expires before 12 months for * monthly or four 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 also contain BudgetLimit * representing the current month or quarter limit present in * PlannedBudgetLimits. This only applies to budgets that are created * with PlannedBudgetLimits. Budgets that are created without * PlannedBudgetLimits only contain BudgetLimit. They * don't contain PlannedBudgetLimits.

*/ inline const Aws::Map& GetPlannedBudgetLimits() const{ return m_plannedBudgetLimits; } /** *

A map containing multiple BudgetLimit, including current or * future limits.

PlannedBudgetLimits is available for cost or * usage budget and supports both 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 four quarters of * PlannedBudgetLimits value entries in standard calendar quarter * increments. This must start from the current quarter and include the next three * quarters. The key is the start of the quarter, UTC in * epoch seconds.

If the planned budget expires before 12 months for * monthly or four 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 also contain BudgetLimit * representing the current month or quarter limit present in * PlannedBudgetLimits. This only applies to budgets that are created * with PlannedBudgetLimits. Budgets that are created without * PlannedBudgetLimits only contain BudgetLimit. They * don't contain PlannedBudgetLimits.

*/ inline bool PlannedBudgetLimitsHasBeenSet() const { return m_plannedBudgetLimitsHasBeenSet; } /** *

A map containing multiple BudgetLimit, including current or * future limits.

PlannedBudgetLimits is available for cost or * usage budget and supports both 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 four quarters of * PlannedBudgetLimits value entries in standard calendar quarter * increments. This must start from the current quarter and include the next three * quarters. The key is the start of the quarter, UTC in * epoch seconds.

If the planned budget expires before 12 months for * monthly or four 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 also contain BudgetLimit * representing the current month or quarter limit present in * PlannedBudgetLimits. This only applies to budgets that are created * with PlannedBudgetLimits. Budgets that are created without * PlannedBudgetLimits only contain BudgetLimit. They * don't contain PlannedBudgetLimits.

*/ inline void SetPlannedBudgetLimits(const Aws::Map& value) { m_plannedBudgetLimitsHasBeenSet = true; m_plannedBudgetLimits = value; } /** *

A map containing multiple BudgetLimit, including current or * future limits.

PlannedBudgetLimits is available for cost or * usage budget and supports both 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 four quarters of * PlannedBudgetLimits value entries in standard calendar quarter * increments. This must start from the current quarter and include the next three * quarters. The key is the start of the quarter, UTC in * epoch seconds.

If the planned budget expires before 12 months for * monthly or four 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 also contain BudgetLimit * representing the current month or quarter limit present in * PlannedBudgetLimits. This only applies to budgets that are created * with PlannedBudgetLimits. Budgets that are created without * PlannedBudgetLimits only contain BudgetLimit. They * don't contain PlannedBudgetLimits.

*/ inline void SetPlannedBudgetLimits(Aws::Map&& value) { m_plannedBudgetLimitsHasBeenSet = true; m_plannedBudgetLimits = std::move(value); } /** *

A map containing multiple BudgetLimit, including current or * future limits.

PlannedBudgetLimits is available for cost or * usage budget and supports both 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 four quarters of * PlannedBudgetLimits value entries in standard calendar quarter * increments. This must start from the current quarter and include the next three * quarters. The key is the start of the quarter, UTC in * epoch seconds.

If the planned budget expires before 12 months for * monthly or four 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 also contain BudgetLimit * representing the current month or quarter limit present in * PlannedBudgetLimits. This only applies to budgets that are created * with PlannedBudgetLimits. Budgets that are created without * PlannedBudgetLimits only contain BudgetLimit. They * don't contain PlannedBudgetLimits.

*/ inline Budget& WithPlannedBudgetLimits(const Aws::Map& value) { SetPlannedBudgetLimits(value); return *this;} /** *

A map containing multiple BudgetLimit, including current or * future limits.

PlannedBudgetLimits is available for cost or * usage budget and supports both 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 four quarters of * PlannedBudgetLimits value entries in standard calendar quarter * increments. This must start from the current quarter and include the next three * quarters. The key is the start of the quarter, UTC in * epoch seconds.

If the planned budget expires before 12 months for * monthly or four 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 also contain BudgetLimit * representing the current month or quarter limit present in * PlannedBudgetLimits. This only applies to budgets that are created * with PlannedBudgetLimits. Budgets that are created without * PlannedBudgetLimits only contain BudgetLimit. They * don't contain PlannedBudgetLimits.

*/ inline Budget& WithPlannedBudgetLimits(Aws::Map&& value) { SetPlannedBudgetLimits(std::move(value)); return *this;} /** *

A map containing multiple BudgetLimit, including current or * future limits.

PlannedBudgetLimits is available for cost or * usage budget and supports both 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 four quarters of * PlannedBudgetLimits value entries in standard calendar quarter * increments. This must start from the current quarter and include the next three * quarters. The key is the start of the quarter, UTC in * epoch seconds.

If the planned budget expires before 12 months for * monthly or four 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 also contain BudgetLimit * representing the current month or quarter limit present in * PlannedBudgetLimits. This only applies to budgets that are created * with PlannedBudgetLimits. Budgets that are created without * PlannedBudgetLimits only contain BudgetLimit. They * don't contain PlannedBudgetLimits.

*/ inline Budget& AddPlannedBudgetLimits(const Aws::String& key, const Spend& value) { m_plannedBudgetLimitsHasBeenSet = true; m_plannedBudgetLimits.emplace(key, value); return *this; } /** *

A map containing multiple BudgetLimit, including current or * future limits.

PlannedBudgetLimits is available for cost or * usage budget and supports both 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 four quarters of * PlannedBudgetLimits value entries in standard calendar quarter * increments. This must start from the current quarter and include the next three * quarters. The key is the start of the quarter, UTC in * epoch seconds.

If the planned budget expires before 12 months for * monthly or four 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 also contain BudgetLimit * representing the current month or quarter limit present in * PlannedBudgetLimits. This only applies to budgets that are created * with PlannedBudgetLimits. Budgets that are created without * PlannedBudgetLimits only contain BudgetLimit. They * don't contain PlannedBudgetLimits.

*/ inline Budget& AddPlannedBudgetLimits(Aws::String&& key, const Spend& value) { m_plannedBudgetLimitsHasBeenSet = true; m_plannedBudgetLimits.emplace(std::move(key), value); return *this; } /** *

A map containing multiple BudgetLimit, including current or * future limits.

PlannedBudgetLimits is available for cost or * usage budget and supports both 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 four quarters of * PlannedBudgetLimits value entries in standard calendar quarter * increments. This must start from the current quarter and include the next three * quarters. The key is the start of the quarter, UTC in * epoch seconds.

If the planned budget expires before 12 months for * monthly or four 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 also contain BudgetLimit * representing the current month or quarter limit present in * PlannedBudgetLimits. This only applies to budgets that are created * with PlannedBudgetLimits. Budgets that are created without * PlannedBudgetLimits only contain BudgetLimit. They * don't contain PlannedBudgetLimits.

*/ inline Budget& AddPlannedBudgetLimits(const Aws::String& key, Spend&& value) { m_plannedBudgetLimitsHasBeenSet = true; m_plannedBudgetLimits.emplace(key, std::move(value)); return *this; } /** *

A map containing multiple BudgetLimit, including current or * future limits.

PlannedBudgetLimits is available for cost or * usage budget and supports both 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 four quarters of * PlannedBudgetLimits value entries in standard calendar quarter * increments. This must start from the current quarter and include the next three * quarters. The key is the start of the quarter, UTC in * epoch seconds.

If the planned budget expires before 12 months for * monthly or four 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 also contain BudgetLimit * representing the current month or quarter limit present in * PlannedBudgetLimits. This only applies to budgets that are created * with PlannedBudgetLimits. Budgets that are created without * PlannedBudgetLimits only contain BudgetLimit. They * don't contain PlannedBudgetLimits.

*/ inline Budget& AddPlannedBudgetLimits(Aws::String&& key, Spend&& value) { m_plannedBudgetLimitsHasBeenSet = true; m_plannedBudgetLimits.emplace(std::move(key), std::move(value)); return *this; } /** *

A map containing multiple BudgetLimit, including current or * future limits.

PlannedBudgetLimits is available for cost or * usage budget and supports both 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 four quarters of * PlannedBudgetLimits value entries in standard calendar quarter * increments. This must start from the current quarter and include the next three * quarters. The key is the start of the quarter, UTC in * epoch seconds.

If the planned budget expires before 12 months for * monthly or four 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 also contain BudgetLimit * representing the current month or quarter limit present in * PlannedBudgetLimits. This only applies to budgets that are created * with PlannedBudgetLimits. Budgets that are created without * PlannedBudgetLimits only contain BudgetLimit. They * don't contain PlannedBudgetLimits.

*/ inline Budget& AddPlannedBudgetLimits(const char* key, Spend&& value) { m_plannedBudgetLimitsHasBeenSet = true; m_plannedBudgetLimits.emplace(key, std::move(value)); return *this; } /** *

A map containing multiple BudgetLimit, including current or * future limits.

PlannedBudgetLimits is available for cost or * usage budget and supports both 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 four quarters of * PlannedBudgetLimits value entries in standard calendar quarter * increments. This must start from the current quarter and include the next three * quarters. The key is the start of the quarter, UTC in * epoch seconds.

If the planned budget expires before 12 months for * monthly or four 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 also contain BudgetLimit * representing the current month or quarter limit present in * PlannedBudgetLimits. This only applies to budgets that are created * with PlannedBudgetLimits. Budgets that are created without * PlannedBudgetLimits only contain BudgetLimit. They * don't contain PlannedBudgetLimits.

*/ inline Budget& AddPlannedBudgetLimits(const char* key, const Spend& value) { m_plannedBudgetLimitsHasBeenSet = true; m_plannedBudgetLimits.emplace(key, value); return *this; } /** *

The cost filters, such as Region, Service, * member account, Tag, or Cost Category, * that are applied to a budget.

Amazon Web Services Budgets supports the * following services as a Service filter for RI budgets:

    *
  • Amazon EC2

  • Amazon Redshift

  • Amazon * Relational Database Service

  • Amazon ElastiCache

  • *

    Amazon OpenSearch Service

*/ inline const Aws::Map>& GetCostFilters() const{ return m_costFilters; } /** *

The cost filters, such as Region, Service, * member account, Tag, or Cost Category, * that are applied to a budget.

Amazon Web Services Budgets supports the * following services as a Service filter for RI budgets:

    *
  • Amazon EC2

  • Amazon Redshift

  • Amazon * Relational Database Service

  • Amazon ElastiCache

  • *

    Amazon OpenSearch Service

*/ inline bool CostFiltersHasBeenSet() const { return m_costFiltersHasBeenSet; } /** *

The cost filters, such as Region, Service, * member account, Tag, or Cost Category, * that are applied to a budget.

Amazon Web Services Budgets supports the * following services as a Service filter for RI budgets:

    *
  • Amazon EC2

  • Amazon Redshift

  • Amazon * Relational Database Service

  • Amazon ElastiCache

  • *

    Amazon OpenSearch Service

*/ inline void SetCostFilters(const Aws::Map>& value) { m_costFiltersHasBeenSet = true; m_costFilters = value; } /** *

The cost filters, such as Region, Service, * member account, Tag, or Cost Category, * that are applied to a budget.

Amazon Web Services Budgets supports the * following services as a Service filter for RI budgets:

    *
  • Amazon EC2

  • Amazon Redshift

  • Amazon * Relational Database Service

  • Amazon ElastiCache

  • *

    Amazon OpenSearch Service

*/ inline void SetCostFilters(Aws::Map>&& value) { m_costFiltersHasBeenSet = true; m_costFilters = std::move(value); } /** *

The cost filters, such as Region, Service, * member account, Tag, or Cost Category, * that are applied to a budget.

Amazon Web Services Budgets supports the * following services as a Service filter for RI budgets:

    *
  • Amazon EC2

  • Amazon Redshift

  • Amazon * Relational Database Service

  • Amazon ElastiCache

  • *

    Amazon OpenSearch Service

*/ inline Budget& WithCostFilters(const Aws::Map>& value) { SetCostFilters(value); return *this;} /** *

The cost filters, such as Region, Service, * member account, Tag, or Cost Category, * that are applied to a budget.

Amazon Web Services Budgets supports the * following services as a Service filter for RI budgets:

    *
  • Amazon EC2

  • Amazon Redshift

  • Amazon * Relational Database Service

  • Amazon ElastiCache

  • *

    Amazon OpenSearch Service

*/ inline Budget& WithCostFilters(Aws::Map>&& value) { SetCostFilters(std::move(value)); return *this;} /** *

The cost filters, such as Region, Service, * member account, Tag, or Cost Category, * that are applied to a budget.

Amazon Web Services Budgets supports the * following services as a Service filter for RI budgets:

    *
  • Amazon EC2

  • Amazon Redshift

  • Amazon * Relational Database Service

  • Amazon ElastiCache

  • *

    Amazon OpenSearch Service

*/ inline Budget& AddCostFilters(const Aws::String& key, const Aws::Vector& value) { m_costFiltersHasBeenSet = true; m_costFilters.emplace(key, value); return *this; } /** *

The cost filters, such as Region, Service, * member account, Tag, or Cost Category, * that are applied to a budget.

Amazon Web Services Budgets supports the * following services as a Service filter for RI budgets:

    *
  • Amazon EC2

  • Amazon Redshift

  • Amazon * Relational Database Service

  • Amazon ElastiCache

  • *

    Amazon OpenSearch Service

*/ inline Budget& AddCostFilters(Aws::String&& key, const Aws::Vector& value) { m_costFiltersHasBeenSet = true; m_costFilters.emplace(std::move(key), value); return *this; } /** *

The cost filters, such as Region, Service, * member account, Tag, or Cost Category, * that are applied to a budget.

Amazon Web Services Budgets supports the * following services as a Service filter for RI budgets:

    *
  • Amazon EC2

  • Amazon Redshift

  • Amazon * Relational Database Service

  • Amazon ElastiCache

  • *

    Amazon OpenSearch Service

*/ inline Budget& AddCostFilters(const Aws::String& key, Aws::Vector&& value) { m_costFiltersHasBeenSet = true; m_costFilters.emplace(key, std::move(value)); return *this; } /** *

The cost filters, such as Region, Service, * member account, Tag, or Cost Category, * that are applied to a budget.

Amazon Web Services Budgets supports the * following services as a Service filter for RI budgets:

    *
  • Amazon EC2

  • Amazon Redshift

  • Amazon * Relational Database Service

  • Amazon ElastiCache

  • *

    Amazon OpenSearch Service

*/ inline Budget& AddCostFilters(Aws::String&& key, Aws::Vector&& value) { m_costFiltersHasBeenSet = true; m_costFilters.emplace(std::move(key), std::move(value)); return *this; } /** *

The cost filters, such as Region, Service, * member account, Tag, or Cost Category, * that are applied to a budget.

Amazon Web Services Budgets supports the * following services as a Service filter for RI budgets:

    *
  • Amazon EC2

  • Amazon Redshift

  • Amazon * Relational Database Service

  • Amazon ElastiCache

  • *

    Amazon OpenSearch Service

*/ inline Budget& AddCostFilters(const char* key, Aws::Vector&& value) { m_costFiltersHasBeenSet = true; m_costFilters.emplace(key, std::move(value)); return *this; } /** *

The cost filters, such as Region, Service, * member account, Tag, or Cost Category, * that are applied to a budget.

Amazon Web Services Budgets supports the * following services as a Service filter for RI budgets:

    *
  • Amazon EC2

  • Amazon Redshift

  • Amazon * Relational Database Service

  • Amazon ElastiCache

  • *

    Amazon OpenSearch Service

*/ inline Budget& AddCostFilters(const char* key, const Aws::Vector& value) { m_costFiltersHasBeenSet = true; m_costFilters.emplace(key, value); return *this; } /** *

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.

*/ inline const CostTypes& GetCostTypes() const{ return m_costTypes; } /** *

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.

*/ inline bool CostTypesHasBeenSet() const { return m_costTypesHasBeenSet; } /** *

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.

*/ inline void SetCostTypes(const CostTypes& value) { m_costTypesHasBeenSet = true; m_costTypes = value; } /** *

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.

*/ inline void SetCostTypes(CostTypes&& value) { m_costTypesHasBeenSet = true; m_costTypes = std::move(value); } /** *

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.

*/ inline Budget& WithCostTypes(const CostTypes& value) { SetCostTypes(value); return *this;} /** *

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.

*/ inline Budget& WithCostTypes(CostTypes&& value) { SetCostTypes(std::move(value)); return *this;} /** *

The length of time until a budget resets the actual and forecasted spend.

*/ inline const TimeUnit& GetTimeUnit() const{ return m_timeUnit; } /** *

The length of time until a budget resets the actual and forecasted spend.

*/ inline bool TimeUnitHasBeenSet() const { return m_timeUnitHasBeenSet; } /** *

The length of time until a budget resets the actual and forecasted spend.

*/ inline void SetTimeUnit(const TimeUnit& value) { m_timeUnitHasBeenSet = true; m_timeUnit = value; } /** *

The length of time until a budget resets the actual and forecasted spend.

*/ inline void SetTimeUnit(TimeUnit&& value) { m_timeUnitHasBeenSet = true; m_timeUnit = std::move(value); } /** *

The length of time until a budget resets the actual and forecasted spend.

*/ inline Budget& WithTimeUnit(const TimeUnit& value) { SetTimeUnit(value); return *this;} /** *

The length of time until a budget resets the actual and forecasted spend.

*/ inline Budget& WithTimeUnit(TimeUnit&& value) { SetTimeUnit(std::move(value)); return *this;} /** *

The period of time that's covered by a budget. You setthe start date and 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, Amazon Web Services 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, Amazon Web Services set your start date to 01/24/18 * 00:00 UTC. If you chose MONTHLY, Amazon Web Services set * your start date to 01/01/18 00:00 UTC. If you didn't specify an end * date, Amazon Web Services set your end date to 06/15/87 00:00 UTC. * The defaults are the same for the Billing and Cost Management console and the * API.

You can change either date with the UpdateBudget * operation.

After the end date, Amazon Web Services deletes the budget and * all the associated notifications and subscribers.

*/ inline const TimePeriod& GetTimePeriod() const{ return m_timePeriod; } /** *

The period of time that's covered by a budget. You setthe start date and 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, Amazon Web Services 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, Amazon Web Services set your start date to 01/24/18 * 00:00 UTC. If you chose MONTHLY, Amazon Web Services set * your start date to 01/01/18 00:00 UTC. If you didn't specify an end * date, Amazon Web Services set your end date to 06/15/87 00:00 UTC. * The defaults are the same for the Billing and Cost Management console and the * API.

You can change either date with the UpdateBudget * operation.

After the end date, Amazon Web Services deletes the budget and * all the associated notifications and subscribers.

*/ inline bool TimePeriodHasBeenSet() const { return m_timePeriodHasBeenSet; } /** *

The period of time that's covered by a budget. You setthe start date and 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, Amazon Web Services 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, Amazon Web Services set your start date to 01/24/18 * 00:00 UTC. If you chose MONTHLY, Amazon Web Services set * your start date to 01/01/18 00:00 UTC. If you didn't specify an end * date, Amazon Web Services set your end date to 06/15/87 00:00 UTC. * The defaults are the same for the Billing and Cost Management console and the * API.

You can change either date with the UpdateBudget * operation.

After the end date, Amazon Web Services deletes the budget and * all the associated notifications and subscribers.

*/ inline void SetTimePeriod(const TimePeriod& value) { m_timePeriodHasBeenSet = true; m_timePeriod = value; } /** *

The period of time that's covered by a budget. You setthe start date and 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, Amazon Web Services 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, Amazon Web Services set your start date to 01/24/18 * 00:00 UTC. If you chose MONTHLY, Amazon Web Services set * your start date to 01/01/18 00:00 UTC. If you didn't specify an end * date, Amazon Web Services set your end date to 06/15/87 00:00 UTC. * The defaults are the same for the Billing and Cost Management console and the * API.

You can change either date with the UpdateBudget * operation.

After the end date, Amazon Web Services deletes the budget and * all the associated notifications and subscribers.

*/ inline void SetTimePeriod(TimePeriod&& value) { m_timePeriodHasBeenSet = true; m_timePeriod = std::move(value); } /** *

The period of time that's covered by a budget. You setthe start date and 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, Amazon Web Services 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, Amazon Web Services set your start date to 01/24/18 * 00:00 UTC. If you chose MONTHLY, Amazon Web Services set * your start date to 01/01/18 00:00 UTC. If you didn't specify an end * date, Amazon Web Services set your end date to 06/15/87 00:00 UTC. * The defaults are the same for the Billing and Cost Management console and the * API.

You can change either date with the UpdateBudget * operation.

After the end date, Amazon Web Services deletes the budget and * all the associated notifications and subscribers.

*/ inline Budget& WithTimePeriod(const TimePeriod& value) { SetTimePeriod(value); return *this;} /** *

The period of time that's covered by a budget. You setthe start date and 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, Amazon Web Services 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, Amazon Web Services set your start date to 01/24/18 * 00:00 UTC. If you chose MONTHLY, Amazon Web Services set * your start date to 01/01/18 00:00 UTC. If you didn't specify an end * date, Amazon Web Services set your end date to 06/15/87 00:00 UTC. * The defaults are the same for the Billing and Cost Management console and the * API.

You can change either date with the UpdateBudget * operation.

After the end date, Amazon Web Services deletes the budget and * all the associated notifications and subscribers.

*/ inline Budget& WithTimePeriod(TimePeriod&& value) { SetTimePeriod(std::move(value)); return *this;} /** *

The actual and forecasted cost or usage that the budget tracks.

*/ inline const CalculatedSpend& GetCalculatedSpend() const{ return m_calculatedSpend; } /** *

The actual and forecasted cost or usage that the budget tracks.

*/ inline bool CalculatedSpendHasBeenSet() const { return m_calculatedSpendHasBeenSet; } /** *

The actual and forecasted cost or usage that the budget tracks.

*/ inline void SetCalculatedSpend(const CalculatedSpend& value) { m_calculatedSpendHasBeenSet = true; m_calculatedSpend = value; } /** *

The actual and forecasted cost or usage that the budget tracks.

*/ inline void SetCalculatedSpend(CalculatedSpend&& value) { m_calculatedSpendHasBeenSet = true; m_calculatedSpend = std::move(value); } /** *

The actual and forecasted cost or usage that the budget tracks.

*/ inline Budget& WithCalculatedSpend(const CalculatedSpend& value) { SetCalculatedSpend(value); return *this;} /** *

The actual and forecasted cost or usage that the budget tracks.

*/ inline Budget& WithCalculatedSpend(CalculatedSpend&& value) { SetCalculatedSpend(std::move(value)); return *this;} /** *

Specifies whether this budget tracks costs, usage, RI utilization, RI * coverage, Savings Plans utilization, or Savings Plans coverage.

*/ inline const BudgetType& GetBudgetType() const{ return m_budgetType; } /** *

Specifies whether this budget tracks costs, usage, RI utilization, RI * coverage, Savings Plans utilization, or Savings Plans coverage.

*/ inline bool BudgetTypeHasBeenSet() const { return m_budgetTypeHasBeenSet; } /** *

Specifies whether this budget tracks costs, usage, RI utilization, RI * coverage, Savings Plans utilization, or Savings Plans coverage.

*/ inline void SetBudgetType(const BudgetType& value) { m_budgetTypeHasBeenSet = true; m_budgetType = value; } /** *

Specifies whether this budget tracks costs, usage, RI utilization, RI * coverage, Savings Plans utilization, or Savings Plans coverage.

*/ inline void SetBudgetType(BudgetType&& value) { m_budgetTypeHasBeenSet = true; m_budgetType = std::move(value); } /** *

Specifies whether this budget tracks costs, usage, RI utilization, RI * coverage, Savings Plans utilization, or Savings Plans coverage.

*/ inline Budget& WithBudgetType(const BudgetType& value) { SetBudgetType(value); return *this;} /** *

Specifies whether this budget tracks costs, usage, RI utilization, RI * coverage, Savings Plans utilization, or Savings Plans coverage.

*/ inline Budget& WithBudgetType(BudgetType&& value) { SetBudgetType(std::move(value)); return *this;} /** *

The last time that you updated this budget.

*/ inline const Aws::Utils::DateTime& GetLastUpdatedTime() const{ return m_lastUpdatedTime; } /** *

The last time that you updated this budget.

*/ inline bool LastUpdatedTimeHasBeenSet() const { return m_lastUpdatedTimeHasBeenSet; } /** *

The last time that you updated this budget.

*/ inline void SetLastUpdatedTime(const Aws::Utils::DateTime& value) { m_lastUpdatedTimeHasBeenSet = true; m_lastUpdatedTime = value; } /** *

The last time that you updated this budget.

*/ inline void SetLastUpdatedTime(Aws::Utils::DateTime&& value) { m_lastUpdatedTimeHasBeenSet = true; m_lastUpdatedTime = std::move(value); } /** *

The last time that you updated this budget.

*/ inline Budget& WithLastUpdatedTime(const Aws::Utils::DateTime& value) { SetLastUpdatedTime(value); return *this;} /** *

The last time that you updated this budget.

*/ inline Budget& WithLastUpdatedTime(Aws::Utils::DateTime&& value) { SetLastUpdatedTime(std::move(value)); return *this;} /** *

The parameters that determine the budget amount for an auto-adjusting * budget.

*/ inline const AutoAdjustData& GetAutoAdjustData() const{ return m_autoAdjustData; } /** *

The parameters that determine the budget amount for an auto-adjusting * budget.

*/ inline bool AutoAdjustDataHasBeenSet() const { return m_autoAdjustDataHasBeenSet; } /** *

The parameters that determine the budget amount for an auto-adjusting * budget.

*/ inline void SetAutoAdjustData(const AutoAdjustData& value) { m_autoAdjustDataHasBeenSet = true; m_autoAdjustData = value; } /** *

The parameters that determine the budget amount for an auto-adjusting * budget.

*/ inline void SetAutoAdjustData(AutoAdjustData&& value) { m_autoAdjustDataHasBeenSet = true; m_autoAdjustData = std::move(value); } /** *

The parameters that determine the budget amount for an auto-adjusting * budget.

*/ inline Budget& WithAutoAdjustData(const AutoAdjustData& value) { SetAutoAdjustData(value); return *this;} /** *

The parameters that determine the budget amount for an auto-adjusting * budget.

*/ inline Budget& WithAutoAdjustData(AutoAdjustData&& value) { SetAutoAdjustData(std::move(value)); return *this;} private: Aws::String m_budgetName; bool m_budgetNameHasBeenSet = false; Spend m_budgetLimit; bool m_budgetLimitHasBeenSet = false; Aws::Map m_plannedBudgetLimits; bool m_plannedBudgetLimitsHasBeenSet = false; Aws::Map> m_costFilters; bool m_costFiltersHasBeenSet = false; CostTypes m_costTypes; bool m_costTypesHasBeenSet = false; TimeUnit m_timeUnit; bool m_timeUnitHasBeenSet = false; TimePeriod m_timePeriod; bool m_timePeriodHasBeenSet = false; CalculatedSpend m_calculatedSpend; bool m_calculatedSpendHasBeenSet = false; BudgetType m_budgetType; bool m_budgetTypeHasBeenSet = false; Aws::Utils::DateTime m_lastUpdatedTime; bool m_lastUpdatedTimeHasBeenSet = false; AutoAdjustData m_autoAdjustData; bool m_autoAdjustDataHasBeenSet = false; }; } // namespace Model } // namespace Budgets } // namespace Aws