/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace CostExplorer { namespace Model { /** */ class GetRightsizingRecommendationRequest : public CostExplorerRequest { public: AWS_COSTEXPLORER_API GetRightsizingRecommendationRequest(); // 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 "GetRightsizingRecommendation"; } AWS_COSTEXPLORER_API Aws::String SerializePayload() const override; AWS_COSTEXPLORER_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; inline const Expression& GetFilter() const{ return m_filter; } inline bool FilterHasBeenSet() const { return m_filterHasBeenSet; } inline void SetFilter(const Expression& value) { m_filterHasBeenSet = true; m_filter = value; } inline void SetFilter(Expression&& value) { m_filterHasBeenSet = true; m_filter = std::move(value); } inline GetRightsizingRecommendationRequest& WithFilter(const Expression& value) { SetFilter(value); return *this;} inline GetRightsizingRecommendationRequest& WithFilter(Expression&& value) { SetFilter(std::move(value)); return *this;} /** *

You can use Configuration to customize recommendations across two attributes. * You can choose to view recommendations for instances within the same instance * families or across different instance families. You can also choose to view your * estimated savings that are associated with recommendations with consideration of * existing Savings Plans or RI benefits, or neither.

*/ inline const RightsizingRecommendationConfiguration& GetConfiguration() const{ return m_configuration; } /** *

You can use Configuration to customize recommendations across two attributes. * You can choose to view recommendations for instances within the same instance * families or across different instance families. You can also choose to view your * estimated savings that are associated with recommendations with consideration of * existing Savings Plans or RI benefits, or neither.

*/ inline bool ConfigurationHasBeenSet() const { return m_configurationHasBeenSet; } /** *

You can use Configuration to customize recommendations across two attributes. * You can choose to view recommendations for instances within the same instance * families or across different instance families. You can also choose to view your * estimated savings that are associated with recommendations with consideration of * existing Savings Plans or RI benefits, or neither.

*/ inline void SetConfiguration(const RightsizingRecommendationConfiguration& value) { m_configurationHasBeenSet = true; m_configuration = value; } /** *

You can use Configuration to customize recommendations across two attributes. * You can choose to view recommendations for instances within the same instance * families or across different instance families. You can also choose to view your * estimated savings that are associated with recommendations with consideration of * existing Savings Plans or RI benefits, or neither.

*/ inline void SetConfiguration(RightsizingRecommendationConfiguration&& value) { m_configurationHasBeenSet = true; m_configuration = std::move(value); } /** *

You can use Configuration to customize recommendations across two attributes. * You can choose to view recommendations for instances within the same instance * families or across different instance families. You can also choose to view your * estimated savings that are associated with recommendations with consideration of * existing Savings Plans or RI benefits, or neither.

*/ inline GetRightsizingRecommendationRequest& WithConfiguration(const RightsizingRecommendationConfiguration& value) { SetConfiguration(value); return *this;} /** *

You can use Configuration to customize recommendations across two attributes. * You can choose to view recommendations for instances within the same instance * families or across different instance families. You can also choose to view your * estimated savings that are associated with recommendations with consideration of * existing Savings Plans or RI benefits, or neither.

*/ inline GetRightsizingRecommendationRequest& WithConfiguration(RightsizingRecommendationConfiguration&& value) { SetConfiguration(std::move(value)); return *this;} /** *

The specific service that you want recommendations for. The only valid value * for GetRightsizingRecommendation is "AmazonEC2".

*/ inline const Aws::String& GetService() const{ return m_service; } /** *

The specific service that you want recommendations for. The only valid value * for GetRightsizingRecommendation is "AmazonEC2".

*/ inline bool ServiceHasBeenSet() const { return m_serviceHasBeenSet; } /** *

The specific service that you want recommendations for. The only valid value * for GetRightsizingRecommendation is "AmazonEC2".

*/ inline void SetService(const Aws::String& value) { m_serviceHasBeenSet = true; m_service = value; } /** *

The specific service that you want recommendations for. The only valid value * for GetRightsizingRecommendation is "AmazonEC2".

*/ inline void SetService(Aws::String&& value) { m_serviceHasBeenSet = true; m_service = std::move(value); } /** *

The specific service that you want recommendations for. The only valid value * for GetRightsizingRecommendation is "AmazonEC2".

*/ inline void SetService(const char* value) { m_serviceHasBeenSet = true; m_service.assign(value); } /** *

The specific service that you want recommendations for. The only valid value * for GetRightsizingRecommendation is "AmazonEC2".

*/ inline GetRightsizingRecommendationRequest& WithService(const Aws::String& value) { SetService(value); return *this;} /** *

The specific service that you want recommendations for. The only valid value * for GetRightsizingRecommendation is "AmazonEC2".

*/ inline GetRightsizingRecommendationRequest& WithService(Aws::String&& value) { SetService(std::move(value)); return *this;} /** *

The specific service that you want recommendations for. The only valid value * for GetRightsizingRecommendation is "AmazonEC2".

*/ inline GetRightsizingRecommendationRequest& WithService(const char* value) { SetService(value); return *this;} /** *

The number of recommendations that you want returned in a single response * object.

*/ inline int GetPageSize() const{ return m_pageSize; } /** *

The number of recommendations that you want returned in a single response * object.

*/ inline bool PageSizeHasBeenSet() const { return m_pageSizeHasBeenSet; } /** *

The number of recommendations that you want returned in a single response * object.

*/ inline void SetPageSize(int value) { m_pageSizeHasBeenSet = true; m_pageSize = value; } /** *

The number of recommendations that you want returned in a single response * object.

*/ inline GetRightsizingRecommendationRequest& WithPageSize(int value) { SetPageSize(value); return *this;} /** *

The pagination token that indicates the next set of results that you want to * retrieve.

*/ inline const Aws::String& GetNextPageToken() const{ return m_nextPageToken; } /** *

The pagination token that indicates the next set of results that you want to * retrieve.

*/ inline bool NextPageTokenHasBeenSet() const { return m_nextPageTokenHasBeenSet; } /** *

The pagination token that indicates the next set of results that you want to * retrieve.

*/ inline void SetNextPageToken(const Aws::String& value) { m_nextPageTokenHasBeenSet = true; m_nextPageToken = value; } /** *

The pagination token that indicates the next set of results that you want to * retrieve.

*/ inline void SetNextPageToken(Aws::String&& value) { m_nextPageTokenHasBeenSet = true; m_nextPageToken = std::move(value); } /** *

The pagination token that indicates the next set of results that you want to * retrieve.

*/ inline void SetNextPageToken(const char* value) { m_nextPageTokenHasBeenSet = true; m_nextPageToken.assign(value); } /** *

The pagination token that indicates the next set of results that you want to * retrieve.

*/ inline GetRightsizingRecommendationRequest& WithNextPageToken(const Aws::String& value) { SetNextPageToken(value); return *this;} /** *

The pagination token that indicates the next set of results that you want to * retrieve.

*/ inline GetRightsizingRecommendationRequest& WithNextPageToken(Aws::String&& value) { SetNextPageToken(std::move(value)); return *this;} /** *

The pagination token that indicates the next set of results that you want to * retrieve.

*/ inline GetRightsizingRecommendationRequest& WithNextPageToken(const char* value) { SetNextPageToken(value); return *this;} private: Expression m_filter; bool m_filterHasBeenSet = false; RightsizingRecommendationConfiguration m_configuration; bool m_configurationHasBeenSet = false; Aws::String m_service; bool m_serviceHasBeenSet = false; int m_pageSize; bool m_pageSizeHasBeenSet = false; Aws::String m_nextPageToken; bool m_nextPageTokenHasBeenSet = false; }; } // namespace Model } // namespace CostExplorer } // namespace Aws