We recommend using Azure Native.
azure.desktopvirtualization.ScalingPlan
Explore with Pulumi AI
Manages a Virtual Desktop Scaling Plan.
Disclaimers
Note Scaling Plans are currently in preview and are only supported in a limited number of regions. Both the Scaling Plan and any referenced Host Pools must be deployed in a supported region. Autoscale (preview) for Azure Virtual Desktop host pools.
Note Scaling Plans require specific permissions to be granted to the Windows Virtual Desktop application before a ‘host_pool’ can be configured. Required Permissions for Scaling Plans.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
import * as azuread from "@pulumi/azuread";
import * as random from "@pulumi/random";
const exampleRandomUuid = new random.RandomUuid("example", {});
const exampleResourceGroup = new azure.core.ResourceGroup("example", {
    name: "example-resources",
    location: "West Europe",
});
const exampleRoleDefinition = new azure.authorization.RoleDefinition("example", {
    name: "AVD-AutoScale",
    scope: exampleResourceGroup.id,
    description: "AVD AutoScale Role",
    permissions: [{
        actions: [
            "Microsoft.Insights/eventtypes/values/read",
            "Microsoft.Compute/virtualMachines/deallocate/action",
            "Microsoft.Compute/virtualMachines/restart/action",
            "Microsoft.Compute/virtualMachines/powerOff/action",
            "Microsoft.Compute/virtualMachines/start/action",
            "Microsoft.Compute/virtualMachines/read",
            "Microsoft.DesktopVirtualization/hostpools/read",
            "Microsoft.DesktopVirtualization/hostpools/write",
            "Microsoft.DesktopVirtualization/hostpools/sessionhosts/read",
            "Microsoft.DesktopVirtualization/hostpools/sessionhosts/write",
            "Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/delete",
            "Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/read",
            "Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/sendMessage/action",
            "Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/read",
        ],
        notActions: [],
    }],
    assignableScopes: [exampleResourceGroup.id],
});
const example = azuread.getServicePrincipal({
    displayName: "Azure Virtual Desktop",
});
const exampleAssignment = new azure.authorization.Assignment("example", {
    name: exampleRandomUuid.result,
    scope: exampleResourceGroup.id,
    roleDefinitionId: exampleRoleDefinition.roleDefinitionResourceId,
    principalId: example.then(example => example.id),
    skipServicePrincipalAadCheck: true,
});
const exampleHostPool = new azure.desktopvirtualization.HostPool("example", {
    name: "example-hostpool",
    location: exampleResourceGroup.location,
    resourceGroupName: exampleResourceGroup.name,
    type: "Pooled",
    validateEnvironment: true,
    loadBalancerType: "BreadthFirst",
});
const exampleScalingPlan = new azure.desktopvirtualization.ScalingPlan("example", {
    name: "example-scaling-plan",
    location: exampleResourceGroup.location,
    resourceGroupName: exampleResourceGroup.name,
    friendlyName: "Scaling Plan Example",
    description: "Example Scaling Plan",
    timeZone: "GMT Standard Time",
    schedules: [{
        name: "Weekdays",
        daysOfWeeks: [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday",
        ],
        rampUpStartTime: "05:00",
        rampUpLoadBalancingAlgorithm: "BreadthFirst",
        rampUpMinimumHostsPercent: 20,
        rampUpCapacityThresholdPercent: 10,
        peakStartTime: "09:00",
        peakLoadBalancingAlgorithm: "BreadthFirst",
        rampDownStartTime: "19:00",
        rampDownLoadBalancingAlgorithm: "DepthFirst",
        rampDownMinimumHostsPercent: 10,
        rampDownForceLogoffUsers: false,
        rampDownWaitTimeMinutes: 45,
        rampDownNotificationMessage: "Please log off in the next 45 minutes...",
        rampDownCapacityThresholdPercent: 5,
        rampDownStopHostsWhen: "ZeroSessions",
        offPeakStartTime: "22:00",
        offPeakLoadBalancingAlgorithm: "DepthFirst",
    }],
    hostPools: [{
        hostpoolId: exampleHostPool.id,
        scalingPlanEnabled: true,
    }],
});
import pulumi
import pulumi_azure as azure
import pulumi_azuread as azuread
import pulumi_random as random
example_random_uuid = random.RandomUuid("example")
example_resource_group = azure.core.ResourceGroup("example",
    name="example-resources",
    location="West Europe")
example_role_definition = azure.authorization.RoleDefinition("example",
    name="AVD-AutoScale",
    scope=example_resource_group.id,
    description="AVD AutoScale Role",
    permissions=[{
        "actions": [
            "Microsoft.Insights/eventtypes/values/read",
            "Microsoft.Compute/virtualMachines/deallocate/action",
            "Microsoft.Compute/virtualMachines/restart/action",
            "Microsoft.Compute/virtualMachines/powerOff/action",
            "Microsoft.Compute/virtualMachines/start/action",
            "Microsoft.Compute/virtualMachines/read",
            "Microsoft.DesktopVirtualization/hostpools/read",
            "Microsoft.DesktopVirtualization/hostpools/write",
            "Microsoft.DesktopVirtualization/hostpools/sessionhosts/read",
            "Microsoft.DesktopVirtualization/hostpools/sessionhosts/write",
            "Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/delete",
            "Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/read",
            "Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/sendMessage/action",
            "Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/read",
        ],
        "not_actions": [],
    }],
    assignable_scopes=[example_resource_group.id])
example = azuread.get_service_principal(display_name="Azure Virtual Desktop")
example_assignment = azure.authorization.Assignment("example",
    name=example_random_uuid.result,
    scope=example_resource_group.id,
    role_definition_id=example_role_definition.role_definition_resource_id,
    principal_id=example.id,
    skip_service_principal_aad_check=True)
example_host_pool = azure.desktopvirtualization.HostPool("example",
    name="example-hostpool",
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name,
    type="Pooled",
    validate_environment=True,
    load_balancer_type="BreadthFirst")
example_scaling_plan = azure.desktopvirtualization.ScalingPlan("example",
    name="example-scaling-plan",
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name,
    friendly_name="Scaling Plan Example",
    description="Example Scaling Plan",
    time_zone="GMT Standard Time",
    schedules=[{
        "name": "Weekdays",
        "days_of_weeks": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday",
        ],
        "ramp_up_start_time": "05:00",
        "ramp_up_load_balancing_algorithm": "BreadthFirst",
        "ramp_up_minimum_hosts_percent": 20,
        "ramp_up_capacity_threshold_percent": 10,
        "peak_start_time": "09:00",
        "peak_load_balancing_algorithm": "BreadthFirst",
        "ramp_down_start_time": "19:00",
        "ramp_down_load_balancing_algorithm": "DepthFirst",
        "ramp_down_minimum_hosts_percent": 10,
        "ramp_down_force_logoff_users": False,
        "ramp_down_wait_time_minutes": 45,
        "ramp_down_notification_message": "Please log off in the next 45 minutes...",
        "ramp_down_capacity_threshold_percent": 5,
        "ramp_down_stop_hosts_when": "ZeroSessions",
        "off_peak_start_time": "22:00",
        "off_peak_load_balancing_algorithm": "DepthFirst",
    }],
    host_pools=[{
        "hostpool_id": example_host_pool.id,
        "scaling_plan_enabled": True,
    }])
package main
import (
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/authorization"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/desktopvirtualization"
	"github.com/pulumi/pulumi-azuread/sdk/v5/go/azuread"
	"github.com/pulumi/pulumi-random/sdk/v4/go/random"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleRandomUuid, err := random.NewRandomUuid(ctx, "example", nil)
		if err != nil {
			return err
		}
		exampleResourceGroup, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("example-resources"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleRoleDefinition, err := authorization.NewRoleDefinition(ctx, "example", &authorization.RoleDefinitionArgs{
			Name:        pulumi.String("AVD-AutoScale"),
			Scope:       exampleResourceGroup.ID(),
			Description: pulumi.String("AVD AutoScale Role"),
			Permissions: authorization.RoleDefinitionPermissionArray{
				&authorization.RoleDefinitionPermissionArgs{
					Actions: pulumi.StringArray{
						pulumi.String("Microsoft.Insights/eventtypes/values/read"),
						pulumi.String("Microsoft.Compute/virtualMachines/deallocate/action"),
						pulumi.String("Microsoft.Compute/virtualMachines/restart/action"),
						pulumi.String("Microsoft.Compute/virtualMachines/powerOff/action"),
						pulumi.String("Microsoft.Compute/virtualMachines/start/action"),
						pulumi.String("Microsoft.Compute/virtualMachines/read"),
						pulumi.String("Microsoft.DesktopVirtualization/hostpools/read"),
						pulumi.String("Microsoft.DesktopVirtualization/hostpools/write"),
						pulumi.String("Microsoft.DesktopVirtualization/hostpools/sessionhosts/read"),
						pulumi.String("Microsoft.DesktopVirtualization/hostpools/sessionhosts/write"),
						pulumi.String("Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/delete"),
						pulumi.String("Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/read"),
						pulumi.String("Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/sendMessage/action"),
						pulumi.String("Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/read"),
					},
					NotActions: pulumi.StringArray{},
				},
			},
			AssignableScopes: pulumi.StringArray{
				exampleResourceGroup.ID(),
			},
		})
		if err != nil {
			return err
		}
		example, err := azuread.LookupServicePrincipal(ctx, &azuread.LookupServicePrincipalArgs{
			DisplayName: pulumi.StringRef("Azure Virtual Desktop"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = authorization.NewAssignment(ctx, "example", &authorization.AssignmentArgs{
			Name:                         exampleRandomUuid.Result,
			Scope:                        exampleResourceGroup.ID(),
			RoleDefinitionId:             exampleRoleDefinition.RoleDefinitionResourceId,
			PrincipalId:                  pulumi.String(example.Id),
			SkipServicePrincipalAadCheck: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		exampleHostPool, err := desktopvirtualization.NewHostPool(ctx, "example", &desktopvirtualization.HostPoolArgs{
			Name:                pulumi.String("example-hostpool"),
			Location:            exampleResourceGroup.Location,
			ResourceGroupName:   exampleResourceGroup.Name,
			Type:                pulumi.String("Pooled"),
			ValidateEnvironment: pulumi.Bool(true),
			LoadBalancerType:    pulumi.String("BreadthFirst"),
		})
		if err != nil {
			return err
		}
		_, err = desktopvirtualization.NewScalingPlan(ctx, "example", &desktopvirtualization.ScalingPlanArgs{
			Name:              pulumi.String("example-scaling-plan"),
			Location:          exampleResourceGroup.Location,
			ResourceGroupName: exampleResourceGroup.Name,
			FriendlyName:      pulumi.String("Scaling Plan Example"),
			Description:       pulumi.String("Example Scaling Plan"),
			TimeZone:          pulumi.String("GMT Standard Time"),
			Schedules: desktopvirtualization.ScalingPlanScheduleArray{
				&desktopvirtualization.ScalingPlanScheduleArgs{
					Name: pulumi.String("Weekdays"),
					DaysOfWeeks: pulumi.StringArray{
						pulumi.String("Monday"),
						pulumi.String("Tuesday"),
						pulumi.String("Wednesday"),
						pulumi.String("Thursday"),
						pulumi.String("Friday"),
					},
					RampUpStartTime:                  pulumi.String("05:00"),
					RampUpLoadBalancingAlgorithm:     pulumi.String("BreadthFirst"),
					RampUpMinimumHostsPercent:        pulumi.Int(20),
					RampUpCapacityThresholdPercent:   pulumi.Int(10),
					PeakStartTime:                    pulumi.String("09:00"),
					PeakLoadBalancingAlgorithm:       pulumi.String("BreadthFirst"),
					RampDownStartTime:                pulumi.String("19:00"),
					RampDownLoadBalancingAlgorithm:   pulumi.String("DepthFirst"),
					RampDownMinimumHostsPercent:      pulumi.Int(10),
					RampDownForceLogoffUsers:         pulumi.Bool(false),
					RampDownWaitTimeMinutes:          pulumi.Int(45),
					RampDownNotificationMessage:      pulumi.String("Please log off in the next 45 minutes..."),
					RampDownCapacityThresholdPercent: pulumi.Int(5),
					RampDownStopHostsWhen:            pulumi.String("ZeroSessions"),
					OffPeakStartTime:                 pulumi.String("22:00"),
					OffPeakLoadBalancingAlgorithm:    pulumi.String("DepthFirst"),
				},
			},
			HostPools: desktopvirtualization.ScalingPlanHostPoolArray{
				&desktopvirtualization.ScalingPlanHostPoolArgs{
					HostpoolId:         exampleHostPool.ID(),
					ScalingPlanEnabled: pulumi.Bool(true),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
using AzureAD = Pulumi.AzureAD;
using Random = Pulumi.Random;
return await Deployment.RunAsync(() => 
{
    var exampleRandomUuid = new Random.RandomUuid("example");
    var exampleResourceGroup = new Azure.Core.ResourceGroup("example", new()
    {
        Name = "example-resources",
        Location = "West Europe",
    });
    var exampleRoleDefinition = new Azure.Authorization.RoleDefinition("example", new()
    {
        Name = "AVD-AutoScale",
        Scope = exampleResourceGroup.Id,
        Description = "AVD AutoScale Role",
        Permissions = new[]
        {
            new Azure.Authorization.Inputs.RoleDefinitionPermissionArgs
            {
                Actions = new[]
                {
                    "Microsoft.Insights/eventtypes/values/read",
                    "Microsoft.Compute/virtualMachines/deallocate/action",
                    "Microsoft.Compute/virtualMachines/restart/action",
                    "Microsoft.Compute/virtualMachines/powerOff/action",
                    "Microsoft.Compute/virtualMachines/start/action",
                    "Microsoft.Compute/virtualMachines/read",
                    "Microsoft.DesktopVirtualization/hostpools/read",
                    "Microsoft.DesktopVirtualization/hostpools/write",
                    "Microsoft.DesktopVirtualization/hostpools/sessionhosts/read",
                    "Microsoft.DesktopVirtualization/hostpools/sessionhosts/write",
                    "Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/delete",
                    "Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/read",
                    "Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/sendMessage/action",
                    "Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/read",
                },
                NotActions = new() { },
            },
        },
        AssignableScopes = new[]
        {
            exampleResourceGroup.Id,
        },
    });
    var example = AzureAD.GetServicePrincipal.Invoke(new()
    {
        DisplayName = "Azure Virtual Desktop",
    });
    var exampleAssignment = new Azure.Authorization.Assignment("example", new()
    {
        Name = exampleRandomUuid.Result,
        Scope = exampleResourceGroup.Id,
        RoleDefinitionId = exampleRoleDefinition.RoleDefinitionResourceId,
        PrincipalId = example.Apply(getServicePrincipalResult => getServicePrincipalResult.Id),
        SkipServicePrincipalAadCheck = true,
    });
    var exampleHostPool = new Azure.DesktopVirtualization.HostPool("example", new()
    {
        Name = "example-hostpool",
        Location = exampleResourceGroup.Location,
        ResourceGroupName = exampleResourceGroup.Name,
        Type = "Pooled",
        ValidateEnvironment = true,
        LoadBalancerType = "BreadthFirst",
    });
    var exampleScalingPlan = new Azure.DesktopVirtualization.ScalingPlan("example", new()
    {
        Name = "example-scaling-plan",
        Location = exampleResourceGroup.Location,
        ResourceGroupName = exampleResourceGroup.Name,
        FriendlyName = "Scaling Plan Example",
        Description = "Example Scaling Plan",
        TimeZone = "GMT Standard Time",
        Schedules = new[]
        {
            new Azure.DesktopVirtualization.Inputs.ScalingPlanScheduleArgs
            {
                Name = "Weekdays",
                DaysOfWeeks = new[]
                {
                    "Monday",
                    "Tuesday",
                    "Wednesday",
                    "Thursday",
                    "Friday",
                },
                RampUpStartTime = "05:00",
                RampUpLoadBalancingAlgorithm = "BreadthFirst",
                RampUpMinimumHostsPercent = 20,
                RampUpCapacityThresholdPercent = 10,
                PeakStartTime = "09:00",
                PeakLoadBalancingAlgorithm = "BreadthFirst",
                RampDownStartTime = "19:00",
                RampDownLoadBalancingAlgorithm = "DepthFirst",
                RampDownMinimumHostsPercent = 10,
                RampDownForceLogoffUsers = false,
                RampDownWaitTimeMinutes = 45,
                RampDownNotificationMessage = "Please log off in the next 45 minutes...",
                RampDownCapacityThresholdPercent = 5,
                RampDownStopHostsWhen = "ZeroSessions",
                OffPeakStartTime = "22:00",
                OffPeakLoadBalancingAlgorithm = "DepthFirst",
            },
        },
        HostPools = new[]
        {
            new Azure.DesktopVirtualization.Inputs.ScalingPlanHostPoolArgs
            {
                HostpoolId = exampleHostPool.Id,
                ScalingPlanEnabled = true,
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.random.RandomUuid;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.authorization.RoleDefinition;
import com.pulumi.azure.authorization.RoleDefinitionArgs;
import com.pulumi.azure.authorization.inputs.RoleDefinitionPermissionArgs;
import com.pulumi.azuread.AzureadFunctions;
import com.pulumi.azuread.inputs.GetServicePrincipalArgs;
import com.pulumi.azure.authorization.Assignment;
import com.pulumi.azure.authorization.AssignmentArgs;
import com.pulumi.azure.desktopvirtualization.HostPool;
import com.pulumi.azure.desktopvirtualization.HostPoolArgs;
import com.pulumi.azure.desktopvirtualization.ScalingPlan;
import com.pulumi.azure.desktopvirtualization.ScalingPlanArgs;
import com.pulumi.azure.desktopvirtualization.inputs.ScalingPlanScheduleArgs;
import com.pulumi.azure.desktopvirtualization.inputs.ScalingPlanHostPoolArgs;
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 exampleRandomUuid = new RandomUuid("exampleRandomUuid");
        var exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
            .name("example-resources")
            .location("West Europe")
            .build());
        var exampleRoleDefinition = new RoleDefinition("exampleRoleDefinition", RoleDefinitionArgs.builder()
            .name("AVD-AutoScale")
            .scope(exampleResourceGroup.id())
            .description("AVD AutoScale Role")
            .permissions(RoleDefinitionPermissionArgs.builder()
                .actions(                
                    "Microsoft.Insights/eventtypes/values/read",
                    "Microsoft.Compute/virtualMachines/deallocate/action",
                    "Microsoft.Compute/virtualMachines/restart/action",
                    "Microsoft.Compute/virtualMachines/powerOff/action",
                    "Microsoft.Compute/virtualMachines/start/action",
                    "Microsoft.Compute/virtualMachines/read",
                    "Microsoft.DesktopVirtualization/hostpools/read",
                    "Microsoft.DesktopVirtualization/hostpools/write",
                    "Microsoft.DesktopVirtualization/hostpools/sessionhosts/read",
                    "Microsoft.DesktopVirtualization/hostpools/sessionhosts/write",
                    "Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/delete",
                    "Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/read",
                    "Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/sendMessage/action",
                    "Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/read")
                .notActions()
                .build())
            .assignableScopes(exampleResourceGroup.id())
            .build());
        final var example = AzureadFunctions.getServicePrincipal(GetServicePrincipalArgs.builder()
            .displayName("Azure Virtual Desktop")
            .build());
        var exampleAssignment = new Assignment("exampleAssignment", AssignmentArgs.builder()
            .name(exampleRandomUuid.result())
            .scope(exampleResourceGroup.id())
            .roleDefinitionId(exampleRoleDefinition.roleDefinitionResourceId())
            .principalId(example.applyValue(getServicePrincipalResult -> getServicePrincipalResult.id()))
            .skipServicePrincipalAadCheck(true)
            .build());
        var exampleHostPool = new HostPool("exampleHostPool", HostPoolArgs.builder()
            .name("example-hostpool")
            .location(exampleResourceGroup.location())
            .resourceGroupName(exampleResourceGroup.name())
            .type("Pooled")
            .validateEnvironment(true)
            .loadBalancerType("BreadthFirst")
            .build());
        var exampleScalingPlan = new ScalingPlan("exampleScalingPlan", ScalingPlanArgs.builder()
            .name("example-scaling-plan")
            .location(exampleResourceGroup.location())
            .resourceGroupName(exampleResourceGroup.name())
            .friendlyName("Scaling Plan Example")
            .description("Example Scaling Plan")
            .timeZone("GMT Standard Time")
            .schedules(ScalingPlanScheduleArgs.builder()
                .name("Weekdays")
                .daysOfWeeks(                
                    "Monday",
                    "Tuesday",
                    "Wednesday",
                    "Thursday",
                    "Friday")
                .rampUpStartTime("05:00")
                .rampUpLoadBalancingAlgorithm("BreadthFirst")
                .rampUpMinimumHostsPercent(20)
                .rampUpCapacityThresholdPercent(10)
                .peakStartTime("09:00")
                .peakLoadBalancingAlgorithm("BreadthFirst")
                .rampDownStartTime("19:00")
                .rampDownLoadBalancingAlgorithm("DepthFirst")
                .rampDownMinimumHostsPercent(10)
                .rampDownForceLogoffUsers(false)
                .rampDownWaitTimeMinutes(45)
                .rampDownNotificationMessage("Please log off in the next 45 minutes...")
                .rampDownCapacityThresholdPercent(5)
                .rampDownStopHostsWhen("ZeroSessions")
                .offPeakStartTime("22:00")
                .offPeakLoadBalancingAlgorithm("DepthFirst")
                .build())
            .hostPools(ScalingPlanHostPoolArgs.builder()
                .hostpoolId(exampleHostPool.id())
                .scalingPlanEnabled(true)
                .build())
            .build());
    }
}
resources:
  exampleRandomUuid:
    type: random:RandomUuid
    name: example
  exampleResourceGroup:
    type: azure:core:ResourceGroup
    name: example
    properties:
      name: example-resources
      location: West Europe
  exampleRoleDefinition:
    type: azure:authorization:RoleDefinition
    name: example
    properties:
      name: AVD-AutoScale
      scope: ${exampleResourceGroup.id}
      description: AVD AutoScale Role
      permissions:
        - actions:
            - Microsoft.Insights/eventtypes/values/read
            - Microsoft.Compute/virtualMachines/deallocate/action
            - Microsoft.Compute/virtualMachines/restart/action
            - Microsoft.Compute/virtualMachines/powerOff/action
            - Microsoft.Compute/virtualMachines/start/action
            - Microsoft.Compute/virtualMachines/read
            - Microsoft.DesktopVirtualization/hostpools/read
            - Microsoft.DesktopVirtualization/hostpools/write
            - Microsoft.DesktopVirtualization/hostpools/sessionhosts/read
            - Microsoft.DesktopVirtualization/hostpools/sessionhosts/write
            - Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/delete
            - Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/read
            - Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/sendMessage/action
            - Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/read
          notActions: []
      assignableScopes:
        - ${exampleResourceGroup.id}
  exampleAssignment:
    type: azure:authorization:Assignment
    name: example
    properties:
      name: ${exampleRandomUuid.result}
      scope: ${exampleResourceGroup.id}
      roleDefinitionId: ${exampleRoleDefinition.roleDefinitionResourceId}
      principalId: ${example.id}
      skipServicePrincipalAadCheck: true
  exampleHostPool:
    type: azure:desktopvirtualization:HostPool
    name: example
    properties:
      name: example-hostpool
      location: ${exampleResourceGroup.location}
      resourceGroupName: ${exampleResourceGroup.name}
      type: Pooled
      validateEnvironment: true
      loadBalancerType: BreadthFirst
  exampleScalingPlan:
    type: azure:desktopvirtualization:ScalingPlan
    name: example
    properties:
      name: example-scaling-plan
      location: ${exampleResourceGroup.location}
      resourceGroupName: ${exampleResourceGroup.name}
      friendlyName: Scaling Plan Example
      description: Example Scaling Plan
      timeZone: GMT Standard Time
      schedules:
        - name: Weekdays
          daysOfWeeks:
            - Monday
            - Tuesday
            - Wednesday
            - Thursday
            - Friday
          rampUpStartTime: 05:00
          rampUpLoadBalancingAlgorithm: BreadthFirst
          rampUpMinimumHostsPercent: 20
          rampUpCapacityThresholdPercent: 10
          peakStartTime: 09:00
          peakLoadBalancingAlgorithm: BreadthFirst
          rampDownStartTime: 19:00
          rampDownLoadBalancingAlgorithm: DepthFirst
          rampDownMinimumHostsPercent: 10
          rampDownForceLogoffUsers: false
          rampDownWaitTimeMinutes: 45
          rampDownNotificationMessage: Please log off in the next 45 minutes...
          rampDownCapacityThresholdPercent: 5
          rampDownStopHostsWhen: ZeroSessions
          offPeakStartTime: 22:00
          offPeakLoadBalancingAlgorithm: DepthFirst
      hostPools:
        - hostpoolId: ${exampleHostPool.id}
          scalingPlanEnabled: true
variables:
  example:
    fn::invoke:
      function: azuread:getServicePrincipal
      arguments:
        displayName: Azure Virtual Desktop
Create ScalingPlan Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new ScalingPlan(name: string, args: ScalingPlanArgs, opts?: CustomResourceOptions);@overload
def ScalingPlan(resource_name: str,
                args: ScalingPlanArgs,
                opts: Optional[ResourceOptions] = None)
@overload
def ScalingPlan(resource_name: str,
                opts: Optional[ResourceOptions] = None,
                resource_group_name: Optional[str] = None,
                schedules: Optional[Sequence[ScalingPlanScheduleArgs]] = None,
                time_zone: Optional[str] = None,
                description: Optional[str] = None,
                exclusion_tag: Optional[str] = None,
                friendly_name: Optional[str] = None,
                host_pools: Optional[Sequence[ScalingPlanHostPoolArgs]] = None,
                location: Optional[str] = None,
                name: Optional[str] = None,
                tags: Optional[Mapping[str, str]] = None)func NewScalingPlan(ctx *Context, name string, args ScalingPlanArgs, opts ...ResourceOption) (*ScalingPlan, error)public ScalingPlan(string name, ScalingPlanArgs args, CustomResourceOptions? opts = null)
public ScalingPlan(String name, ScalingPlanArgs args)
public ScalingPlan(String name, ScalingPlanArgs args, CustomResourceOptions options)
type: azure:desktopvirtualization:ScalingPlan
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args ScalingPlanArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args ScalingPlanArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args ScalingPlanArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ScalingPlanArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args ScalingPlanArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var scalingPlanResource = new Azure.DesktopVirtualization.ScalingPlan("scalingPlanResource", new()
{
    ResourceGroupName = "string",
    Schedules = new[]
    {
        new Azure.DesktopVirtualization.Inputs.ScalingPlanScheduleArgs
        {
            RampDownLoadBalancingAlgorithm = "string",
            OffPeakLoadBalancingAlgorithm = "string",
            RampDownMinimumHostsPercent = 0,
            RampDownNotificationMessage = "string",
            PeakLoadBalancingAlgorithm = "string",
            PeakStartTime = "string",
            RampDownCapacityThresholdPercent = 0,
            RampDownForceLogoffUsers = false,
            RampUpStartTime = "string",
            Name = "string",
            OffPeakStartTime = "string",
            RampDownStartTime = "string",
            RampDownStopHostsWhen = "string",
            RampDownWaitTimeMinutes = 0,
            DaysOfWeeks = new[]
            {
                "string",
            },
            RampUpLoadBalancingAlgorithm = "string",
            RampUpMinimumHostsPercent = 0,
            RampUpCapacityThresholdPercent = 0,
        },
    },
    TimeZone = "string",
    Description = "string",
    ExclusionTag = "string",
    FriendlyName = "string",
    HostPools = new[]
    {
        new Azure.DesktopVirtualization.Inputs.ScalingPlanHostPoolArgs
        {
            HostpoolId = "string",
            ScalingPlanEnabled = false,
        },
    },
    Location = "string",
    Name = "string",
    Tags = 
    {
        { "string", "string" },
    },
});
example, err := desktopvirtualization.NewScalingPlan(ctx, "scalingPlanResource", &desktopvirtualization.ScalingPlanArgs{
	ResourceGroupName: pulumi.String("string"),
	Schedules: desktopvirtualization.ScalingPlanScheduleArray{
		&desktopvirtualization.ScalingPlanScheduleArgs{
			RampDownLoadBalancingAlgorithm:   pulumi.String("string"),
			OffPeakLoadBalancingAlgorithm:    pulumi.String("string"),
			RampDownMinimumHostsPercent:      pulumi.Int(0),
			RampDownNotificationMessage:      pulumi.String("string"),
			PeakLoadBalancingAlgorithm:       pulumi.String("string"),
			PeakStartTime:                    pulumi.String("string"),
			RampDownCapacityThresholdPercent: pulumi.Int(0),
			RampDownForceLogoffUsers:         pulumi.Bool(false),
			RampUpStartTime:                  pulumi.String("string"),
			Name:                             pulumi.String("string"),
			OffPeakStartTime:                 pulumi.String("string"),
			RampDownStartTime:                pulumi.String("string"),
			RampDownStopHostsWhen:            pulumi.String("string"),
			RampDownWaitTimeMinutes:          pulumi.Int(0),
			DaysOfWeeks: pulumi.StringArray{
				pulumi.String("string"),
			},
			RampUpLoadBalancingAlgorithm:   pulumi.String("string"),
			RampUpMinimumHostsPercent:      pulumi.Int(0),
			RampUpCapacityThresholdPercent: pulumi.Int(0),
		},
	},
	TimeZone:     pulumi.String("string"),
	Description:  pulumi.String("string"),
	ExclusionTag: pulumi.String("string"),
	FriendlyName: pulumi.String("string"),
	HostPools: desktopvirtualization.ScalingPlanHostPoolArray{
		&desktopvirtualization.ScalingPlanHostPoolArgs{
			HostpoolId:         pulumi.String("string"),
			ScalingPlanEnabled: pulumi.Bool(false),
		},
	},
	Location: pulumi.String("string"),
	Name:     pulumi.String("string"),
	Tags: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
})
var scalingPlanResource = new ScalingPlan("scalingPlanResource", ScalingPlanArgs.builder()
    .resourceGroupName("string")
    .schedules(ScalingPlanScheduleArgs.builder()
        .rampDownLoadBalancingAlgorithm("string")
        .offPeakLoadBalancingAlgorithm("string")
        .rampDownMinimumHostsPercent(0)
        .rampDownNotificationMessage("string")
        .peakLoadBalancingAlgorithm("string")
        .peakStartTime("string")
        .rampDownCapacityThresholdPercent(0)
        .rampDownForceLogoffUsers(false)
        .rampUpStartTime("string")
        .name("string")
        .offPeakStartTime("string")
        .rampDownStartTime("string")
        .rampDownStopHostsWhen("string")
        .rampDownWaitTimeMinutes(0)
        .daysOfWeeks("string")
        .rampUpLoadBalancingAlgorithm("string")
        .rampUpMinimumHostsPercent(0)
        .rampUpCapacityThresholdPercent(0)
        .build())
    .timeZone("string")
    .description("string")
    .exclusionTag("string")
    .friendlyName("string")
    .hostPools(ScalingPlanHostPoolArgs.builder()
        .hostpoolId("string")
        .scalingPlanEnabled(false)
        .build())
    .location("string")
    .name("string")
    .tags(Map.of("string", "string"))
    .build());
scaling_plan_resource = azure.desktopvirtualization.ScalingPlan("scalingPlanResource",
    resource_group_name="string",
    schedules=[{
        "ramp_down_load_balancing_algorithm": "string",
        "off_peak_load_balancing_algorithm": "string",
        "ramp_down_minimum_hosts_percent": 0,
        "ramp_down_notification_message": "string",
        "peak_load_balancing_algorithm": "string",
        "peak_start_time": "string",
        "ramp_down_capacity_threshold_percent": 0,
        "ramp_down_force_logoff_users": False,
        "ramp_up_start_time": "string",
        "name": "string",
        "off_peak_start_time": "string",
        "ramp_down_start_time": "string",
        "ramp_down_stop_hosts_when": "string",
        "ramp_down_wait_time_minutes": 0,
        "days_of_weeks": ["string"],
        "ramp_up_load_balancing_algorithm": "string",
        "ramp_up_minimum_hosts_percent": 0,
        "ramp_up_capacity_threshold_percent": 0,
    }],
    time_zone="string",
    description="string",
    exclusion_tag="string",
    friendly_name="string",
    host_pools=[{
        "hostpool_id": "string",
        "scaling_plan_enabled": False,
    }],
    location="string",
    name="string",
    tags={
        "string": "string",
    })
const scalingPlanResource = new azure.desktopvirtualization.ScalingPlan("scalingPlanResource", {
    resourceGroupName: "string",
    schedules: [{
        rampDownLoadBalancingAlgorithm: "string",
        offPeakLoadBalancingAlgorithm: "string",
        rampDownMinimumHostsPercent: 0,
        rampDownNotificationMessage: "string",
        peakLoadBalancingAlgorithm: "string",
        peakStartTime: "string",
        rampDownCapacityThresholdPercent: 0,
        rampDownForceLogoffUsers: false,
        rampUpStartTime: "string",
        name: "string",
        offPeakStartTime: "string",
        rampDownStartTime: "string",
        rampDownStopHostsWhen: "string",
        rampDownWaitTimeMinutes: 0,
        daysOfWeeks: ["string"],
        rampUpLoadBalancingAlgorithm: "string",
        rampUpMinimumHostsPercent: 0,
        rampUpCapacityThresholdPercent: 0,
    }],
    timeZone: "string",
    description: "string",
    exclusionTag: "string",
    friendlyName: "string",
    hostPools: [{
        hostpoolId: "string",
        scalingPlanEnabled: false,
    }],
    location: "string",
    name: "string",
    tags: {
        string: "string",
    },
});
type: azure:desktopvirtualization:ScalingPlan
properties:
    description: string
    exclusionTag: string
    friendlyName: string
    hostPools:
        - hostpoolId: string
          scalingPlanEnabled: false
    location: string
    name: string
    resourceGroupName: string
    schedules:
        - daysOfWeeks:
            - string
          name: string
          offPeakLoadBalancingAlgorithm: string
          offPeakStartTime: string
          peakLoadBalancingAlgorithm: string
          peakStartTime: string
          rampDownCapacityThresholdPercent: 0
          rampDownForceLogoffUsers: false
          rampDownLoadBalancingAlgorithm: string
          rampDownMinimumHostsPercent: 0
          rampDownNotificationMessage: string
          rampDownStartTime: string
          rampDownStopHostsWhen: string
          rampDownWaitTimeMinutes: 0
          rampUpCapacityThresholdPercent: 0
          rampUpLoadBalancingAlgorithm: string
          rampUpMinimumHostsPercent: 0
          rampUpStartTime: string
    tags:
        string: string
    timeZone: string
ScalingPlan Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The ScalingPlan resource accepts the following input properties:
- ResourceGroup stringName 
- The name of the Resource Group where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- Schedules
List<ScalingPlan Schedule> 
- One or more scheduleblocks as defined below.
- TimeZone string
- Specifies the Time Zone which should be used by the Scaling Plan for time based events, the possible values are defined here.
- Description string
- A description of the Scaling Plan.
- ExclusionTag string
- The name of the tag associated with the VMs you want to exclude from autoscaling.
- FriendlyName string
- Friendly name of the Scaling Plan.
- HostPools List<ScalingPlan Host Pool> 
- One or more host_poolblocks as defined below.
- Location string
- The Azure Region where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- Name string
- The name which should be used for this Virtual Desktop Scaling Plan . Changing this forces a new Virtual Desktop Scaling Plan to be created.
- Dictionary<string, string>
- A mapping of tags which should be assigned to the Virtual Desktop Scaling Plan .
- ResourceGroup stringName 
- The name of the Resource Group where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- Schedules
[]ScalingPlan Schedule Args 
- One or more scheduleblocks as defined below.
- TimeZone string
- Specifies the Time Zone which should be used by the Scaling Plan for time based events, the possible values are defined here.
- Description string
- A description of the Scaling Plan.
- ExclusionTag string
- The name of the tag associated with the VMs you want to exclude from autoscaling.
- FriendlyName string
- Friendly name of the Scaling Plan.
- HostPools []ScalingPlan Host Pool Args 
- One or more host_poolblocks as defined below.
- Location string
- The Azure Region where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- Name string
- The name which should be used for this Virtual Desktop Scaling Plan . Changing this forces a new Virtual Desktop Scaling Plan to be created.
- map[string]string
- A mapping of tags which should be assigned to the Virtual Desktop Scaling Plan .
- resourceGroup StringName 
- The name of the Resource Group where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- schedules
List<ScalingPlan Schedule> 
- One or more scheduleblocks as defined below.
- timeZone String
- Specifies the Time Zone which should be used by the Scaling Plan for time based events, the possible values are defined here.
- description String
- A description of the Scaling Plan.
- exclusionTag String
- The name of the tag associated with the VMs you want to exclude from autoscaling.
- friendlyName String
- Friendly name of the Scaling Plan.
- hostPools List<ScalingPlan Host Pool> 
- One or more host_poolblocks as defined below.
- location String
- The Azure Region where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- name String
- The name which should be used for this Virtual Desktop Scaling Plan . Changing this forces a new Virtual Desktop Scaling Plan to be created.
- Map<String,String>
- A mapping of tags which should be assigned to the Virtual Desktop Scaling Plan .
- resourceGroup stringName 
- The name of the Resource Group where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- schedules
ScalingPlan Schedule[] 
- One or more scheduleblocks as defined below.
- timeZone string
- Specifies the Time Zone which should be used by the Scaling Plan for time based events, the possible values are defined here.
- description string
- A description of the Scaling Plan.
- exclusionTag string
- The name of the tag associated with the VMs you want to exclude from autoscaling.
- friendlyName string
- Friendly name of the Scaling Plan.
- hostPools ScalingPlan Host Pool[] 
- One or more host_poolblocks as defined below.
- location string
- The Azure Region where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- name string
- The name which should be used for this Virtual Desktop Scaling Plan . Changing this forces a new Virtual Desktop Scaling Plan to be created.
- {[key: string]: string}
- A mapping of tags which should be assigned to the Virtual Desktop Scaling Plan .
- resource_group_ strname 
- The name of the Resource Group where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- schedules
Sequence[ScalingPlan Schedule Args] 
- One or more scheduleblocks as defined below.
- time_zone str
- Specifies the Time Zone which should be used by the Scaling Plan for time based events, the possible values are defined here.
- description str
- A description of the Scaling Plan.
- exclusion_tag str
- The name of the tag associated with the VMs you want to exclude from autoscaling.
- friendly_name str
- Friendly name of the Scaling Plan.
- host_pools Sequence[ScalingPlan Host Pool Args] 
- One or more host_poolblocks as defined below.
- location str
- The Azure Region where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- name str
- The name which should be used for this Virtual Desktop Scaling Plan . Changing this forces a new Virtual Desktop Scaling Plan to be created.
- Mapping[str, str]
- A mapping of tags which should be assigned to the Virtual Desktop Scaling Plan .
- resourceGroup StringName 
- The name of the Resource Group where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- schedules List<Property Map>
- One or more scheduleblocks as defined below.
- timeZone String
- Specifies the Time Zone which should be used by the Scaling Plan for time based events, the possible values are defined here.
- description String
- A description of the Scaling Plan.
- exclusionTag String
- The name of the tag associated with the VMs you want to exclude from autoscaling.
- friendlyName String
- Friendly name of the Scaling Plan.
- hostPools List<Property Map>
- One or more host_poolblocks as defined below.
- location String
- The Azure Region where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- name String
- The name which should be used for this Virtual Desktop Scaling Plan . Changing this forces a new Virtual Desktop Scaling Plan to be created.
- Map<String>
- A mapping of tags which should be assigned to the Virtual Desktop Scaling Plan .
Outputs
All input properties are implicitly available as output properties. Additionally, the ScalingPlan resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing ScalingPlan Resource
Get an existing ScalingPlan resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: ScalingPlanState, opts?: CustomResourceOptions): ScalingPlan@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        description: Optional[str] = None,
        exclusion_tag: Optional[str] = None,
        friendly_name: Optional[str] = None,
        host_pools: Optional[Sequence[ScalingPlanHostPoolArgs]] = None,
        location: Optional[str] = None,
        name: Optional[str] = None,
        resource_group_name: Optional[str] = None,
        schedules: Optional[Sequence[ScalingPlanScheduleArgs]] = None,
        tags: Optional[Mapping[str, str]] = None,
        time_zone: Optional[str] = None) -> ScalingPlanfunc GetScalingPlan(ctx *Context, name string, id IDInput, state *ScalingPlanState, opts ...ResourceOption) (*ScalingPlan, error)public static ScalingPlan Get(string name, Input<string> id, ScalingPlanState? state, CustomResourceOptions? opts = null)public static ScalingPlan get(String name, Output<String> id, ScalingPlanState state, CustomResourceOptions options)resources:  _:    type: azure:desktopvirtualization:ScalingPlan    get:      id: ${id}- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Description string
- A description of the Scaling Plan.
- ExclusionTag string
- The name of the tag associated with the VMs you want to exclude from autoscaling.
- FriendlyName string
- Friendly name of the Scaling Plan.
- HostPools List<ScalingPlan Host Pool> 
- One or more host_poolblocks as defined below.
- Location string
- The Azure Region where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- Name string
- The name which should be used for this Virtual Desktop Scaling Plan . Changing this forces a new Virtual Desktop Scaling Plan to be created.
- ResourceGroup stringName 
- The name of the Resource Group where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- Schedules
List<ScalingPlan Schedule> 
- One or more scheduleblocks as defined below.
- Dictionary<string, string>
- A mapping of tags which should be assigned to the Virtual Desktop Scaling Plan .
- TimeZone string
- Specifies the Time Zone which should be used by the Scaling Plan for time based events, the possible values are defined here.
- Description string
- A description of the Scaling Plan.
- ExclusionTag string
- The name of the tag associated with the VMs you want to exclude from autoscaling.
- FriendlyName string
- Friendly name of the Scaling Plan.
- HostPools []ScalingPlan Host Pool Args 
- One or more host_poolblocks as defined below.
- Location string
- The Azure Region where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- Name string
- The name which should be used for this Virtual Desktop Scaling Plan . Changing this forces a new Virtual Desktop Scaling Plan to be created.
- ResourceGroup stringName 
- The name of the Resource Group where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- Schedules
[]ScalingPlan Schedule Args 
- One or more scheduleblocks as defined below.
- map[string]string
- A mapping of tags which should be assigned to the Virtual Desktop Scaling Plan .
- TimeZone string
- Specifies the Time Zone which should be used by the Scaling Plan for time based events, the possible values are defined here.
- description String
- A description of the Scaling Plan.
- exclusionTag String
- The name of the tag associated with the VMs you want to exclude from autoscaling.
- friendlyName String
- Friendly name of the Scaling Plan.
- hostPools List<ScalingPlan Host Pool> 
- One or more host_poolblocks as defined below.
- location String
- The Azure Region where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- name String
- The name which should be used for this Virtual Desktop Scaling Plan . Changing this forces a new Virtual Desktop Scaling Plan to be created.
- resourceGroup StringName 
- The name of the Resource Group where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- schedules
List<ScalingPlan Schedule> 
- One or more scheduleblocks as defined below.
- Map<String,String>
- A mapping of tags which should be assigned to the Virtual Desktop Scaling Plan .
- timeZone String
- Specifies the Time Zone which should be used by the Scaling Plan for time based events, the possible values are defined here.
- description string
- A description of the Scaling Plan.
- exclusionTag string
- The name of the tag associated with the VMs you want to exclude from autoscaling.
- friendlyName string
- Friendly name of the Scaling Plan.
- hostPools ScalingPlan Host Pool[] 
- One or more host_poolblocks as defined below.
- location string
- The Azure Region where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- name string
- The name which should be used for this Virtual Desktop Scaling Plan . Changing this forces a new Virtual Desktop Scaling Plan to be created.
- resourceGroup stringName 
- The name of the Resource Group where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- schedules
ScalingPlan Schedule[] 
- One or more scheduleblocks as defined below.
- {[key: string]: string}
- A mapping of tags which should be assigned to the Virtual Desktop Scaling Plan .
- timeZone string
- Specifies the Time Zone which should be used by the Scaling Plan for time based events, the possible values are defined here.
- description str
- A description of the Scaling Plan.
- exclusion_tag str
- The name of the tag associated with the VMs you want to exclude from autoscaling.
- friendly_name str
- Friendly name of the Scaling Plan.
- host_pools Sequence[ScalingPlan Host Pool Args] 
- One or more host_poolblocks as defined below.
- location str
- The Azure Region where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- name str
- The name which should be used for this Virtual Desktop Scaling Plan . Changing this forces a new Virtual Desktop Scaling Plan to be created.
- resource_group_ strname 
- The name of the Resource Group where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- schedules
Sequence[ScalingPlan Schedule Args] 
- One or more scheduleblocks as defined below.
- Mapping[str, str]
- A mapping of tags which should be assigned to the Virtual Desktop Scaling Plan .
- time_zone str
- Specifies the Time Zone which should be used by the Scaling Plan for time based events, the possible values are defined here.
- description String
- A description of the Scaling Plan.
- exclusionTag String
- The name of the tag associated with the VMs you want to exclude from autoscaling.
- friendlyName String
- Friendly name of the Scaling Plan.
- hostPools List<Property Map>
- One or more host_poolblocks as defined below.
- location String
- The Azure Region where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- name String
- The name which should be used for this Virtual Desktop Scaling Plan . Changing this forces a new Virtual Desktop Scaling Plan to be created.
- resourceGroup StringName 
- The name of the Resource Group where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.
- schedules List<Property Map>
- One or more scheduleblocks as defined below.
- Map<String>
- A mapping of tags which should be assigned to the Virtual Desktop Scaling Plan .
- timeZone String
- Specifies the Time Zone which should be used by the Scaling Plan for time based events, the possible values are defined here.
Supporting Types
ScalingPlanHostPool, ScalingPlanHostPoolArgs        
- HostpoolId string
- The ID of the HostPool to assign the Scaling Plan to.
- ScalingPlan boolEnabled 
- Specifies if the scaling plan is enabled or disabled for the HostPool.
- HostpoolId string
- The ID of the HostPool to assign the Scaling Plan to.
- ScalingPlan boolEnabled 
- Specifies if the scaling plan is enabled or disabled for the HostPool.
- hostpoolId String
- The ID of the HostPool to assign the Scaling Plan to.
- scalingPlan BooleanEnabled 
- Specifies if the scaling plan is enabled or disabled for the HostPool.
- hostpoolId string
- The ID of the HostPool to assign the Scaling Plan to.
- scalingPlan booleanEnabled 
- Specifies if the scaling plan is enabled or disabled for the HostPool.
- hostpool_id str
- The ID of the HostPool to assign the Scaling Plan to.
- scaling_plan_ boolenabled 
- Specifies if the scaling plan is enabled or disabled for the HostPool.
- hostpoolId String
- The ID of the HostPool to assign the Scaling Plan to.
- scalingPlan BooleanEnabled 
- Specifies if the scaling plan is enabled or disabled for the HostPool.
ScalingPlanSchedule, ScalingPlanScheduleArgs      
- DaysOf List<string>Weeks 
- A list of Days of the Week on which this schedule will be used. Possible values are Monday,Tuesday,Wednesday,Thursday,Friday,Saturday, andSunday
- Name string
- The name of the schedule.
- OffPeak stringLoad Balancing Algorithm 
- The load Balancing Algorithm to use during Off-Peak Hours. Possible values are DepthFirstandBreadthFirst.
- OffPeak stringStart Time 
- The time at which Off-Peak scaling will begin. This is also the end-time for the Ramp-Down period. The time must be specified in "HH:MM" format.
- PeakLoad stringBalancing Algorithm 
- The load Balancing Algorithm to use during Peak Hours. Possible values are DepthFirstandBreadthFirst.
- PeakStart stringTime 
- The time at which Peak scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- RampDown intCapacity Threshold Percent 
- This is the value in percentage of used host pool capacity that will be considered to evaluate whether to turn on/off virtual machines during the ramp-down and off-peak hours. For example, if capacity threshold is specified as 60% and your total host pool capacity is 100 sessions, autoscale will turn on additional session hosts once the host pool exceeds a load of 60 sessions.
- RampDown boolForce Logoff Users 
- Whether users will be forced to log-off session hosts once the ramp_down_wait_time_minutesvalue has been exceeded during the Ramp-Down period. Possible values aretrueandfalse.
- RampDown stringLoad Balancing Algorithm 
- The load Balancing Algorithm to use during the Ramp-Down period. Possible values are DepthFirstandBreadthFirst.
- RampDown intMinimum Hosts Percent 
- The minimum percentage of session host virtual machines that you would like to get to for ramp-down and off-peak hours. For example, if Minimum percentage of hosts is specified as 10% and total number of session hosts in your host pool is 10, autoscale will ensure a minimum of 1 session host is available to take user connections.
- RampDown stringNotification Message 
- The notification message to send to users during Ramp-Down period when they are required to log-off.
- RampDown stringStart Time 
- The time at which Ramp-Down scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- RampDown stringStop Hosts When 
- Controls Session Host shutdown behaviour during Ramp-Down period. Session Hosts can either be shutdown when all sessions on the Session Host have ended, or when there are no Active sessions left on the Session Host. Possible values are ZeroSessionsandZeroActiveSessions.
- RampDown intWait Time Minutes 
- The number of minutes during Ramp-Down period that autoscale will wait after setting the session host VMs to drain mode, notifying any currently signed in users to save their work before forcing the users to logoff. Once all user sessions on the session host VM have been logged off, Autoscale will shut down the VM.
- RampUp stringLoad Balancing Algorithm 
- The load Balancing Algorithm to use during the Ramp-Up period. Possible values are DepthFirstandBreadthFirst.
- RampUp stringStart Time 
- The time at which Ramp-Up scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- RampUp intCapacity Threshold Percent 
- This is the value of percentage of used host pool capacity that will be considered to evaluate whether to turn on/off virtual machines during the ramp-up and peak hours. For example, if capacity threshold is specified as 60%and your total host pool capacity is100sessions, autoscale will turn on additional session hosts once the host pool exceeds a load of60sessions.
- RampUp intMinimum Hosts Percent 
- Specifies the minimum percentage of session host virtual machines to start during ramp-up for peak hours. For example, if Minimum percentage of hosts is specified as 10%and total number of session hosts in your host pool is10, autoscale will ensure a minimum of1session host is available to take user connections.
- DaysOf []stringWeeks 
- A list of Days of the Week on which this schedule will be used. Possible values are Monday,Tuesday,Wednesday,Thursday,Friday,Saturday, andSunday
- Name string
- The name of the schedule.
- OffPeak stringLoad Balancing Algorithm 
- The load Balancing Algorithm to use during Off-Peak Hours. Possible values are DepthFirstandBreadthFirst.
- OffPeak stringStart Time 
- The time at which Off-Peak scaling will begin. This is also the end-time for the Ramp-Down period. The time must be specified in "HH:MM" format.
- PeakLoad stringBalancing Algorithm 
- The load Balancing Algorithm to use during Peak Hours. Possible values are DepthFirstandBreadthFirst.
- PeakStart stringTime 
- The time at which Peak scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- RampDown intCapacity Threshold Percent 
- This is the value in percentage of used host pool capacity that will be considered to evaluate whether to turn on/off virtual machines during the ramp-down and off-peak hours. For example, if capacity threshold is specified as 60% and your total host pool capacity is 100 sessions, autoscale will turn on additional session hosts once the host pool exceeds a load of 60 sessions.
- RampDown boolForce Logoff Users 
- Whether users will be forced to log-off session hosts once the ramp_down_wait_time_minutesvalue has been exceeded during the Ramp-Down period. Possible values aretrueandfalse.
- RampDown stringLoad Balancing Algorithm 
- The load Balancing Algorithm to use during the Ramp-Down period. Possible values are DepthFirstandBreadthFirst.
- RampDown intMinimum Hosts Percent 
- The minimum percentage of session host virtual machines that you would like to get to for ramp-down and off-peak hours. For example, if Minimum percentage of hosts is specified as 10% and total number of session hosts in your host pool is 10, autoscale will ensure a minimum of 1 session host is available to take user connections.
- RampDown stringNotification Message 
- The notification message to send to users during Ramp-Down period when they are required to log-off.
- RampDown stringStart Time 
- The time at which Ramp-Down scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- RampDown stringStop Hosts When 
- Controls Session Host shutdown behaviour during Ramp-Down period. Session Hosts can either be shutdown when all sessions on the Session Host have ended, or when there are no Active sessions left on the Session Host. Possible values are ZeroSessionsandZeroActiveSessions.
- RampDown intWait Time Minutes 
- The number of minutes during Ramp-Down period that autoscale will wait after setting the session host VMs to drain mode, notifying any currently signed in users to save their work before forcing the users to logoff. Once all user sessions on the session host VM have been logged off, Autoscale will shut down the VM.
- RampUp stringLoad Balancing Algorithm 
- The load Balancing Algorithm to use during the Ramp-Up period. Possible values are DepthFirstandBreadthFirst.
- RampUp stringStart Time 
- The time at which Ramp-Up scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- RampUp intCapacity Threshold Percent 
- This is the value of percentage of used host pool capacity that will be considered to evaluate whether to turn on/off virtual machines during the ramp-up and peak hours. For example, if capacity threshold is specified as 60%and your total host pool capacity is100sessions, autoscale will turn on additional session hosts once the host pool exceeds a load of60sessions.
- RampUp intMinimum Hosts Percent 
- Specifies the minimum percentage of session host virtual machines to start during ramp-up for peak hours. For example, if Minimum percentage of hosts is specified as 10%and total number of session hosts in your host pool is10, autoscale will ensure a minimum of1session host is available to take user connections.
- daysOf List<String>Weeks 
- A list of Days of the Week on which this schedule will be used. Possible values are Monday,Tuesday,Wednesday,Thursday,Friday,Saturday, andSunday
- name String
- The name of the schedule.
- offPeak StringLoad Balancing Algorithm 
- The load Balancing Algorithm to use during Off-Peak Hours. Possible values are DepthFirstandBreadthFirst.
- offPeak StringStart Time 
- The time at which Off-Peak scaling will begin. This is also the end-time for the Ramp-Down period. The time must be specified in "HH:MM" format.
- peakLoad StringBalancing Algorithm 
- The load Balancing Algorithm to use during Peak Hours. Possible values are DepthFirstandBreadthFirst.
- peakStart StringTime 
- The time at which Peak scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- rampDown IntegerCapacity Threshold Percent 
- This is the value in percentage of used host pool capacity that will be considered to evaluate whether to turn on/off virtual machines during the ramp-down and off-peak hours. For example, if capacity threshold is specified as 60% and your total host pool capacity is 100 sessions, autoscale will turn on additional session hosts once the host pool exceeds a load of 60 sessions.
- rampDown BooleanForce Logoff Users 
- Whether users will be forced to log-off session hosts once the ramp_down_wait_time_minutesvalue has been exceeded during the Ramp-Down period. Possible values aretrueandfalse.
- rampDown StringLoad Balancing Algorithm 
- The load Balancing Algorithm to use during the Ramp-Down period. Possible values are DepthFirstandBreadthFirst.
- rampDown IntegerMinimum Hosts Percent 
- The minimum percentage of session host virtual machines that you would like to get to for ramp-down and off-peak hours. For example, if Minimum percentage of hosts is specified as 10% and total number of session hosts in your host pool is 10, autoscale will ensure a minimum of 1 session host is available to take user connections.
- rampDown StringNotification Message 
- The notification message to send to users during Ramp-Down period when they are required to log-off.
- rampDown StringStart Time 
- The time at which Ramp-Down scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- rampDown StringStop Hosts When 
- Controls Session Host shutdown behaviour during Ramp-Down period. Session Hosts can either be shutdown when all sessions on the Session Host have ended, or when there are no Active sessions left on the Session Host. Possible values are ZeroSessionsandZeroActiveSessions.
- rampDown IntegerWait Time Minutes 
- The number of minutes during Ramp-Down period that autoscale will wait after setting the session host VMs to drain mode, notifying any currently signed in users to save their work before forcing the users to logoff. Once all user sessions on the session host VM have been logged off, Autoscale will shut down the VM.
- rampUp StringLoad Balancing Algorithm 
- The load Balancing Algorithm to use during the Ramp-Up period. Possible values are DepthFirstandBreadthFirst.
- rampUp StringStart Time 
- The time at which Ramp-Up scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- rampUp IntegerCapacity Threshold Percent 
- This is the value of percentage of used host pool capacity that will be considered to evaluate whether to turn on/off virtual machines during the ramp-up and peak hours. For example, if capacity threshold is specified as 60%and your total host pool capacity is100sessions, autoscale will turn on additional session hosts once the host pool exceeds a load of60sessions.
- rampUp IntegerMinimum Hosts Percent 
- Specifies the minimum percentage of session host virtual machines to start during ramp-up for peak hours. For example, if Minimum percentage of hosts is specified as 10%and total number of session hosts in your host pool is10, autoscale will ensure a minimum of1session host is available to take user connections.
- daysOf string[]Weeks 
- A list of Days of the Week on which this schedule will be used. Possible values are Monday,Tuesday,Wednesday,Thursday,Friday,Saturday, andSunday
- name string
- The name of the schedule.
- offPeak stringLoad Balancing Algorithm 
- The load Balancing Algorithm to use during Off-Peak Hours. Possible values are DepthFirstandBreadthFirst.
- offPeak stringStart Time 
- The time at which Off-Peak scaling will begin. This is also the end-time for the Ramp-Down period. The time must be specified in "HH:MM" format.
- peakLoad stringBalancing Algorithm 
- The load Balancing Algorithm to use during Peak Hours. Possible values are DepthFirstandBreadthFirst.
- peakStart stringTime 
- The time at which Peak scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- rampDown numberCapacity Threshold Percent 
- This is the value in percentage of used host pool capacity that will be considered to evaluate whether to turn on/off virtual machines during the ramp-down and off-peak hours. For example, if capacity threshold is specified as 60% and your total host pool capacity is 100 sessions, autoscale will turn on additional session hosts once the host pool exceeds a load of 60 sessions.
- rampDown booleanForce Logoff Users 
- Whether users will be forced to log-off session hosts once the ramp_down_wait_time_minutesvalue has been exceeded during the Ramp-Down period. Possible values aretrueandfalse.
- rampDown stringLoad Balancing Algorithm 
- The load Balancing Algorithm to use during the Ramp-Down period. Possible values are DepthFirstandBreadthFirst.
- rampDown numberMinimum Hosts Percent 
- The minimum percentage of session host virtual machines that you would like to get to for ramp-down and off-peak hours. For example, if Minimum percentage of hosts is specified as 10% and total number of session hosts in your host pool is 10, autoscale will ensure a minimum of 1 session host is available to take user connections.
- rampDown stringNotification Message 
- The notification message to send to users during Ramp-Down period when they are required to log-off.
- rampDown stringStart Time 
- The time at which Ramp-Down scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- rampDown stringStop Hosts When 
- Controls Session Host shutdown behaviour during Ramp-Down period. Session Hosts can either be shutdown when all sessions on the Session Host have ended, or when there are no Active sessions left on the Session Host. Possible values are ZeroSessionsandZeroActiveSessions.
- rampDown numberWait Time Minutes 
- The number of minutes during Ramp-Down period that autoscale will wait after setting the session host VMs to drain mode, notifying any currently signed in users to save their work before forcing the users to logoff. Once all user sessions on the session host VM have been logged off, Autoscale will shut down the VM.
- rampUp stringLoad Balancing Algorithm 
- The load Balancing Algorithm to use during the Ramp-Up period. Possible values are DepthFirstandBreadthFirst.
- rampUp stringStart Time 
- The time at which Ramp-Up scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- rampUp numberCapacity Threshold Percent 
- This is the value of percentage of used host pool capacity that will be considered to evaluate whether to turn on/off virtual machines during the ramp-up and peak hours. For example, if capacity threshold is specified as 60%and your total host pool capacity is100sessions, autoscale will turn on additional session hosts once the host pool exceeds a load of60sessions.
- rampUp numberMinimum Hosts Percent 
- Specifies the minimum percentage of session host virtual machines to start during ramp-up for peak hours. For example, if Minimum percentage of hosts is specified as 10%and total number of session hosts in your host pool is10, autoscale will ensure a minimum of1session host is available to take user connections.
- days_of_ Sequence[str]weeks 
- A list of Days of the Week on which this schedule will be used. Possible values are Monday,Tuesday,Wednesday,Thursday,Friday,Saturday, andSunday
- name str
- The name of the schedule.
- off_peak_ strload_ balancing_ algorithm 
- The load Balancing Algorithm to use during Off-Peak Hours. Possible values are DepthFirstandBreadthFirst.
- off_peak_ strstart_ time 
- The time at which Off-Peak scaling will begin. This is also the end-time for the Ramp-Down period. The time must be specified in "HH:MM" format.
- peak_load_ strbalancing_ algorithm 
- The load Balancing Algorithm to use during Peak Hours. Possible values are DepthFirstandBreadthFirst.
- peak_start_ strtime 
- The time at which Peak scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- ramp_down_ intcapacity_ threshold_ percent 
- This is the value in percentage of used host pool capacity that will be considered to evaluate whether to turn on/off virtual machines during the ramp-down and off-peak hours. For example, if capacity threshold is specified as 60% and your total host pool capacity is 100 sessions, autoscale will turn on additional session hosts once the host pool exceeds a load of 60 sessions.
- ramp_down_ boolforce_ logoff_ users 
- Whether users will be forced to log-off session hosts once the ramp_down_wait_time_minutesvalue has been exceeded during the Ramp-Down period. Possible values aretrueandfalse.
- ramp_down_ strload_ balancing_ algorithm 
- The load Balancing Algorithm to use during the Ramp-Down period. Possible values are DepthFirstandBreadthFirst.
- ramp_down_ intminimum_ hosts_ percent 
- The minimum percentage of session host virtual machines that you would like to get to for ramp-down and off-peak hours. For example, if Minimum percentage of hosts is specified as 10% and total number of session hosts in your host pool is 10, autoscale will ensure a minimum of 1 session host is available to take user connections.
- ramp_down_ strnotification_ message 
- The notification message to send to users during Ramp-Down period when they are required to log-off.
- ramp_down_ strstart_ time 
- The time at which Ramp-Down scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- ramp_down_ strstop_ hosts_ when 
- Controls Session Host shutdown behaviour during Ramp-Down period. Session Hosts can either be shutdown when all sessions on the Session Host have ended, or when there are no Active sessions left on the Session Host. Possible values are ZeroSessionsandZeroActiveSessions.
- ramp_down_ intwait_ time_ minutes 
- The number of minutes during Ramp-Down period that autoscale will wait after setting the session host VMs to drain mode, notifying any currently signed in users to save their work before forcing the users to logoff. Once all user sessions on the session host VM have been logged off, Autoscale will shut down the VM.
- ramp_up_ strload_ balancing_ algorithm 
- The load Balancing Algorithm to use during the Ramp-Up period. Possible values are DepthFirstandBreadthFirst.
- ramp_up_ strstart_ time 
- The time at which Ramp-Up scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- ramp_up_ intcapacity_ threshold_ percent 
- This is the value of percentage of used host pool capacity that will be considered to evaluate whether to turn on/off virtual machines during the ramp-up and peak hours. For example, if capacity threshold is specified as 60%and your total host pool capacity is100sessions, autoscale will turn on additional session hosts once the host pool exceeds a load of60sessions.
- ramp_up_ intminimum_ hosts_ percent 
- Specifies the minimum percentage of session host virtual machines to start during ramp-up for peak hours. For example, if Minimum percentage of hosts is specified as 10%and total number of session hosts in your host pool is10, autoscale will ensure a minimum of1session host is available to take user connections.
- daysOf List<String>Weeks 
- A list of Days of the Week on which this schedule will be used. Possible values are Monday,Tuesday,Wednesday,Thursday,Friday,Saturday, andSunday
- name String
- The name of the schedule.
- offPeak StringLoad Balancing Algorithm 
- The load Balancing Algorithm to use during Off-Peak Hours. Possible values are DepthFirstandBreadthFirst.
- offPeak StringStart Time 
- The time at which Off-Peak scaling will begin. This is also the end-time for the Ramp-Down period. The time must be specified in "HH:MM" format.
- peakLoad StringBalancing Algorithm 
- The load Balancing Algorithm to use during Peak Hours. Possible values are DepthFirstandBreadthFirst.
- peakStart StringTime 
- The time at which Peak scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- rampDown NumberCapacity Threshold Percent 
- This is the value in percentage of used host pool capacity that will be considered to evaluate whether to turn on/off virtual machines during the ramp-down and off-peak hours. For example, if capacity threshold is specified as 60% and your total host pool capacity is 100 sessions, autoscale will turn on additional session hosts once the host pool exceeds a load of 60 sessions.
- rampDown BooleanForce Logoff Users 
- Whether users will be forced to log-off session hosts once the ramp_down_wait_time_minutesvalue has been exceeded during the Ramp-Down period. Possible values aretrueandfalse.
- rampDown StringLoad Balancing Algorithm 
- The load Balancing Algorithm to use during the Ramp-Down period. Possible values are DepthFirstandBreadthFirst.
- rampDown NumberMinimum Hosts Percent 
- The minimum percentage of session host virtual machines that you would like to get to for ramp-down and off-peak hours. For example, if Minimum percentage of hosts is specified as 10% and total number of session hosts in your host pool is 10, autoscale will ensure a minimum of 1 session host is available to take user connections.
- rampDown StringNotification Message 
- The notification message to send to users during Ramp-Down period when they are required to log-off.
- rampDown StringStart Time 
- The time at which Ramp-Down scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- rampDown StringStop Hosts When 
- Controls Session Host shutdown behaviour during Ramp-Down period. Session Hosts can either be shutdown when all sessions on the Session Host have ended, or when there are no Active sessions left on the Session Host. Possible values are ZeroSessionsandZeroActiveSessions.
- rampDown NumberWait Time Minutes 
- The number of minutes during Ramp-Down period that autoscale will wait after setting the session host VMs to drain mode, notifying any currently signed in users to save their work before forcing the users to logoff. Once all user sessions on the session host VM have been logged off, Autoscale will shut down the VM.
- rampUp StringLoad Balancing Algorithm 
- The load Balancing Algorithm to use during the Ramp-Up period. Possible values are DepthFirstandBreadthFirst.
- rampUp StringStart Time 
- The time at which Ramp-Up scaling will begin. This is also the end-time for the Ramp-Up period. The time must be specified in "HH:MM" format.
- rampUp NumberCapacity Threshold Percent 
- This is the value of percentage of used host pool capacity that will be considered to evaluate whether to turn on/off virtual machines during the ramp-up and peak hours. For example, if capacity threshold is specified as 60%and your total host pool capacity is100sessions, autoscale will turn on additional session hosts once the host pool exceeds a load of60sessions.
- rampUp NumberMinimum Hosts Percent 
- Specifies the minimum percentage of session host virtual machines to start during ramp-up for peak hours. For example, if Minimum percentage of hosts is specified as 10%and total number of session hosts in your host pool is10, autoscale will ensure a minimum of1session host is available to take user connections.
Import
Virtual Desktop Scaling Plans can be imported using the resource id, e.g.
$ pulumi import azure:desktopvirtualization/scalingPlan:ScalingPlan example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DesktopVirtualization/scalingPlans/plan1
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- Azure Classic pulumi/pulumi-azure
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the azurermTerraform Provider.