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