Migrate existing Azure AI Face service to TypeSpec
Data Plane API - Pull Request
Face API is an existing service & restful API for 5+ years as documented in What is the Azure AI Face service?. We continue to extend with new API and the latest addition was Detect liveness in faces that was released in Ignite in Nov 2023 as a Public Preview. At that time, we wanted to release a REST SDK for detect liveness too. However, we were told we cannot use OpenAPI spec that we used to create SDK for old APIs like Detect/Verify/Identify, etc. anymore and TypeSpec is the only option to release new SDK. Our current objective is to release an All-In-One SDK for all the APIs by using TypeSpec, including the existing Face Detect, Verify, Identify, FindSimilar, and the latest detect liveness.
API Info: The Basics
Most of the information about your service should be captured in the issue that serves as your API Spec engagement record.
- Link to API Spec engagement record issue:
Is this review for (select one):
- [ ] a private preview
- [x] a public preview
- [ ] GA release
Change Scope
This section will help us focus on the specific parts of your API that are new or have been modified.
Please share a link to the design document for the new APIs, a link to the previous API Spec document (if applicable), and the root paths that have been updated.
- Design Document:
- Previous API Spec Doc: https://github.com/Azure/azure-rest-api-specs/blob/main/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/Face.json
- Updated paths: https://github.com/Han-msft/azure-rest-api-specs/blob/hachiang/face-typespec/specification/ai/data-plane/Face/preview/v1.1-preview.1/Face.json
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 Swagger-Suppression-Process to get approval.
❔Got questions? Need additional info?? We are here to help!
Contact us!
The Azure API Review Board is dedicated to helping you create amazing APIs. You can read about our mission and learn more about our process on our wiki.
- 💬 Teams Channel
Click here for links to tools, specs, guidelines & other good stuff
Tooling
- Open API validation tools were run on this PR. Go here to see how to fix errors
- Spectral Linting
- Open API Hub
Guidelines & Specifications
Helpful Links
Checks stuck in `queued` state?
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 a `PR validation pipeline` has started and the checks should be updated after few minutes.
Next Steps to Merge
✅ All automated merging requirements have been met! To get your PR merged, see aka.ms/azsdk/specreview/merge.
Swagger Validation Report
️️✔️BreakingChange succeeded [Detail] [Expand]
There are no breaking changes.
️❌Breaking Change(Cross-Version): 329 Errors, 219 Warnings failed [Detail]
| Compared specs (v0.10.8) | new version | base version |
|---|---|---|
| Face.json | v1.1-preview.1(482ba27) | v1.0(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.
| Rule | Message |
|---|---|
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/snapshots' removed or restructured? Old: Face/stable/v1.0/Face.json#L2253:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/snapshots/{snapshotId}' removed or restructured? Old: Face/stable/v1.0/Face.json#L2347:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/snapshots/{snapshotId}/apply' removed or restructured? Old: Face/stable/v1.0/Face.json#L2449:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/verify?overload=person' removed or restructured? Old: Face/stable/v1.0/Face.json#L2533:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/detect?overload=stream' removed or restructured? Old: Face/stable/v1.0/Face.json#L2576:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/persongroups/{personGroupId}/persons/{personId}/persistedfaces?overload=stream' removed or restructured? Old: Face/stable/v1.0/Face.json#L2633:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/facelists/{faceListId}/persistedfaces?overload=stream' removed or restructured? Old: Face/stable/v1.0/Face.json#L2684:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/largepersongroups/{largePersonGroupId}/persons/{personId}/persistedfaces?overload=stream' removed or restructured? Old: Face/stable/v1.0/Face.json#L2732:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/largefacelists/{largeFaceListId}/persistedfaces?overload=stream' removed or restructured? Old: Face/stable/v1.0/Face.json#L2783:5 |
1006 - RemovedDefinition |
The new version is missing a definition that was found in the old version. Was 'FindSimilarRequest' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L7255:3 Old: Face/stable/v1.0/Face.json#L2832:3 |
1006 - RemovedDefinition |
The new version is missing a definition that was found in the old version. Was 'GroupRequest' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L7255:3 Old: Face/stable/v1.0/Face.json#L2832:3 |
1006 - RemovedDefinition |
The new version is missing a definition that was found in the old version. Was 'IdentifyRequest' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L7255:3 Old: Face/stable/v1.0/Face.json#L2832:3 |
1006 - RemovedDefinition |
The new version is missing a definition that was found in the old version. Was 'VerifyFaceToPersonRequest' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L7255:3 Old: Face/stable/v1.0/Face.json#L2832:3 |
1006 - RemovedDefinition |
The new version is missing a definition that was found in the old version. Was 'VerifyFaceToFaceRequest' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L7255:3 Old: Face/stable/v1.0/Face.json#L2832:3 |
1006 - RemovedDefinition |
The new version is missing a definition that was found in the old version. Was 'UpdateFaceRequest' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L7255:3 Old: Face/stable/v1.0/Face.json#L2832:3 |
1006 - RemovedDefinition |
The new version is missing a definition that was found in the old version. Was 'Confidence' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L7255:3 Old: Face/stable/v1.0/Face.json#L2832:3 |
1006 - RemovedDefinition |
The new version is missing a definition that was found in the old version. Was 'NameAndUserDataContract' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L7255:3 Old: Face/stable/v1.0/Face.json#L2832:3 |
1006 - RemovedDefinition |
The new version is missing a definition that was found in the old version. Was 'MetaDataContract' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L7255:3 Old: Face/stable/v1.0/Face.json#L2832:3 |
1006 - RemovedDefinition |
The new version is missing a definition that was found in the old version. Was 'ApplyScope' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L7255:3 Old: Face/stable/v1.0/Face.json#L2832:3 |
1006 - RemovedDefinition |
The new version is missing a definition that was found in the old version. Was 'ApplySnapshotRequest' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L7255:3 Old: Face/stable/v1.0/Face.json#L2832:3 |
1006 - RemovedDefinition |
The new version is missing a definition that was found in the old version. Was 'TakeSnapshotRequest' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L7255:3 Old: Face/stable/v1.0/Face.json#L2832:3 |
1006 - RemovedDefinition |
The new version is missing a definition that was found in the old version. Was 'UpdateSnapshotRequest' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L7255:3 Old: Face/stable/v1.0/Face.json#L2832:3 |
1006 - RemovedDefinition |
The new version is missing a definition that was found in the old version. Was 'ImageUrl' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L7255:3 Old: Face/stable/v1.0/Face.json#L2832:3 |
1007 - RemovedClientParameter |
The new version is missing a client parameter that was found in the old version. Was 'returnFaceAttributes' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L9398:3 Old: Face/stable/v1.0/Face.json#L4272:3 |
1007 - RemovedClientParameter |
The new version is missing a client parameter that was found in the old version. Was 'targetFace' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L9398:3 Old: Face/stable/v1.0/Face.json#L4272:3 |
1007 - RemovedClientParameter |
The new version is missing a client parameter that was found in the old version. Was 'faceUserData' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L9398:3 Old: Face/stable/v1.0/Face.json#L4272:3 |
1007 - RemovedClientParameter |
The new version is missing a client parameter that was found in the old version. Was 'faceListId' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L9398:3 Old: Face/stable/v1.0/Face.json#L4272:3 |
1007 - RemovedClientParameter |
The new version is missing a client parameter that was found in the old version. Was 'personGroupId' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L9398:3 Old: Face/stable/v1.0/Face.json#L4272:3 |
1007 - RemovedClientParameter |
The new version is missing a client parameter that was found in the old version. Was 'largeFaceListId' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L9398:3 Old: Face/stable/v1.0/Face.json#L4272:3 |
1007 - RemovedClientParameter |
The new version is missing a client parameter that was found in the old version. Was 'largePersonGroupId' removed or renamed? New: Face/preview/v1.1-preview.1/Face.json#L9398:3 Old: Face/stable/v1.0/Face.json#L4272:3 |
️️✔️CredScan succeeded [Detail] [Expand]
There is no credential detected.
️⚠️LintDiff: 113 Warnings warning [Detail]
| Compared specs (v2.2.1) | new version | base version |
|---|---|---|
| v1.1-preview.1 | v1.1-preview.1(482ba27) | default(main) |
[must fix]The following errors/warnings are introduced by current PR:
Only 30 items are listed, please refer to log for more details.
| Rule | Message | Related RPC [For API reviewers] |
|---|---|---|
| :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: Face/preview/v1.1-preview.1/Face.json#L167 |
|
| :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: Face/preview/v1.1-preview.1/Face.json#L272 |
|
| :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: Face/preview/v1.1-preview.1/Face.json#L280 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L354 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L407 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L448 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L449 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L487 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L488 |
|
| :warning: Delete204Response | A delete operation should have a 204 response.Location: Face/preview/v1.1-preview.1/Face.json#L496 |
|
| :warning: SuccessResponseBody | All success responses except 202 & 204 should define a response body. Location: Face/preview/v1.1-preview.1/Face.json#L497 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L524 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L525 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L586 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L642 |
|
| :warning: Formdata | Check for appropriate use of formData parameters. Location: Face/preview/v1.1-preview.1/Face.json#L643 |
|
| :warning: Formdata | Check for appropriate use of formData parameters. Location: Face/preview/v1.1-preview.1/Face.json#L646 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L681 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L682 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L720 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L721 |
|
| :warning: Delete204Response | A delete operation should have a 204 response.Location: Face/preview/v1.1-preview.1/Face.json#L729 |
|
| :warning: SuccessResponseBody | All success responses except 202 & 204 should define a response body. Location: Face/preview/v1.1-preview.1/Face.json#L730 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L757 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L758 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L819 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L875 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L917 |
|
| :warning: PatchContentType | A patch operation should consume 'application/merge-patch+json' content type. Location: Face/preview/v1.1-preview.1/Face.json#L993 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L997 |
The following errors/warnings exist before current PR submission:
Only 30 items are listed, please refer to log for more details.
| Rule | Message |
|---|---|
| :warning: VersionConvention | API version should be a date in YYYY-MM-DD format, optionally suffixed with '-preview'. Location: Face/preview/v1.1-preview.1/Face.json#L5 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L92 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L1189 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L1234 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L1284 |
| :warning: SuccessResponseBody | All success responses except 202 & 204 should define a response body. Location: Face/preview/v1.1-preview.1/Face.json#L1358 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L1383 |
| :warning: SuccessResponseBody | All success responses except 202 & 204 should define a response body. Location: Face/preview/v1.1-preview.1/Face.json#L1417 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L1442 |
| :warning: Delete204Response | A delete operation should have a 204 response.Location: Face/preview/v1.1-preview.1/Face.json#L1454 |
| :warning: SuccessResponseBody | All success responses except 202 & 204 should define a response body. Location: Face/preview/v1.1-preview.1/Face.json#L1455 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L1483 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L1601 |
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L1612 |
| :warning: Delete204Response | A delete operation should have a 204 response.Location: Face/preview/v1.1-preview.1/Face.json#L1621 |
| :warning: SuccessResponseBody | All success responses except 202 & 204 should define a response body. Location: Face/preview/v1.1-preview.1/Face.json#L1622 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L1650 |
| :warning: PaginationResponse | Operation might be pageable. Consider adding the x-ms-pageable extension. Location: Face/preview/v1.1-preview.1/Face.json#L1742 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L1746 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L1800 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L1880 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L1943 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L1993 |
| :warning: SuccessResponseBody | All success responses except 202 & 204 should define a response body. Location: Face/preview/v1.1-preview.1/Face.json#L2067 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L2092 |
| :warning: SuccessResponseBody | All success responses except 202 & 204 should define a response body. Location: Face/preview/v1.1-preview.1/Face.json#L2126 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L2152 |
| :warning: Delete204Response | A delete operation should have a 204 response.Location: Face/preview/v1.1-preview.1/Face.json#L2164 |
| :warning: SuccessResponseBody | All success responses except 202 & 204 should define a response body. Location: Face/preview/v1.1-preview.1/Face.json#L2165 |
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L2193 |
️️✔️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 inProgress [Detail]
️⚠️ azure-sdk-for-python warning [Detail]
⚠️Warning in generating from 37acfe2967e5e1be1169146ac461eb1875c9476e. 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. cmderr [automation_init.sh] cmderr [automation_init.sh] npm notice New minor version of npm available! 10.5.0 -> 10.6.0 cmderr [automation_init.sh] npm notice Changelog: <https://github.com/npm/cli/releases/tag/v10.6.0> cmderr [automation_init.sh] npm notice Run `npm install -g [email protected]` to update! cmderr [automation_init.sh] npm notice warn specification/ai/data-plane/Face/readme.md skipped due to azure-sdk-for-python not found in swagger-to-sdk command sh scripts/automation_generate.sh ../azure-sdk-for-python_tmp/generateInput.json ../azure-sdk-for-python_tmp/generateOutput.json
️✔️azure-ai-vision-face [Preview SDK Changes]- azure_ai_vision_face-1.0.0b1-py3-none-any.whl
- azure-ai-vision-face-1.0.0b1.zip
info [Changelog] data-plan skip changelog generation temporarily
️❌ azure-sdk-for-net-track2 failed [Detail]
❌Pipeline Framework Failed in generating from 37acfe2967e5e1be1169146ac461eb1875c9476e. SDK Automation 14.0.0command pwsh ./eng/scripts/Automation-Sdk-Init.ps1 ../azure-sdk-for-net_tmp/initInput.json ../azure-sdk-for-net_tmp/initOutput.json warn specification/ai/data-plane/Face/readme.md skipped due to azure-sdk-for-net-track2 not found in swagger-to-sdk command pwsh ./eng/scripts/Invoke-GenerateAndBuildV2.ps1 ../azure-sdk-for-net_tmp/generateInput.json ../azure-sdk-for-net_tmp/generateOutput.json cmderr [Invoke-GenerateAndBuildV2.ps1] cmderr [Invoke-GenerateAndBuildV2.ps1] npm notice New minor version of npm available! 10.5.0 -> 10.6.0 cmderr [Invoke-GenerateAndBuildV2.ps1] npm notice Changelog: <https://github.com/npm/cli/releases/tag/v10.6.0> cmderr [Invoke-GenerateAndBuildV2.ps1] npm notice Run `npm install -g [email protected]` to update! cmderr [Invoke-GenerateAndBuildV2.ps1] npm notice cmderr [Invoke-GenerateAndBuildV2.ps1] System.InvalidOperationException: The parameter object is marked as Spread but its type is not ModelTypeProvider (got object cmderr [Invoke-GenerateAndBuildV2.ps1] ) cmderr [Invoke-GenerateAndBuildV2.ps1] at AutoRest.CSharp.Output.Models.OperationMethodChainBuilder.BuildConvenienceMethod(Boolean shouldRequestContextOptional, ConvenienceMethodGenerationInfo generationInfo) in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\LowLevel\Output\OperationMethodChainBuilder.cs:line 378 cmderr [Invoke-GenerateAndBuildV2.ps1] at AutoRest.CSharp.Output.Models.OperationMethodChainBuilder.BuildOperationMethodChain() in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\LowLevel\Output\OperationMethodChainBuilder.cs:line 106 cmderr [Invoke-GenerateAndBuildV2.ps1] at AutoRest.CSharp.Output.Models.LowLevelClient.BuildMethods(LowLevelClient client, TypeFactory typeFactory, IEnumerable`1 operations, ClientFields fields, String namespaceName, String clientName, SourceInputModel sourceInputModel)+MoveNext() in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\LowLevel\Output\LowLevelClient.cs:line 131 cmderr [Invoke-GenerateAndBuildV2.ps1] at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items) cmderr [Invoke-GenerateAndBuildV2.ps1] at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source) cmderr [Invoke-GenerateAndBuildV2.ps1] at AutoRest.CSharp.Output.Models.LowLevelClient.get_AllClientMethods() in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\LowLevel\Output\LowLevelClient.cs:line 95 cmderr [Invoke-GenerateAndBuildV2.ps1] at AutoRest.CSharp.Output.Models.LowLevelClient.get_ClientMethods() in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\LowLevel\Output\LowLevelClient.cs:line 98 cmderr [Invoke-GenerateAndBuildV2.ps1] at AutoRest.CSharp.Generation.Writers.DpgClientWriter.WriteClient() in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\LowLevel\Generation\DpgClientWriter.cs:line 63 cmderr [Invoke-GenerateAndBuildV2.ps1] at AutoRest.CSharp.AutoRest.Plugins.LowLevelTarget.ExecuteAsync(GeneratedCodeWorkspace project, InputNamespace inputNamespace, SourceInputModel sourceInputModel, Boolean isTspInput) in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\LowLevel\AutoRest\LowLevelTarget.cs:line 40 cmderr [Invoke-GenerateAndBuildV2.ps1] at AutoRest.CSharp.AutoRest.Plugins.CSharpGen.ExecuteAsync(InputNamespace rootNamespace) in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\Common\AutoRest\Plugins\CSharpGen.cs:line 91 cmderr [Invoke-GenerateAndBuildV2.ps1] at AutoRest.CSharp.AutoRest.Communication.StandaloneGeneratorRunner.RunAsync(CommandLineOptions options) in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\Common\AutoRest\Communication\StandaloneGeneratorRunner.cs:line 51 cmderr [Invoke-GenerateAndBuildV2.ps1] at AutoRest.CSharp.Program.Run(CommandLineOptions options) in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\Program.cs:line 47 cmderr [Invoke-GenerateAndBuildV2.ps1] at AutoRest.CSharp.Program.<>c.<<Main>b__2_0>d.MoveNext() in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\Program.cs:line 29 cmderr [Invoke-GenerateAndBuildV2.ps1] --- End of stack trace from previous location --- cmderr [Invoke-GenerateAndBuildV2.ps1] at AutoRest.CSharp.Program.Main(String[] args) in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\Program.cs:line 26 cmderr [Invoke-GenerateAndBuildV2.ps1] at AutoRest.CSharp.Program.<Main>(String[] args) cmderr [Invoke-GenerateAndBuildV2.ps1] Aborted (core dumped) cmderr [Invoke-GenerateAndBuildV2.ps1] Emitter "@azure-tools/typespec-csharp" crashed! This is a bug. cmderr [Invoke-GenerateAndBuildV2.ps1] Please file an issue at https://github.com/Azure/autorest.csharp/issues cmderr [Invoke-GenerateAndBuildV2.ps1] Error: Command failed: dotnet --roll-forward Major /mnt/vss/_work/1/s/azure-sdk-for-net/sdk/face/Azure.AI.Vision.Face/TempTypeSpecFiles/Face/node_modules/@autorest/csharp/AutoRest.CSharp.dll --project-path /mnt/vss/_work/1/s/azure-sdk-for-net/sdk/face/Azure.AI.Vision.Face/src --new-project --clear-output-folder true cmderr [Invoke-GenerateAndBuildV2.ps1] at checkExecSyncError (node:child_process:890:11) cmderr [Invoke-GenerateAndBuildV2.ps1] at execSync (node:child_process:962:15) cmderr [Invoke-GenerateAndBuildV2.ps1] at Object.$onEmit [as emitFunction] (file:///mnt/vss/_work/1/s/azure-sdk-for-net/sdk/face/Azure.AI.Vision.Face/TempTypeSpecFiles/Face/node_modules/@azure-tools/typespec-csharp/dist/src/emitter.js:128:21) cmderr [Invoke-GenerateAndBuildV2.ps1] at async runEmitter (file:///mnt/vss/_work/1/s/azure-sdk-for-net/sdk/face/Azure.AI.Vision.Face/TempTypeSpecFiles/Face/node_modules/@typespec/compiler/dist/src/core/program.js:555:13) cmderr [Invoke-GenerateAndBuildV2.ps1] at async compile (file:///mnt/vss/_work/1/s/azure-sdk-for-net/sdk/face/Azure.AI.Vision.Face/TempTypeSpecFiles/Face/node_modules/@typespec/compiler/dist/src/core/program.js:238:9) cmderr [Invoke-GenerateAndBuildV2.ps1] at async compileOnce (file:///mnt/vss/_work/1/s/azure-sdk-for-net/sdk/face/Azure.AI.Vision.Face/TempTypeSpecFiles/Face/node_modules/@typespec/compiler/dist/src/core/cli/actions/compile/compile.js:37:25) cmderr [Invoke-GenerateAndBuildV2.ps1] at async compileAction (file:///mnt/vss/_work/1/s/azure-sdk-for-net/sdk/face/Azure.AI.Vision.Face/TempTypeSpecFiles/Face/node_modules/@typespec/compiler/dist/src/core/cli/actions/compile/compile.js:21:9) cmderr [Invoke-GenerateAndBuildV2.ps1] -------------------------------------------------- cmderr [Invoke-GenerateAndBuildV2.ps1] Library Version 0.2.0-beta.20240428.10 cmderr [Invoke-GenerateAndBuildV2.ps1] TypeSpec Compiler Version 0.55.0 cmderr [Invoke-GenerateAndBuildV2.ps1] -------------------------------------------------- cmderr [Invoke-GenerateAndBuildV2.ps1] Write-Error: /mnt/vss/_work/1/s/azure-sdk-for-net/eng/scripts/Invoke-GenerateAndBuildV2.ps1:120 cmderr [Invoke-GenerateAndBuildV2.ps1] Line | cmderr [Invoke-GenerateAndBuildV2.ps1] 120 | … ectFolder = & $processScript $typespecFolder $commitid $repoHttpsUrl … cmderr [Invoke-GenerateAndBuildV2.ps1] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cmderr [Invoke-GenerateAndBuildV2.ps1] | Failed to generate sdk project at cmderr [Invoke-GenerateAndBuildV2.ps1] | /mnt/vss/_work/1/s/azure-sdk-for-net/sdk/face/Azure.AI.Vision.Face fatal: 'sdkAuto/27576/' is not a valid branch name
❌error Fatal error: fatal: 'sdkAuto/27576/' is not a valid branch name error Fatal error: Error: fatal: 'sdkAuto/27576/' is not a valid branch name at Object.action (/mnt/vss/_work/1/a/unified-pipeline-runtime/common/temp/node_modules/.pnpm/[email protected]/node_modules/simple-git/dist/cjs/index.js:1332:25) at PluginStore.exec (/mnt/vss/_work/1/a/unified-pipeline-runtime/common/temp/node_modules/.pnpm/[email protected]/node_modules/simple-git/dist/cjs/index.js:1367:29) at /mnt/vss/_work/1/a/unified-pipeline-runtime/common/temp/node_modules/.pnpm/[email protected]/node_modules/simple-git/dist/cjs/index.js:1766:43 at new Promise (<anonymous>) at GitExecutorChain.handleTaskData (/mnt/vss/_work/1/a/unified-pipeline-runtime/common/temp/node_modules/.pnpm/[email protected]/node_modules/simple-git/dist/cjs/index.js:1764:16) at GitExecutorChain.<anonymous> (/mnt/vss/_work/1/a/unified-pipeline-runtime/common/temp/node_modules/.pnpm/[email protected]/node_modules/simple-git/dist/cjs/index.js:1748:44) at Generator.next (<anonymous>) at fulfilled (/mnt/vss/_work/1/a/unified-pipeline-runtime/common/temp/node_modules/.pnpm/[email protected]/node_modules/simple-git/dist/cjs/index.js:55:24) error The following packages are still pending: error
️🔄 azure-sdk-for-js inProgress [Detail]
️⚠️ azure-sdk-for-java warning [Detail]
⚠️Warning in generating from 37acfe2967e5e1be1169146ac461eb1875c9476e. 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 cmderr [init.sh] npm notice New minor version of npm available! 10.5.0 -> 10.6.0 cmderr [init.sh] npm notice Changelog: <https://github.com/npm/cli/releases/tag/v10.6.0> cmderr [init.sh] npm notice Run `npm install -g [email protected]` to update! cmderr [init.sh] npm notice warn specification/ai/data-plane/Face/readme.md skipped due to azure-sdk-for-java not found in swagger-to-sdk command ./eng/mgmt/automation/generate.py ../azure-sdk-for-java_tmp/generateInput.json ../azure-sdk-for-java_tmp/generateOutput.json
️✔️azure-ai-vision-face [Preview SDK Changes]- pom.xml
- azure-ai-vision-face-1.0.0-beta.1-sources.jar
- azure-ai-vision-face-1.0.0-beta.1.jar
Generated ApiView
| Language | Package Name | ApiView Link |
|---|---|---|
| Java | azure-ai-vision-face | https://apiview.dev/Assemblies/Review/572978f1cf2945df8bcf83aa83876685?revisionId=91cf1e7557ff48619947a2ecbb772436 |
| Swagger | Face | https://apiview.dev/Assemblies/Review/2ab42e93e3c64f34aa8dfb69ea93cf15?revisionId=22e1728ba90145afb78aaca3b0c0f296 |
| TypeSpec | Face | https://apiview.dev/Assemblies/Review/fd70378562b9470abec3d3f5e04aa38f?revisionId=08b840415ac84325b0e72f4e62abf528 |
Hi @Han-msft! For review efficiency consideration, when creating a new API version, it is required to place API specs of the base version in the first commit, and push new version updates into successive commits. You can use OpenAPIHub to initialize the PR for adding a new version.
For more details refer to the wiki.
PR validation pipeline can not start as the pull request is not merged or mergeable - most likely it has merge conflicts.
PR validation pipeline can not start as the pull request is not merged or mergeable - most likely it has merge conflicts.
PR validation pipeline can not start as the pull request is not merged or mergeable - most likely it has merge conflicts.
PR validation pipeline can not start as the pull request is not merged or mergeable - most likely it has merge conflicts.
PR validation pipeline can not start as the pull request is not merged or mergeable - most likely it has merge conflicts.
PR validation pipeline can not start as the pull request is not merged or mergeable - most likely it has merge conflicts.
@AzureRestAPISpecReview
We got Breaking Change check failure after we copied our previous version swagger by #28424.
I briefly go through them and believe most of them are annotation difference caused by migrating to TypeSpec.
I also added some suppressions for Swagger LintDiff.
Please help take a look. We'd like to merge this PR if there is no concern.
Swagger Validation Report
️️✔️BreakingChange succeeded [Detail] [Expand]
There are no breaking changes.
️❌Breaking Change(Cross-Version): 141 Errors, 65 Warnings failed [Detail]
| Compared specs (v0.10.7) | new version | base version |
|---|---|---|
| Face.json | v1.1-preview.1(8eebc96) | v1.0(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.
| Rule | Message |
|---|---|
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/findsimilars' removed or restructured? Old: Face/stable/v1.0/Face.json#L30:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/group' removed or restructured? Old: Face/stable/v1.0/Face.json#L73:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/identify' removed or restructured? Old: Face/stable/v1.0/Face.json#L116:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/verify' removed or restructured? Old: Face/stable/v1.0/Face.json#L159:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/persongroups/{personGroupId}/persons' removed or restructured? Old: Face/stable/v1.0/Face.json#L202:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/persongroups/{personGroupId}/persons/{personId}' removed or restructured? Old: Face/stable/v1.0/Face.json#L295:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/persongroups/{personGroupId}/persons/{personId}/persistedfaces/{persistedFaceId}' removed or restructured? Old: Face/stable/v1.0/Face.json#L406:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/persongroups/{personGroupId}' removed or restructured? Old: Face/stable/v1.0/Face.json#L526:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/persongroups/{personGroupId}/training' removed or restructured? Old: Face/stable/v1.0/Face.json#L672:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/persongroups' removed or restructured? Old: Face/stable/v1.0/Face.json#L705:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/persongroups/{personGroupId}/train' removed or restructured? Old: Face/stable/v1.0/Face.json#L756:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/facelists/{faceListId}' removed or restructured? Old: Face/stable/v1.0/Face.json#L786:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/facelists' removed or restructured? Old: Face/stable/v1.0/Face.json#L932:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/facelists/{faceListId}/persistedfaces/{persistedFaceId}' removed or restructured? Old: Face/stable/v1.0/Face.json#L965:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/persongroups/{personGroupId}/persons/{personId}/persistedfaces' removed or restructured? Old: Face/stable/v1.0/Face.json#L998:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/detect' removed or restructured? Old: Face/stable/v1.0/Face.json#L1049:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/facelists/{faceListId}/persistedfaces' removed or restructured? Old: Face/stable/v1.0/Face.json#L1106:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/largepersongroups/{largePersonGroupId}/persons' removed or restructured? Old: Face/stable/v1.0/Face.json#L1154:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/largepersongroups/{largePersonGroupId}/persons/{personId}' removed or restructured? Old: Face/stable/v1.0/Face.json#L1247:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/largepersongroups/{largePersonGroupId}/persons/{personId}/persistedfaces/{persistedFaceId}' removed or restructured? Old: Face/stable/v1.0/Face.json#L1358:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/largepersongroups/{largePersonGroupId}' removed or restructured? Old: Face/stable/v1.0/Face.json#L1478:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/largepersongroups/{largePersonGroupId}/training' removed or restructured? Old: Face/stable/v1.0/Face.json#L1624:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/largepersongroups' removed or restructured? Old: Face/stable/v1.0/Face.json#L1657:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/largepersongroups/{largePersonGroupId}/train' removed or restructured? Old: Face/stable/v1.0/Face.json#L1708:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/largepersongroups/{largePersonGroupId}/persons/{personId}/persistedfaces' removed or restructured? Old: Face/stable/v1.0/Face.json#L1738:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/largefacelists/{largeFaceListId}' removed or restructured? Old: Face/stable/v1.0/Face.json#L1789:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/largefacelists/{largeFaceListId}/training' removed or restructured? Old: Face/stable/v1.0/Face.json#L1935:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/largefacelists' removed or restructured? Old: Face/stable/v1.0/Face.json#L1968:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/largefacelists/{largeFaceListId}/train' removed or restructured? Old: Face/stable/v1.0/Face.json#L2017:5 |
1005 - RemovedPath |
The new version is missing a path that was found in the old version. Was path '/largefacelists/{largeFaceListId}/persistedfaces/{persistedFaceId}' removed or restructured? Old: Face/stable/v1.0/Face.json#L2047:5 |
️🔄CredScan inProgress [Detail]
️⚠️LintDiff: 274 Warnings warning [Detail]
| Compared specs (v2.2.0) | new version | base version |
|---|---|---|
| v1.1-preview.1 | v1.1-preview.1(8eebc96) | default(main) |
[must fix]The following errors/warnings are introduced by current PR:
Only 30 items are listed, please refer to log for more details.
| Rule | Message | Related RPC [For API reviewers] |
|---|---|---|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L72 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L73 |
|
| :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: Face/preview/v1.1-preview.1/Face.json#L76 |
|
| :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: Face/preview/v1.1-preview.1/Face.json#L84 |
|
| :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: Face/preview/v1.1-preview.1/Face.json#L205 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L305 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L306 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L361 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L362 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L405 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L406 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L409 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L447 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L448 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L451 |
|
| :warning: Delete204Response | A delete operation should have a 204 response.Location: Face/preview/v1.1-preview.1/Face.json#L459 |
|
| :warning: SuccessResponseBody | All success responses except 202 & 204 should define a response body. Location: Face/preview/v1.1-preview.1/Face.json#L460 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L487 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L488 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L491 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L552 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L553 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L611 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L612 |
|
| :warning: Formdata | Check for appropriate use of formData parameters. Location: Face/preview/v1.1-preview.1/Face.json#L615 |
|
| :warning: Formdata | Check for appropriate use of formData parameters. Location: Face/preview/v1.1-preview.1/Face.json#L618 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L653 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L654 |
|
| :warning: PathParameterSchema | Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: Face/preview/v1.1-preview.1/Face.json#L657 |
|
| :warning: VersionPolicy | Operation does not define an 'api-version' query parameter. Location: Face/preview/v1.1-preview.1/Face.json#L695 |
The following errors/warnings exist before current PR submission:
| Rule | Message |
|---|---|
| :warning: VersionConvention | API version should be a date in YYYY-MM-DD format, optionally suffixed with '-preview'. Location: Face/preview/v1.1-preview.1/Face.json#L5 |
| :warning: MsPaths | Don't use x-ms-paths except where necessary to support legacy APIs. Location: Face/preview/v1.1-preview.1/Face.json#L5774 |
️️✔️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 inProgress [Detail]
️️✔️SpellCheck succeeded [Detail] [Expand]
Validation passes for SpellCheck.
️️✔️Lint(RPaaS) succeeded [Detail] [Expand]
Validation passes for Lint(RPaaS).
️⌛PR Summary pending [Detail]
️⌛Automated merging requirements met pending [Detail]
/azp run
Azure Pipelines successfully started running 4 pipeline(s).
PR validation pipeline can not start as the pull request is not merged or mergeable - most likely it has merge conflicts.
/azp run
Azure Pipelines successfully started running 4 pipeline(s).