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,2688 @@
1
+ module Revox
2
+ module Models
3
+ type campaign_get_rows_response =
4
+ { rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row] }
5
+
6
+ class CampaignGetRowsResponse < Revox::Internal::Type::BaseModel
7
+ attr_accessor rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row]
8
+
9
+ def initialize: (
10
+ rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row]
11
+ ) -> void
12
+
13
+ def to_hash: -> {
14
+ rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row]
15
+ }
16
+
17
+ type row =
18
+ {
19
+ id: String,
20
+ input_data: ::Hash[Symbol, String],
21
+ phone_number: String,
22
+ row_index: Float,
23
+ call: Revox::Models::CampaignGetRowsResponse::Row::Call
24
+ }
25
+
26
+ class Row < Revox::Internal::Type::BaseModel
27
+ attr_accessor id: String
28
+
29
+ attr_accessor input_data: ::Hash[Symbol, String]
30
+
31
+ attr_accessor phone_number: String
32
+
33
+ attr_accessor row_index: Float
34
+
35
+ attr_reader call: Revox::Models::CampaignGetRowsResponse::Row::Call?
36
+
37
+ def call=: (
38
+ Revox::Models::CampaignGetRowsResponse::Row::Call
39
+ ) -> Revox::Models::CampaignGetRowsResponse::Row::Call
40
+
41
+ def initialize: (
42
+ id: String,
43
+ input_data: ::Hash[Symbol, String],
44
+ phone_number: String,
45
+ row_index: Float,
46
+ ?call: Revox::Models::CampaignGetRowsResponse::Row::Call
47
+ ) -> void
48
+
49
+ def to_hash: -> {
50
+ id: String,
51
+ input_data: ::Hash[Symbol, String],
52
+ phone_number: String,
53
+ row_index: Float,
54
+ call: Revox::Models::CampaignGetRowsResponse::Row::Call
55
+ }
56
+
57
+ type call =
58
+ {
59
+ id: String,
60
+ assignee: Revox::Models::CampaignGetRowsResponse::Row::Call::Assignee?,
61
+ assistant: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant?,
62
+ call_attempts: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt],
63
+ call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig?,
64
+ calls_count: Float,
65
+ campaign: Revox::Models::CampaignGetRowsResponse::Row::Call::Campaign?,
66
+ contact: Revox::Models::CampaignGetRowsResponse::Row::Call::Contact,
67
+ created_at: top,
68
+ direction: Revox::Models::CampaignGetRowsResponse::Row::Call::direction,
69
+ first_sentence_delay_ms: Integer,
70
+ from_phone_number: String,
71
+ is_cancelled: bool,
72
+ is_completed: bool,
73
+ last_call_attempt: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt?,
74
+ llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::llm_model,
75
+ metadata: ::Hash[Symbol, String]?,
76
+ organization_id: String,
77
+ prompt_variables: ::Hash[Symbol, String]?,
78
+ scheduled_at: top,
79
+ status: Revox::Models::CampaignGetRowsResponse::Row::Call::status,
80
+ to_phone_number: String,
81
+ updated_at: top,
82
+ outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?,
83
+ outcome_summary: String?
84
+ }
85
+
86
+ class Call < Revox::Internal::Type::BaseModel
87
+ attr_accessor id: String
88
+
89
+ attr_accessor assignee: Revox::Models::CampaignGetRowsResponse::Row::Call::Assignee?
90
+
91
+ attr_accessor assistant: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant?
92
+
93
+ attr_accessor call_attempts: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt]
94
+
95
+ attr_accessor call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig?
96
+
97
+ attr_accessor calls_count: Float
98
+
99
+ attr_accessor campaign: Revox::Models::CampaignGetRowsResponse::Row::Call::Campaign?
100
+
101
+ attr_accessor contact: Revox::Models::CampaignGetRowsResponse::Row::Call::Contact
102
+
103
+ attr_accessor created_at: top
104
+
105
+ attr_accessor direction: Revox::Models::CampaignGetRowsResponse::Row::Call::direction
106
+
107
+ attr_accessor first_sentence_delay_ms: Integer
108
+
109
+ attr_accessor from_phone_number: String
110
+
111
+ attr_accessor is_cancelled: bool
112
+
113
+ attr_accessor is_completed: bool
114
+
115
+ attr_accessor last_call_attempt: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt?
116
+
117
+ attr_accessor llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::llm_model
118
+
119
+ attr_accessor metadata: ::Hash[Symbol, String]?
120
+
121
+ attr_accessor organization_id: String
122
+
123
+ attr_accessor prompt_variables: ::Hash[Symbol, String]?
124
+
125
+ attr_accessor scheduled_at: top
126
+
127
+ attr_accessor status: Revox::Models::CampaignGetRowsResponse::Row::Call::status
128
+
129
+ attr_accessor to_phone_number: String
130
+
131
+ attr_accessor updated_at: top
132
+
133
+ attr_accessor outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?
134
+
135
+ attr_accessor outcome_summary: String?
136
+
137
+ def initialize: (
138
+ id: String,
139
+ assignee: Revox::Models::CampaignGetRowsResponse::Row::Call::Assignee?,
140
+ assistant: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant?,
141
+ call_attempts: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt],
142
+ call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig?,
143
+ calls_count: Float,
144
+ campaign: Revox::Models::CampaignGetRowsResponse::Row::Call::Campaign?,
145
+ contact: Revox::Models::CampaignGetRowsResponse::Row::Call::Contact,
146
+ created_at: top,
147
+ direction: Revox::Models::CampaignGetRowsResponse::Row::Call::direction,
148
+ first_sentence_delay_ms: Integer,
149
+ from_phone_number: String,
150
+ is_cancelled: bool,
151
+ is_completed: bool,
152
+ last_call_attempt: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt?,
153
+ llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::llm_model,
154
+ metadata: ::Hash[Symbol, String]?,
155
+ organization_id: String,
156
+ prompt_variables: ::Hash[Symbol, String]?,
157
+ scheduled_at: top,
158
+ status: Revox::Models::CampaignGetRowsResponse::Row::Call::status,
159
+ to_phone_number: String,
160
+ updated_at: top,
161
+ ?outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?,
162
+ ?outcome_summary: String?
163
+ ) -> void
164
+
165
+ def to_hash: -> {
166
+ id: String,
167
+ assignee: Revox::Models::CampaignGetRowsResponse::Row::Call::Assignee?,
168
+ assistant: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant?,
169
+ call_attempts: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt],
170
+ call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig?,
171
+ calls_count: Float,
172
+ campaign: Revox::Models::CampaignGetRowsResponse::Row::Call::Campaign?,
173
+ contact: Revox::Models::CampaignGetRowsResponse::Row::Call::Contact,
174
+ created_at: top,
175
+ direction: Revox::Models::CampaignGetRowsResponse::Row::Call::direction,
176
+ first_sentence_delay_ms: Integer,
177
+ from_phone_number: String,
178
+ is_cancelled: bool,
179
+ is_completed: bool,
180
+ last_call_attempt: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt?,
181
+ llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::llm_model,
182
+ metadata: ::Hash[Symbol, String]?,
183
+ organization_id: String,
184
+ prompt_variables: ::Hash[Symbol, String]?,
185
+ scheduled_at: top,
186
+ status: Revox::Models::CampaignGetRowsResponse::Row::Call::status,
187
+ to_phone_number: String,
188
+ updated_at: top,
189
+ outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?,
190
+ outcome_summary: String?
191
+ }
192
+
193
+ type assignee =
194
+ {
195
+ id: String,
196
+ email: String,
197
+ first_name: String?,
198
+ last_name: String?
199
+ }
200
+
201
+ class Assignee < Revox::Internal::Type::BaseModel
202
+ attr_accessor id: String
203
+
204
+ attr_accessor email: String
205
+
206
+ attr_accessor first_name: String?
207
+
208
+ attr_accessor last_name: String?
209
+
210
+ def initialize: (
211
+ id: String,
212
+ email: String,
213
+ first_name: String?,
214
+ last_name: String?
215
+ ) -> void
216
+
217
+ def to_hash: -> {
218
+ id: String,
219
+ email: String,
220
+ first_name: String?,
221
+ last_name: String?
222
+ }
223
+ end
224
+
225
+ type assistant =
226
+ {
227
+ id: String,
228
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]?,
229
+ after_call_sms_prompt: String?,
230
+ background_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::background_sound?,
231
+ background_sound_volume: Float,
232
+ calendly: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Calendly?,
233
+ call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig?,
234
+ cartesia_dictionary_pronunciation_id: String?,
235
+ created_at: top,
236
+ custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?,
237
+ email_notification_address: String?,
238
+ email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language,
239
+ email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?,
240
+ end_of_call_sentence: String?,
241
+ first_sentence: String?,
242
+ first_sentence_delay_ms: Integer,
243
+ first_sentence_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::first_sentence_mode,
244
+ from_phone_number: String?,
245
+ human_transfer_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::human_transfer_mode?,
246
+ ivr_navigation_enabled: bool,
247
+ llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::llm_model,
248
+ logo_url: String?,
249
+ max_call_duration_secs: Float,
250
+ max_duration_end_message: String?,
251
+ name: String,
252
+ organization_id: String,
253
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?,
254
+ prompt: String,
255
+ prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?,
256
+ slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?,
257
+ sms_enabled: bool,
258
+ sms_template: String?,
259
+ structured_output_config: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig]?,
260
+ structured_output_prompt: String?,
261
+ stt_context: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext?,
262
+ stt_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::stt_model,
263
+ thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?,
264
+ thinking_sound_probability: Float,
265
+ thinking_sound_volume: Float,
266
+ transfer_phone_number: String?,
267
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_,
268
+ updated_at: top,
269
+ voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?,
270
+ voicemail_message: String?,
271
+ voicemail_sms_prompt: String?,
272
+ warm_transfer_summary_instructions: String?,
273
+ webhook_url: String?,
274
+ zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?,
275
+ created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?,
276
+ faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem],
277
+ is_realestate_assistant: bool,
278
+ pending_faq_count: Float
279
+ }
280
+
281
+ class Assistant < Revox::Internal::Type::BaseModel
282
+ attr_accessor id: String
283
+
284
+ attr_accessor after_call_sms_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]?
285
+
286
+ attr_accessor after_call_sms_prompt: String?
287
+
288
+ attr_accessor background_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::background_sound?
289
+
290
+ attr_accessor background_sound_volume: Float
291
+
292
+ attr_accessor calendly: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Calendly?
293
+
294
+ attr_accessor call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig?
295
+
296
+ attr_accessor cartesia_dictionary_pronunciation_id: String?
297
+
298
+ attr_accessor created_at: top
299
+
300
+ attr_accessor custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?
301
+
302
+ attr_accessor email_notification_address: String?
303
+
304
+ attr_accessor email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language
305
+
306
+ attr_accessor email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?
307
+
308
+ attr_accessor end_of_call_sentence: String?
309
+
310
+ attr_accessor first_sentence: String?
311
+
312
+ attr_accessor first_sentence_delay_ms: Integer
313
+
314
+ attr_accessor first_sentence_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::first_sentence_mode
315
+
316
+ attr_accessor from_phone_number: String?
317
+
318
+ attr_accessor human_transfer_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::human_transfer_mode?
319
+
320
+ attr_accessor ivr_navigation_enabled: bool
321
+
322
+ attr_accessor llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::llm_model
323
+
324
+ attr_accessor logo_url: String?
325
+
326
+ attr_accessor max_call_duration_secs: Float
327
+
328
+ attr_accessor max_duration_end_message: String?
329
+
330
+ attr_accessor name: String
331
+
332
+ attr_accessor organization_id: String
333
+
334
+ attr_accessor position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?
335
+
336
+ attr_accessor prompt: String
337
+
338
+ attr_accessor prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?
339
+
340
+ attr_accessor slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?
341
+
342
+ attr_accessor sms_enabled: bool
343
+
344
+ attr_accessor sms_template: String?
345
+
346
+ attr_accessor structured_output_config: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig]?
347
+
348
+ attr_accessor structured_output_prompt: String?
349
+
350
+ attr_accessor stt_context: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext?
351
+
352
+ attr_accessor stt_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::stt_model
353
+
354
+ attr_accessor thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?
355
+
356
+ attr_accessor thinking_sound_probability: Float
357
+
358
+ attr_accessor thinking_sound_volume: Float
359
+
360
+ attr_accessor transfer_phone_number: String?
361
+
362
+ attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_
363
+
364
+ attr_accessor updated_at: top
365
+
366
+ attr_accessor voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?
367
+
368
+ attr_accessor voicemail_message: String?
369
+
370
+ attr_accessor voicemail_sms_prompt: String?
371
+
372
+ attr_accessor warm_transfer_summary_instructions: String?
373
+
374
+ attr_accessor webhook_url: String?
375
+
376
+ attr_accessor zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?
377
+
378
+ attr_accessor created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?
379
+
380
+ attr_reader faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem]?
381
+
382
+ def faq_items=: (
383
+ ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem]
384
+ ) -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem]
385
+
386
+ attr_reader is_realestate_assistant: bool?
387
+
388
+ def is_realestate_assistant=: (bool) -> bool
389
+
390
+ attr_reader pending_faq_count: Float?
391
+
392
+ def pending_faq_count=: (Float) -> Float
393
+
394
+ def initialize: (
395
+ id: String,
396
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]?,
397
+ after_call_sms_prompt: String?,
398
+ background_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::background_sound?,
399
+ background_sound_volume: Float,
400
+ calendly: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Calendly?,
401
+ call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig?,
402
+ cartesia_dictionary_pronunciation_id: String?,
403
+ created_at: top,
404
+ custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?,
405
+ email_notification_address: String?,
406
+ email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language,
407
+ email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?,
408
+ end_of_call_sentence: String?,
409
+ first_sentence: String?,
410
+ first_sentence_delay_ms: Integer,
411
+ first_sentence_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::first_sentence_mode,
412
+ from_phone_number: String?,
413
+ human_transfer_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::human_transfer_mode?,
414
+ ivr_navigation_enabled: bool,
415
+ llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::llm_model,
416
+ logo_url: String?,
417
+ max_call_duration_secs: Float,
418
+ max_duration_end_message: String?,
419
+ name: String,
420
+ organization_id: String,
421
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?,
422
+ prompt: String,
423
+ prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?,
424
+ slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?,
425
+ sms_enabled: bool,
426
+ sms_template: String?,
427
+ structured_output_config: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig]?,
428
+ structured_output_prompt: String?,
429
+ stt_context: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext?,
430
+ stt_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::stt_model,
431
+ thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?,
432
+ thinking_sound_probability: Float,
433
+ thinking_sound_volume: Float,
434
+ transfer_phone_number: String?,
435
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_,
436
+ updated_at: top,
437
+ voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?,
438
+ voicemail_message: String?,
439
+ voicemail_sms_prompt: String?,
440
+ warm_transfer_summary_instructions: String?,
441
+ webhook_url: String?,
442
+ zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?,
443
+ ?created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?,
444
+ ?faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem],
445
+ ?is_realestate_assistant: bool,
446
+ ?pending_faq_count: Float
447
+ ) -> void
448
+
449
+ def to_hash: -> {
450
+ id: String,
451
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]?,
452
+ after_call_sms_prompt: String?,
453
+ background_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::background_sound?,
454
+ background_sound_volume: Float,
455
+ calendly: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Calendly?,
456
+ call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig?,
457
+ cartesia_dictionary_pronunciation_id: String?,
458
+ created_at: top,
459
+ custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?,
460
+ email_notification_address: String?,
461
+ email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language,
462
+ email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?,
463
+ end_of_call_sentence: String?,
464
+ first_sentence: String?,
465
+ first_sentence_delay_ms: Integer,
466
+ first_sentence_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::first_sentence_mode,
467
+ from_phone_number: String?,
468
+ human_transfer_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::human_transfer_mode?,
469
+ ivr_navigation_enabled: bool,
470
+ llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::llm_model,
471
+ logo_url: String?,
472
+ max_call_duration_secs: Float,
473
+ max_duration_end_message: String?,
474
+ name: String,
475
+ organization_id: String,
476
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?,
477
+ prompt: String,
478
+ prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?,
479
+ slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?,
480
+ sms_enabled: bool,
481
+ sms_template: String?,
482
+ structured_output_config: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig]?,
483
+ structured_output_prompt: String?,
484
+ stt_context: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext?,
485
+ stt_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::stt_model,
486
+ thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?,
487
+ thinking_sound_probability: Float,
488
+ thinking_sound_volume: Float,
489
+ transfer_phone_number: String?,
490
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_,
491
+ updated_at: top,
492
+ voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?,
493
+ voicemail_message: String?,
494
+ voicemail_sms_prompt: String?,
495
+ warm_transfer_summary_instructions: String?,
496
+ webhook_url: String?,
497
+ zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?,
498
+ created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?,
499
+ faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem],
500
+ is_realestate_assistant: bool,
501
+ pending_faq_count: Float
502
+ }
503
+
504
+ type after_call_sms_outcome =
505
+ :not_interested
506
+ | :interested
507
+ | :completed
508
+ | :requested_callback_later
509
+ | :requested_callback_new_number
510
+ | :do_not_contact
511
+ | :ai_averse
512
+ | :none
513
+
514
+ module AfterCallSMSOutcome
515
+ extend Revox::Internal::Type::Enum
516
+
517
+ NOT_INTERESTED: :not_interested
518
+ INTERESTED: :interested
519
+ COMPLETED: :completed
520
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
521
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
522
+ DO_NOT_CONTACT: :do_not_contact
523
+ AI_AVERSE: :ai_averse
524
+ NONE: :none
525
+
526
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]
527
+ end
528
+
529
+ type background_sound = :"audio/office.ogg"
530
+
531
+ module BackgroundSound
532
+ extend Revox::Internal::Type::Enum
533
+
534
+ AUDIO_OFFICE_OGG: :"audio/office.ogg"
535
+
536
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::background_sound]
537
+ end
538
+
539
+ type calendly = { connection_id: String, event_type_id: String }
540
+
541
+ class Calendly < Revox::Internal::Type::BaseModel
542
+ attr_accessor connection_id: String
543
+
544
+ attr_accessor event_type_id: String
545
+
546
+ def initialize: (
547
+ connection_id: String,
548
+ event_type_id: String
549
+ ) -> void
550
+
551
+ def to_hash: -> { connection_id: String, event_type_id: String }
552
+ end
553
+
554
+ type call_retry_config =
555
+ {
556
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::allowed_day],
557
+ call_twice_in_a_row: bool,
558
+ calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::CallingWindow],
559
+ max_retry_attempts: Integer,
560
+ timezone: String?
561
+ }
562
+
563
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
564
+ attr_accessor allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::allowed_day]
565
+
566
+ attr_accessor call_twice_in_a_row: bool
567
+
568
+ attr_accessor calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::CallingWindow]
569
+
570
+ attr_accessor max_retry_attempts: Integer
571
+
572
+ attr_accessor timezone: String?
573
+
574
+ def initialize: (
575
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::allowed_day],
576
+ call_twice_in_a_row: bool,
577
+ calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::CallingWindow],
578
+ max_retry_attempts: Integer,
579
+ ?timezone: String?
580
+ ) -> void
581
+
582
+ def to_hash: -> {
583
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::allowed_day],
584
+ call_twice_in_a_row: bool,
585
+ calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::CallingWindow],
586
+ max_retry_attempts: Integer,
587
+ timezone: String?
588
+ }
589
+
590
+ type allowed_day =
591
+ :monday
592
+ | :tuesday
593
+ | :wednesday
594
+ | :thursday
595
+ | :friday
596
+ | :saturday
597
+ | :sunday
598
+
599
+ module AllowedDay
600
+ extend Revox::Internal::Type::Enum
601
+
602
+ MONDAY: :monday
603
+ TUESDAY: :tuesday
604
+ WEDNESDAY: :wednesday
605
+ THURSDAY: :thursday
606
+ FRIDAY: :friday
607
+ SATURDAY: :saturday
608
+ SUNDAY: :sunday
609
+
610
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::allowed_day]
611
+ end
612
+
613
+ type calling_window =
614
+ {
615
+ calling_window_end_time: String,
616
+ calling_window_start_time: String,
617
+ retry_delay_seconds: Integer
618
+ }
619
+
620
+ class CallingWindow < Revox::Internal::Type::BaseModel
621
+ attr_accessor calling_window_end_time: String
622
+
623
+ attr_accessor calling_window_start_time: String
624
+
625
+ attr_accessor retry_delay_seconds: Integer
626
+
627
+ def initialize: (
628
+ calling_window_end_time: String,
629
+ calling_window_start_time: String,
630
+ retry_delay_seconds: Integer
631
+ ) -> void
632
+
633
+ def to_hash: -> {
634
+ calling_window_end_time: String,
635
+ calling_window_start_time: String,
636
+ retry_delay_seconds: Integer
637
+ }
638
+ end
639
+ end
640
+
641
+ type custom_tool =
642
+ {
643
+ body_template: String?,
644
+ description: String,
645
+ headers: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::Header],
646
+ input_schema: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema],
647
+ method_: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::method_,
648
+ name: String,
649
+ query_params: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::QueryParam],
650
+ url: String
651
+ }
652
+
653
+ class CustomTool < Revox::Internal::Type::BaseModel
654
+ attr_accessor body_template: String?
655
+
656
+ attr_accessor description: String
657
+
658
+ attr_accessor headers: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::Header]
659
+
660
+ attr_accessor input_schema: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema]
661
+
662
+ attr_accessor method_: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::method_
663
+
664
+ attr_accessor name: String
665
+
666
+ attr_accessor query_params: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::QueryParam]
667
+
668
+ attr_accessor url: String
669
+
670
+ def initialize: (
671
+ body_template: String?,
672
+ description: String,
673
+ headers: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::Header],
674
+ input_schema: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema],
675
+ method_: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::method_,
676
+ name: String,
677
+ query_params: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::QueryParam],
678
+ url: String
679
+ ) -> void
680
+
681
+ def to_hash: -> {
682
+ body_template: String?,
683
+ description: String,
684
+ headers: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::Header],
685
+ input_schema: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema],
686
+ method_: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::method_,
687
+ name: String,
688
+ query_params: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::QueryParam],
689
+ url: String
690
+ }
691
+
692
+ type header = { key: String, value: String }
693
+
694
+ class Header < Revox::Internal::Type::BaseModel
695
+ attr_accessor key: String
696
+
697
+ attr_accessor value: String
698
+
699
+ def initialize: (key: String, value: String) -> void
700
+
701
+ def to_hash: -> { key: String, value: String }
702
+ end
703
+
704
+ type input_schema =
705
+ {
706
+ name: String,
707
+ required: bool,
708
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema::type_,
709
+ description: String,
710
+ enum_options: ::Array[String]
711
+ }
712
+
713
+ class InputSchema < Revox::Internal::Type::BaseModel
714
+ attr_accessor name: String
715
+
716
+ attr_accessor required: bool
717
+
718
+ attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema::type_
719
+
720
+ attr_reader description: String?
721
+
722
+ def description=: (String) -> String
723
+
724
+ attr_reader enum_options: ::Array[String]?
725
+
726
+ def enum_options=: (::Array[String]) -> ::Array[String]
727
+
728
+ def initialize: (
729
+ name: String,
730
+ required: bool,
731
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema::type_,
732
+ ?description: String,
733
+ ?enum_options: ::Array[String]
734
+ ) -> void
735
+
736
+ def to_hash: -> {
737
+ name: String,
738
+ required: bool,
739
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema::type_,
740
+ description: String,
741
+ enum_options: ::Array[String]
742
+ }
743
+
744
+ type type_ =
745
+ :string | :number | :boolean | :enum | :date | :datetime
746
+
747
+ module Type
748
+ extend Revox::Internal::Type::Enum
749
+
750
+ STRING: :string
751
+ NUMBER: :number
752
+ BOOLEAN: :boolean
753
+ ENUM: :enum
754
+ DATE: :date
755
+ DATETIME: :datetime
756
+
757
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema::type_]
758
+ end
759
+ end
760
+
761
+ type method_ = :GET | :POST | :PUT | :PATCH | :DELETE
762
+
763
+ module Method
764
+ extend Revox::Internal::Type::Enum
765
+
766
+ GET: :GET
767
+ POST: :POST
768
+ PUT: :PUT
769
+ PATCH: :PATCH
770
+ DELETE: :DELETE
771
+
772
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::method_]
773
+ end
774
+
775
+ type query_param = { key: String, value: String }
776
+
777
+ class QueryParam < Revox::Internal::Type::BaseModel
778
+ attr_accessor key: String
779
+
780
+ attr_accessor value: String
781
+
782
+ def initialize: (key: String, value: String) -> void
783
+
784
+ def to_hash: -> { key: String, value: String }
785
+ end
786
+ end
787
+
788
+ type email_notification_language = :en | :fr
789
+
790
+ module EmailNotificationLanguage
791
+ extend Revox::Internal::Type::Enum
792
+
793
+ EN: :en
794
+ FR: :fr
795
+
796
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language]
797
+ end
798
+
799
+ type email_notification_outcome =
800
+ :not_interested
801
+ | :interested
802
+ | :completed
803
+ | :requested_callback_later
804
+ | :requested_callback_new_number
805
+ | :do_not_contact
806
+ | :ai_averse
807
+ | :none
808
+
809
+ module EmailNotificationOutcome
810
+ extend Revox::Internal::Type::Enum
811
+
812
+ NOT_INTERESTED: :not_interested
813
+ INTERESTED: :interested
814
+ COMPLETED: :completed
815
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
816
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
817
+ DO_NOT_CONTACT: :do_not_contact
818
+ AI_AVERSE: :ai_averse
819
+ NONE: :none
820
+
821
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]
822
+ end
823
+
824
+ type first_sentence_mode = :generated | :static | :none
825
+
826
+ module FirstSentenceMode
827
+ extend Revox::Internal::Type::Enum
828
+
829
+ GENERATED: :generated
830
+ STATIC: :static
831
+ NONE: :none
832
+
833
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::first_sentence_mode]
834
+ end
835
+
836
+ type human_transfer_mode = :warm | :cold
837
+
838
+ module HumanTransferMode
839
+ extend Revox::Internal::Type::Enum
840
+
841
+ WARM: :warm
842
+ COLD: :cold
843
+
844
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::human_transfer_mode]
845
+ end
846
+
847
+ type llm_model =
848
+ Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember0
849
+ | Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember1
850
+ | Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember2
851
+ | Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3
852
+
853
+ module LlmModel
854
+ extend Revox::Internal::Type::Union
855
+
856
+ type union_member0 =
857
+ {
858
+ name: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember0::name_,
859
+ type: :"dedicated-instance"
860
+ }
861
+
862
+ class UnionMember0 < Revox::Internal::Type::BaseModel
863
+ attr_accessor name: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember0::name_
864
+
865
+ attr_accessor type: :"dedicated-instance"
866
+
867
+ def initialize: (
868
+ name: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember0::name_,
869
+ ?type: :"dedicated-instance"
870
+ ) -> void
871
+
872
+ def to_hash: -> {
873
+ name: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember0::name_,
874
+ type: :"dedicated-instance"
875
+ }
876
+
877
+ type name_ = :"gpt-4.1" | :"ministral-3-8b-instruct"
878
+
879
+ module Name
880
+ extend Revox::Internal::Type::Enum
881
+
882
+ GPT_4_1: :"gpt-4.1"
883
+ MINISTRAL_3_8B_INSTRUCT: :"ministral-3-8b-instruct"
884
+
885
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember0::name_]
886
+ end
887
+ end
888
+
889
+ type union_member1 =
890
+ {
891
+ openrouter_model_id: String,
892
+ openrouter_provider: String,
893
+ type: :openrouter
894
+ }
895
+
896
+ class UnionMember1 < Revox::Internal::Type::BaseModel
897
+ attr_accessor openrouter_model_id: String
898
+
899
+ attr_accessor openrouter_provider: String
900
+
901
+ attr_accessor type: :openrouter
902
+
903
+ def initialize: (
904
+ openrouter_model_id: String,
905
+ openrouter_provider: String,
906
+ ?type: :openrouter
907
+ ) -> void
908
+
909
+ def to_hash: -> {
910
+ openrouter_model_id: String,
911
+ openrouter_provider: String,
912
+ type: :openrouter
913
+ }
914
+ end
915
+
916
+ type union_member2 =
917
+ {
918
+ api_key: String,
919
+ api_url: String,
920
+ model_name: String,
921
+ type: :custom
922
+ }
923
+
924
+ class UnionMember2 < Revox::Internal::Type::BaseModel
925
+ attr_accessor api_key: String
926
+
927
+ attr_accessor api_url: String
928
+
929
+ attr_accessor model_name: String
930
+
931
+ attr_accessor type: :custom
932
+
933
+ def initialize: (
934
+ api_key: String,
935
+ api_url: String,
936
+ model_name: String,
937
+ ?type: :custom
938
+ ) -> void
939
+
940
+ def to_hash: -> {
941
+ api_key: String,
942
+ api_url: String,
943
+ model_name: String,
944
+ type: :custom
945
+ }
946
+ end
947
+
948
+ type union_member3 =
949
+ {
950
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3::provider,
951
+ realtime_model_id: String,
952
+ type: :realtime,
953
+ realtime_voice_id: String
954
+ }
955
+
956
+ class UnionMember3 < Revox::Internal::Type::BaseModel
957
+ attr_accessor provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3::provider
958
+
959
+ attr_accessor realtime_model_id: String
960
+
961
+ attr_accessor type: :realtime
962
+
963
+ attr_reader realtime_voice_id: String?
964
+
965
+ def realtime_voice_id=: (String) -> String
966
+
967
+ def initialize: (
968
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3::provider,
969
+ realtime_model_id: String,
970
+ ?realtime_voice_id: String,
971
+ ?type: :realtime
972
+ ) -> void
973
+
974
+ def to_hash: -> {
975
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3::provider,
976
+ realtime_model_id: String,
977
+ type: :realtime,
978
+ realtime_voice_id: String
979
+ }
980
+
981
+ type provider = :openai | :google
982
+
983
+ module Provider
984
+ extend Revox::Internal::Type::Enum
985
+
986
+ OPENAI: :openai
987
+ GOOGLE: :google
988
+
989
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3::provider]
990
+ end
991
+ end
992
+
993
+ def self?.variants: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::llm_model]
994
+ end
995
+
996
+ type position = { x: Float, y_: Float }
997
+
998
+ class Position < Revox::Internal::Type::BaseModel
999
+ attr_accessor x: Float
1000
+
1001
+ attr_accessor y_: Float
1002
+
1003
+ def initialize: (x: Float, y_: Float) -> void
1004
+
1005
+ def to_hash: -> { x: Float, y_: Float }
1006
+ end
1007
+
1008
+ type prompt_flow =
1009
+ {
1010
+ edges: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Edge],
1011
+ nodes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node]
1012
+ }
1013
+
1014
+ class PromptFlow < Revox::Internal::Type::BaseModel
1015
+ attr_accessor edges: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Edge]
1016
+
1017
+ attr_accessor nodes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node]
1018
+
1019
+ def initialize: (
1020
+ edges: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Edge],
1021
+ nodes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node]
1022
+ ) -> void
1023
+
1024
+ def to_hash: -> {
1025
+ edges: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Edge],
1026
+ nodes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node]
1027
+ }
1028
+
1029
+ type edge = { id: String, source: String, target: String }
1030
+
1031
+ class Edge < Revox::Internal::Type::BaseModel
1032
+ attr_accessor id: String
1033
+
1034
+ attr_accessor source: String
1035
+
1036
+ attr_accessor target: String
1037
+
1038
+ def initialize: (
1039
+ id: String,
1040
+ source: String,
1041
+ target: String
1042
+ ) -> void
1043
+
1044
+ def to_hash: -> { id: String, source: String, target: String }
1045
+ end
1046
+
1047
+ type node =
1048
+ {
1049
+ id: String,
1050
+ data: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Data,
1051
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Position,
1052
+ type: :promptBlock
1053
+ }
1054
+
1055
+ class Node < Revox::Internal::Type::BaseModel
1056
+ attr_accessor id: String
1057
+
1058
+ attr_accessor data: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Data
1059
+
1060
+ attr_accessor position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Position
1061
+
1062
+ attr_accessor type: :promptBlock
1063
+
1064
+ def initialize: (
1065
+ id: String,
1066
+ data: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Data,
1067
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Position,
1068
+ ?type: :promptBlock
1069
+ ) -> void
1070
+
1071
+ def to_hash: -> {
1072
+ id: String,
1073
+ data: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Data,
1074
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Position,
1075
+ type: :promptBlock
1076
+ }
1077
+
1078
+ type data = { body: String, title: String }
1079
+
1080
+ class Data < Revox::Internal::Type::BaseModel
1081
+ attr_accessor body: String
1082
+
1083
+ attr_accessor title: String
1084
+
1085
+ def initialize: (body: String, title: String) -> void
1086
+
1087
+ def to_hash: -> { body: String, title: String }
1088
+ end
1089
+
1090
+ type position = { x: Float, y_: Float }
1091
+
1092
+ class Position < Revox::Internal::Type::BaseModel
1093
+ attr_accessor x: Float
1094
+
1095
+ attr_accessor y_: Float
1096
+
1097
+ def initialize: (x: Float, y_: Float) -> void
1098
+
1099
+ def to_hash: -> { x: Float, y_: Float }
1100
+ end
1101
+ end
1102
+ end
1103
+
1104
+ type slack =
1105
+ {
1106
+ channel_id: String,
1107
+ connection_id: String,
1108
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome],
1109
+ channel_name: String?,
1110
+ template: String?
1111
+ }
1112
+
1113
+ class Slack < Revox::Internal::Type::BaseModel
1114
+ attr_accessor channel_id: String
1115
+
1116
+ attr_accessor connection_id: String
1117
+
1118
+ attr_accessor outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome]
1119
+
1120
+ attr_accessor channel_name: String?
1121
+
1122
+ attr_accessor template: String?
1123
+
1124
+ def initialize: (
1125
+ channel_id: String,
1126
+ connection_id: String,
1127
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome],
1128
+ ?channel_name: String?,
1129
+ ?template: String?
1130
+ ) -> void
1131
+
1132
+ def to_hash: -> {
1133
+ channel_id: String,
1134
+ connection_id: String,
1135
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome],
1136
+ channel_name: String?,
1137
+ template: String?
1138
+ }
1139
+
1140
+ type outcome =
1141
+ :not_interested
1142
+ | :interested
1143
+ | :completed
1144
+ | :requested_callback_later
1145
+ | :requested_callback_new_number
1146
+ | :do_not_contact
1147
+ | :ai_averse
1148
+ | :none
1149
+
1150
+ module Outcome
1151
+ extend Revox::Internal::Type::Enum
1152
+
1153
+ NOT_INTERESTED: :not_interested
1154
+ INTERESTED: :interested
1155
+ COMPLETED: :completed
1156
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
1157
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1158
+ DO_NOT_CONTACT: :do_not_contact
1159
+ AI_AVERSE: :ai_averse
1160
+ NONE: :none
1161
+
1162
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome]
1163
+ end
1164
+ end
1165
+
1166
+ type structured_output_config =
1167
+ {
1168
+ name: String,
1169
+ required: bool,
1170
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig::type_,
1171
+ description: String,
1172
+ enum_options: ::Array[String]
1173
+ }
1174
+
1175
+ class StructuredOutputConfig < Revox::Internal::Type::BaseModel
1176
+ attr_accessor name: String
1177
+
1178
+ attr_accessor required: bool
1179
+
1180
+ attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig::type_
1181
+
1182
+ attr_reader description: String?
1183
+
1184
+ def description=: (String) -> String
1185
+
1186
+ attr_reader enum_options: ::Array[String]?
1187
+
1188
+ def enum_options=: (::Array[String]) -> ::Array[String]
1189
+
1190
+ def initialize: (
1191
+ name: String,
1192
+ required: bool,
1193
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig::type_,
1194
+ ?description: String,
1195
+ ?enum_options: ::Array[String]
1196
+ ) -> void
1197
+
1198
+ def to_hash: -> {
1199
+ name: String,
1200
+ required: bool,
1201
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig::type_,
1202
+ description: String,
1203
+ enum_options: ::Array[String]
1204
+ }
1205
+
1206
+ type type_ =
1207
+ :string | :number | :boolean | :enum | :date | :datetime
1208
+
1209
+ module Type
1210
+ extend Revox::Internal::Type::Enum
1211
+
1212
+ STRING: :string
1213
+ NUMBER: :number
1214
+ BOOLEAN: :boolean
1215
+ ENUM: :enum
1216
+ DATE: :date
1217
+ DATETIME: :datetime
1218
+
1219
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig::type_]
1220
+ end
1221
+ end
1222
+
1223
+ type stt_context =
1224
+ {
1225
+ general: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext::General],
1226
+ terms: ::Array[String]
1227
+ }
1228
+
1229
+ class SttContext < Revox::Internal::Type::BaseModel
1230
+ attr_accessor general: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext::General]
1231
+
1232
+ attr_accessor terms: ::Array[String]
1233
+
1234
+ def initialize: (
1235
+ general: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext::General],
1236
+ terms: ::Array[String]
1237
+ ) -> void
1238
+
1239
+ def to_hash: -> {
1240
+ general: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext::General],
1241
+ terms: ::Array[String]
1242
+ }
1243
+
1244
+ type general = { key: String, value: String }
1245
+
1246
+ class General < Revox::Internal::Type::BaseModel
1247
+ attr_accessor key: String
1248
+
1249
+ attr_accessor value: String
1250
+
1251
+ def initialize: (key: String, value: String) -> void
1252
+
1253
+ def to_hash: -> { key: String, value: String }
1254
+ end
1255
+ end
1256
+
1257
+ type stt_model = :"stt-rt-v4" | :"stt-rt-v5"
1258
+
1259
+ module SttModel
1260
+ extend Revox::Internal::Type::Enum
1261
+
1262
+ STT_RT_V4: :"stt-rt-v4"
1263
+ STT_RT_V5: :"stt-rt-v5"
1264
+
1265
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::stt_model]
1266
+ end
1267
+
1268
+ type thinking_sound =
1269
+ :"city-ambience.ogg"
1270
+ | :"forest-ambience.ogg"
1271
+ | :"office-ambience.ogg"
1272
+ | :"crowded-room.ogg"
1273
+ | :"keyboard-typing.ogg"
1274
+ | :"keyboard-typing2.ogg"
1275
+ | :"hold_music.ogg"
1276
+
1277
+ module ThinkingSound
1278
+ extend Revox::Internal::Type::Enum
1279
+
1280
+ CITY_AMBIENCE_OGG: :"city-ambience.ogg"
1281
+ FOREST_AMBIENCE_OGG: :"forest-ambience.ogg"
1282
+ OFFICE_AMBIENCE_OGG: :"office-ambience.ogg"
1283
+ CROWDED_ROOM_OGG: :"crowded-room.ogg"
1284
+ KEYBOARD_TYPING_OGG: :"keyboard-typing.ogg"
1285
+ KEYBOARD_TYPING2_OGG: :"keyboard-typing2.ogg"
1286
+ HOLD_MUSIC_OGG: :"hold_music.ogg"
1287
+
1288
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound]
1289
+ end
1290
+
1291
+ type type_ = :standalone | :"multi-step" | :"sub-assistant"
1292
+
1293
+ module Type
1294
+ extend Revox::Internal::Type::Enum
1295
+
1296
+ STANDALONE: :standalone
1297
+ MULTI_STEP: :"multi-step"
1298
+ SUB_ASSISTANT: :"sub-assistant"
1299
+
1300
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_]
1301
+ end
1302
+
1303
+ type voice =
1304
+ {
1305
+ id: String,
1306
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider,
1307
+ model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model,
1308
+ speed: Float,
1309
+ volume: Float
1310
+ }
1311
+
1312
+ class Voice < Revox::Internal::Type::BaseModel
1313
+ attr_accessor id: String
1314
+
1315
+ attr_accessor provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider
1316
+
1317
+ attr_reader model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model?
1318
+
1319
+ def model=: (
1320
+ Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model
1321
+ ) -> Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model
1322
+
1323
+ attr_reader speed: Float?
1324
+
1325
+ def speed=: (Float) -> Float
1326
+
1327
+ attr_reader volume: Float?
1328
+
1329
+ def volume=: (Float) -> Float
1330
+
1331
+ def initialize: (
1332
+ id: String,
1333
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider,
1334
+ ?model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model,
1335
+ ?speed: Float,
1336
+ ?volume: Float
1337
+ ) -> void
1338
+
1339
+ def to_hash: -> {
1340
+ id: String,
1341
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider,
1342
+ model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model,
1343
+ speed: Float,
1344
+ volume: Float
1345
+ }
1346
+
1347
+ type provider = :cartesia | :elevenlabs
1348
+
1349
+ module Provider
1350
+ extend Revox::Internal::Type::Enum
1351
+
1352
+ CARTESIA: :cartesia
1353
+ ELEVENLABS: :elevenlabs
1354
+
1355
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider]
1356
+ end
1357
+
1358
+ type model = :"sonic-3" | :"sonic-3.5"
1359
+
1360
+ module Model
1361
+ extend Revox::Internal::Type::Enum
1362
+
1363
+ SONIC_3: :"sonic-3"
1364
+ SONIC_3_5: :"sonic-3.5"
1365
+
1366
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model]
1367
+ end
1368
+ end
1369
+
1370
+ type zoho =
1371
+ {
1372
+ connection_id: String,
1373
+ field_mapping: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::FieldMapping],
1374
+ log_call_activity: bool,
1375
+ module_: String,
1376
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome],
1377
+ template: String?
1378
+ }
1379
+
1380
+ class Zoho < Revox::Internal::Type::BaseModel
1381
+ attr_accessor connection_id: String
1382
+
1383
+ attr_accessor field_mapping: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::FieldMapping]
1384
+
1385
+ attr_accessor log_call_activity: bool
1386
+
1387
+ attr_accessor module_: String
1388
+
1389
+ attr_accessor outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome]
1390
+
1391
+ attr_accessor template: String?
1392
+
1393
+ def initialize: (
1394
+ connection_id: String,
1395
+ field_mapping: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::FieldMapping],
1396
+ log_call_activity: bool,
1397
+ module_: String,
1398
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome],
1399
+ ?template: String?
1400
+ ) -> void
1401
+
1402
+ def to_hash: -> {
1403
+ connection_id: String,
1404
+ field_mapping: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::FieldMapping],
1405
+ log_call_activity: bool,
1406
+ module_: String,
1407
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome],
1408
+ template: String?
1409
+ }
1410
+
1411
+ type field_mapping = { source: String, zoho_field: String }
1412
+
1413
+ class FieldMapping < Revox::Internal::Type::BaseModel
1414
+ attr_accessor source: String
1415
+
1416
+ attr_accessor zoho_field: String
1417
+
1418
+ def initialize: (source: String, zoho_field: String) -> void
1419
+
1420
+ def to_hash: -> { source: String, zoho_field: String }
1421
+ end
1422
+
1423
+ type outcome =
1424
+ :not_interested
1425
+ | :interested
1426
+ | :completed
1427
+ | :requested_callback_later
1428
+ | :requested_callback_new_number
1429
+ | :do_not_contact
1430
+ | :ai_averse
1431
+ | :none
1432
+
1433
+ module Outcome
1434
+ extend Revox::Internal::Type::Enum
1435
+
1436
+ NOT_INTERESTED: :not_interested
1437
+ INTERESTED: :interested
1438
+ COMPLETED: :completed
1439
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
1440
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1441
+ DO_NOT_CONTACT: :do_not_contact
1442
+ AI_AVERSE: :ai_averse
1443
+ NONE: :none
1444
+
1445
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome]
1446
+ end
1447
+ end
1448
+
1449
+ type created_by =
1450
+ {
1451
+ id: String,
1452
+ email: String,
1453
+ first_name: String?,
1454
+ last_name: String?
1455
+ }
1456
+
1457
+ class CreatedBy < Revox::Internal::Type::BaseModel
1458
+ attr_accessor id: String
1459
+
1460
+ attr_accessor email: String
1461
+
1462
+ attr_accessor first_name: String?
1463
+
1464
+ attr_accessor last_name: String?
1465
+
1466
+ def initialize: (
1467
+ id: String,
1468
+ email: String,
1469
+ first_name: String?,
1470
+ last_name: String?
1471
+ ) -> void
1472
+
1473
+ def to_hash: -> {
1474
+ id: String,
1475
+ email: String,
1476
+ first_name: String?,
1477
+ last_name: String?
1478
+ }
1479
+ end
1480
+
1481
+ type faq_item =
1482
+ {
1483
+ answer: String,
1484
+ question: String,
1485
+ id: String,
1486
+ needs_human_answer: bool,
1487
+ source: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem::source
1488
+ }
1489
+
1490
+ class FaqItem < Revox::Internal::Type::BaseModel
1491
+ attr_accessor answer: String
1492
+
1493
+ attr_accessor question: String
1494
+
1495
+ attr_reader id: String?
1496
+
1497
+ def id=: (String) -> String
1498
+
1499
+ attr_reader needs_human_answer: bool?
1500
+
1501
+ def needs_human_answer=: (bool) -> bool
1502
+
1503
+ attr_reader source: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem::source?
1504
+
1505
+ def source=: (
1506
+ Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem::source
1507
+ ) -> Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem::source
1508
+
1509
+ def initialize: (
1510
+ answer: String,
1511
+ question: String,
1512
+ ?id: String,
1513
+ ?needs_human_answer: bool,
1514
+ ?source: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem::source
1515
+ ) -> void
1516
+
1517
+ def to_hash: -> {
1518
+ answer: String,
1519
+ question: String,
1520
+ id: String,
1521
+ needs_human_answer: bool,
1522
+ source: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem::source
1523
+ }
1524
+
1525
+ type source = :human | :ai
1526
+
1527
+ module Source
1528
+ extend Revox::Internal::Type::Enum
1529
+
1530
+ HUMAN: :human
1531
+ AI: :ai
1532
+
1533
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem::source]
1534
+ end
1535
+ end
1536
+ end
1537
+
1538
+ type call_attempt =
1539
+ {
1540
+ id: String,
1541
+ answered_at: top,
1542
+ dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::dial_error?,
1543
+ ended_at: top,
1544
+ phone_number: String,
1545
+ recording_url: String?,
1546
+ result: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result?,
1547
+ started_at: top,
1548
+ status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status,
1549
+ assistants_used: ::Array[String]?,
1550
+ end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?,
1551
+ ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?,
1552
+ post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?,
1553
+ sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?,
1554
+ structured_output: ::Hash[Symbol, top]?,
1555
+ transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
1556
+ }
1557
+
1558
+ class CallAttempt < Revox::Internal::Type::BaseModel
1559
+ attr_accessor id: String
1560
+
1561
+ attr_accessor answered_at: top
1562
+
1563
+ attr_accessor dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::dial_error?
1564
+
1565
+ attr_accessor ended_at: top
1566
+
1567
+ attr_accessor phone_number: String
1568
+
1569
+ attr_accessor recording_url: String?
1570
+
1571
+ attr_accessor result: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result?
1572
+
1573
+ attr_accessor started_at: top
1574
+
1575
+ attr_accessor status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status
1576
+
1577
+ attr_accessor assistants_used: ::Array[String]?
1578
+
1579
+ attr_accessor end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?
1580
+
1581
+ attr_accessor ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?
1582
+
1583
+ attr_accessor post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?
1584
+
1585
+ attr_accessor sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?
1586
+
1587
+ attr_accessor structured_output: ::Hash[Symbol, top]?
1588
+
1589
+ attr_accessor transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
1590
+
1591
+ def initialize: (
1592
+ id: String,
1593
+ answered_at: top,
1594
+ dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::dial_error?,
1595
+ ended_at: top,
1596
+ phone_number: String,
1597
+ recording_url: String?,
1598
+ result: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result?,
1599
+ started_at: top,
1600
+ status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status,
1601
+ ?assistants_used: ::Array[String]?,
1602
+ ?end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?,
1603
+ ?ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?,
1604
+ ?post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?,
1605
+ ?sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?,
1606
+ ?structured_output: ::Hash[Symbol, top]?,
1607
+ ?transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
1608
+ ) -> void
1609
+
1610
+ def to_hash: -> {
1611
+ id: String,
1612
+ answered_at: top,
1613
+ dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::dial_error?,
1614
+ ended_at: top,
1615
+ phone_number: String,
1616
+ recording_url: String?,
1617
+ result: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result?,
1618
+ started_at: top,
1619
+ status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status,
1620
+ assistants_used: ::Array[String]?,
1621
+ end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?,
1622
+ ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?,
1623
+ post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?,
1624
+ sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?,
1625
+ structured_output: ::Hash[Symbol, top]?,
1626
+ transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
1627
+ }
1628
+
1629
+ type dial_error =
1630
+ :number_non_attributed
1631
+ | :too_many_calls
1632
+ | :busy
1633
+ | :temporarily_unavailable
1634
+ | :no_answer
1635
+ | :no_international_permission
1636
+ | :precondition_failed
1637
+ | :non_classified_error
1638
+
1639
+ module DialError
1640
+ extend Revox::Internal::Type::Enum
1641
+
1642
+ NUMBER_NON_ATTRIBUTED: :number_non_attributed
1643
+ TOO_MANY_CALLS: :too_many_calls
1644
+ BUSY: :busy
1645
+ TEMPORARILY_UNAVAILABLE: :temporarily_unavailable
1646
+ NO_ANSWER: :no_answer
1647
+ NO_INTERNATIONAL_PERMISSION: :no_international_permission
1648
+ PRECONDITION_FAILED: :precondition_failed
1649
+ NON_CLASSIFIED_ERROR: :non_classified_error
1650
+
1651
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::dial_error]
1652
+ end
1653
+
1654
+ type result =
1655
+ :IVR | :voicemail | :human | :unknown | :"ios-screening-filter"
1656
+
1657
+ module Result
1658
+ extend Revox::Internal::Type::Enum
1659
+
1660
+ IVR: :IVR
1661
+ VOICEMAIL: :voicemail
1662
+ HUMAN: :human
1663
+ UNKNOWN: :unknown
1664
+ IOS_SCREENING_FILTER: :"ios-screening-filter"
1665
+
1666
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result]
1667
+ end
1668
+
1669
+ type status = :queued | :ringing | :ongoing | :completed | :error
1670
+
1671
+ module Status
1672
+ extend Revox::Internal::Type::Enum
1673
+
1674
+ QUEUED: :queued
1675
+ RINGING: :ringing
1676
+ ONGOING: :ongoing
1677
+ COMPLETED: :completed
1678
+ ERROR: :error
1679
+
1680
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status]
1681
+ end
1682
+
1683
+ type end_reason =
1684
+ :client_initiated
1685
+ | :connection_timeout
1686
+ | :human_takeover
1687
+ | :ivr_no_navigate
1688
+ | :max_duration
1689
+ | :participant_removed
1690
+ | :tool_end_call
1691
+ | :transfer
1692
+ | :user_inactive
1693
+ | :user_rejected
1694
+ | :user_unavailable
1695
+ | :voicemail
1696
+ | :speed_dial_abandoned
1697
+ | :speed_dial_operator_missed
1698
+ | :speed_dial_timeout
1699
+ | :speed_dial_hangup
1700
+
1701
+ module EndReason
1702
+ extend Revox::Internal::Type::Enum
1703
+
1704
+ CLIENT_INITIATED: :client_initiated
1705
+ CONNECTION_TIMEOUT: :connection_timeout
1706
+ HUMAN_TAKEOVER: :human_takeover
1707
+ IVR_NO_NAVIGATE: :ivr_no_navigate
1708
+ MAX_DURATION: :max_duration
1709
+ PARTICIPANT_REMOVED: :participant_removed
1710
+ TOOL_END_CALL: :tool_end_call
1711
+ TRANSFER: :transfer
1712
+ USER_INACTIVE: :user_inactive
1713
+ USER_REJECTED: :user_rejected
1714
+ USER_UNAVAILABLE: :user_unavailable
1715
+ VOICEMAIL: :voicemail
1716
+ SPEED_DIAL_ABANDONED: :speed_dial_abandoned
1717
+ SPEED_DIAL_OPERATOR_MISSED: :speed_dial_operator_missed
1718
+ SPEED_DIAL_TIMEOUT: :speed_dial_timeout
1719
+ SPEED_DIAL_HANGUP: :speed_dial_hangup
1720
+
1721
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason]
1722
+ end
1723
+
1724
+ type ended_by = :agent | :user | :system
1725
+
1726
+ module EndedBy
1727
+ extend Revox::Internal::Type::Enum
1728
+
1729
+ AGENT: :agent
1730
+ USER: :user
1731
+ SYSTEM: :system
1732
+
1733
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by]
1734
+ end
1735
+
1736
+ type post_call_transcript =
1737
+ {
1738
+ content: String,
1739
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::role,
1740
+ tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments,
1741
+ tool_is_error: bool,
1742
+ tool_name: String,
1743
+ tool_output: String
1744
+ }
1745
+
1746
+ class PostCallTranscript < Revox::Internal::Type::BaseModel
1747
+ attr_accessor content: String
1748
+
1749
+ attr_accessor role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::role
1750
+
1751
+ attr_reader tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments?
1752
+
1753
+ def tool_arguments=: (
1754
+ Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments
1755
+ ) -> Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments
1756
+
1757
+ attr_reader tool_is_error: bool?
1758
+
1759
+ def tool_is_error=: (bool) -> bool
1760
+
1761
+ attr_reader tool_name: String?
1762
+
1763
+ def tool_name=: (String) -> String
1764
+
1765
+ attr_reader tool_output: String?
1766
+
1767
+ def tool_output=: (String) -> String
1768
+
1769
+ def initialize: (
1770
+ content: String,
1771
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::role,
1772
+ ?tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments,
1773
+ ?tool_is_error: bool,
1774
+ ?tool_name: String,
1775
+ ?tool_output: String
1776
+ ) -> void
1777
+
1778
+ def to_hash: -> {
1779
+ content: String,
1780
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::role,
1781
+ tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments,
1782
+ tool_is_error: bool,
1783
+ tool_name: String,
1784
+ tool_output: String
1785
+ }
1786
+
1787
+ type role = :user | :assistant | :human_agent | :tool
1788
+
1789
+ module Role
1790
+ extend Revox::Internal::Type::Enum
1791
+
1792
+ USER: :user
1793
+ ASSISTANT: :assistant
1794
+ HUMAN_AGENT: :human_agent
1795
+ TOOL: :tool
1796
+
1797
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::role]
1798
+ end
1799
+
1800
+ type tool_arguments = ::Hash[Symbol, top] | String
1801
+
1802
+ module ToolArguments
1803
+ extend Revox::Internal::Type::Union
1804
+
1805
+ def self?.variants: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments]
1806
+
1807
+ UnionMember0Map: Revox::Internal::Type::Converter
1808
+ end
1809
+ end
1810
+
1811
+ type sms_log =
1812
+ {
1813
+ id: String,
1814
+ created_at: top,
1815
+ message_body: String,
1816
+ to_phone_number: String,
1817
+ twilio_message_sid: String?,
1818
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1819
+ }
1820
+
1821
+ class SMSLog < Revox::Internal::Type::BaseModel
1822
+ attr_accessor id: String
1823
+
1824
+ attr_accessor created_at: top
1825
+
1826
+ attr_accessor message_body: String
1827
+
1828
+ attr_accessor to_phone_number: String
1829
+
1830
+ attr_accessor twilio_message_sid: String?
1831
+
1832
+ attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1833
+
1834
+ def initialize: (
1835
+ id: String,
1836
+ created_at: top,
1837
+ message_body: String,
1838
+ to_phone_number: String,
1839
+ twilio_message_sid: String?,
1840
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1841
+ ) -> void
1842
+
1843
+ def to_hash: -> {
1844
+ id: String,
1845
+ created_at: top,
1846
+ message_body: String,
1847
+ to_phone_number: String,
1848
+ twilio_message_sid: String?,
1849
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1850
+ }
1851
+
1852
+ type type_ = :in_call | :voicemail | :after_call
1853
+
1854
+ module Type
1855
+ extend Revox::Internal::Type::Enum
1856
+
1857
+ IN_CALL: :in_call
1858
+ VOICEMAIL: :voicemail
1859
+ AFTER_CALL: :after_call
1860
+
1861
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_]
1862
+ end
1863
+ end
1864
+
1865
+ type transcript =
1866
+ {
1867
+ content: String,
1868
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::role,
1869
+ tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::tool_arguments,
1870
+ tool_is_error: bool,
1871
+ tool_name: String,
1872
+ tool_output: String
1873
+ }
1874
+
1875
+ class Transcript < Revox::Internal::Type::BaseModel
1876
+ attr_accessor content: String
1877
+
1878
+ attr_accessor role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::role
1879
+
1880
+ attr_reader tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::tool_arguments?
1881
+
1882
+ def tool_arguments=: (
1883
+ Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::tool_arguments
1884
+ ) -> Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::tool_arguments
1885
+
1886
+ attr_reader tool_is_error: bool?
1887
+
1888
+ def tool_is_error=: (bool) -> bool
1889
+
1890
+ attr_reader tool_name: String?
1891
+
1892
+ def tool_name=: (String) -> String
1893
+
1894
+ attr_reader tool_output: String?
1895
+
1896
+ def tool_output=: (String) -> String
1897
+
1898
+ def initialize: (
1899
+ content: String,
1900
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::role,
1901
+ ?tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::tool_arguments,
1902
+ ?tool_is_error: bool,
1903
+ ?tool_name: String,
1904
+ ?tool_output: String
1905
+ ) -> void
1906
+
1907
+ def to_hash: -> {
1908
+ content: String,
1909
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::role,
1910
+ tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::tool_arguments,
1911
+ tool_is_error: bool,
1912
+ tool_name: String,
1913
+ tool_output: String
1914
+ }
1915
+
1916
+ type role = :user | :assistant | :human_agent | :tool
1917
+
1918
+ module Role
1919
+ extend Revox::Internal::Type::Enum
1920
+
1921
+ USER: :user
1922
+ ASSISTANT: :assistant
1923
+ HUMAN_AGENT: :human_agent
1924
+ TOOL: :tool
1925
+
1926
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::role]
1927
+ end
1928
+
1929
+ type tool_arguments = ::Hash[Symbol, top] | String
1930
+
1931
+ module ToolArguments
1932
+ extend Revox::Internal::Type::Union
1933
+
1934
+ def self?.variants: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::tool_arguments]
1935
+
1936
+ UnionMember0Map: Revox::Internal::Type::Converter
1937
+ end
1938
+ end
1939
+ end
1940
+
1941
+ type call_retry_config =
1942
+ {
1943
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::allowed_day],
1944
+ call_twice_in_a_row: bool,
1945
+ calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::CallingWindow],
1946
+ max_retry_attempts: Integer,
1947
+ timezone: String?
1948
+ }
1949
+
1950
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
1951
+ attr_accessor allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::allowed_day]
1952
+
1953
+ attr_accessor call_twice_in_a_row: bool
1954
+
1955
+ attr_accessor calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::CallingWindow]
1956
+
1957
+ attr_accessor max_retry_attempts: Integer
1958
+
1959
+ attr_accessor timezone: String?
1960
+
1961
+ def initialize: (
1962
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::allowed_day],
1963
+ call_twice_in_a_row: bool,
1964
+ calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::CallingWindow],
1965
+ max_retry_attempts: Integer,
1966
+ ?timezone: String?
1967
+ ) -> void
1968
+
1969
+ def to_hash: -> {
1970
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::allowed_day],
1971
+ call_twice_in_a_row: bool,
1972
+ calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::CallingWindow],
1973
+ max_retry_attempts: Integer,
1974
+ timezone: String?
1975
+ }
1976
+
1977
+ type allowed_day =
1978
+ :monday
1979
+ | :tuesday
1980
+ | :wednesday
1981
+ | :thursday
1982
+ | :friday
1983
+ | :saturday
1984
+ | :sunday
1985
+
1986
+ module AllowedDay
1987
+ extend Revox::Internal::Type::Enum
1988
+
1989
+ MONDAY: :monday
1990
+ TUESDAY: :tuesday
1991
+ WEDNESDAY: :wednesday
1992
+ THURSDAY: :thursday
1993
+ FRIDAY: :friday
1994
+ SATURDAY: :saturday
1995
+ SUNDAY: :sunday
1996
+
1997
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::allowed_day]
1998
+ end
1999
+
2000
+ type calling_window =
2001
+ {
2002
+ calling_window_end_time: String,
2003
+ calling_window_start_time: String,
2004
+ retry_delay_seconds: Integer
2005
+ }
2006
+
2007
+ class CallingWindow < Revox::Internal::Type::BaseModel
2008
+ attr_accessor calling_window_end_time: String
2009
+
2010
+ attr_accessor calling_window_start_time: String
2011
+
2012
+ attr_accessor retry_delay_seconds: Integer
2013
+
2014
+ def initialize: (
2015
+ calling_window_end_time: String,
2016
+ calling_window_start_time: String,
2017
+ retry_delay_seconds: Integer
2018
+ ) -> void
2019
+
2020
+ def to_hash: -> {
2021
+ calling_window_end_time: String,
2022
+ calling_window_start_time: String,
2023
+ retry_delay_seconds: Integer
2024
+ }
2025
+ end
2026
+ end
2027
+
2028
+ type campaign = { id: String, name: String }
2029
+
2030
+ class Campaign < Revox::Internal::Type::BaseModel
2031
+ attr_accessor id: String
2032
+
2033
+ attr_accessor name: String
2034
+
2035
+ def initialize: (id: String, name: String) -> void
2036
+
2037
+ def to_hash: -> { id: String, name: String }
2038
+ end
2039
+
2040
+ type contact =
2041
+ {
2042
+ company: String?,
2043
+ email: String?,
2044
+ first_name: String?,
2045
+ last_name: String?
2046
+ }
2047
+
2048
+ class Contact < Revox::Internal::Type::BaseModel
2049
+ attr_accessor company: String?
2050
+
2051
+ attr_accessor email: String?
2052
+
2053
+ attr_accessor first_name: String?
2054
+
2055
+ attr_accessor last_name: String?
2056
+
2057
+ def initialize: (
2058
+ company: String?,
2059
+ email: String?,
2060
+ first_name: String?,
2061
+ last_name: String?
2062
+ ) -> void
2063
+
2064
+ def to_hash: -> {
2065
+ company: String?,
2066
+ email: String?,
2067
+ first_name: String?,
2068
+ last_name: String?
2069
+ }
2070
+ end
2071
+
2072
+ type direction = :inbound | :outbound
2073
+
2074
+ module Direction
2075
+ extend Revox::Internal::Type::Enum
2076
+
2077
+ INBOUND: :inbound
2078
+ OUTBOUND: :outbound
2079
+
2080
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::direction]
2081
+ end
2082
+
2083
+ type last_call_attempt =
2084
+ {
2085
+ id: String,
2086
+ answered_at: top,
2087
+ dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::dial_error?,
2088
+ ended_at: top,
2089
+ phone_number: String,
2090
+ recording_url: String?,
2091
+ result: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result?,
2092
+ started_at: top,
2093
+ status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status,
2094
+ assistants_used: ::Array[String]?,
2095
+ end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?,
2096
+ ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?,
2097
+ post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?,
2098
+ sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?,
2099
+ structured_output: ::Hash[Symbol, top]?,
2100
+ transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
2101
+ }
2102
+
2103
+ class LastCallAttempt < Revox::Internal::Type::BaseModel
2104
+ attr_accessor id: String
2105
+
2106
+ attr_accessor answered_at: top
2107
+
2108
+ attr_accessor dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::dial_error?
2109
+
2110
+ attr_accessor ended_at: top
2111
+
2112
+ attr_accessor phone_number: String
2113
+
2114
+ attr_accessor recording_url: String?
2115
+
2116
+ attr_accessor result: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result?
2117
+
2118
+ attr_accessor started_at: top
2119
+
2120
+ attr_accessor status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status
2121
+
2122
+ attr_accessor assistants_used: ::Array[String]?
2123
+
2124
+ attr_accessor end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?
2125
+
2126
+ attr_accessor ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?
2127
+
2128
+ attr_accessor post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?
2129
+
2130
+ attr_accessor sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?
2131
+
2132
+ attr_accessor structured_output: ::Hash[Symbol, top]?
2133
+
2134
+ attr_accessor transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
2135
+
2136
+ def initialize: (
2137
+ id: String,
2138
+ answered_at: top,
2139
+ dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::dial_error?,
2140
+ ended_at: top,
2141
+ phone_number: String,
2142
+ recording_url: String?,
2143
+ result: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result?,
2144
+ started_at: top,
2145
+ status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status,
2146
+ ?assistants_used: ::Array[String]?,
2147
+ ?end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?,
2148
+ ?ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?,
2149
+ ?post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?,
2150
+ ?sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?,
2151
+ ?structured_output: ::Hash[Symbol, top]?,
2152
+ ?transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
2153
+ ) -> void
2154
+
2155
+ def to_hash: -> {
2156
+ id: String,
2157
+ answered_at: top,
2158
+ dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::dial_error?,
2159
+ ended_at: top,
2160
+ phone_number: String,
2161
+ recording_url: String?,
2162
+ result: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result?,
2163
+ started_at: top,
2164
+ status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status,
2165
+ assistants_used: ::Array[String]?,
2166
+ end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?,
2167
+ ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?,
2168
+ post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?,
2169
+ sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?,
2170
+ structured_output: ::Hash[Symbol, top]?,
2171
+ transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
2172
+ }
2173
+
2174
+ type dial_error =
2175
+ :number_non_attributed
2176
+ | :too_many_calls
2177
+ | :busy
2178
+ | :temporarily_unavailable
2179
+ | :no_answer
2180
+ | :no_international_permission
2181
+ | :precondition_failed
2182
+ | :non_classified_error
2183
+
2184
+ module DialError
2185
+ extend Revox::Internal::Type::Enum
2186
+
2187
+ NUMBER_NON_ATTRIBUTED: :number_non_attributed
2188
+ TOO_MANY_CALLS: :too_many_calls
2189
+ BUSY: :busy
2190
+ TEMPORARILY_UNAVAILABLE: :temporarily_unavailable
2191
+ NO_ANSWER: :no_answer
2192
+ NO_INTERNATIONAL_PERMISSION: :no_international_permission
2193
+ PRECONDITION_FAILED: :precondition_failed
2194
+ NON_CLASSIFIED_ERROR: :non_classified_error
2195
+
2196
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::dial_error]
2197
+ end
2198
+
2199
+ type result =
2200
+ :IVR | :voicemail | :human | :unknown | :"ios-screening-filter"
2201
+
2202
+ module Result
2203
+ extend Revox::Internal::Type::Enum
2204
+
2205
+ IVR: :IVR
2206
+ VOICEMAIL: :voicemail
2207
+ HUMAN: :human
2208
+ UNKNOWN: :unknown
2209
+ IOS_SCREENING_FILTER: :"ios-screening-filter"
2210
+
2211
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result]
2212
+ end
2213
+
2214
+ type status = :queued | :ringing | :ongoing | :completed | :error
2215
+
2216
+ module Status
2217
+ extend Revox::Internal::Type::Enum
2218
+
2219
+ QUEUED: :queued
2220
+ RINGING: :ringing
2221
+ ONGOING: :ongoing
2222
+ COMPLETED: :completed
2223
+ ERROR: :error
2224
+
2225
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status]
2226
+ end
2227
+
2228
+ type end_reason =
2229
+ :client_initiated
2230
+ | :connection_timeout
2231
+ | :human_takeover
2232
+ | :ivr_no_navigate
2233
+ | :max_duration
2234
+ | :participant_removed
2235
+ | :tool_end_call
2236
+ | :transfer
2237
+ | :user_inactive
2238
+ | :user_rejected
2239
+ | :user_unavailable
2240
+ | :voicemail
2241
+ | :speed_dial_abandoned
2242
+ | :speed_dial_operator_missed
2243
+ | :speed_dial_timeout
2244
+ | :speed_dial_hangup
2245
+
2246
+ module EndReason
2247
+ extend Revox::Internal::Type::Enum
2248
+
2249
+ CLIENT_INITIATED: :client_initiated
2250
+ CONNECTION_TIMEOUT: :connection_timeout
2251
+ HUMAN_TAKEOVER: :human_takeover
2252
+ IVR_NO_NAVIGATE: :ivr_no_navigate
2253
+ MAX_DURATION: :max_duration
2254
+ PARTICIPANT_REMOVED: :participant_removed
2255
+ TOOL_END_CALL: :tool_end_call
2256
+ TRANSFER: :transfer
2257
+ USER_INACTIVE: :user_inactive
2258
+ USER_REJECTED: :user_rejected
2259
+ USER_UNAVAILABLE: :user_unavailable
2260
+ VOICEMAIL: :voicemail
2261
+ SPEED_DIAL_ABANDONED: :speed_dial_abandoned
2262
+ SPEED_DIAL_OPERATOR_MISSED: :speed_dial_operator_missed
2263
+ SPEED_DIAL_TIMEOUT: :speed_dial_timeout
2264
+ SPEED_DIAL_HANGUP: :speed_dial_hangup
2265
+
2266
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason]
2267
+ end
2268
+
2269
+ type ended_by = :agent | :user | :system
2270
+
2271
+ module EndedBy
2272
+ extend Revox::Internal::Type::Enum
2273
+
2274
+ AGENT: :agent
2275
+ USER: :user
2276
+ SYSTEM: :system
2277
+
2278
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by]
2279
+ end
2280
+
2281
+ type post_call_transcript =
2282
+ {
2283
+ content: String,
2284
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::role,
2285
+ tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments,
2286
+ tool_is_error: bool,
2287
+ tool_name: String,
2288
+ tool_output: String
2289
+ }
2290
+
2291
+ class PostCallTranscript < Revox::Internal::Type::BaseModel
2292
+ attr_accessor content: String
2293
+
2294
+ attr_accessor role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::role
2295
+
2296
+ attr_reader tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments?
2297
+
2298
+ def tool_arguments=: (
2299
+ Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments
2300
+ ) -> Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments
2301
+
2302
+ attr_reader tool_is_error: bool?
2303
+
2304
+ def tool_is_error=: (bool) -> bool
2305
+
2306
+ attr_reader tool_name: String?
2307
+
2308
+ def tool_name=: (String) -> String
2309
+
2310
+ attr_reader tool_output: String?
2311
+
2312
+ def tool_output=: (String) -> String
2313
+
2314
+ def initialize: (
2315
+ content: String,
2316
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::role,
2317
+ ?tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments,
2318
+ ?tool_is_error: bool,
2319
+ ?tool_name: String,
2320
+ ?tool_output: String
2321
+ ) -> void
2322
+
2323
+ def to_hash: -> {
2324
+ content: String,
2325
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::role,
2326
+ tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments,
2327
+ tool_is_error: bool,
2328
+ tool_name: String,
2329
+ tool_output: String
2330
+ }
2331
+
2332
+ type role = :user | :assistant | :human_agent | :tool
2333
+
2334
+ module Role
2335
+ extend Revox::Internal::Type::Enum
2336
+
2337
+ USER: :user
2338
+ ASSISTANT: :assistant
2339
+ HUMAN_AGENT: :human_agent
2340
+ TOOL: :tool
2341
+
2342
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::role]
2343
+ end
2344
+
2345
+ type tool_arguments = ::Hash[Symbol, top] | String
2346
+
2347
+ module ToolArguments
2348
+ extend Revox::Internal::Type::Union
2349
+
2350
+ def self?.variants: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments]
2351
+
2352
+ UnionMember0Map: Revox::Internal::Type::Converter
2353
+ end
2354
+ end
2355
+
2356
+ type sms_log =
2357
+ {
2358
+ id: String,
2359
+ created_at: top,
2360
+ message_body: String,
2361
+ to_phone_number: String,
2362
+ twilio_message_sid: String?,
2363
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2364
+ }
2365
+
2366
+ class SMSLog < Revox::Internal::Type::BaseModel
2367
+ attr_accessor id: String
2368
+
2369
+ attr_accessor created_at: top
2370
+
2371
+ attr_accessor message_body: String
2372
+
2373
+ attr_accessor to_phone_number: String
2374
+
2375
+ attr_accessor twilio_message_sid: String?
2376
+
2377
+ attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2378
+
2379
+ def initialize: (
2380
+ id: String,
2381
+ created_at: top,
2382
+ message_body: String,
2383
+ to_phone_number: String,
2384
+ twilio_message_sid: String?,
2385
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2386
+ ) -> void
2387
+
2388
+ def to_hash: -> {
2389
+ id: String,
2390
+ created_at: top,
2391
+ message_body: String,
2392
+ to_phone_number: String,
2393
+ twilio_message_sid: String?,
2394
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2395
+ }
2396
+
2397
+ type type_ = :in_call | :voicemail | :after_call
2398
+
2399
+ module Type
2400
+ extend Revox::Internal::Type::Enum
2401
+
2402
+ IN_CALL: :in_call
2403
+ VOICEMAIL: :voicemail
2404
+ AFTER_CALL: :after_call
2405
+
2406
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_]
2407
+ end
2408
+ end
2409
+
2410
+ type transcript =
2411
+ {
2412
+ content: String,
2413
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::role,
2414
+ tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::tool_arguments,
2415
+ tool_is_error: bool,
2416
+ tool_name: String,
2417
+ tool_output: String
2418
+ }
2419
+
2420
+ class Transcript < Revox::Internal::Type::BaseModel
2421
+ attr_accessor content: String
2422
+
2423
+ attr_accessor role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::role
2424
+
2425
+ attr_reader tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::tool_arguments?
2426
+
2427
+ def tool_arguments=: (
2428
+ Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::tool_arguments
2429
+ ) -> Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::tool_arguments
2430
+
2431
+ attr_reader tool_is_error: bool?
2432
+
2433
+ def tool_is_error=: (bool) -> bool
2434
+
2435
+ attr_reader tool_name: String?
2436
+
2437
+ def tool_name=: (String) -> String
2438
+
2439
+ attr_reader tool_output: String?
2440
+
2441
+ def tool_output=: (String) -> String
2442
+
2443
+ def initialize: (
2444
+ content: String,
2445
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::role,
2446
+ ?tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::tool_arguments,
2447
+ ?tool_is_error: bool,
2448
+ ?tool_name: String,
2449
+ ?tool_output: String
2450
+ ) -> void
2451
+
2452
+ def to_hash: -> {
2453
+ content: String,
2454
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::role,
2455
+ tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::tool_arguments,
2456
+ tool_is_error: bool,
2457
+ tool_name: String,
2458
+ tool_output: String
2459
+ }
2460
+
2461
+ type role = :user | :assistant | :human_agent | :tool
2462
+
2463
+ module Role
2464
+ extend Revox::Internal::Type::Enum
2465
+
2466
+ USER: :user
2467
+ ASSISTANT: :assistant
2468
+ HUMAN_AGENT: :human_agent
2469
+ TOOL: :tool
2470
+
2471
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::role]
2472
+ end
2473
+
2474
+ type tool_arguments = ::Hash[Symbol, top] | String
2475
+
2476
+ module ToolArguments
2477
+ extend Revox::Internal::Type::Union
2478
+
2479
+ def self?.variants: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::tool_arguments]
2480
+
2481
+ UnionMember0Map: Revox::Internal::Type::Converter
2482
+ end
2483
+ end
2484
+ end
2485
+
2486
+ type llm_model =
2487
+ Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember0
2488
+ | Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember1
2489
+ | Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember2
2490
+ | Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3
2491
+
2492
+ module LlmModel
2493
+ extend Revox::Internal::Type::Union
2494
+
2495
+ type union_member0 =
2496
+ {
2497
+ name: Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember0::name_,
2498
+ type: :"dedicated-instance"
2499
+ }
2500
+
2501
+ class UnionMember0 < Revox::Internal::Type::BaseModel
2502
+ attr_accessor name: Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember0::name_
2503
+
2504
+ attr_accessor type: :"dedicated-instance"
2505
+
2506
+ def initialize: (
2507
+ name: Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember0::name_,
2508
+ ?type: :"dedicated-instance"
2509
+ ) -> void
2510
+
2511
+ def to_hash: -> {
2512
+ name: Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember0::name_,
2513
+ type: :"dedicated-instance"
2514
+ }
2515
+
2516
+ type name_ = :"gpt-4.1" | :"ministral-3-8b-instruct"
2517
+
2518
+ module Name
2519
+ extend Revox::Internal::Type::Enum
2520
+
2521
+ GPT_4_1: :"gpt-4.1"
2522
+ MINISTRAL_3_8B_INSTRUCT: :"ministral-3-8b-instruct"
2523
+
2524
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember0::name_]
2525
+ end
2526
+ end
2527
+
2528
+ type union_member1 =
2529
+ {
2530
+ openrouter_model_id: String,
2531
+ openrouter_provider: String,
2532
+ type: :openrouter
2533
+ }
2534
+
2535
+ class UnionMember1 < Revox::Internal::Type::BaseModel
2536
+ attr_accessor openrouter_model_id: String
2537
+
2538
+ attr_accessor openrouter_provider: String
2539
+
2540
+ attr_accessor type: :openrouter
2541
+
2542
+ def initialize: (
2543
+ openrouter_model_id: String,
2544
+ openrouter_provider: String,
2545
+ ?type: :openrouter
2546
+ ) -> void
2547
+
2548
+ def to_hash: -> {
2549
+ openrouter_model_id: String,
2550
+ openrouter_provider: String,
2551
+ type: :openrouter
2552
+ }
2553
+ end
2554
+
2555
+ type union_member2 =
2556
+ {
2557
+ api_key: String,
2558
+ api_url: String,
2559
+ model_name: String,
2560
+ type: :custom
2561
+ }
2562
+
2563
+ class UnionMember2 < Revox::Internal::Type::BaseModel
2564
+ attr_accessor api_key: String
2565
+
2566
+ attr_accessor api_url: String
2567
+
2568
+ attr_accessor model_name: String
2569
+
2570
+ attr_accessor type: :custom
2571
+
2572
+ def initialize: (
2573
+ api_key: String,
2574
+ api_url: String,
2575
+ model_name: String,
2576
+ ?type: :custom
2577
+ ) -> void
2578
+
2579
+ def to_hash: -> {
2580
+ api_key: String,
2581
+ api_url: String,
2582
+ model_name: String,
2583
+ type: :custom
2584
+ }
2585
+ end
2586
+
2587
+ type union_member3 =
2588
+ {
2589
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3::provider,
2590
+ realtime_model_id: String,
2591
+ type: :realtime,
2592
+ realtime_voice_id: String
2593
+ }
2594
+
2595
+ class UnionMember3 < Revox::Internal::Type::BaseModel
2596
+ attr_accessor provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3::provider
2597
+
2598
+ attr_accessor realtime_model_id: String
2599
+
2600
+ attr_accessor type: :realtime
2601
+
2602
+ attr_reader realtime_voice_id: String?
2603
+
2604
+ def realtime_voice_id=: (String) -> String
2605
+
2606
+ def initialize: (
2607
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3::provider,
2608
+ realtime_model_id: String,
2609
+ ?realtime_voice_id: String,
2610
+ ?type: :realtime
2611
+ ) -> void
2612
+
2613
+ def to_hash: -> {
2614
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3::provider,
2615
+ realtime_model_id: String,
2616
+ type: :realtime,
2617
+ realtime_voice_id: String
2618
+ }
2619
+
2620
+ type provider = :openai | :google
2621
+
2622
+ module Provider
2623
+ extend Revox::Internal::Type::Enum
2624
+
2625
+ OPENAI: :openai
2626
+ GOOGLE: :google
2627
+
2628
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3::provider]
2629
+ end
2630
+ end
2631
+
2632
+ def self?.variants: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::llm_model]
2633
+ end
2634
+
2635
+ type status =
2636
+ :initializing
2637
+ | :queued_for_calling
2638
+ | :calling
2639
+ | :post_processing
2640
+ | :scheduled
2641
+ | :paused
2642
+ | :completed
2643
+ | :cancelled
2644
+ | :errored
2645
+
2646
+ module Status
2647
+ extend Revox::Internal::Type::Enum
2648
+
2649
+ INITIALIZING: :initializing
2650
+ QUEUED_FOR_CALLING: :queued_for_calling
2651
+ CALLING: :calling
2652
+ POST_PROCESSING: :post_processing
2653
+ SCHEDULED: :scheduled
2654
+ PAUSED: :paused
2655
+ COMPLETED: :completed
2656
+ CANCELLED: :cancelled
2657
+ ERRORED: :errored
2658
+
2659
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::status]
2660
+ end
2661
+
2662
+ type outcome =
2663
+ :not_interested
2664
+ | :interested
2665
+ | :completed
2666
+ | :requested_callback_later
2667
+ | :requested_callback_new_number
2668
+ | :do_not_contact
2669
+ | :ai_averse
2670
+
2671
+ module Outcome
2672
+ extend Revox::Internal::Type::Enum
2673
+
2674
+ NOT_INTERESTED: :not_interested
2675
+ INTERESTED: :interested
2676
+ COMPLETED: :completed
2677
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
2678
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
2679
+ DO_NOT_CONTACT: :do_not_contact
2680
+ AI_AVERSE: :ai_averse
2681
+
2682
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::outcome]
2683
+ end
2684
+ end
2685
+ end
2686
+ end
2687
+ end
2688
+ end