Skip to content

[AutoPR @azure-arm-billing]-generated-from-SDK Generation - JS-6331913#38620

Merged
JialinHuang803 merged 3 commits into
mainfrom
sdkauto/@azure-arm-billing-6331913
May 21, 2026
Merged

[AutoPR @azure-arm-billing]-generated-from-SDK Generation - JS-6331913#38620
JialinHuang803 merged 3 commits into
mainfrom
sdkauto/@azure-arm-billing-6331913

Conversation

@azure-sdk
Copy link
Copy Markdown
Collaborator

Configurations: 'specification/billing/resource-manager/Microsoft.Billing/Billing/tspconfig.yaml', API Version: 2024-04-01, SDK Release Type: beta, and CommitSHA: '0b39d09202614b896019af9fc8df28a8a7ee9c29' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6331913 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.

…ling/Billing/tspconfig.yaml', API Version: 2024-04-01, SDK Release Type: beta, and CommitSHA: '0b39d09202614b896019af9fc8df28a8a7ee9c29' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6331913 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 21, 2026
@v-jiaodi v-jiaodi added refresh PR for SDK refresh mgmt-review-needed labels May 21, 2026
@v-jiaodi v-jiaodi marked this pull request as ready for review May 21, 2026 07:40
Copilot AI review requested due to automatic review settings May 21, 2026 07:40
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 21, 2026
@v-jiaodi
Copy link
Copy Markdown
Member

v-jiaodi commented May 21, 2026

Note

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

Breaking Change Analysis: @azure/arm-billing 6.0.0-beta.1

Old SDK (main) New SDK (PR)
Generator Swagger / AutoRest TypeSpec / emitter
API Version 2024-04-01 2024-04-01
Package Version 5.0.2 6.0.0-beta.1

Spec References:

Since old and new API versions are identical (2024-04-01), all breaking changes are Type 2: TypeSpec/Emitter Migration. There are no Type 1 (API version upgrade) changes.


Type 2: TypeSpec / Emitter Migration -- 24 items

Root Cause Sub-Type Count Accepted
x-ms-client-flatten not honored by TypeSpec emitter; nested properties no longer flattened to parent model Emitter 11
resumeFrom removed from LRO options and return type changed from response wrapper to void Emitter 6
Collection wrapper types removed; emitter returns PagedAsyncIterableIterator<T> directly Emitter 4
Orphan/unreachable model removed by TypeSpec (not referenced by any operation) Conversion 2
TypeSpec standard list result type makes value property required Conversion 1

Details

  1. Operation AssociatedTenants.beginDeleteAndWait has a new signature -- Emitter

    (1) resumeFrom?: string removed from AssociatedTenantsDeleteOptionalParams (Type 2b -- emitter no longer generates resumeFrom on LRO options). (2) Return type changed from AssociatedTenantsDeleteResponse (header wrapper) to void (Type 2b -- emitter models void-returning operations directly).

  2. Operation BillingProfiles.beginDeleteAndWait has a new signature -- Emitter

    Same as row 1: resumeFrom removed from BillingProfilesDeleteOptionalParams and return type changed from BillingProfilesDeleteResponse to void.

  3. Operation BillingSubscriptions.beginCancelAndWait has a new signature -- Emitter

    Same as row 1: resumeFrom removed from BillingSubscriptionsCancelOptionalParams and return type changed from BillingSubscriptionsCancelResponse to void.

  4. Operation BillingSubscriptions.beginDeleteAndWait has a new signature -- Emitter

    Same as row 1: resumeFrom removed from BillingSubscriptionsDeleteOptionalParams and return type changed from BillingSubscriptionsDeleteResponse to void.

  5. Operation Invoices.beginAmendAndWait has a new signature -- Emitter

    Same as row 1: resumeFrom removed from InvoicesAmendOptionalParams and return type changed from InvoicesAmendResponse to void.

  6. Operation InvoiceSections.beginDeleteAndWait has a new signature -- Emitter

    Same as row 1: resumeFrom removed from InvoiceSectionsDeleteOptionalParams and return type changed from InvoiceSectionsDeleteResponse to void.

  7. Removed Interface ExternalReference -- Conversion ✅

    Orphan type. Defined in old swagger (product.json) but not referenced by any operation request/response body. TypeSpec did not define this type; tree-shaking removed it.

  8. Removed Interface ReservationList -- Emitter ✅

    Collection wrapper type for paging. Modular emitter returns PagedAsyncIterableIterator<Reservation> directly instead of wrapping in a list type.

  9. Removed Interface ReservationOrderList -- Emitter ✅

    Same as row 8: collection wrapper for ReservationOrder paging.

  10. Removed Interface SavingsPlanModelList -- Emitter ✅

    Same as row 8: collection wrapper for SavingsPlanModel paging.

  11. Removed Interface SavingsPlanOrderModelList -- Emitter ✅

    Same as row 8: collection wrapper for SavingsPlanOrderModel paging.

  12. Removed Interface TransferItemQueryParameter -- Conversion ✅

    Only referenced via x-ms-odata hint in old swagger (transfers.json), not used in any request/response body. TypeSpec does not model x-ms-odata filter hint types.

  13. Interface BillingSubscription no longer has parameter enrollmentAccountStartDate -- Emitter

    x-ms-client-flatten on enrollmentAccountSubscriptionDetails in swagger. AutoRest flattened nested properties (enrollmentAccountSubscriptionDetails.enrollmentAccountStartDate) to parent. Both old and TypeSpec-generated swagger have x-ms-client-flatten: true, but TypeSpec emitter does not honor it -- property now accessed via enrollmentAccountSubscriptionDetails.enrollmentAccountStartDate.

  14. Interface BillingSubscription no longer has parameter subscriptionEnrollmentAccountStatus -- Emitter

    Same as row 13: flattened from enrollmentAccountSubscriptionDetails.subscriptionEnrollmentAccountStatus.

  15. Interface BillingSubscriptionAlias no longer has parameter enrollmentAccountStartDate -- Emitter

    Same as row 13 (same flatten on BillingSubscriptionAlias).

  16. Interface BillingSubscriptionAlias no longer has parameter subscriptionEnrollmentAccountStatus -- Emitter

    Same as row 13 (same flatten on BillingSubscriptionAlias).

  17. Interface BillingSubscriptionPatch no longer has parameter enrollmentAccountStartDate -- Emitter

    Same as row 13 (same flatten on BillingSubscriptionPatch).

  18. Interface BillingSubscriptionPatch no longer has parameter subscriptionEnrollmentAccountStatus -- Emitter

    Same as row 13 (same flatten on BillingSubscriptionPatch).

  19. Interface Patch no longer has parameter purchaseProperties -- Emitter

    x-ms-client-flatten on renewProperties in swagger. AutoRest flattened renewProperties.purchaseProperties to top-level purchaseProperties. TypeSpec emitter keeps nested: now accessed via renewProperties.purchaseProperties.

  20. Interface Reservation no longer has parameter aggregates -- Emitter

    x-ms-client-flatten on utilization in swagger. AutoRest flattened utilization.aggregates to top-level aggregates. TypeSpec emitter keeps nested: now accessed via utilization.aggregates.

  21. Interface Reservation no longer has parameter trend -- Emitter

    Same as row 20: flattened from utilization.trend.

  22. Interface ReservationPurchaseRequest no longer has parameter instanceFlexibilityPropertiesInstanceFlexibility -- Emitter

    x-ms-client-flatten on nested instanceFlexibility properties in swagger. AutoRest deep-flattened to instanceFlexibilityPropertiesInstanceFlexibility. TypeSpec emitter keeps nested: now accessed via instanceFlexibility.

  23. Interface ReservationPurchaseRequest no longer has parameter instanceFlexibilityPropertiesReservedResourcePropertiesInstanceFlexibility -- Emitter

    Same as row 22: AutoRest deep-flattened reservedResourceProperties.instanceFlexibility to this long compound name. TypeSpec emitter keeps nested: now accessed via reservedResourceProperties.instanceFlexibility.

  24. Parameter value of interface BillingRoleAssignmentListResult is now required -- Conversion

    Old swagger has no required array for BillingRoleAssignmentListResult (value is optional). TypeSpec-generated swagger adds "required": ["value"] -- TypeSpec standard list result type always marks value as required.


Open Questions

  1. x-ms-client-flatten not honored (11 items): Both old swagger and TypeSpec-generated swagger contain x-ms-client-flatten: true on the same properties. AutoRest honored this directive (flattening nested properties to the parent), but the TypeSpec emitter does not. This is not currently in the architect-approved patterns list. These changes affect model property access paths (e.g., billingSubscription.enrollmentAccountStartDate -> billingSubscription.enrollmentAccountSubscriptionDetails.enrollmentAccountStartDate). Needs architect review.

  2. resumeFrom removed from LRO options (6 items): AutoRest LRO options included resumeFrom?: string for serialized poller state restoration. TypeSpec emitter uses a different LRO restoration pattern (via RestorePollerOptions). This is not explicitly covered by approved patterns. Needs architect review.

  3. BillingRoleAssignmentListResult.value now required (1 item): TypeSpec standard list result type makes value required while the original swagger had it optional. This is a conversion-level change. Needs review.


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

Type 2 breakdown: 3 items from TypeSpec conversion, 21 items from emitter differences.

@JialinHuang803 JialinHuang803 merged commit 38fd0e5 into main May 21, 2026
13 checks passed
@JialinHuang803 JialinHuang803 deleted the sdkauto/@azure-arm-billing-6331913 branch May 21, 2026 15:42
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-in-progress Management SDK review is in progress refresh PR for SDK refresh

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants