Onboard StandbyPool provisioning#60682
Conversation
Self-review notes
Validation I ran locally is listed in the PR description; the focused |
There was a problem hiding this comment.
Pull request overview
Onboards Azure.Provisioning.StandbyPool as a new TypeSpec-generated provisioning library under sdk/standbypool, adds CI artifact registration, and introduces initial tests, docs, and API listings for Microsoft.StandbyPool (2025-10-01).
Changes:
- Added new
Azure.Provisioning.StandbyPoolpackage (generated resources/models + public API listings). - Added basic unit/live provisioning tests and a README snippet.
- Registered the new package as a CI artifact in
sdk/standbypool/ci.mgmt.yml.
Reviewed changes
Copilot reviewed 14 out of 48 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| sdk/standbypool/ci.mgmt.yml | Registers Azure.Provisioning.StandbyPool as a pipeline artifact. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/tsp-location.yaml | Pins the TypeSpec source location/commit for generation. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/tests/BasicStandbyPoolTests.cs | Adds a basic Bicep-shape comparison test for standby VM pool. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/tests/BasicLiveStandbyPoolTests.cs | Adds a live-only validation test using Trycep. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/tests/Azure.Provisioning.StandbyPool.Tests.csproj | Introduces the test project and references shared test infra. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/StandbyVirtualMachinePoolRuntimeView.cs | Generated runtime view child resource for standby VM pools. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/StandbyVirtualMachinePool.cs | Generated top-level standby VM pool resource. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/StandbyVirtualMachine.cs | Generated child resource for pooled standby VMs. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/StandbyContainerGroupPoolRuntimeView.cs | Generated runtime view child resource for container group pools. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/StandbyContainerGroupPool.cs | Generated top-level standby container group pool resource. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyVirtualMachineState.cs | Generated enum for standby VM state. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyVirtualMachineProperties.cs | Generated model for standby VM child resource properties. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyVirtualMachinePoolRuntimeViewProperties.cs | Generated model for VM pool runtime view properties. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyVirtualMachinePoolProperties.cs | Generated model for VM pool properties. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyVirtualMachinePoolPrediction.cs | Generated prediction model for VM pools. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyVirtualMachinePoolForecastValues.cs | Generated internal forecast values model for VM pools. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyVirtualMachinePoolElasticityProfile.cs | Generated elasticity profile model for VM pools. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyVirtualMachineInstanceCountSummary.cs | Generated instance-count summary model for VM pools. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyRefillPolicy.cs | Generated enum for container pool refill policy. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyProvisioningState.cs | Generated provisioning state enum. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyPoolStatus.cs | Generated model for pool status. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyPoolHealthStateCode.cs | Generated enum for health-state code values. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyContainerGroupProperties.cs | Generated container group properties model. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyContainerGroupProfile.cs | Generated container group profile model. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyContainerGroupPoolRuntimeViewProperties.cs | Generated runtime view properties model for container group pools. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyContainerGroupPoolProperties.cs | Generated properties model for container group pools. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyContainerGroupPoolPrediction.cs | Generated prediction model for container group pools. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyContainerGroupPoolForecastValues.cs | Generated internal forecast values model for container group pools. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/StandbyContainerGroupPoolElasticityProfile.cs | Generated elasticity profile model for container group pools. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/PoolVirtualMachineStateCount.cs | Generated pooled VM state count model. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/PoolVirtualMachineState.cs | Generated pooled VM state enum. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/PoolContainerGroupStateCount.cs | Generated pooled container group state count model. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/PoolContainerGroupState.cs | Generated pooled container group state enum. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/DynamicSizing.cs | Generated internal model backing DynamicSizingEnabled. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Models/ContainerGroupInstanceCountSummary.cs | Generated instance-count summary model for container group pools. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Internal/CodeGenTypeAttribute.cs | Generated internal customization attribute scaffold. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Internal/CodeGenSuppressAttribute.cs | Generated internal customization attribute scaffold. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Internal/CodeGenSerializationAttribute.cs | Generated internal customization attribute scaffold. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated/Internal/CodeGenMemberAttribute.cs | Generated internal customization attribute scaffold. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/src/Azure.Provisioning.StandbyPool.csproj | Adds the new library project and sets initial package metadata/version. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/README.md | Adds package README including a basic snippet. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/metadata.json | Declares RP API versions for provisioning metadata. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/Directory.Build.props | Sets common build properties for the new package. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/CHANGELOG.md | Introduces initial changelog for 1.0.0-beta.1. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/Azure.Provisioning.StandbyPool.slnx | Adds a solution file for the package + tests. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/api/Azure.Provisioning.StandbyPool.netstandard2.0.cs | Adds public API listing for netstandard2.0. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/api/Azure.Provisioning.StandbyPool.net8.0.cs | Adds public API listing for net8.0. |
| sdk/standbypool/Azure.Provisioning.StandbyPool/api/Azure.Provisioning.StandbyPool.net10.0.cs | Adds public API listing for net10.0. |
| directory: specification/standbypool/StandbyPool.Management | ||
| commit: 41fcd750c50a62c42fcc1c1c08af7d177c043c62 | ||
| repo: Azure/azure-rest-api-specs | ||
| additionalDirectories: | ||
|
|
||
| emitterPackageJsonPath: "eng/azure-typespec-http-client-csharp-provisioning-emitter-package.json" |
| <PropertyGroup> | ||
| <TargetFrameworks>$(RequiredTargetFrameworks)</TargetFrameworks> | ||
| <IsMgmtLibrary>true</IsMgmtLibrary> | ||
| <IncludeOperationsSharedSource>true</IncludeOperationsSharedSource> | ||
| <Nullable>enable</Nullable> | ||
| </PropertyGroup> |
Provisioning schema extractor outputPackage: Schema extracted from generated and custom source# Provisioning Resource Schema
Package: `sdk/standbypool/Azure.Provisioning.StandbyPool`
Source: `sdk/standbypool/Azure.Provisioning.StandbyPool/src/Generated`
## StandbyContainerGroupPool
- Resource type: `Microsoft.StandbyPool/standbyContainerGroupPools`
- Default API version: `2025-10-01`
- Source file: `src/Generated/StandbyContainerGroupPool.cs`
| Property | Path | Kind | Type | Required | Output | Metadata |
| --- | --- | --- | --- | --- | --- | --- |
| `Id` | `id` | Property | `BicepValue<ResourceIdentifier>` | False | True | False |
| `Name` | `name` | Property | `BicepValue<string>` | True | False | False |
| `SystemData` | `systemData` | ModelProperty | `SystemData` | False | True | False |
| `Tags` | `tags` | DictionaryProperty | `BicepDictionary<string>` | False | False | False |
| `Location` | `location` | Property | `BicepValue<AzureLocation>` | True | False | False |
| `Properties` | `properties` | ModelProperty | `StandbyContainerGroupPoolProperties` | False | False | False |
## StandbyContainerGroupPoolRuntimeView
- Resource type: `Microsoft.StandbyPool/standbyContainerGroupPools/runtimeViews`
- Default API version: `2025-10-01`
- Source file: `src/Generated/StandbyContainerGroupPoolRuntimeView.cs`
| Property | Path | Kind | Type | Required | Output | Metadata |
| --- | --- | --- | --- | --- | --- | --- |
| `Id` | `id` | Property | `BicepValue<ResourceIdentifier>` | False | True | False |
| `Name` | `name` | Property | `BicepValue<string>` | True | False | False |
| `SystemData` | `systemData` | ModelProperty | `SystemData` | False | True | False |
| `Properties` | `properties` | ModelProperty | `StandbyContainerGroupPoolRuntimeViewProperties` | False | False | False |
| `Parent` | `parent` | Resource | `StandbyContainerGroupPool` | True | False | True |
## StandbyVirtualMachine
- Resource type: `Microsoft.StandbyPool/standbyVirtualMachinePools/standbyVirtualMachines`
- Default API version: `2025-10-01`
- Source file: `src/Generated/StandbyVirtualMachine.cs`
| Property | Path | Kind | Type | Required | Output | Metadata |
| --- | --- | --- | --- | --- | --- | --- |
| `Id` | `id` | Property | `BicepValue<ResourceIdentifier>` | False | True | False |
| `Name` | `name` | Property | `BicepValue<string>` | True | False | False |
| `SystemData` | `systemData` | ModelProperty | `SystemData` | False | True | False |
| `Properties` | `properties` | ModelProperty | `StandbyVirtualMachineProperties` | False | False | False |
| `Parent` | `parent` | Resource | `StandbyVirtualMachinePool` | True | False | True |
## StandbyVirtualMachinePool
- Resource type: `Microsoft.StandbyPool/standbyVirtualMachinePools`
- Default API version: `2025-10-01`
- Source file: `src/Generated/StandbyVirtualMachinePool.cs`
| Property | Path | Kind | Type | Required | Output | Metadata |
| --- | --- | --- | --- | --- | --- | --- |
| `Id` | `id` | Property | `BicepValue<ResourceIdentifier>` | False | True | False |
| `Name` | `name` | Property | `BicepValue<string>` | True | False | False |
| `SystemData` | `systemData` | ModelProperty | `SystemData` | False | True | False |
| `Tags` | `tags` | DictionaryProperty | `BicepDictionary<string>` | False | False | False |
| `Location` | `location` | Property | `BicepValue<AzureLocation>` | True | False | False |
| `Properties` | `properties` | ModelProperty | `StandbyVirtualMachinePoolProperties` | False | False | False |
## StandbyVirtualMachinePoolRuntimeView
- Resource type: `Microsoft.StandbyPool/standbyVirtualMachinePools/runtimeViews`
- Default API version: `2025-10-01`
- Source file: `src/Generated/StandbyVirtualMachinePoolRuntimeView.cs`
| Property | Path | Kind | Type | Required | Output | Metadata |
| --- | --- | --- | --- | --- | --- | --- |
| `Id` | `id` | Property | `BicepValue<ResourceIdentifier>` | False | True | False |
| `Name` | `name` | Property | `BicepValue<string>` | True | False | False |
| `SystemData` | `systemData` | ModelProperty | `SystemData` | False | True | False |
| `Properties` | `properties` | ModelProperty | `StandbyVirtualMachinePoolRuntimeViewProperties` | False | False | False |
| `Parent` | `parent` | Resource | `StandbyVirtualMachinePool` | True | False | True |
|
There was a problem hiding this comment.
Provisioning SDK Review Summary
- Scope:
sdk/standbypool/Azure.Provisioning.StandbyPool - Classification: onboarding
- CI: pass
- Schema and metadata: pass
- Compatibility: not applicable (new package)
- Tests/snippets/docs: pass
This is a well-structured initial onboarding of Azure.Provisioning.StandbyPool targeting Microsoft.StandbyPool@2025-10-01. No blocking provisioning SDK review issues were found.
What was verified:
Package layout: All required elements are present — .slnx, src/*.csproj, tests/*.csproj, README.md, CHANGELOG.md, metadata.json, tsp-location.yaml, api/ listings for all three TFMs, Directory.Build.props, and CI artifact registration in ci.mgmt.yml.
Generated resource types: Five resource types were extracted by the schema tool. All map to valid Microsoft.StandbyPool ARM resource types present in the Bicep reference:
Microsoft.StandbyPool/standbyVirtualMachinePools(top-level)Microsoft.StandbyPool/standbyContainerGroupPools(top-level)Microsoft.StandbyPool/standbyVirtualMachinePools/standbyVirtualMachines(child/runtime)Microsoft.StandbyPool/standbyVirtualMachinePools/runtimeViews(child/runtime)Microsoft.StandbyPool/standbyContainerGroupPools/runtimeViews(child/runtime)
Schema correctness: Top-level writable properties match the Bicep reference for both pool types. ProvisioningState is correctly isOutput: true in all properties models. dynamicSizing.enabled is correctly flattened as DynamicSizingEnabled on the elasticity profile models using an internal DynamicSizing construct.
**Resource identity and meta(redacted) Name is writable and required on all non-singleton resources. Parent is correctly implemented as a metadata ResourceReference<> (IsMetadata=True) on all child resources; it is not serialized as a regular Bicep property.
Tests and snippets: BasicStandbyPoolTests uses #region Snippet:StandbyPoolBasic and Trycep.Compare(). BasicLiveStandbyPoolTests reuses the same factory method with [LiveOnly] and ValidateAsync(). The README snippet exactly matches the test snippet region.
Changelog: Initial 1.0.0-beta.1 (Unreleased) entry is present.
Analyzed by provisioning-review-trigger workflow: 28784797143
Analyzed by Azure .NET Provisioning SDK PR Review: https://github.com/Azure/azure-sdk-for-net/actions/runs/28784797143
Description
Onboards
Azure.Provisioning.StandbyPoolas a new TypeSpec-generated provisioning library.Spec PR: Azure/azure-rest-api-specs#44447
Current status
Generated
Azure.Provisioning.StandbyPoolfrom the StandbyPool TypeSpec project pinned intsp-location.yamlat commit41fcd750c50a62c42fcc1c1c08af7d177c043c62.The package includes generated resources and models for
Microsoft.StandbyPoolAPI version2025-10-01, first-release metadata, API listings, README snippets, basic unit/live tests, and CI artifact registration.Validated generated top-level writable resource properties against Microsoft Learn Bicep reference pages for
Microsoft.StandbyPool/standbyVirtualMachinePools@2025-10-01andMicrosoft.StandbyPool/standbyContainerGroupPools@2025-10-01; both matched expected writable shapes. Generated child/runtime resources have correctparentmetadata and are not used in the basic provisioning sample.Validation
dotnet build /t:GenerateCodefromsdk\standbypool\Azure.Provisioning.StandbyPool\srcdotnet format sdk\standbypool\Azure.Provisioning.StandbyPool\src\Azure.Provisioning.StandbyPool.csprojdotnet format sdk\standbypool\Azure.Provisioning.StandbyPool\tests\Azure.Provisioning.StandbyPool.Tests.csprojeng\scripts\Export-API.ps1 standbypooleng\scripts\Update-Snippets.ps1 standbypooldotnet test sdk\standbypool\Azure.Provisioning.StandbyPool\tests\Azure.Provisioning.StandbyPool.Tests.csproj --filter "FullyQualifiedName~BasicStandbyPoolTests" --tl:off