Skip to content

[Resources] Amend what-if noise notice to point to Deployment Stacks - #30077

Open
Torrey Trahanovsky (torreymicrosoft) wants to merge 1 commit into
Azure:mainfrom
torreymicrosoft:torreyt/whatif-notice-amend-existing
Open

[Resources] Amend what-if noise notice to point to Deployment Stacks#30077
Torrey Trahanovsky (torreymicrosoft) wants to merge 1 commit into
Azure:mainfrom
torreymicrosoft:torreyt/whatif-notice-amend-existing

Conversation

@torreymicrosoft

@torreymicrosoft Torrey Trahanovsky (torreymicrosoft) commented Aug 27, 2026

Copy link
Copy Markdown
Member

🤖 PR Validation — ⚠️ Review suggested

Tests
⚠️ 44/44
️✔️Az.Accounts
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.Blueprint
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
⚠️PowerShell Core - Linux
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 23.08 % Test coverage for the module cannot be lower than 50%.
⚠️PowerShell Core - MacOS
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 23.08% Test coverage for the module cannot be lower than 50%.
⚠️PowerShell Core - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 23.08% Test coverage for the module cannot be lower than 50%.
⚠️Windows PowerShell - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 23.08% Test coverage for the module cannot be lower than 50%.
⚠️Az.CosmosDB
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
⚠️PowerShell Core - Linux
Type Title Current Coverage Last Coverage Description
⚠️ Test Coverage Less Than 80% 72.49 % 85.63% Test coverage cannot be lower than the number of the last release.
⚠️PowerShell Core - MacOS
Type Title Current Coverage Last Coverage Description
⚠️ Test Coverage Less Than 80% 72.49% 85.63% Test coverage cannot be lower than the number of the last release.
⚠️PowerShell Core - Windows
Type Title Current Coverage Last Coverage Description
⚠️ Test Coverage Less Than 80% 72.49% 85.63% Test coverage cannot be lower than the number of the last release.
⚠️Windows PowerShell - Windows
Type Title Current Coverage Last Coverage Description
⚠️ Test Coverage Less Than 80% 72.49% 85.63% Test coverage cannot be lower than the number of the last release.
️✔️Az.KeyVault
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.MachineLearning
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
⚠️PowerShell Core - Linux
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 0.00 % Test coverage for the module cannot be lower than 50%.
⚠️PowerShell Core - MacOS
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 0.00% Test coverage for the module cannot be lower than 50%.
⚠️PowerShell Core - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 0.00% Test coverage for the module cannot be lower than 50%.
⚠️Windows PowerShell - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 0.00% Test coverage for the module cannot be lower than 50%.
️✔️Az.ManagedServiceIdentity
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.Monitor
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.Network
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.Resources
️✔️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
⚠️ Get-AzADGroupOwner Get-AzADGroupOwner 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-AzADGroupOwner Get-AzADGroupOwner 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-AzADServicePrincipalAppRoleAssignment Get-AzADServicePrincipalAppRoleAssignment 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-AzADServicePrincipalAppRoleAssignment Get-AzADServicePrincipalAppRoleAssignment 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-AzDataBoundaryScope Get-AzDataBoundaryScope 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-AzDataBoundaryScope Get-AzDataBoundaryScope 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-AzDataBoundaryTenant Get-AzDataBoundaryTenant 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-AzDataBoundaryTenant Get-AzDataBoundaryTenant 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-AzPolicyAssignment Get-AzPolicyAssignment 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-AzPolicyAssignment Get-AzPolicyAssignment 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-AzPolicyDefinition Get-AzPolicyDefinition 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-AzPolicyDefinition Get-AzPolicyDefinition 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-AzPolicyEnrollment Get-AzPolicyEnrollment 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-AzPolicyEnrollment Get-AzPolicyEnrollment 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-AzPolicyExemption Get-AzPolicyExemption 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-AzPolicyExemption Get-AzPolicyExemption 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-AzPolicySetDefinition Get-AzPolicySetDefinition 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-AzPolicySetDefinition Get-AzPolicySetDefinition 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-AzPolicyEnrollment New-AzPolicyEnrollment 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
⚠️ New-AzPolicyEnrollment New-AzPolicyEnrollment 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.
⚠️ Update-AzPolicyEnrollment Update-AzPolicyEnrollment 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
⚠️ Update-AzPolicyEnrollment Update-AzPolicyEnrollment 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
⚠️ Get-AzADGroupOwner Get-AzADGroupOwner 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-AzADGroupOwner Get-AzADGroupOwner 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-AzADServicePrincipalAppRoleAssignment Get-AzADServicePrincipalAppRoleAssignment 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-AzADServicePrincipalAppRoleAssignment Get-AzADServicePrincipalAppRoleAssignment 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-AzDataBoundaryScope Get-AzDataBoundaryScope 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-AzDataBoundaryScope Get-AzDataBoundaryScope 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-AzDataBoundaryTenant Get-AzDataBoundaryTenant 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-AzDataBoundaryTenant Get-AzDataBoundaryTenant 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-AzPolicyAssignment Get-AzPolicyAssignment 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-AzPolicyAssignment Get-AzPolicyAssignment 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-AzPolicyDefinition Get-AzPolicyDefinition 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-AzPolicyDefinition Get-AzPolicyDefinition 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-AzPolicyEnrollment Get-AzPolicyEnrollment 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-AzPolicyEnrollment Get-AzPolicyEnrollment 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-AzPolicyExemption Get-AzPolicyExemption 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-AzPolicyExemption Get-AzPolicyExemption 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-AzPolicySetDefinition Get-AzPolicySetDefinition 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-AzPolicySetDefinition Get-AzPolicySetDefinition 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-AzPolicyEnrollment New-AzPolicyEnrollment 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
⚠️ New-AzPolicyEnrollment New-AzPolicyEnrollment 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.
⚠️ Update-AzPolicyEnrollment Update-AzPolicyEnrollment 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
⚠️ Update-AzPolicyEnrollment Update-AzPolicyEnrollment 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 File Existence Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️File Change Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️UX Metadata Check
⚠️PowerShell Core - Windows
Type Module ResourceType SubResourceType Command Description
⚠️ Az.Resources Microsoft.Resources subscriptionsResourcegroups Get-AzResourceGroup The path /subscriptions/{subscriptionId}/resourceGroups/{name} doesn't contains the right resource tpye: Microsoft.Resources
⚠️ Az.Resources Microsoft.Resources subscriptionsResourcegroups Remove-AzResourceGroup The path /subscriptions/{subscriptionId}/resourceGroups/{name} doesn't contains the right resource tpye: Microsoft.Resources
⚠️Windows PowerShell - Windows
Type Module ResourceType SubResourceType Command Description
⚠️ Az.Resources Microsoft.Resources subscriptionsResourcegroups Get-AzResourceGroup The path /subscriptions/{subscriptionId}/resourceGroups/{name} doesn't contains the right resource tpye: Microsoft.Resources
⚠️ Az.Resources Microsoft.Resources subscriptionsResourcegroups Remove-AzResourceGroup The path /subscriptions/{subscriptionId}/resourceGroups/{name} doesn't contains the right resource tpye: Microsoft.Resources
️✔️Test
️✔️PowerShell Core - Linux
️✔️PowerShell Core - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows

Description

Replaces #30048, which is now closed. This PR is branched from current main and implements Alex Frankel (@alex-frankel)'s review feedback from that PR.

Review feedback being addressed

Alex Frankel (@alex-frankel), reviewing Resources.resx on #30048:

This reads a bit too much like an ad..

Can we only amend what is there:

Note: The result may contain false positive predictions (noise). For what-if with noise reduction, consider Deployment Stacks (https://aka.ms/stackswhatifGA)

What changed as a result:

  • Dropped the separate NOTICE! - Want to get What-if without noise? Move to ... line, which was the part that read like an ad.
  • Amended the existing Note: sentence in place instead of appending a new line, exactly as requested.
  • Removed the https://aka.ms/WhatIfIssues issue-filing line, so the notice is a single sentence with one next step.
  • Adopted the proposed wording verbatim, including the parenthesized bare URL and lowercase what-if.

Also addresses the automated review note on #30048 that the changelog entry itself still embedded the aka.ms/WhatIfIssues URL — the entry has been reworded so no URL remains.

Affected output: New-AzDeploymentWhatIf / New-AzResourceGroupDeploymentWhatIf and the equivalent subscription, management group, and tenant cmdlets, plus the what-if preview rendered by the deployment create cmdlets.

Before (current main)

Note: The result may contain false positive predictions (noise).
You can help us improve the accuracy of the result by opening an issue here: https://aka.ms/WhatIfIssues.
NOTICE! - Want to get What-if without noise? Move to Deployment Stacks What-If https://aka.ms/stackswhatifGA

After

Note: The result may contain false positive predictions (noise). For what-if with noise reduction, consider Deployment Stacks (https://aka.ms/stackswhatifGA)

Changes

  • src/Resources/ResourceManager/Properties/Resources.resx — updated the WhatIfNoiseNotice value to the single amended sentence.
  • src/Resources/ResourceManager/Properties/Resources.Designer.cs — kept the generated doc comment in sync with the .resx. Comment only; the accessor is unchanged.
  • src/Resources/Resources/ChangeLog.md — reworded the existing unreleased entry to describe the final behavior, with no embedded URL.

Scope / risk

  • WhatIfNoiseNotice is consumed only by WhatIfOperationResultFormatter.FormatNoiseNotice(), which formats PSWhatIfOperationResult for template deployment what-if.
  • Deployment stacks what-if returns PSDeploymentStackWhatIfResult and is formatted separately, so it is not touched.
  • https://aka.ms/WhatIfIssues now has no remaining references under src/.
  • Tests in src/Resources/Resources.Test/Formatters/WhatIfOperationResultFormatterTests.cs assert with Assert.Contains / Assert.EndsWith against legend, change, stats, and diagnostic content. None include the noise notice, and the Assert.EndsWith case targets the trailing stats line while the notice is emitted at the top, so no test updates are required.
  • The final string is byte-identical to the one in the companion Azure CLI PR.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings August 27, 2026 17:17
@azure-pipelines

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

@torreymicrosoft

Copy link
Copy Markdown
Member Author

Alex Frankel (@alex-frankel) — this replaces the earlier PR you reviewed. Your feedback is implemented verbatim:

This reads a bit too much like an ad.. Can we only amend what is there:
Note: The result may contain false positive predictions (noise). For what-if with noise reduction, consider Deployment Stacks (https://aka.ms/stackswhatifGA)

The standalone NOTICE! - ... line is gone, the existing Note: sentence is amended in place, and the aka.ms/WhatIfIssues line is removed so there is a single next step. The resulting string is byte-identical across Azure CLI and Azure PowerShell.

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.

Pull request overview

Updates Az.Resources user-facing messaging around template deployment what-if “noise” to point users to Deployment Stacks as a noise-reduction option, while removing the prior issue-filing/“NOTICE” wording.

Changes:

  • Rewrites WhatIfNoiseNotice to a single, less promotional sentence that links to Deployment Stacks what-if.
  • Keeps the generated Resources.Designer.cs XML doc comment aligned with the updated .resx content.
  • Rewords the unreleased changelog entry to reflect the new notice behavior without embedding the removed issue-filing URL.

Reviewed changes

Copilot reviewed 2 out of 3 changed files in this pull request and generated no comments.

File Description
src/Resources/Resources/ChangeLog.md Updates the upcoming release note to describe the amended what-if noise notice and removal of the issue-filing line.
src/Resources/ResourceManager/Properties/Resources.resx Replaces the multi-line what-if noise notice with a single sentence pointing to Deployment Stacks.
src/Resources/ResourceManager/Properties/Resources.Designer.cs Updates the generated XML summary text for WhatIfNoiseNotice to match the new message.
Files not reviewed (1)
  • src/Resources/ResourceManager/Properties/Resources.Designer.cs: Generated file

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

@a0x1ab

Copy link
Copy Markdown
Member

/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