revox 0.1.0 → 0.2.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 (89) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +71 -0
  3. data/README.md +39 -14
  4. data/lib/revox/client.rb +15 -1
  5. data/lib/revox/internal/transport/base_client.rb +5 -0
  6. data/lib/revox/internal/util.rb +22 -7
  7. data/lib/revox/models/assistant_create_params.rb +1038 -13
  8. data/lib/revox/models/assistant_create_response.rb +1071 -11
  9. data/lib/revox/models/assistant_list_response.rb +1070 -11
  10. data/lib/revox/models/assistant_retrieve_response.rb +1066 -11
  11. data/lib/revox/models/assistant_update_params.rb +1038 -13
  12. data/lib/revox/models/assistant_update_response.rb +1097 -12
  13. data/lib/revox/models/call_create_params.rb +1065 -13
  14. data/lib/revox/models/call_create_response.rb +1813 -101
  15. data/lib/revox/models/call_retrieve_response.rb +1815 -101
  16. data/lib/revox/models/campaign_create_params.rb +67 -2
  17. data/lib/revox/models/campaign_create_response.rb +1314 -59
  18. data/lib/revox/models/campaign_get_rows_params.rb +1 -46
  19. data/lib/revox/models/campaign_get_rows_response.rb +1837 -129
  20. data/lib/revox/models/campaign_list_response.rb +1312 -59
  21. data/lib/revox/models/campaign_retrieve_response.rb +1312 -56
  22. data/lib/revox/models/users/me_retrieve_response.rb +13 -1
  23. data/lib/revox/models/users/me_update_response.rb +13 -1
  24. data/lib/revox/models/voice_list_response.rb +55 -1
  25. data/lib/revox/models/voice_preview_params.rb +49 -1
  26. data/lib/revox/models.rb +0 -2
  27. data/lib/revox/resources/assistants.rb +116 -8
  28. data/lib/revox/resources/call.rb +0 -29
  29. data/lib/revox/resources/campaigns.rb +12 -17
  30. data/lib/revox/resources/voices.rb +16 -10
  31. data/lib/revox/version.rb +1 -1
  32. data/lib/revox.rb +0 -2
  33. data/rbi/revox/internal/util.rbi +8 -0
  34. data/rbi/revox/models/assistant_create_params.rbi +2138 -103
  35. data/rbi/revox/models/assistant_create_response.rbi +2454 -199
  36. data/rbi/revox/models/assistant_list_response.rbi +2448 -195
  37. data/rbi/revox/models/assistant_retrieve_response.rbi +2401 -210
  38. data/rbi/revox/models/assistant_update_params.rbi +2138 -103
  39. data/rbi/revox/models/assistant_update_response.rbi +2504 -198
  40. data/rbi/revox/models/call_create_params.rbi +2382 -225
  41. data/rbi/revox/models/call_create_response.rbi +4104 -384
  42. data/rbi/revox/models/call_retrieve_response.rbi +4104 -382
  43. data/rbi/revox/models/campaign_create_params.rbi +136 -0
  44. data/rbi/revox/models/campaign_create_response.rbi +2911 -231
  45. data/rbi/revox/models/campaign_get_rows_params.rbi +2 -82
  46. data/rbi/revox/models/campaign_get_rows_response.rbi +4135 -410
  47. data/rbi/revox/models/campaign_list_response.rbi +2904 -230
  48. data/rbi/revox/models/campaign_retrieve_response.rbi +2911 -231
  49. data/rbi/revox/models/users/me_retrieve_response.rbi +13 -3
  50. data/rbi/revox/models/users/me_update_response.rbi +13 -3
  51. data/rbi/revox/models/voice_list_response.rbi +105 -3
  52. data/rbi/revox/models/voice_preview_params.rbi +69 -0
  53. data/rbi/revox/models.rbi +0 -2
  54. data/rbi/revox/resources/assistants.rbi +284 -8
  55. data/rbi/revox/resources/call.rbi +0 -21
  56. data/rbi/revox/resources/campaigns.rbi +12 -19
  57. data/rbi/revox/resources/voices.rbi +17 -9
  58. data/sig/revox/internal/util.rbs +4 -0
  59. data/sig/revox/models/assistant_create_params.rbs +844 -11
  60. data/sig/revox/models/assistant_create_response.rbs +860 -3
  61. data/sig/revox/models/assistant_list_response.rbs +860 -3
  62. data/sig/revox/models/assistant_retrieve_response.rbs +859 -3
  63. data/sig/revox/models/assistant_update_params.rbs +844 -11
  64. data/sig/revox/models/assistant_update_response.rbs +886 -6
  65. data/sig/revox/models/call_create_params.rbs +847 -13
  66. data/sig/revox/models/call_create_response.rbs +1514 -34
  67. data/sig/revox/models/call_retrieve_response.rbs +1514 -34
  68. data/sig/revox/models/campaign_create_params.rbs +54 -0
  69. data/sig/revox/models/campaign_create_response.rbs +1034 -6
  70. data/sig/revox/models/campaign_get_rows_params.rbs +2 -64
  71. data/sig/revox/models/campaign_get_rows_response.rbs +1522 -54
  72. data/sig/revox/models/campaign_list_response.rbs +1034 -6
  73. data/sig/revox/models/campaign_retrieve_response.rbs +1034 -6
  74. data/sig/revox/models/users/me_retrieve_response.rbs +8 -3
  75. data/sig/revox/models/users/me_update_response.rbs +8 -3
  76. data/sig/revox/models/voice_list_response.rbs +45 -3
  77. data/sig/revox/models/voice_preview_params.rbs +42 -1
  78. data/sig/revox/models.rbs +0 -2
  79. data/sig/revox/resources/assistants.rbs +56 -2
  80. data/sig/revox/resources/call.rbs +0 -7
  81. data/sig/revox/resources/campaigns.rbs +2 -5
  82. data/sig/revox/resources/voices.rbs +4 -0
  83. metadata +2 -8
  84. data/lib/revox/models/call_list_params.rb +0 -52
  85. data/lib/revox/models/call_list_response.rb +0 -259
  86. data/rbi/revox/models/call_list_params.rbi +0 -94
  87. data/rbi/revox/models/call_list_response.rbi +0 -563
  88. data/sig/revox/models/call_list_params.rbs +0 -63
  89. data/sig/revox/models/call_list_response.rbs +0 -226
@@ -1,34 +1,17 @@
1
1
  module Revox
2
2
  module Models
3
3
  type campaign_get_rows_response =
4
- {
5
- page: Float,
6
- page_size: Float,
7
- rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row],
8
- total: Float
9
- }
4
+ { rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row] }
10
5
 
11
6
  class CampaignGetRowsResponse < Revox::Internal::Type::BaseModel
12
- attr_accessor page: Float
13
-
14
- attr_accessor page_size: Float
15
-
16
7
  attr_accessor rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row]
17
8
 
18
- attr_accessor total: Float
19
-
20
9
  def initialize: (
21
- page: Float,
22
- page_size: Float,
23
- rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row],
24
- total: Float
10
+ rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row]
25
11
  ) -> void
26
12
 
27
13
  def to_hash: -> {
28
- page: Float,
29
- page_size: Float,
30
- rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row],
31
- total: Float
14
+ rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row]
32
15
  }
33
16
 
34
17
  type row =
@@ -74,11 +57,13 @@ module Revox
74
57
  type call =
75
58
  {
76
59
  id: String,
60
+ assignee: Revox::Models::CampaignGetRowsResponse::Row::Call::Assignee?,
77
61
  assistant: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant?,
78
62
  call_attempts: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt],
79
63
  call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig?,
80
64
  calls_count: Float,
81
65
  campaign: Revox::Models::CampaignGetRowsResponse::Row::Call::Campaign?,
66
+ contact: Revox::Models::CampaignGetRowsResponse::Row::Call::Contact,
82
67
  created_at: top,
83
68
  direction: Revox::Models::CampaignGetRowsResponse::Row::Call::direction,
84
69
  first_sentence_delay_ms: Integer,
@@ -89,14 +74,20 @@ module Revox
89
74
  llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::llm_model,
90
75
  metadata: ::Hash[Symbol, String]?,
91
76
  organization_id: String,
77
+ prompt_variables: ::Hash[Symbol, String]?,
92
78
  scheduled_at: top,
93
79
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::status,
94
- to_phone_number: String
80
+ to_phone_number: String,
81
+ updated_at: top,
82
+ outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?,
83
+ outcome_summary: String?
95
84
  }
96
85
 
97
86
  class Call < Revox::Internal::Type::BaseModel
98
87
  attr_accessor id: String
99
88
 
89
+ attr_accessor assignee: Revox::Models::CampaignGetRowsResponse::Row::Call::Assignee?
90
+
100
91
  attr_accessor assistant: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant?
101
92
 
102
93
  attr_accessor call_attempts: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt]
@@ -107,6 +98,8 @@ module Revox
107
98
 
108
99
  attr_accessor campaign: Revox::Models::CampaignGetRowsResponse::Row::Call::Campaign?
109
100
 
101
+ attr_accessor contact: Revox::Models::CampaignGetRowsResponse::Row::Call::Contact
102
+
110
103
  attr_accessor created_at: top
111
104
 
112
105
  attr_accessor direction: Revox::Models::CampaignGetRowsResponse::Row::Call::direction
@@ -127,19 +120,29 @@ module Revox
127
120
 
128
121
  attr_accessor organization_id: String
129
122
 
123
+ attr_accessor prompt_variables: ::Hash[Symbol, String]?
124
+
130
125
  attr_accessor scheduled_at: top
131
126
 
132
127
  attr_accessor status: Revox::Models::CampaignGetRowsResponse::Row::Call::status
133
128
 
134
129
  attr_accessor to_phone_number: String
135
130
 
131
+ attr_accessor updated_at: top
132
+
133
+ attr_accessor outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?
134
+
135
+ attr_accessor outcome_summary: String?
136
+
136
137
  def initialize: (
137
138
  id: String,
139
+ assignee: Revox::Models::CampaignGetRowsResponse::Row::Call::Assignee?,
138
140
  assistant: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant?,
139
141
  call_attempts: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt],
140
142
  call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig?,
141
143
  calls_count: Float,
142
144
  campaign: Revox::Models::CampaignGetRowsResponse::Row::Call::Campaign?,
145
+ contact: Revox::Models::CampaignGetRowsResponse::Row::Call::Contact,
143
146
  created_at: top,
144
147
  direction: Revox::Models::CampaignGetRowsResponse::Row::Call::direction,
145
148
  first_sentence_delay_ms: Integer,
@@ -150,18 +153,24 @@ module Revox
150
153
  llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::llm_model,
151
154
  metadata: ::Hash[Symbol, String]?,
152
155
  organization_id: String,
156
+ prompt_variables: ::Hash[Symbol, String]?,
153
157
  scheduled_at: top,
154
158
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::status,
155
- to_phone_number: String
159
+ to_phone_number: String,
160
+ updated_at: top,
161
+ ?outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?,
162
+ ?outcome_summary: String?
156
163
  ) -> void
157
164
 
158
165
  def to_hash: -> {
159
166
  id: String,
167
+ assignee: Revox::Models::CampaignGetRowsResponse::Row::Call::Assignee?,
160
168
  assistant: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant?,
161
169
  call_attempts: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt],
162
170
  call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig?,
163
171
  calls_count: Float,
164
172
  campaign: Revox::Models::CampaignGetRowsResponse::Row::Call::Campaign?,
173
+ contact: Revox::Models::CampaignGetRowsResponse::Row::Call::Contact,
165
174
  created_at: top,
166
175
  direction: Revox::Models::CampaignGetRowsResponse::Row::Call::direction,
167
176
  first_sentence_delay_ms: Integer,
@@ -172,49 +181,130 @@ module Revox
172
181
  llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::llm_model,
173
182
  metadata: ::Hash[Symbol, String]?,
174
183
  organization_id: String,
184
+ prompt_variables: ::Hash[Symbol, String]?,
175
185
  scheduled_at: top,
176
186
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::status,
177
- to_phone_number: String
187
+ to_phone_number: String,
188
+ updated_at: top,
189
+ outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?,
190
+ outcome_summary: String?
178
191
  }
179
192
 
193
+ type assignee =
194
+ {
195
+ id: String,
196
+ email: String,
197
+ first_name: String?,
198
+ last_name: String?
199
+ }
200
+
201
+ class Assignee < Revox::Internal::Type::BaseModel
202
+ attr_accessor id: String
203
+
204
+ attr_accessor email: String
205
+
206
+ attr_accessor first_name: String?
207
+
208
+ attr_accessor last_name: String?
209
+
210
+ def initialize: (
211
+ id: String,
212
+ email: String,
213
+ first_name: String?,
214
+ last_name: String?
215
+ ) -> void
216
+
217
+ def to_hash: -> {
218
+ id: String,
219
+ email: String,
220
+ first_name: String?,
221
+ last_name: String?
222
+ }
223
+ end
224
+
180
225
  type assistant =
181
226
  {
182
227
  id: String,
228
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]?,
229
+ after_call_sms_prompt: String?,
183
230
  background_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::background_sound?,
231
+ background_sound_volume: Float,
184
232
  calendly: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Calendly?,
185
233
  call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig?,
234
+ cartesia_dictionary_pronunciation_id: String?,
186
235
  created_at: top,
236
+ custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?,
237
+ email_notification_address: String?,
238
+ email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language,
239
+ email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?,
187
240
  end_of_call_sentence: String?,
188
241
  first_sentence: String?,
189
242
  first_sentence_delay_ms: Integer,
190
243
  first_sentence_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::first_sentence_mode,
244
+ from_phone_number: String?,
245
+ human_transfer_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::human_transfer_mode?,
191
246
  ivr_navigation_enabled: bool,
192
247
  llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::llm_model,
248
+ logo_url: String?,
193
249
  max_call_duration_secs: Float,
250
+ max_duration_end_message: String?,
194
251
  name: String,
195
252
  organization_id: String,
253
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?,
196
254
  prompt: String,
255
+ prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?,
256
+ slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?,
257
+ sms_enabled: bool,
258
+ sms_template: String?,
197
259
  structured_output_config: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig]?,
260
+ structured_output_prompt: String?,
261
+ stt_context: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext?,
262
+ stt_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::stt_model,
263
+ thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?,
264
+ thinking_sound_probability: Float,
265
+ thinking_sound_volume: Float,
198
266
  transfer_phone_number: String?,
267
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_,
199
268
  updated_at: top,
200
269
  voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?,
201
270
  voicemail_message: String?,
271
+ voicemail_sms_prompt: String?,
272
+ warm_transfer_summary_instructions: String?,
202
273
  webhook_url: String?,
274
+ zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?,
275
+ created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?,
203
276
  faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem],
277
+ is_realestate_assistant: bool,
204
278
  pending_faq_count: Float
205
279
  }
206
280
 
207
281
  class Assistant < Revox::Internal::Type::BaseModel
208
282
  attr_accessor id: String
209
283
 
284
+ attr_accessor after_call_sms_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]?
285
+
286
+ attr_accessor after_call_sms_prompt: String?
287
+
210
288
  attr_accessor background_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::background_sound?
211
289
 
290
+ attr_accessor background_sound_volume: Float
291
+
212
292
  attr_accessor calendly: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Calendly?
213
293
 
214
294
  attr_accessor call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig?
215
295
 
296
+ attr_accessor cartesia_dictionary_pronunciation_id: String?
297
+
216
298
  attr_accessor created_at: top
217
299
 
300
+ attr_accessor custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?
301
+
302
+ attr_accessor email_notification_address: String?
303
+
304
+ attr_accessor email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language
305
+
306
+ attr_accessor email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?
307
+
218
308
  attr_accessor end_of_call_sentence: String?
219
309
 
220
310
  attr_accessor first_sentence: String?
@@ -223,92 +313,219 @@ module Revox
223
313
 
224
314
  attr_accessor first_sentence_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::first_sentence_mode
225
315
 
316
+ attr_accessor from_phone_number: String?
317
+
318
+ attr_accessor human_transfer_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::human_transfer_mode?
319
+
226
320
  attr_accessor ivr_navigation_enabled: bool
227
321
 
228
322
  attr_accessor llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::llm_model
229
323
 
324
+ attr_accessor logo_url: String?
325
+
230
326
  attr_accessor max_call_duration_secs: Float
231
327
 
328
+ attr_accessor max_duration_end_message: String?
329
+
232
330
  attr_accessor name: String
233
331
 
234
332
  attr_accessor organization_id: String
235
333
 
334
+ attr_accessor position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?
335
+
236
336
  attr_accessor prompt: String
237
337
 
338
+ attr_accessor prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?
339
+
340
+ attr_accessor slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?
341
+
342
+ attr_accessor sms_enabled: bool
343
+
344
+ attr_accessor sms_template: String?
345
+
238
346
  attr_accessor structured_output_config: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig]?
239
347
 
348
+ attr_accessor structured_output_prompt: String?
349
+
350
+ attr_accessor stt_context: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext?
351
+
352
+ attr_accessor stt_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::stt_model
353
+
354
+ attr_accessor thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?
355
+
356
+ attr_accessor thinking_sound_probability: Float
357
+
358
+ attr_accessor thinking_sound_volume: Float
359
+
240
360
  attr_accessor transfer_phone_number: String?
241
361
 
362
+ attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_
363
+
242
364
  attr_accessor updated_at: top
243
365
 
244
366
  attr_accessor voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?
245
367
 
246
368
  attr_accessor voicemail_message: String?
247
369
 
370
+ attr_accessor voicemail_sms_prompt: String?
371
+
372
+ attr_accessor warm_transfer_summary_instructions: String?
373
+
248
374
  attr_accessor webhook_url: String?
249
375
 
376
+ attr_accessor zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?
377
+
378
+ attr_accessor created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?
379
+
250
380
  attr_reader faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem]?
251
381
 
252
382
  def faq_items=: (
253
383
  ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem]
254
384
  ) -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem]
255
385
 
386
+ attr_reader is_realestate_assistant: bool?
387
+
388
+ def is_realestate_assistant=: (bool) -> bool
389
+
256
390
  attr_reader pending_faq_count: Float?
257
391
 
258
392
  def pending_faq_count=: (Float) -> Float
259
393
 
260
394
  def initialize: (
261
395
  id: String,
396
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]?,
397
+ after_call_sms_prompt: String?,
262
398
  background_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::background_sound?,
399
+ background_sound_volume: Float,
263
400
  calendly: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Calendly?,
264
401
  call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig?,
402
+ cartesia_dictionary_pronunciation_id: String?,
265
403
  created_at: top,
404
+ custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?,
405
+ email_notification_address: String?,
406
+ email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language,
407
+ email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?,
266
408
  end_of_call_sentence: String?,
267
409
  first_sentence: String?,
268
410
  first_sentence_delay_ms: Integer,
269
411
  first_sentence_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::first_sentence_mode,
412
+ from_phone_number: String?,
413
+ human_transfer_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::human_transfer_mode?,
270
414
  ivr_navigation_enabled: bool,
271
415
  llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::llm_model,
416
+ logo_url: String?,
272
417
  max_call_duration_secs: Float,
418
+ max_duration_end_message: String?,
273
419
  name: String,
274
420
  organization_id: String,
421
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?,
275
422
  prompt: String,
423
+ prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?,
424
+ slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?,
425
+ sms_enabled: bool,
426
+ sms_template: String?,
276
427
  structured_output_config: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig]?,
428
+ structured_output_prompt: String?,
429
+ stt_context: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext?,
430
+ stt_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::stt_model,
431
+ thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?,
432
+ thinking_sound_probability: Float,
433
+ thinking_sound_volume: Float,
277
434
  transfer_phone_number: String?,
435
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_,
278
436
  updated_at: top,
279
437
  voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?,
280
438
  voicemail_message: String?,
439
+ voicemail_sms_prompt: String?,
440
+ warm_transfer_summary_instructions: String?,
281
441
  webhook_url: String?,
442
+ zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?,
443
+ ?created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?,
282
444
  ?faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem],
445
+ ?is_realestate_assistant: bool,
283
446
  ?pending_faq_count: Float
284
447
  ) -> void
285
448
 
286
449
  def to_hash: -> {
287
450
  id: String,
451
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]?,
452
+ after_call_sms_prompt: String?,
288
453
  background_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::background_sound?,
454
+ background_sound_volume: Float,
289
455
  calendly: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Calendly?,
290
456
  call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig?,
457
+ cartesia_dictionary_pronunciation_id: String?,
291
458
  created_at: top,
459
+ custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?,
460
+ email_notification_address: String?,
461
+ email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language,
462
+ email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?,
292
463
  end_of_call_sentence: String?,
293
464
  first_sentence: String?,
294
465
  first_sentence_delay_ms: Integer,
295
466
  first_sentence_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::first_sentence_mode,
467
+ from_phone_number: String?,
468
+ human_transfer_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::human_transfer_mode?,
296
469
  ivr_navigation_enabled: bool,
297
470
  llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::llm_model,
471
+ logo_url: String?,
298
472
  max_call_duration_secs: Float,
473
+ max_duration_end_message: String?,
299
474
  name: String,
300
475
  organization_id: String,
476
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?,
301
477
  prompt: String,
478
+ prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?,
479
+ slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?,
480
+ sms_enabled: bool,
481
+ sms_template: String?,
302
482
  structured_output_config: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig]?,
483
+ structured_output_prompt: String?,
484
+ stt_context: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext?,
485
+ stt_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::stt_model,
486
+ thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?,
487
+ thinking_sound_probability: Float,
488
+ thinking_sound_volume: Float,
303
489
  transfer_phone_number: String?,
490
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_,
304
491
  updated_at: top,
305
492
  voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?,
306
493
  voicemail_message: String?,
494
+ voicemail_sms_prompt: String?,
495
+ warm_transfer_summary_instructions: String?,
307
496
  webhook_url: String?,
497
+ zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?,
498
+ created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?,
308
499
  faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem],
500
+ is_realestate_assistant: bool,
309
501
  pending_faq_count: Float
310
502
  }
311
503
 
504
+ type after_call_sms_outcome =
505
+ :not_interested
506
+ | :interested
507
+ | :completed
508
+ | :requested_callback_later
509
+ | :requested_callback_new_number
510
+ | :do_not_contact
511
+ | :ai_averse
512
+ | :none
513
+
514
+ module AfterCallSMSOutcome
515
+ extend Revox::Internal::Type::Enum
516
+
517
+ NOT_INTERESTED: :not_interested
518
+ INTERESTED: :interested
519
+ COMPLETED: :completed
520
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
521
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
522
+ DO_NOT_CONTACT: :do_not_contact
523
+ AI_AVERSE: :ai_averse
524
+ NONE: :none
525
+
526
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]
527
+ end
528
+
312
529
  type background_sound = :"audio/office.ogg"
313
530
 
314
531
  module BackgroundSound
@@ -336,12 +553,18 @@ module Revox
336
553
 
337
554
  type call_retry_config =
338
555
  {
556
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::allowed_day],
557
+ call_twice_in_a_row: bool,
339
558
  calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::CallingWindow],
340
559
  max_retry_attempts: Integer,
341
560
  timezone: String?
342
561
  }
343
562
 
344
563
  class CallRetryConfig < Revox::Internal::Type::BaseModel
564
+ attr_accessor allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::allowed_day]
565
+
566
+ attr_accessor call_twice_in_a_row: bool
567
+
345
568
  attr_accessor calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::CallingWindow]
346
569
 
347
570
  attr_accessor max_retry_attempts: Integer
@@ -349,17 +572,44 @@ module Revox
349
572
  attr_accessor timezone: String?
350
573
 
351
574
  def initialize: (
575
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::allowed_day],
576
+ call_twice_in_a_row: bool,
352
577
  calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::CallingWindow],
353
578
  max_retry_attempts: Integer,
354
579
  ?timezone: String?
355
580
  ) -> void
356
581
 
357
582
  def to_hash: -> {
583
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::allowed_day],
584
+ call_twice_in_a_row: bool,
358
585
  calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::CallingWindow],
359
586
  max_retry_attempts: Integer,
360
587
  timezone: String?
361
588
  }
362
589
 
590
+ type allowed_day =
591
+ :monday
592
+ | :tuesday
593
+ | :wednesday
594
+ | :thursday
595
+ | :friday
596
+ | :saturday
597
+ | :sunday
598
+
599
+ module AllowedDay
600
+ extend Revox::Internal::Type::Enum
601
+
602
+ MONDAY: :monday
603
+ TUESDAY: :tuesday
604
+ WEDNESDAY: :wednesday
605
+ THURSDAY: :thursday
606
+ FRIDAY: :friday
607
+ SATURDAY: :saturday
608
+ SUNDAY: :sunday
609
+
610
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::allowed_day]
611
+ end
612
+
363
613
  type calling_window =
364
614
  {
365
615
  calling_window_end_time: String,
@@ -388,6 +638,189 @@ module Revox
388
638
  end
389
639
  end
390
640
 
641
+ type custom_tool =
642
+ {
643
+ body_template: String?,
644
+ description: String,
645
+ headers: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::Header],
646
+ input_schema: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema],
647
+ method_: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::method_,
648
+ name: String,
649
+ query_params: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::QueryParam],
650
+ url: String
651
+ }
652
+
653
+ class CustomTool < Revox::Internal::Type::BaseModel
654
+ attr_accessor body_template: String?
655
+
656
+ attr_accessor description: String
657
+
658
+ attr_accessor headers: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::Header]
659
+
660
+ attr_accessor input_schema: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema]
661
+
662
+ attr_accessor method_: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::method_
663
+
664
+ attr_accessor name: String
665
+
666
+ attr_accessor query_params: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::QueryParam]
667
+
668
+ attr_accessor url: String
669
+
670
+ def initialize: (
671
+ body_template: String?,
672
+ description: String,
673
+ headers: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::Header],
674
+ input_schema: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema],
675
+ method_: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::method_,
676
+ name: String,
677
+ query_params: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::QueryParam],
678
+ url: String
679
+ ) -> void
680
+
681
+ def to_hash: -> {
682
+ body_template: String?,
683
+ description: String,
684
+ headers: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::Header],
685
+ input_schema: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema],
686
+ method_: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::method_,
687
+ name: String,
688
+ query_params: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::QueryParam],
689
+ url: String
690
+ }
691
+
692
+ type header = { key: String, value: String }
693
+
694
+ class Header < Revox::Internal::Type::BaseModel
695
+ attr_accessor key: String
696
+
697
+ attr_accessor value: String
698
+
699
+ def initialize: (key: String, value: String) -> void
700
+
701
+ def to_hash: -> { key: String, value: String }
702
+ end
703
+
704
+ type input_schema =
705
+ {
706
+ name: String,
707
+ required: bool,
708
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema::type_,
709
+ description: String,
710
+ enum_options: ::Array[String]
711
+ }
712
+
713
+ class InputSchema < Revox::Internal::Type::BaseModel
714
+ attr_accessor name: String
715
+
716
+ attr_accessor required: bool
717
+
718
+ attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema::type_
719
+
720
+ attr_reader description: String?
721
+
722
+ def description=: (String) -> String
723
+
724
+ attr_reader enum_options: ::Array[String]?
725
+
726
+ def enum_options=: (::Array[String]) -> ::Array[String]
727
+
728
+ def initialize: (
729
+ name: String,
730
+ required: bool,
731
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema::type_,
732
+ ?description: String,
733
+ ?enum_options: ::Array[String]
734
+ ) -> void
735
+
736
+ def to_hash: -> {
737
+ name: String,
738
+ required: bool,
739
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema::type_,
740
+ description: String,
741
+ enum_options: ::Array[String]
742
+ }
743
+
744
+ type type_ =
745
+ :string | :number | :boolean | :enum | :date | :datetime
746
+
747
+ module Type
748
+ extend Revox::Internal::Type::Enum
749
+
750
+ STRING: :string
751
+ NUMBER: :number
752
+ BOOLEAN: :boolean
753
+ ENUM: :enum
754
+ DATE: :date
755
+ DATETIME: :datetime
756
+
757
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema::type_]
758
+ end
759
+ end
760
+
761
+ type method_ = :GET | :POST | :PUT | :PATCH | :DELETE
762
+
763
+ module Method
764
+ extend Revox::Internal::Type::Enum
765
+
766
+ GET: :GET
767
+ POST: :POST
768
+ PUT: :PUT
769
+ PATCH: :PATCH
770
+ DELETE: :DELETE
771
+
772
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::method_]
773
+ end
774
+
775
+ type query_param = { key: String, value: String }
776
+
777
+ class QueryParam < Revox::Internal::Type::BaseModel
778
+ attr_accessor key: String
779
+
780
+ attr_accessor value: String
781
+
782
+ def initialize: (key: String, value: String) -> void
783
+
784
+ def to_hash: -> { key: String, value: String }
785
+ end
786
+ end
787
+
788
+ type email_notification_language = :en | :fr
789
+
790
+ module EmailNotificationLanguage
791
+ extend Revox::Internal::Type::Enum
792
+
793
+ EN: :en
794
+ FR: :fr
795
+
796
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language]
797
+ end
798
+
799
+ type email_notification_outcome =
800
+ :not_interested
801
+ | :interested
802
+ | :completed
803
+ | :requested_callback_later
804
+ | :requested_callback_new_number
805
+ | :do_not_contact
806
+ | :ai_averse
807
+ | :none
808
+
809
+ module EmailNotificationOutcome
810
+ extend Revox::Internal::Type::Enum
811
+
812
+ NOT_INTERESTED: :not_interested
813
+ INTERESTED: :interested
814
+ COMPLETED: :completed
815
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
816
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
817
+ DO_NOT_CONTACT: :do_not_contact
818
+ AI_AVERSE: :ai_averse
819
+ NONE: :none
820
+
821
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]
822
+ end
823
+
391
824
  type first_sentence_mode = :generated | :static | :none
392
825
 
393
826
  module FirstSentenceMode
@@ -400,9 +833,22 @@ module Revox
400
833
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::first_sentence_mode]
401
834
  end
402
835
 
836
+ type human_transfer_mode = :warm | :cold
837
+
838
+ module HumanTransferMode
839
+ extend Revox::Internal::Type::Enum
840
+
841
+ WARM: :warm
842
+ COLD: :cold
843
+
844
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::human_transfer_mode]
845
+ end
846
+
403
847
  type llm_model =
404
848
  Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember0
405
849
  | Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember1
850
+ | Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember2
851
+ | Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3
406
852
 
407
853
  module LlmModel
408
854
  extend Revox::Internal::Type::Union
@@ -467,9 +913,256 @@ module Revox
467
913
  }
468
914
  end
469
915
 
916
+ type union_member2 =
917
+ {
918
+ api_key: String,
919
+ api_url: String,
920
+ model_name: String,
921
+ type: :custom
922
+ }
923
+
924
+ class UnionMember2 < Revox::Internal::Type::BaseModel
925
+ attr_accessor api_key: String
926
+
927
+ attr_accessor api_url: String
928
+
929
+ attr_accessor model_name: String
930
+
931
+ attr_accessor type: :custom
932
+
933
+ def initialize: (
934
+ api_key: String,
935
+ api_url: String,
936
+ model_name: String,
937
+ ?type: :custom
938
+ ) -> void
939
+
940
+ def to_hash: -> {
941
+ api_key: String,
942
+ api_url: String,
943
+ model_name: String,
944
+ type: :custom
945
+ }
946
+ end
947
+
948
+ type union_member3 =
949
+ {
950
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3::provider,
951
+ realtime_model_id: String,
952
+ type: :realtime,
953
+ realtime_voice_id: String
954
+ }
955
+
956
+ class UnionMember3 < Revox::Internal::Type::BaseModel
957
+ attr_accessor provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3::provider
958
+
959
+ attr_accessor realtime_model_id: String
960
+
961
+ attr_accessor type: :realtime
962
+
963
+ attr_reader realtime_voice_id: String?
964
+
965
+ def realtime_voice_id=: (String) -> String
966
+
967
+ def initialize: (
968
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3::provider,
969
+ realtime_model_id: String,
970
+ ?realtime_voice_id: String,
971
+ ?type: :realtime
972
+ ) -> void
973
+
974
+ def to_hash: -> {
975
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3::provider,
976
+ realtime_model_id: String,
977
+ type: :realtime,
978
+ realtime_voice_id: String
979
+ }
980
+
981
+ type provider = :openai | :google
982
+
983
+ module Provider
984
+ extend Revox::Internal::Type::Enum
985
+
986
+ OPENAI: :openai
987
+ GOOGLE: :google
988
+
989
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3::provider]
990
+ end
991
+ end
992
+
470
993
  def self?.variants: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::llm_model]
471
994
  end
472
995
 
996
+ type position = { x: Float, y_: Float }
997
+
998
+ class Position < Revox::Internal::Type::BaseModel
999
+ attr_accessor x: Float
1000
+
1001
+ attr_accessor y_: Float
1002
+
1003
+ def initialize: (x: Float, y_: Float) -> void
1004
+
1005
+ def to_hash: -> { x: Float, y_: Float }
1006
+ end
1007
+
1008
+ type prompt_flow =
1009
+ {
1010
+ edges: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Edge],
1011
+ nodes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node]
1012
+ }
1013
+
1014
+ class PromptFlow < Revox::Internal::Type::BaseModel
1015
+ attr_accessor edges: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Edge]
1016
+
1017
+ attr_accessor nodes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node]
1018
+
1019
+ def initialize: (
1020
+ edges: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Edge],
1021
+ nodes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node]
1022
+ ) -> void
1023
+
1024
+ def to_hash: -> {
1025
+ edges: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Edge],
1026
+ nodes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node]
1027
+ }
1028
+
1029
+ type edge = { id: String, source: String, target: String }
1030
+
1031
+ class Edge < Revox::Internal::Type::BaseModel
1032
+ attr_accessor id: String
1033
+
1034
+ attr_accessor source: String
1035
+
1036
+ attr_accessor target: String
1037
+
1038
+ def initialize: (
1039
+ id: String,
1040
+ source: String,
1041
+ target: String
1042
+ ) -> void
1043
+
1044
+ def to_hash: -> { id: String, source: String, target: String }
1045
+ end
1046
+
1047
+ type node =
1048
+ {
1049
+ id: String,
1050
+ data: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Data,
1051
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Position,
1052
+ type: :promptBlock
1053
+ }
1054
+
1055
+ class Node < Revox::Internal::Type::BaseModel
1056
+ attr_accessor id: String
1057
+
1058
+ attr_accessor data: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Data
1059
+
1060
+ attr_accessor position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Position
1061
+
1062
+ attr_accessor type: :promptBlock
1063
+
1064
+ def initialize: (
1065
+ id: String,
1066
+ data: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Data,
1067
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Position,
1068
+ ?type: :promptBlock
1069
+ ) -> void
1070
+
1071
+ def to_hash: -> {
1072
+ id: String,
1073
+ data: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Data,
1074
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Position,
1075
+ type: :promptBlock
1076
+ }
1077
+
1078
+ type data = { body: String, title: String }
1079
+
1080
+ class Data < Revox::Internal::Type::BaseModel
1081
+ attr_accessor body: String
1082
+
1083
+ attr_accessor title: String
1084
+
1085
+ def initialize: (body: String, title: String) -> void
1086
+
1087
+ def to_hash: -> { body: String, title: String }
1088
+ end
1089
+
1090
+ type position = { x: Float, y_: Float }
1091
+
1092
+ class Position < Revox::Internal::Type::BaseModel
1093
+ attr_accessor x: Float
1094
+
1095
+ attr_accessor y_: Float
1096
+
1097
+ def initialize: (x: Float, y_: Float) -> void
1098
+
1099
+ def to_hash: -> { x: Float, y_: Float }
1100
+ end
1101
+ end
1102
+ end
1103
+
1104
+ type slack =
1105
+ {
1106
+ channel_id: String,
1107
+ connection_id: String,
1108
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome],
1109
+ channel_name: String?,
1110
+ template: String?
1111
+ }
1112
+
1113
+ class Slack < Revox::Internal::Type::BaseModel
1114
+ attr_accessor channel_id: String
1115
+
1116
+ attr_accessor connection_id: String
1117
+
1118
+ attr_accessor outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome]
1119
+
1120
+ attr_accessor channel_name: String?
1121
+
1122
+ attr_accessor template: String?
1123
+
1124
+ def initialize: (
1125
+ channel_id: String,
1126
+ connection_id: String,
1127
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome],
1128
+ ?channel_name: String?,
1129
+ ?template: String?
1130
+ ) -> void
1131
+
1132
+ def to_hash: -> {
1133
+ channel_id: String,
1134
+ connection_id: String,
1135
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome],
1136
+ channel_name: String?,
1137
+ template: String?
1138
+ }
1139
+
1140
+ type outcome =
1141
+ :not_interested
1142
+ | :interested
1143
+ | :completed
1144
+ | :requested_callback_later
1145
+ | :requested_callback_new_number
1146
+ | :do_not_contact
1147
+ | :ai_averse
1148
+ | :none
1149
+
1150
+ module Outcome
1151
+ extend Revox::Internal::Type::Enum
1152
+
1153
+ NOT_INTERESTED: :not_interested
1154
+ INTERESTED: :interested
1155
+ COMPLETED: :completed
1156
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
1157
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1158
+ DO_NOT_CONTACT: :do_not_contact
1159
+ AI_AVERSE: :ai_averse
1160
+ NONE: :none
1161
+
1162
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome]
1163
+ end
1164
+ end
1165
+
473
1166
  type structured_output_config =
474
1167
  {
475
1168
  name: String,
@@ -527,11 +1220,93 @@ module Revox
527
1220
  end
528
1221
  end
529
1222
 
1223
+ type stt_context =
1224
+ {
1225
+ general: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext::General],
1226
+ terms: ::Array[String]
1227
+ }
1228
+
1229
+ class SttContext < Revox::Internal::Type::BaseModel
1230
+ attr_accessor general: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext::General]
1231
+
1232
+ attr_accessor terms: ::Array[String]
1233
+
1234
+ def initialize: (
1235
+ general: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext::General],
1236
+ terms: ::Array[String]
1237
+ ) -> void
1238
+
1239
+ def to_hash: -> {
1240
+ general: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext::General],
1241
+ terms: ::Array[String]
1242
+ }
1243
+
1244
+ type general = { key: String, value: String }
1245
+
1246
+ class General < Revox::Internal::Type::BaseModel
1247
+ attr_accessor key: String
1248
+
1249
+ attr_accessor value: String
1250
+
1251
+ def initialize: (key: String, value: String) -> void
1252
+
1253
+ def to_hash: -> { key: String, value: String }
1254
+ end
1255
+ end
1256
+
1257
+ type stt_model = :"stt-rt-v4" | :"stt-rt-v5"
1258
+
1259
+ module SttModel
1260
+ extend Revox::Internal::Type::Enum
1261
+
1262
+ STT_RT_V4: :"stt-rt-v4"
1263
+ STT_RT_V5: :"stt-rt-v5"
1264
+
1265
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::stt_model]
1266
+ end
1267
+
1268
+ type thinking_sound =
1269
+ :"city-ambience.ogg"
1270
+ | :"forest-ambience.ogg"
1271
+ | :"office-ambience.ogg"
1272
+ | :"crowded-room.ogg"
1273
+ | :"keyboard-typing.ogg"
1274
+ | :"keyboard-typing2.ogg"
1275
+ | :"hold_music.ogg"
1276
+
1277
+ module ThinkingSound
1278
+ extend Revox::Internal::Type::Enum
1279
+
1280
+ CITY_AMBIENCE_OGG: :"city-ambience.ogg"
1281
+ FOREST_AMBIENCE_OGG: :"forest-ambience.ogg"
1282
+ OFFICE_AMBIENCE_OGG: :"office-ambience.ogg"
1283
+ CROWDED_ROOM_OGG: :"crowded-room.ogg"
1284
+ KEYBOARD_TYPING_OGG: :"keyboard-typing.ogg"
1285
+ KEYBOARD_TYPING2_OGG: :"keyboard-typing2.ogg"
1286
+ HOLD_MUSIC_OGG: :"hold_music.ogg"
1287
+
1288
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound]
1289
+ end
1290
+
1291
+ type type_ = :standalone | :"multi-step" | :"sub-assistant"
1292
+
1293
+ module Type
1294
+ extend Revox::Internal::Type::Enum
1295
+
1296
+ STANDALONE: :standalone
1297
+ MULTI_STEP: :"multi-step"
1298
+ SUB_ASSISTANT: :"sub-assistant"
1299
+
1300
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_]
1301
+ end
1302
+
530
1303
  type voice =
531
1304
  {
532
1305
  id: String,
533
1306
  provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider,
534
- speed: Float
1307
+ model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model,
1308
+ speed: Float,
1309
+ volume: Float
535
1310
  }
536
1311
 
537
1312
  class Voice < Revox::Internal::Type::BaseModel
@@ -539,32 +1314,168 @@ module Revox
539
1314
 
540
1315
  attr_accessor provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider
541
1316
 
1317
+ attr_reader model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model?
1318
+
1319
+ def model=: (
1320
+ Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model
1321
+ ) -> Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model
1322
+
542
1323
  attr_reader speed: Float?
543
1324
 
544
1325
  def speed=: (Float) -> Float
545
1326
 
1327
+ attr_reader volume: Float?
1328
+
1329
+ def volume=: (Float) -> Float
1330
+
546
1331
  def initialize: (
547
1332
  id: String,
548
1333
  provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider,
549
- ?speed: Float
1334
+ ?model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model,
1335
+ ?speed: Float,
1336
+ ?volume: Float
1337
+ ) -> void
1338
+
1339
+ def to_hash: -> {
1340
+ id: String,
1341
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider,
1342
+ model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model,
1343
+ speed: Float,
1344
+ volume: Float
1345
+ }
1346
+
1347
+ type provider = :cartesia | :elevenlabs
1348
+
1349
+ module Provider
1350
+ extend Revox::Internal::Type::Enum
1351
+
1352
+ CARTESIA: :cartesia
1353
+ ELEVENLABS: :elevenlabs
1354
+
1355
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider]
1356
+ end
1357
+
1358
+ type model = :"sonic-3" | :"sonic-3.5"
1359
+
1360
+ module Model
1361
+ extend Revox::Internal::Type::Enum
1362
+
1363
+ SONIC_3: :"sonic-3"
1364
+ SONIC_3_5: :"sonic-3.5"
1365
+
1366
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model]
1367
+ end
1368
+ end
1369
+
1370
+ type zoho =
1371
+ {
1372
+ connection_id: String,
1373
+ field_mapping: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::FieldMapping],
1374
+ log_call_activity: bool,
1375
+ module_: String,
1376
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome],
1377
+ template: String?
1378
+ }
1379
+
1380
+ class Zoho < Revox::Internal::Type::BaseModel
1381
+ attr_accessor connection_id: String
1382
+
1383
+ attr_accessor field_mapping: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::FieldMapping]
1384
+
1385
+ attr_accessor log_call_activity: bool
1386
+
1387
+ attr_accessor module_: String
1388
+
1389
+ attr_accessor outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome]
1390
+
1391
+ attr_accessor template: String?
1392
+
1393
+ def initialize: (
1394
+ connection_id: String,
1395
+ field_mapping: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::FieldMapping],
1396
+ log_call_activity: bool,
1397
+ module_: String,
1398
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome],
1399
+ ?template: String?
1400
+ ) -> void
1401
+
1402
+ def to_hash: -> {
1403
+ connection_id: String,
1404
+ field_mapping: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::FieldMapping],
1405
+ log_call_activity: bool,
1406
+ module_: String,
1407
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome],
1408
+ template: String?
1409
+ }
1410
+
1411
+ type field_mapping = { source: String, zoho_field: String }
1412
+
1413
+ class FieldMapping < Revox::Internal::Type::BaseModel
1414
+ attr_accessor source: String
1415
+
1416
+ attr_accessor zoho_field: String
1417
+
1418
+ def initialize: (source: String, zoho_field: String) -> void
1419
+
1420
+ def to_hash: -> { source: String, zoho_field: String }
1421
+ end
1422
+
1423
+ type outcome =
1424
+ :not_interested
1425
+ | :interested
1426
+ | :completed
1427
+ | :requested_callback_later
1428
+ | :requested_callback_new_number
1429
+ | :do_not_contact
1430
+ | :ai_averse
1431
+ | :none
1432
+
1433
+ module Outcome
1434
+ extend Revox::Internal::Type::Enum
1435
+
1436
+ NOT_INTERESTED: :not_interested
1437
+ INTERESTED: :interested
1438
+ COMPLETED: :completed
1439
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
1440
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1441
+ DO_NOT_CONTACT: :do_not_contact
1442
+ AI_AVERSE: :ai_averse
1443
+ NONE: :none
1444
+
1445
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome]
1446
+ end
1447
+ end
1448
+
1449
+ type created_by =
1450
+ {
1451
+ id: String,
1452
+ email: String,
1453
+ first_name: String?,
1454
+ last_name: String?
1455
+ }
1456
+
1457
+ class CreatedBy < Revox::Internal::Type::BaseModel
1458
+ attr_accessor id: String
1459
+
1460
+ attr_accessor email: String
1461
+
1462
+ attr_accessor first_name: String?
1463
+
1464
+ attr_accessor last_name: String?
1465
+
1466
+ def initialize: (
1467
+ id: String,
1468
+ email: String,
1469
+ first_name: String?,
1470
+ last_name: String?
550
1471
  ) -> void
551
1472
 
552
1473
  def to_hash: -> {
553
1474
  id: String,
554
- provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider,
555
- speed: Float
1475
+ email: String,
1476
+ first_name: String?,
1477
+ last_name: String?
556
1478
  }
557
-
558
- type provider = :cartesia | :elevenlabs
559
-
560
- module Provider
561
- extend Revox::Internal::Type::Enum
562
-
563
- CARTESIA: :cartesia
564
- ELEVENLABS: :elevenlabs
565
-
566
- def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider]
567
- end
568
1479
  end
569
1480
 
570
1481
  type faq_item =
@@ -635,8 +1546,11 @@ module Revox
635
1546
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result?,
636
1547
  started_at: top,
637
1548
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status,
638
- end_reason: String?,
1549
+ assistants_used: ::Array[String]?,
1550
+ end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?,
639
1551
  ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?,
1552
+ post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?,
1553
+ sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?,
640
1554
  structured_output: ::Hash[Symbol, top]?,
641
1555
  transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
642
1556
  }
@@ -660,10 +1574,16 @@ module Revox
660
1574
 
661
1575
  attr_accessor status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status
662
1576
 
663
- attr_accessor end_reason: String?
1577
+ attr_accessor assistants_used: ::Array[String]?
1578
+
1579
+ attr_accessor end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?
664
1580
 
665
1581
  attr_accessor ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?
666
1582
 
1583
+ attr_accessor post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?
1584
+
1585
+ attr_accessor sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?
1586
+
667
1587
  attr_accessor structured_output: ::Hash[Symbol, top]?
668
1588
 
669
1589
  attr_accessor transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
@@ -678,8 +1598,11 @@ module Revox
678
1598
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result?,
679
1599
  started_at: top,
680
1600
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status,
681
- ?end_reason: String?,
1601
+ ?assistants_used: ::Array[String]?,
1602
+ ?end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?,
682
1603
  ?ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?,
1604
+ ?post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?,
1605
+ ?sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?,
683
1606
  ?structured_output: ::Hash[Symbol, top]?,
684
1607
  ?transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
685
1608
  ) -> void
@@ -694,8 +1617,11 @@ module Revox
694
1617
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result?,
695
1618
  started_at: top,
696
1619
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status,
697
- end_reason: String?,
1620
+ assistants_used: ::Array[String]?,
1621
+ end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?,
698
1622
  ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?,
1623
+ post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?,
1624
+ sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?,
699
1625
  structured_output: ::Hash[Symbol, top]?,
700
1626
  transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
701
1627
  }
@@ -754,6 +1680,47 @@ module Revox
754
1680
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status]
755
1681
  end
756
1682
 
1683
+ type end_reason =
1684
+ :client_initiated
1685
+ | :connection_timeout
1686
+ | :human_takeover
1687
+ | :ivr_no_navigate
1688
+ | :max_duration
1689
+ | :participant_removed
1690
+ | :tool_end_call
1691
+ | :transfer
1692
+ | :user_inactive
1693
+ | :user_rejected
1694
+ | :user_unavailable
1695
+ | :voicemail
1696
+ | :speed_dial_abandoned
1697
+ | :speed_dial_operator_missed
1698
+ | :speed_dial_timeout
1699
+ | :speed_dial_hangup
1700
+
1701
+ module EndReason
1702
+ extend Revox::Internal::Type::Enum
1703
+
1704
+ CLIENT_INITIATED: :client_initiated
1705
+ CONNECTION_TIMEOUT: :connection_timeout
1706
+ HUMAN_TAKEOVER: :human_takeover
1707
+ IVR_NO_NAVIGATE: :ivr_no_navigate
1708
+ MAX_DURATION: :max_duration
1709
+ PARTICIPANT_REMOVED: :participant_removed
1710
+ TOOL_END_CALL: :tool_end_call
1711
+ TRANSFER: :transfer
1712
+ USER_INACTIVE: :user_inactive
1713
+ USER_REJECTED: :user_rejected
1714
+ USER_UNAVAILABLE: :user_unavailable
1715
+ VOICEMAIL: :voicemail
1716
+ SPEED_DIAL_ABANDONED: :speed_dial_abandoned
1717
+ SPEED_DIAL_OPERATOR_MISSED: :speed_dial_operator_missed
1718
+ SPEED_DIAL_TIMEOUT: :speed_dial_timeout
1719
+ SPEED_DIAL_HANGUP: :speed_dial_hangup
1720
+
1721
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason]
1722
+ end
1723
+
757
1724
  type ended_by = :agent | :user | :system
758
1725
 
759
1726
  module EndedBy
@@ -766,13 +1733,143 @@ module Revox
766
1733
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by]
767
1734
  end
768
1735
 
1736
+ type post_call_transcript =
1737
+ {
1738
+ content: String,
1739
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::role,
1740
+ tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments,
1741
+ tool_is_error: bool,
1742
+ tool_name: String,
1743
+ tool_output: String
1744
+ }
1745
+
1746
+ class PostCallTranscript < Revox::Internal::Type::BaseModel
1747
+ attr_accessor content: String
1748
+
1749
+ attr_accessor role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::role
1750
+
1751
+ attr_reader tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments?
1752
+
1753
+ def tool_arguments=: (
1754
+ Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments
1755
+ ) -> Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments
1756
+
1757
+ attr_reader tool_is_error: bool?
1758
+
1759
+ def tool_is_error=: (bool) -> bool
1760
+
1761
+ attr_reader tool_name: String?
1762
+
1763
+ def tool_name=: (String) -> String
1764
+
1765
+ attr_reader tool_output: String?
1766
+
1767
+ def tool_output=: (String) -> String
1768
+
1769
+ def initialize: (
1770
+ content: String,
1771
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::role,
1772
+ ?tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments,
1773
+ ?tool_is_error: bool,
1774
+ ?tool_name: String,
1775
+ ?tool_output: String
1776
+ ) -> void
1777
+
1778
+ def to_hash: -> {
1779
+ content: String,
1780
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::role,
1781
+ tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments,
1782
+ tool_is_error: bool,
1783
+ tool_name: String,
1784
+ tool_output: String
1785
+ }
1786
+
1787
+ type role = :user | :assistant | :human_agent | :tool
1788
+
1789
+ module Role
1790
+ extend Revox::Internal::Type::Enum
1791
+
1792
+ USER: :user
1793
+ ASSISTANT: :assistant
1794
+ HUMAN_AGENT: :human_agent
1795
+ TOOL: :tool
1796
+
1797
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::role]
1798
+ end
1799
+
1800
+ type tool_arguments = ::Hash[Symbol, top] | String
1801
+
1802
+ module ToolArguments
1803
+ extend Revox::Internal::Type::Union
1804
+
1805
+ def self?.variants: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments]
1806
+
1807
+ UnionMember0Map: Revox::Internal::Type::Converter
1808
+ end
1809
+ end
1810
+
1811
+ type sms_log =
1812
+ {
1813
+ id: String,
1814
+ created_at: top,
1815
+ message_body: String,
1816
+ to_phone_number: String,
1817
+ twilio_message_sid: String?,
1818
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1819
+ }
1820
+
1821
+ class SMSLog < Revox::Internal::Type::BaseModel
1822
+ attr_accessor id: String
1823
+
1824
+ attr_accessor created_at: top
1825
+
1826
+ attr_accessor message_body: String
1827
+
1828
+ attr_accessor to_phone_number: String
1829
+
1830
+ attr_accessor twilio_message_sid: String?
1831
+
1832
+ attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1833
+
1834
+ def initialize: (
1835
+ id: String,
1836
+ created_at: top,
1837
+ message_body: String,
1838
+ to_phone_number: String,
1839
+ twilio_message_sid: String?,
1840
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1841
+ ) -> void
1842
+
1843
+ def to_hash: -> {
1844
+ id: String,
1845
+ created_at: top,
1846
+ message_body: String,
1847
+ to_phone_number: String,
1848
+ twilio_message_sid: String?,
1849
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1850
+ }
1851
+
1852
+ type type_ = :in_call | :voicemail | :after_call
1853
+
1854
+ module Type
1855
+ extend Revox::Internal::Type::Enum
1856
+
1857
+ IN_CALL: :in_call
1858
+ VOICEMAIL: :voicemail
1859
+ AFTER_CALL: :after_call
1860
+
1861
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_]
1862
+ end
1863
+ end
1864
+
769
1865
  type transcript =
770
1866
  {
771
1867
  content: String,
772
1868
  role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::role,
773
1869
  tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::tool_arguments,
774
1870
  tool_is_error: bool,
775
- tool_name: String
1871
+ tool_name: String,
1872
+ tool_output: String
776
1873
  }
777
1874
 
778
1875
  class Transcript < Revox::Internal::Type::BaseModel
@@ -794,12 +1891,17 @@ module Revox
794
1891
 
795
1892
  def tool_name=: (String) -> String
796
1893
 
1894
+ attr_reader tool_output: String?
1895
+
1896
+ def tool_output=: (String) -> String
1897
+
797
1898
  def initialize: (
798
1899
  content: String,
799
1900
  role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::role,
800
1901
  ?tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::tool_arguments,
801
1902
  ?tool_is_error: bool,
802
- ?tool_name: String
1903
+ ?tool_name: String,
1904
+ ?tool_output: String
803
1905
  ) -> void
804
1906
 
805
1907
  def to_hash: -> {
@@ -807,16 +1909,18 @@ module Revox
807
1909
  role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::role,
808
1910
  tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::tool_arguments,
809
1911
  tool_is_error: bool,
810
- tool_name: String
1912
+ tool_name: String,
1913
+ tool_output: String
811
1914
  }
812
1915
 
813
- type role = :user | :assistant | :tool
1916
+ type role = :user | :assistant | :human_agent | :tool
814
1917
 
815
1918
  module Role
816
1919
  extend Revox::Internal::Type::Enum
817
1920
 
818
1921
  USER: :user
819
1922
  ASSISTANT: :assistant
1923
+ HUMAN_AGENT: :human_agent
820
1924
  TOOL: :tool
821
1925
 
822
1926
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::role]
@@ -836,12 +1940,18 @@ module Revox
836
1940
 
837
1941
  type call_retry_config =
838
1942
  {
1943
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::allowed_day],
1944
+ call_twice_in_a_row: bool,
839
1945
  calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::CallingWindow],
840
1946
  max_retry_attempts: Integer,
841
1947
  timezone: String?
842
1948
  }
843
1949
 
844
1950
  class CallRetryConfig < Revox::Internal::Type::BaseModel
1951
+ attr_accessor allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::allowed_day]
1952
+
1953
+ attr_accessor call_twice_in_a_row: bool
1954
+
845
1955
  attr_accessor calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::CallingWindow]
846
1956
 
847
1957
  attr_accessor max_retry_attempts: Integer
@@ -849,17 +1959,44 @@ module Revox
849
1959
  attr_accessor timezone: String?
850
1960
 
851
1961
  def initialize: (
1962
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::allowed_day],
1963
+ call_twice_in_a_row: bool,
852
1964
  calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::CallingWindow],
853
1965
  max_retry_attempts: Integer,
854
1966
  ?timezone: String?
855
1967
  ) -> void
856
1968
 
857
1969
  def to_hash: -> {
1970
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::allowed_day],
1971
+ call_twice_in_a_row: bool,
858
1972
  calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::CallingWindow],
859
1973
  max_retry_attempts: Integer,
860
1974
  timezone: String?
861
1975
  }
862
1976
 
1977
+ type allowed_day =
1978
+ :monday
1979
+ | :tuesday
1980
+ | :wednesday
1981
+ | :thursday
1982
+ | :friday
1983
+ | :saturday
1984
+ | :sunday
1985
+
1986
+ module AllowedDay
1987
+ extend Revox::Internal::Type::Enum
1988
+
1989
+ MONDAY: :monday
1990
+ TUESDAY: :tuesday
1991
+ WEDNESDAY: :wednesday
1992
+ THURSDAY: :thursday
1993
+ FRIDAY: :friday
1994
+ SATURDAY: :saturday
1995
+ SUNDAY: :sunday
1996
+
1997
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::allowed_day]
1998
+ end
1999
+
863
2000
  type calling_window =
864
2001
  {
865
2002
  calling_window_end_time: String,
@@ -900,6 +2037,38 @@ module Revox
900
2037
  def to_hash: -> { id: String, name: String }
901
2038
  end
902
2039
 
2040
+ type contact =
2041
+ {
2042
+ company: String?,
2043
+ email: String?,
2044
+ first_name: String?,
2045
+ last_name: String?
2046
+ }
2047
+
2048
+ class Contact < Revox::Internal::Type::BaseModel
2049
+ attr_accessor company: String?
2050
+
2051
+ attr_accessor email: String?
2052
+
2053
+ attr_accessor first_name: String?
2054
+
2055
+ attr_accessor last_name: String?
2056
+
2057
+ def initialize: (
2058
+ company: String?,
2059
+ email: String?,
2060
+ first_name: String?,
2061
+ last_name: String?
2062
+ ) -> void
2063
+
2064
+ def to_hash: -> {
2065
+ company: String?,
2066
+ email: String?,
2067
+ first_name: String?,
2068
+ last_name: String?
2069
+ }
2070
+ end
2071
+
903
2072
  type direction = :inbound | :outbound
904
2073
 
905
2074
  module Direction
@@ -922,8 +2091,11 @@ module Revox
922
2091
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result?,
923
2092
  started_at: top,
924
2093
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status,
925
- end_reason: String?,
2094
+ assistants_used: ::Array[String]?,
2095
+ end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?,
926
2096
  ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?,
2097
+ post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?,
2098
+ sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?,
927
2099
  structured_output: ::Hash[Symbol, top]?,
928
2100
  transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
929
2101
  }
@@ -947,10 +2119,16 @@ module Revox
947
2119
 
948
2120
  attr_accessor status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status
949
2121
 
950
- attr_accessor end_reason: String?
2122
+ attr_accessor assistants_used: ::Array[String]?
2123
+
2124
+ attr_accessor end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?
951
2125
 
952
2126
  attr_accessor ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?
953
2127
 
2128
+ attr_accessor post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?
2129
+
2130
+ attr_accessor sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?
2131
+
954
2132
  attr_accessor structured_output: ::Hash[Symbol, top]?
955
2133
 
956
2134
  attr_accessor transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
@@ -965,8 +2143,11 @@ module Revox
965
2143
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result?,
966
2144
  started_at: top,
967
2145
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status,
968
- ?end_reason: String?,
2146
+ ?assistants_used: ::Array[String]?,
2147
+ ?end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?,
969
2148
  ?ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?,
2149
+ ?post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?,
2150
+ ?sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?,
970
2151
  ?structured_output: ::Hash[Symbol, top]?,
971
2152
  ?transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
972
2153
  ) -> void
@@ -981,8 +2162,11 @@ module Revox
981
2162
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result?,
982
2163
  started_at: top,
983
2164
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status,
984
- end_reason: String?,
2165
+ assistants_used: ::Array[String]?,
2166
+ end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?,
985
2167
  ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?,
2168
+ post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?,
2169
+ sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?,
986
2170
  structured_output: ::Hash[Symbol, top]?,
987
2171
  transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
988
2172
  }
@@ -1041,6 +2225,47 @@ module Revox
1041
2225
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status]
1042
2226
  end
1043
2227
 
2228
+ type end_reason =
2229
+ :client_initiated
2230
+ | :connection_timeout
2231
+ | :human_takeover
2232
+ | :ivr_no_navigate
2233
+ | :max_duration
2234
+ | :participant_removed
2235
+ | :tool_end_call
2236
+ | :transfer
2237
+ | :user_inactive
2238
+ | :user_rejected
2239
+ | :user_unavailable
2240
+ | :voicemail
2241
+ | :speed_dial_abandoned
2242
+ | :speed_dial_operator_missed
2243
+ | :speed_dial_timeout
2244
+ | :speed_dial_hangup
2245
+
2246
+ module EndReason
2247
+ extend Revox::Internal::Type::Enum
2248
+
2249
+ CLIENT_INITIATED: :client_initiated
2250
+ CONNECTION_TIMEOUT: :connection_timeout
2251
+ HUMAN_TAKEOVER: :human_takeover
2252
+ IVR_NO_NAVIGATE: :ivr_no_navigate
2253
+ MAX_DURATION: :max_duration
2254
+ PARTICIPANT_REMOVED: :participant_removed
2255
+ TOOL_END_CALL: :tool_end_call
2256
+ TRANSFER: :transfer
2257
+ USER_INACTIVE: :user_inactive
2258
+ USER_REJECTED: :user_rejected
2259
+ USER_UNAVAILABLE: :user_unavailable
2260
+ VOICEMAIL: :voicemail
2261
+ SPEED_DIAL_ABANDONED: :speed_dial_abandoned
2262
+ SPEED_DIAL_OPERATOR_MISSED: :speed_dial_operator_missed
2263
+ SPEED_DIAL_TIMEOUT: :speed_dial_timeout
2264
+ SPEED_DIAL_HANGUP: :speed_dial_hangup
2265
+
2266
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason]
2267
+ end
2268
+
1044
2269
  type ended_by = :agent | :user | :system
1045
2270
 
1046
2271
  module EndedBy
@@ -1053,13 +2278,143 @@ module Revox
1053
2278
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by]
1054
2279
  end
1055
2280
 
2281
+ type post_call_transcript =
2282
+ {
2283
+ content: String,
2284
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::role,
2285
+ tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments,
2286
+ tool_is_error: bool,
2287
+ tool_name: String,
2288
+ tool_output: String
2289
+ }
2290
+
2291
+ class PostCallTranscript < Revox::Internal::Type::BaseModel
2292
+ attr_accessor content: String
2293
+
2294
+ attr_accessor role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::role
2295
+
2296
+ attr_reader tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments?
2297
+
2298
+ def tool_arguments=: (
2299
+ Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments
2300
+ ) -> Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments
2301
+
2302
+ attr_reader tool_is_error: bool?
2303
+
2304
+ def tool_is_error=: (bool) -> bool
2305
+
2306
+ attr_reader tool_name: String?
2307
+
2308
+ def tool_name=: (String) -> String
2309
+
2310
+ attr_reader tool_output: String?
2311
+
2312
+ def tool_output=: (String) -> String
2313
+
2314
+ def initialize: (
2315
+ content: String,
2316
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::role,
2317
+ ?tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments,
2318
+ ?tool_is_error: bool,
2319
+ ?tool_name: String,
2320
+ ?tool_output: String
2321
+ ) -> void
2322
+
2323
+ def to_hash: -> {
2324
+ content: String,
2325
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::role,
2326
+ tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments,
2327
+ tool_is_error: bool,
2328
+ tool_name: String,
2329
+ tool_output: String
2330
+ }
2331
+
2332
+ type role = :user | :assistant | :human_agent | :tool
2333
+
2334
+ module Role
2335
+ extend Revox::Internal::Type::Enum
2336
+
2337
+ USER: :user
2338
+ ASSISTANT: :assistant
2339
+ HUMAN_AGENT: :human_agent
2340
+ TOOL: :tool
2341
+
2342
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::role]
2343
+ end
2344
+
2345
+ type tool_arguments = ::Hash[Symbol, top] | String
2346
+
2347
+ module ToolArguments
2348
+ extend Revox::Internal::Type::Union
2349
+
2350
+ def self?.variants: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments]
2351
+
2352
+ UnionMember0Map: Revox::Internal::Type::Converter
2353
+ end
2354
+ end
2355
+
2356
+ type sms_log =
2357
+ {
2358
+ id: String,
2359
+ created_at: top,
2360
+ message_body: String,
2361
+ to_phone_number: String,
2362
+ twilio_message_sid: String?,
2363
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2364
+ }
2365
+
2366
+ class SMSLog < Revox::Internal::Type::BaseModel
2367
+ attr_accessor id: String
2368
+
2369
+ attr_accessor created_at: top
2370
+
2371
+ attr_accessor message_body: String
2372
+
2373
+ attr_accessor to_phone_number: String
2374
+
2375
+ attr_accessor twilio_message_sid: String?
2376
+
2377
+ attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2378
+
2379
+ def initialize: (
2380
+ id: String,
2381
+ created_at: top,
2382
+ message_body: String,
2383
+ to_phone_number: String,
2384
+ twilio_message_sid: String?,
2385
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2386
+ ) -> void
2387
+
2388
+ def to_hash: -> {
2389
+ id: String,
2390
+ created_at: top,
2391
+ message_body: String,
2392
+ to_phone_number: String,
2393
+ twilio_message_sid: String?,
2394
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2395
+ }
2396
+
2397
+ type type_ = :in_call | :voicemail | :after_call
2398
+
2399
+ module Type
2400
+ extend Revox::Internal::Type::Enum
2401
+
2402
+ IN_CALL: :in_call
2403
+ VOICEMAIL: :voicemail
2404
+ AFTER_CALL: :after_call
2405
+
2406
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_]
2407
+ end
2408
+ end
2409
+
1056
2410
  type transcript =
1057
2411
  {
1058
2412
  content: String,
1059
2413
  role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::role,
1060
2414
  tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::tool_arguments,
1061
2415
  tool_is_error: bool,
1062
- tool_name: String
2416
+ tool_name: String,
2417
+ tool_output: String
1063
2418
  }
1064
2419
 
1065
2420
  class Transcript < Revox::Internal::Type::BaseModel
@@ -1081,12 +2436,17 @@ module Revox
1081
2436
 
1082
2437
  def tool_name=: (String) -> String
1083
2438
 
2439
+ attr_reader tool_output: String?
2440
+
2441
+ def tool_output=: (String) -> String
2442
+
1084
2443
  def initialize: (
1085
2444
  content: String,
1086
2445
  role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::role,
1087
2446
  ?tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::tool_arguments,
1088
2447
  ?tool_is_error: bool,
1089
- ?tool_name: String
2448
+ ?tool_name: String,
2449
+ ?tool_output: String
1090
2450
  ) -> void
1091
2451
 
1092
2452
  def to_hash: -> {
@@ -1094,16 +2454,18 @@ module Revox
1094
2454
  role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::role,
1095
2455
  tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::tool_arguments,
1096
2456
  tool_is_error: bool,
1097
- tool_name: String
2457
+ tool_name: String,
2458
+ tool_output: String
1098
2459
  }
1099
2460
 
1100
- type role = :user | :assistant | :tool
2461
+ type role = :user | :assistant | :human_agent | :tool
1101
2462
 
1102
2463
  module Role
1103
2464
  extend Revox::Internal::Type::Enum
1104
2465
 
1105
2466
  USER: :user
1106
2467
  ASSISTANT: :assistant
2468
+ HUMAN_AGENT: :human_agent
1107
2469
  TOOL: :tool
1108
2470
 
1109
2471
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::role]
@@ -1124,6 +2486,8 @@ module Revox
1124
2486
  type llm_model =
1125
2487
  Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember0
1126
2488
  | Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember1
2489
+ | Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember2
2490
+ | Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3
1127
2491
 
1128
2492
  module LlmModel
1129
2493
  extend Revox::Internal::Type::Union
@@ -1188,6 +2552,83 @@ module Revox
1188
2552
  }
1189
2553
  end
1190
2554
 
2555
+ type union_member2 =
2556
+ {
2557
+ api_key: String,
2558
+ api_url: String,
2559
+ model_name: String,
2560
+ type: :custom
2561
+ }
2562
+
2563
+ class UnionMember2 < Revox::Internal::Type::BaseModel
2564
+ attr_accessor api_key: String
2565
+
2566
+ attr_accessor api_url: String
2567
+
2568
+ attr_accessor model_name: String
2569
+
2570
+ attr_accessor type: :custom
2571
+
2572
+ def initialize: (
2573
+ api_key: String,
2574
+ api_url: String,
2575
+ model_name: String,
2576
+ ?type: :custom
2577
+ ) -> void
2578
+
2579
+ def to_hash: -> {
2580
+ api_key: String,
2581
+ api_url: String,
2582
+ model_name: String,
2583
+ type: :custom
2584
+ }
2585
+ end
2586
+
2587
+ type union_member3 =
2588
+ {
2589
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3::provider,
2590
+ realtime_model_id: String,
2591
+ type: :realtime,
2592
+ realtime_voice_id: String
2593
+ }
2594
+
2595
+ class UnionMember3 < Revox::Internal::Type::BaseModel
2596
+ attr_accessor provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3::provider
2597
+
2598
+ attr_accessor realtime_model_id: String
2599
+
2600
+ attr_accessor type: :realtime
2601
+
2602
+ attr_reader realtime_voice_id: String?
2603
+
2604
+ def realtime_voice_id=: (String) -> String
2605
+
2606
+ def initialize: (
2607
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3::provider,
2608
+ realtime_model_id: String,
2609
+ ?realtime_voice_id: String,
2610
+ ?type: :realtime
2611
+ ) -> void
2612
+
2613
+ def to_hash: -> {
2614
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3::provider,
2615
+ realtime_model_id: String,
2616
+ type: :realtime,
2617
+ realtime_voice_id: String
2618
+ }
2619
+
2620
+ type provider = :openai | :google
2621
+
2622
+ module Provider
2623
+ extend Revox::Internal::Type::Enum
2624
+
2625
+ OPENAI: :openai
2626
+ GOOGLE: :google
2627
+
2628
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3::provider]
2629
+ end
2630
+ end
2631
+
1191
2632
  def self?.variants: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::llm_model]
1192
2633
  end
1193
2634
 
@@ -1195,7 +2636,9 @@ module Revox
1195
2636
  :initializing
1196
2637
  | :queued_for_calling
1197
2638
  | :calling
2639
+ | :post_processing
1198
2640
  | :scheduled
2641
+ | :paused
1199
2642
  | :completed
1200
2643
  | :cancelled
1201
2644
  | :errored
@@ -1206,13 +2649,38 @@ module Revox
1206
2649
  INITIALIZING: :initializing
1207
2650
  QUEUED_FOR_CALLING: :queued_for_calling
1208
2651
  CALLING: :calling
2652
+ POST_PROCESSING: :post_processing
1209
2653
  SCHEDULED: :scheduled
2654
+ PAUSED: :paused
1210
2655
  COMPLETED: :completed
1211
2656
  CANCELLED: :cancelled
1212
2657
  ERRORED: :errored
1213
2658
 
1214
2659
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::status]
1215
2660
  end
2661
+
2662
+ type outcome =
2663
+ :not_interested
2664
+ | :interested
2665
+ | :completed
2666
+ | :requested_callback_later
2667
+ | :requested_callback_new_number
2668
+ | :do_not_contact
2669
+ | :ai_averse
2670
+
2671
+ module Outcome
2672
+ extend Revox::Internal::Type::Enum
2673
+
2674
+ NOT_INTERESTED: :not_interested
2675
+ INTERESTED: :interested
2676
+ COMPLETED: :completed
2677
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
2678
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
2679
+ DO_NOT_CONTACT: :do_not_contact
2680
+ AI_AVERSE: :ai_averse
2681
+
2682
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::outcome]
2683
+ end
1216
2684
  end
1217
2685
  end
1218
2686
  end