All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.ec2.kotlin.inputs.LaunchTemplateBlockDeviceMappingEbsArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.aws.ec2.kotlin.inputs

import com.pulumi.aws.ec2.inputs.LaunchTemplateBlockDeviceMappingEbsArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 *
 * @property deleteOnTermination Whether the volume should be destroyed on instance termination.
 * See [Preserving Amazon EBS Volumes on Instance Termination](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/preserving-volumes-on-termination.html) for more information.
 * @property encrypted Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume.
 * Cannot be used with `snapshot_id`.
 * @property iops The amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html).
 * This must be set with a `volume_type` of `"io1/io2/gp3"`.
 * @property kmsKeyId The ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted volume.
 * `encrypted` must be set to `true` when this is set.
 * @property snapshotId The Snapshot ID to mount.
 * @property throughput The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g., 500), with a maximum of 1,000 MiB/s.
 * @property volumeSize The size of the volume in gigabytes.
 * @property volumeType The volume type.
 * Can be one of `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1` or `st1`.
 */
public data class LaunchTemplateBlockDeviceMappingEbsArgs(
    public val deleteOnTermination: Output? = null,
    public val encrypted: Output? = null,
    public val iops: Output? = null,
    public val kmsKeyId: Output? = null,
    public val snapshotId: Output? = null,
    public val throughput: Output? = null,
    public val volumeSize: Output? = null,
    public val volumeType: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.ec2.inputs.LaunchTemplateBlockDeviceMappingEbsArgs =
        com.pulumi.aws.ec2.inputs.LaunchTemplateBlockDeviceMappingEbsArgs.builder()
            .deleteOnTermination(deleteOnTermination?.applyValue({ args0 -> args0 }))
            .encrypted(encrypted?.applyValue({ args0 -> args0 }))
            .iops(iops?.applyValue({ args0 -> args0 }))
            .kmsKeyId(kmsKeyId?.applyValue({ args0 -> args0 }))
            .snapshotId(snapshotId?.applyValue({ args0 -> args0 }))
            .throughput(throughput?.applyValue({ args0 -> args0 }))
            .volumeSize(volumeSize?.applyValue({ args0 -> args0 }))
            .volumeType(volumeType?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [LaunchTemplateBlockDeviceMappingEbsArgs].
 */
@PulumiTagMarker
public class LaunchTemplateBlockDeviceMappingEbsArgsBuilder internal constructor() {
    private var deleteOnTermination: Output? = null

    private var encrypted: Output? = null

    private var iops: Output? = null

    private var kmsKeyId: Output? = null

    private var snapshotId: Output? = null

    private var throughput: Output? = null

    private var volumeSize: Output? = null

    private var volumeType: Output? = null

    /**
     * @param value Whether the volume should be destroyed on instance termination.
     * See [Preserving Amazon EBS Volumes on Instance Termination](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/preserving-volumes-on-termination.html) for more information.
     */
    @JvmName("fwlwuueqdvjmhidd")
    public suspend fun deleteOnTermination(`value`: Output) {
        this.deleteOnTermination = value
    }

    /**
     * @param value Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume.
     * Cannot be used with `snapshot_id`.
     */
    @JvmName("wtitdfjcpynxdika")
    public suspend fun encrypted(`value`: Output) {
        this.encrypted = value
    }

    /**
     * @param value The amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html).
     * This must be set with a `volume_type` of `"io1/io2/gp3"`.
     */
    @JvmName("rskxnumtifqxprvt")
    public suspend fun iops(`value`: Output) {
        this.iops = value
    }

    /**
     * @param value The ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted volume.
     * `encrypted` must be set to `true` when this is set.
     */
    @JvmName("esyunwiiblipcklt")
    public suspend fun kmsKeyId(`value`: Output) {
        this.kmsKeyId = value
    }

    /**
     * @param value The Snapshot ID to mount.
     */
    @JvmName("kaptgqunlopxvamm")
    public suspend fun snapshotId(`value`: Output) {
        this.snapshotId = value
    }

    /**
     * @param value The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g., 500), with a maximum of 1,000 MiB/s.
     */
    @JvmName("rhfgrmtpgtmjmatd")
    public suspend fun throughput(`value`: Output) {
        this.throughput = value
    }

    /**
     * @param value The size of the volume in gigabytes.
     */
    @JvmName("uamvlerrbcihcusv")
    public suspend fun volumeSize(`value`: Output) {
        this.volumeSize = value
    }

    /**
     * @param value The volume type.
     * Can be one of `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1` or `st1`.
     */
    @JvmName("kcnmwigelofexxgw")
    public suspend fun volumeType(`value`: Output) {
        this.volumeType = value
    }

    /**
     * @param value Whether the volume should be destroyed on instance termination.
     * See [Preserving Amazon EBS Volumes on Instance Termination](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/preserving-volumes-on-termination.html) for more information.
     */
    @JvmName("escaiqbqbcaiprkn")
    public suspend fun deleteOnTermination(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.deleteOnTermination = mapped
    }

    /**
     * @param value Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume.
     * Cannot be used with `snapshot_id`.
     */
    @JvmName("wrijskmwytgggita")
    public suspend fun encrypted(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.encrypted = mapped
    }

    /**
     * @param value The amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html).
     * This must be set with a `volume_type` of `"io1/io2/gp3"`.
     */
    @JvmName("lnpompurkajcrmnq")
    public suspend fun iops(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.iops = mapped
    }

    /**
     * @param value The ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted volume.
     * `encrypted` must be set to `true` when this is set.
     */
    @JvmName("rndplmevebmpihti")
    public suspend fun kmsKeyId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKeyId = mapped
    }

    /**
     * @param value The Snapshot ID to mount.
     */
    @JvmName("culxyjpdljiwjdnh")
    public suspend fun snapshotId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.snapshotId = mapped
    }

    /**
     * @param value The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g., 500), with a maximum of 1,000 MiB/s.
     */
    @JvmName("mstkeqpxonclnvlk")
    public suspend fun throughput(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.throughput = mapped
    }

    /**
     * @param value The size of the volume in gigabytes.
     */
    @JvmName("xtqwijcqmpaptepg")
    public suspend fun volumeSize(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.volumeSize = mapped
    }

    /**
     * @param value The volume type.
     * Can be one of `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1` or `st1`.
     */
    @JvmName("pcvipdykrosqbulr")
    public suspend fun volumeType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.volumeType = mapped
    }

    internal fun build(): LaunchTemplateBlockDeviceMappingEbsArgs =
        LaunchTemplateBlockDeviceMappingEbsArgs(
            deleteOnTermination = deleteOnTermination,
            encrypted = encrypted,
            iops = iops,
            kmsKeyId = kmsKeyId,
            snapshotId = snapshotId,
            throughput = throughput,
            volumeSize = volumeSize,
            volumeType = volumeType,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy