
com.pulumi.azure.compute.kotlin.inputs.LinuxVirtualMachineScaleSetExtensionArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.azure.compute.kotlin.inputs
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetExtensionArgs.builder
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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
*
* @property autoUpgradeMinorVersion Should the latest version of the Extension be used at Deployment Time, if one is available? This won't auto-update the extension on existing installation. Defaults to `true`.
* @property automaticUpgradeEnabled Should the Extension be automatically updated whenever the Publisher releases a new version of this VM Extension?
* @property forceUpdateTag A value which, when different to the previous value can be used to force-run the Extension even if the Extension Configuration hasn't changed.
* @property name The name for the Virtual Machine Scale Set Extension.
* @property protectedSettings A JSON String which specifies Sensitive Settings (such as Passwords) for the Extension.
* > **Note:** Keys within the `protected_settings` block are notoriously case-sensitive, where the casing required (e.g. TitleCase vs snakeCase) depends on the Extension being used. Please refer to the documentation for the specific Virtual Machine Extension you're looking to use for more information.
* @property protectedSettingsFromKeyVault A `protected_settings_from_key_vault` block as defined below.
* > **Note:** `protected_settings_from_key_vault` cannot be used with `protected_settings`
* @property provisionAfterExtensions An ordered list of Extension names which this should be provisioned after.
* @property publisher Specifies the Publisher of the Extension.
* @property settings A JSON String which specifies Settings for the Extension.
* > **Note:** Keys within the `settings` block are notoriously case-sensitive, where the casing required (e.g. TitleCase vs snakeCase) depends on the Extension being used. Please refer to the documentation for the specific Virtual Machine Extension you're looking to use for more information.
* @property type Specifies the Type of the Extension.
* @property typeHandlerVersion Specifies the version of the extension to use, available versions can be found using the Azure CLI.
*/
public data class LinuxVirtualMachineScaleSetExtensionArgs(
public val autoUpgradeMinorVersion: Output? = null,
public val automaticUpgradeEnabled: Output? = null,
public val forceUpdateTag: Output? = null,
public val name: Output,
public val protectedSettings: Output? = null,
public val protectedSettingsFromKeyVault: Output? = null,
public val provisionAfterExtensions: Output>? = null,
public val publisher: Output,
public val settings: Output? = null,
public val type: Output,
public val typeHandlerVersion: Output,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetExtensionArgs =
com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetExtensionArgs.builder()
.autoUpgradeMinorVersion(autoUpgradeMinorVersion?.applyValue({ args0 -> args0 }))
.automaticUpgradeEnabled(automaticUpgradeEnabled?.applyValue({ args0 -> args0 }))
.forceUpdateTag(forceUpdateTag?.applyValue({ args0 -> args0 }))
.name(name.applyValue({ args0 -> args0 }))
.protectedSettings(protectedSettings?.applyValue({ args0 -> args0 }))
.protectedSettingsFromKeyVault(
protectedSettingsFromKeyVault?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.provisionAfterExtensions(
provisionAfterExtensions?.applyValue({ args0 ->
args0.map({ args0 ->
args0
})
}),
)
.publisher(publisher.applyValue({ args0 -> args0 }))
.settings(settings?.applyValue({ args0 -> args0 }))
.type(type.applyValue({ args0 -> args0 }))
.typeHandlerVersion(typeHandlerVersion.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [LinuxVirtualMachineScaleSetExtensionArgs].
*/
@PulumiTagMarker
public class LinuxVirtualMachineScaleSetExtensionArgsBuilder internal constructor() {
private var autoUpgradeMinorVersion: Output? = null
private var automaticUpgradeEnabled: Output? = null
private var forceUpdateTag: Output? = null
private var name: Output? = null
private var protectedSettings: Output? = null
private var protectedSettingsFromKeyVault:
Output? = null
private var provisionAfterExtensions: Output>? = null
private var publisher: Output? = null
private var settings: Output? = null
private var type: Output? = null
private var typeHandlerVersion: Output? = null
/**
* @param value Should the latest version of the Extension be used at Deployment Time, if one is available? This won't auto-update the extension on existing installation. Defaults to `true`.
*/
@JvmName("lafodkxbsddoqyrm")
public suspend fun autoUpgradeMinorVersion(`value`: Output) {
this.autoUpgradeMinorVersion = value
}
/**
* @param value Should the Extension be automatically updated whenever the Publisher releases a new version of this VM Extension?
*/
@JvmName("ooggiwfsienbrdyd")
public suspend fun automaticUpgradeEnabled(`value`: Output) {
this.automaticUpgradeEnabled = value
}
/**
* @param value A value which, when different to the previous value can be used to force-run the Extension even if the Extension Configuration hasn't changed.
*/
@JvmName("chpdmhgaxlqbhmmm")
public suspend fun forceUpdateTag(`value`: Output) {
this.forceUpdateTag = value
}
/**
* @param value The name for the Virtual Machine Scale Set Extension.
*/
@JvmName("idhghhmuyrfsxsbk")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value A JSON String which specifies Sensitive Settings (such as Passwords) for the Extension.
* > **Note:** Keys within the `protected_settings` block are notoriously case-sensitive, where the casing required (e.g. TitleCase vs snakeCase) depends on the Extension being used. Please refer to the documentation for the specific Virtual Machine Extension you're looking to use for more information.
*/
@JvmName("cdamrnurelhwfeen")
public suspend fun protectedSettings(`value`: Output) {
this.protectedSettings = value
}
/**
* @param value A `protected_settings_from_key_vault` block as defined below.
* > **Note:** `protected_settings_from_key_vault` cannot be used with `protected_settings`
*/
@JvmName("rywheoladgosnsqu")
public suspend fun protectedSettingsFromKeyVault(`value`: Output) {
this.protectedSettingsFromKeyVault = value
}
/**
* @param value An ordered list of Extension names which this should be provisioned after.
*/
@JvmName("hyhnwuwpuuspcuxb")
public suspend fun provisionAfterExtensions(`value`: Output>) {
this.provisionAfterExtensions = value
}
@JvmName("wsyedxfahrxogbsh")
public suspend fun provisionAfterExtensions(vararg values: Output) {
this.provisionAfterExtensions = Output.all(values.asList())
}
/**
* @param values An ordered list of Extension names which this should be provisioned after.
*/
@JvmName("iyundteossmaiwbw")
public suspend fun provisionAfterExtensions(values: List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy