Compartir a través de


Proyectos de Microsoft.DevCenter

Definición de recursos de Bicep

El tipo de recurso projects se puede implementar con operaciones destinadas a:

Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.

Formato de recurso

Para crear un recurso Microsoft.DevCenter/projects, agregue el siguiente bicep a la plantilla.

resource symbolicname 'Microsoft.DevCenter/projects@2025-10-01-preview' = {
  scope: resourceSymbolicName or scope
  identity: {
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  location: 'string'
  name: 'string'
  properties: {
    assignedGroups: [
      {
        objectId: 'string'
        scope: 'string'
      }
    ]
    azureAiServicesSettings: {
      azureAiServicesMode: 'string'
    }
    catalogSettings: {
      catalogItemSyncTypes: [
        'string'
      ]
    }
    customizationSettings: {
      identities: [
        {
          identityResourceId: 'string'
          identityType: 'string'
        }
      ]
      userCustomizationsEnableStatus: 'string'
    }
    description: 'string'
    devBoxScheduleDeleteSettings: {
      cancelOnConnectEnableStatus: 'string'
      deleteMode: 'string'
      gracePeriod: 'string'
      inactiveThreshold: 'string'
    }
    devCenterId: 'string'
    displayName: 'string'
    maxDevBoxesPerUser: int
    serverlessGpuSessionsSettings: {
      maxConcurrentSessionsPerProject: int
      serverlessGpuSessionsMode: 'string'
    }
    workspaceStorageSettings: {
      workspaceStorageMode: 'string'
    }
  }
  tags: {
    {customized property}: 'string'
  }
}

Valores de propiedad

Microsoft.DevCenter/projects

Name Description Value
identity Propiedades de identidad administrada. ManagedServiceIdentity
location Ubicación geográfica donde reside el recurso string (obligatorio)
name El nombre del recurso string

Constraints:
Longitud mínima = 3
Longitud máxima = 63
Patrón = ^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$ (obligatorio)
properties Propiedades de un proyecto. ProjectProperties
scope Use al crear un recurso en un ámbito diferente del ámbito de implementación. Establezca esta propiedad en el nombre simbólico de un recurso para aplicar el recurso de extensión .
tags Etiquetas de recursos Diccionario de nombres y valores de etiqueta. Consulte etiquetas de en plantillas

Grupo asignado

Name Description Value
objectId El identificador de objeto de grupo (GUID) de Entra. string

Constraints:
Longitud mínima = 36
Longitud máxima = 36
Patrón = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
scope El alcance de la asignación. 'Caja de desarrollo'

AzureAiServicesSettings

Name Description Value
azureAiServicesMode La propiedad indica si los servicios de Azure AI están habilitados. 'AutoDeploy'
'Disabled'

DevBoxScheduleDeleteSettings

Name Description Value
cancelOnConnectEnableStatus Indica si la eliminación programada debe cancelarse cuando un usuario se conecta al cuadro de desarrollo. 'Disabled'
'Enabled'
deleteMode Indica el modo de eliminación de los equipos de desarrollo dentro de este proyecto. 'Auto'
'Manual'
gracePeriod ISO8601 tiempo necesario para que el cuadro de desarrollo se marque para su eliminación antes de que se elimine. ISO8601 formato PT[n]H[n]M[n]S. string
inactiveThreshold ISO8601 tiempo necesario para que el equipo de desarrollo no esté inactivo antes de que se programe su eliminación. ISO8601 formato PT[n]H[n]M[n]S. string

ManagedServiceIdentity

Name Description Value
type Tipo de identidad de servicio administrada (donde se permiten los tipos SystemAssigned y UserAssigned). 'None'
'SystemAssigned'
'Asignado al sistema, asignado al usuario'
'UserAssigned' (obligatorio)
userAssignedIdentities Conjunto de identidades asignadas por el usuario asociadas al recurso. Las claves de diccionario userAssignedIdentities serán identificadores de recursos de ARM con el formato: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. Los valores del diccionario pueden ser objetos vacíos ({}) en las solicitudes. UserAssignedIdentities

ProjectCatalogSettings

Name Description Value
catalogItemSyncTypes Indica los tipos de elementos de catálogo que se pueden sincronizar. Matriz de cadenas que contiene cualquiera de:
'EnvironmentDefinition'
'ImageDefinition'

ProjectCustomizationManagedIdentity

Name Description Value
identityResourceId Por ejemplo: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<grupo de recursos>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutuamente excluyente con identityType systemAssignedIdentity. string
identityType Los valores pueden ser systemAssignedIdentity o userAssignedIdentity. 'systemAssignedIdentity'
'userAssignedIdentity'

ProjectCustomizationSettings

Name Description Value
identities Las identidades que se pueden usar en escenarios de personalización; por ejemplo, para clonar un repositorio. ProjectCustomizationManagedIdentity[]
userCustomizationsEnableStatus Indica si las personalizaciones de usuario están habilitadas. 'Disabled'
'Enabled'

ProjectProperties

Name Description Value
Grupos asignados Lista de asignaciones de grupos de Entra ID asociadas a este proyecto. Grupo asignado[]
azureAiServicesSettings Indica si los servicios de Azure AI están habilitados para un proyecto. AzureAiServicesSettings
catalogSettings Configuración que se usará al asociar un proyecto con un catálogo. ProjectCatalogSettings
customizationSettings Configuración que se utilizará para las personalizaciones. ProjectCustomizationSettings
description Descripción del proyecto. string
devBoxScheduleDeleteSettings Configuración de eliminación de programación de Dev Box. DevBoxScheduleDeleteSettings
devCenterId Identificador de recurso de un DevCenter asociado. string
displayName Nombre para mostrar del proyecto. string
maxDevBoxesPerUser Cuando se especifica, limita el número máximo de Dev Boxes que un solo usuario puede crear en todos los grupos del proyecto. Esto no tendrá ningún efecto en los boxes de desarrollo existentes cuando se reduzca. int

Constraints:
Valor mínimo = 0
serverlessGpuSessionsSettings Configuración que se utilizará para la GPU sin servidor. ServerlessGpuSessionsSettings
workspaceStorageSettings Configuración que se utilizará para el almacenamiento del espacio de trabajo. WorkspaceStorageSettings

ServerlessGpuSessionsSettings

Name Description Value
maxConcurrentSessionsPerProject Cuando se especifica, limita el número máximo de sesiones simultáneas en todos los grupos del proyecto. int

Constraints:
Valor mínimo = 1
serverlessGpuSessionsMode La propiedad indica si el acceso a GPU sin servidor está habilitado en el proyecto. 'AutoDeploy'
'Disabled'

TrackedResourceTags

Name Description Value

UserAssignedIdentities

Name Description Value

UserAssignedIdentity

Name Description Value

WorkspaceStorageSettings

Name Description Value
workspaceStorageMode Indica si el almacenamiento del área de trabajo está habilitado. 'AutoDeploy'
'Disabled'

Ejemplos de uso

Módulos comprobados de Azure

Los siguientes módulos comprobados de Azure se pueden usar para implementar este tipo de recurso.

Módulo Description
Proyecto del Centro de desarrollo Módulo de recursos de AVM para el proyecto del Centro de desarrollo

Ejemplos de inicio rápido de Azure

Los siguientes plantillas de inicio rápido de Azure contienen ejemplos de Bicep para implementar este tipo de recurso.

Archivo de Bicep Description
Configurar entornos de implementación Esta plantilla proporciona una manera de configurar entornos de implementación.
configuración del servicio Dev Box Esta plantilla crearía todos los recursos de administración de Dev Box según la guía de inicio rápido de Dev Box (/azure/dev-box/quickstart-create-dev-box). Puede ver todos los recursos creados o ir directamente a DevPortal.microsoft.com para crear su primer cuadro de desarrollo.
Implementación del servicio Dev Box Esta plantilla proporciona una forma de configurar todos los recursos necesarios para crear un Dev Box.
Implementación de Dev Box Service con una imagen integrada Esta plantilla proporciona una manera de implementar un servicio Dev Box con una imagen integrada.

Definición de recursos de plantilla de ARM

El tipo de recurso projects se puede implementar con operaciones destinadas a:

Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.

Formato de recurso

Para crear un recurso Microsoft.DevCenter/projects, agregue el siguiente json a la plantilla.

{
  "type": "Microsoft.DevCenter/projects",
  "apiVersion": "2025-10-01-preview",
  "name": "string",
  "identity": {
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {
      }
    }
  },
  "location": "string",
  "properties": {
    "assignedGroups": [
      {
        "objectId": "string",
        "scope": "string"
      }
    ],
    "azureAiServicesSettings": {
      "azureAiServicesMode": "string"
    },
    "catalogSettings": {
      "catalogItemSyncTypes": [ "string" ]
    },
    "customizationSettings": {
      "identities": [
        {
          "identityResourceId": "string",
          "identityType": "string"
        }
      ],
      "userCustomizationsEnableStatus": "string"
    },
    "description": "string",
    "devBoxScheduleDeleteSettings": {
      "cancelOnConnectEnableStatus": "string",
      "deleteMode": "string",
      "gracePeriod": "string",
      "inactiveThreshold": "string"
    },
    "devCenterId": "string",
    "displayName": "string",
    "maxDevBoxesPerUser": "int",
    "serverlessGpuSessionsSettings": {
      "maxConcurrentSessionsPerProject": "int",
      "serverlessGpuSessionsMode": "string"
    },
    "workspaceStorageSettings": {
      "workspaceStorageMode": "string"
    }
  },
  "tags": {
    "{customized property}": "string"
  }
}

Valores de propiedad

Microsoft.DevCenter/projects

Name Description Value
apiVersion La versión de api '2025-10-01-preview'
identity Propiedades de identidad administrada. ManagedServiceIdentity
location Ubicación geográfica donde reside el recurso string (obligatorio)
name El nombre del recurso string

Constraints:
Longitud mínima = 3
Longitud máxima = 63
Patrón = ^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$ (obligatorio)
properties Propiedades de un proyecto. ProjectProperties
tags Etiquetas de recursos Diccionario de nombres y valores de etiqueta. Consulte etiquetas de en plantillas
type El tipo de recurso 'Microsoft.DevCenter/projects'

Grupo asignado

Name Description Value
objectId El identificador de objeto de grupo (GUID) de Entra. string

Constraints:
Longitud mínima = 36
Longitud máxima = 36
Patrón = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
scope El alcance de la asignación. 'Caja de desarrollo'

AzureAiServicesSettings

Name Description Value
azureAiServicesMode La propiedad indica si los servicios de Azure AI están habilitados. 'AutoDeploy'
'Disabled'

DevBoxScheduleDeleteSettings

Name Description Value
cancelOnConnectEnableStatus Indica si la eliminación programada debe cancelarse cuando un usuario se conecta al cuadro de desarrollo. 'Disabled'
'Enabled'
deleteMode Indica el modo de eliminación de los equipos de desarrollo dentro de este proyecto. 'Auto'
'Manual'
gracePeriod ISO8601 tiempo necesario para que el cuadro de desarrollo se marque para su eliminación antes de que se elimine. ISO8601 formato PT[n]H[n]M[n]S. string
inactiveThreshold ISO8601 tiempo necesario para que el equipo de desarrollo no esté inactivo antes de que se programe su eliminación. ISO8601 formato PT[n]H[n]M[n]S. string

ManagedServiceIdentity

Name Description Value
type Tipo de identidad de servicio administrada (donde se permiten los tipos SystemAssigned y UserAssigned). 'None'
'SystemAssigned'
'Asignado al sistema, asignado al usuario'
'UserAssigned' (obligatorio)
userAssignedIdentities Conjunto de identidades asignadas por el usuario asociadas al recurso. Las claves de diccionario userAssignedIdentities serán identificadores de recursos de ARM con el formato: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. Los valores del diccionario pueden ser objetos vacíos ({}) en las solicitudes. UserAssignedIdentities

ProjectCatalogSettings

Name Description Value
catalogItemSyncTypes Indica los tipos de elementos de catálogo que se pueden sincronizar. Matriz de cadenas que contiene cualquiera de:
'EnvironmentDefinition'
'ImageDefinition'

ProjectCustomizationManagedIdentity

Name Description Value
identityResourceId Por ejemplo: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<grupo de recursos>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutuamente excluyente con identityType systemAssignedIdentity. string
identityType Los valores pueden ser systemAssignedIdentity o userAssignedIdentity. 'systemAssignedIdentity'
'userAssignedIdentity'

ProjectCustomizationSettings

Name Description Value
identities Las identidades que se pueden usar en escenarios de personalización; por ejemplo, para clonar un repositorio. ProjectCustomizationManagedIdentity[]
userCustomizationsEnableStatus Indica si las personalizaciones de usuario están habilitadas. 'Disabled'
'Enabled'

ProjectProperties

Name Description Value
Grupos asignados Lista de asignaciones de grupos de Entra ID asociadas a este proyecto. Grupo asignado[]
azureAiServicesSettings Indica si los servicios de Azure AI están habilitados para un proyecto. AzureAiServicesSettings
catalogSettings Configuración que se usará al asociar un proyecto con un catálogo. ProjectCatalogSettings
customizationSettings Configuración que se utilizará para las personalizaciones. ProjectCustomizationSettings
description Descripción del proyecto. string
devBoxScheduleDeleteSettings Configuración de eliminación de programación de Dev Box. DevBoxScheduleDeleteSettings
devCenterId Identificador de recurso de un DevCenter asociado. string
displayName Nombre para mostrar del proyecto. string
maxDevBoxesPerUser Cuando se especifica, limita el número máximo de Dev Boxes que un solo usuario puede crear en todos los grupos del proyecto. Esto no tendrá ningún efecto en los boxes de desarrollo existentes cuando se reduzca. int

Constraints:
Valor mínimo = 0
serverlessGpuSessionsSettings Configuración que se utilizará para la GPU sin servidor. ServerlessGpuSessionsSettings
workspaceStorageSettings Configuración que se utilizará para el almacenamiento del espacio de trabajo. WorkspaceStorageSettings

ServerlessGpuSessionsSettings

Name Description Value
maxConcurrentSessionsPerProject Cuando se especifica, limita el número máximo de sesiones simultáneas en todos los grupos del proyecto. int

Constraints:
Valor mínimo = 1
serverlessGpuSessionsMode La propiedad indica si el acceso a GPU sin servidor está habilitado en el proyecto. 'AutoDeploy'
'Disabled'

TrackedResourceTags

Name Description Value

UserAssignedIdentities

Name Description Value

UserAssignedIdentity

Name Description Value

WorkspaceStorageSettings

Name Description Value
workspaceStorageMode Indica si el almacenamiento del área de trabajo está habilitado. 'AutoDeploy'
'Disabled'

Ejemplos de uso

Plantillas de inicio rápido de Azure

Los siguientes plantillas de inicio rápido de Azure implementar este tipo de recurso.

Template Description
Configurar entornos de implementación

Implementación en Azure
Esta plantilla proporciona una manera de configurar entornos de implementación.
configuración del servicio Dev Box

Implementación en Azure
Esta plantilla crearía todos los recursos de administración de Dev Box según la guía de inicio rápido de Dev Box (/azure/dev-box/quickstart-create-dev-box). Puede ver todos los recursos creados o ir directamente a DevPortal.microsoft.com para crear su primer cuadro de desarrollo.
Implementación del servicio Dev Box

Implementación en Azure
Esta plantilla proporciona una forma de configurar todos los recursos necesarios para crear un Dev Box.
Implementación de Dev Box Service con una imagen integrada

Implementación en Azure
Esta plantilla proporciona una manera de implementar un servicio Dev Box con una imagen integrada.

Definición de recursos de Terraform (proveedor AzAPI)

El tipo de recurso projects se puede implementar con operaciones destinadas a:

Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.

Formato de recurso

Para crear un recurso Microsoft.DevCenter/projects, agregue el siguiente terraform a la plantilla.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.DevCenter/projects@2025-10-01-preview"
  name = "string"
  parent_id = "string"
  identity {
    type = "string"
    identity_ids = [
      "string"
    ]
  }
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    properties = {
      assignedGroups = [
        {
          objectId = "string"
          scope = "string"
        }
      ]
      azureAiServicesSettings = {
        azureAiServicesMode = "string"
      }
      catalogSettings = {
        catalogItemSyncTypes = [
          "string"
        ]
      }
      customizationSettings = {
        identities = [
          {
            identityResourceId = "string"
            identityType = "string"
          }
        ]
        userCustomizationsEnableStatus = "string"
      }
      description = "string"
      devBoxScheduleDeleteSettings = {
        cancelOnConnectEnableStatus = "string"
        deleteMode = "string"
        gracePeriod = "string"
        inactiveThreshold = "string"
      }
      devCenterId = "string"
      displayName = "string"
      maxDevBoxesPerUser = int
      serverlessGpuSessionsSettings = {
        maxConcurrentSessionsPerProject = int
        serverlessGpuSessionsMode = "string"
      }
      workspaceStorageSettings = {
        workspaceStorageMode = "string"
      }
    }
  }
}

Valores de propiedad

Microsoft.DevCenter/projects

Name Description Value
identity Propiedades de identidad administrada. ManagedServiceIdentity
location Ubicación geográfica donde reside el recurso string (obligatorio)
name El nombre del recurso string

Constraints:
Longitud mínima = 3
Longitud máxima = 63
Patrón = ^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$ (obligatorio)
parent_id Identificador del recurso al que se va a aplicar este recurso de extensión. string (obligatorio)
properties Propiedades de un proyecto. ProjectProperties
tags Etiquetas de recursos Diccionario de nombres y valores de etiqueta.
type El tipo de recurso "Microsoft.DevCenter/projects@2025-10-01-preview"

Grupo asignado

Name Description Value
objectId El identificador de objeto de grupo (GUID) de Entra. string

Constraints:
Longitud mínima = 36
Longitud máxima = 36
Patrón = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
scope El alcance de la asignación. 'Caja de desarrollo'

AzureAiServicesSettings

Name Description Value
azureAiServicesMode La propiedad indica si los servicios de Azure AI están habilitados. 'AutoDeploy'
'Disabled'

DevBoxScheduleDeleteSettings

Name Description Value
cancelOnConnectEnableStatus Indica si la eliminación programada debe cancelarse cuando un usuario se conecta al cuadro de desarrollo. 'Disabled'
'Enabled'
deleteMode Indica el modo de eliminación de los equipos de desarrollo dentro de este proyecto. 'Auto'
'Manual'
gracePeriod ISO8601 tiempo necesario para que el cuadro de desarrollo se marque para su eliminación antes de que se elimine. ISO8601 formato PT[n]H[n]M[n]S. string
inactiveThreshold ISO8601 tiempo necesario para que el equipo de desarrollo no esté inactivo antes de que se programe su eliminación. ISO8601 formato PT[n]H[n]M[n]S. string

ManagedServiceIdentity

Name Description Value
type Tipo de identidad de servicio administrada (donde se permiten los tipos SystemAssigned y UserAssigned). 'None'
'SystemAssigned'
'Asignado al sistema, asignado al usuario'
'UserAssigned' (obligatorio)
userAssignedIdentities Conjunto de identidades asignadas por el usuario asociadas al recurso. Las claves de diccionario userAssignedIdentities serán identificadores de recursos de ARM con el formato: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. Los valores del diccionario pueden ser objetos vacíos ({}) en las solicitudes. UserAssignedIdentities

ProjectCatalogSettings

Name Description Value
catalogItemSyncTypes Indica los tipos de elementos de catálogo que se pueden sincronizar. Matriz de cadenas que contiene cualquiera de:
'EnvironmentDefinition'
'ImageDefinition'

ProjectCustomizationManagedIdentity

Name Description Value
identityResourceId Por ejemplo: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<grupo de recursos>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutuamente excluyente con identityType systemAssignedIdentity. string
identityType Los valores pueden ser systemAssignedIdentity o userAssignedIdentity. 'systemAssignedIdentity'
'userAssignedIdentity'

ProjectCustomizationSettings

Name Description Value
identities Las identidades que se pueden usar en escenarios de personalización; por ejemplo, para clonar un repositorio. ProjectCustomizationManagedIdentity[]
userCustomizationsEnableStatus Indica si las personalizaciones de usuario están habilitadas. 'Disabled'
'Enabled'

ProjectProperties

Name Description Value
Grupos asignados Lista de asignaciones de grupos de Entra ID asociadas a este proyecto. Grupo asignado[]
azureAiServicesSettings Indica si los servicios de Azure AI están habilitados para un proyecto. AzureAiServicesSettings
catalogSettings Configuración que se usará al asociar un proyecto con un catálogo. ProjectCatalogSettings
customizationSettings Configuración que se utilizará para las personalizaciones. ProjectCustomizationSettings
description Descripción del proyecto. string
devBoxScheduleDeleteSettings Configuración de eliminación de programación de Dev Box. DevBoxScheduleDeleteSettings
devCenterId Identificador de recurso de un DevCenter asociado. string
displayName Nombre para mostrar del proyecto. string
maxDevBoxesPerUser Cuando se especifica, limita el número máximo de Dev Boxes que un solo usuario puede crear en todos los grupos del proyecto. Esto no tendrá ningún efecto en los boxes de desarrollo existentes cuando se reduzca. int

Constraints:
Valor mínimo = 0
serverlessGpuSessionsSettings Configuración que se utilizará para la GPU sin servidor. ServerlessGpuSessionsSettings
workspaceStorageSettings Configuración que se utilizará para el almacenamiento del espacio de trabajo. WorkspaceStorageSettings

ServerlessGpuSessionsSettings

Name Description Value
maxConcurrentSessionsPerProject Cuando se especifica, limita el número máximo de sesiones simultáneas en todos los grupos del proyecto. int

Constraints:
Valor mínimo = 1
serverlessGpuSessionsMode La propiedad indica si el acceso a GPU sin servidor está habilitado en el proyecto. 'AutoDeploy'
'Disabled'

TrackedResourceTags

Name Description Value

UserAssignedIdentities

Name Description Value

UserAssignedIdentity

Name Description Value

WorkspaceStorageSettings

Name Description Value
workspaceStorageMode Indica si el almacenamiento del área de trabajo está habilitado. 'AutoDeploy'
'Disabled'

Ejemplos de uso

Ejemplos de Terraform

Un ejemplo básico de implementación del proyecto del Centro de desarrollo.

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "westus"
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "devCenter" {
  type      = "Microsoft.DevCenter/devCenters@2025-02-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  identity {
    type = "SystemAssigned"
  }
  body = {
    properties = {}
  }
}

resource "azapi_resource" "project" {
  type      = "Microsoft.DevCenter/projects@2025-02-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = "${var.resource_name}-proj"
  location  = var.location
  body = {
    properties = {
      description        = ""
      devCenterId        = azapi_resource.devCenter.id
      maxDevBoxesPerUser = 0
    }
  }
}