
com.pulumi.azurenative.compute.kotlin.inputs.VirtualMachineScaleSetManagedDiskParametersArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.azurenative.compute.kotlin.inputs
import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs.builder
import com.pulumi.azurenative.compute.kotlin.enums.StorageAccountTypes
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.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName
/**
* Describes the parameters of a ScaleSet managed disk.
* @property diskEncryptionSet Specifies the customer managed disk encryption set resource id for the managed disk.
* @property securityProfile Specifies the security profile for the managed disk.
* @property storageAccountType Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
*/
public data class VirtualMachineScaleSetManagedDiskParametersArgs(
public val diskEncryptionSet: Output? = null,
public val securityProfile: Output? = null,
public val storageAccountType: Output>? = null,
) :
ConvertibleToJava {
override fun toJava(): com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs =
com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs.builder()
.diskEncryptionSet(diskEncryptionSet?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.securityProfile(securityProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.storageAccountType(
storageAccountType?.applyValue({ args0 ->
args0.transform(
{ args0 -> args0 },
{ args0 -> args0.let({ args0 -> args0.toJava() }) },
)
}),
).build()
}
/**
* Builder for [VirtualMachineScaleSetManagedDiskParametersArgs].
*/
@PulumiTagMarker
public class VirtualMachineScaleSetManagedDiskParametersArgsBuilder internal constructor() {
private var diskEncryptionSet: Output? = null
private var securityProfile: Output? = null
private var storageAccountType: Output>? = null
/**
* @param value Specifies the customer managed disk encryption set resource id for the managed disk.
*/
@JvmName("daippwngvaikeyjb")
public suspend fun diskEncryptionSet(`value`: Output) {
this.diskEncryptionSet = value
}
/**
* @param value Specifies the security profile for the managed disk.
*/
@JvmName("usctgdsarrlsrfrc")
public suspend fun securityProfile(`value`: Output) {
this.securityProfile = value
}
/**
* @param value Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
*/
@JvmName("cyqtnapqlfhviiqq")
public suspend fun storageAccountType(`value`: Output>) {
this.storageAccountType = value
}
/**
* @param value Specifies the customer managed disk encryption set resource id for the managed disk.
*/
@JvmName("btvaevgqwdkrofcg")
public suspend fun diskEncryptionSet(`value`: DiskEncryptionSetParametersArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.diskEncryptionSet = mapped
}
/**
* @param argument Specifies the customer managed disk encryption set resource id for the managed disk.
*/
@JvmName("jxjjgdbebkwpnykq")
public suspend fun diskEncryptionSet(argument: suspend DiskEncryptionSetParametersArgsBuilder.() -> Unit) {
val toBeMapped = DiskEncryptionSetParametersArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.diskEncryptionSet = mapped
}
/**
* @param value Specifies the security profile for the managed disk.
*/
@JvmName("pubsnltsmvkcdsim")
public suspend fun securityProfile(`value`: VMDiskSecurityProfileArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.securityProfile = mapped
}
/**
* @param argument Specifies the security profile for the managed disk.
*/
@JvmName("ryikfjccepqvxpic")
public suspend fun securityProfile(argument: suspend VMDiskSecurityProfileArgsBuilder.() -> Unit) {
val toBeMapped = VMDiskSecurityProfileArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.securityProfile = mapped
}
/**
* @param value Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
*/
@JvmName("nwndholvquabhego")
public suspend fun storageAccountType(`value`: Either?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.storageAccountType = mapped
}
/**
* @param value Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
*/
@JvmName("kslsftngxxpvrhjx")
public fun storageAccountType(`value`: String) {
val toBeMapped = Either.ofLeft(value)
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.storageAccountType = mapped
}
/**
* @param value Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
*/
@JvmName("ycpvviyvjafppoow")
public fun storageAccountType(`value`: StorageAccountTypes) {
val toBeMapped = Either.ofRight(value)
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.storageAccountType = mapped
}
internal fun build(): VirtualMachineScaleSetManagedDiskParametersArgs =
VirtualMachineScaleSetManagedDiskParametersArgs(
diskEncryptionSet = diskEncryptionSet,
securityProfile = securityProfile,
storageAccountType = storageAccountType,
)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy