diff --git a/src/platform/packages/shared/kbn-connector-schemas/openai/schemas/v1.test.ts b/src/platform/packages/shared/kbn-connector-schemas/openai/schemas/v1.test.ts index 67d64b00fc54b..a6ca8b57ef3d3 100644 --- a/src/platform/packages/shared/kbn-connector-schemas/openai/schemas/v1.test.ts +++ b/src/platform/packages/shared/kbn-connector-schemas/openai/schemas/v1.test.ts @@ -27,6 +27,37 @@ describe('OpenAI Schema', () => { ).not.toThrow(); }); + it('validates Azure AI config with optional defaultModel', () => { + expect(() => + ConfigSchema.parse({ + apiProvider: 'Azure OpenAI', + apiUrl: 'https://my-resource.openai.azure.com', + defaultModel: 'gpt-4o', + }) + ).not.toThrow(); + }); + + it('validates Azure AI config without defaultModel', () => { + const result = ConfigSchema.parse({ + apiProvider: 'Azure OpenAI', + apiUrl: 'https://my-resource.openai.azure.com', + }); + expect(result.defaultModel).toBeUndefined(); + }); + + it('validates Azure AI config with all optional fields including defaultModel', () => { + expect(() => + ConfigSchema.parse({ + apiProvider: 'Azure OpenAI', + apiUrl: 'https://my-resource.openai.azure.com', + defaultModel: 'gpt-4o', + headers: { 'X-Custom': 'value' }, + contextWindowLength: 128000, + temperature: 0.7, + }) + ).not.toThrow(); + }); + it('validates OpenAI config', () => { expect(() => ConfigSchema.parse({ diff --git a/src/platform/packages/shared/kbn-connector-schemas/openai/schemas/v1.ts b/src/platform/packages/shared/kbn-connector-schemas/openai/schemas/v1.ts index 13fe5f5980028..0dbb11161c263 100644 --- a/src/platform/packages/shared/kbn-connector-schemas/openai/schemas/v1.ts +++ b/src/platform/packages/shared/kbn-connector-schemas/openai/schemas/v1.ts @@ -22,6 +22,7 @@ export const ConfigSchema = z.union([ .object({ apiProvider: z.enum([OpenAiProviderType.AzureAi]), apiUrl: z.string(), + defaultModel: z.string().optional(), headers: z.record(z.string(), z.string()).optional(), contextWindowLength: z.coerce.number().optional(), temperature: z.coerce.number().optional(), diff --git a/x-pack/platform/plugins/shared/actions/server/integration_tests/__snapshots__/connector_types.test.ts.snap b/x-pack/platform/plugins/shared/actions/server/integration_tests/__snapshots__/connector_types.test.ts.snap index 0bc3744d24dad..994a7cacb83a2 100644 --- a/x-pack/platform/plugins/shared/actions/server/integration_tests/__snapshots__/connector_types.test.ts.snap +++ b/x-pack/platform/plugins/shared/actions/server/integration_tests/__snapshots__/connector_types.test.ts.snap @@ -985,6 +985,9 @@ Object { "contextWindowLength": Object { "type": "number", }, + "defaultModel": Object { + "type": "string", + }, "headers": Object { "additionalProperties": Object { "type": "string",