/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace CloudWatch { namespace Model { /** *

This structure defines the metric to be returned, along with the statistics, * period, and units.

See Also:

AWS * API Reference

*/ class MetricStat { public: AWS_CLOUDWATCH_API MetricStat(); AWS_CLOUDWATCH_API MetricStat(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_CLOUDWATCH_API MetricStat& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_CLOUDWATCH_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_CLOUDWATCH_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The metric to return, including the metric name, namespace, and * dimensions.

*/ inline const Metric& GetMetric() const{ return m_metric; } /** *

The metric to return, including the metric name, namespace, and * dimensions.

*/ inline bool MetricHasBeenSet() const { return m_metricHasBeenSet; } /** *

The metric to return, including the metric name, namespace, and * dimensions.

*/ inline void SetMetric(const Metric& value) { m_metricHasBeenSet = true; m_metric = value; } /** *

The metric to return, including the metric name, namespace, and * dimensions.

*/ inline void SetMetric(Metric&& value) { m_metricHasBeenSet = true; m_metric = std::move(value); } /** *

The metric to return, including the metric name, namespace, and * dimensions.

*/ inline MetricStat& WithMetric(const Metric& value) { SetMetric(value); return *this;} /** *

The metric to return, including the metric name, namespace, and * dimensions.

*/ inline MetricStat& WithMetric(Metric&& value) { SetMetric(std::move(value)); return *this;} /** *

The granularity, in seconds, of the returned data points. For metrics with * regular resolution, a period can be as short as one minute (60 seconds) and must * be a multiple of 60. For high-resolution metrics that are collected at intervals * of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of * 60. High-resolution metrics are those metrics stored by a * PutMetricData call that includes a StorageResolution * of 1 second.

If the StartTime parameter specifies a time * stamp that is greater than 3 hours ago, you must specify the period as follows * or no data points in that time range is returned:

  • Start time * between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute).

    *
  • Start time between 15 and 63 days ago - Use a multiple of 300 * seconds (5 minutes).

  • Start time greater than 63 days ago - Use * a multiple of 3600 seconds (1 hour).

*/ inline int GetPeriod() const{ return m_period; } /** *

The granularity, in seconds, of the returned data points. For metrics with * regular resolution, a period can be as short as one minute (60 seconds) and must * be a multiple of 60. For high-resolution metrics that are collected at intervals * of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of * 60. High-resolution metrics are those metrics stored by a * PutMetricData call that includes a StorageResolution * of 1 second.

If the StartTime parameter specifies a time * stamp that is greater than 3 hours ago, you must specify the period as follows * or no data points in that time range is returned:

  • Start time * between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute).

    *
  • Start time between 15 and 63 days ago - Use a multiple of 300 * seconds (5 minutes).

  • Start time greater than 63 days ago - Use * a multiple of 3600 seconds (1 hour).

*/ inline bool PeriodHasBeenSet() const { return m_periodHasBeenSet; } /** *

The granularity, in seconds, of the returned data points. For metrics with * regular resolution, a period can be as short as one minute (60 seconds) and must * be a multiple of 60. For high-resolution metrics that are collected at intervals * of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of * 60. High-resolution metrics are those metrics stored by a * PutMetricData call that includes a StorageResolution * of 1 second.

If the StartTime parameter specifies a time * stamp that is greater than 3 hours ago, you must specify the period as follows * or no data points in that time range is returned:

  • Start time * between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute).

    *
  • Start time between 15 and 63 days ago - Use a multiple of 300 * seconds (5 minutes).

  • Start time greater than 63 days ago - Use * a multiple of 3600 seconds (1 hour).

*/ inline void SetPeriod(int value) { m_periodHasBeenSet = true; m_period = value; } /** *

The granularity, in seconds, of the returned data points. For metrics with * regular resolution, a period can be as short as one minute (60 seconds) and must * be a multiple of 60. For high-resolution metrics that are collected at intervals * of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of * 60. High-resolution metrics are those metrics stored by a * PutMetricData call that includes a StorageResolution * of 1 second.

If the StartTime parameter specifies a time * stamp that is greater than 3 hours ago, you must specify the period as follows * or no data points in that time range is returned:

  • Start time * between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute).

    *
  • Start time between 15 and 63 days ago - Use a multiple of 300 * seconds (5 minutes).

  • Start time greater than 63 days ago - Use * a multiple of 3600 seconds (1 hour).

*/ inline MetricStat& WithPeriod(int value) { SetPeriod(value); return *this;} /** *

The statistic to return. It can include any CloudWatch statistic or extended * statistic.

*/ inline const Aws::String& GetStat() const{ return m_stat; } /** *

The statistic to return. It can include any CloudWatch statistic or extended * statistic.

*/ inline bool StatHasBeenSet() const { return m_statHasBeenSet; } /** *

The statistic to return. It can include any CloudWatch statistic or extended * statistic.

*/ inline void SetStat(const Aws::String& value) { m_statHasBeenSet = true; m_stat = value; } /** *

The statistic to return. It can include any CloudWatch statistic or extended * statistic.

*/ inline void SetStat(Aws::String&& value) { m_statHasBeenSet = true; m_stat = std::move(value); } /** *

The statistic to return. It can include any CloudWatch statistic or extended * statistic.

*/ inline void SetStat(const char* value) { m_statHasBeenSet = true; m_stat.assign(value); } /** *

The statistic to return. It can include any CloudWatch statistic or extended * statistic.

*/ inline MetricStat& WithStat(const Aws::String& value) { SetStat(value); return *this;} /** *

The statistic to return. It can include any CloudWatch statistic or extended * statistic.

*/ inline MetricStat& WithStat(Aws::String&& value) { SetStat(std::move(value)); return *this;} /** *

The statistic to return. It can include any CloudWatch statistic or extended * statistic.

*/ inline MetricStat& WithStat(const char* value) { SetStat(value); return *this;} /** *

When you are using a Put operation, this defines what unit you * want to use when storing the metric.

In a Get operation, if * you omit Unit then all data that was collected with any unit is * returned, along with the corresponding units that were specified when the data * was reported to CloudWatch. If you specify a unit, the operation returns only * data that was collected with that unit specified. If you specify a unit that * does not match the data collected, the results of the operation are null. * CloudWatch does not perform unit conversions.

*/ inline const StandardUnit& GetUnit() const{ return m_unit; } /** *

When you are using a Put operation, this defines what unit you * want to use when storing the metric.

In a Get operation, if * you omit Unit then all data that was collected with any unit is * returned, along with the corresponding units that were specified when the data * was reported to CloudWatch. If you specify a unit, the operation returns only * data that was collected with that unit specified. If you specify a unit that * does not match the data collected, the results of the operation are null. * CloudWatch does not perform unit conversions.

*/ inline bool UnitHasBeenSet() const { return m_unitHasBeenSet; } /** *

When you are using a Put operation, this defines what unit you * want to use when storing the metric.

In a Get operation, if * you omit Unit then all data that was collected with any unit is * returned, along with the corresponding units that were specified when the data * was reported to CloudWatch. If you specify a unit, the operation returns only * data that was collected with that unit specified. If you specify a unit that * does not match the data collected, the results of the operation are null. * CloudWatch does not perform unit conversions.

*/ inline void SetUnit(const StandardUnit& value) { m_unitHasBeenSet = true; m_unit = value; } /** *

When you are using a Put operation, this defines what unit you * want to use when storing the metric.

In a Get operation, if * you omit Unit then all data that was collected with any unit is * returned, along with the corresponding units that were specified when the data * was reported to CloudWatch. If you specify a unit, the operation returns only * data that was collected with that unit specified. If you specify a unit that * does not match the data collected, the results of the operation are null. * CloudWatch does not perform unit conversions.

*/ inline void SetUnit(StandardUnit&& value) { m_unitHasBeenSet = true; m_unit = std::move(value); } /** *

When you are using a Put operation, this defines what unit you * want to use when storing the metric.

In a Get operation, if * you omit Unit then all data that was collected with any unit is * returned, along with the corresponding units that were specified when the data * was reported to CloudWatch. If you specify a unit, the operation returns only * data that was collected with that unit specified. If you specify a unit that * does not match the data collected, the results of the operation are null. * CloudWatch does not perform unit conversions.

*/ inline MetricStat& WithUnit(const StandardUnit& value) { SetUnit(value); return *this;} /** *

When you are using a Put operation, this defines what unit you * want to use when storing the metric.

In a Get operation, if * you omit Unit then all data that was collected with any unit is * returned, along with the corresponding units that were specified when the data * was reported to CloudWatch. If you specify a unit, the operation returns only * data that was collected with that unit specified. If you specify a unit that * does not match the data collected, the results of the operation are null. * CloudWatch does not perform unit conversions.

*/ inline MetricStat& WithUnit(StandardUnit&& value) { SetUnit(std::move(value)); return *this;} private: Metric m_metric; bool m_metricHasBeenSet = false; int m_period; bool m_periodHasBeenSet = false; Aws::String m_stat; bool m_statHasBeenSet = false; StandardUnit m_unit; bool m_unitHasBeenSet = false; }; } // namespace Model } // namespace CloudWatch } // namespace Aws