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