/**
* 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
* If you publish your own metrics, you can aggregate the data points at a
* given interval and then publish the aggregated data points to CloudWatch. Before
* AWS Auto Scaling generates the forecast, it sums up all the metric data points
* that occurred within each hour to match the granularity period that is used in
* the forecast (60 minutes). For information about terminology, available
* metrics, or how to publish new metrics, see Amazon
* CloudWatch Concepts in the Amazon CloudWatch User Guide. 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.Sum
* and Average
statistics that CloudWatch computes from metric
* data.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. The only valid value is Sum
.
The statistic of the metric. The only valid value is Sum
.
The statistic of the metric. The only valid value is Sum
.
The statistic of the metric. The only valid value is Sum
.
The statistic of the metric. The only valid value is Sum
.
The statistic of the metric. The only valid value is 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 = false; Aws::String m_namespace; bool m_namespaceHasBeenSet = false; Aws::Vector