revox 0.3.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 (105) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +38 -38
  4. data/lib/revox/models/assistant_clone_response.rb +87 -65
  5. data/lib/revox/models/assistant_create_params.rb +90 -66
  6. data/lib/revox/models/assistant_create_response.rb +87 -65
  7. data/lib/revox/models/assistant_list_response.rb +87 -65
  8. data/lib/revox/models/assistant_retrieve_response.rb +86 -65
  9. data/lib/revox/models/assistant_update_params.rb +90 -66
  10. data/lib/revox/models/assistant_update_response.rb +87 -65
  11. data/lib/revox/models/call_create_params.rb +117 -90
  12. data/lib/revox/models/call_create_response.rb +670 -90
  13. data/lib/revox/models/call_export_params.rb +1 -3
  14. data/lib/revox/models/call_phone_history_response.rb +0 -3
  15. data/lib/revox/models/call_retrieve_response.rb +671 -90
  16. data/lib/revox/models/call_search_params.rb +1 -3
  17. data/lib/revox/models/call_search_response.rb +670 -90
  18. data/lib/revox/models/campaign_create_params.rb +7 -57
  19. data/lib/revox/models/campaign_create_response.rb +108 -119
  20. data/lib/revox/models/campaign_get_rows_response.rb +672 -90
  21. data/lib/revox/models/campaign_list_response.rb +108 -119
  22. data/lib/revox/models/campaign_retrieve_response.rb +108 -119
  23. data/lib/revox/models/campaign_statistics_response.rb +51 -23
  24. data/lib/revox/models/campaign_update_params.rb +9 -78
  25. data/lib/revox/models/campaign_update_response.rb +108 -119
  26. data/lib/revox/models/phone_number_list_response.rb +87 -65
  27. data/lib/revox/models/phone_number_update_response.rb +87 -65
  28. data/lib/revox/models/voice_list_response.rb +1 -0
  29. data/lib/revox/models/voice_preview_params.rb +1 -0
  30. data/lib/revox/models/voice_retrieve_params.rb +1 -0
  31. data/lib/revox/models.rb +0 -2
  32. data/lib/revox/resources/assistants.rb +10 -10
  33. data/lib/revox/resources/call.rb +4 -4
  34. data/lib/revox/resources/campaigns.rb +13 -45
  35. data/lib/revox/version.rb +1 -1
  36. data/lib/revox.rb +0 -2
  37. data/rbi/revox/models/assistant_clone_response.rbi +157 -147
  38. data/rbi/revox/models/assistant_create_params.rbi +148 -162
  39. data/rbi/revox/models/assistant_create_response.rbi +157 -147
  40. data/rbi/revox/models/assistant_list_response.rbi +157 -147
  41. data/rbi/revox/models/assistant_retrieve_response.rbi +153 -147
  42. data/rbi/revox/models/assistant_update_params.rbi +148 -162
  43. data/rbi/revox/models/assistant_update_response.rbi +157 -147
  44. data/rbi/revox/models/call_create_params.rbi +190 -187
  45. data/rbi/revox/models/call_create_response.rbi +1138 -227
  46. data/rbi/revox/models/call_export_params.rbi +5 -15
  47. data/rbi/revox/models/call_phone_history_response.rbi +0 -15
  48. data/rbi/revox/models/call_retrieve_response.rbi +1138 -227
  49. data/rbi/revox/models/call_search_params.rbi +2 -9
  50. data/rbi/revox/models/call_search_response.rbi +1138 -227
  51. data/rbi/revox/models/campaign_create_params.rbi +9 -87
  52. data/rbi/revox/models/campaign_create_response.rbi +188 -266
  53. data/rbi/revox/models/campaign_get_rows_response.rbi +1138 -225
  54. data/rbi/revox/models/campaign_list_response.rbi +188 -262
  55. data/rbi/revox/models/campaign_retrieve_response.rbi +188 -266
  56. data/rbi/revox/models/campaign_statistics_response.rbi +94 -36
  57. data/rbi/revox/models/campaign_update_params.rbi +10 -128
  58. data/rbi/revox/models/campaign_update_response.rbi +188 -266
  59. data/rbi/revox/models/phone_number_list_response.rbi +157 -147
  60. data/rbi/revox/models/phone_number_update_response.rbi +157 -147
  61. data/rbi/revox/models/voice_list_response.rbi +5 -0
  62. data/rbi/revox/models/voice_preview_params.rbi +2 -0
  63. data/rbi/revox/models/voice_retrieve_params.rbi +2 -0
  64. data/rbi/revox/models.rbi +0 -2
  65. data/rbi/revox/resources/assistants.rbi +40 -22
  66. data/rbi/revox/resources/call.rbi +7 -4
  67. data/rbi/revox/resources/campaigns.rbi +12 -44
  68. data/sig/revox/models/assistant_clone_response.rbs +46 -54
  69. data/sig/revox/models/assistant_create_params.rbs +39 -58
  70. data/sig/revox/models/assistant_create_response.rbs +46 -54
  71. data/sig/revox/models/assistant_list_response.rbs +46 -54
  72. data/sig/revox/models/assistant_retrieve_response.rbs +46 -54
  73. data/sig/revox/models/assistant_update_params.rbs +39 -58
  74. data/sig/revox/models/assistant_update_response.rbs +46 -54
  75. data/sig/revox/models/call_create_params.rbs +50 -71
  76. data/sig/revox/models/call_create_response.rbs +468 -77
  77. data/sig/revox/models/call_export_params.rbs +2 -6
  78. data/sig/revox/models/call_phone_history_response.rbs +1 -10
  79. data/sig/revox/models/call_retrieve_response.rbs +468 -77
  80. data/sig/revox/models/call_search_params.rbs +2 -6
  81. data/sig/revox/models/call_search_response.rbs +468 -77
  82. data/sig/revox/models/campaign_create_params.rbs +5 -50
  83. data/sig/revox/models/campaign_create_response.rbs +62 -98
  84. data/sig/revox/models/campaign_get_rows_response.rbs +467 -73
  85. data/sig/revox/models/campaign_list_response.rbs +62 -98
  86. data/sig/revox/models/campaign_retrieve_response.rbs +62 -98
  87. data/sig/revox/models/campaign_statistics_response.rbs +55 -24
  88. data/sig/revox/models/campaign_update_params.rbs +1 -69
  89. data/sig/revox/models/campaign_update_response.rbs +62 -98
  90. data/sig/revox/models/phone_number_list_response.rbs +46 -54
  91. data/sig/revox/models/phone_number_update_response.rbs +46 -54
  92. data/sig/revox/models/voice_list_response.rbs +2 -1
  93. data/sig/revox/models/voice_preview_params.rbs +2 -1
  94. data/sig/revox/models/voice_retrieve_params.rbs +2 -1
  95. data/sig/revox/models.rbs +0 -2
  96. data/sig/revox/resources/assistants.rbs +4 -4
  97. data/sig/revox/resources/call.rbs +1 -1
  98. data/sig/revox/resources/campaigns.rbs +0 -12
  99. metadata +2 -8
  100. data/lib/revox/models/campaign_launch_params.rb +0 -20
  101. data/lib/revox/models/campaign_launch_response.rb +0 -2030
  102. data/rbi/revox/models/campaign_launch_params.rbi +0 -33
  103. data/rbi/revox/models/campaign_launch_response.rbi +0 -4170
  104. data/sig/revox/models/campaign_launch_params.rbs +0 -20
  105. data/sig/revox/models/campaign_launch_response.rbs +0 -1694
@@ -37,7 +37,8 @@ module Revox
37
37
  updated_at: top,
38
38
  follow_up_emails: ::Array[String]?,
39
39
  outcome: Revox::Models::CallCreateResponse::Call::outcome?,
40
- outcome_summary: String?
40
+ outcome_summary: String?,
41
+ slack_channel_ids: ::Array[String]?
41
42
  }
42
43
 
43
44
  class Call < Revox::Internal::Type::BaseModel
@@ -93,6 +94,8 @@ module Revox
93
94
 
94
95
  attr_accessor outcome_summary: String?
95
96
 
97
+ attr_accessor slack_channel_ids: ::Array[String]?
98
+
96
99
  def initialize: (
97
100
  id: String,
98
101
  assignee: Revox::Models::CallCreateResponse::Call::Assignee?,
@@ -119,7 +122,8 @@ module Revox
119
122
  updated_at: top,
120
123
  ?follow_up_emails: ::Array[String]?,
121
124
  ?outcome: Revox::Models::CallCreateResponse::Call::outcome?,
122
- ?outcome_summary: String?
125
+ ?outcome_summary: String?,
126
+ ?slack_channel_ids: ::Array[String]?
123
127
  ) -> void
124
128
 
125
129
  def to_hash: -> {
@@ -148,7 +152,8 @@ module Revox
148
152
  updated_at: top,
149
153
  follow_up_emails: ::Array[String]?,
150
154
  outcome: Revox::Models::CallCreateResponse::Call::outcome?,
151
- outcome_summary: String?
155
+ outcome_summary: String?,
156
+ slack_channel_ids: ::Array[String]?
152
157
  }
153
158
 
154
159
  type assignee =
@@ -191,7 +196,6 @@ module Revox
191
196
  created_at: top,
192
197
  custom_tools: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::CustomTool]?,
193
198
  email_notification_address: String?,
194
- email_notification_language: Revox::Models::CallCreateResponse::Call::Assistant::email_notification_language,
195
199
  email_notification_outcomes: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::email_notification_outcome]?,
196
200
  end_of_call_sentence: String?,
197
201
  first_sentence: String?,
@@ -207,6 +211,7 @@ module Revox
207
211
  name: String,
208
212
  organization_id: String,
209
213
  position: Revox::Models::CallCreateResponse::Call::Assistant::Position?,
214
+ precall_lookup_url: String?,
210
215
  prompt: String,
211
216
  prompt_flow: Revox::Models::CallCreateResponse::Call::Assistant::PromptFlow?,
212
217
  slack: Revox::Models::CallCreateResponse::Call::Assistant::Slack?,
@@ -219,7 +224,7 @@ module Revox
219
224
  thinking_sound: Revox::Models::CallCreateResponse::Call::Assistant::thinking_sound?,
220
225
  thinking_sound_probability: Float,
221
226
  thinking_sound_volume: Float,
222
- transfer_phone_number: String?,
227
+ transfer_destinations: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::TransferDestination]?,
223
228
  type: Revox::Models::CallCreateResponse::Call::Assistant::type_,
224
229
  updated_at: top,
225
230
  voice: Revox::Models::CallCreateResponse::Call::Assistant::Voice?,
@@ -230,6 +235,7 @@ module Revox
230
235
  zoho: Revox::Models::CallCreateResponse::Call::Assistant::Zoho?,
231
236
  created_by: Revox::Models::CallCreateResponse::Call::Assistant::CreatedBy?,
232
237
  faq_items: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::FaqItem],
238
+ is_inbound_receptionist: bool,
233
239
  is_realestate_assistant: bool,
234
240
  pending_faq_count: Float
235
241
  }
@@ -257,8 +263,6 @@ module Revox
257
263
 
258
264
  attr_accessor email_notification_address: String?
259
265
 
260
- attr_accessor email_notification_language: Revox::Models::CallCreateResponse::Call::Assistant::email_notification_language
261
-
262
266
  attr_accessor email_notification_outcomes: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::email_notification_outcome]?
263
267
 
264
268
  attr_accessor end_of_call_sentence: String?
@@ -289,6 +293,8 @@ module Revox
289
293
 
290
294
  attr_accessor position: Revox::Models::CallCreateResponse::Call::Assistant::Position?
291
295
 
296
+ attr_accessor precall_lookup_url: String?
297
+
292
298
  attr_accessor prompt: String
293
299
 
294
300
  attr_accessor prompt_flow: Revox::Models::CallCreateResponse::Call::Assistant::PromptFlow?
@@ -313,7 +319,7 @@ module Revox
313
319
 
314
320
  attr_accessor thinking_sound_volume: Float
315
321
 
316
- attr_accessor transfer_phone_number: String?
322
+ attr_accessor transfer_destinations: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::TransferDestination]?
317
323
 
318
324
  attr_accessor type: Revox::Models::CallCreateResponse::Call::Assistant::type_
319
325
 
@@ -339,6 +345,10 @@ module Revox
339
345
  ::Array[Revox::Models::CallCreateResponse::Call::Assistant::FaqItem]
340
346
  ) -> ::Array[Revox::Models::CallCreateResponse::Call::Assistant::FaqItem]
341
347
 
348
+ attr_reader is_inbound_receptionist: bool?
349
+
350
+ def is_inbound_receptionist=: (bool) -> bool
351
+
342
352
  attr_reader is_realestate_assistant: bool?
343
353
 
344
354
  def is_realestate_assistant=: (bool) -> bool
@@ -359,7 +369,6 @@ module Revox
359
369
  created_at: top,
360
370
  custom_tools: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::CustomTool]?,
361
371
  email_notification_address: String?,
362
- email_notification_language: Revox::Models::CallCreateResponse::Call::Assistant::email_notification_language,
363
372
  email_notification_outcomes: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::email_notification_outcome]?,
364
373
  end_of_call_sentence: String?,
365
374
  first_sentence: String?,
@@ -375,6 +384,7 @@ module Revox
375
384
  name: String,
376
385
  organization_id: String,
377
386
  position: Revox::Models::CallCreateResponse::Call::Assistant::Position?,
387
+ precall_lookup_url: String?,
378
388
  prompt: String,
379
389
  prompt_flow: Revox::Models::CallCreateResponse::Call::Assistant::PromptFlow?,
380
390
  slack: Revox::Models::CallCreateResponse::Call::Assistant::Slack?,
@@ -387,7 +397,7 @@ module Revox
387
397
  thinking_sound: Revox::Models::CallCreateResponse::Call::Assistant::thinking_sound?,
388
398
  thinking_sound_probability: Float,
389
399
  thinking_sound_volume: Float,
390
- transfer_phone_number: String?,
400
+ transfer_destinations: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::TransferDestination]?,
391
401
  type: Revox::Models::CallCreateResponse::Call::Assistant::type_,
392
402
  updated_at: top,
393
403
  voice: Revox::Models::CallCreateResponse::Call::Assistant::Voice?,
@@ -398,6 +408,7 @@ module Revox
398
408
  zoho: Revox::Models::CallCreateResponse::Call::Assistant::Zoho?,
399
409
  ?created_by: Revox::Models::CallCreateResponse::Call::Assistant::CreatedBy?,
400
410
  ?faq_items: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::FaqItem],
411
+ ?is_inbound_receptionist: bool,
401
412
  ?is_realestate_assistant: bool,
402
413
  ?pending_faq_count: Float
403
414
  ) -> void
@@ -414,7 +425,6 @@ module Revox
414
425
  created_at: top,
415
426
  custom_tools: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::CustomTool]?,
416
427
  email_notification_address: String?,
417
- email_notification_language: Revox::Models::CallCreateResponse::Call::Assistant::email_notification_language,
418
428
  email_notification_outcomes: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::email_notification_outcome]?,
419
429
  end_of_call_sentence: String?,
420
430
  first_sentence: String?,
@@ -430,6 +440,7 @@ module Revox
430
440
  name: String,
431
441
  organization_id: String,
432
442
  position: Revox::Models::CallCreateResponse::Call::Assistant::Position?,
443
+ precall_lookup_url: String?,
433
444
  prompt: String,
434
445
  prompt_flow: Revox::Models::CallCreateResponse::Call::Assistant::PromptFlow?,
435
446
  slack: Revox::Models::CallCreateResponse::Call::Assistant::Slack?,
@@ -442,7 +453,7 @@ module Revox
442
453
  thinking_sound: Revox::Models::CallCreateResponse::Call::Assistant::thinking_sound?,
443
454
  thinking_sound_probability: Float,
444
455
  thinking_sound_volume: Float,
445
- transfer_phone_number: String?,
456
+ transfer_destinations: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::TransferDestination]?,
446
457
  type: Revox::Models::CallCreateResponse::Call::Assistant::type_,
447
458
  updated_at: top,
448
459
  voice: Revox::Models::CallCreateResponse::Call::Assistant::Voice?,
@@ -453,6 +464,7 @@ module Revox
453
464
  zoho: Revox::Models::CallCreateResponse::Call::Assistant::Zoho?,
454
465
  created_by: Revox::Models::CallCreateResponse::Call::Assistant::CreatedBy?,
455
466
  faq_items: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::FaqItem],
467
+ is_inbound_receptionist: bool,
456
468
  is_realestate_assistant: bool,
457
469
  pending_faq_count: Float
458
470
  }
@@ -462,9 +474,6 @@ module Revox
462
474
  | :interested
463
475
  | :completed
464
476
  | :requested_callback_later
465
- | :requested_callback_new_number
466
- | :do_not_contact
467
- | :ai_averse
468
477
  | :none
469
478
 
470
479
  module AfterCallSMSOutcome
@@ -474,9 +483,6 @@ module Revox
474
483
  INTERESTED: :interested
475
484
  COMPLETED: :completed
476
485
  REQUESTED_CALLBACK_LATER: :requested_callback_later
477
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
478
- DO_NOT_CONTACT: :do_not_contact
479
- AI_AVERSE: :ai_averse
480
486
  NONE: :none
481
487
 
482
488
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::Assistant::after_call_sms_outcome]
@@ -741,25 +747,11 @@ module Revox
741
747
  end
742
748
  end
743
749
 
744
- type email_notification_language = :en | :fr
745
-
746
- module EmailNotificationLanguage
747
- extend Revox::Internal::Type::Enum
748
-
749
- EN: :en
750
- FR: :fr
751
-
752
- def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::Assistant::email_notification_language]
753
- end
754
-
755
750
  type email_notification_outcome =
756
751
  :not_interested
757
752
  | :interested
758
753
  | :completed
759
754
  | :requested_callback_later
760
- | :requested_callback_new_number
761
- | :do_not_contact
762
- | :ai_averse
763
755
  | :none
764
756
 
765
757
  module EmailNotificationOutcome
@@ -769,9 +761,6 @@ module Revox
769
761
  INTERESTED: :interested
770
762
  COMPLETED: :completed
771
763
  REQUESTED_CALLBACK_LATER: :requested_callback_later
772
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
773
- DO_NOT_CONTACT: :do_not_contact
774
- AI_AVERSE: :ai_averse
775
764
  NONE: :none
776
765
 
777
766
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::Assistant::email_notification_outcome]
@@ -1059,48 +1048,52 @@ module Revox
1059
1048
 
1060
1049
  type slack =
1061
1050
  {
1062
- channel_id: String,
1051
+ channels: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::Channel],
1063
1052
  connection_id: String,
1064
1053
  outcomes: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::outcome],
1065
- channel_name: String?,
1066
1054
  template: String?
1067
1055
  }
1068
1056
 
1069
1057
  class Slack < Revox::Internal::Type::BaseModel
1070
- attr_accessor channel_id: String
1058
+ attr_accessor channels: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::Channel]
1071
1059
 
1072
1060
  attr_accessor connection_id: String
1073
1061
 
1074
1062
  attr_accessor outcomes: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::outcome]
1075
1063
 
1076
- attr_accessor channel_name: String?
1077
-
1078
1064
  attr_accessor template: String?
1079
1065
 
1080
1066
  def initialize: (
1081
- channel_id: String,
1067
+ channels: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::Channel],
1082
1068
  connection_id: String,
1083
1069
  outcomes: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::outcome],
1084
- ?channel_name: String?,
1085
1070
  ?template: String?
1086
1071
  ) -> void
1087
1072
 
1088
1073
  def to_hash: -> {
1089
- channel_id: String,
1074
+ channels: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::Channel],
1090
1075
  connection_id: String,
1091
1076
  outcomes: ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::outcome],
1092
- channel_name: String?,
1093
1077
  template: String?
1094
1078
  }
1095
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
+
1096
1092
  type outcome =
1097
1093
  :not_interested
1098
1094
  | :interested
1099
1095
  | :completed
1100
1096
  | :requested_callback_later
1101
- | :requested_callback_new_number
1102
- | :do_not_contact
1103
- | :ai_averse
1104
1097
  | :none
1105
1098
 
1106
1099
  module Outcome
@@ -1110,9 +1103,6 @@ module Revox
1110
1103
  INTERESTED: :interested
1111
1104
  COMPLETED: :completed
1112
1105
  REQUESTED_CALLBACK_LATER: :requested_callback_later
1113
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1114
- DO_NOT_CONTACT: :do_not_contact
1115
- AI_AVERSE: :ai_averse
1116
1106
  NONE: :none
1117
1107
 
1118
1108
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Slack::outcome]
@@ -1244,6 +1234,18 @@ module Revox
1244
1234
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::Assistant::thinking_sound]
1245
1235
  end
1246
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
+
1247
1249
  type type_ = :standalone | :"multi-step" | :"sub-assistant"
1248
1250
 
1249
1251
  module Type
@@ -1300,13 +1302,14 @@ module Revox
1300
1302
  volume: Float
1301
1303
  }
1302
1304
 
1303
- type provider = :cartesia | :elevenlabs
1305
+ type provider = :cartesia | :elevenlabs | :gradium
1304
1306
 
1305
1307
  module Provider
1306
1308
  extend Revox::Internal::Type::Enum
1307
1309
 
1308
1310
  CARTESIA: :cartesia
1309
1311
  ELEVENLABS: :elevenlabs
1312
+ GRADIUM: :gradium
1310
1313
 
1311
1314
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Voice::provider]
1312
1315
  end
@@ -1381,9 +1384,6 @@ module Revox
1381
1384
  | :interested
1382
1385
  | :completed
1383
1386
  | :requested_callback_later
1384
- | :requested_callback_new_number
1385
- | :do_not_contact
1386
- | :ai_averse
1387
1387
  | :none
1388
1388
 
1389
1389
  module Outcome
@@ -1393,9 +1393,6 @@ module Revox
1393
1393
  INTERESTED: :interested
1394
1394
  COMPLETED: :completed
1395
1395
  REQUESTED_CALLBACK_LATER: :requested_callback_later
1396
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1397
- DO_NOT_CONTACT: :do_not_contact
1398
- AI_AVERSE: :ai_averse
1399
1396
  NONE: :none
1400
1397
 
1401
1398
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::Assistant::Zoho::outcome]
@@ -1497,16 +1494,21 @@ module Revox
1497
1494
  answered_at: top,
1498
1495
  dial_error: Revox::Models::CallCreateResponse::Call::CallAttempt::dial_error?,
1499
1496
  ended_at: top,
1497
+ handled_by_ai: bool,
1498
+ handled_by_human: bool,
1499
+ handled_by_user: Revox::Models::CallCreateResponse::Call::CallAttempt::HandledByUser?,
1500
1500
  phone_number: String,
1501
1501
  recording_url: String?,
1502
1502
  result: Revox::Models::CallCreateResponse::Call::CallAttempt::result?,
1503
1503
  started_at: top,
1504
1504
  status: Revox::Models::CallCreateResponse::Call::CallAttempt::status,
1505
1505
  assistants_used: ::Array[String]?,
1506
+ email_log: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::EmailLog]?,
1506
1507
  end_reason: Revox::Models::CallCreateResponse::Call::CallAttempt::end_reason?,
1507
1508
  ended_by: Revox::Models::CallCreateResponse::Call::CallAttempt::ended_by?,
1508
1509
  post_call_transcript: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::PostCallTranscript]?,
1509
1510
  sms_log: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog]?,
1511
+ speech_events: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent]?,
1510
1512
  structured_output: ::Hash[Symbol, top]?,
1511
1513
  transcript: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::Transcript]?
1512
1514
  }
@@ -1520,6 +1522,12 @@ module Revox
1520
1522
 
1521
1523
  attr_accessor ended_at: top
1522
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
+
1523
1531
  attr_accessor phone_number: String
1524
1532
 
1525
1533
  attr_accessor recording_url: String?
@@ -1532,6 +1540,8 @@ module Revox
1532
1540
 
1533
1541
  attr_accessor assistants_used: ::Array[String]?
1534
1542
 
1543
+ attr_accessor email_log: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::EmailLog]?
1544
+
1535
1545
  attr_accessor end_reason: Revox::Models::CallCreateResponse::Call::CallAttempt::end_reason?
1536
1546
 
1537
1547
  attr_accessor ended_by: Revox::Models::CallCreateResponse::Call::CallAttempt::ended_by?
@@ -1540,6 +1550,8 @@ module Revox
1540
1550
 
1541
1551
  attr_accessor sms_log: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog]?
1542
1552
 
1553
+ attr_accessor speech_events: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent]?
1554
+
1543
1555
  attr_accessor structured_output: ::Hash[Symbol, top]?
1544
1556
 
1545
1557
  attr_accessor transcript: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::Transcript]?
@@ -1549,16 +1561,21 @@ module Revox
1549
1561
  answered_at: top,
1550
1562
  dial_error: Revox::Models::CallCreateResponse::Call::CallAttempt::dial_error?,
1551
1563
  ended_at: top,
1564
+ handled_by_ai: bool,
1565
+ handled_by_human: bool,
1566
+ handled_by_user: Revox::Models::CallCreateResponse::Call::CallAttempt::HandledByUser?,
1552
1567
  phone_number: String,
1553
1568
  recording_url: String?,
1554
1569
  result: Revox::Models::CallCreateResponse::Call::CallAttempt::result?,
1555
1570
  started_at: top,
1556
1571
  status: Revox::Models::CallCreateResponse::Call::CallAttempt::status,
1557
1572
  ?assistants_used: ::Array[String]?,
1573
+ ?email_log: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::EmailLog]?,
1558
1574
  ?end_reason: Revox::Models::CallCreateResponse::Call::CallAttempt::end_reason?,
1559
1575
  ?ended_by: Revox::Models::CallCreateResponse::Call::CallAttempt::ended_by?,
1560
1576
  ?post_call_transcript: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::PostCallTranscript]?,
1561
1577
  ?sms_log: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog]?,
1578
+ ?speech_events: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent]?,
1562
1579
  ?structured_output: ::Hash[Symbol, top]?,
1563
1580
  ?transcript: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::Transcript]?
1564
1581
  ) -> void
@@ -1568,16 +1585,21 @@ module Revox
1568
1585
  answered_at: top,
1569
1586
  dial_error: Revox::Models::CallCreateResponse::Call::CallAttempt::dial_error?,
1570
1587
  ended_at: top,
1588
+ handled_by_ai: bool,
1589
+ handled_by_human: bool,
1590
+ handled_by_user: Revox::Models::CallCreateResponse::Call::CallAttempt::HandledByUser?,
1571
1591
  phone_number: String,
1572
1592
  recording_url: String?,
1573
1593
  result: Revox::Models::CallCreateResponse::Call::CallAttempt::result?,
1574
1594
  started_at: top,
1575
1595
  status: Revox::Models::CallCreateResponse::Call::CallAttempt::status,
1576
1596
  assistants_used: ::Array[String]?,
1597
+ email_log: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::EmailLog]?,
1577
1598
  end_reason: Revox::Models::CallCreateResponse::Call::CallAttempt::end_reason?,
1578
1599
  ended_by: Revox::Models::CallCreateResponse::Call::CallAttempt::ended_by?,
1579
1600
  post_call_transcript: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::PostCallTranscript]?,
1580
1601
  sms_log: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog]?,
1602
+ speech_events: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent]?,
1581
1603
  structured_output: ::Hash[Symbol, top]?,
1582
1604
  transcript: ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::Transcript]?
1583
1605
  }
@@ -1607,6 +1629,38 @@ module Revox
1607
1629
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::dial_error]
1608
1630
  end
1609
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
+
1610
1664
  type result =
1611
1665
  :IVR | :voicemail | :human | :unknown | :"ios-screening-filter"
1612
1666
 
@@ -1636,6 +1690,48 @@ module Revox
1636
1690
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::CallAttempt::status]
1637
1691
  end
1638
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
+
1639
1735
  type end_reason =
1640
1736
  :client_initiated
1641
1737
  | :connection_timeout
@@ -1769,8 +1865,9 @@ module Revox
1769
1865
  id: String,
1770
1866
  created_at: top,
1771
1867
  message_body: String,
1868
+ provider: Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::provider,
1869
+ provider_message_id: String?,
1772
1870
  to_phone_number: String,
1773
- twilio_message_sid: String?,
1774
1871
  type: Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::type_
1775
1872
  }
1776
1873
 
@@ -1781,9 +1878,11 @@ module Revox
1781
1878
 
1782
1879
  attr_accessor message_body: String
1783
1880
 
1784
- 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?
1785
1884
 
1786
- attr_accessor twilio_message_sid: String?
1885
+ attr_accessor to_phone_number: String
1787
1886
 
1788
1887
  attr_accessor type: Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::type_
1789
1888
 
@@ -1791,8 +1890,9 @@ module Revox
1791
1890
  id: String,
1792
1891
  created_at: top,
1793
1892
  message_body: String,
1893
+ provider: Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::provider,
1894
+ provider_message_id: String?,
1794
1895
  to_phone_number: String,
1795
- twilio_message_sid: String?,
1796
1896
  type: Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::type_
1797
1897
  ) -> void
1798
1898
 
@@ -1800,11 +1900,23 @@ module Revox
1800
1900
  id: String,
1801
1901
  created_at: top,
1802
1902
  message_body: String,
1903
+ provider: Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::provider,
1904
+ provider_message_id: String?,
1803
1905
  to_phone_number: String,
1804
- twilio_message_sid: String?,
1805
1906
  type: Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::type_
1806
1907
  }
1807
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
+
1808
1920
  type type_ = :in_call | :voicemail | :after_call
1809
1921
 
1810
1922
  module Type
@@ -1818,6 +1930,89 @@ module Revox
1818
1930
  end
1819
1931
  end
1820
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
+
1821
2016
  type transcript =
1822
2017
  {
1823
2018
  content: String,
@@ -1998,6 +2193,7 @@ module Revox
1998
2193
  company: String?,
1999
2194
  email: String?,
2000
2195
  first_name: String?,
2196
+ job_title: String?,
2001
2197
  last_name: String?
2002
2198
  }
2003
2199
 
@@ -2008,12 +2204,15 @@ module Revox
2008
2204
 
2009
2205
  attr_accessor first_name: String?
2010
2206
 
2207
+ attr_accessor job_title: String?
2208
+
2011
2209
  attr_accessor last_name: String?
2012
2210
 
2013
2211
  def initialize: (
2014
2212
  company: String?,
2015
2213
  email: String?,
2016
2214
  first_name: String?,
2215
+ job_title: String?,
2017
2216
  last_name: String?
2018
2217
  ) -> void
2019
2218
 
@@ -2021,6 +2220,7 @@ module Revox
2021
2220
  company: String?,
2022
2221
  email: String?,
2023
2222
  first_name: String?,
2223
+ job_title: String?,
2024
2224
  last_name: String?
2025
2225
  }
2026
2226
  end
@@ -2042,16 +2242,21 @@ module Revox
2042
2242
  answered_at: top,
2043
2243
  dial_error: Revox::Models::CallCreateResponse::Call::LastCallAttempt::dial_error?,
2044
2244
  ended_at: top,
2245
+ handled_by_ai: bool,
2246
+ handled_by_human: bool,
2247
+ handled_by_user: Revox::Models::CallCreateResponse::Call::LastCallAttempt::HandledByUser?,
2045
2248
  phone_number: String,
2046
2249
  recording_url: String?,
2047
2250
  result: Revox::Models::CallCreateResponse::Call::LastCallAttempt::result?,
2048
2251
  started_at: top,
2049
2252
  status: Revox::Models::CallCreateResponse::Call::LastCallAttempt::status,
2050
2253
  assistants_used: ::Array[String]?,
2254
+ email_log: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::EmailLog]?,
2051
2255
  end_reason: Revox::Models::CallCreateResponse::Call::LastCallAttempt::end_reason?,
2052
2256
  ended_by: Revox::Models::CallCreateResponse::Call::LastCallAttempt::ended_by?,
2053
2257
  post_call_transcript: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::PostCallTranscript]?,
2054
2258
  sms_log: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog]?,
2259
+ speech_events: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent]?,
2055
2260
  structured_output: ::Hash[Symbol, top]?,
2056
2261
  transcript: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::Transcript]?
2057
2262
  }
@@ -2065,6 +2270,12 @@ module Revox
2065
2270
 
2066
2271
  attr_accessor ended_at: top
2067
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
+
2068
2279
  attr_accessor phone_number: String
2069
2280
 
2070
2281
  attr_accessor recording_url: String?
@@ -2077,6 +2288,8 @@ module Revox
2077
2288
 
2078
2289
  attr_accessor assistants_used: ::Array[String]?
2079
2290
 
2291
+ attr_accessor email_log: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::EmailLog]?
2292
+
2080
2293
  attr_accessor end_reason: Revox::Models::CallCreateResponse::Call::LastCallAttempt::end_reason?
2081
2294
 
2082
2295
  attr_accessor ended_by: Revox::Models::CallCreateResponse::Call::LastCallAttempt::ended_by?
@@ -2085,6 +2298,8 @@ module Revox
2085
2298
 
2086
2299
  attr_accessor sms_log: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog]?
2087
2300
 
2301
+ attr_accessor speech_events: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent]?
2302
+
2088
2303
  attr_accessor structured_output: ::Hash[Symbol, top]?
2089
2304
 
2090
2305
  attr_accessor transcript: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::Transcript]?
@@ -2094,16 +2309,21 @@ module Revox
2094
2309
  answered_at: top,
2095
2310
  dial_error: Revox::Models::CallCreateResponse::Call::LastCallAttempt::dial_error?,
2096
2311
  ended_at: top,
2312
+ handled_by_ai: bool,
2313
+ handled_by_human: bool,
2314
+ handled_by_user: Revox::Models::CallCreateResponse::Call::LastCallAttempt::HandledByUser?,
2097
2315
  phone_number: String,
2098
2316
  recording_url: String?,
2099
2317
  result: Revox::Models::CallCreateResponse::Call::LastCallAttempt::result?,
2100
2318
  started_at: top,
2101
2319
  status: Revox::Models::CallCreateResponse::Call::LastCallAttempt::status,
2102
2320
  ?assistants_used: ::Array[String]?,
2321
+ ?email_log: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::EmailLog]?,
2103
2322
  ?end_reason: Revox::Models::CallCreateResponse::Call::LastCallAttempt::end_reason?,
2104
2323
  ?ended_by: Revox::Models::CallCreateResponse::Call::LastCallAttempt::ended_by?,
2105
2324
  ?post_call_transcript: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::PostCallTranscript]?,
2106
2325
  ?sms_log: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog]?,
2326
+ ?speech_events: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent]?,
2107
2327
  ?structured_output: ::Hash[Symbol, top]?,
2108
2328
  ?transcript: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::Transcript]?
2109
2329
  ) -> void
@@ -2113,16 +2333,21 @@ module Revox
2113
2333
  answered_at: top,
2114
2334
  dial_error: Revox::Models::CallCreateResponse::Call::LastCallAttempt::dial_error?,
2115
2335
  ended_at: top,
2336
+ handled_by_ai: bool,
2337
+ handled_by_human: bool,
2338
+ handled_by_user: Revox::Models::CallCreateResponse::Call::LastCallAttempt::HandledByUser?,
2116
2339
  phone_number: String,
2117
2340
  recording_url: String?,
2118
2341
  result: Revox::Models::CallCreateResponse::Call::LastCallAttempt::result?,
2119
2342
  started_at: top,
2120
2343
  status: Revox::Models::CallCreateResponse::Call::LastCallAttempt::status,
2121
2344
  assistants_used: ::Array[String]?,
2345
+ email_log: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::EmailLog]?,
2122
2346
  end_reason: Revox::Models::CallCreateResponse::Call::LastCallAttempt::end_reason?,
2123
2347
  ended_by: Revox::Models::CallCreateResponse::Call::LastCallAttempt::ended_by?,
2124
2348
  post_call_transcript: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::PostCallTranscript]?,
2125
2349
  sms_log: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog]?,
2350
+ speech_events: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent]?,
2126
2351
  structured_output: ::Hash[Symbol, top]?,
2127
2352
  transcript: ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::Transcript]?
2128
2353
  }
@@ -2152,6 +2377,38 @@ module Revox
2152
2377
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::dial_error]
2153
2378
  end
2154
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
+
2155
2412
  type result =
2156
2413
  :IVR | :voicemail | :human | :unknown | :"ios-screening-filter"
2157
2414
 
@@ -2181,6 +2438,48 @@ module Revox
2181
2438
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::LastCallAttempt::status]
2182
2439
  end
2183
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
+
2184
2483
  type end_reason =
2185
2484
  :client_initiated
2186
2485
  | :connection_timeout
@@ -2314,8 +2613,9 @@ module Revox
2314
2613
  id: String,
2315
2614
  created_at: top,
2316
2615
  message_body: String,
2616
+ provider: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::provider,
2617
+ provider_message_id: String?,
2317
2618
  to_phone_number: String,
2318
- twilio_message_sid: String?,
2319
2619
  type: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::type_
2320
2620
  }
2321
2621
 
@@ -2326,9 +2626,11 @@ module Revox
2326
2626
 
2327
2627
  attr_accessor message_body: String
2328
2628
 
2329
- attr_accessor to_phone_number: String
2629
+ attr_accessor provider: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::provider
2330
2630
 
2331
- attr_accessor twilio_message_sid: String?
2631
+ attr_accessor provider_message_id: String?
2632
+
2633
+ attr_accessor to_phone_number: String
2332
2634
 
2333
2635
  attr_accessor type: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::type_
2334
2636
 
@@ -2336,8 +2638,9 @@ module Revox
2336
2638
  id: String,
2337
2639
  created_at: top,
2338
2640
  message_body: String,
2641
+ provider: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::provider,
2642
+ provider_message_id: String?,
2339
2643
  to_phone_number: String,
2340
- twilio_message_sid: String?,
2341
2644
  type: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::type_
2342
2645
  ) -> void
2343
2646
 
@@ -2345,11 +2648,23 @@ module Revox
2345
2648
  id: String,
2346
2649
  created_at: top,
2347
2650
  message_body: String,
2651
+ provider: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::provider,
2652
+ provider_message_id: String?,
2348
2653
  to_phone_number: String,
2349
- twilio_message_sid: String?,
2350
2654
  type: Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::type_
2351
2655
  }
2352
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
+
2353
2668
  type type_ = :in_call | :voicemail | :after_call
2354
2669
 
2355
2670
  module Type
@@ -2363,6 +2678,89 @@ module Revox
2363
2678
  end
2364
2679
  end
2365
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
+
2366
2764
  type transcript =
2367
2765
  {
2368
2766
  content: String,
@@ -2593,6 +2991,7 @@ module Revox
2593
2991
  | :queued_for_calling
2594
2992
  | :calling
2595
2993
  | :post_processing
2994
+ | :not_launched
2596
2995
  | :scheduled
2597
2996
  | :paused
2598
2997
  | :completed
@@ -2606,6 +3005,7 @@ module Revox
2606
3005
  QUEUED_FOR_CALLING: :queued_for_calling
2607
3006
  CALLING: :calling
2608
3007
  POST_PROCESSING: :post_processing
3008
+ NOT_LAUNCHED: :not_launched
2609
3009
  SCHEDULED: :scheduled
2610
3010
  PAUSED: :paused
2611
3011
  COMPLETED: :completed
@@ -2616,13 +3016,7 @@ module Revox
2616
3016
  end
2617
3017
 
2618
3018
  type outcome =
2619
- :not_interested
2620
- | :interested
2621
- | :completed
2622
- | :requested_callback_later
2623
- | :requested_callback_new_number
2624
- | :do_not_contact
2625
- | :ai_averse
3019
+ :not_interested | :interested | :completed | :requested_callback_later
2626
3020
 
2627
3021
  module Outcome
2628
3022
  extend Revox::Internal::Type::Enum
@@ -2631,9 +3025,6 @@ module Revox
2631
3025
  INTERESTED: :interested
2632
3026
  COMPLETED: :completed
2633
3027
  REQUESTED_CALLBACK_LATER: :requested_callback_later
2634
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
2635
- DO_NOT_CONTACT: :do_not_contact
2636
- AI_AVERSE: :ai_averse
2637
3028
 
2638
3029
  def self?.values: -> ::Array[Revox::Models::CallCreateResponse::Call::outcome]
2639
3030
  end