surge_api 0.23.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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -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/account_retrieve_status_params.rb +1 -0
  7. data/lib/surge_api/models/call_ended_webhook_event.rb +8 -3
  8. data/lib/surge_api/models/campaign.rb +21 -13
  9. data/lib/surge_api/models/campaign_approved_webhook_event.rb +9 -1
  10. data/lib/surge_api/models/campaign_params.rb +11 -12
  11. data/lib/surge_api/models/campaign_rejected_webhook_event.rb +135 -0
  12. data/lib/surge_api/models/campaign_submitted_webhook_event.rb +74 -0
  13. data/lib/surge_api/models/campaign_update_params.rb +188 -1
  14. data/lib/surge_api/models/campaign_warning_webhook_event.rb +134 -0
  15. data/lib/surge_api/models/message.rb +42 -2
  16. data/lib/surge_api/models/message_delivered_webhook_event.rb +29 -1
  17. data/lib/surge_api/models/message_failed_webhook_event.rb +26 -5
  18. data/lib/surge_api/models/message_received_webhook_event.rb +29 -1
  19. data/lib/surge_api/models/message_sent_webhook_event.rb +29 -1
  20. data/lib/surge_api/models/phone_number.rb +9 -1
  21. data/lib/surge_api/models/phone_number_attached_to_campaign_webhook_event.rb +9 -1
  22. data/lib/surge_api/models/phone_number_imported_webhook_event.rb +160 -0
  23. data/lib/surge_api/models/phone_number_purchase_params.rb +9 -1
  24. data/lib/surge_api/models/phone_number_update_params.rb +9 -1
  25. data/lib/surge_api/models/toll_free_campaign.rb +132 -0
  26. data/lib/surge_api/models/toll_free_campaign_consent_flow.rb +176 -0
  27. data/lib/surge_api/models/toll_free_campaign_create_params.rb +22 -0
  28. data/lib/surge_api/models/toll_free_campaign_list_params.rb +42 -0
  29. data/lib/surge_api/models/toll_free_campaign_params.rb +286 -0
  30. data/lib/surge_api/models/toll_free_campaign_retrieve_params.rb +22 -0
  31. data/lib/surge_api/models/toll_free_campaign_update_params.rb +278 -0
  32. data/lib/surge_api/models/unwrap_webhook_event.rb +9 -1
  33. data/lib/surge_api/models/user_create_token_params.rb +15 -1
  34. data/lib/surge_api/models.rb +22 -0
  35. data/lib/surge_api/resources/accounts.rb +2 -2
  36. data/lib/surge_api/resources/campaigns.rb +26 -8
  37. data/lib/surge_api/resources/phone_numbers.rb +6 -2
  38. data/lib/surge_api/resources/toll_free_campaigns.rb +140 -0
  39. data/lib/surge_api/resources/users.rb +6 -1
  40. data/lib/surge_api/resources/webhooks.rb +1 -1
  41. data/lib/surge_api/version.rb +1 -1
  42. data/lib/surge_api.rb +12 -0
  43. data/rbi/surge_api/client.rbi +3 -0
  44. data/rbi/surge_api/models/account_retrieve_status_params.rbi +5 -0
  45. data/rbi/surge_api/models/call_ended_webhook_event.rbi +6 -3
  46. data/rbi/surge_api/models/campaign.rbi +26 -19
  47. data/rbi/surge_api/models/campaign_approved_webhook_event.rbi +8 -0
  48. data/rbi/surge_api/models/campaign_params.rbi +17 -19
  49. data/rbi/surge_api/models/campaign_rejected_webhook_event.rbi +269 -0
  50. data/rbi/surge_api/models/campaign_submitted_webhook_event.rbi +149 -0
  51. data/rbi/surge_api/models/campaign_update_params.rbi +378 -1
  52. data/rbi/surge_api/models/campaign_warning_webhook_event.rbi +259 -0
  53. data/rbi/surge_api/models/message.rbi +50 -3
  54. data/rbi/surge_api/models/message_delivered_webhook_event.rbi +52 -0
  55. data/rbi/surge_api/models/message_failed_webhook_event.rbi +47 -5
  56. data/rbi/surge_api/models/message_received_webhook_event.rbi +49 -0
  57. data/rbi/surge_api/models/message_sent_webhook_event.rbi +46 -0
  58. data/rbi/surge_api/models/phone_number.rbi +8 -0
  59. data/rbi/surge_api/models/phone_number_attached_to_campaign_webhook_event.rbi +8 -0
  60. data/rbi/surge_api/models/phone_number_imported_webhook_event.rbi +318 -0
  61. data/rbi/surge_api/models/phone_number_purchase_params.rbi +11 -0
  62. data/rbi/surge_api/models/phone_number_update_params.rbi +11 -0
  63. data/rbi/surge_api/models/toll_free_campaign.rbi +230 -0
  64. data/rbi/surge_api/models/toll_free_campaign_consent_flow.rbi +476 -0
  65. data/rbi/surge_api/models/toll_free_campaign_create_params.rbi +43 -0
  66. data/rbi/surge_api/models/toll_free_campaign_list_params.rbi +70 -0
  67. data/rbi/surge_api/models/toll_free_campaign_params.rbi +711 -0
  68. data/rbi/surge_api/models/toll_free_campaign_retrieve_params.rbi +43 -0
  69. data/rbi/surge_api/models/toll_free_campaign_update_params.rbi +760 -0
  70. data/rbi/surge_api/models/unwrap_webhook_event.rbi +4 -0
  71. data/rbi/surge_api/models/user_create_token_params.rbi +17 -0
  72. data/rbi/surge_api/models.rbi +25 -0
  73. data/rbi/surge_api/resources/accounts.rbi +2 -2
  74. data/rbi/surge_api/resources/campaigns.rbi +94 -12
  75. data/rbi/surge_api/resources/phone_numbers.rbi +6 -0
  76. data/rbi/surge_api/resources/toll_free_campaigns.rbi +129 -0
  77. data/rbi/surge_api/resources/users.rbi +6 -0
  78. data/rbi/surge_api/resources/webhooks.rbi +4 -0
  79. data/sig/surge_api/client.rbs +2 -0
  80. data/sig/surge_api/models/account_retrieve_status_params.rbs +2 -1
  81. data/sig/surge_api/models/campaign.rbs +8 -1
  82. data/sig/surge_api/models/campaign_approved_webhook_event.rbs +5 -0
  83. data/sig/surge_api/models/campaign_rejected_webhook_event.rbs +115 -0
  84. data/sig/surge_api/models/campaign_submitted_webhook_event.rbs +67 -0
  85. data/sig/surge_api/models/campaign_update_params.rbs +128 -2
  86. data/sig/surge_api/models/campaign_warning_webhook_event.rbs +114 -0
  87. data/sig/surge_api/models/message.rbs +36 -3
  88. data/sig/surge_api/models/message_delivered_webhook_event.rbs +20 -0
  89. data/sig/surge_api/models/message_failed_webhook_event.rbs +19 -4
  90. data/sig/surge_api/models/message_received_webhook_event.rbs +20 -0
  91. data/sig/surge_api/models/message_sent_webhook_event.rbs +20 -0
  92. data/sig/surge_api/models/phone_number.rbs +5 -0
  93. data/sig/surge_api/models/phone_number_attached_to_campaign_webhook_event.rbs +5 -0
  94. data/sig/surge_api/models/phone_number_imported_webhook_event.rbs +130 -0
  95. data/sig/surge_api/models/phone_number_purchase_params.rbs +7 -0
  96. data/sig/surge_api/models/phone_number_update_params.rbs +12 -1
  97. data/sig/surge_api/models/toll_free_campaign.rbs +126 -0
  98. data/sig/surge_api/models/toll_free_campaign_consent_flow.rbs +207 -0
  99. data/sig/surge_api/models/toll_free_campaign_create_params.rbs +25 -0
  100. data/sig/surge_api/models/toll_free_campaign_list_params.rbs +36 -0
  101. data/sig/surge_api/models/toll_free_campaign_params.rbs +321 -0
  102. data/sig/surge_api/models/toll_free_campaign_retrieve_params.rbs +23 -0
  103. data/sig/surge_api/models/toll_free_campaign_update_params.rbs +332 -0
  104. data/sig/surge_api/models/unwrap_webhook_event.rbs +4 -0
  105. data/sig/surge_api/models/user_create_token_params.rbs +7 -1
  106. data/sig/surge_api/models.rbs +22 -0
  107. data/sig/surge_api/resources/campaigns.rbs +9 -1
  108. data/sig/surge_api/resources/phone_numbers.rbs +2 -0
  109. data/sig/surge_api/resources/toll_free_campaigns.rbs +44 -0
  110. data/sig/surge_api/resources/users.rbs +1 -0
  111. data/sig/surge_api/resources/webhooks.rbs +4 -0
  112. metadata +53 -7
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ # @see SurgeAPI::Resources::TollFreeCampaigns#list
6
+ class TollFreeCampaignListParams < SurgeAPI::Internal::Type::BaseModel
7
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
8
+ include SurgeAPI::Internal::Type::RequestParameters
9
+
10
+ # @!attribute account_id
11
+ # The account ID to list toll-free campaigns for.
12
+ #
13
+ # @return [String]
14
+ required :account_id, String
15
+
16
+ # @!attribute after
17
+ # Cursor for forward pagination. Use the next_cursor from a previous response.
18
+ #
19
+ # @return [String, nil]
20
+ optional :after, String
21
+
22
+ # @!attribute before
23
+ # Cursor for backward pagination. Use the previous_cursor from a previous
24
+ # response.
25
+ #
26
+ # @return [String, nil]
27
+ optional :before, String
28
+
29
+ # @!method initialize(account_id:, after: nil, before: nil, request_options: {})
30
+ # Some parameter documentations has been truncated, see
31
+ # {SurgeAPI::Models::TollFreeCampaignListParams} for more details.
32
+ #
33
+ # @param account_id [String] The account ID to list toll-free campaigns for.
34
+ #
35
+ # @param after [String] Cursor for forward pagination. Use the next_cursor from a previous response.
36
+ #
37
+ # @param before [String] Cursor for backward pagination. Use the previous_cursor from a previous response
38
+ #
39
+ # @param request_options [SurgeAPI::RequestOptions, Hash{Symbol=>Object}]
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,286 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class TollFreeCampaignParams < SurgeAPI::Internal::Type::BaseModel
6
+ # @!attribute consent_flows
7
+ #
8
+ # @return [Array<SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember0, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember2, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember3>]
9
+ required :consent_flows,
10
+ -> { SurgeAPI::Internal::Type::ArrayOf[union: SurgeAPI::TollFreeCampaignParams::ConsentFlow] }
11
+
12
+ # @!attribute description
13
+ # An explanation of how the toll-free number will be used.
14
+ #
15
+ # @return [String]
16
+ required :description, String
17
+
18
+ # @!attribute message_samples
19
+ #
20
+ # @return [Array<String>]
21
+ required :message_samples, SurgeAPI::Internal::Type::ArrayOf[String]
22
+
23
+ # @!attribute phone_number_id
24
+ # The toll-free phone number to register.
25
+ #
26
+ # @return [String]
27
+ required :phone_number_id, String
28
+
29
+ # @!attribute privacy_policy_url
30
+ #
31
+ # @return [String]
32
+ required :privacy_policy_url, String
33
+
34
+ # @!attribute terms_and_conditions_url
35
+ #
36
+ # @return [String]
37
+ required :terms_and_conditions_url, String
38
+
39
+ # @!attribute use_cases
40
+ #
41
+ # @return [Array<Symbol, SurgeAPI::Models::TollFreeCampaignParams::UseCase>]
42
+ required :use_cases,
43
+ -> { SurgeAPI::Internal::Type::ArrayOf[enum: SurgeAPI::TollFreeCampaignParams::UseCase] }
44
+
45
+ # @!attribute includes
46
+ #
47
+ # @return [Array<Symbol, SurgeAPI::Models::TollFreeCampaignParams::Include>, nil]
48
+ optional :includes,
49
+ -> { SurgeAPI::Internal::Type::ArrayOf[enum: SurgeAPI::TollFreeCampaignParams::Include] }
50
+
51
+ # @!method initialize(consent_flows:, description:, message_samples:, phone_number_id:, privacy_policy_url:, terms_and_conditions_url:, use_cases:, includes: nil)
52
+ # Parameters for creating a toll-free campaign through Surge
53
+ #
54
+ # @param consent_flows [Array<SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember0, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember2, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember3>]
55
+ #
56
+ # @param description [String] An explanation of how the toll-free number will be used.
57
+ #
58
+ # @param message_samples [Array<String>]
59
+ #
60
+ # @param phone_number_id [String] The toll-free phone number to register.
61
+ #
62
+ # @param privacy_policy_url [String]
63
+ #
64
+ # @param terms_and_conditions_url [String]
65
+ #
66
+ # @param use_cases [Array<Symbol, SurgeAPI::Models::TollFreeCampaignParams::UseCase>]
67
+ #
68
+ # @param includes [Array<Symbol, SurgeAPI::Models::TollFreeCampaignParams::Include>]
69
+
70
+ module ConsentFlow
71
+ extend SurgeAPI::Internal::Type::Union
72
+
73
+ variant -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember0 }
74
+
75
+ variant -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember1 }
76
+
77
+ variant -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember2 }
78
+
79
+ variant -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember3 }
80
+
81
+ class UnionMember0 < SurgeAPI::Internal::Type::BaseModel
82
+ # @!attribute script
83
+ #
84
+ # @return [String]
85
+ required :script, String
86
+
87
+ # @!attribute type
88
+ #
89
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember0::Type]
90
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember0::Type }
91
+
92
+ # @!method initialize(script:, type:)
93
+ # @param script [String]
94
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember0::Type]
95
+
96
+ # @see SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember0#type
97
+ module Type
98
+ extend SurgeAPI::Internal::Type::Enum
99
+
100
+ VERBAL = :verbal
101
+
102
+ # @!method self.values
103
+ # @return [Array<Symbol>]
104
+ end
105
+ end
106
+
107
+ class UnionMember1 < SurgeAPI::Internal::Type::BaseModel
108
+ # @!attribute owner
109
+ #
110
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Owner]
111
+ required :owner, enum: -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember1::Owner }
112
+
113
+ # @!attribute type
114
+ #
115
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Type]
116
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember1::Type }
117
+
118
+ # @!attribute form_url
119
+ #
120
+ # @return [String, nil]
121
+ optional :form_url, String
122
+
123
+ # @!attribute screenshot
124
+ #
125
+ # @return [SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Screenshot, nil]
126
+ optional :screenshot, -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember1::Screenshot }
127
+
128
+ # @!method initialize(owner:, type:, form_url: nil, screenshot: nil)
129
+ # @param owner [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Owner]
130
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Type]
131
+ # @param form_url [String]
132
+ # @param screenshot [SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Screenshot]
133
+
134
+ # @see SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1#owner
135
+ module Owner
136
+ extend SurgeAPI::Internal::Type::Enum
137
+
138
+ BRAND = :brand
139
+ PLATFORM = :platform
140
+
141
+ # @!method self.values
142
+ # @return [Array<Symbol>]
143
+ end
144
+
145
+ # @see SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1#type
146
+ module Type
147
+ extend SurgeAPI::Internal::Type::Enum
148
+
149
+ WEB_FORM = :web_form
150
+
151
+ # @!method self.values
152
+ # @return [Array<Symbol>]
153
+ end
154
+
155
+ # @see SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1#screenshot
156
+ class Screenshot < SurgeAPI::Internal::Type::BaseModel
157
+ # @!attribute reason
158
+ #
159
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Screenshot::Reason]
160
+ required :reason,
161
+ enum: -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember1::Screenshot::Reason }
162
+
163
+ # @!attribute urls
164
+ #
165
+ # @return [Array<String>]
166
+ required :urls, SurgeAPI::Internal::Type::ArrayOf[String]
167
+
168
+ # @!attribute reason_other
169
+ #
170
+ # @return [String, nil]
171
+ optional :reason_other, String
172
+
173
+ # @!method initialize(reason:, urls:, reason_other: nil)
174
+ # @param reason [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Screenshot::Reason]
175
+ # @param urls [Array<String>]
176
+ # @param reason_other [String]
177
+
178
+ # @see SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1::Screenshot#reason
179
+ module Reason
180
+ extend SurgeAPI::Internal::Type::Enum
181
+
182
+ BEHIND_LOGIN = :behind_login
183
+ UNDER_CONSTRUCTION = :under_construction
184
+ OTHER = :other
185
+
186
+ # @!method self.values
187
+ # @return [Array<Symbol>]
188
+ end
189
+ end
190
+ end
191
+
192
+ class UnionMember2 < SurgeAPI::Internal::Type::BaseModel
193
+ # @!attribute file_urls
194
+ #
195
+ # @return [Array<String>]
196
+ required :file_urls, SurgeAPI::Internal::Type::ArrayOf[String]
197
+
198
+ # @!attribute type
199
+ #
200
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember2::Type]
201
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember2::Type }
202
+
203
+ # @!attribute keywords
204
+ #
205
+ # @return [Array<String>, nil]
206
+ optional :keywords, SurgeAPI::Internal::Type::ArrayOf[String]
207
+
208
+ # @!method initialize(file_urls:, type:, keywords: nil)
209
+ # @param file_urls [Array<String>]
210
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember2::Type]
211
+ # @param keywords [Array<String>]
212
+
213
+ # @see SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember2#type
214
+ module Type
215
+ extend SurgeAPI::Internal::Type::Enum
216
+
217
+ TEXT = :text
218
+
219
+ # @!method self.values
220
+ # @return [Array<Symbol>]
221
+ end
222
+ end
223
+
224
+ class UnionMember3 < SurgeAPI::Internal::Type::BaseModel
225
+ # @!attribute file_urls
226
+ #
227
+ # @return [Array<String>]
228
+ required :file_urls, SurgeAPI::Internal::Type::ArrayOf[String]
229
+
230
+ # @!attribute type
231
+ #
232
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember3::Type]
233
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignParams::ConsentFlow::UnionMember3::Type }
234
+
235
+ # @!method initialize(file_urls:, type:)
236
+ # @param file_urls [Array<String>]
237
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember3::Type]
238
+
239
+ # @see SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember3#type
240
+ module Type
241
+ extend SurgeAPI::Internal::Type::Enum
242
+
243
+ PAPER_FORM = :paper_form
244
+
245
+ # @!method self.values
246
+ # @return [Array<Symbol>]
247
+ end
248
+ end
249
+
250
+ # @!method self.variants
251
+ # @return [Array(SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember0, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember1, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember2, SurgeAPI::Models::TollFreeCampaignParams::ConsentFlow::UnionMember3)]
252
+ end
253
+
254
+ module UseCase
255
+ extend SurgeAPI::Internal::Type::Enum
256
+
257
+ TWO_FACTOR_AUTHENTICATION = :two_factor_authentication
258
+ ACCOUNT_NOTIFICATION = :account_notification
259
+ CUSTOMER_CARE = :customer_care
260
+ CHARITY = :charity
261
+ DELIVERY_NOTIFICATION = :delivery_notification
262
+ FRAUD_ALERT = :fraud_alert
263
+ EVENT = :event
264
+ HIGHER_EDUCATION = :higher_education
265
+ K12_EDUCATION = :k12_education
266
+ MARKETING = :marketing
267
+ POLLING_VOTING = :polling_voting
268
+ POLITICAL = :political
269
+ PUBLIC_SERVICE_ANNOUNCEMENT = :public_service_announcement
270
+ SECURITY_ALERT = :security_alert
271
+
272
+ # @!method self.values
273
+ # @return [Array<Symbol>]
274
+ end
275
+
276
+ module Include
277
+ extend SurgeAPI::Internal::Type::Enum
278
+
279
+ AGE_GATED = :age_gated
280
+
281
+ # @!method self.values
282
+ # @return [Array<Symbol>]
283
+ end
284
+ end
285
+ end
286
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ # @see SurgeAPI::Resources::TollFreeCampaigns#retrieve
6
+ class TollFreeCampaignRetrieveParams < SurgeAPI::Internal::Type::BaseModel
7
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
8
+ include SurgeAPI::Internal::Type::RequestParameters
9
+
10
+ # @!attribute campaign_id
11
+ # The ID of the toll-free campaign to retrieve.
12
+ #
13
+ # @return [String]
14
+ required :campaign_id, String
15
+
16
+ # @!method initialize(campaign_id:, request_options: {})
17
+ # @param campaign_id [String] The ID of the toll-free campaign to retrieve.
18
+ #
19
+ # @param request_options [SurgeAPI::RequestOptions, Hash{Symbol=>Object}]
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,278 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class TollFreeCampaignUpdateParams < SurgeAPI::Internal::Type::BaseModel
6
+ # @!attribute consent_flows
7
+ #
8
+ # @return [Array<SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3>, nil]
9
+ optional :consent_flows,
10
+ -> { SurgeAPI::Internal::Type::ArrayOf[union: SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow] }
11
+
12
+ # @!attribute description
13
+ # An explanation of how the toll-free number will be used.
14
+ #
15
+ # @return [String, nil]
16
+ optional :description, String
17
+
18
+ # @!attribute includes
19
+ #
20
+ # @return [Array<Symbol, SurgeAPI::Models::TollFreeCampaignUpdateParams::Include>, nil]
21
+ optional :includes,
22
+ -> { SurgeAPI::Internal::Type::ArrayOf[enum: SurgeAPI::TollFreeCampaignUpdateParams::Include] }
23
+
24
+ # @!attribute message_samples
25
+ #
26
+ # @return [Array<String>, nil]
27
+ optional :message_samples, SurgeAPI::Internal::Type::ArrayOf[String]
28
+
29
+ # @!attribute privacy_policy_url
30
+ #
31
+ # @return [String, nil]
32
+ optional :privacy_policy_url, String
33
+
34
+ # @!attribute terms_and_conditions_url
35
+ #
36
+ # @return [String, nil]
37
+ optional :terms_and_conditions_url, String
38
+
39
+ # @!attribute use_cases
40
+ #
41
+ # @return [Array<Symbol, SurgeAPI::Models::TollFreeCampaignUpdateParams::UseCase>, nil]
42
+ optional :use_cases,
43
+ -> { SurgeAPI::Internal::Type::ArrayOf[enum: SurgeAPI::TollFreeCampaignUpdateParams::UseCase] }
44
+
45
+ # @!method initialize(consent_flows: nil, description: nil, includes: nil, message_samples: nil, privacy_policy_url: nil, terms_and_conditions_url: nil, use_cases: nil)
46
+ # Parameters for updating a toll-free campaign.
47
+ #
48
+ # @param consent_flows [Array<SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3>]
49
+ #
50
+ # @param description [String] An explanation of how the toll-free number will be used.
51
+ #
52
+ # @param includes [Array<Symbol, SurgeAPI::Models::TollFreeCampaignUpdateParams::Include>]
53
+ #
54
+ # @param message_samples [Array<String>]
55
+ #
56
+ # @param privacy_policy_url [String]
57
+ #
58
+ # @param terms_and_conditions_url [String]
59
+ #
60
+ # @param use_cases [Array<Symbol, SurgeAPI::Models::TollFreeCampaignUpdateParams::UseCase>]
61
+
62
+ module ConsentFlow
63
+ extend SurgeAPI::Internal::Type::Union
64
+
65
+ variant -> { SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0 }
66
+
67
+ variant -> { SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1 }
68
+
69
+ variant -> { SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2 }
70
+
71
+ variant -> { SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3 }
72
+
73
+ class UnionMember0 < SurgeAPI::Internal::Type::BaseModel
74
+ # @!attribute script
75
+ #
76
+ # @return [String]
77
+ required :script, String
78
+
79
+ # @!attribute type
80
+ #
81
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0::Type]
82
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0::Type }
83
+
84
+ # @!method initialize(script:, type:)
85
+ # @param script [String]
86
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0::Type]
87
+
88
+ # @see SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0#type
89
+ module Type
90
+ extend SurgeAPI::Internal::Type::Enum
91
+
92
+ VERBAL = :verbal
93
+
94
+ # @!method self.values
95
+ # @return [Array<Symbol>]
96
+ end
97
+ end
98
+
99
+ class UnionMember1 < SurgeAPI::Internal::Type::BaseModel
100
+ # @!attribute owner
101
+ #
102
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Owner]
103
+ required :owner, enum: -> { SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Owner }
104
+
105
+ # @!attribute type
106
+ #
107
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Type]
108
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Type }
109
+
110
+ # @!attribute form_url
111
+ #
112
+ # @return [String, nil]
113
+ optional :form_url, String
114
+
115
+ # @!attribute screenshot
116
+ #
117
+ # @return [SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot, nil]
118
+ optional :screenshot, -> { SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot }
119
+
120
+ # @!method initialize(owner:, type:, form_url: nil, screenshot: nil)
121
+ # @param owner [Symbol, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Owner]
122
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Type]
123
+ # @param form_url [String]
124
+ # @param screenshot [SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot]
125
+
126
+ # @see SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1#owner
127
+ module Owner
128
+ extend SurgeAPI::Internal::Type::Enum
129
+
130
+ BRAND = :brand
131
+ PLATFORM = :platform
132
+
133
+ # @!method self.values
134
+ # @return [Array<Symbol>]
135
+ end
136
+
137
+ # @see SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1#type
138
+ module Type
139
+ extend SurgeAPI::Internal::Type::Enum
140
+
141
+ WEB_FORM = :web_form
142
+
143
+ # @!method self.values
144
+ # @return [Array<Symbol>]
145
+ end
146
+
147
+ # @see SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1#screenshot
148
+ class Screenshot < SurgeAPI::Internal::Type::BaseModel
149
+ # @!attribute reason
150
+ #
151
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot::Reason]
152
+ required :reason,
153
+ enum: -> { SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot::Reason }
154
+
155
+ # @!attribute urls
156
+ #
157
+ # @return [Array<String>]
158
+ required :urls, SurgeAPI::Internal::Type::ArrayOf[String]
159
+
160
+ # @!attribute reason_other
161
+ #
162
+ # @return [String, nil]
163
+ optional :reason_other, String
164
+
165
+ # @!method initialize(reason:, urls:, reason_other: nil)
166
+ # @param reason [Symbol, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot::Reason]
167
+ # @param urls [Array<String>]
168
+ # @param reason_other [String]
169
+
170
+ # @see SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1::Screenshot#reason
171
+ module Reason
172
+ extend SurgeAPI::Internal::Type::Enum
173
+
174
+ BEHIND_LOGIN = :behind_login
175
+ UNDER_CONSTRUCTION = :under_construction
176
+ OTHER = :other
177
+
178
+ # @!method self.values
179
+ # @return [Array<Symbol>]
180
+ end
181
+ end
182
+ end
183
+
184
+ class UnionMember2 < SurgeAPI::Internal::Type::BaseModel
185
+ # @!attribute file_urls
186
+ #
187
+ # @return [Array<String>]
188
+ required :file_urls, SurgeAPI::Internal::Type::ArrayOf[String]
189
+
190
+ # @!attribute type
191
+ #
192
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2::Type]
193
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2::Type }
194
+
195
+ # @!attribute keywords
196
+ #
197
+ # @return [Array<String>, nil]
198
+ optional :keywords, SurgeAPI::Internal::Type::ArrayOf[String]
199
+
200
+ # @!method initialize(file_urls:, type:, keywords: nil)
201
+ # @param file_urls [Array<String>]
202
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2::Type]
203
+ # @param keywords [Array<String>]
204
+
205
+ # @see SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2#type
206
+ module Type
207
+ extend SurgeAPI::Internal::Type::Enum
208
+
209
+ TEXT = :text
210
+
211
+ # @!method self.values
212
+ # @return [Array<Symbol>]
213
+ end
214
+ end
215
+
216
+ class UnionMember3 < SurgeAPI::Internal::Type::BaseModel
217
+ # @!attribute file_urls
218
+ #
219
+ # @return [Array<String>]
220
+ required :file_urls, SurgeAPI::Internal::Type::ArrayOf[String]
221
+
222
+ # @!attribute type
223
+ #
224
+ # @return [Symbol, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3::Type]
225
+ required :type, enum: -> { SurgeAPI::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3::Type }
226
+
227
+ # @!method initialize(file_urls:, type:)
228
+ # @param file_urls [Array<String>]
229
+ # @param type [Symbol, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3::Type]
230
+
231
+ # @see SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3#type
232
+ module Type
233
+ extend SurgeAPI::Internal::Type::Enum
234
+
235
+ PAPER_FORM = :paper_form
236
+
237
+ # @!method self.values
238
+ # @return [Array<Symbol>]
239
+ end
240
+ end
241
+
242
+ # @!method self.variants
243
+ # @return [Array(SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember0, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember1, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember2, SurgeAPI::Models::TollFreeCampaignUpdateParams::ConsentFlow::UnionMember3)]
244
+ end
245
+
246
+ module Include
247
+ extend SurgeAPI::Internal::Type::Enum
248
+
249
+ AGE_GATED = :age_gated
250
+
251
+ # @!method self.values
252
+ # @return [Array<Symbol>]
253
+ end
254
+
255
+ module UseCase
256
+ extend SurgeAPI::Internal::Type::Enum
257
+
258
+ TWO_FACTOR_AUTHENTICATION = :two_factor_authentication
259
+ ACCOUNT_NOTIFICATION = :account_notification
260
+ CUSTOMER_CARE = :customer_care
261
+ CHARITY = :charity
262
+ DELIVERY_NOTIFICATION = :delivery_notification
263
+ FRAUD_ALERT = :fraud_alert
264
+ EVENT = :event
265
+ HIGHER_EDUCATION = :higher_education
266
+ K12_EDUCATION = :k12_education
267
+ MARKETING = :marketing
268
+ POLLING_VOTING = :polling_voting
269
+ POLITICAL = :political
270
+ PUBLIC_SERVICE_ANNOUNCEMENT = :public_service_announcement
271
+ SECURITY_ALERT = :security_alert
272
+
273
+ # @!method self.values
274
+ # @return [Array<Symbol>]
275
+ end
276
+ end
277
+ end
278
+ end
@@ -11,6 +11,12 @@ module SurgeAPI
11
11
 
12
12
  variant :"campaign.approved", -> { SurgeAPI::CampaignApprovedWebhookEvent }
13
13
 
14
+ variant :"campaign.rejected", -> { SurgeAPI::CampaignRejectedWebhookEvent }
15
+
16
+ variant :"campaign.submitted", -> { SurgeAPI::CampaignSubmittedWebhookEvent }
17
+
18
+ variant :"campaign.warning", -> { SurgeAPI::CampaignWarningWebhookEvent }
19
+
14
20
  variant :"contact.opted_in", -> { SurgeAPI::ContactOptedInWebhookEvent }
15
21
 
16
22
  variant :"contact.opted_out", -> { SurgeAPI::ContactOptedOutWebhookEvent }
@@ -29,12 +35,14 @@ module SurgeAPI
29
35
 
30
36
  variant :"phone_number.attached_to_campaign", -> { SurgeAPI::PhoneNumberAttachedToCampaignWebhookEvent }
31
37
 
38
+ variant :"phone_number.imported", -> { SurgeAPI::PhoneNumberImportedWebhookEvent }
39
+
32
40
  variant :"recording.completed", -> { SurgeAPI::RecordingCompletedWebhookEvent }
33
41
 
34
42
  variant :"voicemail.received", -> { SurgeAPI::VoicemailReceivedWebhookEvent }
35
43
 
36
44
  # @!method self.variants
37
- # @return [Array(SurgeAPI::Models::CallEndedWebhookEvent, SurgeAPI::Models::CampaignApprovedWebhookEvent, SurgeAPI::Models::ContactOptedInWebhookEvent, SurgeAPI::Models::ContactOptedOutWebhookEvent, SurgeAPI::Models::ConversationCreatedWebhookEvent, SurgeAPI::Models::LinkFollowedWebhookEvent, SurgeAPI::Models::MessageDeliveredWebhookEvent, SurgeAPI::Models::MessageFailedWebhookEvent, SurgeAPI::Models::MessageReceivedWebhookEvent, SurgeAPI::Models::MessageSentWebhookEvent, SurgeAPI::Models::PhoneNumberAttachedToCampaignWebhookEvent, SurgeAPI::Models::RecordingCompletedWebhookEvent, SurgeAPI::Models::VoicemailReceivedWebhookEvent)]
45
+ # @return [Array(SurgeAPI::Models::CallEndedWebhookEvent, SurgeAPI::Models::CampaignApprovedWebhookEvent, SurgeAPI::Models::CampaignRejectedWebhookEvent, SurgeAPI::Models::CampaignSubmittedWebhookEvent, SurgeAPI::Models::CampaignWarningWebhookEvent, SurgeAPI::Models::ContactOptedInWebhookEvent, SurgeAPI::Models::ContactOptedOutWebhookEvent, SurgeAPI::Models::ConversationCreatedWebhookEvent, SurgeAPI::Models::LinkFollowedWebhookEvent, SurgeAPI::Models::MessageDeliveredWebhookEvent, SurgeAPI::Models::MessageFailedWebhookEvent, SurgeAPI::Models::MessageReceivedWebhookEvent, SurgeAPI::Models::MessageSentWebhookEvent, SurgeAPI::Models::PhoneNumberAttachedToCampaignWebhookEvent, SurgeAPI::Models::PhoneNumberImportedWebhookEvent, SurgeAPI::Models::RecordingCompletedWebhookEvent, SurgeAPI::Models::VoicemailReceivedWebhookEvent)]
38
46
  end
39
47
  end
40
48
  end
@@ -19,11 +19,25 @@ module SurgeAPI
19
19
  # @return [Integer, nil]
20
20
  optional :duration_seconds, Integer
21
21
 
22
- # @!method initialize(user_id:, duration_seconds: nil, request_options: {})
22
+ # @!attribute read_only
23
+ # Restrict the token to viewing embedded conversations and unread counts. Sending
24
+ # messages, changing read state, editing contacts, and calling are disabled.
25
+ # Defaults to false. Preserve this value when refreshing the token; changing
26
+ # access mode requires reloading the embed.
27
+ #
28
+ # @return [Boolean, nil]
29
+ optional :read_only, SurgeAPI::Internal::Type::Boolean
30
+
31
+ # @!method initialize(user_id:, duration_seconds: nil, read_only: nil, request_options: {})
32
+ # Some parameter documentations has been truncated, see
33
+ # {SurgeAPI::Models::UserCreateTokenParams} for more details.
34
+ #
23
35
  # @param user_id [String] The user for which the token represents authentication.
24
36
  #
25
37
  # @param duration_seconds [Integer] For how many seconds the token should be accepted. Defaults to 15 minutes.
26
38
  #
39
+ # @param read_only [Boolean] Restrict the token to viewing embedded conversations and unread counts. Sending
40
+ #
27
41
  # @param request_options [SurgeAPI::RequestOptions, Hash{Symbol=>Object}]
28
42
  end
29
43
  end