/* * 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 autoscaling-2011-01-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.AutoScaling.Model { /// <summary> /// Represents a CloudWatch metric of your choosing for a target tracking scaling policy /// to use with Amazon EC2 Auto Scaling. /// /// /// <para> /// To create your customized metric specification: /// </para> /// <ul> <li> /// <para> /// Add values for each required property from CloudWatch. You can use an existing metric, /// or a new metric that you create. To use your own metric, you must first publish the /// metric to CloudWatch. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html">Publish /// custom metrics</a> in the <i>Amazon CloudWatch User Guide</i>. /// </para> /// </li> <li> /// <para> /// Choose a metric that changes proportionally with capacity. The value of the metric /// should increase or decrease in inverse proportion to the number of capacity units. /// That is, the value of the metric should decrease when capacity increases. /// </para> /// </li> </ul> /// <para> /// For more information about the CloudWatch terminology below, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html">Amazon /// CloudWatch concepts</a>. /// </para> /// <note> /// <para> /// Each individual service provides information about the metrics, namespace, and dimensions /// they use. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html">Amazon /// Web Services services that publish CloudWatch metrics</a> in the <i>Amazon CloudWatch /// User Guide</i>. /// </para> /// </note> /// </summary> public partial class CustomizedMetricSpecification { private List<MetricDimension> _dimensions = new List<MetricDimension>(); private string _metricName; private List<TargetTrackingMetricDataQuery> _metrics = new List<TargetTrackingMetricDataQuery>(); private string _awsNamespace; private MetricStatistic _statistic; private string _unit; /// <summary> /// Gets and sets the property Dimensions. /// <para> /// The dimensions of the metric. /// </para> /// /// <para> /// Conditional: If you published your metric with dimensions, you must specify the same /// dimensions in your scaling policy. /// </para> /// </summary> public List<MetricDimension> Dimensions { get { return this._dimensions; } set { this._dimensions = value; } } // Check to see if Dimensions property is set internal bool IsSetDimensions() { return this._dimensions != null && this._dimensions.Count > 0; } /// <summary> /// Gets and sets the property MetricName. /// <para> /// The name of the metric. To get the exact metric name, namespace, and dimensions, inspect /// the <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html">Metric</a> /// object that is returned by a call to <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html">ListMetrics</a>. /// </para> /// </summary> public string MetricName { get { return this._metricName; } set { this._metricName = value; } } // Check to see if MetricName property is set internal bool IsSetMetricName() { return this._metricName != null; } /// <summary> /// Gets and sets the property Metrics. /// <para> /// The metrics to include in the target tracking scaling policy, as a metric data query. /// This can include both raw metric and metric math expressions. /// </para> /// </summary> public List<TargetTrackingMetricDataQuery> Metrics { get { return this._metrics; } set { this._metrics = value; } } // Check to see if Metrics property is set internal bool IsSetMetrics() { return this._metrics != null && this._metrics.Count > 0; } /// <summary> /// Gets and sets the property Namespace. /// <para> /// The namespace of the metric. /// </para> /// </summary> public string Namespace { get { return this._awsNamespace; } set { this._awsNamespace = value; } } // Check to see if Namespace property is set internal bool IsSetNamespace() { return this._awsNamespace != null; } /// <summary> /// Gets and sets the property Statistic. /// <para> /// The statistic of the metric. /// </para> /// </summary> public MetricStatistic Statistic { get { return this._statistic; } set { this._statistic = value; } } // Check to see if Statistic property is set internal bool IsSetStatistic() { return this._statistic != null; } /// <summary> /// Gets and sets the property Unit. /// <para> /// The unit of the metric. For a complete list of the units that CloudWatch supports, /// see the <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html">MetricDatum</a> /// data type in the <i>Amazon CloudWatch API Reference</i>. /// </para> /// </summary> public string Unit { get { return this._unit; } set { this._unit = value; } } // Check to see if Unit property is set internal bool IsSetUnit() { return this._unit != null; } } }