Microsoft.DesktopVirtualization scalingPlans

Bicep resource definition

The scalingPlans resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.DesktopVirtualization/scalingPlans resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.DesktopVirtualization/scalingPlans@2024-08-08-preview' = {
  identity: {
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  kind: 'string'
  location: 'string'
  managedBy: 'string'
  name: 'string'
  plan: {
    name: 'string'
    product: 'string'
    promotionCode: 'string'
    publisher: 'string'
    version: 'string'
  }
  properties: {
    description: 'string'
    exclusionTag: 'string'
    friendlyName: 'string'
    hostPoolReferences: [
      {
        hostPoolArmPath: 'string'
        scalingPlanEnabled: bool
      }
    ]
    hostPoolType: 'string'
    schedules: [
      {
        daysOfWeek: [
          'string'
        ]
        name: 'string'
        offPeakLoadBalancingAlgorithm: 'string'
        offPeakStartTime: {
          hour: int
          minute: int
        }
        peakLoadBalancingAlgorithm: 'string'
        peakStartTime: {
          hour: int
          minute: int
        }
        rampDownCapacityThresholdPct: int
        rampDownForceLogoffUsers: bool
        rampDownLoadBalancingAlgorithm: 'string'
        rampDownMinimumHostsPct: int
        rampDownNotificationMessage: 'string'
        rampDownStartTime: {
          hour: int
          minute: int
        }
        rampDownStopHostsWhen: 'string'
        rampDownWaitTimeMinutes: int
        rampUpCapacityThresholdPct: int
        rampUpLoadBalancingAlgorithm: 'string'
        rampUpMinimumHostsPct: int
        rampUpStartTime: {
          hour: int
          minute: int
        }
      }
    ]
    timeZone: 'string'
  }
  sku: {
    capacity: int
    family: 'string'
    name: 'string'
    size: 'string'
    tier: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
}

Property values

ManagedServiceIdentity

Name Description Value
type Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). 'None'
'SystemAssigned'
'SystemAssigned,UserAssigned'
'UserAssigned' (required)
userAssignedIdentities The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests. ManagedServiceIdentityUserAssignedIdentities

ManagedServiceIdentityUserAssignedIdentities

Name Description Value

Microsoft.DesktopVirtualization/scalingPlans

Name Description Value
identity Managed service identity (system assigned and/or user assigned identities) ManagedServiceIdentity
kind Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. string

Constraints:
Pattern = ^[-\w\._,\(\)]+$
location The geo-location where the resource lives string (required)
managedBy 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. string
name The resource name string

Constraints:
Min length = 1
Max length = 1
Pattern = ^[A-Za-z0-9@.\-_ ]*$ (required)
plan Plan for the resource. Plan
properties Detailed properties for scaling plan. ScalingPlanProperties (required)
sku The resource model definition representing SKU Sku
tags Resource tags Dictionary of tag names and values. See Tags in templates

Plan

Name Description Value
name A user defined name of the 3rd Party Artifact that is being procured. string (required)
product The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. string (required)
promotionCode A publisher provided promotion code as provisioned in Data Market for the said product/artifact. string
publisher The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic string (required)
version The version of the desired product/artifact. string

ScalingHostPoolReference

Name Description Value
hostPoolArmPath Arm path of referenced hostpool. string
scalingPlanEnabled Is the scaling plan enabled for this hostpool. bool

ScalingPlanProperties

Name Description Value
description Description of scaling plan. string
exclusionTag Exclusion tag for scaling plan. string
friendlyName User friendly name of scaling plan. string
hostPoolReferences List of ScalingHostPoolReference definitions. ScalingHostPoolReference[]
hostPoolType HostPool type for desktop. 'Personal'
'Pooled'
schedules List of Pooled ScalingSchedule definitions. ScalingSchedule[]
timeZone Timezone of the scaling plan. string (required)

ScalingSchedule

Name Description Value
daysOfWeek Set of days of the week on which this schedule is active. String array containing any of:
'Friday'
'Monday'
'Saturday'
'Sunday'
'Thursday'
'Tuesday'
'Wednesday'
name Name of the ScalingPlanPooledSchedule. string
offPeakLoadBalancingAlgorithm Load balancing algorithm for off-peak period. 'BreadthFirst'
'DepthFirst'
offPeakStartTime Starting time for off-peak period. Time
peakLoadBalancingAlgorithm Load balancing algorithm for peak period. 'BreadthFirst'
'DepthFirst'
peakStartTime Starting time for peak period. Time
rampDownCapacityThresholdPct Capacity threshold for ramp down period. int

Constraints:
Min value = 1
Max value = 100
rampDownForceLogoffUsers Should users be logged off forcefully from hosts. bool
rampDownLoadBalancingAlgorithm Load balancing algorithm for ramp down period. 'BreadthFirst'
'DepthFirst'
rampDownMinimumHostsPct Minimum host percentage for ramp down period. int

Constraints:
Min value = 0
Max value = 100
rampDownNotificationMessage Notification message for users during ramp down period. string
rampDownStartTime Starting time for ramp down period. Time
rampDownStopHostsWhen Specifies when to stop hosts during ramp down period. 'ZeroActiveSessions'
'ZeroSessions'
rampDownWaitTimeMinutes Number of minutes to wait to stop hosts during ramp down period. int
rampUpCapacityThresholdPct Capacity threshold for ramp up period. int

Constraints:
Min value = 1
Max value = 100
rampUpLoadBalancingAlgorithm Load balancing algorithm for ramp up period. 'BreadthFirst'
'DepthFirst'
rampUpMinimumHostsPct Minimum host percentage for ramp up period. int

Constraints:
Min value = 0
Max value = 100
rampUpStartTime Starting time for ramp up period. Time

Sku

Name Description Value
capacity If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted. int
family If the service has different generations of hardware, for the same SKU, then that can be captured here. string
name The name of the SKU. E.g. P3. It is typically a letter+number code string (required)
size The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. string
tier This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. 'Basic'
'Free'
'Premium'
'Standard'

Time

Name Description Value
hour The hour. int

Constraints:
Min value = 0
Max value = 23 (required)
minute The minute. int

Constraints:
Min value = 0
Max value = 59 (required)

TrackedResourceTags

Name Description Value

UserAssignedIdentity

Name Description Value

ARM template resource definition

The scalingPlans resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.DesktopVirtualization/scalingPlans resource, add the following JSON to your template.

{
  "type": "Microsoft.DesktopVirtualization/scalingPlans",
  "apiVersion": "2024-08-08-preview",
  "name": "string",
  "identity": {
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {
      }
    }
  },
  "kind": "string",
  "location": "string",
  "managedBy": "string",
  "plan": {
    "name": "string",
    "product": "string",
    "promotionCode": "string",
    "publisher": "string",
    "version": "string"
  },
  "properties": {
    "description": "string",
    "exclusionTag": "string",
    "friendlyName": "string",
    "hostPoolReferences": [
      {
        "hostPoolArmPath": "string",
        "scalingPlanEnabled": "bool"
      }
    ],
    "hostPoolType": "string",
    "schedules": [
      {
        "daysOfWeek": [ "string" ],
        "name": "string",
        "offPeakLoadBalancingAlgorithm": "string",
        "offPeakStartTime": {
          "hour": "int",
          "minute": "int"
        },
        "peakLoadBalancingAlgorithm": "string",
        "peakStartTime": {
          "hour": "int",
          "minute": "int"
        },
        "rampDownCapacityThresholdPct": "int",
        "rampDownForceLogoffUsers": "bool",
        "rampDownLoadBalancingAlgorithm": "string",
        "rampDownMinimumHostsPct": "int",
        "rampDownNotificationMessage": "string",
        "rampDownStartTime": {
          "hour": "int",
          "minute": "int"
        },
        "rampDownStopHostsWhen": "string",
        "rampDownWaitTimeMinutes": "int",
        "rampUpCapacityThresholdPct": "int",
        "rampUpLoadBalancingAlgorithm": "string",
        "rampUpMinimumHostsPct": "int",
        "rampUpStartTime": {
          "hour": "int",
          "minute": "int"
        }
      }
    ],
    "timeZone": "string"
  },
  "sku": {
    "capacity": "int",
    "family": "string",
    "name": "string",
    "size": "string",
    "tier": "string"
  },
  "tags": {
    "{customized property}": "string"
  }
}

Property values

ManagedServiceIdentity

Name Description Value
type Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). 'None'
'SystemAssigned'
'SystemAssigned,UserAssigned'
'UserAssigned' (required)
userAssignedIdentities The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests. ManagedServiceIdentityUserAssignedIdentities

ManagedServiceIdentityUserAssignedIdentities

Name Description Value

Microsoft.DesktopVirtualization/scalingPlans

Name Description Value
apiVersion The api version '2024-08-08-preview'
identity Managed service identity (system assigned and/or user assigned identities) ManagedServiceIdentity
kind Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. string

Constraints:
Pattern = ^[-\w\._,\(\)]+$
location The geo-location where the resource lives string (required)
managedBy 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. string
name The resource name string

Constraints:
Min length = 1
Max length = 1
Pattern = ^[A-Za-z0-9@.\-_ ]*$ (required)
plan Plan for the resource. Plan
properties Detailed properties for scaling plan. ScalingPlanProperties (required)
sku The resource model definition representing SKU Sku
tags Resource tags Dictionary of tag names and values. See Tags in templates
type The resource type 'Microsoft.DesktopVirtualization/scalingPlans'

Plan

Name Description Value
name A user defined name of the 3rd Party Artifact that is being procured. string (required)
product The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. string (required)
promotionCode A publisher provided promotion code as provisioned in Data Market for the said product/artifact. string
publisher The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic string (required)
version The version of the desired product/artifact. string

ScalingHostPoolReference

Name Description Value
hostPoolArmPath Arm path of referenced hostpool. string
scalingPlanEnabled Is the scaling plan enabled for this hostpool. bool

ScalingPlanProperties

Name Description Value
description Description of scaling plan. string
exclusionTag Exclusion tag for scaling plan. string
friendlyName User friendly name of scaling plan. string
hostPoolReferences List of ScalingHostPoolReference definitions. ScalingHostPoolReference[]
hostPoolType HostPool type for desktop. 'Personal'
'Pooled'
schedules List of Pooled ScalingSchedule definitions. ScalingSchedule[]
timeZone Timezone of the scaling plan. string (required)

ScalingSchedule

Name Description Value
daysOfWeek Set of days of the week on which this schedule is active. String array containing any of:
'Friday'
'Monday'
'Saturday'
'Sunday'
'Thursday'
'Tuesday'
'Wednesday'
name Name of the ScalingPlanPooledSchedule. string
offPeakLoadBalancingAlgorithm Load balancing algorithm for off-peak period. 'BreadthFirst'
'DepthFirst'
offPeakStartTime Starting time for off-peak period. Time
peakLoadBalancingAlgorithm Load balancing algorithm for peak period. 'BreadthFirst'
'DepthFirst'
peakStartTime Starting time for peak period. Time
rampDownCapacityThresholdPct Capacity threshold for ramp down period. int

Constraints:
Min value = 1
Max value = 100
rampDownForceLogoffUsers Should users be logged off forcefully from hosts. bool
rampDownLoadBalancingAlgorithm Load balancing algorithm for ramp down period. 'BreadthFirst'
'DepthFirst'
rampDownMinimumHostsPct Minimum host percentage for ramp down period. int

Constraints:
Min value = 0
Max value = 100
rampDownNotificationMessage Notification message for users during ramp down period. string
rampDownStartTime Starting time for ramp down period. Time
rampDownStopHostsWhen Specifies when to stop hosts during ramp down period. 'ZeroActiveSessions'
'ZeroSessions'
rampDownWaitTimeMinutes Number of minutes to wait to stop hosts during ramp down period. int
rampUpCapacityThresholdPct Capacity threshold for ramp up period. int

Constraints:
Min value = 1
Max value = 100
rampUpLoadBalancingAlgorithm Load balancing algorithm for ramp up period. 'BreadthFirst'
'DepthFirst'
rampUpMinimumHostsPct Minimum host percentage for ramp up period. int

Constraints:
Min value = 0
Max value = 100
rampUpStartTime Starting time for ramp up period. Time

Sku

Name Description Value
capacity If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted. int
family If the service has different generations of hardware, for the same SKU, then that can be captured here. string
name The name of the SKU. E.g. P3. It is typically a letter+number code string (required)
size The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. string
tier This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. 'Basic'
'Free'
'Premium'
'Standard'

Time

Name Description Value
hour The hour. int

Constraints:
Min value = 0
Max value = 23 (required)
minute The minute. int

Constraints:
Min value = 0
Max value = 59 (required)

TrackedResourceTags

Name Description Value

UserAssignedIdentity

Name Description Value

Terraform (AzAPI provider) resource definition

The scalingPlans resource type can be deployed with operations that target:

  • Resource groups

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.DesktopVirtualization/scalingPlans resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.DesktopVirtualization/scalingPlans@2024-08-08-preview"
  name = "string"
  identity = {
    type = "string"
    userAssignedIdentities = {
      {customized property} = {
      }
    }
  }
  kind = "string"
  location = "string"
  managedBy = "string"
  plan = {
    name = "string"
    product = "string"
    promotionCode = "string"
    publisher = "string"
    version = "string"
  }
  sku = {
    capacity = int
    family = "string"
    name = "string"
    size = "string"
    tier = "string"
  }
  tags = {
    {customized property} = "string"
  }
  body = jsonencode({
    properties = {
      description = "string"
      exclusionTag = "string"
      friendlyName = "string"
      hostPoolReferences = [
        {
          hostPoolArmPath = "string"
          scalingPlanEnabled = bool
        }
      ]
      hostPoolType = "string"
      schedules = [
        {
          daysOfWeek = [
            "string"
          ]
          name = "string"
          offPeakLoadBalancingAlgorithm = "string"
          offPeakStartTime = {
            hour = int
            minute = int
          }
          peakLoadBalancingAlgorithm = "string"
          peakStartTime = {
            hour = int
            minute = int
          }
          rampDownCapacityThresholdPct = int
          rampDownForceLogoffUsers = bool
          rampDownLoadBalancingAlgorithm = "string"
          rampDownMinimumHostsPct = int
          rampDownNotificationMessage = "string"
          rampDownStartTime = {
            hour = int
            minute = int
          }
          rampDownStopHostsWhen = "string"
          rampDownWaitTimeMinutes = int
          rampUpCapacityThresholdPct = int
          rampUpLoadBalancingAlgorithm = "string"
          rampUpMinimumHostsPct = int
          rampUpStartTime = {
            hour = int
            minute = int
          }
        }
      ]
      timeZone = "string"
    }
  })
}

Property values

ManagedServiceIdentity

Name Description Value
type Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). 'None'
'SystemAssigned'
'SystemAssigned,UserAssigned'
'UserAssigned' (required)
userAssignedIdentities The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests. ManagedServiceIdentityUserAssignedIdentities

ManagedServiceIdentityUserAssignedIdentities

Name Description Value

Microsoft.DesktopVirtualization/scalingPlans

Name Description Value
identity Managed service identity (system assigned and/or user assigned identities) ManagedServiceIdentity
kind Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. string

Constraints:
Pattern = ^[-\w\._,\(\)]+$
location The geo-location where the resource lives string (required)
managedBy 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. string
name The resource name string

Constraints:
Min length = 1
Max length = 1
Pattern = ^[A-Za-z0-9@.\-_ ]*$ (required)
plan Plan for the resource. Plan
properties Detailed properties for scaling plan. ScalingPlanProperties (required)
sku The resource model definition representing SKU Sku
tags Resource tags Dictionary of tag names and values.
type The resource type "Microsoft.DesktopVirtualization/scalingPlans@2024-08-08-preview"

Plan

Name Description Value
name A user defined name of the 3rd Party Artifact that is being procured. string (required)
product The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. string (required)
promotionCode A publisher provided promotion code as provisioned in Data Market for the said product/artifact. string
publisher The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic string (required)
version The version of the desired product/artifact. string

ScalingHostPoolReference

Name Description Value
hostPoolArmPath Arm path of referenced hostpool. string
scalingPlanEnabled Is the scaling plan enabled for this hostpool. bool

ScalingPlanProperties

Name Description Value
description Description of scaling plan. string
exclusionTag Exclusion tag for scaling plan. string
friendlyName User friendly name of scaling plan. string
hostPoolReferences List of ScalingHostPoolReference definitions. ScalingHostPoolReference[]
hostPoolType HostPool type for desktop. 'Personal'
'Pooled'
schedules List of Pooled ScalingSchedule definitions. ScalingSchedule[]
timeZone Timezone of the scaling plan. string (required)

ScalingSchedule

Name Description Value
daysOfWeek Set of days of the week on which this schedule is active. String array containing any of:
'Friday'
'Monday'
'Saturday'
'Sunday'
'Thursday'
'Tuesday'
'Wednesday'
name Name of the ScalingPlanPooledSchedule. string
offPeakLoadBalancingAlgorithm Load balancing algorithm for off-peak period. 'BreadthFirst'
'DepthFirst'
offPeakStartTime Starting time for off-peak period. Time
peakLoadBalancingAlgorithm Load balancing algorithm for peak period. 'BreadthFirst'
'DepthFirst'
peakStartTime Starting time for peak period. Time
rampDownCapacityThresholdPct Capacity threshold for ramp down period. int

Constraints:
Min value = 1
Max value = 100
rampDownForceLogoffUsers Should users be logged off forcefully from hosts. bool
rampDownLoadBalancingAlgorithm Load balancing algorithm for ramp down period. 'BreadthFirst'
'DepthFirst'
rampDownMinimumHostsPct Minimum host percentage for ramp down period. int

Constraints:
Min value = 0
Max value = 100
rampDownNotificationMessage Notification message for users during ramp down period. string
rampDownStartTime Starting time for ramp down period. Time
rampDownStopHostsWhen Specifies when to stop hosts during ramp down period. 'ZeroActiveSessions'
'ZeroSessions'
rampDownWaitTimeMinutes Number of minutes to wait to stop hosts during ramp down period. int
rampUpCapacityThresholdPct Capacity threshold for ramp up period. int

Constraints:
Min value = 1
Max value = 100
rampUpLoadBalancingAlgorithm Load balancing algorithm for ramp up period. 'BreadthFirst'
'DepthFirst'
rampUpMinimumHostsPct Minimum host percentage for ramp up period. int

Constraints:
Min value = 0
Max value = 100
rampUpStartTime Starting time for ramp up period. Time

Sku

Name Description Value
capacity If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted. int
family If the service has different generations of hardware, for the same SKU, then that can be captured here. string
name The name of the SKU. E.g. P3. It is typically a letter+number code string (required)
size The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. string
tier This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. 'Basic'
'Free'
'Premium'
'Standard'

Time

Name Description Value
hour The hour. int

Constraints:
Min value = 0
Max value = 23 (required)
minute The minute. int

Constraints:
Min value = 0
Max value = 59 (required)

TrackedResourceTags

Name Description Value

UserAssignedIdentity

Name Description Value