Skip to content

[Az.DataProtection] Add auto-protection support for Blob and ADLS backup#29408

Open
Komla-Ansah wants to merge 5 commits intoAzure:mainfrom
MabOneSdk:users/smortey/autoprotection2603
Open

[Az.DataProtection] Add auto-protection support for Blob and ADLS backup#29408
Komla-Ansah wants to merge 5 commits intoAzure:mainfrom
MabOneSdk:users/smortey/autoprotection2603

Conversation

@Komla-Ansah
Copy link
Copy Markdown

@Komla-Ansah Komla-Ansah commented Apr 15, 2026

Description

  • Update API version from 2025-09-01 to 2026-03-01
  • Update namespace references from Api20250901 to Api20260301 across custom cmdlets and tests
  • Update source-file-csharp transforms in README.md for new API version
  • Add -AutoProtection switch and -AutoProtectionExclusionRule parameter to New-AzDataProtectionBackupConfigurationClientObject
  • Support BlobBackupDatasourceParametersForAutoProtection (Blob) and AdlsBlobBackupDatasourceParametersForAutoProtection (ADLS)
  • Add unit tests for auto-protection scenarios
  • Add examples for auto-protection in cmdlet documentation

Mandatory Checklist

  • SHOULD update ChangeLog.md file(s) appropriately
    • Update src/{{SERVICE}}/{{SERVICE}}/ChangeLog.md.
      • A snippet outlining the change(s) made in the PR should be written under the ## Upcoming Release header in the past tense.
    • Should not change ChangeLog.md if no new release is required, such as fixing test case only.
  • SHOULD regenerate markdown help files if there is cmdlet API change. Instruction
  • SHOULD have proper test coverage for changes in pull request.
  • SHOULD NOT adjust version of module manually in pull request

- Update API version from 2025-09-01 to 2026-03-01
- Update namespace references from Api20250901 to Api20260301 across custom cmdlets and tests
- Update source-file-csharp transforms in README.md for new API version
- Add -AutoProtection switch and -AutoProtectionExclusionRule parameter to New-AzDataProtectionBackupConfigurationClientObject
- Support BlobBackupDatasourceParametersForAutoProtection (Blob) and AdlsBlobBackupDatasourceParametersForAutoProtection (ADLS)
- Add unit tests for auto-protection scenarios
- Add examples for auto-protection in cmdlet documentation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 15, 2026 19:05
@azure-client-tools-bot-prd
Copy link
Copy Markdown

Thanks for your contribution! The pull request validation has started. Please revisit this comment for updated status.

@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
4 pipeline(s) require an authorized user to comment /azp run to run.

@VeryEarly
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
Successfully started running 3 pipeline(s).

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Updates Az.DataProtection to the 2026-03-01 API version and adds Blob/ADLS auto-protection support in backup configuration, alongside regenerated help/docs and new unit tests.

Changes:

  • Bumped API version to 2026-03-01 and migrated namespaces from Api20250901Api20260301 across cmdlets, models, docs, and tests.
  • Added -AutoProtection and -AutoProtectionExclusionRule to New-AzDataProtectionBackupConfigurationClientObject with Blob + ADLS auto-protection parameter support.
  • Regenerated markdown help/docs/examples and introduced new Pester tests for auto-protection scenarios.

Reviewed changes

Copilot reviewed 147 out of 147 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/DataProtection/DataProtection/help/Update-AzDataProtectionResourceGuard.md Help regen; API namespace updates; syntax formatting changes
src/DataProtection/DataProtection/help/Update-AzDataProtectionBackupVault.md Help regen; API namespace updates; syntax formatting changes
src/DataProtection/DataProtection/help/Update-AzDataProtectionBackupInstanceAssociatedPolicy.md Help regen; API namespace updates; syntax formatting changes
src/DataProtection/DataProtection/help/Update-AzDataProtectionBackupInstance.md Help regen; API namespace updates; nullable bool type display change
src/DataProtection/DataProtection/help/Unlock-AzDataProtectionResourceGuardOperation.md Help regen; formatting updates
src/DataProtection/DataProtection/help/Undo-AzDataProtectionVaultDeletion.md Help regen; API namespace updates; formatting changes
src/DataProtection/DataProtection/help/Undo-AzDataProtectionBackupInstanceDeletion.md Help regen; formatting updates; example text adjusted
src/DataProtection/DataProtection/help/Test-AzDataProtectionBackupInstanceUpdate.md Help regen; API namespace updates
src/DataProtection/DataProtection/help/Test-AzDataProtectionBackupInstanceRestore.md Help regen; API namespace updates
src/DataProtection/DataProtection/help/Test-AzDataProtectionBackupInstanceReadiness.md Help regen; API namespace updates; example heading tweak
src/DataProtection/DataProtection/help/Sync-AzDataProtectionBackupInstance.md Help regen; formatting updates
src/DataProtection/DataProtection/help/Suspend-AzDataProtectionBackupInstanceBackup.md Help regen; formatting updates
src/DataProtection/DataProtection/help/Stop-AzDataProtectionBackupInstanceProtection.md Help regen; formatting updates
src/DataProtection/DataProtection/help/Start-AzDataProtectionBackupInstanceRestore.md Help regen; API namespace updates; examples formatting
src/DataProtection/DataProtection/help/Set-AzDataProtectionResourceGuardMapping.md Help regen; API namespace updates
src/DataProtection/DataProtection/help/Set-AzDataProtectionMSIPermission.md Help regen; API namespace updates; parameter metadata adjustments
src/DataProtection/DataProtection/help/Search-AzDataProtectionSoftDeletedVaultBackupInstanceInAzGraph.md Help regen; formatting updates
src/DataProtection/DataProtection/help/Search-AzDataProtectionJobInAzGraph.md Help regen; parameter metadata adjustments
src/DataProtection/DataProtection/help/Search-AzDataProtectionBackupVaultInAzGraph.md Help regen; formatting updates
src/DataProtection/DataProtection/help/Search-AzDataProtectionBackupInstanceInAzGraph.md Help regen; parameter metadata adjustments
src/DataProtection/DataProtection/help/Resume-AzDataProtectionBackupInstanceProtection.md Help regen; formatting updates
src/DataProtection/DataProtection/help/Remove-AzDataProtectionResourceGuardMapping.md Help regen; formatting updates
src/DataProtection/DataProtection/help/Remove-AzDataProtectionResourceGuard.md Help regen; formatting + example line tweak
src/DataProtection/DataProtection/help/Remove-AzDataProtectionBackupVault.md Help regen; formatting updates
src/DataProtection/DataProtection/help/Remove-AzDataProtectionBackupPolicy.md Help regen; formatting updates
src/DataProtection/DataProtection/help/Remove-AzDataProtectionBackupInstance.md Help regen; formatting updates
src/DataProtection/DataProtection/help/New-AzDataProtectionRetentionLifeCycleClientObject.md Help regen; API namespace updates
src/DataProtection/DataProtection/help/New-AzDataProtectionRestoreConfigurationClientObject.md Help regen; API namespace updates; nullable bool type display change
src/DataProtection/DataProtection/help/New-AzDataProtectionResourceGuard.md Help regen; API namespace updates
src/DataProtection/DataProtection/help/New-AzDataProtectionPolicyTriggerScheduleClientObject.md Help regen; formatting updates
src/DataProtection/DataProtection/help/New-AzDataProtectionPolicyTagCriteriaClientObject.md Help regen; API namespace updates; example heading tweak
src/DataProtection/DataProtection/help/New-AzDataProtectionBackupVaultStorageSettingObject.md Help regen; formatting updates
src/DataProtection/DataProtection/help/New-AzDataProtectionBackupVault.md Help regen; API namespace updates; syntax changes
src/DataProtection/DataProtection/help/New-AzDataProtectionBackupPolicy.md Help regen; API namespace updates; examples formatting
src/DataProtection/DataProtection/help/New-AzDataProtectionBackupInstance.md Help regen; API namespace updates
src/DataProtection/DataProtection/help/New-AzDataProtectionBackupConfigurationClientObject.md Help updated for auto-protection parameters + examples
src/DataProtection/DataProtection/help/Initialize-AzDataProtectionRestoreRequest.md Help regen; API namespace updates; nullable bool type display change
src/DataProtection/DataProtection/help/Initialize-AzDataProtectionBackupInstance.md Help updated with auto-protection example; API namespace updates
src/DataProtection/DataProtection/help/Get-AzDataProtectionSoftDeletedBackupVault.md Help regen; API namespace updates
src/DataProtection/DataProtection/help/Get-AzDataProtectionSoftDeletedBackupInstance.md Help regen; API namespace updates
src/DataProtection/DataProtection/help/Get-AzDataProtectionResourceGuardMapping.md Help regen; API namespace updates; syntax sections reordered
src/DataProtection/DataProtection/help/Get-AzDataProtectionResourceGuard.md Help regen; API namespace updates
src/DataProtection/DataProtection/help/Get-AzDataProtectionRecoveryPoint.md Help regen; API namespace updates; parameter set metadata adjusted
src/DataProtection/DataProtection/help/Get-AzDataProtectionPolicyTemplate.md Help regen; API namespace updates
src/DataProtection/DataProtection/help/Get-AzDataProtectionOperationStatus.md Help regen; API namespace updates
src/DataProtection/DataProtection/help/Get-AzDataProtectionOperation.md Help regen; formatting updates
src/DataProtection/DataProtection/help/Get-AzDataProtectionJob.md Help regen; API namespace updates; syntax sections reordered
src/DataProtection/DataProtection/help/Get-AzDataProtectionBackupVault.md Help regen; API namespace updates; parameter set headers adjusted
src/DataProtection/DataProtection/help/Get-AzDataProtectionBackupPolicy.md Help regen; API namespace updates
src/DataProtection/DataProtection/help/Get-AzDataProtectionBackupInstancesExtensionRouting.md Help regen; API namespace updates
src/DataProtection/DataProtection/help/Get-AzDataProtectionBackupInstance.md Help regen; API namespace updates
src/DataProtection/DataProtection/help/Find-AzDataProtectionRestorableTimeRange.md Help regen; API namespace updates
src/DataProtection/DataProtection/help/Edit-AzDataProtectionPolicyTriggerClientObject.md Help regen; API namespace updates; syntax tightened
src/DataProtection/DataProtection/help/Edit-AzDataProtectionPolicyTagClientObject.md Help regen; API namespace updates; syntax tightened
src/DataProtection/DataProtection/help/Edit-AzDataProtectionPolicyRetentionRuleClientObject.md Help regen; API namespace updates; nullable bool type display change
src/DataProtection/DataProtection/help/Backup-AzDataProtectionBackupInstanceAdhoc.md Help regen; API namespace updates
src/DataProtection/DataProtection/Az.DataProtection.psd1 Manifest regen; date updated; default arrays explicitly set
src/DataProtection/DataProtection.sln Solution project path + GUID updated; encoding/BOM change
src/DataProtection/DataProtection.Autorest/test/Update-AzDataProtectionBackupInstanceAssociatedPolicy.Tests.ps1 Updated test model namespace to Api20260301
src/DataProtection/DataProtection.Autorest/test/AutoProtectionBackupConfiguration.Tests.ps1 New Pester tests for auto-protection configuration
src/DataProtection/DataProtection.Autorest/generate-info.json Removed generate-info artifact
src/DataProtection/DataProtection.Autorest/examples/New-AzDataProtectionBackupConfigurationClientObject.md Added auto-protection examples
src/DataProtection/DataProtection.Autorest/examples/Initialize-AzDataProtectionBackupInstance.md Added ADLS auto-protection example
src/DataProtection/DataProtection.Autorest/docs/Update-AzDataProtectionResourceGuard.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Update-AzDataProtectionBackupVault.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Update-AzDataProtectionBackupInstanceAssociatedPolicy.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Update-AzDataProtectionBackupInstance.md Docs regen; API namespace updates; nullable bool display adjusted
src/DataProtection/DataProtection.Autorest/docs/Undo-AzDataProtectionVaultDeletion.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Test-AzDataProtectionBackupInstanceUpdate.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Test-AzDataProtectionBackupInstanceRestore.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Test-AzDataProtectionBackupInstanceReadiness.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Start-AzDataProtectionBackupInstanceRestore.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Set-AzDataProtectionResourceGuardMapping.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Set-AzDataProtectionMSIPermission.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/New-AzDataProtectionRetentionLifeCycleClientObject.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/New-AzDataProtectionRestoreConfigurationClientObject.md Docs regen; API namespace updates; nullable bool display adjusted
src/DataProtection/DataProtection.Autorest/docs/New-AzDataProtectionResourceGuard.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/New-AzDataProtectionPolicyTagCriteriaClientObject.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/New-AzDataProtectionBackupVault.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/New-AzDataProtectionBackupPolicy.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/New-AzDataProtectionBackupInstance.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/New-AzDataProtectionBackupConfigurationClientObject.md Docs updated for auto-protection parameters + examples
src/DataProtection/DataProtection.Autorest/docs/Initialize-AzDataProtectionRestoreRequest.md Docs regen; API namespace updates; nullable bool display adjusted
src/DataProtection/DataProtection.Autorest/docs/Initialize-AzDataProtectionBackupInstance.md Docs updated with auto-protection example; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Get-AzDataProtectionSoftDeletedBackupVault.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Get-AzDataProtectionSoftDeletedBackupInstance.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Get-AzDataProtectionResourceGuardMapping.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Get-AzDataProtectionResourceGuard.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Get-AzDataProtectionRecoveryPoint.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Get-AzDataProtectionPolicyTemplate.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Get-AzDataProtectionOperationStatus.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Get-AzDataProtectionJob.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Get-AzDataProtectionBackupVault.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Get-AzDataProtectionBackupPolicy.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Get-AzDataProtectionBackupInstancesExtensionRouting.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Get-AzDataProtectionBackupInstance.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Find-AzDataProtectionRestorableTimeRange.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Edit-AzDataProtectionPolicyTriggerClientObject.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Edit-AzDataProtectionPolicyTagClientObject.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Edit-AzDataProtectionPolicyRetentionRuleClientObject.md Docs regen; API namespace updates; nullable bool display adjusted
src/DataProtection/DataProtection.Autorest/docs/Backup-AzDataProtectionBackupInstanceAdhoc.md Docs regen; API namespace updates
src/DataProtection/DataProtection.Autorest/docs/Az.DataProtection.md Docs regen; module metadata updated
src/DataProtection/DataProtection.Autorest/custom/Models/DeletedBackupVaultResource.cs Namespace bumped to Api20260301
src/DataProtection/DataProtection.Autorest/custom/Models/BackupInstanceResource.cs Namespace bumped to Api20260301
src/DataProtection/DataProtection.Autorest/custom/Helpers/CommonHelpers.ps1 Namespace bumped to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Policy/New-AzDataProtectionRetentionLifeCycleClientObject.ps1 Updated types to Api20260301
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Policy/New-AzDataProtectionPolicyTagCriteriaClientObject.ps1 Updated types to Api20260301
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Policy/New-AzDataProtectionBackupPolicy.ps1 Updated types to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Policy/Get-AzDataProtectionPolicyTemplate.ps1 Updated types to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Policy/Edit-AzDataProtectionPolicyTriggerClientObject.ps1 Updated types to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Policy/Edit-AzDataProtectionPolicyTagClientObject.ps1 Updated types to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Policy/Edit-AzDataProtectionPolicyRetentionRuleClientObject.ps1 Updated types to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/Vault/Update-AzDataProtectionBackupVault.ps1 Updated types to Api20260301; CMK object creation updated
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/Vault/Undo-AzDataProtectionVaultDeletion.ps1 Updated output type to Api20260301
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/Vault/Set-AzDataProtectionMSIPermission.ps1 Updated request/instance types to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/Vault/New-AzDataProtectionBackupVaultStorageSettingObject.ps1 Updated StorageSetting type to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/Vault/New-AzDataProtectionBackupVault.ps1 Updated storage/encryption types to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/Restore/Test-AzDataProtectionBackupInstanceRestore.ps1 Updated request types to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/Restore/Start-AzDataProtectionBackupInstanceRestore.ps1 Updated request types to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/Restore/New-AzDataProtectionRestoreConfigurationClientObject.ps1 Updated restore criteria types to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/Restore/Initialize-AzDataProtectionRestoreRequest.ps1 Updated restore request types to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/Job/Get-AzDataProtectionJob.ps1 Updated output type to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/BackupInstance/Update-AzDataProtectionBackupInstanceAssociatedPolicy.ps1 Updated output type to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/BackupInstance/Update-AzDataProtectionBackupInstance.ps1 Updated IdentityDetails + datasource param types to Api20260301
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/BackupInstance/Suspend-AzDataProtectionBackupInstanceBackup.ps1 Updated SuspendBackupRequest type to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/BackupInstance/Stop-AzDataProtectionBackupInstanceProtection.ps1 Updated StopProtectionRequest type to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/BackupInstance/New-AzDataProtectionBackupInstance.ps1 Updated backup instance type to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/BackupInstance/New-AzDataProtectionBackupConfigurationClientObject.ps1 Added auto-protection params + object types; updated Api20260301 references
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/BackupInstance/Initialize-AzDataProtectionBackupInstance.ps1 Updated instance + identity + secret store types to Api20260301
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Common/Update-AzDataProtectionResourceGuard.ps1 Updated output type to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Common/New-AzDataProtectionResourceGuard.ps1 Updated output type to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Backupcenter/Search-AzDataProtectionSoftDeletedVaultBackupInstanceInAzGraph.ps1 Updated FromJsonString model to Api20260301
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Backupcenter/Search-AzDataProtectionJobInAzGraph.ps1 Updated FromJsonString model to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Backupcenter/Search-AzDataProtectionBackupVaultInAzGraph.ps1 Updated FromJsonString model to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Backupcenter/Search-AzDataProtectionBackupInstanceInAzGraph.ps1 Updated FromJsonString model to Api20260301; encoding adjusted
src/DataProtection/DataProtection.Autorest/UX/Microsoft.DataProtection/resourceGuards.json UX metadata API version → 2026-03-01
src/DataProtection/DataProtection.Autorest/UX/Microsoft.DataProtection/locations-operationStatus.json UX metadata API version → 2026-03-01
src/DataProtection/DataProtection.Autorest/UX/Microsoft.DataProtection/locations-deletedVaults.json UX metadata API version → 2026-03-01
src/DataProtection/DataProtection.Autorest/UX/Microsoft.DataProtection/backupVaults.json UX metadata API version → 2026-03-01
src/DataProtection/DataProtection.Autorest/UX/Microsoft.DataProtection/backupVaults-deletedBackupInstances.json UX metadata API version → 2026-03-01
src/DataProtection/DataProtection.Autorest/UX/Microsoft.DataProtection/backupVaults-backupResourceGuardProxies.json UX metadata API version → 2026-03-01
src/DataProtection/DataProtection.Autorest/UX/Microsoft.DataProtection/backupVaults-backupPolicies.json UX metadata API version → 2026-03-01
src/DataProtection/DataProtection.Autorest/UX/Microsoft.DataProtection/backupVaults-backupJobs.json UX metadata API version → 2026-03-01
src/DataProtection/DataProtection.Autorest/UX/Microsoft.DataProtection/backupVaults-backupInstances.json UX metadata API version → 2026-03-01
src/DataProtection/DataProtection.Autorest/UX/Microsoft.DataProtection/backupVaults-backupInstances-recoveryPoints.json UX metadata API version → 2026-03-01
src/DataProtection/DataProtection.Autorest/README.md Autorest input spec path + transform strings updated to Api20260301
src/DataProtection/DataProtection.Autorest/Properties/AssemblyInfo.cs Assembly version bumped 2.9.0 → 2.9.1
Comments suppressed due to low confidence (7)

src/DataProtection/DataProtection/help/Update-AzDataProtectionResourceGuard.md:1

  • The help front-matter now has an empty external help file: value. This is likely an artifact of help regeneration and can break external help resolution in tooling. Please restore the expected value (e.g., Az.DataProtection-help.xml) consistently across help markdown files, or remove the key entirely if the module no longer uses external help.
    src/DataProtection/DataProtection/help/Update-AzDataProtectionBackupInstance.md:1
  • The generated type name is assembly-qualified (System.Private.CoreLib, Version=...), which is noisy and not user-friendly in cmdlet help. Help output typically should show System.Nullable1[System.Boolean](or simplySystem.Boolean`) rather than binding to a specific runtime assembly/version. Consider adding/adjusting the help generation post-processing to strip assembly qualifiers so docs are stable across .NET runtime versions.
    src/DataProtection/DataProtection/help/Undo-AzDataProtectionBackupInstanceDeletion.md:1
  • This example line has trailing whitespace after the command, which tends to cause churn in docs and can fail markdown linting in some pipelines. Please trim trailing spaces (also appears in a few other help examples/headings in this PR).
    src/DataProtection/DataProtection.Autorest/test/AutoProtectionBackupConfiguration.Tests.ps1:1
  • This directory-walk loop can become infinite when HttpPipelineMocking.ps1 is not found (e.g., if the file is moved/renamed, or the test is run from an unexpected checkout layout), because Split-Path -Parent can stop changing once it reaches the filesystem root. Add a termination condition (e.g., break when $currentPath no longer changes or becomes empty) and throw a clear error if the mocking script can’t be located.
    src/DataProtection/DataProtection.sln:1
  • The solution file now includes a BOM at the start (line 1), and the Az.DataProtection project GUID changed along with the relative path. If the GUID/path change was not intentional, this can cause unnecessary churn for developers’ local solution state and may break any tooling that references the old project GUID. If it’s intended, consider documenting the reason (or ensuring other solution consumers don’t depend on the previous GUID).
    src/DataProtection/DataProtection.sln:1
  • The solution file now includes a BOM at the start (line 1), and the Az.DataProtection project GUID changed along with the relative path. If the GUID/path change was not intentional, this can cause unnecessary churn for developers’ local solution state and may break any tooling that references the old project GUID. If it’s intended, consider documenting the reason (or ensuring other solution consumers don’t depend on the previous GUID).
    src/DataProtection/DataProtection/Az.DataProtection.psd1:1
  • Previously these fields were commented out; now they are explicitly set to empty arrays. While functionally similar, this can affect formatting/signing diffs and may conflict with repository conventions for generated manifests. If not required, prefer keeping them omitted (commented) to minimize churn; if required by tooling, add a brief note or ensure it’s consistent across modules.

Comment on lines +61 to +67
[Parameter(Mandatory=$false, HelpMessage='Switch parameter to enable auto-protection. When enabled, new containers matching the rules will be automatically protected. Use this parameter for DatasourceType AzureBlob or AzureDataLakeStorage.')]
[Switch]
${AutoProtection},

[Parameter(Mandatory=$false, HelpMessage='List of auto-protection exclusion rules. Each rule is a BlobBackupAutoProtectionRule object specifying container name prefix patterns to exclude. Use this parameter along with -AutoProtection.')]
[Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20260301.IBlobBackupAutoProtectionRule[]]
${AutoProtectionExclusionRule}
Copy link

Copilot AI Apr 15, 2026

Choose a reason for hiding this comment

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

Currently the cmdlet enforces mutual exclusivity between -AutoProtection and container selection parameters at runtime with throw. For a better user experience (tab completion, Get-Help clarity, and earlier validation), consider separating auto-protection vs container-selection into distinct parameter sets (e.g., AutoProtection and ContainerSelection) and making AutoProtectionExclusionRule only valid in the auto-protection set. This is optional but will reduce custom validation branching and improve discoverability.

Copilot uses AI. Check for mistakes.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
4 pipeline(s) require an authorized user to comment /azp run to run.

@VeryEarly
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
Successfully started running 3 pipeline(s).

The generated/ directory needs to be regenerated with the new API
version (2026-03-01). Updating the generate_Id so the CI build
detects the outdated submodule and runs autorest regeneration.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 15, 2026 22:38
@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
4 pipeline(s) require an authorized user to comment /azp run to run.

@VeryEarly
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
Successfully started running 3 pipeline(s).

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 147 out of 147 changed files in this pull request and generated 4 comments.

Comment on lines 268 to 272

```yaml
Type: System.Nullable`1[System.Boolean]
Type: System.Nullable`1[[System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]
Parameter Sets: (All)
Aliases:
Copy link

Copilot AI Apr 15, 2026

Choose a reason for hiding this comment

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

The generated parameter type string includes the full assembly-qualified System.Private.CoreLib, Version=8.0.0.0..., which is noisy and not user-friendly in reference docs. Please normalize these Type: entries back to the simplified form used previously (e.g., System.Nullable / System.Nullable1[System.Boolean]orSystem.Boolean`) by adjusting the help generation step or post-processing.

Copilot uses AI. Check for mistakes.
Comment on lines 74 to 80
if($DatasourceType.ToString() -eq "AzureKubernetesService"){

# parameter validation
if($VaultedBackupContainer -ne $null -or $IncludeAllContainer){
$message = "Invalid parameter VaultedBackupContainer or IncludeAllContainer for given DatasourceType."
throw $message
}
Copy link

Copilot AI Apr 15, 2026

Choose a reason for hiding this comment

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

-AutoProtection / -AutoProtectionExclusionRule are accepted even when -DatasourceType AzureKubernetesService is selected, but they are silently ignored (only Blob/ADLS branch uses them). This can lead to callers thinking auto-protection is enabled for AKS when it is not. Add explicit parameter validation to throw when AutoProtection (or AutoProtectionExclusionRule) is provided with an unsupported DatasourceType (e.g., AzureKubernetesService), and consider surfacing a clear error message listing the supported datasource types.

Copilot uses AI. Check for mistakes.
Comment on lines 22 to 25
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DataProtection.Autorest", "DataProtection.Autorest", "{F40C2F0C-1625-C7F2-86E6-E539334694A7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Az.DataProtection", "..\..\generated\DataProtection\DataProtection.Autorest\Az.DataProtection.csproj", "{F0BC0C6F-B4BC-412D-814E-C34A64892BE8}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Az.DataProtection", "DataProtection.Autorest\Az.DataProtection.csproj", "{40B3FCBA-529B-4FC6-A055-C90896EEEDE5}"
EndProject
Copy link

Copilot AI Apr 15, 2026

Choose a reason for hiding this comment

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

The solution now references DataProtection.Autorest\Az.DataProtection.csproj, but src/DataProtection/DataProtection.Autorest/ does not appear to contain an Az.DataProtection.csproj at its root (it previously pointed to the generated/ location). This likely breaks opening/building the solution. Please update the project path (and GUID if needed) to the actual Az.DataProtection.csproj location, or add the missing project file under DataProtection.Autorest.

Copilot uses AI. Check for mistakes.
Comment on lines 1 to 3
---
external help file: Az.DataProtection-help.xml
external help file:
Module Name: Az.DataProtection
Copy link

Copilot AI Apr 15, 2026

Choose a reason for hiding this comment

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

The front-matter external help file: value was removed and is now blank. PlatyPS/help generation typically relies on this metadata; please restore the previous value (Az.DataProtection-help.xml) or regenerate the help markdown so this field is populated consistently.

Copilot uses AI. Check for mistakes.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
4 pipeline(s) require an authorized user to comment /azp run to run.

@VeryEarly
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
Successfully started running 3 pipeline(s).

… -> Api20260301)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 16, 2026 01:24
@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
4 pipeline(s) require an authorized user to comment /azp run to run.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 157 out of 162 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (4)

src/DataProtection/DataProtection/help/Update-AzDataProtectionResourceGuard.md:1

  • The external help file front-matter value is now empty. For Az modules, this is typically used to point to the generated XML help (e.g., Az.DataProtection-help.xml). Leaving it blank can break help linking/publishing workflows. Restore the correct external help filename (and apply consistently across the other updated help markdown files where it was cleared).
    src/DataProtection/DataProtection/help/Update-AzDataProtectionBackupInstance.md:1
  • The help now exposes a CLR assembly-qualified type (System.Private.CoreLib, Version=8.0.0.0) in the parameter metadata. This is noisy, framework-version-specific, and can become incorrect as the runtime changes. Prefer the simplified type string previously used in help (e.g., System.Nullable\1[System.Boolean]orSystem.Nullable[bool]`) so the docs remain stable across PowerShell/.NET versions.
    src/DataProtection/DataProtection/help/Search-AzDataProtectionJobInAzGraph.md:1
  • The Accepted values: lines for enum-like parameters were removed (e.g., for DatasourceTypes, JobOperation[], JobStatus[]). That’s a documentation regression because users lose discoverability of valid inputs from Get-Help. If possible, restore the accepted-values metadata (or ensure the doc generation step re-emits it) for these parameters.
    src/DataProtection/DataProtection/help/Undo-AzDataProtectionBackupInstanceDeletion.md:1
  • This example line has trailing whitespace at the end. Trailing spaces tend to create unnecessary diffs and can fail markdown linting in some pipelines. Remove the trailing space here (and in other updated examples where a trailing space was introduced).

Comment on lines +110 to 116
if($AutoProtection){
# auto-protection: mutually exclusive with container-based params
if($VaultedBackupContainer -ne $null -or $IncludeAllContainer){
$message = "VaultedBackupContainer and IncludeAllContainer parameters cannot be used with AutoProtection."
throw $message
}

Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

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

New validation branches (mutual exclusivity for -AutoProtection vs -VaultedBackupContainer/-IncludeAllContainer, and -AutoProtectionExclusionRule requiring -AutoProtection) were added but aren’t covered by the new Pester tests. Add negative test cases that assert these combinations throw (and ideally validate the error message) to prevent regressions.

Copilot uses AI. Check for mistakes.
Comment on lines +134 to +137
if($AutoProtectionExclusionRule -ne $null){
$message = "AutoProtectionExclusionRule parameter can only be used with -AutoProtection switch."
throw $message
}
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

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

New validation branches (mutual exclusivity for -AutoProtection vs -VaultedBackupContainer/-IncludeAllContainer, and -AutoProtectionExclusionRule requiring -AutoProtection) were added but aren’t covered by the new Pester tests. Add negative test cases that assert these combinations throw (and ideally validate the error message) to prevent regressions.

Copilot uses AI. Check for mistakes.
@VeryEarly
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
Successfully started running 3 pipeline(s).

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants