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

The metric data to return. Also defines whether this call is returning data * for one metric only, or whether it is performing a math expression on the values * of returned metric statistics to create a new time series. A time series is a * series of data points, each of which is associated with a timestamp.

For * more information and examples, see Create * a target tracking scaling policy for Application Auto Scaling using metric * math in the Application Auto Scaling User Guide.

See * Also:

AWS * API Reference

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

The math expression to perform on the returned data, if this object is * performing a math expression. This expression can use the Id of the * other metrics to refer to those metrics, and can also use the Id of * other expressions to use the result of those expressions.

Conditional: * Within each TargetTrackingMetricDataQuery object, you must specify * either Expression or MetricStat, but not both.

*/ inline const Aws::String& GetExpression() const{ return m_expression; } /** *

The math expression to perform on the returned data, if this object is * performing a math expression. This expression can use the Id of the * other metrics to refer to those metrics, and can also use the Id of * other expressions to use the result of those expressions.

Conditional: * Within each TargetTrackingMetricDataQuery object, you must specify * either Expression or MetricStat, but not both.

*/ inline bool ExpressionHasBeenSet() const { return m_expressionHasBeenSet; } /** *

The math expression to perform on the returned data, if this object is * performing a math expression. This expression can use the Id of the * other metrics to refer to those metrics, and can also use the Id of * other expressions to use the result of those expressions.

Conditional: * Within each TargetTrackingMetricDataQuery object, you must specify * either Expression or MetricStat, but not both.

*/ inline void SetExpression(const Aws::String& value) { m_expressionHasBeenSet = true; m_expression = value; } /** *

The math expression to perform on the returned data, if this object is * performing a math expression. This expression can use the Id of the * other metrics to refer to those metrics, and can also use the Id of * other expressions to use the result of those expressions.

Conditional: * Within each TargetTrackingMetricDataQuery object, you must specify * either Expression or MetricStat, but not both.

*/ inline void SetExpression(Aws::String&& value) { m_expressionHasBeenSet = true; m_expression = std::move(value); } /** *

The math expression to perform on the returned data, if this object is * performing a math expression. This expression can use the Id of the * other metrics to refer to those metrics, and can also use the Id of * other expressions to use the result of those expressions.

Conditional: * Within each TargetTrackingMetricDataQuery object, you must specify * either Expression or MetricStat, but not both.

*/ inline void SetExpression(const char* value) { m_expressionHasBeenSet = true; m_expression.assign(value); } /** *

The math expression to perform on the returned data, if this object is * performing a math expression. This expression can use the Id of the * other metrics to refer to those metrics, and can also use the Id of * other expressions to use the result of those expressions.

Conditional: * Within each TargetTrackingMetricDataQuery object, you must specify * either Expression or MetricStat, but not both.

*/ inline TargetTrackingMetricDataQuery& WithExpression(const Aws::String& value) { SetExpression(value); return *this;} /** *

The math expression to perform on the returned data, if this object is * performing a math expression. This expression can use the Id of the * other metrics to refer to those metrics, and can also use the Id of * other expressions to use the result of those expressions.

Conditional: * Within each TargetTrackingMetricDataQuery object, you must specify * either Expression or MetricStat, but not both.

*/ inline TargetTrackingMetricDataQuery& WithExpression(Aws::String&& value) { SetExpression(std::move(value)); return *this;} /** *

The math expression to perform on the returned data, if this object is * performing a math expression. This expression can use the Id of the * other metrics to refer to those metrics, and can also use the Id of * other expressions to use the result of those expressions.

Conditional: * Within each TargetTrackingMetricDataQuery object, you must specify * either Expression or MetricStat, but not both.

*/ inline TargetTrackingMetricDataQuery& WithExpression(const char* value) { SetExpression(value); return *this;} /** *

A short name that identifies the object's results in the response. This name * must be unique among all MetricDataQuery objects specified for a * single scaling policy. If you are performing math expressions on this set of * data, this name represents that data and can serve as a variable in the * mathematical expression. The valid characters are letters, numbers, and * underscores. The first character must be a lowercase letter.

*/ inline const Aws::String& GetId() const{ return m_id; } /** *

A short name that identifies the object's results in the response. This name * must be unique among all MetricDataQuery objects specified for a * single scaling policy. If you are performing math expressions on this set of * data, this name represents that data and can serve as a variable in the * mathematical expression. The valid characters are letters, numbers, and * underscores. The first character must be a lowercase letter.

*/ inline bool IdHasBeenSet() const { return m_idHasBeenSet; } /** *

A short name that identifies the object's results in the response. This name * must be unique among all MetricDataQuery objects specified for a * single scaling policy. If you are performing math expressions on this set of * data, this name represents that data and can serve as a variable in the * mathematical expression. The valid characters are letters, numbers, and * underscores. The first character must be a lowercase letter.

*/ inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } /** *

A short name that identifies the object's results in the response. This name * must be unique among all MetricDataQuery objects specified for a * single scaling policy. If you are performing math expressions on this set of * data, this name represents that data and can serve as a variable in the * mathematical expression. The valid characters are letters, numbers, and * underscores. The first character must be a lowercase letter.

*/ inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } /** *

A short name that identifies the object's results in the response. This name * must be unique among all MetricDataQuery objects specified for a * single scaling policy. If you are performing math expressions on this set of * data, this name represents that data and can serve as a variable in the * mathematical expression. The valid characters are letters, numbers, and * underscores. The first character must be a lowercase letter.

*/ inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } /** *

A short name that identifies the object's results in the response. This name * must be unique among all MetricDataQuery objects specified for a * single scaling policy. If you are performing math expressions on this set of * data, this name represents that data and can serve as a variable in the * mathematical expression. The valid characters are letters, numbers, and * underscores. The first character must be a lowercase letter.

*/ inline TargetTrackingMetricDataQuery& WithId(const Aws::String& value) { SetId(value); return *this;} /** *

A short name that identifies the object's results in the response. This name * must be unique among all MetricDataQuery objects specified for a * single scaling policy. If you are performing math expressions on this set of * data, this name represents that data and can serve as a variable in the * mathematical expression. The valid characters are letters, numbers, and * underscores. The first character must be a lowercase letter.

*/ inline TargetTrackingMetricDataQuery& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} /** *

A short name that identifies the object's results in the response. This name * must be unique among all MetricDataQuery objects specified for a * single scaling policy. If you are performing math expressions on this set of * data, this name represents that data and can serve as a variable in the * mathematical expression. The valid characters are letters, numbers, and * underscores. The first character must be a lowercase letter.

*/ inline TargetTrackingMetricDataQuery& WithId(const char* value) { SetId(value); return *this;} /** *

A human-readable label for this metric or expression. This is especially * useful if this is a math expression, so that you know what the value * represents.

*/ inline const Aws::String& GetLabel() const{ return m_label; } /** *

A human-readable label for this metric or expression. This is especially * useful if this is a math expression, so that you know what the value * represents.

*/ inline bool LabelHasBeenSet() const { return m_labelHasBeenSet; } /** *

A human-readable label for this metric or expression. This is especially * useful if this is a math expression, so that you know what the value * represents.

*/ inline void SetLabel(const Aws::String& value) { m_labelHasBeenSet = true; m_label = value; } /** *

A human-readable label for this metric or expression. This is especially * useful if this is a math expression, so that you know what the value * represents.

*/ inline void SetLabel(Aws::String&& value) { m_labelHasBeenSet = true; m_label = std::move(value); } /** *

A human-readable label for this metric or expression. This is especially * useful if this is a math expression, so that you know what the value * represents.

*/ inline void SetLabel(const char* value) { m_labelHasBeenSet = true; m_label.assign(value); } /** *

A human-readable label for this metric or expression. This is especially * useful if this is a math expression, so that you know what the value * represents.

*/ inline TargetTrackingMetricDataQuery& WithLabel(const Aws::String& value) { SetLabel(value); return *this;} /** *

A human-readable label for this metric or expression. This is especially * useful if this is a math expression, so that you know what the value * represents.

*/ inline TargetTrackingMetricDataQuery& WithLabel(Aws::String&& value) { SetLabel(std::move(value)); return *this;} /** *

A human-readable label for this metric or expression. This is especially * useful if this is a math expression, so that you know what the value * represents.

*/ inline TargetTrackingMetricDataQuery& WithLabel(const char* value) { SetLabel(value); return *this;} /** *

Information about the metric data to return.

Conditional: Within each * MetricDataQuery object, you must specify either * Expression or MetricStat, but not both.

*/ inline const TargetTrackingMetricStat& GetMetricStat() const{ return m_metricStat; } /** *

Information about the metric data to return.

Conditional: Within each * MetricDataQuery object, you must specify either * Expression or MetricStat, but not both.

*/ inline bool MetricStatHasBeenSet() const { return m_metricStatHasBeenSet; } /** *

Information about the metric data to return.

Conditional: Within each * MetricDataQuery object, you must specify either * Expression or MetricStat, but not both.

*/ inline void SetMetricStat(const TargetTrackingMetricStat& value) { m_metricStatHasBeenSet = true; m_metricStat = value; } /** *

Information about the metric data to return.

Conditional: Within each * MetricDataQuery object, you must specify either * Expression or MetricStat, but not both.

*/ inline void SetMetricStat(TargetTrackingMetricStat&& value) { m_metricStatHasBeenSet = true; m_metricStat = std::move(value); } /** *

Information about the metric data to return.

Conditional: Within each * MetricDataQuery object, you must specify either * Expression or MetricStat, but not both.

*/ inline TargetTrackingMetricDataQuery& WithMetricStat(const TargetTrackingMetricStat& value) { SetMetricStat(value); return *this;} /** *

Information about the metric data to return.

Conditional: Within each * MetricDataQuery object, you must specify either * Expression or MetricStat, but not both.

*/ inline TargetTrackingMetricDataQuery& WithMetricStat(TargetTrackingMetricStat&& value) { SetMetricStat(std::move(value)); return *this;} /** *

Indicates whether to return the timestamps and raw data values of this * metric.

If you use any math expressions, specify true for * this value for only the final math expression that the metric specification is * based on. You must specify false for ReturnData for * all the other metrics and expressions used in the metric specification.

*

If you are only retrieving metrics and not performing any math expressions, * do not specify anything for ReturnData. This sets it to its default * (true).

*/ inline bool GetReturnData() const{ return m_returnData; } /** *

Indicates whether to return the timestamps and raw data values of this * metric.

If you use any math expressions, specify true for * this value for only the final math expression that the metric specification is * based on. You must specify false for ReturnData for * all the other metrics and expressions used in the metric specification.

*

If you are only retrieving metrics and not performing any math expressions, * do not specify anything for ReturnData. This sets it to its default * (true).

*/ inline bool ReturnDataHasBeenSet() const { return m_returnDataHasBeenSet; } /** *

Indicates whether to return the timestamps and raw data values of this * metric.

If you use any math expressions, specify true for * this value for only the final math expression that the metric specification is * based on. You must specify false for ReturnData for * all the other metrics and expressions used in the metric specification.

*

If you are only retrieving metrics and not performing any math expressions, * do not specify anything for ReturnData. This sets it to its default * (true).

*/ inline void SetReturnData(bool value) { m_returnDataHasBeenSet = true; m_returnData = value; } /** *

Indicates whether to return the timestamps and raw data values of this * metric.

If you use any math expressions, specify true for * this value for only the final math expression that the metric specification is * based on. You must specify false for ReturnData for * all the other metrics and expressions used in the metric specification.

*

If you are only retrieving metrics and not performing any math expressions, * do not specify anything for ReturnData. This sets it to its default * (true).

*/ inline TargetTrackingMetricDataQuery& WithReturnData(bool value) { SetReturnData(value); return *this;} private: Aws::String m_expression; bool m_expressionHasBeenSet = false; Aws::String m_id; bool m_idHasBeenSet = false; Aws::String m_label; bool m_labelHasBeenSet = false; TargetTrackingMetricStat m_metricStat; bool m_metricStatHasBeenSet = false; bool m_returnData; bool m_returnDataHasBeenSet = false; }; } // namespace Model } // namespace ApplicationAutoScaling } // namespace Aws