# AzureOpenAIProviderNames

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/api/tracon.azureopenaiprovidernames/
> Summary: AzureOpenAIProviderNames: The provider name registered by the UseAzureOpenAI call, and the ModelBinding.ProviderSettings keys.

<div class="api-provenance">Namespace Tracon · Assembly <code>Tracon.Azure.dll</code></div>

The provider name registered by the `UseAzureOpenAI` call, and the
[ModelBinding.ProviderSettings](/api/tracon.modelbinding/#Tracon_ModelBinding_ProviderSettings) keys.

```csharp
public static class AzureOpenAIProviderNames
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.azureopenaiprovidernames/">AzureOpenAIProviderNames</a></dd><dt>Inherited Members</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a></dd></dl>

## Remarks

These names are **stable**. Agent definitions are stored in the
database under these names; changing them breaks stored definitions.

The name is `azure-openai`, not `azure`: the package may later
register another Azure model service, at which point the name `azure`
would no longer say what it refers to.

## Fields

### <a id="Tracon_AzureOpenAIProviderNames_AzureOpenAI"></a> AzureOpenAI

The provider that uses the Azure OpenAI v1 Chat Completions endpoint: `azure-openai`.

```csharp
public const string AzureOpenAI = "azure-openai"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_AzureOpenAIProviderNames_SettingsPrefix"></a> SettingsPrefix

The prefix for provider-specific settings: `azure-openai`.

```csharp
public const string SettingsPrefix = "azure-openai"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_AzureOpenAIProviderNames_StrictJsonSchemaSetting"></a> StrictJsonSchemaSetting

The setting key that asks Azure OpenAI to enforce the response schema while the model generates:
`azure-openai.strictJsonSchema` (boolean).

```csharp
public const string StrictJsonSchemaSetting = "azure-openai.strictJsonSchema"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

#### Remarks

Defaults to **off**. With it on, the request carries `strict: true` on the response
format of an agent whose [ModelBinding.ResponseFormat](/api/tracon.modelbinding/#Tracon_ModelBinding_ResponseFormat) is a JSON schema, and the service
refuses to produce a reply that breaks the schema. It applies to the response format only; the agent's
tools stay non-strict.

Strict or not, the client rewrites the schema before it sends it: every object is closed, every
property becomes required, and the bounds (`maxLength`, `pattern`, `minimum` and the
like) move into the schema's `description` text. Strict mode therefore enforces the schema that
`POST /api/agents/validate` reports under `responseSchemas`, not the one the author wrote. A
property that may stay empty has to allow `null`: `"type": ["string", "null"]`.

Strict mode needs a deployment of a model that supports structured outputs; a deployment that does
not can refuse the request.

## Properties

### <a id="Tracon_AzureOpenAIProviderNames_SupportedSettings"></a> SupportedSettings

The setting keys this provider supports: [AzureOpenAIProviderNames.StrictJsonSchemaSetting](/api/tracon.azureopenaiprovidernames/#Tracon_AzureOpenAIProviderNames_StrictJsonSchemaSetting).

```csharp
public static IReadOnlyList<string> SupportedSettings { get; }
```

#### Property Value

 [IReadOnlyList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist\-1)<[string](https://learn.microsoft.com/dotnet/api/system.string)\>

#### Remarks

The Azure-only request fields (data sources, and the like) were written through the Azure SDK's own
request extensions, which threw `MissingMethodException` at run time against the OpenAI SDK
version in use. The provider now talks to the resource's v1 endpoint through the plain OpenAI client,
which has no counterpart for them. Offering a setting that doesn't work is worse than not offering it
at all, so only a setting the plain client sends is a key here.

Any other key is rejected: [ModelProviderSettings.Validate](/api/tracon.modelprovidersettings/)
names it and lists these.
