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,431 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class CampaignUpdateParams < 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::CampaignUpdateParams, Revox::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
17
+ # The ID of the assistant to use (draft only)
18
+ sig { returns(T.nilable(String)) }
19
+ attr_reader :assistant_id
20
+
21
+ sig { params(assistant_id: String).void }
22
+ attr_writer :assistant_id
23
+
24
+ # Configuration for call retry behavior including time windows, delays, and max
25
+ # iterations. If not provided, defaults will be used.
26
+ sig { returns(T.nilable(Revox::CampaignUpdateParams::CallRetryConfig)) }
27
+ attr_reader :call_retry_config
28
+
29
+ sig do
30
+ params(
31
+ call_retry_config:
32
+ T.nilable(Revox::CampaignUpdateParams::CallRetryConfig::OrHash)
33
+ ).void
34
+ end
35
+ attr_writer :call_retry_config
36
+
37
+ # Replace contact list (draft only)
38
+ sig { returns(T.nilable(T::Array[Revox::CampaignUpdateParams::Contact])) }
39
+ attr_reader :contacts
40
+
41
+ sig do
42
+ params(
43
+ contacts: T::Array[Revox::CampaignUpdateParams::Contact::OrHash]
44
+ ).void
45
+ end
46
+ attr_writer :contacts
47
+
48
+ # The phone number to use for outbound calls (draft only)
49
+ sig { returns(T.nilable(String)) }
50
+ attr_accessor :from_phone_number
51
+
52
+ # Maximum concurrent calls (draft only)
53
+ sig { returns(T.nilable(Float)) }
54
+ attr_accessor :max_concurrent_calls
55
+
56
+ # Campaign display name
57
+ sig { returns(T.nilable(String)) }
58
+ attr_reader :name
59
+
60
+ sig { params(name: String).void }
61
+ attr_writer :name
62
+
63
+ # Scheduled start time (draft only)
64
+ sig do
65
+ returns(T.nilable(Revox::CampaignUpdateParams::ScheduledAt::Variants))
66
+ end
67
+ attr_accessor :scheduled_at
68
+
69
+ # Campaign type (draft only)
70
+ sig { returns(T.nilable(Revox::CampaignUpdateParams::Type::OrSymbol)) }
71
+ attr_reader :type
72
+
73
+ sig { params(type: Revox::CampaignUpdateParams::Type::OrSymbol).void }
74
+ attr_writer :type
75
+
76
+ sig do
77
+ params(
78
+ id: String,
79
+ assistant_id: String,
80
+ call_retry_config:
81
+ T.nilable(Revox::CampaignUpdateParams::CallRetryConfig::OrHash),
82
+ contacts: T::Array[Revox::CampaignUpdateParams::Contact::OrHash],
83
+ from_phone_number: T.nilable(String),
84
+ max_concurrent_calls: T.nilable(Float),
85
+ name: String,
86
+ scheduled_at:
87
+ T.nilable(Revox::CampaignUpdateParams::ScheduledAt::Variants),
88
+ type: Revox::CampaignUpdateParams::Type::OrSymbol,
89
+ request_options: Revox::RequestOptions::OrHash
90
+ ).returns(T.attached_class)
91
+ end
92
+ def self.new(
93
+ id:,
94
+ # The ID of the assistant to use (draft only)
95
+ assistant_id: nil,
96
+ # Configuration for call retry behavior including time windows, delays, and max
97
+ # iterations. If not provided, defaults will be used.
98
+ call_retry_config: nil,
99
+ # Replace contact list (draft only)
100
+ contacts: nil,
101
+ # The phone number to use for outbound calls (draft only)
102
+ from_phone_number: nil,
103
+ # Maximum concurrent calls (draft only)
104
+ max_concurrent_calls: nil,
105
+ # Campaign display name
106
+ name: nil,
107
+ # Scheduled start time (draft only)
108
+ scheduled_at: nil,
109
+ # Campaign type (draft only)
110
+ type: nil,
111
+ request_options: {}
112
+ )
113
+ end
114
+
115
+ sig do
116
+ override.returns(
117
+ {
118
+ id: String,
119
+ assistant_id: String,
120
+ call_retry_config:
121
+ T.nilable(Revox::CampaignUpdateParams::CallRetryConfig),
122
+ contacts: T::Array[Revox::CampaignUpdateParams::Contact],
123
+ from_phone_number: T.nilable(String),
124
+ max_concurrent_calls: T.nilable(Float),
125
+ name: String,
126
+ scheduled_at:
127
+ T.nilable(Revox::CampaignUpdateParams::ScheduledAt::Variants),
128
+ type: Revox::CampaignUpdateParams::Type::OrSymbol,
129
+ request_options: Revox::RequestOptions
130
+ }
131
+ )
132
+ end
133
+ def to_hash
134
+ end
135
+
136
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
137
+ OrHash =
138
+ T.type_alias do
139
+ T.any(
140
+ Revox::CampaignUpdateParams::CallRetryConfig,
141
+ Revox::Internal::AnyHash
142
+ )
143
+ end
144
+
145
+ # Days of the week when calls are allowed, in the recipient's timezone. Default:
146
+ # Monday through Friday.
147
+ sig do
148
+ returns(
149
+ T::Array[
150
+ Revox::CampaignUpdateParams::CallRetryConfig::AllowedDay::OrSymbol
151
+ ]
152
+ )
153
+ end
154
+ attr_accessor :allowed_days
155
+
156
+ # If true and max_retry_attempts >= 2, attempt #2 fires immediately (skipping
157
+ # retry_delay_seconds) when attempt #1 didn't reach a human.
158
+ # Calling-window/allowed-days checks still apply. Only affects the 1→2 transition.
159
+ # Default: false.
160
+ sig { returns(T::Boolean) }
161
+ attr_accessor :call_twice_in_a_row
162
+
163
+ sig do
164
+ returns(
165
+ T::Array[
166
+ Revox::CampaignUpdateParams::CallRetryConfig::CallingWindow
167
+ ]
168
+ )
169
+ end
170
+ attr_accessor :calling_windows
171
+
172
+ # Maximum number of call retry attempts. Default: 3.
173
+ sig { returns(Integer) }
174
+ attr_accessor :max_retry_attempts
175
+
176
+ # Optional IANA timezone identifier to override the automatic timezone detection
177
+ # from phone number. If not provided, timezone is determined from the recipient's
178
+ # phone number country code. Examples: 'America/New_York', 'Europe/Paris'.
179
+ sig { returns(T.nilable(String)) }
180
+ attr_accessor :timezone
181
+
182
+ # Configuration for call retry behavior including time windows, delays, and max
183
+ # iterations. If not provided, defaults will be used.
184
+ sig do
185
+ params(
186
+ allowed_days:
187
+ T::Array[
188
+ Revox::CampaignUpdateParams::CallRetryConfig::AllowedDay::OrSymbol
189
+ ],
190
+ call_twice_in_a_row: T::Boolean,
191
+ calling_windows:
192
+ T::Array[
193
+ Revox::CampaignUpdateParams::CallRetryConfig::CallingWindow::OrHash
194
+ ],
195
+ max_retry_attempts: Integer,
196
+ timezone: T.nilable(String)
197
+ ).returns(T.attached_class)
198
+ end
199
+ def self.new(
200
+ # Days of the week when calls are allowed, in the recipient's timezone. Default:
201
+ # Monday through Friday.
202
+ allowed_days:,
203
+ # If true and max_retry_attempts >= 2, attempt #2 fires immediately (skipping
204
+ # retry_delay_seconds) when attempt #1 didn't reach a human.
205
+ # Calling-window/allowed-days checks still apply. Only affects the 1→2 transition.
206
+ # Default: false.
207
+ call_twice_in_a_row:,
208
+ calling_windows:,
209
+ # Maximum number of call retry attempts. Default: 3.
210
+ max_retry_attempts:,
211
+ # Optional IANA timezone identifier to override the automatic timezone detection
212
+ # from phone number. If not provided, timezone is determined from the recipient's
213
+ # phone number country code. Examples: 'America/New_York', 'Europe/Paris'.
214
+ timezone: nil
215
+ )
216
+ end
217
+
218
+ sig do
219
+ override.returns(
220
+ {
221
+ allowed_days:
222
+ T::Array[
223
+ Revox::CampaignUpdateParams::CallRetryConfig::AllowedDay::OrSymbol
224
+ ],
225
+ call_twice_in_a_row: T::Boolean,
226
+ calling_windows:
227
+ T::Array[
228
+ Revox::CampaignUpdateParams::CallRetryConfig::CallingWindow
229
+ ],
230
+ max_retry_attempts: Integer,
231
+ timezone: T.nilable(String)
232
+ }
233
+ )
234
+ end
235
+ def to_hash
236
+ end
237
+
238
+ module AllowedDay
239
+ extend Revox::Internal::Type::Enum
240
+
241
+ TaggedSymbol =
242
+ T.type_alias do
243
+ T.all(
244
+ Symbol,
245
+ Revox::CampaignUpdateParams::CallRetryConfig::AllowedDay
246
+ )
247
+ end
248
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
249
+
250
+ MONDAY =
251
+ T.let(
252
+ :monday,
253
+ Revox::CampaignUpdateParams::CallRetryConfig::AllowedDay::TaggedSymbol
254
+ )
255
+ TUESDAY =
256
+ T.let(
257
+ :tuesday,
258
+ Revox::CampaignUpdateParams::CallRetryConfig::AllowedDay::TaggedSymbol
259
+ )
260
+ WEDNESDAY =
261
+ T.let(
262
+ :wednesday,
263
+ Revox::CampaignUpdateParams::CallRetryConfig::AllowedDay::TaggedSymbol
264
+ )
265
+ THURSDAY =
266
+ T.let(
267
+ :thursday,
268
+ Revox::CampaignUpdateParams::CallRetryConfig::AllowedDay::TaggedSymbol
269
+ )
270
+ FRIDAY =
271
+ T.let(
272
+ :friday,
273
+ Revox::CampaignUpdateParams::CallRetryConfig::AllowedDay::TaggedSymbol
274
+ )
275
+ SATURDAY =
276
+ T.let(
277
+ :saturday,
278
+ Revox::CampaignUpdateParams::CallRetryConfig::AllowedDay::TaggedSymbol
279
+ )
280
+ SUNDAY =
281
+ T.let(
282
+ :sunday,
283
+ Revox::CampaignUpdateParams::CallRetryConfig::AllowedDay::TaggedSymbol
284
+ )
285
+
286
+ sig do
287
+ override.returns(
288
+ T::Array[
289
+ Revox::CampaignUpdateParams::CallRetryConfig::AllowedDay::TaggedSymbol
290
+ ]
291
+ )
292
+ end
293
+ def self.values
294
+ end
295
+ end
296
+
297
+ class CallingWindow < Revox::Internal::Type::BaseModel
298
+ OrHash =
299
+ T.type_alias do
300
+ T.any(
301
+ Revox::CampaignUpdateParams::CallRetryConfig::CallingWindow,
302
+ Revox::Internal::AnyHash
303
+ )
304
+ end
305
+
306
+ # End time for the calling window in the recipient's timezone (or
307
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
308
+ # Examples: '17:00', '6pm'. Default: '18:00'.
309
+ sig { returns(String) }
310
+ attr_accessor :calling_window_end_time
311
+
312
+ # Start time for the calling window in the recipient's timezone (or
313
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
314
+ # Examples: '09:00', '10am'. Default: '10:00'.
315
+ sig { returns(String) }
316
+ attr_accessor :calling_window_start_time
317
+
318
+ # Delay between retry attempts in seconds. Default: 7200 (2 hours).
319
+ sig { returns(Integer) }
320
+ attr_accessor :retry_delay_seconds
321
+
322
+ sig do
323
+ params(
324
+ calling_window_end_time: String,
325
+ calling_window_start_time: String,
326
+ retry_delay_seconds: Integer
327
+ ).returns(T.attached_class)
328
+ end
329
+ def self.new(
330
+ # End time for the calling window in the recipient's timezone (or
331
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
332
+ # Examples: '17:00', '6pm'. Default: '18:00'.
333
+ calling_window_end_time:,
334
+ # Start time for the calling window in the recipient's timezone (or
335
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
336
+ # Examples: '09:00', '10am'. Default: '10:00'.
337
+ calling_window_start_time:,
338
+ # Delay between retry attempts in seconds. Default: 7200 (2 hours).
339
+ retry_delay_seconds:
340
+ )
341
+ end
342
+
343
+ sig do
344
+ override.returns(
345
+ {
346
+ calling_window_end_time: String,
347
+ calling_window_start_time: String,
348
+ retry_delay_seconds: Integer
349
+ }
350
+ )
351
+ end
352
+ def to_hash
353
+ end
354
+ end
355
+ end
356
+
357
+ class Contact < Revox::Internal::Type::BaseModel
358
+ OrHash =
359
+ T.type_alias do
360
+ T.any(
361
+ Revox::CampaignUpdateParams::Contact,
362
+ Revox::Internal::AnyHash
363
+ )
364
+ end
365
+
366
+ sig { returns(T::Hash[Symbol, String]) }
367
+ attr_accessor :prompt_variables
368
+
369
+ sig { returns(String) }
370
+ attr_accessor :to_phone_number
371
+
372
+ sig do
373
+ params(
374
+ prompt_variables: T::Hash[Symbol, String],
375
+ to_phone_number: String
376
+ ).returns(T.attached_class)
377
+ end
378
+ def self.new(prompt_variables:, to_phone_number:)
379
+ end
380
+
381
+ sig do
382
+ override.returns(
383
+ {
384
+ prompt_variables: T::Hash[Symbol, String],
385
+ to_phone_number: String
386
+ }
387
+ )
388
+ end
389
+ def to_hash
390
+ end
391
+ end
392
+
393
+ # Scheduled start time (draft only)
394
+ module ScheduledAt
395
+ extend Revox::Internal::Type::Union
396
+
397
+ Variants = T.type_alias { T.any(Time, T.anything) }
398
+
399
+ sig do
400
+ override.returns(
401
+ T::Array[Revox::CampaignUpdateParams::ScheduledAt::Variants]
402
+ )
403
+ end
404
+ def self.variants
405
+ end
406
+ end
407
+
408
+ # Campaign type (draft only)
409
+ module Type
410
+ extend Revox::Internal::Type::Enum
411
+
412
+ TaggedSymbol =
413
+ T.type_alias { T.all(Symbol, Revox::CampaignUpdateParams::Type) }
414
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
415
+
416
+ REGULAR =
417
+ T.let(:regular, Revox::CampaignUpdateParams::Type::TaggedSymbol)
418
+ JUMP_IN =
419
+ T.let(:jump_in, Revox::CampaignUpdateParams::Type::TaggedSymbol)
420
+
421
+ sig do
422
+ override.returns(
423
+ T::Array[Revox::CampaignUpdateParams::Type::TaggedSymbol]
424
+ )
425
+ end
426
+ def self.values
427
+ end
428
+ end
429
+ end
430
+ end
431
+ end