This is the preferred interface for creating Launch Configurations with Fugue. The new function is the best place to start.

Module Members



Create a reference to an externally managed LaunchConfiguration.

Example usage:

lc: AutoScaling.LaunchConfiguration.external("my-lc", AWS.Us-east-1)

Type Signature

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

A reference to the specified LaunchConfiguration.

Type: LaunchConfiguration



new AutoScaling Launch Configuration (Constructor)

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


import Fugue.AWS as AWS
import Fugue.AWS.EC2 as EC2
import Fugue.AWS.AutoScaling as AutoScaling

myVpc: EC2.Vpc.new {
  region: AWS.Us-east-1,
  cidrBlock: "",

mySg: EC2.SecurityGroup.new {
  vpc: myVpc,
  description: "LaunchConfiguration example",

lc: AutoScaling.LaunchConfiguration.new {
  image: "ami-01234567",
  securityGroups: [
  instanceType: EC2.T2_micro,
  associatePublicIpAddress: True,

Type Signature

 fun { name: Optional<String>,
       keyName: Optional<String>,
       securityGroups: List<SecurityGroup>,
       userData: Optional<String>,
       userDataBin: Optional<Bytes>,
       instanceType: InstanceType,
       blockDeviceMappings: Optional<List<InstanceBlockDeviceMapping>>,
       instanceMonitoring: Optional<Bool>,
       spotPrice: Optional<String>,
       iamInstanceProfile: Optional<InstanceProfile>,
       ebsOptimized: Optional<Bool>,
       associatePublicIpAddress: Optional<Bool>,
       placementTenancy: Optional<Tenancy>,
       image: String,
       resourceId: Optional<String> } -> LaunchConfiguration
Argument: name

Optional name for the LaunchConfiguration. A unique name will be generated automatically if no name is provided. Note that if a name is provided it must be updated any time a change is made to the LaunchConfiguration.

Type: Optional<String>

Argument: keyName

The SSH key to install on the instance when launched.

Type: Optional<String>

Argument: securityGroups

The security groups to apply to the instance. At least one security group must be specified.

Type: List<SecurityGroup>

Argument: userData

The “userdata” string to launch the instance with.

Type: Optional<String>

Argument: userDataBin

The userdata, as bytes, to provide to instances. Required for sending gzip or multipart encoded userdata. Only one of userData or userDataBin may be specified.

Type: Optional<Bytes>

Argument: instanceType

The type of instance to launch.

Type: InstanceType

Argument: blockDeviceMappings

Block devices to launch the instance with, including EBS volumes and instance store volumes.

Type: Optional<List<InstanceBlockDeviceMapping>>

Argument: instanceMonitoring

Indicates whether to enable detailed instance monitoring. Defaults to True.

Type: Optional<Bool>

Argument: spotPrice

Spot price to bid for the instance. Supplying this value makes the instance a spot instance instead of on-demand or RI. Spot instances are not supported in GovCloud.

Type: Optional<String>

Argument: iamInstanceProfile

An instance profile to apply to the instance.

Type: Optional<InstanceProfile>

Argument: ebsOptimized

Indicates whether to launch the instance as EBS optimized. Basically, an EBS optimized instance uses a dedicated interface for EBS traffic. An instance without EBS optimization uses the same interface for both network and EBS traffic.

Type: Optional<Bool>

Argument: associatePublicIpAddress

Indicates whether to associate a public IP address with the instance on launch.

Type: Optional<Bool>

Argument: placementTenancy

A placement group in which to launch the instance, if desired.

Type: Optional<Tenancy>

Argument: image

The Amazon Machine Image (AMI) on which to base the instance.

Type: String

Argument: resourceId

Resource ID of the resource to import with Fugue Import. This field is only honored on fugue run. The resource ID is the name. Mutable. Example: launch-configuration

Type: Optional<String>


A Fugue.Core.AWS.AutoScaling.LaunchConfiguration value.

Type: LaunchConfiguration



Retrieve the region from a LaunchConfiguration value.

Works for LaunchConfiguration defined in the composition as well external values.

Type Signature

 fun (LaunchConfiguration) -> Region
Argument: launchConfiguration

The LaunchConfiguration from which to get the region.

Type: LaunchConfiguration


The region containing the security group.

Type: Region



  keyName: None
  userData: None
  blockDeviceMappings: None
  instanceMonitoring: Optional(True)
  spotPrice: None
  iamInstanceProfile: None
  ebsOptimized: Optional(False)
  associatePublicIpAddress: Optional(False)
  placementTenancy: None

AutoScaling Launch Configuration Specification (Default Values)