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,126 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type toll_free_campaign =
4
+ {
5
+ id: String,
6
+ consent_flows: ::Array[SurgeAPI::Models::toll_free_campaign_consent_flow],
7
+ description: String?,
8
+ includes: ::Array[SurgeAPI::Models::TollFreeCampaign::include_],
9
+ message_samples: ::Array[String],
10
+ phone_number_id: String,
11
+ privacy_policy_url: String?,
12
+ status: SurgeAPI::Models::TollFreeCampaign::status,
13
+ terms_and_conditions_url: String?,
14
+ use_cases: ::Array[SurgeAPI::Models::TollFreeCampaign::use_case]
15
+ }
16
+
17
+ class TollFreeCampaign < SurgeAPI::Internal::Type::BaseModel
18
+ attr_accessor id: String
19
+
20
+ attr_accessor consent_flows: ::Array[SurgeAPI::Models::toll_free_campaign_consent_flow]
21
+
22
+ attr_accessor description: String?
23
+
24
+ attr_accessor includes: ::Array[SurgeAPI::Models::TollFreeCampaign::include_]
25
+
26
+ attr_accessor message_samples: ::Array[String]
27
+
28
+ attr_accessor phone_number_id: String
29
+
30
+ attr_accessor privacy_policy_url: String?
31
+
32
+ attr_accessor status: SurgeAPI::Models::TollFreeCampaign::status
33
+
34
+ attr_accessor terms_and_conditions_url: String?
35
+
36
+ attr_accessor use_cases: ::Array[SurgeAPI::Models::TollFreeCampaign::use_case]
37
+
38
+ def initialize: (
39
+ id: String,
40
+ consent_flows: ::Array[SurgeAPI::Models::toll_free_campaign_consent_flow],
41
+ description: String?,
42
+ includes: ::Array[SurgeAPI::Models::TollFreeCampaign::include_],
43
+ message_samples: ::Array[String],
44
+ phone_number_id: String,
45
+ privacy_policy_url: String?,
46
+ status: SurgeAPI::Models::TollFreeCampaign::status,
47
+ terms_and_conditions_url: String?,
48
+ use_cases: ::Array[SurgeAPI::Models::TollFreeCampaign::use_case]
49
+ ) -> void
50
+
51
+ def to_hash: -> {
52
+ id: String,
53
+ consent_flows: ::Array[SurgeAPI::Models::toll_free_campaign_consent_flow],
54
+ description: String?,
55
+ includes: ::Array[SurgeAPI::Models::TollFreeCampaign::include_],
56
+ message_samples: ::Array[String],
57
+ phone_number_id: String,
58
+ privacy_policy_url: String?,
59
+ status: SurgeAPI::Models::TollFreeCampaign::status,
60
+ terms_and_conditions_url: String?,
61
+ use_cases: ::Array[SurgeAPI::Models::TollFreeCampaign::use_case]
62
+ }
63
+
64
+ type include_ = :age_gated
65
+
66
+ module Include
67
+ extend SurgeAPI::Internal::Type::Enum
68
+
69
+ AGE_GATED: :age_gated
70
+
71
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaign::include_]
72
+ end
73
+
74
+ type status = :active | :canceled | :created | :in_review | :rejected
75
+
76
+ module Status
77
+ extend SurgeAPI::Internal::Type::Enum
78
+
79
+ ACTIVE: :active
80
+ CANCELED: :canceled
81
+ CREATED: :created
82
+ IN_REVIEW: :in_review
83
+ REJECTED: :rejected
84
+
85
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaign::status]
86
+ end
87
+
88
+ type use_case =
89
+ :two_factor_authentication
90
+ | :account_notification
91
+ | :customer_care
92
+ | :charity
93
+ | :delivery_notification
94
+ | :fraud_alert
95
+ | :event
96
+ | :higher_education
97
+ | :k12_education
98
+ | :marketing
99
+ | :polling_voting
100
+ | :political
101
+ | :public_service_announcement
102
+ | :security_alert
103
+
104
+ module UseCase
105
+ extend SurgeAPI::Internal::Type::Enum
106
+
107
+ TWO_FACTOR_AUTHENTICATION: :two_factor_authentication
108
+ ACCOUNT_NOTIFICATION: :account_notification
109
+ CUSTOMER_CARE: :customer_care
110
+ CHARITY: :charity
111
+ DELIVERY_NOTIFICATION: :delivery_notification
112
+ FRAUD_ALERT: :fraud_alert
113
+ EVENT: :event
114
+ HIGHER_EDUCATION: :higher_education
115
+ K12_EDUCATION: :k12_education
116
+ MARKETING: :marketing
117
+ POLLING_VOTING: :polling_voting
118
+ POLITICAL: :political
119
+ PUBLIC_SERVICE_ANNOUNCEMENT: :public_service_announcement
120
+ SECURITY_ALERT: :security_alert
121
+
122
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaign::use_case]
123
+ end
124
+ end
125
+ end
126
+ end
@@ -0,0 +1,207 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type toll_free_campaign_consent_flow =
4
+ SurgeAPI::TollFreeCampaignConsentFlow::UnionMember0
5
+ | SurgeAPI::TollFreeCampaignConsentFlow::UnionMember1
6
+ | SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2
7
+ | SurgeAPI::TollFreeCampaignConsentFlow::UnionMember3
8
+ | SurgeAPI::TollFreeCampaignConsentFlow::Type
9
+
10
+ module TollFreeCampaignConsentFlow
11
+ extend SurgeAPI::Internal::Type::Union
12
+
13
+ type union_member0 =
14
+ {
15
+ script: String,
16
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember0::type_
17
+ }
18
+
19
+ class UnionMember0 < SurgeAPI::Internal::Type::BaseModel
20
+ attr_accessor script: String
21
+
22
+ attr_accessor type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember0::type_
23
+
24
+ def initialize: (
25
+ script: String,
26
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember0::type_
27
+ ) -> void
28
+
29
+ def to_hash: -> {
30
+ script: String,
31
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember0::type_
32
+ }
33
+
34
+ type type_ = :verbal
35
+
36
+ module Type
37
+ extend SurgeAPI::Internal::Type::Enum
38
+
39
+ VERBAL: :verbal
40
+
41
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember0::type_]
42
+ end
43
+ end
44
+
45
+ type union_member1 =
46
+ {
47
+ form_url: String,
48
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember1::type_
49
+ }
50
+
51
+ class UnionMember1 < SurgeAPI::Internal::Type::BaseModel
52
+ attr_accessor form_url: String
53
+
54
+ attr_accessor type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember1::type_
55
+
56
+ def initialize: (
57
+ form_url: String,
58
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember1::type_
59
+ ) -> void
60
+
61
+ def to_hash: -> {
62
+ form_url: String,
63
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember1::type_
64
+ }
65
+
66
+ type type_ = :web_form
67
+
68
+ module Type
69
+ extend SurgeAPI::Internal::Type::Enum
70
+
71
+ WEB_FORM: :web_form
72
+
73
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember1::type_]
74
+ end
75
+ end
76
+
77
+ type union_member2 =
78
+ {
79
+ screenshot: SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot,
80
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::type_
81
+ }
82
+
83
+ class UnionMember2 < SurgeAPI::Internal::Type::BaseModel
84
+ attr_accessor screenshot: SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot
85
+
86
+ attr_accessor type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::type_
87
+
88
+ def initialize: (
89
+ screenshot: SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot,
90
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::type_
91
+ ) -> void
92
+
93
+ def to_hash: -> {
94
+ screenshot: SurgeAPI::TollFreeCampaignConsentFlow::UnionMember2::Screenshot,
95
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::type_
96
+ }
97
+
98
+ type screenshot =
99
+ {
100
+ reason: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::reason,
101
+ reason_other: String
102
+ }
103
+
104
+ class Screenshot < SurgeAPI::Internal::Type::BaseModel
105
+ attr_accessor reason: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::reason
106
+
107
+ attr_reader reason_other: String?
108
+
109
+ def reason_other=: (String) -> String
110
+
111
+ def initialize: (
112
+ reason: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::reason,
113
+ ?reason_other: String
114
+ ) -> void
115
+
116
+ def to_hash: -> {
117
+ reason: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::reason,
118
+ reason_other: String
119
+ }
120
+
121
+ type reason = :behind_login | :under_construction | :other
122
+
123
+ module Reason
124
+ extend SurgeAPI::Internal::Type::Enum
125
+
126
+ BEHIND_LOGIN: :behind_login
127
+ UNDER_CONSTRUCTION: :under_construction
128
+ OTHER: :other
129
+
130
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::Screenshot::reason]
131
+ end
132
+ end
133
+
134
+ type type_ = :web_form
135
+
136
+ module Type
137
+ extend SurgeAPI::Internal::Type::Enum
138
+
139
+ WEB_FORM: :web_form
140
+
141
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember2::type_]
142
+ end
143
+ end
144
+
145
+ type union_member3 =
146
+ {
147
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember3::type_,
148
+ keywords: ::Array[String]
149
+ }
150
+
151
+ class UnionMember3 < SurgeAPI::Internal::Type::BaseModel
152
+ attr_accessor type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember3::type_
153
+
154
+ attr_reader keywords: ::Array[String]?
155
+
156
+ def keywords=: (::Array[String]) -> ::Array[String]
157
+
158
+ def initialize: (
159
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember3::type_,
160
+ ?keywords: ::Array[String]
161
+ ) -> void
162
+
163
+ def to_hash: -> {
164
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember3::type_,
165
+ keywords: ::Array[String]
166
+ }
167
+
168
+ type type_ = :text
169
+
170
+ module Type
171
+ extend SurgeAPI::Internal::Type::Enum
172
+
173
+ TEXT: :text
174
+
175
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaignConsentFlow::UnionMember3::type_]
176
+ end
177
+ end
178
+
179
+ type type_ =
180
+ { type: SurgeAPI::Models::TollFreeCampaignConsentFlow::Type::type_ }
181
+
182
+ class Type < SurgeAPI::Internal::Type::BaseModel
183
+ attr_accessor type: SurgeAPI::Models::TollFreeCampaignConsentFlow::Type::type_
184
+
185
+ def initialize: (
186
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::Type::type_
187
+ ) -> void
188
+
189
+ def to_hash: -> {
190
+ type: SurgeAPI::Models::TollFreeCampaignConsentFlow::Type::type_
191
+ }
192
+
193
+ type type_ = :paper_form
194
+
195
+ module Type
196
+ extend SurgeAPI::Internal::Type::Enum
197
+
198
+ PAPER_FORM: :paper_form
199
+
200
+ def self?.values: -> ::Array[SurgeAPI::Models::TollFreeCampaignConsentFlow::Type::type_]
201
+ end
202
+ end
203
+
204
+ def self?.variants: -> ::Array[SurgeAPI::Models::toll_free_campaign_consent_flow]
205
+ end
206
+ end
207
+ end
@@ -0,0 +1,25 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type toll_free_campaign_create_params =
4
+ { account_id: String } & SurgeAPI::Internal::Type::request_parameters
5
+
6
+ class TollFreeCampaignCreateParams < SurgeAPI::Models::TollFreeCampaignParams
7
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
8
+ include SurgeAPI::Internal::Type::RequestParameters
9
+
10
+ def account_id: -> String
11
+
12
+ def account_id=: (String _) -> String
13
+
14
+ def initialize: (
15
+ account_id: String,
16
+ ?request_options: SurgeAPI::request_opts
17
+ ) -> void
18
+
19
+ def to_hash: -> {
20
+ account_id: String,
21
+ request_options: SurgeAPI::RequestOptions
22
+ }
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,36 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type toll_free_campaign_list_params =
4
+ { account_id: String, after: String, before: String }
5
+ & SurgeAPI::Internal::Type::request_parameters
6
+
7
+ class TollFreeCampaignListParams < SurgeAPI::Internal::Type::BaseModel
8
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
9
+ include SurgeAPI::Internal::Type::RequestParameters
10
+
11
+ attr_accessor account_id: String
12
+
13
+ attr_reader after: String?
14
+
15
+ def after=: (String) -> String
16
+
17
+ attr_reader before: String?
18
+
19
+ def before=: (String) -> String
20
+
21
+ def initialize: (
22
+ account_id: String,
23
+ ?after: String,
24
+ ?before: String,
25
+ ?request_options: SurgeAPI::request_opts
26
+ ) -> void
27
+
28
+ def to_hash: -> {
29
+ account_id: String,
30
+ after: String,
31
+ before: String,
32
+ request_options: SurgeAPI::RequestOptions
33
+ }
34
+ end
35
+ end
36
+ end