/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Represents a CloudWatch metric of your choosing that can be used for
* predictive scaling. For predictive scaling to work with a customized
* load metric specification, AWS Auto Scaling needs access to the When you choose a load metric, make sure that the required
* For information about terminology, available metrics, or how to publish new
* metrics, see Amazon
* CloudWatch Concepts in the Amazon CloudWatch User Guide.
* Sum
* and Average statistics that CloudWatch computes from metric data.
* Statistics are calculations used to aggregate data over specified time
* periods.Sum and Average statistics for your metric are
* available in CloudWatch and that they provide relevant data for predictive
* scaling. The Sum statistic must represent the total load on the
* resource, and the Average statistic must represent the average load
* per capacity unit of the resource. For example, there is a metric that counts
* the number of requests processed by your Auto Scaling group. If the
* Sum statistic represents the total request count processed by the
* group, then the Average statistic for the specified metric must
* represent the average request count processed by each instance of the group.See Also:
AWS
* API Reference
The name of the metric.
*/ inline const Aws::String& GetMetricName() const{ return m_metricName; } /** *The name of the metric.
*/ inline bool MetricNameHasBeenSet() const { return m_metricNameHasBeenSet; } /** *The name of the metric.
*/ inline void SetMetricName(const Aws::String& value) { m_metricNameHasBeenSet = true; m_metricName = value; } /** *The name of the metric.
*/ inline void SetMetricName(Aws::String&& value) { m_metricNameHasBeenSet = true; m_metricName = std::move(value); } /** *The name of the metric.
*/ inline void SetMetricName(const char* value) { m_metricNameHasBeenSet = true; m_metricName.assign(value); } /** *The name of the metric.
*/ inline CustomizedLoadMetricSpecification& WithMetricName(const Aws::String& value) { SetMetricName(value); return *this;} /** *The name of the metric.
*/ inline CustomizedLoadMetricSpecification& WithMetricName(Aws::String&& value) { SetMetricName(std::move(value)); return *this;} /** *The name of the metric.
*/ inline CustomizedLoadMetricSpecification& WithMetricName(const char* value) { SetMetricName(value); return *this;} /** *The namespace of the metric.
*/ inline const Aws::String& GetNamespace() const{ return m_namespace; } /** *The namespace of the metric.
*/ inline bool NamespaceHasBeenSet() const { return m_namespaceHasBeenSet; } /** *The namespace of the metric.
*/ inline void SetNamespace(const Aws::String& value) { m_namespaceHasBeenSet = true; m_namespace = value; } /** *The namespace of the metric.
*/ inline void SetNamespace(Aws::String&& value) { m_namespaceHasBeenSet = true; m_namespace = std::move(value); } /** *The namespace of the metric.
*/ inline void SetNamespace(const char* value) { m_namespaceHasBeenSet = true; m_namespace.assign(value); } /** *The namespace of the metric.
*/ inline CustomizedLoadMetricSpecification& WithNamespace(const Aws::String& value) { SetNamespace(value); return *this;} /** *The namespace of the metric.
*/ inline CustomizedLoadMetricSpecification& WithNamespace(Aws::String&& value) { SetNamespace(std::move(value)); return *this;} /** *The namespace of the metric.
*/ inline CustomizedLoadMetricSpecification& WithNamespace(const char* value) { SetNamespace(value); return *this;} /** *The dimensions of the metric.
Conditional: If you published your * metric with dimensions, you must specify the same dimensions in your customized * load metric specification.
*/ inline const Aws::VectorThe dimensions of the metric.
Conditional: If you published your * metric with dimensions, you must specify the same dimensions in your customized * load metric specification.
*/ inline bool DimensionsHasBeenSet() const { return m_dimensionsHasBeenSet; } /** *The dimensions of the metric.
Conditional: If you published your * metric with dimensions, you must specify the same dimensions in your customized * load metric specification.
*/ inline void SetDimensions(const Aws::VectorThe dimensions of the metric.
Conditional: If you published your * metric with dimensions, you must specify the same dimensions in your customized * load metric specification.
*/ inline void SetDimensions(Aws::VectorThe dimensions of the metric.
Conditional: If you published your * metric with dimensions, you must specify the same dimensions in your customized * load metric specification.
*/ inline CustomizedLoadMetricSpecification& WithDimensions(const Aws::VectorThe dimensions of the metric.
Conditional: If you published your * metric with dimensions, you must specify the same dimensions in your customized * load metric specification.
*/ inline CustomizedLoadMetricSpecification& WithDimensions(Aws::VectorThe dimensions of the metric.
Conditional: If you published your * metric with dimensions, you must specify the same dimensions in your customized * load metric specification.
*/ inline CustomizedLoadMetricSpecification& AddDimensions(const MetricDimension& value) { m_dimensionsHasBeenSet = true; m_dimensions.push_back(value); return *this; } /** *The dimensions of the metric.
Conditional: If you published your * metric with dimensions, you must specify the same dimensions in your customized * load metric specification.
*/ inline CustomizedLoadMetricSpecification& AddDimensions(MetricDimension&& value) { m_dimensionsHasBeenSet = true; m_dimensions.push_back(std::move(value)); return *this; } /** *The statistic of the metric. Currently, the value must always be
* Sum.
The statistic of the metric. Currently, the value must always be
* Sum.
The statistic of the metric. Currently, the value must always be
* Sum.
The statistic of the metric. Currently, the value must always be
* Sum.
The statistic of the metric. Currently, the value must always be
* Sum.
The statistic of the metric. Currently, the value must always be
* Sum.
The unit of the metric.
*/ inline const Aws::String& GetUnit() const{ return m_unit; } /** *The unit of the metric.
*/ inline bool UnitHasBeenSet() const { return m_unitHasBeenSet; } /** *The unit of the metric.
*/ inline void SetUnit(const Aws::String& value) { m_unitHasBeenSet = true; m_unit = value; } /** *The unit of the metric.
*/ inline void SetUnit(Aws::String&& value) { m_unitHasBeenSet = true; m_unit = std::move(value); } /** *The unit of the metric.
*/ inline void SetUnit(const char* value) { m_unitHasBeenSet = true; m_unit.assign(value); } /** *The unit of the metric.
*/ inline CustomizedLoadMetricSpecification& WithUnit(const Aws::String& value) { SetUnit(value); return *this;} /** *The unit of the metric.
*/ inline CustomizedLoadMetricSpecification& WithUnit(Aws::String&& value) { SetUnit(std::move(value)); return *this;} /** *The unit of the metric.
*/ inline CustomizedLoadMetricSpecification& WithUnit(const char* value) { SetUnit(value); return *this;} private: Aws::String m_metricName; bool m_metricNameHasBeenSet; Aws::String m_namespace; bool m_namespaceHasBeenSet; Aws::Vector