/* * 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 { /// /// This structure is used in both GetMetricData and PutMetricAlarm. /// The supported use of this structure is different for those two operations. /// /// /// /// When used in GetMetricData, it indicates the metric data to return, and /// whether this call is just retrieving a batch set of data for one metric, or is performing /// a Metrics Insights query or a math expression. A single GetMetricData /// call can include up to 500 MetricDataQuery structures. /// /// /// /// When used in PutMetricAlarm, it enables you to create an alarm based /// on a metric math expression. Each MetricDataQuery in the array specifies /// either a metric to retrieve, or a math expression to be performed on retrieved metrics. /// A single PutMetricAlarm call can include up to 20 MetricDataQuery /// structures in the array. The 20 structures can include as many as 10 structures that /// contain a MetricStat parameter to retrieve a metric, and as many as 10 /// structures that contain the Expression parameter to perform a math expression. /// Of those Expression structures, one must have true as the /// value for ReturnData. The result of this expression is the value the /// alarm watches. /// /// /// /// Any expression used in a PutMetricAlarm operation must return a single /// time series. For more information, see Metric /// Math Syntax and Functions in the Amazon CloudWatch User Guide. /// /// /// /// Some of the parameters of this structure also have different uses whether you are /// using this structure in a GetMetricData operation or a PutMetricAlarm /// operation. These differences are explained in the following parameter list. /// /// public partial class MetricDataQuery { private string _accountId; private string _expression; private string _id; private string _label; private MetricStat _metricStat; private int? _period; private bool? _returnData; /// /// Gets and sets the property AccountId. /// /// The ID of the account where the metrics are located. /// /// /// /// If you are performing a GetMetricData operation in a monitoring account, /// use this to specify which account to retrieve this metric from. /// /// /// /// If you are performing a PutMetricAlarm operation, use this to specify /// which account contains the metric that the alarm is watching. /// /// [AWSProperty(Min=1, Max=255)] public string AccountId { get { return this._accountId; } set { this._accountId = value; } } // Check to see if AccountId property is set internal bool IsSetAccountId() { return this._accountId != null; } /// /// Gets and sets the property Expression. /// /// This field can contain either a Metrics Insights query, or a metric math expression /// to be performed on the returned data. For more information about Metrics Insights /// queries, see Metrics /// Insights query components and syntax in the Amazon CloudWatch User Guide. /// /// /// /// A math expression can use the Id of the other metrics or queries to refer /// to those metrics, and can also use the Id of other expressions to use /// the result of those expressions. For more information about metric math expressions, /// see Metric /// Math Syntax and Functions in the Amazon CloudWatch User Guide. /// /// /// /// Within each MetricDataQuery object, you must specify either Expression /// or MetricStat but not both. /// /// [AWSProperty(Min=1, Max=2048)] public string Expression { get { return this._expression; } set { this._expression = value; } } // Check to see if Expression property is set internal bool IsSetExpression() { return this._expression != null; } /// /// Gets and sets the property Id. /// /// A short name used to tie this object to the results in the response. This name must /// be unique within a single call to GetMetricData. If you are performing /// math expressions on this set of data, this name represents that data and can serve /// as a variable in the mathematical expression. The valid characters are letters, numbers, /// and underscore. The first character must be a lowercase letter. /// /// [AWSProperty(Required=true, Min=1, Max=255)] public string Id { get { return this._id; } set { this._id = value; } } // Check to see if Id property is set internal bool IsSetId() { return this._id != null; } /// /// Gets and sets the property Label. /// /// A human-readable label for this metric or expression. This is especially useful if /// this is an expression, so that you know what the value represents. If the metric or /// expression is shown in a CloudWatch dashboard widget, the label is shown. If Label /// is omitted, CloudWatch generates a default. /// /// /// /// You can put dynamic expressions into a label, so that it is more descriptive. For /// more information, see Using /// Dynamic Labels. /// /// public string Label { get { return this._label; } set { this._label = value; } } // Check to see if Label property is set internal bool IsSetLabel() { return this._label != null; } /// /// Gets and sets the property MetricStat. /// /// The metric to be returned, along with statistics, period, and units. Use this parameter /// only if this object is retrieving a metric and not performing a math expression on /// returned data. /// /// /// /// Within one MetricDataQuery object, you must specify either Expression /// or MetricStat but not both. /// /// public MetricStat MetricStat { get { return this._metricStat; } set { this._metricStat = value; } } // Check to see if MetricStat property is set internal bool IsSetMetricStat() { return this._metricStat != null; } /// /// Gets and sets the property 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 operation that includes /// a StorageResolution of 1 second. /// /// [AWSProperty(Min=1)] public int Period { get { return this._period.GetValueOrDefault(); } set { this._period = value; } } // Check to see if Period property is set internal bool IsSetPeriod() { return this._period.HasValue; } /// /// Gets and sets the property ReturnData. /// /// When used in GetMetricData, this option indicates whether to return the /// timestamps and raw data values of this metric. If you are performing this call just /// to do math expressions and do not also need the raw data returned, you can specify /// false. If you omit this, the default of true is used. /// /// /// /// When used in PutMetricAlarm, specify true for the one expression /// result to use as the alarm. For all other metrics and expressions in the same PutMetricAlarm /// operation, specify ReturnData as False. /// /// public bool ReturnData { get { return this._returnData.GetValueOrDefault(); } set { this._returnData = value; } } // Check to see if ReturnData property is set internal bool IsSetReturnData() { return this._returnData.HasValue; } } }