GA for Billing Subscriptions and Billing Property
ARM API Information (Control Plane)
MSFT employees can try out our new experience at OpenAPI Hub - one location for using our validation tools and finding your workflow. Azure 1st Party Service can try out the Shift Left experience to initiate API design review from ADO code repo. If you are interested, may request engineering support by filling in with the form https://aka.ms/ShiftLeftSupportForm.
Changelog
Add a changelog entry for this PR by answering the following questions:
- What's the purpose of the update?
- [ ] new service onboarding
- [x] new API version
- [ ] update existing version for new feature
- [ ] update existing version to fix swagger quality issue in s360
- [ ] Other, please clarify
- When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
- When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
- By default, Azure SDKs of all languages (.NET/Python/Java/JavaScript for both management-plane SDK and data-plane SDK, Go for management-plane SDK only ) MUST be refreshed with/after swagger of new version is published. If you prefer NOT to refresh any specific SDK language upon swagger updates in the current PR, please leave details with justification here.
Billing Subscription
- Added systemData.createdAt
- Added systemData.lastModifiedAt
- Removed CostCenter because it was redundant with ConsumptionCostCenter and was not included in previous swagger.
- Removed EnrollmentAccountName because it was redundant with EnrollmentAccountDisplayName and was not included in previous swagger.
- Modified PurchaseDate to use standard DateTime string format.
- Modified TermStartDate to use standard DateTime string format.
- Modified TermEndDate to use standard DateTime string format.
- Removed SubscriptionBillingStatus because it was redundant with Status and was not included in previous swagger.
- Removed POST
providers/Microsoft.Billing/billingAccounts/purchaseProduct - Removed GET
providers/Microsoft.Billing/billingAccounts/purchaseProduct/operationResults/purchaseBillingSubscription - Removed POST
providers/Microsoft.Billing/billingAccounts/billingSubscriptions/split - Removed GET
providers/Microsoft.Billing/billingAccounts/purchaseProduct/operationResults/splitBillingSubscription - Removed POST
providers/Microsoft.Billing/billingAccounts/billingSubscriptions/merge - Removed GET
providers/Microsoft.Billing/billingAccounts/purchaseProduct/operationResults/mergeBillingSubscription - Removed PUT
enrollmentAccounts/billingSubscriptions/(Update Billing Subscriptions Cost Center) because it was never documented and doesn't show any use. - Moved implementation of
/providers/Microsoft.Billing/billingAccounts/enrollmentAccounts/transferBillingSubscriptionstoBillingSubscriptionControllerso that the generated swagger will stay in the same file as 2020-12-15-privatepreview. - Modified LIST Billing Subscriptions parameter from
includeAllOrgstoincludeTenantSubscriptions
Billing Property
- Added BillingProperty.BillingAccountSubType
- None
- Individual
- Standard
- Premier
- Added values to BillingProperty.BillingProfileStatusReasonCode
- UnusualActivity
- Added BillingProperty.BillingProfilePaymentMethodType
- CheckWire
- Credits
- CreditCard
- Changed BillingProperty.BillingTenantId to BillingProperty.PrimaryBillingTenantId
- Added BillingProperty.EnrollmentDetails
- DepartmentId
- DepartmentDisplayName
- EnrollmentAccountId
- EnrollmentAccountDisplayName
- EnrollmentAccountStatus
- Added a fallback value for non-binary enums
Contribution checklist (MS Employees Only):
- [x] I commit to follow the Breaking Change Policy of "no breaking changes"
- [x] I have reviewed the documentation for the workflow.
- [ ] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?
If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist
Applicability: :warning:
If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.
- Change to data plane APIs
- Adding new properties
- All removals
Otherwise your PR may be subject to ARM review requirements. Complete the following:
-
[ ] Check this box if any of the following apply to the PR so that the label "ARMReview" and "WaitForARMFeedback" will be added by bot to kick off ARM API Review. Missing to check this box in the following scenario may result in delays to the ARM manifest review and deployment.
- Adding a new service
- Adding new API(s)
- Adding a new API version -[ ] To review changes efficiently, ensure you copy the existing version into the new directory structure for first commit and then push new changes, including version updates, in separate commits. You can use OpenAPIHub to initialize the PR for adding a new version. For more details refer to the wiki.
-
[ ] Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.
-
[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Breaking Change Review Checklist
If you have any breaking changes as defined in the Breaking Change Policy, request approval from the Breaking Change Review Board.
Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Additional details on the process and office hours are on the Breaking Change Wiki.
NOTE: To update API(s) in public preview for over 1 year (refer to Retirement of Previews)
Please follow the link to find more details on PR review process.
Hi, @bradenwatkins Thanks for your PR. I am workflow bot for review process. Here are some small tips.
Swagger Validation Report
️️✔️BreakingChange succeeded [Detail] [Expand]
There are no breaking changes.
️⚠️Breaking Change(Cross-Version): 27 Warnings warning [Detail]
| compared swaggers (via Oad v0.10.4)] | new version | base version |
|---|---|---|
| billingSubscription.json | 2023-04-01(2439438) | 2021-10-01(main) |
The following breaking changes are detected by comparison with the latest stable version:
Only 30 items are listed, please refer to log for more details.
️❌LintDiff: 10 Errors, 11 Warnings failed [Detail]
| compared tags (via openapi-validator v2.1.7) | new version | base version |
|---|---|---|
| package-2023-04 | package-2023-04(2439438) | package-2023-04(billing/2023-04-01) |
[must fix]The following errors/warnings are introduced by current PR:
| Rule | Message | Related RPC [For API reviewers] |
|---|---|---|
ParametersInPointGet |
Query parameter includeBillingCountry should be removed. Point Get's MUST not have query parameters other than api version. Location: Microsoft.Billing/stable/2023-04-01/billingProperty.json#L27 |
RPC-Get-V1-08 |
ParametersInPointGet |
Query parameter includeTransitionStatus should be removed. Point Get's MUST not have query parameters other than api version. Location: Microsoft.Billing/stable/2023-04-01/billingProperty.json#L27 |
RPC-Get-V1-08 |
LroErrorContent |
Error response content of long running operations must follow the error schema provided in the common types v2 and above. Location: Microsoft.Billing/stable/2023-04-01/billingSubscription.json#L347 |
|
LroErrorContent |
Error response content of long running operations must follow the error schema provided in the common types v2 and above. Location: Microsoft.Billing/stable/2023-04-01/billingSubscription.json#L419 |
|
DeleteResponseCodes |
Long-running delete operations must have responses with 202, 204 and default return codes. They also must have no other response codes. Location: Microsoft.Billing/stable/2023-04-01/billingSubscription.json#L494 |
RPC-Delete-V1-01 |
DeleteResponseBodyEmpty |
The delete response body must be empty. Location: Microsoft.Billing/stable/2023-04-01/billingSubscription.json#L520 |
RPC-Delete-V1-04 |
LroErrorContent |
Error response content of long running operations must follow the error schema provided in the common types v2 and above. Location: Microsoft.Billing/stable/2023-04-01/billingSubscription.json#L539 |
|
ParametersInPointGet |
Query parameter expand should be removed. Point Get's MUST not have query parameters other than api version. Location: Microsoft.Billing/stable/2023-04-01/billingSubscription.json#L565 |
RPC-Get-V1-08 |
ProvisioningStateSpecifiedForLROPatch |
200 response schema in long running PATCH operation is missing ProvisioningState property. A LRO PATCH operations 200 response schema must have ProvisioningState specified. Location: Microsoft.Billing/stable/2023-04-01/billingSubscription.json#L637 |
|
LroErrorContent |
Error response content of long running operations must follow the error schema provided in the common types v2 and above. Location: Microsoft.Billing/stable/2023-04-01/billingSubscription.json#L658 |
|
| :warning: EnumInsteadOfBoolean | Booleans properties are not descriptive in all cases and can make them to use, evaluate whether is makes sense to keep the property as boolean or turn it into an enum. Location: Microsoft.Billing/stable/2023-04-01/billingProperty.json#L31 |
|
| :warning: EnumInsteadOfBoolean | Booleans properties are not descriptive in all cases and can make them to use, evaluate whether is makes sense to keep the property as boolean or turn it into an enum. Location: Microsoft.Billing/stable/2023-04-01/billingProperty.json#L38 |
|
| :warning: EnumInsteadOfBoolean | Booleans properties are not descriptive in all cases and can make them to use, evaluate whether is makes sense to keep the property as boolean or turn it into an enum. Location: Microsoft.Billing/stable/2023-04-01/billingProperty.json#L433 |
|
| :warning: EnumInsteadOfBoolean | Booleans properties are not descriptive in all cases and can make them to use, evaluate whether is makes sense to keep the property as boolean or turn it into an enum. Location: Microsoft.Billing/stable/2023-04-01/billingSubscription.json#L82 |
|
| :warning: EnumInsteadOfBoolean | Booleans properties are not descriptive in all cases and can make them to use, evaluate whether is makes sense to keep the property as boolean or turn it into an enum. Location: Microsoft.Billing/stable/2023-04-01/billingSubscription.json#L161 |
|
| :warning: EnumInsteadOfBoolean | Booleans properties are not descriptive in all cases and can make them to use, evaluate whether is makes sense to keep the property as boolean or turn it into an enum. Location: Microsoft.Billing/stable/2023-04-01/billingSubscription.json#L237 |
|
| :warning: PostOperationIdContainsUrlVerb | OperationId should contain the verb: 'validatemoveeligibility' in:'BillingSubscriptions_ValidateMove'. Consider updating the operationId Location: Microsoft.Billing/stable/2023-04-01/billingSubscription.json#L443 |
|
| :warning: EnumInsteadOfBoolean | Booleans properties are not descriptive in all cases and can make them to use, evaluate whether is makes sense to keep the property as boolean or turn it into an enum. Location: Microsoft.Billing/stable/2023-04-01/billingSubscription.json#L690 |
|
| :warning: EnumInsteadOfBoolean | Booleans properties are not descriptive in all cases and can make them to use, evaluate whether is makes sense to keep the property as boolean or turn it into an enum. Location: Microsoft.Billing/stable/2023-04-01/billingSubscription.json#L697 |
|
| :warning: EnumInsteadOfBoolean | Booleans properties are not descriptive in all cases and can make them to use, evaluate whether is makes sense to keep the property as boolean or turn it into an enum. Location: Microsoft.Billing/stable/2023-04-01/billingSubscription.json#L704 |
|
| :warning: EnumInsteadOfBoolean | Booleans properties are not descriptive in all cases and can make them to use, evaluate whether is makes sense to keep the property as boolean or turn it into an enum. Location: Microsoft.Billing/stable/2023-04-01/billingSubscription.json#L1325 |
The following errors/warnings exist before current PR submission:
| Rule | Message |
|---|---|
XmsPageableForListCalls |
x-ms-pageable extension must be specified for LIST APIs.Location: Microsoft.Billing/stable/2023-04-01/billingProperty.json#L15 |
TopLevelResourcesListBySubscription |
The top-level resource 'BillingProperty' does not have list by subscription operation, please add it. Location: Microsoft.Billing/stable/2023-04-01/billingProperty.json#L132 |
| :warning: OperationIdNounConflictingModelNames | OperationId has a noun that conflicts with one of the model names in definitions section. The model name will be disambiguated to 'BillingPropertyModel'. Consider using the plural form of 'BillingProperty' to avoid this. Note: If you have already shipped an SDK on top of this spec, fixing this warning may introduce a breaking change. Location: Microsoft.Billing/stable/2023-04-01/billingProperty.json#L23 |
| :warning: OperationIdNounConflictingModelNames | OperationId has a noun that conflicts with one of the model names in definitions section. The model name will be disambiguated to 'BillingPropertyModel'. Consider using the plural form of 'BillingProperty' to avoid this. Note: If you have already shipped an SDK on top of this spec, fixing this warning may introduce a breaking change. Location: Microsoft.Billing/stable/2023-04-01/billingProperty.json#L83 |
️❌Avocado: 8 Errors, 0 Warnings failed [Detail]
| Rule | Message |
|---|---|
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /providers/Microsoft.Billing/billingAccounts/{}/customers/{}/billingSubscriptions is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: specification/billing/resource-manager/readme.md json: Microsoft.Billing/stable/2020-05-01/billing.json |
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /providers/Microsoft.Billing/billingAccounts/{}/customers/{}/products is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: specification/billing/resource-manager/readme.md json: Microsoft.Billing/stable/2020-05-01/billing.json |
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /providers/Microsoft.Billing/billingAccounts/{}/products is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: specification/billing/resource-manager/readme.md json: Microsoft.Billing/stable/2020-05-01/billing.json |
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /providers/Microsoft.Billing/billingAccounts/{}/billingProfiles/{}/products is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: specification/billing/resource-manager/readme.md json: Microsoft.Billing/stable/2020-05-01/billing.json |
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /providers/Microsoft.Billing/billingAccounts/{}/billingProfiles/{}/invoiceSections/{}/products is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: specification/billing/resource-manager/readme.md json: Microsoft.Billing/stable/2020-05-01/billing.json |
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /providers/Microsoft.Billing/billingAccounts/{}/products/{} is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: specification/billing/resource-manager/readme.md json: Microsoft.Billing/stable/2020-05-01/billing.json |
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /providers/Microsoft.Billing/billingAccounts/{}/products/{}/move is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: specification/billing/resource-manager/readme.md json: Microsoft.Billing/stable/2020-05-01/billing.json |
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /providers/Microsoft.Billing/billingAccounts/{}/products/{}/validateMoveEligibility is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: specification/billing/resource-manager/readme.md json: Microsoft.Billing/stable/2020-05-01/billing.json |
️️✔️SwaggerAPIView succeeded [Detail] [Expand]
️️✔️TypeSpecAPIView succeeded [Detail] [Expand]
️️✔️ModelValidation succeeded [Detail] [Expand]
Validation passes for ModelValidation.
️️✔️SemanticValidation succeeded [Detail] [Expand]
Validation passes for SemanticValidation.
️️✔️SpellCheck succeeded [Detail] [Expand]
Validation passes for SpellCheck.
️⌛PR Summary pending [Detail]
️️✔️Automated merging requirements met succeeded [Detail] [Expand]
Swagger Generation Artifacts
️❌ApiDocPreview: 1 Errors, 0 Warnings failed [Detail]
Only -1 items are listed, please refer to log for more details.
| Rule | Message |
|---|
️⚠️SDK Breaking Change Tracking warning [Detail]
Only 0 items are rendered, please refer to log for more details.
️️✔️ azure-sdk-for-net-track2 succeeded [Detail] [Expand]
Only 0 items are rendered, please refer to log for more details.
️❌ azure-sdk-for-python-track2 failed [Detail]
Only 0 items are rendered, please refer to log for more details.
️❌ azure-sdk-for-java failed [Detail]
Only 0 items are rendered, please refer to log for more details.
️❌ azure-sdk-for-go failed [Detail]
Only 0 items are rendered, please refer to log for more details.
️🔄 azure-sdk-for-js inProgress [Detail]
️❌ azure-resource-manager-schemas failed [Detail]
Only 0 items are rendered, please refer to log for more details.
️⚠️ azure-powershell warning [Detail]
Only 0 items are rendered, please refer to log for more details.
Generated ApiView
| Language | Package Name | ApiView Link |
|---|---|---|
| .Net | Azure.ResourceManager.Billing | Create ApiView timeout. Package is too large and we cannot create ApiView for it. |
| Swagger | Microsoft.Billing | https://apiview.dev/Assemblies/Review/89ef32e47c754b7795ef881587a41d9a?revisionId=a2aa470ea1f9445988645276f26e5dc0 |
Hi @bradenwatkins, one or multiple breaking change(s) is detected in your PR. Please check out the breaking change(s), and provide business justification in the PR comment and @ PR assignee why you must have these change(s), and how external customer impact can be mitigated. Please ensure to follow breaking change policy to request breaking change review and approval before proceeding swagger PR review. Action: To initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki. If you want to know the production traffic statistic, please see ARM Traffic statistic. If you think it is false positive breaking change, please provide the reasons in the PR comment, report to Swagger Tooling Team via https://aka.ms/swaggerfeedback. Note: To avoid breaking change, you can refer to Shift Left Solution for detecting breaking change in early phase at your service code repository.
Automatic PR validation started. This comment will be populated with next steps to merge this PR once validation is completed. Please wait ⌛.
PR validation pipeline restarted successfully. This comment will be populated with next steps to merge this PR once validation is completed. Please wait ⌛.
PR validation pipeline can not start as the pull request is not merged or mergeable - most likely it has merge conflicts.