revox 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/README.md +1 -1
  4. data/lib/revox/client.rb +8 -0
  5. data/lib/revox/internal/type/base_model.rb +3 -3
  6. data/lib/revox/models/assistant_clone_params.rb +20 -0
  7. data/lib/revox/models/assistant_clone_response.rb +1594 -0
  8. data/lib/revox/models/auth_status_retrieve_params.rb +14 -0
  9. data/lib/revox/models/auth_status_retrieve_response.rb +17 -0
  10. data/lib/revox/models/call_cancel_params.rb +20 -0
  11. data/lib/revox/models/call_cancel_response.rb +16 -0
  12. data/lib/revox/models/call_create_response.rb +11 -1
  13. data/lib/revox/models/call_export_params.rb +205 -0
  14. data/lib/revox/models/call_export_response.rb +22 -0
  15. data/lib/revox/models/call_pause_params.rb +20 -0
  16. data/lib/revox/models/call_pause_response.rb +16 -0
  17. data/lib/revox/models/call_phone_history_params.rb +14 -0
  18. data/lib/revox/models/call_phone_history_response.rb +98 -0
  19. data/lib/revox/models/call_resume_params.rb +20 -0
  20. data/lib/revox/models/call_resume_response.rb +16 -0
  21. data/lib/revox/models/call_retrieve_response.rb +11 -1
  22. data/lib/revox/models/call_search_params.rb +171 -0
  23. data/lib/revox/models/call_search_response.rb +3114 -0
  24. data/lib/revox/models/campaign_get_rows_response.rb +11 -1
  25. data/lib/revox/models/campaign_launch_params.rb +20 -0
  26. data/lib/revox/models/campaign_launch_response.rb +2030 -0
  27. data/lib/revox/models/campaign_pause_params.rb +20 -0
  28. data/lib/revox/models/campaign_pause_response.rb +16 -0
  29. data/lib/revox/models/campaign_resume_params.rb +20 -0
  30. data/lib/revox/models/campaign_resume_response.rb +16 -0
  31. data/lib/revox/models/campaign_statistics_params.rb +20 -0
  32. data/lib/revox/models/campaign_statistics_response.rb +486 -0
  33. data/lib/revox/models/campaign_update_params.rb +234 -0
  34. data/lib/revox/models/campaign_update_response.rb +2030 -0
  35. data/lib/revox/models/phone_number_delete_params.rb +20 -0
  36. data/lib/revox/models/phone_number_delete_response.rb +16 -0
  37. data/lib/revox/models/phone_number_list_params.rb +14 -0
  38. data/lib/revox/models/phone_number_list_response.rb +1777 -0
  39. data/lib/revox/models/phone_number_update_params.rb +32 -0
  40. data/lib/revox/models/phone_number_update_response.rb +1777 -0
  41. data/lib/revox/models/user_retrieve_params.rb +14 -0
  42. data/lib/revox/models/user_retrieve_response.rb +99 -0
  43. data/lib/revox/models/voice_clone_params.rb +78 -0
  44. data/lib/revox/models/voice_clone_response.rb +40 -0
  45. data/lib/revox/models/voice_delete_params.rb +20 -0
  46. data/lib/revox/models/voice_delete_response.rb +16 -0
  47. data/lib/revox/models.rb +37 -1
  48. data/lib/revox/resources/assistants.rb +21 -0
  49. data/lib/revox/resources/auth_status.rb +32 -0
  50. data/lib/revox/resources/call.rb +145 -0
  51. data/lib/revox/resources/campaigns.rb +131 -0
  52. data/lib/revox/resources/phone_numbers.rb +74 -0
  53. data/lib/revox/resources/users.rb +17 -3
  54. data/lib/revox/resources/voices.rb +50 -0
  55. data/lib/revox/version.rb +1 -1
  56. data/lib/revox.rb +40 -5
  57. data/rbi/revox/client.rbi +6 -0
  58. data/rbi/revox/models/assistant_clone_params.rbi +33 -0
  59. data/rbi/revox/models/assistant_clone_response.rbi +3341 -0
  60. data/rbi/revox/models/auth_status_retrieve_params.rbi +27 -0
  61. data/rbi/revox/models/auth_status_retrieve_response.rbi +30 -0
  62. data/rbi/revox/models/call_cancel_params.rbi +33 -0
  63. data/rbi/revox/models/call_cancel_response.rbi +23 -0
  64. data/rbi/revox/models/call_create_response.rbi +12 -0
  65. data/rbi/revox/models/call_export_params.rbi +456 -0
  66. data/rbi/revox/models/call_export_response.rbi +26 -0
  67. data/rbi/revox/models/call_pause_params.rbi +31 -0
  68. data/rbi/revox/models/call_pause_response.rbi +23 -0
  69. data/rbi/revox/models/call_phone_history_params.rbi +27 -0
  70. data/rbi/revox/models/call_phone_history_response.rbi +224 -0
  71. data/rbi/revox/models/call_resume_params.rbi +33 -0
  72. data/rbi/revox/models/call_resume_response.rbi +23 -0
  73. data/rbi/revox/models/call_retrieve_response.rbi +12 -0
  74. data/rbi/revox/models/call_search_params.rbi +288 -0
  75. data/rbi/revox/models/call_search_response.rbi +6593 -0
  76. data/rbi/revox/models/campaign_get_rows_response.rbi +12 -0
  77. data/rbi/revox/models/campaign_launch_params.rbi +33 -0
  78. data/rbi/revox/models/campaign_launch_response.rbi +4170 -0
  79. data/rbi/revox/models/campaign_pause_params.rbi +33 -0
  80. data/rbi/revox/models/campaign_pause_response.rbi +23 -0
  81. data/rbi/revox/models/campaign_resume_params.rbi +33 -0
  82. data/rbi/revox/models/campaign_resume_response.rbi +23 -0
  83. data/rbi/revox/models/campaign_statistics_params.rbi +33 -0
  84. data/rbi/revox/models/campaign_statistics_response.rbi +1011 -0
  85. data/rbi/revox/models/campaign_update_params.rbi +431 -0
  86. data/rbi/revox/models/campaign_update_response.rbi +4170 -0
  87. data/rbi/revox/models/phone_number_delete_params.rbi +33 -0
  88. data/rbi/revox/models/phone_number_delete_response.rbi +26 -0
  89. data/rbi/revox/models/phone_number_list_params.rbi +27 -0
  90. data/rbi/revox/models/phone_number_list_response.rbi +3680 -0
  91. data/rbi/revox/models/phone_number_update_params.rbi +53 -0
  92. data/rbi/revox/models/phone_number_update_response.rbi +3683 -0
  93. data/rbi/revox/models/user_retrieve_params.rbi +27 -0
  94. data/rbi/revox/models/user_retrieve_response.rbi +140 -0
  95. data/rbi/revox/models/voice_clone_params.rbi +141 -0
  96. data/rbi/revox/models/voice_clone_response.rbi +53 -0
  97. data/rbi/revox/models/voice_delete_params.rbi +33 -0
  98. data/rbi/revox/models/voice_delete_response.rbi +23 -0
  99. data/rbi/revox/models.rbi +37 -1
  100. data/rbi/revox/resources/assistants.rbi +12 -0
  101. data/rbi/revox/resources/auth_status.rbi +21 -0
  102. data/rbi/revox/resources/call.rbi +107 -0
  103. data/rbi/revox/resources/campaigns.rbi +94 -0
  104. data/rbi/revox/resources/phone_numbers.rbi +43 -0
  105. data/rbi/revox/resources/users.rbi +8 -2
  106. data/rbi/revox/resources/voices.rbi +39 -0
  107. data/sig/revox/client.rbs +4 -0
  108. data/sig/revox/models/assistant_clone_params.rbs +20 -0
  109. data/sig/revox/models/assistant_clone_response.rbs +1318 -0
  110. data/sig/revox/models/auth_status_retrieve_params.rbs +15 -0
  111. data/sig/revox/models/auth_status_retrieve_response.rbs +13 -0
  112. data/sig/revox/models/call_cancel_params.rbs +20 -0
  113. data/sig/revox/models/call_cancel_response.rbs +13 -0
  114. data/sig/revox/models/call_create_response.rbs +5 -0
  115. data/sig/revox/models/call_export_params.rbs +234 -0
  116. data/sig/revox/models/call_export_response.rbs +15 -0
  117. data/sig/revox/models/call_pause_params.rbs +20 -0
  118. data/sig/revox/models/call_pause_response.rbs +13 -0
  119. data/sig/revox/models/call_phone_history_params.rbs +15 -0
  120. data/sig/revox/models/call_phone_history_response.rbs +102 -0
  121. data/sig/revox/models/call_resume_params.rbs +20 -0
  122. data/sig/revox/models/call_resume_response.rbs +13 -0
  123. data/sig/revox/models/call_retrieve_response.rbs +5 -0
  124. data/sig/revox/models/call_search_params.rbs +198 -0
  125. data/sig/revox/models/call_search_response.rbs +2654 -0
  126. data/sig/revox/models/campaign_get_rows_response.rbs +5 -0
  127. data/sig/revox/models/campaign_launch_params.rbs +20 -0
  128. data/sig/revox/models/campaign_launch_response.rbs +1694 -0
  129. data/sig/revox/models/campaign_pause_params.rbs +20 -0
  130. data/sig/revox/models/campaign_pause_response.rbs +13 -0
  131. data/sig/revox/models/campaign_resume_params.rbs +20 -0
  132. data/sig/revox/models/campaign_resume_response.rbs +13 -0
  133. data/sig/revox/models/campaign_statistics_params.rbs +20 -0
  134. data/sig/revox/models/campaign_statistics_response.rbs +458 -0
  135. data/sig/revox/models/campaign_update_params.rbs +203 -0
  136. data/sig/revox/models/campaign_update_response.rbs +1694 -0
  137. data/sig/revox/models/phone_number_delete_params.rbs +20 -0
  138. data/sig/revox/models/phone_number_delete_response.rbs +13 -0
  139. data/sig/revox/models/phone_number_list_params.rbs +15 -0
  140. data/sig/revox/models/phone_number_list_response.rbs +1462 -0
  141. data/sig/revox/models/phone_number_update_params.rbs +32 -0
  142. data/sig/revox/models/phone_number_update_response.rbs +1460 -0
  143. data/sig/revox/models/user_retrieve_params.rbs +14 -0
  144. data/sig/revox/models/user_retrieve_response.rbs +71 -0
  145. data/sig/revox/models/voice_clone_params.rbs +79 -0
  146. data/sig/revox/models/voice_clone_response.rbs +40 -0
  147. data/sig/revox/models/voice_delete_params.rbs +20 -0
  148. data/sig/revox/models/voice_delete_response.rbs +13 -0
  149. data/sig/revox/models.rbs +37 -1
  150. data/sig/revox/resources/assistants.rbs +5 -0
  151. data/sig/revox/resources/auth_status.rbs +11 -0
  152. data/sig/revox/resources/call.rbs +45 -0
  153. data/sig/revox/resources/campaigns.rbs +33 -0
  154. data/sig/revox/resources/phone_numbers.rbs +23 -0
  155. data/sig/revox/resources/users.rbs +3 -1
  156. data/sig/revox/resources/voices.rbs +13 -0
  157. metadata +121 -16
  158. data/lib/revox/models/users/me_retrieve_params.rb +0 -16
  159. data/lib/revox/models/users/me_retrieve_response.rb +0 -101
  160. data/lib/revox/models/users/me_update_params.rb +0 -22
  161. data/lib/revox/models/users/me_update_response.rb +0 -101
  162. data/lib/revox/resources/users/me.rb +0 -55
  163. data/rbi/revox/models/users/me_retrieve_params.rbi +0 -29
  164. data/rbi/revox/models/users/me_retrieve_response.rbi +0 -149
  165. data/rbi/revox/models/users/me_update_params.rbi +0 -43
  166. data/rbi/revox/models/users/me_update_response.rbi +0 -149
  167. data/rbi/revox/resources/users/me.rbi +0 -33
  168. data/sig/revox/models/users/me_retrieve_params.rbs +0 -16
  169. data/sig/revox/models/users/me_retrieve_response.rbs +0 -75
  170. data/sig/revox/models/users/me_update_params.rbs +0 -28
  171. data/sig/revox/models/users/me_update_response.rbs +0 -75
  172. data/sig/revox/resources/users/me.rbs +0 -18
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class AuthStatusRetrieveParams < Revox::Internal::Type::BaseModel
6
+ extend Revox::Internal::Type::RequestParameters::Converter
7
+ include Revox::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Revox::AuthStatusRetrieveParams, Revox::Internal::AnyHash)
12
+ end
13
+
14
+ sig do
15
+ params(request_options: Revox::RequestOptions::OrHash).returns(
16
+ T.attached_class
17
+ )
18
+ end
19
+ def self.new(request_options: {})
20
+ end
21
+
22
+ sig { override.returns({ request_options: Revox::RequestOptions }) }
23
+ def to_hash
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,30 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class AuthStatusRetrieveResponse < Revox::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Revox::Models::AuthStatusRetrieveResponse,
10
+ Revox::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # True if the API key is still valid.
15
+ sig { returns(T::Boolean) }
16
+ attr_accessor :authenticated
17
+
18
+ sig { params(authenticated: T::Boolean).returns(T.attached_class) }
19
+ def self.new(
20
+ # True if the API key is still valid.
21
+ authenticated:
22
+ )
23
+ end
24
+
25
+ sig { override.returns({ authenticated: T::Boolean }) }
26
+ def to_hash
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,33 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class CallCancelParams < Revox::Internal::Type::BaseModel
6
+ extend Revox::Internal::Type::RequestParameters::Converter
7
+ include Revox::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Revox::CallCancelParams, Revox::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
17
+ sig do
18
+ params(
19
+ id: String,
20
+ request_options: Revox::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns({ id: String, request_options: Revox::RequestOptions })
28
+ end
29
+ def to_hash
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,23 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class CallCancelResponse < Revox::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Revox::Models::CallCancelResponse, Revox::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(T::Boolean) }
12
+ attr_accessor :success
13
+
14
+ sig { params(success: T::Boolean).returns(T.attached_class) }
15
+ def self.new(success:)
16
+ end
17
+
18
+ sig { override.returns({ success: T::Boolean }) }
19
+ def to_hash
20
+ end
21
+ end
22
+ end
23
+ end
@@ -223,6 +223,12 @@ module Revox
223
223
  sig { returns(T.anything) }
224
224
  attr_accessor :updated_at
225
225
 
226
+ # Extra notification recipients resolved from the agent prompt's own routing
227
+ # rules, when it defines any. Added to the assistant's configured notification
228
+ # recipients; never replaces them. Null when the prompt defines no routing rules.
229
+ sig { returns(T.nilable(T::Array[String])) }
230
+ attr_accessor :follow_up_emails
231
+
226
232
  # Business outcome of the call. Null if not computed or no transcript.
227
233
  sig do
228
234
  returns(
@@ -289,6 +295,7 @@ module Revox
289
295
  status: Revox::Models::CallCreateResponse::Call::Status::OrSymbol,
290
296
  to_phone_number: String,
291
297
  updated_at: T.anything,
298
+ follow_up_emails: T.nilable(T::Array[String]),
292
299
  outcome:
293
300
  T.nilable(
294
301
  Revox::Models::CallCreateResponse::Call::Outcome::OrSymbol
@@ -348,6 +355,10 @@ module Revox
348
355
  # The time the call order was last updated (any state change, retry, or analysis
349
356
  # result).
350
357
  updated_at:,
358
+ # Extra notification recipients resolved from the agent prompt's own routing
359
+ # rules, when it defines any. Added to the assistant's configured notification
360
+ # recipients; never replaces them. Null when the prompt defines no routing rules.
361
+ follow_up_emails: nil,
351
362
  # Business outcome of the call. Null if not computed or no transcript.
352
363
  outcome: nil,
353
364
  # LLM explanation for the outcome, when outcome was computed from the transcript.
@@ -394,6 +405,7 @@ module Revox
394
405
  Revox::Models::CallCreateResponse::Call::Status::TaggedSymbol,
395
406
  to_phone_number: String,
396
407
  updated_at: T.anything,
408
+ follow_up_emails: T.nilable(T::Array[String]),
397
409
  outcome:
398
410
  T.nilable(
399
411
  Revox::Models::CallCreateResponse::Call::Outcome::TaggedSymbol
@@ -0,0 +1,456 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class CallExportParams < Revox::Internal::Type::BaseModel
6
+ extend Revox::Internal::Type::RequestParameters::Converter
7
+ include Revox::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Revox::CallExportParams, Revox::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(Revox::CallExportParams::Filters) }
15
+ attr_reader :filters
16
+
17
+ sig { params(filters: Revox::CallExportParams::Filters::OrHash).void }
18
+ attr_writer :filters
19
+
20
+ # Whether to include the metadata in the CSV file. These are the fields you
21
+ # (optionally) attached when placing the call.
22
+ sig { returns(T.nilable(T::Boolean)) }
23
+ attr_reader :include_metadata
24
+
25
+ sig { params(include_metadata: T::Boolean).void }
26
+ attr_writer :include_metadata
27
+
28
+ # Whether to include the structured output fields in the CSV file. These are
29
+ # generated by our AI agent during call analysis phase.
30
+ sig { returns(T.nilable(T::Boolean)) }
31
+ attr_reader :include_structured_output_fields
32
+
33
+ sig { params(include_structured_output_fields: T::Boolean).void }
34
+ attr_writer :include_structured_output_fields
35
+
36
+ sig do
37
+ params(
38
+ filters: Revox::CallExportParams::Filters::OrHash,
39
+ include_metadata: T::Boolean,
40
+ include_structured_output_fields: T::Boolean,
41
+ request_options: Revox::RequestOptions::OrHash
42
+ ).returns(T.attached_class)
43
+ end
44
+ def self.new(
45
+ filters:,
46
+ # Whether to include the metadata in the CSV file. These are the fields you
47
+ # (optionally) attached when placing the call.
48
+ include_metadata: nil,
49
+ # Whether to include the structured output fields in the CSV file. These are
50
+ # generated by our AI agent during call analysis phase.
51
+ include_structured_output_fields: nil,
52
+ request_options: {}
53
+ )
54
+ end
55
+
56
+ sig do
57
+ override.returns(
58
+ {
59
+ filters: Revox::CallExportParams::Filters,
60
+ include_metadata: T::Boolean,
61
+ include_structured_output_fields: T::Boolean,
62
+ request_options: Revox::RequestOptions
63
+ }
64
+ )
65
+ end
66
+ def to_hash
67
+ end
68
+
69
+ class Filters < Revox::Internal::Type::BaseModel
70
+ OrHash =
71
+ T.type_alias do
72
+ T.any(Revox::CallExportParams::Filters, Revox::Internal::AnyHash)
73
+ end
74
+
75
+ sig { returns(T::Array[String]) }
76
+ attr_accessor :assignee_ids
77
+
78
+ sig { returns(T::Array[String]) }
79
+ attr_accessor :assistant_ids
80
+
81
+ sig { returns(T::Array[String]) }
82
+ attr_accessor :campaign_ids
83
+
84
+ sig do
85
+ returns(
86
+ T::Array[Revox::CallExportParams::Filters::Direction::OrSymbol]
87
+ )
88
+ end
89
+ attr_accessor :directions
90
+
91
+ sig { returns(T::Array[String]) }
92
+ attr_accessor :from_phone_numbers
93
+
94
+ sig do
95
+ returns(T::Array[Revox::CallExportParams::Filters::Outcome::OrSymbol])
96
+ end
97
+ attr_accessor :outcomes
98
+
99
+ sig { returns(Integer) }
100
+ attr_accessor :page
101
+
102
+ sig { returns(Integer) }
103
+ attr_accessor :page_size
104
+
105
+ sig do
106
+ returns(T::Array[Revox::CallExportParams::Filters::Result::OrSymbol])
107
+ end
108
+ attr_accessor :results
109
+
110
+ sig do
111
+ returns(T::Array[Revox::CallExportParams::Filters::Status::OrSymbol])
112
+ end
113
+ attr_accessor :statuses
114
+
115
+ sig { returns(T.nilable(T::Array[String])) }
116
+ attr_reader :call_ids
117
+
118
+ sig { params(call_ids: T::Array[String]).void }
119
+ attr_writer :call_ids
120
+
121
+ sig { returns(T.nilable(String)) }
122
+ attr_reader :query
123
+
124
+ sig { params(query: String).void }
125
+ attr_writer :query
126
+
127
+ sig { returns(T.nilable(String)) }
128
+ attr_reader :sort_by
129
+
130
+ sig { params(sort_by: String).void }
131
+ attr_writer :sort_by
132
+
133
+ sig do
134
+ returns(
135
+ T.nilable(Revox::CallExportParams::Filters::SortDirection::OrSymbol)
136
+ )
137
+ end
138
+ attr_reader :sort_direction
139
+
140
+ sig do
141
+ params(
142
+ sort_direction:
143
+ Revox::CallExportParams::Filters::SortDirection::OrSymbol
144
+ ).void
145
+ end
146
+ attr_writer :sort_direction
147
+
148
+ sig { returns(T.nilable(String)) }
149
+ attr_reader :to_phone_number
150
+
151
+ sig { params(to_phone_number: String).void }
152
+ attr_writer :to_phone_number
153
+
154
+ sig do
155
+ params(
156
+ assignee_ids: T::Array[String],
157
+ assistant_ids: T::Array[String],
158
+ campaign_ids: T::Array[String],
159
+ directions:
160
+ T::Array[Revox::CallExportParams::Filters::Direction::OrSymbol],
161
+ from_phone_numbers: T::Array[String],
162
+ outcomes:
163
+ T::Array[Revox::CallExportParams::Filters::Outcome::OrSymbol],
164
+ page: Integer,
165
+ page_size: Integer,
166
+ results:
167
+ T::Array[Revox::CallExportParams::Filters::Result::OrSymbol],
168
+ statuses:
169
+ T::Array[Revox::CallExportParams::Filters::Status::OrSymbol],
170
+ call_ids: T::Array[String],
171
+ query: String,
172
+ sort_by: String,
173
+ sort_direction:
174
+ Revox::CallExportParams::Filters::SortDirection::OrSymbol,
175
+ to_phone_number: String
176
+ ).returns(T.attached_class)
177
+ end
178
+ def self.new(
179
+ assignee_ids:,
180
+ assistant_ids:,
181
+ campaign_ids:,
182
+ directions:,
183
+ from_phone_numbers:,
184
+ outcomes:,
185
+ page:,
186
+ page_size:,
187
+ results:,
188
+ statuses:,
189
+ call_ids: nil,
190
+ query: nil,
191
+ sort_by: nil,
192
+ sort_direction: nil,
193
+ to_phone_number: nil
194
+ )
195
+ end
196
+
197
+ sig do
198
+ override.returns(
199
+ {
200
+ assignee_ids: T::Array[String],
201
+ assistant_ids: T::Array[String],
202
+ campaign_ids: T::Array[String],
203
+ directions:
204
+ T::Array[Revox::CallExportParams::Filters::Direction::OrSymbol],
205
+ from_phone_numbers: T::Array[String],
206
+ outcomes:
207
+ T::Array[Revox::CallExportParams::Filters::Outcome::OrSymbol],
208
+ page: Integer,
209
+ page_size: Integer,
210
+ results:
211
+ T::Array[Revox::CallExportParams::Filters::Result::OrSymbol],
212
+ statuses:
213
+ T::Array[Revox::CallExportParams::Filters::Status::OrSymbol],
214
+ call_ids: T::Array[String],
215
+ query: String,
216
+ sort_by: String,
217
+ sort_direction:
218
+ Revox::CallExportParams::Filters::SortDirection::OrSymbol,
219
+ to_phone_number: String
220
+ }
221
+ )
222
+ end
223
+ def to_hash
224
+ end
225
+
226
+ module Direction
227
+ extend Revox::Internal::Type::Enum
228
+
229
+ TaggedSymbol =
230
+ T.type_alias do
231
+ T.all(Symbol, Revox::CallExportParams::Filters::Direction)
232
+ end
233
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
234
+
235
+ INBOUND =
236
+ T.let(
237
+ :inbound,
238
+ Revox::CallExportParams::Filters::Direction::TaggedSymbol
239
+ )
240
+ OUTBOUND =
241
+ T.let(
242
+ :outbound,
243
+ Revox::CallExportParams::Filters::Direction::TaggedSymbol
244
+ )
245
+
246
+ sig do
247
+ override.returns(
248
+ T::Array[
249
+ Revox::CallExportParams::Filters::Direction::TaggedSymbol
250
+ ]
251
+ )
252
+ end
253
+ def self.values
254
+ end
255
+ end
256
+
257
+ module Outcome
258
+ extend Revox::Internal::Type::Enum
259
+
260
+ TaggedSymbol =
261
+ T.type_alias do
262
+ T.all(Symbol, Revox::CallExportParams::Filters::Outcome)
263
+ end
264
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
265
+
266
+ NOT_INTERESTED =
267
+ T.let(
268
+ :not_interested,
269
+ Revox::CallExportParams::Filters::Outcome::TaggedSymbol
270
+ )
271
+ INTERESTED =
272
+ T.let(
273
+ :interested,
274
+ Revox::CallExportParams::Filters::Outcome::TaggedSymbol
275
+ )
276
+ COMPLETED =
277
+ T.let(
278
+ :completed,
279
+ Revox::CallExportParams::Filters::Outcome::TaggedSymbol
280
+ )
281
+ REQUESTED_CALLBACK_LATER =
282
+ T.let(
283
+ :requested_callback_later,
284
+ Revox::CallExportParams::Filters::Outcome::TaggedSymbol
285
+ )
286
+ REQUESTED_CALLBACK_NEW_NUMBER =
287
+ T.let(
288
+ :requested_callback_new_number,
289
+ Revox::CallExportParams::Filters::Outcome::TaggedSymbol
290
+ )
291
+ DO_NOT_CONTACT =
292
+ T.let(
293
+ :do_not_contact,
294
+ Revox::CallExportParams::Filters::Outcome::TaggedSymbol
295
+ )
296
+ AI_AVERSE =
297
+ T.let(
298
+ :ai_averse,
299
+ Revox::CallExportParams::Filters::Outcome::TaggedSymbol
300
+ )
301
+ NONE =
302
+ T.let(
303
+ :none,
304
+ Revox::CallExportParams::Filters::Outcome::TaggedSymbol
305
+ )
306
+
307
+ sig do
308
+ override.returns(
309
+ T::Array[Revox::CallExportParams::Filters::Outcome::TaggedSymbol]
310
+ )
311
+ end
312
+ def self.values
313
+ end
314
+ end
315
+
316
+ module Result
317
+ extend Revox::Internal::Type::Enum
318
+
319
+ TaggedSymbol =
320
+ T.type_alias do
321
+ T.all(Symbol, Revox::CallExportParams::Filters::Result)
322
+ end
323
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
324
+
325
+ IVR =
326
+ T.let(:IVR, Revox::CallExportParams::Filters::Result::TaggedSymbol)
327
+ VOICEMAIL =
328
+ T.let(
329
+ :voicemail,
330
+ Revox::CallExportParams::Filters::Result::TaggedSymbol
331
+ )
332
+ HUMAN =
333
+ T.let(
334
+ :human,
335
+ Revox::CallExportParams::Filters::Result::TaggedSymbol
336
+ )
337
+ UNKNOWN =
338
+ T.let(
339
+ :unknown,
340
+ Revox::CallExportParams::Filters::Result::TaggedSymbol
341
+ )
342
+ IOS_SCREENING_FILTER =
343
+ T.let(
344
+ :"ios-screening-filter",
345
+ Revox::CallExportParams::Filters::Result::TaggedSymbol
346
+ )
347
+ NONE =
348
+ T.let(:none, Revox::CallExportParams::Filters::Result::TaggedSymbol)
349
+
350
+ sig do
351
+ override.returns(
352
+ T::Array[Revox::CallExportParams::Filters::Result::TaggedSymbol]
353
+ )
354
+ end
355
+ def self.values
356
+ end
357
+ end
358
+
359
+ module Status
360
+ extend Revox::Internal::Type::Enum
361
+
362
+ TaggedSymbol =
363
+ T.type_alias do
364
+ T.all(Symbol, Revox::CallExportParams::Filters::Status)
365
+ end
366
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
367
+
368
+ INITIALIZING =
369
+ T.let(
370
+ :initializing,
371
+ Revox::CallExportParams::Filters::Status::TaggedSymbol
372
+ )
373
+ QUEUED_FOR_CALLING =
374
+ T.let(
375
+ :queued_for_calling,
376
+ Revox::CallExportParams::Filters::Status::TaggedSymbol
377
+ )
378
+ CALLING =
379
+ T.let(
380
+ :calling,
381
+ Revox::CallExportParams::Filters::Status::TaggedSymbol
382
+ )
383
+ POST_PROCESSING =
384
+ T.let(
385
+ :post_processing,
386
+ Revox::CallExportParams::Filters::Status::TaggedSymbol
387
+ )
388
+ SCHEDULED =
389
+ T.let(
390
+ :scheduled,
391
+ Revox::CallExportParams::Filters::Status::TaggedSymbol
392
+ )
393
+ PAUSED =
394
+ T.let(
395
+ :paused,
396
+ Revox::CallExportParams::Filters::Status::TaggedSymbol
397
+ )
398
+ COMPLETED =
399
+ T.let(
400
+ :completed,
401
+ Revox::CallExportParams::Filters::Status::TaggedSymbol
402
+ )
403
+ CANCELLED =
404
+ T.let(
405
+ :cancelled,
406
+ Revox::CallExportParams::Filters::Status::TaggedSymbol
407
+ )
408
+ ERRORED =
409
+ T.let(
410
+ :errored,
411
+ Revox::CallExportParams::Filters::Status::TaggedSymbol
412
+ )
413
+
414
+ sig do
415
+ override.returns(
416
+ T::Array[Revox::CallExportParams::Filters::Status::TaggedSymbol]
417
+ )
418
+ end
419
+ def self.values
420
+ end
421
+ end
422
+
423
+ module SortDirection
424
+ extend Revox::Internal::Type::Enum
425
+
426
+ TaggedSymbol =
427
+ T.type_alias do
428
+ T.all(Symbol, Revox::CallExportParams::Filters::SortDirection)
429
+ end
430
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
431
+
432
+ ASC =
433
+ T.let(
434
+ :asc,
435
+ Revox::CallExportParams::Filters::SortDirection::TaggedSymbol
436
+ )
437
+ DESC =
438
+ T.let(
439
+ :desc,
440
+ Revox::CallExportParams::Filters::SortDirection::TaggedSymbol
441
+ )
442
+
443
+ sig do
444
+ override.returns(
445
+ T::Array[
446
+ Revox::CallExportParams::Filters::SortDirection::TaggedSymbol
447
+ ]
448
+ )
449
+ end
450
+ def self.values
451
+ end
452
+ end
453
+ end
454
+ end
455
+ end
456
+ end
@@ -0,0 +1,26 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class CallExportResponse < Revox::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Revox::Models::CallExportResponse, Revox::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(String) }
12
+ attr_accessor :csv
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :filename
16
+
17
+ sig { params(csv: String, filename: String).returns(T.attached_class) }
18
+ def self.new(csv:, filename:)
19
+ end
20
+
21
+ sig { override.returns({ csv: String, filename: String }) }
22
+ def to_hash
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,31 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class CallPauseParams < Revox::Internal::Type::BaseModel
6
+ extend Revox::Internal::Type::RequestParameters::Converter
7
+ include Revox::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias { T.any(Revox::CallPauseParams, Revox::Internal::AnyHash) }
11
+
12
+ sig { returns(String) }
13
+ attr_accessor :id
14
+
15
+ sig do
16
+ params(
17
+ id: String,
18
+ request_options: Revox::RequestOptions::OrHash
19
+ ).returns(T.attached_class)
20
+ end
21
+ def self.new(id:, request_options: {})
22
+ end
23
+
24
+ sig do
25
+ override.returns({ id: String, request_options: Revox::RequestOptions })
26
+ end
27
+ def to_hash
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,23 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class CallPauseResponse < Revox::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Revox::Models::CallPauseResponse, Revox::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(T::Boolean) }
12
+ attr_accessor :success
13
+
14
+ sig { params(success: T::Boolean).returns(T.attached_class) }
15
+ def self.new(success:)
16
+ end
17
+
18
+ sig { override.returns({ success: T::Boolean }) }
19
+ def to_hash
20
+ end
21
+ end
22
+ end
23
+ end