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
@@ -48,7 +48,8 @@ module Revox
48
48
  updated_at: top,
49
49
  follow_up_emails: ::Array[String]?,
50
50
  outcome: Revox::Models::CallSearchResponse::Call::outcome?,
51
- outcome_summary: String?
51
+ outcome_summary: String?,
52
+ slack_channel_ids: ::Array[String]?
52
53
  }
53
54
 
54
55
  class Call < Revox::Internal::Type::BaseModel
@@ -104,6 +105,8 @@ module Revox
104
105
 
105
106
  attr_accessor outcome_summary: String?
106
107
 
108
+ attr_accessor slack_channel_ids: ::Array[String]?
109
+
107
110
  def initialize: (
108
111
  id: String,
109
112
  assignee: Revox::Models::CallSearchResponse::Call::Assignee?,
@@ -130,7 +133,8 @@ module Revox
130
133
  updated_at: top,
131
134
  ?follow_up_emails: ::Array[String]?,
132
135
  ?outcome: Revox::Models::CallSearchResponse::Call::outcome?,
133
- ?outcome_summary: String?
136
+ ?outcome_summary: String?,
137
+ ?slack_channel_ids: ::Array[String]?
134
138
  ) -> void
135
139
 
136
140
  def to_hash: -> {
@@ -159,7 +163,8 @@ module Revox
159
163
  updated_at: top,
160
164
  follow_up_emails: ::Array[String]?,
161
165
  outcome: Revox::Models::CallSearchResponse::Call::outcome?,
162
- outcome_summary: String?
166
+ outcome_summary: String?,
167
+ slack_channel_ids: ::Array[String]?
163
168
  }
164
169
 
165
170
  type assignee =
@@ -202,7 +207,6 @@ module Revox
202
207
  created_at: top,
203
208
  custom_tools: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::CustomTool]?,
204
209
  email_notification_address: String?,
205
- email_notification_language: Revox::Models::CallSearchResponse::Call::Assistant::email_notification_language,
206
210
  email_notification_outcomes: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::email_notification_outcome]?,
207
211
  end_of_call_sentence: String?,
208
212
  first_sentence: String?,
@@ -218,6 +222,7 @@ module Revox
218
222
  name: String,
219
223
  organization_id: String,
220
224
  position: Revox::Models::CallSearchResponse::Call::Assistant::Position?,
225
+ precall_lookup_url: String?,
221
226
  prompt: String,
222
227
  prompt_flow: Revox::Models::CallSearchResponse::Call::Assistant::PromptFlow?,
223
228
  slack: Revox::Models::CallSearchResponse::Call::Assistant::Slack?,
@@ -230,7 +235,7 @@ module Revox
230
235
  thinking_sound: Revox::Models::CallSearchResponse::Call::Assistant::thinking_sound?,
231
236
  thinking_sound_probability: Float,
232
237
  thinking_sound_volume: Float,
233
- transfer_phone_number: String?,
238
+ transfer_destinations: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::TransferDestination]?,
234
239
  type: Revox::Models::CallSearchResponse::Call::Assistant::type_,
235
240
  updated_at: top,
236
241
  voice: Revox::Models::CallSearchResponse::Call::Assistant::Voice?,
@@ -241,6 +246,7 @@ module Revox
241
246
  zoho: Revox::Models::CallSearchResponse::Call::Assistant::Zoho?,
242
247
  created_by: Revox::Models::CallSearchResponse::Call::Assistant::CreatedBy?,
243
248
  faq_items: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::FaqItem],
249
+ is_inbound_receptionist: bool,
244
250
  is_realestate_assistant: bool,
245
251
  pending_faq_count: Float
246
252
  }
@@ -268,8 +274,6 @@ module Revox
268
274
 
269
275
  attr_accessor email_notification_address: String?
270
276
 
271
- attr_accessor email_notification_language: Revox::Models::CallSearchResponse::Call::Assistant::email_notification_language
272
-
273
277
  attr_accessor email_notification_outcomes: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::email_notification_outcome]?
274
278
 
275
279
  attr_accessor end_of_call_sentence: String?
@@ -300,6 +304,8 @@ module Revox
300
304
 
301
305
  attr_accessor position: Revox::Models::CallSearchResponse::Call::Assistant::Position?
302
306
 
307
+ attr_accessor precall_lookup_url: String?
308
+
303
309
  attr_accessor prompt: String
304
310
 
305
311
  attr_accessor prompt_flow: Revox::Models::CallSearchResponse::Call::Assistant::PromptFlow?
@@ -324,7 +330,7 @@ module Revox
324
330
 
325
331
  attr_accessor thinking_sound_volume: Float
326
332
 
327
- attr_accessor transfer_phone_number: String?
333
+ attr_accessor transfer_destinations: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::TransferDestination]?
328
334
 
329
335
  attr_accessor type: Revox::Models::CallSearchResponse::Call::Assistant::type_
330
336
 
@@ -350,6 +356,10 @@ module Revox
350
356
  ::Array[Revox::Models::CallSearchResponse::Call::Assistant::FaqItem]
351
357
  ) -> ::Array[Revox::Models::CallSearchResponse::Call::Assistant::FaqItem]
352
358
 
359
+ attr_reader is_inbound_receptionist: bool?
360
+
361
+ def is_inbound_receptionist=: (bool) -> bool
362
+
353
363
  attr_reader is_realestate_assistant: bool?
354
364
 
355
365
  def is_realestate_assistant=: (bool) -> bool
@@ -370,7 +380,6 @@ module Revox
370
380
  created_at: top,
371
381
  custom_tools: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::CustomTool]?,
372
382
  email_notification_address: String?,
373
- email_notification_language: Revox::Models::CallSearchResponse::Call::Assistant::email_notification_language,
374
383
  email_notification_outcomes: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::email_notification_outcome]?,
375
384
  end_of_call_sentence: String?,
376
385
  first_sentence: String?,
@@ -386,6 +395,7 @@ module Revox
386
395
  name: String,
387
396
  organization_id: String,
388
397
  position: Revox::Models::CallSearchResponse::Call::Assistant::Position?,
398
+ precall_lookup_url: String?,
389
399
  prompt: String,
390
400
  prompt_flow: Revox::Models::CallSearchResponse::Call::Assistant::PromptFlow?,
391
401
  slack: Revox::Models::CallSearchResponse::Call::Assistant::Slack?,
@@ -398,7 +408,7 @@ module Revox
398
408
  thinking_sound: Revox::Models::CallSearchResponse::Call::Assistant::thinking_sound?,
399
409
  thinking_sound_probability: Float,
400
410
  thinking_sound_volume: Float,
401
- transfer_phone_number: String?,
411
+ transfer_destinations: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::TransferDestination]?,
402
412
  type: Revox::Models::CallSearchResponse::Call::Assistant::type_,
403
413
  updated_at: top,
404
414
  voice: Revox::Models::CallSearchResponse::Call::Assistant::Voice?,
@@ -409,6 +419,7 @@ module Revox
409
419
  zoho: Revox::Models::CallSearchResponse::Call::Assistant::Zoho?,
410
420
  ?created_by: Revox::Models::CallSearchResponse::Call::Assistant::CreatedBy?,
411
421
  ?faq_items: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::FaqItem],
422
+ ?is_inbound_receptionist: bool,
412
423
  ?is_realestate_assistant: bool,
413
424
  ?pending_faq_count: Float
414
425
  ) -> void
@@ -425,7 +436,6 @@ module Revox
425
436
  created_at: top,
426
437
  custom_tools: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::CustomTool]?,
427
438
  email_notification_address: String?,
428
- email_notification_language: Revox::Models::CallSearchResponse::Call::Assistant::email_notification_language,
429
439
  email_notification_outcomes: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::email_notification_outcome]?,
430
440
  end_of_call_sentence: String?,
431
441
  first_sentence: String?,
@@ -441,6 +451,7 @@ module Revox
441
451
  name: String,
442
452
  organization_id: String,
443
453
  position: Revox::Models::CallSearchResponse::Call::Assistant::Position?,
454
+ precall_lookup_url: String?,
444
455
  prompt: String,
445
456
  prompt_flow: Revox::Models::CallSearchResponse::Call::Assistant::PromptFlow?,
446
457
  slack: Revox::Models::CallSearchResponse::Call::Assistant::Slack?,
@@ -453,7 +464,7 @@ module Revox
453
464
  thinking_sound: Revox::Models::CallSearchResponse::Call::Assistant::thinking_sound?,
454
465
  thinking_sound_probability: Float,
455
466
  thinking_sound_volume: Float,
456
- transfer_phone_number: String?,
467
+ transfer_destinations: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::TransferDestination]?,
457
468
  type: Revox::Models::CallSearchResponse::Call::Assistant::type_,
458
469
  updated_at: top,
459
470
  voice: Revox::Models::CallSearchResponse::Call::Assistant::Voice?,
@@ -464,6 +475,7 @@ module Revox
464
475
  zoho: Revox::Models::CallSearchResponse::Call::Assistant::Zoho?,
465
476
  created_by: Revox::Models::CallSearchResponse::Call::Assistant::CreatedBy?,
466
477
  faq_items: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::FaqItem],
478
+ is_inbound_receptionist: bool,
467
479
  is_realestate_assistant: bool,
468
480
  pending_faq_count: Float
469
481
  }
@@ -473,9 +485,6 @@ module Revox
473
485
  | :interested
474
486
  | :completed
475
487
  | :requested_callback_later
476
- | :requested_callback_new_number
477
- | :do_not_contact
478
- | :ai_averse
479
488
  | :none
480
489
 
481
490
  module AfterCallSMSOutcome
@@ -485,9 +494,6 @@ module Revox
485
494
  INTERESTED: :interested
486
495
  COMPLETED: :completed
487
496
  REQUESTED_CALLBACK_LATER: :requested_callback_later
488
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
489
- DO_NOT_CONTACT: :do_not_contact
490
- AI_AVERSE: :ai_averse
491
497
  NONE: :none
492
498
 
493
499
  def self?.values: -> ::Array[Revox::Models::CallSearchResponse::Call::Assistant::after_call_sms_outcome]
@@ -752,25 +758,11 @@ module Revox
752
758
  end
753
759
  end
754
760
 
755
- type email_notification_language = :en | :fr
756
-
757
- module EmailNotificationLanguage
758
- extend Revox::Internal::Type::Enum
759
-
760
- EN: :en
761
- FR: :fr
762
-
763
- def self?.values: -> ::Array[Revox::Models::CallSearchResponse::Call::Assistant::email_notification_language]
764
- end
765
-
766
761
  type email_notification_outcome =
767
762
  :not_interested
768
763
  | :interested
769
764
  | :completed
770
765
  | :requested_callback_later
771
- | :requested_callback_new_number
772
- | :do_not_contact
773
- | :ai_averse
774
766
  | :none
775
767
 
776
768
  module EmailNotificationOutcome
@@ -780,9 +772,6 @@ module Revox
780
772
  INTERESTED: :interested
781
773
  COMPLETED: :completed
782
774
  REQUESTED_CALLBACK_LATER: :requested_callback_later
783
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
784
- DO_NOT_CONTACT: :do_not_contact
785
- AI_AVERSE: :ai_averse
786
775
  NONE: :none
787
776
 
788
777
  def self?.values: -> ::Array[Revox::Models::CallSearchResponse::Call::Assistant::email_notification_outcome]
@@ -1070,48 +1059,52 @@ module Revox
1070
1059
 
1071
1060
  type slack =
1072
1061
  {
1073
- channel_id: String,
1062
+ channels: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::Slack::Channel],
1074
1063
  connection_id: String,
1075
1064
  outcomes: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::Slack::outcome],
1076
- channel_name: String?,
1077
1065
  template: String?
1078
1066
  }
1079
1067
 
1080
1068
  class Slack < Revox::Internal::Type::BaseModel
1081
- attr_accessor channel_id: String
1069
+ attr_accessor channels: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::Slack::Channel]
1082
1070
 
1083
1071
  attr_accessor connection_id: String
1084
1072
 
1085
1073
  attr_accessor outcomes: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::Slack::outcome]
1086
1074
 
1087
- attr_accessor channel_name: String?
1088
-
1089
1075
  attr_accessor template: String?
1090
1076
 
1091
1077
  def initialize: (
1092
- channel_id: String,
1078
+ channels: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::Slack::Channel],
1093
1079
  connection_id: String,
1094
1080
  outcomes: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::Slack::outcome],
1095
- ?channel_name: String?,
1096
1081
  ?template: String?
1097
1082
  ) -> void
1098
1083
 
1099
1084
  def to_hash: -> {
1100
- channel_id: String,
1085
+ channels: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::Slack::Channel],
1101
1086
  connection_id: String,
1102
1087
  outcomes: ::Array[Revox::Models::CallSearchResponse::Call::Assistant::Slack::outcome],
1103
- channel_name: String?,
1104
1088
  template: String?
1105
1089
  }
1106
1090
 
1091
+ type channel = { id: String, name: String? }
1092
+
1093
+ class Channel < Revox::Internal::Type::BaseModel
1094
+ attr_accessor id: String
1095
+
1096
+ attr_accessor name: String?
1097
+
1098
+ def initialize: (id: String, ?name: String?) -> void
1099
+
1100
+ def to_hash: -> { id: String, name: String? }
1101
+ end
1102
+
1107
1103
  type outcome =
1108
1104
  :not_interested
1109
1105
  | :interested
1110
1106
  | :completed
1111
1107
  | :requested_callback_later
1112
- | :requested_callback_new_number
1113
- | :do_not_contact
1114
- | :ai_averse
1115
1108
  | :none
1116
1109
 
1117
1110
  module Outcome
@@ -1121,9 +1114,6 @@ module Revox
1121
1114
  INTERESTED: :interested
1122
1115
  COMPLETED: :completed
1123
1116
  REQUESTED_CALLBACK_LATER: :requested_callback_later
1124
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1125
- DO_NOT_CONTACT: :do_not_contact
1126
- AI_AVERSE: :ai_averse
1127
1117
  NONE: :none
1128
1118
 
1129
1119
  def self?.values: -> ::Array[Revox::Models::CallSearchResponse::Call::Assistant::Slack::outcome]
@@ -1255,6 +1245,18 @@ module Revox
1255
1245
  def self?.values: -> ::Array[Revox::Models::CallSearchResponse::Call::Assistant::thinking_sound]
1256
1246
  end
1257
1247
 
1248
+ type transfer_destination = { label: String, phone_number: String }
1249
+
1250
+ class TransferDestination < Revox::Internal::Type::BaseModel
1251
+ attr_accessor label: String
1252
+
1253
+ attr_accessor phone_number: String
1254
+
1255
+ def initialize: (label: String, phone_number: String) -> void
1256
+
1257
+ def to_hash: -> { label: String, phone_number: String }
1258
+ end
1259
+
1258
1260
  type type_ = :standalone | :"multi-step" | :"sub-assistant"
1259
1261
 
1260
1262
  module Type
@@ -1311,13 +1313,14 @@ module Revox
1311
1313
  volume: Float
1312
1314
  }
1313
1315
 
1314
- type provider = :cartesia | :elevenlabs
1316
+ type provider = :cartesia | :elevenlabs | :gradium
1315
1317
 
1316
1318
  module Provider
1317
1319
  extend Revox::Internal::Type::Enum
1318
1320
 
1319
1321
  CARTESIA: :cartesia
1320
1322
  ELEVENLABS: :elevenlabs
1323
+ GRADIUM: :gradium
1321
1324
 
1322
1325
  def self?.values: -> ::Array[Revox::Models::CallSearchResponse::Call::Assistant::Voice::provider]
1323
1326
  end
@@ -1392,9 +1395,6 @@ module Revox
1392
1395
  | :interested
1393
1396
  | :completed
1394
1397
  | :requested_callback_later
1395
- | :requested_callback_new_number
1396
- | :do_not_contact
1397
- | :ai_averse
1398
1398
  | :none
1399
1399
 
1400
1400
  module Outcome
@@ -1404,9 +1404,6 @@ module Revox
1404
1404
  INTERESTED: :interested
1405
1405
  COMPLETED: :completed
1406
1406
  REQUESTED_CALLBACK_LATER: :requested_callback_later
1407
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1408
- DO_NOT_CONTACT: :do_not_contact
1409
- AI_AVERSE: :ai_averse
1410
1407
  NONE: :none
1411
1408
 
1412
1409
  def self?.values: -> ::Array[Revox::Models::CallSearchResponse::Call::Assistant::Zoho::outcome]
@@ -1508,16 +1505,21 @@ module Revox
1508
1505
  answered_at: top,
1509
1506
  dial_error: Revox::Models::CallSearchResponse::Call::CallAttempt::dial_error?,
1510
1507
  ended_at: top,
1508
+ handled_by_ai: bool,
1509
+ handled_by_human: bool,
1510
+ handled_by_user: Revox::Models::CallSearchResponse::Call::CallAttempt::HandledByUser?,
1511
1511
  phone_number: String,
1512
1512
  recording_url: String?,
1513
1513
  result: Revox::Models::CallSearchResponse::Call::CallAttempt::result?,
1514
1514
  started_at: top,
1515
1515
  status: Revox::Models::CallSearchResponse::Call::CallAttempt::status,
1516
1516
  assistants_used: ::Array[String]?,
1517
+ email_log: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::EmailLog]?,
1517
1518
  end_reason: Revox::Models::CallSearchResponse::Call::CallAttempt::end_reason?,
1518
1519
  ended_by: Revox::Models::CallSearchResponse::Call::CallAttempt::ended_by?,
1519
1520
  post_call_transcript: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::PostCallTranscript]?,
1520
1521
  sms_log: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::SMSLog]?,
1522
+ speech_events: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::SpeechEvent]?,
1521
1523
  structured_output: ::Hash[Symbol, top]?,
1522
1524
  transcript: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::Transcript]?
1523
1525
  }
@@ -1531,6 +1533,12 @@ module Revox
1531
1533
 
1532
1534
  attr_accessor ended_at: top
1533
1535
 
1536
+ attr_accessor handled_by_ai: bool
1537
+
1538
+ attr_accessor handled_by_human: bool
1539
+
1540
+ attr_accessor handled_by_user: Revox::Models::CallSearchResponse::Call::CallAttempt::HandledByUser?
1541
+
1534
1542
  attr_accessor phone_number: String
1535
1543
 
1536
1544
  attr_accessor recording_url: String?
@@ -1543,6 +1551,8 @@ module Revox
1543
1551
 
1544
1552
  attr_accessor assistants_used: ::Array[String]?
1545
1553
 
1554
+ attr_accessor email_log: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::EmailLog]?
1555
+
1546
1556
  attr_accessor end_reason: Revox::Models::CallSearchResponse::Call::CallAttempt::end_reason?
1547
1557
 
1548
1558
  attr_accessor ended_by: Revox::Models::CallSearchResponse::Call::CallAttempt::ended_by?
@@ -1551,6 +1561,8 @@ module Revox
1551
1561
 
1552
1562
  attr_accessor sms_log: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::SMSLog]?
1553
1563
 
1564
+ attr_accessor speech_events: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::SpeechEvent]?
1565
+
1554
1566
  attr_accessor structured_output: ::Hash[Symbol, top]?
1555
1567
 
1556
1568
  attr_accessor transcript: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::Transcript]?
@@ -1560,16 +1572,21 @@ module Revox
1560
1572
  answered_at: top,
1561
1573
  dial_error: Revox::Models::CallSearchResponse::Call::CallAttempt::dial_error?,
1562
1574
  ended_at: top,
1575
+ handled_by_ai: bool,
1576
+ handled_by_human: bool,
1577
+ handled_by_user: Revox::Models::CallSearchResponse::Call::CallAttempt::HandledByUser?,
1563
1578
  phone_number: String,
1564
1579
  recording_url: String?,
1565
1580
  result: Revox::Models::CallSearchResponse::Call::CallAttempt::result?,
1566
1581
  started_at: top,
1567
1582
  status: Revox::Models::CallSearchResponse::Call::CallAttempt::status,
1568
1583
  ?assistants_used: ::Array[String]?,
1584
+ ?email_log: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::EmailLog]?,
1569
1585
  ?end_reason: Revox::Models::CallSearchResponse::Call::CallAttempt::end_reason?,
1570
1586
  ?ended_by: Revox::Models::CallSearchResponse::Call::CallAttempt::ended_by?,
1571
1587
  ?post_call_transcript: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::PostCallTranscript]?,
1572
1588
  ?sms_log: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::SMSLog]?,
1589
+ ?speech_events: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::SpeechEvent]?,
1573
1590
  ?structured_output: ::Hash[Symbol, top]?,
1574
1591
  ?transcript: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::Transcript]?
1575
1592
  ) -> void
@@ -1579,16 +1596,21 @@ module Revox
1579
1596
  answered_at: top,
1580
1597
  dial_error: Revox::Models::CallSearchResponse::Call::CallAttempt::dial_error?,
1581
1598
  ended_at: top,
1599
+ handled_by_ai: bool,
1600
+ handled_by_human: bool,
1601
+ handled_by_user: Revox::Models::CallSearchResponse::Call::CallAttempt::HandledByUser?,
1582
1602
  phone_number: String,
1583
1603
  recording_url: String?,
1584
1604
  result: Revox::Models::CallSearchResponse::Call::CallAttempt::result?,
1585
1605
  started_at: top,
1586
1606
  status: Revox::Models::CallSearchResponse::Call::CallAttempt::status,
1587
1607
  assistants_used: ::Array[String]?,
1608
+ email_log: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::EmailLog]?,
1588
1609
  end_reason: Revox::Models::CallSearchResponse::Call::CallAttempt::end_reason?,
1589
1610
  ended_by: Revox::Models::CallSearchResponse::Call::CallAttempt::ended_by?,
1590
1611
  post_call_transcript: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::PostCallTranscript]?,
1591
1612
  sms_log: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::SMSLog]?,
1613
+ speech_events: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::SpeechEvent]?,
1592
1614
  structured_output: ::Hash[Symbol, top]?,
1593
1615
  transcript: ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::Transcript]?
1594
1616
  }
@@ -1618,6 +1640,38 @@ module Revox
1618
1640
  def self?.values: -> ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::dial_error]
1619
1641
  end
1620
1642
 
1643
+ type handled_by_user =
1644
+ {
1645
+ id: String,
1646
+ email: String,
1647
+ first_name: String?,
1648
+ last_name: String?
1649
+ }
1650
+
1651
+ class HandledByUser < Revox::Internal::Type::BaseModel
1652
+ attr_accessor id: String
1653
+
1654
+ attr_accessor email: String
1655
+
1656
+ attr_accessor first_name: String?
1657
+
1658
+ attr_accessor last_name: String?
1659
+
1660
+ def initialize: (
1661
+ id: String,
1662
+ email: String,
1663
+ first_name: String?,
1664
+ last_name: String?
1665
+ ) -> void
1666
+
1667
+ def to_hash: -> {
1668
+ id: String,
1669
+ email: String,
1670
+ first_name: String?,
1671
+ last_name: String?
1672
+ }
1673
+ end
1674
+
1621
1675
  type result =
1622
1676
  :IVR | :voicemail | :human | :unknown | :"ios-screening-filter"
1623
1677
 
@@ -1647,6 +1701,48 @@ module Revox
1647
1701
  def self?.values: -> ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::status]
1648
1702
  end
1649
1703
 
1704
+ type email_log =
1705
+ {
1706
+ id: String,
1707
+ created_at: top,
1708
+ from_address: String,
1709
+ resend_message_id: String?,
1710
+ subject: String,
1711
+ to_emails: ::Array[String]
1712
+ }
1713
+
1714
+ class EmailLog < Revox::Internal::Type::BaseModel
1715
+ attr_accessor id: String
1716
+
1717
+ attr_accessor created_at: top
1718
+
1719
+ attr_accessor from_address: String
1720
+
1721
+ attr_accessor resend_message_id: String?
1722
+
1723
+ attr_accessor subject: String
1724
+
1725
+ attr_accessor to_emails: ::Array[String]
1726
+
1727
+ def initialize: (
1728
+ id: String,
1729
+ created_at: top,
1730
+ from_address: String,
1731
+ resend_message_id: String?,
1732
+ subject: String,
1733
+ to_emails: ::Array[String]
1734
+ ) -> void
1735
+
1736
+ def to_hash: -> {
1737
+ id: String,
1738
+ created_at: top,
1739
+ from_address: String,
1740
+ resend_message_id: String?,
1741
+ subject: String,
1742
+ to_emails: ::Array[String]
1743
+ }
1744
+ end
1745
+
1650
1746
  type end_reason =
1651
1747
  :client_initiated
1652
1748
  | :connection_timeout
@@ -1780,8 +1876,9 @@ module Revox
1780
1876
  id: String,
1781
1877
  created_at: top,
1782
1878
  message_body: String,
1879
+ provider: Revox::Models::CallSearchResponse::Call::CallAttempt::SMSLog::provider,
1880
+ provider_message_id: String?,
1783
1881
  to_phone_number: String,
1784
- twilio_message_sid: String?,
1785
1882
  type: Revox::Models::CallSearchResponse::Call::CallAttempt::SMSLog::type_
1786
1883
  }
1787
1884
 
@@ -1792,9 +1889,11 @@ module Revox
1792
1889
 
1793
1890
  attr_accessor message_body: String
1794
1891
 
1795
- attr_accessor to_phone_number: String
1892
+ attr_accessor provider: Revox::Models::CallSearchResponse::Call::CallAttempt::SMSLog::provider
1893
+
1894
+ attr_accessor provider_message_id: String?
1796
1895
 
1797
- attr_accessor twilio_message_sid: String?
1896
+ attr_accessor to_phone_number: String
1798
1897
 
1799
1898
  attr_accessor type: Revox::Models::CallSearchResponse::Call::CallAttempt::SMSLog::type_
1800
1899
 
@@ -1802,8 +1901,9 @@ module Revox
1802
1901
  id: String,
1803
1902
  created_at: top,
1804
1903
  message_body: String,
1904
+ provider: Revox::Models::CallSearchResponse::Call::CallAttempt::SMSLog::provider,
1905
+ provider_message_id: String?,
1805
1906
  to_phone_number: String,
1806
- twilio_message_sid: String?,
1807
1907
  type: Revox::Models::CallSearchResponse::Call::CallAttempt::SMSLog::type_
1808
1908
  ) -> void
1809
1909
 
@@ -1811,11 +1911,23 @@ module Revox
1811
1911
  id: String,
1812
1912
  created_at: top,
1813
1913
  message_body: String,
1914
+ provider: Revox::Models::CallSearchResponse::Call::CallAttempt::SMSLog::provider,
1915
+ provider_message_id: String?,
1814
1916
  to_phone_number: String,
1815
- twilio_message_sid: String?,
1816
1917
  type: Revox::Models::CallSearchResponse::Call::CallAttempt::SMSLog::type_
1817
1918
  }
1818
1919
 
1920
+ type provider = :twilio | :vonage
1921
+
1922
+ module Provider
1923
+ extend Revox::Internal::Type::Enum
1924
+
1925
+ TWILIO: :twilio
1926
+ VONAGE: :vonage
1927
+
1928
+ def self?.values: -> ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::SMSLog::provider]
1929
+ end
1930
+
1819
1931
  type type_ = :in_call | :voicemail | :after_call
1820
1932
 
1821
1933
  module Type
@@ -1829,6 +1941,89 @@ module Revox
1829
1941
  end
1830
1942
  end
1831
1943
 
1944
+ type speech_event =
1945
+ {
1946
+ id: String,
1947
+ is_real_turn: bool,
1948
+ llm_system_prompt: String?,
1949
+ llm_ttft_ms: Float?,
1950
+ llm_winner_model: String?,
1951
+ speaker: Revox::Models::CallSearchResponse::Call::CallAttempt::SpeechEvent::speaker,
1952
+ started_speaking_at_ms: Float,
1953
+ stopped_speaking_at_ms: Float?,
1954
+ stt_transcription_delay_ms: Float?,
1955
+ transcript: String?,
1956
+ tts_ttfb_ms: Float?,
1957
+ was_cut: bool?
1958
+ }
1959
+
1960
+ class SpeechEvent < Revox::Internal::Type::BaseModel
1961
+ attr_accessor id: String
1962
+
1963
+ attr_accessor is_real_turn: bool
1964
+
1965
+ attr_accessor llm_system_prompt: String?
1966
+
1967
+ attr_accessor llm_ttft_ms: Float?
1968
+
1969
+ attr_accessor llm_winner_model: String?
1970
+
1971
+ attr_accessor speaker: Revox::Models::CallSearchResponse::Call::CallAttempt::SpeechEvent::speaker
1972
+
1973
+ attr_accessor started_speaking_at_ms: Float
1974
+
1975
+ attr_accessor stopped_speaking_at_ms: Float?
1976
+
1977
+ attr_accessor stt_transcription_delay_ms: Float?
1978
+
1979
+ attr_accessor transcript: String?
1980
+
1981
+ attr_accessor tts_ttfb_ms: Float?
1982
+
1983
+ attr_accessor was_cut: bool?
1984
+
1985
+ def initialize: (
1986
+ id: String,
1987
+ is_real_turn: bool,
1988
+ llm_system_prompt: String?,
1989
+ llm_ttft_ms: Float?,
1990
+ llm_winner_model: String?,
1991
+ speaker: Revox::Models::CallSearchResponse::Call::CallAttempt::SpeechEvent::speaker,
1992
+ started_speaking_at_ms: Float,
1993
+ stopped_speaking_at_ms: Float?,
1994
+ stt_transcription_delay_ms: Float?,
1995
+ transcript: String?,
1996
+ tts_ttfb_ms: Float?,
1997
+ was_cut: bool?
1998
+ ) -> void
1999
+
2000
+ def to_hash: -> {
2001
+ id: String,
2002
+ is_real_turn: bool,
2003
+ llm_system_prompt: String?,
2004
+ llm_ttft_ms: Float?,
2005
+ llm_winner_model: String?,
2006
+ speaker: Revox::Models::CallSearchResponse::Call::CallAttempt::SpeechEvent::speaker,
2007
+ started_speaking_at_ms: Float,
2008
+ stopped_speaking_at_ms: Float?,
2009
+ stt_transcription_delay_ms: Float?,
2010
+ transcript: String?,
2011
+ tts_ttfb_ms: Float?,
2012
+ was_cut: bool?
2013
+ }
2014
+
2015
+ type speaker = :user | :agent
2016
+
2017
+ module Speaker
2018
+ extend Revox::Internal::Type::Enum
2019
+
2020
+ USER: :user
2021
+ AGENT: :agent
2022
+
2023
+ def self?.values: -> ::Array[Revox::Models::CallSearchResponse::Call::CallAttempt::SpeechEvent::speaker]
2024
+ end
2025
+ end
2026
+
1832
2027
  type transcript =
1833
2028
  {
1834
2029
  content: String,
@@ -2009,6 +2204,7 @@ module Revox
2009
2204
  company: String?,
2010
2205
  email: String?,
2011
2206
  first_name: String?,
2207
+ job_title: String?,
2012
2208
  last_name: String?
2013
2209
  }
2014
2210
 
@@ -2019,12 +2215,15 @@ module Revox
2019
2215
 
2020
2216
  attr_accessor first_name: String?
2021
2217
 
2218
+ attr_accessor job_title: String?
2219
+
2022
2220
  attr_accessor last_name: String?
2023
2221
 
2024
2222
  def initialize: (
2025
2223
  company: String?,
2026
2224
  email: String?,
2027
2225
  first_name: String?,
2226
+ job_title: String?,
2028
2227
  last_name: String?
2029
2228
  ) -> void
2030
2229
 
@@ -2032,6 +2231,7 @@ module Revox
2032
2231
  company: String?,
2033
2232
  email: String?,
2034
2233
  first_name: String?,
2234
+ job_title: String?,
2035
2235
  last_name: String?
2036
2236
  }
2037
2237
  end
@@ -2053,16 +2253,21 @@ module Revox
2053
2253
  answered_at: top,
2054
2254
  dial_error: Revox::Models::CallSearchResponse::Call::LastCallAttempt::dial_error?,
2055
2255
  ended_at: top,
2256
+ handled_by_ai: bool,
2257
+ handled_by_human: bool,
2258
+ handled_by_user: Revox::Models::CallSearchResponse::Call::LastCallAttempt::HandledByUser?,
2056
2259
  phone_number: String,
2057
2260
  recording_url: String?,
2058
2261
  result: Revox::Models::CallSearchResponse::Call::LastCallAttempt::result?,
2059
2262
  started_at: top,
2060
2263
  status: Revox::Models::CallSearchResponse::Call::LastCallAttempt::status,
2061
2264
  assistants_used: ::Array[String]?,
2265
+ email_log: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::EmailLog]?,
2062
2266
  end_reason: Revox::Models::CallSearchResponse::Call::LastCallAttempt::end_reason?,
2063
2267
  ended_by: Revox::Models::CallSearchResponse::Call::LastCallAttempt::ended_by?,
2064
2268
  post_call_transcript: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::PostCallTranscript]?,
2065
2269
  sms_log: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::SMSLog]?,
2270
+ speech_events: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::SpeechEvent]?,
2066
2271
  structured_output: ::Hash[Symbol, top]?,
2067
2272
  transcript: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::Transcript]?
2068
2273
  }
@@ -2076,6 +2281,12 @@ module Revox
2076
2281
 
2077
2282
  attr_accessor ended_at: top
2078
2283
 
2284
+ attr_accessor handled_by_ai: bool
2285
+
2286
+ attr_accessor handled_by_human: bool
2287
+
2288
+ attr_accessor handled_by_user: Revox::Models::CallSearchResponse::Call::LastCallAttempt::HandledByUser?
2289
+
2079
2290
  attr_accessor phone_number: String
2080
2291
 
2081
2292
  attr_accessor recording_url: String?
@@ -2088,6 +2299,8 @@ module Revox
2088
2299
 
2089
2300
  attr_accessor assistants_used: ::Array[String]?
2090
2301
 
2302
+ attr_accessor email_log: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::EmailLog]?
2303
+
2091
2304
  attr_accessor end_reason: Revox::Models::CallSearchResponse::Call::LastCallAttempt::end_reason?
2092
2305
 
2093
2306
  attr_accessor ended_by: Revox::Models::CallSearchResponse::Call::LastCallAttempt::ended_by?
@@ -2096,6 +2309,8 @@ module Revox
2096
2309
 
2097
2310
  attr_accessor sms_log: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::SMSLog]?
2098
2311
 
2312
+ attr_accessor speech_events: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::SpeechEvent]?
2313
+
2099
2314
  attr_accessor structured_output: ::Hash[Symbol, top]?
2100
2315
 
2101
2316
  attr_accessor transcript: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::Transcript]?
@@ -2105,16 +2320,21 @@ module Revox
2105
2320
  answered_at: top,
2106
2321
  dial_error: Revox::Models::CallSearchResponse::Call::LastCallAttempt::dial_error?,
2107
2322
  ended_at: top,
2323
+ handled_by_ai: bool,
2324
+ handled_by_human: bool,
2325
+ handled_by_user: Revox::Models::CallSearchResponse::Call::LastCallAttempt::HandledByUser?,
2108
2326
  phone_number: String,
2109
2327
  recording_url: String?,
2110
2328
  result: Revox::Models::CallSearchResponse::Call::LastCallAttempt::result?,
2111
2329
  started_at: top,
2112
2330
  status: Revox::Models::CallSearchResponse::Call::LastCallAttempt::status,
2113
2331
  ?assistants_used: ::Array[String]?,
2332
+ ?email_log: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::EmailLog]?,
2114
2333
  ?end_reason: Revox::Models::CallSearchResponse::Call::LastCallAttempt::end_reason?,
2115
2334
  ?ended_by: Revox::Models::CallSearchResponse::Call::LastCallAttempt::ended_by?,
2116
2335
  ?post_call_transcript: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::PostCallTranscript]?,
2117
2336
  ?sms_log: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::SMSLog]?,
2337
+ ?speech_events: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::SpeechEvent]?,
2118
2338
  ?structured_output: ::Hash[Symbol, top]?,
2119
2339
  ?transcript: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::Transcript]?
2120
2340
  ) -> void
@@ -2124,16 +2344,21 @@ module Revox
2124
2344
  answered_at: top,
2125
2345
  dial_error: Revox::Models::CallSearchResponse::Call::LastCallAttempt::dial_error?,
2126
2346
  ended_at: top,
2347
+ handled_by_ai: bool,
2348
+ handled_by_human: bool,
2349
+ handled_by_user: Revox::Models::CallSearchResponse::Call::LastCallAttempt::HandledByUser?,
2127
2350
  phone_number: String,
2128
2351
  recording_url: String?,
2129
2352
  result: Revox::Models::CallSearchResponse::Call::LastCallAttempt::result?,
2130
2353
  started_at: top,
2131
2354
  status: Revox::Models::CallSearchResponse::Call::LastCallAttempt::status,
2132
2355
  assistants_used: ::Array[String]?,
2356
+ email_log: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::EmailLog]?,
2133
2357
  end_reason: Revox::Models::CallSearchResponse::Call::LastCallAttempt::end_reason?,
2134
2358
  ended_by: Revox::Models::CallSearchResponse::Call::LastCallAttempt::ended_by?,
2135
2359
  post_call_transcript: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::PostCallTranscript]?,
2136
2360
  sms_log: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::SMSLog]?,
2361
+ speech_events: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::SpeechEvent]?,
2137
2362
  structured_output: ::Hash[Symbol, top]?,
2138
2363
  transcript: ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::Transcript]?
2139
2364
  }
@@ -2163,6 +2388,38 @@ module Revox
2163
2388
  def self?.values: -> ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::dial_error]
2164
2389
  end
2165
2390
 
2391
+ type handled_by_user =
2392
+ {
2393
+ id: String,
2394
+ email: String,
2395
+ first_name: String?,
2396
+ last_name: String?
2397
+ }
2398
+
2399
+ class HandledByUser < Revox::Internal::Type::BaseModel
2400
+ attr_accessor id: String
2401
+
2402
+ attr_accessor email: String
2403
+
2404
+ attr_accessor first_name: String?
2405
+
2406
+ attr_accessor last_name: String?
2407
+
2408
+ def initialize: (
2409
+ id: String,
2410
+ email: String,
2411
+ first_name: String?,
2412
+ last_name: String?
2413
+ ) -> void
2414
+
2415
+ def to_hash: -> {
2416
+ id: String,
2417
+ email: String,
2418
+ first_name: String?,
2419
+ last_name: String?
2420
+ }
2421
+ end
2422
+
2166
2423
  type result =
2167
2424
  :IVR | :voicemail | :human | :unknown | :"ios-screening-filter"
2168
2425
 
@@ -2192,6 +2449,48 @@ module Revox
2192
2449
  def self?.values: -> ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::status]
2193
2450
  end
2194
2451
 
2452
+ type email_log =
2453
+ {
2454
+ id: String,
2455
+ created_at: top,
2456
+ from_address: String,
2457
+ resend_message_id: String?,
2458
+ subject: String,
2459
+ to_emails: ::Array[String]
2460
+ }
2461
+
2462
+ class EmailLog < Revox::Internal::Type::BaseModel
2463
+ attr_accessor id: String
2464
+
2465
+ attr_accessor created_at: top
2466
+
2467
+ attr_accessor from_address: String
2468
+
2469
+ attr_accessor resend_message_id: String?
2470
+
2471
+ attr_accessor subject: String
2472
+
2473
+ attr_accessor to_emails: ::Array[String]
2474
+
2475
+ def initialize: (
2476
+ id: String,
2477
+ created_at: top,
2478
+ from_address: String,
2479
+ resend_message_id: String?,
2480
+ subject: String,
2481
+ to_emails: ::Array[String]
2482
+ ) -> void
2483
+
2484
+ def to_hash: -> {
2485
+ id: String,
2486
+ created_at: top,
2487
+ from_address: String,
2488
+ resend_message_id: String?,
2489
+ subject: String,
2490
+ to_emails: ::Array[String]
2491
+ }
2492
+ end
2493
+
2195
2494
  type end_reason =
2196
2495
  :client_initiated
2197
2496
  | :connection_timeout
@@ -2325,8 +2624,9 @@ module Revox
2325
2624
  id: String,
2326
2625
  created_at: top,
2327
2626
  message_body: String,
2627
+ provider: Revox::Models::CallSearchResponse::Call::LastCallAttempt::SMSLog::provider,
2628
+ provider_message_id: String?,
2328
2629
  to_phone_number: String,
2329
- twilio_message_sid: String?,
2330
2630
  type: Revox::Models::CallSearchResponse::Call::LastCallAttempt::SMSLog::type_
2331
2631
  }
2332
2632
 
@@ -2337,9 +2637,11 @@ module Revox
2337
2637
 
2338
2638
  attr_accessor message_body: String
2339
2639
 
2340
- attr_accessor to_phone_number: String
2640
+ attr_accessor provider: Revox::Models::CallSearchResponse::Call::LastCallAttempt::SMSLog::provider
2341
2641
 
2342
- attr_accessor twilio_message_sid: String?
2642
+ attr_accessor provider_message_id: String?
2643
+
2644
+ attr_accessor to_phone_number: String
2343
2645
 
2344
2646
  attr_accessor type: Revox::Models::CallSearchResponse::Call::LastCallAttempt::SMSLog::type_
2345
2647
 
@@ -2347,8 +2649,9 @@ module Revox
2347
2649
  id: String,
2348
2650
  created_at: top,
2349
2651
  message_body: String,
2652
+ provider: Revox::Models::CallSearchResponse::Call::LastCallAttempt::SMSLog::provider,
2653
+ provider_message_id: String?,
2350
2654
  to_phone_number: String,
2351
- twilio_message_sid: String?,
2352
2655
  type: Revox::Models::CallSearchResponse::Call::LastCallAttempt::SMSLog::type_
2353
2656
  ) -> void
2354
2657
 
@@ -2356,11 +2659,23 @@ module Revox
2356
2659
  id: String,
2357
2660
  created_at: top,
2358
2661
  message_body: String,
2662
+ provider: Revox::Models::CallSearchResponse::Call::LastCallAttempt::SMSLog::provider,
2663
+ provider_message_id: String?,
2359
2664
  to_phone_number: String,
2360
- twilio_message_sid: String?,
2361
2665
  type: Revox::Models::CallSearchResponse::Call::LastCallAttempt::SMSLog::type_
2362
2666
  }
2363
2667
 
2668
+ type provider = :twilio | :vonage
2669
+
2670
+ module Provider
2671
+ extend Revox::Internal::Type::Enum
2672
+
2673
+ TWILIO: :twilio
2674
+ VONAGE: :vonage
2675
+
2676
+ def self?.values: -> ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::SMSLog::provider]
2677
+ end
2678
+
2364
2679
  type type_ = :in_call | :voicemail | :after_call
2365
2680
 
2366
2681
  module Type
@@ -2374,6 +2689,89 @@ module Revox
2374
2689
  end
2375
2690
  end
2376
2691
 
2692
+ type speech_event =
2693
+ {
2694
+ id: String,
2695
+ is_real_turn: bool,
2696
+ llm_system_prompt: String?,
2697
+ llm_ttft_ms: Float?,
2698
+ llm_winner_model: String?,
2699
+ speaker: Revox::Models::CallSearchResponse::Call::LastCallAttempt::SpeechEvent::speaker,
2700
+ started_speaking_at_ms: Float,
2701
+ stopped_speaking_at_ms: Float?,
2702
+ stt_transcription_delay_ms: Float?,
2703
+ transcript: String?,
2704
+ tts_ttfb_ms: Float?,
2705
+ was_cut: bool?
2706
+ }
2707
+
2708
+ class SpeechEvent < Revox::Internal::Type::BaseModel
2709
+ attr_accessor id: String
2710
+
2711
+ attr_accessor is_real_turn: bool
2712
+
2713
+ attr_accessor llm_system_prompt: String?
2714
+
2715
+ attr_accessor llm_ttft_ms: Float?
2716
+
2717
+ attr_accessor llm_winner_model: String?
2718
+
2719
+ attr_accessor speaker: Revox::Models::CallSearchResponse::Call::LastCallAttempt::SpeechEvent::speaker
2720
+
2721
+ attr_accessor started_speaking_at_ms: Float
2722
+
2723
+ attr_accessor stopped_speaking_at_ms: Float?
2724
+
2725
+ attr_accessor stt_transcription_delay_ms: Float?
2726
+
2727
+ attr_accessor transcript: String?
2728
+
2729
+ attr_accessor tts_ttfb_ms: Float?
2730
+
2731
+ attr_accessor was_cut: bool?
2732
+
2733
+ def initialize: (
2734
+ id: String,
2735
+ is_real_turn: bool,
2736
+ llm_system_prompt: String?,
2737
+ llm_ttft_ms: Float?,
2738
+ llm_winner_model: String?,
2739
+ speaker: Revox::Models::CallSearchResponse::Call::LastCallAttempt::SpeechEvent::speaker,
2740
+ started_speaking_at_ms: Float,
2741
+ stopped_speaking_at_ms: Float?,
2742
+ stt_transcription_delay_ms: Float?,
2743
+ transcript: String?,
2744
+ tts_ttfb_ms: Float?,
2745
+ was_cut: bool?
2746
+ ) -> void
2747
+
2748
+ def to_hash: -> {
2749
+ id: String,
2750
+ is_real_turn: bool,
2751
+ llm_system_prompt: String?,
2752
+ llm_ttft_ms: Float?,
2753
+ llm_winner_model: String?,
2754
+ speaker: Revox::Models::CallSearchResponse::Call::LastCallAttempt::SpeechEvent::speaker,
2755
+ started_speaking_at_ms: Float,
2756
+ stopped_speaking_at_ms: Float?,
2757
+ stt_transcription_delay_ms: Float?,
2758
+ transcript: String?,
2759
+ tts_ttfb_ms: Float?,
2760
+ was_cut: bool?
2761
+ }
2762
+
2763
+ type speaker = :user | :agent
2764
+
2765
+ module Speaker
2766
+ extend Revox::Internal::Type::Enum
2767
+
2768
+ USER: :user
2769
+ AGENT: :agent
2770
+
2771
+ def self?.values: -> ::Array[Revox::Models::CallSearchResponse::Call::LastCallAttempt::SpeechEvent::speaker]
2772
+ end
2773
+ end
2774
+
2377
2775
  type transcript =
2378
2776
  {
2379
2777
  content: String,
@@ -2604,6 +3002,7 @@ module Revox
2604
3002
  | :queued_for_calling
2605
3003
  | :calling
2606
3004
  | :post_processing
3005
+ | :not_launched
2607
3006
  | :scheduled
2608
3007
  | :paused
2609
3008
  | :completed
@@ -2617,6 +3016,7 @@ module Revox
2617
3016
  QUEUED_FOR_CALLING: :queued_for_calling
2618
3017
  CALLING: :calling
2619
3018
  POST_PROCESSING: :post_processing
3019
+ NOT_LAUNCHED: :not_launched
2620
3020
  SCHEDULED: :scheduled
2621
3021
  PAUSED: :paused
2622
3022
  COMPLETED: :completed
@@ -2627,13 +3027,7 @@ module Revox
2627
3027
  end
2628
3028
 
2629
3029
  type outcome =
2630
- :not_interested
2631
- | :interested
2632
- | :completed
2633
- | :requested_callback_later
2634
- | :requested_callback_new_number
2635
- | :do_not_contact
2636
- | :ai_averse
3030
+ :not_interested | :interested | :completed | :requested_callback_later
2637
3031
 
2638
3032
  module Outcome
2639
3033
  extend Revox::Internal::Type::Enum
@@ -2642,9 +3036,6 @@ module Revox
2642
3036
  INTERESTED: :interested
2643
3037
  COMPLETED: :completed
2644
3038
  REQUESTED_CALLBACK_LATER: :requested_callback_later
2645
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
2646
- DO_NOT_CONTACT: :do_not_contact
2647
- AI_AVERSE: :ai_averse
2648
3039
 
2649
3040
  def self?.values: -> ::Array[Revox::Models::CallSearchResponse::Call::outcome]
2650
3041
  end