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,1011 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class CampaignStatisticsResponse < Revox::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Revox::Models::CampaignStatisticsResponse,
10
+ Revox::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(Revox::Models::CampaignStatisticsResponse::Statistics) }
15
+ attr_reader :statistics
16
+
17
+ sig do
18
+ params(
19
+ statistics:
20
+ Revox::Models::CampaignStatisticsResponse::Statistics::OrHash
21
+ ).void
22
+ end
23
+ attr_writer :statistics
24
+
25
+ sig do
26
+ params(
27
+ statistics:
28
+ Revox::Models::CampaignStatisticsResponse::Statistics::OrHash
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(statistics:)
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ { statistics: Revox::Models::CampaignStatisticsResponse::Statistics }
37
+ )
38
+ end
39
+ def to_hash
40
+ end
41
+
42
+ class Statistics < Revox::Internal::Type::BaseModel
43
+ OrHash =
44
+ T.type_alias do
45
+ T.any(
46
+ Revox::Models::CampaignStatisticsResponse::Statistics,
47
+ Revox::Internal::AnyHash
48
+ )
49
+ end
50
+
51
+ sig do
52
+ returns(
53
+ Revox::Models::CampaignStatisticsResponse::Statistics::Campaign
54
+ )
55
+ end
56
+ attr_reader :campaign
57
+
58
+ sig do
59
+ params(
60
+ campaign:
61
+ Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::OrHash
62
+ ).void
63
+ end
64
+ attr_writer :campaign
65
+
66
+ sig do
67
+ returns(
68
+ T.nilable(
69
+ Revox::Models::CampaignStatisticsResponse::Statistics::DataExtraction
70
+ )
71
+ )
72
+ end
73
+ attr_reader :data_extraction
74
+
75
+ sig do
76
+ params(
77
+ data_extraction:
78
+ T.nilable(
79
+ Revox::Models::CampaignStatisticsResponse::Statistics::DataExtraction::OrHash
80
+ )
81
+ ).void
82
+ end
83
+ attr_writer :data_extraction
84
+
85
+ sig do
86
+ returns(Revox::Models::CampaignStatisticsResponse::Statistics::Effort)
87
+ end
88
+ attr_reader :effort
89
+
90
+ sig do
91
+ params(
92
+ effort:
93
+ Revox::Models::CampaignStatisticsResponse::Statistics::Effort::OrHash
94
+ ).void
95
+ end
96
+ attr_writer :effort
97
+
98
+ sig do
99
+ returns(Revox::Models::CampaignStatisticsResponse::Statistics::Funnel)
100
+ end
101
+ attr_reader :funnel
102
+
103
+ sig do
104
+ params(
105
+ funnel:
106
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::OrHash
107
+ ).void
108
+ end
109
+ attr_writer :funnel
110
+
111
+ sig { returns(T::Array[String]) }
112
+ attr_accessor :hot_lead_outcomes
113
+
114
+ sig do
115
+ returns(
116
+ Revox::Models::CampaignStatisticsResponse::Statistics::Inbound
117
+ )
118
+ end
119
+ attr_reader :inbound
120
+
121
+ sig do
122
+ params(
123
+ inbound:
124
+ Revox::Models::CampaignStatisticsResponse::Statistics::Inbound::OrHash
125
+ ).void
126
+ end
127
+ attr_writer :inbound
128
+
129
+ sig do
130
+ returns(Revox::Models::CampaignStatisticsResponse::Statistics::Leads)
131
+ end
132
+ attr_reader :leads
133
+
134
+ sig do
135
+ params(
136
+ leads:
137
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::OrHash
138
+ ).void
139
+ end
140
+ attr_writer :leads
141
+
142
+ sig do
143
+ returns(
144
+ T::Array[
145
+ Revox::Models::CampaignStatisticsResponse::Statistics::OutcomeBreakdown
146
+ ]
147
+ )
148
+ end
149
+ attr_accessor :outcome_breakdown
150
+
151
+ sig do
152
+ params(
153
+ campaign:
154
+ Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::OrHash,
155
+ data_extraction:
156
+ T.nilable(
157
+ Revox::Models::CampaignStatisticsResponse::Statistics::DataExtraction::OrHash
158
+ ),
159
+ effort:
160
+ Revox::Models::CampaignStatisticsResponse::Statistics::Effort::OrHash,
161
+ funnel:
162
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::OrHash,
163
+ hot_lead_outcomes: T::Array[String],
164
+ inbound:
165
+ Revox::Models::CampaignStatisticsResponse::Statistics::Inbound::OrHash,
166
+ leads:
167
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::OrHash,
168
+ outcome_breakdown:
169
+ T::Array[
170
+ Revox::Models::CampaignStatisticsResponse::Statistics::OutcomeBreakdown::OrHash
171
+ ]
172
+ ).returns(T.attached_class)
173
+ end
174
+ def self.new(
175
+ campaign:,
176
+ data_extraction:,
177
+ effort:,
178
+ funnel:,
179
+ hot_lead_outcomes:,
180
+ inbound:,
181
+ leads:,
182
+ outcome_breakdown:
183
+ )
184
+ end
185
+
186
+ sig do
187
+ override.returns(
188
+ {
189
+ campaign:
190
+ Revox::Models::CampaignStatisticsResponse::Statistics::Campaign,
191
+ data_extraction:
192
+ T.nilable(
193
+ Revox::Models::CampaignStatisticsResponse::Statistics::DataExtraction
194
+ ),
195
+ effort:
196
+ Revox::Models::CampaignStatisticsResponse::Statistics::Effort,
197
+ funnel:
198
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel,
199
+ hot_lead_outcomes: T::Array[String],
200
+ inbound:
201
+ Revox::Models::CampaignStatisticsResponse::Statistics::Inbound,
202
+ leads:
203
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads,
204
+ outcome_breakdown:
205
+ T::Array[
206
+ Revox::Models::CampaignStatisticsResponse::Statistics::OutcomeBreakdown
207
+ ]
208
+ }
209
+ )
210
+ end
211
+ def to_hash
212
+ end
213
+
214
+ class Campaign < Revox::Internal::Type::BaseModel
215
+ OrHash =
216
+ T.type_alias do
217
+ T.any(
218
+ Revox::Models::CampaignStatisticsResponse::Statistics::Campaign,
219
+ Revox::Internal::AnyHash
220
+ )
221
+ end
222
+
223
+ sig { returns(String) }
224
+ attr_accessor :id
225
+
226
+ sig { returns(T.nilable(String)) }
227
+ attr_accessor :agent_name
228
+
229
+ sig { returns(T.anything) }
230
+ attr_accessor :first_activity_at
231
+
232
+ sig { returns(T::Boolean) }
233
+ attr_accessor :has_activity
234
+
235
+ sig { returns(T::Boolean) }
236
+ attr_accessor :is_cancelled
237
+
238
+ sig { returns(T.anything) }
239
+ attr_accessor :last_activity_at
240
+
241
+ sig { returns(T.nilable(Float)) }
242
+ attr_accessor :max_attempts_per_contact
243
+
244
+ sig { returns(String) }
245
+ attr_accessor :name
246
+
247
+ sig do
248
+ returns(
249
+ Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::Status::TaggedSymbol
250
+ )
251
+ end
252
+ attr_accessor :status
253
+
254
+ sig { returns(String) }
255
+ attr_accessor :timezone
256
+
257
+ sig do
258
+ params(
259
+ id: String,
260
+ agent_name: T.nilable(String),
261
+ first_activity_at: T.anything,
262
+ has_activity: T::Boolean,
263
+ is_cancelled: T::Boolean,
264
+ last_activity_at: T.anything,
265
+ max_attempts_per_contact: T.nilable(Float),
266
+ name: String,
267
+ status:
268
+ Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::Status::OrSymbol,
269
+ timezone: String
270
+ ).returns(T.attached_class)
271
+ end
272
+ def self.new(
273
+ id:,
274
+ agent_name:,
275
+ first_activity_at:,
276
+ has_activity:,
277
+ is_cancelled:,
278
+ last_activity_at:,
279
+ max_attempts_per_contact:,
280
+ name:,
281
+ status:,
282
+ timezone:
283
+ )
284
+ end
285
+
286
+ sig do
287
+ override.returns(
288
+ {
289
+ id: String,
290
+ agent_name: T.nilable(String),
291
+ first_activity_at: T.anything,
292
+ has_activity: T::Boolean,
293
+ is_cancelled: T::Boolean,
294
+ last_activity_at: T.anything,
295
+ max_attempts_per_contact: T.nilable(Float),
296
+ name: String,
297
+ status:
298
+ Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::Status::TaggedSymbol,
299
+ timezone: String
300
+ }
301
+ )
302
+ end
303
+ def to_hash
304
+ end
305
+
306
+ module Status
307
+ extend Revox::Internal::Type::Enum
308
+
309
+ TaggedSymbol =
310
+ T.type_alias do
311
+ T.all(
312
+ Symbol,
313
+ Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::Status
314
+ )
315
+ end
316
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
317
+
318
+ DRAFT =
319
+ T.let(
320
+ :draft,
321
+ Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::Status::TaggedSymbol
322
+ )
323
+ RUNNING =
324
+ T.let(
325
+ :running,
326
+ Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::Status::TaggedSymbol
327
+ )
328
+ PAUSED =
329
+ T.let(
330
+ :paused,
331
+ Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::Status::TaggedSymbol
332
+ )
333
+ COMPLETED =
334
+ T.let(
335
+ :completed,
336
+ Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::Status::TaggedSymbol
337
+ )
338
+
339
+ sig do
340
+ override.returns(
341
+ T::Array[
342
+ Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::Status::TaggedSymbol
343
+ ]
344
+ )
345
+ end
346
+ def self.values
347
+ end
348
+ end
349
+ end
350
+
351
+ class DataExtraction < Revox::Internal::Type::BaseModel
352
+ OrHash =
353
+ T.type_alias do
354
+ T.any(
355
+ Revox::Models::CampaignStatisticsResponse::Statistics::DataExtraction,
356
+ Revox::Internal::AnyHash
357
+ )
358
+ end
359
+
360
+ sig { returns(T::Array[String]) }
361
+ attr_accessor :fields
362
+
363
+ sig { returns(String) }
364
+ attr_accessor :intro
365
+
366
+ sig do
367
+ params(fields: T::Array[String], intro: String).returns(
368
+ T.attached_class
369
+ )
370
+ end
371
+ def self.new(fields:, intro:)
372
+ end
373
+
374
+ sig { override.returns({ fields: T::Array[String], intro: String }) }
375
+ def to_hash
376
+ end
377
+ end
378
+
379
+ class Effort < Revox::Internal::Type::BaseModel
380
+ OrHash =
381
+ T.type_alias do
382
+ T.any(
383
+ Revox::Models::CampaignStatisticsResponse::Statistics::Effort,
384
+ Revox::Internal::AnyHash
385
+ )
386
+ end
387
+
388
+ sig { returns(Float) }
389
+ attr_accessor :calls_total
390
+
391
+ sig { returns(Float) }
392
+ attr_accessor :inbound_calls
393
+
394
+ sig { returns(Float) }
395
+ attr_accessor :outbound_attempts
396
+
397
+ sig do
398
+ params(
399
+ calls_total: Float,
400
+ inbound_calls: Float,
401
+ outbound_attempts: Float
402
+ ).returns(T.attached_class)
403
+ end
404
+ def self.new(calls_total:, inbound_calls:, outbound_attempts:)
405
+ end
406
+
407
+ sig do
408
+ override.returns(
409
+ {
410
+ calls_total: Float,
411
+ inbound_calls: Float,
412
+ outbound_attempts: Float
413
+ }
414
+ )
415
+ end
416
+ def to_hash
417
+ end
418
+ end
419
+
420
+ class Funnel < Revox::Internal::Type::BaseModel
421
+ OrHash =
422
+ T.type_alias do
423
+ T.any(
424
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel,
425
+ Revox::Internal::AnyHash
426
+ )
427
+ end
428
+
429
+ sig do
430
+ returns(
431
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Called
432
+ )
433
+ end
434
+ attr_reader :called
435
+
436
+ sig do
437
+ params(
438
+ called:
439
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Called::OrHash
440
+ ).void
441
+ end
442
+ attr_writer :called
443
+
444
+ sig do
445
+ returns(
446
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::HotLeads
447
+ )
448
+ end
449
+ attr_reader :hot_leads
450
+
451
+ sig do
452
+ params(
453
+ hot_leads:
454
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::HotLeads::OrHash
455
+ ).void
456
+ end
457
+ attr_writer :hot_leads
458
+
459
+ sig do
460
+ returns(
461
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Reached
462
+ )
463
+ end
464
+ attr_reader :reached
465
+
466
+ sig do
467
+ params(
468
+ reached:
469
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Reached::OrHash
470
+ ).void
471
+ end
472
+ attr_writer :reached
473
+
474
+ sig do
475
+ returns(
476
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::RealExchanges
477
+ )
478
+ end
479
+ attr_reader :real_exchanges
480
+
481
+ sig do
482
+ params(
483
+ real_exchanges:
484
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::RealExchanges::OrHash
485
+ ).void
486
+ end
487
+ attr_writer :real_exchanges
488
+
489
+ sig do
490
+ params(
491
+ called:
492
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Called::OrHash,
493
+ hot_leads:
494
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::HotLeads::OrHash,
495
+ reached:
496
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Reached::OrHash,
497
+ real_exchanges:
498
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::RealExchanges::OrHash
499
+ ).returns(T.attached_class)
500
+ end
501
+ def self.new(called:, hot_leads:, reached:, real_exchanges:)
502
+ end
503
+
504
+ sig do
505
+ override.returns(
506
+ {
507
+ called:
508
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Called,
509
+ hot_leads:
510
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::HotLeads,
511
+ reached:
512
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Reached,
513
+ real_exchanges:
514
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::RealExchanges
515
+ }
516
+ )
517
+ end
518
+ def to_hash
519
+ end
520
+
521
+ class Called < Revox::Internal::Type::BaseModel
522
+ OrHash =
523
+ T.type_alias do
524
+ T.any(
525
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Called,
526
+ Revox::Internal::AnyHash
527
+ )
528
+ end
529
+
530
+ sig { returns(Float) }
531
+ attr_accessor :count
532
+
533
+ sig { returns(Float) }
534
+ attr_accessor :imported_rows
535
+
536
+ sig do
537
+ params(count: Float, imported_rows: Float).returns(
538
+ T.attached_class
539
+ )
540
+ end
541
+ def self.new(count:, imported_rows:)
542
+ end
543
+
544
+ sig { override.returns({ count: Float, imported_rows: Float }) }
545
+ def to_hash
546
+ end
547
+ end
548
+
549
+ class HotLeads < Revox::Internal::Type::BaseModel
550
+ OrHash =
551
+ T.type_alias do
552
+ T.any(
553
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::HotLeads,
554
+ Revox::Internal::AnyHash
555
+ )
556
+ end
557
+
558
+ sig { returns(Float) }
559
+ attr_accessor :count
560
+
561
+ sig { returns(T.nilable(Float)) }
562
+ attr_accessor :pct_of_reached
563
+
564
+ sig do
565
+ params(count: Float, pct_of_reached: T.nilable(Float)).returns(
566
+ T.attached_class
567
+ )
568
+ end
569
+ def self.new(count:, pct_of_reached:)
570
+ end
571
+
572
+ sig do
573
+ override.returns(
574
+ { count: Float, pct_of_reached: T.nilable(Float) }
575
+ )
576
+ end
577
+ def to_hash
578
+ end
579
+ end
580
+
581
+ class Reached < Revox::Internal::Type::BaseModel
582
+ OrHash =
583
+ T.type_alias do
584
+ T.any(
585
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Reached,
586
+ Revox::Internal::AnyHash
587
+ )
588
+ end
589
+
590
+ sig { returns(Float) }
591
+ attr_accessor :count
592
+
593
+ sig { returns(Float) }
594
+ attr_accessor :inbound
595
+
596
+ sig { returns(Float) }
597
+ attr_accessor :outbound
598
+
599
+ sig { returns(Float) }
600
+ attr_accessor :overlap
601
+
602
+ sig { returns(T.nilable(Float)) }
603
+ attr_accessor :pct_of_called
604
+
605
+ sig do
606
+ params(
607
+ count: Float,
608
+ inbound: Float,
609
+ outbound: Float,
610
+ overlap: Float,
611
+ pct_of_called: T.nilable(Float)
612
+ ).returns(T.attached_class)
613
+ end
614
+ def self.new(count:, inbound:, outbound:, overlap:, pct_of_called:)
615
+ end
616
+
617
+ sig do
618
+ override.returns(
619
+ {
620
+ count: Float,
621
+ inbound: Float,
622
+ outbound: Float,
623
+ overlap: Float,
624
+ pct_of_called: T.nilable(Float)
625
+ }
626
+ )
627
+ end
628
+ def to_hash
629
+ end
630
+ end
631
+
632
+ class RealExchanges < Revox::Internal::Type::BaseModel
633
+ OrHash =
634
+ T.type_alias do
635
+ T.any(
636
+ Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::RealExchanges,
637
+ Revox::Internal::AnyHash
638
+ )
639
+ end
640
+
641
+ sig { returns(Float) }
642
+ attr_accessor :count
643
+
644
+ sig { returns(T.nilable(Float)) }
645
+ attr_accessor :pct_of_reached
646
+
647
+ sig do
648
+ params(count: Float, pct_of_reached: T.nilable(Float)).returns(
649
+ T.attached_class
650
+ )
651
+ end
652
+ def self.new(count:, pct_of_reached:)
653
+ end
654
+
655
+ sig do
656
+ override.returns(
657
+ { count: Float, pct_of_reached: T.nilable(Float) }
658
+ )
659
+ end
660
+ def to_hash
661
+ end
662
+ end
663
+ end
664
+
665
+ class Inbound < Revox::Internal::Type::BaseModel
666
+ OrHash =
667
+ T.type_alias do
668
+ T.any(
669
+ Revox::Models::CampaignStatisticsResponse::Statistics::Inbound,
670
+ Revox::Internal::AnyHash
671
+ )
672
+ end
673
+
674
+ sig { returns(Float) }
675
+ attr_accessor :unique_callers
676
+
677
+ sig { params(unique_callers: Float).returns(T.attached_class) }
678
+ def self.new(unique_callers:)
679
+ end
680
+
681
+ sig { override.returns({ unique_callers: Float }) }
682
+ def to_hash
683
+ end
684
+ end
685
+
686
+ class Leads < Revox::Internal::Type::BaseModel
687
+ OrHash =
688
+ T.type_alias do
689
+ T.any(
690
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads,
691
+ Revox::Internal::AnyHash
692
+ )
693
+ end
694
+
695
+ sig do
696
+ returns(
697
+ T::Array[
698
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot
699
+ ]
700
+ )
701
+ end
702
+ attr_accessor :hot
703
+
704
+ sig do
705
+ returns(
706
+ T::Array[
707
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm
708
+ ]
709
+ )
710
+ end
711
+ attr_accessor :warm
712
+
713
+ sig do
714
+ params(
715
+ hot:
716
+ T::Array[
717
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot::OrHash
718
+ ],
719
+ warm:
720
+ T::Array[
721
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm::OrHash
722
+ ]
723
+ ).returns(T.attached_class)
724
+ end
725
+ def self.new(hot:, warm:)
726
+ end
727
+
728
+ sig do
729
+ override.returns(
730
+ {
731
+ hot:
732
+ T::Array[
733
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot
734
+ ],
735
+ warm:
736
+ T::Array[
737
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm
738
+ ]
739
+ }
740
+ )
741
+ end
742
+ def to_hash
743
+ end
744
+
745
+ class Hot < Revox::Internal::Type::BaseModel
746
+ OrHash =
747
+ T.type_alias do
748
+ T.any(
749
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot,
750
+ Revox::Internal::AnyHash
751
+ )
752
+ end
753
+
754
+ sig { returns(T.nilable(String)) }
755
+ attr_accessor :attempt_id
756
+
757
+ sig { returns(String) }
758
+ attr_accessor :call_id
759
+
760
+ sig do
761
+ returns(
762
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot::Direction::TaggedSymbol
763
+ )
764
+ end
765
+ attr_accessor :direction
766
+
767
+ sig { returns(T.nilable(String)) }
768
+ attr_accessor :email
769
+
770
+ sig { returns(T.anything) }
771
+ attr_accessor :last_activity_at
772
+
773
+ sig { returns(String) }
774
+ attr_accessor :name
775
+
776
+ sig { returns(String) }
777
+ attr_accessor :phone
778
+
779
+ sig { returns(T.nilable(String)) }
780
+ attr_accessor :summary
781
+
782
+ sig do
783
+ params(
784
+ attempt_id: T.nilable(String),
785
+ call_id: String,
786
+ direction:
787
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot::Direction::OrSymbol,
788
+ email: T.nilable(String),
789
+ last_activity_at: T.anything,
790
+ name: String,
791
+ phone: String,
792
+ summary: T.nilable(String)
793
+ ).returns(T.attached_class)
794
+ end
795
+ def self.new(
796
+ attempt_id:,
797
+ call_id:,
798
+ direction:,
799
+ email:,
800
+ last_activity_at:,
801
+ name:,
802
+ phone:,
803
+ summary:
804
+ )
805
+ end
806
+
807
+ sig do
808
+ override.returns(
809
+ {
810
+ attempt_id: T.nilable(String),
811
+ call_id: String,
812
+ direction:
813
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot::Direction::TaggedSymbol,
814
+ email: T.nilable(String),
815
+ last_activity_at: T.anything,
816
+ name: String,
817
+ phone: String,
818
+ summary: T.nilable(String)
819
+ }
820
+ )
821
+ end
822
+ def to_hash
823
+ end
824
+
825
+ module Direction
826
+ extend Revox::Internal::Type::Enum
827
+
828
+ TaggedSymbol =
829
+ T.type_alias do
830
+ T.all(
831
+ Symbol,
832
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot::Direction
833
+ )
834
+ end
835
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
836
+
837
+ INBOUND =
838
+ T.let(
839
+ :inbound,
840
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot::Direction::TaggedSymbol
841
+ )
842
+ OUTBOUND =
843
+ T.let(
844
+ :outbound,
845
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot::Direction::TaggedSymbol
846
+ )
847
+
848
+ sig do
849
+ override.returns(
850
+ T::Array[
851
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot::Direction::TaggedSymbol
852
+ ]
853
+ )
854
+ end
855
+ def self.values
856
+ end
857
+ end
858
+ end
859
+
860
+ class Warm < Revox::Internal::Type::BaseModel
861
+ OrHash =
862
+ T.type_alias do
863
+ T.any(
864
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm,
865
+ Revox::Internal::AnyHash
866
+ )
867
+ end
868
+
869
+ sig { returns(T.nilable(String)) }
870
+ attr_accessor :attempt_id
871
+
872
+ sig { returns(String) }
873
+ attr_accessor :call_id
874
+
875
+ sig do
876
+ returns(
877
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm::Direction::TaggedSymbol
878
+ )
879
+ end
880
+ attr_accessor :direction
881
+
882
+ sig { returns(T.nilable(String)) }
883
+ attr_accessor :email
884
+
885
+ sig { returns(T.anything) }
886
+ attr_accessor :last_activity_at
887
+
888
+ sig { returns(String) }
889
+ attr_accessor :name
890
+
891
+ sig { returns(String) }
892
+ attr_accessor :phone
893
+
894
+ sig { returns(T.nilable(String)) }
895
+ attr_accessor :summary
896
+
897
+ sig do
898
+ params(
899
+ attempt_id: T.nilable(String),
900
+ call_id: String,
901
+ direction:
902
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm::Direction::OrSymbol,
903
+ email: T.nilable(String),
904
+ last_activity_at: T.anything,
905
+ name: String,
906
+ phone: String,
907
+ summary: T.nilable(String)
908
+ ).returns(T.attached_class)
909
+ end
910
+ def self.new(
911
+ attempt_id:,
912
+ call_id:,
913
+ direction:,
914
+ email:,
915
+ last_activity_at:,
916
+ name:,
917
+ phone:,
918
+ summary:
919
+ )
920
+ end
921
+
922
+ sig do
923
+ override.returns(
924
+ {
925
+ attempt_id: T.nilable(String),
926
+ call_id: String,
927
+ direction:
928
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm::Direction::TaggedSymbol,
929
+ email: T.nilable(String),
930
+ last_activity_at: T.anything,
931
+ name: String,
932
+ phone: String,
933
+ summary: T.nilable(String)
934
+ }
935
+ )
936
+ end
937
+ def to_hash
938
+ end
939
+
940
+ module Direction
941
+ extend Revox::Internal::Type::Enum
942
+
943
+ TaggedSymbol =
944
+ T.type_alias do
945
+ T.all(
946
+ Symbol,
947
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm::Direction
948
+ )
949
+ end
950
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
951
+
952
+ INBOUND =
953
+ T.let(
954
+ :inbound,
955
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm::Direction::TaggedSymbol
956
+ )
957
+ OUTBOUND =
958
+ T.let(
959
+ :outbound,
960
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm::Direction::TaggedSymbol
961
+ )
962
+
963
+ sig do
964
+ override.returns(
965
+ T::Array[
966
+ Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm::Direction::TaggedSymbol
967
+ ]
968
+ )
969
+ end
970
+ def self.values
971
+ end
972
+ end
973
+ end
974
+ end
975
+
976
+ class OutcomeBreakdown < Revox::Internal::Type::BaseModel
977
+ OrHash =
978
+ T.type_alias do
979
+ T.any(
980
+ Revox::Models::CampaignStatisticsResponse::Statistics::OutcomeBreakdown,
981
+ Revox::Internal::AnyHash
982
+ )
983
+ end
984
+
985
+ sig { returns(Float) }
986
+ attr_accessor :count
987
+
988
+ sig { returns(String) }
989
+ attr_accessor :label
990
+
991
+ sig { returns(String) }
992
+ attr_accessor :outcome
993
+
994
+ sig do
995
+ params(count: Float, label: String, outcome: String).returns(
996
+ T.attached_class
997
+ )
998
+ end
999
+ def self.new(count:, label:, outcome:)
1000
+ end
1001
+
1002
+ sig do
1003
+ override.returns({ count: Float, label: String, outcome: String })
1004
+ end
1005
+ def to_hash
1006
+ end
1007
+ end
1008
+ end
1009
+ end
1010
+ end
1011
+ end