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,231 +0,0 @@
1
- # frozen_string_literal: true
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
- # Some parameter documentations has been truncated, see
25
- # {Sentdm::Models::Calls::ParticipantUpdateParams} for more details.
26
- #
27
- # Mutes or unmutes one participant of the conference room a live call is in, named
28
- # by the participant's own call id from the participants list: send muted true to
29
- # silence them, muted false to let them be heard again. Muting a participant who
30
- # is already muted succeeds, as does unmuting one who is not. A participant who is
31
- # not in this call's room answers 404. A call that has ended answers 409, as does
32
- # a call that is not in a conference.
33
- #
34
- # @overload update(participant_id, id:, muted: nil, sandbox: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
35
- #
36
- # @param participant_id [String] Path param: The participant's own call id from the route, as listed by the parti
37
- #
38
- # @param id [String] Path param: The call id from the route, as carried by call webhooks and the call
39
- #
40
- # @param muted [Boolean] Body param: true to mute the participant, false to unmute them
41
- #
42
- # @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
43
- #
44
- # @param idempotency_key [String] Header param: Unique key to ensure idempotent request processing. Must be 1-255
45
- #
46
- # @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
47
- #
48
- # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
49
- #
50
- # @return [nil]
51
- #
52
- # @see Sentdm::Models::Calls::ParticipantUpdateParams
53
- def update(participant_id, params)
54
- parsed, options = Sentdm::Calls::ParticipantUpdateParams.dump_request(params)
55
- id =
56
- parsed.delete(:id) do
57
- raise ArgumentError.new("missing required path argument #{_1}")
58
- end
59
- header_params = {idempotency_key: "idempotency-key", x_profile_id: "x-profile-id"}
60
- @client.request(
61
- method: :patch,
62
- path: ["v3/calls/%1$s/participants/%2$s", id, participant_id],
63
- headers: parsed.slice(*header_params.keys).transform_keys(header_params),
64
- body: parsed.except(*header_params.keys),
65
- model: NilClass,
66
- options: options
67
- )
68
- end
69
-
70
- # Some parameter documentations has been truncated, see
71
- # {Sentdm::Models::Calls::ParticipantListParams} for more details.
72
- #
73
- # Lists who is in the conference room one of your live calls is in: each
74
- # participant's own call id, who they are, whether the room mutes them, and how
75
- # long they have been connected. The call itself is one of the participants. Use a
76
- # participant's id to mute or remove them; it is also a call id, so GET
77
- # /v3/calls/{id} accepts it. A call that has ended answers 409, as does a call
78
- # that is not in a conference.
79
- #
80
- # @overload list(id, x_profile_id: nil, request_options: {})
81
- #
82
- # @param id [String] The call id from the route, as carried by call webhooks and the calls list, for
83
- #
84
- # @param x_profile_id [String] Profile UUID to scope the request to a child profile. Only organization API keys
85
- #
86
- # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
87
- #
88
- # @return [Sentdm::Models::Calls::APIResponseOfListOfCallParticipant]
89
- #
90
- # @see Sentdm::Models::Calls::ParticipantListParams
91
- def list(id, params = {})
92
- parsed, options = Sentdm::Calls::ParticipantListParams.dump_request(params)
93
- @client.request(
94
- method: :get,
95
- path: ["v3/calls/%1$s/participants", id],
96
- headers: parsed.transform_keys(x_profile_id: "x-profile-id"),
97
- model: Sentdm::Calls::APIResponseOfListOfCallParticipant,
98
- options: options
99
- )
100
- end
101
-
102
- # Some parameter documentations has been truncated, see
103
- # {Sentdm::Models::Calls::ParticipantAddParams} for more details.
104
- #
105
- # Dials one of your app users or a phone number into a call that is in a
106
- # conference room, and answers with the participant's own call record. The
107
- # participant is a call of their own: it has its own id, can be looked up and hung
108
- # up, and is billed and reported through call.completed and call.failed like any
109
- # other call. Every participant needs a positive balance. A phone participant is
110
- # called from caller_id, which must be one of your numbers, or from the call's
111
- # owning number when omitted, and needs a destination you may call. Only a call
112
- # your answer connected to a conference can take participants: a call connected to
113
- # a user or a number answers 409.
114
- #
115
- # @overload add(id, caller_id: nil, sandbox: nil, to: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
116
- #
117
- # @param id [String] Path param: The call id from the route, as carried by call webhooks and the call
118
- #
119
- # @param caller_id [String, nil] Body param: The number shown to a phone participant as the caller, in E.164 form
120
- #
121
- # @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
122
- #
123
- # @param to [Sentdm::Models::Calls::CallParticipantTarget] Body param: A participant to add to a call
124
- #
125
- # @param idempotency_key [String] Header param: Unique key to ensure idempotent request processing. Must be 1-255
126
- #
127
- # @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
128
- #
129
- # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
130
- #
131
- # @return [Sentdm::Models::APIResponseOfCall]
132
- #
133
- # @see Sentdm::Models::Calls::ParticipantAddParams
134
- def add(id, params = {})
135
- parsed, options = Sentdm::Calls::ParticipantAddParams.dump_request(params)
136
- header_params = {idempotency_key: "idempotency-key", x_profile_id: "x-profile-id"}
137
- @client.request(
138
- method: :post,
139
- path: ["v3/calls/%1$s/participants", id],
140
- headers: parsed.slice(*header_params.keys).transform_keys(header_params),
141
- body: parsed.except(*header_params.keys),
142
- model: Sentdm::APIResponseOfCall,
143
- options: options
144
- )
145
- end
146
-
147
- # Some parameter documentations has been truncated, see
148
- # {Sentdm::Models::Calls::ParticipantRemoveParams} for more details.
149
- #
150
- # Removes one participant from the conference room a live call is in, named by the
151
- # participant's own call id from the participants list. Their leg ends and is
152
- # reported through call.completed like any other call; everyone else stays
153
- # connected. A participant who is not in this call's room answers 404. A call that
154
- # has ended answers 409, as does a call that is not in a conference.
155
- #
156
- # @overload remove(participant_id, id:, sandbox: nil, x_profile_id: nil, request_options: {})
157
- #
158
- # @param participant_id [String] Path param: The participant's own call id from the route, as listed by the parti
159
- #
160
- # @param id [String] Path param: The call id from the route, as carried by call webhooks and the call
161
- #
162
- # @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
163
- #
164
- # @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
165
- #
166
- # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
167
- #
168
- # @return [nil]
169
- #
170
- # @see Sentdm::Models::Calls::ParticipantRemoveParams
171
- def remove(participant_id, params)
172
- parsed, options = Sentdm::Calls::ParticipantRemoveParams.dump_request(params)
173
- id =
174
- parsed.delete(:id) do
175
- raise ArgumentError.new("missing required path argument #{_1}")
176
- end
177
- header_params = {x_profile_id: "x-profile-id"}
178
- @client.request(
179
- method: :delete,
180
- path: ["v3/calls/%1$s/participants/%2$s", id, participant_id],
181
- headers: parsed.slice(*header_params.keys).transform_keys(header_params),
182
- body: parsed.except(*header_params.keys),
183
- model: NilClass,
184
- options: options
185
- )
186
- end
187
-
188
- # Some parameter documentations has been truncated, see
189
- # {Sentdm::Models::Calls::ParticipantRemoveAllParams} for more details.
190
- #
191
- # Removes every participant from the conference room a live call is in, the call
192
- # itself included. Every leg ends and is reported through call.completed like any
193
- # other call. A room that is already empty answers 204 as well. A call that has
194
- # ended answers 409, as does a call that is not in a conference.
195
- #
196
- # @overload remove_all(id, sandbox: nil, x_profile_id: nil, request_options: {})
197
- #
198
- # @param id [String] Path param: The call id from the route, as carried by call webhooks and the call
199
- #
200
- # @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
201
- #
202
- # @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
203
- #
204
- # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
205
- #
206
- # @return [nil]
207
- #
208
- # @see Sentdm::Models::Calls::ParticipantRemoveAllParams
209
- def remove_all(id, params = {})
210
- parsed, options = Sentdm::Calls::ParticipantRemoveAllParams.dump_request(params)
211
- header_params = {x_profile_id: "x-profile-id"}
212
- @client.request(
213
- method: :delete,
214
- path: ["v3/calls/%1$s/participants", id],
215
- headers: parsed.slice(*header_params.keys).transform_keys(header_params),
216
- body: parsed.except(*header_params.keys),
217
- model: NilClass,
218
- options: options
219
- )
220
- end
221
-
222
- # @api private
223
- #
224
- # @param client [Sentdm::Client]
225
- def initialize(client:)
226
- @client = client
227
- end
228
- end
229
- end
230
- end
231
- end
@@ -1,236 +0,0 @@
1
- # frozen_string_literal: true
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
- # @return [Sentdm::Resources::Calls::Participants]
41
- attr_reader :participants
42
-
43
- # Some parameter documentations has been truncated, see
44
- # {Sentdm::Models::CallRetrieveParams} for more details.
45
- #
46
- # Retrieves one of your calls by id: the parties, the owning number, the current
47
- # status with its failure reason, duration, price, recording availability, and a
48
- # timeline of when the call entered each status.
49
- #
50
- # @overload retrieve(id, x_profile_id: nil, request_options: {})
51
- #
52
- # @param id [String] The call id from the route, as carried by call webhooks and the calls list, for
53
- #
54
- # @param x_profile_id [String] Profile UUID to scope the request to a child profile. Only organization API keys
55
- #
56
- # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
57
- #
58
- # @return [Sentdm::Models::APIResponseOfCall]
59
- #
60
- # @see Sentdm::Models::CallRetrieveParams
61
- def retrieve(id, params = {})
62
- parsed, options = Sentdm::CallRetrieveParams.dump_request(params)
63
- @client.request(
64
- method: :get,
65
- path: ["v3/calls/%1$s", id],
66
- headers: parsed.transform_keys(x_profile_id: "x-profile-id"),
67
- model: Sentdm::APIResponseOfCall,
68
- options: options
69
- )
70
- end
71
-
72
- # Some parameter documentations has been truncated, see
73
- # {Sentdm::Models::CallListParams} for more details.
74
- #
75
- # Retrieves a paginated list of your calls, most recent first. Filter by
76
- # direction, status, the owning number, and the time the call started (from and to
77
- # are inclusive). Use the call webhooks for real-time updates; this list is for
78
- # looking calls up afterwards.
79
- #
80
- # @overload list(direction: nil, from: nil, number: nil, page: nil, page_size: nil, status: nil, to: nil, x_profile_id: nil, request_options: {})
81
- #
82
- # @param direction [String, nil] Query param: Optional direction filter: outbound for calls placed from your app,
83
- #
84
- # @param from [Time, nil] Query param: Only calls started at or after this time (ISO 8601)
85
- #
86
- # @param number [String, nil] Query param: Optional filter on the number that owns the call, one of your voice
87
- #
88
- # @param page [Integer] Query param: Page number (1-indexed)
89
- #
90
- # @param page_size [Integer] Query param: Number of items per page
91
- #
92
- # @param status [String, nil] Query param: Optional status filter: initiated, ringing, answered, completed, fa
93
- #
94
- # @param to [Time, nil] Query param: Only calls started at or before this time (ISO 8601)
95
- #
96
- # @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
97
- #
98
- # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
99
- #
100
- # @return [Sentdm::Internal::CallsPage<Sentdm::Models::Call>]
101
- #
102
- # @see Sentdm::Models::CallListParams
103
- def list(params = {})
104
- query_params = [:direction, :from, :number, :page, :page_size, :status, :to]
105
- parsed, options = Sentdm::CallListParams.dump_request(params)
106
- query = Sentdm::Internal::Util.encode_query_params(parsed.slice(*query_params))
107
- @client.request(
108
- method: :get,
109
- path: "v3/calls",
110
- query: query,
111
- headers: parsed.except(*query_params).transform_keys(x_profile_id: "x-profile-id"),
112
- page: Sentdm::Internal::CallsPage,
113
- model: Sentdm::Call,
114
- options: options
115
- )
116
- end
117
-
118
- # Some parameter documentations has been truncated, see
119
- # {Sentdm::Models::CallHangupParams} for more details.
120
- #
121
- # Ends one of your live calls. The call then ends the way any other call does once
122
- # the disconnect is reported: an answered call as COMPLETED with call.completed, a
123
- # call still ringing as NO_ANSWER, REJECTED or FAILED with call.failed. A call
124
- # that has already ended answers 409, and so does a call with no phone leg, such
125
- # as one between two app users.
126
- #
127
- # @overload hangup(id, sandbox: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
128
- #
129
- # @param id [String] Path param: The call id from the route, as carried by call webhooks and the call
130
- #
131
- # @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
132
- #
133
- # @param idempotency_key [String] Header param: Unique key to ensure idempotent request processing. Must be 1-255
134
- #
135
- # @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
136
- #
137
- # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
138
- #
139
- # @return [nil]
140
- #
141
- # @see Sentdm::Models::CallHangupParams
142
- def hangup(id, params = {})
143
- parsed, options = Sentdm::CallHangupParams.dump_request(params)
144
- header_params = {idempotency_key: "idempotency-key", x_profile_id: "x-profile-id"}
145
- @client.request(
146
- method: :post,
147
- path: ["v3/calls/%1$s/hangup", id],
148
- headers: parsed.slice(*header_params.keys).transform_keys(header_params),
149
- body: parsed.except(*header_params.keys),
150
- model: NilClass,
151
- options: options
152
- )
153
- end
154
-
155
- # Some parameter documentations has been truncated, see
156
- # {Sentdm::Models::CallListRecordingsParams} for more details.
157
- #
158
- # Returns pre-signed links to the recordings of one of your calls, each valid
159
- # until its url_expires_at. A recording appears once the call was recorded, by a
160
- # connect answer with record set, a startRecording instruction or the recordings
161
- # command, and the call.recording_ready webhook has been sent; until then, and for
162
- # a call that was never recorded, the list is empty. A call recorded more than
163
- # once lists every recording, oldest first, each under the recording_id its
164
- # call.recording_ready webhook carried.
165
- #
166
- # @overload list_recordings(id, x_profile_id: nil, request_options: {})
167
- #
168
- # @param id [String] The call id from the route, as carried by call webhooks and the calls list, for
169
- #
170
- # @param x_profile_id [String] Profile UUID to scope the request to a child profile. Only organization API keys
171
- #
172
- # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
173
- #
174
- # @return [Sentdm::Models::APIResponseOfCallRecordings]
175
- #
176
- # @see Sentdm::Models::CallListRecordingsParams
177
- def list_recordings(id, params = {})
178
- parsed, options = Sentdm::CallListRecordingsParams.dump_request(params)
179
- @client.request(
180
- method: :get,
181
- path: ["v3/calls/%1$s/recordings", id],
182
- headers: parsed.transform_keys(x_profile_id: "x-profile-id"),
183
- model: Sentdm::APIResponseOfCallRecordings,
184
- options: options
185
- )
186
- end
187
-
188
- # Some parameter documentations has been truncated, see
189
- # {Sentdm::Models::CallRecordParams} for more details.
190
- #
191
- # Starts or stops recording one of your live calls. Use start to begin recording
192
- # mid-call, or stop to end a recording, whether it was started here or by a
193
- # connect answer with record set. A call that has already ended answers 409, and
194
- # so does a call with no phone leg, such as one between two app users, which can't
195
- # be recorded.
196
- #
197
- # @overload record(id, action: nil, sandbox: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
198
- #
199
- # @param id [String] Path param: The call id from the route, as carried by call webhooks and the call
200
- #
201
- # @param action [String] Body param: start to begin recording, stop to end it
202
- #
203
- # @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
204
- #
205
- # @param idempotency_key [String] Header param: Unique key to ensure idempotent request processing. Must be 1-255
206
- #
207
- # @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
208
- #
209
- # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
210
- #
211
- # @return [nil]
212
- #
213
- # @see Sentdm::Models::CallRecordParams
214
- def record(id, params = {})
215
- parsed, options = Sentdm::CallRecordParams.dump_request(params)
216
- header_params = {idempotency_key: "idempotency-key", x_profile_id: "x-profile-id"}
217
- @client.request(
218
- method: :post,
219
- path: ["v3/calls/%1$s/recordings", id],
220
- headers: parsed.slice(*header_params.keys).transform_keys(header_params),
221
- body: parsed.except(*header_params.keys),
222
- model: NilClass,
223
- options: options
224
- )
225
- end
226
-
227
- # @api private
228
- #
229
- # @param client [Sentdm::Client]
230
- def initialize(client:)
231
- @client = client
232
- @participants = Sentdm::Resources::Calls::Participants.new(client: client)
233
- end
234
- end
235
- end
236
- end
@@ -1,74 +0,0 @@
1
- # typed: strong
2
-
3
- module Sentdm
4
- module Models
5
- class APIResponseOfCall < Sentdm::Internal::Type::BaseModel
6
- OrHash =
7
- T.type_alias do
8
- T.any(Sentdm::APIResponseOfCall, Sentdm::Internal::AnyHash)
9
- end
10
-
11
- # A call record
12
- sig { returns(T.nilable(Sentdm::Call)) }
13
- attr_reader :data
14
-
15
- sig { params(data: T.nilable(Sentdm::Call::OrHash)).void }
16
- attr_writer :data
17
-
18
- # Error information
19
- sig { returns(T.nilable(Sentdm::ErrorDetail)) }
20
- attr_reader :error
21
-
22
- sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
23
- attr_writer :error
24
-
25
- # Request and response metadata
26
- sig { returns(T.nilable(Sentdm::APIMeta)) }
27
- attr_reader :meta
28
-
29
- sig { params(meta: Sentdm::APIMeta::OrHash).void }
30
- attr_writer :meta
31
-
32
- # Indicates whether the request was successful
33
- sig { returns(T.nilable(T::Boolean)) }
34
- attr_reader :success
35
-
36
- sig { params(success: T::Boolean).void }
37
- attr_writer :success
38
-
39
- # Standard API response envelope for all v3 endpoints
40
- sig do
41
- params(
42
- data: T.nilable(Sentdm::Call::OrHash),
43
- error: T.nilable(Sentdm::ErrorDetail::OrHash),
44
- meta: Sentdm::APIMeta::OrHash,
45
- success: T::Boolean
46
- ).returns(T.attached_class)
47
- end
48
- def self.new(
49
- # A call record
50
- data: nil,
51
- # Error information
52
- error: nil,
53
- # Request and response metadata
54
- meta: nil,
55
- # Indicates whether the request was successful
56
- success: nil
57
- )
58
- end
59
-
60
- sig do
61
- override.returns(
62
- {
63
- data: T.nilable(Sentdm::Call),
64
- error: T.nilable(Sentdm::ErrorDetail),
65
- meta: Sentdm::APIMeta,
66
- success: T::Boolean
67
- }
68
- )
69
- end
70
- def to_hash
71
- end
72
- end
73
- end
74
- end
@@ -1,74 +0,0 @@
1
- # typed: strong
2
-
3
- module Sentdm
4
- module Models
5
- class APIResponseOfCallRecordings < Sentdm::Internal::Type::BaseModel
6
- OrHash =
7
- T.type_alias do
8
- T.any(Sentdm::APIResponseOfCallRecordings, Sentdm::Internal::AnyHash)
9
- end
10
-
11
- # The recordings of a call, each as a short-lived download link
12
- sig { returns(T.nilable(Sentdm::CallRecordings)) }
13
- attr_reader :data
14
-
15
- sig { params(data: T.nilable(Sentdm::CallRecordings::OrHash)).void }
16
- attr_writer :data
17
-
18
- # Error information
19
- sig { returns(T.nilable(Sentdm::ErrorDetail)) }
20
- attr_reader :error
21
-
22
- sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
23
- attr_writer :error
24
-
25
- # Request and response metadata
26
- sig { returns(T.nilable(Sentdm::APIMeta)) }
27
- attr_reader :meta
28
-
29
- sig { params(meta: Sentdm::APIMeta::OrHash).void }
30
- attr_writer :meta
31
-
32
- # Indicates whether the request was successful
33
- sig { returns(T.nilable(T::Boolean)) }
34
- attr_reader :success
35
-
36
- sig { params(success: T::Boolean).void }
37
- attr_writer :success
38
-
39
- # Standard API response envelope for all v3 endpoints
40
- sig do
41
- params(
42
- data: T.nilable(Sentdm::CallRecordings::OrHash),
43
- error: T.nilable(Sentdm::ErrorDetail::OrHash),
44
- meta: Sentdm::APIMeta::OrHash,
45
- success: T::Boolean
46
- ).returns(T.attached_class)
47
- end
48
- def self.new(
49
- # The recordings of a call, each as a short-lived download link
50
- data: nil,
51
- # Error information
52
- error: nil,
53
- # Request and response metadata
54
- meta: nil,
55
- # Indicates whether the request was successful
56
- success: nil
57
- )
58
- end
59
-
60
- sig do
61
- override.returns(
62
- {
63
- data: T.nilable(Sentdm::CallRecordings),
64
- error: T.nilable(Sentdm::ErrorDetail),
65
- meta: Sentdm::APIMeta,
66
- success: T::Boolean
67
- }
68
- )
69
- end
70
- def to_hash
71
- end
72
- end
73
- end
74
- end
@@ -1,74 +0,0 @@
1
- # typed: strong
2
-
3
- module Sentdm
4
- module Models
5
- class APIResponseOfCallsList < Sentdm::Internal::Type::BaseModel
6
- OrHash =
7
- T.type_alias do
8
- T.any(Sentdm::APIResponseOfCallsList, Sentdm::Internal::AnyHash)
9
- end
10
-
11
- # Paginated list of calls
12
- sig { returns(T.nilable(Sentdm::CallsList)) }
13
- attr_reader :data
14
-
15
- sig { params(data: T.nilable(Sentdm::CallsList::OrHash)).void }
16
- attr_writer :data
17
-
18
- # Error information
19
- sig { returns(T.nilable(Sentdm::ErrorDetail)) }
20
- attr_reader :error
21
-
22
- sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
23
- attr_writer :error
24
-
25
- # Request and response metadata
26
- sig { returns(T.nilable(Sentdm::APIMeta)) }
27
- attr_reader :meta
28
-
29
- sig { params(meta: Sentdm::APIMeta::OrHash).void }
30
- attr_writer :meta
31
-
32
- # Indicates whether the request was successful
33
- sig { returns(T.nilable(T::Boolean)) }
34
- attr_reader :success
35
-
36
- sig { params(success: T::Boolean).void }
37
- attr_writer :success
38
-
39
- # Standard API response envelope for all v3 endpoints
40
- sig do
41
- params(
42
- data: T.nilable(Sentdm::CallsList::OrHash),
43
- error: T.nilable(Sentdm::ErrorDetail::OrHash),
44
- meta: Sentdm::APIMeta::OrHash,
45
- success: T::Boolean
46
- ).returns(T.attached_class)
47
- end
48
- def self.new(
49
- # Paginated list of calls
50
- data: nil,
51
- # Error information
52
- error: nil,
53
- # Request and response metadata
54
- meta: nil,
55
- # Indicates whether the request was successful
56
- success: nil
57
- )
58
- end
59
-
60
- sig do
61
- override.returns(
62
- {
63
- data: T.nilable(Sentdm::CallsList),
64
- error: T.nilable(Sentdm::ErrorDetail),
65
- meta: Sentdm::APIMeta,
66
- success: T::Boolean
67
- }
68
- )
69
- end
70
- def to_hash
71
- end
72
- end
73
- end
74
- end