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,20 @@
1
+ module Revox
2
+ module Models
3
+ type campaign_pause_params =
4
+ { id: String } & Revox::Internal::Type::request_parameters
5
+
6
+ class CampaignPauseParams < Revox::Internal::Type::BaseModel
7
+ extend Revox::Internal::Type::RequestParameters::Converter
8
+ include Revox::Internal::Type::RequestParameters
9
+
10
+ attr_accessor id: String
11
+
12
+ def initialize: (
13
+ id: String,
14
+ ?request_options: Revox::request_opts
15
+ ) -> void
16
+
17
+ def to_hash: -> { id: String, request_options: Revox::RequestOptions }
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,13 @@
1
+ module Revox
2
+ module Models
3
+ type campaign_pause_response = { success: bool }
4
+
5
+ class CampaignPauseResponse < Revox::Internal::Type::BaseModel
6
+ attr_accessor success: bool
7
+
8
+ def initialize: (success: bool) -> void
9
+
10
+ def to_hash: -> { success: bool }
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,20 @@
1
+ module Revox
2
+ module Models
3
+ type campaign_resume_params =
4
+ { id: String } & Revox::Internal::Type::request_parameters
5
+
6
+ class CampaignResumeParams < Revox::Internal::Type::BaseModel
7
+ extend Revox::Internal::Type::RequestParameters::Converter
8
+ include Revox::Internal::Type::RequestParameters
9
+
10
+ attr_accessor id: String
11
+
12
+ def initialize: (
13
+ id: String,
14
+ ?request_options: Revox::request_opts
15
+ ) -> void
16
+
17
+ def to_hash: -> { id: String, request_options: Revox::RequestOptions }
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,13 @@
1
+ module Revox
2
+ module Models
3
+ type campaign_resume_response = { success: bool }
4
+
5
+ class CampaignResumeResponse < Revox::Internal::Type::BaseModel
6
+ attr_accessor success: bool
7
+
8
+ def initialize: (success: bool) -> void
9
+
10
+ def to_hash: -> { success: bool }
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,20 @@
1
+ module Revox
2
+ module Models
3
+ type campaign_statistics_params =
4
+ { id: String } & Revox::Internal::Type::request_parameters
5
+
6
+ class CampaignStatisticsParams < Revox::Internal::Type::BaseModel
7
+ extend Revox::Internal::Type::RequestParameters::Converter
8
+ include Revox::Internal::Type::RequestParameters
9
+
10
+ attr_accessor id: String
11
+
12
+ def initialize: (
13
+ id: String,
14
+ ?request_options: Revox::request_opts
15
+ ) -> void
16
+
17
+ def to_hash: -> { id: String, request_options: Revox::RequestOptions }
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,458 @@
1
+ module Revox
2
+ module Models
3
+ type campaign_statistics_response =
4
+ { statistics: Revox::Models::CampaignStatisticsResponse::Statistics }
5
+
6
+ class CampaignStatisticsResponse < Revox::Internal::Type::BaseModel
7
+ attr_accessor statistics: Revox::Models::CampaignStatisticsResponse::Statistics
8
+
9
+ def initialize: (
10
+ statistics: Revox::Models::CampaignStatisticsResponse::Statistics
11
+ ) -> void
12
+
13
+ def to_hash: -> {
14
+ statistics: Revox::Models::CampaignStatisticsResponse::Statistics
15
+ }
16
+
17
+ type statistics =
18
+ {
19
+ campaign: Revox::Models::CampaignStatisticsResponse::Statistics::Campaign,
20
+ data_extraction: Revox::Models::CampaignStatisticsResponse::Statistics::DataExtraction?,
21
+ effort: Revox::Models::CampaignStatisticsResponse::Statistics::Effort,
22
+ funnel: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel,
23
+ hot_lead_outcomes: ::Array[String],
24
+ inbound: Revox::Models::CampaignStatisticsResponse::Statistics::Inbound,
25
+ leads: Revox::Models::CampaignStatisticsResponse::Statistics::Leads,
26
+ outcome_breakdown: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::OutcomeBreakdown]
27
+ }
28
+
29
+ class Statistics < Revox::Internal::Type::BaseModel
30
+ attr_accessor campaign: Revox::Models::CampaignStatisticsResponse::Statistics::Campaign
31
+
32
+ attr_accessor data_extraction: Revox::Models::CampaignStatisticsResponse::Statistics::DataExtraction?
33
+
34
+ attr_accessor effort: Revox::Models::CampaignStatisticsResponse::Statistics::Effort
35
+
36
+ attr_accessor funnel: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel
37
+
38
+ attr_accessor hot_lead_outcomes: ::Array[String]
39
+
40
+ attr_accessor inbound: Revox::Models::CampaignStatisticsResponse::Statistics::Inbound
41
+
42
+ attr_accessor leads: Revox::Models::CampaignStatisticsResponse::Statistics::Leads
43
+
44
+ attr_accessor outcome_breakdown: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::OutcomeBreakdown]
45
+
46
+ def initialize: (
47
+ campaign: Revox::Models::CampaignStatisticsResponse::Statistics::Campaign,
48
+ data_extraction: Revox::Models::CampaignStatisticsResponse::Statistics::DataExtraction?,
49
+ effort: Revox::Models::CampaignStatisticsResponse::Statistics::Effort,
50
+ funnel: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel,
51
+ hot_lead_outcomes: ::Array[String],
52
+ inbound: Revox::Models::CampaignStatisticsResponse::Statistics::Inbound,
53
+ leads: Revox::Models::CampaignStatisticsResponse::Statistics::Leads,
54
+ outcome_breakdown: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::OutcomeBreakdown]
55
+ ) -> void
56
+
57
+ def to_hash: -> {
58
+ campaign: Revox::Models::CampaignStatisticsResponse::Statistics::Campaign,
59
+ data_extraction: Revox::Models::CampaignStatisticsResponse::Statistics::DataExtraction?,
60
+ effort: Revox::Models::CampaignStatisticsResponse::Statistics::Effort,
61
+ funnel: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel,
62
+ hot_lead_outcomes: ::Array[String],
63
+ inbound: Revox::Models::CampaignStatisticsResponse::Statistics::Inbound,
64
+ leads: Revox::Models::CampaignStatisticsResponse::Statistics::Leads,
65
+ outcome_breakdown: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::OutcomeBreakdown]
66
+ }
67
+
68
+ type campaign =
69
+ {
70
+ id: String,
71
+ agent_name: String?,
72
+ first_activity_at: top,
73
+ has_activity: bool,
74
+ is_cancelled: bool,
75
+ last_activity_at: top,
76
+ max_attempts_per_contact: Float?,
77
+ name: String,
78
+ status: Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::status,
79
+ timezone: String
80
+ }
81
+
82
+ class Campaign < Revox::Internal::Type::BaseModel
83
+ attr_accessor id: String
84
+
85
+ attr_accessor agent_name: String?
86
+
87
+ attr_accessor first_activity_at: top
88
+
89
+ attr_accessor has_activity: bool
90
+
91
+ attr_accessor is_cancelled: bool
92
+
93
+ attr_accessor last_activity_at: top
94
+
95
+ attr_accessor max_attempts_per_contact: Float?
96
+
97
+ attr_accessor name: String
98
+
99
+ attr_accessor status: Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::status
100
+
101
+ attr_accessor timezone: String
102
+
103
+ def initialize: (
104
+ id: String,
105
+ agent_name: String?,
106
+ first_activity_at: top,
107
+ has_activity: bool,
108
+ is_cancelled: bool,
109
+ last_activity_at: top,
110
+ max_attempts_per_contact: Float?,
111
+ name: String,
112
+ status: Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::status,
113
+ timezone: String
114
+ ) -> void
115
+
116
+ def to_hash: -> {
117
+ id: String,
118
+ agent_name: String?,
119
+ first_activity_at: top,
120
+ has_activity: bool,
121
+ is_cancelled: bool,
122
+ last_activity_at: top,
123
+ max_attempts_per_contact: Float?,
124
+ name: String,
125
+ status: Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::status,
126
+ timezone: String
127
+ }
128
+
129
+ type status = :draft | :running | :paused | :completed
130
+
131
+ module Status
132
+ extend Revox::Internal::Type::Enum
133
+
134
+ DRAFT: :draft
135
+ RUNNING: :running
136
+ PAUSED: :paused
137
+ COMPLETED: :completed
138
+
139
+ def self?.values: -> ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::status]
140
+ end
141
+ end
142
+
143
+ type data_extraction = { fields: ::Array[String], intro: String }
144
+
145
+ class DataExtraction < Revox::Internal::Type::BaseModel
146
+ attr_accessor fields: ::Array[String]
147
+
148
+ attr_accessor intro: String
149
+
150
+ def initialize: (fields: ::Array[String], intro: String) -> void
151
+
152
+ def to_hash: -> { fields: ::Array[String], intro: String }
153
+ end
154
+
155
+ type effort =
156
+ { calls_total: Float, inbound_calls: Float, outbound_attempts: Float }
157
+
158
+ class Effort < Revox::Internal::Type::BaseModel
159
+ attr_accessor calls_total: Float
160
+
161
+ attr_accessor inbound_calls: Float
162
+
163
+ attr_accessor outbound_attempts: Float
164
+
165
+ def initialize: (
166
+ calls_total: Float,
167
+ inbound_calls: Float,
168
+ outbound_attempts: Float
169
+ ) -> void
170
+
171
+ def to_hash: -> {
172
+ calls_total: Float,
173
+ inbound_calls: Float,
174
+ outbound_attempts: Float
175
+ }
176
+ end
177
+
178
+ type funnel =
179
+ {
180
+ called: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Called,
181
+ hot_leads: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::HotLeads,
182
+ reached: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Reached,
183
+ real_exchanges: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::RealExchanges
184
+ }
185
+
186
+ class Funnel < Revox::Internal::Type::BaseModel
187
+ attr_accessor called: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Called
188
+
189
+ attr_accessor hot_leads: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::HotLeads
190
+
191
+ attr_accessor reached: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Reached
192
+
193
+ attr_accessor real_exchanges: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::RealExchanges
194
+
195
+ def initialize: (
196
+ called: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Called,
197
+ hot_leads: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::HotLeads,
198
+ reached: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Reached,
199
+ real_exchanges: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::RealExchanges
200
+ ) -> void
201
+
202
+ def to_hash: -> {
203
+ called: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Called,
204
+ hot_leads: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::HotLeads,
205
+ reached: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Reached,
206
+ real_exchanges: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::RealExchanges
207
+ }
208
+
209
+ type called = { count: Float, imported_rows: Float }
210
+
211
+ class Called < Revox::Internal::Type::BaseModel
212
+ attr_accessor count: Float
213
+
214
+ attr_accessor imported_rows: Float
215
+
216
+ def initialize: (count: Float, imported_rows: Float) -> void
217
+
218
+ def to_hash: -> { count: Float, imported_rows: Float }
219
+ end
220
+
221
+ type hot_leads = { count: Float, pct_of_reached: Float? }
222
+
223
+ class HotLeads < Revox::Internal::Type::BaseModel
224
+ attr_accessor count: Float
225
+
226
+ attr_accessor pct_of_reached: Float?
227
+
228
+ def initialize: (count: Float, pct_of_reached: Float?) -> void
229
+
230
+ def to_hash: -> { count: Float, pct_of_reached: Float? }
231
+ end
232
+
233
+ type reached =
234
+ {
235
+ count: Float,
236
+ inbound: Float,
237
+ outbound: Float,
238
+ overlap: Float,
239
+ pct_of_called: Float?
240
+ }
241
+
242
+ class Reached < Revox::Internal::Type::BaseModel
243
+ attr_accessor count: Float
244
+
245
+ attr_accessor inbound: Float
246
+
247
+ attr_accessor outbound: Float
248
+
249
+ attr_accessor overlap: Float
250
+
251
+ attr_accessor pct_of_called: Float?
252
+
253
+ def initialize: (
254
+ count: Float,
255
+ inbound: Float,
256
+ outbound: Float,
257
+ overlap: Float,
258
+ pct_of_called: Float?
259
+ ) -> void
260
+
261
+ def to_hash: -> {
262
+ count: Float,
263
+ inbound: Float,
264
+ outbound: Float,
265
+ overlap: Float,
266
+ pct_of_called: Float?
267
+ }
268
+ end
269
+
270
+ type real_exchanges = { count: Float, pct_of_reached: Float? }
271
+
272
+ class RealExchanges < Revox::Internal::Type::BaseModel
273
+ attr_accessor count: Float
274
+
275
+ attr_accessor pct_of_reached: Float?
276
+
277
+ def initialize: (count: Float, pct_of_reached: Float?) -> void
278
+
279
+ def to_hash: -> { count: Float, pct_of_reached: Float? }
280
+ end
281
+ end
282
+
283
+ type inbound = { unique_callers: Float }
284
+
285
+ class Inbound < Revox::Internal::Type::BaseModel
286
+ attr_accessor unique_callers: Float
287
+
288
+ def initialize: (unique_callers: Float) -> void
289
+
290
+ def to_hash: -> { unique_callers: Float }
291
+ end
292
+
293
+ type leads =
294
+ {
295
+ hot: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot],
296
+ warm: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm]
297
+ }
298
+
299
+ class Leads < Revox::Internal::Type::BaseModel
300
+ attr_accessor hot: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot]
301
+
302
+ attr_accessor warm: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm]
303
+
304
+ def initialize: (
305
+ hot: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot],
306
+ warm: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm]
307
+ ) -> void
308
+
309
+ def to_hash: -> {
310
+ hot: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot],
311
+ warm: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm]
312
+ }
313
+
314
+ type hot =
315
+ {
316
+ attempt_id: String?,
317
+ call_id: String,
318
+ direction: Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot::direction,
319
+ email: String?,
320
+ last_activity_at: top,
321
+ name: String,
322
+ phone: String,
323
+ summary: String?
324
+ }
325
+
326
+ class Hot < Revox::Internal::Type::BaseModel
327
+ attr_accessor attempt_id: String?
328
+
329
+ attr_accessor call_id: String
330
+
331
+ attr_accessor direction: Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot::direction
332
+
333
+ attr_accessor email: String?
334
+
335
+ attr_accessor last_activity_at: top
336
+
337
+ attr_accessor name: String
338
+
339
+ attr_accessor phone: String
340
+
341
+ attr_accessor summary: String?
342
+
343
+ def initialize: (
344
+ attempt_id: String?,
345
+ call_id: String,
346
+ direction: Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot::direction,
347
+ email: String?,
348
+ last_activity_at: top,
349
+ name: String,
350
+ phone: String,
351
+ summary: String?
352
+ ) -> void
353
+
354
+ def to_hash: -> {
355
+ attempt_id: String?,
356
+ call_id: String,
357
+ direction: Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot::direction,
358
+ email: String?,
359
+ last_activity_at: top,
360
+ name: String,
361
+ phone: String,
362
+ summary: String?
363
+ }
364
+
365
+ type direction = :inbound | :outbound
366
+
367
+ module Direction
368
+ extend Revox::Internal::Type::Enum
369
+
370
+ INBOUND: :inbound
371
+ OUTBOUND: :outbound
372
+
373
+ def self?.values: -> ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Hot::direction]
374
+ end
375
+ end
376
+
377
+ type warm =
378
+ {
379
+ attempt_id: String?,
380
+ call_id: String,
381
+ direction: Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm::direction,
382
+ email: String?,
383
+ last_activity_at: top,
384
+ name: String,
385
+ phone: String,
386
+ summary: String?
387
+ }
388
+
389
+ class Warm < Revox::Internal::Type::BaseModel
390
+ attr_accessor attempt_id: String?
391
+
392
+ attr_accessor call_id: String
393
+
394
+ attr_accessor direction: Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm::direction
395
+
396
+ attr_accessor email: String?
397
+
398
+ attr_accessor last_activity_at: top
399
+
400
+ attr_accessor name: String
401
+
402
+ attr_accessor phone: String
403
+
404
+ attr_accessor summary: String?
405
+
406
+ def initialize: (
407
+ attempt_id: String?,
408
+ call_id: String,
409
+ direction: Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm::direction,
410
+ email: String?,
411
+ last_activity_at: top,
412
+ name: String,
413
+ phone: String,
414
+ summary: String?
415
+ ) -> void
416
+
417
+ def to_hash: -> {
418
+ attempt_id: String?,
419
+ call_id: String,
420
+ direction: Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm::direction,
421
+ email: String?,
422
+ last_activity_at: top,
423
+ name: String,
424
+ phone: String,
425
+ summary: String?
426
+ }
427
+
428
+ type direction = :inbound | :outbound
429
+
430
+ module Direction
431
+ extend Revox::Internal::Type::Enum
432
+
433
+ INBOUND: :inbound
434
+ OUTBOUND: :outbound
435
+
436
+ def self?.values: -> ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Warm::direction]
437
+ end
438
+ end
439
+ end
440
+
441
+ type outcome_breakdown =
442
+ { count: Float, label: String, outcome: String }
443
+
444
+ class OutcomeBreakdown < Revox::Internal::Type::BaseModel
445
+ attr_accessor count: Float
446
+
447
+ attr_accessor label: String
448
+
449
+ attr_accessor outcome: String
450
+
451
+ def initialize: (count: Float, label: String, outcome: String) -> void
452
+
453
+ def to_hash: -> { count: Float, label: String, outcome: String }
454
+ end
455
+ end
456
+ end
457
+ end
458
+ end