Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.azurenative.labservices.kotlin
import com.pulumi.azurenative.labservices.LabPlanArgs.builder
import com.pulumi.azurenative.labservices.kotlin.inputs.AutoShutdownProfileArgs
import com.pulumi.azurenative.labservices.kotlin.inputs.AutoShutdownProfileArgsBuilder
import com.pulumi.azurenative.labservices.kotlin.inputs.ConnectionProfileArgs
import com.pulumi.azurenative.labservices.kotlin.inputs.ConnectionProfileArgsBuilder
import com.pulumi.azurenative.labservices.kotlin.inputs.IdentityArgs
import com.pulumi.azurenative.labservices.kotlin.inputs.IdentityArgsBuilder
import com.pulumi.azurenative.labservices.kotlin.inputs.LabPlanNetworkProfileArgs
import com.pulumi.azurenative.labservices.kotlin.inputs.LabPlanNetworkProfileArgsBuilder
import com.pulumi.azurenative.labservices.kotlin.inputs.SupportInfoArgs
import com.pulumi.azurenative.labservices.kotlin.inputs.SupportInfoArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName
/**
* Lab Plans act as a permission container for creating labs via labs.azure.com. Additionally, they can provide a set of default configurations that will apply at the time of creating a lab, but these defaults can still be overwritten.
* Azure REST API version: 2022-08-01. Prior API version in Azure Native 1.x: 2021-10-01-preview.
* Other available API versions: 2023-06-07.
* ## Example Usage
* ### putLabPlan
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using AzureNative = Pulumi.AzureNative;
* return await Deployment.RunAsync(() =>
* {
* var labPlan = new AzureNative.LabServices.LabPlan("labPlan", new()
* {
* DefaultAutoShutdownProfile = new AzureNative.LabServices.Inputs.AutoShutdownProfileArgs
* {
* DisconnectDelay = "PT5M",
* IdleDelay = "PT5M",
* NoConnectDelay = "PT5M",
* ShutdownOnDisconnect = AzureNative.LabServices.EnableState.Enabled,
* ShutdownOnIdle = AzureNative.LabServices.ShutdownOnIdleMode.UserAbsence,
* ShutdownWhenNotConnected = AzureNative.LabServices.EnableState.Enabled,
* },
* DefaultConnectionProfile = new AzureNative.LabServices.Inputs.ConnectionProfileArgs
* {
* ClientRdpAccess = AzureNative.LabServices.ConnectionType.Public,
* ClientSshAccess = AzureNative.LabServices.ConnectionType.Public,
* WebRdpAccess = AzureNative.LabServices.ConnectionType.None,
* WebSshAccess = AzureNative.LabServices.ConnectionType.None,
* },
* DefaultNetworkProfile = new AzureNative.LabServices.Inputs.LabPlanNetworkProfileArgs
* {
* SubnetId = "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/default",
* },
* LabPlanName = "testlabplan",
* Location = "westus",
* ResourceGroupName = "testrg123",
* SharedGalleryId = "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Compute/galleries/testsig",
* SupportInfo = new AzureNative.LabServices.Inputs.SupportInfoArgs
* {
* Email = "[email protected]",
* Instructions = "Contact support for help.",
* Phone = "+1-202-555-0123",
* Url = "help.contoso.com",
* },
* });
* });
* ```
* ```go
* package main
* import (
* labservices "github.com/pulumi/pulumi-azure-native-sdk/labservices/v2"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := labservices.NewLabPlan(ctx, "labPlan", &labservices.LabPlanArgs{
* DefaultAutoShutdownProfile: &labservices.AutoShutdownProfileArgs{
* DisconnectDelay: pulumi.String("PT5M"),
* IdleDelay: pulumi.String("PT5M"),
* NoConnectDelay: pulumi.String("PT5M"),
* ShutdownOnDisconnect: labservices.EnableStateEnabled,
* ShutdownOnIdle: labservices.ShutdownOnIdleModeUserAbsence,
* ShutdownWhenNotConnected: labservices.EnableStateEnabled,
* },
* DefaultConnectionProfile: &labservices.ConnectionProfileArgs{
* ClientRdpAccess: labservices.ConnectionTypePublic,
* ClientSshAccess: labservices.ConnectionTypePublic,
* WebRdpAccess: labservices.ConnectionTypeNone,
* WebSshAccess: labservices.ConnectionTypeNone,
* },
* DefaultNetworkProfile: &labservices.LabPlanNetworkProfileArgs{
* SubnetId: pulumi.String("/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/default"),
* },
* LabPlanName: pulumi.String("testlabplan"),
* Location: pulumi.String("westus"),
* ResourceGroupName: pulumi.String("testrg123"),
* SharedGalleryId: pulumi.String("/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Compute/galleries/testsig"),
* SupportInfo: &labservices.SupportInfoArgs{
* Email: pulumi.String("[email protected]"),
* Instructions: pulumi.String("Contact support for help."),
* Phone: pulumi.String("+1-202-555-0123"),
* Url: pulumi.String("help.contoso.com"),
* },
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.azurenative.labservices.LabPlan;
* import com.pulumi.azurenative.labservices.LabPlanArgs;
* import com.pulumi.azurenative.labservices.inputs.AutoShutdownProfileArgs;
* import com.pulumi.azurenative.labservices.inputs.ConnectionProfileArgs;
* import com.pulumi.azurenative.labservices.inputs.LabPlanNetworkProfileArgs;
* import com.pulumi.azurenative.labservices.inputs.SupportInfoArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var labPlan = new LabPlan("labPlan", LabPlanArgs.builder()
* .defaultAutoShutdownProfile(AutoShutdownProfileArgs.builder()
* .disconnectDelay("PT5M")
* .idleDelay("PT5M")
* .noConnectDelay("PT5M")
* .shutdownOnDisconnect("Enabled")
* .shutdownOnIdle("UserAbsence")
* .shutdownWhenNotConnected("Enabled")
* .build())
* .defaultConnectionProfile(ConnectionProfileArgs.builder()
* .clientRdpAccess("Public")
* .clientSshAccess("Public")
* .webRdpAccess("None")
* .webSshAccess("None")
* .build())
* .defaultNetworkProfile(LabPlanNetworkProfileArgs.builder()
* .subnetId("/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/default")
* .build())
* .labPlanName("testlabplan")
* .location("westus")
* .resourceGroupName("testrg123")
* .sharedGalleryId("/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Compute/galleries/testsig")
* .supportInfo(SupportInfoArgs.builder()
* .email("[email protected]")
* .instructions("Contact support for help.")
* .phone("+1-202-555-0123")
* .url("help.contoso.com")
* .build())
* .build());
* }
* }
* ```
* ## Import
* An existing resource can be imported using its type token, name, and identifier, e.g.
* ```sh
* $ pulumi import azure-native:labservices:LabPlan testlabplan /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labPlans/{labPlanName}
* ```
* @property allowedRegions The allowed regions for the lab creator to use when creating labs using this lab plan.
* @property defaultAutoShutdownProfile The default lab shutdown profile. This can be changed on a lab resource and only provides a default profile.
* @property defaultConnectionProfile The default lab connection profile. This can be changed on a lab resource and only provides a default profile.
* @property 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.
* @property identity Managed Identity Information
* @property labPlanName The name of the lab plan that uniquely identifies it within containing resource group. Used in resource URIs and in UI.
* @property linkedLmsInstance Base Url of the lms instance this lab plan can link lab rosters against.
* @property location The geo-location where the resource lives
* @property resourceGroupName The name of the resource group. The name is case insensitive.
* @property 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.
* @property 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.
* @property tags Resource tags.
*/
public data class LabPlanArgs(
public val allowedRegions: Output>? = null,
public val defaultAutoShutdownProfile: Output? = null,
public val defaultConnectionProfile: Output? = null,
public val defaultNetworkProfile: Output? = null,
public val identity: Output? = null,
public val labPlanName: Output? = null,
public val linkedLmsInstance: Output? = null,
public val location: Output? = null,
public val resourceGroupName: Output? = null,
public val sharedGalleryId: Output? = null,
public val supportInfo: Output? = null,
public val tags: Output