Azure naming · Microsoft.CognitiveServices/accounts

oai Azure OpenAI

Azure OpenAI resource (kind OpenAI). CAF uses 'aif' for Foundry accounts and 'ais' for multi-service accounts.

Naming constraints

CAF abbreviationoai
Resource typeMicrosoft.CognitiveServices/accounts
Length2–64 characters
CaseMixed case
Allowed charactersAlphanumerics and hyphens. Start and end with alphanumeric.
Uniqueness Global
SeparatorHyphen
Watch out: The account name is scoped to the resource group, but the custom subdomain (<name>.openai.azure.com) is global and usually equals the name. Deleted accounts keep the subdomain until purged.

Source: Microsoft Learn, “Naming rules and restrictions for Azure resources”, checked October 2026. Abbreviation from the Cloud Adoption Framework.

Example & copy-ready

A worked name for workload app, env prod, region weu, instance 001.

Example name
oai-app-prod-weu-001 Valid
Validation regex for CI checks or pre-commit hooks (.NET and JavaScript)
^(?=.{2,64}$)[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$
Bicep naming expression
var name = take('oai-${workload}-${env}-${region}-${instance}', 64)
Terraform local
locals {
  name = substr(join("-", compact(["oai", var.workload, var.env, var.region, var.instance])), 0, 64)
}

Azure Policy can't evaluate regular expressions, so a policy can check the oai prefix but not the full format. Run the regex in your pipeline, or audit existing names on a schedule.

Uniqueness scope

Globally unique across all of Azure — the name backs a public DNS label, so a clash with any other tenant's resource fails the deployment. Build in enough entropy (org/region/instance) to avoid collisions.

Open in the name generator