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,215 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Voice
6
+ class AgentCreateParams < 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::AgentCreateParams, Sentdm::Internal::AnyHash)
13
+ end
14
+
15
+ # Audio sessions only: the sound format.
16
+ sig { returns(T.nilable(Sentdm::Voice::VoiceAgentAudioSpec)) }
17
+ attr_reader :audio
18
+
19
+ sig do
20
+ params(
21
+ audio: T.nilable(Sentdm::Voice::VoiceAgentAudioSpec::OrHash)
22
+ ).void
23
+ end
24
+ attr_writer :audio
25
+
26
+ # Who takes the call when the agent cannot: a phone number (kind: number). Omit it
27
+ # and such a call hangs up.
28
+ sig { returns(T.nilable(Sentdm::Voice::VoiceAgentPartySpec)) }
29
+ attr_reader :fallback
30
+
31
+ sig do
32
+ params(
33
+ fallback: T.nilable(Sentdm::Voice::VoiceAgentPartySpec::OrHash)
34
+ ).void
35
+ end
36
+ attr_writer :fallback
37
+
38
+ # Text sessions only: what the caller hears as soon as the call is answered,
39
+ # before the agent's first turn. 1 to 4,096 characters. Omit it and the agent
40
+ # speaks first.
41
+ sig { returns(T.nilable(String)) }
42
+ attr_accessor :greeting
43
+
44
+ sig { returns(T.nilable(Sentdm::Voice::VoiceAgentLimitsSpec)) }
45
+ attr_reader :limits
46
+
47
+ sig do
48
+ params(
49
+ limits: T.nilable(Sentdm::Voice::VoiceAgentLimitsSpec::OrHash)
50
+ ).void
51
+ end
52
+ attr_writer :limits
53
+
54
+ # A name for your own reference, 1 to 100 characters.
55
+ sig { returns(T.nilable(String)) }
56
+ attr_accessor :name
57
+
58
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
59
+ # for testing integrations without actual execution
60
+ sig { returns(T.nilable(T::Boolean)) }
61
+ attr_reader :sandbox
62
+
63
+ sig { params(sandbox: T::Boolean).void }
64
+ attr_writer :sandbox
65
+
66
+ # text: Sent turns the caller's speech into text and the agent's text into speech,
67
+ # so the agent exchanges text frames. audio: the agent receives and sends the
68
+ # sound itself.
69
+ sig { returns(T.nilable(String)) }
70
+ attr_accessor :session_type
71
+
72
+ # Text sessions only: how the caller is spoken to and listened to.
73
+ sig { returns(T.nilable(Sentdm::Voice::VoiceAgentSpeechSpec)) }
74
+ attr_reader :speech
75
+
76
+ sig do
77
+ params(
78
+ speech: T.nilable(Sentdm::Voice::VoiceAgentSpeechSpec::OrHash)
79
+ ).void
80
+ end
81
+ attr_writer :speech
82
+
83
+ # What the agent may do to the call: any of transfer, hangup, send_dtmf and hold.
84
+ # Default ["hangup"]. transfer needs at least one transfer_targets entry.
85
+ sig { returns(T.nilable(T::Array[String])) }
86
+ attr_accessor :tools
87
+
88
+ sig { returns(T.nilable(Sentdm::Voice::VoiceAgentTranscriptsSpec)) }
89
+ attr_reader :transcripts
90
+
91
+ sig do
92
+ params(
93
+ transcripts:
94
+ T.nilable(Sentdm::Voice::VoiceAgentTranscriptsSpec::OrHash)
95
+ ).void
96
+ end
97
+ attr_writer :transcripts
98
+
99
+ # Where the agent may transfer a call to, up to 20 parties: a phone number (kind:
100
+ # number, E.164), one of your app users (kind: user, the identity) or another of
101
+ # your agents (kind: agent, its id). The agent can only transfer to a party listed
102
+ # here.
103
+ sig { returns(T.nilable(T::Array[Sentdm::Voice::VoiceAgentPartySpec])) }
104
+ attr_accessor :transfer_targets
105
+
106
+ # Where the gateway connects to the agent for each call: an absolute wss:// URL on
107
+ # a public host, at most 2,048 characters. The handshake is signed with the
108
+ # agent's signing_secret. Leave it out and the agent dials in instead, connecting
109
+ # to the gateway with your API key.
110
+ sig { returns(T.nilable(String)) }
111
+ attr_accessor :websocket_url
112
+
113
+ sig { returns(T.nilable(String)) }
114
+ attr_reader :idempotency_key
115
+
116
+ sig { params(idempotency_key: String).void }
117
+ attr_writer :idempotency_key
118
+
119
+ sig { returns(T.nilable(String)) }
120
+ attr_reader :x_profile_id
121
+
122
+ sig { params(x_profile_id: String).void }
123
+ attr_writer :x_profile_id
124
+
125
+ sig do
126
+ params(
127
+ audio: T.nilable(Sentdm::Voice::VoiceAgentAudioSpec::OrHash),
128
+ fallback: T.nilable(Sentdm::Voice::VoiceAgentPartySpec::OrHash),
129
+ greeting: T.nilable(String),
130
+ limits: T.nilable(Sentdm::Voice::VoiceAgentLimitsSpec::OrHash),
131
+ name: T.nilable(String),
132
+ sandbox: T::Boolean,
133
+ session_type: T.nilable(String),
134
+ speech: T.nilable(Sentdm::Voice::VoiceAgentSpeechSpec::OrHash),
135
+ tools: T.nilable(T::Array[String]),
136
+ transcripts:
137
+ T.nilable(Sentdm::Voice::VoiceAgentTranscriptsSpec::OrHash),
138
+ transfer_targets:
139
+ T.nilable(T::Array[Sentdm::Voice::VoiceAgentPartySpec::OrHash]),
140
+ websocket_url: T.nilable(String),
141
+ idempotency_key: String,
142
+ x_profile_id: String,
143
+ request_options: Sentdm::RequestOptions::OrHash
144
+ ).returns(T.attached_class)
145
+ end
146
+ def self.new(
147
+ # Audio sessions only: the sound format.
148
+ audio: nil,
149
+ # Who takes the call when the agent cannot: a phone number (kind: number). Omit it
150
+ # and such a call hangs up.
151
+ fallback: nil,
152
+ # Text sessions only: what the caller hears as soon as the call is answered,
153
+ # before the agent's first turn. 1 to 4,096 characters. Omit it and the agent
154
+ # speaks first.
155
+ greeting: nil,
156
+ limits: nil,
157
+ # A name for your own reference, 1 to 100 characters.
158
+ name: nil,
159
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
160
+ # for testing integrations without actual execution
161
+ sandbox: nil,
162
+ # text: Sent turns the caller's speech into text and the agent's text into speech,
163
+ # so the agent exchanges text frames. audio: the agent receives and sends the
164
+ # sound itself.
165
+ session_type: nil,
166
+ # Text sessions only: how the caller is spoken to and listened to.
167
+ speech: nil,
168
+ # What the agent may do to the call: any of transfer, hangup, send_dtmf and hold.
169
+ # Default ["hangup"]. transfer needs at least one transfer_targets entry.
170
+ tools: nil,
171
+ transcripts: nil,
172
+ # Where the agent may transfer a call to, up to 20 parties: a phone number (kind:
173
+ # number, E.164), one of your app users (kind: user, the identity) or another of
174
+ # your agents (kind: agent, its id). The agent can only transfer to a party listed
175
+ # here.
176
+ transfer_targets: nil,
177
+ # Where the gateway connects to the agent for each call: an absolute wss:// URL on
178
+ # a public host, at most 2,048 characters. The handshake is signed with the
179
+ # agent's signing_secret. Leave it out and the agent dials in instead, connecting
180
+ # to the gateway with your API key.
181
+ websocket_url: nil,
182
+ idempotency_key: nil,
183
+ x_profile_id: nil,
184
+ request_options: {}
185
+ )
186
+ end
187
+
188
+ sig do
189
+ override.returns(
190
+ {
191
+ audio: T.nilable(Sentdm::Voice::VoiceAgentAudioSpec),
192
+ fallback: T.nilable(Sentdm::Voice::VoiceAgentPartySpec),
193
+ greeting: T.nilable(String),
194
+ limits: T.nilable(Sentdm::Voice::VoiceAgentLimitsSpec),
195
+ name: T.nilable(String),
196
+ sandbox: T::Boolean,
197
+ session_type: T.nilable(String),
198
+ speech: T.nilable(Sentdm::Voice::VoiceAgentSpeechSpec),
199
+ tools: T.nilable(T::Array[String]),
200
+ transcripts: T.nilable(Sentdm::Voice::VoiceAgentTranscriptsSpec),
201
+ transfer_targets:
202
+ T.nilable(T::Array[Sentdm::Voice::VoiceAgentPartySpec]),
203
+ websocket_url: T.nilable(String),
204
+ idempotency_key: String,
205
+ x_profile_id: String,
206
+ request_options: Sentdm::RequestOptions
207
+ }
208
+ )
209
+ end
210
+ def to_hash
211
+ end
212
+ end
213
+ end
214
+ end
215
+ end
@@ -2,17 +2,14 @@
2
2
 
3
3
  module Sentdm
4
4
  module Models
5
- module Calls
6
- class ParticipantRemoveAllParams < Sentdm::Models::MutationRequest
5
+ module Voice
6
+ class AgentDeleteParams < Sentdm::Models::MutationRequest
7
7
  extend Sentdm::Internal::Type::RequestParameters::Converter
8
8
  include Sentdm::Internal::Type::RequestParameters
9
9
 
10
10
  OrHash =
11
11
  T.type_alias do
12
- T.any(
13
- Sentdm::Calls::ParticipantRemoveAllParams,
14
- Sentdm::Internal::AnyHash
15
- )
12
+ T.any(Sentdm::Voice::AgentDeleteParams, Sentdm::Internal::AnyHash)
16
13
  end
17
14
 
18
15
  sig { returns(String) }
@@ -0,0 +1,66 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Voice
6
+ class AgentListParams < 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::AgentListParams, Sentdm::Internal::AnyHash)
13
+ end
14
+
15
+ # Page number, from 1
16
+ sig { returns(T.nilable(Integer)) }
17
+ attr_reader :page
18
+
19
+ sig { params(page: Integer).void }
20
+ attr_writer :page
21
+
22
+ sig { returns(T.nilable(Integer)) }
23
+ attr_reader :page_size
24
+
25
+ sig { params(page_size: Integer).void }
26
+ attr_writer :page_size
27
+
28
+ sig { returns(T.nilable(String)) }
29
+ attr_reader :x_profile_id
30
+
31
+ sig { params(x_profile_id: String).void }
32
+ attr_writer :x_profile_id
33
+
34
+ sig do
35
+ params(
36
+ page: Integer,
37
+ page_size: Integer,
38
+ x_profile_id: String,
39
+ request_options: Sentdm::RequestOptions::OrHash
40
+ ).returns(T.attached_class)
41
+ end
42
+ def self.new(
43
+ # Page number, from 1
44
+ page: nil,
45
+ page_size: nil,
46
+ x_profile_id: nil,
47
+ request_options: {}
48
+ )
49
+ end
50
+
51
+ sig do
52
+ override.returns(
53
+ {
54
+ page: Integer,
55
+ page_size: Integer,
56
+ x_profile_id: String,
57
+ request_options: Sentdm::RequestOptions
58
+ }
59
+ )
60
+ end
61
+ def to_hash
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Voice
6
+ class AgentRetrieveParams < 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::AgentRetrieveParams, 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
@@ -2,15 +2,15 @@
2
2
 
3
3
  module Sentdm
4
4
  module Models
5
- module Calls
6
- class ParticipantRemoveParams < Sentdm::Models::MutationRequest
5
+ module Voice
6
+ class AgentRotateSecretParams < Sentdm::Models::MutationRequest
7
7
  extend Sentdm::Internal::Type::RequestParameters::Converter
8
8
  include Sentdm::Internal::Type::RequestParameters
9
9
 
10
10
  OrHash =
11
11
  T.type_alias do
12
12
  T.any(
13
- Sentdm::Calls::ParticipantRemoveParams,
13
+ Sentdm::Voice::AgentRotateSecretParams,
14
14
  Sentdm::Internal::AnyHash
15
15
  )
16
16
  end
@@ -18,8 +18,11 @@ module Sentdm
18
18
  sig { returns(String) }
19
19
  attr_accessor :id
20
20
 
21
- sig { returns(String) }
22
- attr_accessor :participant_id
21
+ sig { returns(T.nilable(String)) }
22
+ attr_reader :idempotency_key
23
+
24
+ sig { params(idempotency_key: String).void }
25
+ attr_writer :idempotency_key
23
26
 
24
27
  sig { returns(T.nilable(String)) }
25
28
  attr_reader :x_profile_id
@@ -30,14 +33,14 @@ module Sentdm
30
33
  sig do
31
34
  params(
32
35
  id: String,
33
- participant_id: String,
36
+ idempotency_key: String,
34
37
  x_profile_id: String,
35
38
  request_options: Sentdm::RequestOptions::OrHash
36
39
  ).returns(T.attached_class)
37
40
  end
38
41
  def self.new(
39
42
  id:,
40
- participant_id:,
43
+ idempotency_key: nil,
41
44
  x_profile_id: nil,
42
45
  request_options: {}
43
46
  )
@@ -47,7 +50,7 @@ module Sentdm
47
50
  override.returns(
48
51
  {
49
52
  id: String,
50
- participant_id: String,
53
+ idempotency_key: String,
51
54
  x_profile_id: String,
52
55
  request_options: Sentdm::RequestOptions
53
56
  }
@@ -0,0 +1,211 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Voice
6
+ class AgentUpdateParams < 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::AgentUpdateParams, Sentdm::Internal::AnyHash)
13
+ end
14
+
15
+ sig { returns(String) }
16
+ attr_accessor :id
17
+
18
+ # Audio sessions: { sample_rate }; null restores the default.
19
+ sig { returns(T.nilable(Sentdm::Voice::VoiceAgentAudioSpec)) }
20
+ attr_reader :audio
21
+
22
+ sig do
23
+ params(
24
+ audio: T.nilable(Sentdm::Voice::VoiceAgentAudioSpec::OrHash)
25
+ ).void
26
+ end
27
+ attr_writer :audio
28
+
29
+ # A new fallback party, or null for none.
30
+ sig { returns(T.nilable(Sentdm::Voice::VoiceAgentPartySpec)) }
31
+ attr_reader :fallback
32
+
33
+ sig do
34
+ params(
35
+ fallback: T.nilable(Sentdm::Voice::VoiceAgentPartySpec::OrHash)
36
+ ).void
37
+ end
38
+ attr_writer :fallback
39
+
40
+ # A new greeting, or null for none.
41
+ sig { returns(T.nilable(String)) }
42
+ attr_accessor :greeting
43
+
44
+ # The whole limits object; null restores the defaults.
45
+ sig { returns(T.nilable(Sentdm::Voice::VoiceAgentLimitsSpec)) }
46
+ attr_reader :limits
47
+
48
+ sig do
49
+ params(
50
+ limits: T.nilable(Sentdm::Voice::VoiceAgentLimitsSpec::OrHash)
51
+ ).void
52
+ end
53
+ attr_writer :limits
54
+
55
+ # A new name, 1 to 100 characters.
56
+ sig { returns(T.nilable(String)) }
57
+ attr_reader :name
58
+
59
+ sig { params(name: String).void }
60
+ attr_writer :name
61
+
62
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
63
+ # for testing integrations without actual execution
64
+ sig { returns(T.nilable(T::Boolean)) }
65
+ attr_reader :sandbox
66
+
67
+ sig { params(sandbox: T::Boolean).void }
68
+ attr_writer :sandbox
69
+
70
+ # text or audio. Changing it drops the settings the other type cannot have
71
+ # (speech, audio, greeting) unless the body sends them.
72
+ sig { returns(T.nilable(String)) }
73
+ attr_reader :session_type
74
+
75
+ sig { params(session_type: String).void }
76
+ attr_writer :session_type
77
+
78
+ # Text sessions: { setting, voice, language }, replaced whole; null restores the
79
+ # defaults.
80
+ sig { returns(T.nilable(Sentdm::Voice::VoiceAgentSpeechSpec)) }
81
+ attr_reader :speech
82
+
83
+ sig do
84
+ params(
85
+ speech: T.nilable(Sentdm::Voice::VoiceAgentSpeechSpec::OrHash)
86
+ ).void
87
+ end
88
+ attr_writer :speech
89
+
90
+ # The whole list of tools; null restores the default.
91
+ sig { returns(T.nilable(T::Array[String])) }
92
+ attr_accessor :tools
93
+
94
+ # The whole transcripts object; null restores the defaults.
95
+ sig { returns(T.nilable(Sentdm::Voice::VoiceAgentTranscriptsSpec)) }
96
+ attr_reader :transcripts
97
+
98
+ sig do
99
+ params(
100
+ transcripts:
101
+ T.nilable(Sentdm::Voice::VoiceAgentTranscriptsSpec::OrHash)
102
+ ).void
103
+ end
104
+ attr_writer :transcripts
105
+
106
+ # The whole list of parties; null clears it.
107
+ sig { returns(T.nilable(T::Array[Sentdm::Voice::VoiceAgentPartySpec])) }
108
+ attr_accessor :transfer_targets
109
+
110
+ # A new wss:// URL, or null for an agent that dials in.
111
+ sig { returns(T.nilable(String)) }
112
+ attr_accessor :websocket_url
113
+
114
+ sig { returns(T.nilable(String)) }
115
+ attr_reader :idempotency_key
116
+
117
+ sig { params(idempotency_key: String).void }
118
+ attr_writer :idempotency_key
119
+
120
+ sig { returns(T.nilable(String)) }
121
+ attr_reader :x_profile_id
122
+
123
+ sig { params(x_profile_id: String).void }
124
+ attr_writer :x_profile_id
125
+
126
+ sig do
127
+ params(
128
+ id: String,
129
+ audio: T.nilable(Sentdm::Voice::VoiceAgentAudioSpec::OrHash),
130
+ fallback: T.nilable(Sentdm::Voice::VoiceAgentPartySpec::OrHash),
131
+ greeting: T.nilable(String),
132
+ limits: T.nilable(Sentdm::Voice::VoiceAgentLimitsSpec::OrHash),
133
+ name: String,
134
+ sandbox: T::Boolean,
135
+ session_type: String,
136
+ speech: T.nilable(Sentdm::Voice::VoiceAgentSpeechSpec::OrHash),
137
+ tools: T.nilable(T::Array[String]),
138
+ transcripts:
139
+ T.nilable(Sentdm::Voice::VoiceAgentTranscriptsSpec::OrHash),
140
+ transfer_targets:
141
+ T.nilable(T::Array[Sentdm::Voice::VoiceAgentPartySpec::OrHash]),
142
+ websocket_url: T.nilable(String),
143
+ idempotency_key: String,
144
+ x_profile_id: String,
145
+ request_options: Sentdm::RequestOptions::OrHash
146
+ ).returns(T.attached_class)
147
+ end
148
+ def self.new(
149
+ id:,
150
+ # Audio sessions: { sample_rate }; null restores the default.
151
+ audio: nil,
152
+ # A new fallback party, or null for none.
153
+ fallback: nil,
154
+ # A new greeting, or null for none.
155
+ greeting: nil,
156
+ # The whole limits object; null restores the defaults.
157
+ limits: nil,
158
+ # A new name, 1 to 100 characters.
159
+ name: nil,
160
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
161
+ # for testing integrations without actual execution
162
+ sandbox: nil,
163
+ # text or audio. Changing it drops the settings the other type cannot have
164
+ # (speech, audio, greeting) unless the body sends them.
165
+ session_type: nil,
166
+ # Text sessions: { setting, voice, language }, replaced whole; null restores the
167
+ # defaults.
168
+ speech: nil,
169
+ # The whole list of tools; null restores the default.
170
+ tools: nil,
171
+ # The whole transcripts object; null restores the defaults.
172
+ transcripts: nil,
173
+ # The whole list of parties; null clears it.
174
+ transfer_targets: nil,
175
+ # A new wss:// URL, or null for an agent that dials in.
176
+ websocket_url: nil,
177
+ idempotency_key: nil,
178
+ x_profile_id: nil,
179
+ request_options: {}
180
+ )
181
+ end
182
+
183
+ sig do
184
+ override.returns(
185
+ {
186
+ id: String,
187
+ audio: T.nilable(Sentdm::Voice::VoiceAgentAudioSpec),
188
+ fallback: T.nilable(Sentdm::Voice::VoiceAgentPartySpec),
189
+ greeting: T.nilable(String),
190
+ limits: T.nilable(Sentdm::Voice::VoiceAgentLimitsSpec),
191
+ name: String,
192
+ sandbox: T::Boolean,
193
+ session_type: String,
194
+ speech: T.nilable(Sentdm::Voice::VoiceAgentSpeechSpec),
195
+ tools: T.nilable(T::Array[String]),
196
+ transcripts: T.nilable(Sentdm::Voice::VoiceAgentTranscriptsSpec),
197
+ transfer_targets:
198
+ T.nilable(T::Array[Sentdm::Voice::VoiceAgentPartySpec]),
199
+ websocket_url: T.nilable(String),
200
+ idempotency_key: String,
201
+ x_profile_id: String,
202
+ request_options: Sentdm::RequestOptions
203
+ }
204
+ )
205
+ end
206
+ def to_hash
207
+ end
208
+ end
209
+ end
210
+ end
211
+ end
@@ -0,0 +1,76 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Voice
6
+ class APIResponseOfCall < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(Sentdm::Voice::APIResponseOfCall, Sentdm::Internal::AnyHash)
10
+ end
11
+
12
+ # A call record
13
+ sig { returns(T.nilable(Sentdm::Voice::Call)) }
14
+ attr_reader :data
15
+
16
+ sig { params(data: T.nilable(Sentdm::Voice::Call::OrHash)).void }
17
+ attr_writer :data
18
+
19
+ # Error information
20
+ sig { returns(T.nilable(Sentdm::ErrorDetail)) }
21
+ attr_reader :error
22
+
23
+ sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
24
+ attr_writer :error
25
+
26
+ # Request and response metadata
27
+ sig { returns(T.nilable(Sentdm::APIMeta)) }
28
+ attr_reader :meta
29
+
30
+ sig { params(meta: Sentdm::APIMeta::OrHash).void }
31
+ attr_writer :meta
32
+
33
+ # Indicates whether the request was successful
34
+ sig { returns(T.nilable(T::Boolean)) }
35
+ attr_reader :success
36
+
37
+ sig { params(success: T::Boolean).void }
38
+ attr_writer :success
39
+
40
+ # Standard API response envelope for all v3 endpoints
41
+ sig do
42
+ params(
43
+ data: T.nilable(Sentdm::Voice::Call::OrHash),
44
+ error: T.nilable(Sentdm::ErrorDetail::OrHash),
45
+ meta: Sentdm::APIMeta::OrHash,
46
+ success: T::Boolean
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ # A call record
51
+ data: nil,
52
+ # Error information
53
+ error: nil,
54
+ # Request and response metadata
55
+ meta: nil,
56
+ # Indicates whether the request was successful
57
+ success: nil
58
+ )
59
+ end
60
+
61
+ sig do
62
+ override.returns(
63
+ {
64
+ data: T.nilable(Sentdm::Voice::Call),
65
+ error: T.nilable(Sentdm::ErrorDetail),
66
+ meta: Sentdm::APIMeta,
67
+ success: T::Boolean
68
+ }
69
+ )
70
+ end
71
+ def to_hash
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end