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

com.pulumi.gcp.workbench.kotlin.inputs.InstanceGceSetupDataDisksArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 8.10.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.workbench.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.workbench.inputs.InstanceGceSetupDataDisksArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 *
 * @property diskEncryption Optional. Input only. Disk encryption method used on the boot
 * and data disks, defaults to GMEK.
 * Possible values are: `GMEK`, `CMEK`.
 * @property diskSizeGb Optional. The size of the disk in GB attached to this VM instance,
 * up to a maximum of 64000 GB (64 TB). If not specified, this defaults to
 * 100.
 * @property diskType Optional. Input only. Indicates the type of the disk.
 * Possible values are: `PD_STANDARD`, `PD_SSD`, `PD_BALANCED`, `PD_EXTREME`.
 * @property kmsKey 'Optional. The KMS key used to encrypt the disks,
 * only applicable if disk_encryption is CMEK. Format: `projects/{project_id}/locations/{location}/keyRings/{key_ring_id}/cryptoKeys/{key_id}`
 * Learn more about using your own encryption keys.'
 */
public data class InstanceGceSetupDataDisksArgs(
    public val diskEncryption: Output? = null,
    public val diskSizeGb: Output? = null,
    public val diskType: Output? = null,
    public val kmsKey: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.workbench.inputs.InstanceGceSetupDataDisksArgs =
        com.pulumi.gcp.workbench.inputs.InstanceGceSetupDataDisksArgs.builder()
            .diskEncryption(diskEncryption?.applyValue({ args0 -> args0 }))
            .diskSizeGb(diskSizeGb?.applyValue({ args0 -> args0 }))
            .diskType(diskType?.applyValue({ args0 -> args0 }))
            .kmsKey(kmsKey?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [InstanceGceSetupDataDisksArgs].
 */
@PulumiTagMarker
public class InstanceGceSetupDataDisksArgsBuilder internal constructor() {
    private var diskEncryption: Output? = null

    private var diskSizeGb: Output? = null

    private var diskType: Output? = null

    private var kmsKey: Output? = null

    /**
     * @param value Optional. Input only. Disk encryption method used on the boot
     * and data disks, defaults to GMEK.
     * Possible values are: `GMEK`, `CMEK`.
     */
    @JvmName("bnhicpyoeejbicfn")
    public suspend fun diskEncryption(`value`: Output) {
        this.diskEncryption = value
    }

    /**
     * @param value Optional. The size of the disk in GB attached to this VM instance,
     * up to a maximum of 64000 GB (64 TB). If not specified, this defaults to
     * 100.
     */
    @JvmName("cugkefbisqepuvna")
    public suspend fun diskSizeGb(`value`: Output) {
        this.diskSizeGb = value
    }

    /**
     * @param value Optional. Input only. Indicates the type of the disk.
     * Possible values are: `PD_STANDARD`, `PD_SSD`, `PD_BALANCED`, `PD_EXTREME`.
     */
    @JvmName("rwrxavirkdrniqyy")
    public suspend fun diskType(`value`: Output) {
        this.diskType = value
    }

    /**
     * @param value 'Optional. The KMS key used to encrypt the disks,
     * only applicable if disk_encryption is CMEK. Format: `projects/{project_id}/locations/{location}/keyRings/{key_ring_id}/cryptoKeys/{key_id}`
     * Learn more about using your own encryption keys.'
     */
    @JvmName("ufluegjbwkfoooki")
    public suspend fun kmsKey(`value`: Output) {
        this.kmsKey = value
    }

    /**
     * @param value Optional. Input only. Disk encryption method used on the boot
     * and data disks, defaults to GMEK.
     * Possible values are: `GMEK`, `CMEK`.
     */
    @JvmName("qkkcdufqmuaxqgdi")
    public suspend fun diskEncryption(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.diskEncryption = mapped
    }

    /**
     * @param value Optional. The size of the disk in GB attached to this VM instance,
     * up to a maximum of 64000 GB (64 TB). If not specified, this defaults to
     * 100.
     */
    @JvmName("tdyinxipxgrcnsug")
    public suspend fun diskSizeGb(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.diskSizeGb = mapped
    }

    /**
     * @param value Optional. Input only. Indicates the type of the disk.
     * Possible values are: `PD_STANDARD`, `PD_SSD`, `PD_BALANCED`, `PD_EXTREME`.
     */
    @JvmName("mghitgpfphfxvysj")
    public suspend fun diskType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.diskType = mapped
    }

    /**
     * @param value 'Optional. The KMS key used to encrypt the disks,
     * only applicable if disk_encryption is CMEK. Format: `projects/{project_id}/locations/{location}/keyRings/{key_ring_id}/cryptoKeys/{key_id}`
     * Learn more about using your own encryption keys.'
     */
    @JvmName("ycdeaitwrnxoosoc")
    public suspend fun kmsKey(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKey = mapped
    }

    internal fun build(): InstanceGceSetupDataDisksArgs = InstanceGceSetupDataDisksArgs(
        diskEncryption = diskEncryption,
        diskSizeGb = diskSizeGb,
        diskType = diskType,
        kmsKey = kmsKey,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy