class Aws::AutoScaling::Types::CreateLaunchConfigurationType

@note When making an API call, you may pass CreateLaunchConfigurationType

data as a hash:

    {
      launch_configuration_name: "XmlStringMaxLen255", # required
      image_id: "XmlStringMaxLen255",
      key_name: "XmlStringMaxLen255",
      security_groups: ["XmlString"],
      classic_link_vpc_id: "XmlStringMaxLen255",
      classic_link_vpc_security_groups: ["XmlStringMaxLen255"],
      user_data: "XmlStringUserData",
      instance_id: "XmlStringMaxLen19",
      instance_type: "XmlStringMaxLen255",
      kernel_id: "XmlStringMaxLen255",
      ramdisk_id: "XmlStringMaxLen255",
      block_device_mappings: [
        {
          virtual_name: "XmlStringMaxLen255",
          device_name: "XmlStringMaxLen255", # required
          ebs: {
            snapshot_id: "XmlStringMaxLen255",
            volume_size: 1,
            volume_type: "BlockDeviceEbsVolumeType",
            delete_on_termination: false,
            iops: 1,
            encrypted: false,
            throughput: 1,
          },
          no_device: false,
        },
      ],
      instance_monitoring: {
        enabled: false,
      },
      spot_price: "SpotPrice",
      iam_instance_profile: "XmlStringMaxLen1600",
      ebs_optimized: false,
      associate_public_ip_address: false,
      placement_tenancy: "XmlStringMaxLen64",
      metadata_options: {
        http_tokens: "optional", # accepts optional, required
        http_put_response_hop_limit: 1,
        http_endpoint: "disabled", # accepts disabled, enabled
      },
    }

@!attribute [rw] launch_configuration_name

The name of the launch configuration. This name must be unique per
Region per account.
@return [String]

@!attribute [rw] image_id

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

If you do not specify `InstanceId`, you must specify `ImageId`.

[1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html
@return [String]

@!attribute [rw] key_name

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

[1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
@return [String]

@!attribute [rw] security_groups

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

\[EC2-VPC\] Specify the security group IDs. For more information,
see [Security Groups for Your VPC][1] in the *Amazon Virtual Private
Cloud User Guide*.

\[EC2-Classic\] Specify either the security group names or the
security group IDs. For more information, see [Amazon EC2 Security
Groups][2] in the *Amazon EC2 User Guide for Linux Instances*.

[1]: https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html
[2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
@return [Array<String>]

@!attribute [rw] classic_link_vpc_id

The ID of a ClassicLink-enabled VPC to link your EC2-Classic
instances to. For more information, see [ClassicLink][1] in the
*Amazon EC2 User Guide for Linux Instances* and [Linking EC2-Classic
instances to a VPC][2] in the *Amazon EC2 Auto Scaling User Guide*.

This parameter can only be used if you are launching EC2-Classic
instances.

[1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html
[2]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink
@return [String]

@!attribute [rw] classic_link_vpc_security_groups

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

If you specify the `ClassicLinkVPCId` parameter, you must specify
this parameter.

[1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html
[2]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink
@return [Array<String>]

@!attribute [rw] user_data

The user data to make available to the launched EC2 instances. For
more information, see [Instance metadata and user data][1] (Linux)
and [Instance metadata and user data][2] (Windows). If you are using
a command line tool, base64-encoding is performed for you, and you
can load the text from a file. Otherwise, you must provide
base64-encoded text. User data is limited to 16 KB.

[1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
[2]: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html
@return [String]

@!attribute [rw] instance_id

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 [Creating a launch configuration using an
EC2 instance][1] in the *Amazon EC2 Auto Scaling User Guide*.

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

[1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-lc-with-instanceID.html
@return [String]

@!attribute [rw] instance_type

Specifies the instance type of the EC2 instance.

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

If you do not specify `InstanceId`, you must specify `InstanceType`.

[1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes
@return [String]

@!attribute [rw] kernel_id

The ID of the kernel associated with the AMI.
@return [String]

@!attribute [rw] ramdisk_id

The ID of the RAM disk to select.
@return [String]

@!attribute [rw] block_device_mappings

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][1] in the *Amazon EC2 User
Guide for Linux Instances*.

[1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html
@return [Array<Types::BlockDeviceMapping>]

@!attribute [rw] instance_monitoring

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

The default value is `true` (enabled).

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][1] in the *Amazon EC2 Auto Scaling User Guide*.

[1]: https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html
@return [Types::InstanceMonitoring]

@!attribute [rw] spot_price

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 [Requesting Spot Instances][1] in the *Amazon EC2 Auto Scaling
User Guide*.

<note markdown="1"> 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.

 </note>

[1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-launch-spot-instances.html
@return [String]

@!attribute [rw] iam_instance_profile

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][1] in the *Amazon EC2 Auto Scaling User
Guide*.

[1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html
@return [String]

@!attribute [rw] ebs_optimized

Specifies whether the launch configuration is optimized for EBS I/O
(`true`) or not (`false`). The optimization provides dedicated
throughput to Amazon EBS and an optimized configuration stack to
provide optimal I/O performance. This optimization is not available
with all instance types. Additional fees are incurred when you
enable EBS optimization for an instance type that is not
EBS-optimized by default. For more information, see [Amazon
EBS-Optimized Instances][1] in the *Amazon EC2 User Guide for Linux
Instances*.

The default value is `false`.

[1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html
@return [Boolean]

@!attribute [rw] associate_public_ip_address

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][1] 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.

<note markdown="1"> 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.

 </note>

[1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html
@return [Boolean]

@!attribute [rw] placement_tenancy

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 [Configuring instance tenancy with Amazon
EC2 Auto Scaling][1] in the *Amazon EC2 Auto Scaling User Guide*.

Valid Values: `default` \| `dedicated`

[1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html
@return [String]

@!attribute [rw] metadata_options

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

[1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds
@return [Types::InstanceMetadataOptions]

@see docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateLaunchConfigurationType AWS API Documentation

Constants

SENSITIVE