twilio-ruby 5.57.0 → 5.58.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.travis.yml +24 -7
- data/CHANGES.md +84 -0
- data/Gemfile +1 -0
- data/README.md +2 -2
- data/examples/examples.rb +1 -1
- data/lib/twilio-ruby/http/http_client.rb +1 -1
- data/lib/twilio-ruby/rest/api/v2010/account/call.rb +12 -3
- data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +4 -1
- data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +1 -1
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +11 -11
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +11 -11
- data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +12 -5
- data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +312 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +12 -5
- data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +324 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +2 -2
- data/lib/twilio-ruby/rest/conversations/v1/service.rb +23 -0
- data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +2 -2
- data/lib/twilio-ruby/rest/conversations/v1.rb +7 -0
- data/lib/twilio-ruby/rest/conversations.rb +6 -0
- data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +434 -0
- data/lib/twilio-ruby/rest/insights/v1.rb +7 -0
- data/lib/twilio-ruby/rest/insights.rb +6 -0
- data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +23 -1
- data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +9 -2
- data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +6 -2
- data/lib/twilio-ruby/rest/pricing/v2/country.rb +280 -0
- data/lib/twilio-ruby/rest/pricing/v2/number.rb +225 -0
- data/lib/twilio-ruby/rest/pricing/v2.rb +37 -0
- data/lib/twilio-ruby/rest/pricing.rb +19 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +7 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +30 -20
- data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +6 -2
- data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +36 -11
- data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +11 -9
- data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +8 -8
- data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +7 -3
- data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +24 -5
- data/lib/twilio-ruby/rest/verify/v2/verification_template.rb +206 -0
- data/lib/twilio-ruby/rest/verify/v2.rb +7 -0
- data/lib/twilio-ruby/rest/verify.rb +6 -0
- data/lib/twilio-ruby/version.rb +1 -1
- data/sonar-project.properties +13 -0
- metadata +9 -2
@@ -16,6 +16,7 @@ module Twilio
|
|
16
16
|
super
|
17
17
|
@version = 'v1'
|
18
18
|
@calls = nil
|
19
|
+
@call_summaries = nil
|
19
20
|
@rooms = nil
|
20
21
|
end
|
21
22
|
|
@@ -34,6 +35,12 @@ module Twilio
|
|
34
35
|
end
|
35
36
|
end
|
36
37
|
|
38
|
+
##
|
39
|
+
# @return [Twilio::REST::Insights::V1::CallSummariesContext]
|
40
|
+
def call_summaries
|
41
|
+
@call_summaries ||= CallSummariesList.new self
|
42
|
+
end
|
43
|
+
|
37
44
|
##
|
38
45
|
# @param [String] room_sid The SID of the Room resource.
|
39
46
|
# @return [Twilio::REST::Insights::V1::RoomContext] if room_sid was passed.
|
@@ -36,6 +36,12 @@ module Twilio
|
|
36
36
|
self.v1.calls(sid)
|
37
37
|
end
|
38
38
|
|
39
|
+
##
|
40
|
+
# @return [Twilio::REST::Insights::V1::CallSummariesInstance]
|
41
|
+
def call_summaries
|
42
|
+
self.v1.call_summaries()
|
43
|
+
end
|
44
|
+
|
39
45
|
##
|
40
46
|
# @param [String] room_sid Unique identifier for the room.
|
41
47
|
# @return [Twilio::REST::Insights::V1::RoomInstance] if room_sid was passed.
|
@@ -109,11 +109,19 @@ module Twilio
|
|
109
109
|
# Create the BrandRegistrationInstance
|
110
110
|
# @param [String] customer_profile_bundle_sid Customer Profile Bundle Sid.
|
111
111
|
# @param [String] a2p_profile_bundle_sid A2P Messaging Profile Bundle Sid.
|
112
|
+
# @param [String] brand_type Type of brand being created. One of: "STANDARD",
|
113
|
+
# "STARTER". STARTER is for low volume, starter use cases. STANDARD is for all
|
114
|
+
# other use cases.
|
115
|
+
# @param [Boolean] mock A boolean that specifies whether brand should be a mock or
|
116
|
+
# not. If true, brand will be registered as a mock brand. Defaults to false if no
|
117
|
+
# value is provided.
|
112
118
|
# @return [BrandRegistrationInstance] Created BrandRegistrationInstance
|
113
|
-
def create(customer_profile_bundle_sid: nil, a2p_profile_bundle_sid: nil)
|
119
|
+
def create(customer_profile_bundle_sid: nil, a2p_profile_bundle_sid: nil, brand_type: :unset, mock: :unset)
|
114
120
|
data = Twilio::Values.of({
|
115
121
|
'CustomerProfileBundleSid' => customer_profile_bundle_sid,
|
116
122
|
'A2PProfileBundleSid' => a2p_profile_bundle_sid,
|
123
|
+
'BrandType' => brand_type,
|
124
|
+
'Mock' => mock,
|
117
125
|
})
|
118
126
|
|
119
127
|
payload = @version.create('POST', @uri, data: data)
|
@@ -219,11 +227,13 @@ module Twilio
|
|
219
227
|
'a2p_profile_bundle_sid' => payload['a2p_profile_bundle_sid'],
|
220
228
|
'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
|
221
229
|
'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
|
230
|
+
'brand_type' => payload['brand_type'],
|
222
231
|
'status' => payload['status'],
|
223
232
|
'tcr_id' => payload['tcr_id'],
|
224
233
|
'failure_reason' => payload['failure_reason'],
|
225
234
|
'url' => payload['url'],
|
226
235
|
'brand_score' => payload['brand_score'] == nil ? payload['brand_score'] : payload['brand_score'].to_i,
|
236
|
+
'mock' => payload['mock'],
|
227
237
|
}
|
228
238
|
|
229
239
|
# Context
|
@@ -278,6 +288,12 @@ module Twilio
|
|
278
288
|
@properties['date_updated']
|
279
289
|
end
|
280
290
|
|
291
|
+
##
|
292
|
+
# @return [String] Type of brand. One of: "STANDARD", "STARTER".
|
293
|
+
def brand_type
|
294
|
+
@properties['brand_type']
|
295
|
+
end
|
296
|
+
|
281
297
|
##
|
282
298
|
# @return [brand_registration.Status] Brand Registration status
|
283
299
|
def status
|
@@ -308,6 +324,12 @@ module Twilio
|
|
308
324
|
@properties['brand_score']
|
309
325
|
end
|
310
326
|
|
327
|
+
##
|
328
|
+
# @return [Boolean] A boolean that specifies whether brand should be a mock or not. If true, brand will be registered as a mock brand. Defaults to false if no value is provided.
|
329
|
+
def mock
|
330
|
+
@properties['mock']
|
331
|
+
end
|
332
|
+
|
311
333
|
##
|
312
334
|
# Fetch the BrandRegistrationInstance
|
313
335
|
# @return [BrandRegistrationInstance] Fetched BrandRegistrationInstance
|
@@ -33,8 +33,8 @@ module Twilio
|
|
33
33
|
# Create the UsAppToPersonInstance
|
34
34
|
# @param [String] brand_registration_sid A2P Brand Registration SID
|
35
35
|
# @param [String] description A short description of what this SMS campaign does.
|
36
|
-
# @param [Array[String]] message_samples Message samples, up to 5
|
37
|
-
# <=1024 chars each.
|
36
|
+
# @param [Array[String]] message_samples Message samples, at least 2 and up to 5
|
37
|
+
# sample messages, <=1024 chars each.
|
38
38
|
# @param [String] us_app_to_person_usecase A2P Campaign Use Case. Examples: [ 2FA,
|
39
39
|
# EMERGENCY, MARKETING..]
|
40
40
|
# @param [Boolean] has_embedded_links Indicates that this SMS campaign will send
|
@@ -273,6 +273,7 @@ module Twilio
|
|
273
273
|
'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
|
274
274
|
'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
|
275
275
|
'url' => payload['url'],
|
276
|
+
'mock' => payload['mock'],
|
276
277
|
}
|
277
278
|
|
278
279
|
# Context
|
@@ -391,6 +392,12 @@ module Twilio
|
|
391
392
|
@properties['url']
|
392
393
|
end
|
393
394
|
|
395
|
+
##
|
396
|
+
# @return [Boolean] A boolean that specifies whether campaign is a mock or not.
|
397
|
+
def mock
|
398
|
+
@properties['mock']
|
399
|
+
end
|
400
|
+
|
394
401
|
##
|
395
402
|
# Delete the UsAppToPersonInstance
|
396
403
|
# @return [Boolean] true if delete succeeds, false otherwise
|
@@ -30,9 +30,13 @@ module Twilio
|
|
30
30
|
|
31
31
|
##
|
32
32
|
# Fetch the UsAppToPersonUsecaseInstance
|
33
|
+
# @param [String] brand_registration_sid The unique string to identify the A2P
|
34
|
+
# brand.
|
33
35
|
# @return [UsAppToPersonUsecaseInstance] Fetched UsAppToPersonUsecaseInstance
|
34
|
-
def fetch
|
35
|
-
|
36
|
+
def fetch(brand_registration_sid: :unset)
|
37
|
+
params = Twilio::Values.of({'BrandRegistrationSid' => brand_registration_sid, })
|
38
|
+
|
39
|
+
payload = @version.fetch('GET', @uri, params: params)
|
36
40
|
|
37
41
|
UsAppToPersonUsecaseInstance.new(
|
38
42
|
@version,
|
@@ -0,0 +1,280 @@
|
|
1
|
+
##
|
2
|
+
# This code was generated by
|
3
|
+
# \ / _ _ _| _ _
|
4
|
+
# | (_)\/(_)(_|\/| |(/_ v1.0.0
|
5
|
+
# / /
|
6
|
+
#
|
7
|
+
# frozen_string_literal: true
|
8
|
+
|
9
|
+
module Twilio
|
10
|
+
module REST
|
11
|
+
class Pricing < Domain
|
12
|
+
class V2 < Version
|
13
|
+
class CountryList < ListResource
|
14
|
+
##
|
15
|
+
# Initialize the CountryList
|
16
|
+
# @param [Version] version Version that contains the resource
|
17
|
+
# @return [CountryList] CountryList
|
18
|
+
def initialize(version)
|
19
|
+
super(version)
|
20
|
+
|
21
|
+
# Path Solution
|
22
|
+
@solution = {}
|
23
|
+
@uri = "/Trunking/Countries"
|
24
|
+
end
|
25
|
+
|
26
|
+
##
|
27
|
+
# Lists CountryInstance records from the API as a list.
|
28
|
+
# Unlike stream(), this operation is eager and will load `limit` records into
|
29
|
+
# memory before returning.
|
30
|
+
# @param [Integer] limit Upper limit for the number of records to return. stream()
|
31
|
+
# guarantees to never return more than limit. Default is no limit
|
32
|
+
# @param [Integer] page_size Number of records to fetch per request, when
|
33
|
+
# not set will use the default value of 50 records. If no page_size is defined
|
34
|
+
# but a limit is defined, stream() will attempt to read the limit with the most
|
35
|
+
# efficient page size, i.e. min(limit, 1000)
|
36
|
+
# @return [Array] Array of up to limit results
|
37
|
+
def list(limit: nil, page_size: nil)
|
38
|
+
self.stream(limit: limit, page_size: page_size).entries
|
39
|
+
end
|
40
|
+
|
41
|
+
##
|
42
|
+
# Streams CountryInstance records from the API as an Enumerable.
|
43
|
+
# This operation lazily loads records as efficiently as possible until the limit
|
44
|
+
# is reached.
|
45
|
+
# @param [Integer] limit Upper limit for the number of records to return. stream()
|
46
|
+
# guarantees to never return more than limit. Default is no limit.
|
47
|
+
# @param [Integer] page_size Number of records to fetch per request, when
|
48
|
+
# not set will use the default value of 50 records. If no page_size is defined
|
49
|
+
# but a limit is defined, stream() will attempt to read the limit with the most
|
50
|
+
# efficient page size, i.e. min(limit, 1000)
|
51
|
+
# @return [Enumerable] Enumerable that will yield up to limit results
|
52
|
+
def stream(limit: nil, page_size: nil)
|
53
|
+
limits = @version.read_limits(limit, page_size)
|
54
|
+
|
55
|
+
page = self.page(page_size: limits[:page_size], )
|
56
|
+
|
57
|
+
@version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
|
58
|
+
end
|
59
|
+
|
60
|
+
##
|
61
|
+
# When passed a block, yields CountryInstance records from the API.
|
62
|
+
# This operation lazily loads records as efficiently as possible until the limit
|
63
|
+
# is reached.
|
64
|
+
def each
|
65
|
+
limits = @version.read_limits
|
66
|
+
|
67
|
+
page = self.page(page_size: limits[:page_size], )
|
68
|
+
|
69
|
+
@version.stream(page,
|
70
|
+
limit: limits[:limit],
|
71
|
+
page_limit: limits[:page_limit]).each {|x| yield x}
|
72
|
+
end
|
73
|
+
|
74
|
+
##
|
75
|
+
# Retrieve a single page of CountryInstance records from the API.
|
76
|
+
# Request is executed immediately.
|
77
|
+
# @param [String] page_token PageToken provided by the API
|
78
|
+
# @param [Integer] page_number Page Number, this value is simply for client state
|
79
|
+
# @param [Integer] page_size Number of records to return, defaults to 50
|
80
|
+
# @return [Page] Page of CountryInstance
|
81
|
+
def page(page_token: :unset, page_number: :unset, page_size: :unset)
|
82
|
+
params = Twilio::Values.of({
|
83
|
+
'PageToken' => page_token,
|
84
|
+
'Page' => page_number,
|
85
|
+
'PageSize' => page_size,
|
86
|
+
})
|
87
|
+
|
88
|
+
response = @version.page('GET', @uri, params: params)
|
89
|
+
|
90
|
+
CountryPage.new(@version, response, @solution)
|
91
|
+
end
|
92
|
+
|
93
|
+
##
|
94
|
+
# Retrieve a single page of CountryInstance records from the API.
|
95
|
+
# Request is executed immediately.
|
96
|
+
# @param [String] target_url API-generated URL for the requested results page
|
97
|
+
# @return [Page] Page of CountryInstance
|
98
|
+
def get_page(target_url)
|
99
|
+
response = @version.domain.request(
|
100
|
+
'GET',
|
101
|
+
target_url
|
102
|
+
)
|
103
|
+
CountryPage.new(@version, response, @solution)
|
104
|
+
end
|
105
|
+
|
106
|
+
##
|
107
|
+
# Provide a user friendly representation
|
108
|
+
def to_s
|
109
|
+
'#<Twilio.Pricing.V2.CountryList>'
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
class CountryPage < Page
|
114
|
+
##
|
115
|
+
# Initialize the CountryPage
|
116
|
+
# @param [Version] version Version that contains the resource
|
117
|
+
# @param [Response] response Response from the API
|
118
|
+
# @param [Hash] solution Path solution for the resource
|
119
|
+
# @return [CountryPage] CountryPage
|
120
|
+
def initialize(version, response, solution)
|
121
|
+
super(version, response)
|
122
|
+
|
123
|
+
# Path Solution
|
124
|
+
@solution = solution
|
125
|
+
end
|
126
|
+
|
127
|
+
##
|
128
|
+
# Build an instance of CountryInstance
|
129
|
+
# @param [Hash] payload Payload response from the API
|
130
|
+
# @return [CountryInstance] CountryInstance
|
131
|
+
def get_instance(payload)
|
132
|
+
CountryInstance.new(@version, payload, )
|
133
|
+
end
|
134
|
+
|
135
|
+
##
|
136
|
+
# Provide a user friendly representation
|
137
|
+
def to_s
|
138
|
+
'<Twilio.Pricing.V2.CountryPage>'
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
class CountryContext < InstanceContext
|
143
|
+
##
|
144
|
+
# Initialize the CountryContext
|
145
|
+
# @param [Version] version Version that contains the resource
|
146
|
+
# @param [String] iso_country The {ISO country
|
147
|
+
# code}[https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2] of the origin-based
|
148
|
+
# voice pricing information to fetch.
|
149
|
+
# @return [CountryContext] CountryContext
|
150
|
+
def initialize(version, iso_country)
|
151
|
+
super(version)
|
152
|
+
|
153
|
+
# Path Solution
|
154
|
+
@solution = {iso_country: iso_country, }
|
155
|
+
@uri = "/Trunking/Countries/#{@solution[:iso_country]}"
|
156
|
+
end
|
157
|
+
|
158
|
+
##
|
159
|
+
# Fetch the CountryInstance
|
160
|
+
# @return [CountryInstance] Fetched CountryInstance
|
161
|
+
def fetch
|
162
|
+
payload = @version.fetch('GET', @uri)
|
163
|
+
|
164
|
+
CountryInstance.new(@version, payload, iso_country: @solution[:iso_country], )
|
165
|
+
end
|
166
|
+
|
167
|
+
##
|
168
|
+
# Provide a user friendly representation
|
169
|
+
def to_s
|
170
|
+
context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
|
171
|
+
"#<Twilio.Pricing.V2.CountryContext #{context}>"
|
172
|
+
end
|
173
|
+
|
174
|
+
##
|
175
|
+
# Provide a detailed, user friendly representation
|
176
|
+
def inspect
|
177
|
+
context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
|
178
|
+
"#<Twilio.Pricing.V2.CountryContext #{context}>"
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
class CountryInstance < InstanceResource
|
183
|
+
##
|
184
|
+
# Initialize the CountryInstance
|
185
|
+
# @param [Version] version Version that contains the resource
|
186
|
+
# @param [Hash] payload payload that contains response from Twilio
|
187
|
+
# @param [String] iso_country The {ISO country
|
188
|
+
# code}[https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2] of the origin-based
|
189
|
+
# voice pricing information to fetch.
|
190
|
+
# @return [CountryInstance] CountryInstance
|
191
|
+
def initialize(version, payload, iso_country: nil)
|
192
|
+
super(version)
|
193
|
+
|
194
|
+
# Marshaled Properties
|
195
|
+
@properties = {
|
196
|
+
'country' => payload['country'],
|
197
|
+
'iso_country' => payload['iso_country'],
|
198
|
+
'terminating_prefix_prices' => payload['terminating_prefix_prices'],
|
199
|
+
'originating_call_prices' => payload['originating_call_prices'],
|
200
|
+
'price_unit' => payload['price_unit'],
|
201
|
+
'url' => payload['url'],
|
202
|
+
}
|
203
|
+
|
204
|
+
# Context
|
205
|
+
@instance_context = nil
|
206
|
+
@params = {'iso_country' => iso_country || @properties['iso_country'], }
|
207
|
+
end
|
208
|
+
|
209
|
+
##
|
210
|
+
# Generate an instance context for the instance, the context is capable of
|
211
|
+
# performing various actions. All instance actions are proxied to the context
|
212
|
+
# @return [CountryContext] CountryContext for this CountryInstance
|
213
|
+
def context
|
214
|
+
unless @instance_context
|
215
|
+
@instance_context = CountryContext.new(@version, @params['iso_country'], )
|
216
|
+
end
|
217
|
+
@instance_context
|
218
|
+
end
|
219
|
+
|
220
|
+
##
|
221
|
+
# @return [String] The name of the country
|
222
|
+
def country
|
223
|
+
@properties['country']
|
224
|
+
end
|
225
|
+
|
226
|
+
##
|
227
|
+
# @return [String] The ISO country code
|
228
|
+
def iso_country
|
229
|
+
@properties['iso_country']
|
230
|
+
end
|
231
|
+
|
232
|
+
##
|
233
|
+
# @return [Array[String]] The list of TerminatingPrefixPrice records
|
234
|
+
def terminating_prefix_prices
|
235
|
+
@properties['terminating_prefix_prices']
|
236
|
+
end
|
237
|
+
|
238
|
+
##
|
239
|
+
# @return [Array[String]] The list of OriginatingCallPrice records
|
240
|
+
def originating_call_prices
|
241
|
+
@properties['originating_call_prices']
|
242
|
+
end
|
243
|
+
|
244
|
+
##
|
245
|
+
# @return [String] The currency in which prices are measured, in ISO 4127 format (e.g. usd, eur, jpy)
|
246
|
+
def price_unit
|
247
|
+
@properties['price_unit']
|
248
|
+
end
|
249
|
+
|
250
|
+
##
|
251
|
+
# @return [String] The absolute URL of the resource
|
252
|
+
def url
|
253
|
+
@properties['url']
|
254
|
+
end
|
255
|
+
|
256
|
+
##
|
257
|
+
# Fetch the CountryInstance
|
258
|
+
# @return [CountryInstance] Fetched CountryInstance
|
259
|
+
def fetch
|
260
|
+
context.fetch
|
261
|
+
end
|
262
|
+
|
263
|
+
##
|
264
|
+
# Provide a user friendly representation
|
265
|
+
def to_s
|
266
|
+
values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
|
267
|
+
"<Twilio.Pricing.V2.CountryInstance #{values}>"
|
268
|
+
end
|
269
|
+
|
270
|
+
##
|
271
|
+
# Provide a detailed, user friendly representation
|
272
|
+
def inspect
|
273
|
+
values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
|
274
|
+
"<Twilio.Pricing.V2.CountryInstance #{values}>"
|
275
|
+
end
|
276
|
+
end
|
277
|
+
end
|
278
|
+
end
|
279
|
+
end
|
280
|
+
end
|
@@ -0,0 +1,225 @@
|
|
1
|
+
##
|
2
|
+
# This code was generated by
|
3
|
+
# \ / _ _ _| _ _
|
4
|
+
# | (_)\/(_)(_|\/| |(/_ v1.0.0
|
5
|
+
# / /
|
6
|
+
#
|
7
|
+
# frozen_string_literal: true
|
8
|
+
|
9
|
+
module Twilio
|
10
|
+
module REST
|
11
|
+
class Pricing < Domain
|
12
|
+
class V2 < Version
|
13
|
+
class NumberList < ListResource
|
14
|
+
##
|
15
|
+
# Initialize the NumberList
|
16
|
+
# @param [Version] version Version that contains the resource
|
17
|
+
# @return [NumberList] NumberList
|
18
|
+
def initialize(version)
|
19
|
+
super(version)
|
20
|
+
|
21
|
+
# Path Solution
|
22
|
+
@solution = {}
|
23
|
+
end
|
24
|
+
|
25
|
+
##
|
26
|
+
# Provide a user friendly representation
|
27
|
+
def to_s
|
28
|
+
'#<Twilio.Pricing.V2.NumberList>'
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
class NumberPage < Page
|
33
|
+
##
|
34
|
+
# Initialize the NumberPage
|
35
|
+
# @param [Version] version Version that contains the resource
|
36
|
+
# @param [Response] response Response from the API
|
37
|
+
# @param [Hash] solution Path solution for the resource
|
38
|
+
# @return [NumberPage] NumberPage
|
39
|
+
def initialize(version, response, solution)
|
40
|
+
super(version, response)
|
41
|
+
|
42
|
+
# Path Solution
|
43
|
+
@solution = solution
|
44
|
+
end
|
45
|
+
|
46
|
+
##
|
47
|
+
# Build an instance of NumberInstance
|
48
|
+
# @param [Hash] payload Payload response from the API
|
49
|
+
# @return [NumberInstance] NumberInstance
|
50
|
+
def get_instance(payload)
|
51
|
+
NumberInstance.new(@version, payload, )
|
52
|
+
end
|
53
|
+
|
54
|
+
##
|
55
|
+
# Provide a user friendly representation
|
56
|
+
def to_s
|
57
|
+
'<Twilio.Pricing.V2.NumberPage>'
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
class NumberContext < InstanceContext
|
62
|
+
##
|
63
|
+
# Initialize the NumberContext
|
64
|
+
# @param [Version] version Version that contains the resource
|
65
|
+
# @param [String] destination_number The destination phone number, in
|
66
|
+
# {E.164}[https://www.twilio.com/docs/glossary/what-e164] format, for which to
|
67
|
+
# fetch the origin-based voice pricing information. E.164 format consists of a +
|
68
|
+
# followed by the country code and subscriber number.
|
69
|
+
# @return [NumberContext] NumberContext
|
70
|
+
def initialize(version, destination_number)
|
71
|
+
super(version)
|
72
|
+
|
73
|
+
# Path Solution
|
74
|
+
@solution = {destination_number: destination_number, }
|
75
|
+
@uri = "/Trunking/Numbers/#{CGI.escape(@solution[:destination_number]).gsub("+", "%20")}"
|
76
|
+
end
|
77
|
+
|
78
|
+
##
|
79
|
+
# Fetch the NumberInstance
|
80
|
+
# @param [String] origination_number The origination phone number, in
|
81
|
+
# {E.164}[https://www.twilio.com/docs/glossary/what-e164] format, for which to
|
82
|
+
# fetch the origin-based voice pricing information. E.164 format consists of a +
|
83
|
+
# followed by the country code and subscriber number.
|
84
|
+
# @return [NumberInstance] Fetched NumberInstance
|
85
|
+
def fetch(origination_number: :unset)
|
86
|
+
params = Twilio::Values.of({'OriginationNumber' => origination_number, })
|
87
|
+
|
88
|
+
payload = @version.fetch('GET', @uri, params: params)
|
89
|
+
|
90
|
+
NumberInstance.new(@version, payload, destination_number: @solution[:destination_number], )
|
91
|
+
end
|
92
|
+
|
93
|
+
##
|
94
|
+
# Provide a user friendly representation
|
95
|
+
def to_s
|
96
|
+
context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
|
97
|
+
"#<Twilio.Pricing.V2.NumberContext #{context}>"
|
98
|
+
end
|
99
|
+
|
100
|
+
##
|
101
|
+
# Provide a detailed, user friendly representation
|
102
|
+
def inspect
|
103
|
+
context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
|
104
|
+
"#<Twilio.Pricing.V2.NumberContext #{context}>"
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
class NumberInstance < InstanceResource
|
109
|
+
##
|
110
|
+
# Initialize the NumberInstance
|
111
|
+
# @param [Version] version Version that contains the resource
|
112
|
+
# @param [Hash] payload payload that contains response from Twilio
|
113
|
+
# @param [String] destination_number The destination phone number, in
|
114
|
+
# {E.164}[https://www.twilio.com/docs/glossary/what-e164] format, for which to
|
115
|
+
# fetch the origin-based voice pricing information. E.164 format consists of a +
|
116
|
+
# followed by the country code and subscriber number.
|
117
|
+
# @return [NumberInstance] NumberInstance
|
118
|
+
def initialize(version, payload, destination_number: nil)
|
119
|
+
super(version)
|
120
|
+
|
121
|
+
# Marshaled Properties
|
122
|
+
@properties = {
|
123
|
+
'destination_number' => payload['destination_number'],
|
124
|
+
'origination_number' => payload['origination_number'],
|
125
|
+
'country' => payload['country'],
|
126
|
+
'iso_country' => payload['iso_country'],
|
127
|
+
'terminating_prefix_prices' => payload['terminating_prefix_prices'],
|
128
|
+
'originating_call_price' => payload['originating_call_price'],
|
129
|
+
'price_unit' => payload['price_unit'],
|
130
|
+
'url' => payload['url'],
|
131
|
+
}
|
132
|
+
|
133
|
+
# Context
|
134
|
+
@instance_context = nil
|
135
|
+
@params = {'destination_number' => destination_number || @properties['destination_number'], }
|
136
|
+
end
|
137
|
+
|
138
|
+
##
|
139
|
+
# Generate an instance context for the instance, the context is capable of
|
140
|
+
# performing various actions. All instance actions are proxied to the context
|
141
|
+
# @return [NumberContext] NumberContext for this NumberInstance
|
142
|
+
def context
|
143
|
+
unless @instance_context
|
144
|
+
@instance_context = NumberContext.new(@version, @params['destination_number'], )
|
145
|
+
end
|
146
|
+
@instance_context
|
147
|
+
end
|
148
|
+
|
149
|
+
##
|
150
|
+
# @return [String] The destination phone number, in E.164 format
|
151
|
+
def destination_number
|
152
|
+
@properties['destination_number']
|
153
|
+
end
|
154
|
+
|
155
|
+
##
|
156
|
+
# @return [String] The origination phone number, in E.164 format
|
157
|
+
def origination_number
|
158
|
+
@properties['origination_number']
|
159
|
+
end
|
160
|
+
|
161
|
+
##
|
162
|
+
# @return [String] The name of the country
|
163
|
+
def country
|
164
|
+
@properties['country']
|
165
|
+
end
|
166
|
+
|
167
|
+
##
|
168
|
+
# @return [String] The ISO country code
|
169
|
+
def iso_country
|
170
|
+
@properties['iso_country']
|
171
|
+
end
|
172
|
+
|
173
|
+
##
|
174
|
+
# @return [Array[String]] The terminating_prefix_prices
|
175
|
+
def terminating_prefix_prices
|
176
|
+
@properties['terminating_prefix_prices']
|
177
|
+
end
|
178
|
+
|
179
|
+
##
|
180
|
+
# @return [String] The OriginatingCallPrice record
|
181
|
+
def originating_call_price
|
182
|
+
@properties['originating_call_price']
|
183
|
+
end
|
184
|
+
|
185
|
+
##
|
186
|
+
# @return [String] The currency in which prices are measured, in ISO 4127 format (e.g. usd, eur, jpy)
|
187
|
+
def price_unit
|
188
|
+
@properties['price_unit']
|
189
|
+
end
|
190
|
+
|
191
|
+
##
|
192
|
+
# @return [String] The absolute URL of the resource
|
193
|
+
def url
|
194
|
+
@properties['url']
|
195
|
+
end
|
196
|
+
|
197
|
+
##
|
198
|
+
# Fetch the NumberInstance
|
199
|
+
# @param [String] origination_number The origination phone number, in
|
200
|
+
# {E.164}[https://www.twilio.com/docs/glossary/what-e164] format, for which to
|
201
|
+
# fetch the origin-based voice pricing information. E.164 format consists of a +
|
202
|
+
# followed by the country code and subscriber number.
|
203
|
+
# @return [NumberInstance] Fetched NumberInstance
|
204
|
+
def fetch(origination_number: :unset)
|
205
|
+
context.fetch(origination_number: origination_number, )
|
206
|
+
end
|
207
|
+
|
208
|
+
##
|
209
|
+
# Provide a user friendly representation
|
210
|
+
def to_s
|
211
|
+
values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
|
212
|
+
"<Twilio.Pricing.V2.NumberInstance #{values}>"
|
213
|
+
end
|
214
|
+
|
215
|
+
##
|
216
|
+
# Provide a detailed, user friendly representation
|
217
|
+
def inspect
|
218
|
+
values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
|
219
|
+
"<Twilio.Pricing.V2.NumberInstance #{values}>"
|
220
|
+
end
|
221
|
+
end
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|
225
|
+
end
|