revox 0.2.0 → 0.4.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 (208) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +36 -0
  3. data/README.md +38 -38
  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 +1616 -0
  8. data/lib/revox/models/assistant_create_params.rb +90 -66
  9. data/lib/revox/models/assistant_create_response.rb +87 -65
  10. data/lib/revox/models/assistant_list_response.rb +87 -65
  11. data/lib/revox/models/assistant_retrieve_response.rb +86 -65
  12. data/lib/revox/models/assistant_update_params.rb +90 -66
  13. data/lib/revox/models/assistant_update_response.rb +87 -65
  14. data/lib/revox/models/auth_status_retrieve_params.rb +14 -0
  15. data/lib/revox/models/auth_status_retrieve_response.rb +17 -0
  16. data/lib/revox/models/call_cancel_params.rb +20 -0
  17. data/lib/revox/models/call_cancel_response.rb +16 -0
  18. data/lib/revox/models/call_create_params.rb +117 -90
  19. data/lib/revox/models/call_create_response.rb +680 -90
  20. data/lib/revox/models/call_export_params.rb +203 -0
  21. data/lib/revox/models/call_export_response.rb +22 -0
  22. data/lib/revox/models/call_pause_params.rb +20 -0
  23. data/lib/revox/models/call_pause_response.rb +16 -0
  24. data/lib/revox/models/call_phone_history_params.rb +14 -0
  25. data/lib/revox/models/call_phone_history_response.rb +95 -0
  26. data/lib/revox/models/call_resume_params.rb +20 -0
  27. data/lib/revox/models/call_resume_response.rb +16 -0
  28. data/lib/revox/models/call_retrieve_response.rb +681 -90
  29. data/lib/revox/models/call_search_params.rb +169 -0
  30. data/lib/revox/models/call_search_response.rb +3694 -0
  31. data/lib/revox/models/campaign_create_params.rb +7 -57
  32. data/lib/revox/models/campaign_create_response.rb +108 -119
  33. data/lib/revox/models/campaign_get_rows_response.rb +682 -90
  34. data/lib/revox/models/campaign_list_response.rb +108 -119
  35. data/lib/revox/models/campaign_pause_params.rb +20 -0
  36. data/lib/revox/models/campaign_pause_response.rb +16 -0
  37. data/lib/revox/models/campaign_resume_params.rb +20 -0
  38. data/lib/revox/models/campaign_resume_response.rb +16 -0
  39. data/lib/revox/models/campaign_retrieve_response.rb +108 -119
  40. data/lib/revox/models/campaign_statistics_params.rb +20 -0
  41. data/lib/revox/models/campaign_statistics_response.rb +514 -0
  42. data/lib/revox/models/campaign_update_params.rb +165 -0
  43. data/lib/revox/models/campaign_update_response.rb +2019 -0
  44. data/lib/revox/models/phone_number_delete_params.rb +20 -0
  45. data/lib/revox/models/phone_number_delete_response.rb +16 -0
  46. data/lib/revox/models/phone_number_list_params.rb +14 -0
  47. data/lib/revox/models/phone_number_list_response.rb +1799 -0
  48. data/lib/revox/models/phone_number_update_params.rb +32 -0
  49. data/lib/revox/models/phone_number_update_response.rb +1799 -0
  50. data/lib/revox/models/user_retrieve_params.rb +14 -0
  51. data/lib/revox/models/user_retrieve_response.rb +99 -0
  52. data/lib/revox/models/voice_clone_params.rb +78 -0
  53. data/lib/revox/models/voice_clone_response.rb +40 -0
  54. data/lib/revox/models/voice_delete_params.rb +20 -0
  55. data/lib/revox/models/voice_delete_response.rb +16 -0
  56. data/lib/revox/models/voice_list_response.rb +1 -0
  57. data/lib/revox/models/voice_preview_params.rb +1 -0
  58. data/lib/revox/models/voice_retrieve_params.rb +1 -0
  59. data/lib/revox/models.rb +35 -1
  60. data/lib/revox/resources/assistants.rb +31 -10
  61. data/lib/revox/resources/auth_status.rb +32 -0
  62. data/lib/revox/resources/call.rb +149 -4
  63. data/lib/revox/resources/campaigns.rb +110 -11
  64. data/lib/revox/resources/phone_numbers.rb +74 -0
  65. data/lib/revox/resources/users.rb +17 -3
  66. data/lib/revox/resources/voices.rb +50 -0
  67. data/lib/revox/version.rb +1 -1
  68. data/lib/revox.rb +38 -5
  69. data/rbi/revox/client.rbi +6 -0
  70. data/rbi/revox/models/assistant_clone_params.rbi +33 -0
  71. data/rbi/revox/models/assistant_clone_response.rbi +3351 -0
  72. data/rbi/revox/models/assistant_create_params.rbi +148 -162
  73. data/rbi/revox/models/assistant_create_response.rbi +157 -147
  74. data/rbi/revox/models/assistant_list_response.rbi +157 -147
  75. data/rbi/revox/models/assistant_retrieve_response.rbi +153 -147
  76. data/rbi/revox/models/assistant_update_params.rbi +148 -162
  77. data/rbi/revox/models/assistant_update_response.rbi +157 -147
  78. data/rbi/revox/models/auth_status_retrieve_params.rbi +27 -0
  79. data/rbi/revox/models/auth_status_retrieve_response.rbi +30 -0
  80. data/rbi/revox/models/call_cancel_params.rbi +33 -0
  81. data/rbi/revox/models/call_cancel_response.rbi +23 -0
  82. data/rbi/revox/models/call_create_params.rbi +190 -187
  83. data/rbi/revox/models/call_create_response.rbi +1150 -227
  84. data/rbi/revox/models/call_export_params.rbi +446 -0
  85. data/rbi/revox/models/call_export_response.rbi +26 -0
  86. data/rbi/revox/models/call_pause_params.rbi +31 -0
  87. data/rbi/revox/models/call_pause_response.rbi +23 -0
  88. data/rbi/revox/models/call_phone_history_params.rbi +27 -0
  89. data/rbi/revox/models/call_phone_history_response.rbi +209 -0
  90. data/rbi/revox/models/call_resume_params.rbi +33 -0
  91. data/rbi/revox/models/call_resume_response.rbi +23 -0
  92. data/rbi/revox/models/call_retrieve_response.rbi +1150 -227
  93. data/rbi/revox/models/call_search_params.rbi +281 -0
  94. data/rbi/revox/models/call_search_response.rbi +7504 -0
  95. data/rbi/revox/models/campaign_create_params.rbi +9 -87
  96. data/rbi/revox/models/campaign_create_response.rbi +188 -266
  97. data/rbi/revox/models/campaign_get_rows_response.rbi +1150 -225
  98. data/rbi/revox/models/campaign_list_response.rbi +188 -262
  99. data/rbi/revox/models/campaign_pause_params.rbi +33 -0
  100. data/rbi/revox/models/campaign_pause_response.rbi +23 -0
  101. data/rbi/revox/models/campaign_resume_params.rbi +33 -0
  102. data/rbi/revox/models/campaign_resume_response.rbi +23 -0
  103. data/rbi/revox/models/campaign_retrieve_response.rbi +188 -266
  104. data/rbi/revox/models/campaign_statistics_params.rbi +33 -0
  105. data/rbi/revox/models/campaign_statistics_response.rbi +1069 -0
  106. data/rbi/revox/models/campaign_update_params.rbi +313 -0
  107. data/rbi/revox/models/campaign_update_response.rbi +4092 -0
  108. data/rbi/revox/models/phone_number_delete_params.rbi +33 -0
  109. data/rbi/revox/models/phone_number_delete_response.rbi +26 -0
  110. data/rbi/revox/models/phone_number_list_params.rbi +27 -0
  111. data/rbi/revox/models/phone_number_list_response.rbi +3690 -0
  112. data/rbi/revox/models/phone_number_update_params.rbi +53 -0
  113. data/rbi/revox/models/phone_number_update_response.rbi +3693 -0
  114. data/rbi/revox/models/user_retrieve_params.rbi +27 -0
  115. data/rbi/revox/models/user_retrieve_response.rbi +140 -0
  116. data/rbi/revox/models/voice_clone_params.rbi +141 -0
  117. data/rbi/revox/models/voice_clone_response.rbi +53 -0
  118. data/rbi/revox/models/voice_delete_params.rbi +33 -0
  119. data/rbi/revox/models/voice_delete_response.rbi +23 -0
  120. data/rbi/revox/models/voice_list_response.rbi +5 -0
  121. data/rbi/revox/models/voice_preview_params.rbi +2 -0
  122. data/rbi/revox/models/voice_retrieve_params.rbi +2 -0
  123. data/rbi/revox/models.rbi +35 -1
  124. data/rbi/revox/resources/assistants.rbi +52 -22
  125. data/rbi/revox/resources/auth_status.rbi +21 -0
  126. data/rbi/revox/resources/call.rbi +114 -4
  127. data/rbi/revox/resources/campaigns.rbi +77 -15
  128. data/rbi/revox/resources/phone_numbers.rbi +43 -0
  129. data/rbi/revox/resources/users.rbi +8 -2
  130. data/rbi/revox/resources/voices.rbi +39 -0
  131. data/sig/revox/client.rbs +4 -0
  132. data/sig/revox/models/assistant_clone_params.rbs +20 -0
  133. data/sig/revox/models/assistant_clone_response.rbs +1310 -0
  134. data/sig/revox/models/assistant_create_params.rbs +39 -58
  135. data/sig/revox/models/assistant_create_response.rbs +46 -54
  136. data/sig/revox/models/assistant_list_response.rbs +46 -54
  137. data/sig/revox/models/assistant_retrieve_response.rbs +46 -54
  138. data/sig/revox/models/assistant_update_params.rbs +39 -58
  139. data/sig/revox/models/assistant_update_response.rbs +46 -54
  140. data/sig/revox/models/auth_status_retrieve_params.rbs +15 -0
  141. data/sig/revox/models/auth_status_retrieve_response.rbs +13 -0
  142. data/sig/revox/models/call_cancel_params.rbs +20 -0
  143. data/sig/revox/models/call_cancel_response.rbs +13 -0
  144. data/sig/revox/models/call_create_params.rbs +50 -71
  145. data/sig/revox/models/call_create_response.rbs +473 -77
  146. data/sig/revox/models/call_export_params.rbs +230 -0
  147. data/sig/revox/models/call_export_response.rbs +15 -0
  148. data/sig/revox/models/call_pause_params.rbs +20 -0
  149. data/sig/revox/models/call_pause_response.rbs +13 -0
  150. data/sig/revox/models/call_phone_history_params.rbs +15 -0
  151. data/sig/revox/models/call_phone_history_response.rbs +93 -0
  152. data/sig/revox/models/call_resume_params.rbs +20 -0
  153. data/sig/revox/models/call_resume_response.rbs +13 -0
  154. data/sig/revox/models/call_retrieve_response.rbs +473 -77
  155. data/sig/revox/models/call_search_params.rbs +194 -0
  156. data/sig/revox/models/call_search_response.rbs +3045 -0
  157. data/sig/revox/models/campaign_create_params.rbs +5 -50
  158. data/sig/revox/models/campaign_create_response.rbs +62 -98
  159. data/sig/revox/models/campaign_get_rows_response.rbs +472 -73
  160. data/sig/revox/models/campaign_list_response.rbs +62 -98
  161. data/sig/revox/models/campaign_pause_params.rbs +20 -0
  162. data/sig/revox/models/campaign_pause_response.rbs +13 -0
  163. data/sig/revox/models/campaign_resume_params.rbs +20 -0
  164. data/sig/revox/models/campaign_resume_response.rbs +13 -0
  165. data/sig/revox/models/campaign_retrieve_response.rbs +62 -98
  166. data/sig/revox/models/campaign_statistics_params.rbs +20 -0
  167. data/sig/revox/models/campaign_statistics_response.rbs +489 -0
  168. data/sig/revox/models/campaign_update_params.rbs +135 -0
  169. data/sig/revox/models/campaign_update_response.rbs +1658 -0
  170. data/sig/revox/models/phone_number_delete_params.rbs +20 -0
  171. data/sig/revox/models/phone_number_delete_response.rbs +13 -0
  172. data/sig/revox/models/phone_number_list_params.rbs +15 -0
  173. data/sig/revox/models/phone_number_list_response.rbs +1454 -0
  174. data/sig/revox/models/phone_number_update_params.rbs +32 -0
  175. data/sig/revox/models/phone_number_update_response.rbs +1452 -0
  176. data/sig/revox/models/user_retrieve_params.rbs +14 -0
  177. data/sig/revox/models/user_retrieve_response.rbs +71 -0
  178. data/sig/revox/models/voice_clone_params.rbs +79 -0
  179. data/sig/revox/models/voice_clone_response.rbs +40 -0
  180. data/sig/revox/models/voice_delete_params.rbs +20 -0
  181. data/sig/revox/models/voice_delete_response.rbs +13 -0
  182. data/sig/revox/models/voice_list_response.rbs +2 -1
  183. data/sig/revox/models/voice_preview_params.rbs +2 -1
  184. data/sig/revox/models/voice_retrieve_params.rbs +2 -1
  185. data/sig/revox/models.rbs +35 -1
  186. data/sig/revox/resources/assistants.rbs +9 -4
  187. data/sig/revox/resources/auth_status.rbs +11 -0
  188. data/sig/revox/resources/call.rbs +46 -1
  189. data/sig/revox/resources/campaigns.rbs +24 -3
  190. data/sig/revox/resources/phone_numbers.rbs +23 -0
  191. data/sig/revox/resources/users.rbs +3 -1
  192. data/sig/revox/resources/voices.rbs +13 -0
  193. metadata +116 -17
  194. data/lib/revox/models/users/me_retrieve_params.rb +0 -16
  195. data/lib/revox/models/users/me_retrieve_response.rb +0 -101
  196. data/lib/revox/models/users/me_update_params.rb +0 -22
  197. data/lib/revox/models/users/me_update_response.rb +0 -101
  198. data/lib/revox/resources/users/me.rb +0 -55
  199. data/rbi/revox/models/users/me_retrieve_params.rbi +0 -29
  200. data/rbi/revox/models/users/me_retrieve_response.rbi +0 -149
  201. data/rbi/revox/models/users/me_update_params.rbi +0 -43
  202. data/rbi/revox/models/users/me_update_response.rbi +0 -149
  203. data/rbi/revox/resources/users/me.rbi +0 -33
  204. data/sig/revox/models/users/me_retrieve_params.rbs +0 -16
  205. data/sig/revox/models/users/me_retrieve_response.rbs +0 -75
  206. data/sig/revox/models/users/me_update_params.rbs +0 -28
  207. data/sig/revox/models/users/me_update_response.rbs +0 -75
  208. data/sig/revox/resources/users/me.rbs +0 -18
@@ -0,0 +1,489 @@
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
+ jump_in: Revox::Models::CampaignStatisticsResponse::Statistics::JumpIn,
26
+ leads: Revox::Models::CampaignStatisticsResponse::Statistics::Leads,
27
+ outcome_breakdown: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::OutcomeBreakdown]
28
+ }
29
+
30
+ class Statistics < Revox::Internal::Type::BaseModel
31
+ attr_accessor campaign: Revox::Models::CampaignStatisticsResponse::Statistics::Campaign
32
+
33
+ attr_accessor data_extraction: Revox::Models::CampaignStatisticsResponse::Statistics::DataExtraction?
34
+
35
+ attr_accessor effort: Revox::Models::CampaignStatisticsResponse::Statistics::Effort
36
+
37
+ attr_accessor funnel: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel
38
+
39
+ attr_accessor hot_lead_outcomes: ::Array[String]
40
+
41
+ attr_accessor inbound: Revox::Models::CampaignStatisticsResponse::Statistics::Inbound
42
+
43
+ attr_accessor jump_in: Revox::Models::CampaignStatisticsResponse::Statistics::JumpIn
44
+
45
+ attr_accessor leads: Revox::Models::CampaignStatisticsResponse::Statistics::Leads
46
+
47
+ attr_accessor outcome_breakdown: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::OutcomeBreakdown]
48
+
49
+ def initialize: (
50
+ campaign: Revox::Models::CampaignStatisticsResponse::Statistics::Campaign,
51
+ data_extraction: Revox::Models::CampaignStatisticsResponse::Statistics::DataExtraction?,
52
+ effort: Revox::Models::CampaignStatisticsResponse::Statistics::Effort,
53
+ funnel: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel,
54
+ hot_lead_outcomes: ::Array[String],
55
+ inbound: Revox::Models::CampaignStatisticsResponse::Statistics::Inbound,
56
+ jump_in: Revox::Models::CampaignStatisticsResponse::Statistics::JumpIn,
57
+ leads: Revox::Models::CampaignStatisticsResponse::Statistics::Leads,
58
+ outcome_breakdown: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::OutcomeBreakdown]
59
+ ) -> void
60
+
61
+ def to_hash: -> {
62
+ campaign: Revox::Models::CampaignStatisticsResponse::Statistics::Campaign,
63
+ data_extraction: Revox::Models::CampaignStatisticsResponse::Statistics::DataExtraction?,
64
+ effort: Revox::Models::CampaignStatisticsResponse::Statistics::Effort,
65
+ funnel: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel,
66
+ hot_lead_outcomes: ::Array[String],
67
+ inbound: Revox::Models::CampaignStatisticsResponse::Statistics::Inbound,
68
+ jump_in: Revox::Models::CampaignStatisticsResponse::Statistics::JumpIn,
69
+ leads: Revox::Models::CampaignStatisticsResponse::Statistics::Leads,
70
+ outcome_breakdown: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::OutcomeBreakdown]
71
+ }
72
+
73
+ type campaign =
74
+ {
75
+ id: String,
76
+ agent_name: String?,
77
+ first_activity_at: top,
78
+ has_activity: bool,
79
+ is_cancelled: bool,
80
+ last_activity_at: top,
81
+ max_attempts_per_contact: Float?,
82
+ name: String,
83
+ status: Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::status,
84
+ timezone: String
85
+ }
86
+
87
+ class Campaign < Revox::Internal::Type::BaseModel
88
+ attr_accessor id: String
89
+
90
+ attr_accessor agent_name: String?
91
+
92
+ attr_accessor first_activity_at: top
93
+
94
+ attr_accessor has_activity: bool
95
+
96
+ attr_accessor is_cancelled: bool
97
+
98
+ attr_accessor last_activity_at: top
99
+
100
+ attr_accessor max_attempts_per_contact: Float?
101
+
102
+ attr_accessor name: String
103
+
104
+ attr_accessor status: Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::status
105
+
106
+ attr_accessor timezone: String
107
+
108
+ def initialize: (
109
+ id: String,
110
+ agent_name: String?,
111
+ first_activity_at: top,
112
+ has_activity: bool,
113
+ is_cancelled: bool,
114
+ last_activity_at: top,
115
+ max_attempts_per_contact: Float?,
116
+ name: String,
117
+ status: Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::status,
118
+ timezone: String
119
+ ) -> void
120
+
121
+ def to_hash: -> {
122
+ id: String,
123
+ agent_name: String?,
124
+ first_activity_at: top,
125
+ has_activity: bool,
126
+ is_cancelled: bool,
127
+ last_activity_at: top,
128
+ max_attempts_per_contact: Float?,
129
+ name: String,
130
+ status: Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::status,
131
+ timezone: String
132
+ }
133
+
134
+ type status = :running | :paused | :completed
135
+
136
+ module Status
137
+ extend Revox::Internal::Type::Enum
138
+
139
+ RUNNING: :running
140
+ PAUSED: :paused
141
+ COMPLETED: :completed
142
+
143
+ def self?.values: -> ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::status]
144
+ end
145
+ end
146
+
147
+ type data_extraction = { fields: ::Array[String], intro: String }
148
+
149
+ class DataExtraction < Revox::Internal::Type::BaseModel
150
+ attr_accessor fields: ::Array[String]
151
+
152
+ attr_accessor intro: String
153
+
154
+ def initialize: (fields: ::Array[String], intro: String) -> void
155
+
156
+ def to_hash: -> { fields: ::Array[String], intro: String }
157
+ end
158
+
159
+ type effort =
160
+ { calls_total: Float, inbound_calls: Float, outbound_attempts: Float }
161
+
162
+ class Effort < Revox::Internal::Type::BaseModel
163
+ attr_accessor calls_total: Float
164
+
165
+ attr_accessor inbound_calls: Float
166
+
167
+ attr_accessor outbound_attempts: Float
168
+
169
+ def initialize: (
170
+ calls_total: Float,
171
+ inbound_calls: Float,
172
+ outbound_attempts: Float
173
+ ) -> void
174
+
175
+ def to_hash: -> {
176
+ calls_total: Float,
177
+ inbound_calls: Float,
178
+ outbound_attempts: Float
179
+ }
180
+ end
181
+
182
+ type funnel =
183
+ {
184
+ called: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Called,
185
+ hot_leads: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::HotLeads,
186
+ reached: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Reached,
187
+ real_exchanges: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::RealExchanges
188
+ }
189
+
190
+ class Funnel < Revox::Internal::Type::BaseModel
191
+ attr_accessor called: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Called
192
+
193
+ attr_accessor hot_leads: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::HotLeads
194
+
195
+ attr_accessor reached: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Reached
196
+
197
+ attr_accessor real_exchanges: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::RealExchanges
198
+
199
+ def initialize: (
200
+ called: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Called,
201
+ hot_leads: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::HotLeads,
202
+ reached: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Reached,
203
+ real_exchanges: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::RealExchanges
204
+ ) -> void
205
+
206
+ def to_hash: -> {
207
+ called: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Called,
208
+ hot_leads: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::HotLeads,
209
+ reached: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Reached,
210
+ real_exchanges: Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::RealExchanges
211
+ }
212
+
213
+ type called = { count: Float, imported_rows: Float }
214
+
215
+ class Called < Revox::Internal::Type::BaseModel
216
+ attr_accessor count: Float
217
+
218
+ attr_accessor imported_rows: Float
219
+
220
+ def initialize: (count: Float, imported_rows: Float) -> void
221
+
222
+ def to_hash: -> { count: Float, imported_rows: Float }
223
+ end
224
+
225
+ type hot_leads = { count: Float, pct_of_reached: Float? }
226
+
227
+ class HotLeads < Revox::Internal::Type::BaseModel
228
+ attr_accessor count: Float
229
+
230
+ attr_accessor pct_of_reached: Float?
231
+
232
+ def initialize: (count: Float, pct_of_reached: Float?) -> void
233
+
234
+ def to_hash: -> { count: Float, pct_of_reached: Float? }
235
+ end
236
+
237
+ type reached =
238
+ {
239
+ count: Float,
240
+ inbound: Float,
241
+ outbound: Float,
242
+ overlap: Float,
243
+ pct_of_called: Float?
244
+ }
245
+
246
+ class Reached < Revox::Internal::Type::BaseModel
247
+ attr_accessor count: Float
248
+
249
+ attr_accessor inbound: Float
250
+
251
+ attr_accessor outbound: Float
252
+
253
+ attr_accessor overlap: Float
254
+
255
+ attr_accessor pct_of_called: Float?
256
+
257
+ def initialize: (
258
+ count: Float,
259
+ inbound: Float,
260
+ outbound: Float,
261
+ overlap: Float,
262
+ pct_of_called: Float?
263
+ ) -> void
264
+
265
+ def to_hash: -> {
266
+ count: Float,
267
+ inbound: Float,
268
+ outbound: Float,
269
+ overlap: Float,
270
+ pct_of_called: Float?
271
+ }
272
+ end
273
+
274
+ type real_exchanges = { count: Float, pct_of_reached: Float? }
275
+
276
+ class RealExchanges < Revox::Internal::Type::BaseModel
277
+ attr_accessor count: Float
278
+
279
+ attr_accessor pct_of_reached: Float?
280
+
281
+ def initialize: (count: Float, pct_of_reached: Float?) -> void
282
+
283
+ def to_hash: -> { count: Float, pct_of_reached: Float? }
284
+ end
285
+ end
286
+
287
+ type inbound = { unique_callers: Float }
288
+
289
+ class Inbound < Revox::Internal::Type::BaseModel
290
+ attr_accessor unique_callers: Float
291
+
292
+ def initialize: (unique_callers: Float) -> void
293
+
294
+ def to_hash: -> { unique_callers: Float }
295
+ end
296
+
297
+ type jump_in =
298
+ {
299
+ joined_calls: Float,
300
+ median_conversation_seconds: Float?,
301
+ median_time_to_join_seconds: Float?
302
+ }
303
+
304
+ class JumpIn < Revox::Internal::Type::BaseModel
305
+ attr_accessor joined_calls: Float
306
+
307
+ attr_accessor median_conversation_seconds: Float?
308
+
309
+ attr_accessor median_time_to_join_seconds: Float?
310
+
311
+ def initialize: (
312
+ joined_calls: Float,
313
+ median_conversation_seconds: Float?,
314
+ median_time_to_join_seconds: Float?
315
+ ) -> void
316
+
317
+ def to_hash: -> {
318
+ joined_calls: Float,
319
+ median_conversation_seconds: Float?,
320
+ median_time_to_join_seconds: Float?
321
+ }
322
+ end
323
+
324
+ type leads =
325
+ {
326
+ callback_requested: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::CallbackRequested],
327
+ interested: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Interested]
328
+ }
329
+
330
+ class Leads < Revox::Internal::Type::BaseModel
331
+ attr_accessor callback_requested: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::CallbackRequested]
332
+
333
+ attr_accessor interested: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Interested]
334
+
335
+ def initialize: (
336
+ callback_requested: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::CallbackRequested],
337
+ interested: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Interested]
338
+ ) -> void
339
+
340
+ def to_hash: -> {
341
+ callback_requested: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::CallbackRequested],
342
+ interested: ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Interested]
343
+ }
344
+
345
+ type callback_requested =
346
+ {
347
+ attempt_id: String?,
348
+ call_id: String,
349
+ direction: Revox::Models::CampaignStatisticsResponse::Statistics::Leads::CallbackRequested::direction,
350
+ email: String?,
351
+ last_activity_at: top,
352
+ name: String,
353
+ phone: String,
354
+ summary: String?
355
+ }
356
+
357
+ class CallbackRequested < Revox::Internal::Type::BaseModel
358
+ attr_accessor attempt_id: String?
359
+
360
+ attr_accessor call_id: String
361
+
362
+ attr_accessor direction: Revox::Models::CampaignStatisticsResponse::Statistics::Leads::CallbackRequested::direction
363
+
364
+ attr_accessor email: String?
365
+
366
+ attr_accessor last_activity_at: top
367
+
368
+ attr_accessor name: String
369
+
370
+ attr_accessor phone: String
371
+
372
+ attr_accessor summary: String?
373
+
374
+ def initialize: (
375
+ attempt_id: String?,
376
+ call_id: String,
377
+ direction: Revox::Models::CampaignStatisticsResponse::Statistics::Leads::CallbackRequested::direction,
378
+ email: String?,
379
+ last_activity_at: top,
380
+ name: String,
381
+ phone: String,
382
+ summary: String?
383
+ ) -> void
384
+
385
+ def to_hash: -> {
386
+ attempt_id: String?,
387
+ call_id: String,
388
+ direction: Revox::Models::CampaignStatisticsResponse::Statistics::Leads::CallbackRequested::direction,
389
+ email: String?,
390
+ last_activity_at: top,
391
+ name: String,
392
+ phone: String,
393
+ summary: String?
394
+ }
395
+
396
+ type direction = :inbound | :outbound
397
+
398
+ module Direction
399
+ extend Revox::Internal::Type::Enum
400
+
401
+ INBOUND: :inbound
402
+ OUTBOUND: :outbound
403
+
404
+ def self?.values: -> ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::CallbackRequested::direction]
405
+ end
406
+ end
407
+
408
+ type interested =
409
+ {
410
+ attempt_id: String?,
411
+ call_id: String,
412
+ direction: Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Interested::direction,
413
+ email: String?,
414
+ last_activity_at: top,
415
+ name: String,
416
+ phone: String,
417
+ summary: String?
418
+ }
419
+
420
+ class Interested < Revox::Internal::Type::BaseModel
421
+ attr_accessor attempt_id: String?
422
+
423
+ attr_accessor call_id: String
424
+
425
+ attr_accessor direction: Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Interested::direction
426
+
427
+ attr_accessor email: String?
428
+
429
+ attr_accessor last_activity_at: top
430
+
431
+ attr_accessor name: String
432
+
433
+ attr_accessor phone: String
434
+
435
+ attr_accessor summary: String?
436
+
437
+ def initialize: (
438
+ attempt_id: String?,
439
+ call_id: String,
440
+ direction: Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Interested::direction,
441
+ email: String?,
442
+ last_activity_at: top,
443
+ name: String,
444
+ phone: String,
445
+ summary: String?
446
+ ) -> void
447
+
448
+ def to_hash: -> {
449
+ attempt_id: String?,
450
+ call_id: String,
451
+ direction: Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Interested::direction,
452
+ email: String?,
453
+ last_activity_at: top,
454
+ name: String,
455
+ phone: String,
456
+ summary: String?
457
+ }
458
+
459
+ type direction = :inbound | :outbound
460
+
461
+ module Direction
462
+ extend Revox::Internal::Type::Enum
463
+
464
+ INBOUND: :inbound
465
+ OUTBOUND: :outbound
466
+
467
+ def self?.values: -> ::Array[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Interested::direction]
468
+ end
469
+ end
470
+ end
471
+
472
+ type outcome_breakdown =
473
+ { count: Float, label: String, outcome: String }
474
+
475
+ class OutcomeBreakdown < Revox::Internal::Type::BaseModel
476
+ attr_accessor count: Float
477
+
478
+ attr_accessor label: String
479
+
480
+ attr_accessor outcome: String
481
+
482
+ def initialize: (count: Float, label: String, outcome: String) -> void
483
+
484
+ def to_hash: -> { count: Float, label: String, outcome: String }
485
+ end
486
+ end
487
+ end
488
+ end
489
+ end
@@ -0,0 +1,135 @@
1
+ module Revox
2
+ module Models
3
+ type campaign_update_params =
4
+ {
5
+ id: String,
6
+ call_retry_config: Revox::CampaignUpdateParams::CallRetryConfig?,
7
+ from_phone_number: String?,
8
+ max_concurrent_calls: Float?,
9
+ name: String
10
+ }
11
+ & Revox::Internal::Type::request_parameters
12
+
13
+ class CampaignUpdateParams < Revox::Internal::Type::BaseModel
14
+ extend Revox::Internal::Type::RequestParameters::Converter
15
+ include Revox::Internal::Type::RequestParameters
16
+
17
+ attr_accessor id: String
18
+
19
+ attr_accessor call_retry_config: Revox::CampaignUpdateParams::CallRetryConfig?
20
+
21
+ attr_accessor from_phone_number: String?
22
+
23
+ attr_accessor max_concurrent_calls: Float?
24
+
25
+ attr_reader name: String?
26
+
27
+ def name=: (String) -> String
28
+
29
+ def initialize: (
30
+ id: String,
31
+ ?call_retry_config: Revox::CampaignUpdateParams::CallRetryConfig?,
32
+ ?from_phone_number: String?,
33
+ ?max_concurrent_calls: Float?,
34
+ ?name: String,
35
+ ?request_options: Revox::request_opts
36
+ ) -> void
37
+
38
+ def to_hash: -> {
39
+ id: String,
40
+ call_retry_config: Revox::CampaignUpdateParams::CallRetryConfig?,
41
+ from_phone_number: String?,
42
+ max_concurrent_calls: Float?,
43
+ name: String,
44
+ request_options: Revox::RequestOptions
45
+ }
46
+
47
+ type call_retry_config =
48
+ {
49
+ allowed_days: ::Array[Revox::Models::CampaignUpdateParams::CallRetryConfig::allowed_day],
50
+ call_twice_in_a_row: bool,
51
+ calling_windows: ::Array[Revox::CampaignUpdateParams::CallRetryConfig::CallingWindow],
52
+ max_retry_attempts: Integer,
53
+ timezone: String?
54
+ }
55
+
56
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
57
+ attr_accessor allowed_days: ::Array[Revox::Models::CampaignUpdateParams::CallRetryConfig::allowed_day]
58
+
59
+ attr_accessor call_twice_in_a_row: bool
60
+
61
+ attr_accessor calling_windows: ::Array[Revox::CampaignUpdateParams::CallRetryConfig::CallingWindow]
62
+
63
+ attr_accessor max_retry_attempts: Integer
64
+
65
+ attr_accessor timezone: String?
66
+
67
+ def initialize: (
68
+ allowed_days: ::Array[Revox::Models::CampaignUpdateParams::CallRetryConfig::allowed_day],
69
+ call_twice_in_a_row: bool,
70
+ calling_windows: ::Array[Revox::CampaignUpdateParams::CallRetryConfig::CallingWindow],
71
+ max_retry_attempts: Integer,
72
+ ?timezone: String?
73
+ ) -> void
74
+
75
+ def to_hash: -> {
76
+ allowed_days: ::Array[Revox::Models::CampaignUpdateParams::CallRetryConfig::allowed_day],
77
+ call_twice_in_a_row: bool,
78
+ calling_windows: ::Array[Revox::CampaignUpdateParams::CallRetryConfig::CallingWindow],
79
+ max_retry_attempts: Integer,
80
+ timezone: String?
81
+ }
82
+
83
+ type allowed_day =
84
+ :monday
85
+ | :tuesday
86
+ | :wednesday
87
+ | :thursday
88
+ | :friday
89
+ | :saturday
90
+ | :sunday
91
+
92
+ module AllowedDay
93
+ extend Revox::Internal::Type::Enum
94
+
95
+ MONDAY: :monday
96
+ TUESDAY: :tuesday
97
+ WEDNESDAY: :wednesday
98
+ THURSDAY: :thursday
99
+ FRIDAY: :friday
100
+ SATURDAY: :saturday
101
+ SUNDAY: :sunday
102
+
103
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateParams::CallRetryConfig::allowed_day]
104
+ end
105
+
106
+ type calling_window =
107
+ {
108
+ calling_window_end_time: String,
109
+ calling_window_start_time: String,
110
+ retry_delay_seconds: Integer
111
+ }
112
+
113
+ class CallingWindow < Revox::Internal::Type::BaseModel
114
+ attr_accessor calling_window_end_time: String
115
+
116
+ attr_accessor calling_window_start_time: String
117
+
118
+ attr_accessor retry_delay_seconds: Integer
119
+
120
+ def initialize: (
121
+ calling_window_end_time: String,
122
+ calling_window_start_time: String,
123
+ retry_delay_seconds: Integer
124
+ ) -> void
125
+
126
+ def to_hash: -> {
127
+ calling_window_end_time: String,
128
+ calling_window_start_time: String,
129
+ retry_delay_seconds: Integer
130
+ }
131
+ end
132
+ end
133
+ end
134
+ end
135
+ end