revox 0.0.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +96 -0
  3. data/README.md +88 -22
  4. data/lib/revox/client.rb +19 -1
  5. data/lib/revox/internal/transport/base_client.rb +5 -0
  6. data/lib/revox/internal/type/base_model.rb +3 -3
  7. data/lib/revox/internal/util.rb +53 -7
  8. data/lib/revox/models/assistant_create_params.rb +1036 -11
  9. data/lib/revox/models/assistant_create_response.rb +1071 -11
  10. data/lib/revox/models/assistant_delete_params.rb +7 -1
  11. data/lib/revox/models/assistant_list_response.rb +1070 -11
  12. data/lib/revox/models/assistant_retrieve_params.rb +7 -1
  13. data/lib/revox/models/assistant_retrieve_response.rb +1066 -11
  14. data/lib/revox/models/assistant_update_params.rb +1043 -11
  15. data/lib/revox/models/assistant_update_response.rb +1097 -12
  16. data/lib/revox/models/call_create_params.rb +1063 -11
  17. data/lib/revox/models/call_create_response.rb +2507 -87
  18. data/lib/revox/models/call_retrieve_params.rb +7 -1
  19. data/lib/revox/models/call_retrieve_response.rb +2512 -87
  20. data/lib/revox/models/campaign_cancel_params.rb +20 -0
  21. data/lib/revox/models/campaign_cancel_response.rb +16 -0
  22. data/lib/revox/models/campaign_create_params.rb +239 -0
  23. data/lib/revox/models/campaign_create_response.rb +2030 -0
  24. data/lib/revox/models/campaign_delete_params.rb +20 -0
  25. data/lib/revox/models/campaign_delete_response.rb +16 -0
  26. data/lib/revox/models/campaign_export_rows_params.rb +20 -0
  27. data/lib/revox/models/campaign_export_rows_response.rb +22 -0
  28. data/lib/revox/models/campaign_get_rows_params.rb +20 -0
  29. data/lib/revox/models/campaign_get_rows_response.rb +3176 -0
  30. data/lib/revox/models/campaign_list_params.rb +14 -0
  31. data/lib/revox/models/campaign_list_response.rb +2024 -0
  32. data/lib/revox/models/campaign_retrieve_params.rb +20 -0
  33. data/lib/revox/models/campaign_retrieve_response.rb +2032 -0
  34. data/lib/revox/models/users/me_retrieve_response.rb +13 -1
  35. data/lib/revox/models/users/me_update_response.rb +13 -1
  36. data/lib/revox/models/voice_list_response.rb +55 -1
  37. data/lib/revox/models/voice_preview_params.rb +43 -3
  38. data/lib/revox/models/voice_retrieve_params.rb +7 -1
  39. data/lib/revox/models.rb +14 -2
  40. data/lib/revox/resources/assistants.rb +138 -6
  41. data/lib/revox/resources/call.rb +10 -27
  42. data/lib/revox/resources/campaigns.rb +176 -0
  43. data/lib/revox/resources/voices.rb +17 -7
  44. data/lib/revox/version.rb +1 -1
  45. data/lib/revox.rb +15 -2
  46. data/rbi/revox/client.rbi +3 -0
  47. data/rbi/revox/internal/util.rbi +28 -0
  48. data/rbi/revox/models/assistant_create_params.rbi +2135 -102
  49. data/rbi/revox/models/assistant_create_response.rbi +2454 -199
  50. data/rbi/revox/models/assistant_delete_params.rbi +11 -5
  51. data/rbi/revox/models/assistant_list_response.rbi +2448 -195
  52. data/rbi/revox/models/assistant_retrieve_params.rbi +11 -5
  53. data/rbi/revox/models/assistant_retrieve_response.rbi +2401 -210
  54. data/rbi/revox/models/assistant_update_params.rbi +2139 -100
  55. data/rbi/revox/models/assistant_update_response.rbi +2504 -198
  56. data/rbi/revox/models/call_create_params.rbi +2377 -222
  57. data/rbi/revox/models/call_create_response.rbi +5840 -594
  58. data/rbi/revox/models/call_retrieve_params.rbi +11 -5
  59. data/rbi/revox/models/call_retrieve_response.rbi +5872 -618
  60. data/rbi/revox/models/campaign_cancel_params.rbi +33 -0
  61. data/rbi/revox/models/campaign_cancel_response.rbi +23 -0
  62. data/rbi/revox/models/campaign_create_params.rbi +433 -0
  63. data/rbi/revox/models/campaign_create_response.rbi +4170 -0
  64. data/rbi/revox/models/campaign_delete_params.rbi +33 -0
  65. data/rbi/revox/models/campaign_delete_response.rbi +23 -0
  66. data/rbi/revox/models/campaign_export_rows_params.rbi +33 -0
  67. data/rbi/revox/models/campaign_export_rows_response.rbi +29 -0
  68. data/rbi/revox/models/campaign_get_rows_params.rbi +33 -0
  69. data/rbi/revox/models/campaign_get_rows_response.rbi +6706 -0
  70. data/rbi/revox/models/campaign_list_params.rbi +27 -0
  71. data/rbi/revox/models/campaign_list_response.rbi +4156 -0
  72. data/rbi/revox/models/campaign_retrieve_params.rbi +33 -0
  73. data/rbi/revox/models/campaign_retrieve_response.rbi +4175 -0
  74. data/rbi/revox/models/users/me_retrieve_response.rbi +13 -3
  75. data/rbi/revox/models/users/me_update_response.rbi +13 -3
  76. data/rbi/revox/models/voice_list_response.rbi +105 -3
  77. data/rbi/revox/models/voice_preview_params.rbi +60 -2
  78. data/rbi/revox/models/voice_retrieve_params.rbi +6 -1
  79. data/rbi/revox/models.rbi +14 -2
  80. data/rbi/revox/resources/assistants.rbi +301 -6
  81. data/rbi/revox/resources/call.rbi +10 -19
  82. data/rbi/revox/resources/campaigns.rbi +121 -0
  83. data/rbi/revox/resources/voices.rbi +15 -5
  84. data/sig/revox/client.rbs +2 -0
  85. data/sig/revox/internal/util.rbs +14 -0
  86. data/sig/revox/models/assistant_create_params.rbs +841 -4
  87. data/sig/revox/models/assistant_create_response.rbs +860 -3
  88. data/sig/revox/models/assistant_delete_params.rbs +8 -3
  89. data/sig/revox/models/assistant_list_response.rbs +860 -3
  90. data/sig/revox/models/assistant_retrieve_params.rbs +8 -3
  91. data/sig/revox/models/assistant_retrieve_response.rbs +859 -3
  92. data/sig/revox/models/assistant_update_params.rbs +846 -4
  93. data/sig/revox/models/assistant_update_response.rbs +886 -6
  94. data/sig/revox/models/call_create_params.rbs +844 -6
  95. data/sig/revox/models/call_create_response.rbs +2166 -79
  96. data/sig/revox/models/call_retrieve_params.rbs +9 -3
  97. data/sig/revox/models/call_retrieve_response.rbs +2166 -79
  98. data/sig/revox/models/campaign_cancel_params.rbs +20 -0
  99. data/sig/revox/models/campaign_cancel_response.rbs +13 -0
  100. data/sig/revox/models/campaign_create_params.rbs +203 -0
  101. data/sig/revox/models/campaign_create_response.rbs +1694 -0
  102. data/sig/revox/models/campaign_delete_params.rbs +20 -0
  103. data/sig/revox/models/campaign_delete_response.rbs +13 -0
  104. data/sig/revox/models/campaign_export_rows_params.rbs +20 -0
  105. data/sig/revox/models/campaign_export_rows_response.rbs +15 -0
  106. data/sig/revox/models/campaign_get_rows_params.rbs +20 -0
  107. data/sig/revox/models/campaign_get_rows_response.rbs +2688 -0
  108. data/sig/revox/models/campaign_list_params.rbs +14 -0
  109. data/sig/revox/models/campaign_list_response.rbs +1694 -0
  110. data/sig/revox/models/campaign_retrieve_params.rbs +20 -0
  111. data/sig/revox/models/campaign_retrieve_response.rbs +1694 -0
  112. data/sig/revox/models/users/me_retrieve_response.rbs +8 -3
  113. data/sig/revox/models/users/me_update_response.rbs +8 -3
  114. data/sig/revox/models/voice_list_response.rbs +45 -3
  115. data/sig/revox/models/voice_preview_params.rbs +35 -1
  116. data/sig/revox/models/voice_retrieve_params.rbs +5 -1
  117. data/sig/revox/models.rbs +14 -2
  118. data/sig/revox/resources/assistants.rbs +54 -0
  119. data/sig/revox/resources/call.rbs +0 -6
  120. data/sig/revox/resources/campaigns.rbs +49 -0
  121. data/sig/revox/resources/voices.rbs +3 -0
  122. metadata +47 -8
  123. data/lib/revox/models/call_list_params.rb +0 -29
  124. data/lib/revox/models/call_list_response.rb +0 -197
  125. data/rbi/revox/models/call_list_params.rbi +0 -47
  126. data/rbi/revox/models/call_list_response.rbi +0 -401
  127. data/sig/revox/models/call_list_params.rbs +0 -28
  128. data/sig/revox/models/call_list_response.rbs +0 -171
@@ -0,0 +1,1694 @@
1
+ module Revox
2
+ module Models
3
+ type campaign_retrieve_response =
4
+ { campaign: Revox::Models::CampaignRetrieveResponse::Campaign }
5
+
6
+ class CampaignRetrieveResponse < Revox::Internal::Type::BaseModel
7
+ attr_accessor campaign: Revox::Models::CampaignRetrieveResponse::Campaign
8
+
9
+ def initialize: (
10
+ campaign: Revox::Models::CampaignRetrieveResponse::Campaign
11
+ ) -> void
12
+
13
+ def to_hash: -> {
14
+ campaign: Revox::Models::CampaignRetrieveResponse::Campaign
15
+ }
16
+
17
+ type campaign =
18
+ {
19
+ id: String,
20
+ assistant_id: String,
21
+ created_at: top,
22
+ is_cancelled: bool,
23
+ name: String,
24
+ organization_id: String,
25
+ status: Revox::Models::CampaignRetrieveResponse::Campaign::status,
26
+ type: Revox::Models::CampaignRetrieveResponse::Campaign::type_,
27
+ updated_at: top,
28
+ active_takeover_call_id: String?,
29
+ assistant: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant,
30
+ call_retry_config: Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig?,
31
+ created_by: Revox::Models::CampaignRetrieveResponse::Campaign::CreatedBy?,
32
+ from_phone_number: String?,
33
+ funnel_stats: Revox::Models::CampaignRetrieveResponse::Campaign::FunnelStats,
34
+ max_concurrent_calls: Float?,
35
+ paused_reason: Revox::Models::CampaignRetrieveResponse::Campaign::paused_reason?,
36
+ present_count: Float,
37
+ row_stats: Revox::Models::CampaignRetrieveResponse::Campaign::RowStats,
38
+ scheduled_at: top,
39
+ structured_output_extraction: Revox::Models::CampaignRetrieveResponse::Campaign::structured_output_extraction
40
+ }
41
+
42
+ class Campaign < Revox::Internal::Type::BaseModel
43
+ attr_accessor id: String
44
+
45
+ attr_accessor assistant_id: String
46
+
47
+ attr_accessor created_at: top
48
+
49
+ attr_accessor is_cancelled: bool
50
+
51
+ attr_accessor name: String
52
+
53
+ attr_accessor organization_id: String
54
+
55
+ attr_accessor status: Revox::Models::CampaignRetrieveResponse::Campaign::status
56
+
57
+ attr_accessor type: Revox::Models::CampaignRetrieveResponse::Campaign::type_
58
+
59
+ attr_accessor updated_at: top
60
+
61
+ attr_accessor active_takeover_call_id: String?
62
+
63
+ attr_reader assistant: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant?
64
+
65
+ def assistant=: (
66
+ Revox::Models::CampaignRetrieveResponse::Campaign::Assistant
67
+ ) -> Revox::Models::CampaignRetrieveResponse::Campaign::Assistant
68
+
69
+ attr_accessor call_retry_config: Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig?
70
+
71
+ attr_accessor created_by: Revox::Models::CampaignRetrieveResponse::Campaign::CreatedBy?
72
+
73
+ attr_accessor from_phone_number: String?
74
+
75
+ attr_reader funnel_stats: Revox::Models::CampaignRetrieveResponse::Campaign::FunnelStats?
76
+
77
+ def funnel_stats=: (
78
+ Revox::Models::CampaignRetrieveResponse::Campaign::FunnelStats
79
+ ) -> Revox::Models::CampaignRetrieveResponse::Campaign::FunnelStats
80
+
81
+ attr_accessor max_concurrent_calls: Float?
82
+
83
+ attr_accessor paused_reason: Revox::Models::CampaignRetrieveResponse::Campaign::paused_reason?
84
+
85
+ attr_reader present_count: Float?
86
+
87
+ def present_count=: (Float) -> Float
88
+
89
+ attr_reader row_stats: Revox::Models::CampaignRetrieveResponse::Campaign::RowStats?
90
+
91
+ def row_stats=: (
92
+ Revox::Models::CampaignRetrieveResponse::Campaign::RowStats
93
+ ) -> Revox::Models::CampaignRetrieveResponse::Campaign::RowStats
94
+
95
+ attr_reader scheduled_at: top?
96
+
97
+ def scheduled_at=: (top) -> top
98
+
99
+ attr_reader structured_output_extraction: Revox::Models::CampaignRetrieveResponse::Campaign::structured_output_extraction?
100
+
101
+ def structured_output_extraction=: (
102
+ Revox::Models::CampaignRetrieveResponse::Campaign::structured_output_extraction
103
+ ) -> Revox::Models::CampaignRetrieveResponse::Campaign::structured_output_extraction
104
+
105
+ def initialize: (
106
+ id: String,
107
+ assistant_id: String,
108
+ created_at: top,
109
+ is_cancelled: bool,
110
+ name: String,
111
+ organization_id: String,
112
+ status: Revox::Models::CampaignRetrieveResponse::Campaign::status,
113
+ type: Revox::Models::CampaignRetrieveResponse::Campaign::type_,
114
+ updated_at: top,
115
+ ?active_takeover_call_id: String?,
116
+ ?assistant: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant,
117
+ ?call_retry_config: Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig?,
118
+ ?created_by: Revox::Models::CampaignRetrieveResponse::Campaign::CreatedBy?,
119
+ ?from_phone_number: String?,
120
+ ?funnel_stats: Revox::Models::CampaignRetrieveResponse::Campaign::FunnelStats,
121
+ ?max_concurrent_calls: Float?,
122
+ ?paused_reason: Revox::Models::CampaignRetrieveResponse::Campaign::paused_reason?,
123
+ ?present_count: Float,
124
+ ?row_stats: Revox::Models::CampaignRetrieveResponse::Campaign::RowStats,
125
+ ?scheduled_at: top,
126
+ ?structured_output_extraction: Revox::Models::CampaignRetrieveResponse::Campaign::structured_output_extraction
127
+ ) -> void
128
+
129
+ def to_hash: -> {
130
+ id: String,
131
+ assistant_id: String,
132
+ created_at: top,
133
+ is_cancelled: bool,
134
+ name: String,
135
+ organization_id: String,
136
+ status: Revox::Models::CampaignRetrieveResponse::Campaign::status,
137
+ type: Revox::Models::CampaignRetrieveResponse::Campaign::type_,
138
+ updated_at: top,
139
+ active_takeover_call_id: String?,
140
+ assistant: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant,
141
+ call_retry_config: Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig?,
142
+ created_by: Revox::Models::CampaignRetrieveResponse::Campaign::CreatedBy?,
143
+ from_phone_number: String?,
144
+ funnel_stats: Revox::Models::CampaignRetrieveResponse::Campaign::FunnelStats,
145
+ max_concurrent_calls: Float?,
146
+ paused_reason: Revox::Models::CampaignRetrieveResponse::Campaign::paused_reason?,
147
+ present_count: Float,
148
+ row_stats: Revox::Models::CampaignRetrieveResponse::Campaign::RowStats,
149
+ scheduled_at: top,
150
+ structured_output_extraction: Revox::Models::CampaignRetrieveResponse::Campaign::structured_output_extraction
151
+ }
152
+
153
+ type status = :draft | :running | :paused | :completed
154
+
155
+ module Status
156
+ extend Revox::Internal::Type::Enum
157
+
158
+ DRAFT: :draft
159
+ RUNNING: :running
160
+ PAUSED: :paused
161
+ COMPLETED: :completed
162
+
163
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::status]
164
+ end
165
+
166
+ type type_ = :regular | :jump_in
167
+
168
+ module Type
169
+ extend Revox::Internal::Type::Enum
170
+
171
+ REGULAR: :regular
172
+ JUMP_IN: :jump_in
173
+
174
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::type_]
175
+ end
176
+
177
+ type assistant =
178
+ {
179
+ id: String,
180
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::after_call_sms_outcome]?,
181
+ after_call_sms_prompt: String?,
182
+ background_sound: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::background_sound?,
183
+ background_sound_volume: Float,
184
+ calendly: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Calendly?,
185
+ call_retry_config: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig?,
186
+ cartesia_dictionary_pronunciation_id: String?,
187
+ created_at: top,
188
+ custom_tools: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool]?,
189
+ email_notification_address: String?,
190
+ email_notification_language: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::email_notification_language,
191
+ email_notification_outcomes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::email_notification_outcome]?,
192
+ end_of_call_sentence: String?,
193
+ first_sentence: String?,
194
+ first_sentence_delay_ms: Integer,
195
+ first_sentence_mode: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::first_sentence_mode,
196
+ from_phone_number: String?,
197
+ human_transfer_mode: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::human_transfer_mode?,
198
+ ivr_navigation_enabled: bool,
199
+ llm_model: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::llm_model,
200
+ logo_url: String?,
201
+ max_call_duration_secs: Float,
202
+ max_duration_end_message: String?,
203
+ name: String,
204
+ organization_id: String,
205
+ position: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Position?,
206
+ prompt: String,
207
+ prompt_flow: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow?,
208
+ slack: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack?,
209
+ sms_enabled: bool,
210
+ sms_template: String?,
211
+ structured_output_config: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig]?,
212
+ structured_output_prompt: String?,
213
+ stt_context: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext?,
214
+ stt_model: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::stt_model,
215
+ thinking_sound: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::thinking_sound?,
216
+ thinking_sound_probability: Float,
217
+ thinking_sound_volume: Float,
218
+ transfer_phone_number: String?,
219
+ type: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::type_,
220
+ updated_at: top,
221
+ voice: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice?,
222
+ voicemail_message: String?,
223
+ voicemail_sms_prompt: String?,
224
+ warm_transfer_summary_instructions: String?,
225
+ webhook_url: String?,
226
+ zoho: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho?,
227
+ created_by: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CreatedBy?,
228
+ faq_items: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem],
229
+ is_realestate_assistant: bool,
230
+ pending_faq_count: Float
231
+ }
232
+
233
+ class Assistant < Revox::Internal::Type::BaseModel
234
+ attr_accessor id: String
235
+
236
+ attr_accessor after_call_sms_outcomes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::after_call_sms_outcome]?
237
+
238
+ attr_accessor after_call_sms_prompt: String?
239
+
240
+ attr_accessor background_sound: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::background_sound?
241
+
242
+ attr_accessor background_sound_volume: Float
243
+
244
+ attr_accessor calendly: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Calendly?
245
+
246
+ attr_accessor call_retry_config: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig?
247
+
248
+ attr_accessor cartesia_dictionary_pronunciation_id: String?
249
+
250
+ attr_accessor created_at: top
251
+
252
+ attr_accessor custom_tools: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool]?
253
+
254
+ attr_accessor email_notification_address: String?
255
+
256
+ attr_accessor email_notification_language: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::email_notification_language
257
+
258
+ attr_accessor email_notification_outcomes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::email_notification_outcome]?
259
+
260
+ attr_accessor end_of_call_sentence: String?
261
+
262
+ attr_accessor first_sentence: String?
263
+
264
+ attr_accessor first_sentence_delay_ms: Integer
265
+
266
+ attr_accessor first_sentence_mode: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::first_sentence_mode
267
+
268
+ attr_accessor from_phone_number: String?
269
+
270
+ attr_accessor human_transfer_mode: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::human_transfer_mode?
271
+
272
+ attr_accessor ivr_navigation_enabled: bool
273
+
274
+ attr_accessor llm_model: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::llm_model
275
+
276
+ attr_accessor logo_url: String?
277
+
278
+ attr_accessor max_call_duration_secs: Float
279
+
280
+ attr_accessor max_duration_end_message: String?
281
+
282
+ attr_accessor name: String
283
+
284
+ attr_accessor organization_id: String
285
+
286
+ attr_accessor position: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Position?
287
+
288
+ attr_accessor prompt: String
289
+
290
+ attr_accessor prompt_flow: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow?
291
+
292
+ attr_accessor slack: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack?
293
+
294
+ attr_accessor sms_enabled: bool
295
+
296
+ attr_accessor sms_template: String?
297
+
298
+ attr_accessor structured_output_config: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig]?
299
+
300
+ attr_accessor structured_output_prompt: String?
301
+
302
+ attr_accessor stt_context: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext?
303
+
304
+ attr_accessor stt_model: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::stt_model
305
+
306
+ attr_accessor thinking_sound: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::thinking_sound?
307
+
308
+ attr_accessor thinking_sound_probability: Float
309
+
310
+ attr_accessor thinking_sound_volume: Float
311
+
312
+ attr_accessor transfer_phone_number: String?
313
+
314
+ attr_accessor type: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::type_
315
+
316
+ attr_accessor updated_at: top
317
+
318
+ attr_accessor voice: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice?
319
+
320
+ attr_accessor voicemail_message: String?
321
+
322
+ attr_accessor voicemail_sms_prompt: String?
323
+
324
+ attr_accessor warm_transfer_summary_instructions: String?
325
+
326
+ attr_accessor webhook_url: String?
327
+
328
+ attr_accessor zoho: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho?
329
+
330
+ attr_accessor created_by: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CreatedBy?
331
+
332
+ attr_reader faq_items: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem]?
333
+
334
+ def faq_items=: (
335
+ ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem]
336
+ ) -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem]
337
+
338
+ attr_reader is_realestate_assistant: bool?
339
+
340
+ def is_realestate_assistant=: (bool) -> bool
341
+
342
+ attr_reader pending_faq_count: Float?
343
+
344
+ def pending_faq_count=: (Float) -> Float
345
+
346
+ def initialize: (
347
+ id: String,
348
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::after_call_sms_outcome]?,
349
+ after_call_sms_prompt: String?,
350
+ background_sound: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::background_sound?,
351
+ background_sound_volume: Float,
352
+ calendly: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Calendly?,
353
+ call_retry_config: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig?,
354
+ cartesia_dictionary_pronunciation_id: String?,
355
+ created_at: top,
356
+ custom_tools: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool]?,
357
+ email_notification_address: String?,
358
+ email_notification_language: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::email_notification_language,
359
+ email_notification_outcomes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::email_notification_outcome]?,
360
+ end_of_call_sentence: String?,
361
+ first_sentence: String?,
362
+ first_sentence_delay_ms: Integer,
363
+ first_sentence_mode: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::first_sentence_mode,
364
+ from_phone_number: String?,
365
+ human_transfer_mode: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::human_transfer_mode?,
366
+ ivr_navigation_enabled: bool,
367
+ llm_model: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::llm_model,
368
+ logo_url: String?,
369
+ max_call_duration_secs: Float,
370
+ max_duration_end_message: String?,
371
+ name: String,
372
+ organization_id: String,
373
+ position: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Position?,
374
+ prompt: String,
375
+ prompt_flow: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow?,
376
+ slack: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack?,
377
+ sms_enabled: bool,
378
+ sms_template: String?,
379
+ structured_output_config: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig]?,
380
+ structured_output_prompt: String?,
381
+ stt_context: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext?,
382
+ stt_model: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::stt_model,
383
+ thinking_sound: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::thinking_sound?,
384
+ thinking_sound_probability: Float,
385
+ thinking_sound_volume: Float,
386
+ transfer_phone_number: String?,
387
+ type: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::type_,
388
+ updated_at: top,
389
+ voice: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice?,
390
+ voicemail_message: String?,
391
+ voicemail_sms_prompt: String?,
392
+ warm_transfer_summary_instructions: String?,
393
+ webhook_url: String?,
394
+ zoho: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho?,
395
+ ?created_by: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CreatedBy?,
396
+ ?faq_items: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem],
397
+ ?is_realestate_assistant: bool,
398
+ ?pending_faq_count: Float
399
+ ) -> void
400
+
401
+ def to_hash: -> {
402
+ id: String,
403
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::after_call_sms_outcome]?,
404
+ after_call_sms_prompt: String?,
405
+ background_sound: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::background_sound?,
406
+ background_sound_volume: Float,
407
+ calendly: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Calendly?,
408
+ call_retry_config: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig?,
409
+ cartesia_dictionary_pronunciation_id: String?,
410
+ created_at: top,
411
+ custom_tools: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool]?,
412
+ email_notification_address: String?,
413
+ email_notification_language: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::email_notification_language,
414
+ email_notification_outcomes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::email_notification_outcome]?,
415
+ end_of_call_sentence: String?,
416
+ first_sentence: String?,
417
+ first_sentence_delay_ms: Integer,
418
+ first_sentence_mode: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::first_sentence_mode,
419
+ from_phone_number: String?,
420
+ human_transfer_mode: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::human_transfer_mode?,
421
+ ivr_navigation_enabled: bool,
422
+ llm_model: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::llm_model,
423
+ logo_url: String?,
424
+ max_call_duration_secs: Float,
425
+ max_duration_end_message: String?,
426
+ name: String,
427
+ organization_id: String,
428
+ position: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Position?,
429
+ prompt: String,
430
+ prompt_flow: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow?,
431
+ slack: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack?,
432
+ sms_enabled: bool,
433
+ sms_template: String?,
434
+ structured_output_config: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig]?,
435
+ structured_output_prompt: String?,
436
+ stt_context: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext?,
437
+ stt_model: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::stt_model,
438
+ thinking_sound: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::thinking_sound?,
439
+ thinking_sound_probability: Float,
440
+ thinking_sound_volume: Float,
441
+ transfer_phone_number: String?,
442
+ type: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::type_,
443
+ updated_at: top,
444
+ voice: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice?,
445
+ voicemail_message: String?,
446
+ voicemail_sms_prompt: String?,
447
+ warm_transfer_summary_instructions: String?,
448
+ webhook_url: String?,
449
+ zoho: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho?,
450
+ created_by: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CreatedBy?,
451
+ faq_items: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem],
452
+ is_realestate_assistant: bool,
453
+ pending_faq_count: Float
454
+ }
455
+
456
+ type after_call_sms_outcome =
457
+ :not_interested
458
+ | :interested
459
+ | :completed
460
+ | :requested_callback_later
461
+ | :requested_callback_new_number
462
+ | :do_not_contact
463
+ | :ai_averse
464
+ | :none
465
+
466
+ module AfterCallSMSOutcome
467
+ extend Revox::Internal::Type::Enum
468
+
469
+ NOT_INTERESTED: :not_interested
470
+ INTERESTED: :interested
471
+ COMPLETED: :completed
472
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
473
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
474
+ DO_NOT_CONTACT: :do_not_contact
475
+ AI_AVERSE: :ai_averse
476
+ NONE: :none
477
+
478
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::after_call_sms_outcome]
479
+ end
480
+
481
+ type background_sound = :"audio/office.ogg"
482
+
483
+ module BackgroundSound
484
+ extend Revox::Internal::Type::Enum
485
+
486
+ AUDIO_OFFICE_OGG: :"audio/office.ogg"
487
+
488
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::background_sound]
489
+ end
490
+
491
+ type calendly = { connection_id: String, event_type_id: String }
492
+
493
+ class Calendly < Revox::Internal::Type::BaseModel
494
+ attr_accessor connection_id: String
495
+
496
+ attr_accessor event_type_id: String
497
+
498
+ def initialize: (
499
+ connection_id: String,
500
+ event_type_id: String
501
+ ) -> void
502
+
503
+ def to_hash: -> { connection_id: String, event_type_id: String }
504
+ end
505
+
506
+ type call_retry_config =
507
+ {
508
+ allowed_days: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::allowed_day],
509
+ call_twice_in_a_row: bool,
510
+ calling_windows: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::CallingWindow],
511
+ max_retry_attempts: Integer,
512
+ timezone: String?
513
+ }
514
+
515
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
516
+ attr_accessor allowed_days: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::allowed_day]
517
+
518
+ attr_accessor call_twice_in_a_row: bool
519
+
520
+ attr_accessor calling_windows: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::CallingWindow]
521
+
522
+ attr_accessor max_retry_attempts: Integer
523
+
524
+ attr_accessor timezone: String?
525
+
526
+ def initialize: (
527
+ allowed_days: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::allowed_day],
528
+ call_twice_in_a_row: bool,
529
+ calling_windows: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::CallingWindow],
530
+ max_retry_attempts: Integer,
531
+ ?timezone: String?
532
+ ) -> void
533
+
534
+ def to_hash: -> {
535
+ allowed_days: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::allowed_day],
536
+ call_twice_in_a_row: bool,
537
+ calling_windows: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::CallingWindow],
538
+ max_retry_attempts: Integer,
539
+ timezone: String?
540
+ }
541
+
542
+ type allowed_day =
543
+ :monday
544
+ | :tuesday
545
+ | :wednesday
546
+ | :thursday
547
+ | :friday
548
+ | :saturday
549
+ | :sunday
550
+
551
+ module AllowedDay
552
+ extend Revox::Internal::Type::Enum
553
+
554
+ MONDAY: :monday
555
+ TUESDAY: :tuesday
556
+ WEDNESDAY: :wednesday
557
+ THURSDAY: :thursday
558
+ FRIDAY: :friday
559
+ SATURDAY: :saturday
560
+ SUNDAY: :sunday
561
+
562
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::allowed_day]
563
+ end
564
+
565
+ type calling_window =
566
+ {
567
+ calling_window_end_time: String,
568
+ calling_window_start_time: String,
569
+ retry_delay_seconds: Integer
570
+ }
571
+
572
+ class CallingWindow < Revox::Internal::Type::BaseModel
573
+ attr_accessor calling_window_end_time: String
574
+
575
+ attr_accessor calling_window_start_time: String
576
+
577
+ attr_accessor retry_delay_seconds: Integer
578
+
579
+ def initialize: (
580
+ calling_window_end_time: String,
581
+ calling_window_start_time: String,
582
+ retry_delay_seconds: Integer
583
+ ) -> void
584
+
585
+ def to_hash: -> {
586
+ calling_window_end_time: String,
587
+ calling_window_start_time: String,
588
+ retry_delay_seconds: Integer
589
+ }
590
+ end
591
+ end
592
+
593
+ type custom_tool =
594
+ {
595
+ body_template: String?,
596
+ description: String,
597
+ headers: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Header],
598
+ input_schema: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema],
599
+ method_: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::method_,
600
+ name: String,
601
+ query_params: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::QueryParam],
602
+ url: String
603
+ }
604
+
605
+ class CustomTool < Revox::Internal::Type::BaseModel
606
+ attr_accessor body_template: String?
607
+
608
+ attr_accessor description: String
609
+
610
+ attr_accessor headers: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Header]
611
+
612
+ attr_accessor input_schema: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema]
613
+
614
+ attr_accessor method_: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::method_
615
+
616
+ attr_accessor name: String
617
+
618
+ attr_accessor query_params: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::QueryParam]
619
+
620
+ attr_accessor url: String
621
+
622
+ def initialize: (
623
+ body_template: String?,
624
+ description: String,
625
+ headers: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Header],
626
+ input_schema: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema],
627
+ method_: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::method_,
628
+ name: String,
629
+ query_params: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::QueryParam],
630
+ url: String
631
+ ) -> void
632
+
633
+ def to_hash: -> {
634
+ body_template: String?,
635
+ description: String,
636
+ headers: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Header],
637
+ input_schema: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema],
638
+ method_: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::method_,
639
+ name: String,
640
+ query_params: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::QueryParam],
641
+ url: String
642
+ }
643
+
644
+ type header = { key: String, value: String }
645
+
646
+ class Header < Revox::Internal::Type::BaseModel
647
+ attr_accessor key: String
648
+
649
+ attr_accessor value: String
650
+
651
+ def initialize: (key: String, value: String) -> void
652
+
653
+ def to_hash: -> { key: String, value: String }
654
+ end
655
+
656
+ type input_schema =
657
+ {
658
+ name: String,
659
+ required: bool,
660
+ type: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::type_,
661
+ description: String,
662
+ enum_options: ::Array[String]
663
+ }
664
+
665
+ class InputSchema < Revox::Internal::Type::BaseModel
666
+ attr_accessor name: String
667
+
668
+ attr_accessor required: bool
669
+
670
+ attr_accessor type: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::type_
671
+
672
+ attr_reader description: String?
673
+
674
+ def description=: (String) -> String
675
+
676
+ attr_reader enum_options: ::Array[String]?
677
+
678
+ def enum_options=: (::Array[String]) -> ::Array[String]
679
+
680
+ def initialize: (
681
+ name: String,
682
+ required: bool,
683
+ type: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::type_,
684
+ ?description: String,
685
+ ?enum_options: ::Array[String]
686
+ ) -> void
687
+
688
+ def to_hash: -> {
689
+ name: String,
690
+ required: bool,
691
+ type: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::type_,
692
+ description: String,
693
+ enum_options: ::Array[String]
694
+ }
695
+
696
+ type type_ =
697
+ :string | :number | :boolean | :enum | :date | :datetime
698
+
699
+ module Type
700
+ extend Revox::Internal::Type::Enum
701
+
702
+ STRING: :string
703
+ NUMBER: :number
704
+ BOOLEAN: :boolean
705
+ ENUM: :enum
706
+ DATE: :date
707
+ DATETIME: :datetime
708
+
709
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::type_]
710
+ end
711
+ end
712
+
713
+ type method_ = :GET | :POST | :PUT | :PATCH | :DELETE
714
+
715
+ module Method
716
+ extend Revox::Internal::Type::Enum
717
+
718
+ GET: :GET
719
+ POST: :POST
720
+ PUT: :PUT
721
+ PATCH: :PATCH
722
+ DELETE: :DELETE
723
+
724
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::method_]
725
+ end
726
+
727
+ type query_param = { key: String, value: String }
728
+
729
+ class QueryParam < Revox::Internal::Type::BaseModel
730
+ attr_accessor key: String
731
+
732
+ attr_accessor value: String
733
+
734
+ def initialize: (key: String, value: String) -> void
735
+
736
+ def to_hash: -> { key: String, value: String }
737
+ end
738
+ end
739
+
740
+ type email_notification_language = :en | :fr
741
+
742
+ module EmailNotificationLanguage
743
+ extend Revox::Internal::Type::Enum
744
+
745
+ EN: :en
746
+ FR: :fr
747
+
748
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::email_notification_language]
749
+ end
750
+
751
+ type email_notification_outcome =
752
+ :not_interested
753
+ | :interested
754
+ | :completed
755
+ | :requested_callback_later
756
+ | :requested_callback_new_number
757
+ | :do_not_contact
758
+ | :ai_averse
759
+ | :none
760
+
761
+ module EmailNotificationOutcome
762
+ extend Revox::Internal::Type::Enum
763
+
764
+ NOT_INTERESTED: :not_interested
765
+ INTERESTED: :interested
766
+ COMPLETED: :completed
767
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
768
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
769
+ DO_NOT_CONTACT: :do_not_contact
770
+ AI_AVERSE: :ai_averse
771
+ NONE: :none
772
+
773
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::email_notification_outcome]
774
+ end
775
+
776
+ type first_sentence_mode = :generated | :static | :none
777
+
778
+ module FirstSentenceMode
779
+ extend Revox::Internal::Type::Enum
780
+
781
+ GENERATED: :generated
782
+ STATIC: :static
783
+ NONE: :none
784
+
785
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::first_sentence_mode]
786
+ end
787
+
788
+ type human_transfer_mode = :warm | :cold
789
+
790
+ module HumanTransferMode
791
+ extend Revox::Internal::Type::Enum
792
+
793
+ WARM: :warm
794
+ COLD: :cold
795
+
796
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::human_transfer_mode]
797
+ end
798
+
799
+ type llm_model =
800
+ Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember0
801
+ | Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember1
802
+ | Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember2
803
+ | Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember3
804
+
805
+ module LlmModel
806
+ extend Revox::Internal::Type::Union
807
+
808
+ type union_member0 =
809
+ {
810
+ name: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember0::name_,
811
+ type: :"dedicated-instance"
812
+ }
813
+
814
+ class UnionMember0 < Revox::Internal::Type::BaseModel
815
+ attr_accessor name: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember0::name_
816
+
817
+ attr_accessor type: :"dedicated-instance"
818
+
819
+ def initialize: (
820
+ name: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember0::name_,
821
+ ?type: :"dedicated-instance"
822
+ ) -> void
823
+
824
+ def to_hash: -> {
825
+ name: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember0::name_,
826
+ type: :"dedicated-instance"
827
+ }
828
+
829
+ type name_ = :"gpt-4.1" | :"ministral-3-8b-instruct"
830
+
831
+ module Name
832
+ extend Revox::Internal::Type::Enum
833
+
834
+ GPT_4_1: :"gpt-4.1"
835
+ MINISTRAL_3_8B_INSTRUCT: :"ministral-3-8b-instruct"
836
+
837
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember0::name_]
838
+ end
839
+ end
840
+
841
+ type union_member1 =
842
+ {
843
+ openrouter_model_id: String,
844
+ openrouter_provider: String,
845
+ type: :openrouter
846
+ }
847
+
848
+ class UnionMember1 < Revox::Internal::Type::BaseModel
849
+ attr_accessor openrouter_model_id: String
850
+
851
+ attr_accessor openrouter_provider: String
852
+
853
+ attr_accessor type: :openrouter
854
+
855
+ def initialize: (
856
+ openrouter_model_id: String,
857
+ openrouter_provider: String,
858
+ ?type: :openrouter
859
+ ) -> void
860
+
861
+ def to_hash: -> {
862
+ openrouter_model_id: String,
863
+ openrouter_provider: String,
864
+ type: :openrouter
865
+ }
866
+ end
867
+
868
+ type union_member2 =
869
+ {
870
+ api_key: String,
871
+ api_url: String,
872
+ model_name: String,
873
+ type: :custom
874
+ }
875
+
876
+ class UnionMember2 < Revox::Internal::Type::BaseModel
877
+ attr_accessor api_key: String
878
+
879
+ attr_accessor api_url: String
880
+
881
+ attr_accessor model_name: String
882
+
883
+ attr_accessor type: :custom
884
+
885
+ def initialize: (
886
+ api_key: String,
887
+ api_url: String,
888
+ model_name: String,
889
+ ?type: :custom
890
+ ) -> void
891
+
892
+ def to_hash: -> {
893
+ api_key: String,
894
+ api_url: String,
895
+ model_name: String,
896
+ type: :custom
897
+ }
898
+ end
899
+
900
+ type union_member3 =
901
+ {
902
+ provider: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember3::provider,
903
+ realtime_model_id: String,
904
+ type: :realtime,
905
+ realtime_voice_id: String
906
+ }
907
+
908
+ class UnionMember3 < Revox::Internal::Type::BaseModel
909
+ attr_accessor provider: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember3::provider
910
+
911
+ attr_accessor realtime_model_id: String
912
+
913
+ attr_accessor type: :realtime
914
+
915
+ attr_reader realtime_voice_id: String?
916
+
917
+ def realtime_voice_id=: (String) -> String
918
+
919
+ def initialize: (
920
+ provider: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember3::provider,
921
+ realtime_model_id: String,
922
+ ?realtime_voice_id: String,
923
+ ?type: :realtime
924
+ ) -> void
925
+
926
+ def to_hash: -> {
927
+ provider: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember3::provider,
928
+ realtime_model_id: String,
929
+ type: :realtime,
930
+ realtime_voice_id: String
931
+ }
932
+
933
+ type provider = :openai | :google
934
+
935
+ module Provider
936
+ extend Revox::Internal::Type::Enum
937
+
938
+ OPENAI: :openai
939
+ GOOGLE: :google
940
+
941
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember3::provider]
942
+ end
943
+ end
944
+
945
+ def self?.variants: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::llm_model]
946
+ end
947
+
948
+ type position = { x: Float, y_: Float }
949
+
950
+ class Position < Revox::Internal::Type::BaseModel
951
+ attr_accessor x: Float
952
+
953
+ attr_accessor y_: Float
954
+
955
+ def initialize: (x: Float, y_: Float) -> void
956
+
957
+ def to_hash: -> { x: Float, y_: Float }
958
+ end
959
+
960
+ type prompt_flow =
961
+ {
962
+ edges: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Edge],
963
+ nodes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node]
964
+ }
965
+
966
+ class PromptFlow < Revox::Internal::Type::BaseModel
967
+ attr_accessor edges: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Edge]
968
+
969
+ attr_accessor nodes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node]
970
+
971
+ def initialize: (
972
+ edges: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Edge],
973
+ nodes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node]
974
+ ) -> void
975
+
976
+ def to_hash: -> {
977
+ edges: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Edge],
978
+ nodes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node]
979
+ }
980
+
981
+ type edge = { id: String, source: String, target: String }
982
+
983
+ class Edge < Revox::Internal::Type::BaseModel
984
+ attr_accessor id: String
985
+
986
+ attr_accessor source: String
987
+
988
+ attr_accessor target: String
989
+
990
+ def initialize: (
991
+ id: String,
992
+ source: String,
993
+ target: String
994
+ ) -> void
995
+
996
+ def to_hash: -> { id: String, source: String, target: String }
997
+ end
998
+
999
+ type node =
1000
+ {
1001
+ id: String,
1002
+ data: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Data,
1003
+ position: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Position,
1004
+ type: :promptBlock
1005
+ }
1006
+
1007
+ class Node < Revox::Internal::Type::BaseModel
1008
+ attr_accessor id: String
1009
+
1010
+ attr_accessor data: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Data
1011
+
1012
+ attr_accessor position: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Position
1013
+
1014
+ attr_accessor type: :promptBlock
1015
+
1016
+ def initialize: (
1017
+ id: String,
1018
+ data: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Data,
1019
+ position: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Position,
1020
+ ?type: :promptBlock
1021
+ ) -> void
1022
+
1023
+ def to_hash: -> {
1024
+ id: String,
1025
+ data: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Data,
1026
+ position: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Position,
1027
+ type: :promptBlock
1028
+ }
1029
+
1030
+ type data = { body: String, title: String }
1031
+
1032
+ class Data < Revox::Internal::Type::BaseModel
1033
+ attr_accessor body: String
1034
+
1035
+ attr_accessor title: String
1036
+
1037
+ def initialize: (body: String, title: String) -> void
1038
+
1039
+ def to_hash: -> { body: String, title: String }
1040
+ end
1041
+
1042
+ type position = { x: Float, y_: Float }
1043
+
1044
+ class Position < Revox::Internal::Type::BaseModel
1045
+ attr_accessor x: Float
1046
+
1047
+ attr_accessor y_: Float
1048
+
1049
+ def initialize: (x: Float, y_: Float) -> void
1050
+
1051
+ def to_hash: -> { x: Float, y_: Float }
1052
+ end
1053
+ end
1054
+ end
1055
+
1056
+ type slack =
1057
+ {
1058
+ channel_id: String,
1059
+ connection_id: String,
1060
+ outcomes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::outcome],
1061
+ channel_name: String?,
1062
+ template: String?
1063
+ }
1064
+
1065
+ class Slack < Revox::Internal::Type::BaseModel
1066
+ attr_accessor channel_id: String
1067
+
1068
+ attr_accessor connection_id: String
1069
+
1070
+ attr_accessor outcomes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::outcome]
1071
+
1072
+ attr_accessor channel_name: String?
1073
+
1074
+ attr_accessor template: String?
1075
+
1076
+ def initialize: (
1077
+ channel_id: String,
1078
+ connection_id: String,
1079
+ outcomes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::outcome],
1080
+ ?channel_name: String?,
1081
+ ?template: String?
1082
+ ) -> void
1083
+
1084
+ def to_hash: -> {
1085
+ channel_id: String,
1086
+ connection_id: String,
1087
+ outcomes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::outcome],
1088
+ channel_name: String?,
1089
+ template: String?
1090
+ }
1091
+
1092
+ type outcome =
1093
+ :not_interested
1094
+ | :interested
1095
+ | :completed
1096
+ | :requested_callback_later
1097
+ | :requested_callback_new_number
1098
+ | :do_not_contact
1099
+ | :ai_averse
1100
+ | :none
1101
+
1102
+ module Outcome
1103
+ extend Revox::Internal::Type::Enum
1104
+
1105
+ NOT_INTERESTED: :not_interested
1106
+ INTERESTED: :interested
1107
+ COMPLETED: :completed
1108
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
1109
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1110
+ DO_NOT_CONTACT: :do_not_contact
1111
+ AI_AVERSE: :ai_averse
1112
+ NONE: :none
1113
+
1114
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::outcome]
1115
+ end
1116
+ end
1117
+
1118
+ type structured_output_config =
1119
+ {
1120
+ name: String,
1121
+ required: bool,
1122
+ type: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::type_,
1123
+ description: String,
1124
+ enum_options: ::Array[String]
1125
+ }
1126
+
1127
+ class StructuredOutputConfig < Revox::Internal::Type::BaseModel
1128
+ attr_accessor name: String
1129
+
1130
+ attr_accessor required: bool
1131
+
1132
+ attr_accessor type: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::type_
1133
+
1134
+ attr_reader description: String?
1135
+
1136
+ def description=: (String) -> String
1137
+
1138
+ attr_reader enum_options: ::Array[String]?
1139
+
1140
+ def enum_options=: (::Array[String]) -> ::Array[String]
1141
+
1142
+ def initialize: (
1143
+ name: String,
1144
+ required: bool,
1145
+ type: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::type_,
1146
+ ?description: String,
1147
+ ?enum_options: ::Array[String]
1148
+ ) -> void
1149
+
1150
+ def to_hash: -> {
1151
+ name: String,
1152
+ required: bool,
1153
+ type: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::type_,
1154
+ description: String,
1155
+ enum_options: ::Array[String]
1156
+ }
1157
+
1158
+ type type_ =
1159
+ :string | :number | :boolean | :enum | :date | :datetime
1160
+
1161
+ module Type
1162
+ extend Revox::Internal::Type::Enum
1163
+
1164
+ STRING: :string
1165
+ NUMBER: :number
1166
+ BOOLEAN: :boolean
1167
+ ENUM: :enum
1168
+ DATE: :date
1169
+ DATETIME: :datetime
1170
+
1171
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::type_]
1172
+ end
1173
+ end
1174
+
1175
+ type stt_context =
1176
+ {
1177
+ general: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext::General],
1178
+ terms: ::Array[String]
1179
+ }
1180
+
1181
+ class SttContext < Revox::Internal::Type::BaseModel
1182
+ attr_accessor general: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext::General]
1183
+
1184
+ attr_accessor terms: ::Array[String]
1185
+
1186
+ def initialize: (
1187
+ general: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext::General],
1188
+ terms: ::Array[String]
1189
+ ) -> void
1190
+
1191
+ def to_hash: -> {
1192
+ general: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext::General],
1193
+ terms: ::Array[String]
1194
+ }
1195
+
1196
+ type general = { key: String, value: String }
1197
+
1198
+ class General < Revox::Internal::Type::BaseModel
1199
+ attr_accessor key: String
1200
+
1201
+ attr_accessor value: String
1202
+
1203
+ def initialize: (key: String, value: String) -> void
1204
+
1205
+ def to_hash: -> { key: String, value: String }
1206
+ end
1207
+ end
1208
+
1209
+ type stt_model = :"stt-rt-v4" | :"stt-rt-v5"
1210
+
1211
+ module SttModel
1212
+ extend Revox::Internal::Type::Enum
1213
+
1214
+ STT_RT_V4: :"stt-rt-v4"
1215
+ STT_RT_V5: :"stt-rt-v5"
1216
+
1217
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::stt_model]
1218
+ end
1219
+
1220
+ type thinking_sound =
1221
+ :"city-ambience.ogg"
1222
+ | :"forest-ambience.ogg"
1223
+ | :"office-ambience.ogg"
1224
+ | :"crowded-room.ogg"
1225
+ | :"keyboard-typing.ogg"
1226
+ | :"keyboard-typing2.ogg"
1227
+ | :"hold_music.ogg"
1228
+
1229
+ module ThinkingSound
1230
+ extend Revox::Internal::Type::Enum
1231
+
1232
+ CITY_AMBIENCE_OGG: :"city-ambience.ogg"
1233
+ FOREST_AMBIENCE_OGG: :"forest-ambience.ogg"
1234
+ OFFICE_AMBIENCE_OGG: :"office-ambience.ogg"
1235
+ CROWDED_ROOM_OGG: :"crowded-room.ogg"
1236
+ KEYBOARD_TYPING_OGG: :"keyboard-typing.ogg"
1237
+ KEYBOARD_TYPING2_OGG: :"keyboard-typing2.ogg"
1238
+ HOLD_MUSIC_OGG: :"hold_music.ogg"
1239
+
1240
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::thinking_sound]
1241
+ end
1242
+
1243
+ type type_ = :standalone | :"multi-step" | :"sub-assistant"
1244
+
1245
+ module Type
1246
+ extend Revox::Internal::Type::Enum
1247
+
1248
+ STANDALONE: :standalone
1249
+ MULTI_STEP: :"multi-step"
1250
+ SUB_ASSISTANT: :"sub-assistant"
1251
+
1252
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::type_]
1253
+ end
1254
+
1255
+ type voice =
1256
+ {
1257
+ id: String,
1258
+ provider: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::provider,
1259
+ model: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::model,
1260
+ speed: Float,
1261
+ volume: Float
1262
+ }
1263
+
1264
+ class Voice < Revox::Internal::Type::BaseModel
1265
+ attr_accessor id: String
1266
+
1267
+ attr_accessor provider: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::provider
1268
+
1269
+ attr_reader model: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::model?
1270
+
1271
+ def model=: (
1272
+ Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::model
1273
+ ) -> Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::model
1274
+
1275
+ attr_reader speed: Float?
1276
+
1277
+ def speed=: (Float) -> Float
1278
+
1279
+ attr_reader volume: Float?
1280
+
1281
+ def volume=: (Float) -> Float
1282
+
1283
+ def initialize: (
1284
+ id: String,
1285
+ provider: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::provider,
1286
+ ?model: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::model,
1287
+ ?speed: Float,
1288
+ ?volume: Float
1289
+ ) -> void
1290
+
1291
+ def to_hash: -> {
1292
+ id: String,
1293
+ provider: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::provider,
1294
+ model: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::model,
1295
+ speed: Float,
1296
+ volume: Float
1297
+ }
1298
+
1299
+ type provider = :cartesia | :elevenlabs
1300
+
1301
+ module Provider
1302
+ extend Revox::Internal::Type::Enum
1303
+
1304
+ CARTESIA: :cartesia
1305
+ ELEVENLABS: :elevenlabs
1306
+
1307
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::provider]
1308
+ end
1309
+
1310
+ type model = :"sonic-3" | :"sonic-3.5"
1311
+
1312
+ module Model
1313
+ extend Revox::Internal::Type::Enum
1314
+
1315
+ SONIC_3: :"sonic-3"
1316
+ SONIC_3_5: :"sonic-3.5"
1317
+
1318
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::model]
1319
+ end
1320
+ end
1321
+
1322
+ type zoho =
1323
+ {
1324
+ connection_id: String,
1325
+ field_mapping: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::FieldMapping],
1326
+ log_call_activity: bool,
1327
+ module_: String,
1328
+ outcomes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::outcome],
1329
+ template: String?
1330
+ }
1331
+
1332
+ class Zoho < Revox::Internal::Type::BaseModel
1333
+ attr_accessor connection_id: String
1334
+
1335
+ attr_accessor field_mapping: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::FieldMapping]
1336
+
1337
+ attr_accessor log_call_activity: bool
1338
+
1339
+ attr_accessor module_: String
1340
+
1341
+ attr_accessor outcomes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::outcome]
1342
+
1343
+ attr_accessor template: String?
1344
+
1345
+ def initialize: (
1346
+ connection_id: String,
1347
+ field_mapping: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::FieldMapping],
1348
+ log_call_activity: bool,
1349
+ module_: String,
1350
+ outcomes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::outcome],
1351
+ ?template: String?
1352
+ ) -> void
1353
+
1354
+ def to_hash: -> {
1355
+ connection_id: String,
1356
+ field_mapping: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::FieldMapping],
1357
+ log_call_activity: bool,
1358
+ module_: String,
1359
+ outcomes: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::outcome],
1360
+ template: String?
1361
+ }
1362
+
1363
+ type field_mapping = { source: String, zoho_field: String }
1364
+
1365
+ class FieldMapping < Revox::Internal::Type::BaseModel
1366
+ attr_accessor source: String
1367
+
1368
+ attr_accessor zoho_field: String
1369
+
1370
+ def initialize: (source: String, zoho_field: String) -> void
1371
+
1372
+ def to_hash: -> { source: String, zoho_field: String }
1373
+ end
1374
+
1375
+ type outcome =
1376
+ :not_interested
1377
+ | :interested
1378
+ | :completed
1379
+ | :requested_callback_later
1380
+ | :requested_callback_new_number
1381
+ | :do_not_contact
1382
+ | :ai_averse
1383
+ | :none
1384
+
1385
+ module Outcome
1386
+ extend Revox::Internal::Type::Enum
1387
+
1388
+ NOT_INTERESTED: :not_interested
1389
+ INTERESTED: :interested
1390
+ COMPLETED: :completed
1391
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
1392
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1393
+ DO_NOT_CONTACT: :do_not_contact
1394
+ AI_AVERSE: :ai_averse
1395
+ NONE: :none
1396
+
1397
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::outcome]
1398
+ end
1399
+ end
1400
+
1401
+ type created_by =
1402
+ {
1403
+ id: String,
1404
+ email: String,
1405
+ first_name: String?,
1406
+ last_name: String?
1407
+ }
1408
+
1409
+ class CreatedBy < Revox::Internal::Type::BaseModel
1410
+ attr_accessor id: String
1411
+
1412
+ attr_accessor email: String
1413
+
1414
+ attr_accessor first_name: String?
1415
+
1416
+ attr_accessor last_name: String?
1417
+
1418
+ def initialize: (
1419
+ id: String,
1420
+ email: String,
1421
+ first_name: String?,
1422
+ last_name: String?
1423
+ ) -> void
1424
+
1425
+ def to_hash: -> {
1426
+ id: String,
1427
+ email: String,
1428
+ first_name: String?,
1429
+ last_name: String?
1430
+ }
1431
+ end
1432
+
1433
+ type faq_item =
1434
+ {
1435
+ answer: String,
1436
+ question: String,
1437
+ id: String,
1438
+ needs_human_answer: bool,
1439
+ source: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem::source
1440
+ }
1441
+
1442
+ class FaqItem < Revox::Internal::Type::BaseModel
1443
+ attr_accessor answer: String
1444
+
1445
+ attr_accessor question: String
1446
+
1447
+ attr_reader id: String?
1448
+
1449
+ def id=: (String) -> String
1450
+
1451
+ attr_reader needs_human_answer: bool?
1452
+
1453
+ def needs_human_answer=: (bool) -> bool
1454
+
1455
+ attr_reader source: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem::source?
1456
+
1457
+ def source=: (
1458
+ Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem::source
1459
+ ) -> Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem::source
1460
+
1461
+ def initialize: (
1462
+ answer: String,
1463
+ question: String,
1464
+ ?id: String,
1465
+ ?needs_human_answer: bool,
1466
+ ?source: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem::source
1467
+ ) -> void
1468
+
1469
+ def to_hash: -> {
1470
+ answer: String,
1471
+ question: String,
1472
+ id: String,
1473
+ needs_human_answer: bool,
1474
+ source: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem::source
1475
+ }
1476
+
1477
+ type source = :human | :ai
1478
+
1479
+ module Source
1480
+ extend Revox::Internal::Type::Enum
1481
+
1482
+ HUMAN: :human
1483
+ AI: :ai
1484
+
1485
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem::source]
1486
+ end
1487
+ end
1488
+ end
1489
+
1490
+ type call_retry_config =
1491
+ {
1492
+ allowed_days: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::allowed_day],
1493
+ call_twice_in_a_row: bool,
1494
+ calling_windows: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::CallingWindow],
1495
+ max_retry_attempts: Integer,
1496
+ timezone: String?
1497
+ }
1498
+
1499
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
1500
+ attr_accessor allowed_days: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::allowed_day]
1501
+
1502
+ attr_accessor call_twice_in_a_row: bool
1503
+
1504
+ attr_accessor calling_windows: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::CallingWindow]
1505
+
1506
+ attr_accessor max_retry_attempts: Integer
1507
+
1508
+ attr_accessor timezone: String?
1509
+
1510
+ def initialize: (
1511
+ allowed_days: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::allowed_day],
1512
+ call_twice_in_a_row: bool,
1513
+ calling_windows: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::CallingWindow],
1514
+ max_retry_attempts: Integer,
1515
+ ?timezone: String?
1516
+ ) -> void
1517
+
1518
+ def to_hash: -> {
1519
+ allowed_days: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::allowed_day],
1520
+ call_twice_in_a_row: bool,
1521
+ calling_windows: ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::CallingWindow],
1522
+ max_retry_attempts: Integer,
1523
+ timezone: String?
1524
+ }
1525
+
1526
+ type allowed_day =
1527
+ :monday
1528
+ | :tuesday
1529
+ | :wednesday
1530
+ | :thursday
1531
+ | :friday
1532
+ | :saturday
1533
+ | :sunday
1534
+
1535
+ module AllowedDay
1536
+ extend Revox::Internal::Type::Enum
1537
+
1538
+ MONDAY: :monday
1539
+ TUESDAY: :tuesday
1540
+ WEDNESDAY: :wednesday
1541
+ THURSDAY: :thursday
1542
+ FRIDAY: :friday
1543
+ SATURDAY: :saturday
1544
+ SUNDAY: :sunday
1545
+
1546
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::allowed_day]
1547
+ end
1548
+
1549
+ type calling_window =
1550
+ {
1551
+ calling_window_end_time: String,
1552
+ calling_window_start_time: String,
1553
+ retry_delay_seconds: Integer
1554
+ }
1555
+
1556
+ class CallingWindow < Revox::Internal::Type::BaseModel
1557
+ attr_accessor calling_window_end_time: String
1558
+
1559
+ attr_accessor calling_window_start_time: String
1560
+
1561
+ attr_accessor retry_delay_seconds: Integer
1562
+
1563
+ def initialize: (
1564
+ calling_window_end_time: String,
1565
+ calling_window_start_time: String,
1566
+ retry_delay_seconds: Integer
1567
+ ) -> void
1568
+
1569
+ def to_hash: -> {
1570
+ calling_window_end_time: String,
1571
+ calling_window_start_time: String,
1572
+ retry_delay_seconds: Integer
1573
+ }
1574
+ end
1575
+ end
1576
+
1577
+ type created_by =
1578
+ { id: String, email: String, first_name: String?, last_name: String? }
1579
+
1580
+ class CreatedBy < Revox::Internal::Type::BaseModel
1581
+ attr_accessor id: String
1582
+
1583
+ attr_accessor email: String
1584
+
1585
+ attr_accessor first_name: String?
1586
+
1587
+ attr_accessor last_name: String?
1588
+
1589
+ def initialize: (
1590
+ id: String,
1591
+ email: String,
1592
+ first_name: String?,
1593
+ last_name: String?
1594
+ ) -> void
1595
+
1596
+ def to_hash: -> {
1597
+ id: String,
1598
+ email: String,
1599
+ first_name: String?,
1600
+ last_name: String?
1601
+ }
1602
+ end
1603
+
1604
+ type funnel_stats =
1605
+ { hot: Float, talked_to_human: Float, total_leads: Float }
1606
+
1607
+ class FunnelStats < Revox::Internal::Type::BaseModel
1608
+ attr_accessor hot: Float
1609
+
1610
+ attr_accessor talked_to_human: Float
1611
+
1612
+ attr_accessor total_leads: Float
1613
+
1614
+ def initialize: (
1615
+ hot: Float,
1616
+ talked_to_human: Float,
1617
+ total_leads: Float
1618
+ ) -> void
1619
+
1620
+ def to_hash: -> {
1621
+ hot: Float,
1622
+ talked_to_human: Float,
1623
+ total_leads: Float
1624
+ }
1625
+ end
1626
+
1627
+ type paused_reason = :manual | :no_presence
1628
+
1629
+ module PausedReason
1630
+ extend Revox::Internal::Type::Enum
1631
+
1632
+ MANUAL: :manual
1633
+ NO_PRESENCE: :no_presence
1634
+
1635
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::paused_reason]
1636
+ end
1637
+
1638
+ type row_stats =
1639
+ {
1640
+ calling: Float,
1641
+ completed: Float,
1642
+ failed: Float,
1643
+ pending: Float,
1644
+ retry_: Float,
1645
+ total: Float
1646
+ }
1647
+
1648
+ class RowStats < Revox::Internal::Type::BaseModel
1649
+ attr_accessor calling: Float
1650
+
1651
+ attr_accessor completed: Float
1652
+
1653
+ attr_accessor failed: Float
1654
+
1655
+ attr_accessor pending: Float
1656
+
1657
+ attr_accessor retry_: Float
1658
+
1659
+ attr_accessor total: Float
1660
+
1661
+ def initialize: (
1662
+ calling: Float,
1663
+ completed: Float,
1664
+ failed: Float,
1665
+ pending: Float,
1666
+ retry_: Float,
1667
+ total: Float
1668
+ ) -> void
1669
+
1670
+ def to_hash: -> {
1671
+ calling: Float,
1672
+ completed: Float,
1673
+ failed: Float,
1674
+ pending: Float,
1675
+ retry_: Float,
1676
+ total: Float
1677
+ }
1678
+ end
1679
+
1680
+ type structured_output_extraction = :none | :running | :completed
1681
+
1682
+ module StructuredOutputExtraction
1683
+ extend Revox::Internal::Type::Enum
1684
+
1685
+ NONE: :none
1686
+ RUNNING: :running
1687
+ COMPLETED: :completed
1688
+
1689
+ def self?.values: -> ::Array[Revox::Models::CampaignRetrieveResponse::Campaign::structured_output_extraction]
1690
+ end
1691
+ end
1692
+ end
1693
+ end
1694
+ end