Partager via


Microsoft. Comptes/déploiements CognitiveServices

Définition des ressources sur les Biceps

Le type de ressource comptes/déploiements peut être déployé avec des opérations qui ciblent :

Pour obtenir la liste des propriétés modifiées dans chaque version de l’API, consultez journal des modifications.

Format de ressource

Pour créer un Microsoft. Ressource CognitiveServices/accounts/deployments, ajoutez le Bicep suivant à votre modèle.

resource symbolicname 'Microsoft.CognitiveServices/accounts/deployments@2026-03-01' = {
  parent: resourceSymbolicName
  name: 'string'
  properties: {
    capacitySettings: {
      designatedCapacity: int
      priority: int
    }
    currentCapacity: int
    deploymentState: 'string'
    model: {
      format: 'string'
      name: 'string'
      publisher: 'string'
      source: 'string'
      sourceAccount: 'string'
      version: 'string'
    }
    parentDeploymentName: 'string'
    raiPolicyName: 'string'
    routing: {
      mode: 'string'
      models: [
        {
          format: 'string'
          name: 'string'
          publisher: 'string'
          source: 'string'
          sourceAccount: 'string'
          version: 'string'
        }
      ]
    }
    scaleSettings: {
      capacity: int
      scaleType: 'string'
    }
    serviceTier: 'string'
    spilloverDeploymentName: 'string'
    versionUpgradeOption: 'string'
  }
  sku: {
    capacity: int
    family: 'string'
    name: 'string'
    size: 'string'
    tier: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
}

Valeurs de propriété

Microsoft. CognitiveServices/comptes/déploiements

Nom Descriptif Valeur
nom Nom de la ressource chaîne (obligatoire)
parent Dans Bicep, vous pouvez spécifier la ressource parent pour une ressource enfant. Vous devez uniquement ajouter cette propriété lorsque la ressource enfant est déclarée en dehors de la ressource parente.

Pour plus d’informations, consultez ressource enfant en dehors de la ressource parente.
Nom symbolique de la ressource de type : comptes
Propriétés Propriétés du déploiement de compte Cognitive Services. DeploymentProperties
Sku Définition du modèle de ressource représentant la référence SKU Sku
étiquettes Balises de ressources Dictionnaire de noms et de valeurs d’étiquettes. Consultez les balises dans les modèles

DeploymentCapacitySettings

Nom Descriptif Valeur
capacitaire désigné Capacité désignée. Int

Contraintes:
Valeur minimale = 0
priorité Priorité de ce paramètre de capacité. Int

Contraintes:
Valeur minimale = 0

Modèle de déploiement

Nom Descriptif Valeur
format Format du modèle de déploiement. ficelle
nom Nom du modèle de déploiement. ficelle
éditeur Éditeur de modèle de déploiement. ficelle
Source Optionnel. ID de ressource ARM source du modèle de déploiement. ficelle
sourceCompte Optionnel. Source du modèle, un autre Microsoft. Comptes CognitiveServices ARM ID de ressource. ficelle
Version Optionnel. Version du modèle de déploiement. Si la version n’est pas spécifiée, une version par défaut est affectée. La version par défaut est différente pour différents modèles et peut changer lorsqu’il existe une nouvelle version disponible pour un modèle. La version par défaut d’un modèle est disponible à partir de l’API des modèles de liste. ficelle

DeploymentProperties

Nom Descriptif Valeur
capacitéParamètres Utilisation interne uniquement. DeploymentCapacitySettings
currentCapacity Capacité actuelle. Int
deploymentState État du déploiement. Détermine si le déploiement accepte les demandes d’inférence. Utilisez « En cours d’exécution » pour les déploiements actifs qui traitent les demandes, ou « Suspendu » pour arrêter temporairement l’inférence tout en préservant la configuration de déploiement. 'Suspendu'
'Running'
modèle Propriétés du modèle de déploiement de compte Cognitive Services. Modèle de déploiement
parentDeploymentName Nom du déploiement parent. ficelle
raiPolicyName Nom de la stratégie RAI. ficelle
routage Configuration du routage pour le déploiement. Cette propriété n’est applicable que lorsque le modèle déployé est « model-router » version 2025-11-18 ou ultérieure. Permet de sélectionner le sous-ensemble de modèles pour le routage et le mode de routage (équilibré, précision, coût) pour le routage entre tous les modèles pris en charge ou le sous-ensemble du modèle. DeploymentRouting
scaleSettings Propriétés du modèle de déploiement de compte Cognitive Services. (Déconseillé, utilisez deployment.sku à la place.) DeploymentScaleSettings
serviceTier Niveau de service du déploiement. Détermine le prix et le niveau de performance pour le traitement des demandes. Utilisez « Par défaut » pour la tarification standard ou « Priorité » pour le traitement plus prioritaire avec la tarification premium. Remarque : Les opérations de pause ne sont prises en charge que sur les références SKU Standard, DataZoneStandard et GlobalStandard. 'Default'
« Priorité »
spilloverDeploymentName Spécifie le nom de déploiement qui doit traiter les demandes lorsque celles-ci auraient autrement été limitées en raison de l’atteinte de la limite de débit de déploiement actuelle. ficelle
versionUpgradeOption Option de mise à niveau de version du modèle de déploiement. 'NoAutoUpgrade'
'OnceCurrentVersionExpired'
'OnceNewDefaultVersionAvailable'

DeploymentRouting

Nom Descriptif Valeur
mode Le mode de routage qui détermine la répartition des requêtes entre les modèles. « Précision »
« équilibré »
« coût »
models Optionnel. La liste des modèles que le routeur modèle peut utiliser pour acheminer les requêtes. Si ce n’est pas spécifié, le routeur modèle redirigera vers tous les modèles disponibles spécifiés dans la version modèle-routeur. Modèle de déploiement[]

DeploymentScaleSettings

Nom Descriptif Valeur
capacité Capacité de déploiement. Int
scaleType Type de mise à l’échelle du déploiement. 'Manuel'
« Standard »

DeploymentTags

Nom Descriptif Valeur

Sku

Nom Descriptif Valeur
capacité Si la référence SKU prend en charge le scale-out/in, l’entier de capacité doit être inclus. Si le scale-out/in n’est pas possible pour la ressource, cela peut être omis. Int
famille Si le service a différentes générations de matériel, pour la même référence SKU, vous pouvez le capturer ici. ficelle
nom Nom de la référence SKU. Pièce P3. Il s’agit généralement d’une lettre+code numérique chaîne (obligatoire)
taille Taille de la référence SKU. Lorsque le champ de nom est la combinaison de niveau et d’une autre valeur, il s’agit du code autonome. ficelle
niveau Ce champ doit être implémenté par le fournisseur de ressources si le service a plusieurs niveaux, mais n’est pas obligatoire sur un PUT. 'De base'
'Entreprise'
« Gratuit »
« Haut de gamme »
« Standard »

Exemples d’utilisation

Échantillons de Biceps

Exemple de base de déploiement du déploiement de compte Cognitive Services.

param resourceName string = 'acctest0003'
param location string = 'eastus'

resource account 'Microsoft.CognitiveServices/accounts@2022-10-01' = {
  name: resourceName
  location: location
  identity: {
    type: 'None'
    userAssignedIdentities: null
  }
  kind: 'OpenAI'
  properties: {
    disableLocalAuth: false
    dynamicThrottlingEnabled: false
    publicNetworkAccess: 'Enabled'
    restrictOutboundNetworkAccess: false
  }
  sku: {
    name: 'S0'
  }
}

resource deployment 'Microsoft.CognitiveServices/accounts/deployments@2023-05-01' = {
  parent: account
  name: 'testdep'
  properties: {
    model: {
      format: 'OpenAI'
      name: 'text-embedding-ada-002'
    }
  }
}

Azure Quickstart Examples

Les modèles suivants Azure Quickstart contiennent Bicep exemples pour déployer ce type de ressource.

Dossier Bicep Descriptif
Basic Agent Setup API Keys Cet ensemble de modèles démontre comment configurer Azure AI Agent Service avec la configuration de base en utilisant l’authétication des clés API pour la connexion AI/AOAI. Les agents utilisent des ressources de recherche et de stockage multi-locataires entièrement gérées par Microsoft. Vous n’aurez ni visibilité ni contrôle sur ces ressources Azure sous-jacentes.
Identité de configuration d’agent de base Cet ensemble de modèles démontre comment configurer Azure AI Agent Service avec la configuration de base en utilisant l’authétication d’identité managée pour la connexion AI/AOAI. Les agents utilisent des ressources de recherche et de stockage multi-locataires entièrement gérées par Microsoft. Vous n’aurez ni visibilité ni contrôle sur ces ressources Azure sous-jacentes.
Déployer Secure AI Foundry avec un réseau virtuel géré Ce modèle crée un environnement Azure AI Foundry sécurisé avec des restrictions robustes de sécurité réseau et d’identité.
Agent sécurisé réseau avec identité gérée par l’utilisateur Cet ensemble de modèles montre comment configurer Azure AI Agent Service avec une isolation réseau virtuelle en utilisant l’authétication User Managed Identity pour la connexion AI/AOAI ainsi que des liens réseau privés pour connecter l’agent à vos données sécurisées.
Agent Standard Cet ensemble de modèles montre comment configurer Azure AI Agent Service avec la configuration standard, c’est-à-dire avec l’authentification d’identité gérée pour les connexions projet/hub et l’accès à Internet public activé. Les agents utilisent des ressources de stockage et de recherche à locataire unique appartenant au client. Avec cette configuration, vous disposez d’un contrôle total et d’une visibilité sur ces ressources, mais vous entraînez des coûts en fonction de votre utilisation.

Définition de ressource de modèle ARM

Le type de ressource comptes/déploiements peut être déployé avec des opérations qui ciblent :

Pour obtenir la liste des propriétés modifiées dans chaque version de l’API, consultez journal des modifications.

Format de ressource

Pour créer un Microsoft. Ressource CognitiveServices/accounts/deployments, ajoutez le JSON suivant à votre modèle.

{
  "type": "Microsoft.CognitiveServices/accounts/deployments",
  "apiVersion": "2026-03-01",
  "name": "string",
  "properties": {
    "capacitySettings": {
      "designatedCapacity": "int",
      "priority": "int"
    },
    "currentCapacity": "int",
    "deploymentState": "string",
    "model": {
      "format": "string",
      "name": "string",
      "publisher": "string",
      "source": "string",
      "sourceAccount": "string",
      "version": "string"
    },
    "parentDeploymentName": "string",
    "raiPolicyName": "string",
    "routing": {
      "mode": "string",
      "models": [
        {
          "format": "string",
          "name": "string",
          "publisher": "string",
          "source": "string",
          "sourceAccount": "string",
          "version": "string"
        }
      ]
    },
    "scaleSettings": {
      "capacity": "int",
      "scaleType": "string"
    },
    "serviceTier": "string",
    "spilloverDeploymentName": "string",
    "versionUpgradeOption": "string"
  },
  "sku": {
    "capacity": "int",
    "family": "string",
    "name": "string",
    "size": "string",
    "tier": "string"
  },
  "tags": {
    "{customized property}": "string"
  }
}

Valeurs de propriété

Microsoft. CognitiveServices/comptes/déploiements

Nom Descriptif Valeur
apiVersion Version de l’API '2026-03-01'
nom Nom de la ressource chaîne (obligatoire)
Propriétés Propriétés du déploiement de compte Cognitive Services. DeploymentProperties
Sku Définition du modèle de ressource représentant la référence SKU Sku
étiquettes Balises de ressources Dictionnaire de noms et de valeurs d’étiquettes. Consultez les balises dans les modèles
type Type de ressource « Microsoft. CognitiveServices/comptes/déploiements

DeploymentCapacitySettings

Nom Descriptif Valeur
capacitaire désigné Capacité désignée. Int

Contraintes:
Valeur minimale = 0
priorité Priorité de ce paramètre de capacité. Int

Contraintes:
Valeur minimale = 0

Modèle de déploiement

Nom Descriptif Valeur
format Format du modèle de déploiement. ficelle
nom Nom du modèle de déploiement. ficelle
éditeur Éditeur de modèle de déploiement. ficelle
Source Optionnel. ID de ressource ARM source du modèle de déploiement. ficelle
sourceCompte Optionnel. Source du modèle, un autre Microsoft. Comptes CognitiveServices ARM ID de ressource. ficelle
Version Optionnel. Version du modèle de déploiement. Si la version n’est pas spécifiée, une version par défaut est affectée. La version par défaut est différente pour différents modèles et peut changer lorsqu’il existe une nouvelle version disponible pour un modèle. La version par défaut d’un modèle est disponible à partir de l’API des modèles de liste. ficelle

DeploymentProperties

Nom Descriptif Valeur
capacitéParamètres Utilisation interne uniquement. DeploymentCapacitySettings
currentCapacity Capacité actuelle. Int
deploymentState État du déploiement. Détermine si le déploiement accepte les demandes d’inférence. Utilisez « En cours d’exécution » pour les déploiements actifs qui traitent les demandes, ou « Suspendu » pour arrêter temporairement l’inférence tout en préservant la configuration de déploiement. 'Suspendu'
'Running'
modèle Propriétés du modèle de déploiement de compte Cognitive Services. Modèle de déploiement
parentDeploymentName Nom du déploiement parent. ficelle
raiPolicyName Nom de la stratégie RAI. ficelle
routage Configuration du routage pour le déploiement. Cette propriété n’est applicable que lorsque le modèle déployé est « model-router » version 2025-11-18 ou ultérieure. Permet de sélectionner le sous-ensemble de modèles pour le routage et le mode de routage (équilibré, précision, coût) pour le routage entre tous les modèles pris en charge ou le sous-ensemble du modèle. DeploymentRouting
scaleSettings Propriétés du modèle de déploiement de compte Cognitive Services. (Déconseillé, utilisez deployment.sku à la place.) DeploymentScaleSettings
serviceTier Niveau de service du déploiement. Détermine le prix et le niveau de performance pour le traitement des demandes. Utilisez « Par défaut » pour la tarification standard ou « Priorité » pour le traitement plus prioritaire avec la tarification premium. Remarque : Les opérations de pause ne sont prises en charge que sur les références SKU Standard, DataZoneStandard et GlobalStandard. 'Default'
« Priorité »
spilloverDeploymentName Spécifie le nom de déploiement qui doit traiter les demandes lorsque celles-ci auraient autrement été limitées en raison de l’atteinte de la limite de débit de déploiement actuelle. ficelle
versionUpgradeOption Option de mise à niveau de version du modèle de déploiement. 'NoAutoUpgrade'
'OnceCurrentVersionExpired'
'OnceNewDefaultVersionAvailable'

DeploymentRouting

Nom Descriptif Valeur
mode Le mode de routage qui détermine la répartition des requêtes entre les modèles. « Précision »
« équilibré »
« coût »
models Optionnel. La liste des modèles que le routeur modèle peut utiliser pour acheminer les requêtes. Si ce n’est pas spécifié, le routeur modèle redirigera vers tous les modèles disponibles spécifiés dans la version modèle-routeur. Modèle de déploiement[]

DeploymentScaleSettings

Nom Descriptif Valeur
capacité Capacité de déploiement. Int
scaleType Type de mise à l’échelle du déploiement. 'Manuel'
« Standard »

DeploymentTags

Nom Descriptif Valeur

Sku

Nom Descriptif Valeur
capacité Si la référence SKU prend en charge le scale-out/in, l’entier de capacité doit être inclus. Si le scale-out/in n’est pas possible pour la ressource, cela peut être omis. Int
famille Si le service a différentes générations de matériel, pour la même référence SKU, vous pouvez le capturer ici. ficelle
nom Nom de la référence SKU. Pièce P3. Il s’agit généralement d’une lettre+code numérique chaîne (obligatoire)
taille Taille de la référence SKU. Lorsque le champ de nom est la combinaison de niveau et d’une autre valeur, il s’agit du code autonome. ficelle
niveau Ce champ doit être implémenté par le fournisseur de ressources si le service a plusieurs niveaux, mais n’est pas obligatoire sur un PUT. 'De base'
'Entreprise'
« Gratuit »
« Haut de gamme »
« Standard »

Exemples d’utilisation

Modèles de démarrage rapide Azure

Les modèles suivants Azure Quickstart déployent ce type de ressource.

Modèle Descriptif
Basic Agent Setup API Keys

Déployer vers Azure
Cet ensemble de modèles démontre comment configurer Azure AI Agent Service avec la configuration de base en utilisant l’authétication des clés API pour la connexion AI/AOAI. Les agents utilisent des ressources de recherche et de stockage multi-locataires entièrement gérées par Microsoft. Vous n’aurez ni visibilité ni contrôle sur ces ressources Azure sous-jacentes.
Identité de configuration d’agent de base

Déployer vers Azure
Cet ensemble de modèles démontre comment configurer Azure AI Agent Service avec la configuration de base en utilisant l’authétication d’identité managée pour la connexion AI/AOAI. Les agents utilisent des ressources de recherche et de stockage multi-locataires entièrement gérées par Microsoft. Vous n’aurez ni visibilité ni contrôle sur ces ressources Azure sous-jacentes.
Déployer Secure AI Foundry avec un réseau virtuel géré

Déployer vers Azure
Ce modèle crée un environnement Azure AI Foundry sécurisé avec des restrictions robustes de sécurité réseau et d’identité.
Agent sécurisé réseau avec identité gérée par l’utilisateur

Déployer vers Azure
Cet ensemble de modèles montre comment configurer Azure AI Agent Service avec une isolation réseau virtuelle en utilisant l’authétication User Managed Identity pour la connexion AI/AOAI ainsi que des liens réseau privés pour connecter l’agent à vos données sécurisées.
Agent Standard

Déployer vers Azure
Cet ensemble de modèles montre comment configurer Azure AI Agent Service avec la configuration standard, c’est-à-dire avec l’authentification d’identité gérée pour les connexions projet/hub et l’accès à Internet public activé. Les agents utilisent des ressources de stockage et de recherche à locataire unique appartenant au client. Avec cette configuration, vous disposez d’un contrôle total et d’une visibilité sur ces ressources, mais vous entraînez des coûts en fonction de votre utilisation.

Définition de ressource Terraform (fournisseur AzAPI)

Le type de ressource comptes/déploiements peut être déployé avec des opérations qui ciblent :

  • Groupes de ressources

Pour obtenir la liste des propriétés modifiées dans chaque version de l’API, consultez journal des modifications.

Format de ressource

Pour créer un Microsoft. Ressource CognitiveServices/accounts/deployments, ajoutez le Terraform suivant à votre modèle.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.CognitiveServices/accounts/deployments@2026-03-01"
  name = "string"
  parent_id = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    properties = {
      capacitySettings = {
        designatedCapacity = int
        priority = int
      }
      currentCapacity = int
      deploymentState = "string"
      model = {
        format = "string"
        name = "string"
        publisher = "string"
        source = "string"
        sourceAccount = "string"
        version = "string"
      }
      parentDeploymentName = "string"
      raiPolicyName = "string"
      routing = {
        mode = "string"
        models = [
          {
            format = "string"
            name = "string"
            publisher = "string"
            source = "string"
            sourceAccount = "string"
            version = "string"
          }
        ]
      }
      scaleSettings = {
        capacity = int
        scaleType = "string"
      }
      serviceTier = "string"
      spilloverDeploymentName = "string"
      versionUpgradeOption = "string"
    }
    sku = {
      capacity = int
      family = "string"
      name = "string"
      size = "string"
      tier = "string"
    }
  }
}

Valeurs de propriété

Microsoft. CognitiveServices/comptes/déploiements

Nom Descriptif Valeur
nom Nom de la ressource chaîne (obligatoire)
parent_id ID de la ressource qui est le parent de cette ressource. ID de ressource de type : comptes
Propriétés Propriétés du déploiement de compte Cognitive Services. DeploymentProperties
Sku Définition du modèle de ressource représentant la référence SKU Sku
étiquettes Balises de ressources Dictionnaire de noms et de valeurs d’étiquettes.
type Type de ressource « Microsoft. Services cognitifs/comptes/deployments@2026-03-01"

DeploymentCapacitySettings

Nom Descriptif Valeur
capacitaire désigné Capacité désignée. Int

Contraintes:
Valeur minimale = 0
priorité Priorité de ce paramètre de capacité. Int

Contraintes:
Valeur minimale = 0

Modèle de déploiement

Nom Descriptif Valeur
format Format du modèle de déploiement. ficelle
nom Nom du modèle de déploiement. ficelle
éditeur Éditeur de modèle de déploiement. ficelle
Source Optionnel. ID de ressource ARM source du modèle de déploiement. ficelle
sourceCompte Optionnel. Source du modèle, un autre Microsoft. Comptes CognitiveServices ARM ID de ressource. ficelle
Version Optionnel. Version du modèle de déploiement. Si la version n’est pas spécifiée, une version par défaut est affectée. La version par défaut est différente pour différents modèles et peut changer lorsqu’il existe une nouvelle version disponible pour un modèle. La version par défaut d’un modèle est disponible à partir de l’API des modèles de liste. ficelle

DeploymentProperties

Nom Descriptif Valeur
capacitéParamètres Utilisation interne uniquement. DeploymentCapacitySettings
currentCapacity Capacité actuelle. Int
deploymentState État du déploiement. Détermine si le déploiement accepte les demandes d’inférence. Utilisez « En cours d’exécution » pour les déploiements actifs qui traitent les demandes, ou « Suspendu » pour arrêter temporairement l’inférence tout en préservant la configuration de déploiement. 'Suspendu'
'Running'
modèle Propriétés du modèle de déploiement de compte Cognitive Services. Modèle de déploiement
parentDeploymentName Nom du déploiement parent. ficelle
raiPolicyName Nom de la stratégie RAI. ficelle
routage Configuration du routage pour le déploiement. Cette propriété n’est applicable que lorsque le modèle déployé est « model-router » version 2025-11-18 ou ultérieure. Permet de sélectionner le sous-ensemble de modèles pour le routage et le mode de routage (équilibré, précision, coût) pour le routage entre tous les modèles pris en charge ou le sous-ensemble du modèle. DeploymentRouting
scaleSettings Propriétés du modèle de déploiement de compte Cognitive Services. (Déconseillé, utilisez deployment.sku à la place.) DeploymentScaleSettings
serviceTier Niveau de service du déploiement. Détermine le prix et le niveau de performance pour le traitement des demandes. Utilisez « Par défaut » pour la tarification standard ou « Priorité » pour le traitement plus prioritaire avec la tarification premium. Remarque : Les opérations de pause ne sont prises en charge que sur les références SKU Standard, DataZoneStandard et GlobalStandard. 'Default'
« Priorité »
spilloverDeploymentName Spécifie le nom de déploiement qui doit traiter les demandes lorsque celles-ci auraient autrement été limitées en raison de l’atteinte de la limite de débit de déploiement actuelle. ficelle
versionUpgradeOption Option de mise à niveau de version du modèle de déploiement. 'NoAutoUpgrade'
'OnceCurrentVersionExpired'
'OnceNewDefaultVersionAvailable'

DeploymentRouting

Nom Descriptif Valeur
mode Le mode de routage qui détermine la répartition des requêtes entre les modèles. « Précision »
« équilibré »
« coût »
models Optionnel. La liste des modèles que le routeur modèle peut utiliser pour acheminer les requêtes. Si ce n’est pas spécifié, le routeur modèle redirigera vers tous les modèles disponibles spécifiés dans la version modèle-routeur. Modèle de déploiement[]

DeploymentScaleSettings

Nom Descriptif Valeur
capacité Capacité de déploiement. Int
scaleType Type de mise à l’échelle du déploiement. 'Manuel'
« Standard »

DeploymentTags

Nom Descriptif Valeur

Sku

Nom Descriptif Valeur
capacité Si la référence SKU prend en charge le scale-out/in, l’entier de capacité doit être inclus. Si le scale-out/in n’est pas possible pour la ressource, cela peut être omis. Int
famille Si le service a différentes générations de matériel, pour la même référence SKU, vous pouvez le capturer ici. ficelle
nom Nom de la référence SKU. Pièce P3. Il s’agit généralement d’une lettre+code numérique chaîne (obligatoire)
taille Taille de la référence SKU. Lorsque le champ de nom est la combinaison de niveau et d’une autre valeur, il s’agit du code autonome. ficelle
niveau Ce champ doit être implémenté par le fournisseur de ressources si le service a plusieurs niveaux, mais n’est pas obligatoire sur un PUT. 'De base'
'Entreprise'
« Gratuit »
« Haut de gamme »
« Standard »

Exemples d’utilisation

Échantillons Terraform

Exemple de base de déploiement du déploiement de compte Cognitive Services.

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

provider "azapi" {
  skip_provider_registration = false
}

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

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

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

resource "azapi_resource" "account" {
  type      = "Microsoft.CognitiveServices/accounts@2022-10-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location

  body = {
    identity = {
      type                   = "None"
      userAssignedIdentities = null
    }
    kind = "OpenAI"
    properties = {
      disableLocalAuth              = false
      dynamicThrottlingEnabled      = false
      publicNetworkAccess           = "Enabled"
      restrictOutboundNetworkAccess = false
    }
    sku = {
      name = "S0"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "deployment" {
  type      = "Microsoft.CognitiveServices/accounts/deployments@2023-05-01"
  name      = "testdep"
  parent_id = azapi_resource.account.id
  body = {
    properties = {
      model = {
        format = "OpenAI"
        name   = "text-embedding-ada-002"
      }
    }
  }
}