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

com.pulumi.azurenative.labservices.inputs.VirtualMachineProfileArgs 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.labservices.inputs;

import com.pulumi.azurenative.labservices.enums.CreateOption;
import com.pulumi.azurenative.labservices.enums.EnableState;
import com.pulumi.azurenative.labservices.inputs.CredentialsArgs;
import com.pulumi.azurenative.labservices.inputs.ImageReferenceArgs;
import com.pulumi.azurenative.labservices.inputs.SkuArgs;
import com.pulumi.azurenative.labservices.inputs.VirtualMachineAdditionalCapabilitiesArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * The base virtual machine configuration for a lab.
 * 
 */
public final class VirtualMachineProfileArgs extends com.pulumi.resources.ResourceArgs {

    public static final VirtualMachineProfileArgs Empty = new VirtualMachineProfileArgs();

    /**
     * Additional VM capabilities.
     * 
     */
    @Import(name="additionalCapabilities")
    private @Nullable Output additionalCapabilities;

    /**
     * @return Additional VM capabilities.
     * 
     */
    public Optional> additionalCapabilities() {
        return Optional.ofNullable(this.additionalCapabilities);
    }

    /**
     * Credentials for the admin user on the VM.
     * 
     */
    @Import(name="adminUser", required=true)
    private Output adminUser;

    /**
     * @return Credentials for the admin user on the VM.
     * 
     */
    public Output adminUser() {
        return this.adminUser;
    }

    /**
     * Indicates what lab virtual machines are created from.
     * 
     */
    @Import(name="createOption", required=true)
    private Output createOption;

    /**
     * @return Indicates what lab virtual machines are created from.
     * 
     */
    public Output createOption() {
        return this.createOption;
    }

    /**
     * The image configuration for lab virtual machines.
     * 
     */
    @Import(name="imageReference", required=true)
    private Output imageReference;

    /**
     * @return The image configuration for lab virtual machines.
     * 
     */
    public Output imageReference() {
        return this.imageReference;
    }

    /**
     * Credentials for the non-admin user on the VM, if one exists.
     * 
     */
    @Import(name="nonAdminUser")
    private @Nullable Output nonAdminUser;

    /**
     * @return Credentials for the non-admin user on the VM, if one exists.
     * 
     */
    public Optional> nonAdminUser() {
        return Optional.ofNullable(this.nonAdminUser);
    }

    /**
     * The SKU for the lab. Defines the type of virtual machines used in the lab.
     * 
     */
    @Import(name="sku", required=true)
    private Output sku;

    /**
     * @return The SKU for the lab. Defines the type of virtual machines used in the lab.
     * 
     */
    public Output sku() {
        return this.sku;
    }

    /**
     * The initial quota alloted to each lab user. Must be a time span between 0 and 9999 hours.
     * 
     */
    @Import(name="usageQuota", required=true)
    private Output usageQuota;

    /**
     * @return The initial quota alloted to each lab user. Must be a time span between 0 and 9999 hours.
     * 
     */
    public Output usageQuota() {
        return this.usageQuota;
    }

    /**
     * Enabling this option will use the same password for all user VMs.
     * 
     */
    @Import(name="useSharedPassword")
    private @Nullable Output useSharedPassword;

    /**
     * @return Enabling this option will use the same password for all user VMs.
     * 
     */
    public Optional> useSharedPassword() {
        return Optional.ofNullable(this.useSharedPassword);
    }

    private VirtualMachineProfileArgs() {}

    private VirtualMachineProfileArgs(VirtualMachineProfileArgs $) {
        this.additionalCapabilities = $.additionalCapabilities;
        this.adminUser = $.adminUser;
        this.createOption = $.createOption;
        this.imageReference = $.imageReference;
        this.nonAdminUser = $.nonAdminUser;
        this.sku = $.sku;
        this.usageQuota = $.usageQuota;
        this.useSharedPassword = $.useSharedPassword;
    }

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

    public static final class Builder {
        private VirtualMachineProfileArgs $;

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

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

        /**
         * @param additionalCapabilities Additional VM capabilities.
         * 
         * @return builder
         * 
         */
        public Builder additionalCapabilities(@Nullable Output additionalCapabilities) {
            $.additionalCapabilities = additionalCapabilities;
            return this;
        }

        /**
         * @param additionalCapabilities Additional VM capabilities.
         * 
         * @return builder
         * 
         */
        public Builder additionalCapabilities(VirtualMachineAdditionalCapabilitiesArgs additionalCapabilities) {
            return additionalCapabilities(Output.of(additionalCapabilities));
        }

        /**
         * @param adminUser Credentials for the admin user on the VM.
         * 
         * @return builder
         * 
         */
        public Builder adminUser(Output adminUser) {
            $.adminUser = adminUser;
            return this;
        }

        /**
         * @param adminUser Credentials for the admin user on the VM.
         * 
         * @return builder
         * 
         */
        public Builder adminUser(CredentialsArgs adminUser) {
            return adminUser(Output.of(adminUser));
        }

        /**
         * @param createOption Indicates what lab virtual machines are created from.
         * 
         * @return builder
         * 
         */
        public Builder createOption(Output createOption) {
            $.createOption = createOption;
            return this;
        }

        /**
         * @param createOption Indicates what lab virtual machines are created from.
         * 
         * @return builder
         * 
         */
        public Builder createOption(CreateOption createOption) {
            return createOption(Output.of(createOption));
        }

        /**
         * @param imageReference The image configuration for lab virtual machines.
         * 
         * @return builder
         * 
         */
        public Builder imageReference(Output imageReference) {
            $.imageReference = imageReference;
            return this;
        }

        /**
         * @param imageReference The image configuration for lab virtual machines.
         * 
         * @return builder
         * 
         */
        public Builder imageReference(ImageReferenceArgs imageReference) {
            return imageReference(Output.of(imageReference));
        }

        /**
         * @param nonAdminUser Credentials for the non-admin user on the VM, if one exists.
         * 
         * @return builder
         * 
         */
        public Builder nonAdminUser(@Nullable Output nonAdminUser) {
            $.nonAdminUser = nonAdminUser;
            return this;
        }

        /**
         * @param nonAdminUser Credentials for the non-admin user on the VM, if one exists.
         * 
         * @return builder
         * 
         */
        public Builder nonAdminUser(CredentialsArgs nonAdminUser) {
            return nonAdminUser(Output.of(nonAdminUser));
        }

        /**
         * @param sku The SKU for the lab. Defines the type of virtual machines used in the lab.
         * 
         * @return builder
         * 
         */
        public Builder sku(Output sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku The SKU for the lab. Defines the type of virtual machines used in the lab.
         * 
         * @return builder
         * 
         */
        public Builder sku(SkuArgs sku) {
            return sku(Output.of(sku));
        }

        /**
         * @param usageQuota The initial quota alloted to each lab user. Must be a time span between 0 and 9999 hours.
         * 
         * @return builder
         * 
         */
        public Builder usageQuota(Output usageQuota) {
            $.usageQuota = usageQuota;
            return this;
        }

        /**
         * @param usageQuota The initial quota alloted to each lab user. Must be a time span between 0 and 9999 hours.
         * 
         * @return builder
         * 
         */
        public Builder usageQuota(String usageQuota) {
            return usageQuota(Output.of(usageQuota));
        }

        /**
         * @param useSharedPassword Enabling this option will use the same password for all user VMs.
         * 
         * @return builder
         * 
         */
        public Builder useSharedPassword(@Nullable Output useSharedPassword) {
            $.useSharedPassword = useSharedPassword;
            return this;
        }

        /**
         * @param useSharedPassword Enabling this option will use the same password for all user VMs.
         * 
         * @return builder
         * 
         */
        public Builder useSharedPassword(EnableState useSharedPassword) {
            return useSharedPassword(Output.of(useSharedPassword));
        }

        public VirtualMachineProfileArgs build() {
            if ($.adminUser == null) {
                throw new MissingRequiredPropertyException("VirtualMachineProfileArgs", "adminUser");
            }
            if ($.createOption == null) {
                throw new MissingRequiredPropertyException("VirtualMachineProfileArgs", "createOption");
            }
            if ($.imageReference == null) {
                throw new MissingRequiredPropertyException("VirtualMachineProfileArgs", "imageReference");
            }
            if ($.sku == null) {
                throw new MissingRequiredPropertyException("VirtualMachineProfileArgs", "sku");
            }
            if ($.usageQuota == null) {
                throw new MissingRequiredPropertyException("VirtualMachineProfileArgs", "usageQuota");
            }
            $.useSharedPassword = Codegen.objectProp("useSharedPassword", EnableState.class).output().arg($.useSharedPassword).def(EnableState.Disabled).getNullable();
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy