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

com.pulumi.azurenative.labservices.LabArgs Maven / Gradle / Ivy

There is a newer version: 2.82.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.labservices;

import com.pulumi.azurenative.labservices.inputs.AutoShutdownProfileArgs;
import com.pulumi.azurenative.labservices.inputs.ConnectionProfileArgs;
import com.pulumi.azurenative.labservices.inputs.LabNetworkProfileArgs;
import com.pulumi.azurenative.labservices.inputs.RosterProfileArgs;
import com.pulumi.azurenative.labservices.inputs.SecurityProfileArgs;
import com.pulumi.azurenative.labservices.inputs.VirtualMachineProfileArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class LabArgs extends com.pulumi.resources.ResourceArgs {

    public static final LabArgs Empty = new LabArgs();

    /**
     * The resource auto shutdown configuration for the lab. This controls whether actions are taken on resources that are sitting idle.
     * 
     */
    @Import(name="autoShutdownProfile", required=true)
    private Output autoShutdownProfile;

    /**
     * @return The resource auto shutdown configuration for the lab. This controls whether actions are taken on resources that are sitting idle.
     * 
     */
    public Output autoShutdownProfile() {
        return this.autoShutdownProfile;
    }

    /**
     * The connection profile for the lab. This controls settings such as web access to lab resources or whether RDP or SSH ports are open.
     * 
     */
    @Import(name="connectionProfile", required=true)
    private Output connectionProfile;

    /**
     * @return The connection profile for the lab. This controls settings such as web access to lab resources or whether RDP or SSH ports are open.
     * 
     */
    public Output connectionProfile() {
        return this.connectionProfile;
    }

    /**
     * The description of the lab.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return The description of the lab.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * The name of the lab that uniquely identifies it within containing lab plan. Used in resource URIs.
     * 
     */
    @Import(name="labName")
    private @Nullable Output labName;

    /**
     * @return The name of the lab that uniquely identifies it within containing lab plan. Used in resource URIs.
     * 
     */
    public Optional> labName() {
        return Optional.ofNullable(this.labName);
    }

    /**
     * The ID of the lab plan. Used during resource creation to provide defaults and acts as a permission container when creating a lab via labs.azure.com. Setting a labPlanId on an existing lab provides organization..
     * 
     */
    @Import(name="labPlanId")
    private @Nullable Output labPlanId;

    /**
     * @return The ID of the lab plan. Used during resource creation to provide defaults and acts as a permission container when creating a lab via labs.azure.com. Setting a labPlanId on an existing lab provides organization..
     * 
     */
    public Optional> labPlanId() {
        return Optional.ofNullable(this.labPlanId);
    }

    /**
     * The geo-location where the resource lives
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The geo-location where the resource lives
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * The network profile for the lab, typically applied via a lab plan. This profile cannot be modified once a lab has been created.
     * 
     */
    @Import(name="networkProfile")
    private @Nullable Output networkProfile;

    /**
     * @return The network profile for the lab, typically applied via a lab plan. This profile cannot be modified once a lab has been created.
     * 
     */
    public Optional> networkProfile() {
        return Optional.ofNullable(this.networkProfile);
    }

    /**
     * The name of the resource group. The name is case insensitive.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group. The name is case insensitive.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * The lab user list management profile.
     * 
     */
    @Import(name="rosterProfile")
    private @Nullable Output rosterProfile;

    /**
     * @return The lab user list management profile.
     * 
     */
    public Optional> rosterProfile() {
        return Optional.ofNullable(this.rosterProfile);
    }

    /**
     * The lab security profile.
     * 
     */
    @Import(name="securityProfile", required=true)
    private Output securityProfile;

    /**
     * @return The lab security profile.
     * 
     */
    public Output securityProfile() {
        return this.securityProfile;
    }

    /**
     * Resource tags.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Resource tags.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * The title of the lab.
     * 
     */
    @Import(name="title")
    private @Nullable Output title;

    /**
     * @return The title of the lab.
     * 
     */
    public Optional> title() {
        return Optional.ofNullable(this.title);
    }

    /**
     * The profile used for creating lab virtual machines.
     * 
     */
    @Import(name="virtualMachineProfile", required=true)
    private Output virtualMachineProfile;

    /**
     * @return The profile used for creating lab virtual machines.
     * 
     */
    public Output virtualMachineProfile() {
        return this.virtualMachineProfile;
    }

    private LabArgs() {}

    private LabArgs(LabArgs $) {
        this.autoShutdownProfile = $.autoShutdownProfile;
        this.connectionProfile = $.connectionProfile;
        this.description = $.description;
        this.labName = $.labName;
        this.labPlanId = $.labPlanId;
        this.location = $.location;
        this.networkProfile = $.networkProfile;
        this.resourceGroupName = $.resourceGroupName;
        this.rosterProfile = $.rosterProfile;
        this.securityProfile = $.securityProfile;
        this.tags = $.tags;
        this.title = $.title;
        this.virtualMachineProfile = $.virtualMachineProfile;
    }

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

    public static final class Builder {
        private LabArgs $;

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

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

        /**
         * @param autoShutdownProfile The resource auto shutdown configuration for the lab. This controls whether actions are taken on resources that are sitting idle.
         * 
         * @return builder
         * 
         */
        public Builder autoShutdownProfile(Output autoShutdownProfile) {
            $.autoShutdownProfile = autoShutdownProfile;
            return this;
        }

        /**
         * @param autoShutdownProfile The resource auto shutdown configuration for the lab. This controls whether actions are taken on resources that are sitting idle.
         * 
         * @return builder
         * 
         */
        public Builder autoShutdownProfile(AutoShutdownProfileArgs autoShutdownProfile) {
            return autoShutdownProfile(Output.of(autoShutdownProfile));
        }

        /**
         * @param connectionProfile The connection profile for the lab. This controls settings such as web access to lab resources or whether RDP or SSH ports are open.
         * 
         * @return builder
         * 
         */
        public Builder connectionProfile(Output connectionProfile) {
            $.connectionProfile = connectionProfile;
            return this;
        }

        /**
         * @param connectionProfile The connection profile for the lab. This controls settings such as web access to lab resources or whether RDP or SSH ports are open.
         * 
         * @return builder
         * 
         */
        public Builder connectionProfile(ConnectionProfileArgs connectionProfile) {
            return connectionProfile(Output.of(connectionProfile));
        }

        /**
         * @param description The description of the lab.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description The description of the lab.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param labName The name of the lab that uniquely identifies it within containing lab plan. Used in resource URIs.
         * 
         * @return builder
         * 
         */
        public Builder labName(@Nullable Output labName) {
            $.labName = labName;
            return this;
        }

        /**
         * @param labName The name of the lab that uniquely identifies it within containing lab plan. Used in resource URIs.
         * 
         * @return builder
         * 
         */
        public Builder labName(String labName) {
            return labName(Output.of(labName));
        }

        /**
         * @param labPlanId The ID of the lab plan. Used during resource creation to provide defaults and acts as a permission container when creating a lab via labs.azure.com. Setting a labPlanId on an existing lab provides organization..
         * 
         * @return builder
         * 
         */
        public Builder labPlanId(@Nullable Output labPlanId) {
            $.labPlanId = labPlanId;
            return this;
        }

        /**
         * @param labPlanId The ID of the lab plan. Used during resource creation to provide defaults and acts as a permission container when creating a lab via labs.azure.com. Setting a labPlanId on an existing lab provides organization..
         * 
         * @return builder
         * 
         */
        public Builder labPlanId(String labPlanId) {
            return labPlanId(Output.of(labPlanId));
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param networkProfile The network profile for the lab, typically applied via a lab plan. This profile cannot be modified once a lab has been created.
         * 
         * @return builder
         * 
         */
        public Builder networkProfile(@Nullable Output networkProfile) {
            $.networkProfile = networkProfile;
            return this;
        }

        /**
         * @param networkProfile The network profile for the lab, typically applied via a lab plan. This profile cannot be modified once a lab has been created.
         * 
         * @return builder
         * 
         */
        public Builder networkProfile(LabNetworkProfileArgs networkProfile) {
            return networkProfile(Output.of(networkProfile));
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param rosterProfile The lab user list management profile.
         * 
         * @return builder
         * 
         */
        public Builder rosterProfile(@Nullable Output rosterProfile) {
            $.rosterProfile = rosterProfile;
            return this;
        }

        /**
         * @param rosterProfile The lab user list management profile.
         * 
         * @return builder
         * 
         */
        public Builder rosterProfile(RosterProfileArgs rosterProfile) {
            return rosterProfile(Output.of(rosterProfile));
        }

        /**
         * @param securityProfile The lab security profile.
         * 
         * @return builder
         * 
         */
        public Builder securityProfile(Output securityProfile) {
            $.securityProfile = securityProfile;
            return this;
        }

        /**
         * @param securityProfile The lab security profile.
         * 
         * @return builder
         * 
         */
        public Builder securityProfile(SecurityProfileArgs securityProfile) {
            return securityProfile(Output.of(securityProfile));
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param title The title of the lab.
         * 
         * @return builder
         * 
         */
        public Builder title(@Nullable Output title) {
            $.title = title;
            return this;
        }

        /**
         * @param title The title of the lab.
         * 
         * @return builder
         * 
         */
        public Builder title(String title) {
            return title(Output.of(title));
        }

        /**
         * @param virtualMachineProfile The profile used for creating lab virtual machines.
         * 
         * @return builder
         * 
         */
        public Builder virtualMachineProfile(Output virtualMachineProfile) {
            $.virtualMachineProfile = virtualMachineProfile;
            return this;
        }

        /**
         * @param virtualMachineProfile The profile used for creating lab virtual machines.
         * 
         * @return builder
         * 
         */
        public Builder virtualMachineProfile(VirtualMachineProfileArgs virtualMachineProfile) {
            return virtualMachineProfile(Output.of(virtualMachineProfile));
        }

        public LabArgs build() {
            if ($.autoShutdownProfile == null) {
                throw new MissingRequiredPropertyException("LabArgs", "autoShutdownProfile");
            }
            if ($.connectionProfile == null) {
                throw new MissingRequiredPropertyException("LabArgs", "connectionProfile");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("LabArgs", "resourceGroupName");
            }
            if ($.securityProfile == null) {
                throw new MissingRequiredPropertyException("LabArgs", "securityProfile");
            }
            if ($.virtualMachineProfile == null) {
                throw new MissingRequiredPropertyException("LabArgs", "virtualMachineProfile");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy