Skip to content

GeoIp Feature changes - #30197

Merged
Ethan Yang (necusjz) merged 1 commit into
Azure:release-network-2026-01-01from
kshitizmathur-max:kshmathur/GeoIPChanges_PS
Sep 25, 2026
Merged

Ethan Yang (necusjz) merged 1 commit into
Azure:release-network-2026-01-01from
kshitizmathur-max:kshmathur/GeoIPChanges_PS

Conversation

@kshitizmathur-max

@kshitizmathur-max kshitizmathur-max commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

🤖 PR Validation — ⚠️ Review suggested

Tests
⚠️ 150/150
️✔️Az.Accounts
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.ApplicationInsights
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.Batch
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
⚠️PowerShell Core - Linux
Type Title Current Coverage Last Coverage Description
⚠️ Test Coverage Less Than 80% 79.10 % 79.17% 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% 79.10% 79.17% 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% 79.10% 79.17% 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% 79.10% 79.17% Test coverage cannot be lower than the number of the last release.
️✔️Az.CognitiveServices
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️PowerShell Core - Linux
️✔️PowerShell Core - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.Compute
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️PowerShell Core - Linux
️✔️PowerShell Core - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.ContainerRegistry
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
⚠️PowerShell Core - Linux
Type Title Current Coverage Last Coverage Description
⚠️ Test Coverage Less Than 80% 75.00 % 80.00% 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% 75.00% 80.00% 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% 75.00% 80.00% 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% 75.00% 80.00% Test coverage cannot be lower than the number of the last release.
⚠️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.DataLakeStore
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
⚠️PowerShell Core - Linux
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 31.82 % Test coverage for the module cannot be lower than 50%.
⚠️PowerShell Core - MacOS
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 31.82% Test coverage for the module cannot be lower than 50%.
⚠️PowerShell Core - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 31.82% Test coverage for the module cannot be lower than 50%.
⚠️Windows PowerShell - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 31.82% Test coverage for the module cannot be lower than 50%.
️✔️Az.Dns
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️PowerShell Core - Linux
️✔️PowerShell Core - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.EventHub
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
⚠️PowerShell Core - Linux
Type Title Current Coverage Last Coverage Description
⚠️ Test Coverage Less Than 80% 75.47 % 87.76% 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% 75.47% 87.76% 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% 75.47% 87.76% 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% 75.47% 87.76% Test coverage cannot be lower than the number of the last release.
⚠️Az.KeyVault
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
⚠️PowerShell Core - Linux
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 25.56 % Test coverage for the module cannot be lower than 50%.
⚠️PowerShell Core - MacOS
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 25.56% Test coverage for the module cannot be lower than 50%.
⚠️PowerShell Core - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 25.56% Test coverage for the module cannot be lower than 50%.
⚠️Windows PowerShell - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 25.56% Test coverage for the module cannot be lower than 50%.
️✔️Az.Maintenance
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️PowerShell Core - Linux
️✔️PowerShell Core - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.ManagedServiceIdentity
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.Monitor
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️PowerShell Core - Linux
️✔️PowerShell Core - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.NetAppFiles
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
⚠️PowerShell Core - Linux
Type Title Current Coverage Last Coverage Description
⚠️ Test Coverage Less Than 80% 66.98 % 78.87% 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% 66.98% 78.87% 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% 66.98% 78.87% 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% 66.98% 78.87% Test coverage cannot be lower than the number of the last release.
⚠️Az.Network
️✔️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-AzNetworkSecurityPerimeter Get-AzNetworkSecurityPerimeter 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-AzNetworkSecurityPerimeter Get-AzNetworkSecurityPerimeter 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-AzNetworkSecurityPerimeterAccessRule Get-AzNetworkSecurityPerimeterAccessRule 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-AzNetworkSecurityPerimeterAccessRule Get-AzNetworkSecurityPerimeterAccessRule 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-AzNetworkSecurityPerimeterAssociableResourceType Get-AzNetworkSecurityPerimeterAssociableResourceType 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-AzNetworkSecurityPerimeterAssociableResourceType Get-AzNetworkSecurityPerimeterAssociableResourceType 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-AzNetworkSecurityPerimeterAssociation Get-AzNetworkSecurityPerimeterAssociation 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-AzNetworkSecurityPerimeterAssociation Get-AzNetworkSecurityPerimeterAssociation 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-AzNetworkSecurityPerimeterLink Get-AzNetworkSecurityPerimeterLink 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-AzNetworkSecurityPerimeterLink Get-AzNetworkSecurityPerimeterLink 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-AzNetworkSecurityPerimeterLinkReference Get-AzNetworkSecurityPerimeterLinkReference 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-AzNetworkSecurityPerimeterLinkReference Get-AzNetworkSecurityPerimeterLinkReference 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-AzNetworkSecurityPerimeterLoggingConfiguration Get-AzNetworkSecurityPerimeterLoggingConfiguration 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-AzNetworkSecurityPerimeterLoggingConfiguration Get-AzNetworkSecurityPerimeterLoggingConfiguration 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-AzNetworkSecurityPerimeterProfile Get-AzNetworkSecurityPerimeterProfile 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-AzNetworkSecurityPerimeterProfile Get-AzNetworkSecurityPerimeterProfile 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-AzNetworkSecurityPerimeterServiceTag Get-AzNetworkSecurityPerimeterServiceTag 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-AzNetworkSecurityPerimeterServiceTag Get-AzNetworkSecurityPerimeterServiceTag 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-AzNetworkSecurityPerimeter Get-AzNetworkSecurityPerimeter 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-AzNetworkSecurityPerimeter Get-AzNetworkSecurityPerimeter 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-AzNetworkSecurityPerimeterAccessRule Get-AzNetworkSecurityPerimeterAccessRule 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-AzNetworkSecurityPerimeterAccessRule Get-AzNetworkSecurityPerimeterAccessRule 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-AzNetworkSecurityPerimeterAssociableResourceType Get-AzNetworkSecurityPerimeterAssociableResourceType 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-AzNetworkSecurityPerimeterAssociableResourceType Get-AzNetworkSecurityPerimeterAssociableResourceType 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-AzNetworkSecurityPerimeterAssociation Get-AzNetworkSecurityPerimeterAssociation 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-AzNetworkSecurityPerimeterAssociation Get-AzNetworkSecurityPerimeterAssociation 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-AzNetworkSecurityPerimeterLink Get-AzNetworkSecurityPerimeterLink 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-AzNetworkSecurityPerimeterLink Get-AzNetworkSecurityPerimeterLink 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-AzNetworkSecurityPerimeterLinkReference Get-AzNetworkSecurityPerimeterLinkReference 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-AzNetworkSecurityPerimeterLinkReference Get-AzNetworkSecurityPerimeterLinkReference 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-AzNetworkSecurityPerimeterLoggingConfiguration Get-AzNetworkSecurityPerimeterLoggingConfiguration 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-AzNetworkSecurityPerimeterLoggingConfiguration Get-AzNetworkSecurityPerimeterLoggingConfiguration 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-AzNetworkSecurityPerimeterProfile Get-AzNetworkSecurityPerimeterProfile 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-AzNetworkSecurityPerimeterProfile Get-AzNetworkSecurityPerimeterProfile 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-AzNetworkSecurityPerimeterServiceTag Get-AzNetworkSecurityPerimeterServiceTag 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-AzNetworkSecurityPerimeterServiceTag Get-AzNetworkSecurityPerimeterServiceTag 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
️✔️Windows PowerShell - Windows
️✔️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
️✔️Az.OperationalInsights
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.PrivateDns
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️PowerShell Core - Linux
️✔️PowerShell Core - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.RecoveryServices
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️PowerShell Core - Linux
️✔️PowerShell Core - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.Resources
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.Search
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
⚠️PowerShell Core - Linux
Type Title Current Coverage Last Coverage Description
⚠️ Test Coverage Less Than 80% 70.00 % 82.35% 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% 70.00% 82.35% 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% 70.00% 82.35% 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% 70.00% 82.35% Test coverage cannot be lower than the number of the last release.
️✔️Az.Security
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️PowerShell Core - Linux
️✔️PowerShell Core - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.ServiceBus
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️PowerShell Core - Linux
️✔️PowerShell Core - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.SignalR
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
⚠️PowerShell Core - Linux
Type Title Current Coverage Last Coverage Description
⚠️ Test Coverage Less Than 80% 76.47 % 90.62% 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% 76.47% 90.62% 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% 76.47% 90.62% 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% 76.47% 90.62% Test coverage cannot be lower than the number of the last release.
️✔️Az.Sql
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️PowerShell Core - Linux
️✔️PowerShell Core - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.Storage
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.Websites
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️PowerShell Core - Linux
️✔️PowerShell Core - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows

Description

Adds support for the two new Geo IP filter properties on Azure Firewall Policy network rules, introduced in the 2026-01-01 Network API (firewallPolicy.json): sourceGeoLocations and destinationGeoLocations. These allow filtering network rule traffic by geographic location using ISO 3166-1 alpha-2 country codes (e.g. "US", "CA").

Changes

  • New-AzFirewallPolicyNetworkRule: Added two new optional parameters:
    • -SourceGeoLocation <String[]>
    • -DestinationGeoLocation <String[]>
  • Model (PSAzureFirewallPolicyNetworkRule): Added SourceGeoLocations / DestinationGeoLocations properties (with [JsonProperty] mappings and display-text getters) so the values serialize correctly to the SDK NetworkRule type.
  • Validation (aligned with NFVRP service-side rules):
    • Source types (SourceAddress, SourceIpGroup, SourceGeoLocation) are mutually exclusive.
    • Destination types (DestinationAddress, DestinationIpGroup, DestinationFqdn, DestinationGeoLocation) are mutually exclusive.
  • SDK: Regenerated Network SDK models from the 2026-01-01 spec (already contains the new properties).
  • Tests: Added unit tests for the exclusivity validation and a scenario test (Test-AzureFirewallPolicyCRUDWithNetworkRuleGeoLocations) in AzureFirewallPolicyTests.
  • Docs: Updated New-AzFirewallPolicyNetworkRule.md help and added a ChangeLog.md entry.

Notes

  • The corresponding service-side (NFVRP) validation for these fields is gated behind a feature flag (AzureFirewall_EnableGeoIpValidation). The scenario-test recording requires a subscription/region where this flag is enabled.
  • Unit tests validate the exclusivity logic locally without requiring the service feature flag.

Related API PR

https://github.com/Azure/azure-rest-api-specs-pr/pull/29936/changes#diff-2b9eb04c4f38c9aaa644b102e304e488ad4726bc9ae8a23a694a25452cfcc77a

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

@azure-pipelines

Copy link
Copy Markdown
Contributor
Azure Pipelines:
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 kshitizmathur-max! We will review the pull request and get back to you soon.

@a0x1ab

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

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

@tejasshah7

Copy link
Copy Markdown
Contributor

Looks good to me

@tejasshah7 tejasshah7 closed this Sep 24, 2026
@tejasshah7 tejasshah7 reopened this Sep 24, 2026
@tejasshah7
tejasshah7 requested review from tejasshah7 and a lite review from Copilot September 24, 2026 17:23
@tejasshah7
tejasshah7 removed their request for review September 24, 2026 17:24

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.

Copilot review overview

🟡 Changes recommended

Make SourceGeoLocation mandatory in its parameter set to prevent source-less syntax.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 Medium severity

Open (1)
What changed in this PR

Adds Geo IP source and destination filters to Azure Firewall Policy network rules.

Changes:

  • Added Geo Location model properties and cmdlet parameters.
  • Added mutual-exclusivity validation.
  • Added unit and scenario test coverage.
  • Updated help documentation and changelog.
File Summary
src/​Network/​Network/​Models/​AzureFirewallPolicy/​PSAzureFirewallPolicyNetworkRule.cs Adds Geo Location properties and display getters.
src/​Network/​Network/​help/​New-AzFirewallPolicyNetworkRule.md Documents the new parameters.
src/​Network/​Network/​ChangeLog.md Records the feature.
src/​Network/​Network/​AzureFirewallPolicy/​NetworkRuleCondition/​NewAzureFirewallPolicyNetworkRuleCommand.cs Adds parameters and validation.
src/​Network/​Network/​AzureFirewallPolicy/​AzureFirewallPolicyRuleSourceParameterSets.cs Adds the Geo Location source parameter set.
src/​Network/​Network.Test/​ScenarioTests/​AzureFirewallPolicyTests.ps1 Adds CRUD scenario coverage.
src/​Network/​Network.Test/​ScenarioTests/​AzureFirewallPolicyTests.cs Adds validation and acceptance tests.

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

public string[] Protocol { get; set; }

[Parameter(
Mandatory = false,

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

SourceGeoLocation is optional because it is an alternative to SourceAddress and SourceIpGroup, rather than a required field for every network rule. This preserves backward compatibility for existing scenarios and allows the PowerShell changes to ship independently of the feature-gated NFVRP rollout. When Geo IP is explicitly used, service-side feature validation still applies.

@necusjz
Ethan Yang (necusjz) merged commit e431fa8 into Azure:release-network-2026-01-01 Sep 25, 2026
13 checks passed
santoshgh317 pushed a commit to santoshgh317/azure-powershell that referenced this pull request Sep 25, 2026
Rebuild on new release-branch tip after PR Azure#30197 (GeoIp Feature changes) merged.

Same 3 conflicts as the prior attempt, resolved identically:

* src/Network/Network/ChangeLog.md - union of both sides' 'Upcoming Release' bullets. Release-branch entries first (including PR Azure#30197's new SourceGeoLocation / DestinationGeoLocation bullet on New-AzFirewallPolicyNetworkRule), then main's 2 entries appended.

* src/Network/NetworkSecurityPerimeter.Autorest/generate-info.json - kept release-branch GUID 046fadd9-... (authoritative NSP.Autorest state).

* generated/Network/NetworkSecurityPerimeter.Autorest/generate-info.json - same, kept release-branch GUID for consistency with the src-side file.
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