SIGN IN SIGN UP

[AzureResilienceManagement] Add new API version 2026-08-31-preview (#45663)

* AzureResilienceManagement: add 2026-08-31-preview with AHM + SLI Drill monitoring

Add optional Azure Health Model and SLI monitoring to Drills behind new API
version 2026-08-31-preview.

Ported from Azure/azure-rest-api-specs-pr branch
user/jainkapil/ahm-sli-integration (PR #29996).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a4082df3-ffe4-45ad-8178-1f5f6c781cbb

* Remove arm-post-operation-response-codes suppression on DrillRuns_GenerateReport

Use ArmResourceActionNoResponseContentAsync instead of ArmResourceActionAsync
with ArmNoContentResponse, so the LRO POST emits 202 + default only, as required
by both the TSP ARM rule and the Spectral PostResponseCodes rule. The suppression
is no longer needed. Example updated to drop the 204 response.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a4082df3-ffe4-45ad-8178-1f5f6c781cbb

* Revert "Remove arm-post-operation-response-codes suppression on DrillRuns_GenerateReport"

This reverts commit 567d1d35463a1ef7d7e8aa42458c1a00f6b07236.

* Use url scalar for ReportDownloadUrlResponse.downloadUrl

Addresses ARM API review suggestion (URI-properties rule): properties holding
URLs must use the TypeSpec 'url' scalar rather than plain 'string'. Generated
swagger now emits "type": "string", "format": "uri".

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a4082df3-ffe4-45ad-8178-1f5f6c781cbb

* Return 200 + DrillRunReport from DrillRuns_GenerateReport instead of 204

The LRO now completes with the projected DrillRunReport rather than an empty
204, so callers get generation status without a follow-up GET on the DrillRun.

This also removes the arm-post-operation-response-codes suppression. The TSP ARM
rule accepts {202, default} or {202, 200-with-schema, default}; the merge-gating
LintDiff PostResponseCodes rule accepts a final 200-with-schema or 204-no-schema.
202 + 200-with-schema + default is the only shape both accept, so returning a
body makes the operation lint-clean under both validators.

Service owner confirmed the implementation can return this body.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a4082df3-ffe4-45ad-8178-1f5f6c781cbb

* AzureResilienceManagement: gate cross-zone VM recovery properties with @added

Add @added(Versions.v2026_08_31_preview) to targetZone and
capacityReservationGroupId on ResourceCrossZoneVmRecoveryProtectionSetting
for explicit per-property version gating. Emitted openapi.json unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Refresh 2026-08-31-preview after merging GA/GR phase-1 changes from main

PR #45045 gated the Goals phase-1 schema changes to 2026-06-01-preview, so they
flow forward into 2026-08-31-preview. Our copy of the affected artifacts was
created before that merge and had gone stale:

- Regenerate preview/2026-08-31-preview/openapi.json: picks up nested
  zonalResiliency/ResiliencyProperties, the UserConfirmationItem rename, the
  relaxed required arrays on GoalAssignment/GoalResource/ServiceLevelResource,
  and the removal of GoalAssignmentPropertiesUpdate.
- Refresh the three GoalResources examples (Get_Complete, Get_MaximumSet,
  List_MaximumSet) from their 2026-06-01-preview counterparts; they were missing
  the nested zonalResiliency block.

No changes needed to readme.md, service.yaml, cspell.yaml or client.tsp - PR
#45045 did not touch them and client.tsp references no renamed types.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a4082df3-ffe4-45ad-8178-1f5f6c781cbb

* AzureResilienceManagement: add resource feasibility reviews to ValidateForFailover (#45667)

Adds advisory SKU capacity feasibility reviews to the recovery resource
qualification contract for 2026-08-31-preview.

- ResourceFeasibilityReviewType union (SkuCapacity)
- ResourceFeasibilityReviewStatus union (Unavailable, Passed, Flagged,
  NotApplicable)
- SkuDetails model describing a SKU and its enrichment
- ResourceFeasibilityReview model
- Optional resourceFeasibilityReviews on OperationQualificationDetails,
  capped at 10 and keyed by x-ms-identifiers

All declarations are gated with @added(Versions.v2026_08_31_preview), so
the four earlier preview versions are unchanged.

monthlyPrice uses float64, emitting `type: number, format: double`.
A decimal-based scalar was considered to avoid binary floating-point
rounding on a monetary value, but both `decimal` and `decimal128` emit
`format: decimal`, which is not a valid OpenAPI 2.0 format and is
rejected by the Swagger ValidFormats linter rule. The only services
shipping that format (Consumption, Cost Management) carry an explicit
readme-level ValidFormats suppression. float64 keeps roughly 15-17
significant digits, which is ample for an advisory, non-billing price
estimate, and needs no suppression at either the TypeSpec or Swagger
layer.

resourceType carries an ARM resource type @pattern.
recommendedTargetSkus is optional for symmetry with currentTargetSku,
and the doc states that callers should treat an absent and an empty
array identically.

Also updates the ValidateForFailover MaximumSet example to demonstrate a
Flagged review, and regenerates openapi.json.

Verified: tsp compile --warn-as-error exits 0 with no suppressions;
oav validate-example reports no errors.

Co-authored-by: Radhika Chaturvedi <rachaturvedi@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1908923e-755d-48fb-aed2-3fe3555b56c3

* Address API review feedback: scope report enum names, rename ListReportDownloadUrl models, replace isFinalized with finalizationState

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a4082df3-ffe4-45ad-8178-1f5f6c781cbb

* AzureResilienceManagement: add NeedsAttention provisioning state in 2026-08-31-preview (#45671)

Co-authored-by: Sahithi Pandi <sahithipandi@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Rename DrillRunReport to DrillReportSummary

Addresses API review feedback: the model contains only report-generation status and metadata (generationStatus, stageStatuses, availableFormats, schemaVersion, finalizationState), never the report content itself. The previous name was misleading at both use sites - as the generateReport action response and as DrillRunProperties.report. Docs updated to match the clarified semantics.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a4082df3-ffe4-45ad-8178-1f5f6c781cbb

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Mudit Goswami <muditplatform@gmail.com>
Co-authored-by: Radhika Chaturvedi <59797282+RADHIKACHATURVEDI@users.noreply.github.com>
Co-authored-by: Radhika Chaturvedi <rachaturvedi@microsoft.com>
Co-authored-by: sahithiudemy-cpu <sahithiudemy@gmail.com>
Co-authored-by: Sahithi Pandi <sahithipandi@microsoft.com>
Co-authored-by: Umesh Kumar Patel <105031414+umpatel@users.noreply.github.com>
Copilot-Session: a4082df3-ffe4-45ad-8178-1f5f6c781cbb
Copilot-Session: 1908923e-755d-48fb-aed2-3fe3555b56c3
A
Arpit Jain committed
736e61cb6c5059d5f75bac47b54ce57c6ad130f7
Parent: ddce668
Committed by GitHub <noreply@github.com> on 8/22/2026, 1:32:38 PM