/*
* 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
{
///
/// Container for the parameters to the GetSavingsPlansPurchaseRecommendation operation.
/// Retrieves the Savings Plans recommendations for your account. First use StartSavingsPlansPurchaseRecommendationGeneration
/// to generate a new set of recommendations, and then use GetSavingsPlansPurchaseRecommendation
/// to retrieve them.
///
public partial class GetSavingsPlansPurchaseRecommendationRequest : AmazonCostExplorerRequest
{
private AccountScope _accountScope;
private Expression _filter;
private LookbackPeriodInDays _lookbackPeriodInDays;
private string _nextPageToken;
private int? _pageSize;
private PaymentOption _paymentOption;
private SupportedSavingsPlansType _savingsPlansType;
private TermInYears _termInYears;
///
/// 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 Filter.
///
/// You can filter your recommendations by Account ID with the LINKED_ACCOUNT
/// dimension. To filter your recommendations by Account ID, specify Key
/// as LINKED_ACCOUNT
and Value
as the comma-separated Acount
/// ID(s) that you want to see Savings Plans purchase recommendations for.
///
///
///
/// For GetSavingsPlansPurchaseRecommendation, the Filter
doesn't include
/// CostCategories
or Tags
. It only includes Dimensions
.
/// With Dimensions
, Key
must be LINKED_ACCOUNT
/// and Value
can be a single Account ID or multiple comma-separated Account
/// IDs that you want to see Savings Plans Purchase Recommendations for. AND
/// and OR
operators are not supported.
///
///
public Expression Filter
{
get { return this._filter; }
set { this._filter = value; }
}
// Check to see if Filter property is set
internal bool IsSetFilter()
{
return this._filter != null;
}
///
/// Gets and sets the property LookbackPeriodInDays.
///
/// The lookback period that's used to generate the recommendation.
///
///
[AWSProperty(Required=true)]
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 NextPageToken.
///
/// The token to retrieve the next set of results. Amazon Web Services provides the token
/// when the response from a previous call has more results than the maximum page size.
///
///
[AWSProperty(Min=0, Max=8192)]
public string NextPageToken
{
get { return this._nextPageToken; }
set { this._nextPageToken = value; }
}
// Check to see if NextPageToken property is set
internal bool IsSetNextPageToken()
{
return this._nextPageToken != null;
}
///
/// Gets and sets the property PageSize.
///
/// The number of recommendations that you want returned in a single response object.
///
///
[AWSProperty(Min=0)]
public int PageSize
{
get { return this._pageSize.GetValueOrDefault(); }
set { this._pageSize = value; }
}
// Check to see if PageSize property is set
internal bool IsSetPageSize()
{
return this._pageSize.HasValue;
}
///
/// Gets and sets the property PaymentOption.
///
/// The payment option that's used to generate these recommendations.
///
///
[AWSProperty(Required=true)]
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 SavingsPlansType.
///
/// The Savings Plans recommendation type that's requested.
///
///
[AWSProperty(Required=true)]
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 savings plan recommendation term that's used to generate these recommendations.
///
///
[AWSProperty(Required=true)]
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;
}
}
}