Skip to content

Commit 2d09f49

Browse files
author
AWS
committed
Auto Scaling Update: This release adds the new LaunchInstances API, which can launch instances synchronously in an AutoScaling group. The API also returns instances info and launch error back immediately.
1 parent 51055d5 commit 2d09f49

File tree

2 files changed

+200
-0
lines changed

2 files changed

+200
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "Auto Scaling",
4+
"contributor": "",
5+
"description": "This release adds the new LaunchInstances API, which can launch instances synchronously in an AutoScaling group. The API also returns instances info and launch error back immediately."
6+
}

services/autoscaling/src/main/resources/codegen-resources/service-2.json

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -794,6 +794,23 @@
794794
],
795795
"documentation":"<p>Retrieves the forecast data for a predictive scaling policy.</p> <p>Load forecasts are predictions of the hourly load values using historical load data from CloudWatch and an analysis of historical trends. Capacity forecasts are represented as predicted values for the minimum capacity that is needed on an hourly basis, based on the hourly load forecast.</p> <p>A minimum of 24 hours of data is required to create the initial forecasts. However, having a full 14 days of historical data results in more accurate forecasts.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html\">Predictive scaling for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
796796
},
797+
"LaunchInstances":{
798+
"name":"LaunchInstances",
799+
"http":{
800+
"method":"POST",
801+
"requestUri":"/"
802+
},
803+
"input":{"shape":"LaunchInstancesRequest"},
804+
"output":{
805+
"shape":"LaunchInstancesResult",
806+
"resultWrapper":"LaunchInstancesResult"
807+
},
808+
"errors":[
809+
{"shape":"ResourceContentionFault"},
810+
{"shape":"IdempotentParameterMismatchError"}
811+
],
812+
"documentation":"<p> Launches a specified number of instances in an Auto Scaling group. Returns instance IDs and other details if launch is successful or error details if launch is unsuccessful. </p>"
813+
},
797814
"PutLifecycleHook":{
798815
"name":"PutLifecycleHook",
799816
"http":{
@@ -1679,6 +1696,11 @@
16791696
},
16801697
"documentation":"<p> Describes an Availability Zone distribution. </p>"
16811698
},
1699+
"AvailabilityZoneIdsLimit1":{
1700+
"type":"list",
1701+
"member":{"shape":"XmlStringMaxLen255"},
1702+
"max":1
1703+
},
16821704
"AvailabilityZoneImpairmentPolicy":{
16831705
"type":"structure",
16841706
"members":{
@@ -1697,6 +1719,11 @@
16971719
"type":"list",
16981720
"member":{"shape":"XmlStringMaxLen255"}
16991721
},
1722+
"AvailabilityZonesLimit1":{
1723+
"type":"list",
1724+
"member":{"shape":"XmlStringMaxLen255"},
1725+
"max":1
1726+
},
17001727
"BakeTime":{
17011728
"type":"integer",
17021729
"max":172800,
@@ -1951,6 +1978,12 @@
19511978
"type":"list",
19521979
"member":{"shape":"XmlStringMaxLen255"}
19531980
},
1981+
"ClientToken":{
1982+
"type":"string",
1983+
"max":64,
1984+
"min":1,
1985+
"pattern":"[A-Za-z0-9\\-_\\/]+"
1986+
},
19541987
"CompleteLifecycleActionAnswer":{
19551988
"type":"structure",
19561989
"members":{}
@@ -3173,6 +3206,19 @@
31733206
"HealthCheckGracePeriod":{"type":"integer"},
31743207
"HeartbeatTimeout":{"type":"integer"},
31753208
"HonorCooldown":{"type":"boolean"},
3209+
"IdempotentParameterMismatchError":{
3210+
"type":"structure",
3211+
"members":{
3212+
"Message":{"shape":"XmlStringMaxLen255"}
3213+
},
3214+
"documentation":"<p> Indicates that the parameters in the current request do not match the parameters from a previous request with the same client token within the idempotency window. </p>",
3215+
"error":{
3216+
"code":"IdempotentParameterMismatch",
3217+
"httpStatusCode":400,
3218+
"senderFault":true
3219+
},
3220+
"exception":true
3221+
},
31763222
"ImpairedZoneHealthCheckBehavior":{
31773223
"type":"string",
31783224
"enum":[
@@ -3231,6 +3277,40 @@
32313277
},
32323278
"documentation":"<p>Describes an EC2 instance.</p>"
32333279
},
3280+
"InstanceCollection":{
3281+
"type":"structure",
3282+
"members":{
3283+
"InstanceType":{
3284+
"shape":"XmlStringMaxLen255",
3285+
"documentation":"<p> The instance type of the launched instances. </p>"
3286+
},
3287+
"MarketType":{
3288+
"shape":"XmlStringMaxLen64",
3289+
"documentation":"<p> The market type for the instances (On-Demand or Spot). </p>"
3290+
},
3291+
"SubnetId":{
3292+
"shape":"XmlStringMaxLen255",
3293+
"documentation":"<p> The ID of the subnet where the instances were launched. </p>"
3294+
},
3295+
"AvailabilityZone":{
3296+
"shape":"XmlStringMaxLen255",
3297+
"documentation":"<p> The Availability Zone where the instances were launched. </p>"
3298+
},
3299+
"AvailabilityZoneId":{
3300+
"shape":"XmlStringMaxLen255",
3301+
"documentation":"<p> The Availability Zone ID where the instances in this collection were launched. </p>"
3302+
},
3303+
"InstanceIds":{
3304+
"shape":"InstanceIds",
3305+
"documentation":"<p> A list of instance IDs for the successfully launched instances. </p>"
3306+
}
3307+
},
3308+
"documentation":"<p> Contains details about a collection of instances launched in the Auto Scaling group. </p>"
3309+
},
3310+
"InstanceCollections":{
3311+
"type":"list",
3312+
"member":{"shape":"InstanceCollection"}
3313+
},
32343314
"InstanceGeneration":{
32353315
"type":"string",
32363316
"enum":[
@@ -3788,6 +3868,104 @@
37883868
}
37893869
}
37903870
},
3871+
"LaunchInstancesError":{
3872+
"type":"structure",
3873+
"members":{
3874+
"InstanceType":{
3875+
"shape":"XmlStringMaxLen255",
3876+
"documentation":"<p> The instance type that failed to launch. </p>"
3877+
},
3878+
"MarketType":{
3879+
"shape":"XmlStringMaxLen64",
3880+
"documentation":"<p> The market type (On-Demand or Spot) that encountered the launch error. </p>"
3881+
},
3882+
"SubnetId":{
3883+
"shape":"XmlStringMaxLen255",
3884+
"documentation":"<p> The subnet ID where the instance launch was attempted. </p>"
3885+
},
3886+
"AvailabilityZone":{
3887+
"shape":"XmlStringMaxLen255",
3888+
"documentation":"<p> The Availability Zone where the instance launch was attempted. </p>"
3889+
},
3890+
"AvailabilityZoneId":{
3891+
"shape":"XmlStringMaxLen255",
3892+
"documentation":"<p> The Availability Zone ID where the launch error occurred. </p>"
3893+
},
3894+
"ErrorCode":{
3895+
"shape":"XmlStringMaxLen64",
3896+
"documentation":"<p> The error code representing the type of error encountered (e.g., InsufficientInstanceCapacity). </p>"
3897+
},
3898+
"ErrorMessage":{
3899+
"shape":"XmlString",
3900+
"documentation":"<p> A descriptive message providing details about the error encountered during the launch attempt. </p>"
3901+
}
3902+
},
3903+
"documentation":"<p> Contains details about errors encountered during instance launch attempts. </p>"
3904+
},
3905+
"LaunchInstancesErrors":{
3906+
"type":"list",
3907+
"member":{"shape":"LaunchInstancesError"}
3908+
},
3909+
"LaunchInstancesRequest":{
3910+
"type":"structure",
3911+
"required":[
3912+
"AutoScalingGroupName",
3913+
"RequestedCapacity",
3914+
"ClientToken"
3915+
],
3916+
"members":{
3917+
"AutoScalingGroupName":{
3918+
"shape":"XmlStringMaxLen255",
3919+
"documentation":"<p> The name of the Auto Scaling group to launch instances into. </p>"
3920+
},
3921+
"RequestedCapacity":{
3922+
"shape":"RequestedCapacity",
3923+
"documentation":"<p> The number of instances to launch. Although this value can exceed 100 for instance weights, the actual instance count is limited to 100 instances per launch. </p>"
3924+
},
3925+
"ClientToken":{
3926+
"shape":"ClientToken",
3927+
"documentation":"<p> A unique, case-sensitive identifier to ensure idempotency of the request. </p>",
3928+
"idempotencyToken":true
3929+
},
3930+
"AvailabilityZones":{
3931+
"shape":"AvailabilityZonesLimit1",
3932+
"documentation":"<p> The Availability Zones for the instance launch. Must match or be included in the Auto Scaling group's Availability Zone configuration. Either <code>AvailabilityZones</code> or <code>SubnetIds</code> must be specified for groups with multiple Availability Zone configurations. </p>"
3933+
},
3934+
"AvailabilityZoneIds":{
3935+
"shape":"AvailabilityZoneIdsLimit1",
3936+
"documentation":"<p> A list of Availability Zone IDs where instances should be launched. Must match or be included in the group's AZ configuration. You cannot specify both AvailabilityZones and AvailabilityZoneIds. Required for multi-AZ groups, optional for single-AZ groups. </p>"
3937+
},
3938+
"SubnetIds":{
3939+
"shape":"SubnetIdsLimit1",
3940+
"documentation":"<p> The subnet IDs for the instance launch. Either <code>AvailabilityZones</code> or <code>SubnetIds</code> must be specified. If both are specified, the subnets must reside in the specified Availability Zones. </p>"
3941+
},
3942+
"RetryStrategy":{
3943+
"shape":"RetryStrategy",
3944+
"documentation":"<p> Specifies whether to retry asynchronously if the synchronous launch fails. Valid values are NONE (default, no async retry) and RETRY_WITH_GROUP_CONFIGURATION (increase desired capacity and retry with group configuration). </p>"
3945+
}
3946+
}
3947+
},
3948+
"LaunchInstancesResult":{
3949+
"type":"structure",
3950+
"members":{
3951+
"AutoScalingGroupName":{
3952+
"shape":"XmlStringMaxLen255",
3953+
"documentation":"<p> The name of the Auto Scaling group where the instances were launched. </p>"
3954+
},
3955+
"ClientToken":{
3956+
"shape":"ClientToken",
3957+
"documentation":"<p> The idempotency token used for the request, either customer-specified or auto-generated. </p>"
3958+
},
3959+
"Instances":{
3960+
"shape":"InstanceCollections",
3961+
"documentation":"<p> A list of successfully launched instances including details such as instance type, Availability Zone, subnet, lifecycle state, and instance IDs. </p>"
3962+
},
3963+
"Errors":{
3964+
"shape":"LaunchInstancesErrors",
3965+
"documentation":"<p> A list of errors encountered during the launch attempt including details about failed instance launches with their corresponding error codes and messages. </p>"
3966+
}
3967+
}
3968+
},
37913969
"LaunchTemplate":{
37923970
"type":"structure",
37933971
"members":{
@@ -4976,6 +5154,10 @@
49765154
"type":"string",
49775155
"enum":["Rolling"]
49785156
},
5157+
"RequestedCapacity":{
5158+
"type":"integer",
5159+
"min":1
5160+
},
49795161
"ResourceContentionFault":{
49805162
"type":"structure",
49815163
"members":{
@@ -5014,6 +5196,13 @@
50145196
"min":1,
50155197
"pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*"
50165198
},
5199+
"RetryStrategy":{
5200+
"type":"string",
5201+
"enum":[
5202+
"retry-with-group-configuration",
5203+
"none"
5204+
]
5205+
},
50175206
"ReturnData":{"type":"boolean"},
50185207
"ReuseOnScaleIn":{"type":"boolean"},
50195208
"RollbackDetails":{
@@ -5464,6 +5653,11 @@
54645653
"member":{"shape":"StepAdjustment"}
54655654
},
54665655
"String":{"type":"string"},
5656+
"SubnetIdsLimit1":{
5657+
"type":"list",
5658+
"member":{"shape":"XmlStringMaxLen255"},
5659+
"max":1
5660+
},
54675661
"SuspendedProcess":{
54685662
"type":"structure",
54695663
"members":{

0 commit comments

Comments
 (0)