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.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/README.md +63 -22
  4. data/lib/revox/client.rb +4 -0
  5. data/lib/revox/internal/type/base_model.rb +3 -3
  6. data/lib/revox/internal/util.rb +31 -0
  7. data/lib/revox/models/assistant_create_params.rb +2 -2
  8. data/lib/revox/models/assistant_delete_params.rb +7 -1
  9. data/lib/revox/models/assistant_retrieve_params.rb +7 -1
  10. data/lib/revox/models/assistant_update_params.rb +10 -3
  11. data/lib/revox/models/call_create_params.rb +2 -2
  12. data/lib/revox/models/call_create_response.rb +720 -12
  13. data/lib/revox/models/call_list_params.rb +30 -7
  14. data/lib/revox/models/call_list_response.rb +63 -1
  15. data/lib/revox/models/call_retrieve_params.rb +7 -1
  16. data/lib/revox/models/call_retrieve_response.rb +723 -12
  17. data/lib/revox/models/campaign_cancel_params.rb +20 -0
  18. data/lib/revox/models/campaign_cancel_response.rb +16 -0
  19. data/lib/revox/models/campaign_create_params.rb +174 -0
  20. data/lib/revox/models/campaign_create_response.rb +775 -0
  21. data/lib/revox/models/campaign_delete_params.rb +20 -0
  22. data/lib/revox/models/campaign_delete_response.rb +16 -0
  23. data/lib/revox/models/campaign_export_rows_params.rb +20 -0
  24. data/lib/revox/models/campaign_export_rows_response.rb +22 -0
  25. data/lib/revox/models/campaign_get_rows_params.rb +65 -0
  26. data/lib/revox/models/campaign_get_rows_response.rb +1468 -0
  27. data/lib/revox/models/campaign_list_params.rb +14 -0
  28. data/lib/revox/models/campaign_list_response.rb +771 -0
  29. data/lib/revox/models/campaign_retrieve_params.rb +20 -0
  30. data/lib/revox/models/campaign_retrieve_response.rb +776 -0
  31. data/lib/revox/models/voice_preview_params.rb +1 -9
  32. data/lib/revox/models/voice_retrieve_params.rb +7 -1
  33. data/lib/revox/models.rb +14 -0
  34. data/lib/revox/resources/assistants.rb +26 -2
  35. data/lib/revox/resources/call.rb +20 -8
  36. data/lib/revox/resources/campaigns.rb +181 -0
  37. data/lib/revox/resources/voices.rb +12 -8
  38. data/lib/revox/version.rb +1 -1
  39. data/lib/revox.rb +15 -0
  40. data/rbi/revox/client.rbi +3 -0
  41. data/rbi/revox/internal/util.rbi +20 -0
  42. data/rbi/revox/models/assistant_create_params.rbi +3 -5
  43. data/rbi/revox/models/assistant_delete_params.rbi +11 -5
  44. data/rbi/revox/models/assistant_retrieve_params.rbi +11 -5
  45. data/rbi/revox/models/assistant_update_params.rbi +9 -5
  46. data/rbi/revox/models/call_create_params.rbi +3 -5
  47. data/rbi/revox/models/call_create_response.rbi +1537 -11
  48. data/rbi/revox/models/call_list_params.rbi +53 -6
  49. data/rbi/revox/models/call_list_response.rbi +162 -0
  50. data/rbi/revox/models/call_retrieve_params.rbi +11 -5
  51. data/rbi/revox/models/call_retrieve_response.rbi +1543 -11
  52. data/rbi/revox/models/campaign_cancel_params.rbi +33 -0
  53. data/rbi/revox/models/campaign_cancel_response.rbi +23 -0
  54. data/rbi/revox/models/campaign_create_params.rbi +297 -0
  55. data/rbi/revox/models/campaign_create_response.rbi +1490 -0
  56. data/rbi/revox/models/campaign_delete_params.rbi +33 -0
  57. data/rbi/revox/models/campaign_delete_response.rbi +23 -0
  58. data/rbi/revox/models/campaign_export_rows_params.rbi +33 -0
  59. data/rbi/revox/models/campaign_export_rows_response.rbi +29 -0
  60. data/rbi/revox/models/campaign_get_rows_params.rbi +113 -0
  61. data/rbi/revox/models/campaign_get_rows_response.rbi +2981 -0
  62. data/rbi/revox/models/campaign_list_params.rbi +27 -0
  63. data/rbi/revox/models/campaign_list_response.rbi +1482 -0
  64. data/rbi/revox/models/campaign_retrieve_params.rbi +33 -0
  65. data/rbi/revox/models/campaign_retrieve_response.rbi +1495 -0
  66. data/rbi/revox/models/voice_preview_params.rbi +0 -11
  67. data/rbi/revox/models/voice_retrieve_params.rbi +6 -1
  68. data/rbi/revox/models.rbi +14 -0
  69. data/rbi/revox/resources/assistants.rbi +21 -2
  70. data/rbi/revox/resources/call.rbi +18 -6
  71. data/rbi/revox/resources/campaigns.rbi +128 -0
  72. data/rbi/revox/resources/voices.rbi +9 -7
  73. data/sig/revox/client.rbs +2 -0
  74. data/sig/revox/internal/util.rbs +10 -0
  75. data/sig/revox/models/assistant_create_params.rbs +8 -4
  76. data/sig/revox/models/assistant_delete_params.rbs +8 -3
  77. data/sig/revox/models/assistant_retrieve_params.rbs +8 -3
  78. data/sig/revox/models/assistant_update_params.rbs +13 -4
  79. data/sig/revox/models/call_create_params.rbs +8 -4
  80. data/sig/revox/models/call_create_response.rbs +615 -8
  81. data/sig/revox/models/call_list_params.rbs +42 -7
  82. data/sig/revox/models/call_list_response.rbs +57 -2
  83. data/sig/revox/models/call_retrieve_params.rbs +9 -3
  84. data/sig/revox/models/call_retrieve_response.rbs +615 -8
  85. data/sig/revox/models/campaign_cancel_params.rbs +20 -0
  86. data/sig/revox/models/campaign_cancel_response.rbs +13 -0
  87. data/sig/revox/models/campaign_create_params.rbs +149 -0
  88. data/sig/revox/models/campaign_create_response.rbs +666 -0
  89. data/sig/revox/models/campaign_delete_params.rbs +20 -0
  90. data/sig/revox/models/campaign_delete_response.rbs +13 -0
  91. data/sig/revox/models/campaign_export_rows_params.rbs +20 -0
  92. data/sig/revox/models/campaign_export_rows_response.rbs +15 -0
  93. data/sig/revox/models/campaign_get_rows_params.rbs +82 -0
  94. data/sig/revox/models/campaign_get_rows_response.rbs +1220 -0
  95. data/sig/revox/models/campaign_list_params.rbs +14 -0
  96. data/sig/revox/models/campaign_list_response.rbs +666 -0
  97. data/sig/revox/models/campaign_retrieve_params.rbs +20 -0
  98. data/sig/revox/models/campaign_retrieve_response.rbs +666 -0
  99. data/sig/revox/models/voice_preview_params.rbs +1 -8
  100. data/sig/revox/models/voice_retrieve_params.rbs +5 -1
  101. data/sig/revox/models.rbs +14 -0
  102. data/sig/revox/resources/assistants.rbs +2 -2
  103. data/sig/revox/resources/call.rbs +3 -2
  104. data/sig/revox/resources/campaigns.rbs +52 -0
  105. data/sig/revox/resources/voices.rbs +0 -1
  106. metadata +47 -2
@@ -25,6 +25,11 @@ module Revox
25
25
  # @return [String]
26
26
  required :id, String
27
27
 
28
+ # @!attribute assistant
29
+ #
30
+ # @return [Revox::Models::CallCreateResponse::Call::Assistant, nil]
31
+ required :assistant, -> { Revox::Models::CallCreateResponse::Call::Assistant }, nil?: true
32
+
28
33
  # @!attribute call_attempts
29
34
  # All call attempts for this call order, ordered by most recent first.
30
35
  #
@@ -45,6 +50,11 @@ module Revox
45
50
  # @return [Float]
46
51
  required :calls_count, Float
47
52
 
53
+ # @!attribute campaign
54
+ #
55
+ # @return [Revox::Models::CallCreateResponse::Call::Campaign, nil]
56
+ required :campaign, -> { Revox::Models::CallCreateResponse::Call::Campaign }, nil?: true
57
+
48
58
  # @!attribute created_at
49
59
  # The time the call order was created.
50
60
  #
@@ -71,13 +81,15 @@ module Revox
71
81
  required :from_phone_number, String
72
82
 
73
83
  # @!attribute is_cancelled
74
- # Whether the call was cancelled.
84
+ # DEPRECATED: Whether the call has been cancelled. This is derived from `status`.
85
+ # Use `status` instead.
75
86
  #
76
87
  # @return [Boolean]
77
88
  required :is_cancelled, Revox::Internal::Type::Boolean
78
89
 
79
90
  # @!attribute is_completed
80
- # Whether the call is completed or still in progress.
91
+ # DEPRECATED: Whether the call has completed. This is derived from `status`. Use
92
+ # `status` instead.
81
93
  #
82
94
  # @return [Boolean]
83
95
  required :is_completed, Revox::Internal::Type::Boolean
@@ -100,11 +112,11 @@ module Revox
100
112
  # @return [Hash{Symbol=>String}, nil]
101
113
  required :metadata, Revox::Internal::Type::HashOf[String], nil?: true
102
114
 
103
- # @!attribute next_call_at
104
- # The next call attempt time.
115
+ # @!attribute organization_id
116
+ # The ID of the organization that owns the call.
105
117
  #
106
- # @return [Object]
107
- required :next_call_at, Revox::Internal::Type::Unknown
118
+ # @return [String]
119
+ required :organization_id, String
108
120
 
109
121
  # @!attribute scheduled_at
110
122
  # The time the call order is scheduled to start.
@@ -112,6 +124,12 @@ module Revox
112
124
  # @return [Object]
113
125
  required :scheduled_at, Revox::Internal::Type::Unknown
114
126
 
127
+ # @!attribute status
128
+ # The status of the call.
129
+ #
130
+ # @return [Symbol, Revox::Models::CallCreateResponse::Call::Status]
131
+ required :status, enum: -> { Revox::Models::CallCreateResponse::Call::Status }
132
+
115
133
  # @!attribute to_phone_number
116
134
  # The phone number that received the call. Formatted in E.164 format. Example:
117
135
  # +1234567890
@@ -119,7 +137,7 @@ module Revox
119
137
  # @return [String]
120
138
  required :to_phone_number, String
121
139
 
122
- # @!method initialize(id:, call_attempts:, call_retry_config:, calls_count:, created_at:, direction:, first_sentence_delay_ms:, from_phone_number:, is_cancelled:, is_completed:, last_call_attempt:, llm_model:, metadata:, next_call_at:, scheduled_at:, to_phone_number:)
140
+ # @!method initialize(id:, assistant:, call_attempts:, call_retry_config:, calls_count:, campaign:, created_at:, direction:, first_sentence_delay_ms:, from_phone_number:, is_cancelled:, is_completed:, last_call_attempt:, llm_model:, metadata:, organization_id:, scheduled_at:, status:, to_phone_number:)
123
141
  # Some parameter documentations has been truncated, see
124
142
  # {Revox::Models::CallCreateResponse::Call} for more details.
125
143
  #
@@ -128,12 +146,16 @@ module Revox
128
146
  #
129
147
  # @param id [String] The ID of the call.
130
148
  #
149
+ # @param assistant [Revox::Models::CallCreateResponse::Call::Assistant, nil]
150
+ #
131
151
  # @param call_attempts [Array<Revox::Models::CallCreateResponse::Call::CallAttempt>] All call attempts for this call order, ordered by most recent first.
132
152
  #
133
153
  # @param call_retry_config [Revox::Models::CallCreateResponse::Call::CallRetryConfig, nil] Configuration for call retry behavior including time windows, delays, and max it
134
154
  #
135
155
  # @param calls_count [Float] The number of call attempts made.
136
156
  #
157
+ # @param campaign [Revox::Models::CallCreateResponse::Call::Campaign, nil]
158
+ #
137
159
  # @param created_at [Object] The time the call order was created.
138
160
  #
139
161
  # @param direction [Symbol, Revox::Models::CallCreateResponse::Call::Direction] Whether the call is inbound or outbound.
@@ -142,9 +164,9 @@ module Revox
142
164
  #
143
165
  # @param from_phone_number [String] The phone number that made the call. Formatted in E.164 format. Example: +123456
144
166
  #
145
- # @param is_cancelled [Boolean] Whether the call was cancelled.
167
+ # @param is_cancelled [Boolean] DEPRECATED: Whether the call has been cancelled. This is derived from `status`.
146
168
  #
147
- # @param is_completed [Boolean] Whether the call is completed or still in progress.
169
+ # @param is_completed [Boolean] DEPRECATED: Whether the call has completed. This is derived from `status`. Use `
148
170
  #
149
171
  # @param last_call_attempt [Revox::Models::CallCreateResponse::Call::LastCallAttempt, nil] This represent a single call attempt. A call attempt is a single call made to th
150
172
  #
@@ -152,12 +174,533 @@ module Revox
152
174
  #
153
175
  # @param metadata [Hash{Symbol=>String}, nil] Metadata stored with the call.
154
176
  #
155
- # @param next_call_at [Object] The next call attempt time.
177
+ # @param organization_id [String] The ID of the organization that owns the call.
156
178
  #
157
179
  # @param scheduled_at [Object] The time the call order is scheduled to start.
158
180
  #
181
+ # @param status [Symbol, Revox::Models::CallCreateResponse::Call::Status] The status of the call.
182
+ #
159
183
  # @param to_phone_number [String] The phone number that received the call. Formatted in E.164 format. Example: +12
160
184
 
185
+ # @see Revox::Models::CallCreateResponse::Call#assistant
186
+ class Assistant < Revox::Internal::Type::BaseModel
187
+ # @!attribute id
188
+ #
189
+ # @return [String]
190
+ required :id, String
191
+
192
+ # @!attribute background_sound
193
+ # The background sound to play during the call. Useful to give the impression that
194
+ # your AI agent is in an office.
195
+ #
196
+ # @return [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::BackgroundSound, nil]
197
+ required :background_sound,
198
+ enum: -> { Revox::Models::CallCreateResponse::Call::Assistant::BackgroundSound },
199
+ nil?: true
200
+
201
+ # @!attribute calendly
202
+ #
203
+ # @return [Revox::Models::CallCreateResponse::Call::Assistant::Calendly, nil]
204
+ required :calendly, -> { Revox::Models::CallCreateResponse::Call::Assistant::Calendly }, nil?: true
205
+
206
+ # @!attribute call_retry_config
207
+ # Configuration for call retry behavior including time windows, delays, and max
208
+ # iterations. If not provided, defaults will be used.
209
+ #
210
+ # @return [Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig, nil]
211
+ required :call_retry_config,
212
+ -> { Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig },
213
+ nil?: true
214
+
215
+ # @!attribute created_at
216
+ #
217
+ # @return [Object]
218
+ required :created_at, Revox::Internal::Type::Unknown
219
+
220
+ # @!attribute end_of_call_sentence
221
+ #
222
+ # @return [String, nil]
223
+ required :end_of_call_sentence, String, nil?: true
224
+
225
+ # @!attribute first_sentence
226
+ #
227
+ # @return [String, nil]
228
+ required :first_sentence, String, nil?: true
229
+
230
+ # @!attribute first_sentence_delay_ms
231
+ # Delay in milliseconds before speaking the first sentence. Default: 400.
232
+ #
233
+ # @return [Integer]
234
+ required :first_sentence_delay_ms, Integer
235
+
236
+ # @!attribute first_sentence_mode
237
+ #
238
+ # @return [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::FirstSentenceMode]
239
+ required :first_sentence_mode,
240
+ enum: -> { Revox::Models::CallCreateResponse::Call::Assistant::FirstSentenceMode }
241
+
242
+ # @!attribute ivr_navigation_enabled
243
+ # Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
244
+ # skip turns to navigate phone menus.
245
+ #
246
+ # @return [Boolean]
247
+ required :ivr_navigation_enabled, Revox::Internal::Type::Boolean
248
+
249
+ # @!attribute llm_model
250
+ #
251
+ # @return [Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0, Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember1]
252
+ required :llm_model, union: -> { Revox::Models::CallCreateResponse::Call::Assistant::LlmModel }
253
+
254
+ # @!attribute max_call_duration_secs
255
+ # The maximum duration of the call in seconds. This is the maximum time the call
256
+ # will be allowed to run.
257
+ #
258
+ # @return [Float]
259
+ required :max_call_duration_secs, Float
260
+
261
+ # @!attribute name
262
+ #
263
+ # @return [String]
264
+ required :name, String
265
+
266
+ # @!attribute organization_id
267
+ #
268
+ # @return [String]
269
+ required :organization_id, String
270
+
271
+ # @!attribute prompt
272
+ #
273
+ # @return [String]
274
+ required :prompt, String
275
+
276
+ # @!attribute structured_output_config
277
+ # The structured output config to use for the call. This is used to extract the
278
+ # data from the call (like email, name, company name, etc.).
279
+ #
280
+ # @return [Array<Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig>, nil]
281
+ required :structured_output_config,
282
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig] },
283
+ nil?: true
284
+
285
+ # @!attribute transfer_phone_number
286
+ # Phone number to transfer calls to when users request to speak to a human agent.
287
+ #
288
+ # @return [String, nil]
289
+ required :transfer_phone_number, String, nil?: true
290
+
291
+ # @!attribute updated_at
292
+ #
293
+ # @return [Object]
294
+ required :updated_at, Revox::Internal::Type::Unknown
295
+
296
+ # @!attribute voice
297
+ #
298
+ # @return [Revox::Models::CallCreateResponse::Call::Assistant::Voice, nil]
299
+ required :voice, -> { Revox::Models::CallCreateResponse::Call::Assistant::Voice }, nil?: true
300
+
301
+ # @!attribute voicemail_message
302
+ # If set, when voicemail is detected the agent will speak this message then hang
303
+ # up; if null, hang up immediately.
304
+ #
305
+ # @return [String, nil]
306
+ required :voicemail_message, String, nil?: true
307
+
308
+ # @!attribute webhook_url
309
+ # The webhook URL to call when the call is completed.
310
+ #
311
+ # @return [String, nil]
312
+ required :webhook_url, String, nil?: true
313
+
314
+ # @!attribute faq_items
315
+ #
316
+ # @return [Array<Revox::Models::CallCreateResponse::Call::Assistant::FaqItem>, nil]
317
+ optional :faq_items,
318
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CallCreateResponse::Call::Assistant::FaqItem] }
319
+
320
+ # @!attribute pending_faq_count
321
+ #
322
+ # @return [Float, nil]
323
+ optional :pending_faq_count, Float
324
+
325
+ # @!method initialize(id:, background_sound:, calendly:, call_retry_config:, created_at:, end_of_call_sentence:, first_sentence:, first_sentence_delay_ms:, first_sentence_mode:, ivr_navigation_enabled:, llm_model:, max_call_duration_secs:, name:, organization_id:, prompt:, structured_output_config:, transfer_phone_number:, updated_at:, voice:, voicemail_message:, webhook_url:, faq_items: nil, pending_faq_count: nil)
326
+ # Some parameter documentations has been truncated, see
327
+ # {Revox::Models::CallCreateResponse::Call::Assistant} for more details.
328
+ #
329
+ # @param id [String]
330
+ #
331
+ # @param background_sound [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::BackgroundSound, nil] The background sound to play during the call. Useful to give the impression that
332
+ #
333
+ # @param calendly [Revox::Models::CallCreateResponse::Call::Assistant::Calendly, nil]
334
+ #
335
+ # @param call_retry_config [Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig, nil] Configuration for call retry behavior including time windows, delays, and max it
336
+ #
337
+ # @param created_at [Object]
338
+ #
339
+ # @param end_of_call_sentence [String, nil]
340
+ #
341
+ # @param first_sentence [String, nil]
342
+ #
343
+ # @param first_sentence_delay_ms [Integer] Delay in milliseconds before speaking the first sentence. Default: 400.
344
+ #
345
+ # @param first_sentence_mode [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::FirstSentenceMode]
346
+ #
347
+ # @param ivr_navigation_enabled [Boolean] Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
348
+ #
349
+ # @param llm_model [Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0, Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember1]
350
+ #
351
+ # @param max_call_duration_secs [Float] The maximum duration of the call in seconds. This is the maximum time the call w
352
+ #
353
+ # @param name [String]
354
+ #
355
+ # @param organization_id [String]
356
+ #
357
+ # @param prompt [String]
358
+ #
359
+ # @param structured_output_config [Array<Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig>, nil] The structured output config to use for the call. This is used to extract the da
360
+ #
361
+ # @param transfer_phone_number [String, nil] Phone number to transfer calls to when users request to speak to a human agent.
362
+ #
363
+ # @param updated_at [Object]
364
+ #
365
+ # @param voice [Revox::Models::CallCreateResponse::Call::Assistant::Voice, nil]
366
+ #
367
+ # @param voicemail_message [String, nil] If set, when voicemail is detected the agent will speak this message then hang u
368
+ #
369
+ # @param webhook_url [String, nil] The webhook URL to call when the call is completed.
370
+ #
371
+ # @param faq_items [Array<Revox::Models::CallCreateResponse::Call::Assistant::FaqItem>]
372
+ #
373
+ # @param pending_faq_count [Float]
374
+
375
+ # The background sound to play during the call. Useful to give the impression that
376
+ # your AI agent is in an office.
377
+ #
378
+ # @see Revox::Models::CallCreateResponse::Call::Assistant#background_sound
379
+ module BackgroundSound
380
+ extend Revox::Internal::Type::Enum
381
+
382
+ AUDIO_OFFICE_OGG = :"audio/office.ogg"
383
+
384
+ # @!method self.values
385
+ # @return [Array<Symbol>]
386
+ end
387
+
388
+ # @see Revox::Models::CallCreateResponse::Call::Assistant#calendly
389
+ class Calendly < Revox::Internal::Type::BaseModel
390
+ # @!attribute connection_id
391
+ # The connection ID representing the link between your Calendly account and Revox.
392
+ #
393
+ # @return [String]
394
+ required :connection_id, String
395
+
396
+ # @!attribute event_type_id
397
+ # The event type ID representing the event type to schedule. (eg:
398
+ # https://api.calendly.com/event_types/b2330295-2a91-4a1d-bb73-99e7707663d5)
399
+ #
400
+ # @return [String]
401
+ required :event_type_id, String
402
+
403
+ # @!method initialize(connection_id:, event_type_id:)
404
+ # Some parameter documentations has been truncated, see
405
+ # {Revox::Models::CallCreateResponse::Call::Assistant::Calendly} for more details.
406
+ #
407
+ # @param connection_id [String] The connection ID representing the link between your Calendly account and Revox.
408
+ #
409
+ # @param event_type_id [String] The event type ID representing the event type to schedule. (eg: https://api.cale
410
+ end
411
+
412
+ # @see Revox::Models::CallCreateResponse::Call::Assistant#call_retry_config
413
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
414
+ # @!attribute calling_windows
415
+ #
416
+ # @return [Array<Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig::CallingWindow>]
417
+ required :calling_windows,
418
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig::CallingWindow] }
419
+
420
+ # @!attribute max_retry_attempts
421
+ # Maximum number of call retry attempts. Default: 3.
422
+ #
423
+ # @return [Integer]
424
+ required :max_retry_attempts, Integer
425
+
426
+ # @!attribute timezone
427
+ # Optional IANA timezone identifier to override the automatic timezone detection
428
+ # from phone number. If not provided, timezone is determined from the recipient's
429
+ # phone number country code. Examples: 'America/New_York', 'Europe/Paris'.
430
+ #
431
+ # @return [String, nil]
432
+ optional :timezone, String, nil?: true
433
+
434
+ # @!method initialize(calling_windows:, max_retry_attempts:, timezone: nil)
435
+ # Some parameter documentations has been truncated, see
436
+ # {Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig} for more
437
+ # details.
438
+ #
439
+ # Configuration for call retry behavior including time windows, delays, and max
440
+ # iterations. If not provided, defaults will be used.
441
+ #
442
+ # @param calling_windows [Array<Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig::CallingWindow>]
443
+ #
444
+ # @param max_retry_attempts [Integer] Maximum number of call retry attempts. Default: 3.
445
+ #
446
+ # @param timezone [String, nil] Optional IANA timezone identifier to override the automatic timezone detection f
447
+
448
+ class CallingWindow < Revox::Internal::Type::BaseModel
449
+ # @!attribute calling_window_end_time
450
+ # End time for the calling window in the recipient's timezone (or
451
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
452
+ # Examples: '17:00', '6pm'. Default: '18:00'.
453
+ #
454
+ # @return [String]
455
+ required :calling_window_end_time, String
456
+
457
+ # @!attribute calling_window_start_time
458
+ # Start time for the calling window in the recipient's timezone (or
459
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
460
+ # Examples: '09:00', '10am'. Default: '10:00'.
461
+ #
462
+ # @return [String]
463
+ required :calling_window_start_time, String
464
+
465
+ # @!attribute retry_delay_seconds
466
+ # Delay between retry attempts in seconds. Default: 7200 (2 hours).
467
+ #
468
+ # @return [Integer]
469
+ required :retry_delay_seconds, Integer
470
+
471
+ # @!method initialize(calling_window_end_time:, calling_window_start_time:, retry_delay_seconds:)
472
+ # Some parameter documentations has been truncated, see
473
+ # {Revox::Models::CallCreateResponse::Call::Assistant::CallRetryConfig::CallingWindow}
474
+ # for more details.
475
+ #
476
+ # @param calling_window_end_time [String] End time for the calling window in the recipient's timezone (or timezone_overrid
477
+ #
478
+ # @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
479
+ #
480
+ # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. Default: 7200 (2 hours).
481
+ end
482
+ end
483
+
484
+ # @see Revox::Models::CallCreateResponse::Call::Assistant#first_sentence_mode
485
+ module FirstSentenceMode
486
+ extend Revox::Internal::Type::Enum
487
+
488
+ GENERATED = :generated
489
+ STATIC = :static
490
+ NONE = :none
491
+
492
+ # @!method self.values
493
+ # @return [Array<Symbol>]
494
+ end
495
+
496
+ # @see Revox::Models::CallCreateResponse::Call::Assistant#llm_model
497
+ module LlmModel
498
+ extend Revox::Internal::Type::Union
499
+
500
+ variant -> { Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0 }
501
+
502
+ variant -> { Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember1 }
503
+
504
+ class UnionMember0 < Revox::Internal::Type::BaseModel
505
+ # @!attribute name
506
+ #
507
+ # @return [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0::Name]
508
+ required :name,
509
+ enum: -> { Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0::Name }
510
+
511
+ # @!attribute type
512
+ #
513
+ # @return [Symbol, :"dedicated-instance"]
514
+ required :type, const: :"dedicated-instance"
515
+
516
+ # @!method initialize(name:, type: :"dedicated-instance")
517
+ # @param name [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0::Name]
518
+ # @param type [Symbol, :"dedicated-instance"]
519
+
520
+ # @see Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0#name
521
+ module Name
522
+ extend Revox::Internal::Type::Enum
523
+
524
+ GPT_4_1 = :"gpt-4.1"
525
+ MINISTRAL_3_8B_INSTRUCT = :"ministral-3-8b-instruct"
526
+
527
+ # @!method self.values
528
+ # @return [Array<Symbol>]
529
+ end
530
+ end
531
+
532
+ class UnionMember1 < Revox::Internal::Type::BaseModel
533
+ # @!attribute openrouter_model_id
534
+ # The model ID to use from OpenRouter. eg: openai/gpt-4.1
535
+ #
536
+ # @return [String]
537
+ required :openrouter_model_id, String
538
+
539
+ # @!attribute openrouter_provider
540
+ # The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
541
+ #
542
+ # @return [String]
543
+ required :openrouter_provider, String
544
+
545
+ # @!attribute type
546
+ # Use a model from OpenRouter.
547
+ #
548
+ # @return [Symbol, :openrouter]
549
+ required :type, const: :openrouter
550
+
551
+ # @!method initialize(openrouter_model_id:, openrouter_provider:, type: :openrouter)
552
+ # @param openrouter_model_id [String] The model ID to use from OpenRouter. eg: openai/gpt-4.1
553
+ #
554
+ # @param openrouter_provider [String] The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
555
+ #
556
+ # @param type [Symbol, :openrouter] Use a model from OpenRouter.
557
+ end
558
+
559
+ # @!method self.variants
560
+ # @return [Array(Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember0, Revox::Models::CallCreateResponse::Call::Assistant::LlmModel::UnionMember1)]
561
+ end
562
+
563
+ class StructuredOutputConfig < Revox::Internal::Type::BaseModel
564
+ # @!attribute name
565
+ #
566
+ # @return [String]
567
+ required :name, String
568
+
569
+ # @!attribute required
570
+ #
571
+ # @return [Boolean]
572
+ required :required, Revox::Internal::Type::Boolean
573
+
574
+ # @!attribute type
575
+ #
576
+ # @return [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig::Type]
577
+ required :type,
578
+ enum: -> { Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig::Type }
579
+
580
+ # @!attribute description
581
+ #
582
+ # @return [String, nil]
583
+ optional :description, String
584
+
585
+ # @!attribute enum_options
586
+ #
587
+ # @return [Array<String>, nil]
588
+ optional :enum_options, Revox::Internal::Type::ArrayOf[String]
589
+
590
+ # @!method initialize(name:, required:, type:, description: nil, enum_options: nil)
591
+ # @param name [String]
592
+ # @param required [Boolean]
593
+ # @param type [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig::Type]
594
+ # @param description [String]
595
+ # @param enum_options [Array<String>]
596
+
597
+ # @see Revox::Models::CallCreateResponse::Call::Assistant::StructuredOutputConfig#type
598
+ module Type
599
+ extend Revox::Internal::Type::Enum
600
+
601
+ STRING = :string
602
+ NUMBER = :number
603
+ BOOLEAN = :boolean
604
+ ENUM = :enum
605
+ DATE = :date
606
+ DATETIME = :datetime
607
+
608
+ # @!method self.values
609
+ # @return [Array<Symbol>]
610
+ end
611
+ end
612
+
613
+ # @see Revox::Models::CallCreateResponse::Call::Assistant#voice
614
+ class Voice < Revox::Internal::Type::BaseModel
615
+ # @!attribute id
616
+ # The ID of the voice.
617
+ #
618
+ # @return [String]
619
+ required :id, String
620
+
621
+ # @!attribute provider
622
+ # The provider of the voice.
623
+ #
624
+ # @return [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::Voice::Provider]
625
+ required :provider, enum: -> { Revox::Models::CallCreateResponse::Call::Assistant::Voice::Provider }
626
+
627
+ # @!attribute speed
628
+ # The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
629
+ # 0.7–1.2. Default is 1.0.
630
+ #
631
+ # @return [Float, nil]
632
+ optional :speed, Float
633
+
634
+ # @!method initialize(id:, provider:, speed: nil)
635
+ # Some parameter documentations has been truncated, see
636
+ # {Revox::Models::CallCreateResponse::Call::Assistant::Voice} for more details.
637
+ #
638
+ # @param id [String] The ID of the voice.
639
+ #
640
+ # @param provider [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::Voice::Provider] The provider of the voice.
641
+ #
642
+ # @param speed [Float] The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
643
+
644
+ # The provider of the voice.
645
+ #
646
+ # @see Revox::Models::CallCreateResponse::Call::Assistant::Voice#provider
647
+ module Provider
648
+ extend Revox::Internal::Type::Enum
649
+
650
+ CARTESIA = :cartesia
651
+ ELEVENLABS = :elevenlabs
652
+
653
+ # @!method self.values
654
+ # @return [Array<Symbol>]
655
+ end
656
+ end
657
+
658
+ class FaqItem < Revox::Internal::Type::BaseModel
659
+ # @!attribute answer
660
+ #
661
+ # @return [String]
662
+ required :answer, String
663
+
664
+ # @!attribute question
665
+ #
666
+ # @return [String]
667
+ required :question, String
668
+
669
+ # @!attribute id
670
+ #
671
+ # @return [String, nil]
672
+ optional :id, String
673
+
674
+ # @!attribute needs_human_answer
675
+ #
676
+ # @return [Boolean, nil]
677
+ optional :needs_human_answer, Revox::Internal::Type::Boolean
678
+
679
+ # @!attribute source
680
+ #
681
+ # @return [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::FaqItem::Source, nil]
682
+ optional :source, enum: -> { Revox::Models::CallCreateResponse::Call::Assistant::FaqItem::Source }
683
+
684
+ # @!method initialize(answer:, question:, id: nil, needs_human_answer: nil, source: nil)
685
+ # @param answer [String]
686
+ # @param question [String]
687
+ # @param id [String]
688
+ # @param needs_human_answer [Boolean]
689
+ # @param source [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::FaqItem::Source]
690
+
691
+ # @see Revox::Models::CallCreateResponse::Call::Assistant::FaqItem#source
692
+ module Source
693
+ extend Revox::Internal::Type::Enum
694
+
695
+ HUMAN = :human
696
+ AI = :ai
697
+
698
+ # @!method self.values
699
+ # @return [Array<Symbol>]
700
+ end
701
+ end
702
+ end
703
+
161
704
  class CallAttempt < Revox::Internal::Type::BaseModel
162
705
  # @!attribute id
163
706
  # The ID of the call attempt.
@@ -171,6 +714,14 @@ module Revox
171
714
  # @return [Object]
172
715
  required :answered_at, Revox::Internal::Type::Unknown
173
716
 
717
+ # @!attribute dial_error
718
+ # The SIP error that occurred.
719
+ #
720
+ # @return [Symbol, Revox::Models::CallCreateResponse::Call::CallAttempt::DialError, nil]
721
+ required :dial_error,
722
+ enum: -> { Revox::Models::CallCreateResponse::Call::CallAttempt::DialError },
723
+ nil?: true
724
+
174
725
  # @!attribute ended_at
175
726
  # The time the call ended.
176
727
  #
@@ -207,6 +758,20 @@ module Revox
207
758
  # @return [Symbol, Revox::Models::CallCreateResponse::Call::CallAttempt::Status]
208
759
  required :status, enum: -> { Revox::Models::CallCreateResponse::Call::CallAttempt::Status }
209
760
 
761
+ # @!attribute end_reason
762
+ # Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
763
+ # 'voicemail', 'transfer', 'ivr_no_navigate'.
764
+ #
765
+ # @return [String, nil]
766
+ optional :end_reason, String, nil?: true
767
+
768
+ # @!attribute ended_by
769
+ # Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or
770
+ # 'system' (e.g. max duration limit).
771
+ #
772
+ # @return [Symbol, Revox::Models::CallCreateResponse::Call::CallAttempt::EndedBy, nil]
773
+ optional :ended_by, enum: -> { Revox::Models::CallCreateResponse::Call::CallAttempt::EndedBy }, nil?: true
774
+
210
775
  # @!attribute structured_output
211
776
  # The data extracted from the call, using the structured output config from the
212
777
  # parent call object.
@@ -224,7 +789,7 @@ module Revox
224
789
  -> { Revox::Internal::Type::ArrayOf[Revox::Models::CallCreateResponse::Call::CallAttempt::Transcript] },
225
790
  nil?: true
226
791
 
227
- # @!method initialize(id:, answered_at:, ended_at:, phone_number:, recording_url:, result:, started_at:, status:, structured_output: nil, transcript: nil)
792
+ # @!method initialize(id:, answered_at:, dial_error:, ended_at:, phone_number:, recording_url:, result:, started_at:, status:, end_reason: nil, ended_by: nil, structured_output: nil, transcript: nil)
228
793
  # Some parameter documentations has been truncated, see
229
794
  # {Revox::Models::CallCreateResponse::Call::CallAttempt} for more details.
230
795
  #
@@ -235,6 +800,8 @@ module Revox
235
800
  #
236
801
  # @param answered_at [Object] The time the call was answered.
237
802
  #
803
+ # @param dial_error [Symbol, Revox::Models::CallCreateResponse::Call::CallAttempt::DialError, nil] The SIP error that occurred.
804
+ #
238
805
  # @param ended_at [Object] The time the call ended.
239
806
  #
240
807
  # @param phone_number [String] The phone number that was called. Formatted in E.164 format. Example: +123456789
@@ -247,10 +814,33 @@ module Revox
247
814
  #
248
815
  # @param status [Symbol, Revox::Models::CallCreateResponse::Call::CallAttempt::Status] The status of the call attempt.
249
816
  #
817
+ # @param end_reason [String, nil] Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call', 'voic
818
+ #
819
+ # @param ended_by [Symbol, Revox::Models::CallCreateResponse::Call::CallAttempt::EndedBy, nil] Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or 'syst
820
+ #
250
821
  # @param structured_output [Hash{Symbol=>Object}, nil] The data extracted from the call, using the structured output config from the pa
251
822
  #
252
823
  # @param transcript [Array<Revox::Models::CallCreateResponse::Call::CallAttempt::Transcript>, nil] The transcript of the call.
253
824
 
825
+ # The SIP error that occurred.
826
+ #
827
+ # @see Revox::Models::CallCreateResponse::Call::CallAttempt#dial_error
828
+ module DialError
829
+ extend Revox::Internal::Type::Enum
830
+
831
+ NUMBER_NON_ATTRIBUTED = :number_non_attributed
832
+ TOO_MANY_CALLS = :too_many_calls
833
+ BUSY = :busy
834
+ TEMPORARILY_UNAVAILABLE = :temporarily_unavailable
835
+ NO_ANSWER = :no_answer
836
+ NO_INTERNATIONAL_PERMISSION = :no_international_permission
837
+ PRECONDITION_FAILED = :precondition_failed
838
+ NON_CLASSIFIED_ERROR = :non_classified_error
839
+
840
+ # @!method self.values
841
+ # @return [Array<Symbol>]
842
+ end
843
+
254
844
  # @see Revox::Models::CallCreateResponse::Call::CallAttempt#result
255
845
  module Result
256
846
  extend Revox::Internal::Type::Enum
@@ -259,6 +849,7 @@ module Revox
259
849
  VOICEMAIL = :voicemail
260
850
  HUMAN = :human
261
851
  UNKNOWN = :unknown
852
+ IOS_SCREENING_FILTER = :"ios-screening-filter"
262
853
 
263
854
  # @!method self.values
264
855
  # @return [Array<Symbol>]
@@ -274,6 +865,22 @@ module Revox
274
865
  RINGING = :ringing
275
866
  ONGOING = :ongoing
276
867
  COMPLETED = :completed
868
+ ERROR = :error
869
+
870
+ # @!method self.values
871
+ # @return [Array<Symbol>]
872
+ end
873
+
874
+ # Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or
875
+ # 'system' (e.g. max duration limit).
876
+ #
877
+ # @see Revox::Models::CallCreateResponse::Call::CallAttempt#ended_by
878
+ module EndedBy
879
+ extend Revox::Internal::Type::Enum
880
+
881
+ AGENT = :agent
882
+ USER = :user
883
+ SYSTEM = :system
277
884
 
278
885
  # @!method self.values
279
886
  # @return [Array<Symbol>]
@@ -413,6 +1020,23 @@ module Revox
413
1020
  end
414
1021
  end
415
1022
 
1023
+ # @see Revox::Models::CallCreateResponse::Call#campaign
1024
+ class Campaign < Revox::Internal::Type::BaseModel
1025
+ # @!attribute id
1026
+ #
1027
+ # @return [String]
1028
+ required :id, String
1029
+
1030
+ # @!attribute name
1031
+ #
1032
+ # @return [String]
1033
+ required :name, String
1034
+
1035
+ # @!method initialize(id:, name:)
1036
+ # @param id [String]
1037
+ # @param name [String]
1038
+ end
1039
+
416
1040
  # Whether the call is inbound or outbound.
417
1041
  #
418
1042
  # @see Revox::Models::CallCreateResponse::Call#direction
@@ -440,6 +1064,14 @@ module Revox
440
1064
  # @return [Object]
441
1065
  required :answered_at, Revox::Internal::Type::Unknown
442
1066
 
1067
+ # @!attribute dial_error
1068
+ # The SIP error that occurred.
1069
+ #
1070
+ # @return [Symbol, Revox::Models::CallCreateResponse::Call::LastCallAttempt::DialError, nil]
1071
+ required :dial_error,
1072
+ enum: -> { Revox::Models::CallCreateResponse::Call::LastCallAttempt::DialError },
1073
+ nil?: true
1074
+
443
1075
  # @!attribute ended_at
444
1076
  # The time the call ended.
445
1077
  #
@@ -478,6 +1110,22 @@ module Revox
478
1110
  # @return [Symbol, Revox::Models::CallCreateResponse::Call::LastCallAttempt::Status]
479
1111
  required :status, enum: -> { Revox::Models::CallCreateResponse::Call::LastCallAttempt::Status }
480
1112
 
1113
+ # @!attribute end_reason
1114
+ # Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
1115
+ # 'voicemail', 'transfer', 'ivr_no_navigate'.
1116
+ #
1117
+ # @return [String, nil]
1118
+ optional :end_reason, String, nil?: true
1119
+
1120
+ # @!attribute ended_by
1121
+ # Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or
1122
+ # 'system' (e.g. max duration limit).
1123
+ #
1124
+ # @return [Symbol, Revox::Models::CallCreateResponse::Call::LastCallAttempt::EndedBy, nil]
1125
+ optional :ended_by,
1126
+ enum: -> { Revox::Models::CallCreateResponse::Call::LastCallAttempt::EndedBy },
1127
+ nil?: true
1128
+
481
1129
  # @!attribute structured_output
482
1130
  # The data extracted from the call, using the structured output config from the
483
1131
  # parent call object.
@@ -495,7 +1143,7 @@ module Revox
495
1143
  -> { Revox::Internal::Type::ArrayOf[Revox::Models::CallCreateResponse::Call::LastCallAttempt::Transcript] },
496
1144
  nil?: true
497
1145
 
498
- # @!method initialize(id:, answered_at:, ended_at:, phone_number:, recording_url:, result:, started_at:, status:, structured_output: nil, transcript: nil)
1146
+ # @!method initialize(id:, answered_at:, dial_error:, ended_at:, phone_number:, recording_url:, result:, started_at:, status:, end_reason: nil, ended_by: nil, structured_output: nil, transcript: nil)
499
1147
  # Some parameter documentations has been truncated, see
500
1148
  # {Revox::Models::CallCreateResponse::Call::LastCallAttempt} for more details.
501
1149
  #
@@ -506,6 +1154,8 @@ module Revox
506
1154
  #
507
1155
  # @param answered_at [Object] The time the call was answered.
508
1156
  #
1157
+ # @param dial_error [Symbol, Revox::Models::CallCreateResponse::Call::LastCallAttempt::DialError, nil] The SIP error that occurred.
1158
+ #
509
1159
  # @param ended_at [Object] The time the call ended.
510
1160
  #
511
1161
  # @param phone_number [String] The phone number that was called. Formatted in E.164 format. Example: +123456789
@@ -518,10 +1168,33 @@ module Revox
518
1168
  #
519
1169
  # @param status [Symbol, Revox::Models::CallCreateResponse::Call::LastCallAttempt::Status] The status of the call attempt.
520
1170
  #
1171
+ # @param end_reason [String, nil] Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call', 'voic
1172
+ #
1173
+ # @param ended_by [Symbol, Revox::Models::CallCreateResponse::Call::LastCallAttempt::EndedBy, nil] Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or 'syst
1174
+ #
521
1175
  # @param structured_output [Hash{Symbol=>Object}, nil] The data extracted from the call, using the structured output config from the pa
522
1176
  #
523
1177
  # @param transcript [Array<Revox::Models::CallCreateResponse::Call::LastCallAttempt::Transcript>, nil] The transcript of the call.
524
1178
 
1179
+ # The SIP error that occurred.
1180
+ #
1181
+ # @see Revox::Models::CallCreateResponse::Call::LastCallAttempt#dial_error
1182
+ module DialError
1183
+ extend Revox::Internal::Type::Enum
1184
+
1185
+ NUMBER_NON_ATTRIBUTED = :number_non_attributed
1186
+ TOO_MANY_CALLS = :too_many_calls
1187
+ BUSY = :busy
1188
+ TEMPORARILY_UNAVAILABLE = :temporarily_unavailable
1189
+ NO_ANSWER = :no_answer
1190
+ NO_INTERNATIONAL_PERMISSION = :no_international_permission
1191
+ PRECONDITION_FAILED = :precondition_failed
1192
+ NON_CLASSIFIED_ERROR = :non_classified_error
1193
+
1194
+ # @!method self.values
1195
+ # @return [Array<Symbol>]
1196
+ end
1197
+
525
1198
  # @see Revox::Models::CallCreateResponse::Call::LastCallAttempt#result
526
1199
  module Result
527
1200
  extend Revox::Internal::Type::Enum
@@ -530,6 +1203,7 @@ module Revox
530
1203
  VOICEMAIL = :voicemail
531
1204
  HUMAN = :human
532
1205
  UNKNOWN = :unknown
1206
+ IOS_SCREENING_FILTER = :"ios-screening-filter"
533
1207
 
534
1208
  # @!method self.values
535
1209
  # @return [Array<Symbol>]
@@ -545,6 +1219,22 @@ module Revox
545
1219
  RINGING = :ringing
546
1220
  ONGOING = :ongoing
547
1221
  COMPLETED = :completed
1222
+ ERROR = :error
1223
+
1224
+ # @!method self.values
1225
+ # @return [Array<Symbol>]
1226
+ end
1227
+
1228
+ # Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or
1229
+ # 'system' (e.g. max duration limit).
1230
+ #
1231
+ # @see Revox::Models::CallCreateResponse::Call::LastCallAttempt#ended_by
1232
+ module EndedBy
1233
+ extend Revox::Internal::Type::Enum
1234
+
1235
+ AGENT = :agent
1236
+ USER = :user
1237
+ SYSTEM = :system
548
1238
 
549
1239
  # @!method self.values
550
1240
  # @return [Array<Symbol>]
@@ -678,6 +1368,24 @@ module Revox
678
1368
  # @!method self.variants
679
1369
  # @return [Array(Revox::Models::CallCreateResponse::Call::LlmModel::UnionMember0, Revox::Models::CallCreateResponse::Call::LlmModel::UnionMember1)]
680
1370
  end
1371
+
1372
+ # The status of the call.
1373
+ #
1374
+ # @see Revox::Models::CallCreateResponse::Call#status
1375
+ module Status
1376
+ extend Revox::Internal::Type::Enum
1377
+
1378
+ INITIALIZING = :initializing
1379
+ QUEUED_FOR_CALLING = :queued_for_calling
1380
+ CALLING = :calling
1381
+ SCHEDULED = :scheduled
1382
+ COMPLETED = :completed
1383
+ CANCELLED = :cancelled
1384
+ ERRORED = :errored
1385
+
1386
+ # @!method self.values
1387
+ # @return [Array<Symbol>]
1388
+ end
681
1389
  end
682
1390
  end
683
1391
  end