Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Bicep resource definition
The projects resource type can be deployed with operations that target:
- Resource groups - See resource group deployment commands
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.DevCenter/projects resource, add the following Bicep to your template.
resource symbolicname 'Microsoft.DevCenter/projects@2025-04-01-preview' = {
identity: {
type: 'string'
userAssignedIdentities: {
{customized property}: {}
}
}
location: 'string'
name: 'string'
properties: {
azureAiServicesSettings: {
azureAiServicesMode: 'string'
}
catalogSettings: {
catalogItemSyncTypes: [
'string'
]
}
customizationSettings: {
identities: [
{
identityResourceId: 'string'
identityType: 'string'
}
]
userCustomizationsEnableStatus: 'string'
}
description: 'string'
devBoxAutoDeleteSettings: {
deleteMode: 'string'
gracePeriod: 'string'
inactiveThreshold: 'string'
}
devCenterId: 'string'
displayName: 'string'
maxDevBoxesPerUser: int
serverlessGpuSessionsSettings: {
maxConcurrentSessionsPerProject: int
serverlessGpuSessionsMode: 'string'
}
workspaceStorageSettings: {
workspaceStorageMode: 'string'
}
}
tags: {
{customized property}: 'string'
}
}
Property Values
Microsoft.DevCenter/projects
Name | Description | Value |
---|---|---|
identity | Managed identity properties | ManagedServiceIdentity |
location | The geo-location where the resource lives | string (required) |
name | The resource name | string Constraints: Min length = 3 Max length = 63 Pattern = ^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$ (required) |
properties | Properties of a project. | ProjectProperties |
tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
AzureAiServicesSettings
Name | Description | Value |
---|---|---|
azureAiServicesMode | The property indicates whether Azure AI services is enabled. | 'AutoDeploy' 'Disabled' |
DevBoxAutoDeleteSettings
Name | Description | Value |
---|---|---|
deleteMode | Indicates the delete mode for Dev Boxes within this project. | 'Auto' 'Manual' |
gracePeriod | ISO8601 duration required for the dev box to be marked for deletion prior to it being deleted. ISO8601 format PT[n]H[n]M[n]S. | string |
inactiveThreshold | ISO8601 duration required for the dev box to not be inactive prior to it being scheduled for deletion. ISO8601 format PT[n]H[n]M[n]S. | string |
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. | UserAssignedIdentities |
ProjectCatalogSettings
Name | Description | Value |
---|---|---|
catalogItemSyncTypes | Indicates catalog item types that can be synced. | String array containing any of: 'EnvironmentDefinition' 'ImageDefinition' |
ProjectCustomizationManagedIdentity
Name | Description | Value |
---|---|---|
identityResourceId | Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<resource group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity. | string |
identityType | Values can be systemAssignedIdentity or userAssignedIdentity | 'systemAssignedIdentity' 'userAssignedIdentity' |
ProjectCustomizationSettings
Name | Description | Value |
---|---|---|
identities | The identities that can to be used in customization scenarios; e.g., to clone a repository. | ProjectCustomizationManagedIdentity[] |
userCustomizationsEnableStatus | Indicates whether user customizations are enabled. | 'Disabled' 'Enabled' |
ProjectProperties
Name | Description | Value |
---|---|---|
azureAiServicesSettings | Indicates whether Azure AI services are enabled for a project. | AzureAiServicesSettings |
catalogSettings | Settings to be used when associating a project with a catalog. | ProjectCatalogSettings |
customizationSettings | Settings to be used for customizations. | ProjectCustomizationSettings |
description | Description of the project. | string |
devBoxAutoDeleteSettings | Dev Box Auto Delete settings. | DevBoxAutoDeleteSettings |
devCenterId | Resource Id of an associated DevCenter | string |
displayName | The display name of the project. | string |
maxDevBoxesPerUser | When specified, limits the maximum number of Dev Boxes a single user can create across all pools in the project. This will have no effect on existing Dev Boxes when reduced. | int Constraints: Min value = 0 |
serverlessGpuSessionsSettings | Settings to be used for serverless GPU. | ServerlessGpuSessionsSettings |
workspaceStorageSettings | Settings to be used for workspace storage. | WorkspaceStorageSettings |
ServerlessGpuSessionsSettings
Name | Description | Value |
---|---|---|
maxConcurrentSessionsPerProject | When specified, limits the maximum number of concurrent sessions across all pools in the project. | int Constraints: Min value = 1 |
serverlessGpuSessionsMode | The property indicates whether serverless GPU access is enabled on the project. | 'AutoDeploy' 'Disabled' |
TrackedResourceTags
Name | Description | Value |
---|
UserAssignedIdentities
Name | Description | Value |
---|
UserAssignedIdentity
Name | Description | Value |
---|
WorkspaceStorageSettings
Name | Description | Value |
---|---|---|
workspaceStorageMode | Indicates whether workspace storage is enabled. | 'AutoDeploy' 'Disabled' |
Usage Examples
Azure Quickstart Samples
The following Azure Quickstart templates contain Bicep samples for deploying this resource type.
Bicep File | Description |
---|---|
Configure Deployment Environments service | This template provides a way to configure Deployment Environments. |
Configure Dev Box service | This template would create all Dev Box admin resources as per Dev Box quick start guide (/azure/dev-box/quickstart-create-dev-box). You can view all resources created, or directly go to DevPortal.microsoft.com to create your first Dev Box. |
Deploy Dev Box Service | This template provides a way to configure all resouces required to create a Dev Box. |
Deploy Dev Box Service with built-in image | This template provides a way to deploy an Dev Box service with built-in image. |
ARM template resource definition
The projects resource type can be deployed with operations that target:
- Resource groups - See resource group deployment commands
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.DevCenter/projects resource, add the following JSON to your template.
{
"type": "Microsoft.DevCenter/projects",
"apiVersion": "2025-04-01-preview",
"name": "string",
"identity": {
"type": "string",
"userAssignedIdentities": {
"{customized property}": {
}
}
},
"location": "string",
"properties": {
"azureAiServicesSettings": {
"azureAiServicesMode": "string"
},
"catalogSettings": {
"catalogItemSyncTypes": [ "string" ]
},
"customizationSettings": {
"identities": [
{
"identityResourceId": "string",
"identityType": "string"
}
],
"userCustomizationsEnableStatus": "string"
},
"description": "string",
"devBoxAutoDeleteSettings": {
"deleteMode": "string",
"gracePeriod": "string",
"inactiveThreshold": "string"
},
"devCenterId": "string",
"displayName": "string",
"maxDevBoxesPerUser": "int",
"serverlessGpuSessionsSettings": {
"maxConcurrentSessionsPerProject": "int",
"serverlessGpuSessionsMode": "string"
},
"workspaceStorageSettings": {
"workspaceStorageMode": "string"
}
},
"tags": {
"{customized property}": "string"
}
}
Property Values
Microsoft.DevCenter/projects
Name | Description | Value |
---|---|---|
apiVersion | The api version | '2025-04-01-preview' |
identity | Managed identity properties | ManagedServiceIdentity |
location | The geo-location where the resource lives | string (required) |
name | The resource name | string Constraints: Min length = 3 Max length = 63 Pattern = ^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$ (required) |
properties | Properties of a project. | ProjectProperties |
tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
type | The resource type | 'Microsoft.DevCenter/projects' |
AzureAiServicesSettings
Name | Description | Value |
---|---|---|
azureAiServicesMode | The property indicates whether Azure AI services is enabled. | 'AutoDeploy' 'Disabled' |
DevBoxAutoDeleteSettings
Name | Description | Value |
---|---|---|
deleteMode | Indicates the delete mode for Dev Boxes within this project. | 'Auto' 'Manual' |
gracePeriod | ISO8601 duration required for the dev box to be marked for deletion prior to it being deleted. ISO8601 format PT[n]H[n]M[n]S. | string |
inactiveThreshold | ISO8601 duration required for the dev box to not be inactive prior to it being scheduled for deletion. ISO8601 format PT[n]H[n]M[n]S. | string |
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. | UserAssignedIdentities |
ProjectCatalogSettings
Name | Description | Value |
---|---|---|
catalogItemSyncTypes | Indicates catalog item types that can be synced. | String array containing any of: 'EnvironmentDefinition' 'ImageDefinition' |
ProjectCustomizationManagedIdentity
Name | Description | Value |
---|---|---|
identityResourceId | Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<resource group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity. | string |
identityType | Values can be systemAssignedIdentity or userAssignedIdentity | 'systemAssignedIdentity' 'userAssignedIdentity' |
ProjectCustomizationSettings
Name | Description | Value |
---|---|---|
identities | The identities that can to be used in customization scenarios; e.g., to clone a repository. | ProjectCustomizationManagedIdentity[] |
userCustomizationsEnableStatus | Indicates whether user customizations are enabled. | 'Disabled' 'Enabled' |
ProjectProperties
Name | Description | Value |
---|---|---|
azureAiServicesSettings | Indicates whether Azure AI services are enabled for a project. | AzureAiServicesSettings |
catalogSettings | Settings to be used when associating a project with a catalog. | ProjectCatalogSettings |
customizationSettings | Settings to be used for customizations. | ProjectCustomizationSettings |
description | Description of the project. | string |
devBoxAutoDeleteSettings | Dev Box Auto Delete settings. | DevBoxAutoDeleteSettings |
devCenterId | Resource Id of an associated DevCenter | string |
displayName | The display name of the project. | string |
maxDevBoxesPerUser | When specified, limits the maximum number of Dev Boxes a single user can create across all pools in the project. This will have no effect on existing Dev Boxes when reduced. | int Constraints: Min value = 0 |
serverlessGpuSessionsSettings | Settings to be used for serverless GPU. | ServerlessGpuSessionsSettings |
workspaceStorageSettings | Settings to be used for workspace storage. | WorkspaceStorageSettings |
ServerlessGpuSessionsSettings
Name | Description | Value |
---|---|---|
maxConcurrentSessionsPerProject | When specified, limits the maximum number of concurrent sessions across all pools in the project. | int Constraints: Min value = 1 |
serverlessGpuSessionsMode | The property indicates whether serverless GPU access is enabled on the project. | 'AutoDeploy' 'Disabled' |
TrackedResourceTags
Name | Description | Value |
---|
UserAssignedIdentities
Name | Description | Value |
---|
UserAssignedIdentity
Name | Description | Value |
---|
WorkspaceStorageSettings
Name | Description | Value |
---|---|---|
workspaceStorageMode | Indicates whether workspace storage is enabled. | 'AutoDeploy' 'Disabled' |
Usage Examples
Azure Quickstart Templates
The following Azure Quickstart templates deploy this resource type.
Template | Description |
---|---|
Configure Deployment Environments service |
This template provides a way to configure Deployment Environments. |
Configure Dev Box service |
This template would create all Dev Box admin resources as per Dev Box quick start guide (/azure/dev-box/quickstart-create-dev-box). You can view all resources created, or directly go to DevPortal.microsoft.com to create your first Dev Box. |
Deploy Dev Box Service |
This template provides a way to configure all resouces required to create a Dev Box. |
Deploy Dev Box Service with built-in image |
This template provides a way to deploy an Dev Box service with built-in image. |
Terraform (AzAPI provider) resource definition
The projects 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.DevCenter/projects resource, add the following Terraform to your template.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.DevCenter/projects@2025-04-01-preview"
name = "string"
parent_id = "string"
identity {
type = "string"
identity_ids = [
"string"
]
}
location = "string"
tags = {
{customized property} = "string"
}
body = {
properties = {
azureAiServicesSettings = {
azureAiServicesMode = "string"
}
catalogSettings = {
catalogItemSyncTypes = [
"string"
]
}
customizationSettings = {
identities = [
{
identityResourceId = "string"
identityType = "string"
}
]
userCustomizationsEnableStatus = "string"
}
description = "string"
devBoxAutoDeleteSettings = {
deleteMode = "string"
gracePeriod = "string"
inactiveThreshold = "string"
}
devCenterId = "string"
displayName = "string"
maxDevBoxesPerUser = int
serverlessGpuSessionsSettings = {
maxConcurrentSessionsPerProject = int
serverlessGpuSessionsMode = "string"
}
workspaceStorageSettings = {
workspaceStorageMode = "string"
}
}
}
}
Property Values
Microsoft.DevCenter/projects
Name | Description | Value |
---|---|---|
identity | Managed identity properties | ManagedServiceIdentity |
location | The geo-location where the resource lives | string (required) |
name | The resource name | string Constraints: Min length = 3 Max length = 63 Pattern = ^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$ (required) |
properties | Properties of a project. | ProjectProperties |
tags | Resource tags | Dictionary of tag names and values. |
type | The resource type | "Microsoft.DevCenter/projects@2025-04-01-preview" |
AzureAiServicesSettings
Name | Description | Value |
---|---|---|
azureAiServicesMode | The property indicates whether Azure AI services is enabled. | 'AutoDeploy' 'Disabled' |
DevBoxAutoDeleteSettings
Name | Description | Value |
---|---|---|
deleteMode | Indicates the delete mode for Dev Boxes within this project. | 'Auto' 'Manual' |
gracePeriod | ISO8601 duration required for the dev box to be marked for deletion prior to it being deleted. ISO8601 format PT[n]H[n]M[n]S. | string |
inactiveThreshold | ISO8601 duration required for the dev box to not be inactive prior to it being scheduled for deletion. ISO8601 format PT[n]H[n]M[n]S. | string |
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. | UserAssignedIdentities |
ProjectCatalogSettings
Name | Description | Value |
---|---|---|
catalogItemSyncTypes | Indicates catalog item types that can be synced. | String array containing any of: 'EnvironmentDefinition' 'ImageDefinition' |
ProjectCustomizationManagedIdentity
Name | Description | Value |
---|---|---|
identityResourceId | Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<resource group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity. | string |
identityType | Values can be systemAssignedIdentity or userAssignedIdentity | 'systemAssignedIdentity' 'userAssignedIdentity' |
ProjectCustomizationSettings
Name | Description | Value |
---|---|---|
identities | The identities that can to be used in customization scenarios; e.g., to clone a repository. | ProjectCustomizationManagedIdentity[] |
userCustomizationsEnableStatus | Indicates whether user customizations are enabled. | 'Disabled' 'Enabled' |
ProjectProperties
Name | Description | Value |
---|---|---|
azureAiServicesSettings | Indicates whether Azure AI services are enabled for a project. | AzureAiServicesSettings |
catalogSettings | Settings to be used when associating a project with a catalog. | ProjectCatalogSettings |
customizationSettings | Settings to be used for customizations. | ProjectCustomizationSettings |
description | Description of the project. | string |
devBoxAutoDeleteSettings | Dev Box Auto Delete settings. | DevBoxAutoDeleteSettings |
devCenterId | Resource Id of an associated DevCenter | string |
displayName | The display name of the project. | string |
maxDevBoxesPerUser | When specified, limits the maximum number of Dev Boxes a single user can create across all pools in the project. This will have no effect on existing Dev Boxes when reduced. | int Constraints: Min value = 0 |
serverlessGpuSessionsSettings | Settings to be used for serverless GPU. | ServerlessGpuSessionsSettings |
workspaceStorageSettings | Settings to be used for workspace storage. | WorkspaceStorageSettings |
ServerlessGpuSessionsSettings
Name | Description | Value |
---|---|---|
maxConcurrentSessionsPerProject | When specified, limits the maximum number of concurrent sessions across all pools in the project. | int Constraints: Min value = 1 |
serverlessGpuSessionsMode | The property indicates whether serverless GPU access is enabled on the project. | 'AutoDeploy' 'Disabled' |
TrackedResourceTags
Name | Description | Value |
---|
UserAssignedIdentities
Name | Description | Value |
---|
UserAssignedIdentity
Name | Description | Value |
---|
WorkspaceStorageSettings
Name | Description | Value |
---|---|---|
workspaceStorageMode | Indicates whether workspace storage is enabled. | 'AutoDeploy' 'Disabled' |