Fork me on GitHub

Module autoscaling

@pulumi/aws > autoscaling

Index

autoscaling/attachment.ts autoscaling/group.ts autoscaling/lifecycleHook.ts autoscaling/metrics.ts autoscaling/notification.ts autoscaling/notificationType.ts autoscaling/policy.ts autoscaling/schedule.ts

class Attachment

Provides an AutoScaling Attachment resource.

~> NOTE on AutoScaling Groups and ASG Attachments: Terraform currently provides both a standalone ASG Attachment resource (describing an ASG attached to an ELB), and an AutoScaling Group resource with load_balancers defined in-line. At this time you cannot use an ASG with in-line load balancers in conjunction with an ASG Attachment resource. Doing so will cause a conflict and will overwrite attachments.

constructor

new Attachment(name: string, args: AttachmentArgs, opts?: pulumi.CustomResourceOptions)

Create a Attachment resource with the given unique name, arguments, and options.

  • name The unique name of the resource.
  • args The arguments to use to populate this resource's properties.
  • opts A bag of options that control this resource's behavior.

method get

public static get(name: string, id: pulumi.Input<pulumi.ID>, state?: AttachmentState): Attachment

Get an existing Attachment resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

property albTargetGroupArn

public albTargetGroupArn: pulumi.Output<string | undefined>;

The ARN of an ALB Target Group.

property autoscalingGroupName

public autoscalingGroupName: pulumi.Output<string>;

Name of ASG to associate with the ELB.

property elb

public elb: pulumi.Output<string | undefined>;

The name of the ELB.

property id

id: Output<ID>;

id is the provider-assigned unique ID for this managed resource. It is set during deployments and may be missing (undefined) during planning phases.

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

class Group

Provides an AutoScaling Group resource.

-> Note: You must specify either launch_configuration or launch_template.

constructor

new Group(name: string, args: GroupArgs, opts?: pulumi.CustomResourceOptions)

Create a Group resource with the given unique name, arguments, and options.

  • name The unique name of the resource.
  • args The arguments to use to populate this resource's properties.
  • opts A bag of options that control this resource's behavior.

method get

public static get(name: string, id: pulumi.Input<pulumi.ID>, state?: GroupState): Group

Get an existing Group resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

property arn

public arn: pulumi.Output<string>;

The ARN for this AutoScaling Group

property availabilityZones

public availabilityZones: pulumi.Output<string[]>;

A list of one or more availability zones for the group. This parameter should not be specified when using vpc_zone_identifier.

property defaultCooldown

public defaultCooldown: pulumi.Output<number>;

The amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

property desiredCapacity

public desiredCapacity: pulumi.Output<number>;

The number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)

property enabledMetrics

public enabledMetrics: pulumi.Output<Metric[] | undefined>;

A list of metrics to collect. The allowed values are GroupMinSize, GroupMaxSize, GroupDesiredCapacity, GroupInServiceInstances, GroupPendingInstances, GroupStandbyInstances, GroupTerminatingInstances, GroupTotalInstances.

  • wait_for_capacity_timeout (Default: “10m”) A maximum duration that Terraform should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to “0” causes Terraform to skip all Capacity Waiting behavior.

property forceDelete

public forceDelete: pulumi.Output<boolean | undefined>;

Allows deleting the autoscaling group without waiting for all instances in the pool to terminate. You can force an autoscaling group to delete even if it’s in the process of scaling a resource. Normally, Terraform drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.

property healthCheckGracePeriod

public healthCheckGracePeriod: pulumi.Output<number | undefined>;

Time (in seconds) after instance comes into service before checking health.

property healthCheckType

public healthCheckType: pulumi.Output<string>;

“EC2” or “ELB”. Controls how health checking is done.

property id

id: Output<ID>;

id is the provider-assigned unique ID for this managed resource. It is set during deployments and may be missing (undefined) during planning phases.

property initialLifecycleHooks

public initialLifecycleHooks: pulumi.Output<{ ... }[] | undefined>;

One or more Lifecycle Hooks to attach to the autoscaling group before instances are launched. The syntax is exactly the same as the separate aws_autoscaling_lifecycle_hook resource, without the autoscaling_group_name attribute. Please note that this will only work when creating a new autoscaling group. For all other use-cases, please use aws_autoscaling_lifecycle_hook resource.

property launchConfiguration

public launchConfiguration: pulumi.Output<string | undefined>;

The name of the launch configuration to use.

property launchTemplate

public launchTemplate: pulumi.Output<{ ... } | undefined>;

Launch template specification to use to launch instances. See Launch Template Specification below for more details.

property loadBalancers

public loadBalancers: pulumi.Output<string[]>;

A list of elastic load balancer names to add to the autoscaling group names. Only valid for classic load balancers. For ALBs, use target_group_arns instead.

property maxSize

public maxSize: pulumi.Output<number>;

The maximum size of the auto scale group.

property metricsGranularity

public metricsGranularity: pulumi.Output<string | undefined>;

The granularity to associate with the metrics to collect. The only valid value is 1Minute. Default is 1Minute.

property minElbCapacity

public minElbCapacity: pulumi.Output<number | undefined>;

Setting this causes Terraform to wait for this number of instances to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)

property minSize

public minSize: pulumi.Output<number>;

The minimum size of the auto scale group. (See also Waiting for Capacity below.)

property name

public name: pulumi.Output<string>;

The name of the auto scaling group. By default generated by Terraform.

property namePrefix

public namePrefix: pulumi.Output<string | undefined>;

Creates a unique name beginning with the specified prefix. Conflicts with name.

property placementGroup

public placementGroup: pulumi.Output<string | undefined>;

The name of the placement group into which you’ll launch your instances, if any.

property protectFromScaleIn

public protectFromScaleIn: pulumi.Output<boolean | undefined>;

Allows setting instance protection. The autoscaling group will not select instances with this setting for terminination during scale in events.

property serviceLinkedRoleArn

public serviceLinkedRoleArn: pulumi.Output<string>;

The ARN of the service-linked role that the ASG will use to call other AWS services

property suspendedProcesses

public suspendedProcesses: pulumi.Output<string[] | undefined>;

A list of processes to suspend for the AutoScaling Group. The allowed values are Launch, Terminate, HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification, ScheduledActions, AddToLoadBalancer. Note that if you suspend either the Launch or Terminate process types, it can prevent your autoscaling group from functioning properly.

property tags

public tags: pulumi.Output<{ ... }[] | undefined>;

A list of tag blocks. Tags documented below.

property tagsCollection

public tagsCollection: pulumi.Output<Tags | undefined>;

A list of tag blocks (maps). Tags documented below.

property targetGroupArns

public targetGroupArns: pulumi.Output<string[]>;

A list of aws_alb_target_group ARNs, for use with Application Load Balancing.

property terminationPolicies

public terminationPolicies: pulumi.Output<string[] | undefined>;

A list of policies to decide how the instances in the auto scale group should be terminated. The allowed values are OldestInstance, NewestInstance, OldestLaunchConfiguration, ClosestToNextInstanceHour, Default.

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

property vpcZoneIdentifiers

public vpcZoneIdentifiers: pulumi.Output<string[]>;

A list of subnet IDs to launch resources in.

property waitForCapacityTimeout

public waitForCapacityTimeout: pulumi.Output<string | undefined>;

property waitForElbCapacity

public waitForElbCapacity: pulumi.Output<number | undefined>;

Setting this will cause Terraform to wait for exactly this number of healthy instances in all attached load balancers on both create and update operations. (Takes precedence over min_elb_capacity behavior.) (See also Waiting for Capacity below.)

class LifecycleHook

Provides an AutoScaling Lifecycle Hook resource.

~> NOTE: Terraform has two types of ways you can add lifecycle hooks - via the initial_lifecycle_hook attribute from the aws_autoscaling_group resource, or via this one. Hooks added via this resource will not be added until the autoscaling group has been created, and depending on your capacity settings, after the initial instances have been launched, creating unintended behavior. If you need hooks to run on all instances, add them with initial_lifecycle_hook in aws_autoscaling_group, but take care to not duplicate those hooks with this resource.

constructor

new LifecycleHook(name: string, args: LifecycleHookArgs, opts?: pulumi.CustomResourceOptions)

Create a LifecycleHook resource with the given unique name, arguments, and options.

  • name The unique name of the resource.
  • args The arguments to use to populate this resource's properties.
  • opts A bag of options that control this resource's behavior.

method get

public static get(name: string, id: pulumi.Input<pulumi.ID>, state?: LifecycleHookState): LifecycleHook

Get an existing LifecycleHook resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

property autoscalingGroupName

public autoscalingGroupName: pulumi.Output<string>;

The name of the Auto Scaling group to which you want to assign the lifecycle hook

property defaultResult

public defaultResult: pulumi.Output<string>;

Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The value for this parameter can be either CONTINUE or ABANDON. The default value for this parameter is ABANDON.

property heartbeatTimeout

public heartbeatTimeout: pulumi.Output<number | undefined>;

Defines the amount of time, in seconds, that can elapse before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the action defined in the DefaultResult parameter

property id

id: Output<ID>;

id is the provider-assigned unique ID for this managed resource. It is set during deployments and may be missing (undefined) during planning phases.

property lifecycleTransition

public lifecycleTransition: pulumi.Output<string>;

The instance state to which you want to attach the lifecycle hook. For a list of lifecycle hook types, see describe-lifecycle-hook-types

property name

public name: pulumi.Output<string>;

The name of the lifecycle hook.

property notificationMetadata

public notificationMetadata: pulumi.Output<string | undefined>;

Contains additional information that you want to include any time Auto Scaling sends a message to the notification target.

property notificationTargetArn

public notificationTargetArn: pulumi.Output<string | undefined>;

The ARN of the notification target that Auto Scaling will use to notify you when an instance is in the transition state for the lifecycle hook. This ARN target can be either an SQS queue or an SNS topic.

property roleArn

public roleArn: pulumi.Output<string | undefined>;

The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

class Notification

Provides an AutoScaling Group with Notification support, via SNS Topics. Each of the notifications map to a [Notification Configuration][2] inside Amazon Web Services, and are applied to each AutoScaling Group you supply.

constructor

new Notification(name: string, args: NotificationArgs, opts?: pulumi.CustomResourceOptions)

Create a Notification resource with the given unique name, arguments, and options.

  • name The unique name of the resource.
  • args The arguments to use to populate this resource's properties.
  • opts A bag of options that control this resource's behavior.

method get

public static get(name: string, id: pulumi.Input<pulumi.ID>, state?: NotificationState): Notification

Get an existing Notification resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

property groupNames

public groupNames: pulumi.Output<string[]>;

A list of AutoScaling Group Names

property id

id: Output<ID>;

id is the provider-assigned unique ID for this managed resource. It is set during deployments and may be missing (undefined) during planning phases.

property notifications

public notifications: pulumi.Output<NotificationType[]>;

A list of Notification Types that trigger notifications. Acceptable values are documented [in the AWS documentation here][1]

property topicArn

public topicArn: pulumi.Output<string>;

The Topic ARN for notifications to be sent through

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

class Policy

Provides an AutoScaling Scaling Policy resource.

~> NOTE: You may want to omit desired_capacity attribute from attached aws_autoscaling_group when using autoscaling policies. It’s good practice to pick either manual or dynamic (policy-based) scaling.

constructor

new Policy(name: string, args: PolicyArgs, opts?: pulumi.CustomResourceOptions)

Create a Policy resource with the given unique name, arguments, and options.

  • name The unique name of the resource.
  • args The arguments to use to populate this resource's properties.
  • opts A bag of options that control this resource's behavior.

method get

public static get(name: string, id: pulumi.Input<pulumi.ID>, state?: PolicyState): Policy

Get an existing Policy resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

property adjustmentType

public adjustmentType: pulumi.Output<string | undefined>;

Specifies whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.

property arn

public arn: pulumi.Output<string>;

The ARN assigned by AWS to the scaling policy.

property autoscalingGroupName

public autoscalingGroupName: pulumi.Output<string>;

The name of the autoscaling group.

property cooldown

public cooldown: pulumi.Output<number | undefined>;

The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.

property estimatedInstanceWarmup

public estimatedInstanceWarmup: pulumi.Output<number | undefined>;

The estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group’s specified cooldown period.

property id

id: Output<ID>;

id is the provider-assigned unique ID for this managed resource. It is set during deployments and may be missing (undefined) during planning phases.

property metricAggregationType

public metricAggregationType: pulumi.Output<string>;

The aggregation type for the policy’s metrics. Valid values are “Minimum”, “Maximum”, and “Average”. Without a value, AWS will treat the aggregation type as “Average”.

property minAdjustmentMagnitude

public minAdjustmentMagnitude: pulumi.Output<number | undefined>;

property minAdjustmentStep

public minAdjustmentStep: pulumi.Output<number | undefined>;

Use min_adjustment_magnitude instead.

property name

public name: pulumi.Output<string>;

The name of the dimension.

property policyType

public policyType: pulumi.Output<string | undefined>;

The policy type, either “SimpleScaling”, “StepScaling” or “TargetTrackingScaling”. If this value isn’t provided, AWS will default to “SimpleScaling.”

property scalingAdjustment

public scalingAdjustment: pulumi.Output<number | undefined>;

The number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.

property stepAdjustments

public stepAdjustments: pulumi.Output<{ ... }[] | undefined>;

property targetTrackingConfiguration

public targetTrackingConfiguration: pulumi.Output<{ ... } | undefined>;

A target tracking policy. These have the following structure:

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

class Schedule

Provides an AutoScaling Schedule resource.

constructor

new Schedule(name: string, args: ScheduleArgs, opts?: pulumi.CustomResourceOptions)

Create a Schedule resource with the given unique name, arguments, and options.

  • name The unique name of the resource.
  • args The arguments to use to populate this resource's properties.
  • opts A bag of options that control this resource's behavior.

method get

public static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ScheduleState): Schedule

Get an existing Schedule resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

property arn

public arn: pulumi.Output<string>;

The ARN assigned by AWS to the autoscaling schedule.

property autoscalingGroupName

public autoscalingGroupName: pulumi.Output<string>;

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

property desiredCapacity

public desiredCapacity: pulumi.Output<number>;

The number of EC2 instances that should be running in the group. Default 0. Set to -1 if you don’t want to change the desired capacity at the scheduled time.

property endTime

public endTime: pulumi.Output<string>;

The time for this action to end, in “YYYY-MM-DDThh:mm:ssZ” format in UTC/GMT only (for example, 2014-06-01T00:00:00Z ). If you try to schedule your action in the past, Auto Scaling returns an error message.

property id

id: Output<ID>;

id is the provider-assigned unique ID for this managed resource. It is set during deployments and may be missing (undefined) during planning phases.

property maxSize

public maxSize: pulumi.Output<number>;

The maximum size for the Auto Scaling group. Default 0. Set to -1 if you don’t want to change the maximum size at the scheduled time.

property minSize

public minSize: pulumi.Output<number>;

The minimum size for the Auto Scaling group. Default 0. Set to -1 if you don’t want to change the minimum size at the scheduled time.

property recurrence

public recurrence: pulumi.Output<string>;

The time when recurring future actions will start. Start time is specified by the user following the Unix cron syntax format.

property scheduledActionName

public scheduledActionName: pulumi.Output<string>;

The name of this scaling action.

property startTime

public startTime: pulumi.Output<string>;

The time for this action to start, in “YYYY-MM-DDThh:mm:ssZ” format in UTC/GMT only (for example, 2014-06-01T00:00:00Z ). If you try to schedule your action in the past, Auto Scaling returns an error message.

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

interface AttachmentArgs

The set of arguments for constructing a Attachment resource.

property albTargetGroupArn

albTargetGroupArn?: pulumi.Input<string>;

The ARN of an ALB Target Group.

property autoscalingGroupName

autoscalingGroupName: pulumi.Input<string>;

Name of ASG to associate with the ELB.

property elb

elb?: pulumi.Input<string>;

The name of the ELB.

interface AttachmentState

Input properties used for looking up and filtering Attachment resources.

property albTargetGroupArn

albTargetGroupArn?: pulumi.Input<string>;

The ARN of an ALB Target Group.

property autoscalingGroupName

autoscalingGroupName?: pulumi.Input<string>;

Name of ASG to associate with the ELB.

property elb

elb?: pulumi.Input<string>;

The name of the ELB.

interface GroupArgs

The set of arguments for constructing a Group resource.

property availabilityZones

availabilityZones?: pulumi.Input<pulumi.Input<string>[]>;

A list of one or more availability zones for the group. This parameter should not be specified when using vpc_zone_identifier.

property defaultCooldown

defaultCooldown?: pulumi.Input<number>;

The amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

property desiredCapacity

desiredCapacity?: pulumi.Input<number>;

The number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)

property enabledMetrics

enabledMetrics?: pulumi.Input<pulumi.Input<Metric>[]>;

A list of metrics to collect. The allowed values are GroupMinSize, GroupMaxSize, GroupDesiredCapacity, GroupInServiceInstances, GroupPendingInstances, GroupStandbyInstances, GroupTerminatingInstances, GroupTotalInstances.

  • wait_for_capacity_timeout (Default: “10m”) A maximum duration that Terraform should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to “0” causes Terraform to skip all Capacity Waiting behavior.

property forceDelete

forceDelete?: pulumi.Input<boolean>;

Allows deleting the autoscaling group without waiting for all instances in the pool to terminate. You can force an autoscaling group to delete even if it’s in the process of scaling a resource. Normally, Terraform drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.

property healthCheckGracePeriod

healthCheckGracePeriod?: pulumi.Input<number>;

Time (in seconds) after instance comes into service before checking health.

property healthCheckType

healthCheckType?: pulumi.Input<string>;

“EC2” or “ELB”. Controls how health checking is done.

property initialLifecycleHooks

initialLifecycleHooks?: pulumi.Input<pulumi.Input<{ ... }>[]>;

One or more Lifecycle Hooks to attach to the autoscaling group before instances are launched. The syntax is exactly the same as the separate aws_autoscaling_lifecycle_hook resource, without the autoscaling_group_name attribute. Please note that this will only work when creating a new autoscaling group. For all other use-cases, please use aws_autoscaling_lifecycle_hook resource.

property launchConfiguration

launchConfiguration?: pulumi.Input<string | LaunchConfiguration>;

The name of the launch configuration to use.

property launchTemplate

launchTemplate?: pulumi.Input<{ ... }>;

Launch template specification to use to launch instances. See Launch Template Specification below for more details.

property loadBalancers

loadBalancers?: pulumi.Input<pulumi.Input<string>[]>;

A list of elastic load balancer names to add to the autoscaling group names. Only valid for classic load balancers. For ALBs, use target_group_arns instead.

property maxSize

maxSize: pulumi.Input<number>;

The maximum size of the auto scale group.

property metricsGranularity

metricsGranularity?: pulumi.Input<string | MetricsGranularity>;

The granularity to associate with the metrics to collect. The only valid value is 1Minute. Default is 1Minute.

property minElbCapacity

minElbCapacity?: pulumi.Input<number>;

Setting this causes Terraform to wait for this number of instances to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)

property minSize

minSize: pulumi.Input<number>;

The minimum size of the auto scale group. (See also Waiting for Capacity below.)

property name

name?: pulumi.Input<string>;

The name of the auto scaling group. By default generated by Terraform.

property namePrefix

namePrefix?: pulumi.Input<string>;

Creates a unique name beginning with the specified prefix. Conflicts with name.

property placementGroup

placementGroup?: pulumi.Input<string | PlacementGroup>;

The name of the placement group into which you’ll launch your instances, if any.

property protectFromScaleIn

protectFromScaleIn?: pulumi.Input<boolean>;

Allows setting instance protection. The autoscaling group will not select instances with this setting for terminination during scale in events.

property serviceLinkedRoleArn

serviceLinkedRoleArn?: pulumi.Input<string>;

The ARN of the service-linked role that the ASG will use to call other AWS services

property suspendedProcesses

suspendedProcesses?: pulumi.Input<pulumi.Input<string>[]>;

A list of processes to suspend for the AutoScaling Group. The allowed values are Launch, Terminate, HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification, ScheduledActions, AddToLoadBalancer. Note that if you suspend either the Launch or Terminate process types, it can prevent your autoscaling group from functioning properly.

property tags

tags?: pulumi.Input<pulumi.Input<{ ... }>[]>;

A list of tag blocks. Tags documented below.

property tagsCollection

tagsCollection?: pulumi.Input<Tags>;

A list of tag blocks (maps). Tags documented below.

property targetGroupArns

targetGroupArns?: pulumi.Input<pulumi.Input<string>[]>;

A list of aws_alb_target_group ARNs, for use with Application Load Balancing.

property terminationPolicies

terminationPolicies?: pulumi.Input<pulumi.Input<string>[]>;

A list of policies to decide how the instances in the auto scale group should be terminated. The allowed values are OldestInstance, NewestInstance, OldestLaunchConfiguration, ClosestToNextInstanceHour, Default.

property vpcZoneIdentifiers

vpcZoneIdentifiers?: pulumi.Input<pulumi.Input<string>[]>;

A list of subnet IDs to launch resources in.

property waitForCapacityTimeout

waitForCapacityTimeout?: pulumi.Input<string>;

property waitForElbCapacity

waitForElbCapacity?: pulumi.Input<number>;

Setting this will cause Terraform to wait for exactly this number of healthy instances in all attached load balancers on both create and update operations. (Takes precedence over min_elb_capacity behavior.) (See also Waiting for Capacity below.)

interface GroupState

Input properties used for looking up and filtering Group resources.

property arn

arn?: pulumi.Input<string>;

The ARN for this AutoScaling Group

property availabilityZones

availabilityZones?: pulumi.Input<pulumi.Input<string>[]>;

A list of one or more availability zones for the group. This parameter should not be specified when using vpc_zone_identifier.

property defaultCooldown

defaultCooldown?: pulumi.Input<number>;

The amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

property desiredCapacity

desiredCapacity?: pulumi.Input<number>;

The number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)

property enabledMetrics

enabledMetrics?: pulumi.Input<pulumi.Input<Metric>[]>;

A list of metrics to collect. The allowed values are GroupMinSize, GroupMaxSize, GroupDesiredCapacity, GroupInServiceInstances, GroupPendingInstances, GroupStandbyInstances, GroupTerminatingInstances, GroupTotalInstances.

  • wait_for_capacity_timeout (Default: “10m”) A maximum duration that Terraform should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to “0” causes Terraform to skip all Capacity Waiting behavior.

property forceDelete

forceDelete?: pulumi.Input<boolean>;

Allows deleting the autoscaling group without waiting for all instances in the pool to terminate. You can force an autoscaling group to delete even if it’s in the process of scaling a resource. Normally, Terraform drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.

property healthCheckGracePeriod

healthCheckGracePeriod?: pulumi.Input<number>;

Time (in seconds) after instance comes into service before checking health.

property healthCheckType

healthCheckType?: pulumi.Input<string>;

“EC2” or “ELB”. Controls how health checking is done.

property initialLifecycleHooks

initialLifecycleHooks?: pulumi.Input<pulumi.Input<{ ... }>[]>;

One or more Lifecycle Hooks to attach to the autoscaling group before instances are launched. The syntax is exactly the same as the separate aws_autoscaling_lifecycle_hook resource, without the autoscaling_group_name attribute. Please note that this will only work when creating a new autoscaling group. For all other use-cases, please use aws_autoscaling_lifecycle_hook resource.

property launchConfiguration

launchConfiguration?: pulumi.Input<string | LaunchConfiguration>;

The name of the launch configuration to use.

property launchTemplate

launchTemplate?: pulumi.Input<{ ... }>;

Launch template specification to use to launch instances. See Launch Template Specification below for more details.

property loadBalancers

loadBalancers?: pulumi.Input<pulumi.Input<string>[]>;

A list of elastic load balancer names to add to the autoscaling group names. Only valid for classic load balancers. For ALBs, use target_group_arns instead.

property maxSize

maxSize?: pulumi.Input<number>;

The maximum size of the auto scale group.

property metricsGranularity

metricsGranularity?: pulumi.Input<string | MetricsGranularity>;

The granularity to associate with the metrics to collect. The only valid value is 1Minute. Default is 1Minute.

property minElbCapacity

minElbCapacity?: pulumi.Input<number>;

Setting this causes Terraform to wait for this number of instances to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)

property minSize

minSize?: pulumi.Input<number>;

The minimum size of the auto scale group. (See also Waiting for Capacity below.)

property name

name?: pulumi.Input<string>;

The name of the auto scaling group. By default generated by Terraform.

property namePrefix

namePrefix?: pulumi.Input<string>;

Creates a unique name beginning with the specified prefix. Conflicts with name.

property placementGroup

placementGroup?: pulumi.Input<string | PlacementGroup>;

The name of the placement group into which you’ll launch your instances, if any.

property protectFromScaleIn

protectFromScaleIn?: pulumi.Input<boolean>;

Allows setting instance protection. The autoscaling group will not select instances with this setting for terminination during scale in events.

property serviceLinkedRoleArn

serviceLinkedRoleArn?: pulumi.Input<string>;

The ARN of the service-linked role that the ASG will use to call other AWS services

property suspendedProcesses

suspendedProcesses?: pulumi.Input<pulumi.Input<string>[]>;

A list of processes to suspend for the AutoScaling Group. The allowed values are Launch, Terminate, HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification, ScheduledActions, AddToLoadBalancer. Note that if you suspend either the Launch or Terminate process types, it can prevent your autoscaling group from functioning properly.

property tags

tags?: pulumi.Input<pulumi.Input<{ ... }>[]>;

A list of tag blocks. Tags documented below.

property tagsCollection

tagsCollection?: pulumi.Input<Tags>;

A list of tag blocks (maps). Tags documented below.

property targetGroupArns

targetGroupArns?: pulumi.Input<pulumi.Input<string>[]>;

A list of aws_alb_target_group ARNs, for use with Application Load Balancing.

property terminationPolicies

terminationPolicies?: pulumi.Input<pulumi.Input<string>[]>;

A list of policies to decide how the instances in the auto scale group should be terminated. The allowed values are OldestInstance, NewestInstance, OldestLaunchConfiguration, ClosestToNextInstanceHour, Default.

property vpcZoneIdentifiers

vpcZoneIdentifiers?: pulumi.Input<pulumi.Input<string>[]>;

A list of subnet IDs to launch resources in.

property waitForCapacityTimeout

waitForCapacityTimeout?: pulumi.Input<string>;

property waitForElbCapacity

waitForElbCapacity?: pulumi.Input<number>;

Setting this will cause Terraform to wait for exactly this number of healthy instances in all attached load balancers on both create and update operations. (Takes precedence over min_elb_capacity behavior.) (See also Waiting for Capacity below.)

interface LifecycleHookArgs

The set of arguments for constructing a LifecycleHook resource.

property autoscalingGroupName

autoscalingGroupName: pulumi.Input<string>;

The name of the Auto Scaling group to which you want to assign the lifecycle hook

property defaultResult

defaultResult?: pulumi.Input<string>;

Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The value for this parameter can be either CONTINUE or ABANDON. The default value for this parameter is ABANDON.

property heartbeatTimeout

heartbeatTimeout?: pulumi.Input<number>;

Defines the amount of time, in seconds, that can elapse before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the action defined in the DefaultResult parameter

property lifecycleTransition

lifecycleTransition: pulumi.Input<string>;

The instance state to which you want to attach the lifecycle hook. For a list of lifecycle hook types, see describe-lifecycle-hook-types

property name

name?: pulumi.Input<string>;

The name of the lifecycle hook.

property notificationMetadata

notificationMetadata?: pulumi.Input<string>;

Contains additional information that you want to include any time Auto Scaling sends a message to the notification target.

property notificationTargetArn

notificationTargetArn?: pulumi.Input<string>;

The ARN of the notification target that Auto Scaling will use to notify you when an instance is in the transition state for the lifecycle hook. This ARN target can be either an SQS queue or an SNS topic.

property roleArn

roleArn?: pulumi.Input<string>;

The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.

interface LifecycleHookState

Input properties used for looking up and filtering LifecycleHook resources.

property autoscalingGroupName

autoscalingGroupName?: pulumi.Input<string>;

The name of the Auto Scaling group to which you want to assign the lifecycle hook

property defaultResult

defaultResult?: pulumi.Input<string>;

Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The value for this parameter can be either CONTINUE or ABANDON. The default value for this parameter is ABANDON.

property heartbeatTimeout

heartbeatTimeout?: pulumi.Input<number>;

Defines the amount of time, in seconds, that can elapse before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the action defined in the DefaultResult parameter

property lifecycleTransition

lifecycleTransition?: pulumi.Input<string>;

The instance state to which you want to attach the lifecycle hook. For a list of lifecycle hook types, see describe-lifecycle-hook-types

property name

name?: pulumi.Input<string>;

The name of the lifecycle hook.

property notificationMetadata

notificationMetadata?: pulumi.Input<string>;

Contains additional information that you want to include any time Auto Scaling sends a message to the notification target.

property notificationTargetArn

notificationTargetArn?: pulumi.Input<string>;

The ARN of the notification target that Auto Scaling will use to notify you when an instance is in the transition state for the lifecycle hook. This ARN target can be either an SQS queue or an SNS topic.

property roleArn

roleArn?: pulumi.Input<string>;

The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.

interface NotificationArgs

The set of arguments for constructing a Notification resource.

property groupNames

groupNames: pulumi.Input<pulumi.Input<string>[]>;

A list of AutoScaling Group Names

property notifications

notifications: pulumi.Input<pulumi.Input<NotificationType>[]>;

A list of Notification Types that trigger notifications. Acceptable values are documented [in the AWS documentation here][1]

property topicArn

topicArn: pulumi.Input<string>;

The Topic ARN for notifications to be sent through

interface NotificationState

Input properties used for looking up and filtering Notification resources.

property groupNames

groupNames?: pulumi.Input<pulumi.Input<string>[]>;

A list of AutoScaling Group Names

property notifications

notifications?: pulumi.Input<pulumi.Input<NotificationType>[]>;

A list of Notification Types that trigger notifications. Acceptable values are documented [in the AWS documentation here][1]

property topicArn

topicArn?: pulumi.Input<string>;

The Topic ARN for notifications to be sent through

interface PolicyArgs

The set of arguments for constructing a Policy resource.

property adjustmentType

adjustmentType?: pulumi.Input<string>;

Specifies whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.

property autoscalingGroupName

autoscalingGroupName: pulumi.Input<string>;

The name of the autoscaling group.

property cooldown

cooldown?: pulumi.Input<number>;

The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.

property estimatedInstanceWarmup

estimatedInstanceWarmup?: pulumi.Input<number>;

The estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group’s specified cooldown period.

property metricAggregationType

metricAggregationType?: pulumi.Input<string>;

The aggregation type for the policy’s metrics. Valid values are “Minimum”, “Maximum”, and “Average”. Without a value, AWS will treat the aggregation type as “Average”.

property minAdjustmentMagnitude

minAdjustmentMagnitude?: pulumi.Input<number>;

property minAdjustmentStep

minAdjustmentStep?: pulumi.Input<number>;

Use min_adjustment_magnitude instead.

property name

name?: pulumi.Input<string>;

The name of the dimension.

property policyType

policyType?: pulumi.Input<string>;

The policy type, either “SimpleScaling”, “StepScaling” or “TargetTrackingScaling”. If this value isn’t provided, AWS will default to “SimpleScaling.”

property scalingAdjustment

scalingAdjustment?: pulumi.Input<number>;

The number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.

property stepAdjustments

stepAdjustments?: pulumi.Input<pulumi.Input<{ ... }>[]>;

property targetTrackingConfiguration

targetTrackingConfiguration?: pulumi.Input<{ ... }>;

A target tracking policy. These have the following structure:

interface PolicyState

Input properties used for looking up and filtering Policy resources.

property adjustmentType

adjustmentType?: pulumi.Input<string>;

Specifies whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.

property arn

arn?: pulumi.Input<string>;

The ARN assigned by AWS to the scaling policy.

property autoscalingGroupName

autoscalingGroupName?: pulumi.Input<string>;

The name of the autoscaling group.

property cooldown

cooldown?: pulumi.Input<number>;

The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.

property estimatedInstanceWarmup

estimatedInstanceWarmup?: pulumi.Input<number>;

The estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group’s specified cooldown period.

property metricAggregationType

metricAggregationType?: pulumi.Input<string>;

The aggregation type for the policy’s metrics. Valid values are “Minimum”, “Maximum”, and “Average”. Without a value, AWS will treat the aggregation type as “Average”.

property minAdjustmentMagnitude

minAdjustmentMagnitude?: pulumi.Input<number>;

property minAdjustmentStep

minAdjustmentStep?: pulumi.Input<number>;

Use min_adjustment_magnitude instead.

property name

name?: pulumi.Input<string>;

The name of the dimension.

property policyType

policyType?: pulumi.Input<string>;

The policy type, either “SimpleScaling”, “StepScaling” or “TargetTrackingScaling”. If this value isn’t provided, AWS will default to “SimpleScaling.”

property scalingAdjustment

scalingAdjustment?: pulumi.Input<number>;

The number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.

property stepAdjustments

stepAdjustments?: pulumi.Input<pulumi.Input<{ ... }>[]>;

property targetTrackingConfiguration

targetTrackingConfiguration?: pulumi.Input<{ ... }>;

A target tracking policy. These have the following structure:

interface ScheduleArgs

The set of arguments for constructing a Schedule resource.

property autoscalingGroupName

autoscalingGroupName: pulumi.Input<string>;

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

property desiredCapacity

desiredCapacity?: pulumi.Input<number>;

The number of EC2 instances that should be running in the group. Default 0. Set to -1 if you don’t want to change the desired capacity at the scheduled time.

property endTime

endTime?: pulumi.Input<string>;

The time for this action to end, in “YYYY-MM-DDThh:mm:ssZ” format in UTC/GMT only (for example, 2014-06-01T00:00:00Z ). If you try to schedule your action in the past, Auto Scaling returns an error message.

property maxSize

maxSize?: pulumi.Input<number>;

The maximum size for the Auto Scaling group. Default 0. Set to -1 if you don’t want to change the maximum size at the scheduled time.

property minSize

minSize?: pulumi.Input<number>;

The minimum size for the Auto Scaling group. Default 0. Set to -1 if you don’t want to change the minimum size at the scheduled time.

property recurrence

recurrence?: pulumi.Input<string>;

The time when recurring future actions will start. Start time is specified by the user following the Unix cron syntax format.

property scheduledActionName

scheduledActionName: pulumi.Input<string>;

The name of this scaling action.

property startTime

startTime?: pulumi.Input<string>;

The time for this action to start, in “YYYY-MM-DDThh:mm:ssZ” format in UTC/GMT only (for example, 2014-06-01T00:00:00Z ). If you try to schedule your action in the past, Auto Scaling returns an error message.

interface ScheduleState

Input properties used for looking up and filtering Schedule resources.

property arn

arn?: pulumi.Input<string>;

The ARN assigned by AWS to the autoscaling schedule.

property autoscalingGroupName

autoscalingGroupName?: pulumi.Input<string>;

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

property desiredCapacity

desiredCapacity?: pulumi.Input<number>;

The number of EC2 instances that should be running in the group. Default 0. Set to -1 if you don’t want to change the desired capacity at the scheduled time.

property endTime

endTime?: pulumi.Input<string>;

The time for this action to end, in “YYYY-MM-DDThh:mm:ssZ” format in UTC/GMT only (for example, 2014-06-01T00:00:00Z ). If you try to schedule your action in the past, Auto Scaling returns an error message.

property maxSize

maxSize?: pulumi.Input<number>;

The maximum size for the Auto Scaling group. Default 0. Set to -1 if you don’t want to change the maximum size at the scheduled time.

property minSize

minSize?: pulumi.Input<number>;

The minimum size for the Auto Scaling group. Default 0. Set to -1 if you don’t want to change the minimum size at the scheduled time.

property recurrence

recurrence?: pulumi.Input<string>;

The time when recurring future actions will start. Start time is specified by the user following the Unix cron syntax format.

property scheduledActionName

scheduledActionName?: pulumi.Input<string>;

The name of this scaling action.

property startTime

startTime?: pulumi.Input<string>;

The time for this action to start, in “YYYY-MM-DDThh:mm:ssZ” format in UTC/GMT only (for example, 2014-06-01T00:00:00Z ). If you try to schedule your action in the past, Auto Scaling returns an error message.

let GroupDesiredCapacityMetric

let GroupDesiredCapacityMetric: Metric = "GroupDesiredCapacity";

let GroupInServiceInstancesMetric

let GroupInServiceInstancesMetric: Metric = "GroupInServiceInstances";

let GroupMaxSizeMetric

let GroupMaxSizeMetric: Metric = "GroupMaxSize";

let GroupMinSizeMetric

let GroupMinSizeMetric: Metric = "GroupMinSize";

let GroupPendingInstances

let GroupPendingInstances: Metric = "GroupPendingInstances";

let GroupStandbyInstances

let GroupStandbyInstances: Metric = "GroupStandbyInstances";

let GroupTerminatingInstances

let GroupTerminatingInstances: Metric = "GroupTerminatingInstances";

let GroupTotalInstances

let GroupTotalInstances: Metric = "GroupTotalInstances";

let InstanceLaunchErrorNotification

let InstanceLaunchErrorNotification: NotificationType = "autoscaling:EC2_INSTANCE_LAUNCH_ERROR";

let InstanceLaunchNotification

let InstanceLaunchNotification: NotificationType = "autoscaling:EC2_INSTANCE_LAUNCH";

let InstanceTerminateErrorNotification

let InstanceTerminateErrorNotification: NotificationType = "autoscaling:EC2_INSTANCE_TERMINATE_ERROR";

let InstanceTerminateNotification

let InstanceTerminateNotification: NotificationType = "autoscaling:EC2_INSTANCE_TERMINATE";

let OneMinuteMetricsGranularity

let OneMinuteMetricsGranularity: MetricsGranularity = "1Minute";

let TestNotification

let TestNotification: NotificationType = "autoscaling:TEST_NOTIFICATION";

type Metric

type Metric = GroupMinSize | GroupMaxSize | GroupDesiredCapacity | GroupInServiceInstances | GroupPendingInstances | GroupStandbyInstances | GroupTerminatingInstances | GroupTotalInstances;

type MetricsGranularity

type MetricsGranularity = 1Minute;

type NotificationType

type NotificationType = autoscaling:EC2_INSTANCE_LAUNCH | autoscaling:EC2_INSTANCE_TERMINATE | autoscaling:EC2_INSTANCE_LAUNCH_ERROR | autoscaling:EC2_INSTANCE_TERMINATE_ERROR | autoscaling:TEST_NOTIFICATION;