/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the monitoring-2010-08-01.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.CloudWatch.Model { /// /// Container for the parameters to the GetMetricData operation. /// You can use the GetMetricData API to retrieve CloudWatch metric values. /// The operation can also include a CloudWatch Metrics Insights query, and one or more /// metric math functions. /// /// /// /// A GetMetricData operation that does not include a query can retrieve /// as many as 500 different metrics in a single request, with a total of as many as 100,800 /// data points. You can also optionally perform metric math expressions on the values /// of the returned statistics, to create new time series that represent new insights /// into your data. For example, using Lambda metrics, you could divide the Errors metric /// by the Invocations metric to get an error rate time series. For more information about /// metric math expressions, see Metric /// Math Syntax and Functions in the Amazon CloudWatch User Guide. /// /// /// /// If you include a Metrics Insights query, each GetMetricData operation /// can include only one query. But the same GetMetricData operation can /// also retrieve other metrics. Metrics Insights queries can query only the most recent /// three hours of metric data. For more information about Metrics Insights, see Query /// your metrics with CloudWatch Metrics Insights. /// /// /// /// Calls to the GetMetricData API have a different pricing structure than /// calls to GetMetricStatistics. For more information about pricing, see /// Amazon CloudWatch Pricing. /// /// /// /// Amazon CloudWatch retains metric data as follows: /// /// /// /// Data points that are initially published with a shorter period are aggregated together /// for long-term storage. For example, if you collect data using a period of 1 minute, /// the data remains available for 15 days with 1-minute resolution. After 15 days, this /// data is still available, but is aggregated and retrievable only with a resolution /// of 5 minutes. After 63 days, the data is further aggregated and is available with /// a resolution of 1 hour. /// /// /// /// If you omit Unit in your request, 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. /// /// /// /// Using Metrics Insights queries with metric math /// /// /// /// You can't mix a Metric Insights query and metric math syntax in the same expression, /// but you can reference results from a Metrics Insights query within other Metric math /// expressions. A Metrics Insights query without a GROUP BY clause returns a single /// time-series (TS), and can be used as input for a metric math expression that expects /// a single time series. A Metrics Insights query with a GROUP BY clause returns /// an array of time-series (TS[]), and can be used as input for a metric math expression /// that expects an array of time series. /// /// public partial class GetMetricDataRequest : AmazonCloudWatchRequest { private DateTime? _endTimeUtc; private LabelOptions _labelOptions; private int? _maxDatapoints; private List _metricDataQueries = new List(); private string _nextToken; private ScanBy _scanBy; private DateTime? _startTimeUtc; /// /// Gets and sets the property EndTimeUtc. /// /// The time stamp indicating the latest data to be returned. /// /// /// /// The value specified is exclusive; results include data points up to the specified /// time stamp. /// /// /// /// For better performance, specify StartTime and EndTime values /// that align with the value of the metric's Period and sync up with the /// beginning and end of an hour. For example, if the Period of a metric /// is 5 minutes, specifying 12:05 or 12:30 as EndTime can get a faster response /// from CloudWatch than setting 12:07 or 12:29 as the EndTime. /// /// [AWSProperty(Required=true)] public DateTime EndTimeUtc { get { return this._endTimeUtc.GetValueOrDefault(); } set { this._endTime = this._endTimeUtc = value; } } // Check to see if EndTimeUtc property is set internal bool IsSetEndTimeUtc() { return this._endTimeUtc.HasValue; } /// /// Gets and sets the property LabelOptions. /// /// This structure includes the Timezone parameter, which you can use to /// specify your time zone so that the labels of returned data display the correct time /// for your time zone. /// /// public LabelOptions LabelOptions { get { return this._labelOptions; } set { this._labelOptions = value; } } // Check to see if LabelOptions property is set internal bool IsSetLabelOptions() { return this._labelOptions != null; } /// /// Gets and sets the property MaxDatapoints. /// /// The maximum number of data points the request should return before paginating. If /// you omit this, the default of 100,800 is used. /// /// public int MaxDatapoints { get { return this._maxDatapoints.GetValueOrDefault(); } set { this._maxDatapoints = value; } } // Check to see if MaxDatapoints property is set internal bool IsSetMaxDatapoints() { return this._maxDatapoints.HasValue; } /// /// Gets and sets the property MetricDataQueries. /// /// The metric queries to be returned. A single GetMetricData call can include /// as many as 500 MetricDataQuery structures. Each of these structures can /// specify either a metric to retrieve, a Metrics Insights query, or a math expression /// to perform on retrieved data. /// /// [AWSProperty(Required=true)] public List MetricDataQueries { get { return this._metricDataQueries; } set { this._metricDataQueries = value; } } // Check to see if MetricDataQueries property is set internal bool IsSetMetricDataQueries() { return this._metricDataQueries != null && this._metricDataQueries.Count > 0; } /// /// Gets and sets the property NextToken. /// /// Include this value, if it was returned by the previous GetMetricData /// operation, to get the next set of data points. /// /// public string NextToken { get { return this._nextToken; } set { this._nextToken = value; } } // Check to see if NextToken property is set internal bool IsSetNextToken() { return this._nextToken != null; } /// /// Gets and sets the property ScanBy. /// /// The order in which data points should be returned. TimestampDescending /// returns the newest data first and paginates when the MaxDatapoints limit /// is reached. TimestampAscending returns the oldest data first and paginates /// when the MaxDatapoints limit is reached. /// /// public ScanBy ScanBy { get { return this._scanBy; } set { this._scanBy = value; } } // Check to see if ScanBy property is set internal bool IsSetScanBy() { return this._scanBy != null; } /// /// Gets and sets the property StartTimeUtc. /// /// The time stamp indicating the earliest data to be returned. /// /// /// /// The value specified is inclusive; results include data points with the specified time /// stamp. /// /// /// /// 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. /// /// /// /// For better performance, specify StartTime and EndTime values /// that align with the value of the metric's Period and sync up with the /// beginning and end of an hour. For example, if the Period of a metric /// is 5 minutes, specifying 12:05 or 12:30 as StartTime can get a faster /// response from CloudWatch than setting 12:07 or 12:29 as the StartTime. /// ///
[AWSProperty(Required=true)] public DateTime StartTimeUtc { get { return this._startTimeUtc.GetValueOrDefault(); } set { this._startTime = this._startTimeUtc = value; } } // Check to see if StartTimeUtc property is set internal bool IsSetStartTimeUtc() { return this._startTimeUtc.HasValue; } #region Backwards compatible properties private DateTime? _endTime; private DateTime? _startTime; /// /// Gets and sets the property EndTimeUtc. /// /// This property is deprecated. Setting this property results in non-UTC DateTimes not /// being marshalled correctly. Use EndTimeUtc instead. Setting either EndTime or EndTimeUtc /// results in both EndTime and EndTimeUtc being assigned, the latest assignment to either /// one of the two property is reflected in the value of both. EndTime is provided for /// backwards compatibility only and assigning a non-Utc DateTime to it results in the /// wrong timestamp being passed to the service. /// /// /// /// The time stamp indicating the latest data to be returned. /// /// /// /// The value specified is exclusive; results include data points up to the specified /// time stamp. /// /// /// /// For better performance, specify StartTime and EndTime values /// that align with the value of the metric's Period and sync up with the /// beginning and end of an hour. For example, if the Period of a metric /// is 5 minutes, specifying 12:05 or 12:30 as EndTime can get a faster response /// from CloudWatch than setting 12:07 or 12:29 as the EndTime. /// /// [Obsolete("Setting this property results in non-UTC DateTimes not being marshalled correctly. " + "Use EndTimeUtc instead. Setting either EndTime or EndTimeUtc results in both EndTime and " + "EndTimeUtc being assigned, the latest assignment to either one of the two property is " + "reflected in the value of both. EndTime is provided for backwards compatibility only and " + "assigning a non-Utc DateTime to it results in the wrong timestamp being passed to the service.", false)] public DateTime EndTime { get { return this._endTime.GetValueOrDefault(); } set { this._endTime = value; this._endTimeUtc = new DateTime(value.Ticks, DateTimeKind.Utc); } } /// /// Gets and sets the property StartTimeUtc. /// /// This property is deprecated. Setting this property results in non-UTC DateTimes not /// being marshalled correctly. Use StartTimeUtc instead. Setting either StartTime or /// StartTimeUtc results in both StartTime and StartTimeUtc being assigned, the latest /// assignment to either one of the two property is reflected in the value of both. StartTime /// is provided for backwards compatibility only and assigning a non-Utc DateTime to it /// results in the wrong timestamp being passed to the service. /// /// /// /// The time stamp indicating the earliest data to be returned. /// /// /// /// The value specified is inclusive; results include data points with the specified time /// stamp. /// /// /// /// 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. /// /// /// /// For better performance, specify StartTime and EndTime values /// that align with the value of the metric's Period and sync up with the /// beginning and end of an hour. For example, if the Period of a metric /// is 5 minutes, specifying 12:05 or 12:30 as StartTime can get a faster /// response from CloudWatch than setting 12:07 or 12:29 as the StartTime. /// ///
[Obsolete("Setting this property results in non-UTC DateTimes not being marshalled correctly. " + "Use StartTimeUtc instead. Setting either StartTime or StartTimeUtc results in both StartTime and " + "StartTimeUtc being assigned, the latest assignment to either one of the two property is " + "reflected in the value of both. StartTime is provided for backwards compatibility only and " + "assigning a non-Utc DateTime to it results in the wrong timestamp being passed to the service.", false)] public DateTime StartTime { get { return this._startTime.GetValueOrDefault(); } set { this._startTime = value; this._startTimeUtc = new DateTime(value.Ticks, DateTimeKind.Utc); } } #endregion } }