This is the preferred interface for making AutoScaling Group resources with Fugue. The AutoScalingGroup and LaunchConfiguration modules comprise the bulk of the interface.

If you want to manage an ASG with Fugue, the new function is the right place to start.

Module Members



Create a reference to an externally managed AutoScalingGroup.

Example usage:

asg: AutoScaling.AutoScalingGroup.external("my-asg", AWS.Us-east-1)

Type Signature

 fun (String, Region) -> AutoScalingGroup
Argument: name
Type: String
Argument: region
Type: Region

A reference to the specified AutoScalingGroup.

Type: AutoScalingGroup



new AutoScaling Group (Constructor)

Call this constructor to create a new Fugue.Core.AWS.AutoScaling.AutoScalingGroup value.

Type Signature

 fun (AutoScalingSpec) -> AutoScalingGroup
Argument: spec

An AutoScaling Group specification record.

Type: AutoScalingSpec


A Fugue.Core.AWS.AutoScaling.AutoScalingGroup value.

Type: AutoScalingGroup



type AutoScalingSpec:
  name: Optional<String>
  minSize: Int
  maxSize: Int
  defaultCooldown: Int
  healthCheckType: HealthCheck
  healthCheckGracePeriod: Optional<Int>
  placementGroup: Optional<String>
  enabledMetrics: Optional<List<Metric>>
  tags: Optional<List<Tag>>
  terminationPolicies: Optional<List<TerminationPolicy>>
  newInstancesProtectedFromScaleIn: Optional<Bool>
  launchConfiguration: LaunchConfiguration
  subnets: List<Subnet>
  loadBalancers: Optional<List<LoadBalancer>>
  notificationConfigurations: Optional<List<NotificationConfiguration>>

AutoScaling Group Specification (Resource)

This type of value specifies an AutoScalingGroup for the AutoScaling. new() constructor.


AutoScaling.AutoScalingGroup.new {
    name: "my-asg",
    subnets: demo-app-network.publicSubnets,
    loadBalancers: [demo-app-elb],
    minSize: 4,
    maxSize: 4,
    defaultCooldown: 300,
    launchConfiguration: demo-app-lc,
    healthCheckType: AutoScaling.Ec2,
    tags: [demo-app-tag],
    terminationPolicies: [AutoScaling.ClosestToNextInstanceHour],
    enabledMetrics: [

Record {

Field: name

Optional name for the AutoScalingGroup. A unique name will be generated automatically if no name is provided.

Type: Optional<String>

Field: minSize

Minimum number of active instances in the AutoScaling Group. Mutable.

Type: Int

Field: maxSize

Maximum number of active instances in the AutoScaling Group. Mutable.

Type: Int

Field: defaultCooldown

The default cooldown time, in seconds, to use between scaling events. Changes to the group size are not made during the cooldown period, no matter what the metrics might read. Mutable.

Type: Int

Field: healthCheckType

The type of health check to use for instances in the group. Mutable.

Type: HealthCheck

Field: healthCheckGracePeriod

The grace period to allow new instances in the group to go without a health check. Such instances are not put into service until their health check succeeds, and any health check failures on the instance are ignored. Mutable.

Type: Optional<Int>

Field: placementGroup

The placement group in which to launch instances for the group. Mutable.

Type: Optional<String>

Field: enabledMetrics

Metrics to enable on the group. Mutable.

Type: Optional<List<Metric>>

Field: tags

Key-value pair tags to assign to the group. Mutable.

Type: Optional<List<Tag>>

Field: terminationPolicies

Policies to use for terminating instances in the group when scaling down. Mutable.

Type: Optional<List<TerminationPolicy>>

Field: newInstancesProtectedFromScaleIn


Type: Optional<Bool>

Field: launchConfiguration

The launch configuration to use for new instances when scaling up. Mutable.

Type: LaunchConfiguration

Field: subnets

The subnets in which to launch instances in the group. Mutable.

Type: List<Subnet>

Field: loadBalancers

The load balancers with which to register instances in the group. Mutable.

Type: Optional<List<LoadBalancer>>

Field: notificationConfigurations

The notification configurations to associate with the AutoScaling Group. Mutable.

Type: Optional<List<NotificationConfiguration>>




  minSize: 1
  maxSize: 1
  defaultCooldown: 300
  healthCheckType: Ec2
  healthCheckGracePeriod: Optional(300)
  placementGroup: None
  enabledMetrics: None
  tags: None
  terminationPolicies: None
  newInstancesProtectedFromScaleIn: None
  loadBalancers: None

AutoScaling Group Specification (Default Values)