Repository navigation
[Microsoft.ApiManagement] AI Gateway 2026-11-01 - #47156
Alexander Zaslonov (azaslonov) wants to merge 17 commits into
Conversation
…tool servers, API keys) on top of aigateways
Next Steps to MergeNext steps that must be taken to merge this PR:
Comment generated by summarize-checks workflow run. |
Contributor readiness: required accessWarning Access issues can block approvals, Azure DevOps pipelines, or labeling.
Internal contributors: set up / renew access. Recheck: Contributors with verified access (1)Public Azure membership and repository write access verified.
Non-blocking check; fix access issues to unblock affected actions. Last updated: 2026-10-18T05:58:47.753Z |
TypeSpec suppressions requiring reviewStatus: ❌ Approval required — 9 suppressions This PR adds or updates the TypeSpec suppressions listed below. Suppressions are strongly discouraged — they bypass linter rules that protect API quality and consistency. Authors should avoid adding new suppressions and prefer fixing the underlying issue; reviewers should approve only when there is a clear, compelling justification and no reasonable alternative. Review each linked rule and source location, then apply New suppressions (9)
Showing 5 of 9 suppressions. See the full analysis log for the complete list. For an overview of TypeSpec linting rules click here. 💬 Have feedback on the TypeSpec suppression flow? Let us know. |
API Change CheckAPIView identified API level changes in this PR and created the following API reviews
Comment generated by After APIView workflow run. |
ARM API Review SummaryReviewed PR #47156 at head SHA Approval labels observed:
The blocking issue is posted-by: arm-api-reviewer-agent | rule: summary | category: summary | severity: blocking | classification: new | critic: pass | head-sha: 738c96d
|
ARM API Review SummaryReviewed PR #47156 at head SHA Scoped review: 50 of 129 changed Approval labels observed:
The four existing unresolved blocking findings remain applicable and critic-verified: secret-bearing API-key, model-provider, tool-server, and telemetry exporter fields lack create/update-only visibility and remain in ordinary resource response schemas; two suppression-approval items remain warnings. posted-by: arm-api-reviewer-agent | rule: summary | category: summary | severity: blocking | classification: new | critic: pass | head-sha: 8a815bc
|
There was a problem hiding this comment.
ARM API Review
Posting findings from the ARM API Reviewer agent (critic-verified, 1 iteration) against commit 8a815bc3bb9117d5e1ccf79fc4e246e0f3298bc9. Four currently applicable blocking findings are already present in unresolved inline discussions: API-key secrets, model-provider credentials, tool-server secrets, and telemetry exporter secrets remain reachable from ordinary GET/PUT/PATCH resource schemas. No duplicate inline comments were posted; see the existing inline discussions for findings 1-4.
Approval labels observed: API Management, WaitForARMFeedback, ARMReview, resource-manager, SuppressionReviewRequired, new-api-version, TypeSpec, ARMModelingAutoSignedOff, typespec-suppressions-review-required, ARMManualSignoffRequired.
posted-by: arm-api-reviewer-agent | rule: summary | category: summary | severity: blocking | classification: new | critic: pass | head-sha: 8a815bc
🔍 ARM API review by ARM API Review: Automated Workflow
ARM API Review SummaryReviewed PR #47156 at head SHA Scoped review: 47 of 129 changed Approval labels observed: none.
No blocking API-contract issues remain at this head; existing suppression-approval warnings remain for the package/readme suppressions and the TypeSpec posted-by: arm-api-reviewer-agent | rule: summary | category: summary | severity: warning | classification: existing | critic: pass | head-sha: 05444c0
|
ARM API Review SummaryReviewed PR #47156 at head SHA Scoped review: 47 of 129 changed Approval labels observed: none.
No blocking API-contract issues remain at this head. Existing warnings remain for approval of the October-scoped package/readme suppressions and TypeSpec suppressions; historical ARM resource-reference, secret-visibility, and immutable-property findings are fixed and were not duplicated. posted-by: arm-api-reviewer-agent | rule: summary | category: summary | severity: warning | classification: existing | critic: pass | head-sha: 05444c0
|
There was a problem hiding this comment.
ARM API Review
Posting findings from the ARM API Reviewer agent (critic-verified, 3 iterations, no standalone findings) against commit 05444c004c1e4a01454438333c9410b975374e18. All findings are reported in the summary comment.
Approval labels observed: none.
The independent critic confirmed no currently applicable Blocking API-contract issue. Two existing Warning process gates remain covered by prior discussions: October-scoped package/readme suppressions and TypeSpec suppression review. Historical ARM resource-reference, secret-visibility, and immutable-property findings are fixed at this head and were not reposted.
posted-by: arm-api-reviewer-agent | rule: summary | category: summary | severity: warning | classification: existing | critic: pass | head-sha: 05444c0
🔍 ARM API review by ARM API Review: Automated Workflow
Ravi Eda (ravimeda)
left a comment
There was a problem hiding this comment.
ARM API Review
Posting findings from the ARM API Reviewer agent (critic-verified, 2 iteration(s), converged) against commit 05444c0. See inline comments for findings 1-8.
Approval labels observed: none.
Separate client customizations, add tool-server URI formats and variant examples, use an obvious connection-string placeholder, and apply the approved lowercase 3-24 character name constraints. Keep the deferred name-availability shape and provider endpoint contracts unchanged.
There was a problem hiding this comment.
ARM API review
Scoped review completed for PR #47156 at head 9e7a31e632ad98283c1a5c75f4863885f1946d9c. The PR exceeds the automated full-review limits (136 specification files; 6,418 changed specification lines), so the review covered the highest-risk AI Gateway TypeSpec sources, generated 2026-10-01-preview OpenAPI, configuration, examples, base-version deltas, and all existing discussion surfaces.
Result: no currently applicable blocking ARM API contract findings. The ARM API Review Critic independently verified that historical resource-ID, secret-visibility, immutable-PATCH, check-name, and nested-resource findings are fixed at this head and were not duplicated. Existing review threads were reconciled; remaining suppression discussions are covered by prior threads and are process gates, not new semantic findings.
Approval context: SuppressionReviewRequired and typespec-suppressions-review-required remain present, while no applicable Approved-Suppression or Approved-TypeSpecSuppression label was observed. No approval label is required for the clean semantic result; the existing suppression approval process remains outstanding.
posted-by: arm-api-reviewer-agent | rule: summary | category: summary | severity: warning | classification: existing | critic: pass | head-sha: 9e7a31e
🔍 ARM API review by ARM API Review: Automated Workflow
Ravi Eda (ravimeda)
left a comment
There was a problem hiding this comment.
ARM API Review
Posting findings from the ARM API Reviewer agent (critic-verified, 2 iteration(s), converged) against commit 9e7a31e. See inline comments for findings 1-2.
Approval labels observed: none.
| model AiGatewayModelProviderProperties { | ||
| /** Model provider type. This value cannot be changed after creation. */ | ||
| @visibility(Lifecycle.Read, Lifecycle.Create) | ||
| kind: AiGatewayModelProviderKind; |
There was a problem hiding this comment.
[NEW] 🔴 Blocking [ARM Section 2.6] AIGatewayModelProvider.tsp — line 177 — Provider and telemetry-exporter kind are inside the properties bag.
Classification reasoning: Both resource types and their kind properties are new in October; neither exists in the September API at the pinned base SHA.
Issue: AiGatewayModelProviderProperties.kind emits
Suggested fix: Move each existing kind declaration from its Properties model into its corresponding ProxyResource model. Preserve the union types and Lifecycle.Read/Lifecycle.Create visibility, and retain the existing ResourceNameParameter and EntityTagProperty spreads. The moved members are:
// Member of AiGatewayModelProviderResource, not its Properties model:
@visibility(Lifecycle.Read, Lifecycle.Create)
kind: AiGatewayModelProviderKind;
// Member of AiGatewayTelemetryExporterResource, not its Properties model:
@visibility(Lifecycle.Read, Lifecycle.Create)
kind: AiGatewayTelemetryExporterKind;Update request/response examples to place kind beside properties and regenerate OpenAPI.
| model AiGatewayModelProviderProperties { | ||
| /** Model provider type. This value cannot be changed after creation. */ | ||
| @visibility(Lifecycle.Read, Lifecycle.Create) | ||
| kind: AiGatewayModelProviderKind; |
There was a problem hiding this comment.
What is this 'kind' proeprty for? This looks like a property for a polymorphic resource, but, in that case, you would have (1) A union of the known values for resource kinds; (2) A leaf model type for each of the concrete models for the polymorphic type, which would have kind be a specific value of the 'kind' union.
If this 'kind' is meant as a discriminator, then putting it as a direct property of the reosurce seems like a bad idea - that would mean that the envelope properties could change based on the kind, when for a single resource type, the set of possible envelope properties should not change from resource instance to resource instance.
ARM (Control Plane) API Specification Update Pull Request
Tip
Overwhelmed by all this guidance? See the
Getting helpsection at the bottom of this PR description.PR review workflow diagram
Please understand this diagram before proceeding. It explains how to get your PR approved & merged.
Purpose of this PR
What's the purpose of this PR? Check the specific option that applies. This is mandatory!
Note
Draft. Supersedes #46997 and builds on merged #45799.
Adds stable API version
2026-11-01to theMicrosoft.ApiManagementAI Gateway TypeSpec project. The merged2026-09-01-previewgateway-only OpenAPI and examples remain unchanged.Resource types and operations introduced in November:
aigateways/apiKeys: CRUD/list,listSecrets,regeneratePrimaryKey,regenerateSecondaryKey.aigateways/workspaces: predefined default workspace with GET, HEAD, and policy-only PATCH.aigateways/workspaces/modelProviders: CRUD, list by workspace,listCredentials.aigateways/workspaces/modelProviders/models: CRUD, list by model provider.aigateways/workspaces/models: list models across all providers in a workspace.aigateways/workspaces/toolServers: CRUD, list by workspace,listSecrets, and endpoint OAuth login-link retrieval.aigateways/workspaces/aliases: CRUD and list by workspace.aigateways/workspaces/telemetryExporters: CRUD and list by workspace.November carries forward all reviewed gateway and child-resource models, operations, and properties. Child models and interfaces are gated at November; existing wire contracts, secret visibility, and client customizations are preserved. November is the stable API version and default AutoRest tag (
package-2026-11-01), with the September preview and its tag retained.Local validation:
EnumInsteadOfBooleanwarning.Retained suppressions:
secret-propon the non-secretcounterKey;arm-resource-interface-requires-decoratoron the cross-provider model list.Due diligence checklist
To merge this PR, you must go through the following checklist and confirm you understood
and followed the instructions by checking all the boxes:
ARM resource provider contract and
REST guidelines (estimated time: 4 hours).
I understand this is required before I can proceed to the diagram Step 2, "ARM API changes review", for this PR.
Additional information
Viewing API changes
For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the
Generated ApiViewcomment added to this PR. You can use ApiView to show API versions diff.Suppressing failures
If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the
suppressions guide to get approval.
Getting help
Purpose of this PRandDue diligence checklist.write accessper aka.ms/azsdk/access#request-access-to-rest-api-or-sdk-repositoriesNext Steps to Mergecomment. It will appear within few minutes of submitting this PR and will continue to be up-to-date with current PR state.and https://aka.ms/ci-fix.
queuedstate, please add a comment with contents/azp run.This should result in a new comment denoting a
PR validation pipelinehas started and the checks should be updated after few minutes.