
com.pulumi.azurenative.compute.kotlin.inputs.VirtualMachineScaleSetOSDiskArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.azurenative.compute.kotlin.inputs
import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs.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.azurenative.compute.kotlin.enums.OperatingSystemTypes
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.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* Describes a virtual machine scale set operating system 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 Specifies how the virtual machines in the scale set should be created. The only allowed value is: **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.
* @property deleteOption Specifies whether OS 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 OS disk is deleted when VMSS Flex VM is deleted.
**Detach** If this value is used, the OS disk is retained after VMSS Flex VM is deleted.
The default value is set to **Delete**. For an Ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for Ephemeral OS Disk.
* @property diffDiskSettings Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set.
* @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 image Specifies information about the unmanaged user image to base the scale set on.
* @property managedDisk The managed disk parameters.
* @property name The disk name.
* @property osType This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.**
* @property vhdContainers Specifies the container urls that are used to store operating system disks for the scale set.
* @property writeAcceleratorEnabled Specifies whether writeAccelerator should be enabled or disabled on the disk.
*/
public data class VirtualMachineScaleSetOSDiskArgs(
public val caching: Output? = null,
public val createOption: Output>,
public val deleteOption: Output>? = null,
public val diffDiskSettings: Output? = null,
public val diskSizeGB: Output? = null,
public val image: Output? = null,
public val managedDisk: Output? = null,
public val name: Output? = null,
public val osType: Output? = null,
public val vhdContainers: Output>? = null,
public val writeAcceleratorEnabled: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs =
com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs.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() })
})
}),
)
.diffDiskSettings(diffDiskSettings?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.diskSizeGB(diskSizeGB?.applyValue({ args0 -> args0 }))
.image(image?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.managedDisk(managedDisk?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.name(name?.applyValue({ args0 -> args0 }))
.osType(osType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.vhdContainers(vhdContainers?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.writeAcceleratorEnabled(writeAcceleratorEnabled?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [VirtualMachineScaleSetOSDiskArgs].
*/
@PulumiTagMarker
public class VirtualMachineScaleSetOSDiskArgsBuilder internal constructor() {
private var caching: Output? = null
private var createOption: Output>? = null
private var deleteOption: Output>? = null
private var diffDiskSettings: Output? = null
private var diskSizeGB: Output? = null
private var image: Output? = null
private var managedDisk: Output? = null
private var name: Output? = null
private var osType: Output? = null
private var vhdContainers: 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("oeaistdriwmwylta")
public suspend fun caching(`value`: Output) {
this.caching = value
}
/**
* @param value Specifies how the virtual machines in the scale set should be created. The only allowed value is: **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.
*/
@JvmName("blhjkbanpmgqnbus")
public suspend fun createOption(`value`: Output>) {
this.createOption = value
}
/**
* @param value Specifies whether OS 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 OS disk is deleted when VMSS Flex VM is deleted.
**Detach** If this value is used, the OS disk is retained after VMSS Flex VM is deleted.
The default value is set to **Delete**. For an Ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for Ephemeral OS Disk.
*/
@JvmName("tuppdcnmnkdlnioe")
public suspend fun deleteOption(`value`: Output>) {
this.deleteOption = value
}
/**
* @param value Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set.
*/
@JvmName("nkenrwwlmxuefswl")
public suspend fun diffDiskSettings(`value`: Output) {
this.diffDiskSettings = 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("vgrykpqjxlqmxpyd")
public suspend fun diskSizeGB(`value`: Output) {
this.diskSizeGB = value
}
/**
* @param value Specifies information about the unmanaged user image to base the scale set on.
*/
@JvmName("vovjdbhpnxsimypc")
public suspend fun image(`value`: Output) {
this.image = value
}
/**
* @param value The managed disk parameters.
*/
@JvmName("akmjwllivomvcmny")
public suspend fun managedDisk(`value`: Output) {
this.managedDisk = value
}
/**
* @param value The disk name.
*/
@JvmName("jqildmfvrmlyhpyx")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.**
*/
@JvmName("lfqajgbqqknllqsm")
public suspend fun osType(`value`: Output) {
this.osType = value
}
/**
* @param value Specifies the container urls that are used to store operating system disks for the scale set.
*/
@JvmName("quwyjvwiwhkitiny")
public suspend fun vhdContainers(`value`: Output>) {
this.vhdContainers = value
}
@JvmName("grtdlfvrrgdqolph")
public suspend fun vhdContainers(vararg values: Output) {
this.vhdContainers = Output.all(values.asList())
}
/**
* @param values Specifies the container urls that are used to store operating system disks for the scale set.
*/
@JvmName("wuticykfcnpkidom")
public suspend fun vhdContainers(values: List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy