SIGN IN SIGN UP

[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