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,514 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::Campaigns#statistics
6
+ class CampaignStatisticsResponse < Revox::Internal::Type::BaseModel
7
+ # @!attribute statistics
8
+ #
9
+ # @return [Revox::Models::CampaignStatisticsResponse::Statistics]
10
+ required :statistics, -> { Revox::Models::CampaignStatisticsResponse::Statistics }
11
+
12
+ # @!method initialize(statistics:)
13
+ # @param statistics [Revox::Models::CampaignStatisticsResponse::Statistics]
14
+
15
+ # @see Revox::Models::CampaignStatisticsResponse#statistics
16
+ class Statistics < Revox::Internal::Type::BaseModel
17
+ # @!attribute campaign
18
+ #
19
+ # @return [Revox::Models::CampaignStatisticsResponse::Statistics::Campaign]
20
+ required :campaign, -> { Revox::Models::CampaignStatisticsResponse::Statistics::Campaign }
21
+
22
+ # @!attribute data_extraction
23
+ #
24
+ # @return [Revox::Models::CampaignStatisticsResponse::Statistics::DataExtraction, nil]
25
+ required :data_extraction,
26
+ -> { Revox::Models::CampaignStatisticsResponse::Statistics::DataExtraction },
27
+ nil?: true
28
+
29
+ # @!attribute effort
30
+ #
31
+ # @return [Revox::Models::CampaignStatisticsResponse::Statistics::Effort]
32
+ required :effort, -> { Revox::Models::CampaignStatisticsResponse::Statistics::Effort }
33
+
34
+ # @!attribute funnel
35
+ #
36
+ # @return [Revox::Models::CampaignStatisticsResponse::Statistics::Funnel]
37
+ required :funnel, -> { Revox::Models::CampaignStatisticsResponse::Statistics::Funnel }
38
+
39
+ # @!attribute hot_lead_outcomes
40
+ #
41
+ # @return [Array<String>]
42
+ required :hot_lead_outcomes, Revox::Internal::Type::ArrayOf[String]
43
+
44
+ # @!attribute inbound
45
+ #
46
+ # @return [Revox::Models::CampaignStatisticsResponse::Statistics::Inbound]
47
+ required :inbound, -> { Revox::Models::CampaignStatisticsResponse::Statistics::Inbound }
48
+
49
+ # @!attribute jump_in
50
+ #
51
+ # @return [Revox::Models::CampaignStatisticsResponse::Statistics::JumpIn]
52
+ required :jump_in, -> { Revox::Models::CampaignStatisticsResponse::Statistics::JumpIn }
53
+
54
+ # @!attribute leads
55
+ #
56
+ # @return [Revox::Models::CampaignStatisticsResponse::Statistics::Leads]
57
+ required :leads, -> { Revox::Models::CampaignStatisticsResponse::Statistics::Leads }
58
+
59
+ # @!attribute outcome_breakdown
60
+ #
61
+ # @return [Array<Revox::Models::CampaignStatisticsResponse::Statistics::OutcomeBreakdown>]
62
+ required :outcome_breakdown,
63
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignStatisticsResponse::Statistics::OutcomeBreakdown] }
64
+
65
+ # @!method initialize(campaign:, data_extraction:, effort:, funnel:, hot_lead_outcomes:, inbound:, jump_in:, leads:, outcome_breakdown:)
66
+ # @param campaign [Revox::Models::CampaignStatisticsResponse::Statistics::Campaign]
67
+ # @param data_extraction [Revox::Models::CampaignStatisticsResponse::Statistics::DataExtraction, nil]
68
+ # @param effort [Revox::Models::CampaignStatisticsResponse::Statistics::Effort]
69
+ # @param funnel [Revox::Models::CampaignStatisticsResponse::Statistics::Funnel]
70
+ # @param hot_lead_outcomes [Array<String>]
71
+ # @param inbound [Revox::Models::CampaignStatisticsResponse::Statistics::Inbound]
72
+ # @param jump_in [Revox::Models::CampaignStatisticsResponse::Statistics::JumpIn]
73
+ # @param leads [Revox::Models::CampaignStatisticsResponse::Statistics::Leads]
74
+ # @param outcome_breakdown [Array<Revox::Models::CampaignStatisticsResponse::Statistics::OutcomeBreakdown>]
75
+
76
+ # @see Revox::Models::CampaignStatisticsResponse::Statistics#campaign
77
+ class Campaign < Revox::Internal::Type::BaseModel
78
+ # @!attribute id
79
+ #
80
+ # @return [String]
81
+ required :id, String
82
+
83
+ # @!attribute agent_name
84
+ #
85
+ # @return [String, nil]
86
+ required :agent_name, String, nil?: true
87
+
88
+ # @!attribute first_activity_at
89
+ #
90
+ # @return [Object]
91
+ required :first_activity_at, Revox::Internal::Type::Unknown
92
+
93
+ # @!attribute has_activity
94
+ #
95
+ # @return [Boolean]
96
+ required :has_activity, Revox::Internal::Type::Boolean
97
+
98
+ # @!attribute is_cancelled
99
+ #
100
+ # @return [Boolean]
101
+ required :is_cancelled, Revox::Internal::Type::Boolean
102
+
103
+ # @!attribute last_activity_at
104
+ #
105
+ # @return [Object]
106
+ required :last_activity_at, Revox::Internal::Type::Unknown
107
+
108
+ # @!attribute max_attempts_per_contact
109
+ #
110
+ # @return [Float, nil]
111
+ required :max_attempts_per_contact, Float, nil?: true
112
+
113
+ # @!attribute name
114
+ #
115
+ # @return [String]
116
+ required :name, String
117
+
118
+ # @!attribute status
119
+ #
120
+ # @return [Symbol, Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::Status]
121
+ required :status, enum: -> { Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::Status }
122
+
123
+ # @!attribute timezone
124
+ #
125
+ # @return [String]
126
+ required :timezone, String
127
+
128
+ # @!method initialize(id:, agent_name:, first_activity_at:, has_activity:, is_cancelled:, last_activity_at:, max_attempts_per_contact:, name:, status:, timezone:)
129
+ # @param id [String]
130
+ # @param agent_name [String, nil]
131
+ # @param first_activity_at [Object]
132
+ # @param has_activity [Boolean]
133
+ # @param is_cancelled [Boolean]
134
+ # @param last_activity_at [Object]
135
+ # @param max_attempts_per_contact [Float, nil]
136
+ # @param name [String]
137
+ # @param status [Symbol, Revox::Models::CampaignStatisticsResponse::Statistics::Campaign::Status]
138
+ # @param timezone [String]
139
+
140
+ # @see Revox::Models::CampaignStatisticsResponse::Statistics::Campaign#status
141
+ module Status
142
+ extend Revox::Internal::Type::Enum
143
+
144
+ RUNNING = :running
145
+ PAUSED = :paused
146
+ COMPLETED = :completed
147
+
148
+ # @!method self.values
149
+ # @return [Array<Symbol>]
150
+ end
151
+ end
152
+
153
+ # @see Revox::Models::CampaignStatisticsResponse::Statistics#data_extraction
154
+ class DataExtraction < Revox::Internal::Type::BaseModel
155
+ # @!attribute fields
156
+ #
157
+ # @return [Array<String>]
158
+ required :fields, Revox::Internal::Type::ArrayOf[String]
159
+
160
+ # @!attribute intro
161
+ #
162
+ # @return [String]
163
+ required :intro, String
164
+
165
+ # @!method initialize(fields:, intro:)
166
+ # @param fields [Array<String>]
167
+ # @param intro [String]
168
+ end
169
+
170
+ # @see Revox::Models::CampaignStatisticsResponse::Statistics#effort
171
+ class Effort < Revox::Internal::Type::BaseModel
172
+ # @!attribute calls_total
173
+ #
174
+ # @return [Float]
175
+ required :calls_total, Float
176
+
177
+ # @!attribute inbound_calls
178
+ #
179
+ # @return [Float]
180
+ required :inbound_calls, Float
181
+
182
+ # @!attribute outbound_attempts
183
+ #
184
+ # @return [Float]
185
+ required :outbound_attempts, Float
186
+
187
+ # @!method initialize(calls_total:, inbound_calls:, outbound_attempts:)
188
+ # @param calls_total [Float]
189
+ # @param inbound_calls [Float]
190
+ # @param outbound_attempts [Float]
191
+ end
192
+
193
+ # @see Revox::Models::CampaignStatisticsResponse::Statistics#funnel
194
+ class Funnel < Revox::Internal::Type::BaseModel
195
+ # @!attribute called
196
+ #
197
+ # @return [Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Called]
198
+ required :called, -> { Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Called }
199
+
200
+ # @!attribute hot_leads
201
+ #
202
+ # @return [Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::HotLeads]
203
+ required :hot_leads, -> { Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::HotLeads }
204
+
205
+ # @!attribute reached
206
+ #
207
+ # @return [Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Reached]
208
+ required :reached, -> { Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Reached }
209
+
210
+ # @!attribute real_exchanges
211
+ #
212
+ # @return [Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::RealExchanges]
213
+ required :real_exchanges,
214
+ -> { Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::RealExchanges }
215
+
216
+ # @!method initialize(called:, hot_leads:, reached:, real_exchanges:)
217
+ # @param called [Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Called]
218
+ # @param hot_leads [Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::HotLeads]
219
+ # @param reached [Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::Reached]
220
+ # @param real_exchanges [Revox::Models::CampaignStatisticsResponse::Statistics::Funnel::RealExchanges]
221
+
222
+ # @see Revox::Models::CampaignStatisticsResponse::Statistics::Funnel#called
223
+ class Called < Revox::Internal::Type::BaseModel
224
+ # @!attribute count
225
+ #
226
+ # @return [Float]
227
+ required :count, Float
228
+
229
+ # @!attribute imported_rows
230
+ #
231
+ # @return [Float]
232
+ required :imported_rows, Float
233
+
234
+ # @!method initialize(count:, imported_rows:)
235
+ # @param count [Float]
236
+ # @param imported_rows [Float]
237
+ end
238
+
239
+ # @see Revox::Models::CampaignStatisticsResponse::Statistics::Funnel#hot_leads
240
+ class HotLeads < Revox::Internal::Type::BaseModel
241
+ # @!attribute count
242
+ #
243
+ # @return [Float]
244
+ required :count, Float
245
+
246
+ # @!attribute pct_of_reached
247
+ #
248
+ # @return [Float, nil]
249
+ required :pct_of_reached, Float, nil?: true
250
+
251
+ # @!method initialize(count:, pct_of_reached:)
252
+ # @param count [Float]
253
+ # @param pct_of_reached [Float, nil]
254
+ end
255
+
256
+ # @see Revox::Models::CampaignStatisticsResponse::Statistics::Funnel#reached
257
+ class Reached < Revox::Internal::Type::BaseModel
258
+ # @!attribute count
259
+ #
260
+ # @return [Float]
261
+ required :count, Float
262
+
263
+ # @!attribute inbound
264
+ #
265
+ # @return [Float]
266
+ required :inbound, Float
267
+
268
+ # @!attribute outbound
269
+ #
270
+ # @return [Float]
271
+ required :outbound, Float
272
+
273
+ # @!attribute overlap
274
+ #
275
+ # @return [Float]
276
+ required :overlap, Float
277
+
278
+ # @!attribute pct_of_called
279
+ #
280
+ # @return [Float, nil]
281
+ required :pct_of_called, Float, nil?: true
282
+
283
+ # @!method initialize(count:, inbound:, outbound:, overlap:, pct_of_called:)
284
+ # @param count [Float]
285
+ # @param inbound [Float]
286
+ # @param outbound [Float]
287
+ # @param overlap [Float]
288
+ # @param pct_of_called [Float, nil]
289
+ end
290
+
291
+ # @see Revox::Models::CampaignStatisticsResponse::Statistics::Funnel#real_exchanges
292
+ class RealExchanges < Revox::Internal::Type::BaseModel
293
+ # @!attribute count
294
+ #
295
+ # @return [Float]
296
+ required :count, Float
297
+
298
+ # @!attribute pct_of_reached
299
+ #
300
+ # @return [Float, nil]
301
+ required :pct_of_reached, Float, nil?: true
302
+
303
+ # @!method initialize(count:, pct_of_reached:)
304
+ # @param count [Float]
305
+ # @param pct_of_reached [Float, nil]
306
+ end
307
+ end
308
+
309
+ # @see Revox::Models::CampaignStatisticsResponse::Statistics#inbound
310
+ class Inbound < Revox::Internal::Type::BaseModel
311
+ # @!attribute unique_callers
312
+ #
313
+ # @return [Float]
314
+ required :unique_callers, Float
315
+
316
+ # @!method initialize(unique_callers:)
317
+ # @param unique_callers [Float]
318
+ end
319
+
320
+ # @see Revox::Models::CampaignStatisticsResponse::Statistics#jump_in
321
+ class JumpIn < Revox::Internal::Type::BaseModel
322
+ # @!attribute joined_calls
323
+ #
324
+ # @return [Float]
325
+ required :joined_calls, Float
326
+
327
+ # @!attribute median_conversation_seconds
328
+ #
329
+ # @return [Float, nil]
330
+ required :median_conversation_seconds, Float, nil?: true
331
+
332
+ # @!attribute median_time_to_join_seconds
333
+ #
334
+ # @return [Float, nil]
335
+ required :median_time_to_join_seconds, Float, nil?: true
336
+
337
+ # @!method initialize(joined_calls:, median_conversation_seconds:, median_time_to_join_seconds:)
338
+ # @param joined_calls [Float]
339
+ # @param median_conversation_seconds [Float, nil]
340
+ # @param median_time_to_join_seconds [Float, nil]
341
+ end
342
+
343
+ # @see Revox::Models::CampaignStatisticsResponse::Statistics#leads
344
+ class Leads < Revox::Internal::Type::BaseModel
345
+ # @!attribute callback_requested
346
+ #
347
+ # @return [Array<Revox::Models::CampaignStatisticsResponse::Statistics::Leads::CallbackRequested>]
348
+ required :callback_requested,
349
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::CallbackRequested] }
350
+
351
+ # @!attribute interested
352
+ #
353
+ # @return [Array<Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Interested>]
354
+ required :interested,
355
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Interested] }
356
+
357
+ # @!method initialize(callback_requested:, interested:)
358
+ # @param callback_requested [Array<Revox::Models::CampaignStatisticsResponse::Statistics::Leads::CallbackRequested>]
359
+ # @param interested [Array<Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Interested>]
360
+
361
+ class CallbackRequested < Revox::Internal::Type::BaseModel
362
+ # @!attribute attempt_id
363
+ #
364
+ # @return [String, nil]
365
+ required :attempt_id, String, nil?: true
366
+
367
+ # @!attribute call_id
368
+ #
369
+ # @return [String]
370
+ required :call_id, String
371
+
372
+ # @!attribute direction
373
+ #
374
+ # @return [Symbol, Revox::Models::CampaignStatisticsResponse::Statistics::Leads::CallbackRequested::Direction]
375
+ required :direction,
376
+ enum: -> { Revox::Models::CampaignStatisticsResponse::Statistics::Leads::CallbackRequested::Direction }
377
+
378
+ # @!attribute email
379
+ #
380
+ # @return [String, nil]
381
+ required :email, String, nil?: true
382
+
383
+ # @!attribute last_activity_at
384
+ #
385
+ # @return [Object]
386
+ required :last_activity_at, Revox::Internal::Type::Unknown
387
+
388
+ # @!attribute name
389
+ #
390
+ # @return [String]
391
+ required :name, String
392
+
393
+ # @!attribute phone
394
+ #
395
+ # @return [String]
396
+ required :phone, String
397
+
398
+ # @!attribute summary
399
+ #
400
+ # @return [String, nil]
401
+ required :summary, String, nil?: true
402
+
403
+ # @!method initialize(attempt_id:, call_id:, direction:, email:, last_activity_at:, name:, phone:, summary:)
404
+ # @param attempt_id [String, nil]
405
+ # @param call_id [String]
406
+ # @param direction [Symbol, Revox::Models::CampaignStatisticsResponse::Statistics::Leads::CallbackRequested::Direction]
407
+ # @param email [String, nil]
408
+ # @param last_activity_at [Object]
409
+ # @param name [String]
410
+ # @param phone [String]
411
+ # @param summary [String, nil]
412
+
413
+ # @see Revox::Models::CampaignStatisticsResponse::Statistics::Leads::CallbackRequested#direction
414
+ module Direction
415
+ extend Revox::Internal::Type::Enum
416
+
417
+ INBOUND = :inbound
418
+ OUTBOUND = :outbound
419
+
420
+ # @!method self.values
421
+ # @return [Array<Symbol>]
422
+ end
423
+ end
424
+
425
+ class Interested < Revox::Internal::Type::BaseModel
426
+ # @!attribute attempt_id
427
+ #
428
+ # @return [String, nil]
429
+ required :attempt_id, String, nil?: true
430
+
431
+ # @!attribute call_id
432
+ #
433
+ # @return [String]
434
+ required :call_id, String
435
+
436
+ # @!attribute direction
437
+ #
438
+ # @return [Symbol, Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Interested::Direction]
439
+ required :direction,
440
+ enum: -> { Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Interested::Direction }
441
+
442
+ # @!attribute email
443
+ #
444
+ # @return [String, nil]
445
+ required :email, String, nil?: true
446
+
447
+ # @!attribute last_activity_at
448
+ #
449
+ # @return [Object]
450
+ required :last_activity_at, Revox::Internal::Type::Unknown
451
+
452
+ # @!attribute name
453
+ #
454
+ # @return [String]
455
+ required :name, String
456
+
457
+ # @!attribute phone
458
+ #
459
+ # @return [String]
460
+ required :phone, String
461
+
462
+ # @!attribute summary
463
+ #
464
+ # @return [String, nil]
465
+ required :summary, String, nil?: true
466
+
467
+ # @!method initialize(attempt_id:, call_id:, direction:, email:, last_activity_at:, name:, phone:, summary:)
468
+ # @param attempt_id [String, nil]
469
+ # @param call_id [String]
470
+ # @param direction [Symbol, Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Interested::Direction]
471
+ # @param email [String, nil]
472
+ # @param last_activity_at [Object]
473
+ # @param name [String]
474
+ # @param phone [String]
475
+ # @param summary [String, nil]
476
+
477
+ # @see Revox::Models::CampaignStatisticsResponse::Statistics::Leads::Interested#direction
478
+ module Direction
479
+ extend Revox::Internal::Type::Enum
480
+
481
+ INBOUND = :inbound
482
+ OUTBOUND = :outbound
483
+
484
+ # @!method self.values
485
+ # @return [Array<Symbol>]
486
+ end
487
+ end
488
+ end
489
+
490
+ class OutcomeBreakdown < Revox::Internal::Type::BaseModel
491
+ # @!attribute count
492
+ #
493
+ # @return [Float]
494
+ required :count, Float
495
+
496
+ # @!attribute label
497
+ #
498
+ # @return [String]
499
+ required :label, String
500
+
501
+ # @!attribute outcome
502
+ #
503
+ # @return [String]
504
+ required :outcome, String
505
+
506
+ # @!method initialize(count:, label:, outcome:)
507
+ # @param count [Float]
508
+ # @param label [String]
509
+ # @param outcome [String]
510
+ end
511
+ end
512
+ end
513
+ end
514
+ end
@@ -0,0 +1,165 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::Campaigns#update
6
+ class CampaignUpdateParams < Revox::Internal::Type::BaseModel
7
+ extend Revox::Internal::Type::RequestParameters::Converter
8
+ include Revox::Internal::Type::RequestParameters
9
+
10
+ # @!attribute id
11
+ #
12
+ # @return [String]
13
+ required :id, String
14
+
15
+ # @!attribute call_retry_config
16
+ # Configuration for call retry behavior including time windows, delays, and max
17
+ # iterations. If not provided, defaults will be used.
18
+ #
19
+ # @return [Revox::Models::CampaignUpdateParams::CallRetryConfig, nil]
20
+ optional :call_retry_config, -> { Revox::CampaignUpdateParams::CallRetryConfig }, nil?: true
21
+
22
+ # @!attribute from_phone_number
23
+ # The phone number to use for outbound calls. Editable after launch; applied to
24
+ # the campaign's calls that have not completed yet.
25
+ #
26
+ # @return [String, nil]
27
+ optional :from_phone_number, String, nil?: true
28
+
29
+ # @!attribute max_concurrent_calls
30
+ # Maximum concurrent calls. Editable after launch.
31
+ #
32
+ # @return [Float, nil]
33
+ optional :max_concurrent_calls, Float, nil?: true
34
+
35
+ # @!attribute name
36
+ # Campaign display name
37
+ #
38
+ # @return [String, nil]
39
+ optional :name, String
40
+
41
+ # @!method initialize(id:, call_retry_config: nil, from_phone_number: nil, max_concurrent_calls: nil, name: nil, request_options: {})
42
+ # Some parameter documentations has been truncated, see
43
+ # {Revox::Models::CampaignUpdateParams} for more details.
44
+ #
45
+ # @param id [String]
46
+ #
47
+ # @param call_retry_config [Revox::Models::CampaignUpdateParams::CallRetryConfig, nil] Configuration for call retry behavior including time windows, delays, and max it
48
+ #
49
+ # @param from_phone_number [String, nil] The phone number to use for outbound calls. Editable after launch; applied to th
50
+ #
51
+ # @param max_concurrent_calls [Float, nil] Maximum concurrent calls. Editable after launch.
52
+ #
53
+ # @param name [String] Campaign display name
54
+ #
55
+ # @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}]
56
+
57
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
58
+ # @!attribute allowed_days
59
+ # Days of the week when calls are allowed, in the recipient's timezone. Default:
60
+ # Monday through Friday.
61
+ #
62
+ # @return [Array<Symbol, Revox::Models::CampaignUpdateParams::CallRetryConfig::AllowedDay>]
63
+ required :allowed_days,
64
+ -> { Revox::Internal::Type::ArrayOf[enum: Revox::CampaignUpdateParams::CallRetryConfig::AllowedDay] }
65
+
66
+ # @!attribute call_twice_in_a_row
67
+ # If true and max_retry_attempts >= 2, attempt #2 fires immediately (skipping
68
+ # retry_delay_seconds) when attempt #1 didn't reach a human.
69
+ # Calling-window/allowed-days checks still apply. Only affects the 1→2 transition.
70
+ # Default: false.
71
+ #
72
+ # @return [Boolean]
73
+ required :call_twice_in_a_row, Revox::Internal::Type::Boolean
74
+
75
+ # @!attribute calling_windows
76
+ #
77
+ # @return [Array<Revox::Models::CampaignUpdateParams::CallRetryConfig::CallingWindow>]
78
+ required :calling_windows,
79
+ -> { Revox::Internal::Type::ArrayOf[Revox::CampaignUpdateParams::CallRetryConfig::CallingWindow] }
80
+
81
+ # @!attribute max_retry_attempts
82
+ # Maximum number of call retry attempts. Default: 3.
83
+ #
84
+ # @return [Integer]
85
+ required :max_retry_attempts, Integer
86
+
87
+ # @!attribute timezone
88
+ # Optional IANA timezone identifier to override the automatic timezone detection
89
+ # from phone number. If not provided, timezone is determined from the recipient's
90
+ # phone number country code. Examples: 'America/New_York', 'Europe/Paris'.
91
+ #
92
+ # @return [String, nil]
93
+ optional :timezone, String, nil?: true
94
+
95
+ # @!method initialize(allowed_days:, call_twice_in_a_row:, calling_windows:, max_retry_attempts:, timezone: nil)
96
+ # Some parameter documentations has been truncated, see
97
+ # {Revox::Models::CampaignUpdateParams::CallRetryConfig} for more details.
98
+ #
99
+ # Configuration for call retry behavior including time windows, delays, and max
100
+ # iterations. If not provided, defaults will be used.
101
+ #
102
+ # @param allowed_days [Array<Symbol, Revox::Models::CampaignUpdateParams::CallRetryConfig::AllowedDay>] Days of the week when calls are allowed, in the recipient's timezone. Default: M
103
+ #
104
+ # @param call_twice_in_a_row [Boolean] If true and max_retry_attempts >= 2, attempt #2 fires immediately (skipping retr
105
+ #
106
+ # @param calling_windows [Array<Revox::Models::CampaignUpdateParams::CallRetryConfig::CallingWindow>]
107
+ #
108
+ # @param max_retry_attempts [Integer] Maximum number of call retry attempts. Default: 3.
109
+ #
110
+ # @param timezone [String, nil] Optional IANA timezone identifier to override the automatic timezone detection f
111
+
112
+ module AllowedDay
113
+ extend Revox::Internal::Type::Enum
114
+
115
+ MONDAY = :monday
116
+ TUESDAY = :tuesday
117
+ WEDNESDAY = :wednesday
118
+ THURSDAY = :thursday
119
+ FRIDAY = :friday
120
+ SATURDAY = :saturday
121
+ SUNDAY = :sunday
122
+
123
+ # @!method self.values
124
+ # @return [Array<Symbol>]
125
+ end
126
+
127
+ class CallingWindow < Revox::Internal::Type::BaseModel
128
+ # @!attribute calling_window_end_time
129
+ # End time for the calling window in the recipient's timezone (or
130
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
131
+ # Examples: '17:00', '6pm'. Default: '18:00'.
132
+ #
133
+ # @return [String]
134
+ required :calling_window_end_time, String
135
+
136
+ # @!attribute calling_window_start_time
137
+ # Start time for the calling window in the recipient's timezone (or
138
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
139
+ # Examples: '09:00', '10am'. Default: '10:00'.
140
+ #
141
+ # @return [String]
142
+ required :calling_window_start_time, String
143
+
144
+ # @!attribute retry_delay_seconds
145
+ # Delay between retry attempts in seconds. 0 retries as soon as the calling window
146
+ # allows. Default: 7200 (2 hours).
147
+ #
148
+ # @return [Integer]
149
+ required :retry_delay_seconds, Integer
150
+
151
+ # @!method initialize(calling_window_end_time:, calling_window_start_time:, retry_delay_seconds:)
152
+ # Some parameter documentations has been truncated, see
153
+ # {Revox::Models::CampaignUpdateParams::CallRetryConfig::CallingWindow} for more
154
+ # details.
155
+ #
156
+ # @param calling_window_end_time [String] End time for the calling window in the recipient's timezone (or timezone_overrid
157
+ #
158
+ # @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
159
+ #
160
+ # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. 0 retries as soon as the calling window
161
+ end
162
+ end
163
+ end
164
+ end
165
+ end