/** * 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 utilization 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 * utilization metric data of your service against its projected utilization metric * data.

See Also:

AWS * API Reference

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

The name of the projected utilization metric.

The following * utilization metrics are available:

  • Cpu — The * percentage of allocated compute units that are currently in use on the service * tasks.

  • Memory — The percentage of memory that's * currently in use on the service tasks.

*/ inline const ECSServiceMetricName& GetName() const{ return m_name; } /** *

The name of the projected utilization metric.

The following * utilization metrics are available:

  • Cpu — The * percentage of allocated compute units that are currently in use on the service * tasks.

  • Memory — The percentage of memory that's * currently in use on the service tasks.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the projected utilization metric.

The following * utilization metrics are available:

  • Cpu — The * percentage of allocated compute units that are currently in use on the service * tasks.

  • Memory — The percentage of memory that's * currently in use on the service tasks.

*/ inline void SetName(const ECSServiceMetricName& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the projected utilization metric.

The following * utilization metrics are available:

  • Cpu — The * percentage of allocated compute units that are currently in use on the service * tasks.

  • Memory — The percentage of memory that's * currently in use on the service tasks.

*/ inline void SetName(ECSServiceMetricName&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the projected utilization metric.

The following * utilization metrics are available:

  • Cpu — The * percentage of allocated compute units that are currently in use on the service * tasks.

  • Memory — The percentage of memory that's * currently in use on the service tasks.

*/ inline ECSServiceProjectedUtilizationMetric& WithName(const ECSServiceMetricName& value) { SetName(value); return *this;} /** *

The name of the projected utilization metric.

The following * utilization metrics are available:

  • Cpu — The * percentage of allocated compute units that are currently in use on the service * tasks.

  • Memory — The percentage of memory that's * currently in use on the service tasks.

*/ inline ECSServiceProjectedUtilizationMetric& WithName(ECSServiceMetricName&& value) { SetName(std::move(value)); return *this;} /** *

The statistic of the projected utilization metric.

The Compute * Optimizer API, Command Line Interface (CLI), and SDKs return utilization metrics * using only the Maximum statistic, which is the highest value * observed during the specified period.

The Compute Optimizer console * displays graphs for some utilization metrics using the Average * statistic, which is the value of Sum / SampleCount * during the specified period. For more information, see Viewing * resource recommendations in the Compute Optimizer User Guide. You can * also get averaged utilization metric data for your resources using Amazon * CloudWatch. For more information, see the Amazon * CloudWatch User Guide.

*/ inline const ECSServiceMetricStatistic& GetStatistic() const{ return m_statistic; } /** *

The statistic of the projected utilization metric.

The Compute * Optimizer API, Command Line Interface (CLI), and SDKs return utilization metrics * using only the Maximum statistic, which is the highest value * observed during the specified period.

The Compute Optimizer console * displays graphs for some utilization metrics using the Average * statistic, which is the value of Sum / SampleCount * during the specified period. For more information, see Viewing * resource recommendations in the Compute Optimizer User Guide. You can * also get averaged utilization metric data for your resources using Amazon * CloudWatch. For more information, see the Amazon * CloudWatch User Guide.

*/ inline bool StatisticHasBeenSet() const { return m_statisticHasBeenSet; } /** *

The statistic of the projected utilization metric.

The Compute * Optimizer API, Command Line Interface (CLI), and SDKs return utilization metrics * using only the Maximum statistic, which is the highest value * observed during the specified period.

The Compute Optimizer console * displays graphs for some utilization metrics using the Average * statistic, which is the value of Sum / SampleCount * during the specified period. For more information, see Viewing * resource recommendations in the Compute Optimizer User Guide. You can * also get averaged utilization metric data for your resources using Amazon * CloudWatch. For more information, see the Amazon * CloudWatch User Guide.

*/ inline void SetStatistic(const ECSServiceMetricStatistic& value) { m_statisticHasBeenSet = true; m_statistic = value; } /** *

The statistic of the projected utilization metric.

The Compute * Optimizer API, Command Line Interface (CLI), and SDKs return utilization metrics * using only the Maximum statistic, which is the highest value * observed during the specified period.

The Compute Optimizer console * displays graphs for some utilization metrics using the Average * statistic, which is the value of Sum / SampleCount * during the specified period. For more information, see Viewing * resource recommendations in the Compute Optimizer User Guide. You can * also get averaged utilization metric data for your resources using Amazon * CloudWatch. For more information, see the Amazon * CloudWatch User Guide.

*/ inline void SetStatistic(ECSServiceMetricStatistic&& value) { m_statisticHasBeenSet = true; m_statistic = std::move(value); } /** *

The statistic of the projected utilization metric.

The Compute * Optimizer API, Command Line Interface (CLI), and SDKs return utilization metrics * using only the Maximum statistic, which is the highest value * observed during the specified period.

The Compute Optimizer console * displays graphs for some utilization metrics using the Average * statistic, which is the value of Sum / SampleCount * during the specified period. For more information, see Viewing * resource recommendations in the Compute Optimizer User Guide. You can * also get averaged utilization metric data for your resources using Amazon * CloudWatch. For more information, see the Amazon * CloudWatch User Guide.

*/ inline ECSServiceProjectedUtilizationMetric& WithStatistic(const ECSServiceMetricStatistic& value) { SetStatistic(value); return *this;} /** *

The statistic of the projected utilization metric.

The Compute * Optimizer API, Command Line Interface (CLI), and SDKs return utilization metrics * using only the Maximum statistic, which is the highest value * observed during the specified period.

The Compute Optimizer console * displays graphs for some utilization metrics using the Average * statistic, which is the value of Sum / SampleCount * during the specified period. For more information, see Viewing * resource recommendations in the Compute Optimizer User Guide. You can * also get averaged utilization metric data for your resources using Amazon * CloudWatch. For more information, see the Amazon * CloudWatch User Guide.

*/ inline ECSServiceProjectedUtilizationMetric& WithStatistic(ECSServiceMetricStatistic&& value) { SetStatistic(std::move(value)); return *this;} /** *

The lower bound values for the projected utilization metrics.

*/ inline double GetLowerBoundValue() const{ return m_lowerBoundValue; } /** *

The lower bound values for the projected utilization metrics.

*/ inline bool LowerBoundValueHasBeenSet() const { return m_lowerBoundValueHasBeenSet; } /** *

The lower bound values for the projected utilization metrics.

*/ inline void SetLowerBoundValue(double value) { m_lowerBoundValueHasBeenSet = true; m_lowerBoundValue = value; } /** *

The lower bound values for the projected utilization metrics.

*/ inline ECSServiceProjectedUtilizationMetric& WithLowerBoundValue(double value) { SetLowerBoundValue(value); return *this;} /** *

The upper bound values for the projected utilization metrics.

*/ inline double GetUpperBoundValue() const{ return m_upperBoundValue; } /** *

The upper bound values for the projected utilization metrics.

*/ inline bool UpperBoundValueHasBeenSet() const { return m_upperBoundValueHasBeenSet; } /** *

The upper bound values for the projected utilization metrics.

*/ inline void SetUpperBoundValue(double value) { m_upperBoundValueHasBeenSet = true; m_upperBoundValue = value; } /** *

The upper bound values for the projected utilization metrics.

*/ inline ECSServiceProjectedUtilizationMetric& WithUpperBoundValue(double value) { SetUpperBoundValue(value); return *this;} private: ECSServiceMetricName m_name; bool m_nameHasBeenSet = false; ECSServiceMetricStatistic m_statistic; bool m_statisticHasBeenSet = false; double m_lowerBoundValue; bool m_lowerBoundValueHasBeenSet = false; double m_upperBoundValue; bool m_upperBoundValueHasBeenSet = false; }; } // namespace Model } // namespace ComputeOptimizer } // namespace Aws