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

com.pulumi.gcp.workbench.kotlin.inputs.InstanceGceSetupBootDiskArgs.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.InstanceGceSetupBootDiskArgs.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 boot disk in GB attached to this instance,
 * up to a maximum of 64000 GB (64 TB). If not specified, this defaults to the
 * recommended value of 150GB.
 * @property diskType Optional. 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 InstanceGceSetupBootDiskArgs(
    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.InstanceGceSetupBootDiskArgs =
        com.pulumi.gcp.workbench.inputs.InstanceGceSetupBootDiskArgs.builder()
            .diskEncryption(diskEncryption?.applyValue({ args0 -> args0 }))
            .diskSizeGb(diskSizeGb?.applyValue({ args0 -> args0 }))
            .diskType(diskType?.applyValue({ args0 -> args0 }))
            .kmsKey(kmsKey?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [InstanceGceSetupBootDiskArgs].
 */
@PulumiTagMarker
public class InstanceGceSetupBootDiskArgsBuilder 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("onnfhocbbbcncmld")
    public suspend fun diskEncryption(`value`: Output) {
        this.diskEncryption = value
    }

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

    /**
     * @param value Optional. Indicates the type of the disk.
     * Possible values are: `PD_STANDARD`, `PD_SSD`, `PD_BALANCED`, `PD_EXTREME`.
     */
    @JvmName("oepxweougdxnhmkd")
    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("wfhcvjgncjgtisye")
    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("hudqjhumawuobwyx")
    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 boot disk in GB attached to this instance,
     * up to a maximum of 64000 GB (64 TB). If not specified, this defaults to the
     * recommended value of 150GB.
     */
    @JvmName("vhbdcrymsmieimfy")
    public suspend fun diskSizeGb(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.diskSizeGb = mapped
    }

    /**
     * @param value Optional. Indicates the type of the disk.
     * Possible values are: `PD_STANDARD`, `PD_SSD`, `PD_BALANCED`, `PD_EXTREME`.
     */
    @JvmName("avwulixrfwsyrjto")
    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("ylbqwlsvhckigwns")
    public suspend fun kmsKey(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKey = mapped
    }

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy