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
@@ -0,0 +1,771 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::Campaigns#list
6
+ class CampaignListResponse < Revox::Internal::Type::BaseModel
7
+ # @!attribute campaigns
8
+ #
9
+ # @return [Array<Revox::Models::CampaignListResponse::Campaign>]
10
+ required :campaigns, -> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignListResponse::Campaign] }
11
+
12
+ # @!method initialize(campaigns:)
13
+ # @param campaigns [Array<Revox::Models::CampaignListResponse::Campaign>]
14
+
15
+ class Campaign < Revox::Internal::Type::BaseModel
16
+ # @!attribute id
17
+ #
18
+ # @return [String]
19
+ required :id, String
20
+
21
+ # @!attribute assistant_id
22
+ #
23
+ # @return [String]
24
+ required :assistant_id, String
25
+
26
+ # @!attribute created_at
27
+ #
28
+ # @return [Object]
29
+ required :created_at, Revox::Internal::Type::Unknown
30
+
31
+ # @!attribute is_cancelled
32
+ #
33
+ # @return [Boolean]
34
+ required :is_cancelled, Revox::Internal::Type::Boolean
35
+
36
+ # @!attribute name
37
+ #
38
+ # @return [String]
39
+ required :name, String
40
+
41
+ # @!attribute organization_id
42
+ #
43
+ # @return [String]
44
+ required :organization_id, String
45
+
46
+ # @!attribute status
47
+ #
48
+ # @return [Symbol, Revox::Models::CampaignListResponse::Campaign::Status]
49
+ required :status, enum: -> { Revox::Models::CampaignListResponse::Campaign::Status }
50
+
51
+ # @!attribute updated_at
52
+ #
53
+ # @return [Object]
54
+ required :updated_at, Revox::Internal::Type::Unknown
55
+
56
+ # @!attribute assistant
57
+ #
58
+ # @return [Revox::Models::CampaignListResponse::Campaign::Assistant, nil]
59
+ optional :assistant, -> { Revox::Models::CampaignListResponse::Campaign::Assistant }
60
+
61
+ # @!attribute call_retry_config
62
+ # Configuration for call retry behavior including time windows, delays, and max
63
+ # iterations. If not provided, defaults will be used.
64
+ #
65
+ # @return [Revox::Models::CampaignListResponse::Campaign::CallRetryConfig, nil]
66
+ optional :call_retry_config,
67
+ -> { Revox::Models::CampaignListResponse::Campaign::CallRetryConfig },
68
+ nil?: true
69
+
70
+ # @!attribute from_phone_number
71
+ #
72
+ # @return [String, nil]
73
+ optional :from_phone_number, String, nil?: true
74
+
75
+ # @!attribute max_concurrent_calls
76
+ #
77
+ # @return [Float, nil]
78
+ optional :max_concurrent_calls, Float, nil?: true
79
+
80
+ # @!attribute row_stats
81
+ #
82
+ # @return [Revox::Models::CampaignListResponse::Campaign::RowStats, nil]
83
+ optional :row_stats, -> { Revox::Models::CampaignListResponse::Campaign::RowStats }
84
+
85
+ # @!attribute scheduled_at
86
+ #
87
+ # @return [Object, nil]
88
+ optional :scheduled_at, Revox::Internal::Type::Unknown
89
+
90
+ # @!method initialize(id:, assistant_id:, created_at:, is_cancelled:, name:, organization_id:, status:, updated_at:, assistant: nil, call_retry_config: nil, from_phone_number: nil, max_concurrent_calls: nil, row_stats: nil, scheduled_at: nil)
91
+ # Some parameter documentations has been truncated, see
92
+ # {Revox::Models::CampaignListResponse::Campaign} for more details.
93
+ #
94
+ # @param id [String]
95
+ #
96
+ # @param assistant_id [String]
97
+ #
98
+ # @param created_at [Object]
99
+ #
100
+ # @param is_cancelled [Boolean]
101
+ #
102
+ # @param name [String]
103
+ #
104
+ # @param organization_id [String]
105
+ #
106
+ # @param status [Symbol, Revox::Models::CampaignListResponse::Campaign::Status]
107
+ #
108
+ # @param updated_at [Object]
109
+ #
110
+ # @param assistant [Revox::Models::CampaignListResponse::Campaign::Assistant]
111
+ #
112
+ # @param call_retry_config [Revox::Models::CampaignListResponse::Campaign::CallRetryConfig, nil] Configuration for call retry behavior including time windows, delays, and max it
113
+ #
114
+ # @param from_phone_number [String, nil]
115
+ #
116
+ # @param max_concurrent_calls [Float, nil]
117
+ #
118
+ # @param row_stats [Revox::Models::CampaignListResponse::Campaign::RowStats]
119
+ #
120
+ # @param scheduled_at [Object]
121
+
122
+ # @see Revox::Models::CampaignListResponse::Campaign#status
123
+ module Status
124
+ extend Revox::Internal::Type::Enum
125
+
126
+ DRAFT = :draft
127
+ RUNNING = :running
128
+ PAUSED = :paused
129
+ COMPLETED = :completed
130
+
131
+ # @!method self.values
132
+ # @return [Array<Symbol>]
133
+ end
134
+
135
+ # @see Revox::Models::CampaignListResponse::Campaign#assistant
136
+ class Assistant < Revox::Internal::Type::BaseModel
137
+ # @!attribute id
138
+ #
139
+ # @return [String]
140
+ required :id, String
141
+
142
+ # @!attribute background_sound
143
+ # The background sound to play during the call. Useful to give the impression that
144
+ # your AI agent is in an office.
145
+ #
146
+ # @return [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::BackgroundSound, nil]
147
+ required :background_sound,
148
+ enum: -> { Revox::Models::CampaignListResponse::Campaign::Assistant::BackgroundSound },
149
+ nil?: true
150
+
151
+ # @!attribute calendly
152
+ #
153
+ # @return [Revox::Models::CampaignListResponse::Campaign::Assistant::Calendly, nil]
154
+ required :calendly, -> { Revox::Models::CampaignListResponse::Campaign::Assistant::Calendly }, nil?: true
155
+
156
+ # @!attribute call_retry_config
157
+ # Configuration for call retry behavior including time windows, delays, and max
158
+ # iterations. If not provided, defaults will be used.
159
+ #
160
+ # @return [Revox::Models::CampaignListResponse::Campaign::Assistant::CallRetryConfig, nil]
161
+ required :call_retry_config,
162
+ -> { Revox::Models::CampaignListResponse::Campaign::Assistant::CallRetryConfig },
163
+ nil?: true
164
+
165
+ # @!attribute created_at
166
+ #
167
+ # @return [Object]
168
+ required :created_at, Revox::Internal::Type::Unknown
169
+
170
+ # @!attribute end_of_call_sentence
171
+ #
172
+ # @return [String, nil]
173
+ required :end_of_call_sentence, String, nil?: true
174
+
175
+ # @!attribute first_sentence
176
+ #
177
+ # @return [String, nil]
178
+ required :first_sentence, String, nil?: true
179
+
180
+ # @!attribute first_sentence_delay_ms
181
+ # Delay in milliseconds before speaking the first sentence. Default: 400.
182
+ #
183
+ # @return [Integer]
184
+ required :first_sentence_delay_ms, Integer
185
+
186
+ # @!attribute first_sentence_mode
187
+ #
188
+ # @return [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::FirstSentenceMode]
189
+ required :first_sentence_mode,
190
+ enum: -> { Revox::Models::CampaignListResponse::Campaign::Assistant::FirstSentenceMode }
191
+
192
+ # @!attribute ivr_navigation_enabled
193
+ # Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
194
+ # skip turns to navigate phone menus.
195
+ #
196
+ # @return [Boolean]
197
+ required :ivr_navigation_enabled, Revox::Internal::Type::Boolean
198
+
199
+ # @!attribute llm_model
200
+ #
201
+ # @return [Revox::Models::CampaignListResponse::Campaign::Assistant::LlmModel::UnionMember0, Revox::Models::CampaignListResponse::Campaign::Assistant::LlmModel::UnionMember1]
202
+ required :llm_model, union: -> { Revox::Models::CampaignListResponse::Campaign::Assistant::LlmModel }
203
+
204
+ # @!attribute max_call_duration_secs
205
+ # The maximum duration of the call in seconds. This is the maximum time the call
206
+ # will be allowed to run.
207
+ #
208
+ # @return [Float]
209
+ required :max_call_duration_secs, Float
210
+
211
+ # @!attribute name
212
+ #
213
+ # @return [String]
214
+ required :name, String
215
+
216
+ # @!attribute organization_id
217
+ #
218
+ # @return [String]
219
+ required :organization_id, String
220
+
221
+ # @!attribute prompt
222
+ #
223
+ # @return [String]
224
+ required :prompt, String
225
+
226
+ # @!attribute structured_output_config
227
+ # The structured output config to use for the call. This is used to extract the
228
+ # data from the call (like email, name, company name, etc.).
229
+ #
230
+ # @return [Array<Revox::Models::CampaignListResponse::Campaign::Assistant::StructuredOutputConfig>, nil]
231
+ required :structured_output_config,
232
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignListResponse::Campaign::Assistant::StructuredOutputConfig] },
233
+ nil?: true
234
+
235
+ # @!attribute transfer_phone_number
236
+ # Phone number to transfer calls to when users request to speak to a human agent.
237
+ #
238
+ # @return [String, nil]
239
+ required :transfer_phone_number, String, nil?: true
240
+
241
+ # @!attribute updated_at
242
+ #
243
+ # @return [Object]
244
+ required :updated_at, Revox::Internal::Type::Unknown
245
+
246
+ # @!attribute voice
247
+ #
248
+ # @return [Revox::Models::CampaignListResponse::Campaign::Assistant::Voice, nil]
249
+ required :voice, -> { Revox::Models::CampaignListResponse::Campaign::Assistant::Voice }, nil?: true
250
+
251
+ # @!attribute voicemail_message
252
+ # If set, when voicemail is detected the agent will speak this message then hang
253
+ # up; if null, hang up immediately.
254
+ #
255
+ # @return [String, nil]
256
+ required :voicemail_message, String, nil?: true
257
+
258
+ # @!attribute webhook_url
259
+ # The webhook URL to call when the call is completed.
260
+ #
261
+ # @return [String, nil]
262
+ required :webhook_url, String, nil?: true
263
+
264
+ # @!attribute faq_items
265
+ #
266
+ # @return [Array<Revox::Models::CampaignListResponse::Campaign::Assistant::FaqItem>, nil]
267
+ optional :faq_items,
268
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignListResponse::Campaign::Assistant::FaqItem] }
269
+
270
+ # @!attribute pending_faq_count
271
+ #
272
+ # @return [Float, nil]
273
+ optional :pending_faq_count, Float
274
+
275
+ # @!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)
276
+ # Some parameter documentations has been truncated, see
277
+ # {Revox::Models::CampaignListResponse::Campaign::Assistant} for more details.
278
+ #
279
+ # @param id [String]
280
+ #
281
+ # @param background_sound [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::BackgroundSound, nil] The background sound to play during the call. Useful to give the impression that
282
+ #
283
+ # @param calendly [Revox::Models::CampaignListResponse::Campaign::Assistant::Calendly, nil]
284
+ #
285
+ # @param call_retry_config [Revox::Models::CampaignListResponse::Campaign::Assistant::CallRetryConfig, nil] Configuration for call retry behavior including time windows, delays, and max it
286
+ #
287
+ # @param created_at [Object]
288
+ #
289
+ # @param end_of_call_sentence [String, nil]
290
+ #
291
+ # @param first_sentence [String, nil]
292
+ #
293
+ # @param first_sentence_delay_ms [Integer] Delay in milliseconds before speaking the first sentence. Default: 400.
294
+ #
295
+ # @param first_sentence_mode [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::FirstSentenceMode]
296
+ #
297
+ # @param ivr_navigation_enabled [Boolean] Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
298
+ #
299
+ # @param llm_model [Revox::Models::CampaignListResponse::Campaign::Assistant::LlmModel::UnionMember0, Revox::Models::CampaignListResponse::Campaign::Assistant::LlmModel::UnionMember1]
300
+ #
301
+ # @param max_call_duration_secs [Float] The maximum duration of the call in seconds. This is the maximum time the call w
302
+ #
303
+ # @param name [String]
304
+ #
305
+ # @param organization_id [String]
306
+ #
307
+ # @param prompt [String]
308
+ #
309
+ # @param structured_output_config [Array<Revox::Models::CampaignListResponse::Campaign::Assistant::StructuredOutputConfig>, nil] The structured output config to use for the call. This is used to extract the da
310
+ #
311
+ # @param transfer_phone_number [String, nil] Phone number to transfer calls to when users request to speak to a human agent.
312
+ #
313
+ # @param updated_at [Object]
314
+ #
315
+ # @param voice [Revox::Models::CampaignListResponse::Campaign::Assistant::Voice, nil]
316
+ #
317
+ # @param voicemail_message [String, nil] If set, when voicemail is detected the agent will speak this message then hang u
318
+ #
319
+ # @param webhook_url [String, nil] The webhook URL to call when the call is completed.
320
+ #
321
+ # @param faq_items [Array<Revox::Models::CampaignListResponse::Campaign::Assistant::FaqItem>]
322
+ #
323
+ # @param pending_faq_count [Float]
324
+
325
+ # The background sound to play during the call. Useful to give the impression that
326
+ # your AI agent is in an office.
327
+ #
328
+ # @see Revox::Models::CampaignListResponse::Campaign::Assistant#background_sound
329
+ module BackgroundSound
330
+ extend Revox::Internal::Type::Enum
331
+
332
+ AUDIO_OFFICE_OGG = :"audio/office.ogg"
333
+
334
+ # @!method self.values
335
+ # @return [Array<Symbol>]
336
+ end
337
+
338
+ # @see Revox::Models::CampaignListResponse::Campaign::Assistant#calendly
339
+ class Calendly < Revox::Internal::Type::BaseModel
340
+ # @!attribute connection_id
341
+ # The connection ID representing the link between your Calendly account and Revox.
342
+ #
343
+ # @return [String]
344
+ required :connection_id, String
345
+
346
+ # @!attribute event_type_id
347
+ # The event type ID representing the event type to schedule. (eg:
348
+ # https://api.calendly.com/event_types/b2330295-2a91-4a1d-bb73-99e7707663d5)
349
+ #
350
+ # @return [String]
351
+ required :event_type_id, String
352
+
353
+ # @!method initialize(connection_id:, event_type_id:)
354
+ # Some parameter documentations has been truncated, see
355
+ # {Revox::Models::CampaignListResponse::Campaign::Assistant::Calendly} for more
356
+ # details.
357
+ #
358
+ # @param connection_id [String] The connection ID representing the link between your Calendly account and Revox.
359
+ #
360
+ # @param event_type_id [String] The event type ID representing the event type to schedule. (eg: https://api.cale
361
+ end
362
+
363
+ # @see Revox::Models::CampaignListResponse::Campaign::Assistant#call_retry_config
364
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
365
+ # @!attribute calling_windows
366
+ #
367
+ # @return [Array<Revox::Models::CampaignListResponse::Campaign::Assistant::CallRetryConfig::CallingWindow>]
368
+ required :calling_windows,
369
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignListResponse::Campaign::Assistant::CallRetryConfig::CallingWindow] }
370
+
371
+ # @!attribute max_retry_attempts
372
+ # Maximum number of call retry attempts. Default: 3.
373
+ #
374
+ # @return [Integer]
375
+ required :max_retry_attempts, Integer
376
+
377
+ # @!attribute timezone
378
+ # Optional IANA timezone identifier to override the automatic timezone detection
379
+ # from phone number. If not provided, timezone is determined from the recipient's
380
+ # phone number country code. Examples: 'America/New_York', 'Europe/Paris'.
381
+ #
382
+ # @return [String, nil]
383
+ optional :timezone, String, nil?: true
384
+
385
+ # @!method initialize(calling_windows:, max_retry_attempts:, timezone: nil)
386
+ # Some parameter documentations has been truncated, see
387
+ # {Revox::Models::CampaignListResponse::Campaign::Assistant::CallRetryConfig} for
388
+ # more details.
389
+ #
390
+ # Configuration for call retry behavior including time windows, delays, and max
391
+ # iterations. If not provided, defaults will be used.
392
+ #
393
+ # @param calling_windows [Array<Revox::Models::CampaignListResponse::Campaign::Assistant::CallRetryConfig::CallingWindow>]
394
+ #
395
+ # @param max_retry_attempts [Integer] Maximum number of call retry attempts. Default: 3.
396
+ #
397
+ # @param timezone [String, nil] Optional IANA timezone identifier to override the automatic timezone detection f
398
+
399
+ class CallingWindow < Revox::Internal::Type::BaseModel
400
+ # @!attribute calling_window_end_time
401
+ # End time for the calling window in the recipient's timezone (or
402
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
403
+ # Examples: '17:00', '6pm'. Default: '18:00'.
404
+ #
405
+ # @return [String]
406
+ required :calling_window_end_time, String
407
+
408
+ # @!attribute calling_window_start_time
409
+ # Start time for the calling window in the recipient's timezone (or
410
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
411
+ # Examples: '09:00', '10am'. Default: '10:00'.
412
+ #
413
+ # @return [String]
414
+ required :calling_window_start_time, String
415
+
416
+ # @!attribute retry_delay_seconds
417
+ # Delay between retry attempts in seconds. Default: 7200 (2 hours).
418
+ #
419
+ # @return [Integer]
420
+ required :retry_delay_seconds, Integer
421
+
422
+ # @!method initialize(calling_window_end_time:, calling_window_start_time:, retry_delay_seconds:)
423
+ # Some parameter documentations has been truncated, see
424
+ # {Revox::Models::CampaignListResponse::Campaign::Assistant::CallRetryConfig::CallingWindow}
425
+ # for more details.
426
+ #
427
+ # @param calling_window_end_time [String] End time for the calling window in the recipient's timezone (or timezone_overrid
428
+ #
429
+ # @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
430
+ #
431
+ # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. Default: 7200 (2 hours).
432
+ end
433
+ end
434
+
435
+ # @see Revox::Models::CampaignListResponse::Campaign::Assistant#first_sentence_mode
436
+ module FirstSentenceMode
437
+ extend Revox::Internal::Type::Enum
438
+
439
+ GENERATED = :generated
440
+ STATIC = :static
441
+ NONE = :none
442
+
443
+ # @!method self.values
444
+ # @return [Array<Symbol>]
445
+ end
446
+
447
+ # @see Revox::Models::CampaignListResponse::Campaign::Assistant#llm_model
448
+ module LlmModel
449
+ extend Revox::Internal::Type::Union
450
+
451
+ variant -> { Revox::Models::CampaignListResponse::Campaign::Assistant::LlmModel::UnionMember0 }
452
+
453
+ variant -> { Revox::Models::CampaignListResponse::Campaign::Assistant::LlmModel::UnionMember1 }
454
+
455
+ class UnionMember0 < Revox::Internal::Type::BaseModel
456
+ # @!attribute name
457
+ #
458
+ # @return [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::LlmModel::UnionMember0::Name]
459
+ required :name,
460
+ enum: -> { Revox::Models::CampaignListResponse::Campaign::Assistant::LlmModel::UnionMember0::Name }
461
+
462
+ # @!attribute type
463
+ #
464
+ # @return [Symbol, :"dedicated-instance"]
465
+ required :type, const: :"dedicated-instance"
466
+
467
+ # @!method initialize(name:, type: :"dedicated-instance")
468
+ # @param name [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::LlmModel::UnionMember0::Name]
469
+ # @param type [Symbol, :"dedicated-instance"]
470
+
471
+ # @see Revox::Models::CampaignListResponse::Campaign::Assistant::LlmModel::UnionMember0#name
472
+ module Name
473
+ extend Revox::Internal::Type::Enum
474
+
475
+ GPT_4_1 = :"gpt-4.1"
476
+ MINISTRAL_3_8B_INSTRUCT = :"ministral-3-8b-instruct"
477
+
478
+ # @!method self.values
479
+ # @return [Array<Symbol>]
480
+ end
481
+ end
482
+
483
+ class UnionMember1 < Revox::Internal::Type::BaseModel
484
+ # @!attribute openrouter_model_id
485
+ # The model ID to use from OpenRouter. eg: openai/gpt-4.1
486
+ #
487
+ # @return [String]
488
+ required :openrouter_model_id, String
489
+
490
+ # @!attribute openrouter_provider
491
+ # The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
492
+ #
493
+ # @return [String]
494
+ required :openrouter_provider, String
495
+
496
+ # @!attribute type
497
+ # Use a model from OpenRouter.
498
+ #
499
+ # @return [Symbol, :openrouter]
500
+ required :type, const: :openrouter
501
+
502
+ # @!method initialize(openrouter_model_id:, openrouter_provider:, type: :openrouter)
503
+ # @param openrouter_model_id [String] The model ID to use from OpenRouter. eg: openai/gpt-4.1
504
+ #
505
+ # @param openrouter_provider [String] The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
506
+ #
507
+ # @param type [Symbol, :openrouter] Use a model from OpenRouter.
508
+ end
509
+
510
+ # @!method self.variants
511
+ # @return [Array(Revox::Models::CampaignListResponse::Campaign::Assistant::LlmModel::UnionMember0, Revox::Models::CampaignListResponse::Campaign::Assistant::LlmModel::UnionMember1)]
512
+ end
513
+
514
+ class StructuredOutputConfig < Revox::Internal::Type::BaseModel
515
+ # @!attribute name
516
+ #
517
+ # @return [String]
518
+ required :name, String
519
+
520
+ # @!attribute required
521
+ #
522
+ # @return [Boolean]
523
+ required :required, Revox::Internal::Type::Boolean
524
+
525
+ # @!attribute type
526
+ #
527
+ # @return [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::StructuredOutputConfig::Type]
528
+ required :type,
529
+ enum: -> { Revox::Models::CampaignListResponse::Campaign::Assistant::StructuredOutputConfig::Type }
530
+
531
+ # @!attribute description
532
+ #
533
+ # @return [String, nil]
534
+ optional :description, String
535
+
536
+ # @!attribute enum_options
537
+ #
538
+ # @return [Array<String>, nil]
539
+ optional :enum_options, Revox::Internal::Type::ArrayOf[String]
540
+
541
+ # @!method initialize(name:, required:, type:, description: nil, enum_options: nil)
542
+ # @param name [String]
543
+ # @param required [Boolean]
544
+ # @param type [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::StructuredOutputConfig::Type]
545
+ # @param description [String]
546
+ # @param enum_options [Array<String>]
547
+
548
+ # @see Revox::Models::CampaignListResponse::Campaign::Assistant::StructuredOutputConfig#type
549
+ module Type
550
+ extend Revox::Internal::Type::Enum
551
+
552
+ STRING = :string
553
+ NUMBER = :number
554
+ BOOLEAN = :boolean
555
+ ENUM = :enum
556
+ DATE = :date
557
+ DATETIME = :datetime
558
+
559
+ # @!method self.values
560
+ # @return [Array<Symbol>]
561
+ end
562
+ end
563
+
564
+ # @see Revox::Models::CampaignListResponse::Campaign::Assistant#voice
565
+ class Voice < Revox::Internal::Type::BaseModel
566
+ # @!attribute id
567
+ # The ID of the voice.
568
+ #
569
+ # @return [String]
570
+ required :id, String
571
+
572
+ # @!attribute provider
573
+ # The provider of the voice.
574
+ #
575
+ # @return [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::Voice::Provider]
576
+ required :provider, enum: -> { Revox::Models::CampaignListResponse::Campaign::Assistant::Voice::Provider }
577
+
578
+ # @!attribute speed
579
+ # The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
580
+ # 0.7–1.2. Default is 1.0.
581
+ #
582
+ # @return [Float, nil]
583
+ optional :speed, Float
584
+
585
+ # @!method initialize(id:, provider:, speed: nil)
586
+ # Some parameter documentations has been truncated, see
587
+ # {Revox::Models::CampaignListResponse::Campaign::Assistant::Voice} for more
588
+ # details.
589
+ #
590
+ # @param id [String] The ID of the voice.
591
+ #
592
+ # @param provider [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::Voice::Provider] The provider of the voice.
593
+ #
594
+ # @param speed [Float] The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
595
+
596
+ # The provider of the voice.
597
+ #
598
+ # @see Revox::Models::CampaignListResponse::Campaign::Assistant::Voice#provider
599
+ module Provider
600
+ extend Revox::Internal::Type::Enum
601
+
602
+ CARTESIA = :cartesia
603
+ ELEVENLABS = :elevenlabs
604
+
605
+ # @!method self.values
606
+ # @return [Array<Symbol>]
607
+ end
608
+ end
609
+
610
+ class FaqItem < Revox::Internal::Type::BaseModel
611
+ # @!attribute answer
612
+ #
613
+ # @return [String]
614
+ required :answer, String
615
+
616
+ # @!attribute question
617
+ #
618
+ # @return [String]
619
+ required :question, String
620
+
621
+ # @!attribute id
622
+ #
623
+ # @return [String, nil]
624
+ optional :id, String
625
+
626
+ # @!attribute needs_human_answer
627
+ #
628
+ # @return [Boolean, nil]
629
+ optional :needs_human_answer, Revox::Internal::Type::Boolean
630
+
631
+ # @!attribute source
632
+ #
633
+ # @return [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::FaqItem::Source, nil]
634
+ optional :source, enum: -> { Revox::Models::CampaignListResponse::Campaign::Assistant::FaqItem::Source }
635
+
636
+ # @!method initialize(answer:, question:, id: nil, needs_human_answer: nil, source: nil)
637
+ # @param answer [String]
638
+ # @param question [String]
639
+ # @param id [String]
640
+ # @param needs_human_answer [Boolean]
641
+ # @param source [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::FaqItem::Source]
642
+
643
+ # @see Revox::Models::CampaignListResponse::Campaign::Assistant::FaqItem#source
644
+ module Source
645
+ extend Revox::Internal::Type::Enum
646
+
647
+ HUMAN = :human
648
+ AI = :ai
649
+
650
+ # @!method self.values
651
+ # @return [Array<Symbol>]
652
+ end
653
+ end
654
+ end
655
+
656
+ # @see Revox::Models::CampaignListResponse::Campaign#call_retry_config
657
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
658
+ # @!attribute calling_windows
659
+ #
660
+ # @return [Array<Revox::Models::CampaignListResponse::Campaign::CallRetryConfig::CallingWindow>]
661
+ required :calling_windows,
662
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignListResponse::Campaign::CallRetryConfig::CallingWindow] }
663
+
664
+ # @!attribute max_retry_attempts
665
+ # Maximum number of call retry attempts. Default: 3.
666
+ #
667
+ # @return [Integer]
668
+ required :max_retry_attempts, Integer
669
+
670
+ # @!attribute timezone
671
+ # Optional IANA timezone identifier to override the automatic timezone detection
672
+ # from phone number. If not provided, timezone is determined from the recipient's
673
+ # phone number country code. Examples: 'America/New_York', 'Europe/Paris'.
674
+ #
675
+ # @return [String, nil]
676
+ optional :timezone, String, nil?: true
677
+
678
+ # @!method initialize(calling_windows:, max_retry_attempts:, timezone: nil)
679
+ # Some parameter documentations has been truncated, see
680
+ # {Revox::Models::CampaignListResponse::Campaign::CallRetryConfig} for more
681
+ # details.
682
+ #
683
+ # Configuration for call retry behavior including time windows, delays, and max
684
+ # iterations. If not provided, defaults will be used.
685
+ #
686
+ # @param calling_windows [Array<Revox::Models::CampaignListResponse::Campaign::CallRetryConfig::CallingWindow>]
687
+ #
688
+ # @param max_retry_attempts [Integer] Maximum number of call retry attempts. Default: 3.
689
+ #
690
+ # @param timezone [String, nil] Optional IANA timezone identifier to override the automatic timezone detection f
691
+
692
+ class CallingWindow < Revox::Internal::Type::BaseModel
693
+ # @!attribute calling_window_end_time
694
+ # End time for the calling window in the recipient's timezone (or
695
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
696
+ # Examples: '17:00', '6pm'. Default: '18:00'.
697
+ #
698
+ # @return [String]
699
+ required :calling_window_end_time, String
700
+
701
+ # @!attribute calling_window_start_time
702
+ # Start time for the calling window in the recipient's timezone (or
703
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
704
+ # Examples: '09:00', '10am'. Default: '10:00'.
705
+ #
706
+ # @return [String]
707
+ required :calling_window_start_time, String
708
+
709
+ # @!attribute retry_delay_seconds
710
+ # Delay between retry attempts in seconds. Default: 7200 (2 hours).
711
+ #
712
+ # @return [Integer]
713
+ required :retry_delay_seconds, Integer
714
+
715
+ # @!method initialize(calling_window_end_time:, calling_window_start_time:, retry_delay_seconds:)
716
+ # Some parameter documentations has been truncated, see
717
+ # {Revox::Models::CampaignListResponse::Campaign::CallRetryConfig::CallingWindow}
718
+ # for more details.
719
+ #
720
+ # @param calling_window_end_time [String] End time for the calling window in the recipient's timezone (or timezone_overrid
721
+ #
722
+ # @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
723
+ #
724
+ # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. Default: 7200 (2 hours).
725
+ end
726
+ end
727
+
728
+ # @see Revox::Models::CampaignListResponse::Campaign#row_stats
729
+ class RowStats < Revox::Internal::Type::BaseModel
730
+ # @!attribute calling
731
+ #
732
+ # @return [Float]
733
+ required :calling, Float
734
+
735
+ # @!attribute completed
736
+ #
737
+ # @return [Float]
738
+ required :completed, Float
739
+
740
+ # @!attribute failed
741
+ #
742
+ # @return [Float]
743
+ required :failed, Float
744
+
745
+ # @!attribute pending
746
+ #
747
+ # @return [Float]
748
+ required :pending, Float
749
+
750
+ # @!attribute retry_
751
+ #
752
+ # @return [Float]
753
+ required :retry_, Float, api_name: :retry
754
+
755
+ # @!attribute total
756
+ #
757
+ # @return [Float]
758
+ required :total, Float
759
+
760
+ # @!method initialize(calling:, completed:, failed:, pending:, retry_:, total:)
761
+ # @param calling [Float]
762
+ # @param completed [Float]
763
+ # @param failed [Float]
764
+ # @param pending [Float]
765
+ # @param retry_ [Float]
766
+ # @param total [Float]
767
+ end
768
+ end
769
+ end
770
+ end
771
+ end