/* * 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 { /// /// Represents a predictive scaling policy configuration to use with Amazon EC2 Auto Scaling. /// public partial class PredictiveScalingConfiguration { private PredictiveScalingMaxCapacityBreachBehavior _maxCapacityBreachBehavior; private int? _maxCapacityBuffer; private List _metricSpecifications = new List(); private PredictiveScalingMode _mode; private int? _schedulingBufferTime; /// /// Gets and sets the property MaxCapacityBreachBehavior. /// /// Defines the behavior that should be applied if the forecast capacity approaches or /// exceeds the maximum capacity of the Auto Scaling group. Defaults to HonorMaxCapacity /// if not specified. /// /// /// /// The following are possible values: /// ///
  • /// /// HonorMaxCapacity - Amazon EC2 Auto Scaling cannot scale out capacity /// higher than the maximum capacity. The maximum capacity is enforced as a hard limit. /// /// ///
  • /// /// IncreaseMaxCapacity - Amazon EC2 Auto Scaling can scale out capacity /// higher than the maximum capacity when the forecast capacity is close to or exceeds /// the maximum capacity. The upper limit is determined by the forecasted capacity and /// the value for MaxCapacityBuffer. /// ///
///
public PredictiveScalingMaxCapacityBreachBehavior MaxCapacityBreachBehavior { get { return this._maxCapacityBreachBehavior; } set { this._maxCapacityBreachBehavior = value; } } // Check to see if MaxCapacityBreachBehavior property is set internal bool IsSetMaxCapacityBreachBehavior() { return this._maxCapacityBreachBehavior != null; } /// /// Gets and sets the property MaxCapacityBuffer. /// /// The size of the capacity buffer to use when the forecast capacity is close to or exceeds /// the maximum capacity. The value is specified as a percentage relative to the forecast /// capacity. For example, if the buffer is 10, this means a 10 percent buffer, such that /// if the forecast capacity is 50, and the maximum capacity is 40, then the effective /// maximum capacity is 55. /// /// /// /// If set to 0, Amazon EC2 Auto Scaling may scale capacity higher than the maximum capacity /// to equal but not exceed forecast capacity. /// /// /// /// Required if the MaxCapacityBreachBehavior property is set to IncreaseMaxCapacity, /// and cannot be used otherwise. /// /// [AWSProperty(Min=0, Max=100)] public int MaxCapacityBuffer { get { return this._maxCapacityBuffer.GetValueOrDefault(); } set { this._maxCapacityBuffer = value; } } // Check to see if MaxCapacityBuffer property is set internal bool IsSetMaxCapacityBuffer() { return this._maxCapacityBuffer.HasValue; } /// /// Gets and sets the property MetricSpecifications. /// /// This structure includes the metrics and target utilization to use for predictive scaling. /// /// /// /// /// This is an array, but we currently only support a single metric specification. That /// is, you can specify a target value and a single metric pair, or a target value and /// one scaling metric and one load metric. /// /// [AWSProperty(Required=true)] public List MetricSpecifications { get { return this._metricSpecifications; } set { this._metricSpecifications = value; } } // Check to see if MetricSpecifications property is set internal bool IsSetMetricSpecifications() { return this._metricSpecifications != null && this._metricSpecifications.Count > 0; } /// /// Gets and sets the property Mode. /// /// The predictive scaling mode. Defaults to ForecastOnly if not specified. /// /// public PredictiveScalingMode Mode { get { return this._mode; } set { this._mode = value; } } // Check to see if Mode property is set internal bool IsSetMode() { return this._mode != null; } /// /// Gets and sets the property SchedulingBufferTime. /// /// The amount of time, in seconds, by which the instance launch time can be advanced. /// For example, the forecast says to add capacity at 10:00 AM, and you choose to pre-launch /// instances by 5 minutes. In that case, the instances will be launched at 9:55 AM. The /// intention is to give resources time to be provisioned. It can take a few minutes to /// launch an EC2 instance. The actual amount of time required depends on several factors, /// such as the size of the instance and whether there are startup scripts to complete. /// /// /// /// /// The value must be less than the forecast interval duration of 3600 seconds (60 minutes). /// Defaults to 300 seconds if not specified. /// /// [AWSProperty(Min=0)] public int SchedulingBufferTime { get { return this._schedulingBufferTime.GetValueOrDefault(); } set { this._schedulingBufferTime = value; } } // Check to see if SchedulingBufferTime property is set internal bool IsSetSchedulingBufferTime() { return this._schedulingBufferTime.HasValue; } } }