diff --git a/clients/client-auto-scaling/AutoScaling.ts b/clients/client-auto-scaling/AutoScaling.ts index 7e90a3f18a60..b6260b2518e4 100644 --- a/clients/client-auto-scaling/AutoScaling.ts +++ b/clients/client-auto-scaling/AutoScaling.ts @@ -1963,6 +1963,8 @@ export class AutoScaling extends AutoScalingClient { *

For more information, see Getting Amazon SNS * Notifications When Your Auto Scaling Group Scales in the * Amazon EC2 Auto Scaling User Guide.

+ *

If you exceed your maximum limit of SNS topics, which is 10 per Auto Scaling group, the call + * fails.

*/ public putNotificationConfiguration( args: PutNotificationConfigurationCommandInput, @@ -2237,6 +2239,8 @@ export class AutoScaling extends AutoScalingClient { *

Updates the instance protection settings of the specified instances.

*

For more information about preventing instances that are part of an Auto Scaling group from * terminating on scale in, see Instance Protection in the Amazon EC2 Auto Scaling User Guide.

+ *

If you exceed your maximum limit of instance IDs, which is 50 per Auto Scaling group, the call + * fails.

*/ public setInstanceProtection( args: SetInstanceProtectionCommandInput, diff --git a/clients/client-auto-scaling/models/models_0.ts b/clients/client-auto-scaling/models/models_0.ts index 66ba005f6c0e..75c1201cb034 100644 --- a/clients/client-auto-scaling/models/models_0.ts +++ b/clients/client-auto-scaling/models/models_0.ts @@ -38,14 +38,9 @@ export enum ScalingActivityStatusCode { */ export interface Activity { /** - *

The start time of the activity.

- */ - StartTime: Date | undefined; - - /** - *

The reason the activity began.

+ *

A friendly, more verbose description of the activity.

*/ - Cause: string | undefined; + Description?: string; /** *

The ID of the activity.

@@ -53,9 +48,9 @@ export interface Activity { ActivityId: string | undefined; /** - *

A friendly, more verbose description of the activity.

+ *

The end time of the activity.

*/ - Description?: string; + EndTime?: Date; /** *

The name of the Auto Scaling group.

@@ -63,19 +58,19 @@ export interface Activity { AutoScalingGroupName: string | undefined; /** - *

The current status of the activity.

+ *

A value between 0 and 100 that indicates the progress of the activity.

*/ - StatusCode: ScalingActivityStatusCode | string | undefined; + Progress?: number; /** - *

The end time of the activity.

+ *

The reason the activity began.

*/ - EndTime?: Date; + Cause: string | undefined; /** - *

A value between 0 and 100 that indicates the progress of the activity.

+ *

A friendly, more verbose description of the activity status.

*/ - Progress?: number; + StatusMessage?: string; /** *

The details about the activity.

@@ -83,9 +78,14 @@ export interface Activity { Details?: string; /** - *

A friendly, more verbose description of the activity status.

+ *

The current status of the activity.

*/ - StatusMessage?: string; + StatusCode: ScalingActivityStatusCode | string | undefined; + + /** + *

The start time of the activity.

+ */ + StartTime: Date | undefined; } export namespace Activity { @@ -95,6 +95,12 @@ export namespace Activity { } export interface ActivitiesType { + /** + *

The scaling activities. Activities are sorted by start time. Activities still in + * progress are described first.

+ */ + Activities: Activity[] | undefined; + /** *

A string that indicates that the response contains more items than can be returned in * a single response. To receive additional items, specify this string for the @@ -102,12 +108,6 @@ export interface ActivitiesType { * null when there are no more items to return.

*/ NextToken?: string; - - /** - *

The scaling activities. Activities are sorted by start time. Activities still in - * progress are described first.

- */ - Activities: Activity[] | undefined; } export namespace ActivitiesType { @@ -151,14 +151,14 @@ export namespace AdjustmentType { */ export interface Alarm { /** - *

The name of the alarm.

+ *

The Amazon Resource Name (ARN) of the alarm.

*/ - AlarmName?: string; + AlarmARN?: string; /** - *

The Amazon Resource Name (ARN) of the alarm.

+ *

The name of the alarm.

*/ - AlarmARN?: string; + AlarmName?: string; } export namespace Alarm { @@ -187,14 +187,14 @@ export namespace AlreadyExistsFault { export interface AttachInstancesQuery { /** - *

The name of the Auto Scaling group.

+ *

The IDs of the instances. You can specify up to 20 instances.

*/ - AutoScalingGroupName: string | undefined; + InstanceIds?: string[]; /** - *

The IDs of the instances. You can specify up to 20 instances.

+ *

The name of the Auto Scaling group.

*/ - InstanceIds?: string[]; + AutoScalingGroupName: string | undefined; } export namespace AttachInstancesQuery { @@ -294,11 +294,6 @@ export namespace AttachLoadBalancerTargetGroupsType { *

Describes a scheduled action that could not be created, updated, or deleted.

*/ export interface FailedScheduledUpdateGroupActionRequest { - /** - *

The error code.

- */ - ErrorCode?: string; - /** *

The error message accompanying the error code.

*/ @@ -308,6 +303,11 @@ export interface FailedScheduledUpdateGroupActionRequest { *

The name of the scheduled action.

*/ ScheduledActionName: string | undefined; + + /** + *

The error code.

+ */ + ErrorCode?: string; } export namespace FailedScheduledUpdateGroupActionRequest { @@ -370,16 +370,37 @@ export namespace BatchPutScheduledUpdateGroupActionAnswer { */ export interface ScheduledUpdateGroupActionRequest { /** - *

The date and time for the recurring schedule to end. Amazon EC2 Auto Scaling does not perform the - * action after this time.

+ *

The minimum size of the Auto Scaling group.

*/ - EndTime?: Date; + MinSize?: number; + + /** + *

The date and time for the action to start, in YYYY-MM-DDThh:mm:ssZ format in UTC/GMT + * only and in quotes (for example, "2019-06-01T00:00:00Z").

+ *

If you specify Recurrence and StartTime, Amazon EC2 Auto Scaling performs + * the action at this time, and then performs the action based on the specified + * recurrence.

+ *

If you try to schedule the action in the past, Amazon EC2 Auto Scaling returns an error + * message.

+ */ + StartTime?: Date; + + /** + *

The name of the scaling action.

+ */ + ScheduledActionName: string | undefined; /** *

The maximum size of the Auto Scaling group.

*/ MaxSize?: number; + /** + *

The date and time for the recurring schedule to end. Amazon EC2 Auto Scaling does not perform the + * action after this time.

+ */ + EndTime?: Date; + /** *

The recurring schedule for the action, in Unix cron syntax format. This format * consists of five fields separated by white spaces: [Minute] [Hour] [Day_of_Month] @@ -396,27 +417,6 @@ export interface ScheduledUpdateGroupActionRequest { * action runs and the capacity it attempts to maintain.

*/ DesiredCapacity?: number; - - /** - *

The name of the scaling action.

- */ - ScheduledActionName: string | undefined; - - /** - *

The minimum size of the Auto Scaling group.

- */ - MinSize?: number; - - /** - *

The date and time for the action to start, in YYYY-MM-DDThh:mm:ssZ format in UTC/GMT - * only and in quotes (for example, "2019-06-01T00:00:00Z").

- *

If you specify Recurrence and StartTime, Amazon EC2 Auto Scaling performs - * the action at this time, and then performs the action based on the specified - * recurrence.

- *

If you try to schedule the action in the past, Amazon EC2 Auto Scaling returns an error - * message.

- */ - StartTime?: Date; } export namespace ScheduledUpdateGroupActionRequest { @@ -427,14 +427,14 @@ export namespace ScheduledUpdateGroupActionRequest { export interface BatchPutScheduledUpdateGroupActionType { /** - *

The name of the Auto Scaling group.

+ *

One or more scheduled actions. The maximum number allowed is 50.

*/ - AutoScalingGroupName: string | undefined; + ScheduledUpdateGroupActions: ScheduledUpdateGroupActionRequest[] | undefined; /** - *

One or more scheduled actions. The maximum number allowed is 50.

+ *

The name of the Auto Scaling group.

*/ - ScheduledUpdateGroupActions: ScheduledUpdateGroupActionRequest[] | undefined; + AutoScalingGroupName: string | undefined; } export namespace BatchPutScheduledUpdateGroupActionType { @@ -500,15 +500,21 @@ export namespace CompleteLifecycleActionAnswer { export interface CompleteLifecycleActionType { /** - *

The name of the Auto Scaling group.

+ *

The action for the group to take. This parameter can be either CONTINUE + * or ABANDON.

*/ - AutoScalingGroupName: string | undefined; + LifecycleActionResult: string | undefined; /** *

The ID of the instance.

*/ InstanceId?: string; + /** + *

The name of the lifecycle hook.

+ */ + LifecycleHookName: string | undefined; + /** *

A universally unique identifier (UUID) that identifies a specific lifecycle action * associated with an instance. Amazon EC2 Auto Scaling sends this token to the notification target you @@ -517,15 +523,9 @@ export interface CompleteLifecycleActionType { LifecycleActionToken?: string; /** - *

The action for the group to take. This parameter can be either CONTINUE - * or ABANDON.

- */ - LifecycleActionResult: string | undefined; - - /** - *

The name of the lifecycle hook.

+ *

The name of the Auto Scaling group.

*/ - LifecycleHookName: string | undefined; + AutoScalingGroupName: string | undefined; } export namespace CompleteLifecycleActionType { @@ -543,11 +543,11 @@ export namespace CompleteLifecycleActionType { */ export interface LaunchTemplateSpecification { /** - *

The ID of the launch template. To get the template ID, use the Amazon EC2 DescribeLaunchTemplates API operation. New launch templates can be created + *

The name of the launch template. To get the template name, use the Amazon EC2 DescribeLaunchTemplates API operation. New launch templates can be created * using the Amazon EC2 CreateLaunchTemplate API.

*

You must specify either a template ID or a template name.

*/ - LaunchTemplateId?: string; + LaunchTemplateName?: string; /** *

The version number, $Latest, or $Default. To get the version @@ -561,11 +561,11 @@ export interface LaunchTemplateSpecification { Version?: string; /** - *

The name of the launch template. To get the template name, use the Amazon EC2 DescribeLaunchTemplates API operation. New launch templates can be created + *

The ID of the launch template. To get the template ID, use the Amazon EC2 DescribeLaunchTemplates API operation. New launch templates can be created * using the Amazon EC2 CreateLaunchTemplate API.

*

You must specify either a template ID or a template name.

*/ - LaunchTemplateName?: string; + LaunchTemplateId?: string; } export namespace LaunchTemplateSpecification { @@ -613,25 +613,29 @@ export namespace LaunchTemplateSpecification { */ export interface LifecycleHookSpecification { /** - *

The name of the lifecycle hook.

+ *

The state of the EC2 instance to which you want to attach the lifecycle hook. The + * valid values are:

+ * */ - LifecycleHookName: string | undefined; + LifecycleTransition: string | undefined; /** - *

The maximum time, in seconds, that can elapse before the lifecycle hook times - * out.

- *

If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in - * the DefaultResult parameter. You can prevent the lifecycle hook from timing - * out by calling RecordLifecycleActionHeartbeat.

+ *

Additional information that you want to include any time Amazon EC2 Auto Scaling sends a message to + * the notification target.

*/ - HeartbeatTimeout?: number; + NotificationMetadata?: string; /** - *

The ARN of the target that Amazon EC2 Auto Scaling sends notifications to when an instance is in the - * transition state for the lifecycle hook. The notification target can be either an SQS - * queue or an SNS topic.

+ *

The name of the lifecycle hook.

*/ - NotificationTargetARN?: string; + LifecycleHookName: string | undefined; /** *

Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses @@ -641,30 +645,26 @@ export interface LifecycleHookSpecification { DefaultResult?: string; /** - *

The ARN of the IAM role that allows the Auto Scaling group to publish to the specified - * notification target, for example, an Amazon SNS topic or an Amazon SQS queue.

+ *

The ARN of the target that Amazon EC2 Auto Scaling sends notifications to when an instance is in the + * transition state for the lifecycle hook. The notification target can be either an SQS + * queue or an SNS topic.

*/ - RoleARN?: string; + NotificationTargetARN?: string; /** - *

Additional information that you want to include any time Amazon EC2 Auto Scaling sends a message to - * the notification target.

+ *

The ARN of the IAM role that allows the Auto Scaling group to publish to the specified + * notification target, for example, an Amazon SNS topic or an Amazon SQS queue.

*/ - NotificationMetadata?: string; + RoleARN?: string; /** - *

The state of the EC2 instance to which you want to attach the lifecycle hook. The - * valid values are:

- * + *

The maximum time, in seconds, that can elapse before the lifecycle hook times + * out.

+ *

If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in + * the DefaultResult parameter. You can prevent the lifecycle hook from timing + * out by calling RecordLifecycleActionHeartbeat.

*/ - LifecycleTransition: string | undefined; + HeartbeatTimeout?: number; } export namespace LifecycleHookSpecification { @@ -687,6 +687,17 @@ export namespace LifecycleHookSpecification { * policies.

*/ export interface InstancesDistribution { + /** + *

Indicates how to allocate instance types to fulfill On-Demand capacity.

+ *

The only valid value is prioritized, which is also the default value. + * This strategy uses the order of instance type overrides for the LaunchTemplate to define the launch priority of each instance type. The + * first instance type in the array is prioritized higher than the last. If all your + * On-Demand capacity cannot be fulfilled using your highest priority instance, then the + * Auto Scaling groups launches the remaining capacity using the second priority instance type, and + * so on.

+ */ + OnDemandAllocationStrategy?: string; + /** *

The number of Spot Instance pools across which to allocate your Spot Instances. The * Spot pools are determined from the different instance types in the Overrides array of @@ -697,13 +708,19 @@ export interface InstancesDistribution { SpotInstancePools?: number; /** - *

The maximum price per unit hour that you are willing to pay for a Spot Instance. If - * you leave the value of this parameter blank (which is the default), the maximum Spot - * price is set at the On-Demand price.

- *

To remove a value that you previously set, include the parameter but leave the value - * blank.

+ *

Controls the percentages of On-Demand Instances and Spot Instances for your additional + * capacity beyond OnDemandBaseCapacity.

+ *

Default if not set is 100. If you leave it set to 100, the percentages are 100% for + * On-Demand Instances and 0% for Spot Instances.

+ * + *

An update to this setting means a gradual replacement of instances to maintain the + * percentage of On-Demand Instances for your additional capacity above the base + * capacity. When replacing instances, Amazon EC2 Auto Scaling launches new instances before + * terminating the old ones.

+ *
+ *

Valid Range: Minimum value of 0. Maximum value of 100.

*/ - SpotMaxPrice?: string; + OnDemandPercentageAboveBaseCapacity?: number; /** *

The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand @@ -735,30 +752,13 @@ export interface InstancesDistribution { SpotAllocationStrategy?: string; /** - *

Indicates how to allocate instance types to fulfill On-Demand capacity.

- *

The only valid value is prioritized, which is also the default value. - * This strategy uses the order of instance type overrides for the LaunchTemplate to define the launch priority of each instance type. The - * first instance type in the array is prioritized higher than the last. If all your - * On-Demand capacity cannot be fulfilled using your highest priority instance, then the - * Auto Scaling groups launches the remaining capacity using the second priority instance type, and - * so on.

+ *

The maximum price per unit hour that you are willing to pay for a Spot Instance. If + * you leave the value of this parameter blank (which is the default), the maximum Spot + * price is set at the On-Demand price.

+ *

To remove a value that you previously set, include the parameter but leave the value + * blank.

*/ - OnDemandAllocationStrategy?: string; - - /** - *

Controls the percentages of On-Demand Instances and Spot Instances for your additional - * capacity beyond OnDemandBaseCapacity.

- *

Default if not set is 100. If you leave it set to 100, the percentages are 100% for - * On-Demand Instances and 0% for Spot Instances.

- * - *

An update to this setting means a gradual replacement of instances to maintain the - * percentage of On-Demand Instances for your additional capacity above the base - * capacity. When replacing instances, Amazon EC2 Auto Scaling launches new instances before - * terminating the old ones.

- *
- *

Valid Range: Minimum value of 0. Maximum value of 100.

- */ - OnDemandPercentageAboveBaseCapacity?: number; + SpotMaxPrice?: string; } export namespace InstancesDistribution { @@ -774,6 +774,16 @@ export namespace InstancesDistribution { * group is 20.

*/ export interface LaunchTemplateOverrides { + /** + *

The instance type. You must use an instance type that is supported in your requested + * Region and Availability Zones.

+ *

For information about available instance types, see Available + * Instance Types in the Amazon Elastic Compute Cloud User + * Guide. + *

+ */ + InstanceType?: string; + /** *

The number of capacity units, which gives the instance type a proportional weight to * other instance types. For example, larger instance types are generally weighted more @@ -785,16 +795,6 @@ export interface LaunchTemplateOverrides { *

Valid Range: Minimum value of 1. Maximum value of 999.

*/ WeightedCapacity?: string; - - /** - *

The instance type. You must use an instance type that is supported in your requested - * Region and Availability Zones.

- *

For information about available instance types, see Available - * Instance Types in the Amazon Elastic Compute Cloud User - * Guide. - *

- */ - InstanceType?: string; } export namespace LaunchTemplateOverrides { @@ -814,12 +814,6 @@ export namespace LaunchTemplateOverrides { * termination policies.

*/ export interface LaunchTemplate { - /** - *

The launch template to use. You must specify either the launch template ID or launch - * template name in the request.

- */ - LaunchTemplateSpecification?: LaunchTemplateSpecification; - /** *

Any parameters that you specify override the same parameters in the launch template. * Currently, the only supported override is instance type. You can specify between 1 and @@ -828,6 +822,12 @@ export interface LaunchTemplate { * to launch instances.

*/ Overrides?: LaunchTemplateOverrides[]; + + /** + *

The launch template to use. You must specify either the launch template ID or launch + * template name in the request.

+ */ + LaunchTemplateSpecification?: LaunchTemplateSpecification; } export namespace LaunchTemplate { @@ -908,13 +908,22 @@ export namespace Tag { export interface CreateAutoScalingGroupType { /** - *

The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to - * call other AWS services on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role - * named AWSServiceRoleForAutoScaling, which it creates if it does not exist. For more - * information, see Service-Linked - * Roles in the Amazon EC2 Auto Scaling User Guide.

+ *

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 + * Instance Protection in the Amazon EC2 Auto Scaling User Guide.

*/ - ServiceLinkedRoleARN?: string; + NewInstancesProtectedFromScaleIn?: boolean; + + /** + *

The desired capacity is the initial capacity of the Auto Scaling group at the time of its + * creation and the capacity it attempts to maintain. It can scale beyond this capacity if + * you configure automatic scaling.

+ *

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. If you do not specify a desired + * capacity, the default is the minimum size of the group.

+ */ + DesiredCapacity?: number; /** *

The maximum size of the group.

@@ -929,34 +938,53 @@ export interface CreateAutoScalingGroupType { MaxSize: number | undefined; /** - *

A list of Classic Load Balancers associated with this Auto Scaling group. For Application Load - * Balancers and Network Load Balancers, specify a list of target groups using the - * TargetGroupARNs property instead.

- *

For more information, see Using a Load Balancer - * with an Auto Scaling Group in the Amazon EC2 Auto Scaling User Guide.

+ *

The amount of time, in seconds, after a scaling activity completes before another + * scaling activity can start. The default value is 300.

+ *

This setting applies when using simple scaling policies, but not when using other + * scaling policies or scheduled scaling. For more information, see Scaling Cooldowns + * for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

*/ - LoadBalancerNames?: string[]; + DefaultCooldown?: number; /** - *

One or more lifecycle hooks.

+ *

The service to use for the health checks. The valid values are EC2 and + * ELB. The default value is EC2. If you configure an Auto Scaling + * group to use ELB health checks, it considers the instance unhealthy if it fails either + * the EC2 status checks or the load balancer health checks.

+ *

For more information, see Health Checks for Auto Scaling + * Instances in the Amazon EC2 Auto Scaling User Guide.

*/ - LifecycleHookSpecificationList?: LifecycleHookSpecification[]; + HealthCheckType?: string; /** - *

One or more Availability Zones for the group. This parameter is optional if you - * specify one or more subnets for VPCZoneIdentifier.

- *

Conditional: If your account supports EC2-Classic and VPC, this parameter is required - * to launch instances into EC2-Classic.

+ *

One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 + * instances it launches.

+ *

Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the + * tags in a launch template but use caution. If the launch template specifies an instance + * tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value + * of that instance tag with the value specified by the Auto Scaling group.

+ *

For more information, see Tagging Auto Scaling Groups and + * Instances in the Amazon EC2 Auto Scaling User Guide.

*/ - AvailabilityZones?: string[]; + Tags?: Tag[]; /** - *

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 - * Instance Protection in the Amazon EC2 Auto Scaling User Guide.

+ *

Parameters used to specify the launch template and version to use when an instance is + * launched.

+ *

For more information, see LaunchTemplateSpecification in the Amazon EC2 Auto Scaling API + * Reference.

+ *

You can alternatively associate a launch template to the Auto Scaling group by using the + * MixedInstancesPolicy parameter.

+ *

You must specify one of the following parameters in your request: + * LaunchConfigurationName, LaunchTemplate, + * InstanceId, or MixedInstancesPolicy.

*/ - NewInstancesProtectedFromScaleIn?: boolean; + LaunchTemplate?: LaunchTemplateSpecification; + + /** + *

One or more lifecycle hooks.

+ */ + LifecycleHookSpecificationList?: LifecycleHookSpecification[]; /** *

The ID of the instance used to create a launch configuration for the group. To get the @@ -971,13 +999,13 @@ export interface CreateAutoScalingGroupType { InstanceId?: string; /** - *

The Amazon Resource Names (ARN) of the target groups to associate with the Auto Scaling group. - * Instances are registered as targets in a target group, and traffic is routed to the - * target group.

- *

For more information, see Using a Load Balancer - * with an Auto Scaling Group in the Amazon EC2 Auto Scaling User Guide.

+ *

The name of the placement group into which to launch your instances, if any. A + * placement group is a logical grouping of instances within a single Availability Zone. + * You cannot specify multiple Availability Zones and a placement group. For more + * information, see Placement Groups in the + * Amazon EC2 User Guide for Linux Instances.

*/ - TargetGroupARNs?: string[]; + PlacementGroup?: string; /** *

A comma-separated list of subnet IDs for your virtual private cloud (VPC).

@@ -989,6 +1017,15 @@ export interface CreateAutoScalingGroupType { */ VPCZoneIdentifier?: string; + /** + *

The Amazon Resource Names (ARN) of the target groups to associate with the Auto Scaling group. + * Instances are registered as targets in a target group, and traffic is routed to the + * target group.

+ *

For more information, see Using a Load Balancer + * with an Auto Scaling Group in the Amazon EC2 Auto Scaling User Guide.

+ */ + TargetGroupARNs?: string[]; + /** *

The maximum amount of time, in seconds, that an instance can be in service. The * default is null.

@@ -1002,6 +1039,36 @@ export interface CreateAutoScalingGroupType { */ MaxInstanceLifetime?: number; + /** + *

An embedded object that specifies a mixed instances policy. The required parameters + * must be specified. If optional parameters are unspecified, their default values are + * used.

+ *

The policy includes parameters that not only define the distribution of On-Demand + * Instances and Spot Instances, the maximum price to pay for Spot Instances, and how the + * Auto Scaling group allocates instance types to fulfill On-Demand and Spot capacity, but also the + * parameters that specify the instance configuration information—the launch template and + * instance types.

+ * + *

For more information, see MixedInstancesPolicy in the Amazon EC2 Auto Scaling API Reference and + * Auto Scaling Groups with Multiple + * Instance Types and Purchase Options in the Amazon EC2 Auto Scaling User + * Guide.

+ *

You must specify one of the following parameters in your request: + * LaunchConfigurationName, LaunchTemplate, + * InstanceId, or MixedInstancesPolicy.

+ */ + MixedInstancesPolicy?: MixedInstancesPolicy; + + /** + *

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. During this time, any health check + * failures for the instance are ignored. The default value is 0.

+ *

For more information, see Health + * Check Grace Period in the Amazon EC2 Auto Scaling User Guide.

+ *

Required if you are adding an ELB health check.

+ */ + HealthCheckGracePeriod?: number; + /** *

The name of the launch configuration to use when an instance is launched. To get the * launch configuration name, use the DescribeLaunchConfigurations API @@ -1012,6 +1079,18 @@ export interface CreateAutoScalingGroupType { */ LaunchConfigurationName?: string; + /** + *

Indicates whether capacity rebalance is enabled. Otherwise, capacity rebalance is + * disabled.

+ *

You can enable capacity rebalancing for your Auto Scaling groups when using Spot Instances. + * When you turn on capacity rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance + * whenever Amazon EC2 predicts that a Spot Instance is at an elevated risk of interruption. + * After launching a new instance, it then terminates an old instance. For more + * information, see Amazon EC2 Auto Scaling capacity + * rebalancing in the Amazon EC2 Auto Scaling User Guide.

+ */ + CapacityRebalance?: boolean; + /** *

One or more termination policies used to select the instance to terminate. These * policies are executed in the order that they are listed.

@@ -1022,28 +1101,26 @@ export interface CreateAutoScalingGroupType { TerminationPolicies?: string[]; /** - *

The amount of time, in seconds, after a scaling activity completes before another - * scaling activity can start. The default value is 300.

- *

This setting applies when using simple scaling policies, but not when using other - * scaling policies or scheduled scaling. For more information, see Scaling Cooldowns - * for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

+ *

The name of the Auto Scaling group. This name must be unique per Region per account.

*/ - DefaultCooldown?: number; + AutoScalingGroupName: string | undefined; /** - *

The service to use for the health checks. The valid values are EC2 and - * ELB. The default value is EC2. If you configure an Auto Scaling - * group to use ELB health checks, it considers the instance unhealthy if it fails either - * the EC2 status checks or the load balancer health checks.

- *

For more information, see Health Checks for Auto Scaling - * Instances in the Amazon EC2 Auto Scaling User Guide.

+ *

A list of Classic Load Balancers associated with this Auto Scaling group. For Application Load + * Balancers and Network Load Balancers, specify a list of target groups using the + * TargetGroupARNs property instead.

+ *

For more information, see Using a Load Balancer + * with an Auto Scaling Group in the Amazon EC2 Auto Scaling User Guide.

*/ - HealthCheckType?: string; + LoadBalancerNames?: string[]; /** - *

The name of the Auto Scaling group. This name must be unique per Region per account.

+ *

One or more Availability Zones for the group. This parameter is optional if you + * specify one or more subnets for VPCZoneIdentifier.

+ *

Conditional: If your account supports EC2-Classic and VPC, this parameter is required + * to launch instances into EC2-Classic.

*/ - AutoScalingGroupName: string | undefined; + AvailabilityZones?: string[]; /** *

The minimum size of the group.

@@ -1051,104 +1128,38 @@ export interface CreateAutoScalingGroupType { MinSize: number | undefined; /** - *

One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 - * instances it launches.

- *

Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the - * tags in a launch template but use caution. If the launch template specifies an instance - * tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value - * of that instance tag with the value specified by the Auto Scaling group.

- *

For more information, see Tagging Auto Scaling Groups and - * Instances in the Amazon EC2 Auto Scaling User Guide.

+ *

The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to + * call other AWS services on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role + * named AWSServiceRoleForAutoScaling, which it creates if it does not exist. For more + * information, see Service-Linked + * Roles in the Amazon EC2 Auto Scaling User Guide.

*/ - Tags?: Tag[]; + ServiceLinkedRoleARN?: string; +} + +export namespace CreateAutoScalingGroupType { + export const filterSensitiveLog = (obj: CreateAutoScalingGroupType): any => ({ + ...obj, + }); +} +/** + *

Describes information used to set up an Amazon EBS volume specified in a block device + * mapping.

+ */ +export interface Ebs { /** - *

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. During this time, any health check - * failures for the instance are ignored. The default value is 0.

- *

For more information, see Health - * Check Grace Period in the Amazon EC2 Auto Scaling User Guide.

- *

Required if you are adding an ELB health check.

+ *

The volume type, which can be standard for Magnetic, io1 for + * Provisioned IOPS SSD, gp2 for General Purpose SSD, st1 for + * Throughput Optimized HDD, or sc1 for Cold HDD. For more information, see + * Amazon + * EBS Volume Types in the Amazon EC2 User Guide for Linux + * Instances.

+ *

Valid Values: standard | io1 | gp2 | + * st1 | sc1 + *

*/ - HealthCheckGracePeriod?: number; - - /** - *

An embedded object that specifies a mixed instances policy. The required parameters - * must be specified. If optional parameters are unspecified, their default values are - * used.

- *

The policy includes parameters that not only define the distribution of On-Demand - * Instances and Spot Instances, the maximum price to pay for Spot Instances, and how the - * Auto Scaling group allocates instance types to fulfill On-Demand and Spot capacity, but also the - * parameters that specify the instance configuration information—the launch template and - * instance types.

- * - *

For more information, see MixedInstancesPolicy in the Amazon EC2 Auto Scaling API Reference and - * Auto Scaling Groups with Multiple - * Instance Types and Purchase Options in the Amazon EC2 Auto Scaling User - * Guide.

- *

You must specify one of the following parameters in your request: - * LaunchConfigurationName, LaunchTemplate, - * InstanceId, or MixedInstancesPolicy.

- */ - MixedInstancesPolicy?: MixedInstancesPolicy; - - /** - *

The name of the placement group into which to launch your instances, if any. A - * placement group is a logical grouping of instances within a single Availability Zone. - * You cannot specify multiple Availability Zones and a placement group. For more - * information, see Placement Groups in the - * Amazon EC2 User Guide for Linux Instances.

- */ - PlacementGroup?: string; - - /** - *

The desired capacity is the initial capacity of the Auto Scaling group at the time of its - * creation and the capacity it attempts to maintain. It can scale beyond this capacity if - * you configure automatic scaling.

- *

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. If you do not specify a desired - * capacity, the default is the minimum size of the group.

- */ - DesiredCapacity?: number; - - /** - *

Parameters used to specify the launch template and version to use when an instance is - * launched.

- *

For more information, see LaunchTemplateSpecification in the Amazon EC2 Auto Scaling API - * Reference.

- *

You can alternatively associate a launch template to the Auto Scaling group by using the - * MixedInstancesPolicy parameter.

- *

You must specify one of the following parameters in your request: - * LaunchConfigurationName, LaunchTemplate, - * InstanceId, or MixedInstancesPolicy.

- */ - LaunchTemplate?: LaunchTemplateSpecification; -} - -export namespace CreateAutoScalingGroupType { - export const filterSensitiveLog = (obj: CreateAutoScalingGroupType): any => ({ - ...obj, - }); -} - -/** - *

Describes information used to set up an Amazon EBS volume specified in a block device - * mapping.

- */ -export interface Ebs { - /** - *

The volume size, in Gibibytes (GiB).

- *

This can be a number from 1-1,024 for standard, 4-16,384 for - * io1, 1-16,384 for gp2, and 500-16,384 for st1 - * and sc1. If you specify a snapshot, the volume size must be equal to or - * larger than the snapshot size.

- *

Default: If you create a volume from a snapshot and you don't specify a volume size, - * the default is the snapshot size.

- *

You must specify either a VolumeSize or a SnapshotId. If you - * specify both SnapshotId and VolumeSize, the volume size must - * be equal or greater than the size of the snapshot.

- */ - VolumeSize?: number; + VolumeType?: string; /** *

Specifies whether the volume should be encrypted. Encrypted EBS volumes can only be @@ -1182,6 +1193,20 @@ export interface Ebs { */ DeleteOnTermination?: boolean; + /** + *

The volume size, in Gibibytes (GiB).

+ *

This can be a number from 1-1,024 for standard, 4-16,384 for + * io1, 1-16,384 for gp2, and 500-16,384 for st1 + * and sc1. If you specify a snapshot, the volume size must be equal to or + * larger than the snapshot size.

+ *

Default: If you create a volume from a snapshot and you don't specify a volume size, + * the default is the snapshot size.

+ *

You must specify either a VolumeSize or a SnapshotId. If you + * specify both SnapshotId and VolumeSize, the volume size must + * be equal or greater than the size of the snapshot.

+ */ + VolumeSize?: number; + /** *

The snapshot ID of the volume to use.

*

You must specify either a VolumeSize or a SnapshotId.

@@ -1197,19 +1222,6 @@ export interface Ebs { * volumes.)

*/ Iops?: number; - - /** - *

The volume type, which can be standard for Magnetic, io1 for - * Provisioned IOPS SSD, gp2 for General Purpose SSD, st1 for - * Throughput Optimized HDD, or sc1 for Cold HDD. For more information, see - * Amazon - * EBS Volume Types in the Amazon EC2 User Guide for Linux - * Instances.

- *

Valid Values: standard | io1 | gp2 | - * st1 | sc1 - *

- */ - VolumeType?: string; } export namespace Ebs { @@ -1222,22 +1234,6 @@ export namespace Ebs { *

Describes a block device mapping.

*/ export interface BlockDeviceMapping { - /** - *

Setting this value to true suppresses the specified device included in - * the block device mapping of the AMI.

- *

If NoDevice is true for the root device, instances might - * fail the EC2 health check. In that case, Amazon EC2 Auto Scaling launches replacement instances.

- *

If you specify NoDevice, you cannot specify Ebs.

- */ - NoDevice?: boolean; - - /** - *

The name of the virtual device (for example, ephemeral0).

- *

You can specify either VirtualName or Ebs, but not - * both.

- */ - VirtualName?: string; - /** *

The device name exposed to the EC2 instance (for example, /dev/sdh or * xvdh). For more information, see Device Naming on Linux @@ -1253,6 +1249,22 @@ export interface BlockDeviceMapping { * both.

*/ Ebs?: Ebs; + + /** + *

Setting this value to true suppresses the specified device included in + * the block device mapping of the AMI.

+ *

If NoDevice is true for the root device, instances might + * fail the EC2 health check. In that case, Amazon EC2 Auto Scaling launches replacement instances.

+ *

If you specify NoDevice, you cannot specify Ebs.

+ */ + NoDevice?: boolean; + + /** + *

The name of the virtual device (for example, ephemeral0).

+ *

You can specify either VirtualName or Ebs, but not + * both.

+ */ + VirtualName?: string; } export namespace BlockDeviceMapping { @@ -1289,8 +1301,8 @@ export enum InstanceMetadataHttpTokensState { } /** - *

The metadata options for the instances. For more information, see Instance Metadata and User Data in the - * Amazon EC2 User Guide for Linux Instances.

+ *

The metadata options for the instances. For more information, see Configuring the Instance Metadata Options in the + * Amazon EC2 Auto Scaling User Guide.

*/ export interface InstanceMetadataOptions { /** @@ -1301,16 +1313,6 @@ export interface InstanceMetadataOptions { */ HttpPutResponseHopLimit?: number; - /** - *

This parameter enables or disables the HTTP metadata endpoint on your instances. If - * the parameter is not specified, the default state is enabled.

- * - *

If you specify a value of disabled, you will not be able to access - * your instance metadata.

- *
- */ - HttpEndpoint?: InstanceMetadataEndpointState | string; - /** *

The state of token usage for your instance metadata requests. If the parameter is not * specified in the request, the default state is optional.

@@ -1325,6 +1327,16 @@ export interface InstanceMetadataOptions { * available.

*/ HttpTokens?: InstanceMetadataHttpTokensState | string; + + /** + *

This parameter enables or disables the HTTP metadata endpoint on your instances. If + * the parameter is not specified, the default state is enabled.

+ * + *

If you specify a value of disabled, you will not be able to access + * your instance metadata.

+ *
+ */ + HttpEndpoint?: InstanceMetadataEndpointState | string; } export namespace InstanceMetadataOptions { @@ -1335,47 +1347,29 @@ export namespace InstanceMetadataOptions { export interface CreateLaunchConfigurationType { /** - *

The ID of the instance to use to create the launch configuration. The new launch - * configuration derives attributes from the instance, except for the block device - * mapping.

- *

To create a launch configuration with a block device mapping or override any other - * instance attributes, specify them as part of the same request.

- *

For more information, see Create a Launch - * Configuration Using an EC2 Instance in the - * Amazon EC2 Auto Scaling User Guide.

- *

If you do not specify InstanceId, you must specify both - * ImageId and InstanceType.

+ *

The ID of the RAM disk to select.

*/ - InstanceId?: string; + RamdiskId?: string; /** - *

Specifies the instance type of the EC2 instance.

- *

For information about available instance types, see Available - * Instance Types in the Amazon EC2 User Guide for Linux - * Instances. - *

- *

If you do not specify InstanceId, you must specify - * InstanceType.

+ *

The name of the key pair. For more information, see Amazon EC2 Key Pairs in the + * Amazon EC2 User Guide for Linux Instances.

*/ - InstanceType?: string; + KeyName?: string; /** - *

For Auto Scaling groups that are running in a virtual private cloud (VPC), specifies whether - * to assign a public IP address to the group's instances. If you specify - * true, each instance in the Auto Scaling group receives a unique public IP address. - * For more information, see Launching Auto Scaling Instances in a - * VPC in the Amazon EC2 Auto Scaling User Guide.

- *

If you specify this parameter, you must specify at least one subnet for - * VPCZoneIdentifier when you create your group.

+ *

The maximum hourly price to be paid for any Spot Instance launched to fulfill the + * request. Spot Instances are launched when the price you specify exceeds the current Spot + * price. For more information, see Launching Spot + * Instances in Your Auto Scaling Group in the + * Amazon EC2 Auto Scaling User Guide.

* - *

If the instance is launched into a default subnet, the default is to assign a - * public IP address, unless you disabled the option to assign a public IP address on - * the subnet. If the instance is launched into a nondefault subnet, the default is not - * to assign a public IP address, unless you enabled the option to assign a public IP - * address on the subnet.

+ *

When you change your maximum price by creating a new launch configuration, running + * instances will continue to run as long as the maximum price for those running + * instances is higher than the current Spot price.

*
*/ - AssociatePublicIpAddress?: boolean; + SpotPrice?: string; /** *

Specifies whether the launch configuration is optimized for EBS I/O @@ -1390,6 +1384,15 @@ export interface CreateLaunchConfigurationType { */ EbsOptimized?: boolean; + /** + *

The ID of the Amazon Machine Image (AMI) that was assigned during registration. For + * more information, see Finding an AMI in the + * Amazon EC2 User Guide for Linux Instances.

+ *

If you do not specify InstanceId, you must specify + * ImageId.

+ */ + ImageId?: string; + /** *

Controls whether instances in this group are launched with detailed * (true) or basic (false) monitoring.

@@ -1397,82 +1400,62 @@ export interface CreateLaunchConfigurationType { * *

When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and * your account is charged a fee. When you disable detailed monitoring, CloudWatch generates - * metrics every 5 minutes. For more information, see Configure Monitoring for Auto Scaling Instances in the - * Amazon EC2 Auto Scaling User Guide.

+ * metrics every 5 minutes. For more information, see Configure + * Monitoring for Auto Scaling Instances in the + * Amazon EC2 Auto Scaling User Guide.

*
*/ InstanceMonitoring?: InstanceMonitoring; /** - *

The tenancy of the instance. An instance with dedicated tenancy runs on - * isolated, single-tenant hardware and can only be launched into a VPC.

- *

To launch dedicated instances into a shared tenancy VPC (a VPC with the instance - * placement tenancy attribute set to default), you must set the value of this - * parameter to dedicated.

- *

If you specify PlacementTenancy, you must specify at least one subnet for - * VPCZoneIdentifier when you create your group.

- *

For more information, see Instance Placement - * Tenancy in the Amazon EC2 Auto Scaling User Guide.

- *

Valid Values: default | dedicated - *

+ *

A block device mapping, which specifies the block devices for the instance. You can + * specify virtual devices and EBS volumes. For more information, see Block Device + * Mapping in the Amazon EC2 User Guide for Linux + * Instances.

*/ - PlacementTenancy?: string; + BlockDeviceMappings?: BlockDeviceMapping[]; /** - *

The maximum hourly price to be paid for any Spot Instance launched to fulfill the - * request. Spot Instances are launched when the price you specify exceeds the current Spot - * price. For more information, see Launching Spot - * Instances in Your Auto Scaling Group in the - * Amazon EC2 Auto Scaling User Guide.

- * - *

When you change your maximum price by creating a new launch configuration, running - * instances will continue to run as long as the maximum price for those running - * instances is higher than the current Spot price.

- *
+ *

The ID of the instance to use to create the launch configuration. The new launch + * configuration derives attributes from the instance, except for the block device + * mapping.

+ *

To create a launch configuration with a block device mapping or override any other + * instance attributes, specify them as part of the same request.

+ *

For more information, see Create a Launch + * Configuration Using an EC2 Instance in the + * Amazon EC2 Auto Scaling User Guide.

+ *

If you do not specify InstanceId, you must specify both + * ImageId and InstanceType.

*/ - SpotPrice?: string; + InstanceId?: string; /** - *

The ID of the RAM disk to select.

+ *

The IDs of one or more security groups for the specified ClassicLink-enabled VPC. For + * more information, see ClassicLink in the + * Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic + * Instances to a VPC in the Amazon EC2 Auto Scaling User Guide.

+ *

If you specify the ClassicLinkVPCId parameter, you must specify this + * parameter.

*/ - RamdiskId?: string; + ClassicLinkVPCSecurityGroups?: string[]; /** - *

The metadata options for the instances. For more information, see Instance Metadata and User Data in the - * Amazon EC2 User Guide for Linux Instances.

- */ - MetadataOptions?: InstanceMetadataOptions; - - /** - *

The name of the launch configuration. This name must be unique per Region per - * account.

+ *

The Base64-encoded user data to make available to the launched EC2 instances. For more + * information, see Instance Metadata and User + * Data in the Amazon EC2 User Guide for Linux Instances.

*/ - LaunchConfigurationName: string | undefined; + UserData?: string; /** - *

The ID of the Amazon Machine Image (AMI) that was assigned during registration. For - * more information, see Finding an AMI in the - * Amazon EC2 User Guide for Linux Instances.

+ *

Specifies the instance type of the EC2 instance.

+ *

For information about available instance types, see Available + * Instance Types in the Amazon EC2 User Guide for Linux + * Instances. + *

*

If you do not specify InstanceId, you must specify - * ImageId.

- */ - ImageId?: string; - - /** - *

A block device mapping, which specifies the block devices for the instance. You can - * specify virtual devices and EBS volumes. For more information, see Block Device - * Mapping in the Amazon EC2 User Guide for Linux - * Instances.

- */ - BlockDeviceMappings?: BlockDeviceMapping[]; - - /** - *

The name or the Amazon Resource Name (ARN) of the instance profile associated with the - * IAM role for the instance. The instance profile contains the IAM role.

- *

For more information, see IAM Role for Applications That Run - * on Amazon EC2 Instances in the Amazon EC2 Auto Scaling User Guide.

+ * InstanceType.

*/ - IamInstanceProfile?: string; + InstanceType?: string; /** *

The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to. For more @@ -1484,33 +1467,31 @@ export interface CreateLaunchConfigurationType { ClassicLinkVPCId?: string; /** - *

The name of the key pair. For more information, see Amazon EC2 Key Pairs in the - * Amazon EC2 User Guide for Linux Instances.

+ *

The tenancy of the instance. An instance with dedicated tenancy runs on + * isolated, single-tenant hardware and can only be launched into a VPC.

+ *

To launch dedicated instances into a shared tenancy VPC (a VPC with the instance + * placement tenancy attribute set to default), you must set the value of this + * parameter to dedicated.

+ *

If you specify PlacementTenancy, you must specify at least one subnet for + * VPCZoneIdentifier when you create your group.

+ *

For more information, see Instance Placement + * Tenancy in the Amazon EC2 Auto Scaling User Guide.

+ *

Valid Values: default | dedicated + *

*/ - KeyName?: string; + PlacementTenancy?: string; /** - *

The Base64-encoded user data to make available to the launched EC2 instances. For more - * information, see Instance Metadata and User - * Data in the Amazon EC2 User Guide for Linux Instances.

+ *

The metadata options for the instances. For more information, see Configuring the Instance Metadata Options in the + * Amazon EC2 Auto Scaling User Guide.

*/ - UserData?: string; + MetadataOptions?: InstanceMetadataOptions; /** *

The ID of the kernel associated with the AMI.

*/ KernelId?: string; - /** - *

The IDs of one or more security groups for the specified ClassicLink-enabled VPC. For - * more information, see ClassicLink in the - * Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic - * Instances to a VPC in the Amazon EC2 Auto Scaling User Guide.

- *

If you specify the ClassicLinkVPCId parameter, you must specify this - * parameter.

- */ - ClassicLinkVPCSecurityGroups?: string[]; - /** *

A list that contains the security groups to assign to the instances in the Auto Scaling * group.

@@ -1522,6 +1503,38 @@ export interface CreateLaunchConfigurationType { * Instances.

*/ SecurityGroups?: string[]; + + /** + *

The name of the launch configuration. This name must be unique per Region per + * account.

+ */ + LaunchConfigurationName: string | undefined; + + /** + *

The name or the Amazon Resource Name (ARN) of the instance profile associated with the + * IAM role for the instance. The instance profile contains the IAM role.

+ *

For more information, see IAM Role for Applications That Run + * on Amazon EC2 Instances in the Amazon EC2 Auto Scaling User Guide.

+ */ + IamInstanceProfile?: string; + + /** + *

For Auto Scaling groups that are running in a virtual private cloud (VPC), specifies whether + * to assign a public IP address to the group's instances. If you specify + * true, each instance in the Auto Scaling group receives a unique public IP address. + * For more information, see Launching Auto Scaling Instances in a + * VPC in the Amazon EC2 Auto Scaling User Guide.

+ *

If you specify this parameter, you must specify at least one subnet for + * VPCZoneIdentifier when you create your group.

+ * + *

If the instance is launched into a default subnet, the default is to assign a + * public IP address, unless you disabled the option to assign a public IP address on + * the subnet. If the instance is launched into a nondefault subnet, the default is not + * to assign a public IP address, unless you enabled the option to assign a public IP + * address on the subnet.

+ *
+ */ + AssociatePublicIpAddress?: boolean; } export namespace CreateLaunchConfigurationType { @@ -1562,17 +1575,17 @@ export namespace ResourceInUseFault { } export interface DeleteAutoScalingGroupType { + /** + *

The name of the Auto Scaling group.

+ */ + AutoScalingGroupName: string | undefined; + /** *

Specifies that the group is to be deleted along with all instances associated with the * group, without waiting for all instances to be terminated. This parameter also deletes * any lifecycle actions associated with the group.

*/ ForceDelete?: boolean; - - /** - *

The name of the Auto Scaling group.

- */ - AutoScalingGroupName: string | undefined; } export namespace DeleteAutoScalingGroupType { @@ -1623,14 +1636,14 @@ export namespace DeleteLifecycleHookAnswer { export interface DeleteLifecycleHookType { /** - *

The name of the Auto Scaling group.

+ *

The name of the lifecycle hook.

*/ - AutoScalingGroupName: string | undefined; + LifecycleHookName: string | undefined; /** - *

The name of the lifecycle hook.

+ *

The name of the Auto Scaling group.

*/ - LifecycleHookName: string | undefined; + AutoScalingGroupName: string | undefined; } export namespace DeleteLifecycleHookType { @@ -1660,14 +1673,14 @@ export namespace DeleteNotificationConfigurationType { export interface DeletePolicyType { /** - *

The name or Amazon Resource Name (ARN) of the policy.

+ *

The name of the Auto Scaling group.

*/ - PolicyName: string | undefined; + AutoScalingGroupName?: string; /** - *

The name of the Auto Scaling group.

+ *

The name or Amazon Resource Name (ARN) of the policy.

*/ - AutoScalingGroupName?: string; + PolicyName: string | undefined; } export namespace DeletePolicyType { @@ -1709,26 +1722,26 @@ export namespace DeleteTagsType { export interface DescribeAccountLimitsAnswer { /** - *

The current number of launch configurations for your AWS account.

+ *

The maximum number of groups allowed for your AWS account. The default is 200 groups + * per AWS Region.

*/ - NumberOfLaunchConfigurations?: number; + MaxNumberOfAutoScalingGroups?: number; /** - *

The maximum number of launch configurations allowed for your AWS account. The default - * is 200 launch configurations per AWS Region.

+ *

The current number of groups for your AWS account.

*/ - MaxNumberOfLaunchConfigurations?: number; + NumberOfAutoScalingGroups?: number; /** - *

The maximum number of groups allowed for your AWS account. The default is 200 groups - * per AWS Region.

+ *

The maximum number of launch configurations allowed for your AWS account. The default + * is 200 launch configurations per AWS Region.

*/ - MaxNumberOfAutoScalingGroups?: number; + MaxNumberOfLaunchConfigurations?: number; /** - *

The current number of groups for your AWS account.

+ *

The current number of launch configurations for your AWS account.

*/ - NumberOfAutoScalingGroups?: number; + NumberOfLaunchConfigurations?: number; } export namespace DescribeAccountLimitsAnswer { @@ -1751,12 +1764,6 @@ export namespace DescribeAdjustmentTypesAnswer { } export interface AutoScalingGroupNamesType { - /** - *

The maximum number of items to return with this call. The default value is - * 50 and the maximum value is 100.

- */ - MaxRecords?: number; - /** *

The token for the next set of items to return. (You received this token from a * previous call.)

@@ -1770,6 +1777,12 @@ export interface AutoScalingGroupNamesType { *

If you omit this parameter, all Auto Scaling groups are described.

*/ AutoScalingGroupNames?: string[]; + + /** + *

The maximum number of items to return with this call. The default value is + * 50 and the maximum value is 100.

+ */ + MaxRecords?: number; } export namespace AutoScalingGroupNamesType { @@ -1782,11 +1795,6 @@ export namespace AutoScalingGroupNamesType { *

Describes an enabled metric.

*/ export interface EnabledMetric { - /** - *

The granularity of the metric. The only valid value is 1Minute.

- */ - Granularity?: string; - /** *

One of the following metrics:

* */ Metric?: string; + + /** + *

The granularity of the metric. The only valid value is 1Minute.

+ */ + Granularity?: string; } export namespace EnabledMetric { @@ -1887,19 +1900,26 @@ export enum LifecycleState { */ export interface Instance { /** - *

The launch template for the instance.

+ *

The instance type of the EC2 instance.

*/ - LaunchTemplate?: LaunchTemplateSpecification; + InstanceType?: string; /** - *

The launch configuration associated with the instance.

+ *

The ID of the instance.

*/ - LaunchConfigurationName?: string; + InstanceId: string | undefined; /** - *

The instance type of the EC2 instance.

+ *

The number of capacity units contributed by the instance based on its instance + * type.

+ *

Valid Range: Minimum value of 1. Maximum value of 999.

*/ - InstanceType?: string; + WeightedCapacity?: string; + + /** + *

The Availability Zone in which the instance is running.

+ */ + AvailabilityZone: string | undefined; /** *

The last reported health status of the instance. "Healthy" means that the instance is @@ -1908,12 +1928,6 @@ export interface Instance { */ HealthStatus: string | undefined; - /** - *

Indicates whether the instance is protected from termination by Amazon EC2 Auto Scaling when scaling - * in.

- */ - ProtectedFromScaleIn: boolean | undefined; - /** *

A description of the current lifecycle state. The Quarantined state is * not used.

@@ -1921,21 +1935,20 @@ export interface Instance { LifecycleState: LifecycleState | string | undefined; /** - *

The number of capacity units contributed by the instance based on its instance - * type.

- *

Valid Range: Minimum value of 1. Maximum value of 999.

+ *

The launch template for the instance.

*/ - WeightedCapacity?: string; + LaunchTemplate?: LaunchTemplateSpecification; /** - *

The ID of the instance.

+ *

Indicates whether the instance is protected from termination by Amazon EC2 Auto Scaling when scaling + * in.

*/ - InstanceId: string | undefined; + ProtectedFromScaleIn: boolean | undefined; /** - *

The Availability Zone in which the instance is running.

+ *

The launch configuration associated with the instance.

*/ - AvailabilityZone: string | undefined; + LaunchConfigurationName?: string; } export namespace Instance { @@ -1970,22 +1983,11 @@ export namespace SuspendedProcess { *

Describes a tag for an Auto Scaling group.

*/ export interface TagDescription { - /** - *

The name of the group.

- */ - ResourceId?: string; - /** *

The tag value.

*/ Value?: string; - /** - *

The type of resource. The only supported value is - * auto-scaling-group.

- */ - ResourceType?: string; - /** *

The tag key.

*/ @@ -1996,6 +1998,17 @@ export interface TagDescription { * group.

*/ PropagateAtLaunch?: boolean; + + /** + *

The name of the group.

+ */ + ResourceId?: string; + + /** + *

The type of resource. The only supported value is + * auto-scaling-group.

+ */ + ResourceType?: string; } export namespace TagDescription { @@ -2009,92 +2022,101 @@ export namespace TagDescription { */ export interface AutoScalingGroup { /** - *

The date and time the group was created.

+ *

One or more subnet IDs, if applicable, separated by commas.

*/ - CreatedTime: Date | undefined; + VPCZoneIdentifier?: string; /** - *

The name of the associated launch configuration.

+ *

The metrics enabled for the group.

*/ - LaunchConfigurationName?: string; + EnabledMetrics?: EnabledMetric[]; /** - *

One or more load balancers associated with the group.

+ *

The Amazon Resource Name (ARN) of the Auto Scaling group.

*/ - LoadBalancerNames?: string[]; + AutoScalingGroupARN?: string; /** - *

The maximum amount of time, in seconds, that an instance can be in service.

- *

Valid Range: Minimum value of 0.

+ *

The duration of the default cooldown period, in seconds.

*/ - MaxInstanceLifetime?: number; + DefaultCooldown: number | undefined; /** - *

The mixed instances policy for the group.

+ *

The maximum size of the group.

*/ - MixedInstancesPolicy?: MixedInstancesPolicy; + MaxSize: number | undefined; /** - *

The Amazon Resource Names (ARN) of the target groups for your load balancer.

+ *

The name of the Auto Scaling group.

*/ - TargetGroupARNs?: string[]; + AutoScalingGroupName: string | undefined; /** - *

The EC2 instances associated with the group.

+ *

The Amazon Resource Names (ARN) of the target groups for your load balancer.

*/ - Instances?: Instance[]; + TargetGroupARNs?: string[]; /** - *

The duration of the default cooldown period, in seconds.

+ *

One or more Availability Zones for the group.

*/ - DefaultCooldown: number | undefined; + AvailabilityZones: string[] | undefined; /** - *

The tags for the group.

+ *

The current state of the group when the DeleteAutoScalingGroup + * operation is in progress.

*/ - Tags?: TagDescription[]; + Status?: string; /** - *

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.

+ *

Indicates whether capacity rebalance is enabled.

*/ - HealthCheckGracePeriod?: number; + CapacityRebalance?: boolean; /** - *

The suspended processes associated with the group.

+ *

The termination policies for the group.

*/ - SuspendedProcesses?: SuspendedProcess[]; + TerminationPolicies?: string[]; /** - *

One or more Availability Zones for the group.

+ *

The name of the placement group into which to launch your instances, if any.

*/ - AvailabilityZones: string[] | undefined; + PlacementGroup?: string; /** - *

The Amazon Resource Name (ARN) of the Auto Scaling group.

+ *

The maximum amount of time, in seconds, that an instance can be in service.

+ *

Valid Range: Minimum value of 0.

*/ - AutoScalingGroupARN?: string; + MaxInstanceLifetime?: number; /** - *

The maximum size of the group.

+ *

The service to use for the health checks. The valid values are EC2 and + * ELB. If you configure an Auto Scaling group to use ELB health checks, it + * considers the instance unhealthy if it fails either the EC2 status checks or the load + * balancer health checks.

*/ - MaxSize: number | undefined; + HealthCheckType: string | undefined; /** - *

One or more subnet IDs, if applicable, separated by commas.

+ *

Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling + * when scaling in.

*/ - VPCZoneIdentifier?: string; + NewInstancesProtectedFromScaleIn?: boolean; /** - *

The current state of the group when the DeleteAutoScalingGroup - * operation is in progress.

+ *

The desired size of the group.

*/ - Status?: string; + DesiredCapacity: number | undefined; /** - *

The name of the placement group into which to launch your instances, if any.

+ *

The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to + * call other AWS services on your behalf.

*/ - PlacementGroup?: string; + ServiceLinkedRoleARN?: string; + + /** + *

The minimum size of the group.

+ */ + MinSize: number | undefined; /** *

The launch template for the group.

@@ -2102,49 +2124,45 @@ export interface AutoScalingGroup { LaunchTemplate?: LaunchTemplateSpecification; /** - *

The termination policies for the group.

+ *

The EC2 instances associated with the group.

*/ - TerminationPolicies?: string[]; + Instances?: Instance[]; /** - *

The service to use for the health checks. The valid values are EC2 and - * ELB. If you configure an Auto Scaling group to use ELB health checks, it - * considers the instance unhealthy if it fails either the EC2 status checks or the load - * balancer health checks.

+ *

The date and time the group was created.

*/ - HealthCheckType: string | undefined; + CreatedTime: Date | undefined; /** - *

The desired size of the group.

+ *

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.

*/ - DesiredCapacity: number | undefined; + HealthCheckGracePeriod?: number; /** - *

Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling - * when scaling in.

+ *

The mixed instances policy for the group.

*/ - NewInstancesProtectedFromScaleIn?: boolean; + MixedInstancesPolicy?: MixedInstancesPolicy; /** - *

The name of the Auto Scaling group.

+ *

One or more load balancers associated with the group.

*/ - AutoScalingGroupName: string | undefined; + LoadBalancerNames?: string[]; /** - *

The minimum size of the group.

+ *

The tags for the group.

*/ - MinSize: number | undefined; + Tags?: TagDescription[]; /** - *

The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to - * call other AWS services on your behalf.

+ *

The suspended processes associated with the group.

*/ - ServiceLinkedRoleARN?: string; + SuspendedProcesses?: SuspendedProcess[]; /** - *

The metrics enabled for the group.

+ *

The name of the associated launch configuration.

*/ - EnabledMetrics?: EnabledMetric[]; + LaunchConfigurationName?: string; } export namespace AutoScalingGroup { @@ -2154,11 +2172,6 @@ export namespace AutoScalingGroup { } export interface AutoScalingGroupsType { - /** - *

The groups.

- */ - AutoScalingGroups: AutoScalingGroup[] | undefined; - /** *

A string that indicates that the response contains more items than can be returned in * a single response. To receive additional items, specify this string for the @@ -2166,6 +2179,11 @@ export interface AutoScalingGroupsType { * null when there are no more items to return.

*/ NextToken?: string; + + /** + *

The groups.

+ */ + AutoScalingGroups: AutoScalingGroup[] | undefined; } export namespace AutoScalingGroupsType { @@ -2197,15 +2215,16 @@ export namespace InvalidNextToken { */ export interface AutoScalingInstanceDetails { /** - *

The launch template for the instance.

+ *

The name of the Auto Scaling group for the instance.

*/ - LaunchTemplate?: LaunchTemplateSpecification; + AutoScalingGroupName: string | undefined; /** - *

The launch configuration used to launch the instance. This value is not available if - * you attached the instance to the Auto Scaling group.

+ *

The number of capacity units contributed by the instance based on its instance + * type.

+ *

Valid Range: Minimum value of 1. Maximum value of 999.

*/ - LaunchConfigurationName?: string; + WeightedCapacity?: string; /** *

The instance type of the EC2 instance.

@@ -2213,9 +2232,14 @@ export interface AutoScalingInstanceDetails { InstanceType?: string; /** - *

The name of the Auto Scaling group for the instance.

+ *

The Availability Zone for the instance.

*/ - AutoScalingGroupName: string | undefined; + AvailabilityZone: string | undefined; + + /** + *

The launch template for the instance.

+ */ + LaunchTemplate?: LaunchTemplateSpecification; /** *

The last reported health status of this instance. "Healthy" means that the instance is @@ -2224,33 +2248,27 @@ export interface AutoScalingInstanceDetails { */ HealthStatus: string | undefined; - /** - *

Indicates whether the instance is protected from termination by Amazon EC2 Auto Scaling when scaling - * in.

- */ - ProtectedFromScaleIn: boolean | undefined; - /** *

The lifecycle state for the instance.

*/ LifecycleState: string | undefined; /** - *

The number of capacity units contributed by the instance based on its instance - * type.

- *

Valid Range: Minimum value of 1. Maximum value of 999.

+ *

The ID of the instance.

*/ - WeightedCapacity?: string; + InstanceId: string | undefined; /** - *

The Availability Zone for the instance.

+ *

Indicates whether the instance is protected from termination by Amazon EC2 Auto Scaling when scaling + * in.

*/ - AvailabilityZone: string | undefined; + ProtectedFromScaleIn: boolean | undefined; /** - *

The ID of the instance.

+ *

The launch configuration used to launch the instance. This value is not available if + * you attached the instance to the Auto Scaling group.

*/ - InstanceId: string | undefined; + LaunchConfigurationName?: string; } export namespace AutoScalingInstanceDetails { @@ -2260,6 +2278,11 @@ export namespace AutoScalingInstanceDetails { } export interface AutoScalingInstancesType { + /** + *

The instances.

+ */ + AutoScalingInstances?: AutoScalingInstanceDetails[]; + /** *

A string that indicates that the response contains more items than can be returned in * a single response. To receive additional items, specify this string for the @@ -2267,11 +2290,6 @@ export interface AutoScalingInstancesType { * null when there are no more items to return.

*/ NextToken?: string; - - /** - *

The instances.

- */ - AutoScalingInstances?: AutoScalingInstanceDetails[]; } export namespace AutoScalingInstancesType { @@ -2282,10 +2300,11 @@ export namespace AutoScalingInstancesType { export interface DescribeAutoScalingInstancesType { /** - *

The maximum number of items to return with this call. The default value is - * 50 and the maximum value is 50.

+ *

The IDs of the instances. You can specify up to MaxRecords IDs. If you + * omit this parameter, all Auto Scaling instances are described. If you specify an ID that does + * not exist, it is ignored with no error.

*/ - MaxRecords?: number; + InstanceIds?: string[]; /** *

The token for the next set of items to return. (You received this token from a @@ -2294,11 +2313,10 @@ export interface DescribeAutoScalingInstancesType { NextToken?: string; /** - *

The IDs of the instances. You can specify up to MaxRecords IDs. If you - * omit this parameter, all Auto Scaling instances are described. If you specify an ID that does - * not exist, it is ignored with no error.

+ *

The maximum number of items to return with this call. The default value is + * 50 and the maximum value is 50.

*/ - InstanceIds?: string[]; + MaxRecords?: number; } export namespace DescribeAutoScalingInstancesType { @@ -2333,34 +2351,6 @@ export enum InstanceRefreshStatus { *

Describes an instance refresh for an Auto Scaling group.

*/ export interface InstanceRefresh { - /** - *

The percentage of the instance refresh that is complete. For each instance - * replacement, Amazon EC2 Auto Scaling tracks the instance's health status and warm-up time. When the - * instance's health status changes to healthy and the specified warm-up time passes, the - * instance is considered updated and added to the percentage complete.

- */ - PercentageComplete?: number; - - /** - *

The date and time at which the instance refresh ended.

- */ - EndTime?: Date; - - /** - *

The name of the Auto Scaling group.

- */ - AutoScalingGroupName?: string; - - /** - *

The date and time at which the instance refresh began.

- */ - StartTime?: Date; - - /** - *

Provides more details about the current status of the instance refresh.

- */ - StatusReason?: string; - /** *

The current status for the instance refresh operation:

*