/*
* 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 target tracking scaling policy configuration to use with Application
/// Auto Scaling.
///
///
///
/// For more information, see Target
/// tracking scaling policies in the Application Auto Scaling User Guide.
///
///
public partial class TargetTrackingScalingPolicyConfiguration
{
private CustomizedMetricSpecification _customizedMetricSpecification;
private bool? _disableScaleIn;
private PredefinedMetricSpecification _predefinedMetricSpecification;
private int? _scaleInCooldown;
private int? _scaleOutCooldown;
private double? _targetValue;
///
/// Gets and sets the property CustomizedMetricSpecification.
///
/// A customized metric. You can specify either a predefined metric or a customized metric.
///
///
public CustomizedMetricSpecification CustomizedMetricSpecification
{
get { return this._customizedMetricSpecification; }
set { this._customizedMetricSpecification = value; }
}
// Check to see if CustomizedMetricSpecification property is set
internal bool IsSetCustomizedMetricSpecification()
{
return this._customizedMetricSpecification != null;
}
///
/// Gets and sets the property DisableScaleIn.
///
/// Indicates whether scale in by the target tracking scaling policy is disabled. If the
/// value is true
, scale in is disabled and the target tracking scaling policy
/// won't remove capacity from the scalable target. Otherwise, scale in is enabled and
/// the target tracking scaling policy can remove capacity from the scalable target. The
/// default value is false
.
///
///
public bool DisableScaleIn
{
get { return this._disableScaleIn.GetValueOrDefault(); }
set { this._disableScaleIn = value; }
}
// Check to see if DisableScaleIn property is set
internal bool IsSetDisableScaleIn()
{
return this._disableScaleIn.HasValue;
}
///
/// Gets and sets the property PredefinedMetricSpecification.
///
/// A predefined metric. You can specify either a predefined metric or a customized metric.
///
///
public PredefinedMetricSpecification PredefinedMetricSpecification
{
get { return this._predefinedMetricSpecification; }
set { this._predefinedMetricSpecification = value; }
}
// Check to see if PredefinedMetricSpecification property is set
internal bool IsSetPredefinedMetricSpecification()
{
return this._predefinedMetricSpecification != null;
}
///
/// Gets and sets the property ScaleInCooldown.
///
/// The amount of time, in seconds, after a scale-in activity completes before another
/// scale-in activity can start. For more information and for default values, see Define
/// cooldown periods in the Application Auto Scaling User Guide.
///
///
public int ScaleInCooldown
{
get { return this._scaleInCooldown.GetValueOrDefault(); }
set { this._scaleInCooldown = value; }
}
// Check to see if ScaleInCooldown property is set
internal bool IsSetScaleInCooldown()
{
return this._scaleInCooldown.HasValue;
}
///
/// Gets and sets the property ScaleOutCooldown.
///
/// The amount of time, in seconds, to wait for a previous scale-out activity to take
/// effect. For more information and for default values, see Define
/// cooldown periods in the Application Auto Scaling User Guide.
///
///
public int ScaleOutCooldown
{
get { return this._scaleOutCooldown.GetValueOrDefault(); }
set { this._scaleOutCooldown = value; }
}
// Check to see if ScaleOutCooldown property is set
internal bool IsSetScaleOutCooldown()
{
return this._scaleOutCooldown.HasValue;
}
///
/// Gets and sets the property TargetValue.
///
/// The target value for the metric. Although this property accepts numbers of type Double,
/// it won't accept values that are either too small or too large. Values must be in the
/// range of -2^360 to 2^360. The value must be a valid number based on the choice of
/// metric. For example, if the metric is CPU utilization, then the target value is a
/// percent value that represents how much of the CPU can be used before scaling out.
///
///
///
///
/// If the scaling policy specifies the ALBRequestCountPerTarget
predefined
/// metric, specify the target utilization as the optimal average request count per target
/// during any one-minute interval.
///
///
///
[AWSProperty(Required=true)]
public double TargetValue
{
get { return this._targetValue.GetValueOrDefault(); }
set { this._targetValue = value; }
}
// Check to see if TargetValue property is set
internal bool IsSetTargetValue()
{
return this._targetValue.HasValue;
}
}
}