Upgrade Quota service from API version 2023-02-01 to 2025-09-01 stable#28902
Upgrade Quota service from API version 2023-02-01 to 2025-09-01 stable#28902isra-fel merged 64 commits intoAzure:mainfrom
2023-02-01 to 2025-09-01 stable#28902Conversation
| Thanks for your contribution! The pull request validation has started. Please revisit this comment for updated status. |
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
notyashhh
left a comment
There was a problem hiding this comment.
Looks Great! Also, can you please add changelog under the ##Upcoming Changes section?
In file Quota/Quota/Changelog.md
@isra-fel - restored generated/ folder from main |
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 110 out of 144 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (3)
src/Quota/Quota.Autorest/test/env.json:1
- This commits what appear to be real Subscription/Tenant GUIDs into the repo. Test env files in shared repos should typically use placeholders (or be excluded) to avoid leaking org tenant/subscription identifiers; consider reverting to template values (e.g.,
{subId}/{tenantId}) and sourcing real IDs from CI secrets/env vars at runtime.
src/Quota/Quota.Autorest/test/Get-AzQuotaGroupQuotaSubscriptionAllocationRequest.Tests.ps1:1 - This test will always pass regardless of cmdlet behavior because both the
tryandcatchpaths assert$true. Please convert this into a real assertion (e.g., verify-Not -Throw, or assert on returned objects when available, or explicitlySkipon known service limitations instead of unconditional success).
src/Quota/Quota.Autorest/test/Update-AzQuotaGroupQuotaSubscriptionAllocationRequest.Tests.ps1:1 - On exception, the test logs and then succeeds without asserting anything. If the exception is expected/allowed, prefer asserting the specific exception type/message (or explicitly
Skipin playback) so regressions don’t get silently ignored; otherwise, rethrow so failures are visible.
| Gets the GroupQuotas usages and limits(quota). | ||
| Location is required paramter. | ||
|
|
There was a problem hiding this comment.
Correct the spelling of 'paramter' to 'parameter'.
| $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' | ||
| if (-Not (Test-Path -Path $loadEnvPath)) { | ||
| $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' | ||
| } |
There was a problem hiding this comment.
This fallback path uses a Windows-only backslash ('..\loadEnv.ps1'). On non-Windows runners, this can resolve to a non-existent path and break test discovery/execution. Use Join-Path $PSScriptRoot '..' (or Resolve-Path) so the tests are cross-platform.
| ### -Filter | ||
| | Field | Supported operators | ||
| | Field | Supported operators | ||
| |---------------------|------------------------ | ||
|
|
||
| |requestSubmitTime | ge, le, eq, gt, lt | ||
| |provisioningState eq {QuotaRequestState} | ||
| |resourceName eq {resourceName} | ||
| |provisioningState eq {QuotaRequestState} | ||
| |resourceName eq {resourceName} |
There was a problem hiding this comment.
The markdown table under -Filter is malformed: the rows for provisioningState/resourceName are missing column separators, so it won't render as an actual table and is hard to read. Update the table so each row uses proper | col1 | col2 | formatting.
| ### UpdateExpanded (Default) | ||
| ``` | ||
| Update-AzQuota -ResourceName <String> -Scope <String> [-Limit <ILimitJsonObject>] [-Name <String>] | ||
| Update-AzQuota -ResourceName <String> -Scope <String> [-Limit <ILimitJsonObject>] [-NameValue <String>] | ||
| [-ResourceType <String>] [-DefaultProfile <PSObject>] [-AsJob] [-NoWait] | ||
| [-WhatIf] [-Confirm] [<CommonParameters>] | ||
| ``` |
There was a problem hiding this comment.
The help content documents an optional parameter as -NameValue, but module/tests/examples in this PR use -Name. This inconsistency will confuse users and may indicate either the docs are stale or the rename directive wasn't applied. Please align the help to the exported cmdlet parameter name (and ensure examples/tests match).
| ## Upcoming Release | ||
| * Removed cmdlet 'Get-AzQuotaGroupQuotaSubscriptionRequest' | ||
| - This cmdlet is no longer supported and has been removed from the module | ||
| * API Version Upgrade: Migrated from 2023-02-01 to 2025-09-01 stable |
There was a problem hiding this comment.
The Upcoming Release notes are missing key user-facing details and issue references. Consider describing the new Group Quota management cmdlets/capabilities in user terms (impact/what users can now do) and linking any relevant GitHub issue(s). Also, for the removed cmdlet, include guidance on what users should use instead (if applicable).
| Location is required paramater. | ||
|
|
There was a problem hiding this comment.
Typo in synopsis: "paramater" should be "parameter".
| @@ -17,7 +17,7 @@ Get-AzQuotaOperation [-DefaultProfile <PSObject>] [<CommonParameters>] | |||
| ``` | |||
|
|
|||
| ## DESCRIPTION | |||
| List all the operations supported by the Microsoft.Quota resource provider. | |||
| List the operations for the provider | |||
|
|
|||
There was a problem hiding this comment.
The SYNOPSIS/DESCRIPTION text is overly generic ("List the operations for the provider") and loses the important context that this lists operations supported by the Microsoft.Quota resource provider. Please restore a more specific description so users know what provider and operations this cmdlet targets.
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
|
I think the test cases needs to be recorded again? @RenSilvaAU |
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
| { | ||
| using System; | ||
| using System.Management.Automation; | ||
| using Microsoft.Azure.PowerShell.Cmdlets.Quota.Runtime.Json; |
There was a problem hiding this comment.
using Microsoft.Azure.PowerShell.Cmdlets.Quota.Runtime.Json; appears unused in this file, and the repo sets TreatWarningsAsErrors=true (so this can fail the build with an unused-using warning). Remove the unused using or use a referenced type from that namespace.
| using Microsoft.Azure.PowerShell.Cmdlets.Quota.Runtime.Json; |
| { | ||
| using System; | ||
| using System.Management.Automation; | ||
| using Microsoft.Azure.PowerShell.Cmdlets.Quota.Runtime.Json; |
There was a problem hiding this comment.
using Microsoft.Azure.PowerShell.Cmdlets.Quota.Runtime.Json; appears unused in this file, and the repo sets TreatWarningsAsErrors=true (so this can fail the build with an unused-using warning). Remove the unused using or use a referenced type from that namespace.
| using Microsoft.Azure.PowerShell.Cmdlets.Quota.Runtime.Json; |
| ### Example 1: Add a subscription to a GroupQuota | ||
| ```powershell | ||
| New-AzQuotaGroupQuotaSubscription -ManagementGroupId "admintest" -GroupQuotaName "groupquota1" -SubscriptionId "{subId}" | ||
| ``` | ||
|
|
||
| ```output | ||
| New-AzQuotaGroupQuotaSubscription_Create: The subscription {subId} is already registered for a Quota Group, please select another subscription and try again. | ||
| ``` | ||
|
|
||
| Add a subscription to an existing GroupQuota. | ||
| Note: If the subscription is already registered, an error will be returned. |
There was a problem hiding this comment.
The example output here is an error message ("already registered for a Quota Group"), which makes the example look like the cmdlet fails by default. Prefer a successful example (or clearly label this as an example of handling the 'already registered' error and include a success-path example as well).
| @@ -19,7 +19,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Authenticators", "..\Accoun | |||
| EndProject | |||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Quota", "Quota\Quota.csproj", "{699E40C9-43A1-4F36-8DA5-4CBD28DB4A58}" | |||
| EndProject | |||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Az.Quota", "..\..\generated\Quota\Quota.Autorest\Az.Quota.csproj", "{1FFEAE1C-DF2A-4DFD-A425-CB31B99B3BD7}" | |||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Az.Quota", "Quota.Autorest\Az.Quota.csproj", "{7CF61438-1417-4131-B3D9-ADCC804CB1DA}" | |||
| EndProject | |||
There was a problem hiding this comment.
The solution file now begins with a blank first line and references Quota.Autorest\Az.Quota.csproj, but there is no Az.Quota.csproj under src/Quota/Quota.Autorest. This will likely prevent Visual Studio/MSBuild from loading/building the solution. Restore the standard first line (with optional BOM) and point Az.Quota back to the existing project path (e.g., under generated/Quota/Quota.Autorest) or add the missing csproj at the referenced location.
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
comment addressed
…table (#28902) Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Yash <55773468+notyashhh@users.noreply.github.com> Co-authored-by: Yeming Liu <11371776+isra-fel@users.noreply.github.com>
Description
This PR upgrades the Az.Quota module from API version 2023-02-01 to 2025-09-01 stable, introducing comprehensive Group Quota management capabilities at the management group level. This is a significant enhancement that enables centralized quota governance across multiple subscriptions.
Key Changes:
API Version Upgrade: Migrated from 2023-02-01 to 2025-09-01 stable
New Group Quota Cmdlets: Added 10+ new cmdlets for CRUD operations on group quotas, subscriptions, location settings, limits, allocations, and usage
Documentation: Generated complete help documentation for all new cmdlets
Changes:
Get/New/Update/Remove-AzQuotaGroupQuota)Get/New/Update/Remove-AzQuotaGroupQuotaSubscription)2023-02-01to2025-09-01stableThis enables Azure customers to manage quotas across multiple subscriptions at the management group level for improved governance and resource allocation.
Mandatory Checklist
Please choose the target release of Azure PowerShell. (⚠️ Target release is a different concept from API readiness. Please click below links for details.)
Check this box to confirm: I have read the Submitting Changes section of
CONTRIBUTING.mdand reviewed the following information:ChangeLog.mdfile(s) appropriatelysrc/{{SERVICE}}/{{SERVICE}}/ChangeLog.md.## Upcoming Releaseheader in the past tense.ChangeLog.mdif no new release is required, such as fixing test case only.