/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace SavingsPlans { namespace Model { /** */ class DescribeSavingsPlansOfferingsRequest : public SavingsPlansRequest { public: AWS_SAVINGSPLANS_API DescribeSavingsPlansOfferingsRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "DescribeSavingsPlansOfferings"; } AWS_SAVINGSPLANS_API Aws::String SerializePayload() const override; /** *

The IDs of the offerings.

*/ inline const Aws::Vector& GetOfferingIds() const{ return m_offeringIds; } /** *

The IDs of the offerings.

*/ inline bool OfferingIdsHasBeenSet() const { return m_offeringIdsHasBeenSet; } /** *

The IDs of the offerings.

*/ inline void SetOfferingIds(const Aws::Vector& value) { m_offeringIdsHasBeenSet = true; m_offeringIds = value; } /** *

The IDs of the offerings.

*/ inline void SetOfferingIds(Aws::Vector&& value) { m_offeringIdsHasBeenSet = true; m_offeringIds = std::move(value); } /** *

The IDs of the offerings.

*/ inline DescribeSavingsPlansOfferingsRequest& WithOfferingIds(const Aws::Vector& value) { SetOfferingIds(value); return *this;} /** *

The IDs of the offerings.

*/ inline DescribeSavingsPlansOfferingsRequest& WithOfferingIds(Aws::Vector&& value) { SetOfferingIds(std::move(value)); return *this;} /** *

The IDs of the offerings.

*/ inline DescribeSavingsPlansOfferingsRequest& AddOfferingIds(const Aws::String& value) { m_offeringIdsHasBeenSet = true; m_offeringIds.push_back(value); return *this; } /** *

The IDs of the offerings.

*/ inline DescribeSavingsPlansOfferingsRequest& AddOfferingIds(Aws::String&& value) { m_offeringIdsHasBeenSet = true; m_offeringIds.push_back(std::move(value)); return *this; } /** *

The IDs of the offerings.

*/ inline DescribeSavingsPlansOfferingsRequest& AddOfferingIds(const char* value) { m_offeringIdsHasBeenSet = true; m_offeringIds.push_back(value); return *this; } /** *

The payment options.

*/ inline const Aws::Vector& GetPaymentOptions() const{ return m_paymentOptions; } /** *

The payment options.

*/ inline bool PaymentOptionsHasBeenSet() const { return m_paymentOptionsHasBeenSet; } /** *

The payment options.

*/ inline void SetPaymentOptions(const Aws::Vector& value) { m_paymentOptionsHasBeenSet = true; m_paymentOptions = value; } /** *

The payment options.

*/ inline void SetPaymentOptions(Aws::Vector&& value) { m_paymentOptionsHasBeenSet = true; m_paymentOptions = std::move(value); } /** *

The payment options.

*/ inline DescribeSavingsPlansOfferingsRequest& WithPaymentOptions(const Aws::Vector& value) { SetPaymentOptions(value); return *this;} /** *

The payment options.

*/ inline DescribeSavingsPlansOfferingsRequest& WithPaymentOptions(Aws::Vector&& value) { SetPaymentOptions(std::move(value)); return *this;} /** *

The payment options.

*/ inline DescribeSavingsPlansOfferingsRequest& AddPaymentOptions(const SavingsPlanPaymentOption& value) { m_paymentOptionsHasBeenSet = true; m_paymentOptions.push_back(value); return *this; } /** *

The payment options.

*/ inline DescribeSavingsPlansOfferingsRequest& AddPaymentOptions(SavingsPlanPaymentOption&& value) { m_paymentOptionsHasBeenSet = true; m_paymentOptions.push_back(std::move(value)); return *this; } /** *

The product type.

*/ inline const SavingsPlanProductType& GetProductType() const{ return m_productType; } /** *

The product type.

*/ inline bool ProductTypeHasBeenSet() const { return m_productTypeHasBeenSet; } /** *

The product type.

*/ inline void SetProductType(const SavingsPlanProductType& value) { m_productTypeHasBeenSet = true; m_productType = value; } /** *

The product type.

*/ inline void SetProductType(SavingsPlanProductType&& value) { m_productTypeHasBeenSet = true; m_productType = std::move(value); } /** *

The product type.

*/ inline DescribeSavingsPlansOfferingsRequest& WithProductType(const SavingsPlanProductType& value) { SetProductType(value); return *this;} /** *

The product type.

*/ inline DescribeSavingsPlansOfferingsRequest& WithProductType(SavingsPlanProductType&& value) { SetProductType(std::move(value)); return *this;} /** *

The plan type.

*/ inline const Aws::Vector& GetPlanTypes() const{ return m_planTypes; } /** *

The plan type.

*/ inline bool PlanTypesHasBeenSet() const { return m_planTypesHasBeenSet; } /** *

The plan type.

*/ inline void SetPlanTypes(const Aws::Vector& value) { m_planTypesHasBeenSet = true; m_planTypes = value; } /** *

The plan type.

*/ inline void SetPlanTypes(Aws::Vector&& value) { m_planTypesHasBeenSet = true; m_planTypes = std::move(value); } /** *

The plan type.

*/ inline DescribeSavingsPlansOfferingsRequest& WithPlanTypes(const Aws::Vector& value) { SetPlanTypes(value); return *this;} /** *

The plan type.

*/ inline DescribeSavingsPlansOfferingsRequest& WithPlanTypes(Aws::Vector&& value) { SetPlanTypes(std::move(value)); return *this;} /** *

The plan type.

*/ inline DescribeSavingsPlansOfferingsRequest& AddPlanTypes(const SavingsPlanType& value) { m_planTypesHasBeenSet = true; m_planTypes.push_back(value); return *this; } /** *

The plan type.

*/ inline DescribeSavingsPlansOfferingsRequest& AddPlanTypes(SavingsPlanType&& value) { m_planTypesHasBeenSet = true; m_planTypes.push_back(std::move(value)); return *this; } /** *

The durations, in seconds.

*/ inline const Aws::Vector& GetDurations() const{ return m_durations; } /** *

The durations, in seconds.

*/ inline bool DurationsHasBeenSet() const { return m_durationsHasBeenSet; } /** *

The durations, in seconds.

*/ inline void SetDurations(const Aws::Vector& value) { m_durationsHasBeenSet = true; m_durations = value; } /** *

The durations, in seconds.

*/ inline void SetDurations(Aws::Vector&& value) { m_durationsHasBeenSet = true; m_durations = std::move(value); } /** *

The durations, in seconds.

*/ inline DescribeSavingsPlansOfferingsRequest& WithDurations(const Aws::Vector& value) { SetDurations(value); return *this;} /** *

The durations, in seconds.

*/ inline DescribeSavingsPlansOfferingsRequest& WithDurations(Aws::Vector&& value) { SetDurations(std::move(value)); return *this;} /** *

The durations, in seconds.

*/ inline DescribeSavingsPlansOfferingsRequest& AddDurations(long long value) { m_durationsHasBeenSet = true; m_durations.push_back(value); return *this; } /** *

The currencies.

*/ inline const Aws::Vector& GetCurrencies() const{ return m_currencies; } /** *

The currencies.

*/ inline bool CurrenciesHasBeenSet() const { return m_currenciesHasBeenSet; } /** *

The currencies.

*/ inline void SetCurrencies(const Aws::Vector& value) { m_currenciesHasBeenSet = true; m_currencies = value; } /** *

The currencies.

*/ inline void SetCurrencies(Aws::Vector&& value) { m_currenciesHasBeenSet = true; m_currencies = std::move(value); } /** *

The currencies.

*/ inline DescribeSavingsPlansOfferingsRequest& WithCurrencies(const Aws::Vector& value) { SetCurrencies(value); return *this;} /** *

The currencies.

*/ inline DescribeSavingsPlansOfferingsRequest& WithCurrencies(Aws::Vector&& value) { SetCurrencies(std::move(value)); return *this;} /** *

The currencies.

*/ inline DescribeSavingsPlansOfferingsRequest& AddCurrencies(const CurrencyCode& value) { m_currenciesHasBeenSet = true; m_currencies.push_back(value); return *this; } /** *

The currencies.

*/ inline DescribeSavingsPlansOfferingsRequest& AddCurrencies(CurrencyCode&& value) { m_currenciesHasBeenSet = true; m_currencies.push_back(std::move(value)); return *this; } /** *

The descriptions.

*/ inline const Aws::Vector& GetDescriptions() const{ return m_descriptions; } /** *

The descriptions.

*/ inline bool DescriptionsHasBeenSet() const { return m_descriptionsHasBeenSet; } /** *

The descriptions.

*/ inline void SetDescriptions(const Aws::Vector& value) { m_descriptionsHasBeenSet = true; m_descriptions = value; } /** *

The descriptions.

*/ inline void SetDescriptions(Aws::Vector&& value) { m_descriptionsHasBeenSet = true; m_descriptions = std::move(value); } /** *

The descriptions.

*/ inline DescribeSavingsPlansOfferingsRequest& WithDescriptions(const Aws::Vector& value) { SetDescriptions(value); return *this;} /** *

The descriptions.

*/ inline DescribeSavingsPlansOfferingsRequest& WithDescriptions(Aws::Vector&& value) { SetDescriptions(std::move(value)); return *this;} /** *

The descriptions.

*/ inline DescribeSavingsPlansOfferingsRequest& AddDescriptions(const Aws::String& value) { m_descriptionsHasBeenSet = true; m_descriptions.push_back(value); return *this; } /** *

The descriptions.

*/ inline DescribeSavingsPlansOfferingsRequest& AddDescriptions(Aws::String&& value) { m_descriptionsHasBeenSet = true; m_descriptions.push_back(std::move(value)); return *this; } /** *

The descriptions.

*/ inline DescribeSavingsPlansOfferingsRequest& AddDescriptions(const char* value) { m_descriptionsHasBeenSet = true; m_descriptions.push_back(value); return *this; } /** *

The services.

*/ inline const Aws::Vector& GetServiceCodes() const{ return m_serviceCodes; } /** *

The services.

*/ inline bool ServiceCodesHasBeenSet() const { return m_serviceCodesHasBeenSet; } /** *

The services.

*/ inline void SetServiceCodes(const Aws::Vector& value) { m_serviceCodesHasBeenSet = true; m_serviceCodes = value; } /** *

The services.

*/ inline void SetServiceCodes(Aws::Vector&& value) { m_serviceCodesHasBeenSet = true; m_serviceCodes = std::move(value); } /** *

The services.

*/ inline DescribeSavingsPlansOfferingsRequest& WithServiceCodes(const Aws::Vector& value) { SetServiceCodes(value); return *this;} /** *

The services.

*/ inline DescribeSavingsPlansOfferingsRequest& WithServiceCodes(Aws::Vector&& value) { SetServiceCodes(std::move(value)); return *this;} /** *

The services.

*/ inline DescribeSavingsPlansOfferingsRequest& AddServiceCodes(const Aws::String& value) { m_serviceCodesHasBeenSet = true; m_serviceCodes.push_back(value); return *this; } /** *

The services.

*/ inline DescribeSavingsPlansOfferingsRequest& AddServiceCodes(Aws::String&& value) { m_serviceCodesHasBeenSet = true; m_serviceCodes.push_back(std::move(value)); return *this; } /** *

The services.

*/ inline DescribeSavingsPlansOfferingsRequest& AddServiceCodes(const char* value) { m_serviceCodesHasBeenSet = true; m_serviceCodes.push_back(value); return *this; } /** *

The usage details of the line item in the billing report.

*/ inline const Aws::Vector& GetUsageTypes() const{ return m_usageTypes; } /** *

The usage details of the line item in the billing report.

*/ inline bool UsageTypesHasBeenSet() const { return m_usageTypesHasBeenSet; } /** *

The usage details of the line item in the billing report.

*/ inline void SetUsageTypes(const Aws::Vector& value) { m_usageTypesHasBeenSet = true; m_usageTypes = value; } /** *

The usage details of the line item in the billing report.

*/ inline void SetUsageTypes(Aws::Vector&& value) { m_usageTypesHasBeenSet = true; m_usageTypes = std::move(value); } /** *

The usage details of the line item in the billing report.

*/ inline DescribeSavingsPlansOfferingsRequest& WithUsageTypes(const Aws::Vector& value) { SetUsageTypes(value); return *this;} /** *

The usage details of the line item in the billing report.

*/ inline DescribeSavingsPlansOfferingsRequest& WithUsageTypes(Aws::Vector&& value) { SetUsageTypes(std::move(value)); return *this;} /** *

The usage details of the line item in the billing report.

*/ inline DescribeSavingsPlansOfferingsRequest& AddUsageTypes(const Aws::String& value) { m_usageTypesHasBeenSet = true; m_usageTypes.push_back(value); return *this; } /** *

The usage details of the line item in the billing report.

*/ inline DescribeSavingsPlansOfferingsRequest& AddUsageTypes(Aws::String&& value) { m_usageTypesHasBeenSet = true; m_usageTypes.push_back(std::move(value)); return *this; } /** *

The usage details of the line item in the billing report.

*/ inline DescribeSavingsPlansOfferingsRequest& AddUsageTypes(const char* value) { m_usageTypesHasBeenSet = true; m_usageTypes.push_back(value); return *this; } /** *

The specific AWS operation for the line item in the billing report.

*/ inline const Aws::Vector& GetOperations() const{ return m_operations; } /** *

The specific AWS operation for the line item in the billing report.

*/ inline bool OperationsHasBeenSet() const { return m_operationsHasBeenSet; } /** *

The specific AWS operation for the line item in the billing report.

*/ inline void SetOperations(const Aws::Vector& value) { m_operationsHasBeenSet = true; m_operations = value; } /** *

The specific AWS operation for the line item in the billing report.

*/ inline void SetOperations(Aws::Vector&& value) { m_operationsHasBeenSet = true; m_operations = std::move(value); } /** *

The specific AWS operation for the line item in the billing report.

*/ inline DescribeSavingsPlansOfferingsRequest& WithOperations(const Aws::Vector& value) { SetOperations(value); return *this;} /** *

The specific AWS operation for the line item in the billing report.

*/ inline DescribeSavingsPlansOfferingsRequest& WithOperations(Aws::Vector&& value) { SetOperations(std::move(value)); return *this;} /** *

The specific AWS operation for the line item in the billing report.

*/ inline DescribeSavingsPlansOfferingsRequest& AddOperations(const Aws::String& value) { m_operationsHasBeenSet = true; m_operations.push_back(value); return *this; } /** *

The specific AWS operation for the line item in the billing report.

*/ inline DescribeSavingsPlansOfferingsRequest& AddOperations(Aws::String&& value) { m_operationsHasBeenSet = true; m_operations.push_back(std::move(value)); return *this; } /** *

The specific AWS operation for the line item in the billing report.

*/ inline DescribeSavingsPlansOfferingsRequest& AddOperations(const char* value) { m_operationsHasBeenSet = true; m_operations.push_back(value); return *this; } /** *

The filters.

*/ inline const Aws::Vector& GetFilters() const{ return m_filters; } /** *

The filters.

*/ inline bool FiltersHasBeenSet() const { return m_filtersHasBeenSet; } /** *

The filters.

*/ inline void SetFilters(const Aws::Vector& value) { m_filtersHasBeenSet = true; m_filters = value; } /** *

The filters.

*/ inline void SetFilters(Aws::Vector&& value) { m_filtersHasBeenSet = true; m_filters = std::move(value); } /** *

The filters.

*/ inline DescribeSavingsPlansOfferingsRequest& WithFilters(const Aws::Vector& value) { SetFilters(value); return *this;} /** *

The filters.

*/ inline DescribeSavingsPlansOfferingsRequest& WithFilters(Aws::Vector&& value) { SetFilters(std::move(value)); return *this;} /** *

The filters.

*/ inline DescribeSavingsPlansOfferingsRequest& AddFilters(const SavingsPlanOfferingFilterElement& value) { m_filtersHasBeenSet = true; m_filters.push_back(value); return *this; } /** *

The filters.

*/ inline DescribeSavingsPlansOfferingsRequest& AddFilters(SavingsPlanOfferingFilterElement&& value) { m_filtersHasBeenSet = true; m_filters.push_back(std::move(value)); return *this; } /** *

The token for the next page of results.

*/ inline const Aws::String& GetNextToken() const{ return m_nextToken; } /** *

The token for the next page of results.

*/ inline bool NextTokenHasBeenSet() const { return m_nextTokenHasBeenSet; } /** *

The token for the next page of results.

*/ inline void SetNextToken(const Aws::String& value) { m_nextTokenHasBeenSet = true; m_nextToken = value; } /** *

The token for the next page of results.

*/ inline void SetNextToken(Aws::String&& value) { m_nextTokenHasBeenSet = true; m_nextToken = std::move(value); } /** *

The token for the next page of results.

*/ inline void SetNextToken(const char* value) { m_nextTokenHasBeenSet = true; m_nextToken.assign(value); } /** *

The token for the next page of results.

*/ inline DescribeSavingsPlansOfferingsRequest& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;} /** *

The token for the next page of results.

*/ inline DescribeSavingsPlansOfferingsRequest& WithNextToken(Aws::String&& value) { SetNextToken(std::move(value)); return *this;} /** *

The token for the next page of results.

*/ inline DescribeSavingsPlansOfferingsRequest& WithNextToken(const char* value) { SetNextToken(value); return *this;} /** *

The maximum number of results to return with a single call. To retrieve * additional results, make another call with the returned token value.

*/ inline int GetMaxResults() const{ return m_maxResults; } /** *

The maximum number of results to return with a single call. To retrieve * additional results, make another call with the returned token value.

*/ inline bool MaxResultsHasBeenSet() const { return m_maxResultsHasBeenSet; } /** *

The maximum number of results to return with a single call. To retrieve * additional results, make another call with the returned token value.

*/ inline void SetMaxResults(int value) { m_maxResultsHasBeenSet = true; m_maxResults = value; } /** *

The maximum number of results to return with a single call. To retrieve * additional results, make another call with the returned token value.

*/ inline DescribeSavingsPlansOfferingsRequest& WithMaxResults(int value) { SetMaxResults(value); return *this;} private: Aws::Vector m_offeringIds; bool m_offeringIdsHasBeenSet = false; Aws::Vector m_paymentOptions; bool m_paymentOptionsHasBeenSet = false; SavingsPlanProductType m_productType; bool m_productTypeHasBeenSet = false; Aws::Vector m_planTypes; bool m_planTypesHasBeenSet = false; Aws::Vector m_durations; bool m_durationsHasBeenSet = false; Aws::Vector m_currencies; bool m_currenciesHasBeenSet = false; Aws::Vector m_descriptions; bool m_descriptionsHasBeenSet = false; Aws::Vector m_serviceCodes; bool m_serviceCodesHasBeenSet = false; Aws::Vector m_usageTypes; bool m_usageTypesHasBeenSet = false; Aws::Vector m_operations; bool m_operationsHasBeenSet = false; Aws::Vector m_filters; bool m_filtersHasBeenSet = false; Aws::String m_nextToken; bool m_nextTokenHasBeenSet = false; int m_maxResults; bool m_maxResultsHasBeenSet = false; }; } // namespace Model } // namespace SavingsPlans } // namespace Aws