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

com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs 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.containerservice.inputs;

import com.pulumi.azurenative.containerservice.enums.LicenseType;
import com.pulumi.azurenative.containerservice.inputs.WindowsGmsaProfileArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Profile for Windows VMs in the managed cluster.
 * 
 */
public final class ManagedClusterWindowsProfileArgs extends com.pulumi.resources.ResourceArgs {

    public static final ManagedClusterWindowsProfileArgs Empty = new ManagedClusterWindowsProfileArgs();

    /**
     * Specifies the password of the administrator account. <br><br> **Minimum-length:** 8 characters <br><br> **Max-length:** 123 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!"
     * 
     */
    @Import(name="adminPassword")
    private @Nullable Output adminPassword;

    /**
     * @return Specifies the password of the administrator account. <br><br> **Minimum-length:** 8 characters <br><br> **Max-length:** 123 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!"
     * 
     */
    public Optional> adminPassword() {
        return Optional.ofNullable(this.adminPassword);
    }

    /**
     * Specifies the name of the administrator account. <br><br> **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:** 1 character <br><br> **Max-length:** 20 characters
     * 
     */
    @Import(name="adminUsername", required=true)
    private Output adminUsername;

    /**
     * @return Specifies the name of the administrator account. <br><br> **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:** 1 character <br><br> **Max-length:** 20 characters
     * 
     */
    public Output adminUsername() {
        return this.adminUsername;
    }

    /**
     * For more details on CSI proxy, see the [CSI proxy GitHub repo](https://github.com/kubernetes-csi/csi-proxy).
     * 
     */
    @Import(name="enableCSIProxy")
    private @Nullable Output enableCSIProxy;

    /**
     * @return For more details on CSI proxy, see the [CSI proxy GitHub repo](https://github.com/kubernetes-csi/csi-proxy).
     * 
     */
    public Optional> enableCSIProxy() {
        return Optional.ofNullable(this.enableCSIProxy);
    }

    /**
     * The Windows gMSA Profile in the Managed Cluster.
     * 
     */
    @Import(name="gmsaProfile")
    private @Nullable Output gmsaProfile;

    /**
     * @return The Windows gMSA Profile in the Managed Cluster.
     * 
     */
    public Optional> gmsaProfile() {
        return Optional.ofNullable(this.gmsaProfile);
    }

    /**
     * The license type to use for Windows VMs. See [Azure Hybrid User Benefits](https://azure.microsoft.com/pricing/hybrid-benefit/faq/) for more details.
     * 
     */
    @Import(name="licenseType")
    private @Nullable Output> licenseType;

    /**
     * @return The license type to use for Windows VMs. See [Azure Hybrid User Benefits](https://azure.microsoft.com/pricing/hybrid-benefit/faq/) for more details.
     * 
     */
    public Optional>> licenseType() {
        return Optional.ofNullable(this.licenseType);
    }

    private ManagedClusterWindowsProfileArgs() {}

    private ManagedClusterWindowsProfileArgs(ManagedClusterWindowsProfileArgs $) {
        this.adminPassword = $.adminPassword;
        this.adminUsername = $.adminUsername;
        this.enableCSIProxy = $.enableCSIProxy;
        this.gmsaProfile = $.gmsaProfile;
        this.licenseType = $.licenseType;
    }

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

    public static final class Builder {
        private ManagedClusterWindowsProfileArgs $;

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

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

        /**
         * @param adminPassword Specifies the password of the administrator account. <br><br> **Minimum-length:** 8 characters <br><br> **Max-length:** 123 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!"
         * 
         * @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:** 8 characters <br><br> **Max-length:** 123 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!"
         * 
         * @return builder
         * 
         */
        public Builder adminPassword(String adminPassword) {
            return adminPassword(Output.of(adminPassword));
        }

        /**
         * @param adminUsername Specifies the name of the administrator account. <br><br> **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:** 1 character <br><br> **Max-length:** 20 characters
         * 
         * @return builder
         * 
         */
        public Builder adminUsername(Output adminUsername) {
            $.adminUsername = adminUsername;
            return this;
        }

        /**
         * @param adminUsername Specifies the name of the administrator account. <br><br> **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:** 1 character <br><br> **Max-length:** 20 characters
         * 
         * @return builder
         * 
         */
        public Builder adminUsername(String adminUsername) {
            return adminUsername(Output.of(adminUsername));
        }

        /**
         * @param enableCSIProxy For more details on CSI proxy, see the [CSI proxy GitHub repo](https://github.com/kubernetes-csi/csi-proxy).
         * 
         * @return builder
         * 
         */
        public Builder enableCSIProxy(@Nullable Output enableCSIProxy) {
            $.enableCSIProxy = enableCSIProxy;
            return this;
        }

        /**
         * @param enableCSIProxy For more details on CSI proxy, see the [CSI proxy GitHub repo](https://github.com/kubernetes-csi/csi-proxy).
         * 
         * @return builder
         * 
         */
        public Builder enableCSIProxy(Boolean enableCSIProxy) {
            return enableCSIProxy(Output.of(enableCSIProxy));
        }

        /**
         * @param gmsaProfile The Windows gMSA Profile in the Managed Cluster.
         * 
         * @return builder
         * 
         */
        public Builder gmsaProfile(@Nullable Output gmsaProfile) {
            $.gmsaProfile = gmsaProfile;
            return this;
        }

        /**
         * @param gmsaProfile The Windows gMSA Profile in the Managed Cluster.
         * 
         * @return builder
         * 
         */
        public Builder gmsaProfile(WindowsGmsaProfileArgs gmsaProfile) {
            return gmsaProfile(Output.of(gmsaProfile));
        }

        /**
         * @param licenseType The license type to use for Windows VMs. See [Azure Hybrid User Benefits](https://azure.microsoft.com/pricing/hybrid-benefit/faq/) for more details.
         * 
         * @return builder
         * 
         */
        public Builder licenseType(@Nullable Output> licenseType) {
            $.licenseType = licenseType;
            return this;
        }

        /**
         * @param licenseType The license type to use for Windows VMs. See [Azure Hybrid User Benefits](https://azure.microsoft.com/pricing/hybrid-benefit/faq/) for more details.
         * 
         * @return builder
         * 
         */
        public Builder licenseType(Either licenseType) {
            return licenseType(Output.of(licenseType));
        }

        /**
         * @param licenseType The license type to use for Windows VMs. See [Azure Hybrid User Benefits](https://azure.microsoft.com/pricing/hybrid-benefit/faq/) for more details.
         * 
         * @return builder
         * 
         */
        public Builder licenseType(String licenseType) {
            return licenseType(Either.ofLeft(licenseType));
        }

        /**
         * @param licenseType The license type to use for Windows VMs. See [Azure Hybrid User Benefits](https://azure.microsoft.com/pricing/hybrid-benefit/faq/) for more details.
         * 
         * @return builder
         * 
         */
        public Builder licenseType(LicenseType licenseType) {
            return licenseType(Either.ofRight(licenseType));
        }

        public ManagedClusterWindowsProfileArgs build() {
            if ($.adminUsername == null) {
                throw new MissingRequiredPropertyException("ManagedClusterWindowsProfileArgs", "adminUsername");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy