Scaling Plans - Create

Create or update a scaling plan.

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/scalingPlans/{scalingPlanName}?api-version=2022-02-10-preview

URI Parameters

Name In Required Type Description
resourceGroupName
path True

string

The name of the resource group. The name is case insensitive.

scalingPlanName
path True

string

The name of the scaling plan.

subscriptionId
path True

string

The ID of the target subscription.

api-version
query True

string

The API version to use for this operation.

Request Body

Name Type Description
identity

Identity

kind

string

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.

location

string

The geo-location where the resource lives

managedBy

string

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.

plan

Plan

properties.description

string

Description of scaling plan.

properties.exclusionTag

string

Exclusion tag for scaling plan.

properties.friendlyName

string

User friendly name of scaling plan.

properties.hostPoolReferences

ScalingHostPoolReference[]

List of ScalingHostPoolReference definitions.

properties.hostPoolType

ScalingHostPoolType

HostPool type for desktop.

properties.schedules

ScalingSchedule[]

List of ScalingSchedule definitions.

properties.timeZone

string

Timezone of the scaling plan.

sku

Sku

tags

object

Resource tags.

Responses

Name Type Description
200 OK

ScalingPlan

Successfully updated scaling plan.

201 Created

ScalingPlan

Successfully created scaling plan.

Other Status Codes

CloudError

Automation error response describing why the operation failed.

Examples

ScalingPlans_Create

Sample Request

PUT https://management.azure.com/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/scalingPlans/scalingPlan1?api-version=2022-02-10-preview

{
  "location": "centralus",
  "tags": {
    "tag1": "value1",
    "tag2": "value2"
  },
  "properties": {
    "description": "Description of Scaling Plan",
    "friendlyName": "Scaling Plan 1",
    "timeZone": "Central Standard Time",
    "hostPoolType": "Pooled",
    "exclusionTag": "value",
    "schedules": [
      {
        "name": "schedule1",
        "daysOfWeek": [
          "Monday",
          "Tuesday",
          "Wednesday",
          "Thursday",
          "Friday"
        ],
        "rampUpStartTime": {
          "hour": 6,
          "minute": 0
        },
        "rampUpLoadBalancingAlgorithm": "DepthFirst",
        "rampUpMinimumHostsPct": 20,
        "rampUpCapacityThresholdPct": 80,
        "peakStartTime": {
          "hour": 8,
          "minute": 0
        },
        "peakLoadBalancingAlgorithm": "BreadthFirst",
        "rampDownStartTime": {
          "hour": 18,
          "minute": 0
        },
        "rampDownLoadBalancingAlgorithm": "DepthFirst",
        "rampDownMinimumHostsPct": 20,
        "rampDownCapacityThresholdPct": 50,
        "rampDownForceLogoffUsers": true,
        "rampDownWaitTimeMinutes": 30,
        "rampDownNotificationMessage": "message",
        "offPeakStartTime": {
          "hour": 20,
          "minute": 0
        },
        "offPeakLoadBalancingAlgorithm": "DepthFirst"
      }
    ],
    "hostPoolReferences": [
      {
        "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
        "scalingPlanEnabled": true
      }
    ]
  }
}

Sample Response

{
  "name": "scalingPlan1",
  "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/scalingPlans/scalingPlan1",
  "type": "Microsoft.DesktopVirtualization/scalingPlans",
  "location": "centralus",
  "tags": {
    "key1": "value1",
    "key2": "value2"
  },
  "systemData": {
    "createdBy": "user1",
    "createdByType": "User",
    "createdAt": "2020-01-01T17:18:19.1234567Z",
    "lastModifiedBy": "user2",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
  },
  "properties": {
    "objectId": "00000000-0000-0000-0000-000000000000",
    "description": "Description of Scaling Plan",
    "friendlyName": "Scaling Plan 1",
    "timeZone": "Central Standard Time",
    "hostPoolType": "Pooled",
    "exclusionTag": "value",
    "schedules": [
      {
        "name": "schedule1",
        "daysOfWeek": [
          "Monday",
          "Tuesday",
          "Wednesday",
          "Thursday",
          "Friday"
        ],
        "rampUpStartTime": {
          "hour": 6,
          "minute": 0
        },
        "rampUpLoadBalancingAlgorithm": "DepthFirst",
        "rampUpMinimumHostsPct": 20,
        "rampUpCapacityThresholdPct": 80,
        "peakStartTime": {
          "hour": 8,
          "minute": 0
        },
        "peakLoadBalancingAlgorithm": "BreadthFirst",
        "rampDownStartTime": {
          "hour": 18,
          "minute": 0
        },
        "rampDownLoadBalancingAlgorithm": "DepthFirst",
        "rampDownMinimumHostsPct": 20,
        "rampDownCapacityThresholdPct": 50,
        "rampDownForceLogoffUsers": true,
        "rampDownWaitTimeMinutes": 30,
        "rampDownNotificationMessage": "message",
        "offPeakStartTime": {
          "hour": 20,
          "minute": 0
        },
        "offPeakLoadBalancingAlgorithm": "DepthFirst"
      }
    ],
    "hostPoolReferences": [
      {
        "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
        "scalingPlanEnabled": true
      }
    ]
  }
}
{
  "name": "scalingPlan1",
  "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/scalingPlans/scalingPlan1",
  "type": "Microsoft.DesktopVirtualization/scalingPlans",
  "location": "centralus",
  "tags": {
    "key1": "value1",
    "key2": "value2"
  },
  "systemData": {
    "createdBy": "user1",
    "createdByType": "User",
    "createdAt": "2020-01-01T17:18:19.1234567Z",
    "lastModifiedBy": "user2",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
  },
  "properties": {
    "objectId": "00000000-0000-0000-0000-000000000000",
    "description": "Description of Scaling Plan",
    "friendlyName": "Scaling Plan 1",
    "timeZone": "Central Standard Time",
    "hostPoolType": "Pooled",
    "exclusionTag": "value",
    "schedules": [
      {
        "name": "schedule1",
        "daysOfWeek": [
          "Monday",
          "Tuesday",
          "Wednesday",
          "Thursday",
          "Friday"
        ],
        "rampUpStartTime": {
          "hour": 6,
          "minute": 0
        },
        "rampUpLoadBalancingAlgorithm": "DepthFirst",
        "rampUpMinimumHostsPct": 20,
        "rampUpCapacityThresholdPct": 80,
        "peakStartTime": {
          "hour": 8,
          "minute": 0
        },
        "peakLoadBalancingAlgorithm": "BreadthFirst",
        "rampDownStartTime": {
          "hour": 18,
          "minute": 0
        },
        "rampDownLoadBalancingAlgorithm": "DepthFirst",
        "rampDownMinimumHostsPct": 20,
        "rampDownCapacityThresholdPct": 50,
        "rampDownForceLogoffUsers": true,
        "rampDownWaitTimeMinutes": 30,
        "rampDownNotificationMessage": "message",
        "offPeakStartTime": {
          "hour": 20,
          "minute": 0
        },
        "offPeakLoadBalancingAlgorithm": "DepthFirst"
      }
    ],
    "hostPoolReferences": [
      {
        "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
        "scalingPlanEnabled": true
      }
    ]
  }
}

Definitions

Name Description
CloudError

Cloud error object.

CloudErrorProperties

Cloud error object properties.

createdByType

The type of identity that created the resource.

DaysOfWeek

Set of days of the week on which this schedule is active.

Identity
Plan
ResourceIdentityType

The identity type.

ScalingHostPoolReference

Scaling plan reference to hostpool.

ScalingHostPoolType

HostPool type for desktop.

ScalingPlan

ScalingPlan

ScalingSchedule

Scaling plan schedule.

SessionHostLoadBalancingAlgorithm

Load balancing algorithm for ramp up period.

Sku
SkuTier

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.

StopHostsWhen

Specifies when to stop hosts during ramp down period.

systemData

Metadata pertaining to creation and last modification of the resource.

Time

The time for a scaling action to occur.

CloudError

Cloud error object.

Name Type Description
error

CloudErrorProperties

Cloud error object properties.

CloudErrorProperties

Cloud error object properties.

Name Type Description
code

string

Error code

message

string

Error message indicating why the operation failed.

createdByType

The type of identity that created the resource.

Name Type Description
Application

string

Key

string

ManagedIdentity

string

User

string

DaysOfWeek

Set of days of the week on which this schedule is active.

Name Type Description
Friday

string

Monday

string

Saturday

string

Sunday

string

Thursday

string

Tuesday

string

Wednesday

string

Identity

Name Type Description
principalId

string

The principal ID of resource identity.

tenantId

string

The tenant ID of resource.

type

ResourceIdentityType

The identity type.

Plan

Name Type Description
name

string

A user defined name of the 3rd Party Artifact that is being procured.

product

string

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.

promotionCode

string

A publisher provided promotion code as provisioned in Data Market for the said product/artifact.

publisher

string

The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic

version

string

The version of the desired product/artifact.

ResourceIdentityType

The identity type.

Name Type Description
SystemAssigned

string

ScalingHostPoolReference

Scaling plan reference to hostpool.

Name Type Description
hostPoolArmPath

string

Arm path of referenced hostpool.

scalingPlanEnabled

boolean

Is the scaling plan enabled for this hostpool.

ScalingHostPoolType

HostPool type for desktop.

Name Type Description
Pooled

string

Users get a new (random) SessionHost every time it connects to the HostPool.

ScalingPlan

ScalingPlan

Name Type Description
etag

string

The etag field is not required. If it is provided in the response body, it must also be provided as a header per the normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.

id

string

Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

identity

Identity

kind

string

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.

location

string

The geo-location where the resource lives

managedBy

string

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.

name

string

The name of the resource

plan

Plan

properties.description

string

Description of scaling plan.

properties.exclusionTag

string

Exclusion tag for scaling plan.

properties.friendlyName

string

User friendly name of scaling plan.

properties.hostPoolReferences

ScalingHostPoolReference[]

List of ScalingHostPoolReference definitions.

properties.hostPoolType

ScalingHostPoolType

HostPool type for desktop.

properties.objectId

string

ObjectId of scaling plan. (internal use)

properties.schedules

ScalingSchedule[]

List of ScalingSchedule definitions.

properties.timeZone

string

Timezone of the scaling plan.

sku

Sku

systemData

systemData

Metadata pertaining to creation and last modification of the resource.

tags

object

Resource tags.

type

string

The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"

ScalingSchedule

Scaling plan schedule.

Name Type Description
daysOfWeek

DaysOfWeek[]

Set of days of the week on which this schedule is active.

name

string

Name of the scaling schedule.

offPeakLoadBalancingAlgorithm

SessionHostLoadBalancingAlgorithm

Load balancing algorithm for off-peak period.

offPeakStartTime

Time

Starting time for off-peak period.

peakLoadBalancingAlgorithm

SessionHostLoadBalancingAlgorithm

Load balancing algorithm for peak period.

peakStartTime

Time

Starting time for peak period.

rampDownCapacityThresholdPct

integer

Capacity threshold for ramp down period.

rampDownForceLogoffUsers

boolean

Should users be logged off forcefully from hosts.

rampDownLoadBalancingAlgorithm

SessionHostLoadBalancingAlgorithm

Load balancing algorithm for ramp down period.

rampDownMinimumHostsPct

integer

Minimum host percentage for ramp down period.

rampDownNotificationMessage

string

Notification message for users during ramp down period.

rampDownStartTime

Time

Starting time for ramp down period.

rampDownStopHostsWhen

StopHostsWhen

Specifies when to stop hosts during ramp down period.

rampDownWaitTimeMinutes

integer

Number of minutes to wait to stop hosts during ramp down period.

rampUpCapacityThresholdPct

integer

Capacity threshold for ramp up period.

rampUpLoadBalancingAlgorithm

SessionHostLoadBalancingAlgorithm

Load balancing algorithm for ramp up period.

rampUpMinimumHostsPct

integer

Minimum host percentage for ramp up period.

rampUpStartTime

Time

Starting time for ramp up period.

SessionHostLoadBalancingAlgorithm

Load balancing algorithm for ramp up period.

Name Type Description
BreadthFirst

string

DepthFirst

string

Sku

Name Type Description
capacity

integer

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.

family

string

If the service has different generations of hardware, for the same SKU, then that can be captured here.

name

string

The name of the SKU. Ex - P3. It is typically a letter+number code

size

string

The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code.

tier

SkuTier

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.

SkuTier

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.

Name Type Description
Basic

string

Free

string

Premium

string

Standard

string

StopHostsWhen

Specifies when to stop hosts during ramp down period.

Name Type Description
ZeroActiveSessions

string

ZeroSessions

string

systemData

Metadata pertaining to creation and last modification of the resource.

Name Type Description
createdAt

string

The timestamp of resource creation (UTC).

createdBy

string

The identity that created the resource.

createdByType

createdByType

The type of identity that created the resource.

lastModifiedAt

string

The timestamp of resource last modification (UTC)

lastModifiedBy

string

The identity that last modified the resource.

lastModifiedByType

createdByType

The type of identity that last modified the resource.

Time

The time for a scaling action to occur.

Name Type Description
hour

integer

The hour.

minute

integer

The minute.