Skip to content

Add Cosmos DB database and container item-level recovery - #30300

Merged
NoriZC merged 16 commits into
Azure:mainfrom
Shashank1306s:users/shasha/dataprotection-updates
Oct 26, 2026
Merged

NoriZC merged 16 commits into
Azure:mainfrom
Shashank1306s:users/shasha/dataprotection-updates

Conversation

@Shashank1306s

@Shashank1306s Shashank Singh (Shashank1306s) commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

🤖 PR Validation — ⚠️ Review suggested

Tests
⚠️ 20/20
️✔️Az.Accounts
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.DataProtection
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Breaking Change Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Signature Check
⚠️PowerShell Core - Windows
Type Cmdlet Description Remediation
⚠️ Edit-AzDataProtectionPolicyRetentionRuleClientObject Edit-AzDataProtectionPolicyRetentionRuleClientObject Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Edit-AzDataProtectionPolicyRetentionRuleClientObject Edit-AzDataProtectionPolicyRetentionRuleClientObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Edit-AzDataProtectionPolicyTagClientObject Edit-AzDataProtectionPolicyTagClientObject Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Edit-AzDataProtectionPolicyTagClientObject Edit-AzDataProtectionPolicyTagClientObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Edit-AzDataProtectionPolicyTriggerClientObject Edit-AzDataProtectionPolicyTriggerClientObject Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Edit-AzDataProtectionPolicyTriggerClientObject Edit-AzDataProtectionPolicyTriggerClientObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionBackupInstance Get-AzDataProtectionBackupInstance Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionBackupInstance Get-AzDataProtectionBackupInstance changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionBackupInstancesExtensionRouting Get-AzDataProtectionBackupInstancesExtensionRouting Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionBackupInstancesExtensionRouting Get-AzDataProtectionBackupInstancesExtensionRouting changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionBackupPolicy Get-AzDataProtectionBackupPolicy Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionBackupPolicy Get-AzDataProtectionBackupPolicy changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionBackupVault Get-AzDataProtectionBackupVault Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionBackupVault Get-AzDataProtectionBackupVault changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionJob Get-AzDataProtectionJob Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionJob Get-AzDataProtectionJob changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionOperation Get-AzDataProtectionOperation Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionOperation Get-AzDataProtectionOperation changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionOperationStatus Get-AzDataProtectionOperationStatus Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionOperationStatus Get-AzDataProtectionOperationStatus changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionPolicyTemplate Get-AzDataProtectionPolicyTemplate Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionPolicyTemplate Get-AzDataProtectionPolicyTemplate changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionRecoveryPoint Get-AzDataProtectionRecoveryPoint Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionRecoveryPoint Get-AzDataProtectionRecoveryPoint changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionResourceGuard Get-AzDataProtectionResourceGuard Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionResourceGuard Get-AzDataProtectionResourceGuard changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionResourceGuardMapping Get-AzDataProtectionResourceGuardMapping Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionResourceGuardMapping Get-AzDataProtectionResourceGuardMapping changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionSoftDeletedBackupInstance Get-AzDataProtectionSoftDeletedBackupInstance Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionSoftDeletedBackupInstance Get-AzDataProtectionSoftDeletedBackupInstance changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionSoftDeletedBackupVault Get-AzDataProtectionSoftDeletedBackupVault Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionSoftDeletedBackupVault Get-AzDataProtectionSoftDeletedBackupVault changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Initialize-AzDataProtectionBackupInstance Initialize-AzDataProtectionBackupInstance Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Initialize-AzDataProtectionBackupInstance Initialize-AzDataProtectionBackupInstance changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Initialize-AzDataProtectionRestoreRequest Initialize-AzDataProtectionRestoreRequest Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Initialize-AzDataProtectionRestoreRequest Initialize-AzDataProtectionRestoreRequest changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ New-AzDataProtectionBackupConfigurationClientObject New-AzDataProtectionBackupConfigurationClientObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ New-AzDataProtectionBackupVaultStorageSettingObject New-AzDataProtectionBackupVaultStorageSettingObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ New-AzDataProtectionPolicyTagCriteriaClientObject New-AzDataProtectionPolicyTagCriteriaClientObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ New-AzDataProtectionPolicyTriggerScheduleClientObject New-AzDataProtectionPolicyTriggerScheduleClientObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ New-AzDataProtectionRestoreConfigurationClientObject New-AzDataProtectionRestoreConfigurationClientObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ New-AzDataProtectionRetentionLifeCycleClientObject New-AzDataProtectionRetentionLifeCycleClientObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Search-AzDataProtectionBackupInstanceInAzGraph Search-AzDataProtectionBackupInstanceInAzGraph Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Search-AzDataProtectionBackupInstanceInAzGraph Search-AzDataProtectionBackupInstanceInAzGraph changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Search-AzDataProtectionBackupVaultInAzGraph Search-AzDataProtectionBackupVaultInAzGraph Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Search-AzDataProtectionBackupVaultInAzGraph Search-AzDataProtectionBackupVaultInAzGraph changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Search-AzDataProtectionJobInAzGraph Search-AzDataProtectionJobInAzGraph Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Search-AzDataProtectionJobInAzGraph Search-AzDataProtectionJobInAzGraph changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Search-AzDataProtectionSoftDeletedVaultBackupInstanceInAzGraph Search-AzDataProtectionSoftDeletedVaultBackupInstanceInAzGraph Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Search-AzDataProtectionSoftDeletedVaultBackupInstanceInAzGraph Search-AzDataProtectionSoftDeletedVaultBackupInstanceInAzGraph changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️Windows PowerShell - Windows
Type Cmdlet Description Remediation
⚠️ Edit-AzDataProtectionPolicyRetentionRuleClientObject Edit-AzDataProtectionPolicyRetentionRuleClientObject Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Edit-AzDataProtectionPolicyRetentionRuleClientObject Edit-AzDataProtectionPolicyRetentionRuleClientObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Edit-AzDataProtectionPolicyTagClientObject Edit-AzDataProtectionPolicyTagClientObject Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Edit-AzDataProtectionPolicyTagClientObject Edit-AzDataProtectionPolicyTagClientObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Edit-AzDataProtectionPolicyTriggerClientObject Edit-AzDataProtectionPolicyTriggerClientObject Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Edit-AzDataProtectionPolicyTriggerClientObject Edit-AzDataProtectionPolicyTriggerClientObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionBackupInstance Get-AzDataProtectionBackupInstance Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionBackupInstance Get-AzDataProtectionBackupInstance changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionBackupInstancesExtensionRouting Get-AzDataProtectionBackupInstancesExtensionRouting Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionBackupInstancesExtensionRouting Get-AzDataProtectionBackupInstancesExtensionRouting changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionBackupPolicy Get-AzDataProtectionBackupPolicy Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionBackupPolicy Get-AzDataProtectionBackupPolicy changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionBackupVault Get-AzDataProtectionBackupVault Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionBackupVault Get-AzDataProtectionBackupVault changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionJob Get-AzDataProtectionJob Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionJob Get-AzDataProtectionJob changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionOperation Get-AzDataProtectionOperation Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionOperation Get-AzDataProtectionOperation changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionOperationStatus Get-AzDataProtectionOperationStatus Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionOperationStatus Get-AzDataProtectionOperationStatus changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionPolicyTemplate Get-AzDataProtectionPolicyTemplate Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionPolicyTemplate Get-AzDataProtectionPolicyTemplate changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionRecoveryPoint Get-AzDataProtectionRecoveryPoint Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionRecoveryPoint Get-AzDataProtectionRecoveryPoint changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionResourceGuard Get-AzDataProtectionResourceGuard Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionResourceGuard Get-AzDataProtectionResourceGuard changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionResourceGuardMapping Get-AzDataProtectionResourceGuardMapping Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionResourceGuardMapping Get-AzDataProtectionResourceGuardMapping changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionSoftDeletedBackupInstance Get-AzDataProtectionSoftDeletedBackupInstance Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionSoftDeletedBackupInstance Get-AzDataProtectionSoftDeletedBackupInstance changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Get-AzDataProtectionSoftDeletedBackupVault Get-AzDataProtectionSoftDeletedBackupVault Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Get-AzDataProtectionSoftDeletedBackupVault Get-AzDataProtectionSoftDeletedBackupVault changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Initialize-AzDataProtectionBackupInstance Initialize-AzDataProtectionBackupInstance Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Initialize-AzDataProtectionBackupInstance Initialize-AzDataProtectionBackupInstance changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Initialize-AzDataProtectionRestoreRequest Initialize-AzDataProtectionRestoreRequest Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Initialize-AzDataProtectionRestoreRequest Initialize-AzDataProtectionRestoreRequest changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ New-AzDataProtectionBackupConfigurationClientObject New-AzDataProtectionBackupConfigurationClientObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ New-AzDataProtectionBackupVaultStorageSettingObject New-AzDataProtectionBackupVaultStorageSettingObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ New-AzDataProtectionPolicyTagCriteriaClientObject New-AzDataProtectionPolicyTagCriteriaClientObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ New-AzDataProtectionPolicyTriggerScheduleClientObject New-AzDataProtectionPolicyTriggerScheduleClientObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ New-AzDataProtectionRestoreConfigurationClientObject New-AzDataProtectionRestoreConfigurationClientObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ New-AzDataProtectionRetentionLifeCycleClientObject New-AzDataProtectionRetentionLifeCycleClientObject changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Search-AzDataProtectionBackupInstanceInAzGraph Search-AzDataProtectionBackupInstanceInAzGraph Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Search-AzDataProtectionBackupInstanceInAzGraph Search-AzDataProtectionBackupInstanceInAzGraph changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Search-AzDataProtectionBackupVaultInAzGraph Search-AzDataProtectionBackupVaultInAzGraph Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Search-AzDataProtectionBackupVaultInAzGraph Search-AzDataProtectionBackupVaultInAzGraph changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Search-AzDataProtectionJobInAzGraph Search-AzDataProtectionJobInAzGraph Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Search-AzDataProtectionJobInAzGraph Search-AzDataProtectionJobInAzGraph changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️ Search-AzDataProtectionSoftDeletedVaultBackupInstanceInAzGraph Search-AzDataProtectionSoftDeletedVaultBackupInstanceInAzGraph Changes the ConfirmImpact but does not set the SupportsShouldProcess property to true in the cmdlet attribute. Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue
⚠️ Search-AzDataProtectionSoftDeletedVaultBackupInstanceInAzGraph Search-AzDataProtectionSoftDeletedVaultBackupInstanceInAzGraph changes the confirm impact. Please ensure that the change in ConfirmImpact is justified Verify that ConfirmImpact is changed appropriately by the cmdlet. It is very rare for a cmdlet to change the ConfirmImpact.
⚠️Help Example Check
⚠️PowerShell Core - Windows
Type Cmdlet Example Line RuleName Description Extent Remediation
⚠️ Initialize-AzDataProtectionRestoreRequest 2 4 Mismatched_Parameter_Value_Type Find-AzDataProtectionRestorableTimeRange -BackupInstanceName $instance[0].BackupInstanceName is not an expected parameter value type. -BackupInstanceName Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 2 5 Unassigned_Variable Initialize-AzDataProtectionRestoreRequest -RestoreLocation $vault.Location is a null-valued parameter value. -RestoreLocation Assign value for $vault.Location.
⚠️ Initialize-AzDataProtectionRestoreRequest 2 5 Mismatched_Parameter_Value_Type Get-Date -Date $pointInTimeRange.RestorableTimeRange.EndTime is not an expected parameter value type. -Date Use correct parameter value type. Expected Type is datetime. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 3 4 Mismatched_Parameter_Value_Type Find-AzDataProtectionRestorableTimeRange -BackupInstanceName $instance[0].BackupInstanceName is not an expected parameter value type. -BackupInstanceName Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 3 5 Unassigned_Variable Initialize-AzDataProtectionRestoreRequest -RestoreLocation $vault.Location is a null-valued parameter value. -RestoreLocation Assign value for $vault.Location.
⚠️ Initialize-AzDataProtectionRestoreRequest 3 5 Unassigned_Variable Initialize-AzDataProtectionRestoreRequest -BackupInstance $instances[0] is a null-valued parameter value. -BackupInstance Assign value for $instances[0].
⚠️ Initialize-AzDataProtectionRestoreRequest 4 4 Mismatched_Parameter_Value_Type Find-AzDataProtectionRestorableTimeRange -BackupInstanceName $instance[0].BackupInstanceName is not an expected parameter value type. -BackupInstanceName Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 4 5 Unassigned_Variable Initialize-AzDataProtectionRestoreRequest -RestoreLocation $vault.Location is a null-valued parameter value. -RestoreLocation Assign value for $vault.Location.
⚠️ Initialize-AzDataProtectionRestoreRequest 4 5 Unassigned_Variable Initialize-AzDataProtectionRestoreRequest -BackupInstance $instances[0] is a null-valued parameter value. -BackupInstance Assign value for $instances[0].
⚠️ Initialize-AzDataProtectionRestoreRequest 5 1 Unassigned_Variable Search-AzDataProtectionBackupVaultInAzGraph -ResourceGroup $ResourceGroupName is a null-valued parameter value. -ResourceGroup Assign value for $ResourceGroupName.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 1 Unassigned_Variable Search-AzDataProtectionBackupVaultInAzGraph -Subscription $SubscriptionId is a null-valued parameter value. -Subscription Assign value for $SubscriptionId.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 1 Unassigned_Variable Search-AzDataProtectionBackupVaultInAzGraph -Vault $VaultName is a null-valued parameter value. -Vault Assign value for $VaultName.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 2 Unassigned_Variable Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $subscriptionId is a null-valued parameter value. -Subscription Assign value for $subscriptionId.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 2 Unassigned_Variable Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroup $resourceGroupName is a null-valued parameter value. -ResourceGroup Assign value for $resourceGroupName.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 2 Unassigned_Variable Search-AzDataProtectionBackupInstanceInAzGraph -Vault $vaultName is a null-valued parameter value. -Vault Assign value for $vaultName.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 3 Mismatched_Parameter_Value_Type Get-AzDataProtectionRecoveryPoint -BackupInstanceName $instance.Name is not an expected parameter value type. -BackupInstanceName Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 5 3 Unassigned_Variable Get-AzDataProtectionRecoveryPoint -ResourceGroupName $resourceGroupName is a null-valued parameter value. -ResourceGroupName Assign value for $resourceGroupName.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 3 Unassigned_Variable Get-AzDataProtectionRecoveryPoint -VaultName $vaultName is a null-valued parameter value. -VaultName Assign value for $vaultName.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 3 Unassigned_Variable Get-AzDataProtectionRecoveryPoint -SubscriptionId $subscriptionId is a null-valued parameter value. -SubscriptionId Assign value for $subscriptionId.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 6 Mismatched_Parameter_Value_Type Initialize-AzDataProtectionRestoreRequest -RestoreLocation $vault.ReplicatedRegion[0] is not an expected parameter value type. -RestoreLocation Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 5 6 Mismatched_Parameter_Value_Type Initialize-AzDataProtectionRestoreRequest -RecoveryPoint $recoveryPointsCrr[0].Property.RecoveryPointId is not an expected parameter value type. -RecoveryPoint Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 6 1 Unassigned_Variable Search-AzDataProtectionBackupVaultInAzGraph -ResourceGroup $ResourceGroupName is a null-valued parameter value. -ResourceGroup Assign value for $ResourceGroupName.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 1 Unassigned_Variable Search-AzDataProtectionBackupVaultInAzGraph -Subscription $SubscriptionId is a null-valued parameter value. -Subscription Assign value for $SubscriptionId.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 1 Unassigned_Variable Search-AzDataProtectionBackupVaultInAzGraph -Vault $VaultName is a null-valued parameter value. -Vault Assign value for $VaultName.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 2 Unassigned_Variable Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $subscriptionId is a null-valued parameter value. -Subscription Assign value for $subscriptionId.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 2 Unassigned_Variable Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroup $resourceGroupName is a null-valued parameter value. -ResourceGroup Assign value for $resourceGroupName.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 2 Unassigned_Variable Search-AzDataProtectionBackupInstanceInAzGraph -Vault $vaultName is a null-valued parameter value. -Vault Assign value for $vaultName.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 3 Mismatched_Parameter_Value_Type Get-AzDataProtectionRecoveryPoint -BackupInstanceName $instance.Name is not an expected parameter value type. -BackupInstanceName Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 6 3 Unassigned_Variable Get-AzDataProtectionRecoveryPoint -ResourceGroupName $resourceGroupName is a null-valued parameter value. -ResourceGroupName Assign value for $resourceGroupName.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 3 Unassigned_Variable Get-AzDataProtectionRecoveryPoint -VaultName $vaultName is a null-valued parameter value. -VaultName Assign value for $vaultName.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 3 Unassigned_Variable Get-AzDataProtectionRecoveryPoint -SubscriptionId $subscriptionId is a null-valued parameter value. -SubscriptionId Assign value for $subscriptionId.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 6 Mismatched_Parameter_Value_Type Initialize-AzDataProtectionRestoreRequest -RestoreLocation $vault.ReplicatedRegion[0] is not an expected parameter value type. -RestoreLocation Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 6 6 Mismatched_Parameter_Value_Type Initialize-AzDataProtectionRestoreRequest -RecoveryPoint $recoveryPointsCrr[0].Property.RecoveryPointId is not an expected parameter value type. -RecoveryPoint Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 7 14 Mismatched_Parameter_Value_Type Initialize-AzDataProtectionRestoreRequest -RecoveryPoint $rp[0].Property.RecoveryPointId is not an expected parameter value type. -RecoveryPoint Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 8 8 Mismatched_Parameter_Value_Type Initialize-AzDataProtectionRestoreRequest -ContainersList $backedUpContainers[0,1] is not an expected parameter value type. -ContainersList Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 9 5 Mismatched_Parameter_Value_Type Initialize-AzDataProtectionRestoreRequest -RecoveryPoint $rp[0].Property.RecoveryPointId is not an expected parameter value type. -RecoveryPoint Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️Windows PowerShell - Windows
Type Cmdlet Example Line RuleName Description Extent Remediation
⚠️ Initialize-AzDataProtectionRestoreRequest 2 4 Mismatched_Parameter_Value_Type Find-AzDataProtectionRestorableTimeRange -BackupInstanceName $instance[0].BackupInstanceName is not an expected parameter value type. -BackupInstanceName Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 2 5 Unassigned_Variable Initialize-AzDataProtectionRestoreRequest -RestoreLocation $vault.Location is a null-valued parameter value. -RestoreLocation Assign value for $vault.Location.
⚠️ Initialize-AzDataProtectionRestoreRequest 2 5 Mismatched_Parameter_Value_Type Get-Date -Date $pointInTimeRange.RestorableTimeRange.EndTime is not an expected parameter value type. -Date Use correct parameter value type. Expected Type is datetime. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 3 4 Mismatched_Parameter_Value_Type Find-AzDataProtectionRestorableTimeRange -BackupInstanceName $instance[0].BackupInstanceName is not an expected parameter value type. -BackupInstanceName Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 3 5 Unassigned_Variable Initialize-AzDataProtectionRestoreRequest -RestoreLocation $vault.Location is a null-valued parameter value. -RestoreLocation Assign value for $vault.Location.
⚠️ Initialize-AzDataProtectionRestoreRequest 3 5 Unassigned_Variable Initialize-AzDataProtectionRestoreRequest -BackupInstance $instances[0] is a null-valued parameter value. -BackupInstance Assign value for $instances[0].
⚠️ Initialize-AzDataProtectionRestoreRequest 4 4 Mismatched_Parameter_Value_Type Find-AzDataProtectionRestorableTimeRange -BackupInstanceName $instance[0].BackupInstanceName is not an expected parameter value type. -BackupInstanceName Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 4 5 Unassigned_Variable Initialize-AzDataProtectionRestoreRequest -RestoreLocation $vault.Location is a null-valued parameter value. -RestoreLocation Assign value for $vault.Location.
⚠️ Initialize-AzDataProtectionRestoreRequest 4 5 Unassigned_Variable Initialize-AzDataProtectionRestoreRequest -BackupInstance $instances[0] is a null-valued parameter value. -BackupInstance Assign value for $instances[0].
⚠️ Initialize-AzDataProtectionRestoreRequest 5 1 Unassigned_Variable Search-AzDataProtectionBackupVaultInAzGraph -ResourceGroup $ResourceGroupName is a null-valued parameter value. -ResourceGroup Assign value for $ResourceGroupName.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 1 Unassigned_Variable Search-AzDataProtectionBackupVaultInAzGraph -Subscription $SubscriptionId is a null-valued parameter value. -Subscription Assign value for $SubscriptionId.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 1 Unassigned_Variable Search-AzDataProtectionBackupVaultInAzGraph -Vault $VaultName is a null-valued parameter value. -Vault Assign value for $VaultName.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 2 Unassigned_Variable Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $subscriptionId is a null-valued parameter value. -Subscription Assign value for $subscriptionId.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 2 Unassigned_Variable Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroup $resourceGroupName is a null-valued parameter value. -ResourceGroup Assign value for $resourceGroupName.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 2 Unassigned_Variable Search-AzDataProtectionBackupInstanceInAzGraph -Vault $vaultName is a null-valued parameter value. -Vault Assign value for $vaultName.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 3 Mismatched_Parameter_Value_Type Get-AzDataProtectionRecoveryPoint -BackupInstanceName $instance.Name is not an expected parameter value type. -BackupInstanceName Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 5 3 Unassigned_Variable Get-AzDataProtectionRecoveryPoint -ResourceGroupName $resourceGroupName is a null-valued parameter value. -ResourceGroupName Assign value for $resourceGroupName.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 3 Unassigned_Variable Get-AzDataProtectionRecoveryPoint -VaultName $vaultName is a null-valued parameter value. -VaultName Assign value for $vaultName.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 3 Unassigned_Variable Get-AzDataProtectionRecoveryPoint -SubscriptionId $subscriptionId is a null-valued parameter value. -SubscriptionId Assign value for $subscriptionId.
⚠️ Initialize-AzDataProtectionRestoreRequest 5 6 Mismatched_Parameter_Value_Type Initialize-AzDataProtectionRestoreRequest -RestoreLocation $vault.ReplicatedRegion[0] is not an expected parameter value type. -RestoreLocation Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 5 6 Mismatched_Parameter_Value_Type Initialize-AzDataProtectionRestoreRequest -RecoveryPoint $recoveryPointsCrr[0].Property.RecoveryPointId is not an expected parameter value type. -RecoveryPoint Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 6 1 Unassigned_Variable Search-AzDataProtectionBackupVaultInAzGraph -ResourceGroup $ResourceGroupName is a null-valued parameter value. -ResourceGroup Assign value for $ResourceGroupName.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 1 Unassigned_Variable Search-AzDataProtectionBackupVaultInAzGraph -Subscription $SubscriptionId is a null-valued parameter value. -Subscription Assign value for $SubscriptionId.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 1 Unassigned_Variable Search-AzDataProtectionBackupVaultInAzGraph -Vault $VaultName is a null-valued parameter value. -Vault Assign value for $VaultName.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 2 Unassigned_Variable Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $subscriptionId is a null-valued parameter value. -Subscription Assign value for $subscriptionId.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 2 Unassigned_Variable Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroup $resourceGroupName is a null-valued parameter value. -ResourceGroup Assign value for $resourceGroupName.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 2 Unassigned_Variable Search-AzDataProtectionBackupInstanceInAzGraph -Vault $vaultName is a null-valued parameter value. -Vault Assign value for $vaultName.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 3 Mismatched_Parameter_Value_Type Get-AzDataProtectionRecoveryPoint -BackupInstanceName $instance.Name is not an expected parameter value type. -BackupInstanceName Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 6 3 Unassigned_Variable Get-AzDataProtectionRecoveryPoint -ResourceGroupName $resourceGroupName is a null-valued parameter value. -ResourceGroupName Assign value for $resourceGroupName.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 3 Unassigned_Variable Get-AzDataProtectionRecoveryPoint -VaultName $vaultName is a null-valued parameter value. -VaultName Assign value for $vaultName.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 3 Unassigned_Variable Get-AzDataProtectionRecoveryPoint -SubscriptionId $subscriptionId is a null-valued parameter value. -SubscriptionId Assign value for $subscriptionId.
⚠️ Initialize-AzDataProtectionRestoreRequest 6 6 Mismatched_Parameter_Value_Type Initialize-AzDataProtectionRestoreRequest -RestoreLocation $vault.ReplicatedRegion[0] is not an expected parameter value type. -RestoreLocation Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 6 6 Mismatched_Parameter_Value_Type Initialize-AzDataProtectionRestoreRequest -RecoveryPoint $recoveryPointsCrr[0].Property.RecoveryPointId is not an expected parameter value type. -RecoveryPoint Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 7 14 Mismatched_Parameter_Value_Type Initialize-AzDataProtectionRestoreRequest -RecoveryPoint $rp[0].Property.RecoveryPointId is not an expected parameter value type. -RecoveryPoint Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 8 8 Mismatched_Parameter_Value_Type Initialize-AzDataProtectionRestoreRequest -ContainersList $backedUpContainers[0,1] is not an expected parameter value type. -ContainersList Use correct parameter value type. Expected Type is string. Now the type is .(Command).
⚠️ Initialize-AzDataProtectionRestoreRequest 9 5 Mismatched_Parameter_Value_Type Initialize-AzDataProtectionRestoreRequest -RecoveryPoint $rp[0].Property.RecoveryPointId is not an expected parameter value type. -RecoveryPoint Use correct parameter value type. Expected Type is string. Now the type is .(Command).
️✔️Help File Existence Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️File Change Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️UX Metadata Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️PowerShell Core - Linux
️✔️PowerShell Core - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows

Description

Adds Azure Cosmos DB item-level restore (whole databases or individual database/container pairs) to the existing Az.DataProtection restore cmdlets. It follows the same pattern as Azure Elastic SAN. There are no new cmdlets, parameters, or API version.

  • New-AzDataProtectionRestoreConfigurationClientObject accepts -DatasourceType AzureCosmosDB with -ResourceIdentifier (database names or database/container names). It returns a GenericRestoreDatasourceCriteria with a ResourceListSelectionCriteria. -ResourceIdentifier is required, and parameters of other datasource types are rejected. As for Elastic SAN, the service validates the selected names.
  • Initialize-AzDataProtectionRestoreRequest requires a Cosmos DB -RestoreConfiguration for an AzureCosmosDB item-level restore and adds it to the request's restore criteria. For Cosmos DB it rejects -ContainersList/-PrefixMatch and an explicit $null -UseSystemAssignedIdentity, and it rejects a -RestoreConfiguration without -ItemLevelRecovery instead of silently doing a full restore. A typed list is used because Windows PowerShell 5.1 cannot assign an object array to the typed criteria property.
  • AzureCosmosDB.json manifest: item-level recovery is enabled. Cosmos DB restore is still alternate-location only (unchanged).
  • Spelling: the manifest key itemLevelRecoveyEnabled is renamed to itemLevelRecoveryEnabled in all nine datasource manifests and in the one place that reads it (RestoreHelpers.ps1). The values are unchanged, so every datasource type allows or rejects item-level recovery exactly as before.
  • Fix: Initialize-AzDataProtectionRestoreRequest failed for every datasource type when -UseSystemAssignedIdentity or -UserAssignedIdentityArmId was specified. It assigned the internal IdentityDetail property; it now sets the public IdentityDetailUseSystemAssignedIdentity and IdentityDetailUserAssignedIdentityArmUrl properties.
  • Updated examples, help, and ChangeLog.

Other datasource types (AKS, Elastic SAN, Blob, ADLS, Disk, PostgreSQL, MySQL, and others) take the same code paths as before.

Testing

  • CosmosRestoreConfiguration.Tests.ps1, recorded with test-module.ps1 -Record against a real subscription in eastus2euap. The resources are in the new TestCosmosDBItemLevelRestore entry in utils.ps1 and env.json.
    • Service tests: restore validation for a container, a database and a mixed selection with the system-assigned identity, and for a container selection with a user-assigned identity. Then an item-level restore of container db1/col1 and database db2 is submitted and its job polled until it completes.
    • Client-side tests: configuration and request construction, missing or foreign parameters, missing or invalid -RestoreConfiguration, rejected -ContainersList/-PrefixMatch, a configuration without -ItemLevelRecovery, and system-, user-assigned and null identity. Serialized identityDetails are checked for a Cosmos DB item-level request with a user-assigned identity, and for a non-Cosmos (AzureDisk) request with system- and user-assigned identities.
  • Full module playback on PowerShell 7: no failures, an unchanged skip count, and unchanged existing recordings. The Cosmos DB and Elastic SAN restore tests also pass on Windows PowerShell 5.1.

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

Copilot AI balanced review requested due to automatic review settings October 15, 2026 12:56
@azure-pipelines

Copy link
Copy Markdown
Contributor
Azure Pipelines:
Successfully started running 2 pipeline(s).
There may be pipelines that require an authorized user to comment /azp run to run.

@microsoft-github-policy-service

Copy link
Copy Markdown
Contributor

Thank you for your contribution Shashank Singh (@Shashank1306s)! We will review the pull request and get back to you soon.

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

Bound-null identity handling produces invalid requests, and incorrect paths prevent clean-checkout offline validation.

3 open findings
What changed in this PR

Adds Cosmos DB database/container recovery through existing Az.DataProtection cmdlets, without new public parameters or an API-version change.

Changes:

  • Adds literal selector validation and item-level restore construction.
  • Corrects restore identity handling and permission previews.
  • Adds regression tests, opt-in validation tooling, and synchronized documentation.
File Description
tools/​Test/​Invoke-CosmosRestoreUnitTests.ps1 Runs offline regression suites.
tools/​Test/​Invoke-CosmosRestoreNegativeTests.ps1 Adds opt-in negative validation.
src/​DataProtection/​DataProtection/​help/​Start-AzDataProtectionBackupInstanceRestore.md Documents validation and submission.
src/​DataProtection/​DataProtection/​help/​New-AzDataProtectionRestoreConfigurationClientObject.md Documents selector configuration.
src/​DataProtection/​DataProtection/​help/​Initialize-AzDataProtectionRestoreRequest.md Documents restore and identity options.
src/​DataProtection/​DataProtection/​ChangeLog.md Records recovery and identity changes.
src/​DataProtection/​DataProtection.Autorest/​test/​CosmosRestoreTransport.Tests.ps1 Tests native request serialization.
src/​DataProtection/​DataProtection.Autorest/​test/​CosmosRestoreSharedIdentity.Tests.ps1 Tests cross-workload identity behavior.
src/​DataProtection/​DataProtection.Autorest/​test/​CosmosRestoreRegression.Tests.ps1 Tests serialization and workload compatibility.
src/​DataProtection/​DataProtection.Autorest/​test/​CosmosRestorePermission.Tests.ps1 Tests identity lookup and permission safety.
src/​DataProtection/​DataProtection.Autorest/​test/​CosmosRestoreConfiguration.Tests.ps1 Tests selectors and request validation.
src/​DataProtection/​DataProtection.Autorest/​examples/​Start-AzDataProtectionBackupInstanceRestore.md Adds restore submission example.
src/​DataProtection/​DataProtection.Autorest/​examples/​New-AzDataProtectionRestoreConfigurationClientObject.md Adds selection examples.
src/​DataProtection/​DataProtection.Autorest/​examples/​Initialize-AzDataProtectionRestoreRequest.md Adds identity-specific restore examples.
src/​DataProtection/​DataProtection.Autorest/​docs/​Start-AzDataProtectionBackupInstanceRestore.md Synchronizes submission documentation.
src/​DataProtection/​DataProtection.Autorest/​docs/​New-AzDataProtectionRestoreConfigurationClientObject.md Synchronizes selector documentation.
src/​DataProtection/​DataProtection.Autorest/​docs/​Initialize-AzDataProtectionRestoreRequest.md Synchronizes initialization documentation.
src/​DataProtection/​DataProtection.Autorest/​custom/​manifests/​AzureCosmosDB.json Enables item-level recovery.
src/​DataProtection/​DataProtection.Autorest/​custom/​Helpers/​RestoreHelpers.ps1 Validates literal resource selections.
src/​DataProtection/​DataProtection.Autorest/​custom/​Cmdlets/​Platform/​Vault/​Set-AzDataProtectionMSIPermission.ps1 Fixes identity lookup and WhatIf handling.
src/​DataProtection/​DataProtection.Autorest/​custom/​Cmdlets/​Platform/​Restore/​New-AzDataProtectionRestoreConfigurationClientObject.ps1 Constructs Cosmos selection criteria.
src/​DataProtection/​DataProtection.Autorest/​custom/​Cmdlets/​Platform/​Restore/​Initialize-AzDataProtectionRestoreRequest.ps1 Adds Cosmos routing and typed criteria.
generated/​DataProtection/​DataProtection.Autorest/​exports/​Start-AzDataProtectionBackupInstanceRestore.ps1 Updates example comments only.
generated/​DataProtection/​DataProtection.Autorest/​exports/​ProxyCmdletDefinitions.ps1 Synchronizes help comments only.
generated/​DataProtection/​DataProtection.Autorest/​exports/​New-AzDataProtectionRestoreConfigurationClientObject.ps1 Updates selector help comments only.
generated/​DataProtection/​DataProtection.Autorest/​exports/​Initialize-AzDataProtectionRestoreRequest.ps1 Updates initialization help comments only.
documentation/​development-docs/​cosmos-db-item-level-recovery/​TEST_RESULTS.md Records evidence and validation limitations.
documentation/​development-docs/​cosmos-db-item-level-recovery/​README.md Explains recovery and testing workflows.

🧠 Review effort: Balanced


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

Comment thread src/DataProtection/DataProtection.Autorest/test/CosmosRestoreTransport.Tests.ps1 Outdated
Comment thread tools/Test/Invoke-CosmosRestoreUnitTests.ps1 Outdated
Copilot AI balanced review requested due to automatic review settings October 15, 2026 13:07

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

Cross-workload restore and identity changes need human review while repository validation gates remain incomplete.

3 open findings
Previously missed (1)

In code that hasn't changed since last review

Low severity Stop execution when validation returns an error

documentation/​development-docs/​cosmos-db-item-level-recovery/​README.md:119

The validation call lacks -ErrorAction Stop. With PowerShell's default error handling, a nonterminating validation error lets a script continue to the restore submission below. Add -ErrorAction Stop, as in the updated cmdlet examples, so failed validation stops the script before submission.

🧠 Review effort: Balanced

@Shashank1306s

Shashank Singh (Shashank1306s) commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor Author

Removed the redundant Cosmos unit-runner wrapper; all six existing-directory Pester suites and executable assertions are retained. Documented standard Invoke-Pester execution was rerun successfully: 849 PowerShell 7 and 817 Windows PowerShell 5.1 cases, zero failures/skips. Added a separate command-level test-matrix README covering the actual native policy/permission/BI/backup workflow, seven data-verified restore combinations, service-validation gaps, local regressions, and explicit coverage limits: https://github.com/Shashank1306s/azure-powershell/blob/users/shasha/dataprotection-updates/documentation/development-docs/cosmos-db-item-level-recovery/test-matrix/README.md . No new Azure operations were run for this update.

Copilot AI balanced review requested due to automatic review settings October 15, 2026 13:47

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

Two new test suites resolve incorrect artifact paths under standard CI discovery and fail during setup.

4 open findings
1 resolved since last review

🧠 Review effort: Balanced

Comment thread src/DataProtection/DataProtection.Autorest/test/CosmosRestoreTransport.Tests.ps1 Outdated
Copilot AI balanced review requested due to automatic review settings October 15, 2026 18:45

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

Shared restore and identity changes require human review while current-commit cross-platform CI remains unconfirmed and broader Windows PowerShell playback reports failures.

0 open findings

4 resolved since last review

🧠 Review effort: Balanced

@Shashank1306s

Copy link
Copy Markdown
Contributor Author

CI failure analysis and fixes

The four failed test tasks in the original PowerShell Core / windows-powershell pipelines each reported 790 passed / 41 failed / 241 skipped. Compilation and analysis jobs succeeded; the parent pipeline statuses were red because the test stage failed.

Fixed in cce8f88:

  • Resolve checkout/source/generated/artifact paths independently of test directory depth, so copied artifact tests can run under standard CI discovery. Source freshness checks still compare actual canonical source against artifacts.
  • Read the export contract from the tracked generated manifest, not an ignored source-generation manifest.
  • Make permission tests independent of installed Az.Resources: supply a temporary throwing qualified boundary only when absent, then mock it and remove only that temporary module. No role assertion or WhatIf check was weakened.
  • Reject explicitly bound null Cosmos UseSystemAssignedIdentity before the generated setter can coerce it to false; cover both full/ILR and preserve non-Cosmos behavior.

Verification:

Run Result
Tracked DataProtection build 0 warnings / 0 errors
Six suites, CI artifact layout, no installed Resources, PowerShell 7 864 passed, zero failures/skips
Same six artifact suites, actual Windows PowerShell 5.1 832 passed, zero failures/skips
Independent tracked-input sandbox, no source-generation cache, both source and artifact selection 864 passed in each Core run
Complete unmodified generated artifact test-module.ps1 -Playback, Core 928 passed / 0 failed / 241 existing skips

No existing assertion was removed and no six-suite skip was added. A separate broader actual-Desktop run is not green (886 passed / 10 failed / 241 skipped) and is recorded as such; it is not the runtime used by these four CI test jobs. The incorrectly initialized legacy baseline diagnostic is excluded from acceptance evidence.

Updated the standard reproduction instructions and results. Remote Linux/macOS/Windows checks must rerun on the fix commit; the PR remains draft pending those checks and review.

Copilot AI balanced review requested due to automatic review settings October 15, 2026 18:55

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

Shared restore and identity changes need human sign-off while current-commit cross-platform CI and broader validation remain unresolved.

0 open findings

4 resolved since last review

🧠 Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings October 16, 2026 05:47
@Shashank1306s

Copy link
Copy Markdown
Contributor Author

Pushed 4c282a5 for the remaining Linux/macOS failure. Both Unix jobs had the same freshness-guard error: LF checkout JSON versus CRLF Windows build artifacts. Only CRLF/LF is normalized; 12 new cases still reject real content, case, whitespace, bare-CR and final-newline changes. Exact original failure reproduced under Linux before the fix; all six suites now pass: 876 on Linux, 876 on Windows Core, 844 on actual Windows PowerShell 5.1, zero failures/skips. No production code changed and no live tests/resource operations were run for this correction. The additional complete local Linux playback is still progressing and is not counted as passing. Fresh remote checks must confirm the new commit; security-tools remains a separate pending check.

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

Shared restore and identity changes need human review, with an unresolved permission-preview issue and current-commit cross-platform validation pending.

0 open findings

Previously missed (1)

In code that hasn't changed since last review

Medium severity Show actual role assignment scope in confirmation and WhatIf preview

src/​DataProtection/​DataProtection.Autorest/​custom/​Cmdlets/​Platform/​Vault/​Set-AzDataProtectionMSIPermission.ps1:281

With -PermissionsScope ResourceGroup or Subscription, this new confirmation/WhatIf preview names only the datasource, but AssignMissingRoles grants the role across the resource group or subscription (custom/Helpers/BackupcenterHelper.ps1:297-306). Users therefore see a narrower target than the change they authorize. Select the ShouldProcess target from PermissionsScope so the preview shows the actual assignment scope.

🧠 Review effort: Balanced

@x-engineering-agent x-engineering-agent Bot removed the Request X Engineering Agent Ask the agent to triage this issue or review this PR label Oct 22, 2026
…iguration help

Renames itemLevelRecoveyEnabled to itemLevelRecoveryEnabled in all datasource manifests and in its only reader. Values are unchanged, so item-level recovery support per datasource type is unchanged. Updates the -RestoreConfiguration help text to list the supported datasource types.
Copilot AI balanced review requested due to automatic review settings October 22, 2026 11:10

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.

🟢 Approval recommended

No unresolved blocking issues remain in the restore logic, model integration, manifest migration, or test coverage; tests were not independently rerun.

2 open issues
1 resolved since last review

Review effort: Balanced

…on tests

Documents that -RestoreConfiguration is required with -ItemLevelRecovery for AzureCosmosDB item level restore and that -ResourceIdentifier is required for AzureElasticSAN and AzureCosmosDB. Adds serialization tests for a Cosmos DB item-level request with a user-assigned identity and for a non-Cosmos request with system- and user-assigned identities.
Copilot AI balanced review requested due to automatic review settings October 22, 2026 11:25

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.

🟢 Approval recommended

The changes follow the existing restore model, include focused regression and playback coverage, and have no unresolved blocking findings.

No open issues 🎉

3 resolved since last review

Review effort: Balanced

@a0x1ab

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

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

Bases the Cosmos restore tests on real resources from the new TestCosmosDBItemLevelRestore test environment entry and adds recorded service tests: restore validation for container, database and mixed selections with the system-assigned identity, validation with a user-assigned identity, and an item-level restore polled until the job completes. CosmosRestoreConfiguration.Recording.json was produced by test-module.ps1 -Record. Removes the custom CosmosRecordedService suite that these tests replace.
Copilot AI balanced review requested due to automatic review settings October 23, 2026 07:56
@a0x1ab

Copy link
Copy Markdown
Member

/azp run

@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.

🟢 Approval recommended

The implementation matches the stated scope, with relevant regression coverage and no unresolved blocking findings.

No open issues 🎉

Review effort: Balanced

@Shashank1306s

Copy link
Copy Markdown
Contributor Author

Hi NoriZC, Aditya Pujara (@a0x1ab) , please help merge this PR at the earliest, I've addressed the comments and have tested the commands e2e. We want this to be released in the current milestone (whose cutoff date is 27the oct). Please let me know if anything is needed

@NoriZC
NoriZC merged commit fd383f2 into Azure:main Oct 26, 2026
13 checks passed
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.

5 participants