
com.amazonaws.services.costexplorer.model.RecommendationDetailData Maven / Gradle / Ivy
Show all versions of aws-java-sdk-costexplorer Show documentation
/*
* Copyright 2020-2025 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.costexplorer.model;
import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;
/**
*
* The details and metrics for the given recommendation.
*
*
* @see AWS API
* Documentation
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class RecommendationDetailData implements Serializable, Cloneable, StructuredPojo {
/**
*
* The account scope that you want your recommendations for. Amazon Web Services calculates recommendations
* including the management account and member accounts if the value is set to PAYER. If the value is LINKED,
* recommendations are calculated for individual member accounts only.
*
*/
private String accountScope;
/**
*
* How many days of previous usage that Amazon Web Services considers when making this recommendation.
*
*/
private String lookbackPeriodInDays;
/**
*
* The requested Savings Plan recommendation type.
*
*/
private String savingsPlansType;
/**
*
* The term of the commitment in years.
*
*/
private String termInYears;
/**
*
* The payment option for the commitment (for example, All Upfront or No Upfront).
*
*/
private String paymentOption;
/**
*
* The AccountID that the recommendation is generated for.
*
*/
private String accountId;
/**
*
* The currency code that Amazon Web Services used to generate the recommendation and present potential savings.
*
*/
private String currencyCode;
/**
*
* The instance family of the recommended Savings Plan.
*
*/
private String instanceFamily;
/**
*
* The region the recommendation is generated for.
*
*/
private String region;
/**
*
* The unique ID that's used to distinguish Savings Plans from one another.
*
*/
private String offeringId;
private String generationTimestamp;
private String latestUsageTimestamp;
/**
*
* The average value of hourly On-Demand spend over the lookback period of the applicable usage type.
*
*/
private String currentAverageHourlyOnDemandSpend;
/**
*
* The highest value of hourly On-Demand spend over the lookback period of the applicable usage type.
*
*/
private String currentMaximumHourlyOnDemandSpend;
/**
*
* The lowest value of hourly On-Demand spend over the lookback period of the applicable usage type.
*
*/
private String currentMinimumHourlyOnDemandSpend;
/**
*
* The estimated utilization of the recommended Savings Plan.
*
*/
private String estimatedAverageUtilization;
/**
*
* The estimated monthly savings amount based on the recommended Savings Plan.
*
*/
private String estimatedMonthlySavingsAmount;
/**
*
* The remaining On-Demand cost estimated to not be covered by the recommended Savings Plan, over the length of the
* lookback period.
*
*/
private String estimatedOnDemandCost;
/**
*
* The estimated On-Demand costs you expect with no additional commitment, based on your usage of the selected time
* period and the Savings Plan you own.
*
*/
private String estimatedOnDemandCostWithCurrentCommitment;
/**
*
* The estimated return on investment that's based on the recommended Savings Plan that you purchased. This is
* calculated as estimatedSavingsAmount/estimatedSPCost*100.
*
*/
private String estimatedROI;
/**
*
* The cost of the recommended Savings Plan over the length of the lookback period.
*
*/
private String estimatedSPCost;
/**
*
* The estimated savings amount that's based on the recommended Savings Plan over the length of the lookback period.
*
*/
private String estimatedSavingsAmount;
/**
*
* The estimated savings percentage relative to the total cost of applicable On-Demand usage over the lookback
* period.
*
*/
private String estimatedSavingsPercentage;
/**
*
* The existing hourly commitment for the Savings Plan type.
*
*/
private String existingHourlyCommitment;
/**
*
* The recommended hourly commitment level for the Savings Plan type and the configuration that's based on the usage
* during the lookback period.
*
*/
private String hourlyCommitmentToPurchase;
/**
*
* The upfront cost of the recommended Savings Plan, based on the selected payment option.
*
*/
private String upfrontCost;
/**
*
* The average value of hourly coverage over the lookback period.
*
*/
private String currentAverageCoverage;
/**
*
* The estimated coverage of the recommended Savings Plan.
*
*/
private String estimatedAverageCoverage;
/**
*
* The related hourly cost, coverage, and utilization metrics over the lookback period.
*
*/
private java.util.List metricsOverLookbackPeriod;
/**
*
* The account scope that you want your recommendations for. Amazon Web Services calculates recommendations
* including the management account and member accounts if the value is set to PAYER. If the value is LINKED,
* recommendations are calculated for individual member accounts only.
*
*
* @param accountScope
* The account scope that you want your recommendations for. Amazon Web Services calculates recommendations
* including the management account and member accounts if the value is set to PAYER. If the value is LINKED,
* recommendations are calculated for individual member accounts only.
* @see AccountScope
*/
public void setAccountScope(String accountScope) {
this.accountScope = accountScope;
}
/**
*
* The account scope that you want your recommendations for. Amazon Web Services calculates recommendations
* including the management account and member accounts if the value is set to PAYER. If the value is LINKED,
* recommendations are calculated for individual member accounts only.
*
*
* @return The account scope that you want your recommendations for. Amazon Web Services calculates recommendations
* including the management account and member accounts if the value is set to PAYER. If the value is
* LINKED, recommendations are calculated for individual member accounts only.
* @see AccountScope
*/
public String getAccountScope() {
return this.accountScope;
}
/**
*
* The account scope that you want your recommendations for. Amazon Web Services calculates recommendations
* including the management account and member accounts if the value is set to PAYER. If the value is LINKED,
* recommendations are calculated for individual member accounts only.
*
*
* @param accountScope
* The account scope that you want your recommendations for. Amazon Web Services calculates recommendations
* including the management account and member accounts if the value is set to PAYER. If the value is LINKED,
* recommendations are calculated for individual member accounts only.
* @return Returns a reference to this object so that method calls can be chained together.
* @see AccountScope
*/
public RecommendationDetailData withAccountScope(String accountScope) {
setAccountScope(accountScope);
return this;
}
/**
*
* The account scope that you want your recommendations for. Amazon Web Services calculates recommendations
* including the management account and member accounts if the value is set to PAYER. If the value is LINKED,
* recommendations are calculated for individual member accounts only.
*
*
* @param accountScope
* The account scope that you want your recommendations for. Amazon Web Services calculates recommendations
* including the management account and member accounts if the value is set to PAYER. If the value is LINKED,
* recommendations are calculated for individual member accounts only.
* @return Returns a reference to this object so that method calls can be chained together.
* @see AccountScope
*/
public RecommendationDetailData withAccountScope(AccountScope accountScope) {
this.accountScope = accountScope.toString();
return this;
}
/**
*
* How many days of previous usage that Amazon Web Services considers when making this recommendation.
*
*
* @param lookbackPeriodInDays
* How many days of previous usage that Amazon Web Services considers when making this recommendation.
* @see LookbackPeriodInDays
*/
public void setLookbackPeriodInDays(String lookbackPeriodInDays) {
this.lookbackPeriodInDays = lookbackPeriodInDays;
}
/**
*
* How many days of previous usage that Amazon Web Services considers when making this recommendation.
*
*
* @return How many days of previous usage that Amazon Web Services considers when making this recommendation.
* @see LookbackPeriodInDays
*/
public String getLookbackPeriodInDays() {
return this.lookbackPeriodInDays;
}
/**
*
* How many days of previous usage that Amazon Web Services considers when making this recommendation.
*
*
* @param lookbackPeriodInDays
* How many days of previous usage that Amazon Web Services considers when making this recommendation.
* @return Returns a reference to this object so that method calls can be chained together.
* @see LookbackPeriodInDays
*/
public RecommendationDetailData withLookbackPeriodInDays(String lookbackPeriodInDays) {
setLookbackPeriodInDays(lookbackPeriodInDays);
return this;
}
/**
*
* How many days of previous usage that Amazon Web Services considers when making this recommendation.
*
*
* @param lookbackPeriodInDays
* How many days of previous usage that Amazon Web Services considers when making this recommendation.
* @return Returns a reference to this object so that method calls can be chained together.
* @see LookbackPeriodInDays
*/
public RecommendationDetailData withLookbackPeriodInDays(LookbackPeriodInDays lookbackPeriodInDays) {
this.lookbackPeriodInDays = lookbackPeriodInDays.toString();
return this;
}
/**
*
* The requested Savings Plan recommendation type.
*
*
* @param savingsPlansType
* The requested Savings Plan recommendation type.
* @see SupportedSavingsPlansType
*/
public void setSavingsPlansType(String savingsPlansType) {
this.savingsPlansType = savingsPlansType;
}
/**
*
* The requested Savings Plan recommendation type.
*
*
* @return The requested Savings Plan recommendation type.
* @see SupportedSavingsPlansType
*/
public String getSavingsPlansType() {
return this.savingsPlansType;
}
/**
*
* The requested Savings Plan recommendation type.
*
*
* @param savingsPlansType
* The requested Savings Plan recommendation type.
* @return Returns a reference to this object so that method calls can be chained together.
* @see SupportedSavingsPlansType
*/
public RecommendationDetailData withSavingsPlansType(String savingsPlansType) {
setSavingsPlansType(savingsPlansType);
return this;
}
/**
*
* The requested Savings Plan recommendation type.
*
*
* @param savingsPlansType
* The requested Savings Plan recommendation type.
* @return Returns a reference to this object so that method calls can be chained together.
* @see SupportedSavingsPlansType
*/
public RecommendationDetailData withSavingsPlansType(SupportedSavingsPlansType savingsPlansType) {
this.savingsPlansType = savingsPlansType.toString();
return this;
}
/**
*
* The term of the commitment in years.
*
*
* @param termInYears
* The term of the commitment in years.
* @see TermInYears
*/
public void setTermInYears(String termInYears) {
this.termInYears = termInYears;
}
/**
*
* The term of the commitment in years.
*
*
* @return The term of the commitment in years.
* @see TermInYears
*/
public String getTermInYears() {
return this.termInYears;
}
/**
*
* The term of the commitment in years.
*
*
* @param termInYears
* The term of the commitment in years.
* @return Returns a reference to this object so that method calls can be chained together.
* @see TermInYears
*/
public RecommendationDetailData withTermInYears(String termInYears) {
setTermInYears(termInYears);
return this;
}
/**
*
* The term of the commitment in years.
*
*
* @param termInYears
* The term of the commitment in years.
* @return Returns a reference to this object so that method calls can be chained together.
* @see TermInYears
*/
public RecommendationDetailData withTermInYears(TermInYears termInYears) {
this.termInYears = termInYears.toString();
return this;
}
/**
*
* The payment option for the commitment (for example, All Upfront or No Upfront).
*
*
* @param paymentOption
* The payment option for the commitment (for example, All Upfront or No Upfront).
* @see PaymentOption
*/
public void setPaymentOption(String paymentOption) {
this.paymentOption = paymentOption;
}
/**
*
* The payment option for the commitment (for example, All Upfront or No Upfront).
*
*
* @return The payment option for the commitment (for example, All Upfront or No Upfront).
* @see PaymentOption
*/
public String getPaymentOption() {
return this.paymentOption;
}
/**
*
* The payment option for the commitment (for example, All Upfront or No Upfront).
*
*
* @param paymentOption
* The payment option for the commitment (for example, All Upfront or No Upfront).
* @return Returns a reference to this object so that method calls can be chained together.
* @see PaymentOption
*/
public RecommendationDetailData withPaymentOption(String paymentOption) {
setPaymentOption(paymentOption);
return this;
}
/**
*
* The payment option for the commitment (for example, All Upfront or No Upfront).
*
*
* @param paymentOption
* The payment option for the commitment (for example, All Upfront or No Upfront).
* @return Returns a reference to this object so that method calls can be chained together.
* @see PaymentOption
*/
public RecommendationDetailData withPaymentOption(PaymentOption paymentOption) {
this.paymentOption = paymentOption.toString();
return this;
}
/**
*
* The AccountID that the recommendation is generated for.
*
*
* @param accountId
* The AccountID that the recommendation is generated for.
*/
public void setAccountId(String accountId) {
this.accountId = accountId;
}
/**
*
* The AccountID that the recommendation is generated for.
*
*
* @return The AccountID that the recommendation is generated for.
*/
public String getAccountId() {
return this.accountId;
}
/**
*
* The AccountID that the recommendation is generated for.
*
*
* @param accountId
* The AccountID that the recommendation is generated for.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withAccountId(String accountId) {
setAccountId(accountId);
return this;
}
/**
*
* The currency code that Amazon Web Services used to generate the recommendation and present potential savings.
*
*
* @param currencyCode
* The currency code that Amazon Web Services used to generate the recommendation and present potential
* savings.
*/
public void setCurrencyCode(String currencyCode) {
this.currencyCode = currencyCode;
}
/**
*
* The currency code that Amazon Web Services used to generate the recommendation and present potential savings.
*
*
* @return The currency code that Amazon Web Services used to generate the recommendation and present potential
* savings.
*/
public String getCurrencyCode() {
return this.currencyCode;
}
/**
*
* The currency code that Amazon Web Services used to generate the recommendation and present potential savings.
*
*
* @param currencyCode
* The currency code that Amazon Web Services used to generate the recommendation and present potential
* savings.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withCurrencyCode(String currencyCode) {
setCurrencyCode(currencyCode);
return this;
}
/**
*
* The instance family of the recommended Savings Plan.
*
*
* @param instanceFamily
* The instance family of the recommended Savings Plan.
*/
public void setInstanceFamily(String instanceFamily) {
this.instanceFamily = instanceFamily;
}
/**
*
* The instance family of the recommended Savings Plan.
*
*
* @return The instance family of the recommended Savings Plan.
*/
public String getInstanceFamily() {
return this.instanceFamily;
}
/**
*
* The instance family of the recommended Savings Plan.
*
*
* @param instanceFamily
* The instance family of the recommended Savings Plan.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withInstanceFamily(String instanceFamily) {
setInstanceFamily(instanceFamily);
return this;
}
/**
*
* The region the recommendation is generated for.
*
*
* @param region
* The region the recommendation is generated for.
*/
public void setRegion(String region) {
this.region = region;
}
/**
*
* The region the recommendation is generated for.
*
*
* @return The region the recommendation is generated for.
*/
public String getRegion() {
return this.region;
}
/**
*
* The region the recommendation is generated for.
*
*
* @param region
* The region the recommendation is generated for.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withRegion(String region) {
setRegion(region);
return this;
}
/**
*
* The unique ID that's used to distinguish Savings Plans from one another.
*
*
* @param offeringId
* The unique ID that's used to distinguish Savings Plans from one another.
*/
public void setOfferingId(String offeringId) {
this.offeringId = offeringId;
}
/**
*
* The unique ID that's used to distinguish Savings Plans from one another.
*
*
* @return The unique ID that's used to distinguish Savings Plans from one another.
*/
public String getOfferingId() {
return this.offeringId;
}
/**
*
* The unique ID that's used to distinguish Savings Plans from one another.
*
*
* @param offeringId
* The unique ID that's used to distinguish Savings Plans from one another.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withOfferingId(String offeringId) {
setOfferingId(offeringId);
return this;
}
/**
* @param generationTimestamp
*/
public void setGenerationTimestamp(String generationTimestamp) {
this.generationTimestamp = generationTimestamp;
}
/**
* @return
*/
public String getGenerationTimestamp() {
return this.generationTimestamp;
}
/**
* @param generationTimestamp
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withGenerationTimestamp(String generationTimestamp) {
setGenerationTimestamp(generationTimestamp);
return this;
}
/**
* @param latestUsageTimestamp
*/
public void setLatestUsageTimestamp(String latestUsageTimestamp) {
this.latestUsageTimestamp = latestUsageTimestamp;
}
/**
* @return
*/
public String getLatestUsageTimestamp() {
return this.latestUsageTimestamp;
}
/**
* @param latestUsageTimestamp
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withLatestUsageTimestamp(String latestUsageTimestamp) {
setLatestUsageTimestamp(latestUsageTimestamp);
return this;
}
/**
*
* The average value of hourly On-Demand spend over the lookback period of the applicable usage type.
*
*
* @param currentAverageHourlyOnDemandSpend
* The average value of hourly On-Demand spend over the lookback period of the applicable usage type.
*/
public void setCurrentAverageHourlyOnDemandSpend(String currentAverageHourlyOnDemandSpend) {
this.currentAverageHourlyOnDemandSpend = currentAverageHourlyOnDemandSpend;
}
/**
*
* The average value of hourly On-Demand spend over the lookback period of the applicable usage type.
*
*
* @return The average value of hourly On-Demand spend over the lookback period of the applicable usage type.
*/
public String getCurrentAverageHourlyOnDemandSpend() {
return this.currentAverageHourlyOnDemandSpend;
}
/**
*
* The average value of hourly On-Demand spend over the lookback period of the applicable usage type.
*
*
* @param currentAverageHourlyOnDemandSpend
* The average value of hourly On-Demand spend over the lookback period of the applicable usage type.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withCurrentAverageHourlyOnDemandSpend(String currentAverageHourlyOnDemandSpend) {
setCurrentAverageHourlyOnDemandSpend(currentAverageHourlyOnDemandSpend);
return this;
}
/**
*
* The highest value of hourly On-Demand spend over the lookback period of the applicable usage type.
*
*
* @param currentMaximumHourlyOnDemandSpend
* The highest value of hourly On-Demand spend over the lookback period of the applicable usage type.
*/
public void setCurrentMaximumHourlyOnDemandSpend(String currentMaximumHourlyOnDemandSpend) {
this.currentMaximumHourlyOnDemandSpend = currentMaximumHourlyOnDemandSpend;
}
/**
*
* The highest value of hourly On-Demand spend over the lookback period of the applicable usage type.
*
*
* @return The highest value of hourly On-Demand spend over the lookback period of the applicable usage type.
*/
public String getCurrentMaximumHourlyOnDemandSpend() {
return this.currentMaximumHourlyOnDemandSpend;
}
/**
*
* The highest value of hourly On-Demand spend over the lookback period of the applicable usage type.
*
*
* @param currentMaximumHourlyOnDemandSpend
* The highest value of hourly On-Demand spend over the lookback period of the applicable usage type.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withCurrentMaximumHourlyOnDemandSpend(String currentMaximumHourlyOnDemandSpend) {
setCurrentMaximumHourlyOnDemandSpend(currentMaximumHourlyOnDemandSpend);
return this;
}
/**
*
* The lowest value of hourly On-Demand spend over the lookback period of the applicable usage type.
*
*
* @param currentMinimumHourlyOnDemandSpend
* The lowest value of hourly On-Demand spend over the lookback period of the applicable usage type.
*/
public void setCurrentMinimumHourlyOnDemandSpend(String currentMinimumHourlyOnDemandSpend) {
this.currentMinimumHourlyOnDemandSpend = currentMinimumHourlyOnDemandSpend;
}
/**
*
* The lowest value of hourly On-Demand spend over the lookback period of the applicable usage type.
*
*
* @return The lowest value of hourly On-Demand spend over the lookback period of the applicable usage type.
*/
public String getCurrentMinimumHourlyOnDemandSpend() {
return this.currentMinimumHourlyOnDemandSpend;
}
/**
*
* The lowest value of hourly On-Demand spend over the lookback period of the applicable usage type.
*
*
* @param currentMinimumHourlyOnDemandSpend
* The lowest value of hourly On-Demand spend over the lookback period of the applicable usage type.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withCurrentMinimumHourlyOnDemandSpend(String currentMinimumHourlyOnDemandSpend) {
setCurrentMinimumHourlyOnDemandSpend(currentMinimumHourlyOnDemandSpend);
return this;
}
/**
*
* The estimated utilization of the recommended Savings Plan.
*
*
* @param estimatedAverageUtilization
* The estimated utilization of the recommended Savings Plan.
*/
public void setEstimatedAverageUtilization(String estimatedAverageUtilization) {
this.estimatedAverageUtilization = estimatedAverageUtilization;
}
/**
*
* The estimated utilization of the recommended Savings Plan.
*
*
* @return The estimated utilization of the recommended Savings Plan.
*/
public String getEstimatedAverageUtilization() {
return this.estimatedAverageUtilization;
}
/**
*
* The estimated utilization of the recommended Savings Plan.
*
*
* @param estimatedAverageUtilization
* The estimated utilization of the recommended Savings Plan.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withEstimatedAverageUtilization(String estimatedAverageUtilization) {
setEstimatedAverageUtilization(estimatedAverageUtilization);
return this;
}
/**
*
* The estimated monthly savings amount based on the recommended Savings Plan.
*
*
* @param estimatedMonthlySavingsAmount
* The estimated monthly savings amount based on the recommended Savings Plan.
*/
public void setEstimatedMonthlySavingsAmount(String estimatedMonthlySavingsAmount) {
this.estimatedMonthlySavingsAmount = estimatedMonthlySavingsAmount;
}
/**
*
* The estimated monthly savings amount based on the recommended Savings Plan.
*
*
* @return The estimated monthly savings amount based on the recommended Savings Plan.
*/
public String getEstimatedMonthlySavingsAmount() {
return this.estimatedMonthlySavingsAmount;
}
/**
*
* The estimated monthly savings amount based on the recommended Savings Plan.
*
*
* @param estimatedMonthlySavingsAmount
* The estimated monthly savings amount based on the recommended Savings Plan.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withEstimatedMonthlySavingsAmount(String estimatedMonthlySavingsAmount) {
setEstimatedMonthlySavingsAmount(estimatedMonthlySavingsAmount);
return this;
}
/**
*
* The remaining On-Demand cost estimated to not be covered by the recommended Savings Plan, over the length of the
* lookback period.
*
*
* @param estimatedOnDemandCost
* The remaining On-Demand cost estimated to not be covered by the recommended Savings Plan, over the length
* of the lookback period.
*/
public void setEstimatedOnDemandCost(String estimatedOnDemandCost) {
this.estimatedOnDemandCost = estimatedOnDemandCost;
}
/**
*
* The remaining On-Demand cost estimated to not be covered by the recommended Savings Plan, over the length of the
* lookback period.
*
*
* @return The remaining On-Demand cost estimated to not be covered by the recommended Savings Plan, over the length
* of the lookback period.
*/
public String getEstimatedOnDemandCost() {
return this.estimatedOnDemandCost;
}
/**
*
* The remaining On-Demand cost estimated to not be covered by the recommended Savings Plan, over the length of the
* lookback period.
*
*
* @param estimatedOnDemandCost
* The remaining On-Demand cost estimated to not be covered by the recommended Savings Plan, over the length
* of the lookback period.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withEstimatedOnDemandCost(String estimatedOnDemandCost) {
setEstimatedOnDemandCost(estimatedOnDemandCost);
return this;
}
/**
*
* The estimated On-Demand costs you expect with no additional commitment, based on your usage of the selected time
* period and the Savings Plan you own.
*
*
* @param estimatedOnDemandCostWithCurrentCommitment
* The estimated On-Demand costs you expect with no additional commitment, based on your usage of the
* selected time period and the Savings Plan you own.
*/
public void setEstimatedOnDemandCostWithCurrentCommitment(String estimatedOnDemandCostWithCurrentCommitment) {
this.estimatedOnDemandCostWithCurrentCommitment = estimatedOnDemandCostWithCurrentCommitment;
}
/**
*
* The estimated On-Demand costs you expect with no additional commitment, based on your usage of the selected time
* period and the Savings Plan you own.
*
*
* @return The estimated On-Demand costs you expect with no additional commitment, based on your usage of the
* selected time period and the Savings Plan you own.
*/
public String getEstimatedOnDemandCostWithCurrentCommitment() {
return this.estimatedOnDemandCostWithCurrentCommitment;
}
/**
*
* The estimated On-Demand costs you expect with no additional commitment, based on your usage of the selected time
* period and the Savings Plan you own.
*
*
* @param estimatedOnDemandCostWithCurrentCommitment
* The estimated On-Demand costs you expect with no additional commitment, based on your usage of the
* selected time period and the Savings Plan you own.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withEstimatedOnDemandCostWithCurrentCommitment(String estimatedOnDemandCostWithCurrentCommitment) {
setEstimatedOnDemandCostWithCurrentCommitment(estimatedOnDemandCostWithCurrentCommitment);
return this;
}
/**
*
* The estimated return on investment that's based on the recommended Savings Plan that you purchased. This is
* calculated as estimatedSavingsAmount/estimatedSPCost*100.
*
*
* @param estimatedROI
* The estimated return on investment that's based on the recommended Savings Plan that you purchased. This
* is calculated as estimatedSavingsAmount/estimatedSPCost*100.
*/
public void setEstimatedROI(String estimatedROI) {
this.estimatedROI = estimatedROI;
}
/**
*
* The estimated return on investment that's based on the recommended Savings Plan that you purchased. This is
* calculated as estimatedSavingsAmount/estimatedSPCost*100.
*
*
* @return The estimated return on investment that's based on the recommended Savings Plan that you purchased. This
* is calculated as estimatedSavingsAmount/estimatedSPCost*100.
*/
public String getEstimatedROI() {
return this.estimatedROI;
}
/**
*
* The estimated return on investment that's based on the recommended Savings Plan that you purchased. This is
* calculated as estimatedSavingsAmount/estimatedSPCost*100.
*
*
* @param estimatedROI
* The estimated return on investment that's based on the recommended Savings Plan that you purchased. This
* is calculated as estimatedSavingsAmount/estimatedSPCost*100.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withEstimatedROI(String estimatedROI) {
setEstimatedROI(estimatedROI);
return this;
}
/**
*
* The cost of the recommended Savings Plan over the length of the lookback period.
*
*
* @param estimatedSPCost
* The cost of the recommended Savings Plan over the length of the lookback period.
*/
public void setEstimatedSPCost(String estimatedSPCost) {
this.estimatedSPCost = estimatedSPCost;
}
/**
*
* The cost of the recommended Savings Plan over the length of the lookback period.
*
*
* @return The cost of the recommended Savings Plan over the length of the lookback period.
*/
public String getEstimatedSPCost() {
return this.estimatedSPCost;
}
/**
*
* The cost of the recommended Savings Plan over the length of the lookback period.
*
*
* @param estimatedSPCost
* The cost of the recommended Savings Plan over the length of the lookback period.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withEstimatedSPCost(String estimatedSPCost) {
setEstimatedSPCost(estimatedSPCost);
return this;
}
/**
*
* The estimated savings amount that's based on the recommended Savings Plan over the length of the lookback period.
*
*
* @param estimatedSavingsAmount
* The estimated savings amount that's based on the recommended Savings Plan over the length of the lookback
* period.
*/
public void setEstimatedSavingsAmount(String estimatedSavingsAmount) {
this.estimatedSavingsAmount = estimatedSavingsAmount;
}
/**
*
* The estimated savings amount that's based on the recommended Savings Plan over the length of the lookback period.
*
*
* @return The estimated savings amount that's based on the recommended Savings Plan over the length of the lookback
* period.
*/
public String getEstimatedSavingsAmount() {
return this.estimatedSavingsAmount;
}
/**
*
* The estimated savings amount that's based on the recommended Savings Plan over the length of the lookback period.
*
*
* @param estimatedSavingsAmount
* The estimated savings amount that's based on the recommended Savings Plan over the length of the lookback
* period.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withEstimatedSavingsAmount(String estimatedSavingsAmount) {
setEstimatedSavingsAmount(estimatedSavingsAmount);
return this;
}
/**
*
* The estimated savings percentage relative to the total cost of applicable On-Demand usage over the lookback
* period.
*
*
* @param estimatedSavingsPercentage
* The estimated savings percentage relative to the total cost of applicable On-Demand usage over the
* lookback period.
*/
public void setEstimatedSavingsPercentage(String estimatedSavingsPercentage) {
this.estimatedSavingsPercentage = estimatedSavingsPercentage;
}
/**
*
* The estimated savings percentage relative to the total cost of applicable On-Demand usage over the lookback
* period.
*
*
* @return The estimated savings percentage relative to the total cost of applicable On-Demand usage over the
* lookback period.
*/
public String getEstimatedSavingsPercentage() {
return this.estimatedSavingsPercentage;
}
/**
*
* The estimated savings percentage relative to the total cost of applicable On-Demand usage over the lookback
* period.
*
*
* @param estimatedSavingsPercentage
* The estimated savings percentage relative to the total cost of applicable On-Demand usage over the
* lookback period.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withEstimatedSavingsPercentage(String estimatedSavingsPercentage) {
setEstimatedSavingsPercentage(estimatedSavingsPercentage);
return this;
}
/**
*
* The existing hourly commitment for the Savings Plan type.
*
*
* @param existingHourlyCommitment
* The existing hourly commitment for the Savings Plan type.
*/
public void setExistingHourlyCommitment(String existingHourlyCommitment) {
this.existingHourlyCommitment = existingHourlyCommitment;
}
/**
*
* The existing hourly commitment for the Savings Plan type.
*
*
* @return The existing hourly commitment for the Savings Plan type.
*/
public String getExistingHourlyCommitment() {
return this.existingHourlyCommitment;
}
/**
*
* The existing hourly commitment for the Savings Plan type.
*
*
* @param existingHourlyCommitment
* The existing hourly commitment for the Savings Plan type.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withExistingHourlyCommitment(String existingHourlyCommitment) {
setExistingHourlyCommitment(existingHourlyCommitment);
return this;
}
/**
*
* The recommended hourly commitment level for the Savings Plan type and the configuration that's based on the usage
* during the lookback period.
*
*
* @param hourlyCommitmentToPurchase
* The recommended hourly commitment level for the Savings Plan type and the configuration that's based on
* the usage during the lookback period.
*/
public void setHourlyCommitmentToPurchase(String hourlyCommitmentToPurchase) {
this.hourlyCommitmentToPurchase = hourlyCommitmentToPurchase;
}
/**
*
* The recommended hourly commitment level for the Savings Plan type and the configuration that's based on the usage
* during the lookback period.
*
*
* @return The recommended hourly commitment level for the Savings Plan type and the configuration that's based on
* the usage during the lookback period.
*/
public String getHourlyCommitmentToPurchase() {
return this.hourlyCommitmentToPurchase;
}
/**
*
* The recommended hourly commitment level for the Savings Plan type and the configuration that's based on the usage
* during the lookback period.
*
*
* @param hourlyCommitmentToPurchase
* The recommended hourly commitment level for the Savings Plan type and the configuration that's based on
* the usage during the lookback period.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withHourlyCommitmentToPurchase(String hourlyCommitmentToPurchase) {
setHourlyCommitmentToPurchase(hourlyCommitmentToPurchase);
return this;
}
/**
*
* The upfront cost of the recommended Savings Plan, based on the selected payment option.
*
*
* @param upfrontCost
* The upfront cost of the recommended Savings Plan, based on the selected payment option.
*/
public void setUpfrontCost(String upfrontCost) {
this.upfrontCost = upfrontCost;
}
/**
*
* The upfront cost of the recommended Savings Plan, based on the selected payment option.
*
*
* @return The upfront cost of the recommended Savings Plan, based on the selected payment option.
*/
public String getUpfrontCost() {
return this.upfrontCost;
}
/**
*
* The upfront cost of the recommended Savings Plan, based on the selected payment option.
*
*
* @param upfrontCost
* The upfront cost of the recommended Savings Plan, based on the selected payment option.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withUpfrontCost(String upfrontCost) {
setUpfrontCost(upfrontCost);
return this;
}
/**
*
* The average value of hourly coverage over the lookback period.
*
*
* @param currentAverageCoverage
* The average value of hourly coverage over the lookback period.
*/
public void setCurrentAverageCoverage(String currentAverageCoverage) {
this.currentAverageCoverage = currentAverageCoverage;
}
/**
*
* The average value of hourly coverage over the lookback period.
*
*
* @return The average value of hourly coverage over the lookback period.
*/
public String getCurrentAverageCoverage() {
return this.currentAverageCoverage;
}
/**
*
* The average value of hourly coverage over the lookback period.
*
*
* @param currentAverageCoverage
* The average value of hourly coverage over the lookback period.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withCurrentAverageCoverage(String currentAverageCoverage) {
setCurrentAverageCoverage(currentAverageCoverage);
return this;
}
/**
*
* The estimated coverage of the recommended Savings Plan.
*
*
* @param estimatedAverageCoverage
* The estimated coverage of the recommended Savings Plan.
*/
public void setEstimatedAverageCoverage(String estimatedAverageCoverage) {
this.estimatedAverageCoverage = estimatedAverageCoverage;
}
/**
*
* The estimated coverage of the recommended Savings Plan.
*
*
* @return The estimated coverage of the recommended Savings Plan.
*/
public String getEstimatedAverageCoverage() {
return this.estimatedAverageCoverage;
}
/**
*
* The estimated coverage of the recommended Savings Plan.
*
*
* @param estimatedAverageCoverage
* The estimated coverage of the recommended Savings Plan.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withEstimatedAverageCoverage(String estimatedAverageCoverage) {
setEstimatedAverageCoverage(estimatedAverageCoverage);
return this;
}
/**
*
* The related hourly cost, coverage, and utilization metrics over the lookback period.
*
*
* @return The related hourly cost, coverage, and utilization metrics over the lookback period.
*/
public java.util.List getMetricsOverLookbackPeriod() {
return metricsOverLookbackPeriod;
}
/**
*
* The related hourly cost, coverage, and utilization metrics over the lookback period.
*
*
* @param metricsOverLookbackPeriod
* The related hourly cost, coverage, and utilization metrics over the lookback period.
*/
public void setMetricsOverLookbackPeriod(java.util.Collection metricsOverLookbackPeriod) {
if (metricsOverLookbackPeriod == null) {
this.metricsOverLookbackPeriod = null;
return;
}
this.metricsOverLookbackPeriod = new java.util.ArrayList(metricsOverLookbackPeriod);
}
/**
*
* The related hourly cost, coverage, and utilization metrics over the lookback period.
*
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setMetricsOverLookbackPeriod(java.util.Collection)} or
* {@link #withMetricsOverLookbackPeriod(java.util.Collection)} if you want to override the existing values.
*
*
* @param metricsOverLookbackPeriod
* The related hourly cost, coverage, and utilization metrics over the lookback period.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withMetricsOverLookbackPeriod(RecommendationDetailHourlyMetrics... metricsOverLookbackPeriod) {
if (this.metricsOverLookbackPeriod == null) {
setMetricsOverLookbackPeriod(new java.util.ArrayList(metricsOverLookbackPeriod.length));
}
for (RecommendationDetailHourlyMetrics ele : metricsOverLookbackPeriod) {
this.metricsOverLookbackPeriod.add(ele);
}
return this;
}
/**
*
* The related hourly cost, coverage, and utilization metrics over the lookback period.
*
*
* @param metricsOverLookbackPeriod
* The related hourly cost, coverage, and utilization metrics over the lookback period.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RecommendationDetailData withMetricsOverLookbackPeriod(java.util.Collection metricsOverLookbackPeriod) {
setMetricsOverLookbackPeriod(metricsOverLookbackPeriod);
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 (getAccountScope() != null)
sb.append("AccountScope: ").append(getAccountScope()).append(",");
if (getLookbackPeriodInDays() != null)
sb.append("LookbackPeriodInDays: ").append(getLookbackPeriodInDays()).append(",");
if (getSavingsPlansType() != null)
sb.append("SavingsPlansType: ").append(getSavingsPlansType()).append(",");
if (getTermInYears() != null)
sb.append("TermInYears: ").append(getTermInYears()).append(",");
if (getPaymentOption() != null)
sb.append("PaymentOption: ").append(getPaymentOption()).append(",");
if (getAccountId() != null)
sb.append("AccountId: ").append(getAccountId()).append(",");
if (getCurrencyCode() != null)
sb.append("CurrencyCode: ").append(getCurrencyCode()).append(",");
if (getInstanceFamily() != null)
sb.append("InstanceFamily: ").append(getInstanceFamily()).append(",");
if (getRegion() != null)
sb.append("Region: ").append(getRegion()).append(",");
if (getOfferingId() != null)
sb.append("OfferingId: ").append(getOfferingId()).append(",");
if (getGenerationTimestamp() != null)
sb.append("GenerationTimestamp: ").append(getGenerationTimestamp()).append(",");
if (getLatestUsageTimestamp() != null)
sb.append("LatestUsageTimestamp: ").append(getLatestUsageTimestamp()).append(",");
if (getCurrentAverageHourlyOnDemandSpend() != null)
sb.append("CurrentAverageHourlyOnDemandSpend: ").append(getCurrentAverageHourlyOnDemandSpend()).append(",");
if (getCurrentMaximumHourlyOnDemandSpend() != null)
sb.append("CurrentMaximumHourlyOnDemandSpend: ").append(getCurrentMaximumHourlyOnDemandSpend()).append(",");
if (getCurrentMinimumHourlyOnDemandSpend() != null)
sb.append("CurrentMinimumHourlyOnDemandSpend: ").append(getCurrentMinimumHourlyOnDemandSpend()).append(",");
if (getEstimatedAverageUtilization() != null)
sb.append("EstimatedAverageUtilization: ").append(getEstimatedAverageUtilization()).append(",");
if (getEstimatedMonthlySavingsAmount() != null)
sb.append("EstimatedMonthlySavingsAmount: ").append(getEstimatedMonthlySavingsAmount()).append(",");
if (getEstimatedOnDemandCost() != null)
sb.append("EstimatedOnDemandCost: ").append(getEstimatedOnDemandCost()).append(",");
if (getEstimatedOnDemandCostWithCurrentCommitment() != null)
sb.append("EstimatedOnDemandCostWithCurrentCommitment: ").append(getEstimatedOnDemandCostWithCurrentCommitment()).append(",");
if (getEstimatedROI() != null)
sb.append("EstimatedROI: ").append(getEstimatedROI()).append(",");
if (getEstimatedSPCost() != null)
sb.append("EstimatedSPCost: ").append(getEstimatedSPCost()).append(",");
if (getEstimatedSavingsAmount() != null)
sb.append("EstimatedSavingsAmount: ").append(getEstimatedSavingsAmount()).append(",");
if (getEstimatedSavingsPercentage() != null)
sb.append("EstimatedSavingsPercentage: ").append(getEstimatedSavingsPercentage()).append(",");
if (getExistingHourlyCommitment() != null)
sb.append("ExistingHourlyCommitment: ").append(getExistingHourlyCommitment()).append(",");
if (getHourlyCommitmentToPurchase() != null)
sb.append("HourlyCommitmentToPurchase: ").append(getHourlyCommitmentToPurchase()).append(",");
if (getUpfrontCost() != null)
sb.append("UpfrontCost: ").append(getUpfrontCost()).append(",");
if (getCurrentAverageCoverage() != null)
sb.append("CurrentAverageCoverage: ").append(getCurrentAverageCoverage()).append(",");
if (getEstimatedAverageCoverage() != null)
sb.append("EstimatedAverageCoverage: ").append(getEstimatedAverageCoverage()).append(",");
if (getMetricsOverLookbackPeriod() != null)
sb.append("MetricsOverLookbackPeriod: ").append(getMetricsOverLookbackPeriod());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof RecommendationDetailData == false)
return false;
RecommendationDetailData other = (RecommendationDetailData) obj;
if (other.getAccountScope() == null ^ this.getAccountScope() == null)
return false;
if (other.getAccountScope() != null && other.getAccountScope().equals(this.getAccountScope()) == false)
return false;
if (other.getLookbackPeriodInDays() == null ^ this.getLookbackPeriodInDays() == null)
return false;
if (other.getLookbackPeriodInDays() != null && other.getLookbackPeriodInDays().equals(this.getLookbackPeriodInDays()) == false)
return false;
if (other.getSavingsPlansType() == null ^ this.getSavingsPlansType() == null)
return false;
if (other.getSavingsPlansType() != null && other.getSavingsPlansType().equals(this.getSavingsPlansType()) == false)
return false;
if (other.getTermInYears() == null ^ this.getTermInYears() == null)
return false;
if (other.getTermInYears() != null && other.getTermInYears().equals(this.getTermInYears()) == false)
return false;
if (other.getPaymentOption() == null ^ this.getPaymentOption() == null)
return false;
if (other.getPaymentOption() != null && other.getPaymentOption().equals(this.getPaymentOption()) == false)
return false;
if (other.getAccountId() == null ^ this.getAccountId() == null)
return false;
if (other.getAccountId() != null && other.getAccountId().equals(this.getAccountId()) == false)
return false;
if (other.getCurrencyCode() == null ^ this.getCurrencyCode() == null)
return false;
if (other.getCurrencyCode() != null && other.getCurrencyCode().equals(this.getCurrencyCode()) == false)
return false;
if (other.getInstanceFamily() == null ^ this.getInstanceFamily() == null)
return false;
if (other.getInstanceFamily() != null && other.getInstanceFamily().equals(this.getInstanceFamily()) == false)
return false;
if (other.getRegion() == null ^ this.getRegion() == null)
return false;
if (other.getRegion() != null && other.getRegion().equals(this.getRegion()) == false)
return false;
if (other.getOfferingId() == null ^ this.getOfferingId() == null)
return false;
if (other.getOfferingId() != null && other.getOfferingId().equals(this.getOfferingId()) == false)
return false;
if (other.getGenerationTimestamp() == null ^ this.getGenerationTimestamp() == null)
return false;
if (other.getGenerationTimestamp() != null && other.getGenerationTimestamp().equals(this.getGenerationTimestamp()) == false)
return false;
if (other.getLatestUsageTimestamp() == null ^ this.getLatestUsageTimestamp() == null)
return false;
if (other.getLatestUsageTimestamp() != null && other.getLatestUsageTimestamp().equals(this.getLatestUsageTimestamp()) == false)
return false;
if (other.getCurrentAverageHourlyOnDemandSpend() == null ^ this.getCurrentAverageHourlyOnDemandSpend() == null)
return false;
if (other.getCurrentAverageHourlyOnDemandSpend() != null
&& other.getCurrentAverageHourlyOnDemandSpend().equals(this.getCurrentAverageHourlyOnDemandSpend()) == false)
return false;
if (other.getCurrentMaximumHourlyOnDemandSpend() == null ^ this.getCurrentMaximumHourlyOnDemandSpend() == null)
return false;
if (other.getCurrentMaximumHourlyOnDemandSpend() != null
&& other.getCurrentMaximumHourlyOnDemandSpend().equals(this.getCurrentMaximumHourlyOnDemandSpend()) == false)
return false;
if (other.getCurrentMinimumHourlyOnDemandSpend() == null ^ this.getCurrentMinimumHourlyOnDemandSpend() == null)
return false;
if (other.getCurrentMinimumHourlyOnDemandSpend() != null
&& other.getCurrentMinimumHourlyOnDemandSpend().equals(this.getCurrentMinimumHourlyOnDemandSpend()) == false)
return false;
if (other.getEstimatedAverageUtilization() == null ^ this.getEstimatedAverageUtilization() == null)
return false;
if (other.getEstimatedAverageUtilization() != null && other.getEstimatedAverageUtilization().equals(this.getEstimatedAverageUtilization()) == false)
return false;
if (other.getEstimatedMonthlySavingsAmount() == null ^ this.getEstimatedMonthlySavingsAmount() == null)
return false;
if (other.getEstimatedMonthlySavingsAmount() != null
&& other.getEstimatedMonthlySavingsAmount().equals(this.getEstimatedMonthlySavingsAmount()) == false)
return false;
if (other.getEstimatedOnDemandCost() == null ^ this.getEstimatedOnDemandCost() == null)
return false;
if (other.getEstimatedOnDemandCost() != null && other.getEstimatedOnDemandCost().equals(this.getEstimatedOnDemandCost()) == false)
return false;
if (other.getEstimatedOnDemandCostWithCurrentCommitment() == null ^ this.getEstimatedOnDemandCostWithCurrentCommitment() == null)
return false;
if (other.getEstimatedOnDemandCostWithCurrentCommitment() != null
&& other.getEstimatedOnDemandCostWithCurrentCommitment().equals(this.getEstimatedOnDemandCostWithCurrentCommitment()) == false)
return false;
if (other.getEstimatedROI() == null ^ this.getEstimatedROI() == null)
return false;
if (other.getEstimatedROI() != null && other.getEstimatedROI().equals(this.getEstimatedROI()) == false)
return false;
if (other.getEstimatedSPCost() == null ^ this.getEstimatedSPCost() == null)
return false;
if (other.getEstimatedSPCost() != null && other.getEstimatedSPCost().equals(this.getEstimatedSPCost()) == false)
return false;
if (other.getEstimatedSavingsAmount() == null ^ this.getEstimatedSavingsAmount() == null)
return false;
if (other.getEstimatedSavingsAmount() != null && other.getEstimatedSavingsAmount().equals(this.getEstimatedSavingsAmount()) == false)
return false;
if (other.getEstimatedSavingsPercentage() == null ^ this.getEstimatedSavingsPercentage() == null)
return false;
if (other.getEstimatedSavingsPercentage() != null && other.getEstimatedSavingsPercentage().equals(this.getEstimatedSavingsPercentage()) == false)
return false;
if (other.getExistingHourlyCommitment() == null ^ this.getExistingHourlyCommitment() == null)
return false;
if (other.getExistingHourlyCommitment() != null && other.getExistingHourlyCommitment().equals(this.getExistingHourlyCommitment()) == false)
return false;
if (other.getHourlyCommitmentToPurchase() == null ^ this.getHourlyCommitmentToPurchase() == null)
return false;
if (other.getHourlyCommitmentToPurchase() != null && other.getHourlyCommitmentToPurchase().equals(this.getHourlyCommitmentToPurchase()) == false)
return false;
if (other.getUpfrontCost() == null ^ this.getUpfrontCost() == null)
return false;
if (other.getUpfrontCost() != null && other.getUpfrontCost().equals(this.getUpfrontCost()) == false)
return false;
if (other.getCurrentAverageCoverage() == null ^ this.getCurrentAverageCoverage() == null)
return false;
if (other.getCurrentAverageCoverage() != null && other.getCurrentAverageCoverage().equals(this.getCurrentAverageCoverage()) == false)
return false;
if (other.getEstimatedAverageCoverage() == null ^ this.getEstimatedAverageCoverage() == null)
return false;
if (other.getEstimatedAverageCoverage() != null && other.getEstimatedAverageCoverage().equals(this.getEstimatedAverageCoverage()) == false)
return false;
if (other.getMetricsOverLookbackPeriod() == null ^ this.getMetricsOverLookbackPeriod() == null)
return false;
if (other.getMetricsOverLookbackPeriod() != null && other.getMetricsOverLookbackPeriod().equals(this.getMetricsOverLookbackPeriod()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getAccountScope() == null) ? 0 : getAccountScope().hashCode());
hashCode = prime * hashCode + ((getLookbackPeriodInDays() == null) ? 0 : getLookbackPeriodInDays().hashCode());
hashCode = prime * hashCode + ((getSavingsPlansType() == null) ? 0 : getSavingsPlansType().hashCode());
hashCode = prime * hashCode + ((getTermInYears() == null) ? 0 : getTermInYears().hashCode());
hashCode = prime * hashCode + ((getPaymentOption() == null) ? 0 : getPaymentOption().hashCode());
hashCode = prime * hashCode + ((getAccountId() == null) ? 0 : getAccountId().hashCode());
hashCode = prime * hashCode + ((getCurrencyCode() == null) ? 0 : getCurrencyCode().hashCode());
hashCode = prime * hashCode + ((getInstanceFamily() == null) ? 0 : getInstanceFamily().hashCode());
hashCode = prime * hashCode + ((getRegion() == null) ? 0 : getRegion().hashCode());
hashCode = prime * hashCode + ((getOfferingId() == null) ? 0 : getOfferingId().hashCode());
hashCode = prime * hashCode + ((getGenerationTimestamp() == null) ? 0 : getGenerationTimestamp().hashCode());
hashCode = prime * hashCode + ((getLatestUsageTimestamp() == null) ? 0 : getLatestUsageTimestamp().hashCode());
hashCode = prime * hashCode + ((getCurrentAverageHourlyOnDemandSpend() == null) ? 0 : getCurrentAverageHourlyOnDemandSpend().hashCode());
hashCode = prime * hashCode + ((getCurrentMaximumHourlyOnDemandSpend() == null) ? 0 : getCurrentMaximumHourlyOnDemandSpend().hashCode());
hashCode = prime * hashCode + ((getCurrentMinimumHourlyOnDemandSpend() == null) ? 0 : getCurrentMinimumHourlyOnDemandSpend().hashCode());
hashCode = prime * hashCode + ((getEstimatedAverageUtilization() == null) ? 0 : getEstimatedAverageUtilization().hashCode());
hashCode = prime * hashCode + ((getEstimatedMonthlySavingsAmount() == null) ? 0 : getEstimatedMonthlySavingsAmount().hashCode());
hashCode = prime * hashCode + ((getEstimatedOnDemandCost() == null) ? 0 : getEstimatedOnDemandCost().hashCode());
hashCode = prime * hashCode
+ ((getEstimatedOnDemandCostWithCurrentCommitment() == null) ? 0 : getEstimatedOnDemandCostWithCurrentCommitment().hashCode());
hashCode = prime * hashCode + ((getEstimatedROI() == null) ? 0 : getEstimatedROI().hashCode());
hashCode = prime * hashCode + ((getEstimatedSPCost() == null) ? 0 : getEstimatedSPCost().hashCode());
hashCode = prime * hashCode + ((getEstimatedSavingsAmount() == null) ? 0 : getEstimatedSavingsAmount().hashCode());
hashCode = prime * hashCode + ((getEstimatedSavingsPercentage() == null) ? 0 : getEstimatedSavingsPercentage().hashCode());
hashCode = prime * hashCode + ((getExistingHourlyCommitment() == null) ? 0 : getExistingHourlyCommitment().hashCode());
hashCode = prime * hashCode + ((getHourlyCommitmentToPurchase() == null) ? 0 : getHourlyCommitmentToPurchase().hashCode());
hashCode = prime * hashCode + ((getUpfrontCost() == null) ? 0 : getUpfrontCost().hashCode());
hashCode = prime * hashCode + ((getCurrentAverageCoverage() == null) ? 0 : getCurrentAverageCoverage().hashCode());
hashCode = prime * hashCode + ((getEstimatedAverageCoverage() == null) ? 0 : getEstimatedAverageCoverage().hashCode());
hashCode = prime * hashCode + ((getMetricsOverLookbackPeriod() == null) ? 0 : getMetricsOverLookbackPeriod().hashCode());
return hashCode;
}
@Override
public RecommendationDetailData clone() {
try {
return (RecommendationDetailData) 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.costexplorer.model.transform.RecommendationDetailDataMarshaller.getInstance().marshall(this, protocolMarshaller);
}
}