/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Represents a predefined metric that can be used for predictive scaling. After creating your scaling plan, you can use the AWS Auto Scaling console to
* visualize forecasts for the specified metric. For more information, see View
* Scaling Information for a Resource in the AWS Auto Scaling User
* Guide.See Also:
AWS
* API Reference
The metric type.
*/ inline const LoadMetricType& GetPredefinedLoadMetricType() const{ return m_predefinedLoadMetricType; } /** *The metric type.
*/ inline bool PredefinedLoadMetricTypeHasBeenSet() const { return m_predefinedLoadMetricTypeHasBeenSet; } /** *The metric type.
*/ inline void SetPredefinedLoadMetricType(const LoadMetricType& value) { m_predefinedLoadMetricTypeHasBeenSet = true; m_predefinedLoadMetricType = value; } /** *The metric type.
*/ inline void SetPredefinedLoadMetricType(LoadMetricType&& value) { m_predefinedLoadMetricTypeHasBeenSet = true; m_predefinedLoadMetricType = std::move(value); } /** *The metric type.
*/ inline PredefinedLoadMetricSpecification& WithPredefinedLoadMetricType(const LoadMetricType& value) { SetPredefinedLoadMetricType(value); return *this;} /** *The metric type.
*/ inline PredefinedLoadMetricSpecification& WithPredefinedLoadMetricType(LoadMetricType&& value) { SetPredefinedLoadMetricType(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 ALBTargetGroupRequestCount
* and there is a target group for an Application Load Balancer attached to the
* Auto Scaling group.
You create the resource label by appending the final * portion of the load balancer ARN and the final portion of the target group ARN * into a single value, separated by a forward slash (/). 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
targetgroup/<target-group-name>/<target-group-id> is the final * portion of the target group ARN.
This is an example: * app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d.
*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 ALBTargetGroupRequestCount
* and there is a target group for an Application Load Balancer attached to the
* Auto Scaling group.
You create the resource label by appending the final * portion of the load balancer ARN and the final portion of the target group ARN * into a single value, separated by a forward slash (/). 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
targetgroup/<target-group-name>/<target-group-id> is the final * portion of the target group ARN.
This is an example: * app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d.
*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 ALBTargetGroupRequestCount
* and there is a target group for an Application Load Balancer attached to the
* Auto Scaling group.
You create the resource label by appending the final * portion of the load balancer ARN and the final portion of the target group ARN * into a single value, separated by a forward slash (/). 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
targetgroup/<target-group-name>/<target-group-id> is the final * portion of the target group ARN.
This is an example: * app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d.
*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 ALBTargetGroupRequestCount
* and there is a target group for an Application Load Balancer attached to the
* Auto Scaling group.
You create the resource label by appending the final * portion of the load balancer ARN and the final portion of the target group ARN * into a single value, separated by a forward slash (/). 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
targetgroup/<target-group-name>/<target-group-id> is the final * portion of the target group ARN.
This is an example: * app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d.
*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 ALBTargetGroupRequestCount
* and there is a target group for an Application Load Balancer attached to the
* Auto Scaling group.
You create the resource label by appending the final * portion of the load balancer ARN and the final portion of the target group ARN * into a single value, separated by a forward slash (/). 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
targetgroup/<target-group-name>/<target-group-id> is the final * portion of the target group ARN.
This is an example: * app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d.
*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 ALBTargetGroupRequestCount
* and there is a target group for an Application Load Balancer attached to the
* Auto Scaling group.
You create the resource label by appending the final * portion of the load balancer ARN and the final portion of the target group ARN * into a single value, separated by a forward slash (/). 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
targetgroup/<target-group-name>/<target-group-id> is the final * portion of the target group ARN.
This is an example: * app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d.
*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 PredefinedLoadMetricSpecification& 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 ALBTargetGroupRequestCount
* and there is a target group for an Application Load Balancer attached to the
* Auto Scaling group.
You create the resource label by appending the final * portion of the load balancer ARN and the final portion of the target group ARN * into a single value, separated by a forward slash (/). 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
targetgroup/<target-group-name>/<target-group-id> is the final * portion of the target group ARN.
This is an example: * app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d.
*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 PredefinedLoadMetricSpecification& 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 ALBTargetGroupRequestCount
* and there is a target group for an Application Load Balancer attached to the
* Auto Scaling group.
You create the resource label by appending the final * portion of the load balancer ARN and the final portion of the target group ARN * into a single value, separated by a forward slash (/). 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
targetgroup/<target-group-name>/<target-group-id> is the final * portion of the target group ARN.
This is an example: * app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d.
*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 PredefinedLoadMetricSpecification& WithResourceLabel(const char* value) { SetResourceLabel(value); return *this;} private: LoadMetricType m_predefinedLoadMetricType; bool m_predefinedLoadMetricTypeHasBeenSet = false; Aws::String m_resourceLabel; bool m_resourceLabelHasBeenSet = false; }; } // namespace Model } // namespace AutoScalingPlans } // namespace Aws