revox 0.2.0 → 0.4.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 (208) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +36 -0
  3. data/README.md +38 -38
  4. data/lib/revox/client.rb +8 -0
  5. data/lib/revox/internal/type/base_model.rb +3 -3
  6. data/lib/revox/models/assistant_clone_params.rb +20 -0
  7. data/lib/revox/models/assistant_clone_response.rb +1616 -0
  8. data/lib/revox/models/assistant_create_params.rb +90 -66
  9. data/lib/revox/models/assistant_create_response.rb +87 -65
  10. data/lib/revox/models/assistant_list_response.rb +87 -65
  11. data/lib/revox/models/assistant_retrieve_response.rb +86 -65
  12. data/lib/revox/models/assistant_update_params.rb +90 -66
  13. data/lib/revox/models/assistant_update_response.rb +87 -65
  14. data/lib/revox/models/auth_status_retrieve_params.rb +14 -0
  15. data/lib/revox/models/auth_status_retrieve_response.rb +17 -0
  16. data/lib/revox/models/call_cancel_params.rb +20 -0
  17. data/lib/revox/models/call_cancel_response.rb +16 -0
  18. data/lib/revox/models/call_create_params.rb +117 -90
  19. data/lib/revox/models/call_create_response.rb +680 -90
  20. data/lib/revox/models/call_export_params.rb +203 -0
  21. data/lib/revox/models/call_export_response.rb +22 -0
  22. data/lib/revox/models/call_pause_params.rb +20 -0
  23. data/lib/revox/models/call_pause_response.rb +16 -0
  24. data/lib/revox/models/call_phone_history_params.rb +14 -0
  25. data/lib/revox/models/call_phone_history_response.rb +95 -0
  26. data/lib/revox/models/call_resume_params.rb +20 -0
  27. data/lib/revox/models/call_resume_response.rb +16 -0
  28. data/lib/revox/models/call_retrieve_response.rb +681 -90
  29. data/lib/revox/models/call_search_params.rb +169 -0
  30. data/lib/revox/models/call_search_response.rb +3694 -0
  31. data/lib/revox/models/campaign_create_params.rb +7 -57
  32. data/lib/revox/models/campaign_create_response.rb +108 -119
  33. data/lib/revox/models/campaign_get_rows_response.rb +682 -90
  34. data/lib/revox/models/campaign_list_response.rb +108 -119
  35. data/lib/revox/models/campaign_pause_params.rb +20 -0
  36. data/lib/revox/models/campaign_pause_response.rb +16 -0
  37. data/lib/revox/models/campaign_resume_params.rb +20 -0
  38. data/lib/revox/models/campaign_resume_response.rb +16 -0
  39. data/lib/revox/models/campaign_retrieve_response.rb +108 -119
  40. data/lib/revox/models/campaign_statistics_params.rb +20 -0
  41. data/lib/revox/models/campaign_statistics_response.rb +514 -0
  42. data/lib/revox/models/campaign_update_params.rb +165 -0
  43. data/lib/revox/models/campaign_update_response.rb +2019 -0
  44. data/lib/revox/models/phone_number_delete_params.rb +20 -0
  45. data/lib/revox/models/phone_number_delete_response.rb +16 -0
  46. data/lib/revox/models/phone_number_list_params.rb +14 -0
  47. data/lib/revox/models/phone_number_list_response.rb +1799 -0
  48. data/lib/revox/models/phone_number_update_params.rb +32 -0
  49. data/lib/revox/models/phone_number_update_response.rb +1799 -0
  50. data/lib/revox/models/user_retrieve_params.rb +14 -0
  51. data/lib/revox/models/user_retrieve_response.rb +99 -0
  52. data/lib/revox/models/voice_clone_params.rb +78 -0
  53. data/lib/revox/models/voice_clone_response.rb +40 -0
  54. data/lib/revox/models/voice_delete_params.rb +20 -0
  55. data/lib/revox/models/voice_delete_response.rb +16 -0
  56. data/lib/revox/models/voice_list_response.rb +1 -0
  57. data/lib/revox/models/voice_preview_params.rb +1 -0
  58. data/lib/revox/models/voice_retrieve_params.rb +1 -0
  59. data/lib/revox/models.rb +35 -1
  60. data/lib/revox/resources/assistants.rb +31 -10
  61. data/lib/revox/resources/auth_status.rb +32 -0
  62. data/lib/revox/resources/call.rb +149 -4
  63. data/lib/revox/resources/campaigns.rb +110 -11
  64. data/lib/revox/resources/phone_numbers.rb +74 -0
  65. data/lib/revox/resources/users.rb +17 -3
  66. data/lib/revox/resources/voices.rb +50 -0
  67. data/lib/revox/version.rb +1 -1
  68. data/lib/revox.rb +38 -5
  69. data/rbi/revox/client.rbi +6 -0
  70. data/rbi/revox/models/assistant_clone_params.rbi +33 -0
  71. data/rbi/revox/models/assistant_clone_response.rbi +3351 -0
  72. data/rbi/revox/models/assistant_create_params.rbi +148 -162
  73. data/rbi/revox/models/assistant_create_response.rbi +157 -147
  74. data/rbi/revox/models/assistant_list_response.rbi +157 -147
  75. data/rbi/revox/models/assistant_retrieve_response.rbi +153 -147
  76. data/rbi/revox/models/assistant_update_params.rbi +148 -162
  77. data/rbi/revox/models/assistant_update_response.rbi +157 -147
  78. data/rbi/revox/models/auth_status_retrieve_params.rbi +27 -0
  79. data/rbi/revox/models/auth_status_retrieve_response.rbi +30 -0
  80. data/rbi/revox/models/call_cancel_params.rbi +33 -0
  81. data/rbi/revox/models/call_cancel_response.rbi +23 -0
  82. data/rbi/revox/models/call_create_params.rbi +190 -187
  83. data/rbi/revox/models/call_create_response.rbi +1150 -227
  84. data/rbi/revox/models/call_export_params.rbi +446 -0
  85. data/rbi/revox/models/call_export_response.rbi +26 -0
  86. data/rbi/revox/models/call_pause_params.rbi +31 -0
  87. data/rbi/revox/models/call_pause_response.rbi +23 -0
  88. data/rbi/revox/models/call_phone_history_params.rbi +27 -0
  89. data/rbi/revox/models/call_phone_history_response.rbi +209 -0
  90. data/rbi/revox/models/call_resume_params.rbi +33 -0
  91. data/rbi/revox/models/call_resume_response.rbi +23 -0
  92. data/rbi/revox/models/call_retrieve_response.rbi +1150 -227
  93. data/rbi/revox/models/call_search_params.rbi +281 -0
  94. data/rbi/revox/models/call_search_response.rbi +7504 -0
  95. data/rbi/revox/models/campaign_create_params.rbi +9 -87
  96. data/rbi/revox/models/campaign_create_response.rbi +188 -266
  97. data/rbi/revox/models/campaign_get_rows_response.rbi +1150 -225
  98. data/rbi/revox/models/campaign_list_response.rbi +188 -262
  99. data/rbi/revox/models/campaign_pause_params.rbi +33 -0
  100. data/rbi/revox/models/campaign_pause_response.rbi +23 -0
  101. data/rbi/revox/models/campaign_resume_params.rbi +33 -0
  102. data/rbi/revox/models/campaign_resume_response.rbi +23 -0
  103. data/rbi/revox/models/campaign_retrieve_response.rbi +188 -266
  104. data/rbi/revox/models/campaign_statistics_params.rbi +33 -0
  105. data/rbi/revox/models/campaign_statistics_response.rbi +1069 -0
  106. data/rbi/revox/models/campaign_update_params.rbi +313 -0
  107. data/rbi/revox/models/campaign_update_response.rbi +4092 -0
  108. data/rbi/revox/models/phone_number_delete_params.rbi +33 -0
  109. data/rbi/revox/models/phone_number_delete_response.rbi +26 -0
  110. data/rbi/revox/models/phone_number_list_params.rbi +27 -0
  111. data/rbi/revox/models/phone_number_list_response.rbi +3690 -0
  112. data/rbi/revox/models/phone_number_update_params.rbi +53 -0
  113. data/rbi/revox/models/phone_number_update_response.rbi +3693 -0
  114. data/rbi/revox/models/user_retrieve_params.rbi +27 -0
  115. data/rbi/revox/models/user_retrieve_response.rbi +140 -0
  116. data/rbi/revox/models/voice_clone_params.rbi +141 -0
  117. data/rbi/revox/models/voice_clone_response.rbi +53 -0
  118. data/rbi/revox/models/voice_delete_params.rbi +33 -0
  119. data/rbi/revox/models/voice_delete_response.rbi +23 -0
  120. data/rbi/revox/models/voice_list_response.rbi +5 -0
  121. data/rbi/revox/models/voice_preview_params.rbi +2 -0
  122. data/rbi/revox/models/voice_retrieve_params.rbi +2 -0
  123. data/rbi/revox/models.rbi +35 -1
  124. data/rbi/revox/resources/assistants.rbi +52 -22
  125. data/rbi/revox/resources/auth_status.rbi +21 -0
  126. data/rbi/revox/resources/call.rbi +114 -4
  127. data/rbi/revox/resources/campaigns.rbi +77 -15
  128. data/rbi/revox/resources/phone_numbers.rbi +43 -0
  129. data/rbi/revox/resources/users.rbi +8 -2
  130. data/rbi/revox/resources/voices.rbi +39 -0
  131. data/sig/revox/client.rbs +4 -0
  132. data/sig/revox/models/assistant_clone_params.rbs +20 -0
  133. data/sig/revox/models/assistant_clone_response.rbs +1310 -0
  134. data/sig/revox/models/assistant_create_params.rbs +39 -58
  135. data/sig/revox/models/assistant_create_response.rbs +46 -54
  136. data/sig/revox/models/assistant_list_response.rbs +46 -54
  137. data/sig/revox/models/assistant_retrieve_response.rbs +46 -54
  138. data/sig/revox/models/assistant_update_params.rbs +39 -58
  139. data/sig/revox/models/assistant_update_response.rbs +46 -54
  140. data/sig/revox/models/auth_status_retrieve_params.rbs +15 -0
  141. data/sig/revox/models/auth_status_retrieve_response.rbs +13 -0
  142. data/sig/revox/models/call_cancel_params.rbs +20 -0
  143. data/sig/revox/models/call_cancel_response.rbs +13 -0
  144. data/sig/revox/models/call_create_params.rbs +50 -71
  145. data/sig/revox/models/call_create_response.rbs +473 -77
  146. data/sig/revox/models/call_export_params.rbs +230 -0
  147. data/sig/revox/models/call_export_response.rbs +15 -0
  148. data/sig/revox/models/call_pause_params.rbs +20 -0
  149. data/sig/revox/models/call_pause_response.rbs +13 -0
  150. data/sig/revox/models/call_phone_history_params.rbs +15 -0
  151. data/sig/revox/models/call_phone_history_response.rbs +93 -0
  152. data/sig/revox/models/call_resume_params.rbs +20 -0
  153. data/sig/revox/models/call_resume_response.rbs +13 -0
  154. data/sig/revox/models/call_retrieve_response.rbs +473 -77
  155. data/sig/revox/models/call_search_params.rbs +194 -0
  156. data/sig/revox/models/call_search_response.rbs +3045 -0
  157. data/sig/revox/models/campaign_create_params.rbs +5 -50
  158. data/sig/revox/models/campaign_create_response.rbs +62 -98
  159. data/sig/revox/models/campaign_get_rows_response.rbs +472 -73
  160. data/sig/revox/models/campaign_list_response.rbs +62 -98
  161. data/sig/revox/models/campaign_pause_params.rbs +20 -0
  162. data/sig/revox/models/campaign_pause_response.rbs +13 -0
  163. data/sig/revox/models/campaign_resume_params.rbs +20 -0
  164. data/sig/revox/models/campaign_resume_response.rbs +13 -0
  165. data/sig/revox/models/campaign_retrieve_response.rbs +62 -98
  166. data/sig/revox/models/campaign_statistics_params.rbs +20 -0
  167. data/sig/revox/models/campaign_statistics_response.rbs +489 -0
  168. data/sig/revox/models/campaign_update_params.rbs +135 -0
  169. data/sig/revox/models/campaign_update_response.rbs +1658 -0
  170. data/sig/revox/models/phone_number_delete_params.rbs +20 -0
  171. data/sig/revox/models/phone_number_delete_response.rbs +13 -0
  172. data/sig/revox/models/phone_number_list_params.rbs +15 -0
  173. data/sig/revox/models/phone_number_list_response.rbs +1454 -0
  174. data/sig/revox/models/phone_number_update_params.rbs +32 -0
  175. data/sig/revox/models/phone_number_update_response.rbs +1452 -0
  176. data/sig/revox/models/user_retrieve_params.rbs +14 -0
  177. data/sig/revox/models/user_retrieve_response.rbs +71 -0
  178. data/sig/revox/models/voice_clone_params.rbs +79 -0
  179. data/sig/revox/models/voice_clone_response.rbs +40 -0
  180. data/sig/revox/models/voice_delete_params.rbs +20 -0
  181. data/sig/revox/models/voice_delete_response.rbs +13 -0
  182. data/sig/revox/models/voice_list_response.rbs +2 -1
  183. data/sig/revox/models/voice_preview_params.rbs +2 -1
  184. data/sig/revox/models/voice_retrieve_params.rbs +2 -1
  185. data/sig/revox/models.rbs +35 -1
  186. data/sig/revox/resources/assistants.rbs +9 -4
  187. data/sig/revox/resources/auth_status.rbs +11 -0
  188. data/sig/revox/resources/call.rbs +46 -1
  189. data/sig/revox/resources/campaigns.rbs +24 -3
  190. data/sig/revox/resources/phone_numbers.rbs +23 -0
  191. data/sig/revox/resources/users.rbs +3 -1
  192. data/sig/revox/resources/voices.rbs +13 -0
  193. metadata +116 -17
  194. data/lib/revox/models/users/me_retrieve_params.rb +0 -16
  195. data/lib/revox/models/users/me_retrieve_response.rb +0 -101
  196. data/lib/revox/models/users/me_update_params.rb +0 -22
  197. data/lib/revox/models/users/me_update_response.rb +0 -101
  198. data/lib/revox/resources/users/me.rb +0 -55
  199. data/rbi/revox/models/users/me_retrieve_params.rbi +0 -29
  200. data/rbi/revox/models/users/me_retrieve_response.rbi +0 -149
  201. data/rbi/revox/models/users/me_update_params.rbi +0 -43
  202. data/rbi/revox/models/users/me_update_response.rbi +0 -149
  203. data/rbi/revox/resources/users/me.rbi +0 -33
  204. data/sig/revox/models/users/me_retrieve_params.rbs +0 -16
  205. data/sig/revox/models/users/me_retrieve_response.rbs +0 -75
  206. data/sig/revox/models/users/me_update_params.rbs +0 -28
  207. data/sig/revox/models/users/me_update_response.rbs +0 -75
  208. data/sig/revox/resources/users/me.rbs +0 -18
@@ -35,8 +35,10 @@ module Revox
35
35
  status: Revox::Models::CallCreateResponse::Call::status,
36
36
  to_phone_number: String,
37
37
  updated_at: top,
38
+ follow_up_emails: ::Array[String]?,
38
39
  outcome: Revox::Models::CallCreateResponse::Call::outcome?,
39
- outcome_summary: String?
40
+ outcome_summary: String?,
41
+ slack_channel_ids: ::Array[String]?
40
42
  }
41
43
 
42
44
  class Call < Revox::Internal::Type::BaseModel
@@ -86,10 +88,14 @@ module Revox
86
88
 
87
89
  attr_accessor updated_at: top
88
90
 
91
+ attr_accessor follow_up_emails: ::Array[String]?
92
+
89
93
  attr_accessor outcome: Revox::Models::CallCreateResponse::Call::outcome?
90
94
 
91
95
  attr_accessor outcome_summary: String?
92
96
 
97
+ attr_accessor slack_channel_ids: ::Array[String]?
98
+
93
99
  def initialize: (
94
100
  id: String,
95
101
  assignee: Revox::Models::CallCreateResponse::Call::Assignee?,
@@ -114,8 +120,10 @@ module Revox
114
120
  status: Revox::Models::CallCreateResponse::Call::status,
115
121
  to_phone_number: String,
116
122
  updated_at: top,
123
+ ?follow_up_emails: ::Array[String]?,
117
124
  ?outcome: Revox::Models::CallCreateResponse::Call::outcome?,
118
- ?outcome_summary: String?
125
+ ?outcome_summary: String?,
126
+ ?slack_channel_ids: ::Array[String]?
119
127
  ) -> void
120
128
 
121
129
  def to_hash: -> {
@@ -142,8 +150,10 @@ module Revox
142
150
  status: Revox::Models::CallCreateResponse::Call::status,
143
151
  to_phone_number: String,
144
152
  updated_at: top,
153
+ follow_up_emails: ::Array[String]?,
145
154
  outcome: Revox::Models::CallCreateResponse::Call::outcome?,
146
- outcome_summary: String?
155
+ outcome_summary: String?,
156
+ slack_channel_ids: ::Array[String]?
147
157
  }
148
158
 
149
159
  type assignee =
@@ -186,7 +196,6 @@ module Revox
186
196
  created_at: top,
187
197
  custom_tools: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::CustomTool]?,
188
198
  email_notification_address: String?,
189
- email_notification_language: Revox::Models::CallCreateResponse::Call::Assistant::email_notification_language,
190
199
  email_notification_outcomes: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::email_notification_outcome]?,
191
200
  end_of_call_sentence: String?,
192
201
  first_sentence: String?,
@@ -202,6 +211,7 @@ module Revox
202
211
  name: String,
203
212
  organization_id: String,
204
213
  position: Revox::Models::CallCreateResponse::Call::Assistant::Position?,
214
+ precall_lookup_url: String?,
205
215
  prompt: String,
206
216
  prompt_flow: Revox::Models::CallCreateResponse::Call::Assistant::PromptFlow?,
207
217
  slack: Revox::Models::CallCreateResponse::Call::Assistant::Slack?,
@@ -214,7 +224,7 @@ module Revox
214
224
  thinking_sound: Revox::Models::CallCreateResponse::Call::Assistant::thinking_sound?,
215
225
  thinking_sound_probability: Float,
216
226
  thinking_sound_volume: Float,
217
- transfer_phone_number: String?,
227
+ transfer_destinations: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::TransferDestination]?,
218
228
  type: Revox::Models::CallCreateResponse::Call::Assistant::type_,
219
229
  updated_at: top,
220
230
  voice: Revox::Models::CallCreateResponse::Call::Assistant::Voice?,
@@ -225,6 +235,7 @@ module Revox
225
235
  zoho: Revox::Models::CallCreateResponse::Call::Assistant::Zoho?,
226
236
  created_by: Revox::Models::CallCreateResponse::Call::Assistant::CreatedBy?,
227
237
  faq_items: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::FaqItem],
238
+ is_inbound_receptionist: bool,
228
239
  is_realestate_assistant: bool,
229
240
  pending_faq_count: Float
230
241
  }
@@ -252,8 +263,6 @@ module Revox
252
263
 
253
264
  attr_accessor email_notification_address: String?
254
265
 
255
- attr_accessor email_notification_language: Revox::Models::CallCreateResponse::Call::Assistant::email_notification_language
256
-
257
266
  attr_accessor email_notification_outcomes: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::email_notification_outcome]?
258
267
 
259
268
  attr_accessor end_of_call_sentence: String?
@@ -284,6 +293,8 @@ module Revox
284
293
 
285
294
  attr_accessor position: Revox::Models::CallCreateResponse::Call::Assistant::Position?
286
295
 
296
+ attr_accessor precall_lookup_url: String?
297
+
287
298
  attr_accessor prompt: String
288
299
 
289
300
  attr_accessor prompt_flow: Revox::Models::CallCreateResponse::Call::Assistant::PromptFlow?
@@ -308,7 +319,7 @@ module Revox
308
319
 
309
320
  attr_accessor thinking_sound_volume: Float
310
321
 
311
- attr_accessor transfer_phone_number: String?
322
+ attr_accessor transfer_destinations: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::TransferDestination]?
312
323
 
313
324
  attr_accessor type: Revox::Models::CallCreateResponse::Call::Assistant::type_
314
325
 
@@ -334,6 +345,10 @@ module Revox
334
345
  ::Array[Revox::Models::CallCreateResponse::Call::Assistant::FaqItem]
335
346
  ) -> ::Array[Revox::Models::CallCreateResponse::Call::Assistant::FaqItem]
336
347
 
348
+ attr_reader is_inbound_receptionist: bool?
349
+
350
+ def is_inbound_receptionist=: (bool) -> bool
351
+
337
352
  attr_reader is_realestate_assistant: bool?
338
353
 
339
354
  def is_realestate_assistant=: (bool) -> bool
@@ -354,7 +369,6 @@ module Revox
354
369
  created_at: top,
355
370
  custom_tools: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::CustomTool]?,
356
371
  email_notification_address: String?,
357
- email_notification_language: Revox::Models::CallCreateResponse::Call::Assistant::email_notification_language,
358
372
  email_notification_outcomes: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::email_notification_outcome]?,
359
373
  end_of_call_sentence: String?,
360
374
  first_sentence: String?,
@@ -370,6 +384,7 @@ module Revox
370
384
  name: String,
371
385
  organization_id: String,
372
386
  position: Revox::Models::CallCreateResponse::Call::Assistant::Position?,
387
+ precall_lookup_url: String?,
373
388
  prompt: String,
374
389
  prompt_flow: Revox::Models::CallCreateResponse::Call::Assistant::PromptFlow?,
375
390
  slack: Revox::Models::CallCreateResponse::Call::Assistant::Slack?,
@@ -382,7 +397,7 @@ module Revox
382
397
  thinking_sound: Revox::Models::CallCreateResponse::Call::Assistant::thinking_sound?,
383
398
  thinking_sound_probability: Float,
384
399
  thinking_sound_volume: Float,
385
- transfer_phone_number: String?,
400
+ transfer_destinations: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::TransferDestination]?,
386
401
  type: Revox::Models::CallCreateResponse::Call::Assistant::type_,
387
402
  updated_at: top,
388
403
  voice: Revox::Models::CallCreateResponse::Call::Assistant::Voice?,
@@ -393,6 +408,7 @@ module Revox
393
408
  zoho: Revox::Models::CallCreateResponse::Call::Assistant::Zoho?,
394
409
  ?created_by: Revox::Models::CallCreateResponse::Call::Assistant::CreatedBy?,
395
410
  ?faq_items: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::FaqItem],
411
+ ?is_inbound_receptionist: bool,
396
412
  ?is_realestate_assistant: bool,
397
413
  ?pending_faq_count: Float
398
414
  ) -> void
@@ -409,7 +425,6 @@ module Revox
409
425
  created_at: top,
410
426
  custom_tools: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::CustomTool]?,
411
427
  email_notification_address: String?,
412
- email_notification_language: Revox::Models::CallCreateResponse::Call::Assistant::email_notification_language,
413
428
  email_notification_outcomes: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::email_notification_outcome]?,
414
429
  end_of_call_sentence: String?,
415
430
  first_sentence: String?,
@@ -425,6 +440,7 @@ module Revox
425
440
  name: String,
426
441
  organization_id: String,
427
442
  position: Revox::Models::CallCreateResponse::Call::Assistant::Position?,
443
+ precall_lookup_url: String?,
428
444
  prompt: String,
429
445
  prompt_flow: Revox::Models::CallCreateResponse::Call::Assistant::PromptFlow?,
430
446
  slack: Revox::Models::CallCreateResponse::Call::Assistant::Slack?,
@@ -437,7 +453,7 @@ module Revox
437
453
  thinking_sound: Revox::Models::CallCreateResponse::Call::Assistant::thinking_sound?,
438
454
  thinking_sound_probability: Float,
439
455
  thinking_sound_volume: Float,
440
- transfer_phone_number: String?,
456
+ transfer_destinations: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::TransferDestination]?,
441
457
  type: Revox::Models::CallCreateResponse::Call::Assistant::type_,
442
458
  updated_at: top,
443
459
  voice: Revox::Models::CallCreateResponse::Call::Assistant::Voice?,
@@ -448,6 +464,7 @@ module Revox
448
464
  zoho: Revox::Models::CallCreateResponse::Call::Assistant::Zoho?,
449
465
  created_by: Revox::Models::CallCreateResponse::Call::Assistant::CreatedBy?,
450
466
  faq_items: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::FaqItem],
467
+ is_inbound_receptionist: bool,
451
468
  is_realestate_assistant: bool,
452
469
  pending_faq_count: Float
453
470
  }
@@ -457,9 +474,6 @@ module Revox
457
474
  | :interested
458
475
  | :completed
459
476
  | :requested_callback_later
460
- | :requested_callback_new_number
461
- | :do_not_contact
462
- | :ai_averse
463
477
  | :none
464
478
 
465
479
  module AfterCallSMSOutcome
@@ -469,9 +483,6 @@ module Revox
469
483
  INTERESTED: :interested
470
484
  COMPLETED: :completed
471
485
  REQUESTED_CALLBACK_LATER: :requested_callback_later
472
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
473
- DO_NOT_CONTACT: :do_not_contact
474
- AI_AVERSE: :ai_averse
475
486
  NONE: :none
476
487
 
477
488
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::Assistant::after_call_sms_outcome]
@@ -736,25 +747,11 @@ module Revox
736
747
  end
737
748
  end
738
749
 
739
- type email_notification_language = :en | :fr
740
-
741
- module EmailNotificationLanguage
742
- extend Revox::Internal::Type::Enum
743
-
744
- EN: :en
745
- FR: :fr
746
-
747
- def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::Assistant::email_notification_language]
748
- end
749
-
750
750
  type email_notification_outcome =
751
751
  :not_interested
752
752
  | :interested
753
753
  | :completed
754
754
  | :requested_callback_later
755
- | :requested_callback_new_number
756
- | :do_not_contact
757
- | :ai_averse
758
755
  | :none
759
756
 
760
757
  module EmailNotificationOutcome
@@ -764,9 +761,6 @@ module Revox
764
761
  INTERESTED: :interested
765
762
  COMPLETED: :completed
766
763
  REQUESTED_CALLBACK_LATER: :requested_callback_later
767
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
768
- DO_NOT_CONTACT: :do_not_contact
769
- AI_AVERSE: :ai_averse
770
764
  NONE: :none
771
765
 
772
766
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::Assistant::email_notification_outcome]
@@ -1054,48 +1048,52 @@ module Revox
1054
1048
 
1055
1049
  type slack =
1056
1050
  {
1057
- channel_id: String,
1051
+ channels: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::Channel],
1058
1052
  connection_id: String,
1059
1053
  outcomes: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::outcome],
1060
- channel_name: String?,
1061
1054
  template: String?
1062
1055
  }
1063
1056
 
1064
1057
  class Slack < Revox::Internal::Type::BaseModel
1065
- attr_accessor channel_id: String
1058
+ attr_accessor channels: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::Channel]
1066
1059
 
1067
1060
  attr_accessor connection_id: String
1068
1061
 
1069
1062
  attr_accessor outcomes: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::outcome]
1070
1063
 
1071
- attr_accessor channel_name: String?
1072
-
1073
1064
  attr_accessor template: String?
1074
1065
 
1075
1066
  def initialize: (
1076
- channel_id: String,
1067
+ channels: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::Channel],
1077
1068
  connection_id: String,
1078
1069
  outcomes: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::outcome],
1079
- ?channel_name: String?,
1080
1070
  ?template: String?
1081
1071
  ) -> void
1082
1072
 
1083
1073
  def to_hash: -> {
1084
- channel_id: String,
1074
+ channels: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::Channel],
1085
1075
  connection_id: String,
1086
1076
  outcomes: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::outcome],
1087
- channel_name: String?,
1088
1077
  template: String?
1089
1078
  }
1090
1079
 
1080
+ type channel = { id: String, name: String? }
1081
+
1082
+ class Channel < Revox::Internal::Type::BaseModel
1083
+ attr_accessor id: String
1084
+
1085
+ attr_accessor name: String?
1086
+
1087
+ def initialize: (id: String, ?name: String?) -> void
1088
+
1089
+ def to_hash: -> { id: String, name: String? }
1090
+ end
1091
+
1091
1092
  type outcome =
1092
1093
  :not_interested
1093
1094
  | :interested
1094
1095
  | :completed
1095
1096
  | :requested_callback_later
1096
- | :requested_callback_new_number
1097
- | :do_not_contact
1098
- | :ai_averse
1099
1097
  | :none
1100
1098
 
1101
1099
  module Outcome
@@ -1105,9 +1103,6 @@ module Revox
1105
1103
  INTERESTED: :interested
1106
1104
  COMPLETED: :completed
1107
1105
  REQUESTED_CALLBACK_LATER: :requested_callback_later
1108
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1109
- DO_NOT_CONTACT: :do_not_contact
1110
- AI_AVERSE: :ai_averse
1111
1106
  NONE: :none
1112
1107
 
1113
1108
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::outcome]
@@ -1239,6 +1234,18 @@ module Revox
1239
1234
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::Assistant::thinking_sound]
1240
1235
  end
1241
1236
 
1237
+ type transfer_destination = { label: String, phone_number: String }
1238
+
1239
+ class TransferDestination < Revox::Internal::Type::BaseModel
1240
+ attr_accessor label: String
1241
+
1242
+ attr_accessor phone_number: String
1243
+
1244
+ def initialize: (label: String, phone_number: String) -> void
1245
+
1246
+ def to_hash: -> { label: String, phone_number: String }
1247
+ end
1248
+
1242
1249
  type type_ = :standalone | :"multi-step" | :"sub-assistant"
1243
1250
 
1244
1251
  module Type
@@ -1295,13 +1302,14 @@ module Revox
1295
1302
  volume: Float
1296
1303
  }
1297
1304
 
1298
- type provider = :cartesia | :elevenlabs
1305
+ type provider = :cartesia | :elevenlabs | :gradium
1299
1306
 
1300
1307
  module Provider
1301
1308
  extend Revox::Internal::Type::Enum
1302
1309
 
1303
1310
  CARTESIA: :cartesia
1304
1311
  ELEVENLABS: :elevenlabs
1312
+ GRADIUM: :gradium
1305
1313
 
1306
1314
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Voice::provider]
1307
1315
  end
@@ -1376,9 +1384,6 @@ module Revox
1376
1384
  | :interested
1377
1385
  | :completed
1378
1386
  | :requested_callback_later
1379
- | :requested_callback_new_number
1380
- | :do_not_contact
1381
- | :ai_averse
1382
1387
  | :none
1383
1388
 
1384
1389
  module Outcome
@@ -1388,9 +1393,6 @@ module Revox
1388
1393
  INTERESTED: :interested
1389
1394
  COMPLETED: :completed
1390
1395
  REQUESTED_CALLBACK_LATER: :requested_callback_later
1391
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1392
- DO_NOT_CONTACT: :do_not_contact
1393
- AI_AVERSE: :ai_averse
1394
1396
  NONE: :none
1395
1397
 
1396
1398
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Zoho::outcome]
@@ -1492,16 +1494,21 @@ module Revox
1492
1494
  answered_at: top,
1493
1495
  dial_error: Revox::Models::CallCreateResponse::Call::CallAttempt::dial_error?,
1494
1496
  ended_at: top,
1497
+ handled_by_ai: bool,
1498
+ handled_by_human: bool,
1499
+ handled_by_user: Revox::Models::CallCreateResponse::Call::CallAttempt::HandledByUser?,
1495
1500
  phone_number: String,
1496
1501
  recording_url: String?,
1497
1502
  result: Revox::Models::CallCreateResponse::Call::CallAttempt::result?,
1498
1503
  started_at: top,
1499
1504
  status: Revox::Models::CallCreateResponse::Call::CallAttempt::status,
1500
1505
  assistants_used: ::Array[String]?,
1506
+ email_log: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::EmailLog]?,
1501
1507
  end_reason: Revox::Models::CallCreateResponse::Call::CallAttempt::end_reason?,
1502
1508
  ended_by: Revox::Models::CallCreateResponse::Call::CallAttempt::ended_by?,
1503
1509
  post_call_transcript: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::PostCallTranscript]?,
1504
1510
  sms_log: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog]?,
1511
+ speech_events: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent]?,
1505
1512
  structured_output: ::Hash[Symbol, top]?,
1506
1513
  transcript: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::Transcript]?
1507
1514
  }
@@ -1515,6 +1522,12 @@ module Revox
1515
1522
 
1516
1523
  attr_accessor ended_at: top
1517
1524
 
1525
+ attr_accessor handled_by_ai: bool
1526
+
1527
+ attr_accessor handled_by_human: bool
1528
+
1529
+ attr_accessor handled_by_user: Revox::Models::CallCreateResponse::Call::CallAttempt::HandledByUser?
1530
+
1518
1531
  attr_accessor phone_number: String
1519
1532
 
1520
1533
  attr_accessor recording_url: String?
@@ -1527,6 +1540,8 @@ module Revox
1527
1540
 
1528
1541
  attr_accessor assistants_used: ::Array[String]?
1529
1542
 
1543
+ attr_accessor email_log: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::EmailLog]?
1544
+
1530
1545
  attr_accessor end_reason: Revox::Models::CallCreateResponse::Call::CallAttempt::end_reason?
1531
1546
 
1532
1547
  attr_accessor ended_by: Revox::Models::CallCreateResponse::Call::CallAttempt::ended_by?
@@ -1535,6 +1550,8 @@ module Revox
1535
1550
 
1536
1551
  attr_accessor sms_log: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog]?
1537
1552
 
1553
+ attr_accessor speech_events: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent]?
1554
+
1538
1555
  attr_accessor structured_output: ::Hash[Symbol, top]?
1539
1556
 
1540
1557
  attr_accessor transcript: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::Transcript]?
@@ -1544,16 +1561,21 @@ module Revox
1544
1561
  answered_at: top,
1545
1562
  dial_error: Revox::Models::CallCreateResponse::Call::CallAttempt::dial_error?,
1546
1563
  ended_at: top,
1564
+ handled_by_ai: bool,
1565
+ handled_by_human: bool,
1566
+ handled_by_user: Revox::Models::CallCreateResponse::Call::CallAttempt::HandledByUser?,
1547
1567
  phone_number: String,
1548
1568
  recording_url: String?,
1549
1569
  result: Revox::Models::CallCreateResponse::Call::CallAttempt::result?,
1550
1570
  started_at: top,
1551
1571
  status: Revox::Models::CallCreateResponse::Call::CallAttempt::status,
1552
1572
  ?assistants_used: ::Array[String]?,
1573
+ ?email_log: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::EmailLog]?,
1553
1574
  ?end_reason: Revox::Models::CallCreateResponse::Call::CallAttempt::end_reason?,
1554
1575
  ?ended_by: Revox::Models::CallCreateResponse::Call::CallAttempt::ended_by?,
1555
1576
  ?post_call_transcript: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::PostCallTranscript]?,
1556
1577
  ?sms_log: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog]?,
1578
+ ?speech_events: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent]?,
1557
1579
  ?structured_output: ::Hash[Symbol, top]?,
1558
1580
  ?transcript: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::Transcript]?
1559
1581
  ) -> void
@@ -1563,16 +1585,21 @@ module Revox
1563
1585
  answered_at: top,
1564
1586
  dial_error: Revox::Models::CallCreateResponse::Call::CallAttempt::dial_error?,
1565
1587
  ended_at: top,
1588
+ handled_by_ai: bool,
1589
+ handled_by_human: bool,
1590
+ handled_by_user: Revox::Models::CallCreateResponse::Call::CallAttempt::HandledByUser?,
1566
1591
  phone_number: String,
1567
1592
  recording_url: String?,
1568
1593
  result: Revox::Models::CallCreateResponse::Call::CallAttempt::result?,
1569
1594
  started_at: top,
1570
1595
  status: Revox::Models::CallCreateResponse::Call::CallAttempt::status,
1571
1596
  assistants_used: ::Array[String]?,
1597
+ email_log: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::EmailLog]?,
1572
1598
  end_reason: Revox::Models::CallCreateResponse::Call::CallAttempt::end_reason?,
1573
1599
  ended_by: Revox::Models::CallCreateResponse::Call::CallAttempt::ended_by?,
1574
1600
  post_call_transcript: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::PostCallTranscript]?,
1575
1601
  sms_log: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog]?,
1602
+ speech_events: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent]?,
1576
1603
  structured_output: ::Hash[Symbol, top]?,
1577
1604
  transcript: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::Transcript]?
1578
1605
  }
@@ -1602,6 +1629,38 @@ module Revox
1602
1629
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::dial_error]
1603
1630
  end
1604
1631
 
1632
+ type handled_by_user =
1633
+ {
1634
+ id: String,
1635
+ email: String,
1636
+ first_name: String?,
1637
+ last_name: String?
1638
+ }
1639
+
1640
+ class HandledByUser < Revox::Internal::Type::BaseModel
1641
+ attr_accessor id: String
1642
+
1643
+ attr_accessor email: String
1644
+
1645
+ attr_accessor first_name: String?
1646
+
1647
+ attr_accessor last_name: String?
1648
+
1649
+ def initialize: (
1650
+ id: String,
1651
+ email: String,
1652
+ first_name: String?,
1653
+ last_name: String?
1654
+ ) -> void
1655
+
1656
+ def to_hash: -> {
1657
+ id: String,
1658
+ email: String,
1659
+ first_name: String?,
1660
+ last_name: String?
1661
+ }
1662
+ end
1663
+
1605
1664
  type result =
1606
1665
  :IVR | :voicemail | :human | :unknown | :"ios-screening-filter"
1607
1666
 
@@ -1631,6 +1690,48 @@ module Revox
1631
1690
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::status]
1632
1691
  end
1633
1692
 
1693
+ type email_log =
1694
+ {
1695
+ id: String,
1696
+ created_at: top,
1697
+ from_address: String,
1698
+ resend_message_id: String?,
1699
+ subject: String,
1700
+ to_emails: ::Array[String]
1701
+ }
1702
+
1703
+ class EmailLog < Revox::Internal::Type::BaseModel
1704
+ attr_accessor id: String
1705
+
1706
+ attr_accessor created_at: top
1707
+
1708
+ attr_accessor from_address: String
1709
+
1710
+ attr_accessor resend_message_id: String?
1711
+
1712
+ attr_accessor subject: String
1713
+
1714
+ attr_accessor to_emails: ::Array[String]
1715
+
1716
+ def initialize: (
1717
+ id: String,
1718
+ created_at: top,
1719
+ from_address: String,
1720
+ resend_message_id: String?,
1721
+ subject: String,
1722
+ to_emails: ::Array[String]
1723
+ ) -> void
1724
+
1725
+ def to_hash: -> {
1726
+ id: String,
1727
+ created_at: top,
1728
+ from_address: String,
1729
+ resend_message_id: String?,
1730
+ subject: String,
1731
+ to_emails: ::Array[String]
1732
+ }
1733
+ end
1734
+
1634
1735
  type end_reason =
1635
1736
  :client_initiated
1636
1737
  | :connection_timeout
@@ -1764,8 +1865,9 @@ module Revox
1764
1865
  id: String,
1765
1866
  created_at: top,
1766
1867
  message_body: String,
1868
+ provider: Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::provider,
1869
+ provider_message_id: String?,
1767
1870
  to_phone_number: String,
1768
- twilio_message_sid: String?,
1769
1871
  type: Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::type_
1770
1872
  }
1771
1873
 
@@ -1776,9 +1878,11 @@ module Revox
1776
1878
 
1777
1879
  attr_accessor message_body: String
1778
1880
 
1779
- attr_accessor to_phone_number: String
1881
+ attr_accessor provider: Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::provider
1882
+
1883
+ attr_accessor provider_message_id: String?
1780
1884
 
1781
- attr_accessor twilio_message_sid: String?
1885
+ attr_accessor to_phone_number: String
1782
1886
 
1783
1887
  attr_accessor type: Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::type_
1784
1888
 
@@ -1786,8 +1890,9 @@ module Revox
1786
1890
  id: String,
1787
1891
  created_at: top,
1788
1892
  message_body: String,
1893
+ provider: Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::provider,
1894
+ provider_message_id: String?,
1789
1895
  to_phone_number: String,
1790
- twilio_message_sid: String?,
1791
1896
  type: Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::type_
1792
1897
  ) -> void
1793
1898
 
@@ -1795,11 +1900,23 @@ module Revox
1795
1900
  id: String,
1796
1901
  created_at: top,
1797
1902
  message_body: String,
1903
+ provider: Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::provider,
1904
+ provider_message_id: String?,
1798
1905
  to_phone_number: String,
1799
- twilio_message_sid: String?,
1800
1906
  type: Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::type_
1801
1907
  }
1802
1908
 
1909
+ type provider = :twilio | :vonage
1910
+
1911
+ module Provider
1912
+ extend Revox::Internal::Type::Enum
1913
+
1914
+ TWILIO: :twilio
1915
+ VONAGE: :vonage
1916
+
1917
+ def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::provider]
1918
+ end
1919
+
1803
1920
  type type_ = :in_call | :voicemail | :after_call
1804
1921
 
1805
1922
  module Type
@@ -1813,6 +1930,89 @@ module Revox
1813
1930
  end
1814
1931
  end
1815
1932
 
1933
+ type speech_event =
1934
+ {
1935
+ id: String,
1936
+ is_real_turn: bool,
1937
+ llm_system_prompt: String?,
1938
+ llm_ttft_ms: Float?,
1939
+ llm_winner_model: String?,
1940
+ speaker: Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent::speaker,
1941
+ started_speaking_at_ms: Float,
1942
+ stopped_speaking_at_ms: Float?,
1943
+ stt_transcription_delay_ms: Float?,
1944
+ transcript: String?,
1945
+ tts_ttfb_ms: Float?,
1946
+ was_cut: bool?
1947
+ }
1948
+
1949
+ class SpeechEvent < Revox::Internal::Type::BaseModel
1950
+ attr_accessor id: String
1951
+
1952
+ attr_accessor is_real_turn: bool
1953
+
1954
+ attr_accessor llm_system_prompt: String?
1955
+
1956
+ attr_accessor llm_ttft_ms: Float?
1957
+
1958
+ attr_accessor llm_winner_model: String?
1959
+
1960
+ attr_accessor speaker: Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent::speaker
1961
+
1962
+ attr_accessor started_speaking_at_ms: Float
1963
+
1964
+ attr_accessor stopped_speaking_at_ms: Float?
1965
+
1966
+ attr_accessor stt_transcription_delay_ms: Float?
1967
+
1968
+ attr_accessor transcript: String?
1969
+
1970
+ attr_accessor tts_ttfb_ms: Float?
1971
+
1972
+ attr_accessor was_cut: bool?
1973
+
1974
+ def initialize: (
1975
+ id: String,
1976
+ is_real_turn: bool,
1977
+ llm_system_prompt: String?,
1978
+ llm_ttft_ms: Float?,
1979
+ llm_winner_model: String?,
1980
+ speaker: Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent::speaker,
1981
+ started_speaking_at_ms: Float,
1982
+ stopped_speaking_at_ms: Float?,
1983
+ stt_transcription_delay_ms: Float?,
1984
+ transcript: String?,
1985
+ tts_ttfb_ms: Float?,
1986
+ was_cut: bool?
1987
+ ) -> void
1988
+
1989
+ def to_hash: -> {
1990
+ id: String,
1991
+ is_real_turn: bool,
1992
+ llm_system_prompt: String?,
1993
+ llm_ttft_ms: Float?,
1994
+ llm_winner_model: String?,
1995
+ speaker: Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent::speaker,
1996
+ started_speaking_at_ms: Float,
1997
+ stopped_speaking_at_ms: Float?,
1998
+ stt_transcription_delay_ms: Float?,
1999
+ transcript: String?,
2000
+ tts_ttfb_ms: Float?,
2001
+ was_cut: bool?
2002
+ }
2003
+
2004
+ type speaker = :user | :agent
2005
+
2006
+ module Speaker
2007
+ extend Revox::Internal::Type::Enum
2008
+
2009
+ USER: :user
2010
+ AGENT: :agent
2011
+
2012
+ def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent::speaker]
2013
+ end
2014
+ end
2015
+
1816
2016
  type transcript =
1817
2017
  {
1818
2018
  content: String,
@@ -1993,6 +2193,7 @@ module Revox
1993
2193
  company: String?,
1994
2194
  email: String?,
1995
2195
  first_name: String?,
2196
+ job_title: String?,
1996
2197
  last_name: String?
1997
2198
  }
1998
2199
 
@@ -2003,12 +2204,15 @@ module Revox
2003
2204
 
2004
2205
  attr_accessor first_name: String?
2005
2206
 
2207
+ attr_accessor job_title: String?
2208
+
2006
2209
  attr_accessor last_name: String?
2007
2210
 
2008
2211
  def initialize: (
2009
2212
  company: String?,
2010
2213
  email: String?,
2011
2214
  first_name: String?,
2215
+ job_title: String?,
2012
2216
  last_name: String?
2013
2217
  ) -> void
2014
2218
 
@@ -2016,6 +2220,7 @@ module Revox
2016
2220
  company: String?,
2017
2221
  email: String?,
2018
2222
  first_name: String?,
2223
+ job_title: String?,
2019
2224
  last_name: String?
2020
2225
  }
2021
2226
  end
@@ -2037,16 +2242,21 @@ module Revox
2037
2242
  answered_at: top,
2038
2243
  dial_error: Revox::Models::CallCreateResponse::Call::LastCallAttempt::dial_error?,
2039
2244
  ended_at: top,
2245
+ handled_by_ai: bool,
2246
+ handled_by_human: bool,
2247
+ handled_by_user: Revox::Models::CallCreateResponse::Call::LastCallAttempt::HandledByUser?,
2040
2248
  phone_number: String,
2041
2249
  recording_url: String?,
2042
2250
  result: Revox::Models::CallCreateResponse::Call::LastCallAttempt::result?,
2043
2251
  started_at: top,
2044
2252
  status: Revox::Models::CallCreateResponse::Call::LastCallAttempt::status,
2045
2253
  assistants_used: ::Array[String]?,
2254
+ email_log: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::EmailLog]?,
2046
2255
  end_reason: Revox::Models::CallCreateResponse::Call::LastCallAttempt::end_reason?,
2047
2256
  ended_by: Revox::Models::CallCreateResponse::Call::LastCallAttempt::ended_by?,
2048
2257
  post_call_transcript: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::PostCallTranscript]?,
2049
2258
  sms_log: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog]?,
2259
+ speech_events: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent]?,
2050
2260
  structured_output: ::Hash[Symbol, top]?,
2051
2261
  transcript: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::Transcript]?
2052
2262
  }
@@ -2060,6 +2270,12 @@ module Revox
2060
2270
 
2061
2271
  attr_accessor ended_at: top
2062
2272
 
2273
+ attr_accessor handled_by_ai: bool
2274
+
2275
+ attr_accessor handled_by_human: bool
2276
+
2277
+ attr_accessor handled_by_user: Revox::Models::CallCreateResponse::Call::LastCallAttempt::HandledByUser?
2278
+
2063
2279
  attr_accessor phone_number: String
2064
2280
 
2065
2281
  attr_accessor recording_url: String?
@@ -2072,6 +2288,8 @@ module Revox
2072
2288
 
2073
2289
  attr_accessor assistants_used: ::Array[String]?
2074
2290
 
2291
+ attr_accessor email_log: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::EmailLog]?
2292
+
2075
2293
  attr_accessor end_reason: Revox::Models::CallCreateResponse::Call::LastCallAttempt::end_reason?
2076
2294
 
2077
2295
  attr_accessor ended_by: Revox::Models::CallCreateResponse::Call::LastCallAttempt::ended_by?
@@ -2080,6 +2298,8 @@ module Revox
2080
2298
 
2081
2299
  attr_accessor sms_log: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog]?
2082
2300
 
2301
+ attr_accessor speech_events: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent]?
2302
+
2083
2303
  attr_accessor structured_output: ::Hash[Symbol, top]?
2084
2304
 
2085
2305
  attr_accessor transcript: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::Transcript]?
@@ -2089,16 +2309,21 @@ module Revox
2089
2309
  answered_at: top,
2090
2310
  dial_error: Revox::Models::CallCreateResponse::Call::LastCallAttempt::dial_error?,
2091
2311
  ended_at: top,
2312
+ handled_by_ai: bool,
2313
+ handled_by_human: bool,
2314
+ handled_by_user: Revox::Models::CallCreateResponse::Call::LastCallAttempt::HandledByUser?,
2092
2315
  phone_number: String,
2093
2316
  recording_url: String?,
2094
2317
  result: Revox::Models::CallCreateResponse::Call::LastCallAttempt::result?,
2095
2318
  started_at: top,
2096
2319
  status: Revox::Models::CallCreateResponse::Call::LastCallAttempt::status,
2097
2320
  ?assistants_used: ::Array[String]?,
2321
+ ?email_log: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::EmailLog]?,
2098
2322
  ?end_reason: Revox::Models::CallCreateResponse::Call::LastCallAttempt::end_reason?,
2099
2323
  ?ended_by: Revox::Models::CallCreateResponse::Call::LastCallAttempt::ended_by?,
2100
2324
  ?post_call_transcript: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::PostCallTranscript]?,
2101
2325
  ?sms_log: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog]?,
2326
+ ?speech_events: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent]?,
2102
2327
  ?structured_output: ::Hash[Symbol, top]?,
2103
2328
  ?transcript: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::Transcript]?
2104
2329
  ) -> void
@@ -2108,16 +2333,21 @@ module Revox
2108
2333
  answered_at: top,
2109
2334
  dial_error: Revox::Models::CallCreateResponse::Call::LastCallAttempt::dial_error?,
2110
2335
  ended_at: top,
2336
+ handled_by_ai: bool,
2337
+ handled_by_human: bool,
2338
+ handled_by_user: Revox::Models::CallCreateResponse::Call::LastCallAttempt::HandledByUser?,
2111
2339
  phone_number: String,
2112
2340
  recording_url: String?,
2113
2341
  result: Revox::Models::CallCreateResponse::Call::LastCallAttempt::result?,
2114
2342
  started_at: top,
2115
2343
  status: Revox::Models::CallCreateResponse::Call::LastCallAttempt::status,
2116
2344
  assistants_used: ::Array[String]?,
2345
+ email_log: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::EmailLog]?,
2117
2346
  end_reason: Revox::Models::CallCreateResponse::Call::LastCallAttempt::end_reason?,
2118
2347
  ended_by: Revox::Models::CallCreateResponse::Call::LastCallAttempt::ended_by?,
2119
2348
  post_call_transcript: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::PostCallTranscript]?,
2120
2349
  sms_log: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog]?,
2350
+ speech_events: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent]?,
2121
2351
  structured_output: ::Hash[Symbol, top]?,
2122
2352
  transcript: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::Transcript]?
2123
2353
  }
@@ -2147,6 +2377,38 @@ module Revox
2147
2377
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::dial_error]
2148
2378
  end
2149
2379
 
2380
+ type handled_by_user =
2381
+ {
2382
+ id: String,
2383
+ email: String,
2384
+ first_name: String?,
2385
+ last_name: String?
2386
+ }
2387
+
2388
+ class HandledByUser < Revox::Internal::Type::BaseModel
2389
+ attr_accessor id: String
2390
+
2391
+ attr_accessor email: String
2392
+
2393
+ attr_accessor first_name: String?
2394
+
2395
+ attr_accessor last_name: String?
2396
+
2397
+ def initialize: (
2398
+ id: String,
2399
+ email: String,
2400
+ first_name: String?,
2401
+ last_name: String?
2402
+ ) -> void
2403
+
2404
+ def to_hash: -> {
2405
+ id: String,
2406
+ email: String,
2407
+ first_name: String?,
2408
+ last_name: String?
2409
+ }
2410
+ end
2411
+
2150
2412
  type result =
2151
2413
  :IVR | :voicemail | :human | :unknown | :"ios-screening-filter"
2152
2414
 
@@ -2176,6 +2438,48 @@ module Revox
2176
2438
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::status]
2177
2439
  end
2178
2440
 
2441
+ type email_log =
2442
+ {
2443
+ id: String,
2444
+ created_at: top,
2445
+ from_address: String,
2446
+ resend_message_id: String?,
2447
+ subject: String,
2448
+ to_emails: ::Array[String]
2449
+ }
2450
+
2451
+ class EmailLog < Revox::Internal::Type::BaseModel
2452
+ attr_accessor id: String
2453
+
2454
+ attr_accessor created_at: top
2455
+
2456
+ attr_accessor from_address: String
2457
+
2458
+ attr_accessor resend_message_id: String?
2459
+
2460
+ attr_accessor subject: String
2461
+
2462
+ attr_accessor to_emails: ::Array[String]
2463
+
2464
+ def initialize: (
2465
+ id: String,
2466
+ created_at: top,
2467
+ from_address: String,
2468
+ resend_message_id: String?,
2469
+ subject: String,
2470
+ to_emails: ::Array[String]
2471
+ ) -> void
2472
+
2473
+ def to_hash: -> {
2474
+ id: String,
2475
+ created_at: top,
2476
+ from_address: String,
2477
+ resend_message_id: String?,
2478
+ subject: String,
2479
+ to_emails: ::Array[String]
2480
+ }
2481
+ end
2482
+
2179
2483
  type end_reason =
2180
2484
  :client_initiated
2181
2485
  | :connection_timeout
@@ -2309,8 +2613,9 @@ module Revox
2309
2613
  id: String,
2310
2614
  created_at: top,
2311
2615
  message_body: String,
2616
+ provider: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::provider,
2617
+ provider_message_id: String?,
2312
2618
  to_phone_number: String,
2313
- twilio_message_sid: String?,
2314
2619
  type: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::type_
2315
2620
  }
2316
2621
 
@@ -2321,9 +2626,11 @@ module Revox
2321
2626
 
2322
2627
  attr_accessor message_body: String
2323
2628
 
2324
- attr_accessor to_phone_number: String
2629
+ attr_accessor provider: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::provider
2325
2630
 
2326
- attr_accessor twilio_message_sid: String?
2631
+ attr_accessor provider_message_id: String?
2632
+
2633
+ attr_accessor to_phone_number: String
2327
2634
 
2328
2635
  attr_accessor type: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::type_
2329
2636
 
@@ -2331,8 +2638,9 @@ module Revox
2331
2638
  id: String,
2332
2639
  created_at: top,
2333
2640
  message_body: String,
2641
+ provider: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::provider,
2642
+ provider_message_id: String?,
2334
2643
  to_phone_number: String,
2335
- twilio_message_sid: String?,
2336
2644
  type: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::type_
2337
2645
  ) -> void
2338
2646
 
@@ -2340,11 +2648,23 @@ module Revox
2340
2648
  id: String,
2341
2649
  created_at: top,
2342
2650
  message_body: String,
2651
+ provider: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::provider,
2652
+ provider_message_id: String?,
2343
2653
  to_phone_number: String,
2344
- twilio_message_sid: String?,
2345
2654
  type: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::type_
2346
2655
  }
2347
2656
 
2657
+ type provider = :twilio | :vonage
2658
+
2659
+ module Provider
2660
+ extend Revox::Internal::Type::Enum
2661
+
2662
+ TWILIO: :twilio
2663
+ VONAGE: :vonage
2664
+
2665
+ def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::provider]
2666
+ end
2667
+
2348
2668
  type type_ = :in_call | :voicemail | :after_call
2349
2669
 
2350
2670
  module Type
@@ -2358,6 +2678,89 @@ module Revox
2358
2678
  end
2359
2679
  end
2360
2680
 
2681
+ type speech_event =
2682
+ {
2683
+ id: String,
2684
+ is_real_turn: bool,
2685
+ llm_system_prompt: String?,
2686
+ llm_ttft_ms: Float?,
2687
+ llm_winner_model: String?,
2688
+ speaker: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent::speaker,
2689
+ started_speaking_at_ms: Float,
2690
+ stopped_speaking_at_ms: Float?,
2691
+ stt_transcription_delay_ms: Float?,
2692
+ transcript: String?,
2693
+ tts_ttfb_ms: Float?,
2694
+ was_cut: bool?
2695
+ }
2696
+
2697
+ class SpeechEvent < Revox::Internal::Type::BaseModel
2698
+ attr_accessor id: String
2699
+
2700
+ attr_accessor is_real_turn: bool
2701
+
2702
+ attr_accessor llm_system_prompt: String?
2703
+
2704
+ attr_accessor llm_ttft_ms: Float?
2705
+
2706
+ attr_accessor llm_winner_model: String?
2707
+
2708
+ attr_accessor speaker: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent::speaker
2709
+
2710
+ attr_accessor started_speaking_at_ms: Float
2711
+
2712
+ attr_accessor stopped_speaking_at_ms: Float?
2713
+
2714
+ attr_accessor stt_transcription_delay_ms: Float?
2715
+
2716
+ attr_accessor transcript: String?
2717
+
2718
+ attr_accessor tts_ttfb_ms: Float?
2719
+
2720
+ attr_accessor was_cut: bool?
2721
+
2722
+ def initialize: (
2723
+ id: String,
2724
+ is_real_turn: bool,
2725
+ llm_system_prompt: String?,
2726
+ llm_ttft_ms: Float?,
2727
+ llm_winner_model: String?,
2728
+ speaker: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent::speaker,
2729
+ started_speaking_at_ms: Float,
2730
+ stopped_speaking_at_ms: Float?,
2731
+ stt_transcription_delay_ms: Float?,
2732
+ transcript: String?,
2733
+ tts_ttfb_ms: Float?,
2734
+ was_cut: bool?
2735
+ ) -> void
2736
+
2737
+ def to_hash: -> {
2738
+ id: String,
2739
+ is_real_turn: bool,
2740
+ llm_system_prompt: String?,
2741
+ llm_ttft_ms: Float?,
2742
+ llm_winner_model: String?,
2743
+ speaker: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent::speaker,
2744
+ started_speaking_at_ms: Float,
2745
+ stopped_speaking_at_ms: Float?,
2746
+ stt_transcription_delay_ms: Float?,
2747
+ transcript: String?,
2748
+ tts_ttfb_ms: Float?,
2749
+ was_cut: bool?
2750
+ }
2751
+
2752
+ type speaker = :user | :agent
2753
+
2754
+ module Speaker
2755
+ extend Revox::Internal::Type::Enum
2756
+
2757
+ USER: :user
2758
+ AGENT: :agent
2759
+
2760
+ def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent::speaker]
2761
+ end
2762
+ end
2763
+
2361
2764
  type transcript =
2362
2765
  {
2363
2766
  content: String,
@@ -2588,6 +2991,7 @@ module Revox
2588
2991
  | :queued_for_calling
2589
2992
  | :calling
2590
2993
  | :post_processing
2994
+ | :not_launched
2591
2995
  | :scheduled
2592
2996
  | :paused
2593
2997
  | :completed
@@ -2601,6 +3005,7 @@ module Revox
2601
3005
  QUEUED_FOR_CALLING: :queued_for_calling
2602
3006
  CALLING: :calling
2603
3007
  POST_PROCESSING: :post_processing
3008
+ NOT_LAUNCHED: :not_launched
2604
3009
  SCHEDULED: :scheduled
2605
3010
  PAUSED: :paused
2606
3011
  COMPLETED: :completed
@@ -2611,13 +3016,7 @@ module Revox
2611
3016
  end
2612
3017
 
2613
3018
  type outcome =
2614
- :not_interested
2615
- | :interested
2616
- | :completed
2617
- | :requested_callback_later
2618
- | :requested_callback_new_number
2619
- | :do_not_contact
2620
- | :ai_averse
3019
+ :not_interested | :interested | :completed | :requested_callback_later
2621
3020
 
2622
3021
  module Outcome
2623
3022
  extend Revox::Internal::Type::Enum
@@ -2626,9 +3025,6 @@ module Revox
2626
3025
  INTERESTED: :interested
2627
3026
  COMPLETED: :completed
2628
3027
  REQUESTED_CALLBACK_LATER: :requested_callback_later
2629
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
2630
- DO_NOT_CONTACT: :do_not_contact
2631
- AI_AVERSE: :ai_averse
2632
3028
 
2633
3029
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::outcome]
2634
3030
  end