twilio-ruby 5.5.1 → 5.6.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 (29) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +18 -0
  3. data/README.md +2 -2
  4. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +96 -0
  5. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +396 -0
  6. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +396 -0
  7. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +396 -0
  8. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +396 -0
  9. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +4 -1
  10. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +15 -15
  11. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +1 -1
  12. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +7 -1
  13. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +17 -10
  14. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +41 -3
  15. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +6 -6
  16. data/lib/twilio-ruby/twiml/messaging_response.rb +3 -2
  17. data/lib/twilio-ruby/twiml/voice_response.rb +10 -6
  18. data/lib/twilio-ruby/version.rb +1 -1
  19. data/spec/integration/api/v2010/account/available_phone_number/machine_to_machine_spec.rb +101 -0
  20. data/spec/integration/api/v2010/account/available_phone_number/national_spec.rb +101 -0
  21. data/spec/integration/api/v2010/account/available_phone_number/shared_cost_spec.rb +101 -0
  22. data/spec/integration/api/v2010/account/available_phone_number/voip_spec.rb +101 -0
  23. data/spec/integration/api/v2010/account/call/recording_spec.rb +28 -28
  24. data/spec/integration/api/v2010/account/conference_spec.rb +6 -3
  25. data/spec/integration/api/v2010/account/recording_spec.rb +32 -24
  26. data/spec/integration/notify/v1/service_spec.rb +4 -0
  27. data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +50 -5
  28. data/spec/integration/proxy/v1/service/session_spec.rb +3 -3
  29. metadata +14 -2
@@ -0,0 +1,396 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Api < Domain
10
+ class V2010 < Version
11
+ class AccountContext < InstanceContext
12
+ class AvailablePhoneNumberCountryContext < InstanceContext
13
+ class NationalList < ListResource
14
+ ##
15
+ # Initialize the NationalList
16
+ # @param [Version] version Version that contains the resource
17
+ # @param [String] account_sid The 34 character string that uniquely identifies
18
+ # your account.
19
+ # @param [String] country_code The ISO Country code to lookup phone numbers for.
20
+ # @return [NationalList] NationalList
21
+ def initialize(version, account_sid: nil, country_code: nil)
22
+ super(version)
23
+
24
+ # Path Solution
25
+ @solution = {account_sid: account_sid, country_code: country_code}
26
+ @uri = "/Accounts/#{@solution[:account_sid]}/AvailablePhoneNumbers/#{@solution[:country_code]}/National.json"
27
+ end
28
+
29
+ ##
30
+ # Lists NationalInstance records from the API as a list.
31
+ # Unlike stream(), this operation is eager and will load `limit` records into
32
+ # memory before returning.
33
+ # @param [String] area_code The area_code
34
+ # @param [String] contains The contains
35
+ # @param [Boolean] sms_enabled The sms_enabled
36
+ # @param [Boolean] mms_enabled The mms_enabled
37
+ # @param [Boolean] voice_enabled The voice_enabled
38
+ # @param [Boolean] exclude_all_address_required The exclude_all_address_required
39
+ # @param [Boolean] exclude_local_address_required The
40
+ # exclude_local_address_required
41
+ # @param [Boolean] exclude_foreign_address_required The
42
+ # exclude_foreign_address_required
43
+ # @param [Boolean] beta The beta
44
+ # @param [String] near_number The near_number
45
+ # @param [String] near_lat_long The near_lat_long
46
+ # @param [String] distance The distance
47
+ # @param [String] in_postal_code The in_postal_code
48
+ # @param [String] in_region The in_region
49
+ # @param [String] in_rate_center The in_rate_center
50
+ # @param [String] in_lata The in_lata
51
+ # @param [String] in_locality The in_locality
52
+ # @param [Boolean] fax_enabled The fax_enabled
53
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
54
+ # guarantees to never return more than limit. Default is no limit
55
+ # @param [Integer] page_size Number of records to fetch per request, when
56
+ # not set will use the default value of 50 records. If no page_size is defined
57
+ # but a limit is defined, stream() will attempt to read the limit with the most
58
+ # efficient page size, i.e. min(limit, 1000)
59
+ # @return [Array] Array of up to limit results
60
+ def list(area_code: :unset, contains: :unset, sms_enabled: :unset, mms_enabled: :unset, voice_enabled: :unset, exclude_all_address_required: :unset, exclude_local_address_required: :unset, exclude_foreign_address_required: :unset, beta: :unset, near_number: :unset, near_lat_long: :unset, distance: :unset, in_postal_code: :unset, in_region: :unset, in_rate_center: :unset, in_lata: :unset, in_locality: :unset, fax_enabled: :unset, limit: nil, page_size: nil)
61
+ self.stream(
62
+ area_code: area_code,
63
+ contains: contains,
64
+ sms_enabled: sms_enabled,
65
+ mms_enabled: mms_enabled,
66
+ voice_enabled: voice_enabled,
67
+ exclude_all_address_required: exclude_all_address_required,
68
+ exclude_local_address_required: exclude_local_address_required,
69
+ exclude_foreign_address_required: exclude_foreign_address_required,
70
+ beta: beta,
71
+ near_number: near_number,
72
+ near_lat_long: near_lat_long,
73
+ distance: distance,
74
+ in_postal_code: in_postal_code,
75
+ in_region: in_region,
76
+ in_rate_center: in_rate_center,
77
+ in_lata: in_lata,
78
+ in_locality: in_locality,
79
+ fax_enabled: fax_enabled,
80
+ limit: limit,
81
+ page_size: page_size
82
+ ).entries
83
+ end
84
+
85
+ ##
86
+ # Streams NationalInstance records from the API as an Enumerable.
87
+ # This operation lazily loads records as efficiently as possible until the limit
88
+ # is reached.
89
+ # @param [String] area_code The area_code
90
+ # @param [String] contains The contains
91
+ # @param [Boolean] sms_enabled The sms_enabled
92
+ # @param [Boolean] mms_enabled The mms_enabled
93
+ # @param [Boolean] voice_enabled The voice_enabled
94
+ # @param [Boolean] exclude_all_address_required The exclude_all_address_required
95
+ # @param [Boolean] exclude_local_address_required The
96
+ # exclude_local_address_required
97
+ # @param [Boolean] exclude_foreign_address_required The
98
+ # exclude_foreign_address_required
99
+ # @param [Boolean] beta The beta
100
+ # @param [String] near_number The near_number
101
+ # @param [String] near_lat_long The near_lat_long
102
+ # @param [String] distance The distance
103
+ # @param [String] in_postal_code The in_postal_code
104
+ # @param [String] in_region The in_region
105
+ # @param [String] in_rate_center The in_rate_center
106
+ # @param [String] in_lata The in_lata
107
+ # @param [String] in_locality The in_locality
108
+ # @param [Boolean] fax_enabled The fax_enabled
109
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
110
+ # guarantees to never return more than limit. Default is no limit.
111
+ # @param [Integer] page_size Number of records to fetch per request, when
112
+ # not set will use the default value of 50 records. If no page_size is defined
113
+ # but a limit is defined, stream() will attempt to read the limit with the most
114
+ # efficient page size, i.e. min(limit, 1000)
115
+ # @return [Enumerable] Enumerable that will yield up to limit results
116
+ def stream(area_code: :unset, contains: :unset, sms_enabled: :unset, mms_enabled: :unset, voice_enabled: :unset, exclude_all_address_required: :unset, exclude_local_address_required: :unset, exclude_foreign_address_required: :unset, beta: :unset, near_number: :unset, near_lat_long: :unset, distance: :unset, in_postal_code: :unset, in_region: :unset, in_rate_center: :unset, in_lata: :unset, in_locality: :unset, fax_enabled: :unset, limit: nil, page_size: nil)
117
+ limits = @version.read_limits(limit, page_size)
118
+
119
+ page = self.page(
120
+ area_code: area_code,
121
+ contains: contains,
122
+ sms_enabled: sms_enabled,
123
+ mms_enabled: mms_enabled,
124
+ voice_enabled: voice_enabled,
125
+ exclude_all_address_required: exclude_all_address_required,
126
+ exclude_local_address_required: exclude_local_address_required,
127
+ exclude_foreign_address_required: exclude_foreign_address_required,
128
+ beta: beta,
129
+ near_number: near_number,
130
+ near_lat_long: near_lat_long,
131
+ distance: distance,
132
+ in_postal_code: in_postal_code,
133
+ in_region: in_region,
134
+ in_rate_center: in_rate_center,
135
+ in_lata: in_lata,
136
+ in_locality: in_locality,
137
+ fax_enabled: fax_enabled,
138
+ page_size: limits[:page_size],
139
+ )
140
+
141
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
142
+ end
143
+
144
+ ##
145
+ # When passed a block, yields NationalInstance records from the API.
146
+ # This operation lazily loads records as efficiently as possible until the limit
147
+ # is reached.
148
+ def each
149
+ limits = @version.read_limits
150
+
151
+ page = self.page(page_size: limits[:page_size])
152
+
153
+ @version.stream(page,
154
+ limit: limits[:limit],
155
+ page_limit: limits[:page_limit]).each {|x| yield x}
156
+ end
157
+
158
+ ##
159
+ # Retrieve a single page of NationalInstance records from the API.
160
+ # Request is executed immediately.
161
+ # @param [String] area_code The area_code
162
+ # @param [String] contains The contains
163
+ # @param [Boolean] sms_enabled The sms_enabled
164
+ # @param [Boolean] mms_enabled The mms_enabled
165
+ # @param [Boolean] voice_enabled The voice_enabled
166
+ # @param [Boolean] exclude_all_address_required The exclude_all_address_required
167
+ # @param [Boolean] exclude_local_address_required The
168
+ # exclude_local_address_required
169
+ # @param [Boolean] exclude_foreign_address_required The
170
+ # exclude_foreign_address_required
171
+ # @param [Boolean] beta The beta
172
+ # @param [String] near_number The near_number
173
+ # @param [String] near_lat_long The near_lat_long
174
+ # @param [String] distance The distance
175
+ # @param [String] in_postal_code The in_postal_code
176
+ # @param [String] in_region The in_region
177
+ # @param [String] in_rate_center The in_rate_center
178
+ # @param [String] in_lata The in_lata
179
+ # @param [String] in_locality The in_locality
180
+ # @param [Boolean] fax_enabled The fax_enabled
181
+ # @param [String] page_token PageToken provided by the API
182
+ # @param [Integer] page_number Page Number, this value is simply for client state
183
+ # @param [Integer] page_size Number of records to return, defaults to 50
184
+ # @return [Page] Page of NationalInstance
185
+ def page(area_code: :unset, contains: :unset, sms_enabled: :unset, mms_enabled: :unset, voice_enabled: :unset, exclude_all_address_required: :unset, exclude_local_address_required: :unset, exclude_foreign_address_required: :unset, beta: :unset, near_number: :unset, near_lat_long: :unset, distance: :unset, in_postal_code: :unset, in_region: :unset, in_rate_center: :unset, in_lata: :unset, in_locality: :unset, fax_enabled: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
186
+ params = Twilio::Values.of({
187
+ 'AreaCode' => area_code,
188
+ 'Contains' => contains,
189
+ 'SmsEnabled' => sms_enabled,
190
+ 'MmsEnabled' => mms_enabled,
191
+ 'VoiceEnabled' => voice_enabled,
192
+ 'ExcludeAllAddressRequired' => exclude_all_address_required,
193
+ 'ExcludeLocalAddressRequired' => exclude_local_address_required,
194
+ 'ExcludeForeignAddressRequired' => exclude_foreign_address_required,
195
+ 'Beta' => beta,
196
+ 'NearNumber' => near_number,
197
+ 'NearLatLong' => near_lat_long,
198
+ 'Distance' => distance,
199
+ 'InPostalCode' => in_postal_code,
200
+ 'InRegion' => in_region,
201
+ 'InRateCenter' => in_rate_center,
202
+ 'InLata' => in_lata,
203
+ 'InLocality' => in_locality,
204
+ 'FaxEnabled' => fax_enabled,
205
+ 'PageToken' => page_token,
206
+ 'Page' => page_number,
207
+ 'PageSize' => page_size,
208
+ })
209
+ response = @version.page(
210
+ 'GET',
211
+ @uri,
212
+ params
213
+ )
214
+ NationalPage.new(@version, response, @solution)
215
+ end
216
+
217
+ ##
218
+ # Retrieve a single page of NationalInstance records from the API.
219
+ # Request is executed immediately.
220
+ # @param [String] target_url API-generated URL for the requested results page
221
+ # @return [Page] Page of NationalInstance
222
+ def get_page(target_url)
223
+ response = @version.domain.request(
224
+ 'GET',
225
+ target_url
226
+ )
227
+ NationalPage.new(@version, response, @solution)
228
+ end
229
+
230
+ ##
231
+ # Provide a user friendly representation
232
+ def to_s
233
+ '#<Twilio.Api.V2010.NationalList>'
234
+ end
235
+ end
236
+
237
+ class NationalPage < Page
238
+ ##
239
+ # Initialize the NationalPage
240
+ # @param [Version] version Version that contains the resource
241
+ # @param [Response] response Response from the API
242
+ # @param [Hash] solution Path solution for the resource
243
+ # @return [NationalPage] NationalPage
244
+ def initialize(version, response, solution)
245
+ super(version, response)
246
+
247
+ # Path Solution
248
+ @solution = solution
249
+ end
250
+
251
+ ##
252
+ # Build an instance of NationalInstance
253
+ # @param [Hash] payload Payload response from the API
254
+ # @return [NationalInstance] NationalInstance
255
+ def get_instance(payload)
256
+ NationalInstance.new(
257
+ @version,
258
+ payload,
259
+ account_sid: @solution[:account_sid],
260
+ country_code: @solution[:country_code],
261
+ )
262
+ end
263
+
264
+ ##
265
+ # Provide a user friendly representation
266
+ def to_s
267
+ '<Twilio.Api.V2010.NationalPage>'
268
+ end
269
+ end
270
+
271
+ class NationalInstance < InstanceResource
272
+ ##
273
+ # Initialize the NationalInstance
274
+ # @param [Version] version Version that contains the resource
275
+ # @param [Hash] payload payload that contains response from Twilio
276
+ # @param [String] account_sid The 34 character string that uniquely identifies
277
+ # your account.
278
+ # @param [String] country_code The ISO Country code to lookup phone numbers for.
279
+ # @return [NationalInstance] NationalInstance
280
+ def initialize(version, payload, account_sid: nil, country_code: nil)
281
+ super(version)
282
+
283
+ # Marshaled Properties
284
+ @properties = {
285
+ 'friendly_name' => payload['friendly_name'],
286
+ 'phone_number' => payload['phone_number'],
287
+ 'lata' => payload['lata'],
288
+ 'locality' => payload['locality'],
289
+ 'rate_center' => payload['rate_center'],
290
+ 'latitude' => payload['latitude'].to_f,
291
+ 'longitude' => payload['longitude'].to_f,
292
+ 'region' => payload['region'],
293
+ 'postal_code' => payload['postal_code'],
294
+ 'iso_country' => payload['iso_country'],
295
+ 'address_requirements' => payload['address_requirements'],
296
+ 'beta' => payload['beta'],
297
+ 'capabilities' => payload['capabilities'],
298
+ }
299
+ end
300
+
301
+ ##
302
+ # @return [String] The friendly_name
303
+ def friendly_name
304
+ @properties['friendly_name']
305
+ end
306
+
307
+ ##
308
+ # @return [String] The phone_number
309
+ def phone_number
310
+ @properties['phone_number']
311
+ end
312
+
313
+ ##
314
+ # @return [String] The lata
315
+ def lata
316
+ @properties['lata']
317
+ end
318
+
319
+ ##
320
+ # @return [String] The locality
321
+ def locality
322
+ @properties['locality']
323
+ end
324
+
325
+ ##
326
+ # @return [String] The rate_center
327
+ def rate_center
328
+ @properties['rate_center']
329
+ end
330
+
331
+ ##
332
+ # @return [String] The latitude
333
+ def latitude
334
+ @properties['latitude']
335
+ end
336
+
337
+ ##
338
+ # @return [String] The longitude
339
+ def longitude
340
+ @properties['longitude']
341
+ end
342
+
343
+ ##
344
+ # @return [String] The region
345
+ def region
346
+ @properties['region']
347
+ end
348
+
349
+ ##
350
+ # @return [String] The postal_code
351
+ def postal_code
352
+ @properties['postal_code']
353
+ end
354
+
355
+ ##
356
+ # @return [String] The iso_country
357
+ def iso_country
358
+ @properties['iso_country']
359
+ end
360
+
361
+ ##
362
+ # @return [String] The address_requirements
363
+ def address_requirements
364
+ @properties['address_requirements']
365
+ end
366
+
367
+ ##
368
+ # @return [Boolean] The beta
369
+ def beta
370
+ @properties['beta']
371
+ end
372
+
373
+ ##
374
+ # @return [String] The capabilities
375
+ def capabilities
376
+ @properties['capabilities']
377
+ end
378
+
379
+ ##
380
+ # Provide a user friendly representation
381
+ def to_s
382
+ "<Twilio.Api.V2010.NationalInstance>"
383
+ end
384
+
385
+ ##
386
+ # Provide a detailed, user friendly representation
387
+ def inspect
388
+ "<Twilio.Api.V2010.NationalInstance>"
389
+ end
390
+ end
391
+ end
392
+ end
393
+ end
394
+ end
395
+ end
396
+ end
@@ -0,0 +1,396 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Api < Domain
10
+ class V2010 < Version
11
+ class AccountContext < InstanceContext
12
+ class AvailablePhoneNumberCountryContext < InstanceContext
13
+ class SharedCostList < ListResource
14
+ ##
15
+ # Initialize the SharedCostList
16
+ # @param [Version] version Version that contains the resource
17
+ # @param [String] account_sid The 34 character string that uniquely identifies
18
+ # your account.
19
+ # @param [String] country_code The ISO Country code to lookup phone numbers for.
20
+ # @return [SharedCostList] SharedCostList
21
+ def initialize(version, account_sid: nil, country_code: nil)
22
+ super(version)
23
+
24
+ # Path Solution
25
+ @solution = {account_sid: account_sid, country_code: country_code}
26
+ @uri = "/Accounts/#{@solution[:account_sid]}/AvailablePhoneNumbers/#{@solution[:country_code]}/SharedCost.json"
27
+ end
28
+
29
+ ##
30
+ # Lists SharedCostInstance records from the API as a list.
31
+ # Unlike stream(), this operation is eager and will load `limit` records into
32
+ # memory before returning.
33
+ # @param [String] area_code The area_code
34
+ # @param [String] contains The contains
35
+ # @param [Boolean] sms_enabled The sms_enabled
36
+ # @param [Boolean] mms_enabled The mms_enabled
37
+ # @param [Boolean] voice_enabled The voice_enabled
38
+ # @param [Boolean] exclude_all_address_required The exclude_all_address_required
39
+ # @param [Boolean] exclude_local_address_required The
40
+ # exclude_local_address_required
41
+ # @param [Boolean] exclude_foreign_address_required The
42
+ # exclude_foreign_address_required
43
+ # @param [Boolean] beta The beta
44
+ # @param [String] near_number The near_number
45
+ # @param [String] near_lat_long The near_lat_long
46
+ # @param [String] distance The distance
47
+ # @param [String] in_postal_code The in_postal_code
48
+ # @param [String] in_region The in_region
49
+ # @param [String] in_rate_center The in_rate_center
50
+ # @param [String] in_lata The in_lata
51
+ # @param [String] in_locality The in_locality
52
+ # @param [Boolean] fax_enabled The fax_enabled
53
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
54
+ # guarantees to never return more than limit. Default is no limit
55
+ # @param [Integer] page_size Number of records to fetch per request, when
56
+ # not set will use the default value of 50 records. If no page_size is defined
57
+ # but a limit is defined, stream() will attempt to read the limit with the most
58
+ # efficient page size, i.e. min(limit, 1000)
59
+ # @return [Array] Array of up to limit results
60
+ def list(area_code: :unset, contains: :unset, sms_enabled: :unset, mms_enabled: :unset, voice_enabled: :unset, exclude_all_address_required: :unset, exclude_local_address_required: :unset, exclude_foreign_address_required: :unset, beta: :unset, near_number: :unset, near_lat_long: :unset, distance: :unset, in_postal_code: :unset, in_region: :unset, in_rate_center: :unset, in_lata: :unset, in_locality: :unset, fax_enabled: :unset, limit: nil, page_size: nil)
61
+ self.stream(
62
+ area_code: area_code,
63
+ contains: contains,
64
+ sms_enabled: sms_enabled,
65
+ mms_enabled: mms_enabled,
66
+ voice_enabled: voice_enabled,
67
+ exclude_all_address_required: exclude_all_address_required,
68
+ exclude_local_address_required: exclude_local_address_required,
69
+ exclude_foreign_address_required: exclude_foreign_address_required,
70
+ beta: beta,
71
+ near_number: near_number,
72
+ near_lat_long: near_lat_long,
73
+ distance: distance,
74
+ in_postal_code: in_postal_code,
75
+ in_region: in_region,
76
+ in_rate_center: in_rate_center,
77
+ in_lata: in_lata,
78
+ in_locality: in_locality,
79
+ fax_enabled: fax_enabled,
80
+ limit: limit,
81
+ page_size: page_size
82
+ ).entries
83
+ end
84
+
85
+ ##
86
+ # Streams SharedCostInstance records from the API as an Enumerable.
87
+ # This operation lazily loads records as efficiently as possible until the limit
88
+ # is reached.
89
+ # @param [String] area_code The area_code
90
+ # @param [String] contains The contains
91
+ # @param [Boolean] sms_enabled The sms_enabled
92
+ # @param [Boolean] mms_enabled The mms_enabled
93
+ # @param [Boolean] voice_enabled The voice_enabled
94
+ # @param [Boolean] exclude_all_address_required The exclude_all_address_required
95
+ # @param [Boolean] exclude_local_address_required The
96
+ # exclude_local_address_required
97
+ # @param [Boolean] exclude_foreign_address_required The
98
+ # exclude_foreign_address_required
99
+ # @param [Boolean] beta The beta
100
+ # @param [String] near_number The near_number
101
+ # @param [String] near_lat_long The near_lat_long
102
+ # @param [String] distance The distance
103
+ # @param [String] in_postal_code The in_postal_code
104
+ # @param [String] in_region The in_region
105
+ # @param [String] in_rate_center The in_rate_center
106
+ # @param [String] in_lata The in_lata
107
+ # @param [String] in_locality The in_locality
108
+ # @param [Boolean] fax_enabled The fax_enabled
109
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
110
+ # guarantees to never return more than limit. Default is no limit.
111
+ # @param [Integer] page_size Number of records to fetch per request, when
112
+ # not set will use the default value of 50 records. If no page_size is defined
113
+ # but a limit is defined, stream() will attempt to read the limit with the most
114
+ # efficient page size, i.e. min(limit, 1000)
115
+ # @return [Enumerable] Enumerable that will yield up to limit results
116
+ def stream(area_code: :unset, contains: :unset, sms_enabled: :unset, mms_enabled: :unset, voice_enabled: :unset, exclude_all_address_required: :unset, exclude_local_address_required: :unset, exclude_foreign_address_required: :unset, beta: :unset, near_number: :unset, near_lat_long: :unset, distance: :unset, in_postal_code: :unset, in_region: :unset, in_rate_center: :unset, in_lata: :unset, in_locality: :unset, fax_enabled: :unset, limit: nil, page_size: nil)
117
+ limits = @version.read_limits(limit, page_size)
118
+
119
+ page = self.page(
120
+ area_code: area_code,
121
+ contains: contains,
122
+ sms_enabled: sms_enabled,
123
+ mms_enabled: mms_enabled,
124
+ voice_enabled: voice_enabled,
125
+ exclude_all_address_required: exclude_all_address_required,
126
+ exclude_local_address_required: exclude_local_address_required,
127
+ exclude_foreign_address_required: exclude_foreign_address_required,
128
+ beta: beta,
129
+ near_number: near_number,
130
+ near_lat_long: near_lat_long,
131
+ distance: distance,
132
+ in_postal_code: in_postal_code,
133
+ in_region: in_region,
134
+ in_rate_center: in_rate_center,
135
+ in_lata: in_lata,
136
+ in_locality: in_locality,
137
+ fax_enabled: fax_enabled,
138
+ page_size: limits[:page_size],
139
+ )
140
+
141
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
142
+ end
143
+
144
+ ##
145
+ # When passed a block, yields SharedCostInstance records from the API.
146
+ # This operation lazily loads records as efficiently as possible until the limit
147
+ # is reached.
148
+ def each
149
+ limits = @version.read_limits
150
+
151
+ page = self.page(page_size: limits[:page_size])
152
+
153
+ @version.stream(page,
154
+ limit: limits[:limit],
155
+ page_limit: limits[:page_limit]).each {|x| yield x}
156
+ end
157
+
158
+ ##
159
+ # Retrieve a single page of SharedCostInstance records from the API.
160
+ # Request is executed immediately.
161
+ # @param [String] area_code The area_code
162
+ # @param [String] contains The contains
163
+ # @param [Boolean] sms_enabled The sms_enabled
164
+ # @param [Boolean] mms_enabled The mms_enabled
165
+ # @param [Boolean] voice_enabled The voice_enabled
166
+ # @param [Boolean] exclude_all_address_required The exclude_all_address_required
167
+ # @param [Boolean] exclude_local_address_required The
168
+ # exclude_local_address_required
169
+ # @param [Boolean] exclude_foreign_address_required The
170
+ # exclude_foreign_address_required
171
+ # @param [Boolean] beta The beta
172
+ # @param [String] near_number The near_number
173
+ # @param [String] near_lat_long The near_lat_long
174
+ # @param [String] distance The distance
175
+ # @param [String] in_postal_code The in_postal_code
176
+ # @param [String] in_region The in_region
177
+ # @param [String] in_rate_center The in_rate_center
178
+ # @param [String] in_lata The in_lata
179
+ # @param [String] in_locality The in_locality
180
+ # @param [Boolean] fax_enabled The fax_enabled
181
+ # @param [String] page_token PageToken provided by the API
182
+ # @param [Integer] page_number Page Number, this value is simply for client state
183
+ # @param [Integer] page_size Number of records to return, defaults to 50
184
+ # @return [Page] Page of SharedCostInstance
185
+ def page(area_code: :unset, contains: :unset, sms_enabled: :unset, mms_enabled: :unset, voice_enabled: :unset, exclude_all_address_required: :unset, exclude_local_address_required: :unset, exclude_foreign_address_required: :unset, beta: :unset, near_number: :unset, near_lat_long: :unset, distance: :unset, in_postal_code: :unset, in_region: :unset, in_rate_center: :unset, in_lata: :unset, in_locality: :unset, fax_enabled: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
186
+ params = Twilio::Values.of({
187
+ 'AreaCode' => area_code,
188
+ 'Contains' => contains,
189
+ 'SmsEnabled' => sms_enabled,
190
+ 'MmsEnabled' => mms_enabled,
191
+ 'VoiceEnabled' => voice_enabled,
192
+ 'ExcludeAllAddressRequired' => exclude_all_address_required,
193
+ 'ExcludeLocalAddressRequired' => exclude_local_address_required,
194
+ 'ExcludeForeignAddressRequired' => exclude_foreign_address_required,
195
+ 'Beta' => beta,
196
+ 'NearNumber' => near_number,
197
+ 'NearLatLong' => near_lat_long,
198
+ 'Distance' => distance,
199
+ 'InPostalCode' => in_postal_code,
200
+ 'InRegion' => in_region,
201
+ 'InRateCenter' => in_rate_center,
202
+ 'InLata' => in_lata,
203
+ 'InLocality' => in_locality,
204
+ 'FaxEnabled' => fax_enabled,
205
+ 'PageToken' => page_token,
206
+ 'Page' => page_number,
207
+ 'PageSize' => page_size,
208
+ })
209
+ response = @version.page(
210
+ 'GET',
211
+ @uri,
212
+ params
213
+ )
214
+ SharedCostPage.new(@version, response, @solution)
215
+ end
216
+
217
+ ##
218
+ # Retrieve a single page of SharedCostInstance records from the API.
219
+ # Request is executed immediately.
220
+ # @param [String] target_url API-generated URL for the requested results page
221
+ # @return [Page] Page of SharedCostInstance
222
+ def get_page(target_url)
223
+ response = @version.domain.request(
224
+ 'GET',
225
+ target_url
226
+ )
227
+ SharedCostPage.new(@version, response, @solution)
228
+ end
229
+
230
+ ##
231
+ # Provide a user friendly representation
232
+ def to_s
233
+ '#<Twilio.Api.V2010.SharedCostList>'
234
+ end
235
+ end
236
+
237
+ class SharedCostPage < Page
238
+ ##
239
+ # Initialize the SharedCostPage
240
+ # @param [Version] version Version that contains the resource
241
+ # @param [Response] response Response from the API
242
+ # @param [Hash] solution Path solution for the resource
243
+ # @return [SharedCostPage] SharedCostPage
244
+ def initialize(version, response, solution)
245
+ super(version, response)
246
+
247
+ # Path Solution
248
+ @solution = solution
249
+ end
250
+
251
+ ##
252
+ # Build an instance of SharedCostInstance
253
+ # @param [Hash] payload Payload response from the API
254
+ # @return [SharedCostInstance] SharedCostInstance
255
+ def get_instance(payload)
256
+ SharedCostInstance.new(
257
+ @version,
258
+ payload,
259
+ account_sid: @solution[:account_sid],
260
+ country_code: @solution[:country_code],
261
+ )
262
+ end
263
+
264
+ ##
265
+ # Provide a user friendly representation
266
+ def to_s
267
+ '<Twilio.Api.V2010.SharedCostPage>'
268
+ end
269
+ end
270
+
271
+ class SharedCostInstance < InstanceResource
272
+ ##
273
+ # Initialize the SharedCostInstance
274
+ # @param [Version] version Version that contains the resource
275
+ # @param [Hash] payload payload that contains response from Twilio
276
+ # @param [String] account_sid The 34 character string that uniquely identifies
277
+ # your account.
278
+ # @param [String] country_code The ISO Country code to lookup phone numbers for.
279
+ # @return [SharedCostInstance] SharedCostInstance
280
+ def initialize(version, payload, account_sid: nil, country_code: nil)
281
+ super(version)
282
+
283
+ # Marshaled Properties
284
+ @properties = {
285
+ 'friendly_name' => payload['friendly_name'],
286
+ 'phone_number' => payload['phone_number'],
287
+ 'lata' => payload['lata'],
288
+ 'locality' => payload['locality'],
289
+ 'rate_center' => payload['rate_center'],
290
+ 'latitude' => payload['latitude'].to_f,
291
+ 'longitude' => payload['longitude'].to_f,
292
+ 'region' => payload['region'],
293
+ 'postal_code' => payload['postal_code'],
294
+ 'iso_country' => payload['iso_country'],
295
+ 'address_requirements' => payload['address_requirements'],
296
+ 'beta' => payload['beta'],
297
+ 'capabilities' => payload['capabilities'],
298
+ }
299
+ end
300
+
301
+ ##
302
+ # @return [String] The friendly_name
303
+ def friendly_name
304
+ @properties['friendly_name']
305
+ end
306
+
307
+ ##
308
+ # @return [String] The phone_number
309
+ def phone_number
310
+ @properties['phone_number']
311
+ end
312
+
313
+ ##
314
+ # @return [String] The lata
315
+ def lata
316
+ @properties['lata']
317
+ end
318
+
319
+ ##
320
+ # @return [String] The locality
321
+ def locality
322
+ @properties['locality']
323
+ end
324
+
325
+ ##
326
+ # @return [String] The rate_center
327
+ def rate_center
328
+ @properties['rate_center']
329
+ end
330
+
331
+ ##
332
+ # @return [String] The latitude
333
+ def latitude
334
+ @properties['latitude']
335
+ end
336
+
337
+ ##
338
+ # @return [String] The longitude
339
+ def longitude
340
+ @properties['longitude']
341
+ end
342
+
343
+ ##
344
+ # @return [String] The region
345
+ def region
346
+ @properties['region']
347
+ end
348
+
349
+ ##
350
+ # @return [String] The postal_code
351
+ def postal_code
352
+ @properties['postal_code']
353
+ end
354
+
355
+ ##
356
+ # @return [String] The iso_country
357
+ def iso_country
358
+ @properties['iso_country']
359
+ end
360
+
361
+ ##
362
+ # @return [String] The address_requirements
363
+ def address_requirements
364
+ @properties['address_requirements']
365
+ end
366
+
367
+ ##
368
+ # @return [Boolean] The beta
369
+ def beta
370
+ @properties['beta']
371
+ end
372
+
373
+ ##
374
+ # @return [String] The capabilities
375
+ def capabilities
376
+ @properties['capabilities']
377
+ end
378
+
379
+ ##
380
+ # Provide a user friendly representation
381
+ def to_s
382
+ "<Twilio.Api.V2010.SharedCostInstance>"
383
+ end
384
+
385
+ ##
386
+ # Provide a detailed, user friendly representation
387
+ def inspect
388
+ "<Twilio.Api.V2010.SharedCostInstance>"
389
+ end
390
+ end
391
+ end
392
+ end
393
+ end
394
+ end
395
+ end
396
+ end