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