Compartilhar via


Projetos Microsoft.DevCenter

Definição de recurso do Bicep

O tipo de recurso de projetos pode ser implantado com operações direcionadas:

Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.

Formato do recurso

Para criar um recurso Microsoft.DevCenter/projects, adicione o Bicep a seguir ao seu modelo.

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 propriedade

Microsoft.DevCenter/projects

Name Description Value
identidade Propriedades de identidade gerenciada. ManagedServiceIdentity
local A localização geográfica onde o recurso reside string (obrigatório)
name O nome do recurso string

Constraints:
Comprimento mínimo = 3
Comprimento máximo = 63
Padrão = ^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$ (obrigatório)
properties Propriedades de um projeto. ProjectProperties
escopo Use ao criar um recurso em um escopo diferente do escopo de implantação. Defina essa propriedade como o nome simbólico de um recurso para aplicar o recurso de extensão .
tags Etiquetas de recursos Dicionário de nomes e valores de marca. Consulte Marcas em modelos

Grupo Atribuído

Name Description Value
objectId A ID do objeto do grupo Entra (GUID). string

Constraints:
Comprimento mínimo = 36
Comprimento máximo = 36
Padrão = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
escopo O escopo da atribuição. 'DevBox'

AzureAiServicesSettings

Name Description Value
azureAiServicesMode A propriedade indica se os serviços de IA do Azure estão habilitados. 'AutoDeploy'
'Disabled'

DevBoxScheduleDeleteSettings

Name Description Value
cancelOnConnectEnableStatus Indica se a exclusão agendada deve ser cancelada quando um usuário se conecta ao computador de desenvolvimento. 'Disabled'
'Enabled'
deleteMode Indica o modo de exclusão para Computadores de Desenvolvimento neste projeto. 'Auto'
'Manual'
gracePeriod ISO8601 duração necessária para que a caixa de desenvolvimento seja marcada para exclusão antes de ser excluída. ISO8601 formato PT[n]H[n]M[n]S. cadeia
inactiveThreshold ISO8601 duração necessária para que o dev box não fique inativo antes de ser agendado para exclusão. ISO8601 formato PT[n]H[n]M[n]S. cadeia

ManagedServiceIdentity

Name Description Value
tipo Tipo de identidade de serviço gerenciado (em que os tipos SystemAssigned e UserAssigned são permitidos). 'None'
'SystemAssigned'
'SystemAssigned, UserAssigned'
'UserAssigned' (obrigatório)
userAssignedIdentities O conjunto de identidades atribuídas pelo usuário associadas ao recurso. As chaves do dicionário userAssignedIdentities serão IDs de recurso do ARM no formulário: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. Os valores do dicionário podem ser objetos vazios ({}) em solicitações. UserAssignedIdentities

ProjectCatalogSettings

Name Description Value
catalogItemSyncTypes Indica tipos de item de catálogo que podem ser sincronizados. Matriz de cadeia de caracteres que contém qualquer um dos:
'EnvironmentDefinition'
'ImageDefinition'

ProjectCustomizationManagedIdentity

Name Description Value
identityResourceId Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<grupo de recursos>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutuamente exclusivo com identityType systemAssignedIdentity. cadeia
identityType Os valores podem ser systemAssignedIdentity ou userAssignedIdentity. 'systemAssignedIdentity'
'userAssignedIdentity'

ProjectCustomizationSettings

Name Description Value
identities As identidades que podem ser usadas em cenários de personalização; por exemplo, para clonar um repositório. ProjectCustomizationManagedIdentity[]
userCustomizationsEnableStatus Indica se as personalizações do usuário estão habilitadas. 'Disabled'
'Enabled'

ProjectProperties

Name Description Value
Grupos atribuídos Lista de atribuições de grupo de ID do Entra associadas a este projeto. AssignedGroup
azureAiServicesSettings Indica se os serviços de IA do Azure estão habilitados para um projeto. AzureAiServicesSettings
catalogSettings Configurações a serem usadas ao associar um projeto a um catálogo. ProjectCatalogSettings
customizationSettings Configurações a serem usadas para personalizações. ProjectCustomizationSettings
description Descrição do projeto. cadeia
devBoxScheduleDeleteSettings Configurações de exclusão de agendamento do Computador de Desenvolvimento. DevBoxScheduleDeleteSettings
devCenterId ID do recurso de um Centro de Desenvolvimento associado. cadeia
displayName O nome de exibição do projeto. cadeia
maxDevBoxesPerUser Quando especificado, limita o número máximo de Caixas de Desenvolvimento que um único usuário pode criar em todos os pools do projeto. Isso não terá efeito nas Caixas de Desenvolvimento existentes quando reduzida. int

Constraints:
Valor mínimo = 0
serverlessGpuSessionsSettings Configurações a serem usadas para GPU sem servidor. ServerlessGpuSessionsSettings
workspaceStorageSettings Configurações a serem usadas para armazenamento do espaço de trabalho. WorkspaceStorageSettings

ServerlessGpuSessionsSettings

Name Description Value
maxConcurrentSessionsPerProject Quando especificado, limita o número máximo de sessões simultâneas em todos os pools do projeto. int

Constraints:
Valor mínimo = 1
serverlessGpuSessionsMode A propriedade indica se o acesso à GPU sem servidor está habilitado no projeto. 'AutoDeploy'
'Disabled'

TrackedResourceTags

Name Description Value

UserAssignedIdentities

Name Description Value

UserAssignedIdentity

Name Description Value

WorkspaceStorageSettings

Name Description Value
workspaceStorageMode Indica se o armazenamento do workspace está habilitado. 'AutoDeploy'
'Disabled'

Exemplos de uso

Módulos verificados do Azure

O módulos verificados do Azure a seguir pode ser usado para implantar esse tipo de recurso.

Módulo Description
Projeto do Centro de Desenvolvimento Módulo de recursos do AVM para o projeto do Centro de Desenvolvimento

Exemplos de Início Rápido do Azure

Os modelos de Início Rápido do Azure a seguir contêm exemplos de Bicep para implantar esse tipo de recurso.

Arquivo Bicep Description
configurar o serviço ambientes de implantação Esse modelo fornece uma maneira de configurar ambientes de implantação.
configurar de serviço do Dev Box Esse modelo criaria todos os recursos de administrador do Dev Box de acordo com o guia de início rápido do Dev Box (/azure/dev-box/quickstart-create-dev-box). Você pode exibir todos os recursos criados ou ir diretamente para DevPortal.microsoft.com para criar sua primeira Caixa de Desenvolvimento.
Implantar o serviço de computador de desenvolvimento Este modelo fornece uma maneira de configurar todos os recursos necessários para criar um Computador de Desenvolvimento.
implantar o Serviço de Caixa de Desenvolvimento com de imagem interna Esse modelo fornece uma maneira de implantar um serviço Dev Box com imagem interna.

Definição de recurso de modelo do ARM

O tipo de recurso de projetos pode ser implantado com operações direcionadas:

Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.

Formato do recurso

Para criar um recurso Microsoft.DevCenter/projects, adicione o JSON a seguir ao modelo.

{
  "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 propriedade

Microsoft.DevCenter/projects

Name Description Value
apiVersion A versão da API '2025-10-01-preview'
identidade Propriedades de identidade gerenciada. ManagedServiceIdentity
local A localização geográfica onde o recurso reside string (obrigatório)
name O nome do recurso string

Constraints:
Comprimento mínimo = 3
Comprimento máximo = 63
Padrão = ^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$ (obrigatório)
properties Propriedades de um projeto. ProjectProperties
tags Etiquetas de recursos Dicionário de nomes e valores de marca. Consulte Marcas em modelos
tipo O tipo de recurso 'Microsoft.DevCenter/projects'

Grupo Atribuído

Name Description Value
objectId A ID do objeto do grupo Entra (GUID). string

Constraints:
Comprimento mínimo = 36
Comprimento máximo = 36
Padrão = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
escopo O escopo da atribuição. 'DevBox'

AzureAiServicesSettings

Name Description Value
azureAiServicesMode A propriedade indica se os serviços de IA do Azure estão habilitados. 'AutoDeploy'
'Disabled'

DevBoxScheduleDeleteSettings

Name Description Value
cancelOnConnectEnableStatus Indica se a exclusão agendada deve ser cancelada quando um usuário se conecta ao computador de desenvolvimento. 'Disabled'
'Enabled'
deleteMode Indica o modo de exclusão para Computadores de Desenvolvimento neste projeto. 'Auto'
'Manual'
gracePeriod ISO8601 duração necessária para que a caixa de desenvolvimento seja marcada para exclusão antes de ser excluída. ISO8601 formato PT[n]H[n]M[n]S. cadeia
inactiveThreshold ISO8601 duração necessária para que o dev box não fique inativo antes de ser agendado para exclusão. ISO8601 formato PT[n]H[n]M[n]S. cadeia

ManagedServiceIdentity

Name Description Value
tipo Tipo de identidade de serviço gerenciado (em que os tipos SystemAssigned e UserAssigned são permitidos). 'None'
'SystemAssigned'
'SystemAssigned, UserAssigned'
'UserAssigned' (obrigatório)
userAssignedIdentities O conjunto de identidades atribuídas pelo usuário associadas ao recurso. As chaves do dicionário userAssignedIdentities serão IDs de recurso do ARM no formulário: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. Os valores do dicionário podem ser objetos vazios ({}) em solicitações. UserAssignedIdentities

ProjectCatalogSettings

Name Description Value
catalogItemSyncTypes Indica tipos de item de catálogo que podem ser sincronizados. Matriz de cadeia de caracteres que contém qualquer um dos:
'EnvironmentDefinition'
'ImageDefinition'

ProjectCustomizationManagedIdentity

Name Description Value
identityResourceId Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<grupo de recursos>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutuamente exclusivo com identityType systemAssignedIdentity. cadeia
identityType Os valores podem ser systemAssignedIdentity ou userAssignedIdentity. 'systemAssignedIdentity'
'userAssignedIdentity'

ProjectCustomizationSettings

Name Description Value
identities As identidades que podem ser usadas em cenários de personalização; por exemplo, para clonar um repositório. ProjectCustomizationManagedIdentity[]
userCustomizationsEnableStatus Indica se as personalizações do usuário estão habilitadas. 'Disabled'
'Enabled'

ProjectProperties

Name Description Value
Grupos atribuídos Lista de atribuições de grupo de ID do Entra associadas a este projeto. AssignedGroup
azureAiServicesSettings Indica se os serviços de IA do Azure estão habilitados para um projeto. AzureAiServicesSettings
catalogSettings Configurações a serem usadas ao associar um projeto a um catálogo. ProjectCatalogSettings
customizationSettings Configurações a serem usadas para personalizações. ProjectCustomizationSettings
description Descrição do projeto. cadeia
devBoxScheduleDeleteSettings Configurações de exclusão de agendamento do Computador de Desenvolvimento. DevBoxScheduleDeleteSettings
devCenterId ID do recurso de um Centro de Desenvolvimento associado. cadeia
displayName O nome de exibição do projeto. cadeia
maxDevBoxesPerUser Quando especificado, limita o número máximo de Caixas de Desenvolvimento que um único usuário pode criar em todos os pools do projeto. Isso não terá efeito nas Caixas de Desenvolvimento existentes quando reduzida. int

Constraints:
Valor mínimo = 0
serverlessGpuSessionsSettings Configurações a serem usadas para GPU sem servidor. ServerlessGpuSessionsSettings
workspaceStorageSettings Configurações a serem usadas para armazenamento do espaço de trabalho. WorkspaceStorageSettings

ServerlessGpuSessionsSettings

Name Description Value
maxConcurrentSessionsPerProject Quando especificado, limita o número máximo de sessões simultâneas em todos os pools do projeto. int

Constraints:
Valor mínimo = 1
serverlessGpuSessionsMode A propriedade indica se o acesso à GPU sem servidor está habilitado no projeto. 'AutoDeploy'
'Disabled'

TrackedResourceTags

Name Description Value

UserAssignedIdentities

Name Description Value

UserAssignedIdentity

Name Description Value

WorkspaceStorageSettings

Name Description Value
workspaceStorageMode Indica se o armazenamento do workspace está habilitado. 'AutoDeploy'
'Disabled'

Exemplos de uso

Modelos de Início Rápido do Azure

Os modelos de Início Rápido do Azure a seguir implantar esse tipo de recurso.

Template Description
configurar o serviço ambientes de implantação

Implantar no Azure
Esse modelo fornece uma maneira de configurar ambientes de implantação.
configurar de serviço do Dev Box

Implantar no Azure
Esse modelo criaria todos os recursos de administrador do Dev Box de acordo com o guia de início rápido do Dev Box (/azure/dev-box/quickstart-create-dev-box). Você pode exibir todos os recursos criados ou ir diretamente para DevPortal.microsoft.com para criar sua primeira Caixa de Desenvolvimento.
Implantar o serviço de computador de desenvolvimento

Implantar no Azure
Este modelo fornece uma maneira de configurar todos os recursos necessários para criar um Computador de Desenvolvimento.
implantar o Serviço de Caixa de Desenvolvimento com de imagem interna

Implantar no Azure
Esse modelo fornece uma maneira de implantar um serviço Dev Box com imagem interna.

Definição de recurso do Terraform (provedor de AzAPI)

O tipo de recurso de projetos pode ser implantado com operações direcionadas:

Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.

Formato do recurso

Para criar um recurso Microsoft.DevCenter/projects, adicione o Terraform a seguir ao seu modelo.

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 propriedade

Microsoft.DevCenter/projects

Name Description Value
identidade Propriedades de identidade gerenciada. ManagedServiceIdentity
local A localização geográfica onde o recurso reside string (obrigatório)
name O nome do recurso string

Constraints:
Comprimento mínimo = 3
Comprimento máximo = 63
Padrão = ^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$ (obrigatório)
parent_id A ID do recurso ao qual aplicar esse recurso de extensão. string (obrigatório)
properties Propriedades de um projeto. ProjectProperties
tags Etiquetas de recursos Dicionário de nomes e valores de marca.
tipo O tipo de recurso "Microsoft.DevCenter/projects@2025-10-01-preview"

Grupo Atribuído

Name Description Value
objectId A ID do objeto do grupo Entra (GUID). string

Constraints:
Comprimento mínimo = 36
Comprimento máximo = 36
Padrão = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
escopo O escopo da atribuição. 'DevBox'

AzureAiServicesSettings

Name Description Value
azureAiServicesMode A propriedade indica se os serviços de IA do Azure estão habilitados. 'AutoDeploy'
'Disabled'

DevBoxScheduleDeleteSettings

Name Description Value
cancelOnConnectEnableStatus Indica se a exclusão agendada deve ser cancelada quando um usuário se conecta ao computador de desenvolvimento. 'Disabled'
'Enabled'
deleteMode Indica o modo de exclusão para Computadores de Desenvolvimento neste projeto. 'Auto'
'Manual'
gracePeriod ISO8601 duração necessária para que a caixa de desenvolvimento seja marcada para exclusão antes de ser excluída. ISO8601 formato PT[n]H[n]M[n]S. cadeia
inactiveThreshold ISO8601 duração necessária para que o dev box não fique inativo antes de ser agendado para exclusão. ISO8601 formato PT[n]H[n]M[n]S. cadeia

ManagedServiceIdentity

Name Description Value
tipo Tipo de identidade de serviço gerenciado (em que os tipos SystemAssigned e UserAssigned são permitidos). 'None'
'SystemAssigned'
'SystemAssigned, UserAssigned'
'UserAssigned' (obrigatório)
userAssignedIdentities O conjunto de identidades atribuídas pelo usuário associadas ao recurso. As chaves do dicionário userAssignedIdentities serão IDs de recurso do ARM no formulário: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. Os valores do dicionário podem ser objetos vazios ({}) em solicitações. UserAssignedIdentities

ProjectCatalogSettings

Name Description Value
catalogItemSyncTypes Indica tipos de item de catálogo que podem ser sincronizados. Matriz de cadeia de caracteres que contém qualquer um dos:
'EnvironmentDefinition'
'ImageDefinition'

ProjectCustomizationManagedIdentity

Name Description Value
identityResourceId Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<grupo de recursos>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutuamente exclusivo com identityType systemAssignedIdentity. cadeia
identityType Os valores podem ser systemAssignedIdentity ou userAssignedIdentity. 'systemAssignedIdentity'
'userAssignedIdentity'

ProjectCustomizationSettings

Name Description Value
identities As identidades que podem ser usadas em cenários de personalização; por exemplo, para clonar um repositório. ProjectCustomizationManagedIdentity[]
userCustomizationsEnableStatus Indica se as personalizações do usuário estão habilitadas. 'Disabled'
'Enabled'

ProjectProperties

Name Description Value
Grupos atribuídos Lista de atribuições de grupo de ID do Entra associadas a este projeto. AssignedGroup
azureAiServicesSettings Indica se os serviços de IA do Azure estão habilitados para um projeto. AzureAiServicesSettings
catalogSettings Configurações a serem usadas ao associar um projeto a um catálogo. ProjectCatalogSettings
customizationSettings Configurações a serem usadas para personalizações. ProjectCustomizationSettings
description Descrição do projeto. cadeia
devBoxScheduleDeleteSettings Configurações de exclusão de agendamento do Computador de Desenvolvimento. DevBoxScheduleDeleteSettings
devCenterId ID do recurso de um Centro de Desenvolvimento associado. cadeia
displayName O nome de exibição do projeto. cadeia
maxDevBoxesPerUser Quando especificado, limita o número máximo de Caixas de Desenvolvimento que um único usuário pode criar em todos os pools do projeto. Isso não terá efeito nas Caixas de Desenvolvimento existentes quando reduzida. int

Constraints:
Valor mínimo = 0
serverlessGpuSessionsSettings Configurações a serem usadas para GPU sem servidor. ServerlessGpuSessionsSettings
workspaceStorageSettings Configurações a serem usadas para armazenamento do espaço de trabalho. WorkspaceStorageSettings

ServerlessGpuSessionsSettings

Name Description Value
maxConcurrentSessionsPerProject Quando especificado, limita o número máximo de sessões simultâneas em todos os pools do projeto. int

Constraints:
Valor mínimo = 1
serverlessGpuSessionsMode A propriedade indica se o acesso à GPU sem servidor está habilitado no projeto. 'AutoDeploy'
'Disabled'

TrackedResourceTags

Name Description Value

UserAssignedIdentities

Name Description Value

UserAssignedIdentity

Name Description Value

WorkspaceStorageSettings

Name Description Value
workspaceStorageMode Indica se o armazenamento do workspace está habilitado. 'AutoDeploy'
'Disabled'

Exemplos de uso

Exemplos do Terraform

Um exemplo básico de implantação do Projeto do Centro de Desenvolvimento.

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
    }
  }
}