/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the ce-2017-10-25.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.CostExplorer.Model
{
///
/// The details and metrics for the given recommendation.
///
public partial class RecommendationDetailData
{
private string _accountId;
private AccountScope _accountScope;
private string _currencyCode;
private string _currentAverageCoverage;
private string _currentAverageHourlyOnDemandSpend;
private string _currentMaximumHourlyOnDemandSpend;
private string _currentMinimumHourlyOnDemandSpend;
private string _estimatedAverageCoverage;
private string _estimatedAverageUtilization;
private string _estimatedMonthlySavingsAmount;
private string _estimatedOnDemandCost;
private string _estimatedOnDemandCostWithCurrentCommitment;
private string _estimatedROI;
private string _estimatedSavingsAmount;
private string _estimatedSavingsPercentage;
private string _estimatedSPCost;
private string _existingHourlyCommitment;
private string _generationTimestamp;
private string _hourlyCommitmentToPurchase;
private string _instanceFamily;
private string _latestUsageTimestamp;
private LookbackPeriodInDays _lookbackPeriodInDays;
private List _metricsOverLookbackPeriod = new List();
private string _offeringId;
private PaymentOption _paymentOption;
private string _region;
private SupportedSavingsPlansType _savingsPlansType;
private TermInYears _termInYears;
private string _upfrontCost;
///
/// Gets and sets the property AccountId.
///
/// The AccountID that the recommendation is generated for.
///
///
[AWSProperty(Min=0, Max=1024)]
public string AccountId
{
get { return this._accountId; }
set { this._accountId = value; }
}
// Check to see if AccountId property is set
internal bool IsSetAccountId()
{
return this._accountId != null;
}
///
/// Gets and sets the property 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.
///
///
public AccountScope AccountScope
{
get { return this._accountScope; }
set { this._accountScope = value; }
}
// Check to see if AccountScope property is set
internal bool IsSetAccountScope()
{
return this._accountScope != null;
}
///
/// Gets and sets the property CurrencyCode.
///
/// The currency code that Amazon Web Services used to generate the recommendation and
/// present potential savings.
///
///
[AWSProperty(Min=0, Max=1024)]
public string CurrencyCode
{
get { return this._currencyCode; }
set { this._currencyCode = value; }
}
// Check to see if CurrencyCode property is set
internal bool IsSetCurrencyCode()
{
return this._currencyCode != null;
}
///
/// Gets and sets the property CurrentAverageCoverage.
///
/// The average value of hourly coverage over the lookback period.
///
///
[AWSProperty(Min=0, Max=1024)]
public string CurrentAverageCoverage
{
get { return this._currentAverageCoverage; }
set { this._currentAverageCoverage = value; }
}
// Check to see if CurrentAverageCoverage property is set
internal bool IsSetCurrentAverageCoverage()
{
return this._currentAverageCoverage != null;
}
///
/// Gets and sets the property CurrentAverageHourlyOnDemandSpend.
///
/// The average value of hourly On-Demand spend over the lookback period of the applicable
/// usage type.
///
///
[AWSProperty(Min=0, Max=1024)]
public string CurrentAverageHourlyOnDemandSpend
{
get { return this._currentAverageHourlyOnDemandSpend; }
set { this._currentAverageHourlyOnDemandSpend = value; }
}
// Check to see if CurrentAverageHourlyOnDemandSpend property is set
internal bool IsSetCurrentAverageHourlyOnDemandSpend()
{
return this._currentAverageHourlyOnDemandSpend != null;
}
///
/// Gets and sets the property CurrentMaximumHourlyOnDemandSpend.
///
/// The highest value of hourly On-Demand spend over the lookback period of the applicable
/// usage type.
///
///
[AWSProperty(Min=0, Max=1024)]
public string CurrentMaximumHourlyOnDemandSpend
{
get { return this._currentMaximumHourlyOnDemandSpend; }
set { this._currentMaximumHourlyOnDemandSpend = value; }
}
// Check to see if CurrentMaximumHourlyOnDemandSpend property is set
internal bool IsSetCurrentMaximumHourlyOnDemandSpend()
{
return this._currentMaximumHourlyOnDemandSpend != null;
}
///
/// Gets and sets the property CurrentMinimumHourlyOnDemandSpend.
///
/// The lowest value of hourly On-Demand spend over the lookback period of the applicable
/// usage type.
///
///
[AWSProperty(Min=0, Max=1024)]
public string CurrentMinimumHourlyOnDemandSpend
{
get { return this._currentMinimumHourlyOnDemandSpend; }
set { this._currentMinimumHourlyOnDemandSpend = value; }
}
// Check to see if CurrentMinimumHourlyOnDemandSpend property is set
internal bool IsSetCurrentMinimumHourlyOnDemandSpend()
{
return this._currentMinimumHourlyOnDemandSpend != null;
}
///
/// Gets and sets the property EstimatedAverageCoverage.
///
/// The estimated coverage of the recommended Savings Plan.
///
///
[AWSProperty(Min=0, Max=1024)]
public string EstimatedAverageCoverage
{
get { return this._estimatedAverageCoverage; }
set { this._estimatedAverageCoverage = value; }
}
// Check to see if EstimatedAverageCoverage property is set
internal bool IsSetEstimatedAverageCoverage()
{
return this._estimatedAverageCoverage != null;
}
///
/// Gets and sets the property EstimatedAverageUtilization.
///
/// The estimated utilization of the recommended Savings Plan.
///
///
[AWSProperty(Min=0, Max=1024)]
public string EstimatedAverageUtilization
{
get { return this._estimatedAverageUtilization; }
set { this._estimatedAverageUtilization = value; }
}
// Check to see if EstimatedAverageUtilization property is set
internal bool IsSetEstimatedAverageUtilization()
{
return this._estimatedAverageUtilization != null;
}
///
/// Gets and sets the property EstimatedMonthlySavingsAmount.
///
/// The estimated monthly savings amount based on the recommended Savings Plan.
///
///
[AWSProperty(Min=0, Max=1024)]
public string EstimatedMonthlySavingsAmount
{
get { return this._estimatedMonthlySavingsAmount; }
set { this._estimatedMonthlySavingsAmount = value; }
}
// Check to see if EstimatedMonthlySavingsAmount property is set
internal bool IsSetEstimatedMonthlySavingsAmount()
{
return this._estimatedMonthlySavingsAmount != null;
}
///
/// Gets and sets the property EstimatedOnDemandCost.
///
/// The remaining On-Demand cost estimated to not be covered by the recommended Savings
/// Plan, over the length of the lookback period.
///
///
[AWSProperty(Min=0, Max=1024)]
public string EstimatedOnDemandCost
{
get { return this._estimatedOnDemandCost; }
set { this._estimatedOnDemandCost = value; }
}
// Check to see if EstimatedOnDemandCost property is set
internal bool IsSetEstimatedOnDemandCost()
{
return this._estimatedOnDemandCost != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=0, Max=1024)]
public string EstimatedOnDemandCostWithCurrentCommitment
{
get { return this._estimatedOnDemandCostWithCurrentCommitment; }
set { this._estimatedOnDemandCostWithCurrentCommitment = value; }
}
// Check to see if EstimatedOnDemandCostWithCurrentCommitment property is set
internal bool IsSetEstimatedOnDemandCostWithCurrentCommitment()
{
return this._estimatedOnDemandCostWithCurrentCommitment != null;
}
///
/// Gets and sets the property EstimatedROI.
///
/// The estimated return on investment that's based on the recommended Savings Plan that
/// you purchased. This is calculated as estimatedSavingsAmount/estimatedSPCost*100.
///
///
[AWSProperty(Min=0, Max=1024)]
public string EstimatedROI
{
get { return this._estimatedROI; }
set { this._estimatedROI = value; }
}
// Check to see if EstimatedROI property is set
internal bool IsSetEstimatedROI()
{
return this._estimatedROI != null;
}
///
/// Gets and sets the property EstimatedSavingsAmount.
///
/// The estimated savings amount that's based on the recommended Savings Plan over the
/// length of the lookback period.
///
///
[AWSProperty(Min=0, Max=1024)]
public string EstimatedSavingsAmount
{
get { return this._estimatedSavingsAmount; }
set { this._estimatedSavingsAmount = value; }
}
// Check to see if EstimatedSavingsAmount property is set
internal bool IsSetEstimatedSavingsAmount()
{
return this._estimatedSavingsAmount != null;
}
///
/// Gets and sets the property EstimatedSavingsPercentage.
///
/// The estimated savings percentage relative to the total cost of applicable On-Demand
/// usage over the lookback period.
///
///
[AWSProperty(Min=0, Max=1024)]
public string EstimatedSavingsPercentage
{
get { return this._estimatedSavingsPercentage; }
set { this._estimatedSavingsPercentage = value; }
}
// Check to see if EstimatedSavingsPercentage property is set
internal bool IsSetEstimatedSavingsPercentage()
{
return this._estimatedSavingsPercentage != null;
}
///
/// Gets and sets the property EstimatedSPCost.
///
/// The cost of the recommended Savings Plan over the length of the lookback period.
///
///
[AWSProperty(Min=0, Max=1024)]
public string EstimatedSPCost
{
get { return this._estimatedSPCost; }
set { this._estimatedSPCost = value; }
}
// Check to see if EstimatedSPCost property is set
internal bool IsSetEstimatedSPCost()
{
return this._estimatedSPCost != null;
}
///
/// Gets and sets the property ExistingHourlyCommitment.
///
/// The existing hourly commitment for the Savings Plan type.
///
///
[AWSProperty(Min=0, Max=1024)]
public string ExistingHourlyCommitment
{
get { return this._existingHourlyCommitment; }
set { this._existingHourlyCommitment = value; }
}
// Check to see if ExistingHourlyCommitment property is set
internal bool IsSetExistingHourlyCommitment()
{
return this._existingHourlyCommitment != null;
}
///
/// Gets and sets the property GenerationTimestamp.
///
[AWSProperty(Min=20, Max=25)]
public string GenerationTimestamp
{
get { return this._generationTimestamp; }
set { this._generationTimestamp = value; }
}
// Check to see if GenerationTimestamp property is set
internal bool IsSetGenerationTimestamp()
{
return this._generationTimestamp != null;
}
///
/// Gets and sets the property HourlyCommitmentToPurchase.
///
/// The recommended hourly commitment level for the Savings Plan type and the configuration
/// that's based on the usage during the lookback period.
///
///
[AWSProperty(Min=0, Max=1024)]
public string HourlyCommitmentToPurchase
{
get { return this._hourlyCommitmentToPurchase; }
set { this._hourlyCommitmentToPurchase = value; }
}
// Check to see if HourlyCommitmentToPurchase property is set
internal bool IsSetHourlyCommitmentToPurchase()
{
return this._hourlyCommitmentToPurchase != null;
}
///
/// Gets and sets the property InstanceFamily.
///
/// The instance family of the recommended Savings Plan.
///
///
[AWSProperty(Min=0, Max=1024)]
public string InstanceFamily
{
get { return this._instanceFamily; }
set { this._instanceFamily = value; }
}
// Check to see if InstanceFamily property is set
internal bool IsSetInstanceFamily()
{
return this._instanceFamily != null;
}
///
/// Gets and sets the property LatestUsageTimestamp.
///
[AWSProperty(Min=20, Max=25)]
public string LatestUsageTimestamp
{
get { return this._latestUsageTimestamp; }
set { this._latestUsageTimestamp = value; }
}
// Check to see if LatestUsageTimestamp property is set
internal bool IsSetLatestUsageTimestamp()
{
return this._latestUsageTimestamp != null;
}
///
/// Gets and sets the property LookbackPeriodInDays.
///
/// How many days of previous usage that Amazon Web Services considers when making this
/// recommendation.
///
///
public LookbackPeriodInDays LookbackPeriodInDays
{
get { return this._lookbackPeriodInDays; }
set { this._lookbackPeriodInDays = value; }
}
// Check to see if LookbackPeriodInDays property is set
internal bool IsSetLookbackPeriodInDays()
{
return this._lookbackPeriodInDays != null;
}
///
/// Gets and sets the property MetricsOverLookbackPeriod.
///
/// The related hourly cost, coverage, and utilization metrics over the lookback period.
///
///
public List MetricsOverLookbackPeriod
{
get { return this._metricsOverLookbackPeriod; }
set { this._metricsOverLookbackPeriod = value; }
}
// Check to see if MetricsOverLookbackPeriod property is set
internal bool IsSetMetricsOverLookbackPeriod()
{
return this._metricsOverLookbackPeriod != null && this._metricsOverLookbackPeriod.Count > 0;
}
///
/// Gets and sets the property OfferingId.
///
/// The unique ID that's used to distinguish Savings Plans from one another.
///
///
[AWSProperty(Min=0, Max=1024)]
public string OfferingId
{
get { return this._offeringId; }
set { this._offeringId = value; }
}
// Check to see if OfferingId property is set
internal bool IsSetOfferingId()
{
return this._offeringId != null;
}
///
/// Gets and sets the property PaymentOption.
///
/// The payment option for the commitment (for example, All Upfront or No Upfront).
///
///
public PaymentOption PaymentOption
{
get { return this._paymentOption; }
set { this._paymentOption = value; }
}
// Check to see if PaymentOption property is set
internal bool IsSetPaymentOption()
{
return this._paymentOption != null;
}
///
/// Gets and sets the property Region.
///
/// The region the recommendation is generated for.
///
///
[AWSProperty(Min=0, Max=1024)]
public string Region
{
get { return this._region; }
set { this._region = value; }
}
// Check to see if Region property is set
internal bool IsSetRegion()
{
return this._region != null;
}
///
/// Gets and sets the property SavingsPlansType.
///
/// The requested Savings Plan recommendation type.
///
///
public SupportedSavingsPlansType SavingsPlansType
{
get { return this._savingsPlansType; }
set { this._savingsPlansType = value; }
}
// Check to see if SavingsPlansType property is set
internal bool IsSetSavingsPlansType()
{
return this._savingsPlansType != null;
}
///
/// Gets and sets the property TermInYears.
///
/// The term of the commitment in years.
///
///
public TermInYears TermInYears
{
get { return this._termInYears; }
set { this._termInYears = value; }
}
// Check to see if TermInYears property is set
internal bool IsSetTermInYears()
{
return this._termInYears != null;
}
///
/// Gets and sets the property UpfrontCost.
///
/// The upfront cost of the recommended Savings Plan, based on the selected payment option.
///
///
[AWSProperty(Min=0, Max=1024)]
public string UpfrontCost
{
get { return this._upfrontCost; }
set { this._upfrontCost = value; }
}
// Check to see if UpfrontCost property is set
internal bool IsSetUpfrontCost()
{
return this._upfrontCost != null;
}
}
}