HostPoolArgs

data class HostPoolArgs(val customRdpProperties: Output<String>? = null, val description: Output<String>? = null, val friendlyName: Output<String>? = null, val loadBalancerType: Output<String>? = null, val location: Output<String>? = null, val maximumSessionsAllowed: Output<Int>? = null, val name: Output<String>? = null, val personalDesktopAssignmentType: Output<String>? = null, val preferredAppGroupType: Output<String>? = null, val publicNetworkAccess: Output<String>? = null, val resourceGroupName: Output<String>? = null, val scheduledAgentUpdates: Output<HostPoolScheduledAgentUpdatesArgs>? = null, val startVmOnConnect: Output<Boolean>? = null, val tags: Output<Map<String, String>>? = null, val type: Output<String>? = null, val validateEnvironment: Output<Boolean>? = null, val vmTemplate: Output<String>? = null) : ConvertibleToJava<HostPoolArgs>

Manages a Virtual Desktop Host Pool.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "example-resources",
location: "West Europe",
});
const exampleHostPool = new azure.desktopvirtualization.HostPool("example", {
location: example.location,
resourceGroupName: example.name,
name: "pooleddepthfirst",
friendlyName: "pooleddepthfirst",
validateEnvironment: true,
startVmOnConnect: true,
customRdpProperties: "audiocapturemode:i:1;audiomode:i:0;",
description: "Acceptance Test: A pooled host pool - pooleddepthfirst",
type: "Pooled",
maximumSessionsAllowed: 50,
loadBalancerType: "DepthFirst",
scheduledAgentUpdates: {
enabled: true,
schedules: [{
dayOfWeek: "Saturday",
hourOfDay: 2,
}],
},
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_host_pool = azure.desktopvirtualization.HostPool("example",
location=example.location,
resource_group_name=example.name,
name="pooleddepthfirst",
friendly_name="pooleddepthfirst",
validate_environment=True,
start_vm_on_connect=True,
custom_rdp_properties="audiocapturemode:i:1;audiomode:i:0;",
description="Acceptance Test: A pooled host pool - pooleddepthfirst",
type="Pooled",
maximum_sessions_allowed=50,
load_balancer_type="DepthFirst",
scheduled_agent_updates={
"enabled": True,
"schedules": [{
"day_of_week": "Saturday",
"hour_of_day": 2,
}],
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
return await Deployment.RunAsync(() =>
{
var example = new Azure.Core.ResourceGroup("example", new()
{
Name = "example-resources",
Location = "West Europe",
});
var exampleHostPool = new Azure.DesktopVirtualization.HostPool("example", new()
{
Location = example.Location,
ResourceGroupName = example.Name,
Name = "pooleddepthfirst",
FriendlyName = "pooleddepthfirst",
ValidateEnvironment = true,
StartVmOnConnect = true,
CustomRdpProperties = "audiocapturemode:i:1;audiomode:i:0;",
Description = "Acceptance Test: A pooled host pool - pooleddepthfirst",
Type = "Pooled",
MaximumSessionsAllowed = 50,
LoadBalancerType = "DepthFirst",
ScheduledAgentUpdates = new Azure.DesktopVirtualization.Inputs.HostPoolScheduledAgentUpdatesArgs
{
Enabled = true,
Schedules = new[]
{
new Azure.DesktopVirtualization.Inputs.HostPoolScheduledAgentUpdatesScheduleArgs
{
DayOfWeek = "Saturday",
HourOfDay = 2,
},
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/desktopvirtualization"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("example-resources"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
_, err = desktopvirtualization.NewHostPool(ctx, "example", &desktopvirtualization.HostPoolArgs{
Location: example.Location,
ResourceGroupName: example.Name,
Name: pulumi.String("pooleddepthfirst"),
FriendlyName: pulumi.String("pooleddepthfirst"),
ValidateEnvironment: pulumi.Bool(true),
StartVmOnConnect: pulumi.Bool(true),
CustomRdpProperties: pulumi.String("audiocapturemode:i:1;audiomode:i:0;"),
Description: pulumi.String("Acceptance Test: A pooled host pool - pooleddepthfirst"),
Type: pulumi.String("Pooled"),
MaximumSessionsAllowed: pulumi.Int(50),
LoadBalancerType: pulumi.String("DepthFirst"),
ScheduledAgentUpdates: &desktopvirtualization.HostPoolScheduledAgentUpdatesArgs{
Enabled: pulumi.Bool(true),
Schedules: desktopvirtualization.HostPoolScheduledAgentUpdatesScheduleArray{
&desktopvirtualization.HostPoolScheduledAgentUpdatesScheduleArgs{
DayOfWeek: pulumi.String("Saturday"),
HourOfDay: pulumi.Int(2),
},
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.desktopvirtualization.HostPool;
import com.pulumi.azure.desktopvirtualization.HostPoolArgs;
import com.pulumi.azure.desktopvirtualization.inputs.HostPoolScheduledAgentUpdatesArgs;
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 example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("example-resources")
.location("West Europe")
.build());
var exampleHostPool = new HostPool("exampleHostPool", HostPoolArgs.builder()
.location(example.location())
.resourceGroupName(example.name())
.name("pooleddepthfirst")
.friendlyName("pooleddepthfirst")
.validateEnvironment(true)
.startVmOnConnect(true)
.customRdpProperties("audiocapturemode:i:1;audiomode:i:0;")
.description("Acceptance Test: A pooled host pool - pooleddepthfirst")
.type("Pooled")
.maximumSessionsAllowed(50)
.loadBalancerType("DepthFirst")
.scheduledAgentUpdates(HostPoolScheduledAgentUpdatesArgs.builder()
.enabled(true)
.schedules(HostPoolScheduledAgentUpdatesScheduleArgs.builder()
.dayOfWeek("Saturday")
.hourOfDay(2)
.build())
.build())
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: example-resources
location: West Europe
exampleHostPool:
type: azure:desktopvirtualization:HostPool
name: example
properties:
location: ${example.location}
resourceGroupName: ${example.name}
name: pooleddepthfirst
friendlyName: pooleddepthfirst
validateEnvironment: true
startVmOnConnect: true
customRdpProperties: audiocapturemode:i:1;audiomode:i:0;
description: 'Acceptance Test: A pooled host pool - pooleddepthfirst'
type: Pooled
maximumSessionsAllowed: 50
loadBalancerType: DepthFirst
scheduledAgentUpdates:
enabled: true
schedules:
- dayOfWeek: Saturday
hourOfDay: 2

API Providers

This resource uses the following Azure API Providers:

  • Microsoft.DesktopVirtualization: 2024-04-03

Import

Virtual Desktop Host Pools can be imported using the resource id, e.g. text

$ pulumi import azure:desktopvirtualization/hostPool:HostPool example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myGroup1/providers/Microsoft.DesktopVirtualization/hostPools/myhostpool

Constructors

Link copied to clipboard
constructor(customRdpProperties: Output<String>? = null, description: Output<String>? = null, friendlyName: Output<String>? = null, loadBalancerType: Output<String>? = null, location: Output<String>? = null, maximumSessionsAllowed: Output<Int>? = null, name: Output<String>? = null, personalDesktopAssignmentType: Output<String>? = null, preferredAppGroupType: Output<String>? = null, publicNetworkAccess: Output<String>? = null, resourceGroupName: Output<String>? = null, scheduledAgentUpdates: Output<HostPoolScheduledAgentUpdatesArgs>? = null, startVmOnConnect: Output<Boolean>? = null, tags: Output<Map<String, String>>? = null, type: Output<String>? = null, validateEnvironment: Output<Boolean>? = null, vmTemplate: Output<String>? = null)

Properties

Link copied to clipboard
val customRdpProperties: Output<String>? = null

A valid custom RDP properties string for the Virtual Desktop Host Pool, available properties can be found in this article.

Link copied to clipboard
val description: Output<String>? = null

A description for the Virtual Desktop Host Pool.

Link copied to clipboard
val friendlyName: Output<String>? = null

A friendly name for the Virtual Desktop Host Pool.

Link copied to clipboard
val loadBalancerType: Output<String>? = null

BreadthFirst load balancing distributes new user sessions across all available session hosts in the host pool. Possible values are BreadthFirst, DepthFirst and Persistent. DepthFirst load balancing distributes new user sessions to an available session host with the highest number of connections but has not reached its maximum session limit threshold. Persistent should be used if the host pool type is Personal

Link copied to clipboard
val location: Output<String>? = null

The location/region where the Virtual Desktop Host Pool is located. Changing this forces a new resource to be created.

Link copied to clipboard
val maximumSessionsAllowed: Output<Int>? = null

A valid integer value from 0 to 999999 for the maximum number of users that have concurrent sessions on a session host. Should only be set if the type of your Virtual Desktop Host Pool is Pooled.

Link copied to clipboard
val name: Output<String>? = null

The name of the Virtual Desktop Host Pool. Changing this forces a new resource to be created.

Link copied to clipboard

Automatic assignment – The service will select an available host and assign it to an user. Possible values are Automatic and Direct. Direct Assignment – Admin selects a specific host to assign to an user. Changing this forces a new resource to be created.

Link copied to clipboard
val preferredAppGroupType: Output<String>? = null

Option to specify the preferred Application Group type for the Virtual Desktop Host Pool. Valid options are None, Desktop or RailApplications. Default is Desktop.

Link copied to clipboard
val publicNetworkAccess: Output<String>? = null

Whether public network access is allowed for the Virtual Desktop Host Pool. Possible values are Enabled, Disabled, EnabledForClientsOnly and EnabledForSessionHostsOnly. Defaults to Enabled.

Link copied to clipboard
val resourceGroupName: Output<String>? = null

The name of the resource group in which to create the Virtual Desktop Host Pool. Changing this forces a new resource to be created.

Link copied to clipboard

A scheduled_agent_updates block as defined below. This enables control of when Agent Updates will be applied to Session Hosts.

Link copied to clipboard
val startVmOnConnect: Output<Boolean>? = null

Enables or disables the Start VM on Connection Feature. Defaults to false.

Link copied to clipboard
val tags: Output<Map<String, String>>? = null

A mapping of tags to assign to the resource.

Link copied to clipboard
val type: Output<String>? = null

The type of the Virtual Desktop Host Pool. Valid options are Personal or Pooled. Changing the type forces a new resource to be created.

Link copied to clipboard
val validateEnvironment: Output<Boolean>? = null

Allows you to test service changes before they are deployed to production. Defaults to false.

Link copied to clipboard
val vmTemplate: Output<String>? = null

A VM template for session hosts configuration within hostpool. This is a JSON string.

Functions

Link copied to clipboard
open override fun toJava(): HostPoolArgs