Skip to content

[AutoPR @azure-arm-billingbenefits]-generated-from-SDK Generation - JS-6338365#38639

Merged
JialinHuang803 merged 6 commits into
mainfrom
sdkauto/@azure-arm-billingbenefits-6338365
May 29, 2026
Merged

[AutoPR @azure-arm-billingbenefits]-generated-from-SDK Generation - JS-6338365#38639
JialinHuang803 merged 6 commits into
mainfrom
sdkauto/@azure-arm-billingbenefits-6338365

Conversation

@azure-sdk
Copy link
Copy Markdown
Collaborator

Configurations: 'specification/billingbenefits/BillingBenefits.Management/tspconfig.yaml', API Version: 2025-12-01-preview, SDK Release Type: beta, and CommitSHA: '0ac0baaafaa117fd7296c0159ef2489d0461f86f' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6338365 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.

…ment/tspconfig.yaml', API Version: 2025-12-01-preview, SDK Release Type: beta, and CommitSHA: '0ac0baaafaa117fd7296c0159ef2489d0461f86f' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6338365 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
@github-actions github-actions Bot added the Mgmt This issue is related to a management-plane library. label May 22, 2026
v-jiaodi and others added 4 commits May 25, 2026 16:23
… sdkauto/@azure-arm-billingbenefits-6338365
…ment/tspconfig.yaml', API Version: 2025-12-01-preview, SDK Release Type: beta, and CommitSHA: '04a39570c9789aeae0b6a7deb57e5f4b72d4a57d' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6346542 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
@v-jiaodi v-jiaodi added refresh PR for SDK refresh mgmt-review-needed labels May 25, 2026
@v-jiaodi v-jiaodi marked this pull request as ready for review May 25, 2026 10:16
Copilot AI review requested due to automatic review settings May 25, 2026 10:16
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@github-actions github-actions Bot added mgmt-review-in-progress Management SDK review is in progress and removed mgmt-review-needed labels May 25, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Next Steps to Merge

Only failed checks and required actions are listed below.

  • ⏳ js - pullrequest (Build Build): still running.
  • ⏳ js - pullrequest (Build Analyze): still running.
  • ⏳ js - pullrequest (Build generate_job_matrix): still running.
  • ⏳ js - pullrequest (🔒 SDLSources SDL Sources Analysis): still running.

@github-actions github-actions Bot added mgmt-review-added Management SDK review completed and removed mgmt-review-in-progress Management SDK review is in progress labels May 25, 2026
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

1 design concern found in the public API surface: duplicated model names with _1 suffix (ManagedServiceIdentity_1, ManagedServiceIdentityType_1, KnownManagedServiceIdentityType_1) alongside their non-suffixed counterparts. This indicates duplicate type definitions in the TypeSpec spec that need to be resolved via @clientName.

📊 Structured Report
{"agent":"mgmt-reviewer","pr":38639,"summary":"issues_found","findings":[{"file":"sdk/billingbenefits/arm-billingbenefits/review/arm-billingbenefits-node.api.md","line":1516,"issueType":"design","category":"naming","description":"ManagedServiceIdentity_1, ManagedServiceIdentityType_1, KnownManagedServiceIdentityType_1 have _1 suffixes indicating duplicated models in TypeSpec spec"}]}

Benchmarked by Management Release Assistant

Comment thread sdk/billingbenefits/arm-billingbenefits/review/arm-billingbenefits-node.api.md Outdated
…ment/tspconfig.yaml', API Version: 2025-12-01-preview, SDK Release Type: beta, and CommitSHA: '3777e08b3bbee8bbaa26947169788dbdc4dd3a2a' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6363452 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
@v-jiaodi
Copy link
Copy Markdown
Member

v-jiaodi commented May 28, 2026

Note

This analysis was generated by AI. Please review the classifications and root causes for accuracy.

Breaking Change Analysis: @azure/arm-billingbenefits 2.0.0-beta.1

Old SDK (main) New SDK (PR)
Generator Swagger / AutoRest TypeSpec / emitter
API Version 2022-11-01 2025-12-01-preview
Package Version 1.0.0 2.0.0-beta.1

Spec References:

Note

The new API version 2025-12-01-preview was introduced together with the TypeSpec project (no prior swagger existed at this version), so Layer B for the new API version is effectively absent. Differences between Layer A (2022-11-01) and Layer C (2025-12-01-preview) that reflect schema/operation evolution are classified as Type 1. Differences that are present identically in Layer A and Layer C swagger but absent only in the new SDK api.md are classified as Type 2b (Emitter).

Type 1: API Version Upgrade (2022-11-01 -> 2025-12-01-preview) -- 5 items

# Breaking Change Root Cause
1 Removed Interface BillingInformation BillingInformation exists as a definition in Layer A swagger but is not present in Layer C swagger -- the model was removed from the REST API in 2025-12-01-preview.
2 Removed Interface OperationResultError OperationResultError exists in Layer A swagger but is not present in Layer C swagger -- removed from the REST API in 2025-12-01-preview.
3 Removed Interface SavingsPlanPurchaseValidateRequest The validate-purchase request body model was renamed and restructured in 2025-12-01-preview. Layer A swagger uses SavingsPlanPurchaseValidateRequest ({benefits?: SavingsPlanOrderAliasModel[]}); Layer C swagger replaces it with a polymorphic BenefitValidateRequest ({benefits?: BenefitValidateModelUnion[]}) supporting savings-plan, credits, MACC, and conditional-credit validation.
4 Removed Interface ValidatePurchaseOptionalParams Cascading from row 3: the root-client method BillingBenefitsRP.validatePurchase (Layer A operationId: ValidatePurchase) was replaced in Layer C by Benefit_Validate (now exposed as the new BenefitOperations.validate operation group method). Removing the operation removes its options interface.
5 Parameter name of interface Sku is now required Sku was upgraded to the ARM common type (common-types/resource-management/v6/types.json) in 2025-12-01-preview. Layer A defines a service-local Sku with name as an optional property; Layer C defines Sku with name listed in required (and additional fields tier, size, family, capacity).

Type 2: TypeSpec / Emitter Migration -- 5 items

Summary Table

Root Cause Sub-Type Count Accepted
Orphan types removed: definitions exist in swagger but are not referenced by any operation, so TypeSpec emitter tree-shakes them (AutoRest emitted all definitions regardless of reachability) Emitter 3
Paging collection wrapper inlined: TypeSpec emitter returns PagedAsyncIterableIterator<T> directly instead of exposing the swagger-level XxxList wrapper interface Emitter 2

Details

  1. Removed Interface PricingCurrencyTotal -- Emitter ✅

    PricingCurrencyTotal is defined in both Layer A and Layer C swagger but is not referenced by any property of any used model. In both swaggers, BillingPlanInformation.pricingCurrencyTotal and PaymentDetail.pricingCurrencyTotal both $ref Price, not PricingCurrencyTotal. AutoRest emits all definitions; TypeSpec emitter only emits types reachable from operations, so this orphan is pruned.

  2. Removed Type Alias PricingCurrencyDuration -- Emitter ✅

    Same orphan-removal cause as row 1. PricingCurrencyDuration is only referenced from PricingCurrencyTotal.duration in both Layer A and Layer C swagger. When PricingCurrencyTotal is unreachable, PricingCurrencyDuration is also unreachable and tree-shaken by the TypeSpec emitter.

  3. Removed Enum KnownPricingCurrencyDuration -- Emitter ✅

    Same orphan-removal cause as row 1. KnownPricingCurrencyDuration is the AutoRest-generated "known values" enum for the orphan PricingCurrencyDuration type alias; pruned together with its underlying type.

  4. Removed Interface SavingsPlanModelList -- Emitter ✅

    SavingsPlanModelList is the paged-collection wrapper ({value: SavingsPlanModel[], nextLink?: string}) defined in both Layer A and Layer C swagger. AutoRest surfaced it as a public interface and used it as the return type alias of list operations. TypeSpec emitter inlines the wrapper and returns PagedAsyncIterableIterator<SavingsPlanModel> directly (e.g., SavingsPlanOrderOperations.list returns PagedAsyncIterableIterator<SavingsPlanOrderModel> in the new api.md).

  5. Removed Interface SavingsPlanOrderModelList -- Emitter ✅

    Same paging-wrapper inlining as row 4, applied to the SavingsPlanOrderModel list operation.

Total: 5 (Type 1: API Version Upgrade) + 5 (Type 2: TypeSpec/Emitter Migration) = 10 breaking changes

Type 2 breakdown: 0 items from TypeSpec conversion, 5 items from emitter differences.

Methodology

Classification uses the four-layer comparison model:

  • Layer A (old original swagger): billingbenefits.json at API version 2022-11-01, spec commit 9b3aa35e (from the old SDK 1.0.0 _meta.json).
  • Layer B (new original swagger before TypeSpec): not applicable -- the new API version 2025-12-01-preview was introduced together with the TypeSpec project and has no prior hand-written swagger.
  • Layer C (TypeSpec-generated swagger): billingbenefits.json at API version 2025-12-01-preview, spec commit 3777e08b (taken from the CommitSHA in the latest PR commit message).
  • Layer D (SDK api.md): review/arm-billingbenefits-node.api.md on main vs PR branch.

Because Layer B is absent at the new API version, an entry is classified as Type 1 when the model or operation differs between Layer A and Layer C swagger (REST surface actually changed across versions), and as Type 2b (Emitter) when the model is present identically in both swaggers but absent only in the new SDK api.md (AutoRest vs TypeSpec emitter difference, e.g., orphan tree-shaking or paging wrapper inlining).

@JialinHuang803 JialinHuang803 merged commit 7957cc0 into main May 29, 2026
12 checks passed
@JialinHuang803 JialinHuang803 deleted the sdkauto/@azure-arm-billingbenefits-6338365 branch May 29, 2026 02:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Mgmt This issue is related to a management-plane library. mgmt-review-added Management SDK review completed refresh PR for SDK refresh

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants