Skip to content

[RecoveryServices.Backup] Update management SDK to API 2026-07-01 - #30116

Open
Bharat Purwar (bharatpurwar) wants to merge 4 commits into
Azure:mainfrom
bharatpurwar:users/bharatpurwar/msi_auth_afs2
Open

[RecoveryServices.Backup] Update management SDK to API 2026-07-01#30116
Bharat Purwar (bharatpurwar) wants to merge 4 commits into
Azure:mainfrom
bharatpurwar:users/bharatpurwar/msi_auth_afs2

Conversation

@bharatpurwar

@bharatpurwar Bharat Purwar (bharatpurwar) commented Sep 7, 2026

Copy link
Copy Markdown
Member

🤖 PR Validation — ❌ Action needed

Tests
❌ 20/24
️✔️Az.Accounts
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.Compute
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.Network
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
❌Az.RecoveryServices
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Breaking Change Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Signature Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Help File Existence Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️File Change Check
⚠️PowerShell Core - Windows
Type Cmdlet Description Remediation
⚠️ It is required to update ChangeLog.md if you want to release a new version for Az.RecoveryServices. Add a changelog record under Upcoming Release section with past tense.
⚠️Windows PowerShell - Windows
Type Cmdlet Description Remediation
⚠️ It is required to update ChangeLog.md if you want to release a new version for Az.RecoveryServices. Add a changelog record under Upcoming Release section with past tense.
️✔️UX Metadata Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
❌Test
❌PowerShell Core - Linux
❌PowerShell Core - MacOS
❌PowerShell Core - Windows
❌Windows PowerShell - Windows
️✔️Az.RecoveryServices.Backup
️✔️Generated Sdk Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows

Summary

  • Update the Recovery Services Backup SDK generation configuration to management API version 2026-07-01.
  • Regenerate the Backup management SDK from the pinned REST specification commit.
  • Adapt current hand-written consumers to the regenerated operation, query, paging, response, and model contracts.

Why

The regenerated SDK changes several source-compatible-looking contracts that can otherwise produce incorrect behavior. Vault and resource-group string parameters are reordered on many operations, OData query objects are replaced by raw filter strings, multiple operations now return typed-header responses, usage summaries become paged, and the Backup-specific error-detail model moves to ErrorDetailAutoGenerated.

Without consumer updates, calls can bind vault and resource-group values to the wrong URL segments, filters or continuation pages can be lost, typed responses cannot be passed to existing tracking helpers, and workload error details use the wrong model shape.

What changed

  • Pin SDK generation to API 2026-07-01 and retain the RecoveryServicesBackupClient title override.
  • Regenerate the complete management SDK.
  • Bind generated vault and resource-group arguments by name.
  • Extract raw Filter strings while preserving existing adapter signatures.
  • Follow BackupUsageSummaries continuation links and allow the shared paging helper to process non-Resource class models.
  • Convert typed-header responses to the response types expected by existing PowerShell helpers while preserving Body where applicable, Request, Response, and RequestId.
  • Preserve initial Begin responses for operations currently tracked by PowerShell.
  • Map SQL and SAP HANA last-backup errors to the Backup-specific ErrorDetailAutoGenerated model.
  • Add a user-facing ChangeLog entry.

Validation

  • RecoveryServices.Backup.csproj builds with 0 warnings and 0 errors.
  • RecoveryServices.Backup.Test.csproj builds with 0 warnings and 0 errors.
  • Existing playback recordings target API 2025-02-01. They do not provide valid API 2026-07-01 behavioral evidence and require refresh.

Known follow-up work

This PR does not claim the entire behavioral migration is complete. Follow-up work includes:

  • Handling direct and aggregate ErrorResponseException while retaining existing CloudException behavior.
  • Making long-running-operation header parsing and tracking operation-aware, including Location, Azure-AsyncOperation, and Retry-After behavior.
  • Finalizing tracking ownership for protected-item updates, primary restore, recovery-point move, and data-move operations.
  • Adding targeted exception, paging, response, model, and delayed-operation tests.
  • Capturing genuine API 2026-07-01 recordings and completing controlled live validation.

Bharat Purwar and others added 2 commits August 24, 2026 17:53
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 98d71075-adf0-4b3a-82a1-ec2acd27366e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 98d71075-adf0-4b3a-82a1-ec2acd27366e
Copilot AI lite review requested due to automatic review settings September 7, 2026 13:59
@azure-pipelines

Copy link
Copy Markdown
Contributor
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

There are correctness/diagnostic regressions in key call paths (unawaited async SDK calls and loss of request-id visibility in failure exceptions) that should be fixed before merging.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

This pull request updates the Recovery Services Backup management SDK to the 2026-07-01 API version by regenerating the AutoRest client and adapting the RecoveryServices Backup adapter/models to the new generated method signatures and types.

Changes:

  • Updated SDK generation configuration (spec commit + input swagger path) and regenerated the Backup management SDK for 2026-07-01.
  • Adjusted client adapter call sites to new parameter names/order (e.g., filter strings, reordered resourceGroupName/vaultName).
  • Updated cmdlet model types/mappings to align with regenerated SDK model changes (e.g., new header/result models and error detail shape).
File summaries
File Description
src/RecoveryServices/RecoveryServices/Common/PSRecoveryServicesVaultClient.cs Updates backup client calls to regenerated parameter names/order.
src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/BMSAPIs/ProtectableItemAPI.cs Adapts protectable-item listing to regenerated filter/paging signature.
src/RecoveryServices/RecoveryServices.Backup.Models/AzureVmWorkloadModels/AzureWorkloadSQLDatabaseProtectedItem.cs Aligns workload protected-item model with regenerated error-detail type.
src/RecoveryServices/RecoveryServices.Backup.Models/AzureVmWorkloadModels/AzureWorkloadSAPHanaDatabaseProtectedItem.cs Aligns workload protected-item model with regenerated error-detail type.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/README.md Updates AutoRest generation inputs to 2026-07-01 spec location/commit.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/ValidateOperationStatusesOperationsExtensions.cs Regenerated SDK extensions for validate operation statuses.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/ValidateOperationResultsOperationsExtensions.cs Regenerated SDK extensions for validate operation results.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/TieringCostOperationStatusOperationsExtensions.cs Regenerated SDK extensions for tiering cost operation status.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/SecurityPINsOperationsExtensions.cs Regenerated SDK extensions for Security PIN operations.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/ResourceGuardProxiesOperationsExtensions.cs Regenerated SDK extensions reflecting reordered RG/vault parameters.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/ProtectionContainerRefreshOperationResultsOperationsExtensions.cs Regenerated SDK extensions for protection container refresh results.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/OperationsExtensions.cs Regenerated SDK extensions for provider operations listing.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/OperationOperationsExtensions.cs Regenerated SDK extensions for validate/operation group.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/VaultResource.cs New regenerated model for vault resource schema.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/ValidateOperationTriggerHeaders.cs New regenerated headers model for validate-operation trigger.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/ValidateOperationResponse.cs Regenerated model now using ErrorDetailAutoGenerated list.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/ThreatStatus.cs New regenerated string-constant “enum” for threat status.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/ThreatState.cs New regenerated string-constant “enum” for threat state.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/ThreatSeverity.cs New regenerated string-constant “enum” for threat severity.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/SubProtectionPolicy.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/SourceSideScanSummary.cs New regenerated string-constant “enum” for scan summary.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/SourceSideScanStatus.cs New regenerated string-constant “enum” for scan status.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/SourceSideScanInfo.cs New regenerated model for source-side scan info.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/SourceScanAction.cs New regenerated string-constant “enum” for source scan action.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/Settings.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/SecuredVMDetails.cs Regenerated model adds data-disk encryption settings.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/RetentionDuration.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/RestoresTriggerHeaders.cs New regenerated headers model for restore trigger.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/RecoveryPointTierStatus.cs Regenerated tier-status changed from enum to string constants.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/RecoveryPointTierInformationV2.cs Regenerated model changes tier status type to string.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/RecoveryPointTierInformation.cs Regenerated model changes tier status type to string.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/RecoveryPointRehydrationInfo.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/RecoveryPointProperties.cs Regenerated model adds immutability properties + validation hook.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/RecoveryPointImmutabilityProperties.cs New regenerated model for recovery point immutability.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/RecoveryPoint.cs Regenerated model adds threat status/info fields.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/ProxyResource.cs New regenerated base model for proxy resources.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/ProtectionPoliciesDeleteHeaders.cs New regenerated headers model for policy delete.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/ProtectionContainersRegisterHeaders.cs New regenerated headers model for container register.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/ProtectionContainer.cs Regenerated container model adds sourceLocation.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/ProtectedItemsCreateOrUpdateHeaders.cs New regenerated headers model for protected-item create/update.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/ProtectedItemConfigureSourceScanRequest.cs New regenerated request model for configuring source scan.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/PrivateEndpointConnectionPutHeaders.cs New regenerated headers model for private endpoint PUT.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/PrivateEndpointConnectionDeleteHeaders.cs New regenerated headers model for private endpoint DELETE.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/PreValidateEnableBackupResponse.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/PreValidateEnableBackupRequest.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/PrepareDataMoveRequest.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/PerDiskEncryptionSetId.cs New regenerated model for per-disk DES identifiers.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/Page1.cs Removes obsolete generated paging wrapper type.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/MoveRecoveryPointHeaders.cs New regenerated headers model for move recovery point.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/MabContainer.cs Regenerated container model adds sourceLocation and updates base ctor.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/KeyAndSecretDetails.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/InquiryValidation.cs Regenerated model uses ErrorDetailAutoGenerated.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/InquiryInfo.cs Regenerated model uses ErrorDetailAutoGenerated.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/IdentityInfo.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/IaaSVMContainer.cs Regenerated container model adds sourceLocation and updates base ctor.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/HourlySchedule.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/GenericRecoveryPoint.cs Regenerated recovery point model adds threat status/info + validation.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/GenericContainer.cs Regenerated container model adds sourceLocation and updates base ctor.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/FetchTieringCostPostHeaders.cs Regenerated headers model adds Retry-After.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/FetchTieringCostInfoRequest.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/ErrorResponseException.cs Regenerated exception type for error responses.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/ErrorResponse.cs New regenerated ARM-style error response model.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/ErrorDetailAutoGenerated.cs New regenerated error-detail model (code/message/recommendations).
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/DpmContainer.cs Regenerated container model adds sourceLocation and updates base ctor.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/DistributedNodesInfo.cs Regenerated model uses ErrorDetailAutoGenerated.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/DiskDetails.cs New regenerated model for disk details.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/DataDiskDetails.cs New regenerated model for encrypted data disk details.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/CreatedByType.cs New regenerated string-constant “enum” for created-by type.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/ConfigureSourceScanExecuteHeaders.cs New regenerated headers model for source-scan operation.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/CloudError.cs Regenerated error model naming/shape; updated summary text.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/ClientScriptForConnect.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/BmsTriggerDataMoveHeaders.cs New regenerated headers model for data move trigger.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/BmsPrepareDataMoveHeaders.cs New regenerated headers model for prepare data move.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/BackupFabricResource.cs New regenerated model for backup fabric resource schema.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureWorkloadSQLRestoreWithRehydrateRequest.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureWorkloadSQLRestoreRequest.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureWorkloadSQLPointInTimeRestoreWithRehydrateRequest.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureWorkloadSQLPointInTimeRestoreRequest.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureWorkloadSAPHanaRestoreWithRehydrateRequest.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureWorkloadSAPHanaRestoreRequest.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureWorkloadSAPHanaRecoveryPoint.cs Regenerated model adds threat status/info and validate override.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureWorkloadSAPHanaPointInTimeRestoreWithRehydrateRequest.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureWorkloadSAPHanaPointInTimeRestoreRequest.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureWorkloadSAPAseRestoreRequest.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureWorkloadSAPAseRecoveryPoint.cs Regenerated model adds threat status/info and validate override.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureWorkloadSAPAsePointInTimeRestoreRequest.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureWorkloadRestoreRequest.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureWorkloadRecoveryPoint.cs Regenerated model adds threat status/info + validation.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureWorkloadPointInTimeRestoreRequest.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureWorkloadContainer.cs Regenerated container model adds sourceLocation and updates base ctor.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureVmWorkloadSQLInstanceProtectableItem.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureVmWorkloadSQLDatabaseProtectableItem.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureVmWorkloadSQLAvailabilityGroupProtectableItem.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureVmWorkloadSAPHanaSystemProtectableItem.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureVmWorkloadSAPHanaHSRProtectableItem.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureVmWorkloadSAPHanaDBInstance.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureVmWorkloadSAPHanaDatabaseProtectableItem.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureVmWorkloadSAPAseSystemProtectableItem.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureVmWorkloadSAPAseDatabaseProtectableItem.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureVmWorkloadProtectableItem.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureVMAppContainerProtectionContainer.cs Regenerated container model adds sourceLocation in ctor chain.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureSqlContainer.cs Regenerated container model adds sourceLocation and updates base ctor.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureSQLAGWorkloadContainerProtectionContainer.cs Regenerated container model adds sourceLocation in ctor chain.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureIaaSVMProtectionPolicy.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureIaaSVMJobTaskDetails.cs Regenerated model doc/formatting updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureIaaSComputeVMContainer.cs Regenerated container model adds sourceLocation in ctor chain.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureIaaSClassicComputeVMContainer.cs Regenerated container model adds sourceLocation in ctor chain.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureFileShareRestoreRequest.cs Regenerated model adds managed identity info for restore.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureFileShareRecoveryPoint.cs Regenerated model adds threat status/info + validation.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AzureBackupServerContainer.cs Regenerated container model adds sourceLocation in ctor chain.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/Models/AccessType.cs New regenerated string-constant “enum” for access type.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/JobsOperationsExtensions.cs Regenerated jobs export extension now takes filter string.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IValidateOperationStatusesOperations.cs Regenerated interface signature/doc updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IValidateOperationResultsOperations.cs Regenerated interface signature/doc updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IValidateOperationOperations.cs Regenerated interface now returns header response for trigger operations.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/ITieringCostOperationStatusOperations.cs Regenerated interface signature/doc updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/ISecurityPINsOperations.cs Regenerated interface signature/doc updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IResourceGuardProxiesOperations.cs Regenerated interface parameter order updated (RG first).
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IRecoveryPointsRecommendedForMoveOperations.cs Regenerated interface parameter order/doc updates (RG first).
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IProtectionPolicyOperationResultsOperations.cs Regenerated interface parameter order/doc updates (RG first).
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IProtectionContainerRefreshOperationResultsOperations.cs Regenerated interface signature/doc updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IProtectionContainerOperationResultsOperations.cs Regenerated interface parameter order/doc updates (RG first).
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IProtectedItemOperationResultsOperations.cs Regenerated interface parameter order/doc updates (RG first).
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IProtectableContainersOperations.cs Regenerated interface now takes filter string instead of ODataQuery.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IPrivateEndpointOperations.cs Regenerated interface parameter order/doc updates (RG first).
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IOperations.cs Regenerated interface doc updates for provider operations.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IOperationOperations.cs Regenerated interface signature/doc updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IJobsOperations.cs Regenerated interface now takes filter string instead of ODataQuery.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IJobOperationResultsOperations.cs Regenerated interface parameter order/doc updates (RG first).
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IJobDetailsOperations.cs Regenerated interface parameter order/doc updates (RG first).
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IJobCancellationsOperations.cs Regenerated interface parameter order/doc updates (RG first).
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IGetTieringCostOperationResultOperations.cs Regenerated interface signature/doc updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IFetchTieringCostOperations.cs Regenerated interface signature/doc updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IExportJobsOperationResultsOperations.cs Regenerated interface parameter order/doc updates (RG first).
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IDeletedProtectionContainersOperations.cs Regenerated interface now takes filter string instead of ODataQuery.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IBMSPrepareDataMoveOperationResultOperations.cs Regenerated interface parameter order/doc updates (RG first).
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IBackupUsageSummariesOperations.cs Regenerated interface now returns IPage + supports ListNext.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IBackupsOperations.cs Regenerated interface parameter order/doc updates (RG first).
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IBackupResourceEncryptionConfigsOperations.cs Regenerated interface parameter order/doc updates (RG first).
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IBackupProtectionIntentOperations.cs Regenerated interface now takes filter string instead of ODataQuery.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IBackupProtectionContainersOperations.cs Regenerated interface now takes filter string instead of ODataQuery.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IBackupProtectedItemsOperations.cs Regenerated interface now takes filter string instead of ODataQuery.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IBackupProtectableItemsOperations.cs Regenerated interface now takes filter string instead of ODataQuery.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IBackupPoliciesOperations.cs Regenerated interface parameter order/doc updates (RG first).
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IBackupOperationStatusesOperations.cs Regenerated interface signature/doc updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IBackupOperationResultsOperations.cs Regenerated interface signature/doc updates.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/IBackupJobsOperations.cs Regenerated interface now takes filter string instead of ODataQuery.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/GetTieringCostOperationResultOperationsExtensions.cs Regenerated SDK extensions for tiering cost results.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/FeatureSupportOperations.cs Regenerated operation implementation for feature validation endpoint.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/BackupStatusOperations.cs Regenerated operation implementation for backup status endpoint.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/BackupOperationStatusesOperationsExtensions.cs Regenerated SDK extensions for backup operation statuses.
src/RecoveryServices/RecoveryServices.Backup.Management.Sdk/Generated/BackupOperationResultsOperationsExtensions.cs Regenerated SDK extensions for backup operation results.
src/RecoveryServices/RecoveryServices.Backup.Helpers/HelperUtils.cs Broadens paging helper to support non-Resource page item types.
Review details
  • Files reviewed: 1/319 changed files
  • Comments generated: 7
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines 41 to 45
() => BmsAdapter.Client.BackupProtectableItems.ListWithHttpMessagesAsync(
vaultName ?? BmsAdapter.GetResourceName(),
resourceGroupName ?? BmsAdapter.GetResourceGroupName(),
queryFilter,
vaultName: vaultName ?? BmsAdapter.GetResourceName(),
resourceGroupName: resourceGroupName ?? BmsAdapter.GetResourceGroupName(),
filter: queryFilter?.Filter,
cancellationToken: BmsAdapter.CmdletCancellationToken).Result.Body;
Comment on lines 160 to +164
GetRecoveryServicesBackupClient.BackupResourceStorageConfigsNonCrr.UpdateWithHttpMessagesAsync(
vaultName, resouceGroupName, backupStorageConfig, GetRequestHeaders());
resourceGroupName: resouceGroupName,
vaultName: vaultName,
parameters: backupStorageConfig,
customHeaders: GetRequestHeaders());
if ((int)_statusCode != 200)
{
var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode));
var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode));
if ((int)_statusCode != 200)
{
var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode));
var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode));
Comment on lines 10 to 12
/// <summary>
/// The resource management error response.
/// An error response from the Container Instance service.
/// </summary>
@@ -46,7 +46,7 @@ public class AzureWorkloadSAPHanaDatabaseProtectedItem : AzureItem
/// <summary>
/// error details in last backup
/// </summary>
public ErrorDetail LastBackupErrorDetail { get; set; }
public ErrorDetailAutoGenerated LastBackupErrorDetail { get; set; }
@@ -47,7 +47,7 @@ public class AzureWorkloadSQLDatabaseProtectedItem : AzureItem
/// <summary>
/// error details in last backup
/// </summary>
public ErrorDetail LastBackupErrorDetail { get; set; }
public ErrorDetailAutoGenerated LastBackupErrorDetail { get; set; }
The Recovery Services Backup management SDK was regenerated from API
2026-07-01. The regenerated contracts reorder vault and resource-group
parameters that share the same string type, replace OData query objects
with raw filter parameters, add typed response-header wrappers, change
usage summaries to a paged response, and move the Backup-specific error
detail shape. Existing consumers therefore either failed to compile or
could silently construct incorrect requests and lose response metadata.

Update generated-operation calls to use named arguments so vault and
resource-group values remain bound correctly. Preserve the existing
adapter surface by extracting Filter values from OData query objects and
mapping typed SDK responses back to the response types consumed by the
PowerShell layer. Copy Body where applicable, Request, Response, and
RequestId so status codes, raw HTTP headers, and request identifiers are
retained.

Follow continuation links returned by BackupUsageSummaries and broaden
the shared paging helper constraint from generated Resource to class;
the helper only enumerates pages and does not depend on Resource members.
Map SQL and SAP HANA last-backup errors to ErrorDetailAutoGenerated, which
retains the Backup-specific code, message, and recommendations contract.
Use Begin responses for operations whose completion remains tracked by
the existing PowerShell helpers so the initial tracking response is not
consumed by generated polling.

Add a user-facing ChangeLog entry for the API migration. The affected
Backup module and test projects compile with zero warnings and errors.
Historical playback recordings still target API 2025-02-01 and require
separate API 2026-07-01 refresh and behavioral validation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 98d71075-adf0-4b3a-82a1-ec2acd27366e
@a0x1ab

Copy link
Copy Markdown
Member

/azp run

Copilot AI review requested due to automatic review settings September 7, 2026 14:10
@azure-pipelines

Copy link
Copy Markdown
Contributor
Azure Pipelines:
Successfully started running 3 pipeline(s).

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

There are verified correctness/diagnostics issues in updated call sites and generated error handling (discarded async tasks and loss of service error messages) that should be fixed before merging.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 1/320 changed files
  • Comments generated: 4
  • Review effort level: Lite

Comment on lines +195 to +199
var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode));
try
{
_responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);
CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject<CloudError>(_responseContent, this.Client.DeserializationSettings);
ErrorResponse _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject<ErrorResponse>(_responseContent, this.Client.DeserializationSettings);
Comment on lines +196 to +200
var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode));
try
{
_responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);
CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject<CloudError>(_responseContent, this.Client.DeserializationSettings);
ErrorResponse _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject<ErrorResponse>(_responseContent, this.Client.DeserializationSettings);
Comment on lines 177 to +181
GetRecoveryServicesBackupClient.BackupResourceStorageConfigsNonCrr.PatchWithHttpMessagesAsync(
vaultName, resouceGroupName, backupStorageConfig, GetRequestHeaders());
resourceGroupName: resouceGroupName,
vaultName: vaultName,
parameters: backupStorageConfig,
customHeaders: GetRequestHeaders());
Comment on lines +22 to +23
* Updated Recovery Services Backup commands to use management API version `2026-07-01`
- Preserved request filtering, continuation paging, operation tracking responses, and backup error details after SDK contract changes.
@bharatpurwar

Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Contributor
Commenter does not have sufficient privileges for PR 30116 in repo Azure/azure-powershell

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

‼️ DO NOT MERGE THIS PR ‼️
This PR was labeled "Do Not Merge" because it contains code change that cannot be merged. Please contact the reviewer for more information.

Adapt the hand-written Recovery Services exception boundaries to the ErrorResponseException contract emitted by the regenerated Backup management SDK.

Preserve policy-name availability checks by treating an aggregate ErrorResponseException with HTTP 404 the same way as the previous aggregate CloudException 404. Map generated error code, message, details, and existing PowerShell error categories without changing unrelated exception handling.

This change intentionally excludes LRO polling, header parsing, data-move routing, retry behavior, and unrelated cleanup.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 98d71075-adf0-4b3a-82a1-ec2acd27366e
Copilot AI review requested due to automatic review settings September 9, 2026 02:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Confirmed functional issues were found in updated call sites (unobserved async tasks and missing skipToken propagation) and the PR’s CI indicates failing Az.RecoveryServices tests.

Review details
  • Files reviewed: 1/323 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants