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

Describes the projected metrics of an Amazon ECS service recommendation * option.

To determine the performance difference between your current * Amazon ECS service and the recommended option, compare the metric data of your * service against its projected metric data.

See Also:

AWS * API Reference

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

The recommended CPU size for the Amazon ECS service.

*/ inline int GetRecommendedCpuUnits() const{ return m_recommendedCpuUnits; } /** *

The recommended CPU size for the Amazon ECS service.

*/ inline bool RecommendedCpuUnitsHasBeenSet() const { return m_recommendedCpuUnitsHasBeenSet; } /** *

The recommended CPU size for the Amazon ECS service.

*/ inline void SetRecommendedCpuUnits(int value) { m_recommendedCpuUnitsHasBeenSet = true; m_recommendedCpuUnits = value; } /** *

The recommended CPU size for the Amazon ECS service.

*/ inline ECSServiceRecommendedOptionProjectedMetric& WithRecommendedCpuUnits(int value) { SetRecommendedCpuUnits(value); return *this;} /** *

The recommended memory size for the Amazon ECS service.

*/ inline int GetRecommendedMemorySize() const{ return m_recommendedMemorySize; } /** *

The recommended memory size for the Amazon ECS service.

*/ inline bool RecommendedMemorySizeHasBeenSet() const { return m_recommendedMemorySizeHasBeenSet; } /** *

The recommended memory size for the Amazon ECS service.

*/ inline void SetRecommendedMemorySize(int value) { m_recommendedMemorySizeHasBeenSet = true; m_recommendedMemorySize = value; } /** *

The recommended memory size for the Amazon ECS service.

*/ inline ECSServiceRecommendedOptionProjectedMetric& WithRecommendedMemorySize(int value) { SetRecommendedMemorySize(value); return *this;} /** *

An array of objects that describe the projected metric.

*/ inline const Aws::Vector& GetProjectedMetrics() const{ return m_projectedMetrics; } /** *

An array of objects that describe the projected metric.

*/ inline bool ProjectedMetricsHasBeenSet() const { return m_projectedMetricsHasBeenSet; } /** *

An array of objects that describe the projected metric.

*/ inline void SetProjectedMetrics(const Aws::Vector& value) { m_projectedMetricsHasBeenSet = true; m_projectedMetrics = value; } /** *

An array of objects that describe the projected metric.

*/ inline void SetProjectedMetrics(Aws::Vector&& value) { m_projectedMetricsHasBeenSet = true; m_projectedMetrics = std::move(value); } /** *

An array of objects that describe the projected metric.

*/ inline ECSServiceRecommendedOptionProjectedMetric& WithProjectedMetrics(const Aws::Vector& value) { SetProjectedMetrics(value); return *this;} /** *

An array of objects that describe the projected metric.

*/ inline ECSServiceRecommendedOptionProjectedMetric& WithProjectedMetrics(Aws::Vector&& value) { SetProjectedMetrics(std::move(value)); return *this;} /** *

An array of objects that describe the projected metric.

*/ inline ECSServiceRecommendedOptionProjectedMetric& AddProjectedMetrics(const ECSServiceProjectedMetric& value) { m_projectedMetricsHasBeenSet = true; m_projectedMetrics.push_back(value); return *this; } /** *

An array of objects that describe the projected metric.

*/ inline ECSServiceRecommendedOptionProjectedMetric& AddProjectedMetrics(ECSServiceProjectedMetric&& value) { m_projectedMetricsHasBeenSet = true; m_projectedMetrics.push_back(std::move(value)); return *this; } private: int m_recommendedCpuUnits; bool m_recommendedCpuUnitsHasBeenSet = false; int m_recommendedMemorySize; bool m_recommendedMemorySizeHasBeenSet = false; Aws::Vector m_projectedMetrics; bool m_projectedMetricsHasBeenSet = false; }; } // namespace Model } // namespace ComputeOptimizer } // namespace Aws