sentdm 0.38.1 → 0.40.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 (281) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +1 -1
  4. data/lib/sentdm/client.rb +3 -20
  5. data/lib/sentdm/internal/voice_agents_page.rb +115 -0
  6. data/lib/sentdm/models/call_event.rb +8 -6
  7. data/lib/sentdm/models/call_event_payload.rb +29 -9
  8. data/lib/sentdm/models/channels/voice_create_params.rb +23 -11
  9. data/lib/sentdm/models/channels/voice_number.rb +23 -1
  10. data/lib/sentdm/models/channels/voice_update_params.rb +12 -1
  11. data/lib/sentdm/models/message_send_params.rb +8 -1
  12. data/lib/sentdm/models/template.rb +6 -5
  13. data/lib/sentdm/models/template_body.rb +8 -8
  14. data/lib/sentdm/models/voice/agent_create_params.rb +142 -0
  15. data/lib/sentdm/models/{calls/participant_list_params.rb → voice/agent_delete_params.rb} +3 -3
  16. data/lib/sentdm/models/voice/agent_list_params.rb +38 -0
  17. data/lib/sentdm/models/{calls/participant_remove_all_params.rb → voice/agent_retrieve_params.rb} +3 -3
  18. data/lib/sentdm/models/voice/agent_rotate_secret_params.rb +34 -0
  19. data/lib/sentdm/models/voice/agent_update_params.rb +141 -0
  20. data/lib/sentdm/models/{calls/api_response_of_list_of_call_participant.rb → voice/api_response_of_call.rb} +7 -7
  21. data/lib/sentdm/models/voice/api_response_of_call_recordings.rb +45 -0
  22. data/lib/sentdm/models/voice/api_response_of_calls_list.rb +44 -0
  23. data/lib/sentdm/models/voice/api_response_of_voice_agent.rb +51 -0
  24. data/lib/sentdm/models/voice/api_response_of_voice_agent_secret.rb +45 -0
  25. data/lib/sentdm/models/voice/api_response_of_voice_agents_list.rb +48 -0
  26. data/lib/sentdm/models/voice/api_response_of_voice_catalogue.rb +49 -0
  27. data/lib/sentdm/models/{channels → voice}/api_response_of_voice_token.rb +5 -5
  28. data/lib/sentdm/models/voice/call.rb +241 -0
  29. data/lib/sentdm/models/{calls/participant_remove_params.rb → voice/call_hangup_params.rb} +8 -8
  30. data/lib/sentdm/models/voice/call_list_params.rb +103 -0
  31. data/lib/sentdm/models/voice/call_list_recordings_params.rb +28 -0
  32. data/lib/sentdm/models/voice/call_party.rb +33 -0
  33. data/lib/sentdm/models/{calls/participant_update_params.rb → voice/call_record_params.rb} +10 -17
  34. data/lib/sentdm/models/voice/call_recording.rb +40 -0
  35. data/lib/sentdm/models/voice/call_recordings.rb +26 -0
  36. data/lib/sentdm/models/voice/call_retrieve_params.rb +28 -0
  37. data/lib/sentdm/models/voice/call_timeline_entry.rb +28 -0
  38. data/lib/sentdm/models/voice/calls/api_response_of_list_of_call_participant.rb +51 -0
  39. data/lib/sentdm/models/voice/calls/call_participant.rb +62 -0
  40. data/lib/sentdm/models/voice/calls/call_participant_target.rb +32 -0
  41. data/lib/sentdm/models/voice/calls/participant_add_params.rb +68 -0
  42. data/lib/sentdm/models/voice/calls/participant_list_params.rb +30 -0
  43. data/lib/sentdm/models/voice/calls/participant_remove_all_params.rb +30 -0
  44. data/lib/sentdm/models/voice/calls/participant_remove_params.rb +36 -0
  45. data/lib/sentdm/models/voice/calls/participant_update_params.rb +66 -0
  46. data/lib/sentdm/models/voice/calls_list.rb +28 -0
  47. data/lib/sentdm/models/voice/catalogue_list_params.rb +22 -0
  48. data/lib/sentdm/models/{channels/voice_create_token_params.rb → voice/token_create_params.rb} +4 -4
  49. data/lib/sentdm/models/voice/voice_agent.rb +138 -0
  50. data/lib/sentdm/models/voice/voice_agent_audio.rb +19 -0
  51. data/lib/sentdm/models/voice/voice_agent_audio_spec.rb +20 -0
  52. data/lib/sentdm/models/voice/voice_agent_limits.rb +31 -0
  53. data/lib/sentdm/models/voice/voice_agent_limits_spec.rb +40 -0
  54. data/lib/sentdm/models/voice/voice_agent_party.rb +25 -0
  55. data/lib/sentdm/models/voice/voice_agent_party_spec.rb +28 -0
  56. data/lib/sentdm/models/voice/voice_agent_secret.rb +27 -0
  57. data/lib/sentdm/models/voice/voice_agent_speech.rb +31 -0
  58. data/lib/sentdm/models/voice/voice_agent_speech_spec.rb +40 -0
  59. data/lib/sentdm/models/voice/voice_agent_transcripts.rb +25 -0
  60. data/lib/sentdm/models/voice/voice_agent_transcripts_spec.rb +32 -0
  61. data/lib/sentdm/models/voice/voice_agents_list.rb +30 -0
  62. data/lib/sentdm/models/voice/voice_catalogue.rb +30 -0
  63. data/lib/sentdm/models/voice/voice_catalogue_voice.rb +43 -0
  64. data/lib/sentdm/models/{channels → voice}/voice_token.rb +9 -3
  65. data/lib/sentdm/models/webhook_create_params.rb +31 -5
  66. data/lib/sentdm/models/webhook_response.rb +66 -4
  67. data/lib/sentdm/models/webhook_update_params.rb +15 -3
  68. data/lib/sentdm/models.rb +2 -30
  69. data/lib/sentdm/resources/channels/voice.rb +43 -63
  70. data/lib/sentdm/resources/channels.rb +2 -2
  71. data/lib/sentdm/resources/profiles/campaigns.rb +3 -2
  72. data/lib/sentdm/resources/voice/agents.rb +319 -0
  73. data/lib/sentdm/resources/voice/calls/participants.rb +244 -0
  74. data/lib/sentdm/resources/voice/calls.rb +269 -0
  75. data/lib/sentdm/resources/voice/catalogue.rb +71 -0
  76. data/lib/sentdm/resources/voice/tokens.rb +86 -0
  77. data/lib/sentdm/resources/voice.rb +142 -0
  78. data/lib/sentdm/resources/webhooks.rb +43 -15
  79. data/lib/sentdm/version.rb +1 -1
  80. data/lib/sentdm.rb +59 -28
  81. data/rbi/sentdm/client.rbi +2 -19
  82. data/rbi/sentdm/internal/voice_agents_page.rbi +71 -0
  83. data/rbi/sentdm/models/call_event.rbi +14 -10
  84. data/rbi/sentdm/models/call_event_payload.rbi +34 -9
  85. data/rbi/sentdm/models/channels/voice_create_params.rbi +33 -17
  86. data/rbi/sentdm/models/channels/voice_number.rbi +31 -0
  87. data/rbi/sentdm/models/channels/voice_update_params.rbi +14 -0
  88. data/rbi/sentdm/models/message_send_params.rbi +16 -2
  89. data/rbi/sentdm/models/template.rbi +12 -10
  90. data/rbi/sentdm/models/template_body.rbi +12 -12
  91. data/rbi/sentdm/models/voice/agent_create_params.rbi +215 -0
  92. data/rbi/sentdm/models/{calls/participant_remove_all_params.rbi → voice/agent_delete_params.rbi} +3 -6
  93. data/rbi/sentdm/models/voice/agent_list_params.rbi +66 -0
  94. data/rbi/sentdm/models/voice/agent_retrieve_params.rbi +48 -0
  95. data/rbi/sentdm/models/{calls/participant_remove_params.rbi → voice/agent_rotate_secret_params.rbi} +11 -8
  96. data/rbi/sentdm/models/voice/agent_update_params.rbi +211 -0
  97. data/rbi/sentdm/models/voice/api_response_of_call.rbi +76 -0
  98. data/rbi/sentdm/models/voice/api_response_of_call_recordings.rbi +81 -0
  99. data/rbi/sentdm/models/{calls/api_response_of_list_of_call_participant.rbi → voice/api_response_of_calls_list.rbi} +12 -9
  100. data/rbi/sentdm/models/voice/api_response_of_voice_agent.rbi +85 -0
  101. data/rbi/sentdm/models/voice/api_response_of_voice_agent_secret.rbi +81 -0
  102. data/rbi/sentdm/models/voice/api_response_of_voice_agents_list.rbi +83 -0
  103. data/rbi/sentdm/models/voice/api_response_of_voice_catalogue.rbi +83 -0
  104. data/rbi/sentdm/models/{channels → voice}/api_response_of_voice_token.rbi +6 -8
  105. data/rbi/sentdm/models/voice/call.rbi +329 -0
  106. data/rbi/sentdm/models/voice/call_hangup_params.rbi +61 -0
  107. data/rbi/sentdm/models/voice/call_list_params.rbi +134 -0
  108. data/rbi/sentdm/models/{calls/participant_list_params.rbi → voice/call_list_recordings_params.rbi} +3 -3
  109. data/rbi/sentdm/models/voice/call_party.rbi +47 -0
  110. data/rbi/sentdm/models/{calls/participant_update_params.rbi → voice/call_record_params.rbi} +12 -21
  111. data/rbi/sentdm/models/voice/call_recording.rbi +63 -0
  112. data/rbi/sentdm/models/voice/call_recordings.rbi +49 -0
  113. data/rbi/sentdm/models/voice/call_retrieve_params.rbi +48 -0
  114. data/rbi/sentdm/models/voice/call_timeline_entry.rbi +44 -0
  115. data/rbi/sentdm/models/voice/calls/api_response_of_list_of_call_participant.rbi +84 -0
  116. data/rbi/sentdm/models/voice/calls/call_participant.rbi +97 -0
  117. data/rbi/sentdm/models/voice/calls/call_participant_target.rbi +49 -0
  118. data/rbi/sentdm/models/voice/calls/participant_add_params.rbi +104 -0
  119. data/rbi/sentdm/models/voice/calls/participant_list_params.rbi +53 -0
  120. data/rbi/sentdm/models/voice/calls/participant_remove_all_params.rbi +53 -0
  121. data/rbi/sentdm/models/voice/calls/participant_remove_params.rbi +63 -0
  122. data/rbi/sentdm/models/voice/calls/participant_update_params.rbi +96 -0
  123. data/rbi/sentdm/models/voice/calls_list.rbi +54 -0
  124. data/rbi/sentdm/models/voice/catalogue_list_params.rbi +40 -0
  125. data/rbi/sentdm/models/{channels/voice_create_token_params.rbi → voice/token_create_params.rbi} +3 -6
  126. data/rbi/sentdm/models/voice/voice_agent.rbi +196 -0
  127. data/rbi/sentdm/models/voice/voice_agent_audio.rbi +30 -0
  128. data/rbi/sentdm/models/voice/voice_agent_audio_spec.rbi +33 -0
  129. data/rbi/sentdm/models/voice/voice_agent_limits.rbi +57 -0
  130. data/rbi/sentdm/models/voice/voice_agent_limits_spec.rbi +62 -0
  131. data/rbi/sentdm/models/voice/voice_agent_party.rbi +36 -0
  132. data/rbi/sentdm/models/voice/voice_agent_party_spec.rbi +45 -0
  133. data/rbi/sentdm/models/voice/voice_agent_secret.rbi +37 -0
  134. data/rbi/sentdm/models/voice/voice_agent_speech.rbi +48 -0
  135. data/rbi/sentdm/models/voice/voice_agent_speech_spec.rbi +62 -0
  136. data/rbi/sentdm/models/voice/voice_agent_transcripts.rbi +43 -0
  137. data/rbi/sentdm/models/voice/voice_agent_transcripts_spec.rbi +51 -0
  138. data/rbi/sentdm/models/voice/voice_agents_list.rbi +55 -0
  139. data/rbi/sentdm/models/voice/voice_catalogue.rbi +59 -0
  140. data/rbi/sentdm/models/voice/voice_catalogue_voice.rbi +75 -0
  141. data/rbi/sentdm/models/{channels → voice}/voice_token.rbi +8 -4
  142. data/rbi/sentdm/models/webhook_create_params.rbi +41 -3
  143. data/rbi/sentdm/models/webhook_response.rbi +112 -3
  144. data/rbi/sentdm/models/webhook_update_params.rbi +18 -3
  145. data/rbi/sentdm/models.rbi +2 -30
  146. data/rbi/sentdm/resources/channels/voice.rbi +57 -67
  147. data/rbi/sentdm/resources/channels.rbi +2 -2
  148. data/rbi/sentdm/resources/messages.rbi +8 -1
  149. data/rbi/sentdm/resources/profiles/campaigns.rbi +3 -2
  150. data/rbi/sentdm/resources/voice/agents.rbi +316 -0
  151. data/rbi/sentdm/resources/voice/calls/participants.rbi +212 -0
  152. data/rbi/sentdm/resources/voice/calls.rbi +244 -0
  153. data/rbi/sentdm/resources/voice/catalogue.rbi +59 -0
  154. data/rbi/sentdm/resources/voice/tokens.rbi +84 -0
  155. data/rbi/sentdm/resources/voice.rbi +136 -0
  156. data/rbi/sentdm/resources/webhooks.rbi +56 -16
  157. data/sig/sentdm/client.rbs +1 -1
  158. data/sig/sentdm/internal/voice_agents_page.rbs +41 -0
  159. data/sig/sentdm/models/call_event_payload.rbs +12 -0
  160. data/sig/sentdm/models/channels/voice_create_params.rbs +9 -4
  161. data/sig/sentdm/models/channels/voice_number.rbs +12 -0
  162. data/sig/sentdm/models/channels/voice_update_params.rbs +5 -0
  163. data/sig/sentdm/models/voice/agent_create_params.rbs +99 -0
  164. data/sig/sentdm/models/{calls/participant_remove_all_params.rbs → voice/agent_delete_params.rbs} +3 -3
  165. data/sig/sentdm/models/voice/agent_list_params.rbs +40 -0
  166. data/sig/sentdm/models/{calls/participant_list_params.rbs → voice/agent_retrieve_params.rbs} +3 -3
  167. data/sig/sentdm/models/{calls/participant_remove_params.rbs → voice/agent_rotate_secret_params.rbs} +8 -8
  168. data/sig/sentdm/models/voice/agent_update_params.rbs +108 -0
  169. data/sig/sentdm/models/{calls/api_response_of_list_of_call_participant.rbs → voice/api_response_of_call.rbs} +7 -7
  170. data/sig/sentdm/models/voice/api_response_of_call_recordings.rbs +41 -0
  171. data/sig/sentdm/models/voice/api_response_of_calls_list.rbs +41 -0
  172. data/sig/sentdm/models/voice/api_response_of_voice_agent.rbs +41 -0
  173. data/sig/sentdm/models/voice/api_response_of_voice_agent_secret.rbs +41 -0
  174. data/sig/sentdm/models/voice/api_response_of_voice_agents_list.rbs +41 -0
  175. data/sig/sentdm/models/voice/api_response_of_voice_catalogue.rbs +41 -0
  176. data/sig/sentdm/models/{channels → voice}/api_response_of_voice_token.rbs +5 -5
  177. data/sig/sentdm/models/voice/call.rbs +175 -0
  178. data/sig/sentdm/models/voice/call_hangup_params.rbs +40 -0
  179. data/sig/sentdm/models/voice/call_list_params.rbs +79 -0
  180. data/sig/sentdm/models/voice/call_list_recordings_params.rbs +32 -0
  181. data/sig/sentdm/models/voice/call_party.rbs +19 -0
  182. data/sig/sentdm/models/{calls/participant_update_params.rbs → voice/call_record_params.rbs} +8 -13
  183. data/sig/sentdm/models/voice/call_recording.rbs +34 -0
  184. data/sig/sentdm/models/voice/call_recordings.rbs +22 -0
  185. data/sig/sentdm/models/voice/call_retrieve_params.rbs +32 -0
  186. data/sig/sentdm/models/voice/call_timeline_entry.rbs +21 -0
  187. data/sig/sentdm/models/voice/calls/api_response_of_list_of_call_participant.rbs +43 -0
  188. data/sig/sentdm/models/voice/calls/call_participant.rbs +54 -0
  189. data/sig/sentdm/models/voice/calls/call_participant_target.rbs +25 -0
  190. data/sig/sentdm/models/voice/calls/participant_add_params.rbs +65 -0
  191. data/sig/sentdm/models/voice/calls/participant_list_params.rbs +34 -0
  192. data/sig/sentdm/models/voice/calls/participant_remove_all_params.rbs +36 -0
  193. data/sig/sentdm/models/voice/calls/participant_remove_params.rbs +42 -0
  194. data/sig/sentdm/models/voice/calls/participant_update_params.rbs +63 -0
  195. data/sig/sentdm/models/voice/calls_list.rbs +33 -0
  196. data/sig/sentdm/models/voice/catalogue_list_params.rbs +27 -0
  197. data/sig/sentdm/models/{channels/voice_create_token_params.rbs → voice/token_create_params.rbs} +3 -3
  198. data/sig/sentdm/models/voice/voice_agent.rbs +116 -0
  199. data/sig/sentdm/models/voice/voice_agent_audio.rbs +19 -0
  200. data/sig/sentdm/models/voice/voice_agent_audio_spec.rbs +17 -0
  201. data/sig/sentdm/models/voice/voice_agent_limits.rbs +38 -0
  202. data/sig/sentdm/models/voice/voice_agent_limits_spec.rbs +34 -0
  203. data/sig/sentdm/models/{calls/call_participant_target.rbs → voice/voice_agent_party.rbs} +4 -4
  204. data/sig/sentdm/models/voice/voice_agent_party_spec.rbs +19 -0
  205. data/sig/sentdm/models/voice/voice_agent_secret.rbs +19 -0
  206. data/sig/sentdm/models/voice/voice_agent_speech.rbs +32 -0
  207. data/sig/sentdm/models/voice/voice_agent_speech_spec.rbs +26 -0
  208. data/sig/sentdm/models/voice/voice_agent_transcripts.rbs +23 -0
  209. data/sig/sentdm/models/voice/voice_agent_transcripts_spec.rbs +20 -0
  210. data/sig/sentdm/models/voice/voice_agents_list.rbs +35 -0
  211. data/sig/sentdm/models/voice/voice_catalogue.rbs +35 -0
  212. data/sig/sentdm/models/voice/voice_catalogue_voice.rbs +42 -0
  213. data/sig/sentdm/models/{channels → voice}/voice_token.rbs +3 -1
  214. data/sig/sentdm/models/webhook_create_params.rbs +12 -0
  215. data/sig/sentdm/models/webhook_response.rbs +46 -3
  216. data/sig/sentdm/models/webhook_update_params.rbs +5 -0
  217. data/sig/sentdm/models.rbs +2 -30
  218. data/sig/sentdm/resources/channels/voice.rbs +3 -11
  219. data/sig/sentdm/resources/voice/agents.rbs +74 -0
  220. data/sig/sentdm/resources/voice/calls/participants.rbs +52 -0
  221. data/sig/sentdm/resources/{calls/participants.rbs → voice/calls.rbs} +25 -21
  222. data/sig/sentdm/resources/voice/catalogue.rbs +14 -0
  223. data/sig/sentdm/resources/voice/tokens.rbs +19 -0
  224. data/sig/sentdm/resources/voice.rbs +15 -0
  225. data/sig/sentdm/resources/webhooks.rbs +3 -0
  226. metadata +176 -83
  227. data/lib/sentdm/models/api_response_of_call.rb +0 -43
  228. data/lib/sentdm/models/api_response_of_call_recordings.rb +0 -43
  229. data/lib/sentdm/models/api_response_of_calls_list.rb +0 -42
  230. data/lib/sentdm/models/call.rb +0 -134
  231. data/lib/sentdm/models/call_hangup_params.rb +0 -32
  232. data/lib/sentdm/models/call_list_params.rb +0 -83
  233. data/lib/sentdm/models/call_list_recordings_params.rb +0 -26
  234. data/lib/sentdm/models/call_party.rb +0 -31
  235. data/lib/sentdm/models/call_record_params.rb +0 -55
  236. data/lib/sentdm/models/call_recording.rb +0 -38
  237. data/lib/sentdm/models/call_recordings.rb +0 -24
  238. data/lib/sentdm/models/call_retrieve_params.rb +0 -26
  239. data/lib/sentdm/models/call_timeline_entry.rb +0 -26
  240. data/lib/sentdm/models/calls/call_participant.rb +0 -60
  241. data/lib/sentdm/models/calls/call_participant_target.rb +0 -30
  242. data/lib/sentdm/models/calls/participant_add_params.rb +0 -66
  243. data/lib/sentdm/models/calls_list.rb +0 -26
  244. data/lib/sentdm/resources/calls/participants.rb +0 -231
  245. data/lib/sentdm/resources/calls.rb +0 -236
  246. data/rbi/sentdm/models/api_response_of_call.rbi +0 -74
  247. data/rbi/sentdm/models/api_response_of_call_recordings.rbi +0 -74
  248. data/rbi/sentdm/models/api_response_of_calls_list.rbi +0 -74
  249. data/rbi/sentdm/models/call.rbi +0 -179
  250. data/rbi/sentdm/models/call_hangup_params.rbi +0 -59
  251. data/rbi/sentdm/models/call_list_params.rbi +0 -112
  252. data/rbi/sentdm/models/call_list_recordings_params.rbi +0 -46
  253. data/rbi/sentdm/models/call_party.rbi +0 -41
  254. data/rbi/sentdm/models/call_record_params.rbi +0 -83
  255. data/rbi/sentdm/models/call_recording.rbi +0 -59
  256. data/rbi/sentdm/models/call_recordings.rbi +0 -39
  257. data/rbi/sentdm/models/call_retrieve_params.rbi +0 -46
  258. data/rbi/sentdm/models/call_timeline_entry.rbi +0 -40
  259. data/rbi/sentdm/models/calls/call_participant.rbi +0 -92
  260. data/rbi/sentdm/models/calls/call_participant_target.rbi +0 -47
  261. data/rbi/sentdm/models/calls/participant_add_params.rbi +0 -98
  262. data/rbi/sentdm/models/calls_list.rbi +0 -47
  263. data/rbi/sentdm/resources/calls/participants.rbi +0 -199
  264. data/rbi/sentdm/resources/calls.rbi +0 -207
  265. data/sig/sentdm/models/api_response_of_call.rbs +0 -39
  266. data/sig/sentdm/models/api_response_of_call_recordings.rbs +0 -39
  267. data/sig/sentdm/models/api_response_of_calls_list.rbs +0 -39
  268. data/sig/sentdm/models/call.rbs +0 -101
  269. data/sig/sentdm/models/call_hangup_params.rbs +0 -38
  270. data/sig/sentdm/models/call_list_params.rbs +0 -67
  271. data/sig/sentdm/models/call_list_recordings_params.rbs +0 -30
  272. data/sig/sentdm/models/call_party.rbs +0 -17
  273. data/sig/sentdm/models/call_record_params.rbs +0 -54
  274. data/sig/sentdm/models/call_recording.rbs +0 -32
  275. data/sig/sentdm/models/call_recordings.rbs +0 -17
  276. data/sig/sentdm/models/call_retrieve_params.rbs +0 -30
  277. data/sig/sentdm/models/call_timeline_entry.rbs +0 -19
  278. data/sig/sentdm/models/calls/call_participant.rbs +0 -52
  279. data/sig/sentdm/models/calls/participant_add_params.rbs +0 -63
  280. data/sig/sentdm/models/calls_list.rbs +0 -26
  281. data/sig/sentdm/resources/calls.rbs +0 -50
@@ -1,207 +0,0 @@
1
- # typed: strong
2
-
3
- module Sentdm
4
- module Resources
5
- # Phone calls from the numbers you hold, driven by your own callback URL.
6
- #
7
- # `POST /v3/channels/voice` enables a number for calls, with the callback URL Sent
8
- # asks what to do with each call on it, and `POST /v3/channels/voice/tokens` mints
9
- # a short-lived token that lets a user of your app place and receive calls as that
10
- # number. When a call arrives or a caller presses a key, a signed question is
11
- # POSTed to the callback URL and the answer decides the call;
12
- # `POST /v3/channels/voice/{number}/test` checks the URL answers the way we need
13
- # before a real call reaches it, and
14
- # `POST /v3/channels/voice/{number}/rotate-secret` replaces the signing secret.
15
- # The call events themselves (`call.completed` and the rest) arrive through your
16
- # webhooks.
17
- #
18
- # Every call is a record under `/v3/calls`: read it, list its recordings once one
19
- # is ready, hang it up, start or stop recording, and add, mute or remove
20
- # conference participants while it is live. A leg to a phone number runs for at
21
- # most what your balance affords at the destination's rate.
22
- class Calls
23
- # Phone calls from the numbers you hold, driven by your own callback URL.
24
- #
25
- # `POST /v3/channels/voice` enables a number for calls, with the callback URL Sent
26
- # asks what to do with each call on it, and `POST /v3/channels/voice/tokens` mints
27
- # a short-lived token that lets a user of your app place and receive calls as that
28
- # number. When a call arrives or a caller presses a key, a signed question is
29
- # POSTed to the callback URL and the answer decides the call;
30
- # `POST /v3/channels/voice/{number}/test` checks the URL answers the way we need
31
- # before a real call reaches it, and
32
- # `POST /v3/channels/voice/{number}/rotate-secret` replaces the signing secret.
33
- # The call events themselves (`call.completed` and the rest) arrive through your
34
- # webhooks.
35
- #
36
- # Every call is a record under `/v3/calls`: read it, list its recordings once one
37
- # is ready, hang it up, start or stop recording, and add, mute or remove
38
- # conference participants while it is live. A leg to a phone number runs for at
39
- # most what your balance affords at the destination's rate.
40
- sig { returns(Sentdm::Resources::Calls::Participants) }
41
- attr_reader :participants
42
-
43
- # Retrieves one of your calls by id: the parties, the owning number, the current
44
- # status with its failure reason, duration, price, recording availability, and a
45
- # timeline of when the call entered each status.
46
- sig do
47
- params(
48
- id: String,
49
- x_profile_id: String,
50
- request_options: Sentdm::RequestOptions::OrHash
51
- ).returns(Sentdm::APIResponseOfCall)
52
- end
53
- def retrieve(
54
- # The call id from the route, as carried by call webhooks and the calls list, for
55
- # example call_9f2ab000-0000-4000-8000-000000000001
56
- id,
57
- # Profile UUID to scope the request to a child profile. Only organization API keys
58
- # can use this header. The profile must belong to the calling organization.
59
- x_profile_id: nil,
60
- request_options: {}
61
- )
62
- end
63
-
64
- # Retrieves a paginated list of your calls, most recent first. Filter by
65
- # direction, status, the owning number, and the time the call started (from and to
66
- # are inclusive). Use the call webhooks for real-time updates; this list is for
67
- # looking calls up afterwards.
68
- sig do
69
- params(
70
- direction: T.nilable(String),
71
- from: T.nilable(Time),
72
- number: T.nilable(String),
73
- page: Integer,
74
- page_size: Integer,
75
- status: T.nilable(String),
76
- to: T.nilable(Time),
77
- x_profile_id: String,
78
- request_options: Sentdm::RequestOptions::OrHash
79
- ).returns(Sentdm::Internal::CallsPage[Sentdm::Call])
80
- end
81
- def list(
82
- # Query param: Optional direction filter: outbound for calls placed from your app,
83
- # inbound for calls to one of your numbers
84
- direction: nil,
85
- # Query param: Only calls started at or after this time (ISO 8601)
86
- from: nil,
87
- # Query param: Optional filter on the number that owns the call, one of your
88
- # voice-enabled numbers in E.164 format
89
- number: nil,
90
- # Query param: Page number (1-indexed)
91
- page: nil,
92
- # Query param: Number of items per page
93
- page_size: nil,
94
- # Query param: Optional status filter: initiated, ringing, answered, completed,
95
- # failed, no_answer or rejected
96
- status: nil,
97
- # Query param: Only calls started at or before this time (ISO 8601)
98
- to: nil,
99
- # Header param: Profile UUID to scope the request to a child profile. Only
100
- # organization API keys can use this header. The profile must belong to the
101
- # calling organization.
102
- x_profile_id: nil,
103
- request_options: {}
104
- )
105
- end
106
-
107
- # Ends one of your live calls. The call then ends the way any other call does once
108
- # the disconnect is reported: an answered call as COMPLETED with call.completed, a
109
- # call still ringing as NO_ANSWER, REJECTED or FAILED with call.failed. A call
110
- # that has already ended answers 409, and so does a call with no phone leg, such
111
- # as one between two app users.
112
- sig do
113
- params(
114
- id: String,
115
- sandbox: T::Boolean,
116
- idempotency_key: String,
117
- x_profile_id: String,
118
- request_options: Sentdm::RequestOptions::OrHash
119
- ).void
120
- end
121
- def hangup(
122
- # Path param: The call id from the route, as carried by call webhooks and the
123
- # calls list, for example call_9f2ab000-0000-4000-8000-000000000001
124
- id,
125
- # Body param: Sandbox flag - when true, the operation is simulated without side
126
- # effects Useful for testing integrations without actual execution
127
- sandbox: nil,
128
- # Header param: Unique key to ensure idempotent request processing. Must be 1-255
129
- # alphanumeric characters, hyphens, or underscores. Responses are cached for 24
130
- # hours per key per customer.
131
- idempotency_key: nil,
132
- # Header param: Profile UUID to scope the request to a child profile. Only
133
- # organization API keys can use this header. The profile must belong to the
134
- # calling organization.
135
- x_profile_id: nil,
136
- request_options: {}
137
- )
138
- end
139
-
140
- # Returns pre-signed links to the recordings of one of your calls, each valid
141
- # until its url_expires_at. A recording appears once the call was recorded, by a
142
- # connect answer with record set, a startRecording instruction or the recordings
143
- # command, and the call.recording_ready webhook has been sent; until then, and for
144
- # a call that was never recorded, the list is empty. A call recorded more than
145
- # once lists every recording, oldest first, each under the recording_id its
146
- # call.recording_ready webhook carried.
147
- sig do
148
- params(
149
- id: String,
150
- x_profile_id: String,
151
- request_options: Sentdm::RequestOptions::OrHash
152
- ).returns(Sentdm::APIResponseOfCallRecordings)
153
- end
154
- def list_recordings(
155
- # The call id from the route, as carried by call webhooks and the calls list, for
156
- # example call_9f2ab000-0000-4000-8000-000000000001
157
- id,
158
- # Profile UUID to scope the request to a child profile. Only organization API keys
159
- # can use this header. The profile must belong to the calling organization.
160
- x_profile_id: nil,
161
- request_options: {}
162
- )
163
- end
164
-
165
- # Starts or stops recording one of your live calls. Use start to begin recording
166
- # mid-call, or stop to end a recording, whether it was started here or by a
167
- # connect answer with record set. A call that has already ended answers 409, and
168
- # so does a call with no phone leg, such as one between two app users, which can't
169
- # be recorded.
170
- sig do
171
- params(
172
- id: String,
173
- action: String,
174
- sandbox: T::Boolean,
175
- idempotency_key: String,
176
- x_profile_id: String,
177
- request_options: Sentdm::RequestOptions::OrHash
178
- ).void
179
- end
180
- def record(
181
- # Path param: The call id from the route, as carried by call webhooks and the
182
- # calls list, for example call_9f2ab000-0000-4000-8000-000000000001
183
- id,
184
- # Body param: start to begin recording, stop to end it
185
- action: nil,
186
- # Body param: Sandbox flag - when true, the operation is simulated without side
187
- # effects Useful for testing integrations without actual execution
188
- sandbox: nil,
189
- # Header param: Unique key to ensure idempotent request processing. Must be 1-255
190
- # alphanumeric characters, hyphens, or underscores. Responses are cached for 24
191
- # hours per key per customer.
192
- idempotency_key: nil,
193
- # Header param: Profile UUID to scope the request to a child profile. Only
194
- # organization API keys can use this header. The profile must belong to the
195
- # calling organization.
196
- x_profile_id: nil,
197
- request_options: {}
198
- )
199
- end
200
-
201
- # @api private
202
- sig { params(client: Sentdm::Client).returns(T.attached_class) }
203
- def self.new(client:)
204
- end
205
- end
206
- end
207
- end
@@ -1,39 +0,0 @@
1
- module Sentdm
2
- module Models
3
- type api_response_of_call =
4
- {
5
- data: Sentdm::Call?,
6
- error: Sentdm::ErrorDetail?,
7
- meta: Sentdm::APIMeta,
8
- success: bool
9
- }
10
-
11
- class APIResponseOfCall < Sentdm::Internal::Type::BaseModel
12
- attr_accessor data: Sentdm::Call?
13
-
14
- attr_accessor error: Sentdm::ErrorDetail?
15
-
16
- attr_reader meta: Sentdm::APIMeta?
17
-
18
- def meta=: (Sentdm::APIMeta) -> Sentdm::APIMeta
19
-
20
- attr_reader success: bool?
21
-
22
- def success=: (bool) -> bool
23
-
24
- def initialize: (
25
- ?data: Sentdm::Call?,
26
- ?error: Sentdm::ErrorDetail?,
27
- ?meta: Sentdm::APIMeta,
28
- ?success: bool
29
- ) -> void
30
-
31
- def to_hash: -> {
32
- data: Sentdm::Call?,
33
- error: Sentdm::ErrorDetail?,
34
- meta: Sentdm::APIMeta,
35
- success: bool
36
- }
37
- end
38
- end
39
- end
@@ -1,39 +0,0 @@
1
- module Sentdm
2
- module Models
3
- type api_response_of_call_recordings =
4
- {
5
- data: Sentdm::CallRecordings?,
6
- error: Sentdm::ErrorDetail?,
7
- meta: Sentdm::APIMeta,
8
- success: bool
9
- }
10
-
11
- class APIResponseOfCallRecordings < Sentdm::Internal::Type::BaseModel
12
- attr_accessor data: Sentdm::CallRecordings?
13
-
14
- attr_accessor error: Sentdm::ErrorDetail?
15
-
16
- attr_reader meta: Sentdm::APIMeta?
17
-
18
- def meta=: (Sentdm::APIMeta) -> Sentdm::APIMeta
19
-
20
- attr_reader success: bool?
21
-
22
- def success=: (bool) -> bool
23
-
24
- def initialize: (
25
- ?data: Sentdm::CallRecordings?,
26
- ?error: Sentdm::ErrorDetail?,
27
- ?meta: Sentdm::APIMeta,
28
- ?success: bool
29
- ) -> void
30
-
31
- def to_hash: -> {
32
- data: Sentdm::CallRecordings?,
33
- error: Sentdm::ErrorDetail?,
34
- meta: Sentdm::APIMeta,
35
- success: bool
36
- }
37
- end
38
- end
39
- end
@@ -1,39 +0,0 @@
1
- module Sentdm
2
- module Models
3
- type api_response_of_calls_list =
4
- {
5
- data: Sentdm::CallsList?,
6
- error: Sentdm::ErrorDetail?,
7
- meta: Sentdm::APIMeta,
8
- success: bool
9
- }
10
-
11
- class APIResponseOfCallsList < Sentdm::Internal::Type::BaseModel
12
- attr_accessor data: Sentdm::CallsList?
13
-
14
- attr_accessor error: Sentdm::ErrorDetail?
15
-
16
- attr_reader meta: Sentdm::APIMeta?
17
-
18
- def meta=: (Sentdm::APIMeta) -> Sentdm::APIMeta
19
-
20
- attr_reader success: bool?
21
-
22
- def success=: (bool) -> bool
23
-
24
- def initialize: (
25
- ?data: Sentdm::CallsList?,
26
- ?error: Sentdm::ErrorDetail?,
27
- ?meta: Sentdm::APIMeta,
28
- ?success: bool
29
- ) -> void
30
-
31
- def to_hash: -> {
32
- data: Sentdm::CallsList?,
33
- error: Sentdm::ErrorDetail?,
34
- meta: Sentdm::APIMeta,
35
- success: bool
36
- }
37
- end
38
- end
39
- end
@@ -1,101 +0,0 @@
1
- module Sentdm
2
- module Models
3
- type call =
4
- {
5
- id: String,
6
- answered_at: Time?,
7
- direction: String,
8
- duration_seconds: Integer?,
9
- ended_at: Time?,
10
- failure_reason: String?,
11
- from: Sentdm::CallParty,
12
- number: String,
13
- price: Float?,
14
- recording_available: bool,
15
- started_at: Time,
16
- status: String,
17
- timeline: ::Array[Sentdm::CallTimelineEntry]?,
18
- to: Sentdm::CallParty
19
- }
20
-
21
- class Call < Sentdm::Internal::Type::BaseModel
22
- attr_reader id: String?
23
-
24
- def id=: (String) -> String
25
-
26
- attr_accessor answered_at: Time?
27
-
28
- attr_reader direction: String?
29
-
30
- def direction=: (String) -> String
31
-
32
- attr_accessor duration_seconds: Integer?
33
-
34
- attr_accessor ended_at: Time?
35
-
36
- attr_accessor failure_reason: String?
37
-
38
- attr_reader from: Sentdm::CallParty?
39
-
40
- def from=: (Sentdm::CallParty) -> Sentdm::CallParty
41
-
42
- attr_reader number: String?
43
-
44
- def number=: (String) -> String
45
-
46
- attr_accessor price: Float?
47
-
48
- attr_reader recording_available: bool?
49
-
50
- def recording_available=: (bool) -> bool
51
-
52
- attr_reader started_at: Time?
53
-
54
- def started_at=: (Time) -> Time
55
-
56
- attr_reader status: String?
57
-
58
- def status=: (String) -> String
59
-
60
- attr_accessor timeline: ::Array[Sentdm::CallTimelineEntry]?
61
-
62
- attr_reader to: Sentdm::CallParty?
63
-
64
- def to=: (Sentdm::CallParty) -> Sentdm::CallParty
65
-
66
- def initialize: (
67
- ?id: String,
68
- ?answered_at: Time?,
69
- ?direction: String,
70
- ?duration_seconds: Integer?,
71
- ?ended_at: Time?,
72
- ?failure_reason: String?,
73
- ?from: Sentdm::CallParty,
74
- ?number: String,
75
- ?price: Float?,
76
- ?recording_available: bool,
77
- ?started_at: Time,
78
- ?status: String,
79
- ?timeline: ::Array[Sentdm::CallTimelineEntry]?,
80
- ?to: Sentdm::CallParty
81
- ) -> void
82
-
83
- def to_hash: -> {
84
- id: String,
85
- answered_at: Time?,
86
- direction: String,
87
- duration_seconds: Integer?,
88
- ended_at: Time?,
89
- failure_reason: String?,
90
- from: Sentdm::CallParty,
91
- number: String,
92
- price: Float?,
93
- recording_available: bool,
94
- started_at: Time,
95
- status: String,
96
- timeline: ::Array[Sentdm::CallTimelineEntry]?,
97
- to: Sentdm::CallParty
98
- }
99
- end
100
- end
101
- end
@@ -1,38 +0,0 @@
1
- module Sentdm
2
- module Models
3
- type call_hangup_params =
4
- { id: String, idempotency_key: String, x_profile_id: String }
5
- & Sentdm::Internal::Type::request_parameters
6
-
7
- class CallHangupParams < Sentdm::Models::MutationRequest
8
- extend Sentdm::Internal::Type::RequestParameters::Converter
9
- include Sentdm::Internal::Type::RequestParameters
10
-
11
- def id: -> String
12
-
13
- def id=: (String _) -> String
14
-
15
- def idempotency_key: -> String?
16
-
17
- def idempotency_key=: (String _) -> String
18
-
19
- def x_profile_id: -> String?
20
-
21
- def x_profile_id=: (String _) -> String
22
-
23
- def initialize: (
24
- id: String,
25
- ?idempotency_key: String,
26
- ?x_profile_id: String,
27
- ?request_options: Sentdm::request_opts
28
- ) -> void
29
-
30
- def to_hash: -> {
31
- id: String,
32
- idempotency_key: String,
33
- x_profile_id: String,
34
- request_options: Sentdm::RequestOptions
35
- }
36
- end
37
- end
38
- end
@@ -1,67 +0,0 @@
1
- module Sentdm
2
- module Models
3
- type call_list_params =
4
- {
5
- direction: String?,
6
- from: Time?,
7
- number: String?,
8
- page: Integer,
9
- page_size: Integer,
10
- status: String?,
11
- to: Time?,
12
- x_profile_id: String
13
- }
14
- & Sentdm::Internal::Type::request_parameters
15
-
16
- class CallListParams < Sentdm::Internal::Type::BaseModel
17
- extend Sentdm::Internal::Type::RequestParameters::Converter
18
- include Sentdm::Internal::Type::RequestParameters
19
-
20
- attr_accessor direction: String?
21
-
22
- attr_accessor from: Time?
23
-
24
- attr_accessor number: String?
25
-
26
- attr_reader page: Integer?
27
-
28
- def page=: (Integer) -> Integer
29
-
30
- attr_reader page_size: Integer?
31
-
32
- def page_size=: (Integer) -> Integer
33
-
34
- attr_accessor status: String?
35
-
36
- attr_accessor to: Time?
37
-
38
- attr_reader x_profile_id: String?
39
-
40
- def x_profile_id=: (String) -> String
41
-
42
- def initialize: (
43
- ?direction: String?,
44
- ?from: Time?,
45
- ?number: String?,
46
- ?page: Integer,
47
- ?page_size: Integer,
48
- ?status: String?,
49
- ?to: Time?,
50
- ?x_profile_id: String,
51
- ?request_options: Sentdm::request_opts
52
- ) -> void
53
-
54
- def to_hash: -> {
55
- direction: String?,
56
- from: Time?,
57
- number: String?,
58
- page: Integer,
59
- page_size: Integer,
60
- status: String?,
61
- to: Time?,
62
- x_profile_id: String,
63
- request_options: Sentdm::RequestOptions
64
- }
65
- end
66
- end
67
- end
@@ -1,30 +0,0 @@
1
- module Sentdm
2
- module Models
3
- type call_list_recordings_params =
4
- { id: String, x_profile_id: String }
5
- & Sentdm::Internal::Type::request_parameters
6
-
7
- class CallListRecordingsParams < Sentdm::Internal::Type::BaseModel
8
- extend Sentdm::Internal::Type::RequestParameters::Converter
9
- include Sentdm::Internal::Type::RequestParameters
10
-
11
- attr_accessor id: String
12
-
13
- attr_reader x_profile_id: String?
14
-
15
- def x_profile_id=: (String) -> String
16
-
17
- def initialize: (
18
- id: String,
19
- ?x_profile_id: String,
20
- ?request_options: Sentdm::request_opts
21
- ) -> void
22
-
23
- def to_hash: -> {
24
- id: String,
25
- x_profile_id: String,
26
- request_options: Sentdm::RequestOptions
27
- }
28
- end
29
- end
30
- end
@@ -1,17 +0,0 @@
1
- module Sentdm
2
- module Models
3
- type call_party = { kind: String, value: String? }
4
-
5
- class CallParty < Sentdm::Internal::Type::BaseModel
6
- attr_reader kind: String?
7
-
8
- def kind=: (String) -> String
9
-
10
- attr_accessor value: String?
11
-
12
- def initialize: (?kind: String, ?value: String?) -> void
13
-
14
- def to_hash: -> { kind: String, value: String? }
15
- end
16
- end
17
- end
@@ -1,54 +0,0 @@
1
- module Sentdm
2
- module Models
3
- type call_record_params =
4
- {
5
- id: String,
6
- action: String,
7
- sandbox: bool,
8
- idempotency_key: String,
9
- x_profile_id: String
10
- }
11
- & Sentdm::Internal::Type::request_parameters
12
-
13
- class CallRecordParams < Sentdm::Internal::Type::BaseModel
14
- extend Sentdm::Internal::Type::RequestParameters::Converter
15
- include Sentdm::Internal::Type::RequestParameters
16
-
17
- attr_accessor id: String
18
-
19
- attr_reader action: String?
20
-
21
- def action=: (String) -> String
22
-
23
- attr_reader sandbox: bool?
24
-
25
- def sandbox=: (bool) -> bool
26
-
27
- attr_reader idempotency_key: String?
28
-
29
- def idempotency_key=: (String) -> String
30
-
31
- attr_reader x_profile_id: String?
32
-
33
- def x_profile_id=: (String) -> String
34
-
35
- def initialize: (
36
- id: String,
37
- ?action: String,
38
- ?sandbox: bool,
39
- ?idempotency_key: String,
40
- ?x_profile_id: String,
41
- ?request_options: Sentdm::request_opts
42
- ) -> void
43
-
44
- def to_hash: -> {
45
- id: String,
46
- action: String,
47
- sandbox: bool,
48
- idempotency_key: String,
49
- x_profile_id: String,
50
- request_options: Sentdm::RequestOptions
51
- }
52
- end
53
- end
54
- end
@@ -1,32 +0,0 @@
1
- module Sentdm
2
- module Models
3
- type call_recording =
4
- { download_url: String, recording_id: String, url_expires_at: Time }
5
-
6
- class CallRecording < Sentdm::Internal::Type::BaseModel
7
- attr_reader download_url: String?
8
-
9
- def download_url=: (String) -> String
10
-
11
- attr_reader recording_id: String?
12
-
13
- def recording_id=: (String) -> String
14
-
15
- attr_reader url_expires_at: Time?
16
-
17
- def url_expires_at=: (Time) -> Time
18
-
19
- def initialize: (
20
- ?download_url: String,
21
- ?recording_id: String,
22
- ?url_expires_at: Time
23
- ) -> void
24
-
25
- def to_hash: -> {
26
- download_url: String,
27
- recording_id: String,
28
- url_expires_at: Time
29
- }
30
- end
31
- end
32
- end
@@ -1,17 +0,0 @@
1
- module Sentdm
2
- module Models
3
- type call_recordings = { recordings: ::Array[Sentdm::CallRecording] }
4
-
5
- class CallRecordings < Sentdm::Internal::Type::BaseModel
6
- attr_reader recordings: ::Array[Sentdm::CallRecording]?
7
-
8
- def recordings=: (
9
- ::Array[Sentdm::CallRecording]
10
- ) -> ::Array[Sentdm::CallRecording]
11
-
12
- def initialize: (?recordings: ::Array[Sentdm::CallRecording]) -> void
13
-
14
- def to_hash: -> { recordings: ::Array[Sentdm::CallRecording] }
15
- end
16
- end
17
- end