revox 0.1.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 (224) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +81 -0
  3. data/README.md +39 -14
  4. data/lib/revox/client.rb +23 -1
  5. data/lib/revox/internal/transport/base_client.rb +5 -0
  6. data/lib/revox/internal/type/base_model.rb +3 -3
  7. data/lib/revox/internal/util.rb +22 -7
  8. data/lib/revox/models/assistant_clone_params.rb +20 -0
  9. data/lib/revox/models/assistant_clone_response.rb +1594 -0
  10. data/lib/revox/models/assistant_create_params.rb +1038 -13
  11. data/lib/revox/models/assistant_create_response.rb +1071 -11
  12. data/lib/revox/models/assistant_list_response.rb +1070 -11
  13. data/lib/revox/models/assistant_retrieve_response.rb +1066 -11
  14. data/lib/revox/models/assistant_update_params.rb +1038 -13
  15. data/lib/revox/models/assistant_update_response.rb +1097 -12
  16. data/lib/revox/models/auth_status_retrieve_params.rb +14 -0
  17. data/lib/revox/models/auth_status_retrieve_response.rb +17 -0
  18. data/lib/revox/models/call_cancel_params.rb +20 -0
  19. data/lib/revox/models/call_cancel_response.rb +16 -0
  20. data/lib/revox/models/call_create_params.rb +1065 -13
  21. data/lib/revox/models/call_create_response.rb +1820 -98
  22. data/lib/revox/models/call_export_params.rb +205 -0
  23. data/lib/revox/models/call_export_response.rb +22 -0
  24. data/lib/revox/models/call_pause_params.rb +20 -0
  25. data/lib/revox/models/call_pause_response.rb +16 -0
  26. data/lib/revox/models/call_phone_history_params.rb +14 -0
  27. data/lib/revox/models/call_phone_history_response.rb +98 -0
  28. data/lib/revox/models/call_resume_params.rb +20 -0
  29. data/lib/revox/models/call_resume_response.rb +16 -0
  30. data/lib/revox/models/call_retrieve_response.rb +1822 -98
  31. data/lib/revox/models/call_search_params.rb +171 -0
  32. data/lib/revox/models/call_search_response.rb +3114 -0
  33. data/lib/revox/models/campaign_create_params.rb +67 -2
  34. data/lib/revox/models/campaign_create_response.rb +1314 -59
  35. data/lib/revox/models/campaign_get_rows_params.rb +1 -46
  36. data/lib/revox/models/campaign_get_rows_response.rb +1833 -115
  37. data/lib/revox/models/campaign_launch_params.rb +20 -0
  38. data/lib/revox/models/campaign_launch_response.rb +2030 -0
  39. data/lib/revox/models/campaign_list_response.rb +1312 -59
  40. data/lib/revox/models/campaign_pause_params.rb +20 -0
  41. data/lib/revox/models/campaign_pause_response.rb +16 -0
  42. data/lib/revox/models/campaign_resume_params.rb +20 -0
  43. data/lib/revox/models/campaign_resume_response.rb +16 -0
  44. data/lib/revox/models/campaign_retrieve_response.rb +1312 -56
  45. data/lib/revox/models/campaign_statistics_params.rb +20 -0
  46. data/lib/revox/models/campaign_statistics_response.rb +486 -0
  47. data/lib/revox/models/campaign_update_params.rb +234 -0
  48. data/lib/revox/models/campaign_update_response.rb +2030 -0
  49. data/lib/revox/models/phone_number_delete_params.rb +20 -0
  50. data/lib/revox/models/phone_number_delete_response.rb +16 -0
  51. data/lib/revox/models/phone_number_list_params.rb +14 -0
  52. data/lib/revox/models/phone_number_list_response.rb +1777 -0
  53. data/lib/revox/models/phone_number_update_params.rb +32 -0
  54. data/lib/revox/models/phone_number_update_response.rb +1777 -0
  55. data/lib/revox/models/user_retrieve_params.rb +14 -0
  56. data/lib/revox/models/user_retrieve_response.rb +99 -0
  57. data/lib/revox/models/voice_clone_params.rb +78 -0
  58. data/lib/revox/models/voice_clone_response.rb +40 -0
  59. data/lib/revox/models/voice_delete_params.rb +20 -0
  60. data/lib/revox/models/voice_delete_response.rb +16 -0
  61. data/lib/revox/models/voice_list_response.rb +55 -1
  62. data/lib/revox/models/voice_preview_params.rb +49 -1
  63. data/lib/revox/models.rb +36 -2
  64. data/lib/revox/resources/assistants.rb +137 -8
  65. data/lib/revox/resources/auth_status.rb +32 -0
  66. data/lib/revox/resources/call.rb +131 -15
  67. data/lib/revox/resources/campaigns.rb +143 -17
  68. data/lib/revox/resources/phone_numbers.rb +74 -0
  69. data/lib/revox/resources/users.rb +17 -3
  70. data/lib/revox/resources/voices.rb +66 -10
  71. data/lib/revox/version.rb +1 -1
  72. data/lib/revox.rb +40 -7
  73. data/rbi/revox/client.rbi +6 -0
  74. data/rbi/revox/internal/util.rbi +8 -0
  75. data/rbi/revox/models/assistant_clone_params.rbi +33 -0
  76. data/rbi/revox/models/assistant_clone_response.rbi +3341 -0
  77. data/rbi/revox/models/assistant_create_params.rbi +2138 -103
  78. data/rbi/revox/models/assistant_create_response.rbi +2454 -199
  79. data/rbi/revox/models/assistant_list_response.rbi +2448 -195
  80. data/rbi/revox/models/assistant_retrieve_response.rbi +2401 -210
  81. data/rbi/revox/models/assistant_update_params.rbi +2138 -103
  82. data/rbi/revox/models/assistant_update_response.rbi +2504 -198
  83. data/rbi/revox/models/auth_status_retrieve_params.rbi +27 -0
  84. data/rbi/revox/models/auth_status_retrieve_response.rbi +30 -0
  85. data/rbi/revox/models/call_cancel_params.rbi +33 -0
  86. data/rbi/revox/models/call_cancel_response.rbi +23 -0
  87. data/rbi/revox/models/call_create_params.rbi +2382 -225
  88. data/rbi/revox/models/call_create_response.rbi +4116 -384
  89. data/rbi/revox/models/call_export_params.rbi +456 -0
  90. data/rbi/revox/models/call_export_response.rbi +26 -0
  91. data/rbi/revox/models/call_pause_params.rbi +31 -0
  92. data/rbi/revox/models/call_pause_response.rbi +23 -0
  93. data/rbi/revox/models/call_phone_history_params.rbi +27 -0
  94. data/rbi/revox/models/call_phone_history_response.rbi +224 -0
  95. data/rbi/revox/models/call_resume_params.rbi +33 -0
  96. data/rbi/revox/models/call_resume_response.rbi +23 -0
  97. data/rbi/revox/models/call_retrieve_response.rbi +4133 -399
  98. data/rbi/revox/models/call_search_params.rbi +288 -0
  99. data/rbi/revox/models/call_search_response.rbi +6593 -0
  100. data/rbi/revox/models/campaign_create_params.rbi +136 -0
  101. data/rbi/revox/models/campaign_create_response.rbi +2911 -231
  102. data/rbi/revox/models/campaign_get_rows_params.rbi +2 -82
  103. data/rbi/revox/models/campaign_get_rows_response.rbi +4146 -409
  104. data/rbi/revox/models/campaign_launch_params.rbi +33 -0
  105. data/rbi/revox/models/campaign_launch_response.rbi +4170 -0
  106. data/rbi/revox/models/campaign_list_response.rbi +2904 -230
  107. data/rbi/revox/models/campaign_pause_params.rbi +33 -0
  108. data/rbi/revox/models/campaign_pause_response.rbi +23 -0
  109. data/rbi/revox/models/campaign_resume_params.rbi +33 -0
  110. data/rbi/revox/models/campaign_resume_response.rbi +23 -0
  111. data/rbi/revox/models/campaign_retrieve_response.rbi +2911 -231
  112. data/rbi/revox/models/campaign_statistics_params.rbi +33 -0
  113. data/rbi/revox/models/campaign_statistics_response.rbi +1011 -0
  114. data/rbi/revox/models/campaign_update_params.rbi +431 -0
  115. data/rbi/revox/models/campaign_update_response.rbi +4170 -0
  116. data/rbi/revox/models/phone_number_delete_params.rbi +33 -0
  117. data/rbi/revox/models/phone_number_delete_response.rbi +26 -0
  118. data/rbi/revox/models/phone_number_list_params.rbi +27 -0
  119. data/rbi/revox/models/phone_number_list_response.rbi +3680 -0
  120. data/rbi/revox/models/phone_number_update_params.rbi +53 -0
  121. data/rbi/revox/models/phone_number_update_response.rbi +3683 -0
  122. data/rbi/revox/models/user_retrieve_params.rbi +27 -0
  123. data/rbi/revox/models/user_retrieve_response.rbi +140 -0
  124. data/rbi/revox/models/voice_clone_params.rbi +141 -0
  125. data/rbi/revox/models/voice_clone_response.rbi +53 -0
  126. data/rbi/revox/models/voice_delete_params.rbi +33 -0
  127. data/rbi/revox/models/voice_delete_response.rbi +23 -0
  128. data/rbi/revox/models/voice_list_response.rbi +105 -3
  129. data/rbi/revox/models/voice_preview_params.rbi +69 -0
  130. data/rbi/revox/models.rbi +36 -2
  131. data/rbi/revox/resources/assistants.rbi +296 -8
  132. data/rbi/revox/resources/auth_status.rbi +21 -0
  133. data/rbi/revox/resources/call.rbi +92 -6
  134. data/rbi/revox/resources/campaigns.rbi +106 -19
  135. data/rbi/revox/resources/phone_numbers.rbi +43 -0
  136. data/rbi/revox/resources/users.rbi +8 -2
  137. data/rbi/revox/resources/voices.rbi +56 -9
  138. data/sig/revox/client.rbs +4 -0
  139. data/sig/revox/internal/util.rbs +4 -0
  140. data/sig/revox/models/assistant_clone_params.rbs +20 -0
  141. data/sig/revox/models/assistant_clone_response.rbs +1318 -0
  142. data/sig/revox/models/assistant_create_params.rbs +844 -11
  143. data/sig/revox/models/assistant_create_response.rbs +860 -3
  144. data/sig/revox/models/assistant_list_response.rbs +860 -3
  145. data/sig/revox/models/assistant_retrieve_response.rbs +859 -3
  146. data/sig/revox/models/assistant_update_params.rbs +844 -11
  147. data/sig/revox/models/assistant_update_response.rbs +886 -6
  148. data/sig/revox/models/auth_status_retrieve_params.rbs +15 -0
  149. data/sig/revox/models/auth_status_retrieve_response.rbs +13 -0
  150. data/sig/revox/models/call_cancel_params.rbs +20 -0
  151. data/sig/revox/models/call_cancel_response.rbs +13 -0
  152. data/sig/revox/models/call_create_params.rbs +847 -13
  153. data/sig/revox/models/call_create_response.rbs +1519 -34
  154. data/sig/revox/models/call_export_params.rbs +234 -0
  155. data/sig/revox/models/call_export_response.rbs +15 -0
  156. data/sig/revox/models/call_pause_params.rbs +20 -0
  157. data/sig/revox/models/call_pause_response.rbs +13 -0
  158. data/sig/revox/models/call_phone_history_params.rbs +15 -0
  159. data/sig/revox/models/call_phone_history_response.rbs +102 -0
  160. data/sig/revox/models/call_resume_params.rbs +20 -0
  161. data/sig/revox/models/call_resume_response.rbs +13 -0
  162. data/sig/revox/models/call_retrieve_response.rbs +1519 -34
  163. data/sig/revox/models/call_search_params.rbs +198 -0
  164. data/sig/revox/models/call_search_response.rbs +2654 -0
  165. data/sig/revox/models/campaign_create_params.rbs +54 -0
  166. data/sig/revox/models/campaign_create_response.rbs +1034 -6
  167. data/sig/revox/models/campaign_get_rows_params.rbs +2 -64
  168. data/sig/revox/models/campaign_get_rows_response.rbs +1527 -54
  169. data/sig/revox/models/campaign_launch_params.rbs +20 -0
  170. data/sig/revox/models/campaign_launch_response.rbs +1694 -0
  171. data/sig/revox/models/campaign_list_response.rbs +1034 -6
  172. data/sig/revox/models/campaign_pause_params.rbs +20 -0
  173. data/sig/revox/models/campaign_pause_response.rbs +13 -0
  174. data/sig/revox/models/campaign_resume_params.rbs +20 -0
  175. data/sig/revox/models/campaign_resume_response.rbs +13 -0
  176. data/sig/revox/models/campaign_retrieve_response.rbs +1034 -6
  177. data/sig/revox/models/campaign_statistics_params.rbs +20 -0
  178. data/sig/revox/models/campaign_statistics_response.rbs +458 -0
  179. data/sig/revox/models/campaign_update_params.rbs +203 -0
  180. data/sig/revox/models/campaign_update_response.rbs +1694 -0
  181. data/sig/revox/models/phone_number_delete_params.rbs +20 -0
  182. data/sig/revox/models/phone_number_delete_response.rbs +13 -0
  183. data/sig/revox/models/phone_number_list_params.rbs +15 -0
  184. data/sig/revox/models/phone_number_list_response.rbs +1462 -0
  185. data/sig/revox/models/phone_number_update_params.rbs +32 -0
  186. data/sig/revox/models/phone_number_update_response.rbs +1460 -0
  187. data/sig/revox/models/user_retrieve_params.rbs +14 -0
  188. data/sig/revox/models/user_retrieve_response.rbs +71 -0
  189. data/sig/revox/models/voice_clone_params.rbs +79 -0
  190. data/sig/revox/models/voice_clone_response.rbs +40 -0
  191. data/sig/revox/models/voice_delete_params.rbs +20 -0
  192. data/sig/revox/models/voice_delete_response.rbs +13 -0
  193. data/sig/revox/models/voice_list_response.rbs +45 -3
  194. data/sig/revox/models/voice_preview_params.rbs +42 -1
  195. data/sig/revox/models.rbs +36 -2
  196. data/sig/revox/resources/assistants.rbs +61 -2
  197. data/sig/revox/resources/auth_status.rbs +11 -0
  198. data/sig/revox/resources/call.rbs +41 -3
  199. data/sig/revox/resources/campaigns.rbs +35 -5
  200. data/sig/revox/resources/phone_numbers.rbs +23 -0
  201. data/sig/revox/resources/users.rbs +3 -1
  202. data/sig/revox/resources/voices.rbs +17 -0
  203. metadata +122 -23
  204. data/lib/revox/models/call_list_params.rb +0 -52
  205. data/lib/revox/models/call_list_response.rb +0 -259
  206. data/lib/revox/models/users/me_retrieve_params.rb +0 -16
  207. data/lib/revox/models/users/me_retrieve_response.rb +0 -89
  208. data/lib/revox/models/users/me_update_params.rb +0 -22
  209. data/lib/revox/models/users/me_update_response.rb +0 -89
  210. data/lib/revox/resources/users/me.rb +0 -55
  211. data/rbi/revox/models/call_list_params.rbi +0 -94
  212. data/rbi/revox/models/call_list_response.rbi +0 -563
  213. data/rbi/revox/models/users/me_retrieve_params.rbi +0 -29
  214. data/rbi/revox/models/users/me_retrieve_response.rbi +0 -139
  215. data/rbi/revox/models/users/me_update_params.rbi +0 -43
  216. data/rbi/revox/models/users/me_update_response.rbi +0 -139
  217. data/rbi/revox/resources/users/me.rbi +0 -33
  218. data/sig/revox/models/call_list_params.rbs +0 -63
  219. data/sig/revox/models/call_list_response.rbs +0 -226
  220. data/sig/revox/models/users/me_retrieve_params.rbs +0 -16
  221. data/sig/revox/models/users/me_retrieve_response.rbs +0 -70
  222. data/sig/revox/models/users/me_update_params.rbs +0 -28
  223. data/sig/revox/models/users/me_update_response.rbs +0 -70
  224. data/sig/revox/resources/users/me.rbs +0 -18
@@ -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
@@ -0,0 +1,203 @@
1
+ module Revox
2
+ module Models
3
+ type campaign_update_params =
4
+ {
5
+ id: String,
6
+ assistant_id: String,
7
+ call_retry_config: Revox::CampaignUpdateParams::CallRetryConfig?,
8
+ contacts: ::Array[Revox::CampaignUpdateParams::Contact],
9
+ from_phone_number: String?,
10
+ max_concurrent_calls: Float?,
11
+ name: String,
12
+ scheduled_at: Revox::Models::CampaignUpdateParams::scheduled_at?,
13
+ type: Revox::Models::CampaignUpdateParams::type_
14
+ }
15
+ & Revox::Internal::Type::request_parameters
16
+
17
+ class CampaignUpdateParams < Revox::Internal::Type::BaseModel
18
+ extend Revox::Internal::Type::RequestParameters::Converter
19
+ include Revox::Internal::Type::RequestParameters
20
+
21
+ attr_accessor id: String
22
+
23
+ attr_reader assistant_id: String?
24
+
25
+ def assistant_id=: (String) -> String
26
+
27
+ attr_accessor call_retry_config: Revox::CampaignUpdateParams::CallRetryConfig?
28
+
29
+ attr_reader contacts: ::Array[Revox::CampaignUpdateParams::Contact]?
30
+
31
+ def contacts=: (
32
+ ::Array[Revox::CampaignUpdateParams::Contact]
33
+ ) -> ::Array[Revox::CampaignUpdateParams::Contact]
34
+
35
+ attr_accessor from_phone_number: String?
36
+
37
+ attr_accessor max_concurrent_calls: Float?
38
+
39
+ attr_reader name: String?
40
+
41
+ def name=: (String) -> String
42
+
43
+ attr_accessor scheduled_at: Revox::Models::CampaignUpdateParams::scheduled_at?
44
+
45
+ attr_reader type: Revox::Models::CampaignUpdateParams::type_?
46
+
47
+ def type=: (
48
+ Revox::Models::CampaignUpdateParams::type_
49
+ ) -> Revox::Models::CampaignUpdateParams::type_
50
+
51
+ def initialize: (
52
+ id: String,
53
+ ?assistant_id: String,
54
+ ?call_retry_config: Revox::CampaignUpdateParams::CallRetryConfig?,
55
+ ?contacts: ::Array[Revox::CampaignUpdateParams::Contact],
56
+ ?from_phone_number: String?,
57
+ ?max_concurrent_calls: Float?,
58
+ ?name: String,
59
+ ?scheduled_at: Revox::Models::CampaignUpdateParams::scheduled_at?,
60
+ ?type: Revox::Models::CampaignUpdateParams::type_,
61
+ ?request_options: Revox::request_opts
62
+ ) -> void
63
+
64
+ def to_hash: -> {
65
+ id: String,
66
+ assistant_id: String,
67
+ call_retry_config: Revox::CampaignUpdateParams::CallRetryConfig?,
68
+ contacts: ::Array[Revox::CampaignUpdateParams::Contact],
69
+ from_phone_number: String?,
70
+ max_concurrent_calls: Float?,
71
+ name: String,
72
+ scheduled_at: Revox::Models::CampaignUpdateParams::scheduled_at?,
73
+ type: Revox::Models::CampaignUpdateParams::type_,
74
+ request_options: Revox::RequestOptions
75
+ }
76
+
77
+ type call_retry_config =
78
+ {
79
+ allowed_days: ::Array[Revox::Models::CampaignUpdateParams::CallRetryConfig::allowed_day],
80
+ call_twice_in_a_row: bool,
81
+ calling_windows: ::Array[Revox::CampaignUpdateParams::CallRetryConfig::CallingWindow],
82
+ max_retry_attempts: Integer,
83
+ timezone: String?
84
+ }
85
+
86
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
87
+ attr_accessor allowed_days: ::Array[Revox::Models::CampaignUpdateParams::CallRetryConfig::allowed_day]
88
+
89
+ attr_accessor call_twice_in_a_row: bool
90
+
91
+ attr_accessor calling_windows: ::Array[Revox::CampaignUpdateParams::CallRetryConfig::CallingWindow]
92
+
93
+ attr_accessor max_retry_attempts: Integer
94
+
95
+ attr_accessor timezone: String?
96
+
97
+ def initialize: (
98
+ allowed_days: ::Array[Revox::Models::CampaignUpdateParams::CallRetryConfig::allowed_day],
99
+ call_twice_in_a_row: bool,
100
+ calling_windows: ::Array[Revox::CampaignUpdateParams::CallRetryConfig::CallingWindow],
101
+ max_retry_attempts: Integer,
102
+ ?timezone: String?
103
+ ) -> void
104
+
105
+ def to_hash: -> {
106
+ allowed_days: ::Array[Revox::Models::CampaignUpdateParams::CallRetryConfig::allowed_day],
107
+ call_twice_in_a_row: bool,
108
+ calling_windows: ::Array[Revox::CampaignUpdateParams::CallRetryConfig::CallingWindow],
109
+ max_retry_attempts: Integer,
110
+ timezone: String?
111
+ }
112
+
113
+ type allowed_day =
114
+ :monday
115
+ | :tuesday
116
+ | :wednesday
117
+ | :thursday
118
+ | :friday
119
+ | :saturday
120
+ | :sunday
121
+
122
+ module AllowedDay
123
+ extend Revox::Internal::Type::Enum
124
+
125
+ MONDAY: :monday
126
+ TUESDAY: :tuesday
127
+ WEDNESDAY: :wednesday
128
+ THURSDAY: :thursday
129
+ FRIDAY: :friday
130
+ SATURDAY: :saturday
131
+ SUNDAY: :sunday
132
+
133
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateParams::CallRetryConfig::allowed_day]
134
+ end
135
+
136
+ type calling_window =
137
+ {
138
+ calling_window_end_time: String,
139
+ calling_window_start_time: String,
140
+ retry_delay_seconds: Integer
141
+ }
142
+
143
+ class CallingWindow < Revox::Internal::Type::BaseModel
144
+ attr_accessor calling_window_end_time: String
145
+
146
+ attr_accessor calling_window_start_time: String
147
+
148
+ attr_accessor retry_delay_seconds: Integer
149
+
150
+ def initialize: (
151
+ calling_window_end_time: String,
152
+ calling_window_start_time: String,
153
+ retry_delay_seconds: Integer
154
+ ) -> void
155
+
156
+ def to_hash: -> {
157
+ calling_window_end_time: String,
158
+ calling_window_start_time: String,
159
+ retry_delay_seconds: Integer
160
+ }
161
+ end
162
+ end
163
+
164
+ type contact =
165
+ { prompt_variables: ::Hash[Symbol, String], to_phone_number: String }
166
+
167
+ class Contact < Revox::Internal::Type::BaseModel
168
+ attr_accessor prompt_variables: ::Hash[Symbol, String]
169
+
170
+ attr_accessor to_phone_number: String
171
+
172
+ def initialize: (
173
+ prompt_variables: ::Hash[Symbol, String],
174
+ to_phone_number: String
175
+ ) -> void
176
+
177
+ def to_hash: -> {
178
+ prompt_variables: ::Hash[Symbol, String],
179
+ to_phone_number: String
180
+ }
181
+ end
182
+
183
+ type scheduled_at = Time | top
184
+
185
+ module ScheduledAt
186
+ extend Revox::Internal::Type::Union
187
+
188
+ def self?.variants: -> ::Array[Revox::Models::CampaignUpdateParams::scheduled_at]
189
+ end
190
+
191
+ type type_ = :regular | :jump_in
192
+
193
+ module Type
194
+ extend Revox::Internal::Type::Enum
195
+
196
+ REGULAR: :regular
197
+ JUMP_IN: :jump_in
198
+
199
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateParams::type_]
200
+ end
201
+ end
202
+ end
203
+ end