Share via


Microsoft.DesktopVirtualization workspaces

Bicep resource definition

The workspaces 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/workspaces resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.DesktopVirtualization/workspaces@2024-11-01-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: {
    applicationGroupReferences: [
      'string'
    ]
    description: 'string'
    friendlyName: 'string'
    publicNetworkAccess: '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/workspaces

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 = 255
Pattern = ^[A-Za-z0-9@.\-_ ]*$ (required)
plan Plan for the resource. Plan
properties Detailed properties for Workspace WorkspaceProperties
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

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'

TrackedResourceTags

Name Description Value

UserAssignedIdentity

Name Description Value

WorkspaceProperties

Name Description Value
applicationGroupReferences List of applicationGroup resource Ids. string[]
description Description of Workspace. string
friendlyName Friendly name of Workspace. string
publicNetworkAccess Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints 'Disabled'
'Enabled'

Usage Examples

Azure Verified Modules

The following Azure Verified Modules can be used to deploy this resource type.

Module Description
Azure Virtual Desktop (AVD) Workspace AVM Resource Module for Azure Virtual Desktop (AVD) Workspace

Azure Quickstart Samples

The following Azure Quickstart templates contain Bicep samples for deploying this resource type.

Bicep File Description
Creates AVD with Microsoft Entra ID Join This template allows you to create Azure Virtual Desktop resources such as host pool, application group, workspace, a test session host and its extensions with Microsoft Entra ID join

ARM template resource definition

The workspaces 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/workspaces resource, add the following JSON to your template.

{
  "type": "Microsoft.DesktopVirtualization/workspaces",
  "apiVersion": "2024-11-01-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": {
    "applicationGroupReferences": [ "string" ],
    "description": "string",
    "friendlyName": "string",
    "publicNetworkAccess": "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/workspaces

Name Description Value
apiVersion The api version '2024-11-01-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 = 255
Pattern = ^[A-Za-z0-9@.\-_ ]*$ (required)
plan Plan for the resource. Plan
properties Detailed properties for Workspace WorkspaceProperties
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/workspaces'

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

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'

TrackedResourceTags

Name Description Value

UserAssignedIdentity

Name Description Value

WorkspaceProperties

Name Description Value
applicationGroupReferences List of applicationGroup resource Ids. string[]
description Description of Workspace. string
friendlyName Friendly name of Workspace. string
publicNetworkAccess Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints 'Disabled'
'Enabled'

Usage Examples

Azure Quickstart Templates

The following Azure Quickstart templates deploy this resource type.

Template Description
Creates AVD with Microsoft Entra ID Join

Deploy to Azure
This template allows you to create Azure Virtual Desktop resources such as host pool, application group, workspace, a test session host and its extensions with Microsoft Entra ID join

Terraform (AzAPI provider) resource definition

The workspaces 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/workspaces resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.DesktopVirtualization/workspaces@2024-11-01-preview"
  name = "string"
  identity = {
    type = "string"
    userAssignedIdentities = {
      {customized property} = {
      }
    }
  }
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    kind = "string"
    managedBy = "string"
    plan = {
      name = "string"
      product = "string"
      promotionCode = "string"
      publisher = "string"
      version = "string"
    }
    properties = {
      applicationGroupReferences = [
        "string"
      ]
      description = "string"
      friendlyName = "string"
      publicNetworkAccess = "string"
    }
    sku = {
      capacity = int
      family = "string"
      name = "string"
      size = "string"
      tier = "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/workspaces

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 = 255
Pattern = ^[A-Za-z0-9@.\-_ ]*$ (required)
plan Plan for the resource. Plan
properties Detailed properties for Workspace WorkspaceProperties
sku The resource model definition representing SKU Sku
tags Resource tags Dictionary of tag names and values.
type The resource type "Microsoft.DesktopVirtualization/workspaces@2024-11-01-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

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'

TrackedResourceTags

Name Description Value

UserAssignedIdentity

Name Description Value

WorkspaceProperties

Name Description Value
applicationGroupReferences List of applicationGroup resource Ids. string[]
description Description of Workspace. string
friendlyName Friendly name of Workspace. string
publicNetworkAccess Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints 'Disabled'
'Enabled'

Usage Examples

Azure Verified Modules

The following Azure Verified Modules can be used to deploy this resource type.

Module Description
Azure Virtual Desktop (AVD) Workspace AVM Resource Module for Azure Virtual Desktop (AVD) Workspace