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

The period of time that's covered by a budget. The period has a start date * and an end date. The start date must come before the end date. There are no * restrictions on the end date.

See Also:

AWS * API Reference

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

The start date for a budget. If you created your budget and didn'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. The defaults are the same for the * Billing and Cost Management console and the API.

You can change your * start date with the UpdateBudget operation.

*/ inline const Aws::Utils::DateTime& GetStart() const{ return m_start; } /** *

The start date for a budget. If you created your budget and didn'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. The defaults are the same for the * Billing and Cost Management console and the API.

You can change your * start date with the UpdateBudget operation.

*/ inline bool StartHasBeenSet() const { return m_startHasBeenSet; } /** *

The start date for a budget. If you created your budget and didn'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. The defaults are the same for the * Billing and Cost Management console and the API.

You can change your * start date with the UpdateBudget operation.

*/ inline void SetStart(const Aws::Utils::DateTime& value) { m_startHasBeenSet = true; m_start = value; } /** *

The start date for a budget. If you created your budget and didn'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. The defaults are the same for the * Billing and Cost Management console and the API.

You can change your * start date with the UpdateBudget operation.

*/ inline void SetStart(Aws::Utils::DateTime&& value) { m_startHasBeenSet = true; m_start = std::move(value); } /** *

The start date for a budget. If you created your budget and didn'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. The defaults are the same for the * Billing and Cost Management console and the API.

You can change your * start date with the UpdateBudget operation.

*/ inline TimePeriod& WithStart(const Aws::Utils::DateTime& value) { SetStart(value); return *this;} /** *

The start date for a budget. If you created your budget and didn'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. The defaults are the same for the * Billing and Cost Management console and the API.

You can change your * start date with the UpdateBudget operation.

*/ inline TimePeriod& WithStart(Aws::Utils::DateTime&& value) { SetStart(std::move(value)); return *this;} /** *

The end date for a budget. 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.

After * the end date, Amazon Web Services deletes the budget and all the associated * notifications and subscribers. You can change your end date with the * UpdateBudget operation.

*/ inline const Aws::Utils::DateTime& GetEnd() const{ return m_end; } /** *

The end date for a budget. 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.

After * the end date, Amazon Web Services deletes the budget and all the associated * notifications and subscribers. You can change your end date with the * UpdateBudget operation.

*/ inline bool EndHasBeenSet() const { return m_endHasBeenSet; } /** *

The end date for a budget. 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.

After * the end date, Amazon Web Services deletes the budget and all the associated * notifications and subscribers. You can change your end date with the * UpdateBudget operation.

*/ inline void SetEnd(const Aws::Utils::DateTime& value) { m_endHasBeenSet = true; m_end = value; } /** *

The end date for a budget. 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.

After * the end date, Amazon Web Services deletes the budget and all the associated * notifications and subscribers. You can change your end date with the * UpdateBudget operation.

*/ inline void SetEnd(Aws::Utils::DateTime&& value) { m_endHasBeenSet = true; m_end = std::move(value); } /** *

The end date for a budget. 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.

After * the end date, Amazon Web Services deletes the budget and all the associated * notifications and subscribers. You can change your end date with the * UpdateBudget operation.

*/ inline TimePeriod& WithEnd(const Aws::Utils::DateTime& value) { SetEnd(value); return *this;} /** *

The end date for a budget. 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.

After * the end date, Amazon Web Services deletes the budget and all the associated * notifications and subscribers. You can change your end date with the * UpdateBudget operation.

*/ inline TimePeriod& WithEnd(Aws::Utils::DateTime&& value) { SetEnd(std::move(value)); return *this;} private: Aws::Utils::DateTime m_start; bool m_startHasBeenSet = false; Aws::Utils::DateTime m_end; bool m_endHasBeenSet = false; }; } // namespace Model } // namespace Budgets } // namespace Aws