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

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

Only the Amazon Web Services that you're * using send metrics to Amazon CloudWatch. To determine whether a desired metric * already exists by looking up its namespace and dimension using the CloudWatch * metrics dashboard in the console, follow the procedure in Building * dashboards with CloudWatch in the Application Auto Scaling User * Guide.

See Also:

AWS * API Reference

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

The metric type. The ALBRequestCountPerTarget metric type * applies only to Spot Fleets and ECS services.

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

The metric type. The ALBRequestCountPerTarget metric type * applies only to Spot Fleets and ECS services.

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

The metric type. The ALBRequestCountPerTarget metric type * applies only to Spot Fleets and ECS services.

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

The metric type. The ALBRequestCountPerTarget metric type * applies only to Spot Fleets and ECS services.

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

The metric type. The ALBRequestCountPerTarget metric type * applies only to Spot Fleets and ECS services.

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

The metric type. The ALBRequestCountPerTarget metric type * applies only to Spot Fleets and ECS services.

*/ 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 Spot Fleet or ECS service.

*

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 of the resource label is:

* app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff.

*

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.

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 Spot Fleet or ECS service.

*

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 of the resource label is:

* app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff.

*

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.

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 Spot Fleet or ECS service.

*

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 of the resource label is:

* app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff.

*

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.

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 Spot Fleet or ECS service.

*

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 of the resource label is:

* app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff.

*

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.

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 Spot Fleet or ECS service.

*

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 of the resource label is:

* app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff.

*

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.

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 Spot Fleet or ECS service.

*

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 of the resource label is:

* app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff.

*

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.

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 Spot Fleet or ECS service.

*

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 of the resource label is:

* app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff.

*

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.

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 Spot Fleet or ECS service.

*

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 of the resource label is:

* app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff.

*

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.

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 = false; Aws::String m_resourceLabel; bool m_resourceLabelHasBeenSet = false; }; } // namespace Model } // namespace ApplicationAutoScaling } // namespace Aws