/*
* 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 application-autoscaling-2016-02-06.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.ApplicationAutoScaling.Model
{
///
/// Represents a step scaling policy configuration to use with Application Auto Scaling.
///
///
///
/// For more information, see Step
/// scaling policies in the Application Auto Scaling User Guide.
///
///
public partial class StepScalingPolicyConfiguration
{
private AdjustmentType _adjustmentType;
private int? _cooldown;
private MetricAggregationType _metricAggregationType;
private int? _minAdjustmentMagnitude;
private List _stepAdjustments = new List();
///
/// Gets and sets the property AdjustmentType.
///
/// Specifies how the ScalingAdjustment
value in a StepAdjustment
/// is interpreted (for example, an absolute number or a percentage). The valid values
/// are ChangeInCapacity
, ExactCapacity
, and PercentChangeInCapacity
.
///
///
///
///
/// AdjustmentType
is required if you are adding a new step scaling policy
/// configuration.
///
///
public AdjustmentType 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 Cooldown.
///
/// The amount of time, in seconds, to wait for a previous scaling activity to take effect.
/// If not specified, the default value is 300. For more information, see Cooldown
/// period in the Application Auto Scaling User Guide.
///
///
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 MetricAggregationType.
///
/// The aggregation type for the CloudWatch metrics. Valid values are Minimum
,
/// Maximum
, and Average
. If the aggregation type is null, the
/// value is treated as Average
.
///
///
public MetricAggregationType 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
.
/// For example, suppose that you create a step scaling policy to scale out an Amazon
/// ECS service by 25 percent and you specify a MinAdjustmentMagnitude
of
/// 2. If the service has 4 tasks and the scaling policy is performed, 25 percent of 4
/// is 1. However, because you specified a MinAdjustmentMagnitude
of 2, Application
/// Auto Scaling scales out the service by 2 tasks.
///
///
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 StepAdjustments.
///
/// A set of adjustments that enable you to scale based on the size of the alarm breach.
///
///
///
/// At least one step adjustment is required if you are adding a new step scaling policy
/// configuration.
///
///
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;
}
}
}