Scaling Plan Args
Represents a scaling plan definition. Uses Azure REST API version 2024-04-03. In version 2.x of the Azure Native provider, it used API version 2022-09-09. Other available API versions: 2022-09-09, 2022-10-14-preview, 2023-09-05, 2023-10-04-preview, 2023-11-01-preview, 2024-01-16-preview, 2024-03-06-preview, 2024-04-08-preview, 2024-08-08-preview, 2024-11-01-preview. These can be accessed by generating a local SDK package using the CLI command pulumi package add azure-native desktopvirtualization [ApiVersion]
. See the ../../../version-guide/#accessing-any-api-version-via-local-packages for details.
Example Usage
ScalingPlans_Create
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var scalingPlan = new AzureNative.DesktopVirtualization.ScalingPlan("scalingPlan", new()
{
Description = "Description of Scaling Plan",
ExclusionTag = "value",
FriendlyName = "Scaling Plan 1",
HostPoolReferences = new[]
{
new AzureNative.DesktopVirtualization.Inputs.ScalingHostPoolReferenceArgs
{
HostPoolArmPath = "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
ScalingPlanEnabled = true,
},
},
HostPoolType = AzureNative.DesktopVirtualization.ScalingHostPoolType.Pooled,
Location = "centralus",
ResourceGroupName = "resourceGroup1",
ScalingPlanName = "scalingPlan1",
Schedules = new[]
{
new AzureNative.DesktopVirtualization.Inputs.ScalingScheduleArgs
{
DaysOfWeek = new[]
{
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
},
Name = "schedule1",
OffPeakLoadBalancingAlgorithm = AzureNative.DesktopVirtualization.SessionHostLoadBalancingAlgorithm.DepthFirst,
OffPeakStartTime = new AzureNative.DesktopVirtualization.Inputs.TimeArgs
{
Hour = 20,
Minute = 0,
},
PeakLoadBalancingAlgorithm = AzureNative.DesktopVirtualization.SessionHostLoadBalancingAlgorithm.BreadthFirst,
PeakStartTime = new AzureNative.DesktopVirtualization.Inputs.TimeArgs
{
Hour = 8,
Minute = 0,
},
RampDownCapacityThresholdPct = 50,
RampDownForceLogoffUsers = true,
RampDownLoadBalancingAlgorithm = AzureNative.DesktopVirtualization.SessionHostLoadBalancingAlgorithm.DepthFirst,
RampDownMinimumHostsPct = 20,
RampDownNotificationMessage = "message",
RampDownStartTime = new AzureNative.DesktopVirtualization.Inputs.TimeArgs
{
Hour = 18,
Minute = 0,
},
RampDownWaitTimeMinutes = 30,
RampUpCapacityThresholdPct = 80,
RampUpLoadBalancingAlgorithm = AzureNative.DesktopVirtualization.SessionHostLoadBalancingAlgorithm.DepthFirst,
RampUpMinimumHostsPct = 20,
RampUpStartTime = new AzureNative.DesktopVirtualization.Inputs.TimeArgs
{
Hour = 6,
Minute = 0,
},
},
},
Tags =
{
{ "tag1", "value1" },
{ "tag2", "value2" },
},
TimeZone = "Central Standard Time",
});
});
package main
import (
desktopvirtualization "github.com/pulumi/pulumi-azure-native-sdk/desktopvirtualization/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := desktopvirtualization.NewScalingPlan(ctx, "scalingPlan", &desktopvirtualization.ScalingPlanArgs{
Description: pulumi.String("Description of Scaling Plan"),
ExclusionTag: pulumi.String("value"),
FriendlyName: pulumi.String("Scaling Plan 1"),
HostPoolReferences: desktopvirtualization.ScalingHostPoolReferenceArray{
&desktopvirtualization.ScalingHostPoolReferenceArgs{
HostPoolArmPath: pulumi.String("/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1"),
ScalingPlanEnabled: pulumi.Bool(true),
},
},
HostPoolType: pulumi.String(desktopvirtualization.ScalingHostPoolTypePooled),
Location: pulumi.String("centralus"),
ResourceGroupName: pulumi.String("resourceGroup1"),
ScalingPlanName: pulumi.String("scalingPlan1"),
Schedules: desktopvirtualization.ScalingScheduleArray{
&desktopvirtualization.ScalingScheduleArgs{
DaysOfWeek: pulumi.StringArray{
pulumi.String("Monday"),
pulumi.String("Tuesday"),
pulumi.String("Wednesday"),
pulumi.String("Thursday"),
pulumi.String("Friday"),
},
Name: pulumi.String("schedule1"),
OffPeakLoadBalancingAlgorithm: pulumi.String(desktopvirtualization.SessionHostLoadBalancingAlgorithmDepthFirst),
OffPeakStartTime: &desktopvirtualization.TimeArgs{
Hour: pulumi.Int(20),
Minute: pulumi.Int(0),
},
PeakLoadBalancingAlgorithm: pulumi.String(desktopvirtualization.SessionHostLoadBalancingAlgorithmBreadthFirst),
PeakStartTime: &desktopvirtualization.TimeArgs{
Hour: pulumi.Int(8),
Minute: pulumi.Int(0),
},
RampDownCapacityThresholdPct: pulumi.Int(50),
RampDownForceLogoffUsers: pulumi.Bool(true),
RampDownLoadBalancingAlgorithm: pulumi.String(desktopvirtualization.SessionHostLoadBalancingAlgorithmDepthFirst),
RampDownMinimumHostsPct: pulumi.Int(20),
RampDownNotificationMessage: pulumi.String("message"),
RampDownStartTime: &desktopvirtualization.TimeArgs{
Hour: pulumi.Int(18),
Minute: pulumi.Int(0),
},
RampDownWaitTimeMinutes: pulumi.Int(30),
RampUpCapacityThresholdPct: pulumi.Int(80),
RampUpLoadBalancingAlgorithm: pulumi.String(desktopvirtualization.SessionHostLoadBalancingAlgorithmDepthFirst),
RampUpMinimumHostsPct: pulumi.Int(20),
RampUpStartTime: &desktopvirtualization.TimeArgs{
Hour: pulumi.Int(6),
Minute: pulumi.Int(0),
},
},
},
Tags: pulumi.StringMap{
"tag1": pulumi.String("value1"),
"tag2": pulumi.String("value2"),
},
TimeZone: pulumi.String("Central Standard Time"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.desktopvirtualization.ScalingPlan;
import com.pulumi.azurenative.desktopvirtualization.ScalingPlanArgs;
import com.pulumi.azurenative.desktopvirtualization.inputs.ScalingHostPoolReferenceArgs;
import com.pulumi.azurenative.desktopvirtualization.inputs.ScalingScheduleArgs;
import com.pulumi.azurenative.desktopvirtualization.inputs.TimeArgs;
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 scalingPlan = new ScalingPlan("scalingPlan", ScalingPlanArgs.builder()
.description("Description of Scaling Plan")
.exclusionTag("value")
.friendlyName("Scaling Plan 1")
.hostPoolReferences(ScalingHostPoolReferenceArgs.builder()
.hostPoolArmPath("/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1")
.scalingPlanEnabled(true)
.build())
.hostPoolType("Pooled")
.location("centralus")
.resourceGroupName("resourceGroup1")
.scalingPlanName("scalingPlan1")
.schedules(ScalingScheduleArgs.builder()
.daysOfWeek(
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday")
.name("schedule1")
.offPeakLoadBalancingAlgorithm("DepthFirst")
.offPeakStartTime(TimeArgs.builder()
.hour(20)
.minute(0)
.build())
.peakLoadBalancingAlgorithm("BreadthFirst")
.peakStartTime(TimeArgs.builder()
.hour(8)
.minute(0)
.build())
.rampDownCapacityThresholdPct(50)
.rampDownForceLogoffUsers(true)
.rampDownLoadBalancingAlgorithm("DepthFirst")
.rampDownMinimumHostsPct(20)
.rampDownNotificationMessage("message")
.rampDownStartTime(TimeArgs.builder()
.hour(18)
.minute(0)
.build())
.rampDownWaitTimeMinutes(30)
.rampUpCapacityThresholdPct(80)
.rampUpLoadBalancingAlgorithm("DepthFirst")
.rampUpMinimumHostsPct(20)
.rampUpStartTime(TimeArgs.builder()
.hour(6)
.minute(0)
.build())
.build())
.tags(Map.ofEntries(
Map.entry("tag1", "value1"),
Map.entry("tag2", "value2")
))
.timeZone("Central Standard Time")
.build());
}
}
Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:desktopvirtualization:ScalingPlan scalingPlan1 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/scalingPlans/{scalingPlanName}
Constructors
Properties
Description of scaling plan.
Exclusion tag for scaling plan.
User friendly name of scaling plan.
List of ScalingHostPoolReference definitions.
HostPool type for desktop.
The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.
The name of the resource group. The name is case insensitive.
The name of the scaling plan.
List of ScalingPlanPooledSchedule definitions.