freeclimb 4.9.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/Gemfile +2 -1
  4. data/Gemfile.lock +49 -27
  5. data/README.md +44 -51
  6. data/docs/AddToConferenceNotificationWebhook.md +42 -0
  7. data/docs/AddToQueueNotificationWebhook.md +34 -0
  8. data/docs/BargeInReason.md +18 -0
  9. data/docs/CallControlWebhook.md +26 -0
  10. data/docs/CallEndedReason.md +38 -0
  11. data/docs/CallStatusWebhook.md +36 -0
  12. data/docs/CompletionResult.md +1 -1
  13. data/docs/CompletionResultStatus.md +17 -0
  14. data/docs/ConferenceRecordingStatusWebhook.md +42 -0
  15. data/docs/ConferenceResult.md +1 -1
  16. data/docs/ConferenceStatusWebhook.md +42 -0
  17. data/docs/CreateConference.md +1 -1
  18. data/docs/CreateConferenceRequest.md +1 -1
  19. data/docs/CreateConferenceWebhook.md +42 -0
  20. data/docs/DequeueWebhook.md +38 -0
  21. data/docs/GetDigitsReason.md +19 -0
  22. data/docs/GetDigitsWebhook.md +40 -0
  23. data/docs/GetSpeechWebhook.md +50 -0
  24. data/docs/InboundCallWebhook.md +36 -0
  25. data/docs/LeaveConferenceWebhook.md +34 -0
  26. data/docs/MachineDetectedWebhook.md +38 -0
  27. data/docs/MachineType.md +2 -2
  28. data/docs/MessageDeliveryWebhook.md +36 -0
  29. data/docs/MessageResult.md +7 -1
  30. data/docs/MessageStatusWebhook.md +38 -0
  31. data/docs/OutDialApiConnectWebhook.md +36 -0
  32. data/docs/OutDialConnectWebhook.md +36 -0
  33. data/docs/OutDialStartWebhook.md +38 -0
  34. data/docs/QueueWaitWebhook.md +40 -0
  35. data/docs/RecordWebhook.md +50 -0
  36. data/docs/RedirectWebhook.md +36 -0
  37. data/docs/RemoveFromQueueNotificationWebhook.md +38 -0
  38. data/docs/SMSTenDLCBrand.md +6 -6
  39. data/docs/SMSTenDLCBrandAltBusinessIdType.md +19 -0
  40. data/docs/SMSTenDLCBrandEntityType.md +20 -0
  41. data/docs/SMSTenDLCBrandIdentityStatus.md +19 -0
  42. data/docs/SMSTenDLCBrandRelationship.md +20 -0
  43. data/docs/SMSTenDLCBrandStockExchange.md +42 -0
  44. data/docs/SMSTenDLCCampaign.md +1 -1
  45. data/docs/SMSTenDLCCampaignStatus.md +17 -0
  46. data/docs/SMSTenDLCPartnerCampaign.md +1 -1
  47. data/docs/SMSTenDLCPartnerCampaignStatus.md +17 -0
  48. data/docs/SMSTollFreeCampaign.md +1 -1
  49. data/docs/SMSTollFreeCampaignRegistrationStatus.md +20 -0
  50. data/docs/TFNCampaign.md +34 -0
  51. data/docs/TranscribeReason.md +20 -0
  52. data/docs/TranscribeTermReason.md +17 -0
  53. data/docs/TranscribeUtterance.md +2 -2
  54. data/docs/TranscribeWebhook.md +62 -0
  55. data/docs/UpdateConferenceRequest.md +1 -1
  56. data/docs/Webhook.md +18 -0
  57. data/freeclimb.gemspec +1 -1
  58. data/lib/freeclimb/api/default_api.rb +18 -18
  59. data/lib/freeclimb/api_client.rb +1 -1
  60. data/lib/freeclimb/api_error.rb +1 -1
  61. data/lib/freeclimb/configuration.rb +2 -4
  62. data/lib/freeclimb/models/account_request.rb +1 -3
  63. data/lib/freeclimb/models/account_result.rb +23 -4
  64. data/lib/freeclimb/models/account_status.rb +1 -1
  65. data/lib/freeclimb/models/account_type.rb +1 -1
  66. data/lib/freeclimb/models/add_to_conference.rb +1 -4
  67. data/lib/freeclimb/models/add_to_conference_notification_webhook.rb +384 -0
  68. data/lib/freeclimb/models/{conference_participant_result_all_of.rb → add_to_queue_notification_webhook.rb} +112 -59
  69. data/lib/freeclimb/models/answered_by.rb +1 -1
  70. data/lib/freeclimb/models/application_list.rb +1 -4
  71. data/lib/freeclimb/models/application_request.rb +1 -3
  72. data/lib/freeclimb/models/application_result.rb +1 -4
  73. data/lib/freeclimb/models/available_number.rb +1 -3
  74. data/lib/freeclimb/models/available_number_list.rb +1 -4
  75. data/lib/freeclimb/models/barge_in_reason.rb +38 -0
  76. data/lib/freeclimb/models/buy_incoming_number_request.rb +1 -3
  77. data/lib/freeclimb/models/{recording_result_all_of.rb → call_control_webhook.rb} +57 -45
  78. data/lib/freeclimb/models/call_direction.rb +1 -1
  79. data/lib/freeclimb/models/call_ended_reason.rb +58 -0
  80. data/lib/freeclimb/models/call_list.rb +1 -4
  81. data/lib/freeclimb/models/call_result.rb +23 -4
  82. data/lib/freeclimb/models/call_status.rb +1 -1
  83. data/lib/freeclimb/models/call_status_webhook.rb +354 -0
  84. data/lib/freeclimb/models/capabilities.rb +1 -3
  85. data/lib/freeclimb/models/completion_request.rb +1 -3
  86. data/lib/freeclimb/models/completion_result.rb +2 -15
  87. data/lib/freeclimb/models/completion_result_status.rb +37 -0
  88. data/lib/freeclimb/models/conference_list.rb +1 -4
  89. data/lib/freeclimb/models/conference_participant_list.rb +1 -4
  90. data/lib/freeclimb/models/conference_participant_result.rb +1 -4
  91. data/lib/freeclimb/models/conference_recording_status_webhook.rb +384 -0
  92. data/lib/freeclimb/models/conference_result.rb +23 -6
  93. data/lib/freeclimb/models/conference_status.rb +1 -1
  94. data/lib/freeclimb/models/conference_status_webhook.rb +387 -0
  95. data/lib/freeclimb/models/create_conference.rb +23 -6
  96. data/lib/freeclimb/models/create_conference_request.rb +23 -5
  97. data/lib/freeclimb/models/create_conference_webhook.rb +387 -0
  98. data/lib/freeclimb/models/create_web_rtc_token.rb +1 -3
  99. data/lib/freeclimb/models/dequeue.rb +3 -7
  100. data/lib/freeclimb/models/dequeue_webhook.rb +365 -0
  101. data/lib/freeclimb/models/enqueue.rb +1 -4
  102. data/lib/freeclimb/models/filter_logs_request.rb +1 -3
  103. data/lib/freeclimb/models/get_digits.rb +1 -4
  104. data/lib/freeclimb/models/get_digits_reason.rb +39 -0
  105. data/lib/freeclimb/models/get_digits_webhook.rb +373 -0
  106. data/lib/freeclimb/models/get_speech.rb +23 -4
  107. data/lib/freeclimb/models/get_speech_reason.rb +1 -1
  108. data/lib/freeclimb/models/get_speech_webhook.rb +423 -0
  109. data/lib/freeclimb/models/grammar_file_built_in.rb +1 -1
  110. data/lib/freeclimb/models/grammar_type.rb +1 -1
  111. data/lib/freeclimb/models/hangup.rb +1 -4
  112. data/lib/freeclimb/models/if_machine.rb +1 -1
  113. data/lib/freeclimb/models/inbound_call_webhook.rb +355 -0
  114. data/lib/freeclimb/models/incoming_number_list.rb +1 -4
  115. data/lib/freeclimb/models/incoming_number_request.rb +1 -3
  116. data/lib/freeclimb/models/incoming_number_result.rb +1 -4
  117. data/lib/freeclimb/models/language.rb +1 -1
  118. data/lib/freeclimb/models/{conference_result_all_of.rb → leave_conference_webhook.rb} +110 -89
  119. data/lib/freeclimb/models/log_level.rb +1 -1
  120. data/lib/freeclimb/models/log_list.rb +1 -4
  121. data/lib/freeclimb/models/log_result.rb +23 -3
  122. data/lib/freeclimb/models/{call_result_all_of.rb → machine_detected_webhook.rb} +96 -119
  123. data/lib/freeclimb/models/machine_type.rb +3 -3
  124. data/lib/freeclimb/models/make_call_request.rb +1 -3
  125. data/lib/freeclimb/models/{message_result_all_of.rb → message_delivery_webhook.rb} +71 -87
  126. data/lib/freeclimb/models/message_direction.rb +1 -1
  127. data/lib/freeclimb/models/message_request.rb +1 -4
  128. data/lib/freeclimb/models/message_result.rb +59 -9
  129. data/lib/freeclimb/models/message_status.rb +1 -1
  130. data/lib/freeclimb/models/{incoming_number_result_all_of.rb → message_status_webhook.rb} +117 -107
  131. data/lib/freeclimb/models/messages_list.rb +1 -4
  132. data/lib/freeclimb/models/mutable_resource_model.rb +1 -3
  133. data/lib/freeclimb/models/out_dial.rb +23 -4
  134. data/lib/freeclimb/models/out_dial_api_connect_webhook.rb +355 -0
  135. data/lib/freeclimb/models/out_dial_connect_webhook.rb +355 -0
  136. data/lib/freeclimb/models/out_dial_start_webhook.rb +366 -0
  137. data/lib/freeclimb/models/pagination_model.rb +1 -3
  138. data/lib/freeclimb/models/park.rb +1 -4
  139. data/lib/freeclimb/models/pause.rb +1 -4
  140. data/lib/freeclimb/models/percl_command.rb +3 -5
  141. data/lib/freeclimb/models/percl_script.rb +2 -4
  142. data/lib/freeclimb/models/play.rb +2 -5
  143. data/lib/freeclimb/models/play_beep.rb +1 -1
  144. data/lib/freeclimb/models/play_early_media.rb +2 -5
  145. data/lib/freeclimb/models/queue_list.rb +2 -5
  146. data/lib/freeclimb/models/queue_member.rb +1 -3
  147. data/lib/freeclimb/models/queue_member_list.rb +2 -5
  148. data/lib/freeclimb/models/queue_request.rb +1 -3
  149. data/lib/freeclimb/models/queue_result.rb +2 -5
  150. data/lib/freeclimb/models/queue_result_status.rb +1 -1
  151. data/lib/freeclimb/models/queue_wait_webhook.rb +375 -0
  152. data/lib/freeclimb/models/record_utterance.rb +2 -5
  153. data/lib/freeclimb/models/record_utterance_term_reason.rb +1 -1
  154. data/lib/freeclimb/models/record_webhook.rb +424 -0
  155. data/lib/freeclimb/models/recording_list.rb +2 -5
  156. data/lib/freeclimb/models/recording_result.rb +2 -5
  157. data/lib/freeclimb/models/redirect.rb +2 -5
  158. data/lib/freeclimb/models/redirect_webhook.rb +355 -0
  159. data/lib/freeclimb/models/reject.rb +2 -5
  160. data/lib/freeclimb/models/remove_from_conference.rb +3 -7
  161. data/lib/freeclimb/models/remove_from_queue_notification_webhook.rb +364 -0
  162. data/lib/freeclimb/models/request_type.rb +1 -1
  163. data/lib/freeclimb/models/say.rb +2 -5
  164. data/lib/freeclimb/models/send_digits.rb +2 -5
  165. data/lib/freeclimb/models/set_dtmf_pass_through.rb +2 -5
  166. data/lib/freeclimb/models/set_listen.rb +2 -5
  167. data/lib/freeclimb/models/set_talk.rb +2 -5
  168. data/lib/freeclimb/models/sms.rb +2 -5
  169. data/lib/freeclimb/models/sms_ten_dlc_brand.rb +6 -67
  170. data/lib/freeclimb/models/sms_ten_dlc_brand_alt_business_id_type.rb +39 -0
  171. data/lib/freeclimb/models/sms_ten_dlc_brand_entity_type.rb +40 -0
  172. data/lib/freeclimb/models/sms_ten_dlc_brand_identity_status.rb +39 -0
  173. data/lib/freeclimb/models/sms_ten_dlc_brand_relationship.rb +40 -0
  174. data/lib/freeclimb/models/sms_ten_dlc_brand_stock_exchange.rb +62 -0
  175. data/lib/freeclimb/models/sms_ten_dlc_brands_list_result.rb +2 -5
  176. data/lib/freeclimb/models/sms_ten_dlc_campaign.rb +2 -15
  177. data/lib/freeclimb/models/sms_ten_dlc_campaign_status.rb +37 -0
  178. data/lib/freeclimb/models/sms_ten_dlc_campaigns_list_result.rb +2 -5
  179. data/lib/freeclimb/models/sms_ten_dlc_partner_campaign.rb +2 -15
  180. data/lib/freeclimb/models/sms_ten_dlc_partner_campaign_brand.rb +1 -3
  181. data/lib/freeclimb/models/sms_ten_dlc_partner_campaign_status.rb +37 -0
  182. data/lib/freeclimb/models/sms_ten_dlc_partner_campaigns_list_result.rb +2 -5
  183. data/lib/freeclimb/models/sms_toll_free_campaign.rb +2 -15
  184. data/lib/freeclimb/models/sms_toll_free_campaign_registration_status.rb +40 -0
  185. data/lib/freeclimb/models/sms_toll_free_campaigns_list_result.rb +2 -5
  186. data/lib/freeclimb/models/start_record_call.rb +3 -7
  187. data/lib/freeclimb/models/terminate_conference.rb +3 -7
  188. data/lib/freeclimb/models/tfn.rb +1 -3
  189. data/lib/freeclimb/models/{application_result_all_of.rb → tfn_campaign.rb} +129 -72
  190. data/lib/freeclimb/models/transcribe_reason.rb +40 -0
  191. data/lib/freeclimb/models/transcribe_term_reason.rb +37 -0
  192. data/lib/freeclimb/models/transcribe_utterance.rb +4 -7
  193. data/lib/freeclimb/models/{transcribe_utterance_all_of_record.rb → transcribe_utterance_record.rb} +8 -10
  194. data/lib/freeclimb/models/transcribe_webhook.rb +481 -0
  195. data/lib/freeclimb/models/unpark.rb +3 -7
  196. data/lib/freeclimb/models/update_call_request.rb +23 -3
  197. data/lib/freeclimb/models/update_call_request_status.rb +1 -1
  198. data/lib/freeclimb/models/update_conference_participant_request.rb +1 -3
  199. data/lib/freeclimb/models/update_conference_request.rb +23 -5
  200. data/lib/freeclimb/models/update_conference_request_status.rb +1 -1
  201. data/lib/freeclimb/models/{call_list_all_of.rb → webhook.rb} +18 -17
  202. data/lib/freeclimb/utils/request_verifier.rb +51 -51
  203. data/lib/freeclimb/utils/signature_information.rb +34 -34
  204. data/lib/freeclimb/version.rb +2 -2
  205. data/lib/freeclimb.rb +42 -49
  206. data/openapi.json +1756 -648
  207. data/package.json +3 -1
  208. data/spec/api/default_api_spec.rb +97 -149
  209. data/spec/factories.rb +78 -78
  210. data/spec/models/account_request_spec.rb +168 -19
  211. data/spec/models/account_result_spec.rb +878 -91
  212. data/spec/models/account_status_spec.rb +2 -1
  213. data/spec/models/account_type_spec.rb +2 -1
  214. data/spec/models/add_to_conference_notification_webhook_spec.rb +1515 -0
  215. data/spec/models/add_to_conference_spec.rb +725 -43
  216. data/spec/models/add_to_queue_notification_webhook_spec.rb +1106 -0
  217. data/spec/models/answered_by_spec.rb +2 -1
  218. data/spec/models/application_list_spec.rb +504 -41
  219. data/spec/models/application_request_spec.rb +553 -34
  220. data/spec/models/application_result_spec.rb +997 -52
  221. data/spec/models/available_number_list_spec.rb +504 -41
  222. data/spec/models/available_number_spec.rb +536 -49
  223. data/spec/models/barge_in_reason_spec.rb +78 -0
  224. data/spec/models/buy_incoming_number_request_spec.rb +245 -22
  225. data/spec/models/call_control_webhook_spec.rb +664 -0
  226. data/spec/models/call_direction_spec.rb +2 -1
  227. data/spec/models/call_ended_reason_spec.rb +398 -0
  228. data/spec/models/call_list_spec.rb +504 -41
  229. data/spec/models/call_result_spec.rb +1712 -272
  230. data/spec/models/call_status_spec.rb +2 -1
  231. data/spec/models/call_status_webhook_spec.rb +1292 -0
  232. data/spec/models/capabilities_spec.rb +309 -28
  233. data/spec/models/completion_request_spec.rb +89 -17
  234. data/spec/models/completion_result_spec.rb +184 -47
  235. data/spec/models/completion_result_status_spec.rb +62 -0
  236. data/spec/models/conference_list_spec.rb +504 -41
  237. data/spec/models/conference_participant_list_spec.rb +504 -41
  238. data/spec/models/conference_participant_result_spec.rb +804 -48
  239. data/spec/models/conference_recording_status_webhook_spec.rb +1515 -0
  240. data/spec/models/conference_result_spec.rb +1215 -224
  241. data/spec/models/conference_status_spec.rb +2 -1
  242. data/spec/models/conference_status_webhook_spec.rb +1515 -0
  243. data/spec/models/create_conference_request_spec.rb +391 -46
  244. data/spec/models/create_conference_spec.rb +450 -49
  245. data/spec/models/create_conference_webhook_spec.rb +1515 -0
  246. data/spec/models/create_web_rtc_token_spec.rb +227 -22
  247. data/spec/models/dequeue_spec.rb +2 -1
  248. data/spec/models/dequeue_webhook_spec.rb +1300 -0
  249. data/spec/models/enqueue_spec.rb +322 -25
  250. data/spec/models/filter_logs_request_spec.rb +91 -16
  251. data/spec/models/get_digits_reason_spec.rb +94 -0
  252. data/spec/models/get_digits_spec.rb +581 -44
  253. data/spec/models/get_digits_webhook_spec.rb +1426 -0
  254. data/spec/models/get_speech_reason_spec.rb +2 -1
  255. data/spec/models/get_speech_spec.rb +856 -69
  256. data/spec/models/get_speech_webhook_spec.rb +1927 -0
  257. data/spec/models/grammar_file_built_in_spec.rb +2 -1
  258. data/spec/models/grammar_type_spec.rb +2 -1
  259. data/spec/models/hangup_spec.rb +91 -16
  260. data/spec/models/if_machine_spec.rb +2 -1
  261. data/spec/models/inbound_call_webhook_spec.rb +1211 -0
  262. data/spec/models/incoming_number_list_spec.rb +504 -41
  263. data/spec/models/incoming_number_request_spec.rb +245 -22
  264. data/spec/models/incoming_number_result_spec.rb +1430 -235
  265. data/spec/models/language_spec.rb +2 -1
  266. data/spec/models/leave_conference_webhook_spec.rb +1106 -0
  267. data/spec/models/log_level_spec.rb +2 -1
  268. data/spec/models/log_list_spec.rb +504 -41
  269. data/spec/models/log_result_spec.rb +556 -57
  270. data/spec/models/machine_detected_webhook_spec.rb +1313 -0
  271. data/spec/models/machine_type_spec.rb +11 -10
  272. data/spec/models/make_call_request_spec.rb +749 -44
  273. data/spec/models/message_delivery_webhook_spec.rb +1189 -0
  274. data/spec/models/message_direction_spec.rb +2 -1
  275. data/spec/models/message_request_spec.rb +672 -41
  276. data/spec/models/message_result_spec.rb +1644 -204
  277. data/spec/models/message_status_spec.rb +2 -1
  278. data/spec/models/message_status_webhook_spec.rb +1327 -0
  279. data/spec/models/messages_list_spec.rb +504 -41
  280. data/spec/models/mutable_resource_model_spec.rb +304 -25
  281. data/spec/models/out_dial_api_connect_webhook_spec.rb +1211 -0
  282. data/spec/models/out_dial_connect_webhook_spec.rb +1211 -0
  283. data/spec/models/out_dial_spec.rb +759 -62
  284. data/spec/models/out_dial_start_webhook_spec.rb +1316 -0
  285. data/spec/models/pagination_model_spec.rb +445 -34
  286. data/spec/models/park_spec.rb +245 -22
  287. data/spec/models/pause_spec.rb +73 -16
  288. data/spec/models/percl_command_spec.rb +88 -16
  289. data/spec/models/percl_script_spec.rb +73 -20
  290. data/spec/models/play_beep_spec.rb +2 -1
  291. data/spec/models/play_early_media_spec.rb +91 -16
  292. data/spec/models/play_spec.rb +209 -22
  293. data/spec/models/queue_list_spec.rb +504 -41
  294. data/spec/models/queue_member_list_spec.rb +504 -41
  295. data/spec/models/queue_member_spec.rb +363 -28
  296. data/spec/models/queue_request_spec.rb +150 -19
  297. data/spec/models/queue_result_spec.rb +801 -52
  298. data/spec/models/queue_result_status_spec.rb +2 -1
  299. data/spec/models/queue_wait_webhook_spec.rb +1389 -0
  300. data/spec/models/record_utterance_spec.rb +463 -34
  301. data/spec/models/record_utterance_term_reason_spec.rb +2 -1
  302. data/spec/models/record_webhook_spec.rb +1917 -0
  303. data/spec/models/recording_list_spec.rb +504 -41
  304. data/spec/models/recording_result_spec.rb +672 -41
  305. data/spec/models/redirect_spec.rb +91 -16
  306. data/spec/models/redirect_webhook_spec.rb +1211 -0
  307. data/spec/models/reject_spec.rb +91 -16
  308. data/spec/models/remove_from_conference_spec.rb +2 -1
  309. data/spec/models/remove_from_queue_notification_webhook_spec.rb +1305 -0
  310. data/spec/models/request_type_spec.rb +2 -1
  311. data/spec/models/say_spec.rb +286 -25
  312. data/spec/models/send_digits_spec.rb +209 -22
  313. data/spec/models/set_dtmf_pass_through_spec.rb +73 -16
  314. data/spec/models/set_listen_spec.rb +73 -16
  315. data/spec/models/set_talk_spec.rb +73 -16
  316. data/spec/models/sms_spec.rb +322 -25
  317. data/spec/models/sms_ten_dlc_brand_alt_business_id_type_spec.rb +94 -0
  318. data/spec/models/sms_ten_dlc_brand_entity_type_spec.rb +110 -0
  319. data/spec/models/sms_ten_dlc_brand_identity_status_spec.rb +94 -0
  320. data/spec/models/sms_ten_dlc_brand_relationship_spec.rb +110 -0
  321. data/spec/models/sms_ten_dlc_brand_spec.rb +2585 -484
  322. data/spec/models/sms_ten_dlc_brand_stock_exchange_spec.rb +462 -0
  323. data/spec/models/sms_ten_dlc_brands_list_result_spec.rb +504 -41
  324. data/spec/models/sms_ten_dlc_campaign_spec.rb +2604 -274
  325. data/spec/models/sms_ten_dlc_campaign_status_spec.rb +62 -0
  326. data/spec/models/sms_ten_dlc_campaigns_list_result_spec.rb +504 -41
  327. data/spec/models/sms_ten_dlc_partner_campaign_brand_spec.rb +835 -55
  328. data/spec/models/sms_ten_dlc_partner_campaign_spec.rb +2078 -166
  329. data/spec/models/sms_ten_dlc_partner_campaign_status_spec.rb +62 -0
  330. data/spec/models/sms_ten_dlc_partner_campaigns_list_result_spec.rb +504 -41
  331. data/spec/models/sms_toll_free_campaign_registration_status_spec.rb +110 -0
  332. data/spec/models/sms_toll_free_campaign_spec.rb +555 -71
  333. data/spec/models/sms_toll_free_campaigns_list_result_spec.rb +504 -41
  334. data/spec/models/start_record_call_spec.rb +2 -1
  335. data/spec/models/terminate_conference_spec.rb +2 -1
  336. data/spec/models/tfn_campaign_spec.rb +1089 -0
  337. data/spec/models/tfn_spec.rb +91 -16
  338. data/spec/models/transcribe_reason_spec.rb +110 -0
  339. data/spec/models/transcribe_term_reason_spec.rb +62 -0
  340. data/spec/models/{transcribe_utterance_all_of_record_spec.rb → transcribe_utterance_record_spec.rb} +214 -45
  341. data/spec/models/transcribe_utterance_spec.rb +424 -47
  342. data/spec/models/transcribe_webhook_spec.rb +2418 -0
  343. data/spec/models/unpark_spec.rb +2 -1
  344. data/spec/models/update_call_request_spec.rb +101 -34
  345. data/spec/models/update_call_request_status_spec.rb +2 -1
  346. data/spec/models/update_conference_participant_request_spec.rb +219 -19
  347. data/spec/models/update_conference_request_spec.rb +265 -58
  348. data/spec/models/update_conference_request_status_spec.rb +2 -1
  349. data/spec/models/webhook_spec.rb +228 -0
  350. data/spec/quickstart_spec.rb +7 -7
  351. data/spec/spec_helper.rb +1 -1
  352. data/spec/utils/request_verifier_spec.rb +123 -123
  353. data/spec/utils/signature_information_spec.rb +36 -36
  354. data/yarn.lock +91 -91
  355. metadata +247 -186
  356. data/docs/AccountResultAllOf.md +0 -30
  357. data/docs/AddToConferenceAllOf.md +0 -36
  358. data/docs/ApplicationListAllOf.md +0 -18
  359. data/docs/ApplicationResultAllOf.md +0 -34
  360. data/docs/AvailableNumberListAllOf.md +0 -18
  361. data/docs/CallListAllOf.md +0 -18
  362. data/docs/CallResultAllOf.md +0 -48
  363. data/docs/ConferenceListAllOf.md +0 -18
  364. data/docs/ConferenceParticipantListAllOf.md +0 -18
  365. data/docs/ConferenceParticipantResultAllOf.md +0 -30
  366. data/docs/ConferenceResultAllOf.md +0 -36
  367. data/docs/CreateConferenceAllOf.md +0 -28
  368. data/docs/EnqueueAllOf.md +0 -24
  369. data/docs/GetDigitsAllOf.md +0 -34
  370. data/docs/GetSpeechAllOf.md +0 -42
  371. data/docs/HangupAllOf.md +0 -18
  372. data/docs/IncomingNumberListAllOf.md +0 -18
  373. data/docs/IncomingNumberResultAllOf.md +0 -42
  374. data/docs/LogListAllOf.md +0 -18
  375. data/docs/MessageRequestAllOf.md +0 -26
  376. data/docs/MessageResultAllOf.md +0 -40
  377. data/docs/MessagesListAllOf.md +0 -18
  378. data/docs/OutDialAllOf.md +0 -36
  379. data/docs/ParkAllOf.md +0 -22
  380. data/docs/PauseAllOf.md +0 -18
  381. data/docs/PlayAllOf.md +0 -22
  382. data/docs/PlayEarlyMediaAllOf.md +0 -18
  383. data/docs/QueueListAllOf.md +0 -18
  384. data/docs/QueueMemberListAllOf.md +0 -18
  385. data/docs/QueueResultAllOf.md +0 -30
  386. data/docs/RecordUtteranceAllOf.md +0 -30
  387. data/docs/RecordingListAllOf.md +0 -18
  388. data/docs/RecordingResultAllOf.md +0 -26
  389. data/docs/RedirectAllOf.md +0 -18
  390. data/docs/RejectAllOf.md +0 -18
  391. data/docs/RemoveFromConferenceAllOf.md +0 -18
  392. data/docs/SMSTenDLCBrandsListResultAllOf.md +0 -18
  393. data/docs/SMSTenDLCCampaignsListResultAllOf.md +0 -18
  394. data/docs/SMSTenDLCPartnerCampaignsListResultAllOf.md +0 -18
  395. data/docs/SMSTollFreeCampaignsListResultAllOf.md +0 -18
  396. data/docs/SayAllOf.md +0 -24
  397. data/docs/SendDigitsAllOf.md +0 -22
  398. data/docs/SetDTMFPassThroughAllOf.md +0 -18
  399. data/docs/SetListenAllOf.md +0 -18
  400. data/docs/SetTalkAllOf.md +0 -18
  401. data/docs/SmsAllOf.md +0 -24
  402. data/docs/TerminateConferenceAllOf.md +0 -18
  403. data/docs/TranscribeUtteranceAllOf.md +0 -28
  404. data/docs/TranscribeUtteranceAllOfRecord.md +0 -22
  405. data/lib/freeclimb/models/account_result_all_of.rb +0 -289
  406. data/lib/freeclimb/models/add_to_conference_all_of.rb +0 -318
  407. data/lib/freeclimb/models/application_list_all_of.rb +0 -226
  408. data/lib/freeclimb/models/available_number_list_all_of.rb +0 -226
  409. data/lib/freeclimb/models/conference_list_all_of.rb +0 -226
  410. data/lib/freeclimb/models/conference_participant_list_all_of.rb +0 -226
  411. data/lib/freeclimb/models/create_conference_all_of.rb +0 -280
  412. data/lib/freeclimb/models/enqueue_all_of.rb +0 -266
  413. data/lib/freeclimb/models/get_digits_all_of.rb +0 -310
  414. data/lib/freeclimb/models/get_speech_all_of.rb +0 -354
  415. data/lib/freeclimb/models/hangup_all_of.rb +0 -224
  416. data/lib/freeclimb/models/incoming_number_list_all_of.rb +0 -226
  417. data/lib/freeclimb/models/log_list_all_of.rb +0 -226
  418. data/lib/freeclimb/models/message_request_all_of.rb +0 -279
  419. data/lib/freeclimb/models/messages_list_all_of.rb +0 -227
  420. data/lib/freeclimb/models/out_dial_all_of.rb +0 -329
  421. data/lib/freeclimb/models/park_all_of.rb +0 -252
  422. data/lib/freeclimb/models/pause_all_of.rb +0 -228
  423. data/lib/freeclimb/models/play_all_of.rb +0 -248
  424. data/lib/freeclimb/models/play_early_media_all_of.rb +0 -228
  425. data/lib/freeclimb/models/queue_list_all_of.rb +0 -226
  426. data/lib/freeclimb/models/queue_member_list_all_of.rb +0 -226
  427. data/lib/freeclimb/models/queue_result_all_of.rb +0 -291
  428. data/lib/freeclimb/models/record_utterance_all_of.rb +0 -288
  429. data/lib/freeclimb/models/recording_list_all_of.rb +0 -226
  430. data/lib/freeclimb/models/redirect_all_of.rb +0 -228
  431. data/lib/freeclimb/models/reject_all_of.rb +0 -224
  432. data/lib/freeclimb/models/say_all_of.rb +0 -260
  433. data/lib/freeclimb/models/send_digits_all_of.rb +0 -248
  434. data/lib/freeclimb/models/set_dtmf_pass_through_all_of.rb +0 -224
  435. data/lib/freeclimb/models/set_listen_all_of.rb +0 -224
  436. data/lib/freeclimb/models/set_talk_all_of.rb +0 -224
  437. data/lib/freeclimb/models/sms_all_of.rb +0 -266
  438. data/lib/freeclimb/models/sms_ten_dlc_brands_list_result_all_of.rb +0 -226
  439. data/lib/freeclimb/models/sms_ten_dlc_campaigns_list_result_all_of.rb +0 -226
  440. data/lib/freeclimb/models/sms_ten_dlc_partner_campaigns_list_result_all_of.rb +0 -226
  441. data/lib/freeclimb/models/sms_toll_free_campaigns_list_result_all_of.rb +0 -226
  442. data/lib/freeclimb/models/transcribe_utterance_all_of.rb +0 -281
data/openapi.json CHANGED
@@ -22,7 +22,6 @@
22
22
  "in": "path",
23
23
  "description": "ID of the account",
24
24
  "required": true,
25
- "x-account-id": true,
26
25
  "schema": {
27
26
  "type": "string"
28
27
  }
@@ -84,8 +83,6 @@
84
83
  "AccountStatus": {
85
84
  "type": "string",
86
85
  "enum": ["closed", "suspended", "active"],
87
- "x-enum-varnames": ["CLOSED", "SUSPENDED", "ACTIVE"],
88
- "x-enum": true,
89
86
  "description": "The status of this account. It is one of: active, suspended, or closed.",
90
87
  "nullable": true
91
88
  },
@@ -93,24 +90,18 @@
93
90
  "type": "string",
94
91
  "description": "The type of this account. It is one of: trial or full.",
95
92
  "enum": ["trial", "full"],
96
- "x-enum": true,
97
- "x-enum-varnames": ["TRIAL", "FULL"],
98
93
  "nullable": true
99
94
  },
100
95
  "AnsweredBy": {
101
96
  "type": "string",
102
97
  "nullable": true,
103
98
  "enum": ["human", "machine"],
104
- "x-enum-varnames": ["HUMAN", "MACHINE"],
105
- "x-enum": true,
106
99
  "description": "If this Call was initiated with answering machine detection, either `human` or `machine`. Empty otherwise."
107
100
  },
108
101
  "CallDirection": {
109
102
  "type": "string",
110
103
  "nullable": true,
111
104
  "enum": ["inbound", "outboundAPI", "outboundDial"],
112
- "x-enum-varnames": ["INBOUND", "OUTBOUND_API", "OUTBOUND_DIAL"],
113
- "x-enum": true,
114
105
  "description": "Direction of the Call. `inbound` for Calls into FreeClimb, `outboundAPI` for Calls initiated via the REST API, `outboundDial` for Calls initiated by the `OutDial` PerCL command."
115
106
  },
116
107
  "CallStatus": {
@@ -126,25 +117,47 @@
126
117
  "busy",
127
118
  "noAnswer"
128
119
  ],
129
- "x-enum-varnames": [
130
- "QUEUED",
131
- "RINGING",
132
- "IN_PROGRESS",
133
- "CANCELED",
134
- "COMPLETED",
135
- "FAILED",
136
- "BUSY",
137
- "NO_ANSWER"
138
- ],
139
- "x-enum": true,
140
120
  "description": "* `queued` – Call is ready and waiting in line before going out. * `ringing` – Call is currently ringing. * `inProgress` – Call was answered and is currently in progress. * `canceled` – Call was hung up while it was queued or ringing. * `completed` – Call was answered and has ended normally. * `busy` – Caller received a busy signal. * `failed` – Call could not be completed as dialed, most likely because the phone number was non-existent. * `noAnswer` – Call ended without being answered."
141
121
  },
122
+ "CallEndedReason": {
123
+ "type": "string",
124
+ "nullable": true,
125
+ "enum": [
126
+ "busy",
127
+ "failed",
128
+ "noAnswer",
129
+ "callCanceled",
130
+ "farEndHangup",
131
+ "appHangup",
132
+ "appReject",
133
+ "appNoPercl",
134
+ "appInvalidPercl",
135
+ "conferenceTerminated",
136
+ "conferenceEmptied",
137
+ "removedFromConference",
138
+ "machineDetected",
139
+ "webhookFailed",
140
+ "webhookInvalidResponse",
141
+ "voiceDisabled",
142
+ "configErrorNoApplication",
143
+ "configErrorNoVoiceUrl",
144
+ "maxRedirectsError",
145
+ "perclProcessingError",
146
+ "internalError",
147
+ "grpcHangup",
148
+ "maxDuration"
149
+ ],
150
+ "description": "Enhanced status for the Call with additional information where available."
151
+ },
152
+ "GetDigitsReason": {
153
+ "type": "string",
154
+ "enum": ["finishKey", "timeout", "maxDigits", "tone"],
155
+ "description": "This field explains how the GetDigits action ended. The value is one of the below: •finishKey - The finish key as specified had been pressed by the caller. Digit string has all keys up to, but not including, the finish key. •timeout - The timeout limit was reached prior to any other criteria being met. If any digits were collected, they will be included. •maxDigits - The maximum number of digits was reached and digit collection ended. •tone - Answering machine or fax tone detection occurred, interrupting digit collection. Any digits received up to this point are included in this webhook."
156
+ },
142
157
  "ConferenceStatus": {
143
158
  "type": "string",
144
159
  "nullable": true,
145
160
  "enum": ["empty", "populated", "inProgress", "terminated"],
146
- "x-enum-varnames": ["EMPTY", "POPULATED", "IN_PROGRESS", "TERMINATED"],
147
- "x-enum": true,
148
161
  "description": "The status of the Conference. One of: creating, empty, populated, inProgress, or terminated."
149
162
  },
150
163
  "GetSpeechReason": {
@@ -156,16 +169,7 @@
156
169
  "noInput",
157
170
  "noMatch",
158
171
  "recognition"
159
- ],
160
- "x-enum-varnames": [
161
- "ERROR",
162
- "HANGUP",
163
- "DIGIT",
164
- "NO_INPUT",
165
- "NO_MATCH",
166
- "RECOGNITION"
167
- ],
168
- "x-enum": true
172
+ ]
169
173
  },
170
174
  "GrammarFileBuiltIn": {
171
175
  "type": "string",
@@ -185,39 +189,17 @@
185
189
  "DIG11",
186
190
  "UP_TO_20_DIGIT_SEQUENCE",
187
191
  "VERSAY_YESNO"
188
- ],
189
- "x-enum-varnames": [
190
- "ALPHNUM6",
191
- "ANY_DIG",
192
- "DIG1",
193
- "DIG2",
194
- "DIG3",
195
- "DIG4",
196
- "DIG5",
197
- "DIG6",
198
- "DIG7",
199
- "DIG8",
200
- "DIG9",
201
- "DIG10",
202
- "DIG11",
203
- "UP_TO_20_DIGIT_SEQUENCE",
204
- "VERSAY_YESNO"
205
- ],
206
- "x-enum": true
192
+ ]
207
193
  },
208
194
  "GrammarType": {
209
195
  "type": "string",
210
196
  "enum": ["URL", "BUILTIN"],
211
197
  "nullable": true,
212
- "x-enum-varnames": ["URL", "BUILT_IN"],
213
- "x-enum": true,
214
198
  "description": "The grammar file type to use for speech recognition. A value of 'URL' indicates the grammarFile attribute specifies a URL that points to the grammar file. A value of `BUILTIN` indicates the grammarFile attribute specifies the name of one of the platform built-in grammar files."
215
199
  },
216
200
  "IfMachine": {
217
201
  "type": "string",
218
202
  "enum": ["redirect", "hangup"],
219
- "x-enum-varnames": ["REDIRECT", "HANGUP"],
220
- "x-enum": true,
221
203
  "description": "Specifies how FreeClimb should handle this OutDial if an answering machine answers the Call. Valid values: `redirect` invokes the ifMachineUrl for instructions. `hangup` hangs up the Call. The ifMachineUrl will not be invoked."
222
204
  },
223
205
  "Language": {
@@ -249,56 +231,21 @@
249
231
  "zh-CN",
250
232
  "zh-HK",
251
233
  "zh-TW"
252
- ],
253
- "x-enum-varnames": [
254
- "CATALAN",
255
- "DANISH",
256
- "GERMAN",
257
- "ENGLISH_AU",
258
- "ENGLISH_CA",
259
- "ENGLISH_UK",
260
- "ENGLISH_IN",
261
- "ENGLISH_US",
262
- "ENGLISH_ES",
263
- "ENGLISH_MX",
264
- "FINNISH",
265
- "FRENCH_CA",
266
- "FRENCH_FR",
267
- "ITALIAN",
268
- "JAPANESE",
269
- "KOREAN",
270
- "NORWEGIAN",
271
- "DUTCH",
272
- "POLISH",
273
- "PORTUGESE_BR",
274
- "PORTUGESE_PT",
275
- "RUSSIAN",
276
- "SWEDISH",
277
- "CHINESE_CN",
278
- "CHINESE_HK",
279
- "CHINESE_TW"
280
- ],
281
- "x-enum": true
234
+ ]
282
235
  },
283
236
  "LogLevel": {
284
237
  "type": "string",
285
238
  "enum": ["info", "warning", "error"],
286
239
  "nullable": true,
287
- "x-enum-varnames": ["INFO", "WARNING", "ERROR"],
288
- "x-enum": true,
289
240
  "description": "Level of the log. Possible values are info, warning, and error."
290
241
  },
291
242
  "MachineType": {
292
243
  "type": "string",
293
- "enum": ["answeringMachine", "faxMachine"],
294
- "x-enum-varnames": ["ANSWERING_MACHINE", "FAX_MACHINE"],
295
- "x-enum": true
244
+ "enum": ["answering machine", "fax modem"]
296
245
  },
297
246
  "MessageDirection": {
298
247
  "type": "string",
299
- "enum": ["inbound", "outbound"],
300
- "x-enum-varnames": ["INBOUND", "OUTBOUND"],
301
- "x-enum": true
248
+ "enum": ["inbound", "outbound"]
302
249
  },
303
250
  "MessageStatus": {
304
251
  "type": "string",
@@ -316,43 +263,33 @@
316
263
  "expired",
317
264
  "deleted",
318
265
  "unknown"
319
- ],
320
- "x-enum-varnames": [
321
- "NEW",
322
- "QUEUED",
323
- "REJECTED",
324
- "SENDING",
325
- "SENT",
326
- "FAILED",
327
- "RECEIVED",
328
- "UNDELIVERED",
329
- "EXPIRED",
330
- "DELETED",
331
- "UNKNOWN"
332
- ],
333
- "x-enum": true
266
+ ]
334
267
  },
335
268
  "PlayBeep": {
336
269
  "type": "string",
337
270
  "nullable": true,
338
271
  "enum": ["always", "never", "entryOnly", "exitOnly"],
339
- "x-enum-varnames": ["ALWAYS", "NEVER", "ENTRY_ONLY", "EXIT_ONLY"],
340
- "x-enum": true,
341
- "description": "Indicates whether to play a beep when a Participant enters or leaves the Conference. either `always`, `never`, `entryOnly`, or `exitOnly`. Leaving this unset will make conference default to `always` ",
342
- "default": "always",
343
- "x-enum-default-attr": "ALWAYS"
272
+ "description": "Indicates whether to play a beep when a Participant enters or leaves the Conference. either `always`, `never`, `entryOnly`, or `exitOnly`. Leaving this unset will make conference default to `always` "
344
273
  },
345
274
  "QueueResultStatus": {
346
275
  "type": "string",
347
- "enum": ["queueFull", "dequeued", "hangup", "systemError"],
348
- "x-enum-varnames": ["QUEUE_FULL", "DEQUEUED", "HANGUP", "SYSTEM_ERROR"],
349
- "x-enum": true
276
+ "enum": ["queueFull", "dequeued", "hangup", "systemError"]
350
277
  },
351
278
  "RecordUtteranceTermReason": {
352
279
  "type": "string",
353
- "enum": ["finishKey", "timeout", "hangup", "maxLength"],
354
- "x-enum-varnames": ["FINISH_KEY", "TIMEOUT", "HANGUP", "MAX_LENGTH"],
355
- "x-enum": true
280
+ "enum": ["finishKey", "timeout", "hangup", "maxLength"]
281
+ },
282
+ "BargeInReason": {
283
+ "type": "string",
284
+ "enum": ["noBargeIn", "bargeInByDTMF", "bargeInByEnergy"]
285
+ },
286
+ "TranscribeTermReason": {
287
+ "type": "string",
288
+ "enum": ["error", "completed"]
289
+ },
290
+ "TranscribeReason": {
291
+ "type": "string",
292
+ "enum": ["internalError", "hangup", "maxLength", "digit", "noInput"]
356
293
  },
357
294
  "RequestType": {
358
295
  "type": "string",
@@ -380,57 +317,123 @@
380
317
  "conferenceCallControl",
381
318
  "messageDelivery",
382
319
  "messageStatus"
383
- ],
384
- "x-enum-varnames": [
385
- "INBOUND_CALL",
386
- "RECORD",
387
- "GET_DIGITS",
388
- "GET_SPEECH",
389
- "REDIRECT",
390
- "PAUSE",
391
- "OUT_DIAL_START",
392
- "OUT_DIAL_CONNECT",
393
- "OUT_DIAL_API_CONNECT",
394
- "MACHINE_DETECTED",
395
- "DEQUEUE",
396
- "QUEUE_WAIT",
397
- "ADD_TO_QUEUE_NOTIFICATION",
398
- "REMOVE_FROM_QUEUE_NOTIFICATION",
399
- "CALL_STATUS",
400
- "CREATE_CONFERENCE",
401
- "CONFERENCE_STATUS",
402
- "LEAVE_CONFERENCE",
403
- "ADD_TO_CONFERENCE_NOTIFICATION",
404
- "CONFERENCE_RECORDING_STATUS",
405
- "CONFERENCE_CALL_CONTROL",
406
- "MESSAGE_DELIVERY",
407
- "MESSAGE_STATUS"
408
- ],
409
- "x-enum": true
320
+ ]
410
321
  },
411
322
  "UpdateCallRequestStatus": {
412
323
  "type": "string",
413
324
  "enum": ["canceled", "completed"],
414
- "x-enum-varnames": ["CANCELED", "COMPLETED"],
415
- "x-enum": true,
416
325
  "description": "Either `canceled` or `completed`. Specifying `canceled` attempts to hang up calls that are queued without affecting calls already in progress. Specifying `completed` attempts to hang up a call already in progress."
417
326
  },
418
327
  "UpdateConferenceRequestStatus": {
419
328
  "type": "string",
420
329
  "enum": ["empty", "terminated"],
421
- "x-enum-varnames": ["EMPTY", "TERMINATED"],
422
- "x-enum": true,
423
330
  "description": "New status of the conference. Valid values: `empty` or `terminated`. For more information, see **Status Parameter** below.**"
424
331
  },
332
+ "SMSTollFreeCampaignRegistrationStatus": {
333
+ "type": "string",
334
+ "description": "Current toll-free campaign registration status.Possible values: UNREGISTERED,INITIATED,PENDING,DECLINED,REGISTERED. A newly created campaign defaults to INITIATED status. ",
335
+ "enum": [
336
+ "UNREGISTERED",
337
+ "INITIATED",
338
+ "PENDING",
339
+ "DECLINED",
340
+ "REGISTERED"
341
+ ]
342
+ },
343
+ "SMSTenDLCCampaignStatus": {
344
+ "type": "string",
345
+ "description": "Current campaign status. Possible values: ACTIVE, EXPIRED. A newly created campaign defaults to ACTIVE status. ",
346
+ "enum": ["ACTIVE", "EXPIRED"]
347
+ },
348
+ "SMSTenDLCPartnerCampaignStatus": {
349
+ "type": "string",
350
+ "description": "Current campaign status. Possible values: ACTIVE, EXPIRED. A newly created campaign defaults to ACTIVE status. ",
351
+ "enum": ["ACTIVE", "EXPIRED"]
352
+ },
353
+ "SMSTenDLCBrandEntityType": {
354
+ "maxLength": 20,
355
+ "type": "string",
356
+ "description": "Entity type behind the brand. This is the form of business establishment.",
357
+ "enum": [
358
+ "PRIVATE_PROFIT",
359
+ "PUBLIC_PROFIT",
360
+ "NON_PROFIT",
361
+ "GOVERNMENT",
362
+ "SOLE_PROPRIETOR"
363
+ ]
364
+ },
365
+ "SMSTenDLCBrandRelationship": {
366
+ "type": "string",
367
+ "description": "Brand relationship to the CSP",
368
+ "enum": [
369
+ "BASIC_ACCOUNT",
370
+ "SMALL_ACCOUNT",
371
+ "MEDIUM_ACCOUNT",
372
+ "LARGE_ACCOUNT",
373
+ "KEY_ACCOUNT"
374
+ ]
375
+ },
376
+ "SMSTenDLCBrandStockExchange": {
377
+ "type": "string",
378
+ "description": "(Required for public company) stock exchange.",
379
+ "example": "NASDAQ",
380
+ "enum": [
381
+ "NONE",
382
+ "NASDAQ",
383
+ "NYSE",
384
+ "AMEX",
385
+ "AMX",
386
+ "ASX",
387
+ "B3",
388
+ "BME",
389
+ "BSE",
390
+ "FRA",
391
+ "ICEX",
392
+ "JPX",
393
+ "JSE",
394
+ "KRX",
395
+ "LON",
396
+ "NSE",
397
+ "OMX",
398
+ "SEHK",
399
+ "SGX",
400
+ "SSE",
401
+ "STO",
402
+ "SWX",
403
+ "SZSE",
404
+ "TSX",
405
+ "TWSE",
406
+ "VSE",
407
+ "OTHER"
408
+ ]
409
+ },
410
+ "SMSTenDLCBrandAltBusinessIdType": {
411
+ "type": "string",
412
+ "enum": ["NONE", "DUNS", "GIIN", "LEI"],
413
+ "description": "The type of the Alternative business identifier"
414
+ },
415
+ "SMSTenDLCBrandIdentityStatus": {
416
+ "type": "string",
417
+ "description": "TCR assessment of the brand identification status.",
418
+ "enum": ["SELF_DECLARED", "UNVERIFIED", "VERIFIED", "VETTED_VERIFIED"]
419
+ },
420
+ "CompletionResultStatus": {
421
+ "type": "string",
422
+ "description": "Completion result status. Possible values: success, no_context",
423
+ "enum": ["success", "no_context"]
424
+ },
425
+ "SMSTenDLCOptionalAttributes": {
426
+ "type": "object",
427
+ "description": "Optional brand attributes. Please refer to GET /enum/optionalAttributeNames for dictionary of optional attribute names.",
428
+ "additionalProperties": true
429
+ },
425
430
  "PerclScript": {
426
431
  "type": "object",
427
432
  "description": "A PerCL script to be returned to the FreeClimb servers in FreeClimb applications",
428
- "x-percl-script": true,
429
433
  "properties": {
430
434
  "commands": {
431
435
  "type": "array",
432
436
  "description": "A JSON array of PerCL commands",
433
- "x-is-list": true,
434
437
  "items": {
435
438
  "$ref": "#/components/schemas/PerclCommand"
436
439
  }
@@ -440,7 +443,6 @@
440
443
  "PerclCommand": {
441
444
  "type": "object",
442
445
  "description": "An individual command used in a PerCLScript.",
443
- "x-percl-command-base": true,
444
446
  "discriminator": {
445
447
  "propertyName": "command",
446
448
  "mapping": {
@@ -471,29 +473,1429 @@
471
473
  "TranscribeUtterance": "#/components/schemas/TranscribeUtterance",
472
474
  "Unpark": "#/components/schemas/Unpark"
473
475
  }
474
- },
475
- "properties": {
476
- "command": {
477
- "x-is-no-property": true,
478
- "type": "string",
479
- "description": "Name of PerCL Command (this is automatically derived from mapping configuration and should not be manually supplied in any arguments)"
476
+ },
477
+ "properties": {
478
+ "command": {
479
+ "type": "string",
480
+ "description": "Name of PerCL Command (this is automatically derived from mapping configuration and should not be manually supplied in any arguments)"
481
+ }
482
+ }
483
+ },
484
+ "Webhook": {
485
+ "type": "object",
486
+ "discriminator": {
487
+ "propertyName": "requestType",
488
+ "mapping": {
489
+ "addToConferenceNotification": "#/components/schemas/AddToConferenceNotificationWebhook",
490
+ "addToQueueNotification": "#/components/schemas/AddToQueueNotificationWebhook",
491
+ "callControl": "#/components/schemas/CallControlWebhook",
492
+ "callStatus": "#/components/schemas/CallStatusWebhook",
493
+ "conferenceRecordingStatus": "#/components/schemas/ConferenceRecordingStatusWebhook",
494
+ "conferenceStatus": "#/components/schemas/ConferenceStatusWebhook",
495
+ "createConference": "#/components/schemas/CreateConferenceWebhook",
496
+ "dequeue": "#/components/schemas/DequeueWebhook",
497
+ "getDigits": "#/components/schemas/GetDigitsWebhook",
498
+ "getSpeech": "#/components/schemas/GetSpeechWebhook",
499
+ "inboundCall": "#/components/schemas/InboundCallWebhook",
500
+ "leaveConference": "#/components/schemas/LeaveConferenceWebhook",
501
+ "machineDetected": "#/components/schemas/MachineDetectedWebhook",
502
+ "messageDelivery": "#/components/schemas/MessageDeliveryWebhook",
503
+ "messageStatus": "#/components/schemas/MessageStatusWebhook",
504
+ "outDialApiConnect": "#/components/schemas/OutDialApiConnectWebhook",
505
+ "outDialConnect": "#/components/schemas/OutDialConnectWebhook",
506
+ "outDialStart": "#/components/schemas/OutDialStartWebhook",
507
+ "queueWait": "#/components/schemas/QueueWaitWebhook",
508
+ "record": "#/components/schemas/RecordWebhook",
509
+ "redirect": "#/components/schemas/RedirectWebhook",
510
+ "removeFromQueueNotification": "#/components/schemas/RemoveFromQueueNotificationWebhook",
511
+ "transcribe": "#/components/schemas/TranscribeWebhook"
512
+ }
513
+ },
514
+ "properties": {
515
+ "requestType": {
516
+ "type": "string",
517
+ "description": "Type of webhook request"
518
+ }
519
+ }
520
+ },
521
+ "AddToConferenceNotificationWebhook": {
522
+ "description": "A Call has been bridged to a Conference and the AddToConference command’s notificationUrl is being invoked. This is a notification only; any PerCL returned will be ignored.",
523
+ "allOf": [
524
+ {
525
+ "$ref": "#/components/schemas/Webhook"
526
+ },
527
+ {
528
+ "type": "object",
529
+ "properties": {
530
+ "requestType": {
531
+ "type": "string",
532
+ "description": "Context or reason why this request is being made. Will be addToConferenceNotification - A Call has been bridged to a conference and the addToConference command’s notificationUrl is being invoked."
533
+ },
534
+ "callId": {
535
+ "type": "string",
536
+ "description": "Unique ID for this Call, generated by FreeClimb."
537
+ },
538
+ "accountId": {
539
+ "type": "string",
540
+ "description": "Account ID associated with your account."
541
+ },
542
+ "from": {
543
+ "type": "string",
544
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
545
+ },
546
+ "to": {
547
+ "type": "string",
548
+ "description": "Phone number provisioned to you and to which this Call is directed (in E.164 format)."
549
+ },
550
+ "callStatus": {
551
+ "$ref": "#/components/schemas/CallStatus"
552
+ },
553
+ "direction": {
554
+ "$ref": "#/components/schemas/CallDirection"
555
+ },
556
+ "conferenceId": {
557
+ "type": "string",
558
+ "description": "Unique ID of the Conference."
559
+ },
560
+ "queueId": {
561
+ "type": "string",
562
+ "description": "This is only populated if the request pertains to a Queue. Otherwise, it is set to null.",
563
+ "nullable": true
564
+ },
565
+ "status": {
566
+ "$ref": "#/components/schemas/ConferenceStatus"
567
+ },
568
+ "recordingUrl": {
569
+ "type": "string",
570
+ "description": "URL of the Conference’s recorded audio. Populated only if a Recording exists and the Conference was emptied.",
571
+ "format": "uri"
572
+ },
573
+ "recordingId": {
574
+ "type": "string",
575
+ "description": "Unique ID of the Recording from this Conference. Populated only if a recording exists and the Conference was emptied."
576
+ },
577
+ "recordingDurationSec": {
578
+ "type": "integer",
579
+ "description": "Duration of the recorded audio (in seconds), rounded up to the nearest second. Populated only if a Recording exists and the Conference was emptied."
580
+ }
581
+ }
582
+ }
583
+ ]
584
+ },
585
+ "AddToQueueNotificationWebhook": {
586
+ "description": "A Call has been added to a Queue and the Enqueue command’s notificationUrl is being invoked. This is a notification only; any PerCL returned will be ignored.",
587
+ "allOf": [
588
+ {
589
+ "$ref": "#/components/schemas/Webhook"
590
+ },
591
+ {
592
+ "type": "object",
593
+ "properties": {
594
+ "requestType": {
595
+ "type": "string",
596
+ "description": "Context or reason why this request is being made. Will be addToQueueNotification - A call has been added to a queue and the Enqueue command’s notificationUrl is being invoked."
597
+ },
598
+ "callId": {
599
+ "type": "string",
600
+ "description": "Unique ID for this Call, generated by FreeClimb."
601
+ },
602
+ "accountId": {
603
+ "type": "string",
604
+ "description": "Account ID associated with your account."
605
+ },
606
+ "from": {
607
+ "type": "string",
608
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
609
+ },
610
+ "to": {
611
+ "type": "string",
612
+ "description": "Phone number provisioned to you and to which this Call is directed (in E.164 format)."
613
+ },
614
+ "callStatus": {
615
+ "$ref": "#/components/schemas/CallStatus"
616
+ },
617
+ "direction": {
618
+ "$ref": "#/components/schemas/CallDirection"
619
+ },
620
+ "conferenceId": {
621
+ "type": "string",
622
+ "description": "Unique ID of the Conference."
623
+ },
624
+ "queueId": {
625
+ "type": "string",
626
+ "description": "This is only populated if the request pertains to a Queue. Otherwise, it is set to null.",
627
+ "nullable": true
628
+ }
629
+ }
630
+ }
631
+ ]
632
+ },
633
+ "CallControlWebhook": {
634
+ "description": "The digit sequence defined in the callControlSequence attribute of the AddToConference PerCL command has been entered by the Conference participant. A PerCL response is expected. If invalid PerCL is provided, the call leg which triggered this webhook will terminate.",
635
+ "allOf": [
636
+ {
637
+ "$ref": "#/components/schemas/Webhook"
638
+ },
639
+ {
640
+ "type": "object",
641
+ "properties": {
642
+ "requestType": {
643
+ "type": "string",
644
+ "description": "Context or reason why this request is being made. Will be callControl."
645
+ },
646
+ "callId": {
647
+ "type": "string",
648
+ "description": "Unique ID for this Call, generated by FreeClimb."
649
+ },
650
+ "accountId": {
651
+ "type": "string",
652
+ "description": "Account ID associated with your account."
653
+ },
654
+ "conferenceId": {
655
+ "type": "string",
656
+ "description": "Unique ID of the Conference."
657
+ },
658
+ "digits": {
659
+ "type": "string",
660
+ "description": "String of digits entered by the participant."
661
+ }
662
+ }
663
+ }
664
+ ]
665
+ },
666
+ "CallStatusWebhook": {
667
+ "description": "A Call has ended and the statusCallbackUrl is being invoked. This is a notification only; All PerCL commands will be ignored.",
668
+ "allOf": [
669
+ {
670
+ "$ref": "#/components/schemas/Webhook"
671
+ },
672
+ {
673
+ "type": "object",
674
+ "properties": {
675
+ "requestType": {
676
+ "type": "string",
677
+ "description": "Context or reason why this request is being made. Will be callStatus - A Call has ended and the statusCallbackUrl is being invoked."
678
+ },
679
+ "callId": {
680
+ "type": "string",
681
+ "description": "Unique ID for this Call, generated by FreeClimb."
682
+ },
683
+ "accountId": {
684
+ "type": "string",
685
+ "description": "Account ID associated with your account."
686
+ },
687
+ "from": {
688
+ "type": "string",
689
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
690
+ },
691
+ "to": {
692
+ "type": "string",
693
+ "description": "Phone number provisioned to you and to which this Call is directed (in E.164 format)."
694
+ },
695
+ "callStatus": {
696
+ "$ref": "#/components/schemas/CallStatus"
697
+ },
698
+ "callEndedReason": {
699
+ "$ref": "#/components/schemas/CallEndedReason"
700
+ },
701
+ "direction": {
702
+ "$ref": "#/components/schemas/CallDirection"
703
+ },
704
+ "conferenceId": {
705
+ "type": "string",
706
+ "description": "Unique ID of the Conference."
707
+ },
708
+ "queueId": {
709
+ "type": "string",
710
+ "description": "This is only populated if the request pertains to a Queue. Otherwise, it is set to null.",
711
+ "nullable": true
712
+ }
713
+ }
714
+ }
715
+ ]
716
+ },
717
+ "ConferenceRecordingStatusWebhook": {
718
+ "description": "The statusCallbackUrl request includes Recording information for a Conference that ended. This is a notification only; any PerCL returned will be ignored.",
719
+ "allOf": [
720
+ {
721
+ "$ref": "#/components/schemas/Webhook"
722
+ },
723
+ {
724
+ "type": "object",
725
+ "properties": {
726
+ "requestType": {
727
+ "type": "string",
728
+ "description": "Context or reason why this request is being made. Will be conferenceRecordingStatus - The statusCallbackUrl request includes Recording information for a Conference that ended."
729
+ },
730
+ "callId": {
731
+ "type": "string",
732
+ "description": "Unique ID for this Call, generated by FreeClimb."
733
+ },
734
+ "accountId": {
735
+ "type": "string",
736
+ "description": "Account ID associated with your account."
737
+ },
738
+ "from": {
739
+ "type": "string",
740
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
741
+ },
742
+ "to": {
743
+ "type": "string",
744
+ "description": "Phone number provisioned to you and to which this Call is directed (in E.164 format)."
745
+ },
746
+ "callStatus": {
747
+ "$ref": "#/components/schemas/CallStatus"
748
+ },
749
+ "direction": {
750
+ "$ref": "#/components/schemas/CallDirection"
751
+ },
752
+ "conferenceId": {
753
+ "type": "string",
754
+ "description": "Unique ID of the Conference."
755
+ },
756
+ "queueId": {
757
+ "type": "string",
758
+ "description": "This is only populated if the request pertains to a Queue. Otherwise, it is set to null.",
759
+ "nullable": true
760
+ },
761
+ "status": {
762
+ "$ref": "#/components/schemas/ConferenceStatus"
763
+ },
764
+ "recordingUrl": {
765
+ "type": "string",
766
+ "description": "URL of the Conference’s recorded audio. Populated only if a Recording exists and the Conference was emptied.",
767
+ "format": "uri"
768
+ },
769
+ "recordingId": {
770
+ "type": "string",
771
+ "description": "Unique ID of the Recording from this Conference. Populated only if a recording exists and the Conference was emptied."
772
+ },
773
+ "recordingDurationSec": {
774
+ "type": "integer",
775
+ "description": "Duration of the recorded audio (in seconds), rounded up to the nearest second. Populated only if a Recording exists and the Conference was emptied."
776
+ }
777
+ }
778
+ }
779
+ ]
780
+ },
781
+ "ConferenceStatusWebhook": {
782
+ "description": "The context or reason why this request is being made. Will be conferenceStatus - A Conference's status changed and its statusCallbackUrl is being invoked.",
783
+ "allOf": [
784
+ {
785
+ "$ref": "#/components/schemas/Webhook"
786
+ },
787
+ {
788
+ "type": "object",
789
+ "properties": {
790
+ "requestType": {
791
+ "type": "string",
792
+ "description": "Context or reason why this request is being made. Will be conferenceRecordingStatus - The statusCallbackUrl request includes Recording information for a Conference that ended."
793
+ },
794
+ "callId": {
795
+ "type": "string",
796
+ "description": "Unique ID for this Call, generated by FreeClimb."
797
+ },
798
+ "accountId": {
799
+ "type": "string",
800
+ "description": "Account ID associated with your account."
801
+ },
802
+ "from": {
803
+ "type": "string",
804
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
805
+ },
806
+ "to": {
807
+ "type": "string",
808
+ "description": "Phone number provisioned to you and to which this Call is directed (in E.164 format)."
809
+ },
810
+ "callStatus": {
811
+ "$ref": "#/components/schemas/CallStatus"
812
+ },
813
+ "direction": {
814
+ "$ref": "#/components/schemas/CallDirection"
815
+ },
816
+ "conferenceId": {
817
+ "type": "string",
818
+ "description": "Unique ID of the Conference."
819
+ },
820
+ "queueId": {
821
+ "type": "string",
822
+ "description": "This is only populated if the request pertains to a Queue. Otherwise, it is set to null.",
823
+ "nullable": true
824
+ },
825
+ "status": {
826
+ "$ref": "#/components/schemas/ConferenceStatus"
827
+ },
828
+ "recordingUrl": {
829
+ "type": "string",
830
+ "description": "The URL of the Conference’s recorded audio. Populated only if a Recording exists and the Conference was emptied. Present only if statusCallbackUrl is being invoked.",
831
+ "format": "uri",
832
+ "nullable": true
833
+ },
834
+ "recordingId": {
835
+ "type": "string",
836
+ "description": "The unique ID of the Recording from this Conference. Populated only if a Recording exists and the Conference was emptied. Present only if statusCallbackUrl is being invoked.",
837
+ "nullable": true
838
+ },
839
+ "recordingDurationSec": {
840
+ "type": "integer",
841
+ "description": "The duration of the recorded audio rounded up to the nearest second (in seconds). Populated only if a Recording exists and the Conference was emptied. Present only if statusCallbackUrl is being invoked.",
842
+ "nullable": true
843
+ }
844
+ }
845
+ }
846
+ ]
847
+ },
848
+ "CreateConferenceWebhook": {
849
+ "description": "A Conference has been created and its statusCallbackUrl or actionUrl is being invoked. A PerCL response is expected if the actionUrl is being invoked.",
850
+ "allOf": [
851
+ {
852
+ "$ref": "#/components/schemas/Webhook"
853
+ },
854
+ {
855
+ "type": "object",
856
+ "properties": {
857
+ "requestType": {
858
+ "type": "string",
859
+ "description": "Context or reason why this request is being made. Will be createConference - A Conference has been created and its statusCallbackUrl or actionUrl is being invoked."
860
+ },
861
+ "callId": {
862
+ "type": "string",
863
+ "description": "Unique ID for this Call, generated by FreeClimb."
864
+ },
865
+ "accountId": {
866
+ "type": "string",
867
+ "description": "Account ID associated with your account."
868
+ },
869
+ "from": {
870
+ "type": "string",
871
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
872
+ },
873
+ "to": {
874
+ "type": "string",
875
+ "description": "Phone number provisioned to you and to which this Call is directed (in E.164 format)."
876
+ },
877
+ "callStatus": {
878
+ "$ref": "#/components/schemas/CallStatus"
879
+ },
880
+ "direction": {
881
+ "$ref": "#/components/schemas/CallDirection"
882
+ },
883
+ "conferenceId": {
884
+ "type": "string",
885
+ "description": "Unique ID of the Conference."
886
+ },
887
+ "queueId": {
888
+ "type": "string",
889
+ "description": "This is only populated if the request pertains to a Queue. Otherwise, it is set to null.",
890
+ "nullable": true
891
+ },
892
+ "status": {
893
+ "$ref": "#/components/schemas/ConferenceStatus"
894
+ },
895
+ "recordingUrl": {
896
+ "type": "string",
897
+ "description": "The URL of the Conference’s recorded audio. Populated only if a Recording exists and the Conference was emptied. Present only if statusCallbackUrl is being invoked.",
898
+ "format": "uri",
899
+ "nullable": true
900
+ },
901
+ "recordingId": {
902
+ "type": "string",
903
+ "description": "The unique ID of the Recording from this Conference. Populated only if a Recording exists and the Conference was emptied. Present only if statusCallbackUrl is being invoked.",
904
+ "nullable": true
905
+ },
906
+ "recordingDurationSec": {
907
+ "type": "integer",
908
+ "description": "The duration of the recorded audio rounded up to the nearest second (in seconds). Populated only if a Recording exists and the Conference was emptied. Present only if statusCallbackUrl is being invoked.",
909
+ "nullable": true
910
+ }
911
+ }
912
+ }
913
+ ]
914
+ },
915
+ "DequeueWebhook": {
916
+ "description": "A queued call has been dequeued and the actionUrl of the corresponding Enqueue action is being invoked. A PerCL response is expected.",
917
+ "allOf": [
918
+ {
919
+ "$ref": "#/components/schemas/Webhook"
920
+ },
921
+ {
922
+ "type": "object",
923
+ "properties": {
924
+ "requestType": {
925
+ "type": "string",
926
+ "description": "Context or reason why this request is being made. Will be dequeue - A queued call has been dequeued and the actionUrl of the corresponding Enqueue action is being invoked."
927
+ },
928
+ "callId": {
929
+ "type": "string",
930
+ "description": "Unique ID for this Call, generated by FreeClimb."
931
+ },
932
+ "accountId": {
933
+ "type": "string",
934
+ "description": "Account ID associated with your account."
935
+ },
936
+ "from": {
937
+ "type": "string",
938
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
939
+ },
940
+ "to": {
941
+ "type": "string",
942
+ "description": "Phone number provisioned to you and to which this Call is directed (in E.164 format)."
943
+ },
944
+ "callStatus": {
945
+ "$ref": "#/components/schemas/CallStatus"
946
+ },
947
+ "direction": {
948
+ "$ref": "#/components/schemas/CallDirection"
949
+ },
950
+ "conferenceId": {
951
+ "type": "string",
952
+ "description": "Unique ID of the Conference."
953
+ },
954
+ "queueId": {
955
+ "type": "string",
956
+ "description": "This is only populated if the request pertains to a Queue. Otherwise, it is set to null.",
957
+ "nullable": true
958
+ },
959
+ "queueResult": {
960
+ "type": "string",
961
+ "description": "The final result of the enqueued Call. Valid values are: •dequeued - Enqueued caller exited the Queue via a Dequeue action (Dequeue command or Queue Members POST REST API)."
962
+ },
963
+ "queueTime": {
964
+ "type": "integer",
965
+ "description": "Time (in seconds) the call spent in the Queue. This is only available if the Call was actually enqueued.",
966
+ "nullable": true
967
+ }
968
+ }
969
+ }
970
+ ]
971
+ },
972
+ "GetDigitsWebhook": {
973
+ "description": "A POST request with the following fields will be sent to the actionUrl provided in your GetDigits command.",
974
+ "allOf": [
975
+ {
976
+ "$ref": "#/components/schemas/Webhook"
977
+ },
978
+ {
979
+ "type": "object",
980
+ "properties": {
981
+ "requestType": {
982
+ "type": "string",
983
+ "description": "Context or reason why this request is being made. Will be getDigits - The GetDigits command has completed and its actionUrl is being invoked."
984
+ },
985
+ "callId": {
986
+ "type": "string",
987
+ "description": "Unique ID for this Call, generated by FreeClimb."
988
+ },
989
+ "accountId": {
990
+ "type": "string",
991
+ "description": "Account ID associated with your account."
992
+ },
993
+ "from": {
994
+ "type": "string",
995
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
996
+ },
997
+ "to": {
998
+ "type": "string",
999
+ "description": "Phone number provisioned to you and to which this Call is directed (in E.164 format)."
1000
+ },
1001
+ "callStatus": {
1002
+ "$ref": "#/components/schemas/CallStatus"
1003
+ },
1004
+ "direction": {
1005
+ "$ref": "#/components/schemas/CallDirection"
1006
+ },
1007
+ "conferenceId": {
1008
+ "type": "string",
1009
+ "description": "Unique ID of the Conference."
1010
+ },
1011
+ "queueId": {
1012
+ "type": "string",
1013
+ "description": "This is only populated if the request pertains to a Queue. Otherwise, it is set to null.",
1014
+ "nullable": true
1015
+ },
1016
+ "digits": {
1017
+ "type": "string",
1018
+ "description": "tring of digits entered by the Caller, excluding the terminating digit (if used). The string of digits will be replaced by 'xxxxx' when privacyMode is set to true"
1019
+ },
1020
+ "reason": {
1021
+ "$ref": "#/components/schemas/GetDigitsReason"
1022
+ },
1023
+ "parentCallId": {
1024
+ "type": "string",
1025
+ "description": "ID of the Call that created this leg (child call)."
1026
+ }
1027
+ }
1028
+ }
1029
+ ]
1030
+ },
1031
+ "GetSpeechWebhook": {
1032
+ "description": "The GetSpeech command has completed and its actionUrl is being invoked. A PerCL response is expected, unless reason is hangup.",
1033
+ "allOf": [
1034
+ {
1035
+ "$ref": "#/components/schemas/Webhook"
1036
+ },
1037
+ {
1038
+ "type": "object",
1039
+ "properties": {
1040
+ "requestType": {
1041
+ "type": "string",
1042
+ "description": "Context or reason why this request is being made. Will be getSpeech - The GetSpeech command has completed and its actionUrl is being invoked."
1043
+ },
1044
+ "callId": {
1045
+ "type": "string",
1046
+ "description": "Unique ID for this Call, generated by FreeClimb."
1047
+ },
1048
+ "accountId": {
1049
+ "type": "string",
1050
+ "description": "Account ID associated with your account."
1051
+ },
1052
+ "from": {
1053
+ "type": "string",
1054
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
1055
+ },
1056
+ "to": {
1057
+ "type": "string",
1058
+ "description": "Phone number provisioned to you and to which this Call is directed (in E.164 format)."
1059
+ },
1060
+ "callStatus": {
1061
+ "$ref": "#/components/schemas/CallStatus"
1062
+ },
1063
+ "direction": {
1064
+ "$ref": "#/components/schemas/CallDirection"
1065
+ },
1066
+ "conferenceId": {
1067
+ "type": "string",
1068
+ "description": "Unique ID of the Conference."
1069
+ },
1070
+ "queueId": {
1071
+ "type": "string",
1072
+ "description": "This is only populated if the request pertains to a Queue. Otherwise, it is set to null.",
1073
+ "nullable": true
1074
+ },
1075
+ "reason": {
1076
+ "$ref": "#/components/schemas/GetSpeechReason"
1077
+ },
1078
+ "recognitionResult": {
1079
+ "type": "string",
1080
+ "description": "Semantic content (either a string if speech was recognized or a digit if a digit was input instead of speech) returned from the entry or tag that was recognized within the grammar. The content will be replaced by 'xxxxx' when privacyMode is set to true. This field is populated only if the reason field is set to recognition or digit."
1081
+ },
1082
+ "confidence": {
1083
+ "type": "integer",
1084
+ "description": "Level of confidence in the obtained result. This is a value in the range 0 to 100 – with 0 being total lack of confidence and 100 being absolute certainty in the recognition. This field is populated only if the reason field is set to recognition."
1085
+ },
1086
+ "parentCallId": {
1087
+ "type": "string",
1088
+ "description": "ID of the Call that created this leg (child call)."
1089
+ },
1090
+ "completionReason": {
1091
+ "type": "string",
1092
+ "description": "Advanced diagnostic information if reason was error. See RFC 6787 section 9.4.12 - speech recognition."
1093
+ },
1094
+ "completionCause": {
1095
+ "type": "string",
1096
+ "description": "Advanced diagnostic information if reason was error. See RFC 6787 section 9.4.11 - speech recognition."
1097
+ },
1098
+ "mrcpCode": {
1099
+ "type": "integer",
1100
+ "description": "Advanced diagnostic information if reason was error. See RFC 6787 section 5.4 - MRCPv2 specification."
1101
+ },
1102
+ "mrcpDiagnostic": {
1103
+ "type": "string",
1104
+ "description": "Advanced diagnostic information if reason was error. See RFC 6787 section 5.4 - MRCPv2 specification."
1105
+ }
1106
+ }
1107
+ }
1108
+ ]
1109
+ },
1110
+ "InboundCallWebhook": {
1111
+ "description": "An inbound Call to a number registered on FreeClimb will trigger a request to the voiceUrl of the application the number is assigned to. FreeClimb expects to receive PerCL in response to this request in order to process the Call. The following parameters are sent as the POST body.",
1112
+ "allOf": [
1113
+ {
1114
+ "$ref": "#/components/schemas/Webhook"
1115
+ },
1116
+ {
1117
+ "type": "object",
1118
+ "properties": {
1119
+ "requestType": {
1120
+ "type": "string",
1121
+ "description": "Context or reason why this request is being made. Will be inboundCall - An inbound call was received and the voiceUrl is being invoked."
1122
+ },
1123
+ "callId": {
1124
+ "type": "string",
1125
+ "description": "Unique ID for this Call, generated by FreeClimb."
1126
+ },
1127
+ "accountId": {
1128
+ "type": "string",
1129
+ "description": "Account ID associated with your account."
1130
+ },
1131
+ "from": {
1132
+ "type": "string",
1133
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
1134
+ },
1135
+ "to": {
1136
+ "type": "string",
1137
+ "description": "Phone number provisioned to you and to which this Call is directed (in E.164 format)."
1138
+ },
1139
+ "callStatus": {
1140
+ "$ref": "#/components/schemas/CallStatus"
1141
+ },
1142
+ "direction": {
1143
+ "$ref": "#/components/schemas/CallDirection"
1144
+ },
1145
+ "conferenceId": {
1146
+ "type": "string",
1147
+ "description": "This is only populated if request pertains to a Conference. Otherwise, it is set to null.",
1148
+ "nullable": true
1149
+ },
1150
+ "queueId": {
1151
+ "type": "string",
1152
+ "description": "This is only populated if the request pertains to a Queue. Otherwise, it is set to null.",
1153
+ "nullable": true
1154
+ },
1155
+ "parentCallId": {
1156
+ "type": "string",
1157
+ "nullable": true
1158
+ }
1159
+ }
1160
+ }
1161
+ ]
1162
+ },
1163
+ "LeaveConferenceWebhook": {
1164
+ "description": "A Call has been unbridged from a Conference and its leaveConferenceUrl is being invoked. A PerCL response is expected — unless the URL is invoked due to the participant hanging up.",
1165
+ "allOf": [
1166
+ {
1167
+ "$ref": "#/components/schemas/Webhook"
1168
+ },
1169
+ {
1170
+ "type": "object",
1171
+ "properties": {
1172
+ "requestType": {
1173
+ "type": "string",
1174
+ "description": "Context or reason why this request is being made. Will be leaveConference - Call has been unbridged from a Conference and its leaveConferenceUrl is being invoked."
1175
+ },
1176
+ "callId": {
1177
+ "type": "string",
1178
+ "description": "Unique ID for this Call, generated by FreeClimb. This is the call leg which has left the Conference"
1179
+ },
1180
+ "accountId": {
1181
+ "type": "string",
1182
+ "description": "Account ID associated with your account."
1183
+ },
1184
+ "from": {
1185
+ "type": "string",
1186
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
1187
+ },
1188
+ "to": {
1189
+ "type": "string",
1190
+ "description": "Phone number provisioned to you and to which this Call is directed (in E.164 format)."
1191
+ },
1192
+ "callStatus": {
1193
+ "$ref": "#/components/schemas/CallStatus"
1194
+ },
1195
+ "direction": {
1196
+ "$ref": "#/components/schemas/CallDirection"
1197
+ },
1198
+ "conferenceId": {
1199
+ "type": "string",
1200
+ "description": "This is only populated if request pertains to a Conference. Otherwise, it is set to null.",
1201
+ "nullable": true
1202
+ },
1203
+ "queueId": {
1204
+ "type": "string",
1205
+ "description": "This is only populated if the request pertains to a Queue. Otherwise, it is set to null.",
1206
+ "nullable": true
1207
+ }
1208
+ }
1209
+ }
1210
+ ]
1211
+ },
1212
+ "MachineDetectedWebhook": {
1213
+ "description": "An outbound call spawned by OutDial detected an answer by a machine (answering machine or fax/modem machine) and ifMachineUrl is being invoked. A PerCL response is expected.",
1214
+ "allOf": [
1215
+ {
1216
+ "$ref": "#/components/schemas/Webhook"
1217
+ },
1218
+ {
1219
+ "type": "object",
1220
+ "properties": {
1221
+ "requestType": {
1222
+ "type": "string",
1223
+ "description": "Context or reason why this request is being made. Will be machineDetected - An outbound call spawned by OutDial was answered by a machine and the ifMachineUrl is being invoked."
1224
+ },
1225
+ "callId": {
1226
+ "type": "string",
1227
+ "description": "Unique ID for this Call, generated by FreeClimb."
1228
+ },
1229
+ "accountId": {
1230
+ "type": "string",
1231
+ "description": "Account ID associated with your account."
1232
+ },
1233
+ "from": {
1234
+ "type": "string",
1235
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
1236
+ },
1237
+ "to": {
1238
+ "type": "string",
1239
+ "description": "Phone number provisioned to you and to which this Call is directed (in E.164 format)."
1240
+ },
1241
+ "callStatus": {
1242
+ "$ref": "#/components/schemas/CallStatus"
1243
+ },
1244
+ "direction": {
1245
+ "$ref": "#/components/schemas/CallDirection"
1246
+ },
1247
+ "conferenceId": {
1248
+ "type": "string",
1249
+ "description": "This is only populated if request pertains to a Conference. Otherwise, it is set to null.",
1250
+ "nullable": true
1251
+ },
1252
+ "queueId": {
1253
+ "type": "string",
1254
+ "description": "This is only populated if the request pertains to a Queue. Otherwise, it is set to null.",
1255
+ "nullable": true
1256
+ },
1257
+ "parentCallId": {
1258
+ "type": "string",
1259
+ "description": "Call ID of the leg which initiated the OutDial."
1260
+ },
1261
+ "machineType": {
1262
+ "$ref": "#/components/schemas/MachineType"
1263
+ }
1264
+ }
1265
+ }
1266
+ ]
1267
+ },
1268
+ "MessageDeliveryWebhook": {
1269
+ "description": "An SMS has been received by the platform and is being delivered to the smsUrl of the customer application that is associated with the destination number. A PerCL response will be ignored.",
1270
+ "allOf": [
1271
+ {
1272
+ "$ref": "#/components/schemas/Webhook"
1273
+ },
1274
+ {
1275
+ "type": "object",
1276
+ "properties": {
1277
+ "requestType": {
1278
+ "type": "string",
1279
+ "description": "Value will be messageDelivery - An SMS message has been received by the platform and is being delivered to the customer application associated with the destination number."
1280
+ },
1281
+ "accountId": {
1282
+ "type": "string",
1283
+ "description": "Account ID associated with your account."
1284
+ },
1285
+ "from": {
1286
+ "type": "string",
1287
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
1288
+ },
1289
+ "to": {
1290
+ "type": "string",
1291
+ "description": "Phone number provisioned to you and to which this Call is directed (in E.164 format)."
1292
+ },
1293
+ "text": {
1294
+ "type": "string",
1295
+ "description": "Body of the SMS message."
1296
+ },
1297
+ "direction": {
1298
+ "type": "string",
1299
+ "description": "Value will be inbound to indicate the receipt of a message into the FreeClimb platform."
1300
+ },
1301
+ "applicationId": {
1302
+ "type": "string",
1303
+ "description": "ID of the application to which the destination number is assigned."
1304
+ },
1305
+ "status": {
1306
+ "type": "string",
1307
+ "description": "Value will be received to indicate that the platform has successfully received the incoming message."
1308
+ },
1309
+ "phoneNumberId": {
1310
+ "type": "string",
1311
+ "description": "ID of the destination phone number."
1312
+ },
1313
+ "uri": {
1314
+ "type": "string",
1315
+ "description": "The URI for this resource, relative to the API base URL"
1316
+ }
1317
+ }
1318
+ }
1319
+ ]
1320
+ },
1321
+ "MessageStatusWebhook": {
1322
+ "description": "An outbound SMS has changed status and the notificationUrl from the Sms command or Send an SMS request is being invoked. A PerCL response will be ignored.",
1323
+ "allOf": [
1324
+ {
1325
+ "$ref": "#/components/schemas/Webhook"
1326
+ },
1327
+ {
1328
+ "type": "object",
1329
+ "properties": {
1330
+ "requestType": {
1331
+ "type": "string",
1332
+ "description": "Value will be messageStatus - An outbound SMS has changed status and the Sms command's notificationUrl is being invoked."
1333
+ },
1334
+ "accountId": {
1335
+ "type": "string",
1336
+ "description": "Account ID associated with your account."
1337
+ },
1338
+ "messageId": {
1339
+ "type": "string",
1340
+ "description": "Unique ID for this message, generated by FreeClimb."
1341
+ },
1342
+ "callId": {
1343
+ "type": "string",
1344
+ "description": "Unique ID for the Call in the context of which the Sms PerCL command was issued."
1345
+ },
1346
+ "from": {
1347
+ "type": "string",
1348
+ "description": "aPhone number used to initiate the SMS message (in E.164 format)."
1349
+ },
1350
+ "to": {
1351
+ "type": "string",
1352
+ "description": "Destination number of the SMS message (in E.164 format)."
1353
+ },
1354
+ "text": {
1355
+ "type": "string",
1356
+ "description": "Body of the SMS message."
1357
+ },
1358
+ "direction": {
1359
+ "type": "string",
1360
+ "description": "Value will be outbound to indicate an outgoing SMS from FreeClimb."
1361
+ },
1362
+ "applicationId": {
1363
+ "type": "string",
1364
+ "description": "ID of the application to which the destination number is assigned. May be null if the originating number is invalid in some way or is not registered to an application."
1365
+ },
1366
+ "status": {
1367
+ "$ref": "#/components/schemas/MessageStatus"
1368
+ },
1369
+ "phoneNumberId": {
1370
+ "type": "string",
1371
+ "description": "ID of the destination phone number."
1372
+ }
1373
+ }
1374
+ }
1375
+ ]
1376
+ },
1377
+ "OutDialApiConnectWebhook": {
1378
+ "description": "An outbound call initiated by the REST API has connected and the callConnectUrl specified in the API request is being invoked. A PerCL response is expected if the call was successfully connected (with status of inProgress).",
1379
+ "allOf": [
1380
+ {
1381
+ "$ref": "#/components/schemas/Webhook"
1382
+ },
1383
+ {
1384
+ "type": "object",
1385
+ "properties": {
1386
+ "requestType": {
1387
+ "type": "string",
1388
+ "description": "Context or reason why this request is being made. Will be outDialApiConnect - An outbound call spawned by the REST API has connected and the callConnectUrl specified in the API request is being invoked."
1389
+ },
1390
+ "accountId": {
1391
+ "type": "string",
1392
+ "description": "Account ID associated with your account."
1393
+ },
1394
+ "callId": {
1395
+ "type": "string",
1396
+ "description": "Unique identifier for this Call, generated by FreeClimb"
1397
+ },
1398
+ "from": {
1399
+ "type": "string",
1400
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
1401
+ },
1402
+ "to": {
1403
+ "type": "string",
1404
+ "description": "Phone number or SIP URL of the party that is receiving the call (phone number in E.164 format)."
1405
+ },
1406
+ "callStatus": {
1407
+ "$ref": "#/components/schemas/CallStatus"
1408
+ },
1409
+ "direction": {
1410
+ "$ref": "#/components/schemas/CallDirection"
1411
+ },
1412
+ "conferenceId": {
1413
+ "type": "string",
1414
+ "description": "This is only populated if request pertains to a conference. Otherwise, it is set to null.",
1415
+ "nullable": true
1416
+ },
1417
+ "queueId": {
1418
+ "type": "string",
1419
+ "description": "This is only populated if the request pertains to a queue. Otherwise, it is set to null.",
1420
+ "nullable": true
1421
+ },
1422
+ "parentCallId": {
1423
+ "type": "string",
1424
+ "description": "ID of the Call that created this leg (child call)."
1425
+ }
1426
+ }
1427
+ }
1428
+ ]
1429
+ },
1430
+ "OutDialConnectWebhook": {
1431
+ "description": "A Call generated by OutDial has connected and the callConnectUrl is being invoked. This request is made in the context of the Call leg that was generated using OutDial and not the parent (the OutDialStart webhook is invoked on the parent call to continue that call context). A PerCL response is expected if the call was successfully connected (as indicated by status of inProgress) and begins the execution context for this (child) call.",
1432
+ "allOf": [
1433
+ {
1434
+ "$ref": "#/components/schemas/Webhook"
1435
+ },
1436
+ {
1437
+ "type": "object",
1438
+ "properties": {
1439
+ "requestType": {
1440
+ "type": "string",
1441
+ "description": "Context or reason why this request is being made. Will be outDialConnect - A Call generated by OutDial has connected and the callConnectUrl is being invoked."
1442
+ },
1443
+ "accountId": {
1444
+ "type": "string",
1445
+ "description": "Account ID associated with your account."
1446
+ },
1447
+ "callId": {
1448
+ "type": "string",
1449
+ "description": "Unique identifier for this Call, generated by FreeClimb"
1450
+ },
1451
+ "from": {
1452
+ "type": "string",
1453
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
1454
+ },
1455
+ "to": {
1456
+ "type": "string",
1457
+ "description": "Phone number or SIP URL of the party that is receiving the call (phone number in E.164 format)."
1458
+ },
1459
+ "callStatus": {
1460
+ "$ref": "#/components/schemas/CallStatus"
1461
+ },
1462
+ "direction": {
1463
+ "$ref": "#/components/schemas/CallDirection"
1464
+ },
1465
+ "conferenceId": {
1466
+ "type": "string",
1467
+ "description": "This is only populated if request pertains to a conference. Otherwise, it is set to null.",
1468
+ "nullable": true
1469
+ },
1470
+ "queueId": {
1471
+ "type": "string",
1472
+ "description": "This is only populated if the request pertains to a queue. Otherwise, it is set to null.",
1473
+ "nullable": true
1474
+ },
1475
+ "parentCallId": {
1476
+ "type": "string",
1477
+ "description": "ID of the Call that created this leg (child call)."
1478
+ }
1479
+ }
1480
+ }
1481
+ ]
1482
+ },
1483
+ "OutDialStartWebhook": {
1484
+ "description": "The OutDial command has started and the actionUrl is being invoked. This request is made in the context of the parent call (Call leg that invoked). A PerCL response is expected.",
1485
+ "allOf": [
1486
+ {
1487
+ "$ref": "#/components/schemas/Webhook"
1488
+ },
1489
+ {
1490
+ "type": "object",
1491
+ "properties": {
1492
+ "requestType": {
1493
+ "type": "string",
1494
+ "description": "Context or reason why this request is being made. Will be outDialStart - The OutDial command has started and the actionUrl is being invoked."
1495
+ },
1496
+ "accountId": {
1497
+ "type": "string",
1498
+ "description": "Account ID associated with your account."
1499
+ },
1500
+ "callId": {
1501
+ "type": "string",
1502
+ "description": "Unique identifier for this Call, generated by FreeClimb"
1503
+ },
1504
+ "from": {
1505
+ "type": "string",
1506
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
1507
+ },
1508
+ "to": {
1509
+ "type": "string",
1510
+ "description": "Phone number provisioned to the customer and to which this Call is directed (in E.164 format)."
1511
+ },
1512
+ "callStatus": {
1513
+ "$ref": "#/components/schemas/CallStatus"
1514
+ },
1515
+ "direction": {
1516
+ "$ref": "#/components/schemas/CallDirection"
1517
+ },
1518
+ "conferenceId": {
1519
+ "type": "string",
1520
+ "description": "This is only populated if request pertains to a conference. Otherwise, it is set to null.",
1521
+ "nullable": true
1522
+ },
1523
+ "queueId": {
1524
+ "type": "string",
1525
+ "description": "This is only populated if the request pertains to a queue. Otherwise, it is set to null.",
1526
+ "nullable": true
1527
+ },
1528
+ "dialCallId": {
1529
+ "type": "string",
1530
+ "description": "ID of the child call that was generated as a result of the Outdial."
1531
+ },
1532
+ "parentCallId": {
1533
+ "type": "string",
1534
+ "description": "ID of the Call that created this leg (child call). If this was an inbound call or call created via REST API with no parent, this field will be null.",
1535
+ "nullable": true
1536
+ }
1537
+ }
1538
+ }
1539
+ ]
1540
+ },
1541
+ "QueueWaitWebhook": {
1542
+ "description": "A queued Call is requesting instructions to execute during the wait in the Queue and the corresponding waitUrl is being invoked. A PerCL response is expected. The following are the only PerCL commands supported in the PerCL script response to a request to the waitUrl: Play,Say,Pause,GetDigits,Dequeue,Hangup",
1543
+ "allOf": [
1544
+ {
1545
+ "$ref": "#/components/schemas/Webhook"
1546
+ },
1547
+ {
1548
+ "type": "object",
1549
+ "properties": {
1550
+ "requestType": {
1551
+ "type": "string",
1552
+ "description": "Context or reason why this request is being made. Will be queueWait - A queued call is requesting instructions to execute during the wait in the queue and the corresponding waitUrl is being invoked."
1553
+ },
1554
+ "accountId": {
1555
+ "type": "string",
1556
+ "description": "Account ID associated with your account."
1557
+ },
1558
+ "callId": {
1559
+ "type": "string",
1560
+ "description": "Unique identifier for this Call, generated by FreeClimb"
1561
+ },
1562
+ "from": {
1563
+ "type": "string",
1564
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
1565
+ },
1566
+ "to": {
1567
+ "type": "string",
1568
+ "description": "Phone number provisioned to the customer and to which this Call is directed (in E.164 format)."
1569
+ },
1570
+ "callStatus": {
1571
+ "$ref": "#/components/schemas/CallStatus"
1572
+ },
1573
+ "direction": {
1574
+ "$ref": "#/components/schemas/CallDirection"
1575
+ },
1576
+ "conferenceId": {
1577
+ "type": "string",
1578
+ "description": "This is only populated if request pertains to a conference. Otherwise, it is set to null.",
1579
+ "nullable": true
1580
+ },
1581
+ "queueId": {
1582
+ "type": "string",
1583
+ "description": "This is only populated if the request pertains to a queue. Otherwise, it is set to null.",
1584
+ "nullable": true
1585
+ },
1586
+ "queuePosition": {
1587
+ "type": "string",
1588
+ "description": "Current queue position of the enqueued Call."
1589
+ },
1590
+ "queueTime": {
1591
+ "type": "integer",
1592
+ "description": "Time (in seconds) the Call spent in the Queue. This is only available if the Call was actually enqueued."
1593
+ },
1594
+ "currentQueueSize": {
1595
+ "type": "integer",
1596
+ "description": "Current number of enqueued Calls in this Queue."
1597
+ }
1598
+ }
1599
+ }
1600
+ ]
1601
+ },
1602
+ "RecordWebhook": {
1603
+ "description": "The RecordUtterance command has completed and its actionUrl is being invoked.",
1604
+ "allOf": [
1605
+ {
1606
+ "$ref": "#/components/schemas/Webhook"
1607
+ },
1608
+ {
1609
+ "type": "object",
1610
+ "properties": {
1611
+ "requestType": {
1612
+ "type": "string",
1613
+ "description": "The context or reason why this request is being made. Will be record - The RecordUtterance command has completed and its actionUrl is being invoked."
1614
+ },
1615
+ "accountId": {
1616
+ "type": "string",
1617
+ "description": "Account ID associated with your account."
1618
+ },
1619
+ "callId": {
1620
+ "type": "string",
1621
+ "description": "Unique identifier for this Call, generated by FreeClimb"
1622
+ },
1623
+ "from": {
1624
+ "type": "string",
1625
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
1626
+ },
1627
+ "to": {
1628
+ "type": "string",
1629
+ "description": "Phone number provisioned to the customer and to which this Call is directed (in E.164 format)."
1630
+ },
1631
+ "callStatus": {
1632
+ "$ref": "#/components/schemas/CallStatus"
1633
+ },
1634
+ "direction": {
1635
+ "$ref": "#/components/schemas/CallDirection"
1636
+ },
1637
+ "conferenceId": {
1638
+ "type": "string",
1639
+ "description": "This is only populated if request pertains to a conference. Otherwise, it is set to null.",
1640
+ "nullable": true
1641
+ },
1642
+ "queueId": {
1643
+ "type": "string",
1644
+ "description": "This is only populated if the request pertains to a queue. Otherwise, it is set to null.",
1645
+ "nullable": true
1646
+ },
1647
+ "recordingId": {
1648
+ "type": "string",
1649
+ "description": "ID of the recording."
1650
+ },
1651
+ "recordingUrl": {
1652
+ "type": "string",
1653
+ "description": "URL of the recorded audio file. This URL can be used as is in a Play command to play the recording (no authentication needed). It can also be used to download a recording file via the REST API.",
1654
+ "format": "uri"
1655
+ },
1656
+ "recordingSize": {
1657
+ "type": "string",
1658
+ "description": "Size of the recording in bytes"
1659
+ },
1660
+ "recordingFormat": {
1661
+ "type": "string",
1662
+ "description": "File type of the recording (audio/wav)"
1663
+ },
1664
+ "recordingDurationSec": {
1665
+ "type": "integer",
1666
+ "description": "Duration of the recorded audio rounded up to the nearest second (in seconds)"
1667
+ },
1668
+ "termReason": {
1669
+ "$ref": "#/components/schemas/RecordUtteranceTermReason"
1670
+ },
1671
+ "parentCallId": {
1672
+ "type": "string",
1673
+ "description": "ID of Call that created this leg (child call)."
1674
+ },
1675
+ "privacyMode": {
1676
+ "type": "boolean",
1677
+ "description": "If true then it indicates the recording will only be available for download for two minutes prior to it being deleted. This is to minimize risk of anyone else getting access to the url and attempting to access it."
1678
+ }
1679
+ }
1680
+ }
1681
+ ]
1682
+ },
1683
+ "RedirectWebhook": {
1684
+ "description": "The Redirect command is executing and its actionUrl is being invoked. A PerCL response is expected.",
1685
+ "allOf": [
1686
+ {
1687
+ "$ref": "#/components/schemas/Webhook"
1688
+ },
1689
+ {
1690
+ "type": "object",
1691
+ "properties": {
1692
+ "requestType": {
1693
+ "type": "string",
1694
+ "description": "Context or reason why this request is being made. Will be redirect - The Redirect command is executing and its actionUrl is being invoked."
1695
+ },
1696
+ "accountId": {
1697
+ "type": "string",
1698
+ "description": "Account ID associated with your account."
1699
+ },
1700
+ "callId": {
1701
+ "type": "string",
1702
+ "description": "Unique identifier for this Call, generated by FreeClimb"
1703
+ },
1704
+ "from": {
1705
+ "type": "string",
1706
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
1707
+ },
1708
+ "to": {
1709
+ "type": "string",
1710
+ "description": "Phone number provisioned to the customer and to which this Call is directed (in E.164 format)."
1711
+ },
1712
+ "callStatus": {
1713
+ "$ref": "#/components/schemas/CallStatus"
1714
+ },
1715
+ "direction": {
1716
+ "$ref": "#/components/schemas/CallDirection"
1717
+ },
1718
+ "conferenceId": {
1719
+ "type": "string",
1720
+ "description": "This is only populated if request pertains to a conference. Otherwise, it is set to null.",
1721
+ "nullable": true
1722
+ },
1723
+ "queueId": {
1724
+ "type": "string",
1725
+ "description": "This is only populated if the request pertains to a queue. Otherwise, it is set to null.",
1726
+ "nullable": true
1727
+ },
1728
+ "parentCallId": {
1729
+ "type": "string",
1730
+ "description": "ID of Call that created this leg (child call)."
1731
+ }
1732
+ }
1733
+ }
1734
+ ]
1735
+ },
1736
+ "RemoveFromQueueNotificationWebhook": {
1737
+ "description": "A call has been removed from a queue and the Enqueue command’s actionUrl is being invoked. A PerCL response is expected except if reason is hangup.",
1738
+ "allOf": [
1739
+ {
1740
+ "$ref": "#/components/schemas/Webhook"
1741
+ },
1742
+ {
1743
+ "type": "object",
1744
+ "properties": {
1745
+ "requestType": {
1746
+ "type": "string",
1747
+ "description": "Context or reason why this request is being made. Will be removeFromQueueNotification - A Call has been removed from a Queue and the Enqueue command’s actionUrl is being invoked."
1748
+ },
1749
+ "accountId": {
1750
+ "type": "string",
1751
+ "description": "Account ID associated with your account."
1752
+ },
1753
+ "callId": {
1754
+ "type": "string",
1755
+ "description": "Unique identifier for this Call, generated by FreeClimb"
1756
+ },
1757
+ "from": {
1758
+ "type": "string",
1759
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
1760
+ },
1761
+ "to": {
1762
+ "type": "string",
1763
+ "description": "Phone number provisioned to the customer and to which this Call is directed (in E.164 format)."
1764
+ },
1765
+ "callStatus": {
1766
+ "$ref": "#/components/schemas/CallStatus"
1767
+ },
1768
+ "direction": {
1769
+ "$ref": "#/components/schemas/CallDirection"
1770
+ },
1771
+ "conferenceId": {
1772
+ "type": "string",
1773
+ "description": "This is only populated if request pertains to a conference. Otherwise, it is set to null.",
1774
+ "nullable": true
1775
+ },
1776
+ "queueId": {
1777
+ "type": "string",
1778
+ "description": "This is only populated if the request pertains to a queue. Otherwise, it is set to null.",
1779
+ "nullable": true
1780
+ },
1781
+ "queueResult": {
1782
+ "$ref": "#/components/schemas/QueueResultStatus"
1783
+ },
1784
+ "queueTime": {
1785
+ "type": "integer",
1786
+ "description": "Time (in seconds) the Call spent in the Queue. This is only available if the Call was actually enqueued."
1787
+ }
1788
+ }
1789
+ }
1790
+ ]
1791
+ },
1792
+ "TranscribeWebhook": {
1793
+ "allOf": [
1794
+ {
1795
+ "$ref": "#/components/schemas/Webhook"
1796
+ },
1797
+ {
1798
+ "type": "object",
1799
+ "properties": {
1800
+ "requestType": {
1801
+ "type": "string",
1802
+ "description": "The context or reason why this request is being made. Will be transcribe - The TranscribeUtterance command has completed and its actionUrl is being invoked."
1803
+ },
1804
+ "accountId": {
1805
+ "type": "string",
1806
+ "description": "Account ID associated with your account."
1807
+ },
1808
+ "callId": {
1809
+ "type": "string",
1810
+ "description": "Unique identifier for this Call, generated by FreeClimb"
1811
+ },
1812
+ "from": {
1813
+ "type": "string",
1814
+ "description": "Phone number of the party that initiated the Call (in E.164 format)."
1815
+ },
1816
+ "to": {
1817
+ "type": "string",
1818
+ "description": "Phone number provisioned to the customer and to which this Call is directed (in E.164 format)."
1819
+ },
1820
+ "recordingId": {
1821
+ "type": "string",
1822
+ "description": "The ID of the recording. If no recording was made due to errors or the 'saveRecording' flag being disabled this field will be set to null.",
1823
+ "nullable": true
1824
+ },
1825
+ "recordingUrl": {
1826
+ "type": "string",
1827
+ "description": "The URL of the recorded audio file. This URL can be used as is in a Play command to play the recording (no authentication needed). It can also be used to download the recording file via the REST API.",
1828
+ "format": "uri",
1829
+ "nullable": true
1830
+ },
1831
+ "recordingSize": {
1832
+ "type": "integer",
1833
+ "description": "The size of the recording in bytes."
1834
+ },
1835
+ "recordingFormat": {
1836
+ "type": "string",
1837
+ "description": "The media type of the recording.",
1838
+ "nullable": true
1839
+ },
1840
+ "recordingDurationMs": {
1841
+ "type": "integer",
1842
+ "description": "The duration of the recorded audio in milliseconds."
1843
+ },
1844
+ "termReason": {
1845
+ "$ref": "#/components/schemas/TranscribeTermReason"
1846
+ },
1847
+ "recordTermReason": {
1848
+ "$ref": "#/components/schemas/RecordUtteranceTermReason"
1849
+ },
1850
+ "digit": {
1851
+ "type": "string",
1852
+ "description": "If recordTermReason is digit, this will be the digit that was pressed. Otherwise it will be null.",
1853
+ "nullable": true
1854
+ },
1855
+ "privacyForLogging": {
1856
+ "type": "boolean",
1857
+ "description": "Echo back of the privacyForLogging flag as specified in the transcribe utterance command – confirmation of logging protection has been applied. Can be used by application to know it should also apply protection when handling this request."
1858
+ },
1859
+ "privacyForRecording": {
1860
+ "type": "boolean",
1861
+ "description": "Echo back of the privacyForRecording flag as specified in the transcribe utterance command – confirmation of logging protection has been applied. Can be used by application to know it should also apply protection when handling this request."
1862
+ },
1863
+ "bargeInReason": {
1864
+ "$ref": "#/components/schemas/BargeInReason"
1865
+ },
1866
+ "bargedInPromptNo": {
1867
+ "type": "integer"
1868
+ },
1869
+ "bargedInPromptMs": {
1870
+ "type": "integer",
1871
+ "description": "duration in ms bargedInPromptNo prompt was executing until barge-in occurred."
1872
+ },
1873
+ "bargedInPromptLoopNo": {
1874
+ "type": "integer"
1875
+ },
1876
+ "bargeInTimeMs": {
1877
+ "type": "integer",
1878
+ "description": "epoch time in ms"
1879
+ },
1880
+ "transcript": {
1881
+ "type": "string",
1882
+ "description": "Transcribed text of the recording. Can be empty or null. null means there was a failure in transcribing the audio, refer to transcribeReason for detailed failure reason.",
1883
+ "nullable": true
1884
+ },
1885
+ "transcribeReason": {
1886
+ "$ref": "#/components/schemas/TranscribeReason"
1887
+ },
1888
+ "transcriptionDurationMs": {
1889
+ "type": "integer",
1890
+ "description": "The duration of the audio being transcribed in milliseconds"
1891
+ }
1892
+ }
480
1893
  }
481
- }
1894
+ ]
482
1895
  },
483
1896
  "AddToConference": {
484
1897
  "description": "The `AddToConference` command adds a Participant to a Conference. Two Call legs can be bridged together by creating a Conference and adding both Call legs to it via `AddToConference`.",
485
- "x-percl-command": true,
486
- "x-ref-properties": [
487
- "false",
488
- "\"TEST_STRING\"",
489
- "\"TEST_STRING\"",
490
- "\"TEST_STRING\"",
491
- "\"TEST_STRING\"",
492
- "false",
493
- "\"TEST_STRING\"",
494
- "false",
495
- "false"
496
- ],
1898
+ "required": ["conferenceId"],
497
1899
  "allOf": [
498
1900
  {
499
1901
  "$ref": "#/components/schemas/PerclCommand"
@@ -512,7 +1914,8 @@
512
1914
  },
513
1915
  "callControlUrl": {
514
1916
  "description": "URL to be invoked when this Participant enters the digit sequence defined in the `callControlSequence` attribute.",
515
- "type": "string"
1917
+ "type": "string",
1918
+ "format": "uri"
516
1919
  },
517
1920
  "conferenceId": {
518
1921
  "description": "ID of the Conference to which to add the Participant (Call leg). Conference must exist or an error will result.",
@@ -520,6 +1923,7 @@
520
1923
  },
521
1924
  "leaveConferenceUrl": {
522
1925
  "description": "URL to be invoked when the Participant leaves the Conference. ",
1926
+ "format": "uri",
523
1927
  "type": "string"
524
1928
  },
525
1929
  "listen": {
@@ -528,6 +1932,7 @@
528
1932
  },
529
1933
  "notificationUrl": {
530
1934
  "description": "When the Participant enters the Conference, this URL will be invoked using an HTTP POST request with the standard request parameters.",
1935
+ "format": "uri",
531
1936
  "type": "string"
532
1937
  },
533
1938
  "startConfOnEnter": {
@@ -548,16 +1953,6 @@
548
1953
  },
549
1954
  "CreateConference": {
550
1955
  "description": "The `CreateConference` command does exactly what its name implies — it creates an unpopulated Conference (one without any Participants). Once created, a Conference remains in FreeClimb until explicitly terminated by a customer. Once a Conference has been terminated, it can no longer be used.",
551
- "x-percl-command": true,
552
- "x-ref-properties": [
553
- "\"TEST_STRING\"",
554
- "false",
555
- "PlayBeep.ALWAYS",
556
- "false",
557
- "\"https://a.com\"",
558
- "\"https://a.com\"",
559
- "\"TEST_STRING\""
560
- ],
561
1956
  "allOf": [
562
1957
  {
563
1958
  "$ref": "#/components/schemas/PerclCommand"
@@ -568,8 +1963,8 @@
568
1963
  "properties": {
569
1964
  "actionUrl": {
570
1965
  "description": " This URL is invoked once the Conference is successfully created. Actions on the Conference, such as adding Participants, can be performed via the PerCL script returned in the response. ",
571
- "type": "string",
572
- "x-is-uri": true
1966
+ "format": "uri",
1967
+ "type": "string"
573
1968
  },
574
1969
  "alias": {
575
1970
  "description": "Descriptive name for the Conference. ",
@@ -584,10 +1979,12 @@
584
1979
  },
585
1980
  "statusCallbackUrl": {
586
1981
  "description": "This URL is invoked when the status of the Conference changes or when a recording of the Conference has become available.",
1982
+ "format": "uri",
587
1983
  "type": "string"
588
1984
  },
589
1985
  "waitUrl": {
590
1986
  "description": "If specified, this URL provides the custom hold music for the Conference when it is in the populated state. This attribute is always fetched using HTTP GET and is fetched just once – when the Conference is created. The URL must be an audio file that is reachable and readable by FreeClimb.",
1987
+ "format": "uri",
591
1988
  "type": "string"
592
1989
  }
593
1990
  }
@@ -596,8 +1993,6 @@
596
1993
  },
597
1994
  "Dequeue": {
598
1995
  "description": "The `Dequeue` command transfers control of a Call that is in a Queue so that the waiting caller exits the Queue. Execution continues with the first command in the PerCL script returned by the `actionUrl` specified in the `Enqueue` command.",
599
- "x-percl-command": true,
600
- "x-no-properties": true,
601
1996
  "allOf": [
602
1997
  {
603
1998
  "$ref": "#/components/schemas/PerclCommand"
@@ -609,18 +2004,10 @@
609
2004
  },
610
2005
  "Enqueue": {
611
2006
  "description": "The `Enqueue` command adds the current Call to a call Queue. If the specified Queue does not exist, it is created and then the Call is added to it. The default maximum length of the queue is 100. This can be modified using the REST API.",
612
- "x-percl-command": true,
613
- "x-ref-properties": [
614
- "\"TEST_STRING\"",
615
- "\"TEST_STRING\"",
616
- "\"TEST_STRING\"",
617
- "\"TEST_STRING\"",
618
- "\"TEST_STRING\""
619
- ],
2007
+ "required": ["queueId", "waitUrl", "actionUrl"],
620
2008
  "allOf": [
621
2009
  {
622
- "$ref": "#/components/schemas/PerclCommand",
623
- "x-is-uri": true
2010
+ "$ref": "#/components/schemas/PerclCommand"
624
2011
  },
625
2012
  {
626
2013
  "type": "object",
@@ -629,12 +2016,12 @@
629
2016
  "actionUrl": {
630
2017
  "description": "A request is made to this URL when the Call leaves the Queue, which can occur if enqueue of the Call fails or when the call is dequeued via the `Dequeue` command, the REST API (POST to Queue Member resource), or the caller hangs up.",
631
2018
  "type": "string",
632
- "x-is-uri": true
2019
+ "format": "uri"
633
2020
  },
634
2021
  "notificationUrl": {
635
2022
  "description": "URL to be invoked when the call enters the queue. The request to the URL contains the standard request parameters.This is a notification only; any PerCL returned will be ignored.",
636
2023
  "type": "string",
637
- "x-is-uri": true
2024
+ "format": "uri"
638
2025
  },
639
2026
  "queueId": {
640
2027
  "description": "ID of the Queue to which to add the Call. If the Queue does not exist, it will be created. The ID must start with QU followed by 40 hex characters.",
@@ -642,7 +2029,8 @@
642
2029
  },
643
2030
  "waitUrl": {
644
2031
  "description": "A request is made to this URL when the Call leaves the Queue, which can occur if enqueue of the Call fails or when the call is dequeued via the `Dequeue` command, the REST API (POST to Queue Member resource), or the caller hangs up.",
645
- "type": "string"
2032
+ "type": "string",
2033
+ "format": "uri"
646
2034
  }
647
2035
  }
648
2036
  }
@@ -650,23 +2038,9 @@
650
2038
  },
651
2039
  "GetDigits": {
652
2040
  "description": "The `GetDigits` command collects DTMF inputs from the caller. It is only supported only when there is a single party on the Call. `GetDigits` is a Terminal Command — any actions following it are never executed. When the Caller is done entering the digits, FreeClimb submits that data to the provided `actionUrl` using an HTTP POST request. Your server will be required to respond to the FreeClimb Webhook with PerCL to continue handling the call.",
653
- "x-percl-command": true,
654
- "x-ref-properties": [
655
- "\"https://a.com\"",
656
- "1",
657
- "\"TEST_STRING\"",
658
- "false",
659
- "300",
660
- "1",
661
- "1",
662
- "new List<PerclCommand>()",
663
- "false",
664
- "\"TEST_STRING\""
665
- ],
666
2041
  "allOf": [
667
2042
  {
668
- "$ref": "#/components/schemas/PerclCommand",
669
- "x-is-uri": true
2043
+ "$ref": "#/components/schemas/PerclCommand"
670
2044
  },
671
2045
  {
672
2046
  "type": "object",
@@ -675,7 +2049,7 @@
675
2049
  "actionUrl": {
676
2050
  "description": "When the Caller has finished entering digits, FreeClimb will make an HTTP POST request to this URL. A PerCL response is expected to continue handling the Call. Make sure to keep “http://“ in the URL.",
677
2051
  "type": "string",
678
- "x-is-uri": true
2052
+ "format": "uri"
679
2053
  },
680
2054
  "digitTimeoutMs": {
681
2055
  "description": " Maximum time in milliseconds that FreeClimb will wait for the Caller to press any digit after the last digit entered, before making a determination that a `timeout` has occurred and moving on to make the request to the actionUrl to submit the results of the `GetDigits` command. This timeout interval begins and resets after each digit entered.",
@@ -704,7 +2078,6 @@
704
2078
  "prompts": {
705
2079
  "description": "JSON array of PerCL commands to nest within the `GetDigits` command. The `Say`, `Play`, and `Pause` commands can be used. The nested actions are executed while FreeClimb is waiting for input from the Caller.",
706
2080
  "type": "array",
707
- "x-is-list": true,
708
2081
  "items": {
709
2082
  "$ref": "#/components/schemas/PerclCommand"
710
2083
  }
@@ -719,23 +2092,6 @@
719
2092
  },
720
2093
  "GetSpeech": {
721
2094
  "description": "The `GetSpeech` command enables the Caller to respond to the application using a supported language. Unlike DTMF entry, which implicitly restricts the user to using the available buttons on the phone key pad, speech input allows for flexible audio inputs based on grammar. FreeClimb supports grammars written using GRXML compatible with the Microsoft Speech Platform. `GetSpeech` is only supported on a single call leg. It is not supported when there are two or more call legs connected (as in within a Conference).",
722
- "x-percl-command": true,
723
- "x-ref-properties": [
724
- "\"https://a.com\"",
725
- "GrammarType.URL",
726
- "\"TEST_STRING\"",
727
- "\"TEST_STRING\"",
728
- "false",
729
- "new List<PerclCommand>()",
730
- "1",
731
- "1",
732
- "1",
733
- "1",
734
- "1",
735
- "1",
736
- "false",
737
- "\"TEST_STRING\""
738
- ],
739
2095
  "allOf": [
740
2096
  {
741
2097
  "$ref": "#/components/schemas/PerclCommand"
@@ -747,9 +2103,7 @@
747
2103
  "actionUrl": {
748
2104
  "description": "When the caller has finished speaking or the command has timed out, FreeClimb will make a POST request to this URL. A PerCL response is expected to continue handling the call.",
749
2105
  "type": "string",
750
- "format": "uri",
751
- "x-is-uri": true,
752
- "x-is-url": true
2106
+ "format": "uri"
753
2107
  },
754
2108
  "grammarType": {
755
2109
  "$ref": "#/components/schemas/GrammarType"
@@ -771,8 +2125,7 @@
771
2125
  "type": "array",
772
2126
  "items": {
773
2127
  "$ref": "#/components/schemas/PerclCommand"
774
- },
775
- "x-is-list": true
2128
+ }
776
2129
  },
777
2130
  "noInputTimeoutMs": {
778
2131
  "description": "When recognition is started and there is no speech detected for `noInputTimeoutMs` milliseconds, the recognizer will terminate the recognition operation.",
@@ -808,7 +2161,6 @@
808
2161
  },
809
2162
  "Hangup": {
810
2163
  "description": "The `Hangup` command terminates a Call. If `Hangup` is used as the first action in a PerCL response, it does not prevent FreeClimb from answering the Call and billing your account. See the `Reject` command to hang up at no charge.",
811
- "x-percl-command": true,
812
2164
  "allOf": [
813
2165
  {
814
2166
  "$ref": "#/components/schemas/PerclCommand"
@@ -826,24 +2178,9 @@
826
2178
  },
827
2179
  "OutDial": {
828
2180
  "description": "The OutDial command is used to call a phone number",
829
- "x-percl-command": true,
830
- "x-ref-properties": [
831
- "\"https://a.com\"",
832
- "\"https://a.com\"",
833
- "\"TEST_STRING\"",
834
- "\"TEST_STRING\"",
835
- "IfMachine.REDIRECT",
836
- "\"https://a.com\"",
837
- "\"TEST_STRING\"",
838
- "\"TEST_STRING\"",
839
- "1",
840
- "false",
841
- "\"TEST_STRING\""
842
- ],
843
2181
  "allOf": [
844
2182
  {
845
- "$ref": "#/components/schemas/PerclCommand",
846
- "x-is-uri": true
2183
+ "$ref": "#/components/schemas/PerclCommand"
847
2184
  },
848
2185
  {
849
2186
  "required": [
@@ -857,12 +2194,12 @@
857
2194
  "actionUrl": {
858
2195
  "description": "URL to which FreeClimb sends an HTTP POST request. ",
859
2196
  "type": "string",
860
- "x-is-uri": true
2197
+ "format": "uri"
861
2198
  },
862
2199
  "callConnectUrl": {
863
2200
  "description": "URL to which FreeClimb makes an HTTP POST request informing the result of the OutDial.",
864
2201
  "type": "string",
865
- "x-is-uri": true
2202
+ "format": "uri"
866
2203
  },
867
2204
  "callingNumber": {
868
2205
  "description": "he caller ID to show to the called party when FreeClimb calls. This can be one of the following: The To or From number provided in the first Webhook to your webserver. Any phone number you have purchased from FreeClimb.",
@@ -877,6 +2214,7 @@
877
2214
  },
878
2215
  "ifMachineUrl": {
879
2216
  "description": "When the `ifMachine` flag is set to `redirect`, this attribute specifies a URL to which FreeClimb makes a POST request when an answering machine or a fax machine is detected. This URL is required if the `ifMachine` flag is set to `redirect`. Otherwise, it should not be included.",
2217
+ "format": "uri",
880
2218
  "type": "string"
881
2219
  },
882
2220
  "sendDigits": {
@@ -885,6 +2223,7 @@
885
2223
  },
886
2224
  "statusCallbackUrl": {
887
2225
  "description": "When the outdialed Call leg terminates, FreeClimb sends a `callStatus` Webhook to the `statusCallbackUrl`. This is a notification only; any PerCL command returned is ignored.",
2226
+ "format": "uri",
888
2227
  "type": "string"
889
2228
  },
890
2229
  "timeout": {
@@ -901,17 +2240,9 @@
901
2240
  },
902
2241
  "Park": {
903
2242
  "description": "The `Park` command allows a caller to be put on hold. You can provide hold music,messages,etc until ready to resume the call. Park is a terminal command. Actions performed on the Call while on hold are provided in a PerCL script in response to the waitUrl property. Actions performed on the Call after it has been unparked (resumed) will be provided in a PerCL script in response to the actionUrl provided. A Call can be resumed in two ways -- REST API invocation or the Unpark percl command. No actions can be nested within Park and Park cannot be nested in any other actions. ",
904
- "x-percl-command": true,
905
- "x-ref-properties": [
906
- "\"https://a.com\"",
907
- "\"https://a.com\"",
908
- "\"TEST_STRING\"",
909
- "\"TEST_STRING\""
910
- ],
911
2243
  "allOf": [
912
2244
  {
913
- "$ref": "#/components/schemas/PerclCommand",
914
- "x-is-uri": true
2245
+ "$ref": "#/components/schemas/PerclCommand"
915
2246
  },
916
2247
  {
917
2248
  "type": "object",
@@ -920,16 +2251,17 @@
920
2251
  "waitUrl": {
921
2252
  "description": "Specifies a URL pointing to a PerCL script containing actions to be executed while the caller is Parked. Once the script returned by the waitUrl runs out of commands to execute, FreeClimb will re-request the waitUrl and start over, essentially looping the script requests indefinitely.",
922
2253
  "type": "string",
923
- "x-is-uri": true
2254
+ "format": "uri"
924
2255
  },
925
2256
  "actionUrl": {
926
2257
  "description": "A request is made to this URL when the Call is resumed, which can occur if the Call is resumed via the Unpark command, the REST API (POST to Call resource), or the caller hangs up. The PerCL script returned in response to the actionUrl will be executed on the resumed call.",
927
2258
  "type": "string",
928
- "x-is-uri": true
2259
+ "format": "uri"
929
2260
  },
930
2261
  "notificationUrl": {
931
2262
  "description": "URL to be invoked when the Call is parked. The request to the URL contains the standard request parameters.",
932
- "type": "string"
2263
+ "type": "string",
2264
+ "format": "uri"
933
2265
  }
934
2266
  }
935
2267
  }
@@ -937,8 +2269,6 @@
937
2269
  },
938
2270
  "Pause": {
939
2271
  "description": "The `Pause` command halts execution of the current PerCL script for a specified number of milliseconds. If `Pause` is the first command in a PerCL document, FreeClimb will wait for the specified time to elapse before picking up the call.",
940
- "x-percl-command": true,
941
- "x-ref-properties": ["1"],
942
2272
  "allOf": [
943
2273
  {
944
2274
  "$ref": "#/components/schemas/PerclCommand"
@@ -957,8 +2287,6 @@
957
2287
  },
958
2288
  "Play": {
959
2289
  "description": "The `Play` command plays an audio file back to the caller. The audio file may be located at any location accessible via a URL. `Play` can exist as a stand-alone command or as a nested command. It does not allow barge-in unless nested within a `GetSpeech` command. The file will always be played to completion unless nested.",
960
- "x-percl-command": true,
961
- "x-ref-properties": ["\"TEST_STRING\"", "1", "false"],
962
2290
  "allOf": [
963
2291
  {
964
2292
  "$ref": "#/components/schemas/PerclCommand"
@@ -985,8 +2313,6 @@
985
2313
  },
986
2314
  "PlayEarlyMedia": {
987
2315
  "description": "`PlayEarlyMedia` is relevant only when present as the very first command in the PerCL script returned for an incoming Call. In such cases, the command is executed before FreeClimb attempts to connect the call. The audio file it uses can be stored in any location that is accessible via URL.",
988
- "x-percl-command": true,
989
- "x-ref-properties": ["\"TEST_STRING\""],
990
2316
  "allOf": [
991
2317
  {
992
2318
  "$ref": "#/components/schemas/PerclCommand"
@@ -1005,20 +2331,9 @@
1005
2331
  },
1006
2332
  "RecordUtterance": {
1007
2333
  "description": "The `RecordUtterance` command records the caller's voice and returns the URL of a file containing the audio recording. `RecordUtterance` is blocking and is a terminal command. As such, the `actionUrl` property is required, and control of the Call picks up using the PerCL returned in response to the `actionUrl`. Recording information is returned in the `actionUrl` request.",
1008
- "x-percl-command": true,
1009
- "x-ref-properties": [
1010
- "\"https://a.com\"",
1011
- "1",
1012
- "\"TEST_STRING\"",
1013
- "1",
1014
- "false",
1015
- "false",
1016
- "false"
1017
- ],
1018
2334
  "allOf": [
1019
2335
  {
1020
- "$ref": "#/components/schemas/PerclCommand",
1021
- "x-is-uri": true
2336
+ "$ref": "#/components/schemas/PerclCommand"
1022
2337
  },
1023
2338
  {
1024
2339
  "required": ["actionUrl"],
@@ -1027,7 +2342,7 @@
1027
2342
  "actionUrl": {
1028
2343
  "description": "URL to which information on the completed recording is submitted. The PerCL received in response is then used to continue with Call processing.",
1029
2344
  "type": "string",
1030
- "x-is-uri": true
2345
+ "format": "uri"
1031
2346
  },
1032
2347
  "silenceTimeoutMs": {
1033
2348
  "description": "Interval of silence that should elapse before ending the recording.",
@@ -1059,12 +2374,9 @@
1059
2374
  },
1060
2375
  "Redirect": {
1061
2376
  "description": "The `Redirect` command transfers control of a Call to the PerCL at a different URL. `Redirect` is a terminal command, so any actions following it are never executed. The maximum number of redirections allowed during the life time of a Call is 256. This is intended to prevent a Call from possibly looping infinitely due to errors in PerCL being generated.",
1062
- "x-percl-command": true,
1063
- "x-ref-properties": ["\"https://a.com\""],
1064
2377
  "allOf": [
1065
2378
  {
1066
- "$ref": "#/components/schemas/PerclCommand",
1067
- "x-is-uri": true
2379
+ "$ref": "#/components/schemas/PerclCommand"
1068
2380
  },
1069
2381
  {
1070
2382
  "required": ["actionUrl"],
@@ -1073,7 +2385,7 @@
1073
2385
  "actionUrl": {
1074
2386
  "description": "URL to request a new PerCL script to continue with the current Call's processing. When `Redirect` invokes the `actionUrl`, an `inbound` Webhook is sent. This request therefore looks identical to the initial request (made to the `voiceUrl` of the number that was called) for an inbound Call.",
1075
2387
  "type": "string",
1076
- "x-is-uri": true
2388
+ "format": "uri"
1077
2389
  }
1078
2390
  }
1079
2391
  }
@@ -1081,8 +2393,6 @@
1081
2393
  },
1082
2394
  "Reject": {
1083
2395
  "description": "The `Reject` command blocks an incoming Call. Using `Reject` is the only way to prevent FreeClimb from answering a Call. Any other response will result in an answered Call and your account will be billed.",
1084
- "x-percl-command": true,
1085
- "x-ref-properties": ["\"TEST_STRING\""],
1086
2396
  "allOf": [
1087
2397
  {
1088
2398
  "$ref": "#/components/schemas/PerclCommand"
@@ -1100,8 +2410,6 @@
1100
2410
  },
1101
2411
  "RemoveFromConference": {
1102
2412
  "description": "The `RemoveFromConference` command removes a Participant from a Conference but does not hang up. Instead, the Call is simply unbridged and what happens next with the Call is determined by the PerCL returned in response to the `leaveConferenceUrl` attribute.",
1103
- "x-percl-command": true,
1104
- "x-no-properties": true,
1105
2413
  "allOf": [
1106
2414
  {
1107
2415
  "$ref": "#/components/schemas/PerclCommand"
@@ -1115,13 +2423,6 @@
1115
2423
  },
1116
2424
  "Say": {
1117
2425
  "description": "The `Say` command provides Text-To-Speech (TTS) support. It converts text to speech and then renders it in a female voice back to the caller. `Say` is useful in cases where it's difficult to pre-record a prompt for any reason. `Say` does not allow barge-in unless nested within a `GetSpeech` command. The file will always be played to completion unless nested.",
1118
- "x-percl-command": true,
1119
- "x-ref-properties": [
1120
- "\"TEST_STRING\"",
1121
- "\"TEST_STRING\"",
1122
- "1",
1123
- "false"
1124
- ],
1125
2426
  "allOf": [
1126
2427
  {
1127
2428
  "$ref": "#/components/schemas/PerclCommand"
@@ -1153,8 +2454,6 @@
1153
2454
  },
1154
2455
  "SendDigits": {
1155
2456
  "description": "The `SendDigits` command plays DTMF tones on a live Call. This is useful for navigating through IVR menus or dialing extensions.",
1156
- "x-percl-command": true,
1157
- "x-ref-properties": ["\"TEST_STRING\"", "1", "false"],
1158
2457
  "allOf": [
1159
2458
  {
1160
2459
  "$ref": "#/components/schemas/PerclCommand"
@@ -1181,8 +2480,6 @@
1181
2480
  },
1182
2481
  "SetListen": {
1183
2482
  "description": "The `SetListen` command enables or disables the listen privilege for this Conference Participant. The Participant can hear what the other participants are saying only if this privilege is enabled.",
1184
- "x-percl-command": true,
1185
- "x-ref-properties": ["false"],
1186
2483
  "allOf": [
1187
2484
  {
1188
2485
  "$ref": "#/components/schemas/PerclCommand"
@@ -1201,8 +2498,6 @@
1201
2498
  },
1202
2499
  "SetTalk": {
1203
2500
  "description": "The `SetTalk` command enables or disables the talk privilege for this Conference Participant. If 'true', no audio from that Participant is shared with the other Participants of the Conference.",
1204
- "x-percl-command": true,
1205
- "x-ref-properties": ["false"],
1206
2501
  "allOf": [
1207
2502
  {
1208
2503
  "$ref": "#/components/schemas/PerclCommand"
@@ -1221,8 +2516,6 @@
1221
2516
  },
1222
2517
  "SetDTMFPassThrough": {
1223
2518
  "description": "The `SetDTMFPassThrough` command enables or disables the dtmfPassThrough privilege for this Conference Participant. If 'true', DTMFs will be passed through from this Participant to all other Participants in the Conference",
1224
- "x-percl-command": true,
1225
- "x-ref-properties": ["false"],
1226
2519
  "allOf": [
1227
2520
  {
1228
2521
  "$ref": "#/components/schemas/PerclCommand"
@@ -1241,12 +2534,6 @@
1241
2534
  },
1242
2535
  "Sms": {
1243
2536
  "description": "The `Sms` command can be used to send an SMS message to a phone number during a phone call. International SMS is disabled by default.",
1244
- "x-percl-command": true,
1245
- "x-ref-properties": [
1246
- "\"TEST_STRING\"",
1247
- "\"TEST_STRING\"",
1248
- "\"TEST_STRING\""
1249
- ],
1250
2537
  "allOf": [
1251
2538
  {
1252
2539
  "$ref": "#/components/schemas/PerclCommand"
@@ -1269,7 +2556,8 @@
1269
2556
  },
1270
2557
  "notificationUrl": {
1271
2558
  "description": "When the message changes status, this URL will be invoked using HTTP POST with the messageStatus parameters. This is a notification only; any PerCL returned will be ignored.",
1272
- "type": "string"
2559
+ "type": "string",
2560
+ "format": "uri"
1273
2561
  }
1274
2562
  }
1275
2563
  }
@@ -1277,8 +2565,6 @@
1277
2565
  },
1278
2566
  "StartRecordCall": {
1279
2567
  "description": "The `StartRecordCall` command records the current call and returns the URL of a file containing the audio recording when recording completes. `StartRecordCall` is non-blocking. After recording of the current call begins, control of the call moves to the PerCL command that follows `StartRecordCall` in the current PerCL script.",
1280
- "x-percl-command": true,
1281
- "x-no-properties": true,
1282
2568
  "allOf": [
1283
2569
  {
1284
2570
  "$ref": "#/components/schemas/PerclCommand"
@@ -1290,8 +2576,6 @@
1290
2576
  },
1291
2577
  "TerminateConference": {
1292
2578
  "description": "The `TerminateConference` command terminates an existing Conference. Any active participants are hung up on by FreeClimb. If this is not the desired behavior, use the `RemoveFromConference` command to unbridge Calls that should not be hung up. Note: The Call requesting TerminateConference must be on the same Conference for this command to execute.",
1293
- "x-percl-command": true,
1294
- "x-no-properties": true,
1295
2579
  "allOf": [
1296
2580
  {
1297
2581
  "$ref": "#/components/schemas/PerclCommand"
@@ -1305,8 +2589,6 @@
1305
2589
  },
1306
2590
  "Unpark": {
1307
2591
  "description": "The `Unpark` command resumes a parked call. Execution continues with the first command in the PerCL scripted returned by the actionUrl specified in the Park command as long as the call is still in progress. If the call is no longer in progress, any returned PerCL will not be executed. Unpark is a terminal command -- any commands following it in the same script are not executed.",
1308
- "x-percl-command": true,
1309
- "x-no-properties": true,
1310
2592
  "allOf": [
1311
2593
  {
1312
2594
  "$ref": "#/components/schemas/PerclCommand"
@@ -1381,8 +2663,6 @@
1381
2663
  "description": "Details for which features this number may be used.",
1382
2664
  "type": "object",
1383
2665
  "required": ["voice", "sms", "tollFree", "tenDLC", "shortCode"],
1384
- "x-is-object": true,
1385
- "x-ref-properties": [false, false, false, false, false],
1386
2666
  "properties": {
1387
2667
  "voice": {
1388
2668
  "description": "Indicates whether a number can be used for voice calls. Replaces voiceEnabled.",
@@ -1415,8 +2695,6 @@
1415
2695
  "description": "TollFree Campaign details for this number",
1416
2696
  "type": "object",
1417
2697
  "required": ["campaignId"],
1418
- "x-is-object": true,
1419
- "x-ref-properties": ["\"TEST_STRING\""],
1420
2698
  "properties": {
1421
2699
  "campaignId": {
1422
2700
  "description": "alphanumeric identifier for the TollFree campaign associated with this number",
@@ -1506,31 +2784,37 @@
1506
2784
  "voiceUrl": {
1507
2785
  "type": "string",
1508
2786
  "description": "The URL FreeClimb will request when a phone number assigned to this Application receives a Call. Used for inbound calls only.",
2787
+ "format": "uri",
1509
2788
  "nullable": true
1510
2789
  },
1511
2790
  "voiceFallbackUrl": {
1512
2791
  "type": "string",
1513
2792
  "description": "The URL that FreeClimb will request if it times out waiting for a response from the voiceUrl. Used for inbound calls only.",
2793
+ "format": "uri",
1514
2794
  "nullable": true
1515
2795
  },
1516
2796
  "callConnectUrl": {
1517
2797
  "type": "string",
1518
2798
  "description": "The URL to which FreeClimb will make a POST request informing the result of the outbound Call request. The status property of the request message specifies if the Call was connected or not.",
2799
+ "format": "uri",
1519
2800
  "nullable": true
1520
2801
  },
1521
2802
  "statusCallbackUrl": {
1522
2803
  "type": "string",
1523
2804
  "description": "A URL to which FreeClimb will make a POST request when the Call ends to notify this app.",
2805
+ "format": "uri",
1524
2806
  "nullable": true
1525
2807
  },
1526
2808
  "smsUrl": {
1527
2809
  "type": "string",
1528
2810
  "description": "The URL FreeClimb will request when a phone number assigned to this Application receives an incoming SMS message. Used for inbound SMS only.",
2811
+ "format": "uri",
1529
2812
  "nullable": true
1530
2813
  },
1531
2814
  "smsFallbackUrl": {
1532
2815
  "type": "string",
1533
2816
  "description": "The URL that FreeClimb will request if it times out waiting for a response from the smsUrl. Used for inbound SMS only.",
2817
+ "format": "uri",
1534
2818
  "nullable": true
1535
2819
  }
1536
2820
  }
@@ -1547,37 +2831,42 @@
1547
2831
  "voiceUrl": {
1548
2832
  "type": "string",
1549
2833
  "description": "The URL that FreeClimb will request when an inbound call arrives on a phone number assigned to this application. Used only for inbound calls.",
2834
+ "format": "uri",
1550
2835
  "nullable": true
1551
2836
  },
1552
2837
  "voiceFallbackUrl": {
1553
2838
  "type": "string",
1554
2839
  "description": "The URL that FreeClimb will request if it times out waiting for a response from the voiceUrl. Used for inbound calls only. Note: A PerCL response is expected to control the inbound call.",
2840
+ "format": "uri",
1555
2841
  "nullable": true
1556
2842
  },
1557
2843
  "callConnectUrl": {
1558
2844
  "type": "string",
1559
2845
  "description": "The URL that FreeClimb will request when an outbound call request is complete. Used for outbound calls only. Note: A PerCL response is expected if the outbound call is connected (status=InProgress) to control the call.",
2846
+ "format": "uri",
1560
2847
  "nullable": true
1561
2848
  },
1562
2849
  "statusCallbackUrl": {
1563
2850
  "type": "string",
1564
2851
  "description": "The URL that FreeClimb will request to pass call status (such as call ended) to the application. Note: This is a notification only; any PerCL returned will be ignored.",
2852
+ "format": "uri",
1565
2853
  "nullable": true
1566
2854
  },
1567
2855
  "smsUrl": {
1568
2856
  "type": "string",
1569
2857
  "description": "The URL that FreeClimb will request when a phone number assigned to this application receives an incoming SMS message. Used for inbound SMS only. Note: Any PerCL returned will be ignored.",
2858
+ "format": "uri",
1570
2859
  "nullable": true
1571
2860
  },
1572
2861
  "smsFallbackUrl": {
1573
2862
  "type": "string",
1574
2863
  "description": "The URL that FreeClimb will request if it times out waiting for a response from the smsUrl. Used for inbound SMS only. Note: Any PerCL returned will be ignored.",
2864
+ "format": "uri",
1575
2865
  "nullable": true
1576
2866
  }
1577
2867
  }
1578
2868
  },
1579
2869
  "ApplicationList": {
1580
- "x-implements": "Pagination",
1581
2870
  "allOf": [
1582
2871
  {
1583
2872
  "$ref": "#/components/schemas/PaginationModel"
@@ -1590,8 +2879,7 @@
1590
2879
  "items": {
1591
2880
  "$ref": "#/components/schemas/ApplicationResult"
1592
2881
  },
1593
- "nullable": true,
1594
- "x-is-list": true
2882
+ "nullable": true
1595
2883
  }
1596
2884
  }
1597
2885
  }
@@ -1638,7 +2926,6 @@
1638
2926
  }
1639
2927
  },
1640
2928
  "AvailableNumberList": {
1641
- "x-implements": "Pagination",
1642
2929
  "allOf": [
1643
2930
  {
1644
2931
  "$ref": "#/components/schemas/PaginationModel"
@@ -1651,8 +2938,7 @@
1651
2938
  "items": {
1652
2939
  "$ref": "#/components/schemas/AvailableNumber"
1653
2940
  },
1654
- "nullable": true,
1655
- "x-is-list": true
2941
+ "nullable": true
1656
2942
  }
1657
2943
  }
1658
2944
  }
@@ -1753,7 +3039,6 @@
1753
3039
  }
1754
3040
  },
1755
3041
  "IncomingNumberList": {
1756
- "x-implements": "Pagination",
1757
3042
  "allOf": [
1758
3043
  {
1759
3044
  "$ref": "#/components/schemas/PaginationModel"
@@ -1766,8 +3051,7 @@
1766
3051
  "items": {
1767
3052
  "$ref": "#/components/schemas/IncomingNumberResult"
1768
3053
  },
1769
- "nullable": true,
1770
- "x-is-list": true
3054
+ "nullable": true
1771
3055
  }
1772
3056
  }
1773
3057
  }
@@ -1912,7 +3196,8 @@
1912
3196
  },
1913
3197
  "ifMachineUrl": {
1914
3198
  "type": "string",
1915
- "description": "This attribute specifies a URL to which FreeClimb will make a POST request when an answering machine or a fax machine is detected. This URL is required if the ifMachine flag is set to redirect. When ifMachine is set to hangup, ifMachineUrl must not be included in the request. For more information, see **ifMachineUrl example** below."
3199
+ "description": "This attribute specifies a URL to which FreeClimb will make a POST request when an answering machine or a fax machine is detected. This URL is required if the ifMachine flag is set to redirect. When ifMachine is set to hangup, ifMachineUrl must not be included in the request. For more information, see **ifMachineUrl example** below.",
3200
+ "format": "uri"
1916
3201
  },
1917
3202
  "timeout": {
1918
3203
  "type": "integer",
@@ -1930,12 +3215,12 @@
1930
3215
  },
1931
3216
  "callConnectUrl": {
1932
3217
  "type": "string",
1933
- "description": "The URL that FreeClimb should use to handle this phone call. If an applicationId or parentCallId have already been provided, this callConnectUrl attribute will be used as a replacement of the callConnectUrl originally assigned in the application or parent call."
3218
+ "description": "The URL that FreeClimb should use to handle this phone call. If an applicationId or parentCallId have already been provided, this callConnectUrl attribute will be used as a replacement of the callConnectUrl originally assigned in the application or parent call.",
3219
+ "format": "uri"
1934
3220
  }
1935
3221
  }
1936
3222
  },
1937
3223
  "CallList": {
1938
- "x-implements": "Pagination",
1939
3224
  "allOf": [
1940
3225
  {
1941
3226
  "$ref": "#/components/schemas/PaginationModel"
@@ -1948,8 +3233,7 @@
1948
3233
  "items": {
1949
3234
  "$ref": "#/components/schemas/CallResult"
1950
3235
  },
1951
- "nullable": true,
1952
- "x-is-list": true
3236
+ "nullable": true
1953
3237
  }
1954
3238
  }
1955
3239
  }
@@ -1993,7 +3277,6 @@
1993
3277
  ]
1994
3278
  },
1995
3279
  "RecordingList": {
1996
- "x-implements": "Pagination",
1997
3280
  "allOf": [
1998
3281
  {
1999
3282
  "$ref": "#/components/schemas/PaginationModel"
@@ -2006,8 +3289,7 @@
2006
3289
  "items": {
2007
3290
  "$ref": "#/components/schemas/RecordingResult"
2008
3291
  },
2009
- "nullable": true,
2010
- "x-is-list": true
3292
+ "nullable": true
2011
3293
  }
2012
3294
  }
2013
3295
  }
@@ -2052,7 +3334,6 @@
2052
3334
  }
2053
3335
  },
2054
3336
  "LogList": {
2055
- "x-implements": "Pagination",
2056
3337
  "allOf": [
2057
3338
  {
2058
3339
  "$ref": "#/components/schemas/PaginationModel"
@@ -2065,8 +3346,7 @@
2065
3346
  "items": {
2066
3347
  "$ref": "#/components/schemas/LogResult"
2067
3348
  },
2068
- "nullable": true,
2069
- "x-is-list": true
3349
+ "nullable": true
2070
3350
  }
2071
3351
  }
2072
3352
  }
@@ -2110,16 +3390,19 @@
2110
3390
  "waitUrl": {
2111
3391
  "type": "string",
2112
3392
  "description": "URL referencing the audio file to be used as default wait music for the Conference when it is in the populated state.",
3393
+ "format": "uri",
2113
3394
  "nullable": true
2114
3395
  },
2115
3396
  "actionUrl": {
2116
3397
  "type": "string",
2117
3398
  "description": "URL invoked once the Conference is successfully created.",
3399
+ "format": "uri",
2118
3400
  "nullable": true
2119
3401
  },
2120
3402
  "statusCallbackUrl": {
2121
3403
  "type": "string",
2122
3404
  "description": "URL to inform that the Conference status has changed.",
3405
+ "format": "uri",
2123
3406
  "nullable": true
2124
3407
  },
2125
3408
  "subresourceUris": {
@@ -2132,7 +3415,6 @@
2132
3415
  ]
2133
3416
  },
2134
3417
  "MessagesList": {
2135
- "x-implements": "Pagination",
2136
3418
  "allOf": [
2137
3419
  {
2138
3420
  "$ref": "#/components/schemas/PaginationModel"
@@ -2146,8 +3428,7 @@
2146
3428
  "items": {
2147
3429
  "$ref": "#/components/schemas/MessageResult"
2148
3430
  },
2149
- "nullable": true,
2150
- "x-is-list": true
3431
+ "nullable": true
2151
3432
  }
2152
3433
  }
2153
3434
  }
@@ -2176,12 +3457,12 @@
2176
3457
  },
2177
3458
  "notificationUrl": {
2178
3459
  "type": "string",
2179
- "description": "When the Message changes status, this URL is invoked using HTTP POST with the messageStatus parameters. **Note:** This is a notification only; any PerCL returned is ignored."
3460
+ "description": "When the Message changes status, this URL is invoked using HTTP POST with the messageStatus parameters. **Note:** This is a notification only; any PerCL returned is ignored.",
3461
+ "format": "uri"
2180
3462
  },
2181
3463
  "mediaUrls": {
2182
3464
  "type": "array",
2183
3465
  "description": "an array of HTTP URLs which are to be used as attachments to the message. This will force the message into being an MMS message and must be done using a from number which is MMS capabile.",
2184
- "x-is-list": true,
2185
3466
  "items": {
2186
3467
  "type": "string",
2187
3468
  "format": "uri"
@@ -2206,26 +3487,17 @@
2206
3487
  "CompletionResult": {
2207
3488
  "type": "object",
2208
3489
  "required": ["response", "status"],
2209
- "x-completion-result": true,
2210
3490
  "properties": {
2211
3491
  "response": {
2212
3492
  "type": "string",
2213
3493
  "description": "The generative response from the KnowledgeBase"
2214
3494
  },
2215
3495
  "status": {
2216
- "type": "string",
2217
- "x-has-writer": true,
2218
- "description": "Completion result status. Possible values: success, no_context",
2219
- "x-enum-type": "CompletionResultStatusEnum",
2220
- "x-enum-type-c-sharp": "StatusEnum",
2221
- "enum": ["success", "no_context"],
2222
- "x-enum-varnames": ["SUCCESS", "NO_CONTEXT"],
2223
- "x-enum-varnames-values": ["success", "no_context"]
3496
+ "$ref": "#/components/schemas/CompletionResultStatus"
2224
3497
  }
2225
3498
  }
2226
3499
  },
2227
3500
  "ConferenceList": {
2228
- "x-implements": "Pagination",
2229
3501
  "allOf": [
2230
3502
  {
2231
3503
  "$ref": "#/components/schemas/PaginationModel"
@@ -2238,8 +3510,7 @@
2238
3510
  "items": {
2239
3511
  "$ref": "#/components/schemas/ConferenceResult"
2240
3512
  },
2241
- "nullable": true,
2242
- "x-is-list": true
3513
+ "nullable": true
2243
3514
  }
2244
3515
  }
2245
3516
  }
@@ -2289,6 +3560,7 @@
2289
3560
  "notificationUrl": {
2290
3561
  "type": "string",
2291
3562
  "description": "URL invoked when message sent",
3563
+ "format": "uri",
2292
3564
  "nullable": true
2293
3565
  },
2294
3566
  "brandId": {
@@ -2309,17 +3581,81 @@
2309
3581
  "mediaUrls": {
2310
3582
  "type": "array",
2311
3583
  "description": "an array of HTTP URLs which were attached this this message",
2312
- "x-is-list": true,
2313
3584
  "items": {
2314
3585
  "type": "string",
2315
3586
  "format": "uri"
2316
3587
  },
2317
3588
  "nullable": true
3589
+ },
3590
+ "tfn": {
3591
+ "$ref": "#/components/schemas/TFN",
3592
+ "nullable": true
3593
+ },
3594
+ "phoneNumberId": {
3595
+ "type": "string",
3596
+ "description": "String that uniquely identifies the phoneNumber resource used to send this Message",
3597
+ "nullable": true
3598
+ },
3599
+ "applicationId": {
3600
+ "type": "string",
3601
+ "description": "String that uniquely identifies the Application resource used to send this Message",
3602
+ "nullable": true
2318
3603
  }
2319
3604
  }
2320
3605
  }
2321
3606
  ]
2322
3607
  },
3608
+ "TFNCampaign": {
3609
+ "type": "object",
3610
+ "required": [
3611
+ "accountId",
3612
+ "campaignId",
3613
+ "useCase",
3614
+ "registrationStatus",
3615
+ "dateCreated",
3616
+ "dateUpdated",
3617
+ "dateCreatedISO",
3618
+ "dateUpdatedISO",
3619
+ "revision"
3620
+ ],
3621
+ "properties": {
3622
+ "accountId": {
3623
+ "type": "string",
3624
+ "description": "ID of the account that created this participant.",
3625
+ "nullable": true
3626
+ },
3627
+ "campaignId": {
3628
+ "$ref": "#/components/schemas/TFNCampaignId"
3629
+ },
3630
+ "useCase": {
3631
+ "type": "string"
3632
+ },
3633
+ "registrationStatus": {
3634
+ "$ref": "#/components/schemas/SMSTollFreeCampaignRegistrationStatus"
3635
+ },
3636
+ "dateCreated": {
3637
+ "type": "string"
3638
+ },
3639
+ "dateUpdated": {
3640
+ "type": "string"
3641
+ },
3642
+ "dateCreatedISO": {
3643
+ "type": "string"
3644
+ },
3645
+ "dateUpdatedISO": {
3646
+ "type": "string"
3647
+ },
3648
+ "revision": {
3649
+ "type": "integer"
3650
+ }
3651
+ }
3652
+ },
3653
+ "TFNCampaignId": {
3654
+ "type": "string",
3655
+ "description": "TFNCampaignId",
3656
+ "pattern": "cmptfn_[a-fA-F0-9]{40}",
3657
+ "example": "cmptfn_387ec3f6e03b340553f35f29c8f118cdf3eae08a"
3658
+ },
2323
3659
  "CreateConferenceRequest": {
2324
3660
  "type": "object",
2325
3661
  "properties": {
@@ -2336,11 +3672,13 @@
2336
3672
  },
2337
3673
  "waitUrl": {
2338
3674
  "type": "string",
2339
- "description": "If specified, a URL for the audio file that provides custom hold music for the Conference when it is in the populated state. Otherwise, FreeClimb uses a system default audio file. This is always fetched using HTTP GET and is fetched just once &mdash; when the Conference is created."
3675
+ "description": "If specified, a URL for the audio file that provides custom hold music for the Conference when it is in the populated state. Otherwise, FreeClimb uses a system default audio file. This is always fetched using HTTP GET and is fetched just once &mdash; when the Conference is created.",
3676
+ "format": "uri"
2340
3677
  },
2341
3678
  "statusCallbackUrl": {
2342
3679
  "type": "string",
2343
- "description": "This URL is invoked when the status of the Conference changes. For more information, see **statusCallbackUrl** (below)."
3680
+ "description": "This URL is invoked when the status of the Conference changes. For more information, see **statusCallbackUrl** (below).",
3681
+ "format": "uri"
2344
3682
  }
2345
3683
  }
2346
3684
  },
@@ -2424,7 +3762,6 @@
2424
3762
  }
2425
3763
  },
2426
3764
  "ConferenceParticipantList": {
2427
- "x-implements": "Pagination",
2428
3765
  "allOf": [
2429
3766
  {
2430
3767
  "$ref": "#/components/schemas/PaginationModel"
@@ -2437,8 +3774,7 @@
2437
3774
  "items": {
2438
3775
  "$ref": "#/components/schemas/ConferenceParticipantResult"
2439
3776
  },
2440
- "nullable": true,
2441
- "x-is-list": true
3777
+ "nullable": true
2442
3778
  }
2443
3779
  }
2444
3780
  }
@@ -2507,7 +3843,6 @@
2507
3843
  }
2508
3844
  },
2509
3845
  "QueueList": {
2510
- "x-implements": "Pagination",
2511
3846
  "allOf": [
2512
3847
  {
2513
3848
  "$ref": "#/components/schemas/PaginationModel"
@@ -2520,8 +3855,7 @@
2520
3855
  "items": {
2521
3856
  "$ref": "#/components/schemas/QueueResult"
2522
3857
  },
2523
- "nullable": true,
2524
- "x-is-list": true
3858
+ "nullable": true
2525
3859
  }
2526
3860
  }
2527
3861
  }
@@ -2558,7 +3892,6 @@
2558
3892
  }
2559
3893
  },
2560
3894
  "QueueMemberList": {
2561
- "x-implements": "Pagination",
2562
3895
  "allOf": [
2563
3896
  {
2564
3897
  "$ref": "#/components/schemas/PaginationModel"
@@ -2571,8 +3904,7 @@
2571
3904
  "items": {
2572
3905
  "$ref": "#/components/schemas/QueueMember"
2573
3906
  },
2574
- "nullable": true,
2575
- "x-is-list": true
3907
+ "nullable": true
2576
3908
  }
2577
3909
  }
2578
3910
  }
@@ -2589,7 +3921,6 @@
2589
3921
  }
2590
3922
  },
2591
3923
  "SMSTenDLCCampaignsListResult": {
2592
- "x-implements": "Pagination",
2593
3924
  "allOf": [
2594
3925
  {
2595
3926
  "$ref": "#/components/schemas/PaginationModel"
@@ -2602,8 +3933,7 @@
2602
3933
  "items": {
2603
3934
  "$ref": "#/components/schemas/SMSTenDLCCampaign"
2604
3935
  },
2605
- "nullable": true,
2606
- "x-is-list": true
3936
+ "nullable": true
2607
3937
  }
2608
3938
  }
2609
3939
  }
@@ -2641,19 +3971,12 @@
2641
3971
  "description": "Alphanumeric identifier of the reseller that you want to associate with this campaign."
2642
3972
  },
2643
3973
  "status": {
2644
- "type": "string",
2645
- "x-has-writer": true,
2646
- "description": "Current campaign status. Possible values: ACTIVE, EXPIRED. A newly created campaign defaults to ACTIVE status. ",
2647
- "x-enum-type": "SMSTenDLCCampaignStatusEnum",
2648
- "x-enum-type-c-sharp": "StatusEnum",
2649
- "enum": ["ACTIVE", "EXPIRED"],
2650
- "x-enum-varnames": ["ACTIVE", "EXPIRED"]
3974
+ "$ref": "#/components/schemas/SMSTenDLCCampaignStatus"
2651
3975
  },
2652
3976
  "createDate": {
2653
3977
  "type": "string",
2654
3978
  "description": "Unix timestamp when campaign was created.",
2655
- "format": "date-time",
2656
- "x-is-date-time": true
3979
+ "format": "date-time"
2657
3980
  },
2658
3981
  "autoRenewal": {
2659
3982
  "type": "boolean",
@@ -2663,7 +3986,6 @@
2663
3986
  "type": "string",
2664
3987
  "description": "Campaign recent billed date.",
2665
3988
  "format": "date-time",
2666
- "x-is-date-time": true,
2667
3989
  "nullable": true
2668
3990
  },
2669
3991
  "brandId": {
@@ -2678,7 +4000,6 @@
2678
4000
  },
2679
4001
  "subUsecases": {
2680
4002
  "uniqueItems": true,
2681
- "x-is-set": true,
2682
4003
  "type": "array",
2683
4004
  "description": "Campaign sub-usecases. Must be of defined valid sub-usecase types. Use `/registry/enum/usecase` operation to retrieve list of valid sub-usecases",
2684
4005
  "items": {
@@ -2813,7 +4134,6 @@
2813
4134
  "nullable": true,
2814
4135
  "description": "When the campaign would be due for its next renew/bill date.",
2815
4136
  "format": "date",
2816
- "x-is-date": true,
2817
4137
  "example": "2000-01-01"
2818
4138
  }
2819
4139
  },
@@ -2852,7 +4172,6 @@
2852
4172
  }
2853
4173
  },
2854
4174
  "SMSTenDLCPartnerCampaignsListResult": {
2855
- "x-implements": "Pagination",
2856
4175
  "allOf": [
2857
4176
  {
2858
4177
  "$ref": "#/components/schemas/PaginationModel"
@@ -2865,8 +4184,7 @@
2865
4184
  "items": {
2866
4185
  "$ref": "#/components/schemas/SMSTenDLCPartnerCampaign"
2867
4186
  },
2868
- "nullable": true,
2869
- "x-is-list": true
4187
+ "nullable": true
2870
4188
  }
2871
4189
  }
2872
4190
  }
@@ -2886,19 +4204,12 @@
2886
4204
  "description": "Alphanumeric identifier assigned by the registry for a campaign. This identifier is required by the NetNumber OSR SMS enabling process of 10DLC."
2887
4205
  },
2888
4206
  "status": {
2889
- "type": "string",
2890
- "x-has-writer": true,
2891
- "description": "Current campaign status. Possible values: ACTIVE, EXPIRED. A newly created campaign defaults to ACTIVE status. ",
2892
- "x-enum-type": "SMSTenDLCPartnerCampaignStatusEnum",
2893
- "x-enum-type-c-sharp": "StatusEnum",
2894
- "enum": ["ACTIVE", "EXPIRED"],
2895
- "x-enum-varnames": ["ACTIVE", "EXPIRED"]
4207
+ "$ref": "#/components/schemas/SMSTenDLCPartnerCampaignStatus"
2896
4208
  },
2897
4209
  "createDate": {
2898
4210
  "type": "string",
2899
4211
  "description": "Unix timestamp when campaign was created.",
2900
- "format": "date-time",
2901
- "x-is-date-time": true
4212
+ "format": "date-time"
2902
4213
  },
2903
4214
  "brandId": {
2904
4215
  "maxLength": 8,
@@ -3023,8 +4334,7 @@
3023
4334
  "description": "Subscriber opt-out message."
3024
4335
  },
3025
4336
  "brand": {
3026
- "$ref": "#/components/schemas/SMSTenDLCPartnerCampaignBrand",
3027
- "x-partner-campaign-brand": true
4337
+ "$ref": "#/components/schemas/SMSTenDLCPartnerCampaignBrand"
3028
4338
  }
3029
4339
  },
3030
4340
  "example": {
@@ -3073,20 +4383,6 @@
3073
4383
  "SMSTenDLCPartnerCampaignBrand": {
3074
4384
  "required": ["email", "phone"],
3075
4385
  "type": "object",
3076
- "x-is-object": true,
3077
- "x-sms-ten-dlc-partner-campaign-brand": true,
3078
- "x-ref-properties": [
3079
- "\"TEST_STRING\"",
3080
- "\"TEST_STRING\"",
3081
- "\"TEST_STRING\"",
3082
- "\"TEST_STRING\"",
3083
- "\"TEST_STRING\"",
3084
- "\"TEST_STRING\"",
3085
- "\"TEST_STRING\"",
3086
- "\"TEST_STRING\"",
3087
- "new Dictionary<string, object>()",
3088
- "1"
3089
- ],
3090
4386
  "properties": {
3091
4387
  "accountId": {
3092
4388
  "type": "string",
@@ -3140,14 +4436,7 @@
3140
4436
  "example": "http://www.abcmobile.com"
3141
4437
  },
3142
4438
  "optionalAttributes": {
3143
- "x-is-map": true,
3144
- "type": "object",
3145
- "x-is-hash": true,
3146
- "additionalProperties": {
3147
- "type": "object",
3148
- "description": "Optional brand attributes. Please refer to GET /enum/optionalAttributeNames for dictionary of optional attribute names."
3149
- },
3150
- "description": "Optional brand attributes. Please refer to GET /enum/optionalAttributeNames for dictionary of optional attribute names."
4439
+ "$ref": "#/components/schemas/SMSTenDLCOptionalAttributes"
3151
4440
  },
3152
4441
  "evpVettingScore": {
3153
4442
  "type": "integer",
@@ -3156,7 +4445,6 @@
3156
4445
  }
3157
4446
  },
3158
4447
  "SMSTenDLCBrandsListResult": {
3159
- "x-implements": "Pagination",
3160
4448
  "allOf": [
3161
4449
  {
3162
4450
  "$ref": "#/components/schemas/PaginationModel"
@@ -3169,8 +4457,7 @@
3169
4457
  "items": {
3170
4458
  "$ref": "#/components/schemas/SMSTenDLCBrand"
3171
4459
  },
3172
- "nullable": true,
3173
- "x-is-list": true
4460
+ "nullable": true
3174
4461
  }
3175
4462
  }
3176
4463
  }
@@ -3189,7 +4476,6 @@
3189
4476
  "vertical"
3190
4477
  ],
3191
4478
  "type": "object",
3192
- "x-sms-ten-dlc-brand": true,
3193
4479
  "properties": {
3194
4480
  "accountId": {
3195
4481
  "type": "string",
@@ -3197,26 +4483,7 @@
3197
4483
  "nullable": true
3198
4484
  },
3199
4485
  "entityType": {
3200
- "maxLength": 20,
3201
- "type": "string",
3202
- "x-has-writer": true,
3203
- "description": "Entity type behind the brand. This is the form of business establishment.",
3204
- "x-enum-type": "SMSTenDLCBrandEntityTypeEnum",
3205
- "x-enum-type-c-sharp": "EntityTypeEnum",
3206
- "enum": [
3207
- "PRIVATE_PROFIT",
3208
- "PUBLIC_PROFIT",
3209
- "NON_PROFIT",
3210
- "GOVERNMENT",
3211
- "SOLE_PROPRIETOR"
3212
- ],
3213
- "x-enum-varnames": [
3214
- "PRIVATE_PROFIT",
3215
- "PUBLIC_PROFIT",
3216
- "NON_PROFIT",
3217
- "GOVERNMENT",
3218
- "SOLE_PROPRIETOR"
3219
- ]
4486
+ "$ref": "#/components/schemas/SMSTenDLCBrandEntityType"
3220
4487
  },
3221
4488
  "cspId": {
3222
4489
  "type": "string",
@@ -3312,70 +4579,7 @@
3312
4579
  "example": "ABC"
3313
4580
  },
3314
4581
  "stockExchange": {
3315
- "type": "string",
3316
- "x-has-writer": true,
3317
- "description": "(Required for public company) stock exchange.",
3318
- "example": "NASDAQ",
3319
- "x-enum-type": "SMSTenDLCBrandStockExchangeEnum",
3320
- "x-enum-type-c-sharp": "StockExchangeEnum",
3321
- "enum": [
3322
- "NONE",
3323
- "NASDAQ",
3324
- "NYSE",
3325
- "AMEX",
3326
- "AMX",
3327
- "ASX",
3328
- "B3",
3329
- "BME",
3330
- "BSE",
3331
- "FRA",
3332
- "ICEX",
3333
- "JPX",
3334
- "JSE",
3335
- "KRX",
3336
- "LON",
3337
- "NSE",
3338
- "OMX",
3339
- "SEHK",
3340
- "SGX",
3341
- "SSE",
3342
- "STO",
3343
- "SWX",
3344
- "SZSE",
3345
- "TSX",
3346
- "TWSE",
3347
- "VSE",
3348
- "OTHER"
3349
- ],
3350
- "x-enum-varnames": [
3351
- "NONE",
3352
- "NASDAQ",
3353
- "NYSE",
3354
- "AMEX",
3355
- "AMX",
3356
- "ASX",
3357
- "B3",
3358
- "BME",
3359
- "BSE",
3360
- "FRA",
3361
- "ICEX",
3362
- "JPX",
3363
- "JSE",
3364
- "KRX",
3365
- "LON",
3366
- "NSE",
3367
- "OMX",
3368
- "SEHK",
3369
- "SGX",
3370
- "SSE",
3371
- "STO",
3372
- "SWX",
3373
- "SZSE",
3374
- "TSX",
3375
- "TWSE",
3376
- "VSE",
3377
- "OTHER"
3378
- ]
4582
+ "$ref": "#/components/schemas/SMSTenDLCBrandStockExchange"
3379
4583
  },
3380
4584
  "ipAddress": {
3381
4585
  "maxLength": 50,
@@ -3389,25 +4593,7 @@
3389
4593
  "example": "http://www.abcmobile.com"
3390
4594
  },
3391
4595
  "brandRelationship": {
3392
- "type": "string",
3393
- "x-has-writer": true,
3394
- "description": "Brand relationship to the CSP",
3395
- "x-enum-type": "SMSTenDLCBrandBrandRelationshipEnum",
3396
- "x-enum-type-c-sharp": "BrandRelationshipEnum",
3397
- "enum": [
3398
- "BASIC_ACCOUNT",
3399
- "SMALL_ACCOUNT",
3400
- "MEDIUM_ACCOUNT",
3401
- "LARGE_ACCOUNT",
3402
- "KEY_ACCOUNT"
3403
- ],
3404
- "x-enum-varnames": [
3405
- "BASIC_ACCOUNT",
3406
- "SMALL_ACCOUNT",
3407
- "MEDIUM_ACCOUNT",
3408
- "LARGE_ACCOUNT",
3409
- "KEY_ACCOUNT"
3410
- ]
4596
+ "$ref": "#/components/schemas/SMSTenDLCBrandRelationship"
3411
4597
  },
3412
4598
  "vertical": {
3413
4599
  "maxLength": 50,
@@ -3420,13 +4606,7 @@
3420
4606
  "description": "Alternate business identifier such as DUNS, LEI, or GIIN"
3421
4607
  },
3422
4608
  "altBusinessIdType": {
3423
- "type": "string",
3424
- "x-has-writer": true,
3425
- "x-enum-type": "SMSTenDLCBrandAltBusinessIdTypeEnum",
3426
- "x-enum-type-c-sharp": "AltBusinessIdTypeEnum",
3427
- "enum": ["NONE", "DUNS", "GIIN", "LEI"],
3428
- "x-enum-varnames": ["NONE", "DUNS", "GIIN", "LEI"],
3429
- "description": "The type of the Alternative business identifier"
4609
+ "$ref": "#/components/schemas/SMSTenDLCBrandAltBusinessIdType"
3430
4610
  },
3431
4611
  "universalEin": {
3432
4612
  "type": "string",
@@ -3439,43 +4619,19 @@
3439
4619
  "description": "Caller supplied brand reference ID. If supplied, the value must be unique across all submitted brands. Can be used to prevent duplicate brand registrations."
3440
4620
  },
3441
4621
  "optionalAttributes": {
3442
- "x-is-map": true,
3443
- "type": "object",
3444
- "x-is-hash": true,
3445
- "additionalProperties": {
3446
- "type": "object",
3447
- "description": "Optional brand attributes. Please refer to GET /enum/optionalAttributeNames for dictionary of optional attribute names."
3448
- },
3449
- "description": "Optional brand attributes. Please refer to GET /enum/optionalAttributeNames for dictionary of optional attribute names."
4622
+ "$ref": "#/components/schemas/SMSTenDLCOptionalAttributes"
3450
4623
  },
3451
4624
  "mock": {
3452
4625
  "type": "boolean",
3453
4626
  "description": "Test brand."
3454
4627
  },
3455
4628
  "identityStatus": {
3456
- "type": "string",
3457
- "x-has-writer": true,
3458
- "description": "TCR assessment of the brand identification status.",
3459
- "x-enum-type": "SMSTenDLCBrandIdentityStatusEnum",
3460
- "x-enum-type-c-sharp": "IdentityStatusEnum",
3461
- "enum": [
3462
- "SELF_DECLARED",
3463
- "UNVERIFIED",
3464
- "VERIFIED",
3465
- "VETTED_VERIFIED"
3466
- ],
3467
- "x-enum-varnames": [
3468
- "SELF_DECLARED",
3469
- "UNVERIFIED",
3470
- "VERIFIED",
3471
- "VETTED_VERIFIED"
3472
- ]
4629
+ "$ref": "#/components/schemas/SMSTenDLCBrandIdentityStatus"
3473
4630
  },
3474
4631
  "createDate": {
3475
4632
  "type": "string",
3476
4633
  "description": "Unix timestamp when brand was created.",
3477
- "format": "date-time",
3478
- "x-is-date-time": true
4634
+ "format": "date-time"
3479
4635
  }
3480
4636
  },
3481
4637
  "description": "A brand is a business identity behind the campaign.",
@@ -3512,7 +4668,6 @@
3512
4668
  }
3513
4669
  },
3514
4670
  "SMSTollFreeCampaignsListResult": {
3515
- "x-implements": "Pagination",
3516
4671
  "allOf": [
3517
4672
  {
3518
4673
  "$ref": "#/components/schemas/PaginationModel"
@@ -3525,8 +4680,7 @@
3525
4680
  "items": {
3526
4681
  "$ref": "#/components/schemas/SMSTollFreeCampaign"
3527
4682
  },
3528
- "nullable": true,
3529
- "x-is-list": true
4683
+ "nullable": true
3530
4684
  }
3531
4685
  }
3532
4686
  }
@@ -3543,7 +4697,6 @@
3543
4697
  "dateUpdated",
3544
4698
  "revision"
3545
4699
  ],
3546
- "x-sms-toll-free-campaign": true,
3547
4700
  "properties": {
3548
4701
  "accountId": {
3549
4702
  "type": "string",
@@ -3558,25 +4711,7 @@
3558
4711
  "type": "string"
3559
4712
  },
3560
4713
  "registrationStatus": {
3561
- "type": "string",
3562
- "x-has-writer": true,
3563
- "description": "Current toll-free campaign registration status.Possible values: UNREGISTERED,INITIATED,PENDING,DECLINED,REGISTERED. A newly created campaign defaults to INITIATED status. ",
3564
- "x-enum-type": "SMSTollFreeCampaignRegistrationStatusEnum",
3565
- "x-enum-type-c-sharp": "RegistrationStatusEnum",
3566
- "enum": [
3567
- "UNREGISTERED",
3568
- "INITIATED",
3569
- "PENDING",
3570
- "DECLINED",
3571
- "REGISTERED"
3572
- ],
3573
- "x-enum-varnames": [
3574
- "UNREGISTERED",
3575
- "INITIATED",
3576
- "PENDING",
3577
- "DECLINED",
3578
- "REGISTERED"
3579
- ]
4714
+ "$ref": "#/components/schemas/SMSTollFreeCampaignRegistrationStatus"
3580
4715
  },
3581
4716
  "dateCreated": {
3582
4717
  "type": "string"
@@ -3589,22 +4724,32 @@
3589
4724
  }
3590
4725
  }
3591
4726
  },
4727
+ "TranscribeUtteranceRecord": {
4728
+ "type": "object",
4729
+ "properties": {
4730
+ "saveRecording": {
4731
+ "type": "boolean",
4732
+ "default": false
4733
+ },
4734
+ "maxLengthSec": {
4735
+ "type": "integer",
4736
+ "minimum": 1,
4737
+ "maximum": 60,
4738
+ "default": 60
4739
+ },
4740
+ "rcrdTerminationSilenceTimeMs": {
4741
+ "type": "integer",
4742
+ "minimum": 1,
4743
+ "maximum": 3000
4744
+ }
4745
+ }
4746
+ },
3592
4747
  "TranscribeUtterance": {
3593
4748
  "title": "TranscribeUtterance",
3594
4749
  "x-stoplight": {
3595
4750
  "id": "u509r3zqc38ze"
3596
4751
  },
3597
4752
  "description": "The `TranscribeUtterance` command transcribes the caller’s voice and returns transcription of the audio and optionally returns the recording of the audio transcribed.\n\n`TranscribeUtterance` is blocking and is a terminal command. As such, the actionUrl property is required, and control of the Call picks up using the `PerCL` returned in response of the `actionUrl`. Recording and Transcription information is returned in the actionUrl request. If the reason this command ended was due to the call hanging up, any PerCL returned will not execute.",
3598
- "x-percl-command": true,
3599
- "x-ref-properties": [
3600
- "\"TEST_STRING\"",
3601
- "false",
3602
- "new TranscribeUtteranceAllOfRecord()",
3603
- "false",
3604
- "false",
3605
- "new List<Object>()",
3606
- "\"TEST_STRING\""
3607
- ],
3608
4753
  "allOf": [
3609
4754
  {
3610
4755
  "$ref": "#/components/schemas/PerclCommand"
@@ -3615,33 +4760,15 @@
3615
4760
  "description": "The `TranscribeUtterance` command transcribes the caller’s voice and returns transcription of the audio and optionally returns the recording of the audio transcribed.\n\n`TranscribeUtterance` is blocking and is a terminal command. As such, the actionUrl property is required, and control of the Call picks up using the `PerCL` returned in response of the `actionUrl`. Recording and Transcription information is returned in the actionUrl request. If the reason this command ended was due to the call hanging up, any PerCL returned will not execute.",
3616
4761
  "properties": {
3617
4762
  "actionUrl": {
3618
- "type": "string"
4763
+ "type": "string",
4764
+ "format": "uri"
3619
4765
  },
3620
4766
  "playBeep": {
3621
4767
  "type": "boolean",
3622
4768
  "default": false
3623
4769
  },
3624
4770
  "record": {
3625
- "type": "object",
3626
- "x-is-object": true,
3627
- "properties": {
3628
- "saveRecording": {
3629
- "type": "boolean",
3630
- "default": false
3631
- },
3632
- "maxLengthSec": {
3633
- "type": "integer",
3634
- "minimum": 1,
3635
- "maximum": 60,
3636
- "default": 60
3637
- },
3638
- "rcrdTerminationSilenceTimeMs": {
3639
- "type": "integer",
3640
- "exclusiveMinimum": true,
3641
- "minimum": 0,
3642
- "maximum": 3000
3643
- }
3644
- }
4771
+ "$ref": "#/components/schemas/TranscribeUtteranceRecord"
3645
4772
  },
3646
4773
  "privacyForLogging": {
3647
4774
  "type": "boolean",
@@ -3653,8 +4780,9 @@
3653
4780
  },
3654
4781
  "prompts": {
3655
4782
  "type": "array",
3656
- "x-is-list": true,
3657
- "items": {}
4783
+ "items": {
4784
+ "$ref": "#/components/schemas/PerclCommand"
4785
+ }
3658
4786
  }
3659
4787
  }
3660
4788
  }
@@ -3683,7 +4811,6 @@
3683
4811
  "CreateWebRTCToken": {
3684
4812
  "type": "object",
3685
4813
  "required": ["to", "from", "uses"],
3686
- "x-web-rtc": true,
3687
4814
  "additionalProperties": false,
3688
4815
  "properties": {
3689
4816
  "to": {
@@ -3865,7 +4992,6 @@
3865
4992
  "tags": [],
3866
4993
  "summary": "List applications",
3867
4994
  "operationId": "list-applications",
3868
- "x-is-paginated": true,
3869
4995
  "parameters": [
3870
4996
  {
3871
4997
  "name": "alias",
@@ -3933,7 +5059,6 @@
3933
5059
  "tags": [],
3934
5060
  "summary": "List available numbers",
3935
5061
  "operationId": "list-available-numbers",
3936
- "x-is-paginated": true,
3937
5062
  "parameters": [
3938
5063
  {
3939
5064
  "name": "phoneNumber",
@@ -4119,7 +5244,6 @@
4119
5244
  "tags": [],
4120
5245
  "summary": "List Incoming Numbers",
4121
5246
  "operationId": "list-incoming-numbers",
4122
- "x-is-paginated": true,
4123
5247
  "parameters": [
4124
5248
  {
4125
5249
  "$ref": "#/components/parameters/AccountId"
@@ -4445,7 +5569,6 @@
4445
5569
  "tags": [],
4446
5570
  "summary": "List Calls",
4447
5571
  "operationId": "list-calls",
4448
- "x-is-paginated": true,
4449
5572
  "parameters": [
4450
5573
  {
4451
5574
  "name": "active",
@@ -4550,7 +5673,6 @@
4550
5673
  "tags": [],
4551
5674
  "summary": "List Call Recordings",
4552
5675
  "operationId": "list-call-recordings",
4553
- "x-is-paginated": true,
4554
5676
  "parameters": [
4555
5677
  {
4556
5678
  "name": "dateCreated",
@@ -4594,7 +5716,6 @@
4594
5716
  "tags": [],
4595
5717
  "summary": "List Call Logs",
4596
5718
  "operationId": "list-call-logs",
4597
- "x-is-paginated": true,
4598
5719
  "parameters": [
4599
5720
  {
4600
5721
  "$ref": "#/components/parameters/AccountId"
@@ -4628,7 +5749,6 @@
4628
5749
  "post": {
4629
5750
  "summary": "Make a JWT for WebRTC calling",
4630
5751
  "operationId": "make-a-webrtc-jwt",
4631
- "x-web-rtc": true,
4632
5752
  "parameters": [
4633
5753
  {
4634
5754
  "$ref": "#/components/parameters/AccountId"
@@ -4698,7 +5818,6 @@
4698
5818
  "tags": [],
4699
5819
  "summary": "List Conferences",
4700
5820
  "operationId": "list-conferences",
4701
- "x-is-paginated": true,
4702
5821
  "parameters": [
4703
5822
  {
4704
5823
  "name": "status",
@@ -4957,7 +6076,6 @@
4957
6076
  "tags": [],
4958
6077
  "summary": "List Participants",
4959
6078
  "operationId": "list-participants",
4960
- "x-is-paginated": true,
4961
6079
  "parameters": [
4962
6080
  {
4963
6081
  "name": "talk",
@@ -5019,7 +6137,6 @@
5019
6137
  "tags": [],
5020
6138
  "summary": "List Conference Recordings",
5021
6139
  "operationId": "list-conference-recordings",
5022
- "x-is-paginated": true,
5023
6140
  "parameters": [
5024
6141
  {
5025
6142
  "name": "callId",
@@ -5148,7 +6265,6 @@
5148
6265
  "tags": [],
5149
6266
  "summary": "List Active Queues",
5150
6267
  "operationId": "list-active-queues",
5151
- "x-is-paginated": true,
5152
6268
  "parameters": [
5153
6269
  {
5154
6270
  "name": "alias",
@@ -5282,7 +6398,6 @@
5282
6398
  "tags": [],
5283
6399
  "summary": "List Members",
5284
6400
  "operationId": "list-members",
5285
- "x-is-paginated": true,
5286
6401
  "parameters": [
5287
6402
  {
5288
6403
  "$ref": "#/components/parameters/AccountId"
@@ -5401,7 +6516,6 @@
5401
6516
  "tags": [],
5402
6517
  "summary": "List All Account Logs",
5403
6518
  "operationId": "list-all-account-logs",
5404
- "x-is-paginated": true,
5405
6519
  "parameters": [
5406
6520
  {
5407
6521
  "$ref": "#/components/parameters/AccountId"
@@ -5461,7 +6575,6 @@
5461
6575
  "tags": [],
5462
6576
  "summary": "List Recordings",
5463
6577
  "operationId": "list-recordings",
5464
- "x-is-paginated": true,
5465
6578
  "parameters": [
5466
6579
  {
5467
6580
  "name": "callId",
@@ -5643,7 +6756,6 @@
5643
6756
  "tags": [],
5644
6757
  "summary": "List SMS Messages",
5645
6758
  "operationId": "list-sms-messages",
5646
- "x-is-paginated": true,
5647
6759
  "parameters": [
5648
6760
  {
5649
6761
  "$ref": "#/components/parameters/AccountId"
@@ -5808,8 +6920,7 @@
5808
6920
  "get": {
5809
6921
  "tags": [],
5810
6922
  "summary": "Get list of SMS 10DLC Campaigns",
5811
- "operationId": "get-tenDLC-sms-Campaigns",
5812
- "x-is-paginated": true,
6923
+ "operationId": "get-tenDLC-sms-campaigns",
5813
6924
  "parameters": [
5814
6925
  {
5815
6926
  "$ref": "#/components/parameters/AccountId"
@@ -5922,7 +7033,6 @@
5922
7033
  "tags": [],
5923
7034
  "summary": "Get list of SMS 10DLC Partner Campaigns",
5924
7035
  "operationId": "get-tenDLC-sms-partnerCampaigns",
5925
- "x-is-paginated": true,
5926
7036
  "parameters": [
5927
7037
  {
5928
7038
  "$ref": "#/components/parameters/AccountId"
@@ -6044,7 +7154,6 @@
6044
7154
  "tags": [],
6045
7155
  "summary": "Get list of SMS 10DLC Brands",
6046
7156
  "operationId": "get-tenDLC-sms-brands",
6047
- "x-is-paginated": true,
6048
7157
  "parameters": [
6049
7158
  {
6050
7159
  "$ref": "#/components/parameters/AccountId"
@@ -6146,7 +7255,6 @@
6146
7255
  "tags": [],
6147
7256
  "summary": "Get list of TollFree Campaigns",
6148
7257
  "operationId": "get-tollFree-sms-campaigns",
6149
- "x-is-paginated": true,
6150
7258
  "parameters": [
6151
7259
  {
6152
7260
  "$ref": "#/components/parameters/AccountId"