/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ComputeOptimizer { namespace Model { /** *

Describes a recommendation option for an Lambda function.

See * Also:

AWS * API Reference

*/ class LambdaFunctionMemoryRecommendationOption { public: AWS_COMPUTEOPTIMIZER_API LambdaFunctionMemoryRecommendationOption(); AWS_COMPUTEOPTIMIZER_API LambdaFunctionMemoryRecommendationOption(Aws::Utils::Json::JsonView jsonValue); AWS_COMPUTEOPTIMIZER_API LambdaFunctionMemoryRecommendationOption& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_COMPUTEOPTIMIZER_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The rank of the function recommendation option.

The top recommendation * option is ranked as 1.

*/ inline int GetRank() const{ return m_rank; } /** *

The rank of the function recommendation option.

The top recommendation * option is ranked as 1.

*/ inline bool RankHasBeenSet() const { return m_rankHasBeenSet; } /** *

The rank of the function recommendation option.

The top recommendation * option is ranked as 1.

*/ inline void SetRank(int value) { m_rankHasBeenSet = true; m_rank = value; } /** *

The rank of the function recommendation option.

The top recommendation * option is ranked as 1.

*/ inline LambdaFunctionMemoryRecommendationOption& WithRank(int value) { SetRank(value); return *this;} /** *

The memory size, in MB, of the function recommendation option.

*/ inline int GetMemorySize() const{ return m_memorySize; } /** *

The memory size, in MB, of the function recommendation option.

*/ inline bool MemorySizeHasBeenSet() const { return m_memorySizeHasBeenSet; } /** *

The memory size, in MB, of the function recommendation option.

*/ inline void SetMemorySize(int value) { m_memorySizeHasBeenSet = true; m_memorySize = value; } /** *

The memory size, in MB, of the function recommendation option.

*/ inline LambdaFunctionMemoryRecommendationOption& WithMemorySize(int value) { SetMemorySize(value); return *this;} /** *

An array of objects that describe the projected utilization metrics of the * function recommendation option.

*/ inline const Aws::Vector& GetProjectedUtilizationMetrics() const{ return m_projectedUtilizationMetrics; } /** *

An array of objects that describe the projected utilization metrics of the * function recommendation option.

*/ inline bool ProjectedUtilizationMetricsHasBeenSet() const { return m_projectedUtilizationMetricsHasBeenSet; } /** *

An array of objects that describe the projected utilization metrics of the * function recommendation option.

*/ inline void SetProjectedUtilizationMetrics(const Aws::Vector& value) { m_projectedUtilizationMetricsHasBeenSet = true; m_projectedUtilizationMetrics = value; } /** *

An array of objects that describe the projected utilization metrics of the * function recommendation option.

*/ inline void SetProjectedUtilizationMetrics(Aws::Vector&& value) { m_projectedUtilizationMetricsHasBeenSet = true; m_projectedUtilizationMetrics = std::move(value); } /** *

An array of objects that describe the projected utilization metrics of the * function recommendation option.

*/ inline LambdaFunctionMemoryRecommendationOption& WithProjectedUtilizationMetrics(const Aws::Vector& value) { SetProjectedUtilizationMetrics(value); return *this;} /** *

An array of objects that describe the projected utilization metrics of the * function recommendation option.

*/ inline LambdaFunctionMemoryRecommendationOption& WithProjectedUtilizationMetrics(Aws::Vector&& value) { SetProjectedUtilizationMetrics(std::move(value)); return *this;} /** *

An array of objects that describe the projected utilization metrics of the * function recommendation option.

*/ inline LambdaFunctionMemoryRecommendationOption& AddProjectedUtilizationMetrics(const LambdaFunctionMemoryProjectedMetric& value) { m_projectedUtilizationMetricsHasBeenSet = true; m_projectedUtilizationMetrics.push_back(value); return *this; } /** *

An array of objects that describe the projected utilization metrics of the * function recommendation option.

*/ inline LambdaFunctionMemoryRecommendationOption& AddProjectedUtilizationMetrics(LambdaFunctionMemoryProjectedMetric&& value) { m_projectedUtilizationMetricsHasBeenSet = true; m_projectedUtilizationMetrics.push_back(std::move(value)); return *this; } /** *

An object that describes the savings opportunity for the Lambda function * recommendation option. Savings opportunity includes the estimated monthly * savings amount and percentage.

*/ inline const SavingsOpportunity& GetSavingsOpportunity() const{ return m_savingsOpportunity; } /** *

An object that describes the savings opportunity for the Lambda function * recommendation option. Savings opportunity includes the estimated monthly * savings amount and percentage.

*/ inline bool SavingsOpportunityHasBeenSet() const { return m_savingsOpportunityHasBeenSet; } /** *

An object that describes the savings opportunity for the Lambda function * recommendation option. Savings opportunity includes the estimated monthly * savings amount and percentage.

*/ inline void SetSavingsOpportunity(const SavingsOpportunity& value) { m_savingsOpportunityHasBeenSet = true; m_savingsOpportunity = value; } /** *

An object that describes the savings opportunity for the Lambda function * recommendation option. Savings opportunity includes the estimated monthly * savings amount and percentage.

*/ inline void SetSavingsOpportunity(SavingsOpportunity&& value) { m_savingsOpportunityHasBeenSet = true; m_savingsOpportunity = std::move(value); } /** *

An object that describes the savings opportunity for the Lambda function * recommendation option. Savings opportunity includes the estimated monthly * savings amount and percentage.

*/ inline LambdaFunctionMemoryRecommendationOption& WithSavingsOpportunity(const SavingsOpportunity& value) { SetSavingsOpportunity(value); return *this;} /** *

An object that describes the savings opportunity for the Lambda function * recommendation option. Savings opportunity includes the estimated monthly * savings amount and percentage.

*/ inline LambdaFunctionMemoryRecommendationOption& WithSavingsOpportunity(SavingsOpportunity&& value) { SetSavingsOpportunity(std::move(value)); return *this;} private: int m_rank; bool m_rankHasBeenSet = false; int m_memorySize; bool m_memorySizeHasBeenSet = false; Aws::Vector m_projectedUtilizationMetrics; bool m_projectedUtilizationMetricsHasBeenSet = false; SavingsOpportunity m_savingsOpportunity; bool m_savingsOpportunityHasBeenSet = false; }; } // namespace Model } // namespace ComputeOptimizer } // namespace Aws