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,40 +0,0 @@
1
- # typed: strong
2
-
3
- module Sentdm
4
- module Models
5
- class CallTimelineEntry < Sentdm::Internal::Type::BaseModel
6
- OrHash =
7
- T.type_alias do
8
- T.any(Sentdm::CallTimelineEntry, Sentdm::Internal::AnyHash)
9
- end
10
-
11
- # INITIATED, RINGING, ANSWERED, COMPLETED, FAILED, NO_ANSWER or REJECTED
12
- sig { returns(T.nilable(String)) }
13
- attr_reader :status
14
-
15
- sig { params(status: String).void }
16
- attr_writer :status
17
-
18
- # When the call entered this status (UTC)
19
- sig { returns(T.nilable(Time)) }
20
- attr_reader :timestamp
21
-
22
- sig { params(timestamp: Time).void }
23
- attr_writer :timestamp
24
-
25
- # When a call entered a status
26
- sig { params(status: String, timestamp: Time).returns(T.attached_class) }
27
- def self.new(
28
- # INITIATED, RINGING, ANSWERED, COMPLETED, FAILED, NO_ANSWER or REJECTED
29
- status: nil,
30
- # When the call entered this status (UTC)
31
- timestamp: nil
32
- )
33
- end
34
-
35
- sig { override.returns({ status: String, timestamp: Time }) }
36
- def to_hash
37
- end
38
- end
39
- end
40
- end
@@ -1,92 +0,0 @@
1
- # typed: strong
2
-
3
- module Sentdm
4
- module Models
5
- CallParticipant = Calls::CallParticipant
6
-
7
- module Calls
8
- class CallParticipant < Sentdm::Internal::Type::BaseModel
9
- OrHash =
10
- T.type_alias do
11
- T.any(Sentdm::Calls::CallParticipant, Sentdm::Internal::AnyHash)
12
- end
13
-
14
- # The participant's own call id: what the mute and remove endpoints take, and what
15
- # GET /v3/calls/{id} accepts
16
- sig { returns(T.nilable(String)) }
17
- attr_reader :id
18
-
19
- sig { params(id: String).void }
20
- attr_writer :id
21
-
22
- # How long the participant has been connected to the room, in seconds
23
- sig { returns(T.nilable(Integer)) }
24
- attr_reader :duration_seconds
25
-
26
- sig { params(duration_seconds: Integer).void }
27
- attr_writer :duration_seconds
28
-
29
- # user for one of your app users, number for a phone number, anonymous for a
30
- # caller who withheld their number
31
- sig { returns(T.nilable(String)) }
32
- attr_reader :kind
33
-
34
- sig { params(kind: String).void }
35
- attr_writer :kind
36
-
37
- # True while the room mutes this participant
38
- sig { returns(T.nilable(T::Boolean)) }
39
- attr_reader :muted
40
-
41
- sig { params(muted: T::Boolean).void }
42
- attr_writer :muted
43
-
44
- # The app user's identity or the phone number in E.164 format. Null when the kind
45
- # is anonymous
46
- sig { returns(T.nilable(String)) }
47
- attr_accessor :value
48
-
49
- # A participant of a conference call
50
- sig do
51
- params(
52
- id: String,
53
- duration_seconds: Integer,
54
- kind: String,
55
- muted: T::Boolean,
56
- value: T.nilable(String)
57
- ).returns(T.attached_class)
58
- end
59
- def self.new(
60
- # The participant's own call id: what the mute and remove endpoints take, and what
61
- # GET /v3/calls/{id} accepts
62
- id: nil,
63
- # How long the participant has been connected to the room, in seconds
64
- duration_seconds: nil,
65
- # user for one of your app users, number for a phone number, anonymous for a
66
- # caller who withheld their number
67
- kind: nil,
68
- # True while the room mutes this participant
69
- muted: nil,
70
- # The app user's identity or the phone number in E.164 format. Null when the kind
71
- # is anonymous
72
- value: nil
73
- )
74
- end
75
-
76
- sig do
77
- override.returns(
78
- {
79
- id: String,
80
- duration_seconds: Integer,
81
- kind: String,
82
- muted: T::Boolean,
83
- value: T.nilable(String)
84
- }
85
- )
86
- end
87
- def to_hash
88
- end
89
- end
90
- end
91
- end
92
- end
@@ -1,47 +0,0 @@
1
- # typed: strong
2
-
3
- module Sentdm
4
- module Models
5
- CallParticipantTarget = Calls::CallParticipantTarget
6
-
7
- module Calls
8
- class CallParticipantTarget < Sentdm::Internal::Type::BaseModel
9
- OrHash =
10
- T.type_alias do
11
- T.any(
12
- Sentdm::Calls::CallParticipantTarget,
13
- Sentdm::Internal::AnyHash
14
- )
15
- end
16
-
17
- # user for one of your app users, number for a phone number
18
- sig { returns(T.nilable(String)) }
19
- attr_reader :kind
20
-
21
- sig { params(kind: String).void }
22
- attr_writer :kind
23
-
24
- # The app user's identity, or the phone number in E.164 format
25
- sig { returns(T.nilable(String)) }
26
- attr_reader :value
27
-
28
- sig { params(value: String).void }
29
- attr_writer :value
30
-
31
- # A participant to add to a call
32
- sig { params(kind: String, value: String).returns(T.attached_class) }
33
- def self.new(
34
- # user for one of your app users, number for a phone number
35
- kind: nil,
36
- # The app user's identity, or the phone number in E.164 format
37
- value: nil
38
- )
39
- end
40
-
41
- sig { override.returns({ kind: String, value: String }) }
42
- def to_hash
43
- end
44
- end
45
- end
46
- end
47
- end
@@ -1,98 +0,0 @@
1
- # typed: strong
2
-
3
- module Sentdm
4
- module Models
5
- module Calls
6
- class ParticipantAddParams < Sentdm::Internal::Type::BaseModel
7
- extend Sentdm::Internal::Type::RequestParameters::Converter
8
- include Sentdm::Internal::Type::RequestParameters
9
-
10
- OrHash =
11
- T.type_alias do
12
- T.any(
13
- Sentdm::Calls::ParticipantAddParams,
14
- Sentdm::Internal::AnyHash
15
- )
16
- end
17
-
18
- sig { returns(String) }
19
- attr_accessor :id
20
-
21
- # The number shown to a phone participant as the caller, in E.164 format. Must be
22
- # one of your numbers. The call's owning number when omitted
23
- sig { returns(T.nilable(String)) }
24
- attr_accessor :caller_id
25
-
26
- # Sandbox flag - when true, the operation is simulated without side effects Useful
27
- # for testing integrations without actual execution
28
- sig { returns(T.nilable(T::Boolean)) }
29
- attr_reader :sandbox
30
-
31
- sig { params(sandbox: T::Boolean).void }
32
- attr_writer :sandbox
33
-
34
- # A participant to add to a call
35
- sig { returns(T.nilable(Sentdm::Calls::CallParticipantTarget)) }
36
- attr_reader :to
37
-
38
- sig { params(to: Sentdm::Calls::CallParticipantTarget::OrHash).void }
39
- attr_writer :to
40
-
41
- sig { returns(T.nilable(String)) }
42
- attr_reader :idempotency_key
43
-
44
- sig { params(idempotency_key: String).void }
45
- attr_writer :idempotency_key
46
-
47
- sig { returns(T.nilable(String)) }
48
- attr_reader :x_profile_id
49
-
50
- sig { params(x_profile_id: String).void }
51
- attr_writer :x_profile_id
52
-
53
- sig do
54
- params(
55
- id: String,
56
- caller_id: T.nilable(String),
57
- sandbox: T::Boolean,
58
- to: Sentdm::Calls::CallParticipantTarget::OrHash,
59
- idempotency_key: String,
60
- x_profile_id: String,
61
- request_options: Sentdm::RequestOptions::OrHash
62
- ).returns(T.attached_class)
63
- end
64
- def self.new(
65
- id:,
66
- # The number shown to a phone participant as the caller, in E.164 format. Must be
67
- # one of your numbers. The call's owning number when omitted
68
- caller_id: nil,
69
- # Sandbox flag - when true, the operation is simulated without side effects Useful
70
- # for testing integrations without actual execution
71
- sandbox: nil,
72
- # A participant to add to a call
73
- to: nil,
74
- idempotency_key: nil,
75
- x_profile_id: nil,
76
- request_options: {}
77
- )
78
- end
79
-
80
- sig do
81
- override.returns(
82
- {
83
- id: String,
84
- caller_id: T.nilable(String),
85
- sandbox: T::Boolean,
86
- to: Sentdm::Calls::CallParticipantTarget,
87
- idempotency_key: String,
88
- x_profile_id: String,
89
- request_options: Sentdm::RequestOptions
90
- }
91
- )
92
- end
93
- def to_hash
94
- end
95
- end
96
- end
97
- end
98
- end
@@ -1,47 +0,0 @@
1
- # typed: strong
2
-
3
- module Sentdm
4
- module Models
5
- class CallsList < Sentdm::Internal::Type::BaseModel
6
- OrHash =
7
- T.type_alias { T.any(Sentdm::CallsList, Sentdm::Internal::AnyHash) }
8
-
9
- # The calls on this page, most recent first
10
- sig { returns(T.nilable(T::Array[Sentdm::Call])) }
11
- attr_reader :calls
12
-
13
- sig { params(calls: T::Array[Sentdm::Call::OrHash]).void }
14
- attr_writer :calls
15
-
16
- # Pagination metadata for list responses
17
- sig { returns(T.nilable(Sentdm::PaginationMeta)) }
18
- attr_reader :pagination
19
-
20
- sig { params(pagination: Sentdm::PaginationMeta::OrHash).void }
21
- attr_writer :pagination
22
-
23
- # Paginated list of calls
24
- sig do
25
- params(
26
- calls: T::Array[Sentdm::Call::OrHash],
27
- pagination: Sentdm::PaginationMeta::OrHash
28
- ).returns(T.attached_class)
29
- end
30
- def self.new(
31
- # The calls on this page, most recent first
32
- calls: nil,
33
- # Pagination metadata for list responses
34
- pagination: nil
35
- )
36
- end
37
-
38
- sig do
39
- override.returns(
40
- { calls: T::Array[Sentdm::Call], pagination: Sentdm::PaginationMeta }
41
- )
42
- end
43
- def to_hash
44
- end
45
- end
46
- end
47
- end
@@ -1,199 +0,0 @@
1
- # typed: strong
2
-
3
- module Sentdm
4
- module Resources
5
- class Calls
6
- # Phone calls from the numbers you hold, driven by your own callback URL.
7
- #
8
- # `POST /v3/channels/voice` enables a number for calls, with the callback URL Sent
9
- # asks what to do with each call on it, and `POST /v3/channels/voice/tokens` mints
10
- # a short-lived token that lets a user of your app place and receive calls as that
11
- # number. When a call arrives or a caller presses a key, a signed question is
12
- # POSTed to the callback URL and the answer decides the call;
13
- # `POST /v3/channels/voice/{number}/test` checks the URL answers the way we need
14
- # before a real call reaches it, and
15
- # `POST /v3/channels/voice/{number}/rotate-secret` replaces the signing secret.
16
- # The call events themselves (`call.completed` and the rest) arrive through your
17
- # webhooks.
18
- #
19
- # Every call is a record under `/v3/calls`: read it, list its recordings once one
20
- # is ready, hang it up, start or stop recording, and add, mute or remove
21
- # conference participants while it is live. A leg to a phone number runs for at
22
- # most what your balance affords at the destination's rate.
23
- class Participants
24
- # Mutes or unmutes one participant of the conference room a live call is in, named
25
- # by the participant's own call id from the participants list: send muted true to
26
- # silence them, muted false to let them be heard again. Muting a participant who
27
- # is already muted succeeds, as does unmuting one who is not. A participant who is
28
- # not in this call's room answers 404. A call that has ended answers 409, as does
29
- # a call that is not in a conference.
30
- sig do
31
- params(
32
- participant_id: String,
33
- id: String,
34
- muted: T::Boolean,
35
- sandbox: T::Boolean,
36
- idempotency_key: String,
37
- x_profile_id: String,
38
- request_options: Sentdm::RequestOptions::OrHash
39
- ).void
40
- end
41
- def update(
42
- # Path param: The participant's own call id from the route, as listed by the
43
- # participants endpoint, for example call_9f2ab000-0000-4000-8000-000000000002
44
- participant_id,
45
- # Path param: The call id from the route, as carried by call webhooks and the
46
- # calls list, for example call_9f2ab000-0000-4000-8000-000000000001
47
- id:,
48
- # Body param: true to mute the participant, false to unmute them
49
- muted: nil,
50
- # Body param: Sandbox flag - when true, the operation is simulated without side
51
- # effects Useful for testing integrations without actual execution
52
- sandbox: nil,
53
- # Header param: Unique key to ensure idempotent request processing. Must be 1-255
54
- # alphanumeric characters, hyphens, or underscores. Responses are cached for 24
55
- # hours per key per customer.
56
- idempotency_key: nil,
57
- # Header param: Profile UUID to scope the request to a child profile. Only
58
- # organization API keys can use this header. The profile must belong to the
59
- # calling organization.
60
- x_profile_id: nil,
61
- request_options: {}
62
- )
63
- end
64
-
65
- # Lists who is in the conference room one of your live calls is in: each
66
- # participant's own call id, who they are, whether the room mutes them, and how
67
- # long they have been connected. The call itself is one of the participants. Use a
68
- # participant's id to mute or remove them; it is also a call id, so GET
69
- # /v3/calls/{id} accepts it. A call that has ended answers 409, as does a call
70
- # that is not in a conference.
71
- sig do
72
- params(
73
- id: String,
74
- x_profile_id: String,
75
- request_options: Sentdm::RequestOptions::OrHash
76
- ).returns(Sentdm::Calls::APIResponseOfListOfCallParticipant)
77
- end
78
- def list(
79
- # The call id from the route, as carried by call webhooks and the calls list, for
80
- # example call_9f2ab000-0000-4000-8000-000000000001
81
- id,
82
- # Profile UUID to scope the request to a child profile. Only organization API keys
83
- # can use this header. The profile must belong to the calling organization.
84
- x_profile_id: nil,
85
- request_options: {}
86
- )
87
- end
88
-
89
- # Dials one of your app users or a phone number into a call that is in a
90
- # conference room, and answers with the participant's own call record. The
91
- # participant is a call of their own: it has its own id, can be looked up and hung
92
- # up, and is billed and reported through call.completed and call.failed like any
93
- # other call. Every participant needs a positive balance. A phone participant is
94
- # called from caller_id, which must be one of your numbers, or from the call's
95
- # owning number when omitted, and needs a destination you may call. Only a call
96
- # your answer connected to a conference can take participants: a call connected to
97
- # a user or a number answers 409.
98
- sig do
99
- params(
100
- id: String,
101
- caller_id: T.nilable(String),
102
- sandbox: T::Boolean,
103
- to: Sentdm::Calls::CallParticipantTarget::OrHash,
104
- idempotency_key: String,
105
- x_profile_id: String,
106
- request_options: Sentdm::RequestOptions::OrHash
107
- ).returns(Sentdm::APIResponseOfCall)
108
- end
109
- def add(
110
- # Path param: The call id from the route, as carried by call webhooks and the
111
- # calls list, for example call_9f2ab000-0000-4000-8000-000000000001
112
- id,
113
- # Body param: The number shown to a phone participant as the caller, in E.164
114
- # format. Must be one of your numbers. The call's owning number when omitted
115
- caller_id: nil,
116
- # Body param: Sandbox flag - when true, the operation is simulated without side
117
- # effects Useful for testing integrations without actual execution
118
- sandbox: nil,
119
- # Body param: A participant to add to a call
120
- to: nil,
121
- # Header param: Unique key to ensure idempotent request processing. Must be 1-255
122
- # alphanumeric characters, hyphens, or underscores. Responses are cached for 24
123
- # hours per key per customer.
124
- idempotency_key: nil,
125
- # Header param: Profile UUID to scope the request to a child profile. Only
126
- # organization API keys can use this header. The profile must belong to the
127
- # calling organization.
128
- x_profile_id: nil,
129
- request_options: {}
130
- )
131
- end
132
-
133
- # Removes one participant from the conference room a live call is in, named by the
134
- # participant's own call id from the participants list. Their leg ends and is
135
- # reported through call.completed like any other call; everyone else stays
136
- # connected. A participant who is not in this call's room answers 404. A call that
137
- # has ended answers 409, as does a call that is not in a conference.
138
- sig do
139
- params(
140
- participant_id: String,
141
- id: String,
142
- sandbox: T::Boolean,
143
- x_profile_id: String,
144
- request_options: Sentdm::RequestOptions::OrHash
145
- ).void
146
- end
147
- def remove(
148
- # Path param: The participant's own call id from the route, as listed by the
149
- # participants endpoint, for example call_9f2ab000-0000-4000-8000-000000000002
150
- participant_id,
151
- # Path param: The call id from the route, as carried by call webhooks and the
152
- # calls list, for example call_9f2ab000-0000-4000-8000-000000000001
153
- id:,
154
- # Body param: Sandbox flag - when true, the operation is simulated without side
155
- # effects Useful for testing integrations without actual execution
156
- sandbox: nil,
157
- # Header param: Profile UUID to scope the request to a child profile. Only
158
- # organization API keys can use this header. The profile must belong to the
159
- # calling organization.
160
- x_profile_id: nil,
161
- request_options: {}
162
- )
163
- end
164
-
165
- # Removes every participant from the conference room a live call is in, the call
166
- # itself included. Every leg ends and is reported through call.completed like any
167
- # other call. A room that is already empty answers 204 as well. A call that has
168
- # ended answers 409, as does a call that is not in a conference.
169
- sig do
170
- params(
171
- id: String,
172
- sandbox: T::Boolean,
173
- x_profile_id: String,
174
- request_options: Sentdm::RequestOptions::OrHash
175
- ).void
176
- end
177
- def remove_all(
178
- # Path param: The call id from the route, as carried by call webhooks and the
179
- # calls list, for example call_9f2ab000-0000-4000-8000-000000000001
180
- id,
181
- # Body param: Sandbox flag - when true, the operation is simulated without side
182
- # effects Useful for testing integrations without actual execution
183
- sandbox: nil,
184
- # Header param: Profile UUID to scope the request to a child profile. Only
185
- # organization API keys can use this header. The profile must belong to the
186
- # calling organization.
187
- x_profile_id: nil,
188
- request_options: {}
189
- )
190
- end
191
-
192
- # @api private
193
- sig { params(client: Sentdm::Client).returns(T.attached_class) }
194
- def self.new(client:)
195
- end
196
- end
197
- end
198
- end
199
- end