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

com.pulumi.azurenative.azurefleet.inputs.VirtualMachineScaleSetOSProfileArgs Maven / Gradle / Ivy

// *** 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.azurefleet.inputs;

import com.pulumi.azurenative.azurefleet.inputs.LinuxConfigurationArgs;
import com.pulumi.azurenative.azurefleet.inputs.VaultSecretGroupArgs;
import com.pulumi.azurenative.azurefleet.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;


/**
 * Describes a virtual machine scale set OS profile.
 * 
 */
public final class VirtualMachineScaleSetOSProfileArgs extends com.pulumi.resources.ResourceArgs {

    public static final VirtualMachineScaleSetOSProfileArgs Empty = new VirtualMachineScaleSetOSProfileArgs();

    /**
     * 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> **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> **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
     * scale set. This may only be set to False when no extensions are present on the
     * virtual machine scale set.
     * 
     */
    @Import(name="allowExtensionOperations")
    private @Nullable Output allowExtensionOperations;

    /**
     * @return Specifies whether extension operations should be allowed on the virtual machine
     * scale set. This may only be set to False when no extensions are present on the
     * virtual machine scale set.
     * 
     */
    public Optional> allowExtensionOperations() {
        return Optional.ofNullable(this.allowExtensionOperations);
    }

    /**
     * Specifies the computer name prefix for all of the virtual machines in the scale
     * set. Computer name prefixes must be 1 to 15 characters long.
     * 
     */
    @Import(name="computerNamePrefix")
    private @Nullable Output computerNamePrefix;

    /**
     * @return Specifies the computer name prefix for all of the virtual machines in the scale
     * set. Computer name prefixes must be 1 to 15 characters long.
     * 
     */
    public Optional> computerNamePrefix() {
        return Optional.ofNullable(this.computerNamePrefix);
    }

    /**
     * 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. For using cloud-init for
     * your 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. For using cloud-init for
     * your 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
     * machines in the scale set. 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
     * machines in the scale set. 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 VirtualMachineScaleSetOSProfileArgs() {}

    private VirtualMachineScaleSetOSProfileArgs(VirtualMachineScaleSetOSProfileArgs $) {
        this.adminPassword = $.adminPassword;
        this.adminUsername = $.adminUsername;
        this.allowExtensionOperations = $.allowExtensionOperations;
        this.computerNamePrefix = $.computerNamePrefix;
        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(VirtualMachineScaleSetOSProfileArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private VirtualMachineScaleSetOSProfileArgs $;

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

        public Builder(VirtualMachineScaleSetOSProfileArgs defaults) {
            $ = new VirtualMachineScaleSetOSProfileArgs(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> **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> **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
         * scale set. This may only be set to False when no extensions are present on the
         * virtual machine scale set.
         * 
         * @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
         * scale set. This may only be set to False when no extensions are present on the
         * virtual machine scale set.
         * 
         * @return builder
         * 
         */
        public Builder allowExtensionOperations(Boolean allowExtensionOperations) {
            return allowExtensionOperations(Output.of(allowExtensionOperations));
        }

        /**
         * @param computerNamePrefix Specifies the computer name prefix for all of the virtual machines in the scale
         * set. Computer name prefixes must be 1 to 15 characters long.
         * 
         * @return builder
         * 
         */
        public Builder computerNamePrefix(@Nullable Output computerNamePrefix) {
            $.computerNamePrefix = computerNamePrefix;
            return this;
        }

        /**
         * @param computerNamePrefix Specifies the computer name prefix for all of the virtual machines in the scale
         * set. Computer name prefixes must be 1 to 15 characters long.
         * 
         * @return builder
         * 
         */
        public Builder computerNamePrefix(String computerNamePrefix) {
            return computerNamePrefix(Output.of(computerNamePrefix));
        }

        /**
         * @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. For using cloud-init for
         * your 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. For using cloud-init for
         * your 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
         * machines in the scale set. 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
         * machines in the scale set. 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
         * machines in the scale set. 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 VirtualMachineScaleSetOSProfileArgs build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy