Microsoft.DevCenter devcenters 2024-08-01-preview

Bicep resource definition

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

resource symbolicname 'Microsoft.DevCenter/devcenters@2024-08-01-preview' = {
  identity: {
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  location: 'string'
  name: 'string'
  properties: {
    devBoxProvisioningSettings: {
      installAzureMonitorAgentEnableStatus: 'string'
    }
    displayName: 'string'
    encryption: {
      customerManagedKeyEncryption: {
        keyEncryptionKeyIdentity: {
          delegatedIdentityClientId: 'string'
          identityType: 'string'
          userAssignedIdentityResourceId: 'string'
        }
        keyEncryptionKeyUrl: 'string'
      }
    }
    networkSettings: {
      microsoftHostedNetworkEnableStatus: 'string'
    }
    planId: 'string'
    projectCatalogSettings: {
      catalogItemSyncEnableStatus: 'string'
    }
    restrictedResourceTypes: [
      'string'
    ]
  }
  tags: {
    {customized property}: 'string'
  }
}

Property values

CustomerManagedKeyEncryption

Name Description Value
keyEncryptionKeyIdentity All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault. CustomerManagedKeyEncryptionKeyIdentity
keyEncryptionKeyUrl key encryption key Url, versioned or non-versioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek. string

CustomerManagedKeyEncryptionKeyIdentity

Name Description Value
delegatedIdentityClientId delegated identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<resource group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal use only. string

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
identityType Values can be systemAssignedIdentity or userAssignedIdentity 'delegatedResourceIdentity'
'systemAssignedIdentity'
'userAssignedIdentity'
userAssignedIdentityResourceId user assigned identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<resource group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and delegatedResourceIdentity. string

DevBoxProvisioningSettings

Name Description Value
installAzureMonitorAgentEnableStatus Whether project catalogs associated with projects in this dev center can be configured to sync catalog items. 'Disabled'
'Enabled'

DevCenterNetworkSettings

Name Description Value
microsoftHostedNetworkEnableStatus Indicates whether pools in this Dev Center can use Microsoft Hosted Networks. Defaults to Enabled if not set. 'Disabled'
'Enabled'

DevCenterProjectCatalogSettings

Name Description Value
catalogItemSyncEnableStatus Whether project catalogs associated with projects in this dev center can be configured to sync catalog items. 'Disabled'
'Enabled'

DevCenterProperties

Name Description Value
devBoxProvisioningSettings Settings to be used in the provisioning of all Dev Boxes that belong to this dev center. DevBoxProvisioningSettings
displayName The display name of the devcenter. string
encryption Encryption settings to be used for server-side encryption for proprietary content (such as catalogs, logs, customizations). Encryption
networkSettings Network settings that will be enforced on network resources associated with the Dev Center. DevCenterNetworkSettings
planId Resource Id of an associated Plan string
projectCatalogSettings Dev Center settings to be used when associating a project with a catalog. DevCenterProjectCatalogSettings
restrictedResourceTypes Indicates the resource types that are restricted from being accessed by a project unless allowed by a curation profile. String array containing any of:
'AttachedNetworks'
'Images'
'Skus'

Encryption

Name Description Value
customerManagedKeyEncryption All Customer-managed key encryption properties for the resource. CustomerManagedKeyEncryption

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

Microsoft.DevCenter/devcenters

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 = 3
Pattern = ^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$ (required)
properties DevCenter properties DevCenterProperties
tags Resource tags Dictionary of tag names and values. See Tags in templates

TrackedResourceTags

Name Description Value

UserAssignedIdentities

Name Description Value

UserAssignedIdentity

Name Description Value

Quickstart samples

The following quickstart samples deploy 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 with built-in image This template provides a way to deploy an Dev Box service with built-in image.

ARM template resource definition

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

{
  "type": "Microsoft.DevCenter/devcenters",
  "apiVersion": "2024-08-01-preview",
  "name": "string",
  "identity": {
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {
      }
    }
  },
  "location": "string",
  "properties": {
    "devBoxProvisioningSettings": {
      "installAzureMonitorAgentEnableStatus": "string"
    },
    "displayName": "string",
    "encryption": {
      "customerManagedKeyEncryption": {
        "keyEncryptionKeyIdentity": {
          "delegatedIdentityClientId": "string",
          "identityType": "string",
          "userAssignedIdentityResourceId": "string"
        },
        "keyEncryptionKeyUrl": "string"
      }
    },
    "networkSettings": {
      "microsoftHostedNetworkEnableStatus": "string"
    },
    "planId": "string",
    "projectCatalogSettings": {
      "catalogItemSyncEnableStatus": "string"
    },
    "restrictedResourceTypes": [ "string" ]
  },
  "tags": {
    "{customized property}": "string"
  }
}

Property values

CustomerManagedKeyEncryption

Name Description Value
keyEncryptionKeyIdentity All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault. CustomerManagedKeyEncryptionKeyIdentity
keyEncryptionKeyUrl key encryption key Url, versioned or non-versioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek. string

CustomerManagedKeyEncryptionKeyIdentity

Name Description Value
delegatedIdentityClientId delegated identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<resource group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal use only. string

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
identityType Values can be systemAssignedIdentity or userAssignedIdentity 'delegatedResourceIdentity'
'systemAssignedIdentity'
'userAssignedIdentity'
userAssignedIdentityResourceId user assigned identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<resource group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and delegatedResourceIdentity. string

DevBoxProvisioningSettings

Name Description Value
installAzureMonitorAgentEnableStatus Whether project catalogs associated with projects in this dev center can be configured to sync catalog items. 'Disabled'
'Enabled'

DevCenterNetworkSettings

Name Description Value
microsoftHostedNetworkEnableStatus Indicates whether pools in this Dev Center can use Microsoft Hosted Networks. Defaults to Enabled if not set. 'Disabled'
'Enabled'

DevCenterProjectCatalogSettings

Name Description Value
catalogItemSyncEnableStatus Whether project catalogs associated with projects in this dev center can be configured to sync catalog items. 'Disabled'
'Enabled'

DevCenterProperties

Name Description Value
devBoxProvisioningSettings Settings to be used in the provisioning of all Dev Boxes that belong to this dev center. DevBoxProvisioningSettings
displayName The display name of the devcenter. string
encryption Encryption settings to be used for server-side encryption for proprietary content (such as catalogs, logs, customizations). Encryption
networkSettings Network settings that will be enforced on network resources associated with the Dev Center. DevCenterNetworkSettings
planId Resource Id of an associated Plan string
projectCatalogSettings Dev Center settings to be used when associating a project with a catalog. DevCenterProjectCatalogSettings
restrictedResourceTypes Indicates the resource types that are restricted from being accessed by a project unless allowed by a curation profile. String array containing any of:
'AttachedNetworks'
'Images'
'Skus'

Encryption

Name Description Value
customerManagedKeyEncryption All Customer-managed key encryption properties for the resource. CustomerManagedKeyEncryption

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

Microsoft.DevCenter/devcenters

Name Description Value
apiVersion The api version '2024-08-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 = 3
Pattern = ^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$ (required)
properties DevCenter properties DevCenterProperties
tags Resource tags Dictionary of tag names and values. See Tags in templates
type The resource type 'Microsoft.DevCenter/devcenters'

TrackedResourceTags

Name Description Value

UserAssignedIdentities

Name Description Value

UserAssignedIdentity

Name Description Value

Quickstart templates

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

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.DevCenter/devcenters@2024-08-01-preview"
  name = "string"
  identity = {
    type = "string"
    userAssignedIdentities = {
      {customized property} = {
      }
    }
  }
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = jsonencode({
    properties = {
      devBoxProvisioningSettings = {
        installAzureMonitorAgentEnableStatus = "string"
      }
      displayName = "string"
      encryption = {
        customerManagedKeyEncryption = {
          keyEncryptionKeyIdentity = {
            delegatedIdentityClientId = "string"
            identityType = "string"
            userAssignedIdentityResourceId = "string"
          }
          keyEncryptionKeyUrl = "string"
        }
      }
      networkSettings = {
        microsoftHostedNetworkEnableStatus = "string"
      }
      planId = "string"
      projectCatalogSettings = {
        catalogItemSyncEnableStatus = "string"
      }
      restrictedResourceTypes = [
        "string"
      ]
    }
  })
}

Property values

CustomerManagedKeyEncryption

Name Description Value
keyEncryptionKeyIdentity All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault. CustomerManagedKeyEncryptionKeyIdentity
keyEncryptionKeyUrl key encryption key Url, versioned or non-versioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek. string

CustomerManagedKeyEncryptionKeyIdentity

Name Description Value
delegatedIdentityClientId delegated identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<resource group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal use only. string

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
identityType Values can be systemAssignedIdentity or userAssignedIdentity 'delegatedResourceIdentity'
'systemAssignedIdentity'
'userAssignedIdentity'
userAssignedIdentityResourceId user assigned identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<resource group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and delegatedResourceIdentity. string

DevBoxProvisioningSettings

Name Description Value
installAzureMonitorAgentEnableStatus Whether project catalogs associated with projects in this dev center can be configured to sync catalog items. 'Disabled'
'Enabled'

DevCenterNetworkSettings

Name Description Value
microsoftHostedNetworkEnableStatus Indicates whether pools in this Dev Center can use Microsoft Hosted Networks. Defaults to Enabled if not set. 'Disabled'
'Enabled'

DevCenterProjectCatalogSettings

Name Description Value
catalogItemSyncEnableStatus Whether project catalogs associated with projects in this dev center can be configured to sync catalog items. 'Disabled'
'Enabled'

DevCenterProperties

Name Description Value
devBoxProvisioningSettings Settings to be used in the provisioning of all Dev Boxes that belong to this dev center. DevBoxProvisioningSettings
displayName The display name of the devcenter. string
encryption Encryption settings to be used for server-side encryption for proprietary content (such as catalogs, logs, customizations). Encryption
networkSettings Network settings that will be enforced on network resources associated with the Dev Center. DevCenterNetworkSettings
planId Resource Id of an associated Plan string
projectCatalogSettings Dev Center settings to be used when associating a project with a catalog. DevCenterProjectCatalogSettings
restrictedResourceTypes Indicates the resource types that are restricted from being accessed by a project unless allowed by a curation profile. String array containing any of:
'AttachedNetworks'
'Images'
'Skus'

Encryption

Name Description Value
customerManagedKeyEncryption All Customer-managed key encryption properties for the resource. CustomerManagedKeyEncryption

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

Microsoft.DevCenter/devcenters

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 = 3
Pattern = ^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$ (required)
properties DevCenter properties DevCenterProperties
tags Resource tags Dictionary of tag names and values.
type The resource type "Microsoft.DevCenter/devcenters@2024-08-01-preview"

TrackedResourceTags

Name Description Value

UserAssignedIdentities

Name Description Value

UserAssignedIdentity

Name Description Value