azure-rest-api-specs
azure-rest-api-specs copied to clipboard
[Azure Load Testing] Onboarding to TypeSpec for control plane GA APIs
ARM (Control Plane) API Specification Update Pull Request
[!TIP] Overwhelmed by all this guidance? See the
Getting help
section at the bottom of this PR description.
[!NOTE] As of January 2024 there is no PR assignee. This is expected. See https://aka.ms/azsdk/pr-arm-review.
PR review workflow diagram
Please understand this diagram before proceeding. It explains how to get your PR approved & merged.
Click here to see the details of Step 1
Breaking changes review (Diagram Step 1)
If the automation determines you have breaking changes, i.e. Step 1 from the diagram applies to you,
you must follow the breaking changes process.
IMPORTANT This applies even if:
- The tool fails while it shouldn't, e.g. due to runtime exception, or incorrect detection of breaking changes.
- You believe there is no need for you to request breaking change approval, for any reason. Such claims must be reviewed, and the process is the same.
Click here to see the details of Step 2
ARM API changes review (Diagram Step 2)
- For help with Step 2 / "ARM review", see https://aka.ms/azsdk/pr-arm-review.
Click here to see the diagram footnotes
Diagram footnotes
[1] See ARM review queue (for PR merge queues, see [2]).
[2] public repo merge queue, private repo merge queue (for ARM review queue, [1])
The ARM reviewer on-call engineer visits the merge queue twice a day, so the approximate ETA for merges is 12 - 24 hours.
Purpose of this PR
What's the purpose of this PR? Check the specific option that applies. This is mandatory!
- [ ] New resource provider.
- [ ] New API version for an existing resource provider. (If API spec is not defined in TypeSpec, the PR should have been generated using OpenAPI Hub).
- [ ] Update existing version for a new feature. (This is applicable only when you are revising a private preview API version.)
- [x] Update existing version to fix OpenAPI spec quality issues in S360.
- [x] Other, please clarify:
- _We are onboarding our existing control plane GA Spec to be generated with the help of TypeSpec. No changes to APIs in our service were made. _
Due diligence checklist
To merge this PR, you must go through the following checklist and confirm you understood and followed the instructions by checking all the boxes:
- [x] I confirm this PR is modifying Azure Resource Manager (ARM) related specifications, and not data plane related specifications.
- [x] I have reviewed following Resource Provider guidelines, including
ARM resource provider contract and
REST guidelines (estimated time: 4 hours).
I understand this is required before I can proceed to the diagram Step 2, "ARM API changes review", for this PR.
Additional information
Viewing API changes
For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the Generated ApiView
comment added to this PR. You can use ApiView to show API versions diff.
Suppressing failures
If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the suppressions guide to get approval.
Getting help
- First, please carefully read through this PR description, from top to bottom. Please fill out the
Purpose of this PR
andDue diligence checklist
. - To understand what you must do next to merge this PR, see the
Next Steps to Merge
comment. It will appear within few minutes of submitting this PR and will continue to be up-to-date with current PR state. - For guidance on fixing this PR CI check failures, see the hyperlinks provided in given failure and https://aka.ms/ci-fix.
- For help with PR workflow diagram Step 2 (ARM review), see https://aka.ms/azsdk/pr-arm-review.
- If the PR CI checks appear to be stuck in
queued
state, please add a comment with contents/azp run
. This should result in a new comment denoting aPR validation pipeline
has started and the checks should be updated after few minutes. - If the help provided by the previous points is not enough, post to https://aka.ms/azsdk/support/specreview-channel and link to this PR.
Next Steps to Merge
✅ All automated merging requirements have been met! To get your PR merged, see https://aka.ms/azsdk/specreview/merge.
Swagger Validation Report
️❌
BreakingChange: 64 Errors, 7 Warnings failed [Detail]
Compared specs (v0.10.7) | new version | base version |
---|---|---|
loadtestservice.json | 2022-12-01(01982f2) | 2022-12-01(main) |
Only 30 items are listed, please refer to log for more details.
️️✔️
Breaking Change(Cross-Version) succeeded [Detail] [Expand]
There are no breaking changes.
️️✔️
CredScan succeeded [Detail] [Expand]
There is no credential detected.
️⚠️
LintDiff: 1 Warnings warning [Detail]
Compared specs (v2.2.0) | new version | base version |
---|---|---|
package-2022-12-01 | package-2022-12-01(01982f2) | package-2022-12-01(main) |
[must fix]The following errors/warnings are introduced by current PR:
Rule | Message | Related RPC [For API reviewers] |
---|---|---|
:warning: LocationMustHaveXmsMutability | Property location must have 'x-ms-mutability':['read', 'create'] extension defined.Location: Microsoft.LoadTestService/stable/2022-12-01/loadtestservice.json#L940 |
RPC-Put-V1-14 |
The following errors/warnings exist before current PR submission:
Rule | Message |
---|---|
ResourceNameRestriction |
The resource name parameter 'quotaBucketName' should be defined with a 'pattern' restriction. Location: Microsoft.LoadTestService/stable/2022-12-01/loadtestservice.json#L170 |
ResourceNameRestriction |
The resource name parameter 'quotaBucketName' should be defined with a 'pattern' restriction. Location: Microsoft.LoadTestService/stable/2022-12-01/loadtestservice.json#L217 |
ResourceNameRestriction |
The resource name parameter 'loadTestName' should be defined with a 'pattern' restriction. Location: Microsoft.LoadTestService/stable/2022-12-01/loadtestservice.json#L316 |
PatchBodyParametersSchema |
Properties of a PATCH request body must not be required, property:type. Location: Microsoft.LoadTestService/stable/2022-12-01/loadtestservice.json#L464 |
LroLocationHeader |
A 202 response should include an Location response header. Location: Microsoft.LoadTestService/stable/2022-12-01/loadtestservice.json#L479 |
ResourceNameRestriction |
The resource name parameter 'loadTestName' should be defined with a 'pattern' restriction. Location: Microsoft.LoadTestService/stable/2022-12-01/loadtestservice.json#L568 |
: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.LoadTestService/stable/2022-12-01/loadtestservice.json#L658 |
️️✔️
Avocado succeeded [Detail] [Expand]
Validation passes for Avocado.
️️✔️
SwaggerAPIView succeeded [Detail] [Expand]
️️✔️
TypeSpecAPIView succeeded [Detail] [Expand]
️️✔️
ModelValidation succeeded [Detail] [Expand]
Validation passes for ModelValidation.
️️✔️
SemanticValidation succeeded [Detail] [Expand]
Validation passes for SemanticValidation.
️️✔️
PoliCheck succeeded [Detail] [Expand]
Validation passed for PoliCheck.
️️✔️
SpellCheck succeeded [Detail] [Expand]
Validation passes for SpellCheck.
️️✔️
Lint(RPaaS) succeeded [Detail] [Expand]
Validation passes for Lint(RPaaS).
️️✔️
PR Summary succeeded [Detail] [Expand]
Validation passes for Summary.
️️✔️
Automated merging requirements met succeeded [Detail] [Expand]
Swagger Generation Artifacts
️❌
ApiDocPreview: 1 Errors, 0 Warnings failed [Detail]
Rule | Message |
---|---|
RestBuild error |
"logUrl":"https://apidrop.visualstudio.com/Content%20CI/_build/results?buildId=422259&view=logs&j=fd490c07-0b22-5182-fac9-6d67fe1e939b", "detail":"Run.ps1 failed with exit code 1 " |
️⚠️
azure-sdk-for-python warning [Detail]
⚠️
Warning [Logs] Generate from 0a7a59c7b2d7cc7069d768034ec675f90f3cd1b8. SDK Automation 14.0.0command sh scripts/automation_init.sh ../azure-sdk-for-python_tmp/initInput.json ../azure-sdk-for-python_tmp/initOutput.json cmderr [automation_init.sh] WARNING: Skipping azure-nspkg as it is not installed. warn specification/loadtestservice/LoadTestService.Management/tspconfig.yaml skipped due to azure-sdk-for-python not found in tspconfig.yaml command sh scripts/automation_generate.sh ../azure-sdk-for-python_tmp/generateInput.json ../azure-sdk-for-python_tmp/generateOutput.json cmderr [automation_generate.sh] cmderr [automation_generate.sh] New minor version of npm available! 10.2.4 -> 10.5.0 cmderr [automation_generate.sh] npm notice Changelog: <https://github.com/npm/cli/releases/tag/v10.5.0> cmderr [automation_generate.sh] npm notice Run `npm install -g [email protected]` to update! cmderr [automation_generate.sh] npm notice
️✔️
azure-mgmt-loadtesting [View full logs] [Preview SDK Changes] Breaking Change Detectedinfo [Changelog] ### Breaking Changes info [Changelog] info [Changelog] - Model QuotaBucketRequest no longer has parameter id info [Changelog] - Model QuotaBucketRequest no longer has parameter name info [Changelog] - Model QuotaBucketRequest no longer has parameter system_data info [Changelog] - Model QuotaBucketRequest no longer has parameter type info [Changelog] - Operation LoadTestsOperations.begin_create_or_update has a new required parameter resource info [Changelog] - Operation LoadTestsOperations.begin_create_or_update no longer has parameter load_test_resource info [Changelog] - Operation LoadTestsOperations.begin_update has a new required parameter properties info [Changelog] - Operation LoadTestsOperations.begin_update no longer has parameter load_test_resource_patch_request_body info [Changelog] - Operation QuotasOperations.check_availability has a new required parameter body info [Changelog] - Operation QuotasOperations.check_availability no longer has parameter quota_bucket_request info [Changelog] - Parameter domain_name of model EndpointDependency is now required info [Changelog] - Parameter id of model CheckQuotaAvailabilityResponse is now required info [Changelog] - Parameter type of model CheckQuotaAvailabilityResponse is now required
Present SDK breaking changes suppressions Model QuotaBucketRequest no longer has parameter id Model QuotaBucketRequest no longer has parameter name Model QuotaBucketRequest no longer has parameter system_data Model QuotaBucketRequest no longer has parameter type Operation LoadTestsOperations.begin_create_or_update has a new required parameter resource Operation LoadTestsOperations.begin_create_or_update no longer has parameter load_test_resource Operation LoadTestsOperations.begin_update has a new required parameter properties Operation LoadTestsOperations.begin_update no longer has parameter load_test_resource_patch_request_body Operation QuotasOperations.check_availability has a new required parameter body Operation QuotasOperations.check_availability no longer has parameter quota_bucket_request Parameter domain_name of model EndpointDependency is now required Parameter id of model CheckQuotaAvailabilityResponse is now required Parameter type of model CheckQuotaAvailabilityResponse is now required
Please refer to https://aka.ms/azsdk/sdk-suppression for more information.
️⚠️
azure-sdk-for-java warning [Detail]
⚠️
Warning [Logs] Generate from 0a7a59c7b2d7cc7069d768034ec675f90f3cd1b8. SDK Automation 14.0.0command ./eng/mgmt/automation/init.sh ../azure-sdk-for-java_tmp/initInput.json ../azure-sdk-for-java_tmp/initOutput.json cmderr [init.sh] [notice] A new release of pip is available: 23.0.1 -> 24.0 cmderr [init.sh] [notice] To update, run: pip install --upgrade pip cmderr [init.sh] [notice] A new release of pip is available: 23.0.1 -> 24.0 cmderr [init.sh] [notice] To update, run: pip install --upgrade pip command ./eng/mgmt/automation/generate.py ../azure-sdk-for-java_tmp/generateInput.json ../azure-sdk-for-java_tmp/generateOutput.json
️✔️
azure-resourcemanager-loadtesting [View full logs] [Preview SDK Changes]
️️✔️
azure-sdk-for-go succeeded [Detail] [Expand]
️✔️
Succeeded [Logs] Generate from 0a7a59c7b2d7cc7069d768034ec675f90f3cd1b8. SDK Automation 14.0.0command sh ./eng/scripts/automation_init.sh ../../../../../azure-sdk-for-go_tmp/initInput.json ../../../../../azure-sdk-for-go_tmp/initOutput.json warn specification/loadtestservice/LoadTestService.Management/tspconfig.yaml skipped due to azure-sdk-for-go not found in tspconfig.yaml command generator automation-v2 ../../../../../azure-sdk-for-go_tmp/generateInput.json ../../../../../azure-sdk-for-go_tmp/generateOutput.json
️✔️
sdk/resourcemanager/loadtesting/armloadtesting [View full logs] [Preview SDK Changes] Breaking Change Detectedinfo [Changelog] ### Breaking Changes info [Changelog] info [Changelog] - Function `*LoadTestsClient.BeginUpdate` parameter(s) have been changed from `(context.Context, string, string, LoadTestResourcePatchRequestBody, *LoadTestsClientBeginUpdateOptions)` to `(context.Context, string, string, LoadTestResourceUpdate, *LoadTestsClientBeginUpdateOptions)` info [Changelog] - Struct `LoadTestResourcePageList` has been removed info [Changelog] - Struct `LoadTestResourcePatchRequestBody` has been removed info [Changelog] - Struct `LoadTestResourcePatchRequestBodyProperties` has been removed info [Changelog] - Struct `OutboundEnvironmentEndpointCollection` has been removed info [Changelog] - Struct `QuotaResourceList` has been removed info [Changelog] - Field `LoadTestResourcePageList` of struct `LoadTestsClientListByResourceGroupResponse` has been removed info [Changelog] - Field `LoadTestResourcePageList` of struct `LoadTestsClientListBySubscriptionResponse` has been removed info [Changelog] - Field `OutboundEnvironmentEndpointCollection` of struct `LoadTestsClientListOutboundNetworkDependenciesEndpointsResponse` has been removed info [Changelog] - Field `ID`, `Name`, `SystemData`, `Type` of struct `QuotaBucketRequest` has been removed info [Changelog] - Field `QuotaResourceList` of struct `QuotasClientListResponse` has been removed info [Changelog] info [Changelog] ### Features Added info [Changelog] info [Changelog] - New struct `LoadTestResourceListResult` info [Changelog] - New struct `LoadTestResourceUpdate` info [Changelog] - New struct `LoadTestResourceUpdateProperties` info [Changelog] - New struct `PagedOutboundEnvironmentEndpoint` info [Changelog] - New struct `QuotaResourceListResult` info [Changelog] - New anonymous field `LoadTestResourceListResult` in struct `LoadTestsClientListByResourceGroupResponse` info [Changelog] - New anonymous field `LoadTestResourceListResult` in struct `LoadTestsClientListBySubscriptionResponse` info [Changelog] - New anonymous field `PagedOutboundEnvironmentEndpoint` in struct `LoadTestsClientListOutboundNetworkDependenciesEndpointsResponse` info [Changelog] - New anonymous field `QuotaResourceListResult` in struct `QuotasClientListResponse` info [Changelog] info [Changelog] Total 16 breaking change(s), 14 additive change(s).
Present SDK breaking changes suppressions Field `ID`, `Name`, `SystemData`, `Type` of struct `QuotaBucketRequest` has been removed Field `LoadTestResourcePageList` of struct `LoadTestsClientListByResourceGroupResponse` has been removed Field `LoadTestResourcePageList` of struct `LoadTestsClientListBySubscriptionResponse` has been removed Field `OutboundEnvironmentEndpointCollection` of struct `LoadTestsClientListOutboundNetworkDependenciesEndpointsResponse` has been removed Field `QuotaResourceList` of struct `QuotasClientListResponse` has been removed Function `*LoadTestsClient.BeginUpdate` parameter(s) have been changed from `(context.Context, string, string, LoadTestResourcePatchRequestBody, *LoadTestsClientBeginUpdateOptions)` to `(context.Context, string, string, LoadTestResourceUpdate, *LoadTestsClientBeginUpdateOptions)` Struct `LoadTestResourcePageList` has been removed Struct `LoadTestResourcePatchRequestBodyProperties` has been removed Struct `LoadTestResourcePatchRequestBody` has been removed Struct `OutboundEnvironmentEndpointCollection` has been removed Struct `QuotaResourceList` has been removed
Please refer to https://aka.ms/azsdk/sdk-suppression for more information.
️️✔️
azure-sdk-for-js succeeded [Detail] [Expand]
️✔️
Succeeded [Logs] Generate from 0a7a59c7b2d7cc7069d768034ec675f90f3cd1b8. SDK Automation 14.0.0command sh .scripts/automation_init.sh ../azure-sdk-for-js_tmp/initInput.json ../azure-sdk-for-js_tmp/initOutput.json warn File azure-sdk-for-js_tmp/initOutput.json not found to read command sh .scripts/automation_generate.sh ../azure-sdk-for-js_tmp/generateInput.json ../azure-sdk-for-js_tmp/generateOutput.json
️✔️
@azure/arm-loadtesting [View full logs] [Preview SDK Changes] Breaking Change Detectedinfo [Changelog] **Features** info [Changelog] info [Changelog] - Added Interface LoadTestResourceListResult info [Changelog] - Added Interface LoadTestResourceUpdate info [Changelog] - Added Interface PagedOutboundEnvironmentEndpoint info [Changelog] - Added Interface ProxyResource info [Changelog] - Added Interface QuotaResourceListResult info [Changelog] - Added Type Alias LoadTestsDeleteResponse info [Changelog] - Interface CheckQuotaAvailabilityResponse has a new optional parameter name info [Changelog] - Interface CheckQuotaAvailabilityResponse has a new optional parameter systemData info [Changelog] - Interface LoadTestsCreateOrUpdateHeaders has a new optional parameter retryAfter info [Changelog] - Interface LoadTestsDeleteHeaders has a new optional parameter retryAfter info [Changelog] - Interface LoadTestsUpdateHeaders has a new optional parameter retryAfter info [Changelog] info [Changelog] **Breaking Changes** info [Changelog] info [Changelog] - Operation LoadTests.beginUpdate has a new signature info [Changelog] - Operation LoadTests.beginUpdateAndWait has a new signature info [Changelog] - Interface CheckQuotaAvailabilityResponse has a new required parameter id info [Changelog] - Interface CheckQuotaAvailabilityResponse has a new required parameter type info [Changelog] - Parameter domainName of interface EndpointDependency is now required
Present SDK breaking changes suppressions Interface CheckQuotaAvailabilityResponse has a new required parameter id Interface CheckQuotaAvailabilityResponse has a new required parameter type Operation LoadTests.beginUpdate has a new signature Operation LoadTests.beginUpdateAndWait has a new signature Parameter domainName of interface EndpointDependency is now required
Please refer to https://aka.ms/azsdk/sdk-suppression for more information.
️️✔️
azure-powershell succeeded [Detail] [Expand]
️✔️
Succeeded [Logs] Generate from 0a7a59c7b2d7cc7069d768034ec675f90f3cd1b8. SDK Automation 14.0.0command sh ./tools/SwaggerCI/init.sh ../azure-powershell_tmp/initInput.json ../azure-powershell_tmp/initOutput.json warn specification/loadtestservice/LoadTestService.Management/tspconfig.yaml skipped due to azure-powershell not found in tspconfig.yaml command pwsh ./tools/SwaggerCI/psci.ps1 ../azure-powershell_tmp/generateInput.json ../azure-powershell_tmp/generateOutput.json
️✔️
Az.loadtestservice.DefaultTag [View full logs] [Preview SDK Changes]
Generated ApiView
Language | Package Name | ApiView Link |
---|---|---|
Go | sdk/resourcemanager/loadtesting/armloadtesting | https://apiview.dev/Assemblies/Review/002d4025b23b4299a8d5ac660d16826d?revisionId=fd928ca2c6cc4498be2dbc901a4e2881 |
Java | azure-resourcemanager-loadtesting | https://apiview.dev/Assemblies/Review/5b84036a81874c0a8f3b4a7b43426f22?revisionId=62dfce5d823e42e1b10d9aeea0adbbaf |
JavaScript | @azure/arm-loadtesting | https://apiview.dev/Assemblies/Review/7c41924d5060455f9b62dd74e403701a?revisionId=354e3f288740489c8ff6a42fe567aec5 |
Swagger | Microsoft.LoadTestService | https://apiview.dev/Assemblies/Review/495fc1b0cebd40db9f2774dfc62de3cc?revisionId=f676bfa2e29842a0b26c459768f40dde |
TypeSpec | LoadTestService.Management | https://apiview.dev/Assemblies/Review/d4db9f6cfa514080a0bab9e43f0cab96?revisionId=c9cff29c50b74ccda0499dbec47d4c87 |
Please address or respond to feedback from the ARM API reviewer.
When you are ready to continue the ARM API review, please remove the ARMChangesRequested
label.
This will notify the reviewer to have another look.
If the feedback provided needs further discussion, please use this Teams channel to post your questions - aka.ms/azsdk/support/specreview-channel.
Please include [ARM Query]
in the title of your question to indicate that it is ARM-related.
The history on this branch looks like it's pulling in old commits that were already merged into the repo, could you fix that? Maybe need to rebase over main?
Also, please go through the CI errors and fix where possible.
Hi @Himanshu49, please fix SDK azure-sdk-for-go
CI Duplicate Schema named 'Resource'
conflicts with:
- https://github.com/Azure/azure-rest-api-specs/blob/ec645926c2d4de2ad4706e7b3b24eae8a5f86615/specification/loadtestservice/resource-manager/Microsoft.LoadTestService/stable/2022-12-01/loadtestservice.json#L1014
- https://github.com/Azure/azure-rest-api-specs/blob/main/specification/common-types/resource-management/v5/types.json#L9
/azp run
Azure Pipelines successfully started running 4 pipeline(s).
@Himanshu49, Please fix all lint errors mentioned here https://github.com/Azure/azure-rest-api-specs/pull/27565/checks?check_run_id=22374860886.
After that remove ArmChangesRequested
tag for further review.
Please can we fix these linter errors:
-provisioning state should be marked readonly or visibility as read
-location should be annotated with @visibility
-x-ms-pageable extension must be specified for LIST calls
❌ XmsPageableForListCalls | x-ms-pageable extension must be specified for LIST APIs.Location: Microsoft.LoadTestService/stable/2022-12-01/loadtestservice.json#L588 | RPC-Get-V1-13 ⚠️ PageableOperation | Based on the response model schema, operation 'LoadTests_ListOutboundNetworkDependenciesEndpoints' might be pageable. Consider adding the x-ms-pageable extension.Location: Microsoft.LoadTestService/stable/2022-12-01/loadtestservice.json#L588 | ⚠️ LocationMustHaveXmsMutability | Property location must have 'x-ms-mutability':['read', 'create'] extension defined.Location: Microsoft.LoadTestService/stable/2022-12-01/loadtestservice.json#L946 | RPC-Put-V1-14
/azp run Swagger LintDiff
No pipelines are associated with this pull request.
/azp run
Azure Pipelines successfully started running 4 pipeline(s).
@TimLovellSmith , if you still oncall, please revisit.
No API Changes. Changes only in Type Spec
/azp run
Azure Pipelines successfully started running 4 pipeline(s).
/azp run
Azure Pipelines successfully started running 4 pipeline(s).
/azp run
Azure Pipelines successfully started running 4 pipeline(s).
@Himanshu49 Typespec validation is failing, can you run the tsv command locally and fix any errors that show up?