/* * 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 { /// /// Describes a scaling policy. /// public partial class ScalingPolicy { private string _adjustmentType; private List _alarms = new List(); private string _autoScalingGroupName; private int? _cooldown; private bool? _enabled; private int? _estimatedInstanceWarmup; private string _metricAggregationType; private int? _minAdjustmentMagnitude; private int? _minAdjustmentStep; private string _policyARN; private string _policyName; private string _policyType; private PredictiveScalingConfiguration _predictiveScalingConfiguration; private int? _scalingAdjustment; private List _stepAdjustments = new List(); private TargetTrackingConfiguration _targetTrackingConfiguration; /// /// Gets and sets the property AdjustmentType. /// /// Specifies how the scaling adjustment is interpreted (for example, an absolute number /// or a percentage). The valid values are ChangeInCapacity, ExactCapacity, /// and PercentChangeInCapacity. /// /// [AWSProperty(Min=1, Max=255)] public string AdjustmentType { get { return this._adjustmentType; } set { this._adjustmentType = value; } } // Check to see if AdjustmentType property is set internal bool IsSetAdjustmentType() { return this._adjustmentType != null; } /// /// Gets and sets the property Alarms. /// /// The CloudWatch alarms related to the policy. /// /// public List Alarms { get { return this._alarms; } set { this._alarms = value; } } // Check to see if Alarms property is set internal bool IsSetAlarms() { return this._alarms != null && this._alarms.Count > 0; } /// /// Gets and sets the property AutoScalingGroupName. /// /// The name of the Auto Scaling group. /// /// [AWSProperty(Min=1, Max=255)] public string AutoScalingGroupName { get { return this._autoScalingGroupName; } set { this._autoScalingGroupName = value; } } // Check to see if AutoScalingGroupName property is set internal bool IsSetAutoScalingGroupName() { return this._autoScalingGroupName != null; } /// /// Gets and sets the property Cooldown. /// /// The duration of the policy's cooldown period, in seconds. /// /// public int Cooldown { get { return this._cooldown.GetValueOrDefault(); } set { this._cooldown = value; } } // Check to see if Cooldown property is set internal bool IsSetCooldown() { return this._cooldown.HasValue; } /// /// Gets and sets the property Enabled. /// /// Indicates whether the policy is enabled (true) or disabled (false). /// /// public bool Enabled { get { return this._enabled.GetValueOrDefault(); } set { this._enabled = value; } } // Check to see if Enabled property is set internal bool IsSetEnabled() { return this._enabled.HasValue; } /// /// Gets and sets the property EstimatedInstanceWarmup. /// /// The estimated time, in seconds, until a newly launched instance can contribute to /// the CloudWatch metrics. /// /// public int EstimatedInstanceWarmup { get { return this._estimatedInstanceWarmup.GetValueOrDefault(); } set { this._estimatedInstanceWarmup = value; } } // Check to see if EstimatedInstanceWarmup property is set internal bool IsSetEstimatedInstanceWarmup() { return this._estimatedInstanceWarmup.HasValue; } /// /// Gets and sets the property MetricAggregationType. /// /// The aggregation type for the CloudWatch metrics. The valid values are Minimum, /// Maximum, and Average. /// /// [AWSProperty(Min=1, Max=32)] public string MetricAggregationType { get { return this._metricAggregationType; } set { this._metricAggregationType = value; } } // Check to see if MetricAggregationType property is set internal bool IsSetMetricAggregationType() { return this._metricAggregationType != null; } /// /// Gets and sets the property MinAdjustmentMagnitude. /// /// The minimum value to scale by when the adjustment type is PercentChangeInCapacity. /// /// /// public int MinAdjustmentMagnitude { get { return this._minAdjustmentMagnitude.GetValueOrDefault(); } set { this._minAdjustmentMagnitude = value; } } // Check to see if MinAdjustmentMagnitude property is set internal bool IsSetMinAdjustmentMagnitude() { return this._minAdjustmentMagnitude.HasValue; } /// /// Gets and sets the property MinAdjustmentStep. /// /// Available for backward compatibility. Use MinAdjustmentMagnitude instead. /// /// public int MinAdjustmentStep { get { return this._minAdjustmentStep.GetValueOrDefault(); } set { this._minAdjustmentStep = value; } } // Check to see if MinAdjustmentStep property is set internal bool IsSetMinAdjustmentStep() { return this._minAdjustmentStep.HasValue; } /// /// Gets and sets the property PolicyARN. /// /// The Amazon Resource Name (ARN) of the policy. /// /// [AWSProperty(Min=1, Max=1600)] public string PolicyARN { get { return this._policyARN; } set { this._policyARN = value; } } // Check to see if PolicyARN property is set internal bool IsSetPolicyARN() { return this._policyARN != null; } /// /// Gets and sets the property PolicyName. /// /// The name of the scaling policy. /// /// [AWSProperty(Min=1, Max=255)] public string PolicyName { get { return this._policyName; } set { this._policyName = value; } } // Check to see if PolicyName property is set internal bool IsSetPolicyName() { return this._policyName != null; } /// /// Gets and sets the property PolicyType. /// /// One of the following policy types: /// ///
  • /// /// TargetTrackingScaling /// ///
  • /// /// StepScaling /// ///
  • /// /// SimpleScaling (default) /// ///
  • /// /// PredictiveScaling /// ///
/// /// For more information, see Target /// tracking scaling policies and Step /// and simple scaling policies in the Amazon EC2 Auto Scaling User Guide. /// ///
[AWSProperty(Min=1, Max=64)] public string PolicyType { get { return this._policyType; } set { this._policyType = value; } } // Check to see if PolicyType property is set internal bool IsSetPolicyType() { return this._policyType != null; } /// /// Gets and sets the property PredictiveScalingConfiguration. /// /// A predictive scaling policy. /// /// public PredictiveScalingConfiguration PredictiveScalingConfiguration { get { return this._predictiveScalingConfiguration; } set { this._predictiveScalingConfiguration = value; } } // Check to see if PredictiveScalingConfiguration property is set internal bool IsSetPredictiveScalingConfiguration() { return this._predictiveScalingConfiguration != null; } /// /// Gets and sets the property ScalingAdjustment. /// /// The amount by which to scale, based on the specified adjustment type. A positive value /// adds to the current capacity while a negative number removes from the current capacity. /// /// public int ScalingAdjustment { get { return this._scalingAdjustment.GetValueOrDefault(); } set { this._scalingAdjustment = value; } } // Check to see if ScalingAdjustment property is set internal bool IsSetScalingAdjustment() { return this._scalingAdjustment.HasValue; } /// /// Gets and sets the property StepAdjustments. /// /// A set of adjustments that enable you to scale based on the size of the alarm breach. /// /// public List StepAdjustments { get { return this._stepAdjustments; } set { this._stepAdjustments = value; } } // Check to see if StepAdjustments property is set internal bool IsSetStepAdjustments() { return this._stepAdjustments != null && this._stepAdjustments.Count > 0; } /// /// Gets and sets the property TargetTrackingConfiguration. /// /// A target tracking scaling policy. /// /// public TargetTrackingConfiguration TargetTrackingConfiguration { get { return this._targetTrackingConfiguration; } set { this._targetTrackingConfiguration = value; } } // Check to see if TargetTrackingConfiguration property is set internal bool IsSetTargetTrackingConfiguration() { return this._targetTrackingConfiguration != null; } } }