Skip to content

feat: per-host azure.yaml schemas and service targets for Foundry AI resources#8781

Merged
huimiu merged 4 commits into
hui/foundry-agent-shape-migrationfrom
hui/foundry-resource-services
Jun 23, 2026
Merged

feat: per-host azure.yaml schemas and service targets for Foundry AI resources#8781
huimiu merged 4 commits into
hui/foundry-agent-shape-migrationfrom
hui/foundry-resource-services

Conversation

@huimiu

@huimiu huimiu commented Jun 23, 2026

Copy link
Copy Markdown
Member

Summary

Adds per-host JSON schemas, service-level config writing, and full azd deploy support for five Foundry AI resource hosts in azure.yaml: azure.ai.project, azure.ai.connection, azure.ai.toolbox, azure.ai.skill, and azure.ai.routine.

What changed

Per-host schemas

Each Foundry resource host now has its own JSON schema (azure.ai.project.json, azure.ai.connection.json, azure.ai.toolbox.json, azure.ai.skill.json, azure.ai.routine.json) describing the properties that can appear inline on the service in azure.yaml. Both schemas/v1.0/azure.yaml.json and schemas/alpha/azure.yaml.json have five new if/then conditionals — one per host — that compose these schemas into the core azure.yaml shape. Each Foundry host conditional also disables the config, project, runtime, docker, and image fields, which do not apply to AI resources.

Service-level config writing (azure.ai.agents)

resource_services.go now writes project, connection, and toolbox entries using AdditionalProperties (service-level inline) instead of the nested config: block. Readers prefer AdditionalProperties and fall back to Config for files written by earlier versions.

azure.ai.skill service target

azure.ai.skills now registers a service target provider. azd deploy reads instructions, description, and allowed_tools from the service entry and calls CreateVersionInline, setting that version as the default. The skill name is taken from the azure.yaml service name.

azure.ai.routine service target

azure.ai.routines now registers a service target provider. azd deploy binds the service-level properties directly to the routine API model (triggers, actions, tools, description) and calls PutRoutine for a full upsert. The routine name is taken from the azure.yaml service name.

Note on routine config shape: the schema and deploy binding use the real API model vocabulary (timer/recurring/github_issue/custom triggers; invoke_agent_responses_api/invoke_agent_invocations_api actions) rather than placeholder names.

Testing

cd cli/azd/extensions/azure.ai.agents  && go build ./... && go test ./...
cd cli/azd/extensions/azure.ai.skills  && go build ./... && go test ./...
cd cli/azd/extensions/azure.ai.routines && go build ./... && go test ./...

@huimiu huimiu changed the title feat: Foundry resources as azure.yaml services (PR2) feat: Foundry resources as azure.yaml services (PR2, slice 1) Jun 23, 2026
@github-actions github-actions Bot added area/extensions Extensions (general) ext-agents azure.ai.agents extension labels Jun 23, 2026
@huimiu huimiu changed the title feat: Foundry resources as azure.yaml services (PR2, slice 1) feat: per-host azure.yaml schemas and service targets for Foundry AI resources Jun 23, 2026
@huimiu huimiu merged commit fb0b1bf into hui/foundry-agent-shape-migration Jun 23, 2026
50 of 77 checks passed
@huimiu huimiu deleted the hui/foundry-resource-services branch June 23, 2026 10:12
@github-actions github-actions Bot added ext-connections azure.ai.connections extension ext-projects azure.ai.projects extension ext-routines azure.ai.routines extension ext-skills azure.ai.skills extension ext-toolboxes azure.ai.toolboxes extension labels Jun 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/extensions Extensions (general) ext-agents azure.ai.agents extension ext-connections azure.ai.connections extension ext-projects azure.ai.projects extension ext-routines azure.ai.routines extension ext-skills azure.ai.skills extension ext-toolboxes azure.ai.toolboxes extension

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant