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