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

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

There is a newer version: 2.72.0
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.compute.inputs;

import com.pulumi.azurenative.compute.inputs.LinuxConfigurationArgs;
import com.pulumi.azurenative.compute.inputs.VaultSecretGroupArgs;
import com.pulumi.azurenative.compute.inputs.WindowsConfigurationArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Specifies the operating system settings for the virtual machine. Some of the settings cannot be changed once VM is provisioned.
 * 
 */
public final class OSProfileArgs extends com.pulumi.resources.ResourceArgs {

    public static final OSProfileArgs Empty = new OSProfileArgs();

    /**
     * Specifies the password of the administrator account. <br><br> **Minimum-length (Windows):** 8 characters <br><br> **Minimum-length (Linux):** 6 characters <br><br> **Max-length (Windows):** 123 characters <br><br> **Max-length (Linux):** 72 characters <br><br> **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled <br> Has lower characters <br>Has upper characters <br> Has a digit <br> Has a special character (Regex match [\W_]) <br><br> **Disallowed values:** "abc{@literal @}123", "P{@literal @}$$w0rd", "P{@literal @}ssw0rd", "P{@literal @}ssword123", "Pa$$word", "pass{@literal @}word1", "Password!", "Password1", "Password22", "iloveyou!" <br><br> 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) <br><br> 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)
     * 
     */
    @Import(name="adminPassword")
    private @Nullable Output adminPassword;

    /**
     * @return Specifies the password of the administrator account. <br><br> **Minimum-length (Windows):** 8 characters <br><br> **Minimum-length (Linux):** 6 characters <br><br> **Max-length (Windows):** 123 characters <br><br> **Max-length (Linux):** 72 characters <br><br> **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled <br> Has lower characters <br>Has upper characters <br> Has a digit <br> Has a special character (Regex match [\W_]) <br><br> **Disallowed values:** "abc{@literal @}123", "P{@literal @}$$w0rd", "P{@literal @}ssw0rd", "P{@literal @}ssword123", "Pa$$word", "pass{@literal @}word1", "Password!", "Password1", "Password22", "iloveyou!" <br><br> 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) <br><br> 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)
     * 
     */
    public Optional> adminPassword() {
        return Optional.ofNullable(this.adminPassword);
    }

    /**
     * Specifies the name of the administrator account. <br><br> This property cannot be updated after the VM is created. <br><br> **Windows-only restriction:** Cannot end in "." <br><br> **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". <br><br> **Minimum-length (Linux):** 1  character <br><br> **Max-length (Linux):** 64 characters <br><br> **Max-length (Windows):** 20 characters.
     * 
     */
    @Import(name="adminUsername")
    private @Nullable Output adminUsername;

    /**
     * @return Specifies the name of the administrator account. <br><br> This property cannot be updated after the VM is created. <br><br> **Windows-only restriction:** Cannot end in "." <br><br> **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". <br><br> **Minimum-length (Linux):** 1  character <br><br> **Max-length (Linux):** 64 characters <br><br> **Max-length (Windows):** 20 characters.
     * 
     */
    public Optional> adminUsername() {
        return Optional.ofNullable(this.adminUsername);
    }

    /**
     * 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.
     * 
     */
    @Import(name="allowExtensionOperations")
    private @Nullable Output allowExtensionOperations;

    /**
     * @return 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.
     * 
     */
    public Optional> allowExtensionOperations() {
        return Optional.ofNullable(this.allowExtensionOperations);
    }

    /**
     * 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).
     * 
     */
    @Import(name="computerName")
    private @Nullable Output computerName;

    /**
     * @return 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).
     * 
     */
    public Optional> computerName() {
        return Optional.ofNullable(this.computerName);
    }

    /**
     * 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).
     * 
     */
    @Import(name="customData")
    private @Nullable Output customData;

    /**
     * @return 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).
     * 
     */
    public Optional> customData() {
        return Optional.ofNullable(this.customData);
    }

    /**
     * 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).
     * 
     */
    @Import(name="linuxConfiguration")
    private @Nullable Output linuxConfiguration;

    /**
     * @return 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).
     * 
     */
    public Optional> linuxConfiguration() {
        return Optional.ofNullable(this.linuxConfiguration);
    }

    /**
     * Optional property which must either be set to True or omitted.
     * 
     */
    @Import(name="requireGuestProvisionSignal")
    private @Nullable Output requireGuestProvisionSignal;

    /**
     * @return Optional property which must either be set to True or omitted.
     * 
     */
    public Optional> requireGuestProvisionSignal() {
        return Optional.ofNullable(this.requireGuestProvisionSignal);
    }

    /**
     * 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).
     * 
     */
    @Import(name="secrets")
    private @Nullable Output> secrets;

    /**
     * @return 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).
     * 
     */
    public Optional>> secrets() {
        return Optional.ofNullable(this.secrets);
    }

    /**
     * Specifies Windows operating system settings on the virtual machine.
     * 
     */
    @Import(name="windowsConfiguration")
    private @Nullable Output windowsConfiguration;

    /**
     * @return Specifies Windows operating system settings on the virtual machine.
     * 
     */
    public Optional> windowsConfiguration() {
        return Optional.ofNullable(this.windowsConfiguration);
    }

    private OSProfileArgs() {}

    private OSProfileArgs(OSProfileArgs $) {
        this.adminPassword = $.adminPassword;
        this.adminUsername = $.adminUsername;
        this.allowExtensionOperations = $.allowExtensionOperations;
        this.computerName = $.computerName;
        this.customData = $.customData;
        this.linuxConfiguration = $.linuxConfiguration;
        this.requireGuestProvisionSignal = $.requireGuestProvisionSignal;
        this.secrets = $.secrets;
        this.windowsConfiguration = $.windowsConfiguration;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(OSProfileArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private OSProfileArgs $;

        public Builder() {
            $ = new OSProfileArgs();
        }

        public Builder(OSProfileArgs defaults) {
            $ = new OSProfileArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param adminPassword Specifies the password of the administrator account. <br><br> **Minimum-length (Windows):** 8 characters <br><br> **Minimum-length (Linux):** 6 characters <br><br> **Max-length (Windows):** 123 characters <br><br> **Max-length (Linux):** 72 characters <br><br> **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled <br> Has lower characters <br>Has upper characters <br> Has a digit <br> Has a special character (Regex match [\W_]) <br><br> **Disallowed values:** "abc{@literal @}123", "P{@literal @}$$w0rd", "P{@literal @}ssw0rd", "P{@literal @}ssword123", "Pa$$word", "pass{@literal @}word1", "Password!", "Password1", "Password22", "iloveyou!" <br><br> 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) <br><br> 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)
         * 
         * @return builder
         * 
         */
        public Builder adminPassword(@Nullable Output adminPassword) {
            $.adminPassword = adminPassword;
            return this;
        }

        /**
         * @param adminPassword Specifies the password of the administrator account. <br><br> **Minimum-length (Windows):** 8 characters <br><br> **Minimum-length (Linux):** 6 characters <br><br> **Max-length (Windows):** 123 characters <br><br> **Max-length (Linux):** 72 characters <br><br> **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled <br> Has lower characters <br>Has upper characters <br> Has a digit <br> Has a special character (Regex match [\W_]) <br><br> **Disallowed values:** "abc{@literal @}123", "P{@literal @}$$w0rd", "P{@literal @}ssw0rd", "P{@literal @}ssword123", "Pa$$word", "pass{@literal @}word1", "Password!", "Password1", "Password22", "iloveyou!" <br><br> 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) <br><br> 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)
         * 
         * @return builder
         * 
         */
        public Builder adminPassword(String adminPassword) {
            return adminPassword(Output.of(adminPassword));
        }

        /**
         * @param adminUsername Specifies the name of the administrator account. <br><br> This property cannot be updated after the VM is created. <br><br> **Windows-only restriction:** Cannot end in "." <br><br> **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". <br><br> **Minimum-length (Linux):** 1  character <br><br> **Max-length (Linux):** 64 characters <br><br> **Max-length (Windows):** 20 characters.
         * 
         * @return builder
         * 
         */
        public Builder adminUsername(@Nullable Output adminUsername) {
            $.adminUsername = adminUsername;
            return this;
        }

        /**
         * @param adminUsername Specifies the name of the administrator account. <br><br> This property cannot be updated after the VM is created. <br><br> **Windows-only restriction:** Cannot end in "." <br><br> **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". <br><br> **Minimum-length (Linux):** 1  character <br><br> **Max-length (Linux):** 64 characters <br><br> **Max-length (Windows):** 20 characters.
         * 
         * @return builder
         * 
         */
        public Builder adminUsername(String adminUsername) {
            return adminUsername(Output.of(adminUsername));
        }

        /**
         * @param 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.
         * 
         * @return builder
         * 
         */
        public Builder allowExtensionOperations(@Nullable Output allowExtensionOperations) {
            $.allowExtensionOperations = allowExtensionOperations;
            return this;
        }

        /**
         * @param 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.
         * 
         * @return builder
         * 
         */
        public Builder allowExtensionOperations(Boolean allowExtensionOperations) {
            return allowExtensionOperations(Output.of(allowExtensionOperations));
        }

        /**
         * @param 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).
         * 
         * @return builder
         * 
         */
        public Builder computerName(@Nullable Output computerName) {
            $.computerName = computerName;
            return this;
        }

        /**
         * @param 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).
         * 
         * @return builder
         * 
         */
        public Builder computerName(String computerName) {
            return computerName(Output.of(computerName));
        }

        /**
         * @param 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).
         * 
         * @return builder
         * 
         */
        public Builder customData(@Nullable Output customData) {
            $.customData = customData;
            return this;
        }

        /**
         * @param 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).
         * 
         * @return builder
         * 
         */
        public Builder customData(String customData) {
            return customData(Output.of(customData));
        }

        /**
         * @param 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).
         * 
         * @return builder
         * 
         */
        public Builder linuxConfiguration(@Nullable Output linuxConfiguration) {
            $.linuxConfiguration = linuxConfiguration;
            return this;
        }

        /**
         * @param 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).
         * 
         * @return builder
         * 
         */
        public Builder linuxConfiguration(LinuxConfigurationArgs linuxConfiguration) {
            return linuxConfiguration(Output.of(linuxConfiguration));
        }

        /**
         * @param requireGuestProvisionSignal Optional property which must either be set to True or omitted.
         * 
         * @return builder
         * 
         */
        public Builder requireGuestProvisionSignal(@Nullable Output requireGuestProvisionSignal) {
            $.requireGuestProvisionSignal = requireGuestProvisionSignal;
            return this;
        }

        /**
         * @param requireGuestProvisionSignal Optional property which must either be set to True or omitted.
         * 
         * @return builder
         * 
         */
        public Builder requireGuestProvisionSignal(Boolean requireGuestProvisionSignal) {
            return requireGuestProvisionSignal(Output.of(requireGuestProvisionSignal));
        }

        /**
         * @param 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).
         * 
         * @return builder
         * 
         */
        public Builder secrets(@Nullable Output> secrets) {
            $.secrets = secrets;
            return this;
        }

        /**
         * @param 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).
         * 
         * @return builder
         * 
         */
        public Builder secrets(List secrets) {
            return secrets(Output.of(secrets));
        }

        /**
         * @param 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).
         * 
         * @return builder
         * 
         */
        public Builder secrets(VaultSecretGroupArgs... secrets) {
            return secrets(List.of(secrets));
        }

        /**
         * @param windowsConfiguration Specifies Windows operating system settings on the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder windowsConfiguration(@Nullable Output windowsConfiguration) {
            $.windowsConfiguration = windowsConfiguration;
            return this;
        }

        /**
         * @param windowsConfiguration Specifies Windows operating system settings on the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder windowsConfiguration(WindowsConfigurationArgs windowsConfiguration) {
            return windowsConfiguration(Output.of(windowsConfiguration));
        }

        public OSProfileArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy