Swagger changes for Vwan Express Route Gateway Failover and Insights#42103
Swagger changes for Vwan Express Route Gateway Failover and Insights#42103shubhika1795 wants to merge 12 commits intorelease-microsoft-network-2025-07-01from
Conversation
Next Steps to MergeNext steps that must be taken to merge this PR:
Important checks have failed. As of today they are not blocking this PR, but in near future they may. Addressing the following failures is highly recommended:
Comment generated by summarize-checks workflow run. |
ravimeda
left a comment
There was a problem hiding this comment.
ARM API Review: Microsoft.Network / virtualWan / 2025-07-01 -- VWAN ExpressRoute Gateway Failover and Insights
Previous version: Same 2025-07-01 version on release-microsoft-network-2025-07-01 branch (additive changes only)
Blocking Issues (on virtualWan.json -- diff too large for inline comments)
1. [NEW] 🔴 Blocking -- Incorrect $ref paths in all 6 new POST operations
All 6 new operations (getFailoverAllTestsDetails, getFailoverSingleTestDetails, startSiteFailoverTest, stopSiteFailoverTest, getResiliencyInformation, getRoutesInformation) use ../../../../../../../common-types/resource-management/v5/types.json (7 levels of ../) for $ref paths. The correct depth for this file is ../../../../../../common-types/... (6 levels), which all existing operations use. The extra ../ will break $ref resolution.
Fix: Change all $ref paths in the 6 new operations from 7 ../ to 6 ../.
2. [NEW] 🔴 Blocking -- Wrong 202 response description in all 6 new POST operations
The 202 response description in all 6 new operations says "Resource deletion accepted." These are not delete operations -- they are failover test and resiliency retrieval actions. This is a copy-paste error.
Fix: Change to "Request accepted for processing." in all 6 operations.
3. [NEW] 🔴 Blocking -- Timestamp properties missing format: date-time in schema definitions
Properties startTime, endTime, lastUpdatedTime, lastComputedTime, nextEligibleComputeTime in the new model definitions are plain "type": "string" without "format": "date-time". Temporal properties MUST specify the date-time format for correct SDK generation. (See inline comments on example files for the corresponding non-ISO 8601 example values.)
Fix: Add "format": "date-time" to all temporal string properties.
Warnings (on virtualWan.json)
4. [NEW] 🟡 Warning -- Numeric scores typed as strings
In VwanExpressRouteGatewayResiliencyInformation, overallScore, scoreChange, minScoreFromRecommendations, maxScoreFromRecommendations and similar properties are string but represent numeric values (examples: "20", "0", "-"). Consider using integer type with nullable support instead of strings.
Summary
- Files reviewed: 9
- New blocking issues: 3 (incorrect $ref paths, wrong 202 descriptions, missing date-time format)
- New warnings: 2 (suppression scope, numeric-as-string types)
- See inline comments on example files and readme.md for additional details.
Please address the blocking issues before merge.
| } | ||
| ], | ||
| "status": "Completed", | ||
| "startTime": "2/11/2026 7:37:04 AM", |
There was a problem hiding this comment.
[NEW] 🔴 Blocking [EX-FORMAT / Section 6 - Types & Formats]
Issue: Timestamps in this example use non-ISO 8601 format: "2/11/2026 7:37:04 AM" (line 28), "2/11/2026 8:41:50 AM" (line 29), "2/11/2026 8:41:49 AM" (line 35). Azure guidelines require date/time values to use ISO 8601/RFC 3339 format.
Additionally, in the schema definitions in virtualWan.json, the startTime, endTime, and lastUpdatedTime properties are typed as plain "type": "string" without "format": "date-time". Temporal properties MUST use "format": "date-time" to enable correct SDK type generation.
Fix for examples: Use ISO 8601 format consistently:
"startTime": "2026-02-11T07:37:04Z",
"endTime": "2026-02-11T08:41:50Z",
"lastUpdatedTime": "2026-02-11T08:41:49Z"Fix for schema: Add "format": "date-time" to startTime, endTime, lastUpdatedTime, lastComputedTime, and nextEligibleComputeTime in all VwanExpressRouteGatewayFailoverTestDetails, VwanExpressRouteGatewayFailoverSingleTestDetails, VwanExpressRouteFailoverConnectionResourceDetails, and VwanExpressRouteGatewayResiliencyInformation definitions.
| "scoreChange": "0", | ||
| "minScoreFromRecommendations": "-", | ||
| "maxScoreFromRecommendations": "-", | ||
| "lastComputedTime": "2/11/2026 8:44:21 AM UTC", |
There was a problem hiding this comment.
[NEW] 🔴 Blocking [EX-FORMAT]
Issue: Same timestamp format issue: "2/11/2026 8:44:21 AM UTC" (line 21) and "2/11/2026 9:44:21 AM UTC" (line 22). These MUST use ISO 8601/RFC 3339 format.
Fix:
"lastComputedTime": "2026-02-11T08:44:21Z",
"nextEligibleComputeTime": "2026-02-11T09:44:21Z"| }, | ||
| "200": { | ||
| "body": { | ||
| "lastComputedTime": "2/11/2026 8:44:21 AM UTC", |
There was a problem hiding this comment.
[NEW] 🔴 Blocking [EX-FORMAT]
Issue: Same non-ISO 8601 timestamp format: "2/11/2026 8:44:21 AM UTC" and "2/11/2026 9:44:21 AM UTC" at lines 17-18.
Fix: Use "2026-02-11T08:44:21Z" and "2026-02-11T09:44:21Z"
| where: | ||
| - $.definitions.GatewayRouteSet.properties.details | ||
| - $.definitions.GatewayRouteSetsInformation.properties.circuitsMetadataMap | ||
| - suppress: AvoidAdditionalProperties |
There was a problem hiding this comment.
[NEW] 🟡 Warning [RPC-SUPPRESS-SCOPE]
Issue: Both new suppressions lack where clauses. Blanket suppressions on the entire virtualWan.json file will mask future violations introduced in other definitions. The suppression should be scoped to the specific JSON paths where additionalProperties is used.
Fix: Add where clauses to scope the suppressions:
- suppress: AvoidAdditionalProperties
from: virtualWan.json
where:
- $.definitions.VwanExpressRouteGatewayRouteSetsInformation.properties.circuitsMetadataMap
- $.definitions.VwanExpressRouteGatewayRouteSet.properties.details
reason: Dictionaries used by Gateway Resiliency route set APIs.
- suppress: ParametersInPost
from: virtualWan.json
where:
- $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteGateways/{expressRouteGatewayName}/getFailoverAllTestsDetails'].post
- $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteGateways/{expressRouteGatewayName}/getFailoverSingleTestDetails'].post
- $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteGateways/{expressRouteGatewayName}/startSiteFailoverTest'].post
- $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteGateways/{expressRouteGatewayName}/stopSiteFailoverTest'].post
- $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteGateways/{expressRouteGatewayName}/getResiliencyInformation'].post
- $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteGateways/{expressRouteGatewayName}/getRoutesInformation'].post
reason: New Express Route Gateway failover and resiliency POST operations use query parameters following existing NRP patterns.|
@Shubhika-1795 - Please address the Swagger Avocado failure before ARM review. |
….com/Azure/azure-rest-api-specs into vwanFailoverAndInsights_final_cp_1
API Change CheckAPIView identified API level changes in this PR and created the following API reviews
|
|
|
There are bunch of unresolved comments from previous reviewers. Please address them and mention individually if they are resolved and how. Also the pr that is linked for suppression, it had avocado checks failing but here the sdk validation is failing. Please address it |
|
@shubhika1795 please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.
Contributor License AgreementContribution License AgreementThis Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”),
|
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!
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
These changes were already merged in previously shared release branch #39841
And #40797
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.