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

com.pulumi.azurenative.azurefleet.kotlin.inputs.WindowsConfigurationArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.azurefleet.kotlin.inputs

import com.pulumi.azurenative.azurefleet.inputs.WindowsConfigurationArgs.builder
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.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Specifies Windows operating system settings on the virtual machine.
 * @property additionalUnattendContent Specifies additional base-64 encoded XML formatted information that can be
 * included in the Unattend.xml file, which is used by Windows Setup.
 * @property enableAutomaticUpdates Indicates whether Automatic Updates is enabled for the Windows virtual machine.
 * Default value is true. For virtual machine scale sets, this property can be
 * updated and updates will take effect on OS reprovisioning.
 * @property enableVMAgentPlatformUpdates Indicates whether VMAgent Platform Updates is enabled for the Windows virtual
 * machine. Default value is false.
 * @property patchSettings [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
 * @property provisionVMAgent Indicates whether virtual machine agent should be provisioned on the virtual
 * machine. When this property is not specified in the request body, it is set to
 * true by default. This will ensure that VM Agent is installed on the VM so that
 * extensions can be added to the VM later.
 * @property timeZone Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time".
 * Possible values can be
 * [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id)
 * value from time zones returned by
 * [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones).
 * @property winRM Specifies the Windows Remote Management listeners. This enables remote Windows
 * PowerShell.
 */
public data class WindowsConfigurationArgs(
    public val additionalUnattendContent: Output>? = null,
    public val enableAutomaticUpdates: Output? = null,
    public val enableVMAgentPlatformUpdates: Output? = null,
    public val patchSettings: Output? = null,
    public val provisionVMAgent: Output? = null,
    public val timeZone: Output? = null,
    public val winRM: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.azurefleet.inputs.WindowsConfigurationArgs =
        com.pulumi.azurenative.azurefleet.inputs.WindowsConfigurationArgs.builder()
            .additionalUnattendContent(
                additionalUnattendContent?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .enableAutomaticUpdates(enableAutomaticUpdates?.applyValue({ args0 -> args0 }))
            .enableVMAgentPlatformUpdates(enableVMAgentPlatformUpdates?.applyValue({ args0 -> args0 }))
            .patchSettings(patchSettings?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .provisionVMAgent(provisionVMAgent?.applyValue({ args0 -> args0 }))
            .timeZone(timeZone?.applyValue({ args0 -> args0 }))
            .winRM(winRM?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [WindowsConfigurationArgs].
 */
@PulumiTagMarker
public class WindowsConfigurationArgsBuilder internal constructor() {
    private var additionalUnattendContent: Output>? = null

    private var enableAutomaticUpdates: Output? = null

    private var enableVMAgentPlatformUpdates: Output? = null

    private var patchSettings: Output? = null

    private var provisionVMAgent: Output? = null

    private var timeZone: Output? = null

    private var winRM: Output? = null

    /**
     * @param value Specifies additional base-64 encoded XML formatted information that can be
     * included in the Unattend.xml file, which is used by Windows Setup.
     */
    @JvmName("uegqcqgjlfobnyes")
    public suspend fun additionalUnattendContent(`value`: Output>) {
        this.additionalUnattendContent = value
    }

    @JvmName("pneyurakmhiysmxo")
    public suspend fun additionalUnattendContent(vararg values: Output) {
        this.additionalUnattendContent = Output.all(values.asList())
    }

    /**
     * @param values Specifies additional base-64 encoded XML formatted information that can be
     * included in the Unattend.xml file, which is used by Windows Setup.
     */
    @JvmName("epmagwqacnmtfoxy")
    public suspend fun additionalUnattendContent(values: List>) {
        this.additionalUnattendContent = Output.all(values)
    }

    /**
     * @param value Indicates whether Automatic Updates is enabled for the Windows virtual machine.
     * Default value is true. For virtual machine scale sets, this property can be
     * updated and updates will take effect on OS reprovisioning.
     */
    @JvmName("gghmqjoaxscejwbb")
    public suspend fun enableAutomaticUpdates(`value`: Output) {
        this.enableAutomaticUpdates = value
    }

    /**
     * @param value Indicates whether VMAgent Platform Updates is enabled for the Windows virtual
     * machine. Default value is false.
     */
    @JvmName("gpowogdnhydburvb")
    public suspend fun enableVMAgentPlatformUpdates(`value`: Output) {
        this.enableVMAgentPlatformUpdates = value
    }

    /**
     * @param value [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
     */
    @JvmName("ukewfwhydvgetfvp")
    public suspend fun patchSettings(`value`: Output) {
        this.patchSettings = value
    }

    /**
     * @param value Indicates whether virtual machine agent should be provisioned on the virtual
     * machine. When this property is not specified in the request body, it is set to
     * true by default. This will ensure that VM Agent is installed on the VM so that
     * extensions can be added to the VM later.
     */
    @JvmName("ommtuxlmimptnqhn")
    public suspend fun provisionVMAgent(`value`: Output) {
        this.provisionVMAgent = value
    }

    /**
     * @param value Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time".
     * Possible values can be
     * [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id)
     * value from time zones returned by
     * [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones).
     */
    @JvmName("nsbhrxcchdfpmrnp")
    public suspend fun timeZone(`value`: Output) {
        this.timeZone = value
    }

    /**
     * @param value Specifies the Windows Remote Management listeners. This enables remote Windows
     * PowerShell.
     */
    @JvmName("byvcowrmnpgirwts")
    public suspend fun winRM(`value`: Output) {
        this.winRM = value
    }

    /**
     * @param value Specifies additional base-64 encoded XML formatted information that can be
     * included in the Unattend.xml file, which is used by Windows Setup.
     */
    @JvmName("rcrecjmkwekksfmn")
    public suspend fun additionalUnattendContent(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.additionalUnattendContent = mapped
    }

    /**
     * @param argument Specifies additional base-64 encoded XML formatted information that can be
     * included in the Unattend.xml file, which is used by Windows Setup.
     */
    @JvmName("migwvyqmgjofhxyt")
    public suspend fun additionalUnattendContent(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            AdditionalUnattendContentArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.additionalUnattendContent = mapped
    }

    /**
     * @param argument Specifies additional base-64 encoded XML formatted information that can be
     * included in the Unattend.xml file, which is used by Windows Setup.
     */
    @JvmName("ybsfpmfyaafqdppf")
    public suspend fun additionalUnattendContent(vararg argument: suspend AdditionalUnattendContentArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            AdditionalUnattendContentArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.additionalUnattendContent = mapped
    }

    /**
     * @param argument Specifies additional base-64 encoded XML formatted information that can be
     * included in the Unattend.xml file, which is used by Windows Setup.
     */
    @JvmName("wfcwdcnddrborfly")
    public suspend fun additionalUnattendContent(argument: suspend AdditionalUnattendContentArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            AdditionalUnattendContentArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.additionalUnattendContent = mapped
    }

    /**
     * @param values Specifies additional base-64 encoded XML formatted information that can be
     * included in the Unattend.xml file, which is used by Windows Setup.
     */
    @JvmName("pbgtwhvsipbbgigh")
    public suspend fun additionalUnattendContent(vararg values: AdditionalUnattendContentArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.additionalUnattendContent = mapped
    }

    /**
     * @param value Indicates whether Automatic Updates is enabled for the Windows virtual machine.
     * Default value is true. For virtual machine scale sets, this property can be
     * updated and updates will take effect on OS reprovisioning.
     */
    @JvmName("adbmdadtaipnynrp")
    public suspend fun enableAutomaticUpdates(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enableAutomaticUpdates = mapped
    }

    /**
     * @param value Indicates whether VMAgent Platform Updates is enabled for the Windows virtual
     * machine. Default value is false.
     */
    @JvmName("ihmhomrpduehyolw")
    public suspend fun enableVMAgentPlatformUpdates(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enableVMAgentPlatformUpdates = mapped
    }

    /**
     * @param value [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
     */
    @JvmName("idaaxafyjgihrndu")
    public suspend fun patchSettings(`value`: PatchSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.patchSettings = mapped
    }

    /**
     * @param argument [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
     */
    @JvmName("vekjwcrapwikbyfe")
    public suspend fun patchSettings(argument: suspend PatchSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = PatchSettingsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.patchSettings = mapped
    }

    /**
     * @param value Indicates whether virtual machine agent should be provisioned on the virtual
     * machine. When this property is not specified in the request body, it is set to
     * true by default. This will ensure that VM Agent is installed on the VM so that
     * extensions can be added to the VM later.
     */
    @JvmName("yilqoffkijmqjexm")
    public suspend fun provisionVMAgent(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.provisionVMAgent = mapped
    }

    /**
     * @param value Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time".
     * Possible values can be
     * [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id)
     * value from time zones returned by
     * [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones).
     */
    @JvmName("siagtkowwekchnqa")
    public suspend fun timeZone(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.timeZone = mapped
    }

    /**
     * @param value Specifies the Windows Remote Management listeners. This enables remote Windows
     * PowerShell.
     */
    @JvmName("thqyeelclffmiauh")
    public suspend fun winRM(`value`: WinRMConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.winRM = mapped
    }

    /**
     * @param argument Specifies the Windows Remote Management listeners. This enables remote Windows
     * PowerShell.
     */
    @JvmName("kclahafdvytmjgqa")
    public suspend fun winRM(argument: suspend WinRMConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = WinRMConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.winRM = mapped
    }

    internal fun build(): WindowsConfigurationArgs = WindowsConfigurationArgs(
        additionalUnattendContent = additionalUnattendContent,
        enableAutomaticUpdates = enableAutomaticUpdates,
        enableVMAgentPlatformUpdates = enableVMAgentPlatformUpdates,
        patchSettings = patchSettings,
        provisionVMAgent = provisionVMAgent,
        timeZone = timeZone,
        winRM = winRM,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy