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,45 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceAgentPartySpec = Voice::VoiceAgentPartySpec
6
+
7
+ module Voice
8
+ class VoiceAgentPartySpec < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Sentdm::Voice::VoiceAgentPartySpec, Sentdm::Internal::AnyHash)
12
+ end
13
+
14
+ # number, user or agent.
15
+ sig { returns(T.nilable(String)) }
16
+ attr_accessor :kind
17
+
18
+ # The E.164 number, the app user's identity, or the agent id (agent\_…).
19
+ sig { returns(T.nilable(String)) }
20
+ attr_accessor :value
21
+
22
+ sig do
23
+ params(kind: T.nilable(String), value: T.nilable(String)).returns(
24
+ T.attached_class
25
+ )
26
+ end
27
+ def self.new(
28
+ # number, user or agent.
29
+ kind: nil,
30
+ # The E.164 number, the app user's identity, or the agent id (agent\_…).
31
+ value: nil
32
+ )
33
+ end
34
+
35
+ sig do
36
+ override.returns(
37
+ { kind: T.nilable(String), value: T.nilable(String) }
38
+ )
39
+ end
40
+ def to_hash
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,37 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceAgentSecret = Voice::VoiceAgentSecret
6
+
7
+ module Voice
8
+ class VoiceAgentSecret < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Sentdm::Voice::VoiceAgentSecret, Sentdm::Internal::AnyHash)
12
+ end
13
+
14
+ # The new whsec\_ secret. The previous one stopped signing the moment this was
15
+ # returned. Shown once.
16
+ sig { returns(T.nilable(String)) }
17
+ attr_reader :signing_secret
18
+
19
+ sig { params(signing_secret: String).void }
20
+ attr_writer :signing_secret
21
+
22
+ # A freshly rotated signing secret.
23
+ sig { params(signing_secret: String).returns(T.attached_class) }
24
+ def self.new(
25
+ # The new whsec\_ secret. The previous one stopped signing the moment this was
26
+ # returned. Shown once.
27
+ signing_secret: nil
28
+ )
29
+ end
30
+
31
+ sig { override.returns({ signing_secret: String }) }
32
+ def to_hash
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceAgentSpeech = Voice::VoiceAgentSpeech
6
+
7
+ module Voice
8
+ class VoiceAgentSpeech < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Sentdm::Voice::VoiceAgentSpeech, Sentdm::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(T.nilable(String)) }
15
+ attr_reader :language
16
+
17
+ sig { params(language: String).void }
18
+ attr_writer :language
19
+
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :setting
22
+
23
+ sig { params(setting: String).void }
24
+ attr_writer :setting
25
+
26
+ sig { returns(T.nilable(String)) }
27
+ attr_reader :voice
28
+
29
+ sig { params(voice: String).void }
30
+ attr_writer :voice
31
+
32
+ sig do
33
+ params(language: String, setting: String, voice: String).returns(
34
+ T.attached_class
35
+ )
36
+ end
37
+ def self.new(language: nil, setting: nil, voice: nil)
38
+ end
39
+
40
+ sig do
41
+ override.returns({ language: String, setting: String, voice: String })
42
+ end
43
+ def to_hash
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,62 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceAgentSpeechSpec = Voice::VoiceAgentSpeechSpec
6
+
7
+ module Voice
8
+ class VoiceAgentSpeechSpec < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Sentdm::Voice::VoiceAgentSpeechSpec,
13
+ Sentdm::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The language spoken and listened for, a BCP 47 tag from GET /v3/voice/voices.
18
+ # Default en-US.
19
+ sig { returns(T.nilable(String)) }
20
+ attr_accessor :language
21
+
22
+ # standard, Sent's speech. Other settings are not available yet.
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :setting
25
+
26
+ # A voice name from GET /v3/voice/voices. Default: the catalogue's default voice.
27
+ sig { returns(T.nilable(String)) }
28
+ attr_accessor :voice
29
+
30
+ sig do
31
+ params(
32
+ language: T.nilable(String),
33
+ setting: T.nilable(String),
34
+ voice: T.nilable(String)
35
+ ).returns(T.attached_class)
36
+ end
37
+ def self.new(
38
+ # The language spoken and listened for, a BCP 47 tag from GET /v3/voice/voices.
39
+ # Default en-US.
40
+ language: nil,
41
+ # standard, Sent's speech. Other settings are not available yet.
42
+ setting: nil,
43
+ # A voice name from GET /v3/voice/voices. Default: the catalogue's default voice.
44
+ voice: nil
45
+ )
46
+ end
47
+
48
+ sig do
49
+ override.returns(
50
+ {
51
+ language: T.nilable(String),
52
+ setting: T.nilable(String),
53
+ voice: T.nilable(String)
54
+ }
55
+ )
56
+ end
57
+ def to_hash
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,43 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceAgentTranscripts = Voice::VoiceAgentTranscripts
6
+
7
+ module Voice
8
+ class VoiceAgentTranscripts < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Sentdm::Voice::VoiceAgentTranscripts,
13
+ Sentdm::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(T.nilable(Integer)) }
18
+ attr_reader :retention_days
19
+
20
+ sig { params(retention_days: Integer).void }
21
+ attr_writer :retention_days
22
+
23
+ sig { returns(T.nilable(T::Boolean)) }
24
+ attr_reader :store
25
+
26
+ sig { params(store: T::Boolean).void }
27
+ attr_writer :store
28
+
29
+ sig do
30
+ params(retention_days: Integer, store: T::Boolean).returns(
31
+ T.attached_class
32
+ )
33
+ end
34
+ def self.new(retention_days: nil, store: nil)
35
+ end
36
+
37
+ sig { override.returns({ retention_days: Integer, store: T::Boolean }) }
38
+ def to_hash
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,51 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceAgentTranscriptsSpec = Voice::VoiceAgentTranscriptsSpec
6
+
7
+ module Voice
8
+ class VoiceAgentTranscriptsSpec < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Sentdm::Voice::VoiceAgentTranscriptsSpec,
13
+ Sentdm::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # How long a stored transcript is kept, 1 to 365 days. Default 30.
18
+ sig { returns(T.nilable(Integer)) }
19
+ attr_accessor :retention_days
20
+
21
+ # Whether Sent keeps the call's transcript. Default false. Stored now, applied
22
+ # when transcripts land.
23
+ sig { returns(T.nilable(T::Boolean)) }
24
+ attr_accessor :store
25
+
26
+ sig do
27
+ params(
28
+ retention_days: T.nilable(Integer),
29
+ store: T.nilable(T::Boolean)
30
+ ).returns(T.attached_class)
31
+ end
32
+ def self.new(
33
+ # How long a stored transcript is kept, 1 to 365 days. Default 30.
34
+ retention_days: nil,
35
+ # Whether Sent keeps the call's transcript. Default false. Stored now, applied
36
+ # when transcripts land.
37
+ store: nil
38
+ )
39
+ end
40
+
41
+ sig do
42
+ override.returns(
43
+ { retention_days: T.nilable(Integer), store: T.nilable(T::Boolean) }
44
+ )
45
+ end
46
+ def to_hash
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,55 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceAgentsList = Voice::VoiceAgentsList
6
+
7
+ module Voice
8
+ class VoiceAgentsList < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Sentdm::Voice::VoiceAgentsList, Sentdm::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(T.nilable(T::Array[Sentdm::Voice::VoiceAgent])) }
15
+ attr_reader :agents
16
+
17
+ sig { params(agents: T::Array[Sentdm::Voice::VoiceAgent::OrHash]).void }
18
+ attr_writer :agents
19
+
20
+ # Pagination metadata for list responses
21
+ sig { returns(T.nilable(Sentdm::PaginationMeta)) }
22
+ attr_reader :pagination
23
+
24
+ sig { params(pagination: Sentdm::PaginationMeta::OrHash).void }
25
+ attr_writer :pagination
26
+
27
+ # A page of the account's agents. The agent itself is VoiceAgentResponse, shared
28
+ # with the admin API.
29
+ sig do
30
+ params(
31
+ agents: T::Array[Sentdm::Voice::VoiceAgent::OrHash],
32
+ pagination: Sentdm::PaginationMeta::OrHash
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(
36
+ agents: nil,
37
+ # Pagination metadata for list responses
38
+ pagination: nil
39
+ )
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ {
45
+ agents: T::Array[Sentdm::Voice::VoiceAgent],
46
+ pagination: Sentdm::PaginationMeta
47
+ }
48
+ )
49
+ end
50
+ def to_hash
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,59 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceCatalogue = Voice::VoiceCatalogue
6
+
7
+ module Voice
8
+ class VoiceCatalogue < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Sentdm::Voice::VoiceCatalogue, Sentdm::Internal::AnyHash)
12
+ end
13
+
14
+ # BCP 47 tags accepted as speech.language.
15
+ sig { returns(T.nilable(T::Array[String])) }
16
+ attr_reader :languages
17
+
18
+ sig { params(languages: T::Array[String]).void }
19
+ attr_writer :languages
20
+
21
+ sig { returns(T.nilable(T::Array[Sentdm::Voice::VoiceCatalogueVoice])) }
22
+ attr_reader :voices
23
+
24
+ sig do
25
+ params(
26
+ voices: T::Array[Sentdm::Voice::VoiceCatalogueVoice::OrHash]
27
+ ).void
28
+ end
29
+ attr_writer :voices
30
+
31
+ # The voices and languages a text-session agent may name in its speech settings:
32
+ # what GET /v3/voice/voices and the admin GET /voice/voices answer, in one shape.
33
+ sig do
34
+ params(
35
+ languages: T::Array[String],
36
+ voices: T::Array[Sentdm::Voice::VoiceCatalogueVoice::OrHash]
37
+ ).returns(T.attached_class)
38
+ end
39
+ def self.new(
40
+ # BCP 47 tags accepted as speech.language.
41
+ languages: nil,
42
+ voices: nil
43
+ )
44
+ end
45
+
46
+ sig do
47
+ override.returns(
48
+ {
49
+ languages: T::Array[String],
50
+ voices: T::Array[Sentdm::Voice::VoiceCatalogueVoice]
51
+ }
52
+ )
53
+ end
54
+ def to_hash
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,75 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceCatalogueVoice = Voice::VoiceCatalogueVoice
6
+
7
+ module Voice
8
+ class VoiceCatalogueVoice < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Sentdm::Voice::VoiceCatalogueVoice, Sentdm::Internal::AnyHash)
12
+ end
13
+
14
+ # Whether this is the voice used when an agent names none.
15
+ sig { returns(T.nilable(T::Boolean)) }
16
+ attr_reader :default
17
+
18
+ sig { params(default: T::Boolean).void }
19
+ attr_writer :default
20
+
21
+ sig { returns(T.nilable(String)) }
22
+ attr_reader :description
23
+
24
+ sig { params(description: String).void }
25
+ attr_writer :description
26
+
27
+ # The language the voice speaks.
28
+ sig { returns(T.nilable(String)) }
29
+ attr_reader :language
30
+
31
+ sig { params(language: String).void }
32
+ attr_writer :language
33
+
34
+ # The value to send as speech.voice.
35
+ sig { returns(T.nilable(String)) }
36
+ attr_reader :name
37
+
38
+ sig { params(name: String).void }
39
+ attr_writer :name
40
+
41
+ sig do
42
+ params(
43
+ default: T::Boolean,
44
+ description: String,
45
+ language: String,
46
+ name: String
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ # Whether this is the voice used when an agent names none.
51
+ default: nil,
52
+ description: nil,
53
+ # The language the voice speaks.
54
+ language: nil,
55
+ # The value to send as speech.voice.
56
+ name: nil
57
+ )
58
+ end
59
+
60
+ sig do
61
+ override.returns(
62
+ {
63
+ default: T::Boolean,
64
+ description: String,
65
+ language: String,
66
+ name: String
67
+ }
68
+ )
69
+ end
70
+ def to_hash
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -2,14 +2,17 @@
2
2
 
3
3
  module Sentdm
4
4
  module Models
5
- module Channels
5
+ VoiceToken = Voice::VoiceToken
6
+
7
+ module Voice
6
8
  class VoiceToken < Sentdm::Internal::Type::BaseModel
7
9
  OrHash =
8
10
  T.type_alias do
9
- T.any(Sentdm::Channels::VoiceToken, Sentdm::Internal::AnyHash)
11
+ T.any(Sentdm::Voice::VoiceToken, Sentdm::Internal::AnyHash)
10
12
  end
11
13
 
12
- # The signed token. Hand it to the client SDK unchanged.
14
+ # The signed token. Hand it to the client SDK unchanged. Treat it as opaque: read
15
+ # the identity, number, and expiry from this response, not from the token.
13
16
  sig { returns(T.nilable(String)) }
14
17
  attr_reader :token
15
18
 
@@ -47,7 +50,8 @@ module Sentdm
47
50
  ).returns(T.attached_class)
48
51
  end
49
52
  def self.new(
50
- # The signed token. Hand it to the client SDK unchanged.
53
+ # The signed token. Hand it to the client SDK unchanged. Treat it as opaque: read
54
+ # the identity, number, and expiry from this response, not from the token.
51
55
  token: nil,
52
56
  # When the token expires (UTC)
53
57
  expires_at: nil,
@@ -32,6 +32,18 @@ module Sentdm
32
32
  sig { params(event_types: T::Array[String]).void }
33
33
  attr_writer :event_types
34
34
 
35
+ # Also delivers every sender profile's events to this webhook, at the same URL and
36
+ # with the same signing secret, and lets each profile see the webhook and read the
37
+ # events about itself. Off by default: the organization's own events only. Only an
38
+ # organization's version 2 webhook can set it.
39
+ sig { returns(T.nilable(T::Boolean)) }
40
+ attr_reader :is_inheritable
41
+
42
+ sig { params(is_inheritable: T::Boolean).void }
43
+ attr_writer :is_inheritable
44
+
45
+ # Delivery retries. Applies to version 1 only: Svix retries a version 2 webhook on
46
+ # its own schedule.
35
47
  sig { returns(T.nilable(Integer)) }
36
48
  attr_reader :retry_count
37
49
 
@@ -47,7 +59,8 @@ module Sentdm
47
59
  attr_writer :sandbox
48
60
 
49
61
  # Request-only: the events an organization webhook's sender profile clones
50
- # receive, one clone per existing and future profile. Responses never return it.
62
+ # receive, one clone per existing and future profile. A version 1 webhook's
63
+ # responses report it as WebhookSenderProfileV3Response.
51
64
  sig { returns(T.nilable(Sentdm::WebhookCreateParams::SenderProfile)) }
52
65
  attr_reader :sender_profile
53
66
 
@@ -59,12 +72,19 @@ module Sentdm
59
72
  end
60
73
  attr_writer :sender_profile
61
74
 
75
+ # Delivery timeout. Applies to version 1 only.
62
76
  sig { returns(T.nilable(Integer)) }
63
77
  attr_reader :timeout_seconds
64
78
 
65
79
  sig { params(timeout_seconds: Integer).void }
66
80
  attr_writer :timeout_seconds
67
81
 
82
+ # Who delivers the webhook: 2, the default, is delivered by Svix and signed with
83
+ # the webhook-id, webhook-timestamp and webhook-signature headers; 1 is the older
84
+ # delivery, signed with the X-Webhook-\* headers, which will be retired.
85
+ sig { returns(T.nilable(Integer)) }
86
+ attr_accessor :webhook_version
87
+
68
88
  sig { returns(T.nilable(String)) }
69
89
  attr_reader :idempotency_key
70
90
 
@@ -83,11 +103,13 @@ module Sentdm
83
103
  endpoint_url: String,
84
104
  event_filters: T.nilable(T::Hash[Symbol, T::Array[String]]),
85
105
  event_types: T::Array[String],
106
+ is_inheritable: T::Boolean,
86
107
  retry_count: Integer,
87
108
  sandbox: T::Boolean,
88
109
  sender_profile:
89
110
  T.nilable(Sentdm::WebhookCreateParams::SenderProfile::OrHash),
90
111
  timeout_seconds: Integer,
112
+ webhook_version: T.nilable(Integer),
91
113
  idempotency_key: String,
92
114
  x_profile_id: String,
93
115
  request_options: Sentdm::RequestOptions::OrHash
@@ -98,14 +120,27 @@ module Sentdm
98
120
  endpoint_url: nil,
99
121
  event_filters: nil,
100
122
  event_types: nil,
123
+ # Also delivers every sender profile's events to this webhook, at the same URL and
124
+ # with the same signing secret, and lets each profile see the webhook and read the
125
+ # events about itself. Off by default: the organization's own events only. Only an
126
+ # organization's version 2 webhook can set it.
127
+ is_inheritable: nil,
128
+ # Delivery retries. Applies to version 1 only: Svix retries a version 2 webhook on
129
+ # its own schedule.
101
130
  retry_count: nil,
102
131
  # Sandbox flag - when true, the operation is simulated without side effects Useful
103
132
  # for testing integrations without actual execution
104
133
  sandbox: nil,
105
134
  # Request-only: the events an organization webhook's sender profile clones
106
- # receive, one clone per existing and future profile. Responses never return it.
135
+ # receive, one clone per existing and future profile. A version 1 webhook's
136
+ # responses report it as WebhookSenderProfileV3Response.
107
137
  sender_profile: nil,
138
+ # Delivery timeout. Applies to version 1 only.
108
139
  timeout_seconds: nil,
140
+ # Who delivers the webhook: 2, the default, is delivered by Svix and signed with
141
+ # the webhook-id, webhook-timestamp and webhook-signature headers; 1 is the older
142
+ # delivery, signed with the X-Webhook-\* headers, which will be retired.
143
+ webhook_version: nil,
109
144
  idempotency_key: nil,
110
145
  x_profile_id: nil,
111
146
  request_options: {}
@@ -119,11 +154,13 @@ module Sentdm
119
154
  endpoint_url: String,
120
155
  event_filters: T.nilable(T::Hash[Symbol, T::Array[String]]),
121
156
  event_types: T::Array[String],
157
+ is_inheritable: T::Boolean,
122
158
  retry_count: Integer,
123
159
  sandbox: T::Boolean,
124
160
  sender_profile:
125
161
  T.nilable(Sentdm::WebhookCreateParams::SenderProfile),
126
162
  timeout_seconds: Integer,
163
+ webhook_version: T.nilable(Integer),
127
164
  idempotency_key: String,
128
165
  x_profile_id: String,
129
166
  request_options: Sentdm::RequestOptions
@@ -152,7 +189,8 @@ module Sentdm
152
189
  attr_writer :event_types
153
190
 
154
191
  # Request-only: the events an organization webhook's sender profile clones
155
- # receive, one clone per existing and future profile. Responses never return it.
192
+ # receive, one clone per existing and future profile. A version 1 webhook's
193
+ # responses report it as WebhookSenderProfileV3Response.
156
194
  sig do
157
195
  params(
158
196
  event_filters: T.nilable(T::Hash[Symbol, T::Array[String]]),