
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