import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Manages a Virtual Desktop Host Pool. * * ## Example Usage * * ```typescript * 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, * }], * }, * }); * ``` * * ## 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. */ export declare class HostPool extends pulumi.CustomResource { /** * Get an existing HostPool resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: HostPoolState, opts?: pulumi.CustomResourceOptions): HostPool; /** * Returns true if the given object is an instance of HostPool. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is HostPool; /** * A valid custom RDP properties string for the Virtual Desktop Host Pool, available properties can be [found in this article](https://docs.microsoft.com/windows-server/remote/remote-desktop-services/clients/rdp-files). */ readonly customRdpProperties: pulumi.Output; /** * A description for the Virtual Desktop Host Pool. */ readonly description: pulumi.Output; /** * A friendly name for the Virtual Desktop Host Pool. */ readonly friendlyName: pulumi.Output; /** * `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` */ readonly loadBalancerType: pulumi.Output; /** * The location/region where the Virtual Desktop Host Pool is located. Changing this forces a new resource to be created. */ readonly location: pulumi.Output; /** * 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`. */ readonly maximumSessionsAllowed: pulumi.Output; /** * The name of the Virtual Desktop Host Pool. Changing this forces a new resource to be created. */ readonly name: pulumi.Output; /** * `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. * * > **Note:** `personalDesktopAssignmentType` is required if the `type` of your Virtual Desktop Host Pool is `Personal` */ readonly personalDesktopAssignmentType: pulumi.Output; /** * Option to specify the preferred Application Group type for the Virtual Desktop Host Pool. Valid options are `None`, `Desktop` or `RailApplications`. Default is `Desktop`. */ readonly preferredAppGroupType: pulumi.Output; /** * Whether public network access is allowed for the Virtual Desktop Host Pool. Possible values are `Enabled`, `Disabled`, `EnabledForClientsOnly` and `EnabledForSessionHostsOnly`. Defaults to `Enabled`. */ readonly publicNetworkAccess: pulumi.Output; /** * The name of the resource group in which to create the Virtual Desktop Host Pool. Changing this forces a new resource to be created. */ readonly resourceGroupName: pulumi.Output; /** * A `scheduledAgentUpdates` block as defined below. This enables control of when Agent Updates will be applied to Session Hosts. */ readonly scheduledAgentUpdates: pulumi.Output; /** * Enables or disables the Start VM on Connection Feature. Defaults to `false`. */ readonly startVmOnConnect: pulumi.Output; /** * A mapping of tags to assign to the resource. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * The type of the Virtual Desktop Host Pool. Valid options are `Personal` or `Pooled`. Changing the type forces a new resource to be created. */ readonly type: pulumi.Output; /** * Allows you to test service changes before they are deployed to production. Defaults to `false`. */ readonly validateEnvironment: pulumi.Output; /** * A VM template for session hosts configuration within hostpool. This is a JSON string. */ readonly vmTemplate: pulumi.Output; /** * Create a HostPool resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: HostPoolArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering HostPool resources. */ export interface HostPoolState { /** * A valid custom RDP properties string for the Virtual Desktop Host Pool, available properties can be [found in this article](https://docs.microsoft.com/windows-server/remote/remote-desktop-services/clients/rdp-files). */ customRdpProperties?: pulumi.Input; /** * A description for the Virtual Desktop Host Pool. */ description?: pulumi.Input; /** * A friendly name for the Virtual Desktop Host Pool. */ friendlyName?: pulumi.Input; /** * `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` */ loadBalancerType?: pulumi.Input; /** * The location/region where the Virtual Desktop Host Pool is located. Changing this forces a new resource to be created. */ location?: pulumi.Input; /** * 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`. */ maximumSessionsAllowed?: pulumi.Input; /** * The name of the Virtual Desktop Host Pool. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * `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. * * > **Note:** `personalDesktopAssignmentType` is required if the `type` of your Virtual Desktop Host Pool is `Personal` */ personalDesktopAssignmentType?: pulumi.Input; /** * Option to specify the preferred Application Group type for the Virtual Desktop Host Pool. Valid options are `None`, `Desktop` or `RailApplications`. Default is `Desktop`. */ preferredAppGroupType?: pulumi.Input; /** * Whether public network access is allowed for the Virtual Desktop Host Pool. Possible values are `Enabled`, `Disabled`, `EnabledForClientsOnly` and `EnabledForSessionHostsOnly`. Defaults to `Enabled`. */ publicNetworkAccess?: pulumi.Input; /** * The name of the resource group in which to create the Virtual Desktop Host Pool. Changing this forces a new resource to be created. */ resourceGroupName?: pulumi.Input; /** * A `scheduledAgentUpdates` block as defined below. This enables control of when Agent Updates will be applied to Session Hosts. */ scheduledAgentUpdates?: pulumi.Input; /** * Enables or disables the Start VM on Connection Feature. Defaults to `false`. */ startVmOnConnect?: pulumi.Input; /** * A mapping of tags to assign to the resource. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The type of the Virtual Desktop Host Pool. Valid options are `Personal` or `Pooled`. Changing the type forces a new resource to be created. */ type?: pulumi.Input; /** * Allows you to test service changes before they are deployed to production. Defaults to `false`. */ validateEnvironment?: pulumi.Input; /** * A VM template for session hosts configuration within hostpool. This is a JSON string. */ vmTemplate?: pulumi.Input; } /** * The set of arguments for constructing a HostPool resource. */ export interface HostPoolArgs { /** * A valid custom RDP properties string for the Virtual Desktop Host Pool, available properties can be [found in this article](https://docs.microsoft.com/windows-server/remote/remote-desktop-services/clients/rdp-files). */ customRdpProperties?: pulumi.Input; /** * A description for the Virtual Desktop Host Pool. */ description?: pulumi.Input; /** * A friendly name for the Virtual Desktop Host Pool. */ friendlyName?: pulumi.Input; /** * `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` */ loadBalancerType: pulumi.Input; /** * The location/region where the Virtual Desktop Host Pool is located. Changing this forces a new resource to be created. */ location?: pulumi.Input; /** * 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`. */ maximumSessionsAllowed?: pulumi.Input; /** * The name of the Virtual Desktop Host Pool. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * `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. * * > **Note:** `personalDesktopAssignmentType` is required if the `type` of your Virtual Desktop Host Pool is `Personal` */ personalDesktopAssignmentType?: pulumi.Input; /** * Option to specify the preferred Application Group type for the Virtual Desktop Host Pool. Valid options are `None`, `Desktop` or `RailApplications`. Default is `Desktop`. */ preferredAppGroupType?: pulumi.Input; /** * Whether public network access is allowed for the Virtual Desktop Host Pool. Possible values are `Enabled`, `Disabled`, `EnabledForClientsOnly` and `EnabledForSessionHostsOnly`. Defaults to `Enabled`. */ publicNetworkAccess?: pulumi.Input; /** * The name of the resource group in which to create the Virtual Desktop Host Pool. Changing this forces a new resource to be created. */ resourceGroupName: pulumi.Input; /** * A `scheduledAgentUpdates` block as defined below. This enables control of when Agent Updates will be applied to Session Hosts. */ scheduledAgentUpdates?: pulumi.Input; /** * Enables or disables the Start VM on Connection Feature. Defaults to `false`. */ startVmOnConnect?: pulumi.Input; /** * A mapping of tags to assign to the resource. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The type of the Virtual Desktop Host Pool. Valid options are `Personal` or `Pooled`. Changing the type forces a new resource to be created. */ type: pulumi.Input; /** * Allows you to test service changes before they are deployed to production. Defaults to `false`. */ validateEnvironment?: pulumi.Input; /** * A VM template for session hosts configuration within hostpool. This is a JSON string. */ vmTemplate?: pulumi.Input; }