/** * 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 Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace AutoScaling { namespace Model { /** *

This structure defines the CloudWatch metric to return, along with the * statistic 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_AUTOSCALING_API TargetTrackingMetricStat(); AWS_AUTOSCALING_API TargetTrackingMetricStat(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_AUTOSCALING_API TargetTrackingMetricStat& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_AUTOSCALING_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_AUTOSCALING_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The metric to use.

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

The metric to use.

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

The metric to use.

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

The metric to use.

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

The metric to use.

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

The metric to use.

*/ inline TargetTrackingMetricStat& WithMetric(Metric&& 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: Metric 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 AutoScaling } // namespace Aws