/** * 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 ApplicationAutoScaling { namespace Model { /** *

This structure defines the CloudWatch metric to return, along with the * statistic, period, and unit.

For more information about the CloudWatch * terminology below, see Amazon * CloudWatch concepts in the Amazon CloudWatch User * Guide.

See Also:

AWS * API Reference

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

The CloudWatch metric to return, including the metric name, namespace, and * dimensions. To get the exact metric name, namespace, and dimensions, inspect the * Metric * object that is returned by a call to ListMetrics.

*/ inline const TargetTrackingMetric& GetMetric() const{ return m_metric; } /** *

The CloudWatch metric to return, including the metric name, namespace, and * dimensions. To get the exact metric name, namespace, and dimensions, inspect the * Metric * object that is returned by a call to ListMetrics.

*/ inline bool MetricHasBeenSet() const { return m_metricHasBeenSet; } /** *

The CloudWatch metric to return, including the metric name, namespace, and * dimensions. To get the exact metric name, namespace, and dimensions, inspect the * Metric * object that is returned by a call to ListMetrics.

*/ inline void SetMetric(const TargetTrackingMetric& value) { m_metricHasBeenSet = true; m_metric = value; } /** *

The CloudWatch metric to return, including the metric name, namespace, and * dimensions. To get the exact metric name, namespace, and dimensions, inspect the * Metric * object that is returned by a call to ListMetrics.

*/ inline void SetMetric(TargetTrackingMetric&& value) { m_metricHasBeenSet = true; m_metric = std::move(value); } /** *

The CloudWatch metric to return, including the metric name, namespace, and * dimensions. To get the exact metric name, namespace, and dimensions, inspect the * Metric * object that is returned by a call to ListMetrics.

*/ inline TargetTrackingMetricStat& WithMetric(const TargetTrackingMetric& value) { SetMetric(value); return *this;} /** *

The CloudWatch metric to return, including the metric name, namespace, and * dimensions. To get the exact metric name, namespace, and dimensions, inspect the * Metric * object that is returned by a call to ListMetrics.

*/ inline TargetTrackingMetricStat& WithMetric(TargetTrackingMetric&& value) { SetMetric(std::move(value)); return *this;} /** *

The statistic to return. It can include any CloudWatch statistic or extended * statistic. For a list of valid values, see the table in Statistics * in the Amazon CloudWatch User Guide.

The most commonly used metric * for scaling is Average.

*/ inline const Aws::String& GetStat() const{ return m_stat; } /** *

The statistic to return. It can include any CloudWatch statistic or extended * statistic. For a list of valid values, see the table in Statistics * in the Amazon CloudWatch User Guide.

The most commonly used metric * for scaling is Average.

*/ inline bool StatHasBeenSet() const { return m_statHasBeenSet; } /** *

The statistic to return. It can include any CloudWatch statistic or extended * statistic. For a list of valid values, see the table in Statistics * in the Amazon CloudWatch User Guide.

The most commonly used metric * for scaling is Average.

*/ inline void SetStat(const Aws::String& value) { m_statHasBeenSet = true; m_stat = value; } /** *

The statistic to return. It can include any CloudWatch statistic or extended * statistic. For a list of valid values, see the table in Statistics * in the Amazon CloudWatch User Guide.

The most commonly used metric * for scaling is Average.

*/ inline void SetStat(Aws::String&& value) { m_statHasBeenSet = true; m_stat = std::move(value); } /** *

The statistic to return. It can include any CloudWatch statistic or extended * statistic. For a list of valid values, see the table in Statistics * in the Amazon CloudWatch User Guide.

The most commonly used metric * for scaling is Average.

*/ inline void SetStat(const char* value) { m_statHasBeenSet = true; m_stat.assign(value); } /** *

The statistic to return. It can include any CloudWatch statistic or extended * statistic. For a list of valid values, see the table in Statistics * in the Amazon CloudWatch User Guide.

The most commonly used metric * for scaling is Average.

*/ inline TargetTrackingMetricStat& WithStat(const Aws::String& value) { SetStat(value); return *this;} /** *

The statistic to return. It can include any CloudWatch statistic or extended * statistic. For a list of valid values, see the table in Statistics * in the Amazon CloudWatch User Guide.

The most commonly used metric * for scaling is Average.

*/ inline TargetTrackingMetricStat& WithStat(Aws::String&& value) { SetStat(std::move(value)); return *this;} /** *

The statistic to return. It can include any CloudWatch statistic or extended * statistic. For a list of valid values, see the table in Statistics * in the Amazon CloudWatch User Guide.

The most commonly used metric * for scaling is Average.

*/ inline TargetTrackingMetricStat& WithStat(const char* value) { SetStat(value); return *this;} /** *

The unit to use for the returned data points. For a complete list of the * units that CloudWatch supports, see the MetricDatum * data type in the Amazon CloudWatch API Reference.

*/ inline const Aws::String& GetUnit() const{ return m_unit; } /** *

The unit to use for the returned data points. For a complete list of the * units that CloudWatch supports, see the MetricDatum * data type in the Amazon CloudWatch API Reference.

*/ inline bool UnitHasBeenSet() const { return m_unitHasBeenSet; } /** *

The unit to use for the returned data points. For a complete list of the * units that CloudWatch supports, see the MetricDatum * data type in the Amazon CloudWatch API Reference.

*/ inline void SetUnit(const Aws::String& value) { m_unitHasBeenSet = true; m_unit = value; } /** *

The unit to use for the returned data points. For a complete list of the * units that CloudWatch supports, see the MetricDatum * data type in the Amazon CloudWatch API Reference.

*/ inline void SetUnit(Aws::String&& value) { m_unitHasBeenSet = true; m_unit = std::move(value); } /** *

The unit to use for the returned data points. For a complete list of the * units that CloudWatch supports, see the MetricDatum * data type in the Amazon CloudWatch API Reference.

*/ inline void SetUnit(const char* value) { m_unitHasBeenSet = true; m_unit.assign(value); } /** *

The unit to use for the returned data points. For a complete list of the * units that CloudWatch supports, see the MetricDatum * data type in the Amazon CloudWatch API Reference.

*/ inline TargetTrackingMetricStat& WithUnit(const Aws::String& value) { SetUnit(value); return *this;} /** *

The unit to use for the returned data points. For a complete list of the * units that CloudWatch supports, see the MetricDatum * data type in the Amazon CloudWatch API Reference.

*/ inline TargetTrackingMetricStat& WithUnit(Aws::String&& value) { SetUnit(std::move(value)); return *this;} /** *

The unit to use for the returned data points. For a complete list of the * units that CloudWatch supports, see the MetricDatum * data type in the Amazon CloudWatch API Reference.

*/ inline TargetTrackingMetricStat& WithUnit(const char* value) { SetUnit(value); return *this;} private: TargetTrackingMetric m_metric; bool m_metricHasBeenSet = false; Aws::String m_stat; bool m_statHasBeenSet = false; Aws::String m_unit; bool m_unitHasBeenSet = false; }; } // namespace Model } // namespace ApplicationAutoScaling } // namespace Aws