Bicep resource definition
The hostPools/sessionHostConfigurations resource type can be deployed with operations that target:
For a list of changed properties in each API version, see change log.
To create a Microsoft.DesktopVirtualization/hostPools/sessionHostConfigurations resource, add the following Bicep to your template.
resource symbolicname 'Microsoft.DesktopVirtualization/hostPools/sessionHostConfigurations@2026-04-01-preview' = {
parent: resourceSymbolicName
name: 'default'
properties: {
availabilityZones: [
int
]
bootDiagnosticsInfo: {
enabled: bool
storageUri: 'string'
}
customConfigurationScriptUrl: 'string'
diskInfo: {
diffDiskSettings: {
option: 'string'
placement: 'string'
}
managedDisk: {
type: 'string'
}
}
domainInfo: {
activeDirectoryInfo: {
domainCredentials: {
passwordKeyVaultSecretUri: 'string'
usernameKeyVaultSecretUri: 'string'
}
domainName: 'string'
ouPath: 'string'
}
azureActiveDirectoryInfo: {
mdmProviderGuid: 'string'
}
joinType: 'string'
}
friendlyName: 'string'
imageInfo: {
customInfo: {
resourceId: 'string'
}
marketplaceInfo: {
exactVersion: 'string'
offer: 'string'
publisher: 'string'
sku: 'string'
}
type: 'string'
}
networkInfo: {
securityGroupId: 'string'
subnetId: 'string'
}
securityInfo: {
secureBootEnabled: bool
type: 'string'
vTpmEnabled: bool
}
vmAdminCredentials: {
passwordKeyVaultSecretUri: 'string'
usernameKeyVaultSecretUri: 'string'
}
vmLocation: 'string'
vmNamePrefix: 'string'
vmResourceGroup: 'string'
vmSizeId: 'string'
vmTags: {
{customized property}: 'string'
}
}
}
Property Values
Microsoft.DesktopVirtualization/hostPools/sessionHostConfigurations
| Name |
Description |
Value |
| name |
The resource name |
'default' (required) |
| parent |
In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.
For more information, see Child resource outside parent resource. |
Symbolic name for resource of type: hostPools |
| properties |
Detailed properties for SessionHostConfiguration |
SessionHostConfigurationProperties (required) |
ActiveDirectoryInfoProperties
| Name |
Description |
Value |
| domainCredentials |
Credentials needed to create the virtual machine. |
KeyVaultCredentialsProperties (required) |
| domainName |
The domain a virtual machine connected to a hostpool will join. |
string |
| ouPath |
The organizational unit(OU) path. |
string (required) |
AzureActiveDirectoryInfoProperties
| Name |
Description |
Value |
| mdmProviderGuid |
The Mobile Device Management(MDM) guid. |
string (required) |
BootDiagnosticsInfoProperties
| Name |
Description |
Value |
| enabled |
Whether boot diagnostics should be enabled on the Virtual Machine. |
bool |
| storageUri |
Uri of the storage account to use for placing the console output and screenshot.
If storageUri is not specified while enabling boot diagnostics, managed storage will be used. |
string |
CustomInfoProperties
| Name |
Description |
Value |
| resourceId |
The resource ID of the image. |
string (required) |
DiffDiskProperties
| Name |
Description |
Value |
| option |
Specifies the ephemeral disk settings for operating system disk. |
'Local' |
| placement |
Gets or sets specifies the ephemeral disk placement for operating system disk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise TempDisk is used. Refer to the VM size documentation for Windows VM at /azure/virtual-machines/windows/sizes and Linux VM at /azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Possible values include: 'CacheDisk', 'TempDisk'. |
'CacheDisk' 'TempDisk' |
DiskInfoProperties
| Name |
Description |
Value |
| diffDiskSettings |
Specifies the ephemeral disk settings for the operating system disk used by the virtual machine. |
DiffDiskProperties |
| managedDisk |
The managed disk parameters. |
ManagedDiskProperties |
DomainInfoProperties
| Name |
Description |
Value |
| activeDirectoryInfo |
Active directory info. Only one should be populated based on the join type. |
ActiveDirectoryInfoProperties |
| azureActiveDirectoryInfo |
Azure active directory info. Only one should be populated based on the join type. |
AzureActiveDirectoryInfoProperties |
| joinType |
The type of domain join done by the virtual machine. |
'ActiveDirectory' 'AzureActiveDirectory' (required) |
ImageInfoProperties
| Name |
Description |
Value |
| customInfo |
The values to uniquely identify a custom image. Only one should be populated based on the image type. |
CustomInfoProperties |
| marketplaceInfo |
The values to uniquely identify a marketplace image. Only one should be populated based on the image type. |
MarketplaceInfoProperties |
| type |
The type of image session hosts use in the hostpool. |
'Custom' 'Marketplace' (required) |
KeyVaultCredentialsProperties
| Name |
Description |
Value |
| passwordKeyVaultSecretUri |
The uri to access the secret that the password is stored in. |
string (required) |
| usernameKeyVaultSecretUri |
The uri to access the secret that the username is stored in. |
string (required) |
ManagedDiskProperties
| Name |
Description |
Value |
| type |
Managed Disk information. |
'Premium_LRS' 'StandardSSD_LRS' 'Standard_LRS' |
MarketplaceInfoProperties
| Name |
Description |
Value |
| exactVersion |
The version of the image. |
string (required) |
| offer |
The offer of the image. |
string (required) |
| publisher |
The publisher of the image. |
string (required) |
| sku |
The SKU of the image. |
string (required) |
NetworkInfoProperties
| Name |
Description |
Value |
| securityGroupId |
The resource ID of the security group. Any allowable/open ports should be specified in the Network Security Group(NSG). |
string |
| subnetId |
The resource ID of the subnet. |
string (required) |
SecurityInfoProperties
| Name |
Description |
Value |
| secureBootEnabled |
Whether to use secureBoot on the virtual machine. |
bool |
| type |
The security type used by virtual machine in hostpool session host. Default is Standard. |
'ConfidentialVM' 'Standard' 'TrustedLaunch' |
| vTpmEnabled |
Whether to use vTpm on the virtual machine. |
bool |
SessionHostConfigurationProperties
| Name |
Description |
Value |
| availabilityZones |
Value for availability zones to be used by the session host. Should be from [1,2,3]. |
int[] |
| bootDiagnosticsInfo |
Boot Diagnostics Information |
BootDiagnosticsInfoProperties |
| customConfigurationScriptUrl |
The uri to the storage blob containing the arm template to be run on the virtual machine after provisioning. |
string |
| diskInfo |
Disk Information |
DiskInfoProperties (required) |
| domainInfo |
Domain configurations of session hosts. |
DomainInfoProperties (required) |
| friendlyName |
Friendly name to describe this version of the SessionHostConfiguration. |
string
Constraints: Max length = 260 |
| imageInfo |
Image configurations of HostPool. |
ImageInfoProperties (required) |
| networkInfo |
Network information. |
NetworkInfoProperties (required) |
| securityInfo |
Security Information |
SecurityInfoProperties |
| vmAdminCredentials |
Local Admin credentials for session hosts." |
KeyVaultCredentialsProperties (required) |
| vmLocation |
The Location for the session host to be created in. It will default to the location of the hostpool if not provided |
string |
| vmNamePrefix |
The prefix that should be associated with session host names |
string
Constraints: Max length = 11 (required) |
| vmResourceGroup |
The ResourceGroup for the session hosts to be created in. It will default to the ResourceGroup of the hostpool if not provided. |
string |
| vmSizeId |
The id of the size of a virtual machine connected to a hostpool. Example: Standard_D2as_v6 |
string (required) |
| vmTags |
Hashtable that lists key/value pair tags to apply to the VMs |
SessionHostConfigurationPropertiesVmTags |
ARM template resource definition
The hostPools/sessionHostConfigurations resource type can be deployed with operations that target:
Usage Examples
To create a Microsoft.DesktopVirtualization/hostPools/sessionHostConfigurations resource, add the following JSON to your template.
{
"type": "Microsoft.DesktopVirtualization/hostPools/sessionHostConfigurations",
"apiVersion": "2026-04-01-preview",
"name": "string",
"properties": {
"availabilityZones": [ "int" ],
"bootDiagnosticsInfo": {
"enabled": "bool",
"storageUri": "string"
},
"customConfigurationScriptUrl": "string",
"diskInfo": {
"diffDiskSettings": {
"option": "string",
"placement": "string"
},
"managedDisk": {
"type": "string"
}
},
"domainInfo": {
"activeDirectoryInfo": {
"domainCredentials": {
"passwordKeyVaultSecretUri": "string",
"usernameKeyVaultSecretUri": "string"
},
"domainName": "string",
"ouPath": "string"
},
"azureActiveDirectoryInfo": {
"mdmProviderGuid": "string"
},
"joinType": "string"
},
"friendlyName": "string",
"imageInfo": {
"customInfo": {
"resourceId": "string"
},
"marketplaceInfo": {
"exactVersion": "string",
"offer": "string",
"publisher": "string",
"sku": "string"
},
"type": "string"
},
"networkInfo": {
"securityGroupId": "string",
"subnetId": "string"
},
"securityInfo": {
"secureBootEnabled": "bool",
"type": "string",
"vTpmEnabled": "bool"
},
"vmAdminCredentials": {
"passwordKeyVaultSecretUri": "string",
"usernameKeyVaultSecretUri": "string"
},
"vmLocation": "string",
"vmNamePrefix": "string",
"vmResourceGroup": "string",
"vmSizeId": "string",
"vmTags": {
"{customized property}": "string"
}
}
}
Property Values
Microsoft.DesktopVirtualization/hostPools/sessionHostConfigurations
| Name |
Description |
Value |
| apiVersion |
The api version |
'2026-04-01-preview' |
| name |
The resource name |
'default' (required) |
| properties |
Detailed properties for SessionHostConfiguration |
SessionHostConfigurationProperties (required) |
| type |
The resource type |
'Microsoft.DesktopVirtualization/hostPools/sessionHostConfigurations' |
ActiveDirectoryInfoProperties
| Name |
Description |
Value |
| domainCredentials |
Credentials needed to create the virtual machine. |
KeyVaultCredentialsProperties (required) |
| domainName |
The domain a virtual machine connected to a hostpool will join. |
string |
| ouPath |
The organizational unit(OU) path. |
string (required) |
AzureActiveDirectoryInfoProperties
| Name |
Description |
Value |
| mdmProviderGuid |
The Mobile Device Management(MDM) guid. |
string (required) |
BootDiagnosticsInfoProperties
| Name |
Description |
Value |
| enabled |
Whether boot diagnostics should be enabled on the Virtual Machine. |
bool |
| storageUri |
Uri of the storage account to use for placing the console output and screenshot.
If storageUri is not specified while enabling boot diagnostics, managed storage will be used. |
string |
CustomInfoProperties
| Name |
Description |
Value |
| resourceId |
The resource ID of the image. |
string (required) |
DiffDiskProperties
| Name |
Description |
Value |
| option |
Specifies the ephemeral disk settings for operating system disk. |
'Local' |
| placement |
Gets or sets specifies the ephemeral disk placement for operating system disk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise TempDisk is used. Refer to the VM size documentation for Windows VM at /azure/virtual-machines/windows/sizes and Linux VM at /azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Possible values include: 'CacheDisk', 'TempDisk'. |
'CacheDisk' 'TempDisk' |
DiskInfoProperties
| Name |
Description |
Value |
| diffDiskSettings |
Specifies the ephemeral disk settings for the operating system disk used by the virtual machine. |
DiffDiskProperties |
| managedDisk |
The managed disk parameters. |
ManagedDiskProperties |
DomainInfoProperties
| Name |
Description |
Value |
| activeDirectoryInfo |
Active directory info. Only one should be populated based on the join type. |
ActiveDirectoryInfoProperties |
| azureActiveDirectoryInfo |
Azure active directory info. Only one should be populated based on the join type. |
AzureActiveDirectoryInfoProperties |
| joinType |
The type of domain join done by the virtual machine. |
'ActiveDirectory' 'AzureActiveDirectory' (required) |
ImageInfoProperties
| Name |
Description |
Value |
| customInfo |
The values to uniquely identify a custom image. Only one should be populated based on the image type. |
CustomInfoProperties |
| marketplaceInfo |
The values to uniquely identify a marketplace image. Only one should be populated based on the image type. |
MarketplaceInfoProperties |
| type |
The type of image session hosts use in the hostpool. |
'Custom' 'Marketplace' (required) |
KeyVaultCredentialsProperties
| Name |
Description |
Value |
| passwordKeyVaultSecretUri |
The uri to access the secret that the password is stored in. |
string (required) |
| usernameKeyVaultSecretUri |
The uri to access the secret that the username is stored in. |
string (required) |
ManagedDiskProperties
| Name |
Description |
Value |
| type |
Managed Disk information. |
'Premium_LRS' 'StandardSSD_LRS' 'Standard_LRS' |
MarketplaceInfoProperties
| Name |
Description |
Value |
| exactVersion |
The version of the image. |
string (required) |
| offer |
The offer of the image. |
string (required) |
| publisher |
The publisher of the image. |
string (required) |
| sku |
The SKU of the image. |
string (required) |
NetworkInfoProperties
| Name |
Description |
Value |
| securityGroupId |
The resource ID of the security group. Any allowable/open ports should be specified in the Network Security Group(NSG). |
string |
| subnetId |
The resource ID of the subnet. |
string (required) |
SecurityInfoProperties
| Name |
Description |
Value |
| secureBootEnabled |
Whether to use secureBoot on the virtual machine. |
bool |
| type |
The security type used by virtual machine in hostpool session host. Default is Standard. |
'ConfidentialVM' 'Standard' 'TrustedLaunch' |
| vTpmEnabled |
Whether to use vTpm on the virtual machine. |
bool |
SessionHostConfigurationProperties
| Name |
Description |
Value |
| availabilityZones |
Value for availability zones to be used by the session host. Should be from [1,2,3]. |
int[] |
| bootDiagnosticsInfo |
Boot Diagnostics Information |
BootDiagnosticsInfoProperties |
| customConfigurationScriptUrl |
The uri to the storage blob containing the arm template to be run on the virtual machine after provisioning. |
string |
| diskInfo |
Disk Information |
DiskInfoProperties (required) |
| domainInfo |
Domain configurations of session hosts. |
DomainInfoProperties (required) |
| friendlyName |
Friendly name to describe this version of the SessionHostConfiguration. |
string
Constraints: Max length = 260 |
| imageInfo |
Image configurations of HostPool. |
ImageInfoProperties (required) |
| networkInfo |
Network information. |
NetworkInfoProperties (required) |
| securityInfo |
Security Information |
SecurityInfoProperties |
| vmAdminCredentials |
Local Admin credentials for session hosts." |
KeyVaultCredentialsProperties (required) |
| vmLocation |
The Location for the session host to be created in. It will default to the location of the hostpool if not provided |
string |
| vmNamePrefix |
The prefix that should be associated with session host names |
string
Constraints: Max length = 11 (required) |
| vmResourceGroup |
The ResourceGroup for the session hosts to be created in. It will default to the ResourceGroup of the hostpool if not provided. |
string |
| vmSizeId |
The id of the size of a virtual machine connected to a hostpool. Example: Standard_D2as_v6 |
string (required) |
| vmTags |
Hashtable that lists key/value pair tags to apply to the VMs |
SessionHostConfigurationPropertiesVmTags |
The hostPools/sessionHostConfigurations resource type can be deployed with operations that target:
- Resource groups
For a list of changed properties in each API version, see change log.
To create a Microsoft.DesktopVirtualization/hostPools/sessionHostConfigurations resource, add the following Terraform to your template.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.DesktopVirtualization/hostPools/sessionHostConfigurations@2026-04-01-preview"
name = "string"
parent_id = "string"
body = {
properties = {
availabilityZones = [
int
]
bootDiagnosticsInfo = {
enabled = bool
storageUri = "string"
}
customConfigurationScriptUrl = "string"
diskInfo = {
diffDiskSettings = {
option = "string"
placement = "string"
}
managedDisk = {
type = "string"
}
}
domainInfo = {
activeDirectoryInfo = {
domainCredentials = {
passwordKeyVaultSecretUri = "string"
usernameKeyVaultSecretUri = "string"
}
domainName = "string"
ouPath = "string"
}
azureActiveDirectoryInfo = {
mdmProviderGuid = "string"
}
joinType = "string"
}
friendlyName = "string"
imageInfo = {
customInfo = {
resourceId = "string"
}
marketplaceInfo = {
exactVersion = "string"
offer = "string"
publisher = "string"
sku = "string"
}
type = "string"
}
networkInfo = {
securityGroupId = "string"
subnetId = "string"
}
securityInfo = {
secureBootEnabled = bool
type = "string"
vTpmEnabled = bool
}
vmAdminCredentials = {
passwordKeyVaultSecretUri = "string"
usernameKeyVaultSecretUri = "string"
}
vmLocation = "string"
vmNamePrefix = "string"
vmResourceGroup = "string"
vmSizeId = "string"
vmTags = {
{customized property} = "string"
}
}
}
}
Property Values
Microsoft.DesktopVirtualization/hostPools/sessionHostConfigurations
| Name |
Description |
Value |
| name |
The resource name |
'default' (required) |
| parent_id |
The ID of the resource that is the parent for this resource. |
ID for resource of type: hostPools |
| properties |
Detailed properties for SessionHostConfiguration |
SessionHostConfigurationProperties (required) |
| type |
The resource type |
"Microsoft.DesktopVirtualization/hostPools/sessionHostConfigurations@2026-04-01-preview" |
ActiveDirectoryInfoProperties
| Name |
Description |
Value |
| domainCredentials |
Credentials needed to create the virtual machine. |
KeyVaultCredentialsProperties (required) |
| domainName |
The domain a virtual machine connected to a hostpool will join. |
string |
| ouPath |
The organizational unit(OU) path. |
string (required) |
AzureActiveDirectoryInfoProperties
| Name |
Description |
Value |
| mdmProviderGuid |
The Mobile Device Management(MDM) guid. |
string (required) |
BootDiagnosticsInfoProperties
| Name |
Description |
Value |
| enabled |
Whether boot diagnostics should be enabled on the Virtual Machine. |
bool |
| storageUri |
Uri of the storage account to use for placing the console output and screenshot.
If storageUri is not specified while enabling boot diagnostics, managed storage will be used. |
string |
CustomInfoProperties
| Name |
Description |
Value |
| resourceId |
The resource ID of the image. |
string (required) |
DiffDiskProperties
| Name |
Description |
Value |
| option |
Specifies the ephemeral disk settings for operating system disk. |
'Local' |
| placement |
Gets or sets specifies the ephemeral disk placement for operating system disk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise TempDisk is used. Refer to the VM size documentation for Windows VM at /azure/virtual-machines/windows/sizes and Linux VM at /azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Possible values include: 'CacheDisk', 'TempDisk'. |
'CacheDisk' 'TempDisk' |
DiskInfoProperties
| Name |
Description |
Value |
| diffDiskSettings |
Specifies the ephemeral disk settings for the operating system disk used by the virtual machine. |
DiffDiskProperties |
| managedDisk |
The managed disk parameters. |
ManagedDiskProperties |
DomainInfoProperties
| Name |
Description |
Value |
| activeDirectoryInfo |
Active directory info. Only one should be populated based on the join type. |
ActiveDirectoryInfoProperties |
| azureActiveDirectoryInfo |
Azure active directory info. Only one should be populated based on the join type. |
AzureActiveDirectoryInfoProperties |
| joinType |
The type of domain join done by the virtual machine. |
'ActiveDirectory' 'AzureActiveDirectory' (required) |
ImageInfoProperties
| Name |
Description |
Value |
| customInfo |
The values to uniquely identify a custom image. Only one should be populated based on the image type. |
CustomInfoProperties |
| marketplaceInfo |
The values to uniquely identify a marketplace image. Only one should be populated based on the image type. |
MarketplaceInfoProperties |
| type |
The type of image session hosts use in the hostpool. |
'Custom' 'Marketplace' (required) |
KeyVaultCredentialsProperties
| Name |
Description |
Value |
| passwordKeyVaultSecretUri |
The uri to access the secret that the password is stored in. |
string (required) |
| usernameKeyVaultSecretUri |
The uri to access the secret that the username is stored in. |
string (required) |
ManagedDiskProperties
| Name |
Description |
Value |
| type |
Managed Disk information. |
'Premium_LRS' 'StandardSSD_LRS' 'Standard_LRS' |
MarketplaceInfoProperties
| Name |
Description |
Value |
| exactVersion |
The version of the image. |
string (required) |
| offer |
The offer of the image. |
string (required) |
| publisher |
The publisher of the image. |
string (required) |
| sku |
The SKU of the image. |
string (required) |
NetworkInfoProperties
| Name |
Description |
Value |
| securityGroupId |
The resource ID of the security group. Any allowable/open ports should be specified in the Network Security Group(NSG). |
string |
| subnetId |
The resource ID of the subnet. |
string (required) |
SecurityInfoProperties
| Name |
Description |
Value |
| secureBootEnabled |
Whether to use secureBoot on the virtual machine. |
bool |
| type |
The security type used by virtual machine in hostpool session host. Default is Standard. |
'ConfidentialVM' 'Standard' 'TrustedLaunch' |
| vTpmEnabled |
Whether to use vTpm on the virtual machine. |
bool |
SessionHostConfigurationProperties
| Name |
Description |
Value |
| availabilityZones |
Value for availability zones to be used by the session host. Should be from [1,2,3]. |
int[] |
| bootDiagnosticsInfo |
Boot Diagnostics Information |
BootDiagnosticsInfoProperties |
| customConfigurationScriptUrl |
The uri to the storage blob containing the arm template to be run on the virtual machine after provisioning. |
string |
| diskInfo |
Disk Information |
DiskInfoProperties (required) |
| domainInfo |
Domain configurations of session hosts. |
DomainInfoProperties (required) |
| friendlyName |
Friendly name to describe this version of the SessionHostConfiguration. |
string
Constraints: Max length = 260 |
| imageInfo |
Image configurations of HostPool. |
ImageInfoProperties (required) |
| networkInfo |
Network information. |
NetworkInfoProperties (required) |
| securityInfo |
Security Information |
SecurityInfoProperties |
| vmAdminCredentials |
Local Admin credentials for session hosts." |
KeyVaultCredentialsProperties (required) |
| vmLocation |
The Location for the session host to be created in. It will default to the location of the hostpool if not provided |
string |
| vmNamePrefix |
The prefix that should be associated with session host names |
string
Constraints: Max length = 11 (required) |
| vmResourceGroup |
The ResourceGroup for the session hosts to be created in. It will default to the ResourceGroup of the hostpool if not provided. |
string |
| vmSizeId |
The id of the size of a virtual machine connected to a hostpool. Example: Standard_D2as_v6 |
string (required) |
| vmTags |
Hashtable that lists key/value pair tags to apply to the VMs |
SessionHostConfigurationPropertiesVmTags |