surge_api 0.7.0 → 0.9.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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -0
  3. data/README.md +29 -1
  4. data/lib/surge_api/internal/cursor.rb +112 -0
  5. data/lib/surge_api/internal/transport/pooled_net_requester.rb +1 -1
  6. data/lib/surge_api/models/blast.rb +2 -2
  7. data/lib/surge_api/models/blast_create_params.rb +15 -5
  8. data/lib/surge_api/models/contact_list_params.rb +34 -0
  9. data/lib/surge_api/models/message.rb +15 -3
  10. data/lib/surge_api/models/message_delivered_webhook_event.rb +16 -4
  11. data/lib/surge_api/models/message_failed_webhook_event.rb +16 -4
  12. data/lib/surge_api/models/message_list_params.rb +34 -0
  13. data/lib/surge_api/models/message_received_webhook_event.rb +16 -4
  14. data/lib/surge_api/models/message_sent_webhook_event.rb +16 -4
  15. data/lib/surge_api/models/phone_number.rb +2 -1
  16. data/lib/surge_api/models/phone_number_list_params.rb +34 -0
  17. data/lib/surge_api/models.rb +6 -0
  18. data/lib/surge_api/resources/blasts.rb +4 -2
  19. data/lib/surge_api/resources/contacts.rb +30 -0
  20. data/lib/surge_api/resources/messages.rb +30 -0
  21. data/lib/surge_api/resources/phone_numbers.rb +30 -0
  22. data/lib/surge_api/version.rb +1 -1
  23. data/lib/surge_api.rb +4 -0
  24. data/rbi/surge_api/internal/cursor.rbi +52 -0
  25. data/rbi/surge_api/models/blast.rbi +3 -6
  26. data/rbi/surge_api/models/blast_create_params.rbi +18 -6
  27. data/rbi/surge_api/models/contact_list_params.rbi +59 -0
  28. data/rbi/surge_api/models/message.rbi +16 -6
  29. data/rbi/surge_api/models/message_delivered_webhook_event.rbi +19 -6
  30. data/rbi/surge_api/models/message_failed_webhook_event.rbi +19 -6
  31. data/rbi/surge_api/models/message_list_params.rbi +59 -0
  32. data/rbi/surge_api/models/message_received_webhook_event.rbi +19 -6
  33. data/rbi/surge_api/models/message_sent_webhook_event.rbi +19 -6
  34. data/rbi/surge_api/models/phone_number.rbi +2 -0
  35. data/rbi/surge_api/models/phone_number_list_params.rbi +59 -0
  36. data/rbi/surge_api/models.rbi +6 -0
  37. data/rbi/surge_api/resources/blasts.rbi +6 -1
  38. data/rbi/surge_api/resources/contacts.rbi +21 -0
  39. data/rbi/surge_api/resources/messages.rbi +21 -0
  40. data/rbi/surge_api/resources/phone_numbers.rbi +21 -0
  41. data/sig/surge_api/internal/cursor.rbs +28 -0
  42. data/sig/surge_api/models/blast.rbs +4 -6
  43. data/sig/surge_api/models/blast_create_params.rbs +11 -6
  44. data/sig/surge_api/models/contact_list_params.rbs +32 -0
  45. data/sig/surge_api/models/message.rbs +10 -5
  46. data/sig/surge_api/models/message_delivered_webhook_event.rbs +14 -7
  47. data/sig/surge_api/models/message_failed_webhook_event.rbs +14 -7
  48. data/sig/surge_api/models/message_list_params.rbs +32 -0
  49. data/sig/surge_api/models/message_received_webhook_event.rbs +14 -7
  50. data/sig/surge_api/models/message_sent_webhook_event.rbs +14 -7
  51. data/sig/surge_api/models/phone_number.rbs +2 -1
  52. data/sig/surge_api/models/phone_number_list_params.rbs +32 -0
  53. data/sig/surge_api/models.rbs +6 -0
  54. data/sig/surge_api/resources/blasts.rbs +2 -1
  55. data/sig/surge_api/resources/contacts.rbs +7 -0
  56. data/sig/surge_api/resources/messages.rbs +7 -0
  57. data/sig/surge_api/resources/phone_numbers.rbs +7 -0
  58. metadata +14 -2
@@ -34,16 +34,17 @@ module SurgeAPI
34
34
  type data =
35
35
  {
36
36
  id: String,
37
- body: String,
37
+ body: String?,
38
38
  conversation: SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation,
39
39
  received_at: Time,
40
- attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment]
40
+ attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment],
41
+ blast_id: String
41
42
  }
42
43
 
43
44
  class Data < SurgeAPI::Internal::Type::BaseModel
44
45
  attr_accessor id: String
45
46
 
46
- attr_accessor body: String
47
+ attr_accessor body: String?
47
48
 
48
49
  attr_accessor conversation: SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation
49
50
 
@@ -55,20 +56,26 @@ module SurgeAPI
55
56
  ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment]
56
57
  ) -> ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment]
57
58
 
59
+ attr_reader blast_id: String?
60
+
61
+ def blast_id=: (String) -> String
62
+
58
63
  def initialize: (
59
64
  id: String,
60
- body: String,
65
+ body: String?,
61
66
  conversation: SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation,
62
67
  received_at: Time,
63
- ?attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment]
68
+ ?attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment],
69
+ ?blast_id: String
64
70
  ) -> void
65
71
 
66
72
  def to_hash: -> {
67
73
  id: String,
68
- body: String,
74
+ body: String?,
69
75
  conversation: SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation,
70
76
  received_at: Time,
71
- attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment]
77
+ attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment],
78
+ blast_id: String
72
79
  }
73
80
 
74
81
  type conversation =
@@ -34,16 +34,17 @@ module SurgeAPI
34
34
  type data =
35
35
  {
36
36
  id: String,
37
- body: String,
37
+ body: String?,
38
38
  conversation: SurgeAPI::MessageSentWebhookEvent::Data::Conversation,
39
39
  sent_at: Time,
40
- attachments: ::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment]
40
+ attachments: ::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment],
41
+ blast_id: String
41
42
  }
42
43
 
43
44
  class Data < SurgeAPI::Internal::Type::BaseModel
44
45
  attr_accessor id: String
45
46
 
46
- attr_accessor body: String
47
+ attr_accessor body: String?
47
48
 
48
49
  attr_accessor conversation: SurgeAPI::MessageSentWebhookEvent::Data::Conversation
49
50
 
@@ -55,20 +56,26 @@ module SurgeAPI
55
56
  ::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment]
56
57
  ) -> ::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment]
57
58
 
59
+ attr_reader blast_id: String?
60
+
61
+ def blast_id=: (String) -> String
62
+
58
63
  def initialize: (
59
64
  id: String,
60
- body: String,
65
+ body: String?,
61
66
  conversation: SurgeAPI::MessageSentWebhookEvent::Data::Conversation,
62
67
  sent_at: Time,
63
- ?attachments: ::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment]
68
+ ?attachments: ::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment],
69
+ ?blast_id: String
64
70
  ) -> void
65
71
 
66
72
  def to_hash: -> {
67
73
  id: String,
68
- body: String,
74
+ body: String?,
69
75
  conversation: SurgeAPI::MessageSentWebhookEvent::Data::Conversation,
70
76
  sent_at: Time,
71
- attachments: ::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment]
77
+ attachments: ::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment],
78
+ blast_id: String
72
79
  }
73
80
 
74
81
  type conversation =
@@ -22,12 +22,13 @@ module SurgeAPI
22
22
  type: SurgeAPI::Models::PhoneNumber::type_
23
23
  }
24
24
 
25
- type type_ = :local | :toll_free
25
+ type type_ = :local | :short_code | :toll_free
26
26
 
27
27
  module Type
28
28
  extend SurgeAPI::Internal::Type::Enum
29
29
 
30
30
  LOCAL: :local
31
+ SHORT_CODE: :short_code
31
32
  TOLL_FREE: :toll_free
32
33
 
33
34
  def self?.values: -> ::Array[SurgeAPI::Models::PhoneNumber::type_]
@@ -0,0 +1,32 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type phone_number_list_params =
4
+ { after: String, before: String }
5
+ & SurgeAPI::Internal::Type::request_parameters
6
+
7
+ class PhoneNumberListParams < SurgeAPI::Internal::Type::BaseModel
8
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
9
+ include SurgeAPI::Internal::Type::RequestParameters
10
+
11
+ attr_reader after: String?
12
+
13
+ def after=: (String) -> String
14
+
15
+ attr_reader before: String?
16
+
17
+ def before=: (String) -> String
18
+
19
+ def initialize: (
20
+ ?after: String,
21
+ ?before: String,
22
+ ?request_options: SurgeAPI::request_opts
23
+ ) -> void
24
+
25
+ def to_hash: -> {
26
+ after: String,
27
+ before: String,
28
+ request_options: SurgeAPI::RequestOptions
29
+ }
30
+ end
31
+ end
32
+ end
@@ -29,6 +29,8 @@ module SurgeAPI
29
29
 
30
30
  class ContactCreateParams = SurgeAPI::Models::ContactCreateParams
31
31
 
32
+ class ContactListParams = SurgeAPI::Models::ContactListParams
33
+
32
34
  class ContactOptedInWebhookEvent = SurgeAPI::Models::ContactOptedInWebhookEvent
33
35
 
34
36
  class ContactOptedOutWebhookEvent = SurgeAPI::Models::ContactOptedOutWebhookEvent
@@ -51,6 +53,8 @@ module SurgeAPI
51
53
 
52
54
  class MessageFailedWebhookEvent = SurgeAPI::Models::MessageFailedWebhookEvent
53
55
 
56
+ class MessageListParams = SurgeAPI::Models::MessageListParams
57
+
54
58
  module MessageParams = SurgeAPI::Models::MessageParams
55
59
 
56
60
  class MessageReceivedWebhookEvent = SurgeAPI::Models::MessageReceivedWebhookEvent
@@ -63,6 +67,8 @@ module SurgeAPI
63
67
 
64
68
  class PhoneNumber = SurgeAPI::Models::PhoneNumber
65
69
 
70
+ class PhoneNumberListParams = SurgeAPI::Models::PhoneNumberListParams
71
+
66
72
  class PhoneNumberPurchaseParams = SurgeAPI::Models::PhoneNumberPurchaseParams
67
73
 
68
74
  module UnwrapWebhookEvent = SurgeAPI::Models::UnwrapWebhookEvent
@@ -4,8 +4,9 @@ module SurgeAPI
4
4
  def create: (
5
5
  String account_id,
6
6
  ?attachments: ::Array[SurgeAPI::BlastCreateParams::Attachment],
7
- ?body: String,
7
+ ?body: String?,
8
8
  ?contacts: ::Array[String],
9
+ ?from: String,
9
10
  ?name: String,
10
11
  ?segments: ::Array[String],
11
12
  ?send_at: Time,
@@ -26,6 +26,13 @@ module SurgeAPI
26
26
  ?request_options: SurgeAPI::request_opts
27
27
  ) -> SurgeAPI::Contact
28
28
 
29
+ def list: (
30
+ String account_id,
31
+ ?after: String,
32
+ ?before: String,
33
+ ?request_options: SurgeAPI::request_opts
34
+ ) -> SurgeAPI::Internal::Cursor[SurgeAPI::Contact]
35
+
29
36
  def initialize: (client: SurgeAPI::Client) -> void
30
37
  end
31
38
  end
@@ -12,6 +12,13 @@ module SurgeAPI
12
12
  ?request_options: SurgeAPI::request_opts
13
13
  ) -> SurgeAPI::Message
14
14
 
15
+ def list: (
16
+ String account_id,
17
+ ?after: String,
18
+ ?before: String,
19
+ ?request_options: SurgeAPI::request_opts
20
+ ) -> SurgeAPI::Internal::Cursor[SurgeAPI::Message]
21
+
15
22
  def initialize: (client: SurgeAPI::Client) -> void
16
23
  end
17
24
  end
@@ -1,6 +1,13 @@
1
1
  module SurgeAPI
2
2
  module Resources
3
3
  class PhoneNumbers
4
+ def list: (
5
+ String account_id,
6
+ ?after: String,
7
+ ?before: String,
8
+ ?request_options: SurgeAPI::request_opts
9
+ ) -> SurgeAPI::Internal::Cursor[SurgeAPI::PhoneNumber]
10
+
4
11
  def purchase: (
5
12
  String account_id,
6
13
  ?area_code: String,
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.7.0
4
+ version: 0.9.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-01-18 00:00:00.000000000 Z
11
+ date: 2026-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi
@@ -54,6 +54,7 @@ files:
54
54
  - lib/surge_api/errors.rb
55
55
  - lib/surge_api/file_part.rb
56
56
  - lib/surge_api/internal.rb
57
+ - lib/surge_api/internal/cursor.rb
57
58
  - lib/surge_api/internal/transport/base_client.rb
58
59
  - lib/surge_api/internal/transport/pooled_net_requester.rb
59
60
  - lib/surge_api/internal/type/array_of.rb
@@ -84,6 +85,7 @@ files:
84
85
  - lib/surge_api/models/campaign_params.rb
85
86
  - lib/surge_api/models/contact.rb
86
87
  - lib/surge_api/models/contact_create_params.rb
88
+ - lib/surge_api/models/contact_list_params.rb
87
89
  - lib/surge_api/models/contact_opted_in_webhook_event.rb
88
90
  - lib/surge_api/models/contact_opted_out_webhook_event.rb
89
91
  - lib/surge_api/models/contact_retrieve_params.rb
@@ -95,12 +97,14 @@ files:
95
97
  - lib/surge_api/models/message_create_params.rb
96
98
  - lib/surge_api/models/message_delivered_webhook_event.rb
97
99
  - lib/surge_api/models/message_failed_webhook_event.rb
100
+ - lib/surge_api/models/message_list_params.rb
98
101
  - lib/surge_api/models/message_params.rb
99
102
  - lib/surge_api/models/message_received_webhook_event.rb
100
103
  - lib/surge_api/models/message_retrieve_params.rb
101
104
  - lib/surge_api/models/message_sent_webhook_event.rb
102
105
  - lib/surge_api/models/organization.rb
103
106
  - lib/surge_api/models/phone_number.rb
107
+ - lib/surge_api/models/phone_number_list_params.rb
104
108
  - lib/surge_api/models/phone_number_purchase_params.rb
105
109
  - lib/surge_api/models/unwrap_webhook_event.rb
106
110
  - lib/surge_api/models/user.rb
@@ -131,6 +135,7 @@ files:
131
135
  - rbi/surge_api/errors.rbi
132
136
  - rbi/surge_api/file_part.rbi
133
137
  - rbi/surge_api/internal.rbi
138
+ - rbi/surge_api/internal/cursor.rbi
134
139
  - rbi/surge_api/internal/transport/base_client.rbi
135
140
  - rbi/surge_api/internal/transport/pooled_net_requester.rbi
136
141
  - rbi/surge_api/internal/type/array_of.rbi
@@ -161,6 +166,7 @@ files:
161
166
  - rbi/surge_api/models/campaign_params.rbi
162
167
  - rbi/surge_api/models/contact.rbi
163
168
  - rbi/surge_api/models/contact_create_params.rbi
169
+ - rbi/surge_api/models/contact_list_params.rbi
164
170
  - rbi/surge_api/models/contact_opted_in_webhook_event.rbi
165
171
  - rbi/surge_api/models/contact_opted_out_webhook_event.rbi
166
172
  - rbi/surge_api/models/contact_retrieve_params.rbi
@@ -172,12 +178,14 @@ files:
172
178
  - rbi/surge_api/models/message_create_params.rbi
173
179
  - rbi/surge_api/models/message_delivered_webhook_event.rbi
174
180
  - rbi/surge_api/models/message_failed_webhook_event.rbi
181
+ - rbi/surge_api/models/message_list_params.rbi
175
182
  - rbi/surge_api/models/message_params.rbi
176
183
  - rbi/surge_api/models/message_received_webhook_event.rbi
177
184
  - rbi/surge_api/models/message_retrieve_params.rbi
178
185
  - rbi/surge_api/models/message_sent_webhook_event.rbi
179
186
  - rbi/surge_api/models/organization.rbi
180
187
  - rbi/surge_api/models/phone_number.rbi
188
+ - rbi/surge_api/models/phone_number_list_params.rbi
181
189
  - rbi/surge_api/models/phone_number_purchase_params.rbi
182
190
  - rbi/surge_api/models/unwrap_webhook_event.rbi
183
191
  - rbi/surge_api/models/user.rbi
@@ -207,6 +215,7 @@ files:
207
215
  - sig/surge_api/errors.rbs
208
216
  - sig/surge_api/file_part.rbs
209
217
  - sig/surge_api/internal.rbs
218
+ - sig/surge_api/internal/cursor.rbs
210
219
  - sig/surge_api/internal/transport/base_client.rbs
211
220
  - sig/surge_api/internal/transport/pooled_net_requester.rbs
212
221
  - sig/surge_api/internal/type/array_of.rbs
@@ -237,6 +246,7 @@ files:
237
246
  - sig/surge_api/models/campaign_params.rbs
238
247
  - sig/surge_api/models/contact.rbs
239
248
  - sig/surge_api/models/contact_create_params.rbs
249
+ - sig/surge_api/models/contact_list_params.rbs
240
250
  - sig/surge_api/models/contact_opted_in_webhook_event.rbs
241
251
  - sig/surge_api/models/contact_opted_out_webhook_event.rbs
242
252
  - sig/surge_api/models/contact_retrieve_params.rbs
@@ -248,12 +258,14 @@ files:
248
258
  - sig/surge_api/models/message_create_params.rbs
249
259
  - sig/surge_api/models/message_delivered_webhook_event.rbs
250
260
  - sig/surge_api/models/message_failed_webhook_event.rbs
261
+ - sig/surge_api/models/message_list_params.rbs
251
262
  - sig/surge_api/models/message_params.rbs
252
263
  - sig/surge_api/models/message_received_webhook_event.rbs
253
264
  - sig/surge_api/models/message_retrieve_params.rbs
254
265
  - sig/surge_api/models/message_sent_webhook_event.rbs
255
266
  - sig/surge_api/models/organization.rbs
256
267
  - sig/surge_api/models/phone_number.rbs
268
+ - sig/surge_api/models/phone_number_list_params.rbs
257
269
  - sig/surge_api/models/phone_number_purchase_params.rbs
258
270
  - sig/surge_api/models/unwrap_webhook_event.rbs
259
271
  - sig/surge_api/models/user.rbs