Lab
The lab resource. Azure REST API version: 2022-08-01. Prior API version in Azure Native 1.x: 2018-10-15. Other available API versions: 2018-10-15, 2023-06-07.
Example Usage
putLab
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var lab = new AzureNative.LabServices.Lab("lab", new()
{
AutoShutdownProfile = 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,
},
ConnectionProfile = 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,
},
Description = "This is a test lab.",
LabName = "testlab",
LabPlanId = "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.LabServices/labPlans/testlabplan",
Location = "westus",
NetworkProfile = new AzureNative.LabServices.Inputs.LabNetworkProfileArgs
{
SubnetId = "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/default",
},
ResourceGroupName = "testrg123",
SecurityProfile = new AzureNative.LabServices.Inputs.SecurityProfileArgs
{
OpenAccess = AzureNative.LabServices.EnableState.Disabled,
},
Title = "Test Lab",
VirtualMachineProfile = new AzureNative.LabServices.Inputs.VirtualMachineProfileArgs
{
AdditionalCapabilities = new AzureNative.LabServices.Inputs.VirtualMachineAdditionalCapabilitiesArgs
{
InstallGpuDrivers = AzureNative.LabServices.EnableState.Disabled,
},
AdminUser = new AzureNative.LabServices.Inputs.CredentialsArgs
{
Username = "test-user",
},
CreateOption = AzureNative.LabServices.CreateOption.TemplateVM,
ImageReference = new AzureNative.LabServices.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "Microsoft",
Sku = "2019-Datacenter",
Version = "2019.0.20190410",
},
Sku = new AzureNative.LabServices.Inputs.SkuArgs
{
Name = "Medium",
},
UsageQuota = "PT10H",
UseSharedPassword = AzureNative.LabServices.EnableState.Disabled,
},
});
});
Content copied to clipboard
package main
import (
"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.NewLab(ctx, "lab", &labservices.LabArgs{
AutoShutdownProfile: &labservices.AutoShutdownProfileArgs{
DisconnectDelay: pulumi.String("PT5M"),
IdleDelay: pulumi.String("PT5M"),
NoConnectDelay: pulumi.String("PT5M"),
ShutdownOnDisconnect: labservices.EnableStateEnabled,
ShutdownOnIdle: labservices.ShutdownOnIdleModeUserAbsence,
ShutdownWhenNotConnected: labservices.EnableStateEnabled,
},
ConnectionProfile: &labservices.ConnectionProfileArgs{
ClientRdpAccess: labservices.ConnectionTypePublic,
ClientSshAccess: labservices.ConnectionTypePublic,
WebRdpAccess: labservices.ConnectionTypeNone,
WebSshAccess: labservices.ConnectionTypeNone,
},
Description: pulumi.String("This is a test lab."),
LabName: pulumi.String("testlab"),
LabPlanId: pulumi.String("/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.LabServices/labPlans/testlabplan"),
Location: pulumi.String("westus"),
NetworkProfile: &labservices.LabNetworkProfileArgs{
SubnetId: pulumi.String("/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/default"),
},
ResourceGroupName: pulumi.String("testrg123"),
SecurityProfile: &labservices.SecurityProfileArgs{
OpenAccess: labservices.EnableStateDisabled,
},
Title: pulumi.String("Test Lab"),
VirtualMachineProfile: labservices.VirtualMachineProfileResponse{
AdditionalCapabilities: &labservices.VirtualMachineAdditionalCapabilitiesArgs{
InstallGpuDrivers: labservices.EnableStateDisabled,
},
AdminUser: &labservices.CredentialsArgs{
Username: pulumi.String("test-user"),
},
CreateOption: labservices.CreateOptionTemplateVM,
ImageReference: &labservices.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("Microsoft"),
Sku: pulumi.String("2019-Datacenter"),
Version: pulumi.String("2019.0.20190410"),
},
Sku: &labservices.SkuArgs{
Name: pulumi.String("Medium"),
},
UsageQuota: pulumi.String("PT10H"),
UseSharedPassword: labservices.EnableStateDisabled,
},
})
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.labservices.Lab;
import com.pulumi.azurenative.labservices.LabArgs;
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 lab = new Lab("lab", LabArgs.builder()
.autoShutdownProfile(Map.ofEntries(
Map.entry("disconnectDelay", "PT5M"),
Map.entry("idleDelay", "PT5M"),
Map.entry("noConnectDelay", "PT5M"),
Map.entry("shutdownOnDisconnect", "Enabled"),
Map.entry("shutdownOnIdle", "UserAbsence"),
Map.entry("shutdownWhenNotConnected", "Enabled")
))
.connectionProfile(Map.ofEntries(
Map.entry("clientRdpAccess", "Public"),
Map.entry("clientSshAccess", "Public"),
Map.entry("webRdpAccess", "None"),
Map.entry("webSshAccess", "None")
))
.description("This is a test lab.")
.labName("testlab")
.labPlanId("/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.LabServices/labPlans/testlabplan")
.location("westus")
.networkProfile(Map.of("subnetId", "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/default"))
.resourceGroupName("testrg123")
.securityProfile(Map.of("openAccess", "Disabled"))
.title("Test Lab")
.virtualMachineProfile(Map.ofEntries(
Map.entry("additionalCapabilities", Map.of("installGpuDrivers", "Disabled")),
Map.entry("adminUser", Map.of("username", "test-user")),
Map.entry("createOption", "TemplateVM"),
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "WindowsServer"),
Map.entry("publisher", "Microsoft"),
Map.entry("sku", "2019-Datacenter"),
Map.entry("version", "2019.0.20190410")
)),
Map.entry("sku", Map.of("name", "Medium")),
Map.entry("usageQuota", "PT10H"),
Map.entry("useSharedPassword", "Disabled")
))
.build());
}
}
Content copied to clipboard
Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:labservices:Lab testlabplan /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labs/{labName}
Content copied to clipboard