surge_api 0.18.0 → 0.20.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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/README.md +7 -7
  4. data/lib/surge_api/models/call_ended_webhook_event.rb +25 -1
  5. data/lib/surge_api/models/phone_number.rb +55 -4
  6. data/lib/surge_api/models/phone_number_attached_to_campaign_webhook_event.rb +60 -3
  7. data/lib/surge_api/models/phone_number_list_available_numbers_params.rb +88 -0
  8. data/lib/surge_api/models/phone_number_list_available_numbers_response.rb +61 -0
  9. data/lib/surge_api/models/phone_number_purchase_params.rb +10 -1
  10. data/lib/surge_api/models/phone_number_retrieve_params.rb +22 -0
  11. data/lib/surge_api/models/recording_completed_webhook_event.rb +25 -1
  12. data/lib/surge_api/models/voicemail_received_webhook_event.rb +25 -1
  13. data/lib/surge_api/models.rb +4 -0
  14. data/lib/surge_api/resources/phone_numbers.rb +66 -3
  15. data/lib/surge_api/version.rb +1 -1
  16. data/lib/surge_api.rb +3 -0
  17. data/rbi/surge_api/models/call_ended_webhook_event.rbi +27 -3
  18. data/rbi/surge_api/models/phone_number.rbi +108 -2
  19. data/rbi/surge_api/models/phone_number_attached_to_campaign_webhook_event.rbi +129 -2
  20. data/rbi/surge_api/models/phone_number_list_available_numbers_params.rbi +183 -0
  21. data/rbi/surge_api/models/phone_number_list_available_numbers_response.rbi +139 -0
  22. data/rbi/surge_api/models/phone_number_purchase_params.rbi +13 -0
  23. data/rbi/surge_api/models/phone_number_retrieve_params.rbi +43 -0
  24. data/rbi/surge_api/models/recording_completed_webhook_event.rbi +27 -3
  25. data/rbi/surge_api/models/voicemail_received_webhook_event.rbi +27 -3
  26. data/rbi/surge_api/models.rbi +5 -0
  27. data/rbi/surge_api/resources/phone_numbers.rbi +59 -2
  28. data/sig/surge_api/models/call_ended_webhook_event.rbs +18 -3
  29. data/sig/surge_api/models/phone_number.rbs +41 -0
  30. data/sig/surge_api/models/phone_number_attached_to_campaign_webhook_event.rbs +41 -0
  31. data/sig/surge_api/models/phone_number_list_available_numbers_params.rbs +83 -0
  32. data/sig/surge_api/models/phone_number_list_available_numbers_response.rbs +52 -0
  33. data/sig/surge_api/models/phone_number_purchase_params.rbs +7 -0
  34. data/sig/surge_api/models/phone_number_retrieve_params.rbs +20 -0
  35. data/sig/surge_api/models/recording_completed_webhook_event.rbs +18 -3
  36. data/sig/surge_api/models/voicemail_received_webhook_event.rbs +18 -3
  37. data/sig/surge_api/models.rbs +4 -0
  38. data/sig/surge_api/resources/phone_numbers.rbs +16 -0
  39. metadata +11 -2
@@ -0,0 +1,83 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type phone_number_list_available_numbers_params =
4
+ {
5
+ account_id: String,
6
+ type: SurgeAPI::Models::PhoneNumberListAvailableNumbersParams::type_,
7
+ after: String,
8
+ area_code: String,
9
+ before: String,
10
+ country: SurgeAPI::Models::PhoneNumberListAvailableNumbersParams::country
11
+ }
12
+ & SurgeAPI::Internal::Type::request_parameters
13
+
14
+ class PhoneNumberListAvailableNumbersParams < SurgeAPI::Internal::Type::BaseModel
15
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
16
+ include SurgeAPI::Internal::Type::RequestParameters
17
+
18
+ attr_accessor account_id: String
19
+
20
+ attr_accessor type: SurgeAPI::Models::PhoneNumberListAvailableNumbersParams::type_
21
+
22
+ attr_reader after: String?
23
+
24
+ def after=: (String) -> String
25
+
26
+ attr_reader area_code: String?
27
+
28
+ def area_code=: (String) -> String
29
+
30
+ attr_reader before: String?
31
+
32
+ def before=: (String) -> String
33
+
34
+ attr_reader country: SurgeAPI::Models::PhoneNumberListAvailableNumbersParams::country?
35
+
36
+ def country=: (
37
+ SurgeAPI::Models::PhoneNumberListAvailableNumbersParams::country
38
+ ) -> SurgeAPI::Models::PhoneNumberListAvailableNumbersParams::country
39
+
40
+ def initialize: (
41
+ account_id: String,
42
+ type: SurgeAPI::Models::PhoneNumberListAvailableNumbersParams::type_,
43
+ ?after: String,
44
+ ?area_code: String,
45
+ ?before: String,
46
+ ?country: SurgeAPI::Models::PhoneNumberListAvailableNumbersParams::country,
47
+ ?request_options: SurgeAPI::request_opts
48
+ ) -> void
49
+
50
+ def to_hash: -> {
51
+ account_id: String,
52
+ type: SurgeAPI::Models::PhoneNumberListAvailableNumbersParams::type_,
53
+ after: String,
54
+ area_code: String,
55
+ before: String,
56
+ country: SurgeAPI::Models::PhoneNumberListAvailableNumbersParams::country,
57
+ request_options: SurgeAPI::RequestOptions
58
+ }
59
+
60
+ type type_ = :local | :toll_free
61
+
62
+ module Type
63
+ extend SurgeAPI::Internal::Type::Enum
64
+
65
+ LOCAL: :local
66
+ TOLL_FREE: :toll_free
67
+
68
+ def self?.values: -> ::Array[SurgeAPI::Models::PhoneNumberListAvailableNumbersParams::type_]
69
+ end
70
+
71
+ type country = :US | :CA
72
+
73
+ module Country
74
+ extend SurgeAPI::Internal::Type::Enum
75
+
76
+ US: :US
77
+ CA: :CA
78
+
79
+ def self?.values: -> ::Array[SurgeAPI::Models::PhoneNumberListAvailableNumbersParams::country]
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,52 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type phone_number_list_available_numbers_response =
4
+ {
5
+ country: SurgeAPI::Models::PhoneNumberListAvailableNumbersResponse::country,
6
+ number: String,
7
+ type: SurgeAPI::Models::PhoneNumberListAvailableNumbersResponse::type_
8
+ }
9
+
10
+ class PhoneNumberListAvailableNumbersResponse < SurgeAPI::Internal::Type::BaseModel
11
+ attr_accessor country: SurgeAPI::Models::PhoneNumberListAvailableNumbersResponse::country
12
+
13
+ attr_accessor number: String
14
+
15
+ attr_accessor type: SurgeAPI::Models::PhoneNumberListAvailableNumbersResponse::type_
16
+
17
+ def initialize: (
18
+ country: SurgeAPI::Models::PhoneNumberListAvailableNumbersResponse::country,
19
+ number: String,
20
+ type: SurgeAPI::Models::PhoneNumberListAvailableNumbersResponse::type_
21
+ ) -> void
22
+
23
+ def to_hash: -> {
24
+ country: SurgeAPI::Models::PhoneNumberListAvailableNumbersResponse::country,
25
+ number: String,
26
+ type: SurgeAPI::Models::PhoneNumberListAvailableNumbersResponse::type_
27
+ }
28
+
29
+ type country = :US | :CA
30
+
31
+ module Country
32
+ extend SurgeAPI::Internal::Type::Enum
33
+
34
+ US: :US
35
+ CA: :CA
36
+
37
+ def self?.values: -> ::Array[SurgeAPI::Models::PhoneNumberListAvailableNumbersResponse::country]
38
+ end
39
+
40
+ type type_ = :local | :toll_free
41
+
42
+ module Type
43
+ extend SurgeAPI::Internal::Type::Enum
44
+
45
+ LOCAL: :local
46
+ TOLL_FREE: :toll_free
47
+
48
+ def self?.values: -> ::Array[SurgeAPI::Models::PhoneNumberListAvailableNumbersResponse::type_]
49
+ end
50
+ end
51
+ end
52
+ end
@@ -7,6 +7,7 @@ module SurgeAPI
7
7
  latitude: Float,
8
8
  longitude: Float,
9
9
  name: String,
10
+ phone_number: String,
10
11
  type: SurgeAPI::Models::PhoneNumberPurchaseParams::type_
11
12
  }
12
13
  & SurgeAPI::Internal::Type::request_parameters
@@ -33,6 +34,10 @@ module SurgeAPI
33
34
 
34
35
  def name=: (String) -> String
35
36
 
37
+ attr_reader phone_number: String?
38
+
39
+ def phone_number=: (String) -> String
40
+
36
41
  attr_reader type: SurgeAPI::Models::PhoneNumberPurchaseParams::type_?
37
42
 
38
43
  def type=: (
@@ -45,6 +50,7 @@ module SurgeAPI
45
50
  ?latitude: Float,
46
51
  ?longitude: Float,
47
52
  ?name: String,
53
+ ?phone_number: String,
48
54
  ?type: SurgeAPI::Models::PhoneNumberPurchaseParams::type_,
49
55
  ?request_options: SurgeAPI::request_opts
50
56
  ) -> void
@@ -55,6 +61,7 @@ module SurgeAPI
55
61
  latitude: Float,
56
62
  longitude: Float,
57
63
  name: String,
64
+ phone_number: String,
58
65
  type: SurgeAPI::Models::PhoneNumberPurchaseParams::type_,
59
66
  request_options: SurgeAPI::RequestOptions
60
67
  }
@@ -0,0 +1,20 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type phone_number_retrieve_params =
4
+ { id: String } & SurgeAPI::Internal::Type::request_parameters
5
+
6
+ class PhoneNumberRetrieveParams < SurgeAPI::Internal::Type::BaseModel
7
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
8
+ include SurgeAPI::Internal::Type::RequestParameters
9
+
10
+ attr_accessor id: String
11
+
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 }
18
+ end
19
+ end
20
+ end
@@ -63,7 +63,10 @@ module SurgeAPI
63
63
  contact: SurgeAPI::Contact,
64
64
  duration: Integer,
65
65
  initiated_at: Time,
66
- status: SurgeAPI::Models::RecordingCompletedWebhookEvent::Data::Call::status
66
+ status: SurgeAPI::Models::RecordingCompletedWebhookEvent::Data::Call::status,
67
+ from: String?,
68
+ phone_number_id: String?,
69
+ to: String?
67
70
  }
68
71
 
69
72
  class Call < SurgeAPI::Internal::Type::BaseModel
@@ -77,12 +80,21 @@ module SurgeAPI
77
80
 
78
81
  attr_accessor status: SurgeAPI::Models::RecordingCompletedWebhookEvent::Data::Call::status
79
82
 
83
+ attr_accessor from: String?
84
+
85
+ attr_accessor phone_number_id: String?
86
+
87
+ attr_accessor to: String?
88
+
80
89
  def initialize: (
81
90
  id: String,
82
91
  contact: SurgeAPI::Contact,
83
92
  duration: Integer,
84
93
  initiated_at: Time,
85
- status: SurgeAPI::Models::RecordingCompletedWebhookEvent::Data::Call::status
94
+ status: SurgeAPI::Models::RecordingCompletedWebhookEvent::Data::Call::status,
95
+ ?from: String?,
96
+ ?phone_number_id: String?,
97
+ ?to: String?
86
98
  ) -> void
87
99
 
88
100
  def to_hash: -> {
@@ -90,7 +102,10 @@ module SurgeAPI
90
102
  contact: SurgeAPI::Contact,
91
103
  duration: Integer,
92
104
  initiated_at: Time,
93
- status: SurgeAPI::Models::RecordingCompletedWebhookEvent::Data::Call::status
105
+ status: SurgeAPI::Models::RecordingCompletedWebhookEvent::Data::Call::status,
106
+ from: String?,
107
+ phone_number_id: String?,
108
+ to: String?
94
109
  }
95
110
 
96
111
  type status =
@@ -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 =
@@ -85,12 +85,16 @@ module SurgeAPI
85
85
 
86
86
  class PhoneNumberAttachedToCampaignWebhookEvent = SurgeAPI::Models::PhoneNumberAttachedToCampaignWebhookEvent
87
87
 
88
+ class PhoneNumberListAvailableNumbersParams = SurgeAPI::Models::PhoneNumberListAvailableNumbersParams
89
+
88
90
  class PhoneNumberListParams = SurgeAPI::Models::PhoneNumberListParams
89
91
 
90
92
  class PhoneNumberPurchaseParams = SurgeAPI::Models::PhoneNumberPurchaseParams
91
93
 
92
94
  class PhoneNumberReleaseParams = SurgeAPI::Models::PhoneNumberReleaseParams
93
95
 
96
+ class PhoneNumberRetrieveParams = SurgeAPI::Models::PhoneNumberRetrieveParams
97
+
94
98
  class PhoneNumberUpdateParams = SurgeAPI::Models::PhoneNumberUpdateParams
95
99
 
96
100
  class RecordingCompletedWebhookEvent = SurgeAPI::Models::RecordingCompletedWebhookEvent
@@ -1,6 +1,11 @@
1
1
  module SurgeAPI
2
2
  module Resources
3
3
  class PhoneNumbers
4
+ def retrieve: (
5
+ String id,
6
+ ?request_options: SurgeAPI::request_opts
7
+ ) -> SurgeAPI::PhoneNumber
8
+
4
9
  def update: (
5
10
  String id,
6
11
  ?campaign_id: String,
@@ -15,12 +20,23 @@ module SurgeAPI
15
20
  ?request_options: SurgeAPI::request_opts
16
21
  ) -> SurgeAPI::Internal::Cursor[SurgeAPI::PhoneNumber]
17
22
 
23
+ def list_available_numbers: (
24
+ String account_id,
25
+ type: SurgeAPI::Models::PhoneNumberListAvailableNumbersParams::type_,
26
+ ?after: String,
27
+ ?area_code: String,
28
+ ?before: String,
29
+ ?country: SurgeAPI::Models::PhoneNumberListAvailableNumbersParams::country,
30
+ ?request_options: SurgeAPI::request_opts
31
+ ) -> SurgeAPI::Internal::Cursor[SurgeAPI::Models::PhoneNumberListAvailableNumbersResponse]
32
+
18
33
  def purchase: (
19
34
  String account_id,
20
35
  ?area_code: String,
21
36
  ?latitude: Float,
22
37
  ?longitude: Float,
23
38
  ?name: String,
39
+ ?phone_number: String,
24
40
  ?type: SurgeAPI::Models::PhoneNumberPurchaseParams::type_,
25
41
  ?request_options: SurgeAPI::request_opts
26
42
  ) -> SurgeAPI::PhoneNumber
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.18.0
4
+ version: 0.20.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-06-30 00:00:00.000000000 Z
11
+ date: 2026-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi
@@ -129,9 +129,12 @@ files:
129
129
  - lib/surge_api/models/organization.rb
130
130
  - lib/surge_api/models/phone_number.rb
131
131
  - lib/surge_api/models/phone_number_attached_to_campaign_webhook_event.rb
132
+ - lib/surge_api/models/phone_number_list_available_numbers_params.rb
133
+ - lib/surge_api/models/phone_number_list_available_numbers_response.rb
132
134
  - lib/surge_api/models/phone_number_list_params.rb
133
135
  - lib/surge_api/models/phone_number_purchase_params.rb
134
136
  - lib/surge_api/models/phone_number_release_params.rb
137
+ - lib/surge_api/models/phone_number_retrieve_params.rb
135
138
  - lib/surge_api/models/phone_number_update_params.rb
136
139
  - lib/surge_api/models/recording_completed_webhook_event.rb
137
140
  - lib/surge_api/models/recording_delete_params.rb
@@ -237,9 +240,12 @@ files:
237
240
  - rbi/surge_api/models/organization.rbi
238
241
  - rbi/surge_api/models/phone_number.rbi
239
242
  - rbi/surge_api/models/phone_number_attached_to_campaign_webhook_event.rbi
243
+ - rbi/surge_api/models/phone_number_list_available_numbers_params.rbi
244
+ - rbi/surge_api/models/phone_number_list_available_numbers_response.rbi
240
245
  - rbi/surge_api/models/phone_number_list_params.rbi
241
246
  - rbi/surge_api/models/phone_number_purchase_params.rbi
242
247
  - rbi/surge_api/models/phone_number_release_params.rbi
248
+ - rbi/surge_api/models/phone_number_retrieve_params.rbi
243
249
  - rbi/surge_api/models/phone_number_update_params.rbi
244
250
  - rbi/surge_api/models/recording_completed_webhook_event.rbi
245
251
  - rbi/surge_api/models/recording_delete_params.rbi
@@ -344,9 +350,12 @@ files:
344
350
  - sig/surge_api/models/organization.rbs
345
351
  - sig/surge_api/models/phone_number.rbs
346
352
  - sig/surge_api/models/phone_number_attached_to_campaign_webhook_event.rbs
353
+ - sig/surge_api/models/phone_number_list_available_numbers_params.rbs
354
+ - sig/surge_api/models/phone_number_list_available_numbers_response.rbs
347
355
  - sig/surge_api/models/phone_number_list_params.rbs
348
356
  - sig/surge_api/models/phone_number_purchase_params.rbs
349
357
  - sig/surge_api/models/phone_number_release_params.rbs
358
+ - sig/surge_api/models/phone_number_retrieve_params.rbs
350
359
  - sig/surge_api/models/phone_number_update_params.rbs
351
360
  - sig/surge_api/models/recording_completed_webhook_event.rbs
352
361
  - sig/surge_api/models/recording_delete_params.rbs