Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.autoscaling.kotlin
import com.pulumi.awsnative.autoscaling.LaunchConfigurationArgs.builder
import com.pulumi.awsnative.autoscaling.kotlin.inputs.LaunchConfigurationBlockDeviceMappingArgs
import com.pulumi.awsnative.autoscaling.kotlin.inputs.LaunchConfigurationBlockDeviceMappingArgsBuilder
import com.pulumi.awsnative.autoscaling.kotlin.inputs.LaunchConfigurationMetadataOptionsArgs
import com.pulumi.awsnative.autoscaling.kotlin.inputs.LaunchConfigurationMetadataOptionsArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* The AWS::AutoScaling::LaunchConfiguration resource specifies the launch configuration that can be used by an Auto Scaling group to configure Amazon EC2 instances.
* @property associatePublicIpAddress 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.
* @property blockDeviceMappings Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes.
* @property classicLinkVpcId The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to.
* @property classicLinkVpcSecurityGroups The IDs of one or more security groups for the VPC that you specified in the ClassicLinkVPCId property.
* @property ebsOptimized Specifies whether the launch configuration is optimized for EBS I/O (true) or not (false).
* @property iamInstanceProfile Provides 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.
* @property imageId Provides the unique ID of the Amazon Machine Image (AMI) that was assigned during registration.
* @property instanceId The ID of the Amazon EC2 instance you want to use to create the launch configuration.
* @property instanceMonitoring Controls whether instances in this group are launched with detailed (true) or basic (false) monitoring.
* @property instanceType Specifies the instance type of the EC2 instance.
* @property kernelId Provides the ID of the kernel associated with the EC2 AMI.
* @property keyName Provides the name of the EC2 key pair.
* @property launchConfigurationName The name of the launch configuration. This name must be unique per Region per account.
* @property metadataOptions The metadata options for the instances.
* @property placementTenancy The tenancy of the instance, either default or dedicated.
* @property ramDiskId The ID of the RAM disk to select.
* @property securityGroups A list that contains the security groups to assign to the instances in the Auto Scaling group.
* @property spotPrice The maximum hourly price you are willing to pay for any Spot Instances launched to fulfill the request.
* @property userData The Base64-encoded user data to make available to the launched EC2 instances.
*/
public data class LaunchConfigurationArgs(
public val associatePublicIpAddress: Output? = null,
public val blockDeviceMappings: Output>? = null,
public val classicLinkVpcId: Output? = null,
public val classicLinkVpcSecurityGroups: Output>? = null,
public val ebsOptimized: Output? = null,
public val iamInstanceProfile: Output? = null,
public val imageId: Output? = null,
public val instanceId: Output? = null,
public val instanceMonitoring: Output? = null,
public val instanceType: Output? = null,
public val kernelId: Output? = null,
public val keyName: Output? = null,
public val launchConfigurationName: Output? = null,
public val metadataOptions: Output? = null,
public val placementTenancy: Output? = null,
public val ramDiskId: Output? = null,
public val securityGroups: Output>? = null,
public val spotPrice: Output? = null,
public val userData: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.autoscaling.LaunchConfigurationArgs =
com.pulumi.awsnative.autoscaling.LaunchConfigurationArgs.builder()
.associatePublicIpAddress(associatePublicIpAddress?.applyValue({ args0 -> args0 }))
.blockDeviceMappings(
blockDeviceMappings?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> args0.toJava() })
})
}),
)
.classicLinkVpcId(classicLinkVpcId?.applyValue({ args0 -> args0 }))
.classicLinkVpcSecurityGroups(
classicLinkVpcSecurityGroups?.applyValue({ args0 ->
args0.map({ args0 -> args0 })
}),
)
.ebsOptimized(ebsOptimized?.applyValue({ args0 -> args0 }))
.iamInstanceProfile(iamInstanceProfile?.applyValue({ args0 -> args0 }))
.imageId(imageId?.applyValue({ args0 -> args0 }))
.instanceId(instanceId?.applyValue({ args0 -> args0 }))
.instanceMonitoring(instanceMonitoring?.applyValue({ args0 -> args0 }))
.instanceType(instanceType?.applyValue({ args0 -> args0 }))
.kernelId(kernelId?.applyValue({ args0 -> args0 }))
.keyName(keyName?.applyValue({ args0 -> args0 }))
.launchConfigurationName(launchConfigurationName?.applyValue({ args0 -> args0 }))
.metadataOptions(metadataOptions?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.placementTenancy(placementTenancy?.applyValue({ args0 -> args0 }))
.ramDiskId(ramDiskId?.applyValue({ args0 -> args0 }))
.securityGroups(securityGroups?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.spotPrice(spotPrice?.applyValue({ args0 -> args0 }))
.userData(userData?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [LaunchConfigurationArgs].
*/
@PulumiTagMarker
public class LaunchConfigurationArgsBuilder internal constructor() {
private var associatePublicIpAddress: Output? = null
private var blockDeviceMappings: Output>? = null
private var classicLinkVpcId: Output? = null
private var classicLinkVpcSecurityGroups: Output>? = null
private var ebsOptimized: Output? = null
private var iamInstanceProfile: Output? = null
private var imageId: Output? = null
private var instanceId: Output? = null
private var instanceMonitoring: Output? = null
private var instanceType: Output? = null
private var kernelId: Output? = null
private var keyName: Output? = null
private var launchConfigurationName: Output? = null
private var metadataOptions: Output? = null
private var placementTenancy: Output? = null
private var ramDiskId: Output? = null
private var securityGroups: Output>? = null
private var spotPrice: Output? = null
private var userData: Output? = null
/**
* @param value 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.
*/
@JvmName("fngjqqjoclpxkyky")
public suspend fun associatePublicIpAddress(`value`: Output) {
this.associatePublicIpAddress = value
}
/**
* @param value Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes.
*/
@JvmName("gtyqdkdinltmuheh")
public suspend fun blockDeviceMappings(`value`: Output>) {
this.blockDeviceMappings = value
}
@JvmName("xvhvtgbpwfesoyen")
public suspend fun blockDeviceMappings(vararg values: Output) {
this.blockDeviceMappings = Output.all(values.asList())
}
/**
* @param values Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes.
*/
@JvmName("cfpgfjycabhslcop")
public suspend fun blockDeviceMappings(values: List