/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.budgets.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* 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
*
* The name of a budget. The name must be unique within an account. The :
and \
characters
* aren't allowed in BudgetName
.
*
* 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.
*
* 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
.
*
* 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 *
*
* 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
.
*
* The length of time until a budget resets the actual and forecasted spend. *
*/ private String timeUnit; /** *
* 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. *
*/ private TimePeriod timePeriod; /** ** The actual and forecasted cost or usage that the budget tracks. *
*/ private CalculatedSpend calculatedSpend; /** ** Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, or * Savings Plans coverage. *
*/ private String budgetType; /** ** The last time that you updated this budget. *
*/ private java.util.Date lastUpdatedTime; /** ** The parameters that determine the budget amount for an auto-adjusting budget. *
*/ private AutoAdjustData autoAdjustData; /** *
* The name of a budget. The name must be unique within an account. The :
and \
characters
* aren't allowed in BudgetName
.
*
:
and \
* characters aren't allowed in BudgetName
.
*/
public void setBudgetName(String budgetName) {
this.budgetName = budgetName;
}
/**
*
* The name of a budget. The name must be unique within an account. The :
and \
characters
* aren't allowed in BudgetName
.
*
:
and \
* characters aren't allowed in BudgetName
.
*/
public String getBudgetName() {
return this.budgetName;
}
/**
*
* The name of a budget. The name must be unique within an account. The :
and \
characters
* aren't allowed in BudgetName
.
*
:
and \
* characters aren't allowed in BudgetName
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Budget withBudgetName(String budgetName) {
setBudgetName(budgetName);
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.
*
* 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.
*/
public void setBudgetLimit(Spend budgetLimit) {
this.budgetLimit = 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.
*
* 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.
*/
public Spend getBudgetLimit() {
return this.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.
*
* 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.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Budget withBudgetLimit(Spend budgetLimit) {
setBudgetLimit(budgetLimit);
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
.
*
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.
*
*
* A map containing multiple
*
* For monthly budgets, provide 12 months of
* For quarterly budgets, provide four quarters of
* If the planned budget expires before 12 months for monthly or four quarters for quarterly, provide the
*
* If the budget begins at a date in the future, provide
* After all of the
* 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
.
*/
public java.util.MapBudgetLimit
, including current or future limits.
* PlannedBudgetLimits
is available for cost or usage budget and supports both monthly and quarterly
* TimeUnit
.
* 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.
* 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.
* PlannedBudgetLimits
values only for the remaining periods.
* PlannedBudgetLimits
values from the start date
* of the budget.
* 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
.
* 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.
*
*
* A map containing multiple
*
* For monthly budgets, provide 12 months of
* For quarterly budgets, provide four quarters of
* If the planned budget expires before 12 months for monthly or four quarters for quarterly, provide the
*
* If the budget begins at a date in the future, provide
* After all of the
* 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
.
*/
public void setPlannedBudgetLimits(java.util.MapBudgetLimit
, including current or future limits.
* PlannedBudgetLimits
is available for cost or usage budget and supports both monthly and quarterly
* TimeUnit
.
* 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.
* 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.
* PlannedBudgetLimits
values only for the remaining periods.
* PlannedBudgetLimits
values from the start date
* of the budget.
* 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
.
* 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.
*
*
* The cost filters, such as
* Amazon Web Services Budgets supports the following services as a
* Amazon EC2
*
* Amazon Redshift
*
* Amazon Relational Database Service
*
* Amazon ElastiCache
*
* Amazon OpenSearch Service
* 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
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Budget withPlannedBudgetLimits(java.util.MapRegion
, Service
, member account
,
* Tag
, or Cost Category
, that are applied to a budget.
* Service
filter for RI budgets:
*
*
*
* @return 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 *
*
* 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 *
*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 *
*
* 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 *
*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 *
*
* 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
.
*
COST
budget.
*
* USAGE
, RI_UTILIZATION
, RI_COVERAGE
,
* SAVINGS_PLANS_UTILIZATION
, and SAVINGS_PLANS_COVERAGE
budgets do not have
* CostTypes
.
*/
public void setCostTypes(CostTypes costTypes) {
this.costTypes = 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
.
*
COST
budget.
*
* USAGE
, RI_UTILIZATION
, RI_COVERAGE
,
* SAVINGS_PLANS_UTILIZATION
, and SAVINGS_PLANS_COVERAGE
budgets do not have
* CostTypes
.
*/
public CostTypes getCostTypes() {
return this.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
.
*
COST
budget.
*
* USAGE
, RI_UTILIZATION
, RI_COVERAGE
,
* SAVINGS_PLANS_UTILIZATION
, and SAVINGS_PLANS_COVERAGE
budgets do not have
* CostTypes
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Budget withCostTypes(CostTypes costTypes) {
setCostTypes(costTypes);
return this;
}
/**
*
* The length of time until a budget resets the actual and forecasted spend. *
* * @param timeUnit * The length of time until a budget resets the actual and forecasted spend. * @see TimeUnit */ public void setTimeUnit(String timeUnit) { this.timeUnit = timeUnit; } /** ** The length of time until a budget resets the actual and forecasted spend. *
* * @return The length of time until a budget resets the actual and forecasted spend. * @see TimeUnit */ public String getTimeUnit() { return this.timeUnit; } /** ** The length of time until a budget resets the actual and forecasted spend. *
* * @param timeUnit * The length of time until a budget resets the actual and forecasted spend. * @return Returns a reference to this object so that method calls can be chained together. * @see TimeUnit */ public Budget withTimeUnit(String timeUnit) { setTimeUnit(timeUnit); return this; } /** ** The length of time until a budget resets the actual and forecasted spend. *
* * @param timeUnit * The length of time until a budget resets the actual and forecasted spend. * @see TimeUnit */ public void setTimeUnit(TimeUnit timeUnit) { withTimeUnit(timeUnit); } /** ** The length of time until a budget resets the actual and forecasted spend. *
* * @param timeUnit * The length of time until a budget resets the actual and forecasted spend. * @return Returns a reference to this object so that method calls can be chained together. * @see TimeUnit */ public Budget withTimeUnit(TimeUnit timeUnit) { this.timeUnit = timeUnit.toString(); 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. *
* * @param 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 before06/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. */ public void setTimePeriod(TimePeriod timePeriod) { this.timePeriod = 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. *
* * @return 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 before06/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. */ public TimePeriod getTimePeriod() { return this.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. *
* * @param 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 before06/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. * @return Returns a reference to this object so that method calls can be chained together. */ public Budget withTimePeriod(TimePeriod timePeriod) { setTimePeriod(timePeriod); return this; } /** *
* The actual and forecasted cost or usage that the budget tracks. *
* * @param calculatedSpend * The actual and forecasted cost or usage that the budget tracks. */ public void setCalculatedSpend(CalculatedSpend calculatedSpend) { this.calculatedSpend = calculatedSpend; } /** ** The actual and forecasted cost or usage that the budget tracks. *
* * @return The actual and forecasted cost or usage that the budget tracks. */ public CalculatedSpend getCalculatedSpend() { return this.calculatedSpend; } /** ** The actual and forecasted cost or usage that the budget tracks. *
* * @param calculatedSpend * The actual and forecasted cost or usage that the budget tracks. * @return Returns a reference to this object so that method calls can be chained together. */ public Budget withCalculatedSpend(CalculatedSpend calculatedSpend) { setCalculatedSpend(calculatedSpend); return this; } /** ** Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, or * Savings Plans coverage. *
* * @param budgetType * Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, * or Savings Plans coverage. * @see BudgetType */ public void setBudgetType(String budgetType) { this.budgetType = budgetType; } /** ** Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, or * Savings Plans coverage. *
* * @return Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans * utilization, or Savings Plans coverage. * @see BudgetType */ public String getBudgetType() { return this.budgetType; } /** ** Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, or * Savings Plans coverage. *
* * @param budgetType * Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, * or Savings Plans coverage. * @return Returns a reference to this object so that method calls can be chained together. * @see BudgetType */ public Budget withBudgetType(String budgetType) { setBudgetType(budgetType); return this; } /** ** Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, or * Savings Plans coverage. *
* * @param budgetType * Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, * or Savings Plans coverage. * @see BudgetType */ public void setBudgetType(BudgetType budgetType) { withBudgetType(budgetType); } /** ** Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, or * Savings Plans coverage. *
* * @param budgetType * Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, * or Savings Plans coverage. * @return Returns a reference to this object so that method calls can be chained together. * @see BudgetType */ public Budget withBudgetType(BudgetType budgetType) { this.budgetType = budgetType.toString(); return this; } /** ** The last time that you updated this budget. *
* * @param lastUpdatedTime * The last time that you updated this budget. */ public void setLastUpdatedTime(java.util.Date lastUpdatedTime) { this.lastUpdatedTime = lastUpdatedTime; } /** ** The last time that you updated this budget. *
* * @return The last time that you updated this budget. */ public java.util.Date getLastUpdatedTime() { return this.lastUpdatedTime; } /** ** The last time that you updated this budget. *
* * @param lastUpdatedTime * The last time that you updated this budget. * @return Returns a reference to this object so that method calls can be chained together. */ public Budget withLastUpdatedTime(java.util.Date lastUpdatedTime) { setLastUpdatedTime(lastUpdatedTime); return this; } /** ** The parameters that determine the budget amount for an auto-adjusting budget. *
* * @param autoAdjustData * The parameters that determine the budget amount for an auto-adjusting budget. */ public void setAutoAdjustData(AutoAdjustData autoAdjustData) { this.autoAdjustData = autoAdjustData; } /** ** The parameters that determine the budget amount for an auto-adjusting budget. *
* * @return The parameters that determine the budget amount for an auto-adjusting budget. */ public AutoAdjustData getAutoAdjustData() { return this.autoAdjustData; } /** ** The parameters that determine the budget amount for an auto-adjusting budget. *
* * @param autoAdjustData * The parameters that determine the budget amount for an auto-adjusting budget. * @return Returns a reference to this object so that method calls can be chained together. */ public Budget withAutoAdjustData(AutoAdjustData autoAdjustData) { setAutoAdjustData(autoAdjustData); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getBudgetName() != null) sb.append("BudgetName: ").append(getBudgetName()).append(","); if (getBudgetLimit() != null) sb.append("BudgetLimit: ").append(getBudgetLimit()).append(","); if (getPlannedBudgetLimits() != null) sb.append("PlannedBudgetLimits: ").append(getPlannedBudgetLimits()).append(","); if (getCostFilters() != null) sb.append("CostFilters: ").append(getCostFilters()).append(","); if (getCostTypes() != null) sb.append("CostTypes: ").append(getCostTypes()).append(","); if (getTimeUnit() != null) sb.append("TimeUnit: ").append(getTimeUnit()).append(","); if (getTimePeriod() != null) sb.append("TimePeriod: ").append(getTimePeriod()).append(","); if (getCalculatedSpend() != null) sb.append("CalculatedSpend: ").append(getCalculatedSpend()).append(","); if (getBudgetType() != null) sb.append("BudgetType: ").append(getBudgetType()).append(","); if (getLastUpdatedTime() != null) sb.append("LastUpdatedTime: ").append(getLastUpdatedTime()).append(","); if (getAutoAdjustData() != null) sb.append("AutoAdjustData: ").append(getAutoAdjustData()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof Budget == false) return false; Budget other = (Budget) obj; if (other.getBudgetName() == null ^ this.getBudgetName() == null) return false; if (other.getBudgetName() != null && other.getBudgetName().equals(this.getBudgetName()) == false) return false; if (other.getBudgetLimit() == null ^ this.getBudgetLimit() == null) return false; if (other.getBudgetLimit() != null && other.getBudgetLimit().equals(this.getBudgetLimit()) == false) return false; if (other.getPlannedBudgetLimits() == null ^ this.getPlannedBudgetLimits() == null) return false; if (other.getPlannedBudgetLimits() != null && other.getPlannedBudgetLimits().equals(this.getPlannedBudgetLimits()) == false) return false; if (other.getCostFilters() == null ^ this.getCostFilters() == null) return false; if (other.getCostFilters() != null && other.getCostFilters().equals(this.getCostFilters()) == false) return false; if (other.getCostTypes() == null ^ this.getCostTypes() == null) return false; if (other.getCostTypes() != null && other.getCostTypes().equals(this.getCostTypes()) == false) return false; if (other.getTimeUnit() == null ^ this.getTimeUnit() == null) return false; if (other.getTimeUnit() != null && other.getTimeUnit().equals(this.getTimeUnit()) == false) return false; if (other.getTimePeriod() == null ^ this.getTimePeriod() == null) return false; if (other.getTimePeriod() != null && other.getTimePeriod().equals(this.getTimePeriod()) == false) return false; if (other.getCalculatedSpend() == null ^ this.getCalculatedSpend() == null) return false; if (other.getCalculatedSpend() != null && other.getCalculatedSpend().equals(this.getCalculatedSpend()) == false) return false; if (other.getBudgetType() == null ^ this.getBudgetType() == null) return false; if (other.getBudgetType() != null && other.getBudgetType().equals(this.getBudgetType()) == false) return false; if (other.getLastUpdatedTime() == null ^ this.getLastUpdatedTime() == null) return false; if (other.getLastUpdatedTime() != null && other.getLastUpdatedTime().equals(this.getLastUpdatedTime()) == false) return false; if (other.getAutoAdjustData() == null ^ this.getAutoAdjustData() == null) return false; if (other.getAutoAdjustData() != null && other.getAutoAdjustData().equals(this.getAutoAdjustData()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getBudgetName() == null) ? 0 : getBudgetName().hashCode()); hashCode = prime * hashCode + ((getBudgetLimit() == null) ? 0 : getBudgetLimit().hashCode()); hashCode = prime * hashCode + ((getPlannedBudgetLimits() == null) ? 0 : getPlannedBudgetLimits().hashCode()); hashCode = prime * hashCode + ((getCostFilters() == null) ? 0 : getCostFilters().hashCode()); hashCode = prime * hashCode + ((getCostTypes() == null) ? 0 : getCostTypes().hashCode()); hashCode = prime * hashCode + ((getTimeUnit() == null) ? 0 : getTimeUnit().hashCode()); hashCode = prime * hashCode + ((getTimePeriod() == null) ? 0 : getTimePeriod().hashCode()); hashCode = prime * hashCode + ((getCalculatedSpend() == null) ? 0 : getCalculatedSpend().hashCode()); hashCode = prime * hashCode + ((getBudgetType() == null) ? 0 : getBudgetType().hashCode()); hashCode = prime * hashCode + ((getLastUpdatedTime() == null) ? 0 : getLastUpdatedTime().hashCode()); hashCode = prime * hashCode + ((getAutoAdjustData() == null) ? 0 : getAutoAdjustData().hashCode()); return hashCode; } @Override public Budget clone() { try { return (Budget) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.budgets.model.transform.BudgetMarshaller.getInstance().marshall(this, protocolMarshaller); } }