/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include namespace Aws { namespace CloudWatch { namespace Model { /** */ class GetMetricStatisticsRequest : public CloudWatchRequest { public: AWS_CLOUDWATCH_API GetMetricStatisticsRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "GetMetricStatistics"; } AWS_CLOUDWATCH_API Aws::String SerializePayload() const override; protected: AWS_CLOUDWATCH_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The namespace of the metric, with or without spaces.

*/ inline const Aws::String& GetNamespace() const{ return m_namespace; } /** *

The namespace of the metric, with or without spaces.

*/ inline bool NamespaceHasBeenSet() const { return m_namespaceHasBeenSet; } /** *

The namespace of the metric, with or without spaces.

*/ inline void SetNamespace(const Aws::String& value) { m_namespaceHasBeenSet = true; m_namespace = value; } /** *

The namespace of the metric, with or without spaces.

*/ inline void SetNamespace(Aws::String&& value) { m_namespaceHasBeenSet = true; m_namespace = std::move(value); } /** *

The namespace of the metric, with or without spaces.

*/ inline void SetNamespace(const char* value) { m_namespaceHasBeenSet = true; m_namespace.assign(value); } /** *

The namespace of the metric, with or without spaces.

*/ inline GetMetricStatisticsRequest& WithNamespace(const Aws::String& value) { SetNamespace(value); return *this;} /** *

The namespace of the metric, with or without spaces.

*/ inline GetMetricStatisticsRequest& WithNamespace(Aws::String&& value) { SetNamespace(std::move(value)); return *this;} /** *

The namespace of the metric, with or without spaces.

*/ inline GetMetricStatisticsRequest& WithNamespace(const char* value) { SetNamespace(value); return *this;} /** *

The name of the metric, with or without spaces.

*/ inline const Aws::String& GetMetricName() const{ return m_metricName; } /** *

The name of the metric, with or without spaces.

*/ inline bool MetricNameHasBeenSet() const { return m_metricNameHasBeenSet; } /** *

The name of the metric, with or without spaces.

*/ inline void SetMetricName(const Aws::String& value) { m_metricNameHasBeenSet = true; m_metricName = value; } /** *

The name of the metric, with or without spaces.

*/ inline void SetMetricName(Aws::String&& value) { m_metricNameHasBeenSet = true; m_metricName = std::move(value); } /** *

The name of the metric, with or without spaces.

*/ inline void SetMetricName(const char* value) { m_metricNameHasBeenSet = true; m_metricName.assign(value); } /** *

The name of the metric, with or without spaces.

*/ inline GetMetricStatisticsRequest& WithMetricName(const Aws::String& value) { SetMetricName(value); return *this;} /** *

The name of the metric, with or without spaces.

*/ inline GetMetricStatisticsRequest& WithMetricName(Aws::String&& value) { SetMetricName(std::move(value)); return *this;} /** *

The name of the metric, with or without spaces.

*/ inline GetMetricStatisticsRequest& WithMetricName(const char* value) { SetMetricName(value); return *this;} /** *

The dimensions. If the metric contains multiple dimensions, you must include * a value for each dimension. CloudWatch treats each unique combination of * dimensions as a separate metric. If a specific combination of dimensions was not * published, you can't retrieve statistics for it. You must specify the same * dimensions that were used when the metrics were created. For an example, see Dimension * Combinations in the Amazon CloudWatch User Guide. For more * information about specifying dimensions, see Publishing * Metrics in the Amazon CloudWatch User Guide.

*/ inline const Aws::Vector& GetDimensions() const{ return m_dimensions; } /** *

The dimensions. If the metric contains multiple dimensions, you must include * a value for each dimension. CloudWatch treats each unique combination of * dimensions as a separate metric. If a specific combination of dimensions was not * published, you can't retrieve statistics for it. You must specify the same * dimensions that were used when the metrics were created. For an example, see Dimension * Combinations in the Amazon CloudWatch User Guide. For more * information about specifying dimensions, see Publishing * Metrics in the Amazon CloudWatch User Guide.

*/ inline bool DimensionsHasBeenSet() const { return m_dimensionsHasBeenSet; } /** *

The dimensions. If the metric contains multiple dimensions, you must include * a value for each dimension. CloudWatch treats each unique combination of * dimensions as a separate metric. If a specific combination of dimensions was not * published, you can't retrieve statistics for it. You must specify the same * dimensions that were used when the metrics were created. For an example, see Dimension * Combinations in the Amazon CloudWatch User Guide. For more * information about specifying dimensions, see Publishing * Metrics in the Amazon CloudWatch User Guide.

*/ inline void SetDimensions(const Aws::Vector& value) { m_dimensionsHasBeenSet = true; m_dimensions = value; } /** *

The dimensions. If the metric contains multiple dimensions, you must include * a value for each dimension. CloudWatch treats each unique combination of * dimensions as a separate metric. If a specific combination of dimensions was not * published, you can't retrieve statistics for it. You must specify the same * dimensions that were used when the metrics were created. For an example, see Dimension * Combinations in the Amazon CloudWatch User Guide. For more * information about specifying dimensions, see Publishing * Metrics in the Amazon CloudWatch User Guide.

*/ inline void SetDimensions(Aws::Vector&& value) { m_dimensionsHasBeenSet = true; m_dimensions = std::move(value); } /** *

The dimensions. If the metric contains multiple dimensions, you must include * a value for each dimension. CloudWatch treats each unique combination of * dimensions as a separate metric. If a specific combination of dimensions was not * published, you can't retrieve statistics for it. You must specify the same * dimensions that were used when the metrics were created. For an example, see Dimension * Combinations in the Amazon CloudWatch User Guide. For more * information about specifying dimensions, see Publishing * Metrics in the Amazon CloudWatch User Guide.

*/ inline GetMetricStatisticsRequest& WithDimensions(const Aws::Vector& value) { SetDimensions(value); return *this;} /** *

The dimensions. If the metric contains multiple dimensions, you must include * a value for each dimension. CloudWatch treats each unique combination of * dimensions as a separate metric. If a specific combination of dimensions was not * published, you can't retrieve statistics for it. You must specify the same * dimensions that were used when the metrics were created. For an example, see Dimension * Combinations in the Amazon CloudWatch User Guide. For more * information about specifying dimensions, see Publishing * Metrics in the Amazon CloudWatch User Guide.

*/ inline GetMetricStatisticsRequest& WithDimensions(Aws::Vector&& value) { SetDimensions(std::move(value)); return *this;} /** *

The dimensions. If the metric contains multiple dimensions, you must include * a value for each dimension. CloudWatch treats each unique combination of * dimensions as a separate metric. If a specific combination of dimensions was not * published, you can't retrieve statistics for it. You must specify the same * dimensions that were used when the metrics were created. For an example, see Dimension * Combinations in the Amazon CloudWatch User Guide. For more * information about specifying dimensions, see Publishing * Metrics in the Amazon CloudWatch User Guide.

*/ inline GetMetricStatisticsRequest& AddDimensions(const Dimension& value) { m_dimensionsHasBeenSet = true; m_dimensions.push_back(value); return *this; } /** *

The dimensions. If the metric contains multiple dimensions, you must include * a value for each dimension. CloudWatch treats each unique combination of * dimensions as a separate metric. If a specific combination of dimensions was not * published, you can't retrieve statistics for it. You must specify the same * dimensions that were used when the metrics were created. For an example, see Dimension * Combinations in the Amazon CloudWatch User Guide. For more * information about specifying dimensions, see Publishing * Metrics in the Amazon CloudWatch User Guide.

*/ inline GetMetricStatisticsRequest& AddDimensions(Dimension&& value) { m_dimensionsHasBeenSet = true; m_dimensions.push_back(std::move(value)); return *this; } /** *

The time stamp that determines the first data point to return. Start times * are evaluated relative to the time that CloudWatch receives the request.

*

The value specified is inclusive; results include data points with the * specified time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 * UTC format (for example, 2016-10-03T23:00:00Z).

CloudWatch rounds the * specified time stamp as follows:

  • Start time less than 15 days * ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded * down to 12:32:00.

  • Start time between 15 and 63 days ago - * Round down to the nearest 5-minute clock interval. For example, 12:32:34 is * rounded down to 12:30:00.

  • Start time greater than 63 days ago * - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is * rounded down to 12:00:00.

If you set Period to * 5, 10, or 30, the start time of your request is rounded down to the nearest time * that corresponds to even 5-, 10-, or 30-second divisions of a minute. For * example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second * period, the start time of your request is rounded down and you receive data from * 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes * of data, using a period of 5 seconds, you receive data timestamped between * 15:02:15 and 15:07:15.

*/ inline const Aws::Utils::DateTime& GetStartTime() const{ return m_startTime; } /** *

The time stamp that determines the first data point to return. Start times * are evaluated relative to the time that CloudWatch receives the request.

*

The value specified is inclusive; results include data points with the * specified time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 * UTC format (for example, 2016-10-03T23:00:00Z).

CloudWatch rounds the * specified time stamp as follows:

  • Start time less than 15 days * ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded * down to 12:32:00.

  • Start time between 15 and 63 days ago - * Round down to the nearest 5-minute clock interval. For example, 12:32:34 is * rounded down to 12:30:00.

  • Start time greater than 63 days ago * - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is * rounded down to 12:00:00.

If you set Period to * 5, 10, or 30, the start time of your request is rounded down to the nearest time * that corresponds to even 5-, 10-, or 30-second divisions of a minute. For * example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second * period, the start time of your request is rounded down and you receive data from * 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes * of data, using a period of 5 seconds, you receive data timestamped between * 15:02:15 and 15:07:15.

*/ inline bool StartTimeHasBeenSet() const { return m_startTimeHasBeenSet; } /** *

The time stamp that determines the first data point to return. Start times * are evaluated relative to the time that CloudWatch receives the request.

*

The value specified is inclusive; results include data points with the * specified time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 * UTC format (for example, 2016-10-03T23:00:00Z).

CloudWatch rounds the * specified time stamp as follows:

  • Start time less than 15 days * ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded * down to 12:32:00.

  • Start time between 15 and 63 days ago - * Round down to the nearest 5-minute clock interval. For example, 12:32:34 is * rounded down to 12:30:00.

  • Start time greater than 63 days ago * - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is * rounded down to 12:00:00.

If you set Period to * 5, 10, or 30, the start time of your request is rounded down to the nearest time * that corresponds to even 5-, 10-, or 30-second divisions of a minute. For * example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second * period, the start time of your request is rounded down and you receive data from * 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes * of data, using a period of 5 seconds, you receive data timestamped between * 15:02:15 and 15:07:15.

*/ inline void SetStartTime(const Aws::Utils::DateTime& value) { m_startTimeHasBeenSet = true; m_startTime = value; } /** *

The time stamp that determines the first data point to return. Start times * are evaluated relative to the time that CloudWatch receives the request.

*

The value specified is inclusive; results include data points with the * specified time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 * UTC format (for example, 2016-10-03T23:00:00Z).

CloudWatch rounds the * specified time stamp as follows:

  • Start time less than 15 days * ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded * down to 12:32:00.

  • Start time between 15 and 63 days ago - * Round down to the nearest 5-minute clock interval. For example, 12:32:34 is * rounded down to 12:30:00.

  • Start time greater than 63 days ago * - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is * rounded down to 12:00:00.

If you set Period to * 5, 10, or 30, the start time of your request is rounded down to the nearest time * that corresponds to even 5-, 10-, or 30-second divisions of a minute. For * example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second * period, the start time of your request is rounded down and you receive data from * 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes * of data, using a period of 5 seconds, you receive data timestamped between * 15:02:15 and 15:07:15.

*/ inline void SetStartTime(Aws::Utils::DateTime&& value) { m_startTimeHasBeenSet = true; m_startTime = std::move(value); } /** *

The time stamp that determines the first data point to return. Start times * are evaluated relative to the time that CloudWatch receives the request.

*

The value specified is inclusive; results include data points with the * specified time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 * UTC format (for example, 2016-10-03T23:00:00Z).

CloudWatch rounds the * specified time stamp as follows:

  • Start time less than 15 days * ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded * down to 12:32:00.

  • Start time between 15 and 63 days ago - * Round down to the nearest 5-minute clock interval. For example, 12:32:34 is * rounded down to 12:30:00.

  • Start time greater than 63 days ago * - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is * rounded down to 12:00:00.

If you set Period to * 5, 10, or 30, the start time of your request is rounded down to the nearest time * that corresponds to even 5-, 10-, or 30-second divisions of a minute. For * example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second * period, the start time of your request is rounded down and you receive data from * 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes * of data, using a period of 5 seconds, you receive data timestamped between * 15:02:15 and 15:07:15.

*/ inline GetMetricStatisticsRequest& WithStartTime(const Aws::Utils::DateTime& value) { SetStartTime(value); return *this;} /** *

The time stamp that determines the first data point to return. Start times * are evaluated relative to the time that CloudWatch receives the request.

*

The value specified is inclusive; results include data points with the * specified time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 * UTC format (for example, 2016-10-03T23:00:00Z).

CloudWatch rounds the * specified time stamp as follows:

  • Start time less than 15 days * ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded * down to 12:32:00.

  • Start time between 15 and 63 days ago - * Round down to the nearest 5-minute clock interval. For example, 12:32:34 is * rounded down to 12:30:00.

  • Start time greater than 63 days ago * - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is * rounded down to 12:00:00.

If you set Period to * 5, 10, or 30, the start time of your request is rounded down to the nearest time * that corresponds to even 5-, 10-, or 30-second divisions of a minute. For * example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second * period, the start time of your request is rounded down and you receive data from * 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes * of data, using a period of 5 seconds, you receive data timestamped between * 15:02:15 and 15:07:15.

*/ inline GetMetricStatisticsRequest& WithStartTime(Aws::Utils::DateTime&& value) { SetStartTime(std::move(value)); return *this;} /** *

The time stamp that determines the last data point to return.

The * value specified is exclusive; results include data points up to the specified * time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format * (for example, 2016-10-10T23:00:00Z).

*/ inline const Aws::Utils::DateTime& GetEndTime() const{ return m_endTime; } /** *

The time stamp that determines the last data point to return.

The * value specified is exclusive; results include data points up to the specified * time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format * (for example, 2016-10-10T23:00:00Z).

*/ inline bool EndTimeHasBeenSet() const { return m_endTimeHasBeenSet; } /** *

The time stamp that determines the last data point to return.

The * value specified is exclusive; results include data points up to the specified * time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format * (for example, 2016-10-10T23:00:00Z).

*/ inline void SetEndTime(const Aws::Utils::DateTime& value) { m_endTimeHasBeenSet = true; m_endTime = value; } /** *

The time stamp that determines the last data point to return.

The * value specified is exclusive; results include data points up to the specified * time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format * (for example, 2016-10-10T23:00:00Z).

*/ inline void SetEndTime(Aws::Utils::DateTime&& value) { m_endTimeHasBeenSet = true; m_endTime = std::move(value); } /** *

The time stamp that determines the last data point to return.

The * value specified is exclusive; results include data points up to the specified * time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format * (for example, 2016-10-10T23:00:00Z).

*/ inline GetMetricStatisticsRequest& WithEndTime(const Aws::Utils::DateTime& value) { SetEndTime(value); return *this;} /** *

The time stamp that determines the last data point to return.

The * value specified is exclusive; results include data points up to the specified * time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format * (for example, 2016-10-10T23:00:00Z).

*/ inline GetMetricStatisticsRequest& WithEndTime(Aws::Utils::DateTime&& value) { SetEndTime(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 GetMetricStatisticsRequest& WithPeriod(int value) { SetPeriod(value); return *this;} /** *

The metric statistics, other than percentile. For percentile statistics, use * ExtendedStatistics. When calling GetMetricStatistics, * you must specify either Statistics or * ExtendedStatistics, but not both.

*/ inline const Aws::Vector& GetStatistics() const{ return m_statistics; } /** *

The metric statistics, other than percentile. For percentile statistics, use * ExtendedStatistics. When calling GetMetricStatistics, * you must specify either Statistics or * ExtendedStatistics, but not both.

*/ inline bool StatisticsHasBeenSet() const { return m_statisticsHasBeenSet; } /** *

The metric statistics, other than percentile. For percentile statistics, use * ExtendedStatistics. When calling GetMetricStatistics, * you must specify either Statistics or * ExtendedStatistics, but not both.

*/ inline void SetStatistics(const Aws::Vector& value) { m_statisticsHasBeenSet = true; m_statistics = value; } /** *

The metric statistics, other than percentile. For percentile statistics, use * ExtendedStatistics. When calling GetMetricStatistics, * you must specify either Statistics or * ExtendedStatistics, but not both.

*/ inline void SetStatistics(Aws::Vector&& value) { m_statisticsHasBeenSet = true; m_statistics = std::move(value); } /** *

The metric statistics, other than percentile. For percentile statistics, use * ExtendedStatistics. When calling GetMetricStatistics, * you must specify either Statistics or * ExtendedStatistics, but not both.

*/ inline GetMetricStatisticsRequest& WithStatistics(const Aws::Vector& value) { SetStatistics(value); return *this;} /** *

The metric statistics, other than percentile. For percentile statistics, use * ExtendedStatistics. When calling GetMetricStatistics, * you must specify either Statistics or * ExtendedStatistics, but not both.

*/ inline GetMetricStatisticsRequest& WithStatistics(Aws::Vector&& value) { SetStatistics(std::move(value)); return *this;} /** *

The metric statistics, other than percentile. For percentile statistics, use * ExtendedStatistics. When calling GetMetricStatistics, * you must specify either Statistics or * ExtendedStatistics, but not both.

*/ inline GetMetricStatisticsRequest& AddStatistics(const Statistic& value) { m_statisticsHasBeenSet = true; m_statistics.push_back(value); return *this; } /** *

The metric statistics, other than percentile. For percentile statistics, use * ExtendedStatistics. When calling GetMetricStatistics, * you must specify either Statistics or * ExtendedStatistics, but not both.

*/ inline GetMetricStatisticsRequest& AddStatistics(Statistic&& value) { m_statisticsHasBeenSet = true; m_statistics.push_back(std::move(value)); return *this; } /** *

The percentile statistics. Specify values between p0.0 and p100. When calling * GetMetricStatistics, you must specify either * Statistics or ExtendedStatistics, but not both. * Percentile statistics are not available for metrics when any of the metric * values are negative numbers.

*/ inline const Aws::Vector& GetExtendedStatistics() const{ return m_extendedStatistics; } /** *

The percentile statistics. Specify values between p0.0 and p100. When calling * GetMetricStatistics, you must specify either * Statistics or ExtendedStatistics, but not both. * Percentile statistics are not available for metrics when any of the metric * values are negative numbers.

*/ inline bool ExtendedStatisticsHasBeenSet() const { return m_extendedStatisticsHasBeenSet; } /** *

The percentile statistics. Specify values between p0.0 and p100. When calling * GetMetricStatistics, you must specify either * Statistics or ExtendedStatistics, but not both. * Percentile statistics are not available for metrics when any of the metric * values are negative numbers.

*/ inline void SetExtendedStatistics(const Aws::Vector& value) { m_extendedStatisticsHasBeenSet = true; m_extendedStatistics = value; } /** *

The percentile statistics. Specify values between p0.0 and p100. When calling * GetMetricStatistics, you must specify either * Statistics or ExtendedStatistics, but not both. * Percentile statistics are not available for metrics when any of the metric * values are negative numbers.

*/ inline void SetExtendedStatistics(Aws::Vector&& value) { m_extendedStatisticsHasBeenSet = true; m_extendedStatistics = std::move(value); } /** *

The percentile statistics. Specify values between p0.0 and p100. When calling * GetMetricStatistics, you must specify either * Statistics or ExtendedStatistics, but not both. * Percentile statistics are not available for metrics when any of the metric * values are negative numbers.

*/ inline GetMetricStatisticsRequest& WithExtendedStatistics(const Aws::Vector& value) { SetExtendedStatistics(value); return *this;} /** *

The percentile statistics. Specify values between p0.0 and p100. When calling * GetMetricStatistics, you must specify either * Statistics or ExtendedStatistics, but not both. * Percentile statistics are not available for metrics when any of the metric * values are negative numbers.

*/ inline GetMetricStatisticsRequest& WithExtendedStatistics(Aws::Vector&& value) { SetExtendedStatistics(std::move(value)); return *this;} /** *

The percentile statistics. Specify values between p0.0 and p100. When calling * GetMetricStatistics, you must specify either * Statistics or ExtendedStatistics, but not both. * Percentile statistics are not available for metrics when any of the metric * values are negative numbers.

*/ inline GetMetricStatisticsRequest& AddExtendedStatistics(const Aws::String& value) { m_extendedStatisticsHasBeenSet = true; m_extendedStatistics.push_back(value); return *this; } /** *

The percentile statistics. Specify values between p0.0 and p100. When calling * GetMetricStatistics, you must specify either * Statistics or ExtendedStatistics, but not both. * Percentile statistics are not available for metrics when any of the metric * values are negative numbers.

*/ inline GetMetricStatisticsRequest& AddExtendedStatistics(Aws::String&& value) { m_extendedStatisticsHasBeenSet = true; m_extendedStatistics.push_back(std::move(value)); return *this; } /** *

The percentile statistics. Specify values between p0.0 and p100. When calling * GetMetricStatistics, you must specify either * Statistics or ExtendedStatistics, but not both. * Percentile statistics are not available for metrics when any of the metric * values are negative numbers.

*/ inline GetMetricStatisticsRequest& AddExtendedStatistics(const char* value) { m_extendedStatisticsHasBeenSet = true; m_extendedStatistics.push_back(value); return *this; } /** *

The unit for a given metric. If you omit Unit, 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; } /** *

The unit for a given metric. If you omit Unit, 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; } /** *

The unit for a given metric. If you omit Unit, 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; } /** *

The unit for a given metric. If you omit Unit, 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); } /** *

The unit for a given metric. If you omit Unit, 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 GetMetricStatisticsRequest& WithUnit(const StandardUnit& value) { SetUnit(value); return *this;} /** *

The unit for a given metric. If you omit Unit, 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 GetMetricStatisticsRequest& WithUnit(StandardUnit&& value) { SetUnit(std::move(value)); return *this;} private: Aws::String m_namespace; bool m_namespaceHasBeenSet = false; Aws::String m_metricName; bool m_metricNameHasBeenSet = false; Aws::Vector m_dimensions; bool m_dimensionsHasBeenSet = false; Aws::Utils::DateTime m_startTime; bool m_startTimeHasBeenSet = false; Aws::Utils::DateTime m_endTime; bool m_endTimeHasBeenSet = false; int m_period; bool m_periodHasBeenSet = false; Aws::Vector m_statistics; bool m_statisticsHasBeenSet = false; Aws::Vector m_extendedStatistics; bool m_extendedStatisticsHasBeenSet = false; StandardUnit m_unit; bool m_unitHasBeenSet = false; }; } // namespace Model } // namespace CloudWatch } // namespace Aws