Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Face API v1.2-preview.1 #29781

Merged
merged 11 commits into from
Jul 31, 2024
Merged

Conversation

Han-msft
Copy link
Member

@Han-msft Han-msft commented Jul 10, 2024

Data Plane API Specification Update Pull Request

Tip

Overwhelmed by all this guidance? See the Getting help section at the bottom of this PR description.

PR review workflow diagram

Please understand this diagram before proceeding. It explains how to get your PR approved & merged.

spec_pr_review_workflow_diagram

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: offline reviewed via Email

Is this review for (select one):

  • a private preview
  • 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: N/A
  • Previous API Spec Doc: N/A
  • Updated paths:
    • POST /detectLiveness/singleModal/sessions: new parameters
    • POST /detectLivenessWithVerify/singleModal/sessions: new parameters
    • GET /session/sessionImages/{sessionImageId}: new path
    • POST /detect: new overload with new parameters

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.

Click here for links to tools, specs, guidelines & other good stuff

Tooling

Guidelines & Specifications

Helpful Links

Getting help

  • First, please carefully read through this PR description, from top to bottom.
  • If you don't have permissions to remove or add labels to the PR, request write access per aka.ms/azsdk/access#request-access-to-rest-api-or-sdk-repositories
  • 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.
  • 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.
  • 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.

Copy link

openapi-pipeline-app bot commented Jul 10, 2024

Next Steps to Merge

✅ All automated merging requirements have been met! To get your PR merged, see aka.ms/azsdk/specreview/merge.

Copy link

openapi-pipeline-app bot commented Jul 10, 2024

Swagger Validation Report

️❌BreakingChange: 5 Errors, 0 Warnings failed [Detail]
Compared specs (v0.10.12) new version base version
Face.json v1.1-preview.1(b71d136) v1.1-preview.1(main)
Rule Message
1006 - RemovedDefinition The new version is missing a definition that was found in the old version. Was 'CreateLivenessSessionContent' removed or renamed?
New: Face/preview/v1.1-preview.1/Face.json#L7265:3
Old: Face/preview/v1.1-preview.1/Face.json#L7265:3
1017 - ReferenceRedirection The '$ref' property points to different models in the old and new versions.
New: Face/preview/v1.1-preview.1/Face.json#L413:13
Old: Face/preview/v1.1-preview.1/Face.json#L413:13
1017 - ReferenceRedirection The '$ref' property points to different models in the old and new versions.
New: Face/preview/v1.1-preview.1/Face.json#L5860:13
Old: Face/preview/v1.1-preview.1/Face.json#L5860:13
1020 - AddedEnumValue The new version is adding enum value(s) '2023-12-20-preview.06, 2023-12-20-preview.07, 2023-12-20-preview.08' from the old version.
New: Face/preview/v1.1-preview.1/Face.json#L8751:9
Old: Face/preview/v1.1-preview.1/Face.json#L8703:9
1020 - AddedEnumValue The new version is adding enum value(s) '2023-12-20-preview.06, 2023-12-20-preview.07, 2023-12-20-preview.08' from the old version.
New: Face/preview/v1.1-preview.1/Face.json#L8639:5
Old: Face/preview/v1.1-preview.1/Face.json#L8606:5
️❌Breaking Change(Cross-Version): 308 Errors, 257 Warnings failed [Detail]
Compared specs (v0.10.12) new version base version
Face.json v1.2-preview.1(b71d136) v1.0(main)
Face.json v1.2-preview.1(b71d136) v1.1-preview.1(main)

The following breaking changes are detected by comparison with the latest stable version:

Only 26 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.2-preview.1/Face.json#L7055: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.2-preview.1/Face.json#L7055: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.2-preview.1/Face.json#L7055: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.2-preview.1/Face.json#L7055: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.2-preview.1/Face.json#L7055: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.2-preview.1/Face.json#L7055: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.2-preview.1/Face.json#L7055: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.2-preview.1/Face.json#L7055: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.2-preview.1/Face.json#L7055: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.2-preview.1/Face.json#L7055: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.2-preview.1/Face.json#L7055: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.2-preview.1/Face.json#L7055: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.2-preview.1/Face.json#L7055: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.2-preview.1/Face.json#L7055:3
Old: Face/stable/v1.0/Face.json#L2832:3
1008 - ModifiedOperationId The operation id has been changed from 'Face_FindSimilar' to 'FaceRecognitionOperations_FindSimilar'. This will impact generated code.
New: Face/preview/v1.2-preview.1/Face.json#L1535:7
Old: Face/stable/v1.0/Face.json#L31:7
1008 - ModifiedOperationId The operation id has been changed from 'Face_Group' to 'FaceRecognitionOperations_Group'. This will impact generated code.
New: Face/preview/v1.2-preview.1/Face.json#L1626:7
Old: Face/stable/v1.0/Face.json#L74:7
1008 - ModifiedOperationId The operation id has been changed from 'Face_Identify' to 'FaceRecognitionOperations_IdentifyFromPersonGroup'. This will impact generated code.
New: Face/preview/v1.2-preview.1/Face.json#L1675:7
Old: Face/stable/v1.0/Face.json#L117:7


The following breaking changes are detected by comparison with the latest preview version:

Rule Message
⚠️ 1006 - RemovedDefinition The new version is missing a definition that was found in the old version. Was 'CreateLivenessSessionContent' removed or renamed?
New: Face/preview/v1.2-preview.1/Face.json#L7055:3
Old: Face/preview/v1.1-preview.1/Face.json#L7265:3
⚠️ 1017 - ReferenceRedirection The '$ref' property points to different models in the old and new versions.
New: Face/preview/v1.2-preview.1/Face.json#L403:13
Old: Face/preview/v1.1-preview.1/Face.json#L413:13
⚠️ 1017 - ReferenceRedirection The '$ref' property points to different models in the old and new versions.
New: Face/preview/v1.2-preview.1/Face.json#L5730:13
Old: Face/preview/v1.1-preview.1/Face.json#L5860:13
⚠️ 1038 - AddedPath The new version is adding a path that was not found in the old version.
New: Face/preview/v1.2-preview.1/Face.json#L5119:5
⚠️ 1038 - AddedPath The new version is adding a path that was not found in the old version.
New: Face/preview/v1.2-preview.1/Face.json#L5463:5
️️✔️CredScan succeeded [Detail] [Expand]
There is no credential detected.
️⚠️LintDiff: 119 Warnings warning [Detail]
Compared specs (v2.2.2) new version base version
v1.1-preview.1 v1.1-preview.1(b71d136) v1.1-preview.1(main)
v1.2-preview.1 v1.2-preview.1(b71d136) default(main)

[must fix]The following errors/warnings are introduced by current PR:

Only 26 items are listed, please refer to log for more details.

Rule Message Related RPC [For API reviewers]
⚠️ 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#L7451
⚠️ 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#L7455
⚠️ 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#L7521
⚠️ 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#L7525
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L88
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L345
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L393
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L431
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L464
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L497
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L553
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L601
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L647
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L680
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L713
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L769
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L820
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L857
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L932
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L1009
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L1053
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L1110
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L1150
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L1194
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L1289
⚠️ XmsExamplesRequired Please provide x-ms-examples describing minimum/maximum property set for response/request payloads for operations.
Location: Face/preview/v1.2-preview.1/Face.json#L1343


The following errors/warnings exist before current PR submission:

Only 26 items are listed, please refer to log for more details.

Rule Message
⚠️ 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
⚠️ VersionPolicy Operation does not define an 'api-version' query parameter.
Location: Face/preview/v1.1-preview.1/Face.json#L92
⚠️ 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
⚠️ 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
⚠️ 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
⚠️ ParameterDescription Parameter should have a description.
Location: Face/preview/v1.1-preview.1/Face.json#L299
⚠️ VersionPolicy Operation does not define an 'api-version' query parameter.
Location: Face/preview/v1.1-preview.1/Face.json#L354
⚠️ VersionPolicy Operation does not define an 'api-version' query parameter.
Location: Face/preview/v1.1-preview.1/Face.json#L407
⚠️ VersionPolicy Operation does not define an 'api-version' query parameter.
Location: Face/preview/v1.1-preview.1/Face.json#L449
⚠️ PathParameterSchema Path parameter should specify a maximum length (maxLength) and characters allowed (pattern).
Location: Face/preview/v1.1-preview.1/Face.json#L450
⚠️ VersionPolicy Operation does not define an 'api-version' query parameter.
Location: Face/preview/v1.1-preview.1/Face.json#L488
⚠️ PathParameterSchema Path parameter should specify a maximum length (maxLength) and characters allowed (pattern).
Location: Face/preview/v1.1-preview.1/Face.json#L489
⚠️ Delete204Response A delete operation should have a 204 response.
Location: Face/preview/v1.1-preview.1/Face.json#L497
⚠️ SuccessResponseBody All success responses except 202 & 204 should define a response body.
Location: Face/preview/v1.1-preview.1/Face.json#L498
⚠️ VersionPolicy Operation does not define an 'api-version' query parameter.
Location: Face/preview/v1.1-preview.1/Face.json#L525
⚠️ PathParameterSchema Path parameter should specify a maximum length (maxLength) and characters allowed (pattern).
Location: Face/preview/v1.1-preview.1/Face.json#L526
⚠️ VersionPolicy Operation does not define an 'api-version' query parameter.
Location: Face/preview/v1.1-preview.1/Face.json#L587
⚠️ VersionPolicy Operation does not define an 'api-version' query parameter.
Location: Face/preview/v1.1-preview.1/Face.json#L643
⚠️ Formdata Check for appropriate use of formData parameters.
Location: Face/preview/v1.1-preview.1/Face.json#L644
⚠️ Formdata Check for appropriate use of formData parameters.
Location: Face/preview/v1.1-preview.1/Face.json#L651
⚠️ VersionPolicy Operation does not define an 'api-version' query parameter.
Location: Face/preview/v1.1-preview.1/Face.json#L690
⚠️ PathParameterSchema Path parameter should specify a maximum length (maxLength) and characters allowed (pattern).
Location: Face/preview/v1.1-preview.1/Face.json#L691
⚠️ VersionPolicy Operation does not define an 'api-version' query parameter.
Location: Face/preview/v1.1-preview.1/Face.json#L729
⚠️ PathParameterSchema Path parameter should specify a maximum length (maxLength) and characters allowed (pattern).
Location: Face/preview/v1.1-preview.1/Face.json#L730
⚠️ Delete204Response A delete operation should have a 204 response.
Location: Face/preview/v1.1-preview.1/Face.json#L738
⚠️ SuccessResponseBody All success responses except 202 & 204 should define a response body.
Location: Face/preview/v1.1-preview.1/Face.json#L739
️️✔️Avocado succeeded [Detail] [Expand]
Validation passes for Avocado.
️️✔️SwaggerAPIView succeeded [Detail] [Expand]
️️✔️TypeSpecAPIView succeeded [Detail] [Expand]
️❌ModelValidation: 103 Errors, 0 Warnings failed [Detail]

Only 26 items are listed, please refer to log for more details.

Rule Message
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in FaceDetectionOperations_DetectFromUrl.
Url: Face/preview/v1.2-preview.1/Face.json#L88:15
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in LivenessSessionOperations_GetLivenessSessions.
Url: Face/preview/v1.2-preview.1/Face.json#L345:14
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in LivenessSessionOperations_CreateLivenessSession.
Url: Face/preview/v1.2-preview.1/Face.json#L393:15
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in LivenessSessionOperations_GetLivenessSessionResult.
Url: Face/preview/v1.2-preview.1/Face.json#L431:14
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in LivenessSessionOperations_DeleteLivenessSession.
Url: Face/preview/v1.2-preview.1/Face.json#L464:17
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in LivenessSessionOperations_GetLivenessSessionAuditEntries.
Url: Face/preview/v1.2-preview.1/Face.json#L497:14
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in LivenessSessionOperations_GetLivenessWithVerifySessions.
Url: Face/preview/v1.2-preview.1/Face.json#L553:14
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in LivenessSessionOperations_CreateLivenessWithVerifySessionWithVerifyImage.
Url: Face/preview/v1.2-preview.1/Face.json#L601:15
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in LivenessSessionOperations_GetLivenessWithVerifySessionResult.
Url: Face/preview/v1.2-preview.1/Face.json#L647:14
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in LivenessSessionOperations_DeleteLivenessWithVerifySession.
Url: Face/preview/v1.2-preview.1/Face.json#L680:17
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in LivenessSessionOperations_GetLivenessWithVerifySessionAuditEntries.
Url: Face/preview/v1.2-preview.1/Face.json#L713:14
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in PersonDirectoryOperations_GetDynamicPersonGroups.
Url: Face/preview/v1.2-preview.1/Face.json#L769:14
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in PersonDirectoryOperations_GetDynamicPersonGroup.
Url: Face/preview/v1.2-preview.1/Face.json#L820:14
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in PersonDirectoryOperations_CreateDynamicPersonGroupWithPerson.
Url: Face/preview/v1.2-preview.1/Face.json#L857:14
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in PersonDirectoryOperations_UpdateDynamicPersonGroupWithPersonChanges.
Url: Face/preview/v1.2-preview.1/Face.json#L932:16
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in PersonDirectoryOperations_DeleteDynamicPersonGroup.
Url: Face/preview/v1.2-preview.1/Face.json#L1009:17
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in PersonDirectoryOperations_GetDynamicPersonGroupPersons.
Url: Face/preview/v1.2-preview.1/Face.json#L1053:14
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in FaceListOperations_GetFaceLists.
Url: Face/preview/v1.2-preview.1/Face.json#L1110:14
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in FaceListOperations_GetFaceList.
Url: Face/preview/v1.2-preview.1/Face.json#L1150:14
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in FaceListOperations_CreateFaceList.
Url: Face/preview/v1.2-preview.1/Face.json#L1194:14
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in FaceListOperations_UpdateFaceList.
Url: Face/preview/v1.2-preview.1/Face.json#L1289:16
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in FaceListOperations_DeleteFaceList.
Url: Face/preview/v1.2-preview.1/Face.json#L1343:17
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in FaceListOperations_AddFaceListFaceFromUrl.
Url: Face/preview/v1.2-preview.1/Face.json#L1378:15
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in FaceListOperations_DeleteFaceListFace.
Url: Face/preview/v1.2-preview.1/Face.json#L1491:17
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in FaceRecognitionOperations_FindSimilar.
Url: Face/preview/v1.2-preview.1/Face.json#L1535:15
XMS_EXAMPLE_NOTFOUND_ERROR x-ms-example not found in FaceRecognitionOperations_Group.
Url: Face/preview/v1.2-preview.1/Face.json#L1626:15
️️✔️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]
Posted by Swagger Pipeline | How to fix these errors?

Copy link

openapi-pipeline-app bot commented Jul 10, 2024

Swagger Generation Artifacts

️️✔️ApiDocPreview succeeded [Detail] [Expand]
 Please click here to preview with your @microsoft account. 
️⚠️ azure-sdk-for-python warning [Detail]
    For more instructions, please refer to the FAQ .
  • ⚠️Warning in generating from 75437e0e972691e8dab8916a44d1cc0ca5836879. SDK Automation 14.0.0
    command	sh scripts/automation_init.sh ../azure-sdk-for-python_tmp/initInput.json ../azure-sdk-for-python_tmp/initOutput.json
    cmderr	[automation_init.sh] W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1
    cmderr	[automation_init.sh] W: Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1
    cmderr	[automation_init.sh] W: Target Translations (main/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1
    cmderr	[automation_init.sh] W: Target CNF (main/cnf/Commands-amd64) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1
    cmderr	[automation_init.sh] W: Target CNF (main/cnf/Commands-all) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1
    cmderr	[automation_init.sh] W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1
    cmderr	[automation_init.sh] W: Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1
    cmderr	[automation_init.sh] W: Target Translations (main/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1
    cmderr	[automation_init.sh] W: Target CNF (main/cnf/Commands-amd64) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1
    cmderr	[automation_init.sh] W: Target CNF (main/cnf/Commands-all) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1
    cmderr	[automation_init.sh] WARNING: Skipping azure-nspkg as it is not installed.
    cmderr	[automation_init.sh] npm notice
    cmderr	[automation_init.sh] npm notice New minor version of npm available! 10.7.0 -> 10.8.2
    cmderr	[automation_init.sh] npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.8.2
    cmderr	[automation_init.sh] npm notice To update run: npm install -g npm@10.8.2
    cmderr	[automation_init.sh] npm notice
    warn		Warning: azure-sdk-for-python cannot be found in specification/ai/data-plane/Face/readme.md. This SDK will be skipped from SDK generation. Please add the right config to the readme file according to this guidance https://github.com/Azure/azure-rest-api-specs/blob/main/documentation/code-gen/configure-go-sdk.md#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]
    info	[Changelog] data-plan skip changelog generation temporarily
️❌ azure-sdk-for-net-track2 failed [Detail]
    For more instructions, please refer to the FAQ .
  • Failed in generating from 75437e0e972691e8dab8916a44d1cc0ca5836879. SDK Automation 14.0.0
    command	pwsh ./eng/scripts/Automation-Sdk-Init.ps1 ../azure-sdk-for-net_tmp/initInput.json ../azure-sdk-for-net_tmp/initOutput.json
    warn		Warning: azure-sdk-for-net-track2 cannot be found in specification/ai/data-plane/Face/readme.md. This SDK will be skipped from SDK generation. Please add the right config to the readme file according to this guidance https://github.com/Azure/azure-rest-api-specs/blob/main/documentation/code-gen/configure-go-sdk.md#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] npm notice
    cmderr	[Invoke-GenerateAndBuildV2.ps1] npm notice New minor version of npm available! 10.7.0 -> 10.8.2
    cmderr	[Invoke-GenerateAndBuildV2.ps1] npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.8.2
    cmderr	[Invoke-GenerateAndBuildV2.ps1] npm notice To update run: npm install -g npm@10.8.2
    cmderr	[Invoke-GenerateAndBuildV2.ps1] npm notice
    cmderr	[Invoke-GenerateAndBuildV2.ps1] GeneratePackage: /mnt/vss/_work/1/s/azure-sdk-for-net/eng/scripts/Invoke-GenerateAndBuildV2.ps1:144
    cmderr	[Invoke-GenerateAndBuildV2.ps1] Line |
    cmderr	[Invoke-GenerateAndBuildV2.ps1]  144 |              GeneratePackage `
    cmderr	[Invoke-GenerateAndBuildV2.ps1]      |              ~~~~~~~~~~~~~~~~~
    cmderr	[Invoke-GenerateAndBuildV2.ps1]      | Failed to build project. exit code: False
  • Azure.AI.Vision.Face [Preview SDK Changes]
    info	[Changelog]
️❌ azure-sdk-for-js failed [Detail]
    For more instructions, please refer to the FAQ .
  • Failed in generating from 75437e0e972691e8dab8916a44d1cc0ca5836879. SDK Automation 14.0.0
    command	sh .scripts/automation_init.sh ../azure-sdk-for-js_tmp/initInput.json ../azure-sdk-for-js_tmp/initOutput.json
    warn	Warning: File azure-sdk-for-js_tmp/initOutput.json not found to read. Please re-run the pipeline if the error is transitient error or report this issue through https://aka.ms/azsdk/support/specreview-channel.
    warn		Warning: azure-sdk-for-js cannot be found in specification/ai/data-plane/Face/readme.md. This SDK will be skipped from SDK generation. Please add the right config to the readme file according to this guidance https://github.com/Azure/azure-rest-api-specs/blob/main/documentation/code-gen/configure-go-sdk.md#swagger-to-sdk.
    command	sh .scripts/automation_generate.sh ../azure-sdk-for-js_tmp/generateInput.json ../azure-sdk-for-js_tmp/generateOutput.json
    command	sh .scripts/automation_generate.sh ../azure-sdk-for-js_tmp/generateInput.json ../azure-sdk-for-js_tmp/generateOutput.json
    cmderr	[automation_generate.sh] [ERROR] Error:
    cmderr	[automation_generate.sh] [ERROR] Error:
    cmderr	[automation_generate.sh] [ERROR] An error occurred while run build for typespec project: "specification/ai/Face":
    cmderr	[automation_generate.sh] [ERROR] An error occurred while run build for typespec project: "specification/ai/Face":
    cmderr	[automation_generate.sh] [ERROR] Err: Error: Command failed: rush build -t @azure-rest/ai-vision-face
    cmderr	[automation_generate.sh] [ERROR] Err: Error: Command failed: rush build -t @azure-rest/ai-vision-face
    cmderr	[automation_generate.sh] [ERROR] Stderr: "null"
    cmderr	[automation_generate.sh] [ERROR] Stderr: "null"
    cmderr	[automation_generate.sh] [ERROR] Stdout: "null"
    cmderr	[automation_generate.sh] [ERROR] Stdout: "null"
    cmderr	[automation_generate.sh] [ERROR] ErrorStack: "Error: Command failed: rush build -t @azure-rest/ai-vision-face
    cmderr	[automation_generate.sh] [ERROR] ErrorStack: "Error: Command failed: rush build -t @azure-rest/ai-vision-face
    cmderr	[automation_generate.sh] [ERROR]     at checkExecSyncError (node:child_process:885:11)
    cmderr	[automation_generate.sh] [ERROR]     at checkExecSyncError (node:child_process:885:11)
    cmderr	[automation_generate.sh] [ERROR]     at execSync (node:child_process:957:15)
    cmderr	[automation_generate.sh] [ERROR]     at execSync (node:child_process:957:15)
    cmderr	[automation_generate.sh] [ERROR]     at /home/cloudtest/.nvm/versions/node/v18.15.0/lib/node_modules/@azure-tools/js-sdk-release-tools/dist/llc/generateRLCInPipeline/generateRLCInPipeline.js:209:42
    cmderr	[automation_generate.sh] [ERROR]     at /home/cloudtest/.nvm/versions/node/v18.15.0/lib/node_modules/@azure-tools/js-sdk-release-tools/dist/llc/generateRLCInPipeline/generateRLCInPipeline.js:209:42
    cmderr	[automation_generate.sh] [ERROR]     at Generator.next (<anonymous>)
    cmderr	[automation_generate.sh] [ERROR]     at Generator.next (<anonymous>)
    cmderr	[automation_generate.sh] [ERROR]     at fulfilled (/home/cloudtest/.nvm/versions/node/v18.15.0/lib/node_modules/@azure-tools/js-sdk-release-tools/node_modules/tslib/tslib.js:112:62)
    cmderr	[automation_generate.sh] [ERROR]     at fulfilled (/home/cloudtest/.nvm/versions/node/v18.15.0/lib/node_modules/@azure-tools/js-sdk-release-tools/node_modules/tslib/tslib.js:112:62)
    cmderr	[automation_generate.sh] [ERROR]     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
    cmderr	[automation_generate.sh] [ERROR]     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
    info	[Changelog]
    error	breakingChangeTracking is enabled, but version or changelogItem is not found in output.
  • @azure-rest/ai-vision-face [Preview SDK Changes]
    info	[Changelog]
    error	breakingChangeTracking is enabled, but version or changelogItem is not found in output.
️❌ azure-sdk-for-java failed [Detail]
    For more instructions, please refer to the FAQ .
  • Failed in generating from 75437e0e972691e8dab8916a44d1cc0ca5836879. SDK Automation 14.0.0
    command	./eng/automation/init.sh ../azure-sdk-for-java_tmp/initInput.json ../azure-sdk-for-java_tmp/initOutput.json
    warn		Warning: azure-sdk-for-java cannot be found in specification/ai/data-plane/Face/readme.md. This SDK will be skipped from SDK generation. Please add the right config to the readme file according to this guidance https://github.com/Azure/azure-rest-api-specs/blob/main/documentation/code-gen/configure-go-sdk.md#swagger-to-sdk.
    command	./eng/automation/generate.py ../azure-sdk-for-java_tmp/generateInput.json ../azure-sdk-for-java_tmp/generateOutput.json
    command	./eng/automation/generate.py ../azure-sdk-for-java_tmp/generateInput.json ../azure-sdk-for-java_tmp/generateOutput.json
    cmderr	[Java-Sdk-Automation] [COMPILE] Maven build fail.
    cmderr	[Java-Sdk-Automation] [COMPILE] Maven build fail.
    info	[Changelog]
    command	./eng/automation/install_instruction.py ../azure-sdk-for-java_tmp/installInstructionInput.json ../azure-sdk-for-java_tmp/installInstructionOutput.json
  • azure-ai-vision-face [Preview SDK Changes]
    info	[Changelog]
Posted by Swagger Pipeline | How to fix these errors?

@Han-msft Han-msft marked this pull request as ready for review July 18, 2024 06:17
@Han-msft Han-msft requested a review from a team as a code owner July 18, 2024 06:17
@Han-msft Han-msft requested review from tg-msft and weidongxu-microsoft and removed request for a team July 18, 2024 06:17
@mikekistler
Copy link
Member

Breaking changes previously reviewed and approved in #27576

@mikekistler mikekistler added the BreakingChange-Approved-Previously Changes were reviewed and approved in a previous PR label Jul 23, 2024
@weidongxu-microsoft
Copy link
Member

/azp run

Copy link

Azure Pipelines successfully started running 3 pipeline(s).

Comment on lines 269 to 297
model CreateLivenessWithVerifySessionContent {
model CreateLivenessWithVerifySessionMultipartBody {
Copy link
Member

@weidongxu-microsoft weidongxu-microsoft Jul 24, 2024

Choose a reason for hiding this comment

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

This appears to be an SDK break.

Java CI fails due to this (likely a difference of name in generated code and customization code).
https://github.com/Azure/azure-rest-api-specs/pull/29781/checks?check_run_id=27836423122

Copy link
Member

@weidongxu-microsoft weidongxu-microsoft Jul 24, 2024

Choose a reason for hiding this comment

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

It is necessary? AFAIK, the model renaming cannot be modelled via tsp versioning. Hence it appears in v1.1-preview.1 Swagger as well.

If it is for SDK, a @clientName in client.tsp is simpler.

Copy link
Member Author

Choose a reason for hiding this comment

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

It's intended change to differentiate the input model.
I'm open to other solutions, but it's a little complicated.
In v1.1, the operations look like

createLivenessSession(CreateLivenessSessionContent)
createLivenessWithVerifySession(CreateLivenessSessionContent)
createLivenessWithVerifySessionWithVerifyImage(CreateLivenessWithVerifySessionContent)

model CreateLivenessWithVerifySessionContent 
{
Parameters: CreateLivenessSessionContent;
VerifyImage: bytes;
}

In v1.2, liveness with verify session introduced some specific field, so it can not share the model with liveness session. CreateLivenessWithVerifySessionContent is also occupied by multipart request, that's why I renamed all of them to avoid confusion.
Please also note that CreateLivenessWithVerifySessionRequest is an additional layer added by SDK folks after our previous release, I'm not sure what's the purpose.

createLivenessSession(CreateLivenessSessionParameters)
createLivenessWithVerifySession(CreateLivenessWithVerifySessionParameters)
createLivenessWithVerifySessionWithVerifyImage(CreateLivenessWithVerifySessionRequest)

model CreateLivenessWithVerifySessionMultipartBody 
{
Parameters: CreateLivenessWithVerifySessionParameters;
VerifyImage: bytes;
}

Copy link
Member

@weidongxu-microsoft weidongxu-microsoft Jul 24, 2024

Choose a reason for hiding this comment

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

The CreateLivenessWithVerifySessionRequest was due to https://github.com/Azure/azure-rest-api-specs/pull/29723/files for the spread thing (without it and the @body under it, the model CreateLivenessWithVerifySessionContent would be spread in the createLivenessWithVerifySessionWithVerifyImage API).

This CreateLivenessWithVerifySessionRequest should not result to a real model/class in SDK. The intention is mostly only to add that @body.

Copy link
Member

@weidongxu-microsoft weidongxu-microsoft Jul 24, 2024

Choose a reason for hiding this comment

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

I see. It is CreateLivenessSessionContent now renamed to CreateLivenessSessionParameters (and 2 added properties).

And createLivenessWithVerifySession/createLivenessWithVerifySessionWithVerifyImage API now need a different model, hence CreateLivenessWithVerifySessionParameters (and further 2 more properties).

The versioning of these models is hard, when rename and add is mixed together (e.g. CreateLivenessWithVerifySessionParameters is added in 1.2, but it cannot be annotated as such, since it now being used in API exists in 1.1). I don't have a good recommendation either. As both version is preview (and no REST API change in 1.1), maybe we can just make the break.
Maybe just announce it in SDK thread and see if any dev having issue with this.

Copy link
Member Author

Choose a reason for hiding this comment

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

I'm thinking about another option. Redefine the CreateLivenessWithVerifySessionContent model.

createLivenessSession(CreateLivenessSessionContent)  
createLivenessWithVerifySession(CreateLivenessWithVerifySessionContent)  
createLivenessWithVerifySessionWithVerifyImage(CreateLivenessWithVerifySessionMultipartContent) 

In this way we can avoid breaking changes on createLivenessSession since it's model does not change.
However, the breaking changes on CreateLivenessWithVerifySessionContent would looks weird since it was used for multipart in v1.1.
On the other hand, CreateLivenessWithVerifySessionContent was not exposed in .NET/Java since we had a layered of customization to merge createLivenessWithVerifySession and createLivenessWithVerifySessionWithVerifyImage.
This way would lower the breaking change scope than current implementation.
Let me discuss it with SDK developers in our team.

specification/ai/Face/models.session.tsp Show resolved Hide resolved
Comment on lines 269 to 297
model CreateLivenessWithVerifySessionContent {
model CreateLivenessWithVerifySessionMultipartBody {
Copy link
Member

@weidongxu-microsoft weidongxu-microsoft Jul 24, 2024

Choose a reason for hiding this comment

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

I see. It is CreateLivenessSessionContent now renamed to CreateLivenessSessionParameters (and 2 added properties).

And createLivenessWithVerifySession/createLivenessWithVerifySessionWithVerifyImage API now need a different model, hence CreateLivenessWithVerifySessionParameters (and further 2 more properties).

The versioning of these models is hard, when rename and add is mixed together (e.g. CreateLivenessWithVerifySessionParameters is added in 1.2, but it cannot be annotated as such, since it now being used in API exists in 1.1). I don't have a good recommendation either. As both version is preview (and no REST API change in 1.1), maybe we can just make the break.
Maybe just announce it in SDK thread and see if any dev having issue with this.

@Han-msft Han-msft added the PublishToCustomers Acknowledgement the changes will be published to Azure customers. label Jul 29, 2024
@weidongxu-microsoft weidongxu-microsoft added the APIStewardshipBoard-SignedOff The Azure API Stewardship team has reviewed and approved the changes. label Jul 29, 2024
@MaryGao
Copy link
Member

MaryGao commented Jul 29, 2024

Approved for JS model's breakings since it introduced better naming. Another hand, JS RLC would recommend inline usage without direct referencing the model type so actually this won't not be a breaking for them.

@weidongxu-microsoft weidongxu-microsoft merged commit 83adf61 into Azure:main Jul 31, 2024
27 of 30 checks passed
@mikekistler mikekistler mentioned this pull request Oct 22, 2024
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
APIStewardshipBoard-SignedOff The Azure API Stewardship team has reviewed and approved the changes. BreakingChange-Approved-Previously Changes were reviewed and approved in a previous PR BreakingChangeReviewRequired <valid label in PR review process>add this label when breaking change review is required data-plane new-api-version PublishToCustomers Acknowledgement the changes will be published to Azure customers. TypeSpec Authored with TypeSpec
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants