
com.amazonaws.services.costexplorer.model.SavingsPlansPurchaseRecommendationDetail 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;
/**
*
* Details for your recommended Savings Plans.
*
*
* @see AWS API Documentation
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class SavingsPlansPurchaseRecommendationDetail implements Serializable, Cloneable, StructuredPojo {
/**
*
* Details for your recommended Savings Plans.
*
*/
private SavingsPlansDetails savingsPlansDetails;
/**
*
* The AccountID
the recommendation is generated for.
*
*/
private String accountId;
/**
*
* The upfront cost of the recommended Savings Plans, based on the selected payment option.
*
*/
private String upfrontCost;
/**
*
* The estimated return on investment that's based on the recommended Savings Plans that you purchased. This is
* calculated as estimatedSavingsAmount
/ estimatedSPCost
*100.
*
*/
private String estimatedROI;
/**
*
* The currency code that Amazon Web Services used to generate the recommendations and present potential savings.
*
*/
private String currencyCode;
/**
*
* The cost of the recommended Savings Plans over the length of the lookback period.
*
*/
private String estimatedSPCost;
/**
*
* The remaining On-Demand cost estimated to not be covered by the recommended Savings Plans, 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 Plans you own.
*
*/
private String estimatedOnDemandCostWithCurrentCommitment;
/**
*
* The estimated savings amount that's based on the recommended Savings Plans 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 recommended hourly commitment level for the Savings Plans type and the configuration that's based on the
* usage during the lookback period.
*
*/
private String hourlyCommitmentToPurchase;
/**
*
* The estimated utilization of the recommended Savings Plans.
*
*/
private String estimatedAverageUtilization;
/**
*
* The estimated monthly savings amount based on the recommended Savings Plans.
*
*/
private String estimatedMonthlySavingsAmount;
/**
*
* The lowest value of hourly On-Demand spend over the lookback period of the applicable usage type.
*
*/
private String currentMinimumHourlyOnDemandSpend;
/**
*
* The highest value of hourly On-Demand spend over the lookback period of the applicable usage type.
*
*/
private String currentMaximumHourlyOnDemandSpend;
/**
*
* The average value of hourly On-Demand spend over the lookback period of the applicable usage type.
*
*/
private String currentAverageHourlyOnDemandSpend;
/**
*
* Contains detailed information about a specific Savings Plan recommendation.
*
*/
private String recommendationDetailId;
/**
*
* Details for your recommended Savings Plans.
*
*
* @param savingsPlansDetails
* Details for your recommended Savings Plans.
*/
public void setSavingsPlansDetails(SavingsPlansDetails savingsPlansDetails) {
this.savingsPlansDetails = savingsPlansDetails;
}
/**
*
* Details for your recommended Savings Plans.
*
*
* @return Details for your recommended Savings Plans.
*/
public SavingsPlansDetails getSavingsPlansDetails() {
return this.savingsPlansDetails;
}
/**
*
* Details for your recommended Savings Plans.
*
*
* @param savingsPlansDetails
* Details for your recommended Savings Plans.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SavingsPlansPurchaseRecommendationDetail withSavingsPlansDetails(SavingsPlansDetails savingsPlansDetails) {
setSavingsPlansDetails(savingsPlansDetails);
return this;
}
/**
*
* The AccountID
the recommendation is generated for.
*
*
* @param accountId
* The AccountID
the recommendation is generated for.
*/
public void setAccountId(String accountId) {
this.accountId = accountId;
}
/**
*
* The AccountID
the recommendation is generated for.
*
*
* @return The AccountID
the recommendation is generated for.
*/
public String getAccountId() {
return this.accountId;
}
/**
*
* The AccountID
the recommendation is generated for.
*
*
* @param accountId
* The AccountID
the recommendation is generated for.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SavingsPlansPurchaseRecommendationDetail withAccountId(String accountId) {
setAccountId(accountId);
return this;
}
/**
*
* The upfront cost of the recommended Savings Plans, based on the selected payment option.
*
*
* @param upfrontCost
* The upfront cost of the recommended Savings Plans, based on the selected payment option.
*/
public void setUpfrontCost(String upfrontCost) {
this.upfrontCost = upfrontCost;
}
/**
*
* The upfront cost of the recommended Savings Plans, based on the selected payment option.
*
*
* @return The upfront cost of the recommended Savings Plans, based on the selected payment option.
*/
public String getUpfrontCost() {
return this.upfrontCost;
}
/**
*
* The upfront cost of the recommended Savings Plans, based on the selected payment option.
*
*
* @param upfrontCost
* The upfront cost of the recommended Savings Plans, based on the selected payment option.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SavingsPlansPurchaseRecommendationDetail withUpfrontCost(String upfrontCost) {
setUpfrontCost(upfrontCost);
return this;
}
/**
*
* The estimated return on investment that's based on the recommended Savings Plans that you purchased. This is
* calculated as estimatedSavingsAmount
/ estimatedSPCost
*100.
*
*
* @param estimatedROI
* The estimated return on investment that's based on the recommended Savings Plans 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 Plans that you purchased. This is
* calculated as estimatedSavingsAmount
/ estimatedSPCost
*100.
*
*
* @return The estimated return on investment that's based on the recommended Savings Plans 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 Plans that you purchased. This is
* calculated as estimatedSavingsAmount
/ estimatedSPCost
*100.
*
*
* @param estimatedROI
* The estimated return on investment that's based on the recommended Savings Plans 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 SavingsPlansPurchaseRecommendationDetail withEstimatedROI(String estimatedROI) {
setEstimatedROI(estimatedROI);
return this;
}
/**
*
* The currency code that Amazon Web Services used to generate the recommendations and present potential savings.
*
*
* @param currencyCode
* The currency code that Amazon Web Services used to generate the recommendations and present potential
* savings.
*/
public void setCurrencyCode(String currencyCode) {
this.currencyCode = currencyCode;
}
/**
*
* The currency code that Amazon Web Services used to generate the recommendations and present potential savings.
*
*
* @return The currency code that Amazon Web Services used to generate the recommendations and present potential
* savings.
*/
public String getCurrencyCode() {
return this.currencyCode;
}
/**
*
* The currency code that Amazon Web Services used to generate the recommendations and present potential savings.
*
*
* @param currencyCode
* The currency code that Amazon Web Services used to generate the recommendations and present potential
* savings.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SavingsPlansPurchaseRecommendationDetail withCurrencyCode(String currencyCode) {
setCurrencyCode(currencyCode);
return this;
}
/**
*
* The cost of the recommended Savings Plans over the length of the lookback period.
*
*
* @param estimatedSPCost
* The cost of the recommended Savings Plans over the length of the lookback period.
*/
public void setEstimatedSPCost(String estimatedSPCost) {
this.estimatedSPCost = estimatedSPCost;
}
/**
*
* The cost of the recommended Savings Plans over the length of the lookback period.
*
*
* @return The cost of the recommended Savings Plans over the length of the lookback period.
*/
public String getEstimatedSPCost() {
return this.estimatedSPCost;
}
/**
*
* The cost of the recommended Savings Plans over the length of the lookback period.
*
*
* @param estimatedSPCost
* The cost of the recommended Savings Plans over the length of the lookback period.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SavingsPlansPurchaseRecommendationDetail withEstimatedSPCost(String estimatedSPCost) {
setEstimatedSPCost(estimatedSPCost);
return this;
}
/**
*
* The remaining On-Demand cost estimated to not be covered by the recommended Savings Plans, over the length of the
* lookback period.
*
*
* @param estimatedOnDemandCost
* The remaining On-Demand cost estimated to not be covered by the recommended Savings Plans, 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 Plans, over the length of the
* lookback period.
*
*
* @return The remaining On-Demand cost estimated to not be covered by the recommended Savings Plans, 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 Plans, over the length of the
* lookback period.
*
*
* @param estimatedOnDemandCost
* The remaining On-Demand cost estimated to not be covered by the recommended Savings Plans, over the length
* of the lookback period.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SavingsPlansPurchaseRecommendationDetail 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 Plans 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 Plans 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 Plans 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 Plans 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 Plans 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 Plans you own.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SavingsPlansPurchaseRecommendationDetail withEstimatedOnDemandCostWithCurrentCommitment(String estimatedOnDemandCostWithCurrentCommitment) {
setEstimatedOnDemandCostWithCurrentCommitment(estimatedOnDemandCostWithCurrentCommitment);
return this;
}
/**
*
* The estimated savings amount that's based on the recommended Savings Plans over the length of the lookback
* period.
*
*
* @param estimatedSavingsAmount
* The estimated savings amount that's based on the recommended Savings Plans 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 Plans over the length of the lookback
* period.
*
*
* @return The estimated savings amount that's based on the recommended Savings Plans over the length of the
* lookback period.
*/
public String getEstimatedSavingsAmount() {
return this.estimatedSavingsAmount;
}
/**
*
* The estimated savings amount that's based on the recommended Savings Plans over the length of the lookback
* period.
*
*
* @param estimatedSavingsAmount
* The estimated savings amount that's based on the recommended Savings Plans over the length of the lookback
* period.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SavingsPlansPurchaseRecommendationDetail 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 SavingsPlansPurchaseRecommendationDetail withEstimatedSavingsPercentage(String estimatedSavingsPercentage) {
setEstimatedSavingsPercentage(estimatedSavingsPercentage);
return this;
}
/**
*
* The recommended hourly commitment level for the Savings Plans type and the configuration that's based on the
* usage during the lookback period.
*
*
* @param hourlyCommitmentToPurchase
* The recommended hourly commitment level for the Savings Plans 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 Plans type and the configuration that's based on the
* usage during the lookback period.
*
*
* @return The recommended hourly commitment level for the Savings Plans 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 Plans type and the configuration that's based on the
* usage during the lookback period.
*
*
* @param hourlyCommitmentToPurchase
* The recommended hourly commitment level for the Savings Plans 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 SavingsPlansPurchaseRecommendationDetail withHourlyCommitmentToPurchase(String hourlyCommitmentToPurchase) {
setHourlyCommitmentToPurchase(hourlyCommitmentToPurchase);
return this;
}
/**
*
* The estimated utilization of the recommended Savings Plans.
*
*
* @param estimatedAverageUtilization
* The estimated utilization of the recommended Savings Plans.
*/
public void setEstimatedAverageUtilization(String estimatedAverageUtilization) {
this.estimatedAverageUtilization = estimatedAverageUtilization;
}
/**
*
* The estimated utilization of the recommended Savings Plans.
*
*
* @return The estimated utilization of the recommended Savings Plans.
*/
public String getEstimatedAverageUtilization() {
return this.estimatedAverageUtilization;
}
/**
*
* The estimated utilization of the recommended Savings Plans.
*
*
* @param estimatedAverageUtilization
* The estimated utilization of the recommended Savings Plans.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SavingsPlansPurchaseRecommendationDetail withEstimatedAverageUtilization(String estimatedAverageUtilization) {
setEstimatedAverageUtilization(estimatedAverageUtilization);
return this;
}
/**
*
* The estimated monthly savings amount based on the recommended Savings Plans.
*
*
* @param estimatedMonthlySavingsAmount
* The estimated monthly savings amount based on the recommended Savings Plans.
*/
public void setEstimatedMonthlySavingsAmount(String estimatedMonthlySavingsAmount) {
this.estimatedMonthlySavingsAmount = estimatedMonthlySavingsAmount;
}
/**
*
* The estimated monthly savings amount based on the recommended Savings Plans.
*
*
* @return The estimated monthly savings amount based on the recommended Savings Plans.
*/
public String getEstimatedMonthlySavingsAmount() {
return this.estimatedMonthlySavingsAmount;
}
/**
*
* The estimated monthly savings amount based on the recommended Savings Plans.
*
*
* @param estimatedMonthlySavingsAmount
* The estimated monthly savings amount based on the recommended Savings Plans.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SavingsPlansPurchaseRecommendationDetail withEstimatedMonthlySavingsAmount(String estimatedMonthlySavingsAmount) {
setEstimatedMonthlySavingsAmount(estimatedMonthlySavingsAmount);
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 SavingsPlansPurchaseRecommendationDetail withCurrentMinimumHourlyOnDemandSpend(String currentMinimumHourlyOnDemandSpend) {
setCurrentMinimumHourlyOnDemandSpend(currentMinimumHourlyOnDemandSpend);
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 SavingsPlansPurchaseRecommendationDetail withCurrentMaximumHourlyOnDemandSpend(String currentMaximumHourlyOnDemandSpend) {
setCurrentMaximumHourlyOnDemandSpend(currentMaximumHourlyOnDemandSpend);
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 SavingsPlansPurchaseRecommendationDetail withCurrentAverageHourlyOnDemandSpend(String currentAverageHourlyOnDemandSpend) {
setCurrentAverageHourlyOnDemandSpend(currentAverageHourlyOnDemandSpend);
return this;
}
/**
*
* Contains detailed information about a specific Savings Plan recommendation.
*
*
* @param recommendationDetailId
* Contains detailed information about a specific Savings Plan recommendation.
*/
public void setRecommendationDetailId(String recommendationDetailId) {
this.recommendationDetailId = recommendationDetailId;
}
/**
*
* Contains detailed information about a specific Savings Plan recommendation.
*
*
* @return Contains detailed information about a specific Savings Plan recommendation.
*/
public String getRecommendationDetailId() {
return this.recommendationDetailId;
}
/**
*
* Contains detailed information about a specific Savings Plan recommendation.
*
*
* @param recommendationDetailId
* Contains detailed information about a specific Savings Plan recommendation.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SavingsPlansPurchaseRecommendationDetail withRecommendationDetailId(String recommendationDetailId) {
setRecommendationDetailId(recommendationDetailId);
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 (getSavingsPlansDetails() != null)
sb.append("SavingsPlansDetails: ").append(getSavingsPlansDetails()).append(",");
if (getAccountId() != null)
sb.append("AccountId: ").append(getAccountId()).append(",");
if (getUpfrontCost() != null)
sb.append("UpfrontCost: ").append(getUpfrontCost()).append(",");
if (getEstimatedROI() != null)
sb.append("EstimatedROI: ").append(getEstimatedROI()).append(",");
if (getCurrencyCode() != null)
sb.append("CurrencyCode: ").append(getCurrencyCode()).append(",");
if (getEstimatedSPCost() != null)
sb.append("EstimatedSPCost: ").append(getEstimatedSPCost()).append(",");
if (getEstimatedOnDemandCost() != null)
sb.append("EstimatedOnDemandCost: ").append(getEstimatedOnDemandCost()).append(",");
if (getEstimatedOnDemandCostWithCurrentCommitment() != null)
sb.append("EstimatedOnDemandCostWithCurrentCommitment: ").append(getEstimatedOnDemandCostWithCurrentCommitment()).append(",");
if (getEstimatedSavingsAmount() != null)
sb.append("EstimatedSavingsAmount: ").append(getEstimatedSavingsAmount()).append(",");
if (getEstimatedSavingsPercentage() != null)
sb.append("EstimatedSavingsPercentage: ").append(getEstimatedSavingsPercentage()).append(",");
if (getHourlyCommitmentToPurchase() != null)
sb.append("HourlyCommitmentToPurchase: ").append(getHourlyCommitmentToPurchase()).append(",");
if (getEstimatedAverageUtilization() != null)
sb.append("EstimatedAverageUtilization: ").append(getEstimatedAverageUtilization()).append(",");
if (getEstimatedMonthlySavingsAmount() != null)
sb.append("EstimatedMonthlySavingsAmount: ").append(getEstimatedMonthlySavingsAmount()).append(",");
if (getCurrentMinimumHourlyOnDemandSpend() != null)
sb.append("CurrentMinimumHourlyOnDemandSpend: ").append(getCurrentMinimumHourlyOnDemandSpend()).append(",");
if (getCurrentMaximumHourlyOnDemandSpend() != null)
sb.append("CurrentMaximumHourlyOnDemandSpend: ").append(getCurrentMaximumHourlyOnDemandSpend()).append(",");
if (getCurrentAverageHourlyOnDemandSpend() != null)
sb.append("CurrentAverageHourlyOnDemandSpend: ").append(getCurrentAverageHourlyOnDemandSpend()).append(",");
if (getRecommendationDetailId() != null)
sb.append("RecommendationDetailId: ").append(getRecommendationDetailId());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof SavingsPlansPurchaseRecommendationDetail == false)
return false;
SavingsPlansPurchaseRecommendationDetail other = (SavingsPlansPurchaseRecommendationDetail) obj;
if (other.getSavingsPlansDetails() == null ^ this.getSavingsPlansDetails() == null)
return false;
if (other.getSavingsPlansDetails() != null && other.getSavingsPlansDetails().equals(this.getSavingsPlansDetails()) == 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.getUpfrontCost() == null ^ this.getUpfrontCost() == null)
return false;
if (other.getUpfrontCost() != null && other.getUpfrontCost().equals(this.getUpfrontCost()) == 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.getCurrencyCode() == null ^ this.getCurrencyCode() == null)
return false;
if (other.getCurrencyCode() != null && other.getCurrencyCode().equals(this.getCurrencyCode()) == 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.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.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.getHourlyCommitmentToPurchase() == null ^ this.getHourlyCommitmentToPurchase() == null)
return false;
if (other.getHourlyCommitmentToPurchase() != null && other.getHourlyCommitmentToPurchase().equals(this.getHourlyCommitmentToPurchase()) == 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.getCurrentMinimumHourlyOnDemandSpend() == null ^ this.getCurrentMinimumHourlyOnDemandSpend() == null)
return false;
if (other.getCurrentMinimumHourlyOnDemandSpend() != null
&& other.getCurrentMinimumHourlyOnDemandSpend().equals(this.getCurrentMinimumHourlyOnDemandSpend()) == 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.getCurrentAverageHourlyOnDemandSpend() == null ^ this.getCurrentAverageHourlyOnDemandSpend() == null)
return false;
if (other.getCurrentAverageHourlyOnDemandSpend() != null
&& other.getCurrentAverageHourlyOnDemandSpend().equals(this.getCurrentAverageHourlyOnDemandSpend()) == false)
return false;
if (other.getRecommendationDetailId() == null ^ this.getRecommendationDetailId() == null)
return false;
if (other.getRecommendationDetailId() != null && other.getRecommendationDetailId().equals(this.getRecommendationDetailId()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getSavingsPlansDetails() == null) ? 0 : getSavingsPlansDetails().hashCode());
hashCode = prime * hashCode + ((getAccountId() == null) ? 0 : getAccountId().hashCode());
hashCode = prime * hashCode + ((getUpfrontCost() == null) ? 0 : getUpfrontCost().hashCode());
hashCode = prime * hashCode + ((getEstimatedROI() == null) ? 0 : getEstimatedROI().hashCode());
hashCode = prime * hashCode + ((getCurrencyCode() == null) ? 0 : getCurrencyCode().hashCode());
hashCode = prime * hashCode + ((getEstimatedSPCost() == null) ? 0 : getEstimatedSPCost().hashCode());
hashCode = prime * hashCode + ((getEstimatedOnDemandCost() == null) ? 0 : getEstimatedOnDemandCost().hashCode());
hashCode = prime * hashCode
+ ((getEstimatedOnDemandCostWithCurrentCommitment() == null) ? 0 : getEstimatedOnDemandCostWithCurrentCommitment().hashCode());
hashCode = prime * hashCode + ((getEstimatedSavingsAmount() == null) ? 0 : getEstimatedSavingsAmount().hashCode());
hashCode = prime * hashCode + ((getEstimatedSavingsPercentage() == null) ? 0 : getEstimatedSavingsPercentage().hashCode());
hashCode = prime * hashCode + ((getHourlyCommitmentToPurchase() == null) ? 0 : getHourlyCommitmentToPurchase().hashCode());
hashCode = prime * hashCode + ((getEstimatedAverageUtilization() == null) ? 0 : getEstimatedAverageUtilization().hashCode());
hashCode = prime * hashCode + ((getEstimatedMonthlySavingsAmount() == null) ? 0 : getEstimatedMonthlySavingsAmount().hashCode());
hashCode = prime * hashCode + ((getCurrentMinimumHourlyOnDemandSpend() == null) ? 0 : getCurrentMinimumHourlyOnDemandSpend().hashCode());
hashCode = prime * hashCode + ((getCurrentMaximumHourlyOnDemandSpend() == null) ? 0 : getCurrentMaximumHourlyOnDemandSpend().hashCode());
hashCode = prime * hashCode + ((getCurrentAverageHourlyOnDemandSpend() == null) ? 0 : getCurrentAverageHourlyOnDemandSpend().hashCode());
hashCode = prime * hashCode + ((getRecommendationDetailId() == null) ? 0 : getRecommendationDetailId().hashCode());
return hashCode;
}
@Override
public SavingsPlansPurchaseRecommendationDetail clone() {
try {
return (SavingsPlansPurchaseRecommendationDetail) 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.SavingsPlansPurchaseRecommendationDetailMarshaller.getInstance().marshall(this, protocolMarshaller);
}
}