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

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

package com.pulumi.azure.compute.kotlin.outputs

import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress

/**
 *
 * @property caching The type of Caching which should be used for this Data Disk. Possible values are `None`, `ReadOnly` and `ReadWrite`.
 * @property createOption The create option which should be used for this Data Disk. Possible values are `Empty` and `FromImage`. Defaults to `Empty`. (`FromImage` should only be used if the source image includes data disks).
 * @property diskEncryptionSetId The ID of the Disk Encryption Set which should be used to encrypt this Data Disk. Changing this forces a new resource to be created.
 * > **NOTE:** The Disk Encryption Set must have the `Reader` Role Assignment scoped on the Key Vault - in addition to an Access Policy to the Key Vault
 * > **NOTE:** Disk Encryption Sets are in Public Preview in a limited set of regions
 * @property diskSizeGb The size of the Data Disk which should be created.
 * @property lun The Logical Unit Number of the Data Disk, which must be unique within the Virtual Machine.
 * @property name The name of the Data Disk.
 * @property storageAccountType The Type of Storage Account which should back this Data Disk. Possible values include `Standard_LRS`, `StandardSSD_LRS`, `StandardSSD_ZRS`, `Premium_LRS`, `PremiumV2_LRS`, `Premium_ZRS` and `UltraSSD_LRS`.
 * > **NOTE:** `UltraSSD_LRS` is only supported when `ultra_ssd_enabled` within the `additional_capabilities` block is enabled.
 * @property ultraSsdDiskIopsReadWrite Specifies the Read-Write IOPS for this Data Disk. Only settable when `storage_account_type` is `PremiumV2_LRS` or `UltraSSD_LRS`.
 * @property ultraSsdDiskMbpsReadWrite Specifies the bandwidth in MB per second for this Data Disk. Only settable when `storage_account_type` is `PremiumV2_LRS` or `UltraSSD_LRS`.
 * @property writeAcceleratorEnabled Should Write Accelerator be enabled for this Data Disk? Defaults to `false`.
 * > **NOTE:** This requires that the `storage_account_type` is set to `Premium_LRS` and that `caching` is set to `None`.
 */
public data class LinuxVirtualMachineScaleSetDataDisk(
    public val caching: String,
    public val createOption: String? = null,
    public val diskEncryptionSetId: String? = null,
    public val diskSizeGb: Int,
    public val lun: Int,
    public val name: String? = null,
    public val storageAccountType: String,
    public val ultraSsdDiskIopsReadWrite: Int? = null,
    public val ultraSsdDiskMbpsReadWrite: Int? = null,
    public val writeAcceleratorEnabled: Boolean? = null,
) {
    public companion object {
        public
        fun toKotlin(javaType: com.pulumi.azure.compute.outputs.LinuxVirtualMachineScaleSetDataDisk):
            LinuxVirtualMachineScaleSetDataDisk = LinuxVirtualMachineScaleSetDataDisk(
            caching = javaType.caching(),
            createOption = javaType.createOption().map({ args0 -> args0 }).orElse(null),
            diskEncryptionSetId = javaType.diskEncryptionSetId().map({ args0 -> args0 }).orElse(null),
            diskSizeGb = javaType.diskSizeGb(),
            lun = javaType.lun(),
            name = javaType.name().map({ args0 -> args0 }).orElse(null),
            storageAccountType = javaType.storageAccountType(),
            ultraSsdDiskIopsReadWrite = javaType.ultraSsdDiskIopsReadWrite().map({ args0 ->
                args0
            }).orElse(null),
            ultraSsdDiskMbpsReadWrite = javaType.ultraSsdDiskMbpsReadWrite().map({ args0 ->
                args0
            }).orElse(null),
            writeAcceleratorEnabled = javaType.writeAcceleratorEnabled().map({ args0 -> args0 }).orElse(null),
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy