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

com.pulumi.azurenative.labservices.LabPlanArgs 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.IdentityArgs;
import com.pulumi.azurenative.labservices.inputs.LabPlanNetworkProfileArgs;
import com.pulumi.azurenative.labservices.inputs.SupportInfoArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final LabPlanArgs Empty = new LabPlanArgs();

    /**
     * The allowed regions for the lab creator to use when creating labs using this lab plan.
     * 
     */
    @Import(name="allowedRegions")
    private @Nullable Output> allowedRegions;

    /**
     * @return The allowed regions for the lab creator to use when creating labs using this lab plan.
     * 
     */
    public Optional>> allowedRegions() {
        return Optional.ofNullable(this.allowedRegions);
    }

    /**
     * The default lab shutdown profile. This can be changed on a lab resource and only provides a default profile.
     * 
     */
    @Import(name="defaultAutoShutdownProfile")
    private @Nullable Output defaultAutoShutdownProfile;

    /**
     * @return The default lab shutdown profile. This can be changed on a lab resource and only provides a default profile.
     * 
     */
    public Optional> defaultAutoShutdownProfile() {
        return Optional.ofNullable(this.defaultAutoShutdownProfile);
    }

    /**
     * The default lab connection profile. This can be changed on a lab resource and only provides a default profile.
     * 
     */
    @Import(name="defaultConnectionProfile")
    private @Nullable Output defaultConnectionProfile;

    /**
     * @return The default lab connection profile. This can be changed on a lab resource and only provides a default profile.
     * 
     */
    public Optional> defaultConnectionProfile() {
        return Optional.ofNullable(this.defaultConnectionProfile);
    }

    /**
     * The lab plan network profile. To enforce lab network policies they must be defined here and cannot be changed when there are existing labs associated with this lab plan.
     * 
     */
    @Import(name="defaultNetworkProfile")
    private @Nullable Output defaultNetworkProfile;

    /**
     * @return The lab plan network profile. To enforce lab network policies they must be defined here and cannot be changed when there are existing labs associated with this lab plan.
     * 
     */
    public Optional> defaultNetworkProfile() {
        return Optional.ofNullable(this.defaultNetworkProfile);
    }

    /**
     * Managed Identity Information
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

    /**
     * @return Managed Identity Information
     * 
     */
    public Optional> identity() {
        return Optional.ofNullable(this.identity);
    }

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

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

    /**
     * Base Url of the lms instance this lab plan can link lab rosters against.
     * 
     */
    @Import(name="linkedLmsInstance")
    private @Nullable Output linkedLmsInstance;

    /**
     * @return Base Url of the lms instance this lab plan can link lab rosters against.
     * 
     */
    public Optional> linkedLmsInstance() {
        return Optional.ofNullable(this.linkedLmsInstance);
    }

    /**
     * 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 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;
    }

    /**
     * Resource ID of the Shared Image Gallery attached to this lab plan. When saving a lab template virtual machine image it will be persisted in this gallery. Shared images from the gallery can be made available to use when creating new labs.
     * 
     */
    @Import(name="sharedGalleryId")
    private @Nullable Output sharedGalleryId;

    /**
     * @return Resource ID of the Shared Image Gallery attached to this lab plan. When saving a lab template virtual machine image it will be persisted in this gallery. Shared images from the gallery can be made available to use when creating new labs.
     * 
     */
    public Optional> sharedGalleryId() {
        return Optional.ofNullable(this.sharedGalleryId);
    }

    /**
     * Support contact information and instructions for users of the lab plan. This information is displayed to lab owners and virtual machine users for all labs in the lab plan.
     * 
     */
    @Import(name="supportInfo")
    private @Nullable Output supportInfo;

    /**
     * @return Support contact information and instructions for users of the lab plan. This information is displayed to lab owners and virtual machine users for all labs in the lab plan.
     * 
     */
    public Optional> supportInfo() {
        return Optional.ofNullable(this.supportInfo);
    }

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

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

    private LabPlanArgs() {}

    private LabPlanArgs(LabPlanArgs $) {
        this.allowedRegions = $.allowedRegions;
        this.defaultAutoShutdownProfile = $.defaultAutoShutdownProfile;
        this.defaultConnectionProfile = $.defaultConnectionProfile;
        this.defaultNetworkProfile = $.defaultNetworkProfile;
        this.identity = $.identity;
        this.labPlanName = $.labPlanName;
        this.linkedLmsInstance = $.linkedLmsInstance;
        this.location = $.location;
        this.resourceGroupName = $.resourceGroupName;
        this.sharedGalleryId = $.sharedGalleryId;
        this.supportInfo = $.supportInfo;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private LabPlanArgs $;

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

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

        /**
         * @param allowedRegions The allowed regions for the lab creator to use when creating labs using this lab plan.
         * 
         * @return builder
         * 
         */
        public Builder allowedRegions(@Nullable Output> allowedRegions) {
            $.allowedRegions = allowedRegions;
            return this;
        }

        /**
         * @param allowedRegions The allowed regions for the lab creator to use when creating labs using this lab plan.
         * 
         * @return builder
         * 
         */
        public Builder allowedRegions(List allowedRegions) {
            return allowedRegions(Output.of(allowedRegions));
        }

        /**
         * @param allowedRegions The allowed regions for the lab creator to use when creating labs using this lab plan.
         * 
         * @return builder
         * 
         */
        public Builder allowedRegions(String... allowedRegions) {
            return allowedRegions(List.of(allowedRegions));
        }

        /**
         * @param defaultAutoShutdownProfile The default lab shutdown profile. This can be changed on a lab resource and only provides a default profile.
         * 
         * @return builder
         * 
         */
        public Builder defaultAutoShutdownProfile(@Nullable Output defaultAutoShutdownProfile) {
            $.defaultAutoShutdownProfile = defaultAutoShutdownProfile;
            return this;
        }

        /**
         * @param defaultAutoShutdownProfile The default lab shutdown profile. This can be changed on a lab resource and only provides a default profile.
         * 
         * @return builder
         * 
         */
        public Builder defaultAutoShutdownProfile(AutoShutdownProfileArgs defaultAutoShutdownProfile) {
            return defaultAutoShutdownProfile(Output.of(defaultAutoShutdownProfile));
        }

        /**
         * @param defaultConnectionProfile The default lab connection profile. This can be changed on a lab resource and only provides a default profile.
         * 
         * @return builder
         * 
         */
        public Builder defaultConnectionProfile(@Nullable Output defaultConnectionProfile) {
            $.defaultConnectionProfile = defaultConnectionProfile;
            return this;
        }

        /**
         * @param defaultConnectionProfile The default lab connection profile. This can be changed on a lab resource and only provides a default profile.
         * 
         * @return builder
         * 
         */
        public Builder defaultConnectionProfile(ConnectionProfileArgs defaultConnectionProfile) {
            return defaultConnectionProfile(Output.of(defaultConnectionProfile));
        }

        /**
         * @param defaultNetworkProfile The lab plan network profile. To enforce lab network policies they must be defined here and cannot be changed when there are existing labs associated with this lab plan.
         * 
         * @return builder
         * 
         */
        public Builder defaultNetworkProfile(@Nullable Output defaultNetworkProfile) {
            $.defaultNetworkProfile = defaultNetworkProfile;
            return this;
        }

        /**
         * @param defaultNetworkProfile The lab plan network profile. To enforce lab network policies they must be defined here and cannot be changed when there are existing labs associated with this lab plan.
         * 
         * @return builder
         * 
         */
        public Builder defaultNetworkProfile(LabPlanNetworkProfileArgs defaultNetworkProfile) {
            return defaultNetworkProfile(Output.of(defaultNetworkProfile));
        }

        /**
         * @param identity Managed Identity Information
         * 
         * @return builder
         * 
         */
        public Builder identity(@Nullable Output identity) {
            $.identity = identity;
            return this;
        }

        /**
         * @param identity Managed Identity Information
         * 
         * @return builder
         * 
         */
        public Builder identity(IdentityArgs identity) {
            return identity(Output.of(identity));
        }

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

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

        /**
         * @param linkedLmsInstance Base Url of the lms instance this lab plan can link lab rosters against.
         * 
         * @return builder
         * 
         */
        public Builder linkedLmsInstance(@Nullable Output linkedLmsInstance) {
            $.linkedLmsInstance = linkedLmsInstance;
            return this;
        }

        /**
         * @param linkedLmsInstance Base Url of the lms instance this lab plan can link lab rosters against.
         * 
         * @return builder
         * 
         */
        public Builder linkedLmsInstance(String linkedLmsInstance) {
            return linkedLmsInstance(Output.of(linkedLmsInstance));
        }

        /**
         * @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 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 sharedGalleryId Resource ID of the Shared Image Gallery attached to this lab plan. When saving a lab template virtual machine image it will be persisted in this gallery. Shared images from the gallery can be made available to use when creating new labs.
         * 
         * @return builder
         * 
         */
        public Builder sharedGalleryId(@Nullable Output sharedGalleryId) {
            $.sharedGalleryId = sharedGalleryId;
            return this;
        }

        /**
         * @param sharedGalleryId Resource ID of the Shared Image Gallery attached to this lab plan. When saving a lab template virtual machine image it will be persisted in this gallery. Shared images from the gallery can be made available to use when creating new labs.
         * 
         * @return builder
         * 
         */
        public Builder sharedGalleryId(String sharedGalleryId) {
            return sharedGalleryId(Output.of(sharedGalleryId));
        }

        /**
         * @param supportInfo Support contact information and instructions for users of the lab plan. This information is displayed to lab owners and virtual machine users for all labs in the lab plan.
         * 
         * @return builder
         * 
         */
        public Builder supportInfo(@Nullable Output supportInfo) {
            $.supportInfo = supportInfo;
            return this;
        }

        /**
         * @param supportInfo Support contact information and instructions for users of the lab plan. This information is displayed to lab owners and virtual machine users for all labs in the lab plan.
         * 
         * @return builder
         * 
         */
        public Builder supportInfo(SupportInfoArgs supportInfo) {
            return supportInfo(Output.of(supportInfo));
        }

        /**
         * @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));
        }

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

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy