/** * 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 { /** *

Represents a predefined metric for a target tracking scaling policy to use * with Amazon EC2 Auto Scaling.

See Also:

AWS * API Reference

*/ class AWS_AUTOSCALING_API PredefinedMetricSpecification { public: PredefinedMetricSpecification(); PredefinedMetricSpecification(const Aws::Utils::Xml::XmlNode& xmlNode); PredefinedMetricSpecification& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The metric type. The following predefined metrics are available:

    *
  • ASGAverageCPUUtilization - Average CPU utilization of the * Auto Scaling group.

  • ASGAverageNetworkIn - * Average number of bytes received on all network interfaces by the Auto Scaling * group.

  • ASGAverageNetworkOut - Average number of * bytes sent out on all network interfaces by the Auto Scaling group.

  • *
  • ALBRequestCountPerTarget - Number of requests completed * per target in an Application Load Balancer target group.

*/ inline const MetricType& GetPredefinedMetricType() const{ return m_predefinedMetricType; } /** *

The metric type. The following predefined metrics are available:

    *
  • ASGAverageCPUUtilization - Average CPU utilization of the * Auto Scaling group.

  • ASGAverageNetworkIn - * Average number of bytes received on all network interfaces by the Auto Scaling * group.

  • ASGAverageNetworkOut - Average number of * bytes sent out on all network interfaces by the Auto Scaling group.

  • *
  • ALBRequestCountPerTarget - Number of requests completed * per target in an Application Load Balancer target group.

*/ inline bool PredefinedMetricTypeHasBeenSet() const { return m_predefinedMetricTypeHasBeenSet; } /** *

The metric type. The following predefined metrics are available:

    *
  • ASGAverageCPUUtilization - Average CPU utilization of the * Auto Scaling group.

  • ASGAverageNetworkIn - * Average number of bytes received on all network interfaces by the Auto Scaling * group.

  • ASGAverageNetworkOut - Average number of * bytes sent out on all network interfaces by the Auto Scaling group.

  • *
  • ALBRequestCountPerTarget - Number of requests completed * per target in an Application Load Balancer target group.

*/ inline void SetPredefinedMetricType(const MetricType& value) { m_predefinedMetricTypeHasBeenSet = true; m_predefinedMetricType = value; } /** *

The metric type. The following predefined metrics are available:

    *
  • ASGAverageCPUUtilization - Average CPU utilization of the * Auto Scaling group.

  • ASGAverageNetworkIn - * Average number of bytes received on all network interfaces by the Auto Scaling * group.

  • ASGAverageNetworkOut - Average number of * bytes sent out on all network interfaces by the Auto Scaling group.

  • *
  • ALBRequestCountPerTarget - Number of requests completed * per target in an Application Load Balancer target group.

*/ inline void SetPredefinedMetricType(MetricType&& value) { m_predefinedMetricTypeHasBeenSet = true; m_predefinedMetricType = std::move(value); } /** *

The metric type. The following predefined metrics are available:

    *
  • ASGAverageCPUUtilization - Average CPU utilization of the * Auto Scaling group.

  • ASGAverageNetworkIn - * Average number of bytes received on all network interfaces by the Auto Scaling * group.

  • ASGAverageNetworkOut - Average number of * bytes sent out on all network interfaces by the Auto Scaling group.

  • *
  • ALBRequestCountPerTarget - Number of requests completed * per target in an Application Load Balancer target group.

*/ inline PredefinedMetricSpecification& WithPredefinedMetricType(const MetricType& value) { SetPredefinedMetricType(value); return *this;} /** *

The metric type. The following predefined metrics are available:

    *
  • ASGAverageCPUUtilization - Average CPU utilization of the * Auto Scaling group.

  • ASGAverageNetworkIn - * Average number of bytes received on all network interfaces by the Auto Scaling * group.

  • ASGAverageNetworkOut - Average number of * bytes sent out on all network interfaces by the Auto Scaling group.

  • *
  • ALBRequestCountPerTarget - Number of requests completed * per target in an Application Load Balancer target group.

*/ inline PredefinedMetricSpecification& WithPredefinedMetricType(MetricType&& value) { SetPredefinedMetricType(std::move(value)); return *this;} /** *

Identifies the resource associated with the metric type. You can't specify a * resource label unless the metric type is ALBRequestCountPerTarget * and there is a target group attached to the Auto Scaling group.

Elastic * Load Balancing sends data about your load balancers to Amazon CloudWatch. * CloudWatch collects the data and specifies the format to use to access the data. * The format is * app/load-balancer-name/load-balancer-id/targetgroup/target-group-name/target-group-id * , where

  • * app/load-balancer-name/load-balancer-id is the final * portion of the load balancer ARN, and

  • * targetgroup/target-group-name/target-group-id is the * final portion of the target group ARN.

To find the ARN for an * Application Load Balancer, use the DescribeLoadBalancers * API operation. To find the ARN for the target group, use the DescribeTargetGroups * API operation.

*/ inline const Aws::String& GetResourceLabel() const{ return m_resourceLabel; } /** *

Identifies the resource associated with the metric type. You can't specify a * resource label unless the metric type is ALBRequestCountPerTarget * and there is a target group attached to the Auto Scaling group.

Elastic * Load Balancing sends data about your load balancers to Amazon CloudWatch. * CloudWatch collects the data and specifies the format to use to access the data. * The format is * app/load-balancer-name/load-balancer-id/targetgroup/target-group-name/target-group-id * , where

  • * app/load-balancer-name/load-balancer-id is the final * portion of the load balancer ARN, and

  • * targetgroup/target-group-name/target-group-id is the * final portion of the target group ARN.

To find the ARN for an * Application Load Balancer, use the DescribeLoadBalancers * API operation. To find the ARN for the target group, use the DescribeTargetGroups * API operation.

*/ inline bool ResourceLabelHasBeenSet() const { return m_resourceLabelHasBeenSet; } /** *

Identifies the resource associated with the metric type. You can't specify a * resource label unless the metric type is ALBRequestCountPerTarget * and there is a target group attached to the Auto Scaling group.

Elastic * Load Balancing sends data about your load balancers to Amazon CloudWatch. * CloudWatch collects the data and specifies the format to use to access the data. * The format is * app/load-balancer-name/load-balancer-id/targetgroup/target-group-name/target-group-id * , where

  • * app/load-balancer-name/load-balancer-id is the final * portion of the load balancer ARN, and

  • * targetgroup/target-group-name/target-group-id is the * final portion of the target group ARN.

To find the ARN for an * Application Load Balancer, use the DescribeLoadBalancers * API operation. To find the ARN for the target group, use the DescribeTargetGroups * API operation.

*/ inline void SetResourceLabel(const Aws::String& value) { m_resourceLabelHasBeenSet = true; m_resourceLabel = value; } /** *

Identifies the resource associated with the metric type. You can't specify a * resource label unless the metric type is ALBRequestCountPerTarget * and there is a target group attached to the Auto Scaling group.

Elastic * Load Balancing sends data about your load balancers to Amazon CloudWatch. * CloudWatch collects the data and specifies the format to use to access the data. * The format is * app/load-balancer-name/load-balancer-id/targetgroup/target-group-name/target-group-id * , where

  • * app/load-balancer-name/load-balancer-id is the final * portion of the load balancer ARN, and

  • * targetgroup/target-group-name/target-group-id is the * final portion of the target group ARN.

To find the ARN for an * Application Load Balancer, use the DescribeLoadBalancers * API operation. To find the ARN for the target group, use the DescribeTargetGroups * API operation.

*/ inline void SetResourceLabel(Aws::String&& value) { m_resourceLabelHasBeenSet = true; m_resourceLabel = std::move(value); } /** *

Identifies the resource associated with the metric type. You can't specify a * resource label unless the metric type is ALBRequestCountPerTarget * and there is a target group attached to the Auto Scaling group.

Elastic * Load Balancing sends data about your load balancers to Amazon CloudWatch. * CloudWatch collects the data and specifies the format to use to access the data. * The format is * app/load-balancer-name/load-balancer-id/targetgroup/target-group-name/target-group-id * , where

  • * app/load-balancer-name/load-balancer-id is the final * portion of the load balancer ARN, and

  • * targetgroup/target-group-name/target-group-id is the * final portion of the target group ARN.

To find the ARN for an * Application Load Balancer, use the DescribeLoadBalancers * API operation. To find the ARN for the target group, use the DescribeTargetGroups * API operation.

*/ inline void SetResourceLabel(const char* value) { m_resourceLabelHasBeenSet = true; m_resourceLabel.assign(value); } /** *

Identifies the resource associated with the metric type. You can't specify a * resource label unless the metric type is ALBRequestCountPerTarget * and there is a target group attached to the Auto Scaling group.

Elastic * Load Balancing sends data about your load balancers to Amazon CloudWatch. * CloudWatch collects the data and specifies the format to use to access the data. * The format is * app/load-balancer-name/load-balancer-id/targetgroup/target-group-name/target-group-id * , where

  • * app/load-balancer-name/load-balancer-id is the final * portion of the load balancer ARN, and

  • * targetgroup/target-group-name/target-group-id is the * final portion of the target group ARN.

To find the ARN for an * Application Load Balancer, use the DescribeLoadBalancers * API operation. To find the ARN for the target group, use the DescribeTargetGroups * API operation.

*/ inline PredefinedMetricSpecification& WithResourceLabel(const Aws::String& value) { SetResourceLabel(value); return *this;} /** *

Identifies the resource associated with the metric type. You can't specify a * resource label unless the metric type is ALBRequestCountPerTarget * and there is a target group attached to the Auto Scaling group.

Elastic * Load Balancing sends data about your load balancers to Amazon CloudWatch. * CloudWatch collects the data and specifies the format to use to access the data. * The format is * app/load-balancer-name/load-balancer-id/targetgroup/target-group-name/target-group-id * , where

  • * app/load-balancer-name/load-balancer-id is the final * portion of the load balancer ARN, and

  • * targetgroup/target-group-name/target-group-id is the * final portion of the target group ARN.

To find the ARN for an * Application Load Balancer, use the DescribeLoadBalancers * API operation. To find the ARN for the target group, use the DescribeTargetGroups * API operation.

*/ inline PredefinedMetricSpecification& WithResourceLabel(Aws::String&& value) { SetResourceLabel(std::move(value)); return *this;} /** *

Identifies the resource associated with the metric type. You can't specify a * resource label unless the metric type is ALBRequestCountPerTarget * and there is a target group attached to the Auto Scaling group.

Elastic * Load Balancing sends data about your load balancers to Amazon CloudWatch. * CloudWatch collects the data and specifies the format to use to access the data. * The format is * app/load-balancer-name/load-balancer-id/targetgroup/target-group-name/target-group-id * , where

  • * app/load-balancer-name/load-balancer-id is the final * portion of the load balancer ARN, and

  • * targetgroup/target-group-name/target-group-id is the * final portion of the target group ARN.

To find the ARN for an * Application Load Balancer, use the DescribeLoadBalancers * API operation. To find the ARN for the target group, use the DescribeTargetGroups * API operation.

*/ inline PredefinedMetricSpecification& WithResourceLabel(const char* value) { SetResourceLabel(value); return *this;} private: MetricType m_predefinedMetricType; bool m_predefinedMetricTypeHasBeenSet; Aws::String m_resourceLabel; bool m_resourceLabelHasBeenSet; }; } // namespace Model } // namespace AutoScaling } // namespace Aws