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

com.pulumi.azurenative.compute.kotlin.inputs.VirtualMachineScaleSetDataDiskArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.compute.kotlin.inputs

import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetDataDiskArgs.builder
import com.pulumi.azurenative.compute.kotlin.enums.CachingTypes
import com.pulumi.azurenative.compute.kotlin.enums.DiskCreateOptionTypes
import com.pulumi.azurenative.compute.kotlin.enums.DiskDeleteOptionTypes
import com.pulumi.core.Either
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.Double
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 * Describes a virtual machine scale set data disk.
 * @property caching Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.**
 * @property createOption The create option.
 * @property deleteOption Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

Possible values:

**Delete** If this value is used, the data disk is deleted when the VMSS Flex VM is deleted.

**Detach** If this value is used, the data disk is retained after VMSS Flex VM is deleted.

The default value is set to **Delete**. * @property diskIOPSReadWrite Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB. * @property diskMBpsReadWrite Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB. * @property diskSizeGB Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. * @property lun Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM. * @property managedDisk The managed disk parameters. * @property name The disk name. * @property writeAcceleratorEnabled Specifies whether writeAccelerator should be enabled or disabled on the disk. */ public data class VirtualMachineScaleSetDataDiskArgs( public val caching: Output? = null, public val createOption: Output>, public val deleteOption: Output>? = null, public val diskIOPSReadWrite: Output? = null, public val diskMBpsReadWrite: Output? = null, public val diskSizeGB: Output? = null, public val lun: Output, public val managedDisk: Output? = null, public val name: Output? = null, public val writeAcceleratorEnabled: Output? = null, ) : ConvertibleToJava { override fun toJava(): com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetDataDiskArgs = com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetDataDiskArgs.builder() .caching(caching?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })) .createOption( createOption.applyValue({ args0 -> args0.transform({ args0 -> args0 }, { args0 -> args0.let({ args0 -> args0.toJava() }) }) }), ) .deleteOption( deleteOption?.applyValue({ args0 -> args0.transform({ args0 -> args0 }, { args0 -> args0.let({ args0 -> args0.toJava() }) }) }), ) .diskIOPSReadWrite(diskIOPSReadWrite?.applyValue({ args0 -> args0 })) .diskMBpsReadWrite(diskMBpsReadWrite?.applyValue({ args0 -> args0 })) .diskSizeGB(diskSizeGB?.applyValue({ args0 -> args0 })) .lun(lun.applyValue({ args0 -> args0 })) .managedDisk(managedDisk?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })) .name(name?.applyValue({ args0 -> args0 })) .writeAcceleratorEnabled(writeAcceleratorEnabled?.applyValue({ args0 -> args0 })).build() } /** * Builder for [VirtualMachineScaleSetDataDiskArgs]. */ @PulumiTagMarker public class VirtualMachineScaleSetDataDiskArgsBuilder internal constructor() { private var caching: Output? = null private var createOption: Output>? = null private var deleteOption: Output>? = null private var diskIOPSReadWrite: Output? = null private var diskMBpsReadWrite: Output? = null private var diskSizeGB: Output? = null private var lun: Output? = null private var managedDisk: Output? = null private var name: Output? = null private var writeAcceleratorEnabled: Output? = null /** * @param value Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** */ @JvmName("vuxjrjrwqextconw") public suspend fun caching(`value`: Output) { this.caching = value } /** * @param value The create option. */ @JvmName("omocaovpwdylsmrn") public suspend fun createOption(`value`: Output>) { this.createOption = value } /** * @param value Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

Possible values:

**Delete** If this value is used, the data disk is deleted when the VMSS Flex VM is deleted.

**Detach** If this value is used, the data disk is retained after VMSS Flex VM is deleted.

The default value is set to **Delete**. */ @JvmName("ipqlejcjaiibjghy") public suspend fun deleteOption(`value`: Output>) { this.deleteOption = value } /** * @param value Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB. */ @JvmName("ymqdbvxlaibftaex") public suspend fun diskIOPSReadWrite(`value`: Output) { this.diskIOPSReadWrite = value } /** * @param value Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB. */ @JvmName("rshhvttjaaybubtv") public suspend fun diskMBpsReadWrite(`value`: Output) { this.diskMBpsReadWrite = value } /** * @param value Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. */ @JvmName("bgvfadcjfbtauwfl") public suspend fun diskSizeGB(`value`: Output) { this.diskSizeGB = value } /** * @param value Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM. */ @JvmName("hthqpdxlggxsoflc") public suspend fun lun(`value`: Output) { this.lun = value } /** * @param value The managed disk parameters. */ @JvmName("nibridekphfdmrtn") public suspend fun managedDisk(`value`: Output) { this.managedDisk = value } /** * @param value The disk name. */ @JvmName("hsjjyrvwqtlmgdmg") public suspend fun name(`value`: Output) { this.name = value } /** * @param value Specifies whether writeAccelerator should be enabled or disabled on the disk. */ @JvmName("cevfkgajcfjpssln") public suspend fun writeAcceleratorEnabled(`value`: Output) { this.writeAcceleratorEnabled = value } /** * @param value Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** */ @JvmName("jboioylslvdujqrj") public suspend fun caching(`value`: CachingTypes?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.caching = mapped } /** * @param value The create option. */ @JvmName("jdhmuseuitawdkym") public suspend fun createOption(`value`: Either) { val toBeMapped = value val mapped = toBeMapped.let({ args0 -> of(args0) }) this.createOption = mapped } /** * @param value The create option. */ @JvmName("yppwmrjyxloqxhjh") public fun createOption(`value`: String) { val toBeMapped = Either.ofLeft(value) val mapped = toBeMapped.let({ args0 -> of(args0) }) this.createOption = mapped } /** * @param value The create option. */ @JvmName("wmksrvuvdxrirgra") public fun createOption(`value`: DiskCreateOptionTypes) { val toBeMapped = Either.ofRight(value) val mapped = toBeMapped.let({ args0 -> of(args0) }) this.createOption = mapped } /** * @param value Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

Possible values:

**Delete** If this value is used, the data disk is deleted when the VMSS Flex VM is deleted.

**Detach** If this value is used, the data disk is retained after VMSS Flex VM is deleted.

The default value is set to **Delete**. */ @JvmName("fmvuyjprbjhvwqrb") public suspend fun deleteOption(`value`: Either?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.deleteOption = mapped } /** * @param value Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

Possible values:

**Delete** If this value is used, the data disk is deleted when the VMSS Flex VM is deleted.

**Detach** If this value is used, the data disk is retained after VMSS Flex VM is deleted.

The default value is set to **Delete**. */ @JvmName("aagtnidylpblrxma") public fun deleteOption(`value`: String) { val toBeMapped = Either.ofLeft(value) val mapped = toBeMapped.let({ args0 -> of(args0) }) this.deleteOption = mapped } /** * @param value Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

Possible values:

**Delete** If this value is used, the data disk is deleted when the VMSS Flex VM is deleted.

**Detach** If this value is used, the data disk is retained after VMSS Flex VM is deleted.

The default value is set to **Delete**. */ @JvmName("isccliictjqpntsw") public fun deleteOption(`value`: DiskDeleteOptionTypes) { val toBeMapped = Either.ofRight(value) val mapped = toBeMapped.let({ args0 -> of(args0) }) this.deleteOption = mapped } /** * @param value Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB. */ @JvmName("ckkbwnqbsbvjkjda") public suspend fun diskIOPSReadWrite(`value`: Double?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.diskIOPSReadWrite = mapped } /** * @param value Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB. */ @JvmName("uoihmacasjlrpixl") public suspend fun diskMBpsReadWrite(`value`: Double?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.diskMBpsReadWrite = mapped } /** * @param value Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. */ @JvmName("sutyodptfhlaanbi") public suspend fun diskSizeGB(`value`: Int?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.diskSizeGB = mapped } /** * @param value Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM. */ @JvmName("npfbdepflqeuofxw") public suspend fun lun(`value`: Int) { val toBeMapped = value val mapped = toBeMapped.let({ args0 -> of(args0) }) this.lun = mapped } /** * @param value The managed disk parameters. */ @JvmName("sfnkegtmtldhmojw") public suspend fun managedDisk(`value`: VirtualMachineScaleSetManagedDiskParametersArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.managedDisk = mapped } /** * @param argument The managed disk parameters. */ @JvmName("ijqkeocjpjhhknmw") public suspend fun managedDisk(argument: suspend VirtualMachineScaleSetManagedDiskParametersArgsBuilder.() -> Unit) { val toBeMapped = VirtualMachineScaleSetManagedDiskParametersArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.managedDisk = mapped } /** * @param value The disk name. */ @JvmName("srjlpwqshgurtijt") public suspend fun name(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.name = mapped } /** * @param value Specifies whether writeAccelerator should be enabled or disabled on the disk. */ @JvmName("cncfxojoslhghqur") public suspend fun writeAcceleratorEnabled(`value`: Boolean?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.writeAcceleratorEnabled = mapped } internal fun build(): VirtualMachineScaleSetDataDiskArgs = VirtualMachineScaleSetDataDiskArgs( caching = caching, createOption = createOption ?: throw PulumiNullFieldException("createOption"), deleteOption = deleteOption, diskIOPSReadWrite = diskIOPSReadWrite, diskMBpsReadWrite = diskMBpsReadWrite, diskSizeGB = diskSizeGB, lun = lun ?: throw PulumiNullFieldException("lun"), managedDisk = managedDisk, name = name, writeAcceleratorEnabled = writeAcceleratorEnabled, ) }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy