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

com.pulumi.azure.compute.kotlin.inputs.OrchestratedVirtualMachineScaleSetOsDiskArgs.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: 6.15.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.compute.kotlin.inputs

import com.pulumi.azure.compute.inputs.OrchestratedVirtualMachineScaleSetOsDiskArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 *
 * @property caching The Type of Caching which should be used for the Internal OS Disk. Possible values are `None`, `ReadOnly` and `ReadWrite`.
 * @property diffDiskSettings A `diff_disk_settings` block as defined above. Changing this forces a new resource to be created.
 * @property diskEncryptionSetId The ID of the Disk Encryption Set which should be used to encrypt this OS Disk. Changing this forces a new resource to be created.
 * > **Note:** Disk Encryption Sets are in Public Preview in a limited set of regions
 * @property diskSizeGb The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine Scale Set is sourced from.
 * @property storageAccountType The Type of Storage Account which should back this the Internal OS Disk. Possible values include `Standard_LRS`, `StandardSSD_LRS`, `StandardSSD_ZRS`, `Premium_LRS` and `Premium_ZRS`. Changing this forces a new resource to be created.
 * @property writeAcceleratorEnabled Specifies if Write Accelerator is enabled on the OS Disk. Defaults to `false`.
 */
public data class OrchestratedVirtualMachineScaleSetOsDiskArgs(
    public val caching: Output,
    public val diffDiskSettings: Output? =
        null,
    public val diskEncryptionSetId: Output? = null,
    public val diskSizeGb: Output? = null,
    public val storageAccountType: Output,
    public val writeAcceleratorEnabled: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.compute.inputs.OrchestratedVirtualMachineScaleSetOsDiskArgs =
        com.pulumi.azure.compute.inputs.OrchestratedVirtualMachineScaleSetOsDiskArgs.builder()
            .caching(caching.applyValue({ args0 -> args0 }))
            .diffDiskSettings(diffDiskSettings?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .diskEncryptionSetId(diskEncryptionSetId?.applyValue({ args0 -> args0 }))
            .diskSizeGb(diskSizeGb?.applyValue({ args0 -> args0 }))
            .storageAccountType(storageAccountType.applyValue({ args0 -> args0 }))
            .writeAcceleratorEnabled(writeAcceleratorEnabled?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [OrchestratedVirtualMachineScaleSetOsDiskArgs].
 */
@PulumiTagMarker
public class OrchestratedVirtualMachineScaleSetOsDiskArgsBuilder internal constructor() {
    private var caching: Output? = null

    private var diffDiskSettings:
        Output? = null

    private var diskEncryptionSetId: Output? = null

    private var diskSizeGb: Output? = null

    private var storageAccountType: Output? = null

    private var writeAcceleratorEnabled: Output? = null

    /**
     * @param value The Type of Caching which should be used for the Internal OS Disk. Possible values are `None`, `ReadOnly` and `ReadWrite`.
     */
    @JvmName("vudvyqrhehwusbna")
    public suspend fun caching(`value`: Output) {
        this.caching = value
    }

    /**
     * @param value A `diff_disk_settings` block as defined above. Changing this forces a new resource to be created.
     */
    @JvmName("hugowpmgsajnuvpq")
    public suspend fun diffDiskSettings(`value`: Output) {
        this.diffDiskSettings = value
    }

    /**
     * @param value The ID of the Disk Encryption Set which should be used to encrypt this OS Disk. Changing this forces a new resource to be created.
     * > **Note:** Disk Encryption Sets are in Public Preview in a limited set of regions
     */
    @JvmName("rluscnephtjkgpmu")
    public suspend fun diskEncryptionSetId(`value`: Output) {
        this.diskEncryptionSetId = value
    }

    /**
     * @param value The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine Scale Set is sourced from.
     */
    @JvmName("ltwkvyxcbmpwexsi")
    public suspend fun diskSizeGb(`value`: Output) {
        this.diskSizeGb = value
    }

    /**
     * @param value The Type of Storage Account which should back this the Internal OS Disk. Possible values include `Standard_LRS`, `StandardSSD_LRS`, `StandardSSD_ZRS`, `Premium_LRS` and `Premium_ZRS`. Changing this forces a new resource to be created.
     */
    @JvmName("kcrquihvdifvdfta")
    public suspend fun storageAccountType(`value`: Output) {
        this.storageAccountType = value
    }

    /**
     * @param value Specifies if Write Accelerator is enabled on the OS Disk. Defaults to `false`.
     */
    @JvmName("gdpwbwwkgiosobrj")
    public suspend fun writeAcceleratorEnabled(`value`: Output) {
        this.writeAcceleratorEnabled = value
    }

    /**
     * @param value The Type of Caching which should be used for the Internal OS Disk. Possible values are `None`, `ReadOnly` and `ReadWrite`.
     */
    @JvmName("ebstayptrlyovcru")
    public suspend fun caching(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.caching = mapped
    }

    /**
     * @param value A `diff_disk_settings` block as defined above. Changing this forces a new resource to be created.
     */
    @JvmName("wioovopkkubjoegm")
    public suspend fun diffDiskSettings(`value`: OrchestratedVirtualMachineScaleSetOsDiskDiffDiskSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.diffDiskSettings = mapped
    }

    /**
     * @param argument A `diff_disk_settings` block as defined above. Changing this forces a new resource to be created.
     */
    @JvmName("girglrskqrgjnmid")
    public suspend fun diffDiskSettings(argument: suspend OrchestratedVirtualMachineScaleSetOsDiskDiffDiskSettingsArgsBuilder.() -> Unit) {
        val toBeMapped =
            OrchestratedVirtualMachineScaleSetOsDiskDiffDiskSettingsArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.diffDiskSettings = mapped
    }

    /**
     * @param value The ID of the Disk Encryption Set which should be used to encrypt this OS Disk. Changing this forces a new resource to be created.
     * > **Note:** Disk Encryption Sets are in Public Preview in a limited set of regions
     */
    @JvmName("xkfjnqvuonnpmqnk")
    public suspend fun diskEncryptionSetId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.diskEncryptionSetId = mapped
    }

    /**
     * @param value The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine Scale Set is sourced from.
     */
    @JvmName("ktokpwbyluykbhex")
    public suspend fun diskSizeGb(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.diskSizeGb = mapped
    }

    /**
     * @param value The Type of Storage Account which should back this the Internal OS Disk. Possible values include `Standard_LRS`, `StandardSSD_LRS`, `StandardSSD_ZRS`, `Premium_LRS` and `Premium_ZRS`. Changing this forces a new resource to be created.
     */
    @JvmName("cacrwqtjyvlvjpqq")
    public suspend fun storageAccountType(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.storageAccountType = mapped
    }

    /**
     * @param value Specifies if Write Accelerator is enabled on the OS Disk. Defaults to `false`.
     */
    @JvmName("qlafapkthaweigcr")
    public suspend fun writeAcceleratorEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.writeAcceleratorEnabled = mapped
    }

    internal fun build(): OrchestratedVirtualMachineScaleSetOsDiskArgs =
        OrchestratedVirtualMachineScaleSetOsDiskArgs(
            caching = caching ?: throw PulumiNullFieldException("caching"),
            diffDiskSettings = diffDiskSettings,
            diskEncryptionSetId = diskEncryptionSetId,
            diskSizeGb = diskSizeGb,
            storageAccountType = storageAccountType ?: throw PulumiNullFieldException("storageAccountType"),
            writeAcceleratorEnabled = writeAcceleratorEnabled,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy