surge_api 0.24.0 → 0.25.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 (109) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/README.md +9 -9
  4. data/lib/surge_api/client.rb +4 -0
  5. data/lib/surge_api/internal/type/union.rb +2 -2
  6. data/lib/surge_api/models/call_ended_webhook_event.rb +8 -3
  7. data/lib/surge_api/models/campaign.rb +15 -7
  8. data/lib/surge_api/models/campaign_approved_webhook_event.rb +9 -1
  9. data/lib/surge_api/models/campaign_params.rb +6 -6
  10. data/lib/surge_api/models/campaign_rejected_webhook_event.rb +135 -0
  11. data/lib/surge_api/models/campaign_submitted_webhook_event.rb +74 -0
  12. data/lib/surge_api/models/campaign_update_params.rb +188 -1
  13. data/lib/surge_api/models/campaign_warning_webhook_event.rb +134 -0
  14. data/lib/surge_api/models/message.rb +18 -2
  15. data/lib/surge_api/models/message_delivered_webhook_event.rb +9 -1
  16. data/lib/surge_api/models/message_failed_webhook_event.rb +5 -4
  17. data/lib/surge_api/models/message_received_webhook_event.rb +9 -1
  18. data/lib/surge_api/models/message_sent_webhook_event.rb +9 -1
  19. data/lib/surge_api/models/phone_number.rb +9 -1
  20. data/lib/surge_api/models/phone_number_attached_to_campaign_webhook_event.rb +9 -1
  21. data/lib/surge_api/models/phone_number_imported_webhook_event.rb +9 -1
  22. data/lib/surge_api/models/phone_number_purchase_params.rb +9 -1
  23. data/lib/surge_api/models/phone_number_update_params.rb +9 -1
  24. data/lib/surge_api/models/toll_free_campaign.rb +132 -0
  25. data/lib/surge_api/models/toll_free_campaign_consent_flow.rb +176 -0
  26. data/lib/surge_api/models/toll_free_campaign_create_params.rb +22 -0
  27. data/lib/surge_api/models/toll_free_campaign_list_params.rb +42 -0
  28. data/lib/surge_api/models/toll_free_campaign_params.rb +286 -0
  29. data/lib/surge_api/models/toll_free_campaign_retrieve_params.rb +22 -0
  30. data/lib/surge_api/models/toll_free_campaign_update_params.rb +278 -0
  31. data/lib/surge_api/models/unwrap_webhook_event.rb +7 -1
  32. data/lib/surge_api/models/user_create_token_params.rb +15 -1
  33. data/lib/surge_api/models.rb +20 -0
  34. data/lib/surge_api/resources/accounts.rb +2 -2
  35. data/lib/surge_api/resources/campaigns.rb +26 -8
  36. data/lib/surge_api/resources/phone_numbers.rb +6 -2
  37. data/lib/surge_api/resources/toll_free_campaigns.rb +140 -0
  38. data/lib/surge_api/resources/users.rb +6 -1
  39. data/lib/surge_api/resources/webhooks.rb +1 -1
  40. data/lib/surge_api/version.rb +1 -1
  41. data/lib/surge_api.rb +11 -0
  42. data/rbi/surge_api/client.rbi +3 -0
  43. data/rbi/surge_api/models/call_ended_webhook_event.rbi +6 -3
  44. data/rbi/surge_api/models/campaign.rbi +17 -9
  45. data/rbi/surge_api/models/campaign_approved_webhook_event.rbi +8 -0
  46. data/rbi/surge_api/models/campaign_params.rbi +9 -9
  47. data/rbi/surge_api/models/campaign_rejected_webhook_event.rbi +269 -0
  48. data/rbi/surge_api/models/campaign_submitted_webhook_event.rbi +149 -0
  49. data/rbi/surge_api/models/campaign_update_params.rbi +378 -1
  50. data/rbi/surge_api/models/campaign_warning_webhook_event.rbi +259 -0
  51. data/rbi/surge_api/models/message.rbi +16 -0
  52. data/rbi/surge_api/models/message_delivered_webhook_event.rbi +8 -0
  53. data/rbi/surge_api/models/message_failed_webhook_event.rbi +7 -5
  54. data/rbi/surge_api/models/message_received_webhook_event.rbi +8 -0
  55. data/rbi/surge_api/models/message_sent_webhook_event.rbi +8 -0
  56. data/rbi/surge_api/models/phone_number.rbi +8 -0
  57. data/rbi/surge_api/models/phone_number_attached_to_campaign_webhook_event.rbi +8 -0
  58. data/rbi/surge_api/models/phone_number_imported_webhook_event.rbi +8 -0
  59. data/rbi/surge_api/models/phone_number_purchase_params.rbi +11 -0
  60. data/rbi/surge_api/models/phone_number_update_params.rbi +11 -0
  61. data/rbi/surge_api/models/toll_free_campaign.rbi +230 -0
  62. data/rbi/surge_api/models/toll_free_campaign_consent_flow.rbi +476 -0
  63. data/rbi/surge_api/models/toll_free_campaign_create_params.rbi +43 -0
  64. data/rbi/surge_api/models/toll_free_campaign_list_params.rbi +70 -0
  65. data/rbi/surge_api/models/toll_free_campaign_params.rbi +711 -0
  66. data/rbi/surge_api/models/toll_free_campaign_retrieve_params.rbi +43 -0
  67. data/rbi/surge_api/models/toll_free_campaign_update_params.rbi +760 -0
  68. data/rbi/surge_api/models/unwrap_webhook_event.rbi +3 -0
  69. data/rbi/surge_api/models/user_create_token_params.rbi +17 -0
  70. data/rbi/surge_api/models.rbi +22 -0
  71. data/rbi/surge_api/resources/accounts.rbi +2 -2
  72. data/rbi/surge_api/resources/campaigns.rbi +94 -12
  73. data/rbi/surge_api/resources/phone_numbers.rbi +6 -0
  74. data/rbi/surge_api/resources/toll_free_campaigns.rbi +129 -0
  75. data/rbi/surge_api/resources/users.rbi +6 -0
  76. data/rbi/surge_api/resources/webhooks.rbi +3 -0
  77. data/sig/surge_api/client.rbs +2 -0
  78. data/sig/surge_api/models/campaign.rbs +5 -0
  79. data/sig/surge_api/models/campaign_approved_webhook_event.rbs +5 -0
  80. data/sig/surge_api/models/campaign_rejected_webhook_event.rbs +115 -0
  81. data/sig/surge_api/models/campaign_submitted_webhook_event.rbs +67 -0
  82. data/sig/surge_api/models/campaign_update_params.rbs +128 -2
  83. data/sig/surge_api/models/campaign_warning_webhook_event.rbs +114 -0
  84. data/sig/surge_api/models/message.rbs +10 -0
  85. data/sig/surge_api/models/message_delivered_webhook_event.rbs +5 -0
  86. data/sig/surge_api/models/message_failed_webhook_event.rbs +4 -4
  87. data/sig/surge_api/models/message_received_webhook_event.rbs +5 -0
  88. data/sig/surge_api/models/message_sent_webhook_event.rbs +5 -0
  89. data/sig/surge_api/models/phone_number.rbs +5 -0
  90. data/sig/surge_api/models/phone_number_attached_to_campaign_webhook_event.rbs +5 -0
  91. data/sig/surge_api/models/phone_number_imported_webhook_event.rbs +5 -0
  92. data/sig/surge_api/models/phone_number_purchase_params.rbs +7 -0
  93. data/sig/surge_api/models/phone_number_update_params.rbs +12 -1
  94. data/sig/surge_api/models/toll_free_campaign.rbs +126 -0
  95. data/sig/surge_api/models/toll_free_campaign_consent_flow.rbs +207 -0
  96. data/sig/surge_api/models/toll_free_campaign_create_params.rbs +25 -0
  97. data/sig/surge_api/models/toll_free_campaign_list_params.rbs +36 -0
  98. data/sig/surge_api/models/toll_free_campaign_params.rbs +321 -0
  99. data/sig/surge_api/models/toll_free_campaign_retrieve_params.rbs +23 -0
  100. data/sig/surge_api/models/toll_free_campaign_update_params.rbs +332 -0
  101. data/sig/surge_api/models/unwrap_webhook_event.rbs +3 -0
  102. data/sig/surge_api/models/user_create_token_params.rbs +7 -1
  103. data/sig/surge_api/models.rbs +20 -0
  104. data/sig/surge_api/resources/campaigns.rbs +9 -1
  105. data/sig/surge_api/resources/phone_numbers.rbs +2 -0
  106. data/sig/surge_api/resources/toll_free_campaigns.rbs +44 -0
  107. data/sig/surge_api/resources/users.rbs +1 -0
  108. data/sig/surge_api/resources/webhooks.rbs +3 -0
  109. metadata +50 -7
@@ -0,0 +1,760 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class TollFreeCampaignUpdateParams < SurgeAPI::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ SurgeAPI::TollFreeCampaignUpdateParams,
10
+ SurgeAPI::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig do
15
+ returns(
16
+ T.nilable(
17
+ T::Array[
18
+ T.any(
19
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0,
20
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1,
21
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2,
22
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3
23
+ )
24
+ ]
25
+ )
26
+ )
27
+ end
28
+ attr_reader :consent_flows
29
+
30
+ sig do
31
+ params(
32
+ consent_flows:
33
+ T::Array[
34
+ T.any(
35
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0::OrHash,
36
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::OrHash,
37
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2::OrHash,
38
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3::OrHash
39
+ )
40
+ ]
41
+ ).void
42
+ end
43
+ attr_writer :consent_flows
44
+
45
+ # An explanation of how the toll-free number will be used.
46
+ sig { returns(T.nilable(String)) }
47
+ attr_reader :description
48
+
49
+ sig { params(description: String).void }
50
+ attr_writer :description
51
+
52
+ sig do
53
+ returns(
54
+ T.nilable(
55
+ T::Array[SurgeAPI::TollFreeCampaignUpdateParams::Include::OrSymbol]
56
+ )
57
+ )
58
+ end
59
+ attr_reader :includes
60
+
61
+ sig do
62
+ params(
63
+ includes:
64
+ T::Array[SurgeAPI::TollFreeCampaignUpdateParams::Include::OrSymbol]
65
+ ).void
66
+ end
67
+ attr_writer :includes
68
+
69
+ sig { returns(T.nilable(T::Array[String])) }
70
+ attr_reader :message_samples
71
+
72
+ sig { params(message_samples: T::Array[String]).void }
73
+ attr_writer :message_samples
74
+
75
+ sig { returns(T.nilable(String)) }
76
+ attr_reader :privacy_policy_url
77
+
78
+ sig { params(privacy_policy_url: String).void }
79
+ attr_writer :privacy_policy_url
80
+
81
+ sig { returns(T.nilable(String)) }
82
+ attr_reader :terms_and_conditions_url
83
+
84
+ sig { params(terms_and_conditions_url: String).void }
85
+ attr_writer :terms_and_conditions_url
86
+
87
+ sig do
88
+ returns(
89
+ T.nilable(
90
+ T::Array[SurgeAPI::TollFreeCampaignUpdateParams::UseCase::OrSymbol]
91
+ )
92
+ )
93
+ end
94
+ attr_reader :use_cases
95
+
96
+ sig do
97
+ params(
98
+ use_cases:
99
+ T::Array[SurgeAPI::TollFreeCampaignUpdateParams::UseCase::OrSymbol]
100
+ ).void
101
+ end
102
+ attr_writer :use_cases
103
+
104
+ # Parameters for updating a toll-free campaign.
105
+ sig do
106
+ params(
107
+ consent_flows:
108
+ T::Array[
109
+ T.any(
110
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0::OrHash,
111
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::OrHash,
112
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2::OrHash,
113
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3::OrHash
114
+ )
115
+ ],
116
+ description: String,
117
+ includes:
118
+ T::Array[SurgeAPI::TollFreeCampaignUpdateParams::Include::OrSymbol],
119
+ message_samples: T::Array[String],
120
+ privacy_policy_url: String,
121
+ terms_and_conditions_url: String,
122
+ use_cases:
123
+ T::Array[SurgeAPI::TollFreeCampaignUpdateParams::UseCase::OrSymbol]
124
+ ).returns(T.attached_class)
125
+ end
126
+ def self.new(
127
+ consent_flows: nil,
128
+ # An explanation of how the toll-free number will be used.
129
+ description: nil,
130
+ includes: nil,
131
+ message_samples: nil,
132
+ privacy_policy_url: nil,
133
+ terms_and_conditions_url: nil,
134
+ use_cases: nil
135
+ )
136
+ end
137
+
138
+ sig do
139
+ override.returns(
140
+ {
141
+ consent_flows:
142
+ T::Array[
143
+ T.any(
144
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0,
145
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1,
146
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2,
147
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3
148
+ )
149
+ ],
150
+ description: String,
151
+ includes:
152
+ T::Array[
153
+ SurgeAPI::TollFreeCampaignUpdateParams::Include::OrSymbol
154
+ ],
155
+ message_samples: T::Array[String],
156
+ privacy_policy_url: String,
157
+ terms_and_conditions_url: String,
158
+ use_cases:
159
+ T::Array[
160
+ SurgeAPI::TollFreeCampaignUpdateParams::UseCase::OrSymbol
161
+ ]
162
+ }
163
+ )
164
+ end
165
+ def to_hash
166
+ end
167
+
168
+ module ConsentFlow
169
+ extend SurgeAPI::Internal::Type::Union
170
+
171
+ Variants =
172
+ T.type_alias do
173
+ T.any(
174
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0,
175
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1,
176
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2,
177
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3
178
+ )
179
+ end
180
+
181
+ class UnionMember0 < SurgeAPI::Internal::Type::BaseModel
182
+ OrHash =
183
+ T.type_alias do
184
+ T.any(
185
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0,
186
+ SurgeAPI::Internal::AnyHash
187
+ )
188
+ end
189
+
190
+ sig { returns(String) }
191
+ attr_accessor :script
192
+
193
+ sig do
194
+ returns(
195
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0::Type::OrSymbol
196
+ )
197
+ end
198
+ attr_accessor :type
199
+
200
+ sig do
201
+ params(
202
+ script: String,
203
+ type:
204
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0::Type::OrSymbol
205
+ ).returns(T.attached_class)
206
+ end
207
+ def self.new(script:, type:)
208
+ end
209
+
210
+ sig do
211
+ override.returns(
212
+ {
213
+ script: String,
214
+ type:
215
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0::Type::OrSymbol
216
+ }
217
+ )
218
+ end
219
+ def to_hash
220
+ end
221
+
222
+ module Type
223
+ extend SurgeAPI::Internal::Type::Enum
224
+
225
+ TaggedSymbol =
226
+ T.type_alias do
227
+ T.all(
228
+ Symbol,
229
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0::Type
230
+ )
231
+ end
232
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
233
+
234
+ VERBAL =
235
+ T.let(
236
+ :verbal,
237
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0::Type::TaggedSymbol
238
+ )
239
+
240
+ sig do
241
+ override.returns(
242
+ T::Array[
243
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0::Type::TaggedSymbol
244
+ ]
245
+ )
246
+ end
247
+ def self.values
248
+ end
249
+ end
250
+ end
251
+
252
+ class UnionMember1 < SurgeAPI::Internal::Type::BaseModel
253
+ OrHash =
254
+ T.type_alias do
255
+ T.any(
256
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1,
257
+ SurgeAPI::Internal::AnyHash
258
+ )
259
+ end
260
+
261
+ sig do
262
+ returns(
263
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Owner::OrSymbol
264
+ )
265
+ end
266
+ attr_accessor :owner
267
+
268
+ sig do
269
+ returns(
270
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Type::OrSymbol
271
+ )
272
+ end
273
+ attr_accessor :type
274
+
275
+ sig { returns(T.nilable(String)) }
276
+ attr_reader :form_url
277
+
278
+ sig { params(form_url: String).void }
279
+ attr_writer :form_url
280
+
281
+ sig do
282
+ returns(
283
+ T.nilable(
284
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot
285
+ )
286
+ )
287
+ end
288
+ attr_reader :screenshot
289
+
290
+ sig do
291
+ params(
292
+ screenshot:
293
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot::OrHash
294
+ ).void
295
+ end
296
+ attr_writer :screenshot
297
+
298
+ sig do
299
+ params(
300
+ owner:
301
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Owner::OrSymbol,
302
+ type:
303
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Type::OrSymbol,
304
+ form_url: String,
305
+ screenshot:
306
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot::OrHash
307
+ ).returns(T.attached_class)
308
+ end
309
+ def self.new(owner:, type:, form_url: nil, screenshot: nil)
310
+ end
311
+
312
+ sig do
313
+ override.returns(
314
+ {
315
+ owner:
316
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Owner::OrSymbol,
317
+ type:
318
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Type::OrSymbol,
319
+ form_url: String,
320
+ screenshot:
321
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot
322
+ }
323
+ )
324
+ end
325
+ def to_hash
326
+ end
327
+
328
+ module Owner
329
+ extend SurgeAPI::Internal::Type::Enum
330
+
331
+ TaggedSymbol =
332
+ T.type_alias do
333
+ T.all(
334
+ Symbol,
335
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Owner
336
+ )
337
+ end
338
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
339
+
340
+ BRAND =
341
+ T.let(
342
+ :brand,
343
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Owner::TaggedSymbol
344
+ )
345
+ PLATFORM =
346
+ T.let(
347
+ :platform,
348
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Owner::TaggedSymbol
349
+ )
350
+
351
+ sig do
352
+ override.returns(
353
+ T::Array[
354
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Owner::TaggedSymbol
355
+ ]
356
+ )
357
+ end
358
+ def self.values
359
+ end
360
+ end
361
+
362
+ module Type
363
+ extend SurgeAPI::Internal::Type::Enum
364
+
365
+ TaggedSymbol =
366
+ T.type_alias do
367
+ T.all(
368
+ Symbol,
369
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Type
370
+ )
371
+ end
372
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
373
+
374
+ WEB_FORM =
375
+ T.let(
376
+ :web_form,
377
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Type::TaggedSymbol
378
+ )
379
+
380
+ sig do
381
+ override.returns(
382
+ T::Array[
383
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Type::TaggedSymbol
384
+ ]
385
+ )
386
+ end
387
+ def self.values
388
+ end
389
+ end
390
+
391
+ class Screenshot < SurgeAPI::Internal::Type::BaseModel
392
+ OrHash =
393
+ T.type_alias do
394
+ T.any(
395
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot,
396
+ SurgeAPI::Internal::AnyHash
397
+ )
398
+ end
399
+
400
+ sig do
401
+ returns(
402
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot::Reason::OrSymbol
403
+ )
404
+ end
405
+ attr_accessor :reason
406
+
407
+ sig { returns(T::Array[String]) }
408
+ attr_accessor :urls
409
+
410
+ sig { returns(T.nilable(String)) }
411
+ attr_reader :reason_other
412
+
413
+ sig { params(reason_other: String).void }
414
+ attr_writer :reason_other
415
+
416
+ sig do
417
+ params(
418
+ reason:
419
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot::Reason::OrSymbol,
420
+ urls: T::Array[String],
421
+ reason_other: String
422
+ ).returns(T.attached_class)
423
+ end
424
+ def self.new(reason:, urls:, reason_other: nil)
425
+ end
426
+
427
+ sig do
428
+ override.returns(
429
+ {
430
+ reason:
431
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot::Reason::OrSymbol,
432
+ urls: T::Array[String],
433
+ reason_other: String
434
+ }
435
+ )
436
+ end
437
+ def to_hash
438
+ end
439
+
440
+ module Reason
441
+ extend SurgeAPI::Internal::Type::Enum
442
+
443
+ TaggedSymbol =
444
+ T.type_alias do
445
+ T.all(
446
+ Symbol,
447
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot::Reason
448
+ )
449
+ end
450
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
451
+
452
+ BEHIND_LOGIN =
453
+ T.let(
454
+ :behind_login,
455
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot::Reason::TaggedSymbol
456
+ )
457
+ UNDER_CONSTRUCTION =
458
+ T.let(
459
+ :under_construction,
460
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot::Reason::TaggedSymbol
461
+ )
462
+ OTHER =
463
+ T.let(
464
+ :other,
465
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot::Reason::TaggedSymbol
466
+ )
467
+
468
+ sig do
469
+ override.returns(
470
+ T::Array[
471
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot::Reason::TaggedSymbol
472
+ ]
473
+ )
474
+ end
475
+ def self.values
476
+ end
477
+ end
478
+ end
479
+ end
480
+
481
+ class UnionMember2 < SurgeAPI::Internal::Type::BaseModel
482
+ OrHash =
483
+ T.type_alias do
484
+ T.any(
485
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2,
486
+ SurgeAPI::Internal::AnyHash
487
+ )
488
+ end
489
+
490
+ sig { returns(T::Array[String]) }
491
+ attr_accessor :file_urls
492
+
493
+ sig do
494
+ returns(
495
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2::Type::OrSymbol
496
+ )
497
+ end
498
+ attr_accessor :type
499
+
500
+ sig { returns(T.nilable(T::Array[String])) }
501
+ attr_reader :keywords
502
+
503
+ sig { params(keywords: T::Array[String]).void }
504
+ attr_writer :keywords
505
+
506
+ sig do
507
+ params(
508
+ file_urls: T::Array[String],
509
+ type:
510
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2::Type::OrSymbol,
511
+ keywords: T::Array[String]
512
+ ).returns(T.attached_class)
513
+ end
514
+ def self.new(file_urls:, type:, keywords: nil)
515
+ end
516
+
517
+ sig do
518
+ override.returns(
519
+ {
520
+ file_urls: T::Array[String],
521
+ type:
522
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2::Type::OrSymbol,
523
+ keywords: T::Array[String]
524
+ }
525
+ )
526
+ end
527
+ def to_hash
528
+ end
529
+
530
+ module Type
531
+ extend SurgeAPI::Internal::Type::Enum
532
+
533
+ TaggedSymbol =
534
+ T.type_alias do
535
+ T.all(
536
+ Symbol,
537
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2::Type
538
+ )
539
+ end
540
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
541
+
542
+ TEXT =
543
+ T.let(
544
+ :text,
545
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2::Type::TaggedSymbol
546
+ )
547
+
548
+ sig do
549
+ override.returns(
550
+ T::Array[
551
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2::Type::TaggedSymbol
552
+ ]
553
+ )
554
+ end
555
+ def self.values
556
+ end
557
+ end
558
+ end
559
+
560
+ class UnionMember3 < SurgeAPI::Internal::Type::BaseModel
561
+ OrHash =
562
+ T.type_alias do
563
+ T.any(
564
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3,
565
+ SurgeAPI::Internal::AnyHash
566
+ )
567
+ end
568
+
569
+ sig { returns(T::Array[String]) }
570
+ attr_accessor :file_urls
571
+
572
+ sig do
573
+ returns(
574
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3::Type::OrSymbol
575
+ )
576
+ end
577
+ attr_accessor :type
578
+
579
+ sig do
580
+ params(
581
+ file_urls: T::Array[String],
582
+ type:
583
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3::Type::OrSymbol
584
+ ).returns(T.attached_class)
585
+ end
586
+ def self.new(file_urls:, type:)
587
+ end
588
+
589
+ sig do
590
+ override.returns(
591
+ {
592
+ file_urls: T::Array[String],
593
+ type:
594
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3::Type::OrSymbol
595
+ }
596
+ )
597
+ end
598
+ def to_hash
599
+ end
600
+
601
+ module Type
602
+ extend SurgeAPI::Internal::Type::Enum
603
+
604
+ TaggedSymbol =
605
+ T.type_alias do
606
+ T.all(
607
+ Symbol,
608
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3::Type
609
+ )
610
+ end
611
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
612
+
613
+ PAPER_FORM =
614
+ T.let(
615
+ :paper_form,
616
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3::Type::TaggedSymbol
617
+ )
618
+
619
+ sig do
620
+ override.returns(
621
+ T::Array[
622
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3::Type::TaggedSymbol
623
+ ]
624
+ )
625
+ end
626
+ def self.values
627
+ end
628
+ end
629
+ end
630
+
631
+ sig do
632
+ override.returns(
633
+ T::Array[
634
+ SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::Variants
635
+ ]
636
+ )
637
+ end
638
+ def self.variants
639
+ end
640
+ end
641
+
642
+ module Include
643
+ extend SurgeAPI::Internal::Type::Enum
644
+
645
+ TaggedSymbol =
646
+ T.type_alias do
647
+ T.all(Symbol, SurgeAPI::TollFreeCampaignUpdateParams::Include)
648
+ end
649
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
650
+
651
+ AGE_GATED =
652
+ T.let(
653
+ :age_gated,
654
+ SurgeAPI::TollFreeCampaignUpdateParams::Include::TaggedSymbol
655
+ )
656
+
657
+ sig do
658
+ override.returns(
659
+ T::Array[
660
+ SurgeAPI::TollFreeCampaignUpdateParams::Include::TaggedSymbol
661
+ ]
662
+ )
663
+ end
664
+ def self.values
665
+ end
666
+ end
667
+
668
+ module UseCase
669
+ extend SurgeAPI::Internal::Type::Enum
670
+
671
+ TaggedSymbol =
672
+ T.type_alias do
673
+ T.all(Symbol, SurgeAPI::TollFreeCampaignUpdateParams::UseCase)
674
+ end
675
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
676
+
677
+ TWO_FACTOR_AUTHENTICATION =
678
+ T.let(
679
+ :two_factor_authentication,
680
+ SurgeAPI::TollFreeCampaignUpdateParams::UseCase::TaggedSymbol
681
+ )
682
+ ACCOUNT_NOTIFICATION =
683
+ T.let(
684
+ :account_notification,
685
+ SurgeAPI::TollFreeCampaignUpdateParams::UseCase::TaggedSymbol
686
+ )
687
+ CUSTOMER_CARE =
688
+ T.let(
689
+ :customer_care,
690
+ SurgeAPI::TollFreeCampaignUpdateParams::UseCase::TaggedSymbol
691
+ )
692
+ CHARITY =
693
+ T.let(
694
+ :charity,
695
+ SurgeAPI::TollFreeCampaignUpdateParams::UseCase::TaggedSymbol
696
+ )
697
+ DELIVERY_NOTIFICATION =
698
+ T.let(
699
+ :delivery_notification,
700
+ SurgeAPI::TollFreeCampaignUpdateParams::UseCase::TaggedSymbol
701
+ )
702
+ FRAUD_ALERT =
703
+ T.let(
704
+ :fraud_alert,
705
+ SurgeAPI::TollFreeCampaignUpdateParams::UseCase::TaggedSymbol
706
+ )
707
+ EVENT =
708
+ T.let(
709
+ :event,
710
+ SurgeAPI::TollFreeCampaignUpdateParams::UseCase::TaggedSymbol
711
+ )
712
+ HIGHER_EDUCATION =
713
+ T.let(
714
+ :higher_education,
715
+ SurgeAPI::TollFreeCampaignUpdateParams::UseCase::TaggedSymbol
716
+ )
717
+ K12_EDUCATION =
718
+ T.let(
719
+ :k12_education,
720
+ SurgeAPI::TollFreeCampaignUpdateParams::UseCase::TaggedSymbol
721
+ )
722
+ MARKETING =
723
+ T.let(
724
+ :marketing,
725
+ SurgeAPI::TollFreeCampaignUpdateParams::UseCase::TaggedSymbol
726
+ )
727
+ POLLING_VOTING =
728
+ T.let(
729
+ :polling_voting,
730
+ SurgeAPI::TollFreeCampaignUpdateParams::UseCase::TaggedSymbol
731
+ )
732
+ POLITICAL =
733
+ T.let(
734
+ :political,
735
+ SurgeAPI::TollFreeCampaignUpdateParams::UseCase::TaggedSymbol
736
+ )
737
+ PUBLIC_SERVICE_ANNOUNCEMENT =
738
+ T.let(
739
+ :public_service_announcement,
740
+ SurgeAPI::TollFreeCampaignUpdateParams::UseCase::TaggedSymbol
741
+ )
742
+ SECURITY_ALERT =
743
+ T.let(
744
+ :security_alert,
745
+ SurgeAPI::TollFreeCampaignUpdateParams::UseCase::TaggedSymbol
746
+ )
747
+
748
+ sig do
749
+ override.returns(
750
+ T::Array[
751
+ SurgeAPI::TollFreeCampaignUpdateParams::UseCase::TaggedSymbol
752
+ ]
753
+ )
754
+ end
755
+ def self.values
756
+ end
757
+ end
758
+ end
759
+ end
760
+ end