[AzureResilienceManagement] GA/GR phase-1 optional resiliency fields … (#45045)
* [AzureResilienceManagement] GA/GR phase-1 optional resiliency fields (2026-03-01-preview)
GoalAssignmentProperties (@added 2026-03-01-preview, optional):
requireZonalResiliency, requireRegionalResiliency,
regionalRecoveryPointObjective, regionalRecoveryTimeObjective.
Relax goalTemplateId + goalAssignmentType to optional (@madeOptional).
GoalResourceProperties (@added 2026-03-01-preview, optional):
zonal/regional GoalParticipation, AttestationStatus, ExclusionReason.
Relax highAvailabilityGoalParticipation + highAvailabilityAttestationStatus (@madeOptional).
Updated 2026-03-01-preview MaximumSet examples with the new fields.
Scoped to 2026-03-01-preview+ ; 2025-02-01-preview unchanged. Non-breaking.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dd3ac15f-357f-44c1-a247-215ac08d2c40
* [AzureResilienceManagement] Goals phase-1: zonal-only schema + nested zonalResiliency
Align GoalAssignment / GoalResource (2026-03-01-preview) with the finalized Goal
Template deprecation design (supersedes the earlier flat/regional draft on this PR):
- GoalAssignment: @madeOptional goalTemplateId + goalAssignmentType; add optional
requireZonalResiliency; drop previously-added regional fields
(requireRegionalResiliency, regionalRecoveryPointObjective/TimeObjective).
- GoalResource: replace flat zonal fields with nested ZonalResiliencyProperties
(goalParticipation, attestationStatus, exclusionReason, userConfirmation);
@madeOptional highAvailability{GoalParticipation,AttestationStatus}; drop
previously-added regional GR fields. DR fields retained (removed in phase 2).
- Regenerate 2026-03/04/06 openapi.json; update GA/GR examples to the nested shape.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dd3ac15f-357f-44c1-a247-215ac08d2c40
* [AzureResilienceManagement] Goals phase-1: relax serviceLevelObjectiveResourceId to optional
@madeOptional(v2026_03_01_preview) on ServiceLevelResource.serviceLevelObjectiveResourceId
-> required in 2025-02-01-preview, optional in 2026-03/04/06 (mirrors the goalTemplateId
relaxation). Regenerate 2026-03/04/06 openapi.json. Actual @removed deferred to Phase 2.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dd3ac15f-357f-44c1-a247-215ac08d2c40
* [AzureResilienceManagement] Goals: make resiliency properties generic + boolean requireZonalResiliency
- requireZonalResiliency: RequirementSelected enum -> boolean (true/false)
- Rename ZonalResiliencyProperties -> ResiliencyProperties (reused by zonal
and, later, regional)
- Rename UserConfirmationForHighAvailabilityItem -> UserConfirmationItem
- Update doc strings on the user-confirmation type and its sub-enums
(ConfirmationStatus, ReasonForRequestingConfirmation, SolutionDisplayName)
from 'high availability' to 'zonal resiliency'. Deprecated flat
highAvailability* fields + GoalTemplate docs intentionally unchanged.
- Regenerate 2026-03/04/06 openapi.json; set requireZonalResiliency examples to true.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dd3ac15f-357f-44c1-a247-215ac08d2c40
* [AzureResilienceManagement] Goals: genericize resiliency doc strings (zonal resiliency -> resiliency)
The renamed generic types (ResiliencyProperties, UserConfirmationItem, and the
ConfirmationStatus / ReasonForRequestingConfirmation / SolutionDisplayName enums)
are reused by zonal and, later, regional resiliency, so their doc strings should
be dimension-neutral. Change 'zonal resiliency' -> 'resiliency' on those type
definitions. The zonal-specific usage slots keep zonal wording:
GoalAssignment.requireZonalResiliency and GoalResource.zonalResiliency.
Regenerate 2026-03/04/06 openapi.json.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dd3ac15f-357f-44c1-a247-215ac08d2c40
* [AzureResilienceManagement] Goals: restore flat userConfirmationForHighAvailability (backward compat)
The flat GoalResource property userConfirmationForHighAvailability is published on
main (2026-03-01-preview, onboarding #43285) and is actively consumed:
- Azure-BusinessContinuityCenter reads properties.userConfirmationForHighAvailability
in GoalResourceHandler (ingestion logic).
- ResiliencyHub-Portal writes and reads it (HighAvailabilityStrategyDetails data layer).
Removing it was a breaking change. Restore the flat field (optional, unchanged wire
shape) while keeping the new nested zonalResiliency.userConfirmation - i.e. dual
representation, consistent with the other relaxed HA fields. Actual removal deferred
to the Phase-2 api-version after consumers migrate. Examples updated to carry both.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dd3ac15f-357f-44c1-a247-215ac08d2c40
* [AzureResilienceManagement] Re-gate Goals GA/GR Phase-1 changes to 2026-06-01-preview
Move all Goal Template deprecation Phase-1 schema changes from
2026-03-01-preview to 2026-06-01-preview so the already-published
2026-03/2026-04 versions return to their exact published shape and only
2026-06 carries the new contract.
- goalAssignment.tsp: @madeOptional/@added bumped v03 -> v06 for
serviceLevelObjectiveResourceId, goalTemplateId, goalAssignmentType,
requireZonalResiliency
- goalResource.tsp: ResiliencyProperties, zonalResiliency, and the
highAvailability* @madeOptional/@added bumped v03 -> v06
- enum.tsp: add @renamedFrom(v06, `"UserConfirmationForHighAvailabilityItem`")
on UserConfirmationItem; revert shared-type doc strings to published
wording (@doc is not versionable) to keep 2026-03/04 pristine
- Restore 2026-03/2026-04 GA/GR examples to published shape; 2026-06
examples carry the new zonal-resiliency contract
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dd3ac15f-357f-44c1-a247-215ac08d2c40
* [AzureResilienceManagement] Run tsp format on enum.tsp
Wrap the @renamedFrom decorator on UserConfirmationItem to satisfy the
TypeSpec Validation Format rule (tsp format). No functional/openapi change.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dd3ac15f-357f-44c1-a247-215ac08d2c40
---------
Co-authored-by: Harsh Bhansali <hbhansali@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dd3ac15f-357f-44c1-a247-215ac08d2c40 H
Harsh Bhansali committed
07ad3f9871280b81c8c19d338a06a0f24acef7e1
Parent: dd309fd
Committed by GitHub <noreply@github.com>
on 8/20/2026, 9:54:58 AM