surge_api 0.17.0 → 0.19.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 (164) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -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/call_ended_webhook_event.rb +25 -1
  16. data/lib/surge_api/models/campaign_create_params.rb +6 -10
  17. data/lib/surge_api/models/campaign_list_params.rb +9 -1
  18. data/lib/surge_api/models/campaign_retrieve_params.rb +9 -1
  19. data/lib/surge_api/models/campaign_update_params.rb +6 -10
  20. data/lib/surge_api/models/contact_create_params.rb +9 -1
  21. data/lib/surge_api/models/contact_list_params.rb +9 -1
  22. data/lib/surge_api/models/contact_retrieve_params.rb +9 -1
  23. data/lib/surge_api/models/contact_update_params.rb +9 -1
  24. data/lib/surge_api/models/message.rb +1 -0
  25. data/lib/surge_api/models/message_create_params.rb +6 -11
  26. data/lib/surge_api/models/message_delivered_webhook_event.rb +1 -0
  27. data/lib/surge_api/models/message_failed_webhook_event.rb +1 -0
  28. data/lib/surge_api/models/message_list_params.rb +9 -1
  29. data/lib/surge_api/models/message_params.rb +74 -2
  30. data/lib/surge_api/models/message_received_webhook_event.rb +1 -0
  31. data/lib/surge_api/models/message_retrieve_params.rb +9 -1
  32. data/lib/surge_api/models/message_sent_webhook_event.rb +1 -0
  33. data/lib/surge_api/models/phone_number.rb +1 -1
  34. data/lib/surge_api/models/phone_number_list_params.rb +9 -1
  35. data/lib/surge_api/models/phone_number_purchase_params.rb +9 -1
  36. data/lib/surge_api/models/phone_number_release_params.rb +22 -0
  37. data/lib/surge_api/models/phone_number_update_params.rb +38 -0
  38. data/lib/surge_api/models/recording_completed_webhook_event.rb +25 -1
  39. data/lib/surge_api/models/recording_delete_params.rb +9 -1
  40. data/lib/surge_api/models/recording_get_file_params.rb +9 -1
  41. data/lib/surge_api/models/recording_list_params.rb +9 -1
  42. data/lib/surge_api/models/recording_retrieve_params.rb +9 -1
  43. data/lib/surge_api/models/user_create_params.rb +9 -1
  44. data/lib/surge_api/models/user_create_token_params.rb +9 -1
  45. data/lib/surge_api/models/user_delete_params.rb +9 -1
  46. data/lib/surge_api/models/user_list_params.rb +9 -1
  47. data/lib/surge_api/models/user_retrieve_params.rb +9 -1
  48. data/lib/surge_api/models/user_update_params.rb +9 -1
  49. data/lib/surge_api/models/verification_check_params.rb +9 -1
  50. data/lib/surge_api/models/verification_create_params.rb +9 -1
  51. data/lib/surge_api/models/voicemail_received_webhook_event.rb +25 -1
  52. data/lib/surge_api/models.rb +4 -0
  53. data/lib/surge_api/resources/campaigns.rb +4 -14
  54. data/lib/surge_api/resources/messages.rb +6 -7
  55. data/lib/surge_api/resources/phone_numbers.rb +46 -0
  56. data/lib/surge_api/resources/verifications.rb +7 -4
  57. data/lib/surge_api/resources/webhooks.rb +11 -1
  58. data/lib/surge_api/version.rb +1 -1
  59. data/lib/surge_api.rb +3 -0
  60. data/rbi/surge_api/client.rbi +6 -0
  61. data/rbi/surge_api/internal/util.rbi +8 -0
  62. data/rbi/surge_api/models/account_archive_params.rbi +18 -5
  63. data/rbi/surge_api/models/account_retrieve_status_params.rbi +8 -0
  64. data/rbi/surge_api/models/account_update_params.rbi +8 -0
  65. data/rbi/surge_api/models/attachment_get_file_params.rbi +18 -5
  66. data/rbi/surge_api/models/audience_add_contact_params.rbi +12 -1
  67. data/rbi/surge_api/models/audience_create_params.rbi +12 -1
  68. data/rbi/surge_api/models/audience_list_contacts_params.rbi +8 -0
  69. data/rbi/surge_api/models/blast_create_params.rbi +8 -0
  70. data/rbi/surge_api/models/call_ended_webhook_event.rbi +27 -3
  71. data/rbi/surge_api/models/campaign_create_params.rbi +7 -27
  72. data/rbi/surge_api/models/campaign_list_params.rbi +8 -0
  73. data/rbi/surge_api/models/campaign_retrieve_params.rbi +18 -5
  74. data/rbi/surge_api/models/campaign_update_params.rbi +7 -27
  75. data/rbi/surge_api/models/contact_create_params.rbi +8 -0
  76. data/rbi/surge_api/models/contact_list_params.rbi +8 -0
  77. data/rbi/surge_api/models/contact_retrieve_params.rbi +18 -5
  78. data/rbi/surge_api/models/contact_update_params.rbi +8 -0
  79. data/rbi/surge_api/models/message.rbi +2 -0
  80. data/rbi/surge_api/models/message_create_params.rbi +7 -29
  81. data/rbi/surge_api/models/message_delivered_webhook_event.rbi +5 -0
  82. data/rbi/surge_api/models/message_failed_webhook_event.rbi +5 -0
  83. data/rbi/surge_api/models/message_list_params.rbi +8 -0
  84. data/rbi/surge_api/models/message_params.rbi +225 -6
  85. data/rbi/surge_api/models/message_received_webhook_event.rbi +5 -0
  86. data/rbi/surge_api/models/message_retrieve_params.rbi +18 -5
  87. data/rbi/surge_api/models/message_sent_webhook_event.rbi +5 -0
  88. data/rbi/surge_api/models/phone_number_list_params.rbi +8 -0
  89. data/rbi/surge_api/models/phone_number_purchase_params.rbi +8 -0
  90. data/rbi/surge_api/models/phone_number_release_params.rbi +40 -0
  91. data/rbi/surge_api/models/phone_number_update_params.rbi +65 -0
  92. data/rbi/surge_api/models/recording_completed_webhook_event.rbi +27 -3
  93. data/rbi/surge_api/models/recording_delete_params.rbi +18 -5
  94. data/rbi/surge_api/models/recording_get_file_params.rbi +18 -5
  95. data/rbi/surge_api/models/recording_list_params.rbi +8 -0
  96. data/rbi/surge_api/models/recording_retrieve_params.rbi +18 -5
  97. data/rbi/surge_api/models/user_create_params.rbi +8 -0
  98. data/rbi/surge_api/models/user_create_token_params.rbi +8 -0
  99. data/rbi/surge_api/models/user_delete_params.rbi +18 -5
  100. data/rbi/surge_api/models/user_list_params.rbi +8 -0
  101. data/rbi/surge_api/models/user_retrieve_params.rbi +18 -5
  102. data/rbi/surge_api/models/user_update_params.rbi +8 -0
  103. data/rbi/surge_api/models/verification_check_params.rbi +12 -1
  104. data/rbi/surge_api/models/verification_create_params.rbi +12 -1
  105. data/rbi/surge_api/models/voicemail_received_webhook_event.rbi +27 -3
  106. data/rbi/surge_api/models.rbi +4 -0
  107. data/rbi/surge_api/resources/campaigns.rbi +10 -2
  108. data/rbi/surge_api/resources/messages.rbi +9 -1
  109. data/rbi/surge_api/resources/phone_numbers.rbi +34 -0
  110. data/rbi/surge_api/resources/verifications.rbi +5 -1
  111. data/rbi/surge_api/resources/webhooks.rbi +10 -2
  112. data/sig/surge_api/client.rbs +3 -0
  113. data/sig/surge_api/internal/util.rbs +4 -0
  114. data/sig/surge_api/models/account_archive_params.rbs +8 -3
  115. data/sig/surge_api/models/account_retrieve_status_params.rbs +5 -0
  116. data/sig/surge_api/models/account_update_params.rbs +5 -0
  117. data/sig/surge_api/models/attachment_get_file_params.rbs +11 -3
  118. data/sig/surge_api/models/audience_add_contact_params.rbs +10 -2
  119. data/sig/surge_api/models/audience_create_params.rbs +6 -1
  120. data/sig/surge_api/models/audience_list_contacts_params.rbs +5 -1
  121. data/sig/surge_api/models/blast_create_params.rbs +5 -0
  122. data/sig/surge_api/models/call_ended_webhook_event.rbs +18 -3
  123. data/sig/surge_api/models/campaign_create_params.rbs +4 -9
  124. data/sig/surge_api/models/campaign_list_params.rbs +5 -1
  125. data/sig/surge_api/models/campaign_retrieve_params.rbs +8 -3
  126. data/sig/surge_api/models/campaign_update_params.rbs +4 -12
  127. data/sig/surge_api/models/contact_create_params.rbs +5 -0
  128. data/sig/surge_api/models/contact_list_params.rbs +5 -1
  129. data/sig/surge_api/models/contact_retrieve_params.rbs +8 -3
  130. data/sig/surge_api/models/contact_update_params.rbs +5 -0
  131. data/sig/surge_api/models/message.rbs +2 -1
  132. data/sig/surge_api/models/message_create_params.rbs +4 -9
  133. data/sig/surge_api/models/message_delivered_webhook_event.rbs +2 -1
  134. data/sig/surge_api/models/message_failed_webhook_event.rbs +2 -1
  135. data/sig/surge_api/models/message_list_params.rbs +5 -1
  136. data/sig/surge_api/models/message_params.rbs +88 -6
  137. data/sig/surge_api/models/message_received_webhook_event.rbs +2 -1
  138. data/sig/surge_api/models/message_retrieve_params.rbs +8 -3
  139. data/sig/surge_api/models/message_sent_webhook_event.rbs +2 -1
  140. data/sig/surge_api/models/phone_number_list_params.rbs +5 -1
  141. data/sig/surge_api/models/phone_number_purchase_params.rbs +5 -0
  142. data/sig/surge_api/models/phone_number_release_params.rbs +20 -0
  143. data/sig/surge_api/models/phone_number_update_params.rbs +36 -0
  144. data/sig/surge_api/models/recording_completed_webhook_event.rbs +18 -3
  145. data/sig/surge_api/models/recording_delete_params.rbs +8 -3
  146. data/sig/surge_api/models/recording_get_file_params.rbs +11 -3
  147. data/sig/surge_api/models/recording_list_params.rbs +5 -1
  148. data/sig/surge_api/models/recording_retrieve_params.rbs +8 -3
  149. data/sig/surge_api/models/user_create_params.rbs +5 -0
  150. data/sig/surge_api/models/user_create_token_params.rbs +5 -1
  151. data/sig/surge_api/models/user_delete_params.rbs +8 -3
  152. data/sig/surge_api/models/user_list_params.rbs +5 -1
  153. data/sig/surge_api/models/user_retrieve_params.rbs +8 -3
  154. data/sig/surge_api/models/user_update_params.rbs +5 -0
  155. data/sig/surge_api/models/verification_check_params.rbs +6 -1
  156. data/sig/surge_api/models/verification_create_params.rbs +6 -1
  157. data/sig/surge_api/models/voicemail_received_webhook_event.rbs +18 -3
  158. data/sig/surge_api/models.rbs +4 -0
  159. data/sig/surge_api/resources/campaigns.rbs +2 -2
  160. data/sig/surge_api/resources/messages.rbs +1 -1
  161. data/sig/surge_api/resources/phone_numbers.rbs +12 -0
  162. data/sig/surge_api/resources/verifications.rbs +1 -0
  163. data/sig/surge_api/resources/webhooks.rbs +3 -1
  164. metadata +22 -2
@@ -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
  }
@@ -68,7 +68,10 @@ module SurgeAPI
68
68
  contact: SurgeAPI::Contact,
69
69
  duration: Integer,
70
70
  initiated_at: Time,
71
- status: SurgeAPI::Models::VoicemailReceivedWebhookEvent::Data::Call::status
71
+ status: SurgeAPI::Models::VoicemailReceivedWebhookEvent::Data::Call::status,
72
+ from: String?,
73
+ phone_number_id: String?,
74
+ to: String?
72
75
  }
73
76
 
74
77
  class Call < SurgeAPI::Internal::Type::BaseModel
@@ -82,12 +85,21 @@ module SurgeAPI
82
85
 
83
86
  attr_accessor status: SurgeAPI::Models::VoicemailReceivedWebhookEvent::Data::Call::status
84
87
 
88
+ attr_accessor from: String?
89
+
90
+ attr_accessor phone_number_id: String?
91
+
92
+ attr_accessor to: String?
93
+
85
94
  def initialize: (
86
95
  id: String,
87
96
  contact: SurgeAPI::Contact,
88
97
  duration: Integer,
89
98
  initiated_at: Time,
90
- status: SurgeAPI::Models::VoicemailReceivedWebhookEvent::Data::Call::status
99
+ status: SurgeAPI::Models::VoicemailReceivedWebhookEvent::Data::Call::status,
100
+ ?from: String?,
101
+ ?phone_number_id: String?,
102
+ ?to: String?
91
103
  ) -> void
92
104
 
93
105
  def to_hash: -> {
@@ -95,7 +107,10 @@ module SurgeAPI
95
107
  contact: SurgeAPI::Contact,
96
108
  duration: Integer,
97
109
  initiated_at: Time,
98
- status: SurgeAPI::Models::VoicemailReceivedWebhookEvent::Data::Call::status
110
+ status: SurgeAPI::Models::VoicemailReceivedWebhookEvent::Data::Call::status,
111
+ from: String?,
112
+ phone_number_id: String?,
113
+ to: String?
99
114
  }
100
115
 
101
116
  type status =
@@ -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.19.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-07-06 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