Share via


Microsoft.DevCenter projects

Bicep resource definition

The projects 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.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:

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

Deploy to Azure
This template provides a way to configure Deployment Environments.
Configure Dev Box service

Deploy to Azure
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

Deploy to Azure
This template provides a way to configure all resouces required to create a Dev Box.
Deploy Dev Box Service with built-in image

Deploy to Azure
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'