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,476 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ # A consent flow returned on toll-free campaign responses.
6
+ module TollFreeCampaignConsentFlow
7
+ extend SurgeAPI::Internal::Type::Union
8
+
9
+ Variants =
10
+ T.type_alias do
11
+ T.any(
12
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember0,
13
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember1,
14
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2,
15
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember3,
16
+ SurgeAPI::TollFreeCampaignConsentFlow::Type
17
+ )
18
+ end
19
+
20
+ class UnionMember0 < SurgeAPI::Internal::Type::BaseModel
21
+ OrHash =
22
+ T.type_alias do
23
+ T.any(
24
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember0,
25
+ SurgeAPI::Internal::AnyHash
26
+ )
27
+ end
28
+
29
+ sig { returns(String) }
30
+ attr_accessor :script
31
+
32
+ sig do
33
+ returns(
34
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember0::Type::TaggedSymbol
35
+ )
36
+ end
37
+ attr_accessor :type
38
+
39
+ sig do
40
+ params(
41
+ script: String,
42
+ type:
43
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember0::Type::OrSymbol
44
+ ).returns(T.attached_class)
45
+ end
46
+ def self.new(script:, type:)
47
+ end
48
+
49
+ sig do
50
+ override.returns(
51
+ {
52
+ script: String,
53
+ type:
54
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember0::Type::TaggedSymbol
55
+ }
56
+ )
57
+ end
58
+ def to_hash
59
+ end
60
+
61
+ module Type
62
+ extend SurgeAPI::Internal::Type::Enum
63
+
64
+ TaggedSymbol =
65
+ T.type_alias do
66
+ T.all(
67
+ Symbol,
68
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember0::Type
69
+ )
70
+ end
71
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
72
+
73
+ VERBAL =
74
+ T.let(
75
+ :verbal,
76
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember0::Type::TaggedSymbol
77
+ )
78
+
79
+ sig do
80
+ override.returns(
81
+ T::Array[
82
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember0::Type::TaggedSymbol
83
+ ]
84
+ )
85
+ end
86
+ def self.values
87
+ end
88
+ end
89
+ end
90
+
91
+ class UnionMember1 < SurgeAPI::Internal::Type::BaseModel
92
+ OrHash =
93
+ T.type_alias do
94
+ T.any(
95
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember1,
96
+ SurgeAPI::Internal::AnyHash
97
+ )
98
+ end
99
+
100
+ sig { returns(String) }
101
+ attr_accessor :form_url
102
+
103
+ sig do
104
+ returns(
105
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember1::Type::TaggedSymbol
106
+ )
107
+ end
108
+ attr_accessor :type
109
+
110
+ sig do
111
+ params(
112
+ form_url: String,
113
+ type:
114
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember1::Type::OrSymbol
115
+ ).returns(T.attached_class)
116
+ end
117
+ def self.new(form_url:, type:)
118
+ end
119
+
120
+ sig do
121
+ override.returns(
122
+ {
123
+ form_url: String,
124
+ type:
125
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember1::Type::TaggedSymbol
126
+ }
127
+ )
128
+ end
129
+ def to_hash
130
+ end
131
+
132
+ module Type
133
+ extend SurgeAPI::Internal::Type::Enum
134
+
135
+ TaggedSymbol =
136
+ T.type_alias do
137
+ T.all(
138
+ Symbol,
139
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember1::Type
140
+ )
141
+ end
142
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
143
+
144
+ WEB_FORM =
145
+ T.let(
146
+ :web_form,
147
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember1::Type::TaggedSymbol
148
+ )
149
+
150
+ sig do
151
+ override.returns(
152
+ T::Array[
153
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember1::Type::TaggedSymbol
154
+ ]
155
+ )
156
+ end
157
+ def self.values
158
+ end
159
+ end
160
+ end
161
+
162
+ class UnionMember2 < SurgeAPI::Internal::Type::BaseModel
163
+ OrHash =
164
+ T.type_alias do
165
+ T.any(
166
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2,
167
+ SurgeAPI::Internal::AnyHash
168
+ )
169
+ end
170
+
171
+ sig do
172
+ returns(
173
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot
174
+ )
175
+ end
176
+ attr_reader :screenshot
177
+
178
+ sig do
179
+ params(
180
+ screenshot:
181
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::OrHash
182
+ ).void
183
+ end
184
+ attr_writer :screenshot
185
+
186
+ sig do
187
+ returns(
188
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Type::TaggedSymbol
189
+ )
190
+ end
191
+ attr_accessor :type
192
+
193
+ sig do
194
+ params(
195
+ screenshot:
196
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::OrHash,
197
+ type:
198
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Type::OrSymbol
199
+ ).returns(T.attached_class)
200
+ end
201
+ def self.new(screenshot:, type:)
202
+ end
203
+
204
+ sig do
205
+ override.returns(
206
+ {
207
+ screenshot:
208
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot,
209
+ type:
210
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Type::TaggedSymbol
211
+ }
212
+ )
213
+ end
214
+ def to_hash
215
+ end
216
+
217
+ class Screenshot < SurgeAPI::Internal::Type::BaseModel
218
+ OrHash =
219
+ T.type_alias do
220
+ T.any(
221
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot,
222
+ SurgeAPI::Internal::AnyHash
223
+ )
224
+ end
225
+
226
+ sig do
227
+ returns(
228
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::Reason::TaggedSymbol
229
+ )
230
+ end
231
+ attr_accessor :reason
232
+
233
+ sig { returns(T.nilable(String)) }
234
+ attr_reader :reason_other
235
+
236
+ sig { params(reason_other: String).void }
237
+ attr_writer :reason_other
238
+
239
+ sig do
240
+ params(
241
+ reason:
242
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::Reason::OrSymbol,
243
+ reason_other: String
244
+ ).returns(T.attached_class)
245
+ end
246
+ def self.new(reason:, reason_other: nil)
247
+ end
248
+
249
+ sig do
250
+ override.returns(
251
+ {
252
+ reason:
253
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::Reason::TaggedSymbol,
254
+ reason_other: String
255
+ }
256
+ )
257
+ end
258
+ def to_hash
259
+ end
260
+
261
+ module Reason
262
+ extend SurgeAPI::Internal::Type::Enum
263
+
264
+ TaggedSymbol =
265
+ T.type_alias do
266
+ T.all(
267
+ Symbol,
268
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::Reason
269
+ )
270
+ end
271
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
272
+
273
+ BEHIND_LOGIN =
274
+ T.let(
275
+ :behind_login,
276
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::Reason::TaggedSymbol
277
+ )
278
+ UNDER_CONSTRUCTION =
279
+ T.let(
280
+ :under_construction,
281
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::Reason::TaggedSymbol
282
+ )
283
+ OTHER =
284
+ T.let(
285
+ :other,
286
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::Reason::TaggedSymbol
287
+ )
288
+
289
+ sig do
290
+ override.returns(
291
+ T::Array[
292
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::Reason::TaggedSymbol
293
+ ]
294
+ )
295
+ end
296
+ def self.values
297
+ end
298
+ end
299
+ end
300
+
301
+ module Type
302
+ extend SurgeAPI::Internal::Type::Enum
303
+
304
+ TaggedSymbol =
305
+ T.type_alias do
306
+ T.all(
307
+ Symbol,
308
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Type
309
+ )
310
+ end
311
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
312
+
313
+ WEB_FORM =
314
+ T.let(
315
+ :web_form,
316
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Type::TaggedSymbol
317
+ )
318
+
319
+ sig do
320
+ override.returns(
321
+ T::Array[
322
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Type::TaggedSymbol
323
+ ]
324
+ )
325
+ end
326
+ def self.values
327
+ end
328
+ end
329
+ end
330
+
331
+ class UnionMember3 < SurgeAPI::Internal::Type::BaseModel
332
+ OrHash =
333
+ T.type_alias do
334
+ T.any(
335
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember3,
336
+ SurgeAPI::Internal::AnyHash
337
+ )
338
+ end
339
+
340
+ sig do
341
+ returns(
342
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember3::Type::TaggedSymbol
343
+ )
344
+ end
345
+ attr_accessor :type
346
+
347
+ sig { returns(T.nilable(T::Array[String])) }
348
+ attr_reader :keywords
349
+
350
+ sig { params(keywords: T::Array[String]).void }
351
+ attr_writer :keywords
352
+
353
+ sig do
354
+ params(
355
+ type:
356
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember3::Type::OrSymbol,
357
+ keywords: T::Array[String]
358
+ ).returns(T.attached_class)
359
+ end
360
+ def self.new(type:, keywords: nil)
361
+ end
362
+
363
+ sig do
364
+ override.returns(
365
+ {
366
+ type:
367
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember3::Type::TaggedSymbol,
368
+ keywords: T::Array[String]
369
+ }
370
+ )
371
+ end
372
+ def to_hash
373
+ end
374
+
375
+ module Type
376
+ extend SurgeAPI::Internal::Type::Enum
377
+
378
+ TaggedSymbol =
379
+ T.type_alias do
380
+ T.all(
381
+ Symbol,
382
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember3::Type
383
+ )
384
+ end
385
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
386
+
387
+ TEXT =
388
+ T.let(
389
+ :text,
390
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember3::Type::TaggedSymbol
391
+ )
392
+
393
+ sig do
394
+ override.returns(
395
+ T::Array[
396
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember3::Type::TaggedSymbol
397
+ ]
398
+ )
399
+ end
400
+ def self.values
401
+ end
402
+ end
403
+ end
404
+
405
+ class Type < SurgeAPI::Internal::Type::BaseModel
406
+ OrHash =
407
+ T.type_alias do
408
+ T.any(
409
+ SurgeAPI::TollFreeCampaignConsentFlow::Type,
410
+ SurgeAPI::Internal::AnyHash
411
+ )
412
+ end
413
+
414
+ sig do
415
+ returns(
416
+ SurgeAPI::TollFreeCampaignConsentFlow::Type::Type::TaggedSymbol
417
+ )
418
+ end
419
+ attr_accessor :type
420
+
421
+ sig do
422
+ params(
423
+ type: SurgeAPI::TollFreeCampaignConsentFlow::Type::Type::OrSymbol
424
+ ).returns(T.attached_class)
425
+ end
426
+ def self.new(type:)
427
+ end
428
+
429
+ sig do
430
+ override.returns(
431
+ {
432
+ type:
433
+ SurgeAPI::TollFreeCampaignConsentFlow::Type::Type::TaggedSymbol
434
+ }
435
+ )
436
+ end
437
+ def to_hash
438
+ end
439
+
440
+ module Type
441
+ extend SurgeAPI::Internal::Type::Enum
442
+
443
+ TaggedSymbol =
444
+ T.type_alias do
445
+ T.all(Symbol, SurgeAPI::TollFreeCampaignConsentFlow::Type::Type)
446
+ end
447
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
448
+
449
+ PAPER_FORM =
450
+ T.let(
451
+ :paper_form,
452
+ SurgeAPI::TollFreeCampaignConsentFlow::Type::Type::TaggedSymbol
453
+ )
454
+
455
+ sig do
456
+ override.returns(
457
+ T::Array[
458
+ SurgeAPI::TollFreeCampaignConsentFlow::Type::Type::TaggedSymbol
459
+ ]
460
+ )
461
+ end
462
+ def self.values
463
+ end
464
+ end
465
+ end
466
+
467
+ sig do
468
+ override.returns(
469
+ T::Array[SurgeAPI::TollFreeCampaignConsentFlow::Variants]
470
+ )
471
+ end
472
+ def self.variants
473
+ end
474
+ end
475
+ end
476
+ end
@@ -0,0 +1,43 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class TollFreeCampaignCreateParams < SurgeAPI::Models::TollFreeCampaignParams
6
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
7
+ include SurgeAPI::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ SurgeAPI::TollFreeCampaignCreateParams,
13
+ SurgeAPI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The account for which the toll-free campaign should be created.
18
+ sig { returns(String) }
19
+ attr_accessor :account_id
20
+
21
+ sig do
22
+ params(
23
+ account_id: String,
24
+ request_options: SurgeAPI::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(
28
+ # The account for which the toll-free campaign should be created.
29
+ account_id:,
30
+ request_options: {}
31
+ )
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ { account_id: String, request_options: SurgeAPI::RequestOptions }
37
+ )
38
+ end
39
+ def to_hash
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,70 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class TollFreeCampaignListParams < SurgeAPI::Internal::Type::BaseModel
6
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
7
+ include SurgeAPI::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ SurgeAPI::TollFreeCampaignListParams,
13
+ SurgeAPI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The account ID to list toll-free campaigns for.
18
+ sig { returns(String) }
19
+ attr_accessor :account_id
20
+
21
+ # Cursor for forward pagination. Use the next_cursor from a previous response.
22
+ sig { returns(T.nilable(String)) }
23
+ attr_reader :after
24
+
25
+ sig { params(after: String).void }
26
+ attr_writer :after
27
+
28
+ # Cursor for backward pagination. Use the previous_cursor from a previous
29
+ # response.
30
+ sig { returns(T.nilable(String)) }
31
+ attr_reader :before
32
+
33
+ sig { params(before: String).void }
34
+ attr_writer :before
35
+
36
+ sig do
37
+ params(
38
+ account_id: String,
39
+ after: String,
40
+ before: String,
41
+ request_options: SurgeAPI::RequestOptions::OrHash
42
+ ).returns(T.attached_class)
43
+ end
44
+ def self.new(
45
+ # The account ID to list toll-free campaigns for.
46
+ account_id:,
47
+ # Cursor for forward pagination. Use the next_cursor from a previous response.
48
+ after: nil,
49
+ # Cursor for backward pagination. Use the previous_cursor from a previous
50
+ # response.
51
+ before: nil,
52
+ request_options: {}
53
+ )
54
+ end
55
+
56
+ sig do
57
+ override.returns(
58
+ {
59
+ account_id: String,
60
+ after: String,
61
+ before: String,
62
+ request_options: SurgeAPI::RequestOptions
63
+ }
64
+ )
65
+ end
66
+ def to_hash
67
+ end
68
+ end
69
+ end
70
+ end