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

com.pulumi.azurenative.compute.kotlin.inputs.OSProfileArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.compute.kotlin.inputs

import com.pulumi.azurenative.compute.inputs.OSProfileArgs.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 the operating system settings for the virtual machine. Some of the settings cannot be changed once VM is provisioned.
 * @property adminPassword Specifies the password of the administrator account. 

**Minimum-length (Windows):** 8 characters

**Minimum-length (Linux):** 6 characters

**Max-length (Windows):** 123 characters

**Max-length (Linux):** 72 characters

**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled
Has lower characters
Has upper characters
Has a digit
Has a special character (Regex match [\W_])

**Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!"

For resetting the password, see [How to reset the Remote Desktop service or its login password in a Windows VM](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/reset-rdp)

For resetting root password, see [Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/troubleshoot-ssh-connection) * @property adminUsername Specifies the name of the administrator account.

This property cannot be updated after the VM is created.

**Windows-only restriction:** Cannot end in "."

**Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5".

**Minimum-length (Linux):** 1 character

**Max-length (Linux):** 64 characters

**Max-length (Windows):** 20 characters. * @property allowExtensionOperations Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine. * @property computerName Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. **Max-length (Windows):** 15 characters. **Max-length (Linux):** 64 characters. For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). * @property customData Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. **Note: Do not pass any secrets or passwords in customData property.** This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/). For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init). * @property linuxConfiguration Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). * @property requireGuestProvisionSignal Optional property which must either be set to True or omitted. * @property secrets Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). * @property windowsConfiguration Specifies Windows operating system settings on the virtual machine. */ public data class OSProfileArgs( public val adminPassword: Output? = null, public val adminUsername: Output? = null, public val allowExtensionOperations: Output? = null, public val computerName: Output? = null, public val customData: Output? = null, public val linuxConfiguration: Output? = null, public val requireGuestProvisionSignal: Output? = null, public val secrets: Output>? = null, public val windowsConfiguration: Output? = null, ) : ConvertibleToJava { override fun toJava(): com.pulumi.azurenative.compute.inputs.OSProfileArgs = com.pulumi.azurenative.compute.inputs.OSProfileArgs.builder() .adminPassword(adminPassword?.applyValue({ args0 -> args0 })) .adminUsername(adminUsername?.applyValue({ args0 -> args0 })) .allowExtensionOperations(allowExtensionOperations?.applyValue({ args0 -> args0 })) .computerName(computerName?.applyValue({ args0 -> args0 })) .customData(customData?.applyValue({ args0 -> args0 })) .linuxConfiguration( linuxConfiguration?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }), ) .requireGuestProvisionSignal(requireGuestProvisionSignal?.applyValue({ args0 -> args0 })) .secrets( secrets?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }), ) .windowsConfiguration( windowsConfiguration?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }), ).build() } /** * Builder for [OSProfileArgs]. */ @PulumiTagMarker public class OSProfileArgsBuilder internal constructor() { private var adminPassword: Output? = null private var adminUsername: Output? = null private var allowExtensionOperations: Output? = null private var computerName: Output? = null private var customData: Output? = null private var linuxConfiguration: Output? = null private var requireGuestProvisionSignal: Output? = null private var secrets: Output>? = null private var windowsConfiguration: Output? = null /** * @param value Specifies the password of the administrator account.

**Minimum-length (Windows):** 8 characters

**Minimum-length (Linux):** 6 characters

**Max-length (Windows):** 123 characters

**Max-length (Linux):** 72 characters

**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled
Has lower characters
Has upper characters
Has a digit
Has a special character (Regex match [\W_])

**Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!"

For resetting the password, see [How to reset the Remote Desktop service or its login password in a Windows VM](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/reset-rdp)

For resetting root password, see [Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/troubleshoot-ssh-connection) */ @JvmName("yidjvtamywstkypo") public suspend fun adminPassword(`value`: Output) { this.adminPassword = value } /** * @param value Specifies the name of the administrator account.

This property cannot be updated after the VM is created.

**Windows-only restriction:** Cannot end in "."

**Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5".

**Minimum-length (Linux):** 1 character

**Max-length (Linux):** 64 characters

**Max-length (Windows):** 20 characters. */ @JvmName("imwdnknvyuiaobdj") public suspend fun adminUsername(`value`: Output) { this.adminUsername = value } /** * @param value Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine. */ @JvmName("wibnnvbfqjtrmcpu") public suspend fun allowExtensionOperations(`value`: Output) { this.allowExtensionOperations = value } /** * @param value Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. **Max-length (Windows):** 15 characters. **Max-length (Linux):** 64 characters. For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). */ @JvmName("cnkgmmshuoqwgupl") public suspend fun computerName(`value`: Output) { this.computerName = value } /** * @param value Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. **Note: Do not pass any secrets or passwords in customData property.** This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/). For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init). */ @JvmName("cajwjabsgaeblhaa") public suspend fun customData(`value`: Output) { this.customData = value } /** * @param value Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). */ @JvmName("cvpveyqimycsfxcj") public suspend fun linuxConfiguration(`value`: Output) { this.linuxConfiguration = value } /** * @param value Optional property which must either be set to True or omitted. */ @JvmName("nosipmwwnsswgrdx") public suspend fun requireGuestProvisionSignal(`value`: Output) { this.requireGuestProvisionSignal = value } /** * @param value Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). */ @JvmName("bbaocihihyfashhk") public suspend fun secrets(`value`: Output>) { this.secrets = value } @JvmName("rydtrobfutmuesgj") public suspend fun secrets(vararg values: Output) { this.secrets = Output.all(values.asList()) } /** * @param values Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). */ @JvmName("yeqbphykowjmkgkj") public suspend fun secrets(values: List>) { this.secrets = Output.all(values) } /** * @param value Specifies Windows operating system settings on the virtual machine. */ @JvmName("wuegmevestvwwury") public suspend fun windowsConfiguration(`value`: Output) { this.windowsConfiguration = value } /** * @param value Specifies the password of the administrator account.

**Minimum-length (Windows):** 8 characters

**Minimum-length (Linux):** 6 characters

**Max-length (Windows):** 123 characters

**Max-length (Linux):** 72 characters

**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled
Has lower characters
Has upper characters
Has a digit
Has a special character (Regex match [\W_])

**Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!"

For resetting the password, see [How to reset the Remote Desktop service or its login password in a Windows VM](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/reset-rdp)

For resetting root password, see [Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/troubleshoot-ssh-connection) */ @JvmName("nsbwnwuxvuavdmtg") public suspend fun adminPassword(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.adminPassword = mapped } /** * @param value Specifies the name of the administrator account.

This property cannot be updated after the VM is created.

**Windows-only restriction:** Cannot end in "."

**Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5".

**Minimum-length (Linux):** 1 character

**Max-length (Linux):** 64 characters

**Max-length (Windows):** 20 characters. */ @JvmName("cspempaejpwaoncd") public suspend fun adminUsername(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.adminUsername = mapped } /** * @param value Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine. */ @JvmName("smiorrhisostxurg") public suspend fun allowExtensionOperations(`value`: Boolean?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.allowExtensionOperations = mapped } /** * @param value Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. **Max-length (Windows):** 15 characters. **Max-length (Linux):** 64 characters. For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). */ @JvmName("xqhoaossmawqmhos") public suspend fun computerName(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.computerName = mapped } /** * @param value Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. **Note: Do not pass any secrets or passwords in customData property.** This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/). For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init). */ @JvmName("gyfdtukoorhtcrfs") public suspend fun customData(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.customData = mapped } /** * @param value Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). */ @JvmName("ucdadnlliotsvmdp") public suspend fun linuxConfiguration(`value`: LinuxConfigurationArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.linuxConfiguration = mapped } /** * @param argument Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). */ @JvmName("nrgnoxmcgesheadw") public suspend fun linuxConfiguration(argument: suspend LinuxConfigurationArgsBuilder.() -> Unit) { val toBeMapped = LinuxConfigurationArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.linuxConfiguration = mapped } /** * @param value Optional property which must either be set to True or omitted. */ @JvmName("qljorapkadbyrbrm") public suspend fun requireGuestProvisionSignal(`value`: Boolean?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.requireGuestProvisionSignal = mapped } /** * @param value Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). */ @JvmName("lkuyetkiqqxgmjth") public suspend fun secrets(`value`: List?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.secrets = mapped } /** * @param argument Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). */ @JvmName("vwnenkmlssroaepn") public suspend fun secrets(argument: List Unit>) { val toBeMapped = argument.toList().map { VaultSecretGroupArgsBuilder().applySuspend { it() }.build() } val mapped = of(toBeMapped) this.secrets = mapped } /** * @param argument Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). */ @JvmName("vsjgyurwttrtpftm") public suspend fun secrets(vararg argument: suspend VaultSecretGroupArgsBuilder.() -> Unit) { val toBeMapped = argument.toList().map { VaultSecretGroupArgsBuilder().applySuspend { it() }.build() } val mapped = of(toBeMapped) this.secrets = mapped } /** * @param argument Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). */ @JvmName("vrfqqbircpldsbae") public suspend fun secrets(argument: suspend VaultSecretGroupArgsBuilder.() -> Unit) { val toBeMapped = listOf(VaultSecretGroupArgsBuilder().applySuspend { argument() }.build()) val mapped = of(toBeMapped) this.secrets = mapped } /** * @param values Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). */ @JvmName("klhuvxqoduvyvmou") public suspend fun secrets(vararg values: VaultSecretGroupArgs) { val toBeMapped = values.toList() val mapped = toBeMapped.let({ args0 -> of(args0) }) this.secrets = mapped } /** * @param value Specifies Windows operating system settings on the virtual machine. */ @JvmName("mbxnonoupxjhexiu") public suspend fun windowsConfiguration(`value`: WindowsConfigurationArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.windowsConfiguration = mapped } /** * @param argument Specifies Windows operating system settings on the virtual machine. */ @JvmName("yjtfhtyupsndqbgm") public suspend fun windowsConfiguration(argument: suspend WindowsConfigurationArgsBuilder.() -> Unit) { val toBeMapped = WindowsConfigurationArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.windowsConfiguration = mapped } internal fun build(): OSProfileArgs = OSProfileArgs( adminPassword = adminPassword, adminUsername = adminUsername, allowExtensionOperations = allowExtensionOperations, computerName = computerName, customData = customData, linuxConfiguration = linuxConfiguration, requireGuestProvisionSignal = requireGuestProvisionSignal, secrets = secrets, windowsConfiguration = windowsConfiguration, ) }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy