/* * 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 { /// /// Container for the parameters to the UpdateAutoScalingGroup operation. /// We strongly recommend that all Auto Scaling groups use launch templates to ensure /// full functionality for Amazon EC2 Auto Scaling and Amazon EC2. /// /// /// /// Updates the configuration for the specified Auto Scaling group. /// /// /// /// To update an Auto Scaling group, specify the name of the group and the property that /// you want to change. Any properties that you don't specify are not changed by this /// update request. The new settings take effect on any scaling activities after this /// call returns. /// /// /// /// If you associate a new launch configuration or template with an Auto Scaling group, /// all new instances will get the updated configuration. Existing instances continue /// to run with the configuration that they were originally launched with. When you update /// a group to specify a mixed instances policy instead of a launch configuration or template, /// existing instances may be replaced to match the new purchasing options that you specified /// in the policy. For example, if the group currently has 100% On-Demand capacity and /// the policy specifies 50% Spot capacity, this means that half of your instances will /// be gradually terminated and relaunched as Spot Instances. When replacing instances, /// Amazon EC2 Auto Scaling launches new instances before terminating the old ones, so /// that updating your group does not compromise the performance or availability of your /// application. /// /// /// /// Note the following about changing DesiredCapacity, MaxSize, /// or MinSize: /// /// /// /// To see which properties have been set, call the DescribeAutoScalingGroups API. /// To view the scaling policies for an Auto Scaling group, call the DescribePolicies /// API. If the group has scaling policies, you can update them by calling the PutScalingPolicy /// API. /// /// public partial class UpdateAutoScalingGroupRequest : AmazonAutoScalingRequest { private string _autoScalingGroupName; private List _availabilityZones = new List(); private bool? _capacityRebalance; private string _context; private int? _defaultCooldown; private int? _defaultInstanceWarmup; private int? _desiredCapacity; private string _desiredCapacityType; private int? _healthCheckGracePeriod; private string _healthCheckType; private string _launchConfigurationName; private LaunchTemplateSpecification _launchTemplate; private int? _maxInstanceLifetime; private int? _maxSize; private int? _minSize; private MixedInstancesPolicy _mixedInstancesPolicy; private bool? _newInstancesProtectedFromScaleIn; private string _placementGroup; private string _serviceLinkedRoleARN; private List _terminationPolicies = new List(); private string _vpcZoneIdentifier; /// /// Gets and sets the property AutoScalingGroupName. /// /// The name of the Auto Scaling group. /// /// [AWSProperty(Required=true, 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 AvailabilityZones. /// /// One or more Availability Zones for the group. /// /// public List AvailabilityZones { get { return this._availabilityZones; } set { this._availabilityZones = value; } } // Check to see if AvailabilityZones property is set internal bool IsSetAvailabilityZones() { return this._availabilityZones != null && this._availabilityZones.Count > 0; } /// /// Gets and sets the property CapacityRebalance. /// /// Enables or disables Capacity Rebalancing. For more information, see Use /// Capacity Rebalancing to handle Amazon EC2 Spot Interruptions in the Amazon /// EC2 Auto Scaling User Guide. /// /// public bool CapacityRebalance { get { return this._capacityRebalance.GetValueOrDefault(); } set { this._capacityRebalance = value; } } // Check to see if CapacityRebalance property is set internal bool IsSetCapacityRebalance() { return this._capacityRebalance.HasValue; } /// /// Gets and sets the property Context. /// /// Reserved. /// /// public string Context { get { return this._context; } set { this._context = value; } } // Check to see if Context property is set internal bool IsSetContext() { return this._context != null; } /// /// Gets and sets the property DefaultCooldown. /// /// Only needed if you use simple scaling policies. /// /// /// /// The amount of time, in seconds, between one scaling activity ending and another one /// starting due to simple scaling policies. For more information, see Scaling /// cooldowns for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. /// /// public int DefaultCooldown { get { return this._defaultCooldown.GetValueOrDefault(); } set { this._defaultCooldown = value; } } // Check to see if DefaultCooldown property is set internal bool IsSetDefaultCooldown() { return this._defaultCooldown.HasValue; } /// /// Gets and sets the property DefaultInstanceWarmup. /// /// The amount of time, in seconds, until a new instance is considered to have finished /// initializing and resource consumption to become stable after it enters the InService /// state. /// /// /// /// During an instance refresh, Amazon EC2 Auto Scaling waits for the warm-up period after /// it replaces an instance before it moves on to replacing the next instance. Amazon /// EC2 Auto Scaling also waits for the warm-up period before aggregating the metrics /// for new instances with existing instances in the Amazon CloudWatch metrics that are /// used for scaling, resulting in more reliable usage data. For more information, see /// Set /// the default instance warmup for an Auto Scaling group in the Amazon EC2 Auto /// Scaling User Guide. /// /// /// /// To manage various warm-up settings at the group level, we recommend that you set the /// default instance warmup, even if it is set to 0 seconds. To remove a value /// that you previously set, include the property but specify -1 for the /// value. However, we strongly recommend keeping the default instance warmup enabled /// by specifying a value of 0 or other nominal value. /// /// /// public int DefaultInstanceWarmup { get { return this._defaultInstanceWarmup.GetValueOrDefault(); } set { this._defaultInstanceWarmup = value; } } // Check to see if DefaultInstanceWarmup property is set internal bool IsSetDefaultInstanceWarmup() { return this._defaultInstanceWarmup.HasValue; } /// /// Gets and sets the property DesiredCapacity. /// /// The desired capacity is the initial capacity of the Auto Scaling group after this /// operation completes and the capacity it attempts to maintain. This number must be /// greater than or equal to the minimum size of the group and less than or equal to the /// maximum size of the group. /// /// public int DesiredCapacity { get { return this._desiredCapacity.GetValueOrDefault(); } set { this._desiredCapacity = value; } } // Check to see if DesiredCapacity property is set internal bool IsSetDesiredCapacity() { return this._desiredCapacity.HasValue; } /// /// Gets and sets the property DesiredCapacityType. /// /// The unit of measurement for the value specified for desired capacity. Amazon EC2 Auto /// Scaling supports DesiredCapacityType for attribute-based instance type /// selection only. For more information, see Creating /// an Auto Scaling group using attribute-based instance type selection in the Amazon /// EC2 Auto Scaling User Guide. /// /// /// /// By default, Amazon EC2 Auto Scaling specifies units, which translates /// into number of instances. /// /// /// /// Valid values: units | vcpu | memory-mib /// /// [AWSProperty(Min=1, Max=255)] public string DesiredCapacityType { get { return this._desiredCapacityType; } set { this._desiredCapacityType = value; } } // Check to see if DesiredCapacityType property is set internal bool IsSetDesiredCapacityType() { return this._desiredCapacityType != null; } /// /// Gets and sets the property HealthCheckGracePeriod. /// /// The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking /// the health status of an EC2 instance that has come into service and marking it unhealthy /// due to a failed health check. This is useful if your instances do not immediately /// pass their health checks after they enter the InService state. For more /// information, see Set /// the health check grace period for an Auto Scaling group in the Amazon EC2 Auto /// Scaling User Guide. /// /// public int HealthCheckGracePeriod { get { return this._healthCheckGracePeriod.GetValueOrDefault(); } set { this._healthCheckGracePeriod = value; } } // Check to see if HealthCheckGracePeriod property is set internal bool IsSetHealthCheckGracePeriod() { return this._healthCheckGracePeriod.HasValue; } /// /// Gets and sets the property HealthCheckType. /// /// A comma-separated value string of one or more health check types. /// /// /// /// The valid values are EC2, ELB, and VPC_LATTICE. /// EC2 is the default health check and cannot be disabled. For more information, /// see Health /// checks for Auto Scaling instances in the Amazon EC2 Auto Scaling User Guide. /// /// /// /// Only specify EC2 if you must clear a value that was previously set. /// /// [AWSProperty(Min=1, Max=32)] public string HealthCheckType { get { return this._healthCheckType; } set { this._healthCheckType = value; } } // Check to see if HealthCheckType property is set internal bool IsSetHealthCheckType() { return this._healthCheckType != null; } /// /// Gets and sets the property LaunchConfigurationName. /// /// The name of the launch configuration. If you specify LaunchConfigurationName /// in your update request, you can't specify LaunchTemplate or MixedInstancesPolicy. /// /// [AWSProperty(Min=1, Max=255)] public string LaunchConfigurationName { get { return this._launchConfigurationName; } set { this._launchConfigurationName = value; } } // Check to see if LaunchConfigurationName property is set internal bool IsSetLaunchConfigurationName() { return this._launchConfigurationName != null; } /// /// Gets and sets the property LaunchTemplate. /// /// The launch template and version to use to specify the updates. If you specify LaunchTemplate /// in your update request, you can't specify LaunchConfigurationName or /// MixedInstancesPolicy. /// /// public LaunchTemplateSpecification LaunchTemplate { get { return this._launchTemplate; } set { this._launchTemplate = value; } } // Check to see if LaunchTemplate property is set internal bool IsSetLaunchTemplate() { return this._launchTemplate != null; } /// /// Gets and sets the property MaxInstanceLifetime. /// /// The maximum amount of time, in seconds, that an instance can be in service. The default /// is null. If specified, the value must be either 0 or a number equal to or greater /// than 86,400 seconds (1 day). To clear a previously set value, specify a new value /// of 0. For more information, see Replacing /// Auto Scaling instances based on maximum instance lifetime in the Amazon EC2 /// Auto Scaling User Guide. /// /// public int MaxInstanceLifetime { get { return this._maxInstanceLifetime.GetValueOrDefault(); } set { this._maxInstanceLifetime = value; } } // Check to see if MaxInstanceLifetime property is set internal bool IsSetMaxInstanceLifetime() { return this._maxInstanceLifetime.HasValue; } /// /// Gets and sets the property MaxSize. /// /// The maximum size of the Auto Scaling group. /// /// /// /// With a mixed instances policy that uses instance weighting, Amazon EC2 Auto Scaling /// may need to go above MaxSize to meet your capacity requirements. In this /// event, Amazon EC2 Auto Scaling will never go above MaxSize by more than /// your largest instance weight (weights that define how many units each instance contributes /// to the desired capacity of the group). /// /// /// public int MaxSize { get { return this._maxSize.GetValueOrDefault(); } set { this._maxSize = value; } } // Check to see if MaxSize property is set internal bool IsSetMaxSize() { return this._maxSize.HasValue; } /// /// Gets and sets the property MinSize. /// /// The minimum size of the Auto Scaling group. /// /// public int MinSize { get { return this._minSize.GetValueOrDefault(); } set { this._minSize = value; } } // Check to see if MinSize property is set internal bool IsSetMinSize() { return this._minSize.HasValue; } /// /// Gets and sets the property MixedInstancesPolicy. /// /// The mixed instances policy. For more information, see Auto /// Scaling groups with multiple instance types and purchase options in the Amazon /// EC2 Auto Scaling User Guide. /// /// public MixedInstancesPolicy MixedInstancesPolicy { get { return this._mixedInstancesPolicy; } set { this._mixedInstancesPolicy = value; } } // Check to see if MixedInstancesPolicy property is set internal bool IsSetMixedInstancesPolicy() { return this._mixedInstancesPolicy != null; } /// /// Gets and sets the property NewInstancesProtectedFromScaleIn. /// /// Indicates whether newly launched instances are protected from termination by Amazon /// EC2 Auto Scaling when scaling in. For more information about preventing instances /// from terminating on scale in, see Using /// instance scale-in protection in the Amazon EC2 Auto Scaling User Guide. /// /// public bool NewInstancesProtectedFromScaleIn { get { return this._newInstancesProtectedFromScaleIn.GetValueOrDefault(); } set { this._newInstancesProtectedFromScaleIn = value; } } // Check to see if NewInstancesProtectedFromScaleIn property is set internal bool IsSetNewInstancesProtectedFromScaleIn() { return this._newInstancesProtectedFromScaleIn.HasValue; } /// /// Gets and sets the property PlacementGroup. /// /// The name of an existing placement group into which to launch your instances. For more /// information, see Placement /// groups in the Amazon EC2 User Guide for Linux Instances. /// /// /// /// A cluster placement group is a logical grouping of instances within a single /// Availability Zone. You cannot specify multiple Availability Zones and a cluster placement /// group. /// /// /// [AWSProperty(Min=1, Max=255)] public string PlacementGroup { get { return this._placementGroup; } set { this._placementGroup = value; } } // Check to see if PlacementGroup property is set internal bool IsSetPlacementGroup() { return this._placementGroup != null; } /// /// Gets and sets the property ServiceLinkedRoleARN. /// /// The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group /// uses to call other Amazon Web Services on your behalf. For more information, see Service-linked /// roles in the Amazon EC2 Auto Scaling User Guide. /// /// [AWSProperty(Min=1, Max=1600)] public string ServiceLinkedRoleARN { get { return this._serviceLinkedRoleARN; } set { this._serviceLinkedRoleARN = value; } } // Check to see if ServiceLinkedRoleARN property is set internal bool IsSetServiceLinkedRoleARN() { return this._serviceLinkedRoleARN != null; } /// /// Gets and sets the property TerminationPolicies. /// /// A policy or a list of policies that are used to select the instances to terminate. /// The policies are executed in the order that you list them. For more information, see /// Work /// with Amazon EC2 Auto Scaling termination policies in the Amazon EC2 Auto Scaling /// User Guide. /// /// /// /// Valid values: Default | AllocationStrategy | ClosestToNextInstanceHour /// | NewestInstance | OldestInstance | OldestLaunchConfiguration /// | OldestLaunchTemplate | arn:aws:lambda:region:account-id:function:my-function:my-alias /// /// /// public List TerminationPolicies { get { return this._terminationPolicies; } set { this._terminationPolicies = value; } } // Check to see if TerminationPolicies property is set internal bool IsSetTerminationPolicies() { return this._terminationPolicies != null && this._terminationPolicies.Count > 0; } /// /// Gets and sets the property VPCZoneIdentifier. /// /// A comma-separated list of subnet IDs for a virtual private cloud (VPC). If you specify /// VPCZoneIdentifier with AvailabilityZones, the subnets that /// you specify must reside in those Availability Zones. /// /// [AWSProperty(Min=1, Max=2047)] public string VPCZoneIdentifier { get { return this._vpcZoneIdentifier; } set { this._vpcZoneIdentifier = value; } } // Check to see if VPCZoneIdentifier property is set internal bool IsSetVPCZoneIdentifier() { return this._vpcZoneIdentifier != null; } } }