revox 0.0.2 → 0.1.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +25 -0
- data/README.md +63 -22
- data/lib/revox/client.rb +4 -0
- data/lib/revox/internal/type/base_model.rb +3 -3
- data/lib/revox/internal/util.rb +31 -0
- data/lib/revox/models/assistant_create_params.rb +2 -2
- data/lib/revox/models/assistant_delete_params.rb +7 -1
- data/lib/revox/models/assistant_retrieve_params.rb +7 -1
- data/lib/revox/models/assistant_update_params.rb +10 -3
- data/lib/revox/models/call_create_params.rb +2 -2
- data/lib/revox/models/call_create_response.rb +720 -12
- data/lib/revox/models/call_list_params.rb +30 -7
- data/lib/revox/models/call_list_response.rb +63 -1
- data/lib/revox/models/call_retrieve_params.rb +7 -1
- data/lib/revox/models/call_retrieve_response.rb +723 -12
- data/lib/revox/models/campaign_cancel_params.rb +20 -0
- data/lib/revox/models/campaign_cancel_response.rb +16 -0
- data/lib/revox/models/campaign_create_params.rb +174 -0
- data/lib/revox/models/campaign_create_response.rb +775 -0
- data/lib/revox/models/campaign_delete_params.rb +20 -0
- data/lib/revox/models/campaign_delete_response.rb +16 -0
- data/lib/revox/models/campaign_export_rows_params.rb +20 -0
- data/lib/revox/models/campaign_export_rows_response.rb +22 -0
- data/lib/revox/models/campaign_get_rows_params.rb +65 -0
- data/lib/revox/models/campaign_get_rows_response.rb +1468 -0
- data/lib/revox/models/campaign_list_params.rb +14 -0
- data/lib/revox/models/campaign_list_response.rb +771 -0
- data/lib/revox/models/campaign_retrieve_params.rb +20 -0
- data/lib/revox/models/campaign_retrieve_response.rb +776 -0
- data/lib/revox/models/voice_preview_params.rb +1 -9
- data/lib/revox/models/voice_retrieve_params.rb +7 -1
- data/lib/revox/models.rb +14 -0
- data/lib/revox/resources/assistants.rb +26 -2
- data/lib/revox/resources/call.rb +20 -8
- data/lib/revox/resources/campaigns.rb +181 -0
- data/lib/revox/resources/voices.rb +12 -8
- data/lib/revox/version.rb +1 -1
- data/lib/revox.rb +15 -0
- data/rbi/revox/client.rbi +3 -0
- data/rbi/revox/internal/util.rbi +20 -0
- data/rbi/revox/models/assistant_create_params.rbi +3 -5
- data/rbi/revox/models/assistant_delete_params.rbi +11 -5
- data/rbi/revox/models/assistant_retrieve_params.rbi +11 -5
- data/rbi/revox/models/assistant_update_params.rbi +9 -5
- data/rbi/revox/models/call_create_params.rbi +3 -5
- data/rbi/revox/models/call_create_response.rbi +1537 -11
- data/rbi/revox/models/call_list_params.rbi +53 -6
- data/rbi/revox/models/call_list_response.rbi +162 -0
- data/rbi/revox/models/call_retrieve_params.rbi +11 -5
- data/rbi/revox/models/call_retrieve_response.rbi +1543 -11
- data/rbi/revox/models/campaign_cancel_params.rbi +33 -0
- data/rbi/revox/models/campaign_cancel_response.rbi +23 -0
- data/rbi/revox/models/campaign_create_params.rbi +297 -0
- data/rbi/revox/models/campaign_create_response.rbi +1490 -0
- data/rbi/revox/models/campaign_delete_params.rbi +33 -0
- data/rbi/revox/models/campaign_delete_response.rbi +23 -0
- data/rbi/revox/models/campaign_export_rows_params.rbi +33 -0
- data/rbi/revox/models/campaign_export_rows_response.rbi +29 -0
- data/rbi/revox/models/campaign_get_rows_params.rbi +113 -0
- data/rbi/revox/models/campaign_get_rows_response.rbi +2981 -0
- data/rbi/revox/models/campaign_list_params.rbi +27 -0
- data/rbi/revox/models/campaign_list_response.rbi +1482 -0
- data/rbi/revox/models/campaign_retrieve_params.rbi +33 -0
- data/rbi/revox/models/campaign_retrieve_response.rbi +1495 -0
- data/rbi/revox/models/voice_preview_params.rbi +0 -11
- data/rbi/revox/models/voice_retrieve_params.rbi +6 -1
- data/rbi/revox/models.rbi +14 -0
- data/rbi/revox/resources/assistants.rbi +21 -2
- data/rbi/revox/resources/call.rbi +18 -6
- data/rbi/revox/resources/campaigns.rbi +128 -0
- data/rbi/revox/resources/voices.rbi +9 -7
- data/sig/revox/client.rbs +2 -0
- data/sig/revox/internal/util.rbs +10 -0
- data/sig/revox/models/assistant_create_params.rbs +8 -4
- data/sig/revox/models/assistant_delete_params.rbs +8 -3
- data/sig/revox/models/assistant_retrieve_params.rbs +8 -3
- data/sig/revox/models/assistant_update_params.rbs +13 -4
- data/sig/revox/models/call_create_params.rbs +8 -4
- data/sig/revox/models/call_create_response.rbs +615 -8
- data/sig/revox/models/call_list_params.rbs +42 -7
- data/sig/revox/models/call_list_response.rbs +57 -2
- data/sig/revox/models/call_retrieve_params.rbs +9 -3
- data/sig/revox/models/call_retrieve_response.rbs +615 -8
- data/sig/revox/models/campaign_cancel_params.rbs +20 -0
- data/sig/revox/models/campaign_cancel_response.rbs +13 -0
- data/sig/revox/models/campaign_create_params.rbs +149 -0
- data/sig/revox/models/campaign_create_response.rbs +666 -0
- data/sig/revox/models/campaign_delete_params.rbs +20 -0
- data/sig/revox/models/campaign_delete_response.rbs +13 -0
- data/sig/revox/models/campaign_export_rows_params.rbs +20 -0
- data/sig/revox/models/campaign_export_rows_response.rbs +15 -0
- data/sig/revox/models/campaign_get_rows_params.rbs +82 -0
- data/sig/revox/models/campaign_get_rows_response.rbs +1220 -0
- data/sig/revox/models/campaign_list_params.rbs +14 -0
- data/sig/revox/models/campaign_list_response.rbs +666 -0
- data/sig/revox/models/campaign_retrieve_params.rbs +20 -0
- data/sig/revox/models/campaign_retrieve_response.rbs +666 -0
- data/sig/revox/models/voice_preview_params.rbs +1 -8
- data/sig/revox/models/voice_retrieve_params.rbs +5 -1
- data/sig/revox/models.rbs +14 -0
- data/sig/revox/resources/assistants.rbs +2 -2
- data/sig/revox/resources/call.rbs +3 -2
- data/sig/revox/resources/campaigns.rbs +52 -0
- data/sig/revox/resources/voices.rbs +0 -1
- metadata +47 -2
|
@@ -47,6 +47,21 @@ module Revox
|
|
|
47
47
|
sig { returns(String) }
|
|
48
48
|
attr_accessor :id
|
|
49
49
|
|
|
50
|
+
sig do
|
|
51
|
+
returns(T.nilable(Revox::Models::CallCreateResponse::Call::Assistant))
|
|
52
|
+
end
|
|
53
|
+
attr_reader :assistant
|
|
54
|
+
|
|
55
|
+
sig do
|
|
56
|
+
params(
|
|
57
|
+
assistant:
|
|
58
|
+
T.nilable(
|
|
59
|
+
Revox::Models::CallCreateResponse::Call::Assistant::OrHash
|
|
60
|
+
)
|
|
61
|
+
).void
|
|
62
|
+
end
|
|
63
|
+
attr_writer :assistant
|
|
64
|
+
|
|
50
65
|
# All call attempts for this call order, ordered by most recent first.
|
|
51
66
|
sig do
|
|
52
67
|
returns(
|
|
@@ -78,6 +93,21 @@ module Revox
|
|
|
78
93
|
sig { returns(Float) }
|
|
79
94
|
attr_accessor :calls_count
|
|
80
95
|
|
|
96
|
+
sig do
|
|
97
|
+
returns(T.nilable(Revox::Models::CallCreateResponse::Call::Campaign))
|
|
98
|
+
end
|
|
99
|
+
attr_reader :campaign
|
|
100
|
+
|
|
101
|
+
sig do
|
|
102
|
+
params(
|
|
103
|
+
campaign:
|
|
104
|
+
T.nilable(
|
|
105
|
+
Revox::Models::CallCreateResponse::Call::Campaign::OrHash
|
|
106
|
+
)
|
|
107
|
+
).void
|
|
108
|
+
end
|
|
109
|
+
attr_writer :campaign
|
|
110
|
+
|
|
81
111
|
# The time the call order was created.
|
|
82
112
|
sig { returns(T.anything) }
|
|
83
113
|
attr_accessor :created_at
|
|
@@ -99,11 +129,13 @@ module Revox
|
|
|
99
129
|
sig { returns(String) }
|
|
100
130
|
attr_accessor :from_phone_number
|
|
101
131
|
|
|
102
|
-
# Whether the call
|
|
132
|
+
# DEPRECATED: Whether the call has been cancelled. This is derived from `status`.
|
|
133
|
+
# Use `status` instead.
|
|
103
134
|
sig { returns(T::Boolean) }
|
|
104
135
|
attr_accessor :is_cancelled
|
|
105
136
|
|
|
106
|
-
# Whether the call
|
|
137
|
+
# DEPRECATED: Whether the call has completed. This is derived from `status`. Use
|
|
138
|
+
# `status` instead.
|
|
107
139
|
sig { returns(T::Boolean) }
|
|
108
140
|
attr_accessor :is_completed
|
|
109
141
|
|
|
@@ -135,14 +167,20 @@ module Revox
|
|
|
135
167
|
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
136
168
|
attr_accessor :metadata
|
|
137
169
|
|
|
138
|
-
# The
|
|
139
|
-
sig { returns(
|
|
140
|
-
attr_accessor :
|
|
170
|
+
# The ID of the organization that owns the call.
|
|
171
|
+
sig { returns(String) }
|
|
172
|
+
attr_accessor :organization_id
|
|
141
173
|
|
|
142
174
|
# The time the call order is scheduled to start.
|
|
143
175
|
sig { returns(T.anything) }
|
|
144
176
|
attr_accessor :scheduled_at
|
|
145
177
|
|
|
178
|
+
# The status of the call.
|
|
179
|
+
sig do
|
|
180
|
+
returns(Revox::Models::CallCreateResponse::Call::Status::TaggedSymbol)
|
|
181
|
+
end
|
|
182
|
+
attr_accessor :status
|
|
183
|
+
|
|
146
184
|
# The phone number that received the call. Formatted in E.164 format. Example:
|
|
147
185
|
# +1234567890
|
|
148
186
|
sig { returns(String) }
|
|
@@ -153,6 +191,10 @@ module Revox
|
|
|
153
191
|
sig do
|
|
154
192
|
params(
|
|
155
193
|
id: String,
|
|
194
|
+
assistant:
|
|
195
|
+
T.nilable(
|
|
196
|
+
Revox::Models::CallCreateResponse::Call::Assistant::OrHash
|
|
197
|
+
),
|
|
156
198
|
call_attempts:
|
|
157
199
|
T::Array[
|
|
158
200
|
Revox::Models::CallCreateResponse::Call::CallAttempt::OrHash
|
|
@@ -162,6 +204,10 @@ module Revox
|
|
|
162
204
|
Revox::Models::CallCreateResponse::Call::CallRetryConfig::OrHash
|
|
163
205
|
),
|
|
164
206
|
calls_count: Float,
|
|
207
|
+
campaign:
|
|
208
|
+
T.nilable(
|
|
209
|
+
Revox::Models::CallCreateResponse::Call::Campaign::OrHash
|
|
210
|
+
),
|
|
165
211
|
created_at: T.anything,
|
|
166
212
|
direction:
|
|
167
213
|
Revox::Models::CallCreateResponse::Call::Direction::OrSymbol,
|
|
@@ -179,14 +225,16 @@ module Revox
|
|
|
179
225
|
Revox::Models::CallCreateResponse::Call::LlmModel::UnionMember1::OrHash
|
|
180
226
|
),
|
|
181
227
|
metadata: T.nilable(T::Hash[Symbol, String]),
|
|
182
|
-
|
|
228
|
+
organization_id: String,
|
|
183
229
|
scheduled_at: T.anything,
|
|
230
|
+
status: Revox::Models::CallCreateResponse::Call::Status::OrSymbol,
|
|
184
231
|
to_phone_number: String
|
|
185
232
|
).returns(T.attached_class)
|
|
186
233
|
end
|
|
187
234
|
def self.new(
|
|
188
235
|
# The ID of the call.
|
|
189
236
|
id:,
|
|
237
|
+
assistant:,
|
|
190
238
|
# All call attempts for this call order, ordered by most recent first.
|
|
191
239
|
call_attempts:,
|
|
192
240
|
# Configuration for call retry behavior including time windows, delays, and max
|
|
@@ -194,6 +242,7 @@ module Revox
|
|
|
194
242
|
call_retry_config:,
|
|
195
243
|
# The number of call attempts made.
|
|
196
244
|
calls_count:,
|
|
245
|
+
campaign:,
|
|
197
246
|
# The time the call order was created.
|
|
198
247
|
created_at:,
|
|
199
248
|
# Whether the call is inbound or outbound.
|
|
@@ -203,9 +252,11 @@ module Revox
|
|
|
203
252
|
# The phone number that made the call. Formatted in E.164 format. Example:
|
|
204
253
|
# +1234567890
|
|
205
254
|
from_phone_number:,
|
|
206
|
-
# Whether the call
|
|
255
|
+
# DEPRECATED: Whether the call has been cancelled. This is derived from `status`.
|
|
256
|
+
# Use `status` instead.
|
|
207
257
|
is_cancelled:,
|
|
208
|
-
# Whether the call
|
|
258
|
+
# DEPRECATED: Whether the call has completed. This is derived from `status`. Use
|
|
259
|
+
# `status` instead.
|
|
209
260
|
is_completed:,
|
|
210
261
|
# This represent a single call attempt. A call attempt is a single call made to
|
|
211
262
|
# the phone number.
|
|
@@ -213,10 +264,12 @@ module Revox
|
|
|
213
264
|
llm_model:,
|
|
214
265
|
# Metadata stored with the call.
|
|
215
266
|
metadata:,
|
|
216
|
-
# The
|
|
217
|
-
|
|
267
|
+
# The ID of the organization that owns the call.
|
|
268
|
+
organization_id:,
|
|
218
269
|
# The time the call order is scheduled to start.
|
|
219
270
|
scheduled_at:,
|
|
271
|
+
# The status of the call.
|
|
272
|
+
status:,
|
|
220
273
|
# The phone number that received the call. Formatted in E.164 format. Example:
|
|
221
274
|
# +1234567890
|
|
222
275
|
to_phone_number:
|
|
@@ -227,6 +280,8 @@ module Revox
|
|
|
227
280
|
override.returns(
|
|
228
281
|
{
|
|
229
282
|
id: String,
|
|
283
|
+
assistant:
|
|
284
|
+
T.nilable(Revox::Models::CallCreateResponse::Call::Assistant),
|
|
230
285
|
call_attempts:
|
|
231
286
|
T::Array[Revox::Models::CallCreateResponse::Call::CallAttempt],
|
|
232
287
|
call_retry_config:
|
|
@@ -234,6 +289,8 @@ module Revox
|
|
|
234
289
|
Revox::Models::CallCreateResponse::Call::CallRetryConfig
|
|
235
290
|
),
|
|
236
291
|
calls_count: Float,
|
|
292
|
+
campaign:
|
|
293
|
+
T.nilable(Revox::Models::CallCreateResponse::Call::Campaign),
|
|
237
294
|
created_at: T.anything,
|
|
238
295
|
direction:
|
|
239
296
|
Revox::Models::CallCreateResponse::Call::Direction::TaggedSymbol,
|
|
@@ -248,8 +305,10 @@ module Revox
|
|
|
248
305
|
llm_model:
|
|
249
306
|
Revox::Models::CallCreateResponse::Call::LlmModel::Variants,
|
|
250
307
|
metadata: T.nilable(T::Hash[Symbol, String]),
|
|
251
|
-
|
|
308
|
+
organization_id: String,
|
|
252
309
|
scheduled_at: T.anything,
|
|
310
|
+
status:
|
|
311
|
+
Revox::Models::CallCreateResponse::Call::Status::TaggedSymbol,
|
|
253
312
|
to_phone_number: String
|
|
254
313
|
}
|
|
255
314
|
)
|
|
@@ -257,6 +316,1056 @@ module Revox
|
|
|
257
316
|
def to_hash
|
|
258
317
|
end
|
|
259
318
|
|
|
319
|
+
class Assistant < Revox::Internal::Type::BaseModel
|
|
320
|
+
OrHash =
|
|
321
|
+
T.type_alias do
|
|
322
|
+
T.any(
|
|
323
|
+
Revox::Models::CallCreateResponse::Call::Assistant,
|
|
324
|
+
Revox::Internal::AnyHash
|
|
325
|
+
)
|
|
326
|
+
end
|
|
327
|
+
|
|
328
|
+
sig { returns(String) }
|
|
329
|
+
attr_accessor :id
|
|
330
|
+
|
|
331
|
+
# The background sound to play during the call. Useful to give the impression that
|
|
332
|
+
# your AI agent is in an office.
|
|
333
|
+
sig do
|
|
334
|
+
returns(
|
|
335
|
+
T.nilable(
|
|
336
|
+
Revox::Models::CallCreateResponse::Call::Assistant::BackgroundSound::TaggedSymbol
|
|
337
|
+
)
|
|
338
|
+
)
|
|
339
|
+
end
|
|
340
|
+
attr_accessor :background_sound
|
|
341
|
+
|
|
342
|
+
sig do
|
|
343
|
+
returns(
|
|
344
|
+
T.nilable(
|
|
345
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Calendly
|
|
346
|
+
)
|
|
347
|
+
)
|
|
348
|
+
end
|
|
349
|
+
attr_reader :calendly
|
|
350
|
+
|
|
351
|
+
sig do
|
|
352
|
+
params(
|
|
353
|
+
calendly:
|
|
354
|
+
T.nilable(
|
|
355
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Calendly::OrHash
|
|
356
|
+
)
|
|
357
|
+
).void
|
|
358
|
+
end
|
|
359
|
+
attr_writer :calendly
|
|
360
|
+
|
|
361
|
+
# Configuration for call retry behavior including time windows, delays, and max
|
|
362
|
+
# iterations. If not provided, defaults will be used.
|
|
363
|
+
sig do
|
|
364
|
+
returns(
|
|
365
|
+
T.nilable(
|
|
366
|
+
Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig
|
|
367
|
+
)
|
|
368
|
+
)
|
|
369
|
+
end
|
|
370
|
+
attr_reader :call_retry_config
|
|
371
|
+
|
|
372
|
+
sig do
|
|
373
|
+
params(
|
|
374
|
+
call_retry_config:
|
|
375
|
+
T.nilable(
|
|
376
|
+
Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig::OrHash
|
|
377
|
+
)
|
|
378
|
+
).void
|
|
379
|
+
end
|
|
380
|
+
attr_writer :call_retry_config
|
|
381
|
+
|
|
382
|
+
sig { returns(T.anything) }
|
|
383
|
+
attr_accessor :created_at
|
|
384
|
+
|
|
385
|
+
sig { returns(T.nilable(String)) }
|
|
386
|
+
attr_accessor :end_of_call_sentence
|
|
387
|
+
|
|
388
|
+
sig { returns(T.nilable(String)) }
|
|
389
|
+
attr_accessor :first_sentence
|
|
390
|
+
|
|
391
|
+
# Delay in milliseconds before speaking the first sentence. Default: 400.
|
|
392
|
+
sig { returns(Integer) }
|
|
393
|
+
attr_accessor :first_sentence_delay_ms
|
|
394
|
+
|
|
395
|
+
sig do
|
|
396
|
+
returns(
|
|
397
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FirstSentenceMode::TaggedSymbol
|
|
398
|
+
)
|
|
399
|
+
end
|
|
400
|
+
attr_accessor :first_sentence_mode
|
|
401
|
+
|
|
402
|
+
# Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
403
|
+
# skip turns to navigate phone menus.
|
|
404
|
+
sig { returns(T::Boolean) }
|
|
405
|
+
attr_accessor :ivr_navigation_enabled
|
|
406
|
+
|
|
407
|
+
sig do
|
|
408
|
+
returns(
|
|
409
|
+
Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::Variants
|
|
410
|
+
)
|
|
411
|
+
end
|
|
412
|
+
attr_accessor :llm_model
|
|
413
|
+
|
|
414
|
+
# The maximum duration of the call in seconds. This is the maximum time the call
|
|
415
|
+
# will be allowed to run.
|
|
416
|
+
sig { returns(Float) }
|
|
417
|
+
attr_accessor :max_call_duration_secs
|
|
418
|
+
|
|
419
|
+
sig { returns(String) }
|
|
420
|
+
attr_accessor :name
|
|
421
|
+
|
|
422
|
+
sig { returns(String) }
|
|
423
|
+
attr_accessor :organization_id
|
|
424
|
+
|
|
425
|
+
sig { returns(String) }
|
|
426
|
+
attr_accessor :prompt
|
|
427
|
+
|
|
428
|
+
# The structured output config to use for the call. This is used to extract the
|
|
429
|
+
# data from the call (like email, name, company name, etc.).
|
|
430
|
+
sig do
|
|
431
|
+
returns(
|
|
432
|
+
T.nilable(
|
|
433
|
+
T::Array[
|
|
434
|
+
Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig
|
|
435
|
+
]
|
|
436
|
+
)
|
|
437
|
+
)
|
|
438
|
+
end
|
|
439
|
+
attr_accessor :structured_output_config
|
|
440
|
+
|
|
441
|
+
# Phone number to transfer calls to when users request to speak to a human agent.
|
|
442
|
+
sig { returns(T.nilable(String)) }
|
|
443
|
+
attr_accessor :transfer_phone_number
|
|
444
|
+
|
|
445
|
+
sig { returns(T.anything) }
|
|
446
|
+
attr_accessor :updated_at
|
|
447
|
+
|
|
448
|
+
sig do
|
|
449
|
+
returns(
|
|
450
|
+
T.nilable(
|
|
451
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Voice
|
|
452
|
+
)
|
|
453
|
+
)
|
|
454
|
+
end
|
|
455
|
+
attr_reader :voice
|
|
456
|
+
|
|
457
|
+
sig do
|
|
458
|
+
params(
|
|
459
|
+
voice:
|
|
460
|
+
T.nilable(
|
|
461
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Voice::OrHash
|
|
462
|
+
)
|
|
463
|
+
).void
|
|
464
|
+
end
|
|
465
|
+
attr_writer :voice
|
|
466
|
+
|
|
467
|
+
# If set, when voicemail is detected the agent will speak this message then hang
|
|
468
|
+
# up; if null, hang up immediately.
|
|
469
|
+
sig { returns(T.nilable(String)) }
|
|
470
|
+
attr_accessor :voicemail_message
|
|
471
|
+
|
|
472
|
+
# The webhook URL to call when the call is completed.
|
|
473
|
+
sig { returns(T.nilable(String)) }
|
|
474
|
+
attr_accessor :webhook_url
|
|
475
|
+
|
|
476
|
+
sig do
|
|
477
|
+
returns(
|
|
478
|
+
T.nilable(
|
|
479
|
+
T::Array[
|
|
480
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FaqItem
|
|
481
|
+
]
|
|
482
|
+
)
|
|
483
|
+
)
|
|
484
|
+
end
|
|
485
|
+
attr_reader :faq_items
|
|
486
|
+
|
|
487
|
+
sig do
|
|
488
|
+
params(
|
|
489
|
+
faq_items:
|
|
490
|
+
T::Array[
|
|
491
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FaqItem::OrHash
|
|
492
|
+
]
|
|
493
|
+
).void
|
|
494
|
+
end
|
|
495
|
+
attr_writer :faq_items
|
|
496
|
+
|
|
497
|
+
sig { returns(T.nilable(Float)) }
|
|
498
|
+
attr_reader :pending_faq_count
|
|
499
|
+
|
|
500
|
+
sig { params(pending_faq_count: Float).void }
|
|
501
|
+
attr_writer :pending_faq_count
|
|
502
|
+
|
|
503
|
+
sig do
|
|
504
|
+
params(
|
|
505
|
+
id: String,
|
|
506
|
+
background_sound:
|
|
507
|
+
T.nilable(
|
|
508
|
+
Revox::Models::CallCreateResponse::Call::Assistant::BackgroundSound::OrSymbol
|
|
509
|
+
),
|
|
510
|
+
calendly:
|
|
511
|
+
T.nilable(
|
|
512
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Calendly::OrHash
|
|
513
|
+
),
|
|
514
|
+
call_retry_config:
|
|
515
|
+
T.nilable(
|
|
516
|
+
Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig::OrHash
|
|
517
|
+
),
|
|
518
|
+
created_at: T.anything,
|
|
519
|
+
end_of_call_sentence: T.nilable(String),
|
|
520
|
+
first_sentence: T.nilable(String),
|
|
521
|
+
first_sentence_delay_ms: Integer,
|
|
522
|
+
first_sentence_mode:
|
|
523
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FirstSentenceMode::OrSymbol,
|
|
524
|
+
ivr_navigation_enabled: T::Boolean,
|
|
525
|
+
llm_model:
|
|
526
|
+
T.any(
|
|
527
|
+
Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0::OrHash,
|
|
528
|
+
Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember1::OrHash
|
|
529
|
+
),
|
|
530
|
+
max_call_duration_secs: Float,
|
|
531
|
+
name: String,
|
|
532
|
+
organization_id: String,
|
|
533
|
+
prompt: String,
|
|
534
|
+
structured_output_config:
|
|
535
|
+
T.nilable(
|
|
536
|
+
T::Array[
|
|
537
|
+
Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig::OrHash
|
|
538
|
+
]
|
|
539
|
+
),
|
|
540
|
+
transfer_phone_number: T.nilable(String),
|
|
541
|
+
updated_at: T.anything,
|
|
542
|
+
voice:
|
|
543
|
+
T.nilable(
|
|
544
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Voice::OrHash
|
|
545
|
+
),
|
|
546
|
+
voicemail_message: T.nilable(String),
|
|
547
|
+
webhook_url: T.nilable(String),
|
|
548
|
+
faq_items:
|
|
549
|
+
T::Array[
|
|
550
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FaqItem::OrHash
|
|
551
|
+
],
|
|
552
|
+
pending_faq_count: Float
|
|
553
|
+
).returns(T.attached_class)
|
|
554
|
+
end
|
|
555
|
+
def self.new(
|
|
556
|
+
id:,
|
|
557
|
+
# The background sound to play during the call. Useful to give the impression that
|
|
558
|
+
# your AI agent is in an office.
|
|
559
|
+
background_sound:,
|
|
560
|
+
calendly:,
|
|
561
|
+
# Configuration for call retry behavior including time windows, delays, and max
|
|
562
|
+
# iterations. If not provided, defaults will be used.
|
|
563
|
+
call_retry_config:,
|
|
564
|
+
created_at:,
|
|
565
|
+
end_of_call_sentence:,
|
|
566
|
+
first_sentence:,
|
|
567
|
+
# Delay in milliseconds before speaking the first sentence. Default: 400.
|
|
568
|
+
first_sentence_delay_ms:,
|
|
569
|
+
first_sentence_mode:,
|
|
570
|
+
# Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
571
|
+
# skip turns to navigate phone menus.
|
|
572
|
+
ivr_navigation_enabled:,
|
|
573
|
+
llm_model:,
|
|
574
|
+
# The maximum duration of the call in seconds. This is the maximum time the call
|
|
575
|
+
# will be allowed to run.
|
|
576
|
+
max_call_duration_secs:,
|
|
577
|
+
name:,
|
|
578
|
+
organization_id:,
|
|
579
|
+
prompt:,
|
|
580
|
+
# The structured output config to use for the call. This is used to extract the
|
|
581
|
+
# data from the call (like email, name, company name, etc.).
|
|
582
|
+
structured_output_config:,
|
|
583
|
+
# Phone number to transfer calls to when users request to speak to a human agent.
|
|
584
|
+
transfer_phone_number:,
|
|
585
|
+
updated_at:,
|
|
586
|
+
voice:,
|
|
587
|
+
# If set, when voicemail is detected the agent will speak this message then hang
|
|
588
|
+
# up; if null, hang up immediately.
|
|
589
|
+
voicemail_message:,
|
|
590
|
+
# The webhook URL to call when the call is completed.
|
|
591
|
+
webhook_url:,
|
|
592
|
+
faq_items: nil,
|
|
593
|
+
pending_faq_count: nil
|
|
594
|
+
)
|
|
595
|
+
end
|
|
596
|
+
|
|
597
|
+
sig do
|
|
598
|
+
override.returns(
|
|
599
|
+
{
|
|
600
|
+
id: String,
|
|
601
|
+
background_sound:
|
|
602
|
+
T.nilable(
|
|
603
|
+
Revox::Models::CallCreateResponse::Call::Assistant::BackgroundSound::TaggedSymbol
|
|
604
|
+
),
|
|
605
|
+
calendly:
|
|
606
|
+
T.nilable(
|
|
607
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Calendly
|
|
608
|
+
),
|
|
609
|
+
call_retry_config:
|
|
610
|
+
T.nilable(
|
|
611
|
+
Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig
|
|
612
|
+
),
|
|
613
|
+
created_at: T.anything,
|
|
614
|
+
end_of_call_sentence: T.nilable(String),
|
|
615
|
+
first_sentence: T.nilable(String),
|
|
616
|
+
first_sentence_delay_ms: Integer,
|
|
617
|
+
first_sentence_mode:
|
|
618
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FirstSentenceMode::TaggedSymbol,
|
|
619
|
+
ivr_navigation_enabled: T::Boolean,
|
|
620
|
+
llm_model:
|
|
621
|
+
Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::Variants,
|
|
622
|
+
max_call_duration_secs: Float,
|
|
623
|
+
name: String,
|
|
624
|
+
organization_id: String,
|
|
625
|
+
prompt: String,
|
|
626
|
+
structured_output_config:
|
|
627
|
+
T.nilable(
|
|
628
|
+
T::Array[
|
|
629
|
+
Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig
|
|
630
|
+
]
|
|
631
|
+
),
|
|
632
|
+
transfer_phone_number: T.nilable(String),
|
|
633
|
+
updated_at: T.anything,
|
|
634
|
+
voice:
|
|
635
|
+
T.nilable(
|
|
636
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Voice
|
|
637
|
+
),
|
|
638
|
+
voicemail_message: T.nilable(String),
|
|
639
|
+
webhook_url: T.nilable(String),
|
|
640
|
+
faq_items:
|
|
641
|
+
T::Array[
|
|
642
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FaqItem
|
|
643
|
+
],
|
|
644
|
+
pending_faq_count: Float
|
|
645
|
+
}
|
|
646
|
+
)
|
|
647
|
+
end
|
|
648
|
+
def to_hash
|
|
649
|
+
end
|
|
650
|
+
|
|
651
|
+
# The background sound to play during the call. Useful to give the impression that
|
|
652
|
+
# your AI agent is in an office.
|
|
653
|
+
module BackgroundSound
|
|
654
|
+
extend Revox::Internal::Type::Enum
|
|
655
|
+
|
|
656
|
+
TaggedSymbol =
|
|
657
|
+
T.type_alias do
|
|
658
|
+
T.all(
|
|
659
|
+
Symbol,
|
|
660
|
+
Revox::Models::CallCreateResponse::Call::Assistant::BackgroundSound
|
|
661
|
+
)
|
|
662
|
+
end
|
|
663
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
664
|
+
|
|
665
|
+
AUDIO_OFFICE_OGG =
|
|
666
|
+
T.let(
|
|
667
|
+
:"audio/office.ogg",
|
|
668
|
+
Revox::Models::CallCreateResponse::Call::Assistant::BackgroundSound::TaggedSymbol
|
|
669
|
+
)
|
|
670
|
+
|
|
671
|
+
sig do
|
|
672
|
+
override.returns(
|
|
673
|
+
T::Array[
|
|
674
|
+
Revox::Models::CallCreateResponse::Call::Assistant::BackgroundSound::TaggedSymbol
|
|
675
|
+
]
|
|
676
|
+
)
|
|
677
|
+
end
|
|
678
|
+
def self.values
|
|
679
|
+
end
|
|
680
|
+
end
|
|
681
|
+
|
|
682
|
+
class Calendly < Revox::Internal::Type::BaseModel
|
|
683
|
+
OrHash =
|
|
684
|
+
T.type_alias do
|
|
685
|
+
T.any(
|
|
686
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Calendly,
|
|
687
|
+
Revox::Internal::AnyHash
|
|
688
|
+
)
|
|
689
|
+
end
|
|
690
|
+
|
|
691
|
+
# The connection ID representing the link between your Calendly account and Revox.
|
|
692
|
+
sig { returns(String) }
|
|
693
|
+
attr_accessor :connection_id
|
|
694
|
+
|
|
695
|
+
# The event type ID representing the event type to schedule. (eg:
|
|
696
|
+
# https://api.calendly.com/event_types/b2330295-2a91-4a1d-bb73-99e7707663d5)
|
|
697
|
+
sig { returns(String) }
|
|
698
|
+
attr_accessor :event_type_id
|
|
699
|
+
|
|
700
|
+
sig do
|
|
701
|
+
params(connection_id: String, event_type_id: String).returns(
|
|
702
|
+
T.attached_class
|
|
703
|
+
)
|
|
704
|
+
end
|
|
705
|
+
def self.new(
|
|
706
|
+
# The connection ID representing the link between your Calendly account and Revox.
|
|
707
|
+
connection_id:,
|
|
708
|
+
# The event type ID representing the event type to schedule. (eg:
|
|
709
|
+
# https://api.calendly.com/event_types/b2330295-2a91-4a1d-bb73-99e7707663d5)
|
|
710
|
+
event_type_id:
|
|
711
|
+
)
|
|
712
|
+
end
|
|
713
|
+
|
|
714
|
+
sig do
|
|
715
|
+
override.returns({ connection_id: String, event_type_id: String })
|
|
716
|
+
end
|
|
717
|
+
def to_hash
|
|
718
|
+
end
|
|
719
|
+
end
|
|
720
|
+
|
|
721
|
+
class CallRetryConfig < Revox::Internal::Type::BaseModel
|
|
722
|
+
OrHash =
|
|
723
|
+
T.type_alias do
|
|
724
|
+
T.any(
|
|
725
|
+
Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig,
|
|
726
|
+
Revox::Internal::AnyHash
|
|
727
|
+
)
|
|
728
|
+
end
|
|
729
|
+
|
|
730
|
+
sig do
|
|
731
|
+
returns(
|
|
732
|
+
T::Array[
|
|
733
|
+
Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig::CallingWindow
|
|
734
|
+
]
|
|
735
|
+
)
|
|
736
|
+
end
|
|
737
|
+
attr_accessor :calling_windows
|
|
738
|
+
|
|
739
|
+
# Maximum number of call retry attempts. Default: 3.
|
|
740
|
+
sig { returns(Integer) }
|
|
741
|
+
attr_accessor :max_retry_attempts
|
|
742
|
+
|
|
743
|
+
# Optional IANA timezone identifier to override the automatic timezone detection
|
|
744
|
+
# from phone number. If not provided, timezone is determined from the recipient's
|
|
745
|
+
# phone number country code. Examples: 'America/New_York', 'Europe/Paris'.
|
|
746
|
+
sig { returns(T.nilable(String)) }
|
|
747
|
+
attr_accessor :timezone
|
|
748
|
+
|
|
749
|
+
# Configuration for call retry behavior including time windows, delays, and max
|
|
750
|
+
# iterations. If not provided, defaults will be used.
|
|
751
|
+
sig do
|
|
752
|
+
params(
|
|
753
|
+
calling_windows:
|
|
754
|
+
T::Array[
|
|
755
|
+
Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig::CallingWindow::OrHash
|
|
756
|
+
],
|
|
757
|
+
max_retry_attempts: Integer,
|
|
758
|
+
timezone: T.nilable(String)
|
|
759
|
+
).returns(T.attached_class)
|
|
760
|
+
end
|
|
761
|
+
def self.new(
|
|
762
|
+
calling_windows:,
|
|
763
|
+
# Maximum number of call retry attempts. Default: 3.
|
|
764
|
+
max_retry_attempts:,
|
|
765
|
+
# Optional IANA timezone identifier to override the automatic timezone detection
|
|
766
|
+
# from phone number. If not provided, timezone is determined from the recipient's
|
|
767
|
+
# phone number country code. Examples: 'America/New_York', 'Europe/Paris'.
|
|
768
|
+
timezone: nil
|
|
769
|
+
)
|
|
770
|
+
end
|
|
771
|
+
|
|
772
|
+
sig do
|
|
773
|
+
override.returns(
|
|
774
|
+
{
|
|
775
|
+
calling_windows:
|
|
776
|
+
T::Array[
|
|
777
|
+
Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig::CallingWindow
|
|
778
|
+
],
|
|
779
|
+
max_retry_attempts: Integer,
|
|
780
|
+
timezone: T.nilable(String)
|
|
781
|
+
}
|
|
782
|
+
)
|
|
783
|
+
end
|
|
784
|
+
def to_hash
|
|
785
|
+
end
|
|
786
|
+
|
|
787
|
+
class CallingWindow < Revox::Internal::Type::BaseModel
|
|
788
|
+
OrHash =
|
|
789
|
+
T.type_alias do
|
|
790
|
+
T.any(
|
|
791
|
+
Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig::CallingWindow,
|
|
792
|
+
Revox::Internal::AnyHash
|
|
793
|
+
)
|
|
794
|
+
end
|
|
795
|
+
|
|
796
|
+
# End time for the calling window in the recipient's timezone (or
|
|
797
|
+
# timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
|
|
798
|
+
# Examples: '17:00', '6pm'. Default: '18:00'.
|
|
799
|
+
sig { returns(String) }
|
|
800
|
+
attr_accessor :calling_window_end_time
|
|
801
|
+
|
|
802
|
+
# Start time for the calling window in the recipient's timezone (or
|
|
803
|
+
# timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
|
|
804
|
+
# Examples: '09:00', '10am'. Default: '10:00'.
|
|
805
|
+
sig { returns(String) }
|
|
806
|
+
attr_accessor :calling_window_start_time
|
|
807
|
+
|
|
808
|
+
# Delay between retry attempts in seconds. Default: 7200 (2 hours).
|
|
809
|
+
sig { returns(Integer) }
|
|
810
|
+
attr_accessor :retry_delay_seconds
|
|
811
|
+
|
|
812
|
+
sig do
|
|
813
|
+
params(
|
|
814
|
+
calling_window_end_time: String,
|
|
815
|
+
calling_window_start_time: String,
|
|
816
|
+
retry_delay_seconds: Integer
|
|
817
|
+
).returns(T.attached_class)
|
|
818
|
+
end
|
|
819
|
+
def self.new(
|
|
820
|
+
# End time for the calling window in the recipient's timezone (or
|
|
821
|
+
# timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
|
|
822
|
+
# Examples: '17:00', '6pm'. Default: '18:00'.
|
|
823
|
+
calling_window_end_time:,
|
|
824
|
+
# Start time for the calling window in the recipient's timezone (or
|
|
825
|
+
# timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
|
|
826
|
+
# Examples: '09:00', '10am'. Default: '10:00'.
|
|
827
|
+
calling_window_start_time:,
|
|
828
|
+
# Delay between retry attempts in seconds. Default: 7200 (2 hours).
|
|
829
|
+
retry_delay_seconds:
|
|
830
|
+
)
|
|
831
|
+
end
|
|
832
|
+
|
|
833
|
+
sig do
|
|
834
|
+
override.returns(
|
|
835
|
+
{
|
|
836
|
+
calling_window_end_time: String,
|
|
837
|
+
calling_window_start_time: String,
|
|
838
|
+
retry_delay_seconds: Integer
|
|
839
|
+
}
|
|
840
|
+
)
|
|
841
|
+
end
|
|
842
|
+
def to_hash
|
|
843
|
+
end
|
|
844
|
+
end
|
|
845
|
+
end
|
|
846
|
+
|
|
847
|
+
module FirstSentenceMode
|
|
848
|
+
extend Revox::Internal::Type::Enum
|
|
849
|
+
|
|
850
|
+
TaggedSymbol =
|
|
851
|
+
T.type_alias do
|
|
852
|
+
T.all(
|
|
853
|
+
Symbol,
|
|
854
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FirstSentenceMode
|
|
855
|
+
)
|
|
856
|
+
end
|
|
857
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
858
|
+
|
|
859
|
+
GENERATED =
|
|
860
|
+
T.let(
|
|
861
|
+
:generated,
|
|
862
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FirstSentenceMode::TaggedSymbol
|
|
863
|
+
)
|
|
864
|
+
STATIC =
|
|
865
|
+
T.let(
|
|
866
|
+
:static,
|
|
867
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FirstSentenceMode::TaggedSymbol
|
|
868
|
+
)
|
|
869
|
+
NONE =
|
|
870
|
+
T.let(
|
|
871
|
+
:none,
|
|
872
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FirstSentenceMode::TaggedSymbol
|
|
873
|
+
)
|
|
874
|
+
|
|
875
|
+
sig do
|
|
876
|
+
override.returns(
|
|
877
|
+
T::Array[
|
|
878
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FirstSentenceMode::TaggedSymbol
|
|
879
|
+
]
|
|
880
|
+
)
|
|
881
|
+
end
|
|
882
|
+
def self.values
|
|
883
|
+
end
|
|
884
|
+
end
|
|
885
|
+
|
|
886
|
+
module LlmModel
|
|
887
|
+
extend Revox::Internal::Type::Union
|
|
888
|
+
|
|
889
|
+
Variants =
|
|
890
|
+
T.type_alias do
|
|
891
|
+
T.any(
|
|
892
|
+
Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0,
|
|
893
|
+
Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember1
|
|
894
|
+
)
|
|
895
|
+
end
|
|
896
|
+
|
|
897
|
+
class UnionMember0 < Revox::Internal::Type::BaseModel
|
|
898
|
+
OrHash =
|
|
899
|
+
T.type_alias do
|
|
900
|
+
T.any(
|
|
901
|
+
Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0,
|
|
902
|
+
Revox::Internal::AnyHash
|
|
903
|
+
)
|
|
904
|
+
end
|
|
905
|
+
|
|
906
|
+
sig do
|
|
907
|
+
returns(
|
|
908
|
+
Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol
|
|
909
|
+
)
|
|
910
|
+
end
|
|
911
|
+
attr_accessor :name
|
|
912
|
+
|
|
913
|
+
sig { returns(Symbol) }
|
|
914
|
+
attr_accessor :type
|
|
915
|
+
|
|
916
|
+
sig do
|
|
917
|
+
params(
|
|
918
|
+
name:
|
|
919
|
+
Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0::Name::OrSymbol,
|
|
920
|
+
type: Symbol
|
|
921
|
+
).returns(T.attached_class)
|
|
922
|
+
end
|
|
923
|
+
def self.new(name:, type: :"dedicated-instance")
|
|
924
|
+
end
|
|
925
|
+
|
|
926
|
+
sig do
|
|
927
|
+
override.returns(
|
|
928
|
+
{
|
|
929
|
+
name:
|
|
930
|
+
Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol,
|
|
931
|
+
type: Symbol
|
|
932
|
+
}
|
|
933
|
+
)
|
|
934
|
+
end
|
|
935
|
+
def to_hash
|
|
936
|
+
end
|
|
937
|
+
|
|
938
|
+
module Name
|
|
939
|
+
extend Revox::Internal::Type::Enum
|
|
940
|
+
|
|
941
|
+
TaggedSymbol =
|
|
942
|
+
T.type_alias do
|
|
943
|
+
T.all(
|
|
944
|
+
Symbol,
|
|
945
|
+
Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0::Name
|
|
946
|
+
)
|
|
947
|
+
end
|
|
948
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
949
|
+
|
|
950
|
+
GPT_4_1 =
|
|
951
|
+
T.let(
|
|
952
|
+
:"gpt-4.1",
|
|
953
|
+
Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol
|
|
954
|
+
)
|
|
955
|
+
MINISTRAL_3_8B_INSTRUCT =
|
|
956
|
+
T.let(
|
|
957
|
+
:"ministral-3-8b-instruct",
|
|
958
|
+
Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol
|
|
959
|
+
)
|
|
960
|
+
|
|
961
|
+
sig do
|
|
962
|
+
override.returns(
|
|
963
|
+
T::Array[
|
|
964
|
+
Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol
|
|
965
|
+
]
|
|
966
|
+
)
|
|
967
|
+
end
|
|
968
|
+
def self.values
|
|
969
|
+
end
|
|
970
|
+
end
|
|
971
|
+
end
|
|
972
|
+
|
|
973
|
+
class UnionMember1 < Revox::Internal::Type::BaseModel
|
|
974
|
+
OrHash =
|
|
975
|
+
T.type_alias do
|
|
976
|
+
T.any(
|
|
977
|
+
Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember1,
|
|
978
|
+
Revox::Internal::AnyHash
|
|
979
|
+
)
|
|
980
|
+
end
|
|
981
|
+
|
|
982
|
+
# The model ID to use from OpenRouter. eg: openai/gpt-4.1
|
|
983
|
+
sig { returns(String) }
|
|
984
|
+
attr_accessor :openrouter_model_id
|
|
985
|
+
|
|
986
|
+
# The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
|
|
987
|
+
sig { returns(String) }
|
|
988
|
+
attr_accessor :openrouter_provider
|
|
989
|
+
|
|
990
|
+
# Use a model from OpenRouter.
|
|
991
|
+
sig { returns(Symbol) }
|
|
992
|
+
attr_accessor :type
|
|
993
|
+
|
|
994
|
+
sig do
|
|
995
|
+
params(
|
|
996
|
+
openrouter_model_id: String,
|
|
997
|
+
openrouter_provider: String,
|
|
998
|
+
type: Symbol
|
|
999
|
+
).returns(T.attached_class)
|
|
1000
|
+
end
|
|
1001
|
+
def self.new(
|
|
1002
|
+
# The model ID to use from OpenRouter. eg: openai/gpt-4.1
|
|
1003
|
+
openrouter_model_id:,
|
|
1004
|
+
# The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
|
|
1005
|
+
openrouter_provider:,
|
|
1006
|
+
# Use a model from OpenRouter.
|
|
1007
|
+
type: :openrouter
|
|
1008
|
+
)
|
|
1009
|
+
end
|
|
1010
|
+
|
|
1011
|
+
sig do
|
|
1012
|
+
override.returns(
|
|
1013
|
+
{
|
|
1014
|
+
openrouter_model_id: String,
|
|
1015
|
+
openrouter_provider: String,
|
|
1016
|
+
type: Symbol
|
|
1017
|
+
}
|
|
1018
|
+
)
|
|
1019
|
+
end
|
|
1020
|
+
def to_hash
|
|
1021
|
+
end
|
|
1022
|
+
end
|
|
1023
|
+
|
|
1024
|
+
sig do
|
|
1025
|
+
override.returns(
|
|
1026
|
+
T::Array[
|
|
1027
|
+
Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::Variants
|
|
1028
|
+
]
|
|
1029
|
+
)
|
|
1030
|
+
end
|
|
1031
|
+
def self.variants
|
|
1032
|
+
end
|
|
1033
|
+
end
|
|
1034
|
+
|
|
1035
|
+
class StructuredOutputConfig < Revox::Internal::Type::BaseModel
|
|
1036
|
+
OrHash =
|
|
1037
|
+
T.type_alias do
|
|
1038
|
+
T.any(
|
|
1039
|
+
Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig,
|
|
1040
|
+
Revox::Internal::AnyHash
|
|
1041
|
+
)
|
|
1042
|
+
end
|
|
1043
|
+
|
|
1044
|
+
sig { returns(String) }
|
|
1045
|
+
attr_accessor :name
|
|
1046
|
+
|
|
1047
|
+
sig { returns(T::Boolean) }
|
|
1048
|
+
attr_accessor :required
|
|
1049
|
+
|
|
1050
|
+
sig do
|
|
1051
|
+
returns(
|
|
1052
|
+
Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
1053
|
+
)
|
|
1054
|
+
end
|
|
1055
|
+
attr_accessor :type
|
|
1056
|
+
|
|
1057
|
+
sig { returns(T.nilable(String)) }
|
|
1058
|
+
attr_reader :description
|
|
1059
|
+
|
|
1060
|
+
sig { params(description: String).void }
|
|
1061
|
+
attr_writer :description
|
|
1062
|
+
|
|
1063
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
1064
|
+
attr_reader :enum_options
|
|
1065
|
+
|
|
1066
|
+
sig { params(enum_options: T::Array[String]).void }
|
|
1067
|
+
attr_writer :enum_options
|
|
1068
|
+
|
|
1069
|
+
sig do
|
|
1070
|
+
params(
|
|
1071
|
+
name: String,
|
|
1072
|
+
required: T::Boolean,
|
|
1073
|
+
type:
|
|
1074
|
+
Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig::Type::OrSymbol,
|
|
1075
|
+
description: String,
|
|
1076
|
+
enum_options: T::Array[String]
|
|
1077
|
+
).returns(T.attached_class)
|
|
1078
|
+
end
|
|
1079
|
+
def self.new(
|
|
1080
|
+
name:,
|
|
1081
|
+
required:,
|
|
1082
|
+
type:,
|
|
1083
|
+
description: nil,
|
|
1084
|
+
enum_options: nil
|
|
1085
|
+
)
|
|
1086
|
+
end
|
|
1087
|
+
|
|
1088
|
+
sig do
|
|
1089
|
+
override.returns(
|
|
1090
|
+
{
|
|
1091
|
+
name: String,
|
|
1092
|
+
required: T::Boolean,
|
|
1093
|
+
type:
|
|
1094
|
+
Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig::Type::TaggedSymbol,
|
|
1095
|
+
description: String,
|
|
1096
|
+
enum_options: T::Array[String]
|
|
1097
|
+
}
|
|
1098
|
+
)
|
|
1099
|
+
end
|
|
1100
|
+
def to_hash
|
|
1101
|
+
end
|
|
1102
|
+
|
|
1103
|
+
module Type
|
|
1104
|
+
extend Revox::Internal::Type::Enum
|
|
1105
|
+
|
|
1106
|
+
TaggedSymbol =
|
|
1107
|
+
T.type_alias do
|
|
1108
|
+
T.all(
|
|
1109
|
+
Symbol,
|
|
1110
|
+
Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig::Type
|
|
1111
|
+
)
|
|
1112
|
+
end
|
|
1113
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1114
|
+
|
|
1115
|
+
STRING =
|
|
1116
|
+
T.let(
|
|
1117
|
+
:string,
|
|
1118
|
+
Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
1119
|
+
)
|
|
1120
|
+
NUMBER =
|
|
1121
|
+
T.let(
|
|
1122
|
+
:number,
|
|
1123
|
+
Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
1124
|
+
)
|
|
1125
|
+
BOOLEAN =
|
|
1126
|
+
T.let(
|
|
1127
|
+
:boolean,
|
|
1128
|
+
Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
1129
|
+
)
|
|
1130
|
+
ENUM =
|
|
1131
|
+
T.let(
|
|
1132
|
+
:enum,
|
|
1133
|
+
Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
1134
|
+
)
|
|
1135
|
+
DATE =
|
|
1136
|
+
T.let(
|
|
1137
|
+
:date,
|
|
1138
|
+
Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
1139
|
+
)
|
|
1140
|
+
DATETIME =
|
|
1141
|
+
T.let(
|
|
1142
|
+
:datetime,
|
|
1143
|
+
Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
1144
|
+
)
|
|
1145
|
+
|
|
1146
|
+
sig do
|
|
1147
|
+
override.returns(
|
|
1148
|
+
T::Array[
|
|
1149
|
+
Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
1150
|
+
]
|
|
1151
|
+
)
|
|
1152
|
+
end
|
|
1153
|
+
def self.values
|
|
1154
|
+
end
|
|
1155
|
+
end
|
|
1156
|
+
end
|
|
1157
|
+
|
|
1158
|
+
class Voice < Revox::Internal::Type::BaseModel
|
|
1159
|
+
OrHash =
|
|
1160
|
+
T.type_alias do
|
|
1161
|
+
T.any(
|
|
1162
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Voice,
|
|
1163
|
+
Revox::Internal::AnyHash
|
|
1164
|
+
)
|
|
1165
|
+
end
|
|
1166
|
+
|
|
1167
|
+
# The ID of the voice.
|
|
1168
|
+
sig { returns(String) }
|
|
1169
|
+
attr_accessor :id
|
|
1170
|
+
|
|
1171
|
+
# The provider of the voice.
|
|
1172
|
+
sig do
|
|
1173
|
+
returns(
|
|
1174
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Voice::Provider::TaggedSymbol
|
|
1175
|
+
)
|
|
1176
|
+
end
|
|
1177
|
+
attr_accessor :provider
|
|
1178
|
+
|
|
1179
|
+
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
1180
|
+
# 0.7–1.2. Default is 1.0.
|
|
1181
|
+
sig { returns(T.nilable(Float)) }
|
|
1182
|
+
attr_reader :speed
|
|
1183
|
+
|
|
1184
|
+
sig { params(speed: Float).void }
|
|
1185
|
+
attr_writer :speed
|
|
1186
|
+
|
|
1187
|
+
sig do
|
|
1188
|
+
params(
|
|
1189
|
+
id: String,
|
|
1190
|
+
provider:
|
|
1191
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Voice::Provider::OrSymbol,
|
|
1192
|
+
speed: Float
|
|
1193
|
+
).returns(T.attached_class)
|
|
1194
|
+
end
|
|
1195
|
+
def self.new(
|
|
1196
|
+
# The ID of the voice.
|
|
1197
|
+
id:,
|
|
1198
|
+
# The provider of the voice.
|
|
1199
|
+
provider:,
|
|
1200
|
+
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
1201
|
+
# 0.7–1.2. Default is 1.0.
|
|
1202
|
+
speed: nil
|
|
1203
|
+
)
|
|
1204
|
+
end
|
|
1205
|
+
|
|
1206
|
+
sig do
|
|
1207
|
+
override.returns(
|
|
1208
|
+
{
|
|
1209
|
+
id: String,
|
|
1210
|
+
provider:
|
|
1211
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Voice::Provider::TaggedSymbol,
|
|
1212
|
+
speed: Float
|
|
1213
|
+
}
|
|
1214
|
+
)
|
|
1215
|
+
end
|
|
1216
|
+
def to_hash
|
|
1217
|
+
end
|
|
1218
|
+
|
|
1219
|
+
# The provider of the voice.
|
|
1220
|
+
module Provider
|
|
1221
|
+
extend Revox::Internal::Type::Enum
|
|
1222
|
+
|
|
1223
|
+
TaggedSymbol =
|
|
1224
|
+
T.type_alias do
|
|
1225
|
+
T.all(
|
|
1226
|
+
Symbol,
|
|
1227
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Voice::Provider
|
|
1228
|
+
)
|
|
1229
|
+
end
|
|
1230
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1231
|
+
|
|
1232
|
+
CARTESIA =
|
|
1233
|
+
T.let(
|
|
1234
|
+
:cartesia,
|
|
1235
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Voice::Provider::TaggedSymbol
|
|
1236
|
+
)
|
|
1237
|
+
ELEVENLABS =
|
|
1238
|
+
T.let(
|
|
1239
|
+
:elevenlabs,
|
|
1240
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Voice::Provider::TaggedSymbol
|
|
1241
|
+
)
|
|
1242
|
+
|
|
1243
|
+
sig do
|
|
1244
|
+
override.returns(
|
|
1245
|
+
T::Array[
|
|
1246
|
+
Revox::Models::CallCreateResponse::Call::Assistant::Voice::Provider::TaggedSymbol
|
|
1247
|
+
]
|
|
1248
|
+
)
|
|
1249
|
+
end
|
|
1250
|
+
def self.values
|
|
1251
|
+
end
|
|
1252
|
+
end
|
|
1253
|
+
end
|
|
1254
|
+
|
|
1255
|
+
class FaqItem < Revox::Internal::Type::BaseModel
|
|
1256
|
+
OrHash =
|
|
1257
|
+
T.type_alias do
|
|
1258
|
+
T.any(
|
|
1259
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FaqItem,
|
|
1260
|
+
Revox::Internal::AnyHash
|
|
1261
|
+
)
|
|
1262
|
+
end
|
|
1263
|
+
|
|
1264
|
+
sig { returns(String) }
|
|
1265
|
+
attr_accessor :answer
|
|
1266
|
+
|
|
1267
|
+
sig { returns(String) }
|
|
1268
|
+
attr_accessor :question
|
|
1269
|
+
|
|
1270
|
+
sig { returns(T.nilable(String)) }
|
|
1271
|
+
attr_reader :id
|
|
1272
|
+
|
|
1273
|
+
sig { params(id: String).void }
|
|
1274
|
+
attr_writer :id
|
|
1275
|
+
|
|
1276
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
1277
|
+
attr_reader :needs_human_answer
|
|
1278
|
+
|
|
1279
|
+
sig { params(needs_human_answer: T::Boolean).void }
|
|
1280
|
+
attr_writer :needs_human_answer
|
|
1281
|
+
|
|
1282
|
+
sig do
|
|
1283
|
+
returns(
|
|
1284
|
+
T.nilable(
|
|
1285
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FaqItem::Source::TaggedSymbol
|
|
1286
|
+
)
|
|
1287
|
+
)
|
|
1288
|
+
end
|
|
1289
|
+
attr_reader :source
|
|
1290
|
+
|
|
1291
|
+
sig do
|
|
1292
|
+
params(
|
|
1293
|
+
source:
|
|
1294
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FaqItem::Source::OrSymbol
|
|
1295
|
+
).void
|
|
1296
|
+
end
|
|
1297
|
+
attr_writer :source
|
|
1298
|
+
|
|
1299
|
+
sig do
|
|
1300
|
+
params(
|
|
1301
|
+
answer: String,
|
|
1302
|
+
question: String,
|
|
1303
|
+
id: String,
|
|
1304
|
+
needs_human_answer: T::Boolean,
|
|
1305
|
+
source:
|
|
1306
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FaqItem::Source::OrSymbol
|
|
1307
|
+
).returns(T.attached_class)
|
|
1308
|
+
end
|
|
1309
|
+
def self.new(
|
|
1310
|
+
answer:,
|
|
1311
|
+
question:,
|
|
1312
|
+
id: nil,
|
|
1313
|
+
needs_human_answer: nil,
|
|
1314
|
+
source: nil
|
|
1315
|
+
)
|
|
1316
|
+
end
|
|
1317
|
+
|
|
1318
|
+
sig do
|
|
1319
|
+
override.returns(
|
|
1320
|
+
{
|
|
1321
|
+
answer: String,
|
|
1322
|
+
question: String,
|
|
1323
|
+
id: String,
|
|
1324
|
+
needs_human_answer: T::Boolean,
|
|
1325
|
+
source:
|
|
1326
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FaqItem::Source::TaggedSymbol
|
|
1327
|
+
}
|
|
1328
|
+
)
|
|
1329
|
+
end
|
|
1330
|
+
def to_hash
|
|
1331
|
+
end
|
|
1332
|
+
|
|
1333
|
+
module Source
|
|
1334
|
+
extend Revox::Internal::Type::Enum
|
|
1335
|
+
|
|
1336
|
+
TaggedSymbol =
|
|
1337
|
+
T.type_alias do
|
|
1338
|
+
T.all(
|
|
1339
|
+
Symbol,
|
|
1340
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FaqItem::Source
|
|
1341
|
+
)
|
|
1342
|
+
end
|
|
1343
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1344
|
+
|
|
1345
|
+
HUMAN =
|
|
1346
|
+
T.let(
|
|
1347
|
+
:human,
|
|
1348
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FaqItem::Source::TaggedSymbol
|
|
1349
|
+
)
|
|
1350
|
+
AI =
|
|
1351
|
+
T.let(
|
|
1352
|
+
:ai,
|
|
1353
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FaqItem::Source::TaggedSymbol
|
|
1354
|
+
)
|
|
1355
|
+
|
|
1356
|
+
sig do
|
|
1357
|
+
override.returns(
|
|
1358
|
+
T::Array[
|
|
1359
|
+
Revox::Models::CallCreateResponse::Call::Assistant::FaqItem::Source::TaggedSymbol
|
|
1360
|
+
]
|
|
1361
|
+
)
|
|
1362
|
+
end
|
|
1363
|
+
def self.values
|
|
1364
|
+
end
|
|
1365
|
+
end
|
|
1366
|
+
end
|
|
1367
|
+
end
|
|
1368
|
+
|
|
260
1369
|
class CallAttempt < Revox::Internal::Type::BaseModel
|
|
261
1370
|
OrHash =
|
|
262
1371
|
T.type_alias do
|
|
@@ -274,6 +1383,16 @@ module Revox
|
|
|
274
1383
|
sig { returns(T.anything) }
|
|
275
1384
|
attr_accessor :answered_at
|
|
276
1385
|
|
|
1386
|
+
# The SIP error that occurred.
|
|
1387
|
+
sig do
|
|
1388
|
+
returns(
|
|
1389
|
+
T.nilable(
|
|
1390
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::DialError::TaggedSymbol
|
|
1391
|
+
)
|
|
1392
|
+
)
|
|
1393
|
+
end
|
|
1394
|
+
attr_accessor :dial_error
|
|
1395
|
+
|
|
277
1396
|
# The time the call ended.
|
|
278
1397
|
sig { returns(T.anything) }
|
|
279
1398
|
attr_accessor :ended_at
|
|
@@ -308,6 +1427,22 @@ module Revox
|
|
|
308
1427
|
end
|
|
309
1428
|
attr_accessor :status
|
|
310
1429
|
|
|
1430
|
+
# Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
|
|
1431
|
+
# 'voicemail', 'transfer', 'ivr_no_navigate'.
|
|
1432
|
+
sig { returns(T.nilable(String)) }
|
|
1433
|
+
attr_accessor :end_reason
|
|
1434
|
+
|
|
1435
|
+
# Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or
|
|
1436
|
+
# 'system' (e.g. max duration limit).
|
|
1437
|
+
sig do
|
|
1438
|
+
returns(
|
|
1439
|
+
T.nilable(
|
|
1440
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::EndedBy::TaggedSymbol
|
|
1441
|
+
)
|
|
1442
|
+
)
|
|
1443
|
+
end
|
|
1444
|
+
attr_accessor :ended_by
|
|
1445
|
+
|
|
311
1446
|
# The data extracted from the call, using the structured output config from the
|
|
312
1447
|
# parent call object.
|
|
313
1448
|
sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
|
|
@@ -331,6 +1466,10 @@ module Revox
|
|
|
331
1466
|
params(
|
|
332
1467
|
id: String,
|
|
333
1468
|
answered_at: T.anything,
|
|
1469
|
+
dial_error:
|
|
1470
|
+
T.nilable(
|
|
1471
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::DialError::OrSymbol
|
|
1472
|
+
),
|
|
334
1473
|
ended_at: T.anything,
|
|
335
1474
|
phone_number: String,
|
|
336
1475
|
recording_url: T.nilable(String),
|
|
@@ -341,6 +1480,11 @@ module Revox
|
|
|
341
1480
|
started_at: T.anything,
|
|
342
1481
|
status:
|
|
343
1482
|
Revox::Models::CallCreateResponse::Call::CallAttempt::Status::OrSymbol,
|
|
1483
|
+
end_reason: T.nilable(String),
|
|
1484
|
+
ended_by:
|
|
1485
|
+
T.nilable(
|
|
1486
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::EndedBy::OrSymbol
|
|
1487
|
+
),
|
|
344
1488
|
structured_output: T.nilable(T::Hash[Symbol, T.anything]),
|
|
345
1489
|
transcript:
|
|
346
1490
|
T.nilable(
|
|
@@ -355,6 +1499,8 @@ module Revox
|
|
|
355
1499
|
id:,
|
|
356
1500
|
# The time the call was answered.
|
|
357
1501
|
answered_at:,
|
|
1502
|
+
# The SIP error that occurred.
|
|
1503
|
+
dial_error:,
|
|
358
1504
|
# The time the call ended.
|
|
359
1505
|
ended_at:,
|
|
360
1506
|
# The phone number that was called. Formatted in E.164 format. Example:
|
|
@@ -367,6 +1513,12 @@ module Revox
|
|
|
367
1513
|
started_at:,
|
|
368
1514
|
# The status of the call attempt.
|
|
369
1515
|
status:,
|
|
1516
|
+
# Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
|
|
1517
|
+
# 'voicemail', 'transfer', 'ivr_no_navigate'.
|
|
1518
|
+
end_reason: nil,
|
|
1519
|
+
# Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or
|
|
1520
|
+
# 'system' (e.g. max duration limit).
|
|
1521
|
+
ended_by: nil,
|
|
370
1522
|
# The data extracted from the call, using the structured output config from the
|
|
371
1523
|
# parent call object.
|
|
372
1524
|
structured_output: nil,
|
|
@@ -380,6 +1532,10 @@ module Revox
|
|
|
380
1532
|
{
|
|
381
1533
|
id: String,
|
|
382
1534
|
answered_at: T.anything,
|
|
1535
|
+
dial_error:
|
|
1536
|
+
T.nilable(
|
|
1537
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::DialError::TaggedSymbol
|
|
1538
|
+
),
|
|
383
1539
|
ended_at: T.anything,
|
|
384
1540
|
phone_number: String,
|
|
385
1541
|
recording_url: T.nilable(String),
|
|
@@ -390,6 +1546,11 @@ module Revox
|
|
|
390
1546
|
started_at: T.anything,
|
|
391
1547
|
status:
|
|
392
1548
|
Revox::Models::CallCreateResponse::Call::CallAttempt::Status::TaggedSymbol,
|
|
1549
|
+
end_reason: T.nilable(String),
|
|
1550
|
+
ended_by:
|
|
1551
|
+
T.nilable(
|
|
1552
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::EndedBy::TaggedSymbol
|
|
1553
|
+
),
|
|
393
1554
|
structured_output: T.nilable(T::Hash[Symbol, T.anything]),
|
|
394
1555
|
transcript:
|
|
395
1556
|
T.nilable(
|
|
@@ -403,6 +1564,71 @@ module Revox
|
|
|
403
1564
|
def to_hash
|
|
404
1565
|
end
|
|
405
1566
|
|
|
1567
|
+
# The SIP error that occurred.
|
|
1568
|
+
module DialError
|
|
1569
|
+
extend Revox::Internal::Type::Enum
|
|
1570
|
+
|
|
1571
|
+
TaggedSymbol =
|
|
1572
|
+
T.type_alias do
|
|
1573
|
+
T.all(
|
|
1574
|
+
Symbol,
|
|
1575
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::DialError
|
|
1576
|
+
)
|
|
1577
|
+
end
|
|
1578
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1579
|
+
|
|
1580
|
+
NUMBER_NON_ATTRIBUTED =
|
|
1581
|
+
T.let(
|
|
1582
|
+
:number_non_attributed,
|
|
1583
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::DialError::TaggedSymbol
|
|
1584
|
+
)
|
|
1585
|
+
TOO_MANY_CALLS =
|
|
1586
|
+
T.let(
|
|
1587
|
+
:too_many_calls,
|
|
1588
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::DialError::TaggedSymbol
|
|
1589
|
+
)
|
|
1590
|
+
BUSY =
|
|
1591
|
+
T.let(
|
|
1592
|
+
:busy,
|
|
1593
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::DialError::TaggedSymbol
|
|
1594
|
+
)
|
|
1595
|
+
TEMPORARILY_UNAVAILABLE =
|
|
1596
|
+
T.let(
|
|
1597
|
+
:temporarily_unavailable,
|
|
1598
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::DialError::TaggedSymbol
|
|
1599
|
+
)
|
|
1600
|
+
NO_ANSWER =
|
|
1601
|
+
T.let(
|
|
1602
|
+
:no_answer,
|
|
1603
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::DialError::TaggedSymbol
|
|
1604
|
+
)
|
|
1605
|
+
NO_INTERNATIONAL_PERMISSION =
|
|
1606
|
+
T.let(
|
|
1607
|
+
:no_international_permission,
|
|
1608
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::DialError::TaggedSymbol
|
|
1609
|
+
)
|
|
1610
|
+
PRECONDITION_FAILED =
|
|
1611
|
+
T.let(
|
|
1612
|
+
:precondition_failed,
|
|
1613
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::DialError::TaggedSymbol
|
|
1614
|
+
)
|
|
1615
|
+
NON_CLASSIFIED_ERROR =
|
|
1616
|
+
T.let(
|
|
1617
|
+
:non_classified_error,
|
|
1618
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::DialError::TaggedSymbol
|
|
1619
|
+
)
|
|
1620
|
+
|
|
1621
|
+
sig do
|
|
1622
|
+
override.returns(
|
|
1623
|
+
T::Array[
|
|
1624
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::DialError::TaggedSymbol
|
|
1625
|
+
]
|
|
1626
|
+
)
|
|
1627
|
+
end
|
|
1628
|
+
def self.values
|
|
1629
|
+
end
|
|
1630
|
+
end
|
|
1631
|
+
|
|
406
1632
|
module Result
|
|
407
1633
|
extend Revox::Internal::Type::Enum
|
|
408
1634
|
|
|
@@ -435,6 +1661,11 @@ module Revox
|
|
|
435
1661
|
:unknown,
|
|
436
1662
|
Revox::Models::CallCreateResponse::Call::CallAttempt::Result::TaggedSymbol
|
|
437
1663
|
)
|
|
1664
|
+
IOS_SCREENING_FILTER =
|
|
1665
|
+
T.let(
|
|
1666
|
+
:"ios-screening-filter",
|
|
1667
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::Result::TaggedSymbol
|
|
1668
|
+
)
|
|
438
1669
|
|
|
439
1670
|
sig do
|
|
440
1671
|
override.returns(
|
|
@@ -480,6 +1711,11 @@ module Revox
|
|
|
480
1711
|
:completed,
|
|
481
1712
|
Revox::Models::CallCreateResponse::Call::CallAttempt::Status::TaggedSymbol
|
|
482
1713
|
)
|
|
1714
|
+
ERROR =
|
|
1715
|
+
T.let(
|
|
1716
|
+
:error,
|
|
1717
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::Status::TaggedSymbol
|
|
1718
|
+
)
|
|
483
1719
|
|
|
484
1720
|
sig do
|
|
485
1721
|
override.returns(
|
|
@@ -492,6 +1728,47 @@ module Revox
|
|
|
492
1728
|
end
|
|
493
1729
|
end
|
|
494
1730
|
|
|
1731
|
+
# Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or
|
|
1732
|
+
# 'system' (e.g. max duration limit).
|
|
1733
|
+
module EndedBy
|
|
1734
|
+
extend Revox::Internal::Type::Enum
|
|
1735
|
+
|
|
1736
|
+
TaggedSymbol =
|
|
1737
|
+
T.type_alias do
|
|
1738
|
+
T.all(
|
|
1739
|
+
Symbol,
|
|
1740
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::EndedBy
|
|
1741
|
+
)
|
|
1742
|
+
end
|
|
1743
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1744
|
+
|
|
1745
|
+
AGENT =
|
|
1746
|
+
T.let(
|
|
1747
|
+
:agent,
|
|
1748
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::EndedBy::TaggedSymbol
|
|
1749
|
+
)
|
|
1750
|
+
USER =
|
|
1751
|
+
T.let(
|
|
1752
|
+
:user,
|
|
1753
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::EndedBy::TaggedSymbol
|
|
1754
|
+
)
|
|
1755
|
+
SYSTEM =
|
|
1756
|
+
T.let(
|
|
1757
|
+
:system,
|
|
1758
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::EndedBy::TaggedSymbol
|
|
1759
|
+
)
|
|
1760
|
+
|
|
1761
|
+
sig do
|
|
1762
|
+
override.returns(
|
|
1763
|
+
T::Array[
|
|
1764
|
+
Revox::Models::CallCreateResponse::Call::CallAttempt::EndedBy::TaggedSymbol
|
|
1765
|
+
]
|
|
1766
|
+
)
|
|
1767
|
+
end
|
|
1768
|
+
def self.values
|
|
1769
|
+
end
|
|
1770
|
+
end
|
|
1771
|
+
|
|
495
1772
|
class Transcript < Revox::Internal::Type::BaseModel
|
|
496
1773
|
OrHash =
|
|
497
1774
|
T.type_alias do
|
|
@@ -766,6 +2043,30 @@ module Revox
|
|
|
766
2043
|
end
|
|
767
2044
|
end
|
|
768
2045
|
|
|
2046
|
+
class Campaign < Revox::Internal::Type::BaseModel
|
|
2047
|
+
OrHash =
|
|
2048
|
+
T.type_alias do
|
|
2049
|
+
T.any(
|
|
2050
|
+
Revox::Models::CallCreateResponse::Call::Campaign,
|
|
2051
|
+
Revox::Internal::AnyHash
|
|
2052
|
+
)
|
|
2053
|
+
end
|
|
2054
|
+
|
|
2055
|
+
sig { returns(String) }
|
|
2056
|
+
attr_accessor :id
|
|
2057
|
+
|
|
2058
|
+
sig { returns(String) }
|
|
2059
|
+
attr_accessor :name
|
|
2060
|
+
|
|
2061
|
+
sig { params(id: String, name: String).returns(T.attached_class) }
|
|
2062
|
+
def self.new(id:, name:)
|
|
2063
|
+
end
|
|
2064
|
+
|
|
2065
|
+
sig { override.returns({ id: String, name: String }) }
|
|
2066
|
+
def to_hash
|
|
2067
|
+
end
|
|
2068
|
+
end
|
|
2069
|
+
|
|
769
2070
|
# Whether the call is inbound or outbound.
|
|
770
2071
|
module Direction
|
|
771
2072
|
extend Revox::Internal::Type::Enum
|
|
@@ -815,6 +2116,16 @@ module Revox
|
|
|
815
2116
|
sig { returns(T.anything) }
|
|
816
2117
|
attr_accessor :answered_at
|
|
817
2118
|
|
|
2119
|
+
# The SIP error that occurred.
|
|
2120
|
+
sig do
|
|
2121
|
+
returns(
|
|
2122
|
+
T.nilable(
|
|
2123
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::DialError::TaggedSymbol
|
|
2124
|
+
)
|
|
2125
|
+
)
|
|
2126
|
+
end
|
|
2127
|
+
attr_accessor :dial_error
|
|
2128
|
+
|
|
818
2129
|
# The time the call ended.
|
|
819
2130
|
sig { returns(T.anything) }
|
|
820
2131
|
attr_accessor :ended_at
|
|
@@ -849,6 +2160,22 @@ module Revox
|
|
|
849
2160
|
end
|
|
850
2161
|
attr_accessor :status
|
|
851
2162
|
|
|
2163
|
+
# Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
|
|
2164
|
+
# 'voicemail', 'transfer', 'ivr_no_navigate'.
|
|
2165
|
+
sig { returns(T.nilable(String)) }
|
|
2166
|
+
attr_accessor :end_reason
|
|
2167
|
+
|
|
2168
|
+
# Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or
|
|
2169
|
+
# 'system' (e.g. max duration limit).
|
|
2170
|
+
sig do
|
|
2171
|
+
returns(
|
|
2172
|
+
T.nilable(
|
|
2173
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::EndedBy::TaggedSymbol
|
|
2174
|
+
)
|
|
2175
|
+
)
|
|
2176
|
+
end
|
|
2177
|
+
attr_accessor :ended_by
|
|
2178
|
+
|
|
852
2179
|
# The data extracted from the call, using the structured output config from the
|
|
853
2180
|
# parent call object.
|
|
854
2181
|
sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
|
|
@@ -872,6 +2199,10 @@ module Revox
|
|
|
872
2199
|
params(
|
|
873
2200
|
id: String,
|
|
874
2201
|
answered_at: T.anything,
|
|
2202
|
+
dial_error:
|
|
2203
|
+
T.nilable(
|
|
2204
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::DialError::OrSymbol
|
|
2205
|
+
),
|
|
875
2206
|
ended_at: T.anything,
|
|
876
2207
|
phone_number: String,
|
|
877
2208
|
recording_url: T.nilable(String),
|
|
@@ -882,6 +2213,11 @@ module Revox
|
|
|
882
2213
|
started_at: T.anything,
|
|
883
2214
|
status:
|
|
884
2215
|
Revox::Models::CallCreateResponse::Call::LastCallAttempt::Status::OrSymbol,
|
|
2216
|
+
end_reason: T.nilable(String),
|
|
2217
|
+
ended_by:
|
|
2218
|
+
T.nilable(
|
|
2219
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::EndedBy::OrSymbol
|
|
2220
|
+
),
|
|
885
2221
|
structured_output: T.nilable(T::Hash[Symbol, T.anything]),
|
|
886
2222
|
transcript:
|
|
887
2223
|
T.nilable(
|
|
@@ -896,6 +2232,8 @@ module Revox
|
|
|
896
2232
|
id:,
|
|
897
2233
|
# The time the call was answered.
|
|
898
2234
|
answered_at:,
|
|
2235
|
+
# The SIP error that occurred.
|
|
2236
|
+
dial_error:,
|
|
899
2237
|
# The time the call ended.
|
|
900
2238
|
ended_at:,
|
|
901
2239
|
# The phone number that was called. Formatted in E.164 format. Example:
|
|
@@ -908,6 +2246,12 @@ module Revox
|
|
|
908
2246
|
started_at:,
|
|
909
2247
|
# The status of the call attempt.
|
|
910
2248
|
status:,
|
|
2249
|
+
# Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
|
|
2250
|
+
# 'voicemail', 'transfer', 'ivr_no_navigate'.
|
|
2251
|
+
end_reason: nil,
|
|
2252
|
+
# Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or
|
|
2253
|
+
# 'system' (e.g. max duration limit).
|
|
2254
|
+
ended_by: nil,
|
|
911
2255
|
# The data extracted from the call, using the structured output config from the
|
|
912
2256
|
# parent call object.
|
|
913
2257
|
structured_output: nil,
|
|
@@ -921,6 +2265,10 @@ module Revox
|
|
|
921
2265
|
{
|
|
922
2266
|
id: String,
|
|
923
2267
|
answered_at: T.anything,
|
|
2268
|
+
dial_error:
|
|
2269
|
+
T.nilable(
|
|
2270
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::DialError::TaggedSymbol
|
|
2271
|
+
),
|
|
924
2272
|
ended_at: T.anything,
|
|
925
2273
|
phone_number: String,
|
|
926
2274
|
recording_url: T.nilable(String),
|
|
@@ -931,6 +2279,11 @@ module Revox
|
|
|
931
2279
|
started_at: T.anything,
|
|
932
2280
|
status:
|
|
933
2281
|
Revox::Models::CallCreateResponse::Call::LastCallAttempt::Status::TaggedSymbol,
|
|
2282
|
+
end_reason: T.nilable(String),
|
|
2283
|
+
ended_by:
|
|
2284
|
+
T.nilable(
|
|
2285
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::EndedBy::TaggedSymbol
|
|
2286
|
+
),
|
|
934
2287
|
structured_output: T.nilable(T::Hash[Symbol, T.anything]),
|
|
935
2288
|
transcript:
|
|
936
2289
|
T.nilable(
|
|
@@ -944,6 +2297,71 @@ module Revox
|
|
|
944
2297
|
def to_hash
|
|
945
2298
|
end
|
|
946
2299
|
|
|
2300
|
+
# The SIP error that occurred.
|
|
2301
|
+
module DialError
|
|
2302
|
+
extend Revox::Internal::Type::Enum
|
|
2303
|
+
|
|
2304
|
+
TaggedSymbol =
|
|
2305
|
+
T.type_alias do
|
|
2306
|
+
T.all(
|
|
2307
|
+
Symbol,
|
|
2308
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::DialError
|
|
2309
|
+
)
|
|
2310
|
+
end
|
|
2311
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2312
|
+
|
|
2313
|
+
NUMBER_NON_ATTRIBUTED =
|
|
2314
|
+
T.let(
|
|
2315
|
+
:number_non_attributed,
|
|
2316
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::DialError::TaggedSymbol
|
|
2317
|
+
)
|
|
2318
|
+
TOO_MANY_CALLS =
|
|
2319
|
+
T.let(
|
|
2320
|
+
:too_many_calls,
|
|
2321
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::DialError::TaggedSymbol
|
|
2322
|
+
)
|
|
2323
|
+
BUSY =
|
|
2324
|
+
T.let(
|
|
2325
|
+
:busy,
|
|
2326
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::DialError::TaggedSymbol
|
|
2327
|
+
)
|
|
2328
|
+
TEMPORARILY_UNAVAILABLE =
|
|
2329
|
+
T.let(
|
|
2330
|
+
:temporarily_unavailable,
|
|
2331
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::DialError::TaggedSymbol
|
|
2332
|
+
)
|
|
2333
|
+
NO_ANSWER =
|
|
2334
|
+
T.let(
|
|
2335
|
+
:no_answer,
|
|
2336
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::DialError::TaggedSymbol
|
|
2337
|
+
)
|
|
2338
|
+
NO_INTERNATIONAL_PERMISSION =
|
|
2339
|
+
T.let(
|
|
2340
|
+
:no_international_permission,
|
|
2341
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::DialError::TaggedSymbol
|
|
2342
|
+
)
|
|
2343
|
+
PRECONDITION_FAILED =
|
|
2344
|
+
T.let(
|
|
2345
|
+
:precondition_failed,
|
|
2346
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::DialError::TaggedSymbol
|
|
2347
|
+
)
|
|
2348
|
+
NON_CLASSIFIED_ERROR =
|
|
2349
|
+
T.let(
|
|
2350
|
+
:non_classified_error,
|
|
2351
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::DialError::TaggedSymbol
|
|
2352
|
+
)
|
|
2353
|
+
|
|
2354
|
+
sig do
|
|
2355
|
+
override.returns(
|
|
2356
|
+
T::Array[
|
|
2357
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::DialError::TaggedSymbol
|
|
2358
|
+
]
|
|
2359
|
+
)
|
|
2360
|
+
end
|
|
2361
|
+
def self.values
|
|
2362
|
+
end
|
|
2363
|
+
end
|
|
2364
|
+
|
|
947
2365
|
module Result
|
|
948
2366
|
extend Revox::Internal::Type::Enum
|
|
949
2367
|
|
|
@@ -976,6 +2394,11 @@ module Revox
|
|
|
976
2394
|
:unknown,
|
|
977
2395
|
Revox::Models::CallCreateResponse::Call::LastCallAttempt::Result::TaggedSymbol
|
|
978
2396
|
)
|
|
2397
|
+
IOS_SCREENING_FILTER =
|
|
2398
|
+
T.let(
|
|
2399
|
+
:"ios-screening-filter",
|
|
2400
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::Result::TaggedSymbol
|
|
2401
|
+
)
|
|
979
2402
|
|
|
980
2403
|
sig do
|
|
981
2404
|
override.returns(
|
|
@@ -1021,6 +2444,11 @@ module Revox
|
|
|
1021
2444
|
:completed,
|
|
1022
2445
|
Revox::Models::CallCreateResponse::Call::LastCallAttempt::Status::TaggedSymbol
|
|
1023
2446
|
)
|
|
2447
|
+
ERROR =
|
|
2448
|
+
T.let(
|
|
2449
|
+
:error,
|
|
2450
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::Status::TaggedSymbol
|
|
2451
|
+
)
|
|
1024
2452
|
|
|
1025
2453
|
sig do
|
|
1026
2454
|
override.returns(
|
|
@@ -1033,6 +2461,47 @@ module Revox
|
|
|
1033
2461
|
end
|
|
1034
2462
|
end
|
|
1035
2463
|
|
|
2464
|
+
# Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or
|
|
2465
|
+
# 'system' (e.g. max duration limit).
|
|
2466
|
+
module EndedBy
|
|
2467
|
+
extend Revox::Internal::Type::Enum
|
|
2468
|
+
|
|
2469
|
+
TaggedSymbol =
|
|
2470
|
+
T.type_alias do
|
|
2471
|
+
T.all(
|
|
2472
|
+
Symbol,
|
|
2473
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::EndedBy
|
|
2474
|
+
)
|
|
2475
|
+
end
|
|
2476
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2477
|
+
|
|
2478
|
+
AGENT =
|
|
2479
|
+
T.let(
|
|
2480
|
+
:agent,
|
|
2481
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::EndedBy::TaggedSymbol
|
|
2482
|
+
)
|
|
2483
|
+
USER =
|
|
2484
|
+
T.let(
|
|
2485
|
+
:user,
|
|
2486
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::EndedBy::TaggedSymbol
|
|
2487
|
+
)
|
|
2488
|
+
SYSTEM =
|
|
2489
|
+
T.let(
|
|
2490
|
+
:system,
|
|
2491
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::EndedBy::TaggedSymbol
|
|
2492
|
+
)
|
|
2493
|
+
|
|
2494
|
+
sig do
|
|
2495
|
+
override.returns(
|
|
2496
|
+
T::Array[
|
|
2497
|
+
Revox::Models::CallCreateResponse::Call::LastCallAttempt::EndedBy::TaggedSymbol
|
|
2498
|
+
]
|
|
2499
|
+
)
|
|
2500
|
+
end
|
|
2501
|
+
def self.values
|
|
2502
|
+
end
|
|
2503
|
+
end
|
|
2504
|
+
|
|
1036
2505
|
class Transcript < Revox::Internal::Type::BaseModel
|
|
1037
2506
|
OrHash =
|
|
1038
2507
|
T.type_alias do
|
|
@@ -1329,6 +2798,63 @@ module Revox
|
|
|
1329
2798
|
def self.variants
|
|
1330
2799
|
end
|
|
1331
2800
|
end
|
|
2801
|
+
|
|
2802
|
+
# The status of the call.
|
|
2803
|
+
module Status
|
|
2804
|
+
extend Revox::Internal::Type::Enum
|
|
2805
|
+
|
|
2806
|
+
TaggedSymbol =
|
|
2807
|
+
T.type_alias do
|
|
2808
|
+
T.all(Symbol, Revox::Models::CallCreateResponse::Call::Status)
|
|
2809
|
+
end
|
|
2810
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2811
|
+
|
|
2812
|
+
INITIALIZING =
|
|
2813
|
+
T.let(
|
|
2814
|
+
:initializing,
|
|
2815
|
+
Revox::Models::CallCreateResponse::Call::Status::TaggedSymbol
|
|
2816
|
+
)
|
|
2817
|
+
QUEUED_FOR_CALLING =
|
|
2818
|
+
T.let(
|
|
2819
|
+
:queued_for_calling,
|
|
2820
|
+
Revox::Models::CallCreateResponse::Call::Status::TaggedSymbol
|
|
2821
|
+
)
|
|
2822
|
+
CALLING =
|
|
2823
|
+
T.let(
|
|
2824
|
+
:calling,
|
|
2825
|
+
Revox::Models::CallCreateResponse::Call::Status::TaggedSymbol
|
|
2826
|
+
)
|
|
2827
|
+
SCHEDULED =
|
|
2828
|
+
T.let(
|
|
2829
|
+
:scheduled,
|
|
2830
|
+
Revox::Models::CallCreateResponse::Call::Status::TaggedSymbol
|
|
2831
|
+
)
|
|
2832
|
+
COMPLETED =
|
|
2833
|
+
T.let(
|
|
2834
|
+
:completed,
|
|
2835
|
+
Revox::Models::CallCreateResponse::Call::Status::TaggedSymbol
|
|
2836
|
+
)
|
|
2837
|
+
CANCELLED =
|
|
2838
|
+
T.let(
|
|
2839
|
+
:cancelled,
|
|
2840
|
+
Revox::Models::CallCreateResponse::Call::Status::TaggedSymbol
|
|
2841
|
+
)
|
|
2842
|
+
ERRORED =
|
|
2843
|
+
T.let(
|
|
2844
|
+
:errored,
|
|
2845
|
+
Revox::Models::CallCreateResponse::Call::Status::TaggedSymbol
|
|
2846
|
+
)
|
|
2847
|
+
|
|
2848
|
+
sig do
|
|
2849
|
+
override.returns(
|
|
2850
|
+
T::Array[
|
|
2851
|
+
Revox::Models::CallCreateResponse::Call::Status::TaggedSymbol
|
|
2852
|
+
]
|
|
2853
|
+
)
|
|
2854
|
+
end
|
|
2855
|
+
def self.values
|
|
2856
|
+
end
|
|
2857
|
+
end
|
|
1332
2858
|
end
|
|
1333
2859
|
end
|
|
1334
2860
|
end
|