/** * 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 Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ComputeOptimizer { namespace Model { /** *

Describes the recommendation options for an Amazon ECS service. *

See Also:

AWS * API Reference

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

The memory size of the Amazon ECS service recommendation option.

*/ inline int GetMemory() const{ return m_memory; } /** *

The memory size of the Amazon ECS service recommendation option.

*/ inline bool MemoryHasBeenSet() const { return m_memoryHasBeenSet; } /** *

The memory size of the Amazon ECS service recommendation option.

*/ inline void SetMemory(int value) { m_memoryHasBeenSet = true; m_memory = value; } /** *

The memory size of the Amazon ECS service recommendation option.

*/ inline ECSServiceRecommendationOption& WithMemory(int value) { SetMemory(value); return *this;} /** *

The CPU size of the Amazon ECS service recommendation option.

*/ inline int GetCpu() const{ return m_cpu; } /** *

The CPU size of the Amazon ECS service recommendation option.

*/ inline bool CpuHasBeenSet() const { return m_cpuHasBeenSet; } /** *

The CPU size of the Amazon ECS service recommendation option.

*/ inline void SetCpu(int value) { m_cpuHasBeenSet = true; m_cpu = value; } /** *

The CPU size of the Amazon ECS service recommendation option.

*/ inline ECSServiceRecommendationOption& WithCpu(int value) { SetCpu(value); return *this;} inline const SavingsOpportunity& GetSavingsOpportunity() const{ return m_savingsOpportunity; } inline bool SavingsOpportunityHasBeenSet() const { return m_savingsOpportunityHasBeenSet; } inline void SetSavingsOpportunity(const SavingsOpportunity& value) { m_savingsOpportunityHasBeenSet = true; m_savingsOpportunity = value; } inline void SetSavingsOpportunity(SavingsOpportunity&& value) { m_savingsOpportunityHasBeenSet = true; m_savingsOpportunity = std::move(value); } inline ECSServiceRecommendationOption& WithSavingsOpportunity(const SavingsOpportunity& value) { SetSavingsOpportunity(value); return *this;} inline ECSServiceRecommendationOption& WithSavingsOpportunity(SavingsOpportunity&& value) { SetSavingsOpportunity(std::move(value)); return *this;} /** *

An array of objects that describe the projected utilization metrics of the * Amazon ECS service recommendation option.

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

An array of objects that describe the projected utilization metrics of the * Amazon ECS service recommendation option.

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

An array of objects that describe the projected utilization metrics of the * Amazon ECS service 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 * Amazon ECS service 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 * Amazon ECS service recommendation option.

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

An array of objects that describe the projected utilization metrics of the * Amazon ECS service recommendation option.

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

An array of objects that describe the projected utilization metrics of the * Amazon ECS service recommendation option.

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

An array of objects that describe the projected utilization metrics of the * Amazon ECS service recommendation option.

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

The CPU and memory size recommendations for the containers within the task * of your Amazon ECS service.

*/ inline const Aws::Vector& GetContainerRecommendations() const{ return m_containerRecommendations; } /** *

The CPU and memory size recommendations for the containers within the task * of your Amazon ECS service.

*/ inline bool ContainerRecommendationsHasBeenSet() const { return m_containerRecommendationsHasBeenSet; } /** *

The CPU and memory size recommendations for the containers within the task * of your Amazon ECS service.

*/ inline void SetContainerRecommendations(const Aws::Vector& value) { m_containerRecommendationsHasBeenSet = true; m_containerRecommendations = value; } /** *

The CPU and memory size recommendations for the containers within the task * of your Amazon ECS service.

*/ inline void SetContainerRecommendations(Aws::Vector&& value) { m_containerRecommendationsHasBeenSet = true; m_containerRecommendations = std::move(value); } /** *

The CPU and memory size recommendations for the containers within the task * of your Amazon ECS service.

*/ inline ECSServiceRecommendationOption& WithContainerRecommendations(const Aws::Vector& value) { SetContainerRecommendations(value); return *this;} /** *

The CPU and memory size recommendations for the containers within the task * of your Amazon ECS service.

*/ inline ECSServiceRecommendationOption& WithContainerRecommendations(Aws::Vector&& value) { SetContainerRecommendations(std::move(value)); return *this;} /** *

The CPU and memory size recommendations for the containers within the task * of your Amazon ECS service.

*/ inline ECSServiceRecommendationOption& AddContainerRecommendations(const ContainerRecommendation& value) { m_containerRecommendationsHasBeenSet = true; m_containerRecommendations.push_back(value); return *this; } /** *

The CPU and memory size recommendations for the containers within the task * of your Amazon ECS service.

*/ inline ECSServiceRecommendationOption& AddContainerRecommendations(ContainerRecommendation&& value) { m_containerRecommendationsHasBeenSet = true; m_containerRecommendations.push_back(std::move(value)); return *this; } private: int m_memory; bool m_memoryHasBeenSet = false; int m_cpu; bool m_cpuHasBeenSet = false; SavingsOpportunity m_savingsOpportunity; bool m_savingsOpportunityHasBeenSet = false; Aws::Vector m_projectedUtilizationMetrics; bool m_projectedUtilizationMetricsHasBeenSet = false; Aws::Vector m_containerRecommendations; bool m_containerRecommendationsHasBeenSet = false; }; } // namespace Model } // namespace ComputeOptimizer } // namespace Aws