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
@@ -0,0 +1,63 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Voice
6
+ class CallRecording < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(Sentdm::Voice::CallRecording, Sentdm::Internal::AnyHash)
10
+ end
11
+
12
+ # A pre-signed link that downloads the recording as an MP3 file. Anyone holding it
13
+ # can download the recording until it expires
14
+ sig { returns(T.nilable(String)) }
15
+ attr_reader :download_url
16
+
17
+ sig { params(download_url: String).void }
18
+ attr_writer :download_url
19
+
20
+ # The recording's id, the one the call.recording_ready webhook announced it under
21
+ sig { returns(T.nilable(String)) }
22
+ attr_reader :recording_id
23
+
24
+ sig { params(recording_id: String).void }
25
+ attr_writer :recording_id
26
+
27
+ # When the link stops working (UTC). Request the recordings again for a fresh link
28
+ sig { returns(T.nilable(Time)) }
29
+ attr_reader :url_expires_at
30
+
31
+ sig { params(url_expires_at: Time).void }
32
+ attr_writer :url_expires_at
33
+
34
+ # A short-lived link to a call recording
35
+ sig do
36
+ params(
37
+ download_url: String,
38
+ recording_id: String,
39
+ url_expires_at: Time
40
+ ).returns(T.attached_class)
41
+ end
42
+ def self.new(
43
+ # A pre-signed link that downloads the recording as an MP3 file. Anyone holding it
44
+ # can download the recording until it expires
45
+ download_url: nil,
46
+ # The recording's id, the one the call.recording_ready webhook announced it under
47
+ recording_id: nil,
48
+ # When the link stops working (UTC). Request the recordings again for a fresh link
49
+ url_expires_at: nil
50
+ )
51
+ end
52
+
53
+ sig do
54
+ override.returns(
55
+ { download_url: String, recording_id: String, url_expires_at: Time }
56
+ )
57
+ end
58
+ def to_hash
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,49 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Voice
6
+ class CallRecordings < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(Sentdm::Voice::CallRecordings, Sentdm::Internal::AnyHash)
10
+ end
11
+
12
+ # Every recording of the call, oldest first. Empty until the first
13
+ # call.recording_ready webhook has been sent, and for a call that was never
14
+ # recorded
15
+ sig { returns(T.nilable(T::Array[Sentdm::Voice::CallRecording])) }
16
+ attr_reader :recordings
17
+
18
+ sig do
19
+ params(
20
+ recordings: T::Array[Sentdm::Voice::CallRecording::OrHash]
21
+ ).void
22
+ end
23
+ attr_writer :recordings
24
+
25
+ # The recordings of a call, each as a short-lived download link
26
+ sig do
27
+ params(
28
+ recordings: T::Array[Sentdm::Voice::CallRecording::OrHash]
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(
32
+ # Every recording of the call, oldest first. Empty until the first
33
+ # call.recording_ready webhook has been sent, and for a call that was never
34
+ # recorded
35
+ recordings: nil
36
+ )
37
+ end
38
+
39
+ sig do
40
+ override.returns(
41
+ { recordings: T::Array[Sentdm::Voice::CallRecording] }
42
+ )
43
+ end
44
+ def to_hash
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Voice
6
+ class CallRetrieveParams < 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(Sentdm::Voice::CallRetrieveParams, Sentdm::Internal::AnyHash)
13
+ end
14
+
15
+ sig { returns(String) }
16
+ attr_accessor :id
17
+
18
+ sig { returns(T.nilable(String)) }
19
+ attr_reader :x_profile_id
20
+
21
+ sig { params(x_profile_id: String).void }
22
+ attr_writer :x_profile_id
23
+
24
+ sig do
25
+ params(
26
+ id: String,
27
+ x_profile_id: String,
28
+ request_options: Sentdm::RequestOptions::OrHash
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(id:, x_profile_id: nil, request_options: {})
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ id: String,
38
+ x_profile_id: String,
39
+ request_options: Sentdm::RequestOptions
40
+ }
41
+ )
42
+ end
43
+ def to_hash
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,44 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Voice
6
+ class CallTimelineEntry < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(Sentdm::Voice::CallTimelineEntry, Sentdm::Internal::AnyHash)
10
+ end
11
+
12
+ # INITIATED, RINGING, ANSWERED, COMPLETED, FAILED, NO_ANSWER or REJECTED
13
+ sig { returns(T.nilable(String)) }
14
+ attr_reader :status
15
+
16
+ sig { params(status: String).void }
17
+ attr_writer :status
18
+
19
+ # When the call entered this status (UTC)
20
+ sig { returns(T.nilable(Time)) }
21
+ attr_reader :timestamp
22
+
23
+ sig { params(timestamp: Time).void }
24
+ attr_writer :timestamp
25
+
26
+ # When a call entered a status
27
+ sig do
28
+ params(status: String, timestamp: Time).returns(T.attached_class)
29
+ end
30
+ def self.new(
31
+ # INITIATED, RINGING, ANSWERED, COMPLETED, FAILED, NO_ANSWER or REJECTED
32
+ status: nil,
33
+ # When the call entered this status (UTC)
34
+ timestamp: nil
35
+ )
36
+ end
37
+
38
+ sig { override.returns({ status: String, timestamp: Time }) }
39
+ def to_hash
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,84 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Voice
6
+ module Calls
7
+ class APIResponseOfListOfCallParticipant < Sentdm::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(
11
+ Sentdm::Voice::Calls::APIResponseOfListOfCallParticipant,
12
+ Sentdm::Internal::AnyHash
13
+ )
14
+ end
15
+
16
+ # The response data (null if error)
17
+ sig do
18
+ returns(T.nilable(T::Array[Sentdm::Voice::Calls::CallParticipant]))
19
+ end
20
+ attr_accessor :data
21
+
22
+ # Error information
23
+ sig { returns(T.nilable(Sentdm::ErrorDetail)) }
24
+ attr_reader :error
25
+
26
+ sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
27
+ attr_writer :error
28
+
29
+ # Request and response metadata
30
+ sig { returns(T.nilable(Sentdm::APIMeta)) }
31
+ attr_reader :meta
32
+
33
+ sig { params(meta: Sentdm::APIMeta::OrHash).void }
34
+ attr_writer :meta
35
+
36
+ # Indicates whether the request was successful
37
+ sig { returns(T.nilable(T::Boolean)) }
38
+ attr_reader :success
39
+
40
+ sig { params(success: T::Boolean).void }
41
+ attr_writer :success
42
+
43
+ # Standard API response envelope for all v3 endpoints
44
+ sig do
45
+ params(
46
+ data:
47
+ T.nilable(
48
+ T::Array[Sentdm::Voice::Calls::CallParticipant::OrHash]
49
+ ),
50
+ error: T.nilable(Sentdm::ErrorDetail::OrHash),
51
+ meta: Sentdm::APIMeta::OrHash,
52
+ success: T::Boolean
53
+ ).returns(T.attached_class)
54
+ end
55
+ def self.new(
56
+ # The response data (null if error)
57
+ data: nil,
58
+ # Error information
59
+ error: nil,
60
+ # Request and response metadata
61
+ meta: nil,
62
+ # Indicates whether the request was successful
63
+ success: nil
64
+ )
65
+ end
66
+
67
+ sig do
68
+ override.returns(
69
+ {
70
+ data:
71
+ T.nilable(T::Array[Sentdm::Voice::Calls::CallParticipant]),
72
+ error: T.nilable(Sentdm::ErrorDetail),
73
+ meta: Sentdm::APIMeta,
74
+ success: T::Boolean
75
+ }
76
+ )
77
+ end
78
+ def to_hash
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,97 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Voice
6
+ CallParticipant = Calls::CallParticipant
7
+
8
+ module Calls
9
+ class CallParticipant < Sentdm::Internal::Type::BaseModel
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Sentdm::Voice::Calls::CallParticipant,
14
+ Sentdm::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # The participant's own call id: what the mute and remove endpoints take, and what
19
+ # GET /v3/voice/calls/{id} accepts
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :id
22
+
23
+ sig { params(id: String).void }
24
+ attr_writer :id
25
+
26
+ # How long the participant has been connected to the room, in seconds
27
+ sig { returns(T.nilable(Integer)) }
28
+ attr_reader :duration_seconds
29
+
30
+ sig { params(duration_seconds: Integer).void }
31
+ attr_writer :duration_seconds
32
+
33
+ # user for one of your app users, number for a phone number, anonymous for a
34
+ # caller who withheld their number
35
+ sig { returns(T.nilable(String)) }
36
+ attr_reader :kind
37
+
38
+ sig { params(kind: String).void }
39
+ attr_writer :kind
40
+
41
+ # True while the room mutes this participant
42
+ sig { returns(T.nilable(T::Boolean)) }
43
+ attr_reader :muted
44
+
45
+ sig { params(muted: T::Boolean).void }
46
+ attr_writer :muted
47
+
48
+ # The app user's identity or the phone number in E.164 format. Null when the kind
49
+ # is anonymous
50
+ sig { returns(T.nilable(String)) }
51
+ attr_accessor :value
52
+
53
+ # A participant of a conference call
54
+ sig do
55
+ params(
56
+ id: String,
57
+ duration_seconds: Integer,
58
+ kind: String,
59
+ muted: T::Boolean,
60
+ value: T.nilable(String)
61
+ ).returns(T.attached_class)
62
+ end
63
+ def self.new(
64
+ # The participant's own call id: what the mute and remove endpoints take, and what
65
+ # GET /v3/voice/calls/{id} accepts
66
+ id: nil,
67
+ # How long the participant has been connected to the room, in seconds
68
+ duration_seconds: nil,
69
+ # user for one of your app users, number for a phone number, anonymous for a
70
+ # caller who withheld their number
71
+ kind: nil,
72
+ # True while the room mutes this participant
73
+ muted: nil,
74
+ # The app user's identity or the phone number in E.164 format. Null when the kind
75
+ # is anonymous
76
+ value: nil
77
+ )
78
+ end
79
+
80
+ sig do
81
+ override.returns(
82
+ {
83
+ id: String,
84
+ duration_seconds: Integer,
85
+ kind: String,
86
+ muted: T::Boolean,
87
+ value: T.nilable(String)
88
+ }
89
+ )
90
+ end
91
+ def to_hash
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,49 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Voice
6
+ CallParticipantTarget = Calls::CallParticipantTarget
7
+
8
+ module Calls
9
+ class CallParticipantTarget < Sentdm::Internal::Type::BaseModel
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Sentdm::Voice::Calls::CallParticipantTarget,
14
+ Sentdm::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # user for one of your app users, number for a phone number
19
+ sig { returns(T.nilable(String)) }
20
+ attr_reader :kind
21
+
22
+ sig { params(kind: String).void }
23
+ attr_writer :kind
24
+
25
+ # The app user's identity, or the phone number in E.164 format
26
+ sig { returns(T.nilable(String)) }
27
+ attr_reader :value
28
+
29
+ sig { params(value: String).void }
30
+ attr_writer :value
31
+
32
+ # A participant to add to a call
33
+ sig { params(kind: String, value: String).returns(T.attached_class) }
34
+ def self.new(
35
+ # user for one of your app users, number for a phone number
36
+ kind: nil,
37
+ # The app user's identity, or the phone number in E.164 format
38
+ value: nil
39
+ )
40
+ end
41
+
42
+ sig { override.returns({ kind: String, value: String }) }
43
+ def to_hash
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,104 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Voice
6
+ module Calls
7
+ class ParticipantAddParams < Sentdm::Internal::Type::BaseModel
8
+ extend Sentdm::Internal::Type::RequestParameters::Converter
9
+ include Sentdm::Internal::Type::RequestParameters
10
+
11
+ OrHash =
12
+ T.type_alias do
13
+ T.any(
14
+ Sentdm::Voice::Calls::ParticipantAddParams,
15
+ Sentdm::Internal::AnyHash
16
+ )
17
+ end
18
+
19
+ sig { returns(String) }
20
+ attr_accessor :id
21
+
22
+ # The number shown to a phone participant as the caller, in E.164 format. Must be
23
+ # one of your numbers. The call's owning number when omitted
24
+ sig { returns(T.nilable(String)) }
25
+ attr_accessor :caller_id
26
+
27
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
28
+ # for testing integrations without actual execution
29
+ sig { returns(T.nilable(T::Boolean)) }
30
+ attr_reader :sandbox
31
+
32
+ sig { params(sandbox: T::Boolean).void }
33
+ attr_writer :sandbox
34
+
35
+ # A participant to add to a call
36
+ sig do
37
+ returns(T.nilable(Sentdm::Voice::Calls::CallParticipantTarget))
38
+ end
39
+ attr_reader :to
40
+
41
+ sig do
42
+ params(to: Sentdm::Voice::Calls::CallParticipantTarget::OrHash).void
43
+ end
44
+ attr_writer :to
45
+
46
+ sig { returns(T.nilable(String)) }
47
+ attr_reader :idempotency_key
48
+
49
+ sig { params(idempotency_key: String).void }
50
+ attr_writer :idempotency_key
51
+
52
+ sig { returns(T.nilable(String)) }
53
+ attr_reader :x_profile_id
54
+
55
+ sig { params(x_profile_id: String).void }
56
+ attr_writer :x_profile_id
57
+
58
+ sig do
59
+ params(
60
+ id: String,
61
+ caller_id: T.nilable(String),
62
+ sandbox: T::Boolean,
63
+ to: Sentdm::Voice::Calls::CallParticipantTarget::OrHash,
64
+ idempotency_key: String,
65
+ x_profile_id: String,
66
+ request_options: Sentdm::RequestOptions::OrHash
67
+ ).returns(T.attached_class)
68
+ end
69
+ def self.new(
70
+ id:,
71
+ # The number shown to a phone participant as the caller, in E.164 format. Must be
72
+ # one of your numbers. The call's owning number when omitted
73
+ caller_id: nil,
74
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
75
+ # for testing integrations without actual execution
76
+ sandbox: nil,
77
+ # A participant to add to a call
78
+ to: nil,
79
+ idempotency_key: nil,
80
+ x_profile_id: nil,
81
+ request_options: {}
82
+ )
83
+ end
84
+
85
+ sig do
86
+ override.returns(
87
+ {
88
+ id: String,
89
+ caller_id: T.nilable(String),
90
+ sandbox: T::Boolean,
91
+ to: Sentdm::Voice::Calls::CallParticipantTarget,
92
+ idempotency_key: String,
93
+ x_profile_id: String,
94
+ request_options: Sentdm::RequestOptions
95
+ }
96
+ )
97
+ end
98
+ def to_hash
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,53 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Voice
6
+ module Calls
7
+ class ParticipantListParams < Sentdm::Internal::Type::BaseModel
8
+ extend Sentdm::Internal::Type::RequestParameters::Converter
9
+ include Sentdm::Internal::Type::RequestParameters
10
+
11
+ OrHash =
12
+ T.type_alias do
13
+ T.any(
14
+ Sentdm::Voice::Calls::ParticipantListParams,
15
+ Sentdm::Internal::AnyHash
16
+ )
17
+ end
18
+
19
+ sig { returns(String) }
20
+ attr_accessor :id
21
+
22
+ sig { returns(T.nilable(String)) }
23
+ attr_reader :x_profile_id
24
+
25
+ sig { params(x_profile_id: String).void }
26
+ attr_writer :x_profile_id
27
+
28
+ sig do
29
+ params(
30
+ id: String,
31
+ x_profile_id: String,
32
+ request_options: Sentdm::RequestOptions::OrHash
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(id:, x_profile_id: nil, request_options: {})
36
+ end
37
+
38
+ sig do
39
+ override.returns(
40
+ {
41
+ id: String,
42
+ x_profile_id: String,
43
+ request_options: Sentdm::RequestOptions
44
+ }
45
+ )
46
+ end
47
+ def to_hash
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,53 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Voice
6
+ module Calls
7
+ class ParticipantRemoveAllParams < Sentdm::Models::MutationRequest
8
+ extend Sentdm::Internal::Type::RequestParameters::Converter
9
+ include Sentdm::Internal::Type::RequestParameters
10
+
11
+ OrHash =
12
+ T.type_alias do
13
+ T.any(
14
+ Sentdm::Voice::Calls::ParticipantRemoveAllParams,
15
+ Sentdm::Internal::AnyHash
16
+ )
17
+ end
18
+
19
+ sig { returns(String) }
20
+ attr_accessor :id
21
+
22
+ sig { returns(T.nilable(String)) }
23
+ attr_reader :x_profile_id
24
+
25
+ sig { params(x_profile_id: String).void }
26
+ attr_writer :x_profile_id
27
+
28
+ sig do
29
+ params(
30
+ id: String,
31
+ x_profile_id: String,
32
+ request_options: Sentdm::RequestOptions::OrHash
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(id:, x_profile_id: nil, request_options: {})
36
+ end
37
+
38
+ sig do
39
+ override.returns(
40
+ {
41
+ id: String,
42
+ x_profile_id: String,
43
+ request_options: Sentdm::RequestOptions
44
+ }
45
+ )
46
+ end
47
+ def to_hash
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end