surge_api 0.17.0 → 0.18.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 (155) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/README.md +51 -16
  4. data/lib/surge_api/client.rb +22 -1
  5. data/lib/surge_api/internal/transport/base_client.rb +5 -0
  6. data/lib/surge_api/internal/util.rb +22 -7
  7. data/lib/surge_api/models/account_archive_params.rb +9 -1
  8. data/lib/surge_api/models/account_retrieve_status_params.rb +9 -1
  9. data/lib/surge_api/models/account_update_params.rb +9 -1
  10. data/lib/surge_api/models/attachment_get_file_params.rb +9 -1
  11. data/lib/surge_api/models/audience_add_contact_params.rb +9 -1
  12. data/lib/surge_api/models/audience_create_params.rb +9 -1
  13. data/lib/surge_api/models/audience_list_contacts_params.rb +9 -1
  14. data/lib/surge_api/models/blast_create_params.rb +9 -1
  15. data/lib/surge_api/models/campaign_create_params.rb +6 -10
  16. data/lib/surge_api/models/campaign_list_params.rb +9 -1
  17. data/lib/surge_api/models/campaign_retrieve_params.rb +9 -1
  18. data/lib/surge_api/models/campaign_update_params.rb +6 -10
  19. data/lib/surge_api/models/contact_create_params.rb +9 -1
  20. data/lib/surge_api/models/contact_list_params.rb +9 -1
  21. data/lib/surge_api/models/contact_retrieve_params.rb +9 -1
  22. data/lib/surge_api/models/contact_update_params.rb +9 -1
  23. data/lib/surge_api/models/message.rb +1 -0
  24. data/lib/surge_api/models/message_create_params.rb +6 -11
  25. data/lib/surge_api/models/message_delivered_webhook_event.rb +1 -0
  26. data/lib/surge_api/models/message_failed_webhook_event.rb +1 -0
  27. data/lib/surge_api/models/message_list_params.rb +9 -1
  28. data/lib/surge_api/models/message_params.rb +74 -2
  29. data/lib/surge_api/models/message_received_webhook_event.rb +1 -0
  30. data/lib/surge_api/models/message_retrieve_params.rb +9 -1
  31. data/lib/surge_api/models/message_sent_webhook_event.rb +1 -0
  32. data/lib/surge_api/models/phone_number.rb +1 -1
  33. data/lib/surge_api/models/phone_number_list_params.rb +9 -1
  34. data/lib/surge_api/models/phone_number_purchase_params.rb +9 -1
  35. data/lib/surge_api/models/phone_number_release_params.rb +22 -0
  36. data/lib/surge_api/models/phone_number_update_params.rb +38 -0
  37. data/lib/surge_api/models/recording_delete_params.rb +9 -1
  38. data/lib/surge_api/models/recording_get_file_params.rb +9 -1
  39. data/lib/surge_api/models/recording_list_params.rb +9 -1
  40. data/lib/surge_api/models/recording_retrieve_params.rb +9 -1
  41. data/lib/surge_api/models/user_create_params.rb +9 -1
  42. data/lib/surge_api/models/user_create_token_params.rb +9 -1
  43. data/lib/surge_api/models/user_delete_params.rb +9 -1
  44. data/lib/surge_api/models/user_list_params.rb +9 -1
  45. data/lib/surge_api/models/user_retrieve_params.rb +9 -1
  46. data/lib/surge_api/models/user_update_params.rb +9 -1
  47. data/lib/surge_api/models/verification_check_params.rb +9 -1
  48. data/lib/surge_api/models/verification_create_params.rb +9 -1
  49. data/lib/surge_api/models.rb +4 -0
  50. data/lib/surge_api/resources/campaigns.rb +4 -14
  51. data/lib/surge_api/resources/messages.rb +6 -7
  52. data/lib/surge_api/resources/phone_numbers.rb +46 -0
  53. data/lib/surge_api/resources/verifications.rb +7 -4
  54. data/lib/surge_api/resources/webhooks.rb +11 -1
  55. data/lib/surge_api/version.rb +1 -1
  56. data/lib/surge_api.rb +3 -0
  57. data/rbi/surge_api/client.rbi +6 -0
  58. data/rbi/surge_api/internal/util.rbi +8 -0
  59. data/rbi/surge_api/models/account_archive_params.rbi +18 -5
  60. data/rbi/surge_api/models/account_retrieve_status_params.rbi +8 -0
  61. data/rbi/surge_api/models/account_update_params.rbi +8 -0
  62. data/rbi/surge_api/models/attachment_get_file_params.rbi +18 -5
  63. data/rbi/surge_api/models/audience_add_contact_params.rbi +12 -1
  64. data/rbi/surge_api/models/audience_create_params.rbi +12 -1
  65. data/rbi/surge_api/models/audience_list_contacts_params.rbi +8 -0
  66. data/rbi/surge_api/models/blast_create_params.rbi +8 -0
  67. data/rbi/surge_api/models/campaign_create_params.rbi +7 -27
  68. data/rbi/surge_api/models/campaign_list_params.rbi +8 -0
  69. data/rbi/surge_api/models/campaign_retrieve_params.rbi +18 -5
  70. data/rbi/surge_api/models/campaign_update_params.rbi +7 -27
  71. data/rbi/surge_api/models/contact_create_params.rbi +8 -0
  72. data/rbi/surge_api/models/contact_list_params.rbi +8 -0
  73. data/rbi/surge_api/models/contact_retrieve_params.rbi +18 -5
  74. data/rbi/surge_api/models/contact_update_params.rbi +8 -0
  75. data/rbi/surge_api/models/message.rbi +2 -0
  76. data/rbi/surge_api/models/message_create_params.rbi +7 -29
  77. data/rbi/surge_api/models/message_delivered_webhook_event.rbi +5 -0
  78. data/rbi/surge_api/models/message_failed_webhook_event.rbi +5 -0
  79. data/rbi/surge_api/models/message_list_params.rbi +8 -0
  80. data/rbi/surge_api/models/message_params.rbi +225 -6
  81. data/rbi/surge_api/models/message_received_webhook_event.rbi +5 -0
  82. data/rbi/surge_api/models/message_retrieve_params.rbi +18 -5
  83. data/rbi/surge_api/models/message_sent_webhook_event.rbi +5 -0
  84. data/rbi/surge_api/models/phone_number_list_params.rbi +8 -0
  85. data/rbi/surge_api/models/phone_number_purchase_params.rbi +8 -0
  86. data/rbi/surge_api/models/phone_number_release_params.rbi +40 -0
  87. data/rbi/surge_api/models/phone_number_update_params.rbi +65 -0
  88. data/rbi/surge_api/models/recording_delete_params.rbi +18 -5
  89. data/rbi/surge_api/models/recording_get_file_params.rbi +18 -5
  90. data/rbi/surge_api/models/recording_list_params.rbi +8 -0
  91. data/rbi/surge_api/models/recording_retrieve_params.rbi +18 -5
  92. data/rbi/surge_api/models/user_create_params.rbi +8 -0
  93. data/rbi/surge_api/models/user_create_token_params.rbi +8 -0
  94. data/rbi/surge_api/models/user_delete_params.rbi +18 -5
  95. data/rbi/surge_api/models/user_list_params.rbi +8 -0
  96. data/rbi/surge_api/models/user_retrieve_params.rbi +18 -5
  97. data/rbi/surge_api/models/user_update_params.rbi +8 -0
  98. data/rbi/surge_api/models/verification_check_params.rbi +12 -1
  99. data/rbi/surge_api/models/verification_create_params.rbi +12 -1
  100. data/rbi/surge_api/models.rbi +4 -0
  101. data/rbi/surge_api/resources/campaigns.rbi +10 -2
  102. data/rbi/surge_api/resources/messages.rbi +9 -1
  103. data/rbi/surge_api/resources/phone_numbers.rbi +34 -0
  104. data/rbi/surge_api/resources/verifications.rbi +5 -1
  105. data/rbi/surge_api/resources/webhooks.rbi +10 -2
  106. data/sig/surge_api/client.rbs +3 -0
  107. data/sig/surge_api/internal/util.rbs +4 -0
  108. data/sig/surge_api/models/account_archive_params.rbs +8 -3
  109. data/sig/surge_api/models/account_retrieve_status_params.rbs +5 -0
  110. data/sig/surge_api/models/account_update_params.rbs +5 -0
  111. data/sig/surge_api/models/attachment_get_file_params.rbs +11 -3
  112. data/sig/surge_api/models/audience_add_contact_params.rbs +10 -2
  113. data/sig/surge_api/models/audience_create_params.rbs +6 -1
  114. data/sig/surge_api/models/audience_list_contacts_params.rbs +5 -1
  115. data/sig/surge_api/models/blast_create_params.rbs +5 -0
  116. data/sig/surge_api/models/campaign_create_params.rbs +4 -9
  117. data/sig/surge_api/models/campaign_list_params.rbs +5 -1
  118. data/sig/surge_api/models/campaign_retrieve_params.rbs +8 -3
  119. data/sig/surge_api/models/campaign_update_params.rbs +4 -12
  120. data/sig/surge_api/models/contact_create_params.rbs +5 -0
  121. data/sig/surge_api/models/contact_list_params.rbs +5 -1
  122. data/sig/surge_api/models/contact_retrieve_params.rbs +8 -3
  123. data/sig/surge_api/models/contact_update_params.rbs +5 -0
  124. data/sig/surge_api/models/message.rbs +2 -1
  125. data/sig/surge_api/models/message_create_params.rbs +4 -9
  126. data/sig/surge_api/models/message_delivered_webhook_event.rbs +2 -1
  127. data/sig/surge_api/models/message_failed_webhook_event.rbs +2 -1
  128. data/sig/surge_api/models/message_list_params.rbs +5 -1
  129. data/sig/surge_api/models/message_params.rbs +88 -6
  130. data/sig/surge_api/models/message_received_webhook_event.rbs +2 -1
  131. data/sig/surge_api/models/message_retrieve_params.rbs +8 -3
  132. data/sig/surge_api/models/message_sent_webhook_event.rbs +2 -1
  133. data/sig/surge_api/models/phone_number_list_params.rbs +5 -1
  134. data/sig/surge_api/models/phone_number_purchase_params.rbs +5 -0
  135. data/sig/surge_api/models/phone_number_release_params.rbs +20 -0
  136. data/sig/surge_api/models/phone_number_update_params.rbs +36 -0
  137. data/sig/surge_api/models/recording_delete_params.rbs +8 -3
  138. data/sig/surge_api/models/recording_get_file_params.rbs +11 -3
  139. data/sig/surge_api/models/recording_list_params.rbs +5 -1
  140. data/sig/surge_api/models/recording_retrieve_params.rbs +8 -3
  141. data/sig/surge_api/models/user_create_params.rbs +5 -0
  142. data/sig/surge_api/models/user_create_token_params.rbs +5 -1
  143. data/sig/surge_api/models/user_delete_params.rbs +8 -3
  144. data/sig/surge_api/models/user_list_params.rbs +5 -1
  145. data/sig/surge_api/models/user_retrieve_params.rbs +8 -3
  146. data/sig/surge_api/models/user_update_params.rbs +5 -0
  147. data/sig/surge_api/models/verification_check_params.rbs +6 -1
  148. data/sig/surge_api/models/verification_create_params.rbs +6 -1
  149. data/sig/surge_api/models.rbs +4 -0
  150. data/sig/surge_api/resources/campaigns.rbs +2 -2
  151. data/sig/surge_api/resources/messages.rbs +1 -1
  152. data/sig/surge_api/resources/phone_numbers.rbs +12 -0
  153. data/sig/surge_api/resources/verifications.rbs +1 -0
  154. data/sig/surge_api/resources/webhooks.rbs +3 -1
  155. metadata +22 -2
@@ -1,15 +1,20 @@
1
1
  module SurgeAPI
2
2
  module Models
3
3
  type user_retrieve_params =
4
- { } & SurgeAPI::Internal::Type::request_parameters
4
+ { id: String } & SurgeAPI::Internal::Type::request_parameters
5
5
 
6
6
  class UserRetrieveParams < SurgeAPI::Internal::Type::BaseModel
7
7
  extend SurgeAPI::Internal::Type::RequestParameters::Converter
8
8
  include SurgeAPI::Internal::Type::RequestParameters
9
9
 
10
- def initialize: (?request_options: SurgeAPI::request_opts) -> void
10
+ attr_accessor id: String
11
11
 
12
- def to_hash: -> { request_options: SurgeAPI::RequestOptions }
12
+ def initialize: (
13
+ id: String,
14
+ ?request_options: SurgeAPI::request_opts
15
+ ) -> void
16
+
17
+ def to_hash: -> { id: String, request_options: SurgeAPI::RequestOptions }
13
18
  end
14
19
  end
15
20
  end
@@ -2,6 +2,7 @@ module SurgeAPI
2
2
  module Models
3
3
  type user_update_params =
4
4
  {
5
+ id: String,
5
6
  first_name: String,
6
7
  last_name: String,
7
8
  metadata: ::Hash[Symbol, String],
@@ -13,6 +14,8 @@ module SurgeAPI
13
14
  extend SurgeAPI::Internal::Type::RequestParameters::Converter
14
15
  include SurgeAPI::Internal::Type::RequestParameters
15
16
 
17
+ attr_accessor id: String
18
+
16
19
  attr_accessor first_name: String
17
20
 
18
21
  attr_reader last_name: String?
@@ -28,6 +31,7 @@ module SurgeAPI
28
31
  def photo_url=: (String) -> String
29
32
 
30
33
  def initialize: (
34
+ id: String,
31
35
  first_name: String,
32
36
  ?last_name: String,
33
37
  ?metadata: ::Hash[Symbol, String],
@@ -36,6 +40,7 @@ module SurgeAPI
36
40
  ) -> void
37
41
 
38
42
  def to_hash: -> {
43
+ id: String,
39
44
  first_name: String,
40
45
  last_name: String,
41
46
  metadata: ::Hash[Symbol, String],
@@ -1,20 +1,25 @@
1
1
  module SurgeAPI
2
2
  module Models
3
3
  type verification_check_params =
4
- { code: String } & SurgeAPI::Internal::Type::request_parameters
4
+ { id: String, code: String }
5
+ & SurgeAPI::Internal::Type::request_parameters
5
6
 
6
7
  class VerificationCheckParams < SurgeAPI::Internal::Type::BaseModel
7
8
  extend SurgeAPI::Internal::Type::RequestParameters::Converter
8
9
  include SurgeAPI::Internal::Type::RequestParameters
9
10
 
11
+ attr_accessor id: String
12
+
10
13
  attr_accessor code: String
11
14
 
12
15
  def initialize: (
16
+ id: String,
13
17
  code: String,
14
18
  ?request_options: SurgeAPI::request_opts
15
19
  ) -> void
16
20
 
17
21
  def to_hash: -> {
22
+ id: String,
18
23
  code: String,
19
24
  request_options: SurgeAPI::RequestOptions
20
25
  }
@@ -1,20 +1,25 @@
1
1
  module SurgeAPI
2
2
  module Models
3
3
  type verification_create_params =
4
- { phone_number: String } & SurgeAPI::Internal::Type::request_parameters
4
+ { account_id: String, phone_number: String }
5
+ & SurgeAPI::Internal::Type::request_parameters
5
6
 
6
7
  class VerificationCreateParams < SurgeAPI::Internal::Type::BaseModel
7
8
  extend SurgeAPI::Internal::Type::RequestParameters::Converter
8
9
  include SurgeAPI::Internal::Type::RequestParameters
9
10
 
11
+ attr_accessor account_id: String
12
+
10
13
  attr_accessor phone_number: String
11
14
 
12
15
  def initialize: (
16
+ account_id: String,
13
17
  phone_number: String,
14
18
  ?request_options: SurgeAPI::request_opts
15
19
  ) -> void
16
20
 
17
21
  def to_hash: -> {
22
+ account_id: String,
18
23
  phone_number: String,
19
24
  request_options: SurgeAPI::RequestOptions
20
25
  }
@@ -89,6 +89,10 @@ module SurgeAPI
89
89
 
90
90
  class PhoneNumberPurchaseParams = SurgeAPI::Models::PhoneNumberPurchaseParams
91
91
 
92
+ class PhoneNumberReleaseParams = SurgeAPI::Models::PhoneNumberReleaseParams
93
+
94
+ class PhoneNumberUpdateParams = SurgeAPI::Models::PhoneNumberUpdateParams
95
+
92
96
  class RecordingCompletedWebhookEvent = SurgeAPI::Models::RecordingCompletedWebhookEvent
93
97
 
94
98
  class RecordingDeleteParams = SurgeAPI::Models::RecordingDeleteParams
@@ -3,7 +3,7 @@ module SurgeAPI
3
3
  class Campaigns
4
4
  def create: (
5
5
  String account_id,
6
- campaign_params: SurgeAPI::Models::CampaignParams,
6
+ campaign_params: SurgeAPI::Models::campaign_params,
7
7
  ?request_options: SurgeAPI::request_opts
8
8
  ) -> SurgeAPI::Campaign
9
9
 
@@ -14,7 +14,7 @@ module SurgeAPI
14
14
 
15
15
  def update: (
16
16
  String id,
17
- campaign_params: SurgeAPI::Models::CampaignParams,
17
+ campaign_params: SurgeAPI::Models::campaign_params,
18
18
  ?request_options: SurgeAPI::request_opts
19
19
  ) -> SurgeAPI::Campaign
20
20
 
@@ -3,7 +3,7 @@ module SurgeAPI
3
3
  class Messages
4
4
  def create: (
5
5
  String account_id,
6
- message_params: SurgeAPI::Models::MessageParams,
6
+ message_params: SurgeAPI::Models::message_params,
7
7
  ?request_options: SurgeAPI::request_opts
8
8
  ) -> SurgeAPI::Message
9
9
 
@@ -1,6 +1,13 @@
1
1
  module SurgeAPI
2
2
  module Resources
3
3
  class PhoneNumbers
4
+ def update: (
5
+ String id,
6
+ ?campaign_id: String,
7
+ ?name: String,
8
+ ?request_options: SurgeAPI::request_opts
9
+ ) -> SurgeAPI::PhoneNumber
10
+
4
11
  def list: (
5
12
  String account_id,
6
13
  ?after: String,
@@ -18,6 +25,11 @@ module SurgeAPI
18
25
  ?request_options: SurgeAPI::request_opts
19
26
  ) -> SurgeAPI::PhoneNumber
20
27
 
28
+ def release: (
29
+ String id,
30
+ ?request_options: SurgeAPI::request_opts
31
+ ) -> SurgeAPI::PhoneNumber
32
+
21
33
  def initialize: (client: SurgeAPI::Client) -> void
22
34
  end
23
35
  end
@@ -2,6 +2,7 @@ module SurgeAPI
2
2
  module Resources
3
3
  class Verifications
4
4
  def create: (
5
+ String account_id,
5
6
  phone_number: String,
6
7
  ?request_options: SurgeAPI::request_opts
7
8
  ) -> SurgeAPI::Verification
@@ -2,7 +2,9 @@ module SurgeAPI
2
2
  module Resources
3
3
  class Webhooks
4
4
  def unwrap: (
5
- String payload
5
+ String payload,
6
+ headers: ::Hash[String, String],
7
+ ?key: String?
6
8
  ) -> (SurgeAPI::CallEndedWebhookEvent
7
9
  | SurgeAPI::CampaignApprovedWebhookEvent
8
10
  | SurgeAPI::ContactOptedInWebhookEvent
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: surge_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Surge
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-05-04 00:00:00.000000000 Z
11
+ date: 2026-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: standardwebhooks
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  description:
42
56
  email: support@surge.app
43
57
  executables: []
@@ -117,6 +131,8 @@ files:
117
131
  - lib/surge_api/models/phone_number_attached_to_campaign_webhook_event.rb
118
132
  - lib/surge_api/models/phone_number_list_params.rb
119
133
  - lib/surge_api/models/phone_number_purchase_params.rb
134
+ - lib/surge_api/models/phone_number_release_params.rb
135
+ - lib/surge_api/models/phone_number_update_params.rb
120
136
  - lib/surge_api/models/recording_completed_webhook_event.rb
121
137
  - lib/surge_api/models/recording_delete_params.rb
122
138
  - lib/surge_api/models/recording_delete_response.rb
@@ -223,6 +239,8 @@ files:
223
239
  - rbi/surge_api/models/phone_number_attached_to_campaign_webhook_event.rbi
224
240
  - rbi/surge_api/models/phone_number_list_params.rbi
225
241
  - rbi/surge_api/models/phone_number_purchase_params.rbi
242
+ - rbi/surge_api/models/phone_number_release_params.rbi
243
+ - rbi/surge_api/models/phone_number_update_params.rbi
226
244
  - rbi/surge_api/models/recording_completed_webhook_event.rbi
227
245
  - rbi/surge_api/models/recording_delete_params.rbi
228
246
  - rbi/surge_api/models/recording_delete_response.rbi
@@ -328,6 +346,8 @@ files:
328
346
  - sig/surge_api/models/phone_number_attached_to_campaign_webhook_event.rbs
329
347
  - sig/surge_api/models/phone_number_list_params.rbs
330
348
  - sig/surge_api/models/phone_number_purchase_params.rbs
349
+ - sig/surge_api/models/phone_number_release_params.rbs
350
+ - sig/surge_api/models/phone_number_update_params.rbs
331
351
  - sig/surge_api/models/recording_completed_webhook_event.rbs
332
352
  - sig/surge_api/models/recording_delete_params.rbs
333
353
  - sig/surge_api/models/recording_delete_response.rbs