/** * 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 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 ECSServiceProjectedMetric { public: AWS_COMPUTEOPTIMIZER_API ECSServiceProjectedMetric(); AWS_COMPUTEOPTIMIZER_API ECSServiceProjectedMetric(Aws::Utils::Json::JsonView jsonValue); AWS_COMPUTEOPTIMIZER_API ECSServiceProjectedMetric& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_COMPUTEOPTIMIZER_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The name of the projected metric.

The following 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 metric.

The following 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 metric.

The following 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 metric.

The following 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 metric.

The following 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 ECSServiceProjectedMetric& WithName(const ECSServiceMetricName& value) { SetName(value); return *this;} /** *

The name of the projected metric.

The following 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 ECSServiceProjectedMetric& WithName(ECSServiceMetricName&& value) { SetName(std::move(value)); return *this;} /** *

The timestamps of the projected metric.

*/ inline const Aws::Vector& GetTimestamps() const{ return m_timestamps; } /** *

The timestamps of the projected metric.

*/ inline bool TimestampsHasBeenSet() const { return m_timestampsHasBeenSet; } /** *

The timestamps of the projected metric.

*/ inline void SetTimestamps(const Aws::Vector& value) { m_timestampsHasBeenSet = true; m_timestamps = value; } /** *

The timestamps of the projected metric.

*/ inline void SetTimestamps(Aws::Vector&& value) { m_timestampsHasBeenSet = true; m_timestamps = std::move(value); } /** *

The timestamps of the projected metric.

*/ inline ECSServiceProjectedMetric& WithTimestamps(const Aws::Vector& value) { SetTimestamps(value); return *this;} /** *

The timestamps of the projected metric.

*/ inline ECSServiceProjectedMetric& WithTimestamps(Aws::Vector&& value) { SetTimestamps(std::move(value)); return *this;} /** *

The timestamps of the projected metric.

*/ inline ECSServiceProjectedMetric& AddTimestamps(const Aws::Utils::DateTime& value) { m_timestampsHasBeenSet = true; m_timestamps.push_back(value); return *this; } /** *

The timestamps of the projected metric.

*/ inline ECSServiceProjectedMetric& AddTimestamps(Aws::Utils::DateTime&& value) { m_timestampsHasBeenSet = true; m_timestamps.push_back(std::move(value)); return *this; } /** *

The upper bound values for the projected metric.

*/ inline const Aws::Vector& GetUpperBoundValues() const{ return m_upperBoundValues; } /** *

The upper bound values for the projected metric.

*/ inline bool UpperBoundValuesHasBeenSet() const { return m_upperBoundValuesHasBeenSet; } /** *

The upper bound values for the projected metric.

*/ inline void SetUpperBoundValues(const Aws::Vector& value) { m_upperBoundValuesHasBeenSet = true; m_upperBoundValues = value; } /** *

The upper bound values for the projected metric.

*/ inline void SetUpperBoundValues(Aws::Vector&& value) { m_upperBoundValuesHasBeenSet = true; m_upperBoundValues = std::move(value); } /** *

The upper bound values for the projected metric.

*/ inline ECSServiceProjectedMetric& WithUpperBoundValues(const Aws::Vector& value) { SetUpperBoundValues(value); return *this;} /** *

The upper bound values for the projected metric.

*/ inline ECSServiceProjectedMetric& WithUpperBoundValues(Aws::Vector&& value) { SetUpperBoundValues(std::move(value)); return *this;} /** *

The upper bound values for the projected metric.

*/ inline ECSServiceProjectedMetric& AddUpperBoundValues(double value) { m_upperBoundValuesHasBeenSet = true; m_upperBoundValues.push_back(value); return *this; } /** *

The lower bound values for the projected metric.

*/ inline const Aws::Vector& GetLowerBoundValues() const{ return m_lowerBoundValues; } /** *

The lower bound values for the projected metric.

*/ inline bool LowerBoundValuesHasBeenSet() const { return m_lowerBoundValuesHasBeenSet; } /** *

The lower bound values for the projected metric.

*/ inline void SetLowerBoundValues(const Aws::Vector& value) { m_lowerBoundValuesHasBeenSet = true; m_lowerBoundValues = value; } /** *

The lower bound values for the projected metric.

*/ inline void SetLowerBoundValues(Aws::Vector&& value) { m_lowerBoundValuesHasBeenSet = true; m_lowerBoundValues = std::move(value); } /** *

The lower bound values for the projected metric.

*/ inline ECSServiceProjectedMetric& WithLowerBoundValues(const Aws::Vector& value) { SetLowerBoundValues(value); return *this;} /** *

The lower bound values for the projected metric.

*/ inline ECSServiceProjectedMetric& WithLowerBoundValues(Aws::Vector&& value) { SetLowerBoundValues(std::move(value)); return *this;} /** *

The lower bound values for the projected metric.

*/ inline ECSServiceProjectedMetric& AddLowerBoundValues(double value) { m_lowerBoundValuesHasBeenSet = true; m_lowerBoundValues.push_back(value); return *this; } private: ECSServiceMetricName m_name; bool m_nameHasBeenSet = false; Aws::Vector m_timestamps; bool m_timestampsHasBeenSet = false; Aws::Vector m_upperBoundValues; bool m_upperBoundValuesHasBeenSet = false; Aws::Vector m_lowerBoundValues; bool m_lowerBoundValuesHasBeenSet = false; }; } // namespace Model } // namespace ComputeOptimizer } // namespace Aws