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

Call Automation Api spec for 2023-10-15 (GA2) #25624

Merged
merged 22 commits into from
Nov 24, 2023

Conversation

vivekmore-msft
Copy link
Member

@vivekmore-msft vivekmore-msft commented Sep 1, 2023

Data Plane API - Pull Request

Azure Communication Services Call Automation provides developers the ability to build server-based, intelligent call workflows, and call recording for voice and PSTN channels.

Following features are already exist in GA ACS's Call Automation:

API Info: The Basics

CreateCall: Allows you to create a new outbound call. Once given information (target of the call, such as their phone number), Call Automation service will call the target end try to establish a call.

AnswerCall: Answer incoming call. This is another way to establish a call. For example, you can purchase Direct Offering phone number from Azure Portal to answer incoming call with Call Automation for that phone number.

CallConnectionId: CallConnectionId is returned when you establish a call with either Create or Answer above. This Id is to be used to do subsequent actions for the call. For example, if I want to play a media file in the call, pass both CallConnectionId and media file endpoint. Call Automation service will play the media file in the call.

Callback Events: Because of nature of a phone call, during the call, Call Automation Service will send back asynchronous events to notify the state of the call. Such as CallConnected and ParticipantsUpdated event.

PlayCompleted Events: This is the event that being received when play audio file to participants is successful and completed.

RecognizeCompleted Events: This is the event that being received when the recognized dtmf tone is completed.

Callback Uri: Expanding above Callback events - here is an example. When you CreateCall, you will get response of 201 right after Call Automation service received the request. However, this does not mean the call is established. It is dialing. Once the target call receiver answers their phone, the call is established and CallConnected event is sent. This event is sent back as Webhook to CallbackURi provided in CreateCall/AnswerCall.

Play Audio File: Plays audio file to participants in the call.

Recognize Dtmf: Recognize Dtmf input tone from call.

  • Link to API Spec engagement record issue:

Is this review for (select one):

  • a private preview
  • a public preview
  • GA release

Change Scope

This is GA release. See previous Beta Pull Request here: #24482

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.

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

fix #25626
fix #25626

@openapi-pipeline-app
Copy link

openapi-pipeline-app bot commented Sep 1, 2023

Next Steps to Merge

✔️ All automated merging requirements have been met! Refer to step 4 in the PR workflow diagram (even if your PR is for data plane, not ARM).

@openapi-pipeline-app
Copy link

openapi-pipeline-app bot commented Sep 1, 2023

Swagger Validation Report

️️✔️BreakingChange succeeded [Detail] [Expand]
There are no breaking changes.
️⚠️Breaking Change(Cross-Version): 4 Warnings warning [Detail]
compared swaggers (via Oad v0.10.4)] new version base version
communicationservicescallautomation.json 2023-10-15(1fe6a37) 2023-03-06(main)
communicationservicescallautomation.json 2023-10-15(1fe6a37) 2023-06-15-preview(main)

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

Rule Message
⚠️ 1011 - AddingResponseCode The new version adds a response code '200'.
New: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L942:11
⚠️ 1033 - RemovedProperty The new version is missing a property found in the old version. Was 'cognitiveServicesEndpoint' renamed or removed?
New: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L1282:7
Old: CallAutomation/preview/2023-06-15-preview/communicationservicescallautomation.json#L1218:7
⚠️ 1033 - RemovedProperty The new version is missing a property found in the old version. Was 'cognitiveServicesEndpoint' renamed or removed?
New: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L1410:7
Old: CallAutomation/preview/2023-06-15-preview/communicationservicescallautomation.json#L1336:7
⚠️ 1033 - RemovedProperty The new version is missing a property found in the old version. Was 'toneInfo' renamed or removed?
New: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L2854:7
Old: CallAutomation/preview/2023-06-15-preview/communicationservicescallautomation.json#L2617:7
️️✔️CredScan succeeded [Detail] [Expand]
There is no credential detected.
️❌LintDiff: 2 Errors, 32 Warnings failed [Detail]
compared tags (via openapi-validator v2.1.6) new version base version
package-2023-10-15 package-2023-10-15(1fe6a37) 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]
LroExtension Operations with a 202 response must specify x-ms-long-running-operation: true.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L657
RPC-Post-V1-09
LroExtension Operations with a 202 response must specify x-ms-long-running-operation: true.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L957
RPC-Post-V1-09
⚠️ PathParameterSchema Path parameter should specify a maximum length (maxLength) and characters allowed (pattern).
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L572
⚠️ ErrorResponse Error response should contain a x-ms-error-code header.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L593
⚠️ SuccessResponseBody All success responses except 202 & 204 should define a response body.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L599
⚠️ PathParameterSchema Path parameter should specify a maximum length (maxLength) and characters allowed (pattern).
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L618
⚠️ ErrorResponse Error response should contain a x-ms-error-code header.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L639
⚠️ SuccessResponseBody All success responses except 202 & 204 should define a response body.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L645
⚠️ SummaryAndDescriptionMustNotBeSame The summary and description values should not be same.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L657
⚠️ PathParameterSchema Path parameter should specify a maximum length (maxLength) and characters allowed (pattern).
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L665
⚠️ ParameterNamesConvention header parameter name 'Repeatability-Request-ID' should be kebab case.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L685
⚠️ ErrorResponse Error response should contain a x-ms-error-code header.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L700
⚠️ LroHeaders A 202 response should include an Operation-Location response header.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L706
⚠️ SummaryAndDescriptionMustNotBeSame The summary and description values should not be same.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L893
⚠️ PathParameterSchema Path parameter should specify a maximum length (maxLength) and characters allowed (pattern).
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L901
⚠️ ParameterNamesConvention header parameter name 'Repeatability-Request-ID' should be kebab case.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L921
⚠️ ErrorResponse Error response should contain a x-ms-error-code header.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L936
⚠️ SummaryAndDescriptionMustNotBeSame The summary and description values should not be same.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L957
⚠️ PathParameterSchema Path parameter should specify a maximum length (maxLength) and characters allowed (pattern).
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L965
⚠️ ParameterNamesConvention header parameter name 'Repeatability-Request-ID' should be kebab case.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L985
⚠️ ErrorResponse Error response should contain a x-ms-error-code header.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L1000
⚠️ LroHeaders A 202 response should include an Operation-Location response header.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L1006
⚠️ SchemaDescriptionOrTitle Schema should have a description or title.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L1649
⚠️ SchemaDescriptionOrTitle Schema should have a description or title.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L1676
⚠️ SchemaDescriptionOrTitle Schema should have a description or title.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L1834
⚠️ SchemaDescriptionOrTitle Schema should have a description or title.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L1868
⚠️ SchemaDescriptionOrTitle Schema should have a description or title.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L1888
⚠️ SchemaDescriptionOrTitle Schema should have a description or title.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L1916
⚠️ SchemaDescriptionOrTitle Schema should have a description or title.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L2758
⚠️ SchemaDescriptionOrTitle Schema should have a description or title.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L2827


The following errors/warnings exist before current PR submission:

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

Rule Message
LroExtension Operations with a 202 response must specify x-ms-long-running-operation: true.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L369
LroExtension Operations with a 202 response must specify x-ms-long-running-operation: true.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L433
LroExtension Operations with a 202 response must specify x-ms-long-running-operation: true.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L480
LroExtension Operations with a 202 response must specify x-ms-long-running-operation: true.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L518
LroExtension Operations with a 202 response must specify x-ms-long-running-operation: true.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L766
LroExtension Operations with a 202 response must specify x-ms-long-running-operation: true.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L829
LroExtension Operations with a 202 response must specify x-ms-long-running-operation: true.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L1200
LroExtension Operations with a 202 response must specify x-ms-long-running-operation: true.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L1237
⚠️ SummaryAndDescriptionMustNotBeSame The summary and description values should not be same.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L19
⚠️ OperationId OperationId should be of the form 'Noun_Verb'
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L25
⚠️ ParameterNamesConvention header parameter name 'Repeatability-Request-ID' should be kebab case.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L40
⚠️ ErrorResponse Error response should contain a x-ms-error-code header.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L55
⚠️ Post201Response Using post for a create operation is discouraged.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L61
⚠️ OperationId OperationId should be of the form 'Noun_Verb'
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L82
⚠️ ParameterNamesConvention header parameter name 'Repeatability-Request-ID' should be kebab case.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L97
⚠️ ErrorResponse Error response should contain a x-ms-error-code header.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L112
⚠️ SummaryAndDescriptionMustNotBeSame The summary and description values should not be same.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L133
⚠️ OperationId OperationId should be of the form 'Noun_Verb'
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L139
⚠️ ParameterNamesConvention header parameter name 'Repeatability-Request-ID' should be kebab case.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L154
⚠️ ErrorResponse Error response should contain a x-ms-error-code header.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L169
⚠️ SummaryAndDescriptionMustNotBeSame The summary and description values should not be same.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L187
⚠️ OperationId OperationId should be of the form 'Noun_Verb'
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L193
⚠️ ParameterNamesConvention header parameter name 'Repeatability-Request-ID' should be kebab case.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L208
⚠️ ErrorResponse Error response should contain a x-ms-error-code header.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L223
⚠️ PathParameterSchema Path parameter should specify a maximum length (maxLength) and characters allowed (pattern).
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L248
⚠️ ErrorResponse Error response should contain a x-ms-error-code header.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L260
⚠️ SummaryAndDescriptionMustNotBeSame The summary and description values should not be same.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L279
⚠️ DeleteInOperationName 'DELETE' operation 'CallConnection_HangupCall' should use method name 'Delete'. Note: If you have already shipped an SDK on top of this spec, fixing this warning may introduce a breaking change.
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L285
⚠️ OperationId OperationId for delete method should contain 'Delete'
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L285
⚠️ PathParameterSchema Path parameter should specify a maximum length (maxLength) and characters allowed (pattern).
Location: CallAutomation/stable/2023-10-15/communicationservicescallautomation.json#L287
️️✔️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.
️️✔️PrettierCheck succeeded [Detail] [Expand]
Validation passes for PrettierCheck.
️️✔️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?

@openapi-pipeline-app
Copy link

openapi-pipeline-app bot commented Sep 1, 2023

Swagger Generation Artifacts

️️✔️ApiDocPreview succeeded [Detail] [Expand]
 Please click here to preview with your @microsoft account. 
️️✔️SDK Breaking Change Tracking succeeded [Detail] [Expand]

Breaking Changes Tracking

Posted by Swagger Pipeline | How to fix these errors?

@openapi-pipeline-app
Copy link

openapi-pipeline-app bot commented Sep 1, 2023

Generated ApiView

Language Package Name ApiView Link
Swagger communication-data-plane-CallAutomation https://apiview.dev/Assemblies/Review/12891ce7f9e44a1f951073b5077c0e44

@vivekmore-msft vivekmore-msft changed the title GA2 swagger JSON Call Automation Api spec for 2023-10-15 (GA2) Sep 1, 2023
@vivekmore-msft vivekmore-msft marked this pull request as ready for review September 15, 2023 12:46
@vivekmore-msft vivekmore-msft requested a review from a team as a code owner September 15, 2023 12:46
@vivekmore-msft vivekmore-msft requested review from tg-msft and weidongxu-microsoft and removed request for a team September 15, 2023 12:46
Copy link
Member

@mikekistler mikekistler left a comment

Choose a reason for hiding this comment

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

Looks good. 👍

@vivekmore-msft vivekmore-msft removed the request for review from mikeharder November 2, 2023 08:29
@jdebroin-msft
Copy link
Member

Hi @anuchandy , can you the Approved-LintDiff label to this PR please? Existing Call Automation API methods did not use "x-ms-long-running-operation" so it was not added either to the new method.

@weidongxu-microsoft weidongxu-microsoft added the APIStewardshipBoard-SignedOff The Azure API Stewardship team has reviewed and approved the changes. label Nov 23, 2023
@weidongxu-microsoft weidongxu-microsoft merged commit ae57786 into main Nov 24, 2023
31 checks passed
@weidongxu-microsoft weidongxu-microsoft deleted the callautomation/ga2 branch November 24, 2023 01:10
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. Approved-LintDiff data-plane
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[IC3 ACS Server Calling ] API Review
7 participants