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

Describes an enabled Auto Scaling group metric.

See Also:

AWS * API Reference

*/ class EnabledMetric { public: AWS_AUTOSCALING_API EnabledMetric(); AWS_AUTOSCALING_API EnabledMetric(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_AUTOSCALING_API EnabledMetric& 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; /** *

One of the following metrics:

  • GroupMinSize *

  • GroupMaxSize

  • * GroupDesiredCapacity

  • * GroupInServiceInstances

  • * GroupPendingInstances

  • * GroupStandbyInstances

  • * GroupTerminatingInstances

  • * GroupTotalInstances

  • * GroupInServiceCapacity

  • * GroupPendingCapacity

  • * GroupStandbyCapacity

  • * GroupTerminatingCapacity

  • * GroupTotalCapacity

  • * WarmPoolDesiredCapacity

  • * WarmPoolWarmedCapacity

  • * WarmPoolPendingCapacity

  • * WarmPoolTerminatingCapacity

  • * WarmPoolTotalCapacity

  • * GroupAndWarmPoolDesiredCapacity

  • * GroupAndWarmPoolTotalCapacity

For more * information, see Auto * Scaling group metrics in the Amazon EC2 Auto Scaling User Guide.

*/ inline const Aws::String& GetMetric() const{ return m_metric; } /** *

One of the following metrics:

  • GroupMinSize *

  • GroupMaxSize

  • * GroupDesiredCapacity

  • * GroupInServiceInstances

  • * GroupPendingInstances

  • * GroupStandbyInstances

  • * GroupTerminatingInstances

  • * GroupTotalInstances

  • * GroupInServiceCapacity

  • * GroupPendingCapacity

  • * GroupStandbyCapacity

  • * GroupTerminatingCapacity

  • * GroupTotalCapacity

  • * WarmPoolDesiredCapacity

  • * WarmPoolWarmedCapacity

  • * WarmPoolPendingCapacity

  • * WarmPoolTerminatingCapacity

  • * WarmPoolTotalCapacity

  • * GroupAndWarmPoolDesiredCapacity

  • * GroupAndWarmPoolTotalCapacity

For more * information, see Auto * Scaling group metrics in the Amazon EC2 Auto Scaling User Guide.

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

One of the following metrics:

  • GroupMinSize *

  • GroupMaxSize

  • * GroupDesiredCapacity

  • * GroupInServiceInstances

  • * GroupPendingInstances

  • * GroupStandbyInstances

  • * GroupTerminatingInstances

  • * GroupTotalInstances

  • * GroupInServiceCapacity

  • * GroupPendingCapacity

  • * GroupStandbyCapacity

  • * GroupTerminatingCapacity

  • * GroupTotalCapacity

  • * WarmPoolDesiredCapacity

  • * WarmPoolWarmedCapacity

  • * WarmPoolPendingCapacity

  • * WarmPoolTerminatingCapacity

  • * WarmPoolTotalCapacity

  • * GroupAndWarmPoolDesiredCapacity

  • * GroupAndWarmPoolTotalCapacity

For more * information, see Auto * Scaling group metrics in the Amazon EC2 Auto Scaling User Guide.

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

One of the following metrics:

  • GroupMinSize *

  • GroupMaxSize

  • * GroupDesiredCapacity

  • * GroupInServiceInstances

  • * GroupPendingInstances

  • * GroupStandbyInstances

  • * GroupTerminatingInstances

  • * GroupTotalInstances

  • * GroupInServiceCapacity

  • * GroupPendingCapacity

  • * GroupStandbyCapacity

  • * GroupTerminatingCapacity

  • * GroupTotalCapacity

  • * WarmPoolDesiredCapacity

  • * WarmPoolWarmedCapacity

  • * WarmPoolPendingCapacity

  • * WarmPoolTerminatingCapacity

  • * WarmPoolTotalCapacity

  • * GroupAndWarmPoolDesiredCapacity

  • * GroupAndWarmPoolTotalCapacity

For more * information, see Auto * Scaling group metrics in the Amazon EC2 Auto Scaling User Guide.

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

One of the following metrics:

  • GroupMinSize *

  • GroupMaxSize

  • * GroupDesiredCapacity

  • * GroupInServiceInstances

  • * GroupPendingInstances

  • * GroupStandbyInstances

  • * GroupTerminatingInstances

  • * GroupTotalInstances

  • * GroupInServiceCapacity

  • * GroupPendingCapacity

  • * GroupStandbyCapacity

  • * GroupTerminatingCapacity

  • * GroupTotalCapacity

  • * WarmPoolDesiredCapacity

  • * WarmPoolWarmedCapacity

  • * WarmPoolPendingCapacity

  • * WarmPoolTerminatingCapacity

  • * WarmPoolTotalCapacity

  • * GroupAndWarmPoolDesiredCapacity

  • * GroupAndWarmPoolTotalCapacity

For more * information, see Auto * Scaling group metrics in the Amazon EC2 Auto Scaling User Guide.

*/ inline void SetMetric(const char* value) { m_metricHasBeenSet = true; m_metric.assign(value); } /** *

One of the following metrics:

  • GroupMinSize *

  • GroupMaxSize

  • * GroupDesiredCapacity

  • * GroupInServiceInstances

  • * GroupPendingInstances

  • * GroupStandbyInstances

  • * GroupTerminatingInstances

  • * GroupTotalInstances

  • * GroupInServiceCapacity

  • * GroupPendingCapacity

  • * GroupStandbyCapacity

  • * GroupTerminatingCapacity

  • * GroupTotalCapacity

  • * WarmPoolDesiredCapacity

  • * WarmPoolWarmedCapacity

  • * WarmPoolPendingCapacity

  • * WarmPoolTerminatingCapacity

  • * WarmPoolTotalCapacity

  • * GroupAndWarmPoolDesiredCapacity

  • * GroupAndWarmPoolTotalCapacity

For more * information, see Auto * Scaling group metrics in the Amazon EC2 Auto Scaling User Guide.

*/ inline EnabledMetric& WithMetric(const Aws::String& value) { SetMetric(value); return *this;} /** *

One of the following metrics:

  • GroupMinSize *

  • GroupMaxSize

  • * GroupDesiredCapacity

  • * GroupInServiceInstances

  • * GroupPendingInstances

  • * GroupStandbyInstances

  • * GroupTerminatingInstances

  • * GroupTotalInstances

  • * GroupInServiceCapacity

  • * GroupPendingCapacity

  • * GroupStandbyCapacity

  • * GroupTerminatingCapacity

  • * GroupTotalCapacity

  • * WarmPoolDesiredCapacity

  • * WarmPoolWarmedCapacity

  • * WarmPoolPendingCapacity

  • * WarmPoolTerminatingCapacity

  • * WarmPoolTotalCapacity

  • * GroupAndWarmPoolDesiredCapacity

  • * GroupAndWarmPoolTotalCapacity

For more * information, see Auto * Scaling group metrics in the Amazon EC2 Auto Scaling User Guide.

*/ inline EnabledMetric& WithMetric(Aws::String&& value) { SetMetric(std::move(value)); return *this;} /** *

One of the following metrics:

  • GroupMinSize *

  • GroupMaxSize

  • * GroupDesiredCapacity

  • * GroupInServiceInstances

  • * GroupPendingInstances

  • * GroupStandbyInstances

  • * GroupTerminatingInstances

  • * GroupTotalInstances

  • * GroupInServiceCapacity

  • * GroupPendingCapacity

  • * GroupStandbyCapacity

  • * GroupTerminatingCapacity

  • * GroupTotalCapacity

  • * WarmPoolDesiredCapacity

  • * WarmPoolWarmedCapacity

  • * WarmPoolPendingCapacity

  • * WarmPoolTerminatingCapacity

  • * WarmPoolTotalCapacity

  • * GroupAndWarmPoolDesiredCapacity

  • * GroupAndWarmPoolTotalCapacity

For more * information, see Auto * Scaling group metrics in the Amazon EC2 Auto Scaling User Guide.

*/ inline EnabledMetric& WithMetric(const char* value) { SetMetric(value); return *this;} /** *

The granularity of the metric. The only valid value is * 1Minute.

*/ inline const Aws::String& GetGranularity() const{ return m_granularity; } /** *

The granularity of the metric. The only valid value is * 1Minute.

*/ inline bool GranularityHasBeenSet() const { return m_granularityHasBeenSet; } /** *

The granularity of the metric. The only valid value is * 1Minute.

*/ inline void SetGranularity(const Aws::String& value) { m_granularityHasBeenSet = true; m_granularity = value; } /** *

The granularity of the metric. The only valid value is * 1Minute.

*/ inline void SetGranularity(Aws::String&& value) { m_granularityHasBeenSet = true; m_granularity = std::move(value); } /** *

The granularity of the metric. The only valid value is * 1Minute.

*/ inline void SetGranularity(const char* value) { m_granularityHasBeenSet = true; m_granularity.assign(value); } /** *

The granularity of the metric. The only valid value is * 1Minute.

*/ inline EnabledMetric& WithGranularity(const Aws::String& value) { SetGranularity(value); return *this;} /** *

The granularity of the metric. The only valid value is * 1Minute.

*/ inline EnabledMetric& WithGranularity(Aws::String&& value) { SetGranularity(std::move(value)); return *this;} /** *

The granularity of the metric. The only valid value is * 1Minute.

*/ inline EnabledMetric& WithGranularity(const char* value) { SetGranularity(value); return *this;} private: Aws::String m_metric; bool m_metricHasBeenSet = false; Aws::String m_granularity; bool m_granularityHasBeenSet = false; }; } // namespace Model } // namespace AutoScaling } // namespace Aws