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