twilio-ruby 5.66.2 → 5.67.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/pr-lint.yml +1 -1
- data/CHANGES.md +21 -0
- data/README.md +2 -2
- data/lib/twilio-ruby/http/http_client.rb +8 -4
- data/lib/twilio-ruby/rest/api/v2010/account/message.rb +1 -2
- data/lib/twilio-ruby/rest/client.rb +2 -1
- data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +12 -5
- data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +3 -3
- data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +14 -0
- data/lib/twilio-ruby/rest/verify/v2/service.rb +10 -6
- data/lib/twilio-ruby/rest/video/v1/room.rb +11 -1
- data/lib/twilio-ruby/version.rb +1 -1
- data/lib/twilio-ruby.rb +1 -1
- data/twilio-ruby.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7701af5fb4015c43f3cb33005487afe3b041e183
|
4
|
+
data.tar.gz: ecdf6d5493148b024f336215e37d63b7f81e8bcd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9bcaa3d09a723a6093c8f108c6b3104c66751ca3ccc6c159f88fcd34311b77a6695ea2c7a01ea58136569daae4984cb9f607e34db53b094a8e5b339f5630e9ff
|
7
|
+
data.tar.gz: 7ca90f7c1ef070172105178679e1f05ed6f05570b4f8f12437788f8eaa1c333499444aee475f69033fe1411977d5573a1d03c32fae22eb67cacc3d2f6273749a
|
data/CHANGES.md
CHANGED
@@ -1,6 +1,27 @@
|
|
1
1
|
twilio-ruby changelog
|
2
2
|
=====================
|
3
3
|
|
4
|
+
[2022-05-04] Version 5.67.0
|
5
|
+
---------------------------
|
6
|
+
**Library - Fix**
|
7
|
+
- [PR #607](https://github.com/twilio/twilio-ruby/pull/607): Retrieval of OS Info with Ruby Config for User Agent string. Thanks to [@claudiachua](https://github.com/claudiachua)!
|
8
|
+
- [PR #606](https://github.com/twilio/twilio-ruby/pull/606): Only require twilio_webhook_authentication if Rack version > 2. Thanks to [@jasonnoble](https://github.com/jasonnoble)!
|
9
|
+
- [PR #582](https://github.com/twilio/twilio-ruby/pull/582): avoid JSON::ParserError for all server errors. Thanks to [@dan-jensen](https://github.com/dan-jensen)!
|
10
|
+
|
11
|
+
**Library - Feature**
|
12
|
+
- [PR #591](https://github.com/twilio/twilio-ruby/pull/591): Add Faraday 2.0 support. Thanks to [@tconst](https://github.com/tconst)!
|
13
|
+
|
14
|
+
**Conversations**
|
15
|
+
- Expose query parameter `type` in list operation on Address Configurations resource
|
16
|
+
|
17
|
+
**Supersim**
|
18
|
+
- Add `data_total_billed` and `billed_units` fields to Super SIM UsageRecords API response.
|
19
|
+
- Change ESimProfiles `Eid` parameter to optional to enable Activation Code download method support **(breaking change)**
|
20
|
+
|
21
|
+
**Verify**
|
22
|
+
- Deprecate `push.include_date` parameter in create and update service.
|
23
|
+
|
24
|
+
|
4
25
|
[2022-04-20] Version 5.66.2
|
5
26
|
---------------------------
|
6
27
|
**Library - Chore**
|
data/README.md
CHANGED
@@ -34,13 +34,13 @@ This library supports the following Ruby implementations:
|
|
34
34
|
To install using [Bundler][bundler] grab the latest stable version:
|
35
35
|
|
36
36
|
```ruby
|
37
|
-
gem 'twilio-ruby', '~> 5.
|
37
|
+
gem 'twilio-ruby', '~> 5.67.0'
|
38
38
|
```
|
39
39
|
|
40
40
|
To manually install `twilio-ruby` via [Rubygems][rubygems] simply gem install:
|
41
41
|
|
42
42
|
```bash
|
43
|
-
gem install twilio-ruby -v 5.
|
43
|
+
gem install twilio-ruby -v 5.67.0
|
44
44
|
```
|
45
45
|
|
46
46
|
To build and install the development branch yourself from the latest source:
|
@@ -26,12 +26,16 @@ module Twilio
|
|
26
26
|
nil
|
27
27
|
end
|
28
28
|
|
29
|
-
def _request(request)
|
29
|
+
def _request(request) # rubocop:disable Metrics/MethodLength
|
30
30
|
@connection = Faraday.new(url: request.host + ':' + request.port.to_s, ssl: { verify: true }) do |f|
|
31
31
|
f.options.params_encoder = Faraday::FlatParamsEncoder
|
32
32
|
f.request :url_encoded
|
33
33
|
f.headers = request.headers
|
34
|
-
|
34
|
+
if Faraday::VERSION.start_with?('2.')
|
35
|
+
f.request(:authorization, :basic, request.auth[0], request.auth[1])
|
36
|
+
else
|
37
|
+
f.request(:basic_auth, request.auth[0], request.auth[1])
|
38
|
+
end
|
35
39
|
f.proxy = "#{@proxy_prot}://#{@proxy_auth}#{@proxy_path}" if @proxy_prot && @proxy_path
|
36
40
|
f.options.open_timeout = request.timeout || @timeout
|
37
41
|
f.options.timeout = request.timeout || @timeout
|
@@ -44,8 +48,8 @@ module Twilio
|
|
44
48
|
@last_response = nil
|
45
49
|
|
46
50
|
response = send(request)
|
47
|
-
if response.status
|
48
|
-
object = { message:
|
51
|
+
if (500..599).include?(response.status)
|
52
|
+
object = { message: "Server error (#{response.status})", code: response.status }.to_json
|
49
53
|
elsif response.body && !response.body.empty?
|
50
54
|
object = response.body
|
51
55
|
elsif response.status == 400
|
@@ -83,8 +83,7 @@ module Twilio
|
|
83
83
|
# @param [Time] send_at The time that Twilio will send the message. Must be in ISO
|
84
84
|
# 8601 format.
|
85
85
|
# @param [Boolean] send_as_mms If set to True, Twilio will deliver the message as
|
86
|
-
# a single MMS message, regardless of the presence of media.
|
87
|
-
# Feature.
|
86
|
+
# a single MMS message, regardless of the presence of media.
|
88
87
|
# @param [String] from A Twilio phone number in
|
89
88
|
# {E.164}[https://www.twilio.com/docs/glossary/what-e164] format, an {alphanumeric
|
90
89
|
# sender
|
@@ -70,7 +70,8 @@ module Twilio
|
|
70
70
|
def request(host, port, method, uri, params={}, data={}, headers={}, auth=nil, timeout=nil)
|
71
71
|
auth ||= @auth
|
72
72
|
|
73
|
-
|
73
|
+
ruby_config = RbConfig::CONFIG
|
74
|
+
headers['User-Agent'] = "twilio-ruby/#{Twilio::VERSION} (#{ruby_config["host_os"]} #{ruby_config["host_cpu"]}) Ruby/#{RUBY_VERSION}"
|
74
75
|
headers['Accept-Charset'] = 'utf-8'
|
75
76
|
|
76
77
|
user_agent_extensions.each { |extension| headers['User-Agent'] += " #{extension}" }
|
@@ -27,6 +27,8 @@ module Twilio
|
|
27
27
|
# Lists AddressConfigurationInstance records from the API as a list.
|
28
28
|
# Unlike stream(), this operation is eager and will load `limit` records into
|
29
29
|
# memory before returning.
|
30
|
+
# @param [String] type Filter the address configurations by its type. This value
|
31
|
+
# can be one of: `whatsapp`, `sms`.
|
30
32
|
# @param [Integer] limit Upper limit for the number of records to return. stream()
|
31
33
|
# guarantees to never return more than limit. Default is no limit
|
32
34
|
# @param [Integer] page_size Number of records to fetch per request, when
|
@@ -34,14 +36,16 @@ module Twilio
|
|
34
36
|
# but a limit is defined, stream() will attempt to read the limit with the most
|
35
37
|
# efficient page size, i.e. min(limit, 1000)
|
36
38
|
# @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
|
+
def list(type: :unset, limit: nil, page_size: nil)
|
40
|
+
self.stream(type: type, limit: limit, page_size: page_size).entries
|
39
41
|
end
|
40
42
|
|
41
43
|
##
|
42
44
|
# Streams AddressConfigurationInstance records from the API as an Enumerable.
|
43
45
|
# This operation lazily loads records as efficiently as possible until the limit
|
44
46
|
# is reached.
|
47
|
+
# @param [String] type Filter the address configurations by its type. This value
|
48
|
+
# can be one of: `whatsapp`, `sms`.
|
45
49
|
# @param [Integer] limit Upper limit for the number of records to return. stream()
|
46
50
|
# guarantees to never return more than limit. Default is no limit.
|
47
51
|
# @param [Integer] page_size Number of records to fetch per request, when
|
@@ -49,10 +53,10 @@ module Twilio
|
|
49
53
|
# but a limit is defined, stream() will attempt to read the limit with the most
|
50
54
|
# efficient page size, i.e. min(limit, 1000)
|
51
55
|
# @return [Enumerable] Enumerable that will yield up to limit results
|
52
|
-
def stream(limit: nil, page_size: nil)
|
56
|
+
def stream(type: :unset, limit: nil, page_size: nil)
|
53
57
|
limits = @version.read_limits(limit, page_size)
|
54
58
|
|
55
|
-
page = self.page(page_size: limits[:page_size], )
|
59
|
+
page = self.page(type: type, page_size: limits[:page_size], )
|
56
60
|
|
57
61
|
@version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
|
58
62
|
end
|
@@ -74,12 +78,15 @@ module Twilio
|
|
74
78
|
##
|
75
79
|
# Retrieve a single page of AddressConfigurationInstance records from the API.
|
76
80
|
# Request is executed immediately.
|
81
|
+
# @param [String] type Filter the address configurations by its type. This value
|
82
|
+
# can be one of: `whatsapp`, `sms`.
|
77
83
|
# @param [String] page_token PageToken provided by the API
|
78
84
|
# @param [Integer] page_number Page Number, this value is simply for client state
|
79
85
|
# @param [Integer] page_size Number of records to return, defaults to 50
|
80
86
|
# @return [Page] Page of AddressConfigurationInstance
|
81
|
-
def page(page_token: :unset, page_number: :unset, page_size: :unset)
|
87
|
+
def page(type: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
|
82
88
|
params = Twilio::Values.of({
|
89
|
+
'Type' => type,
|
83
90
|
'PageToken' => page_token,
|
84
91
|
'Page' => page_number,
|
85
92
|
'PageSize' => page_size,
|
@@ -27,19 +27,19 @@ module Twilio
|
|
27
27
|
|
28
28
|
##
|
29
29
|
# Create the EsimProfileInstance
|
30
|
-
# @param [String] eid Identifier of the eUICC that will claim the eSIM Profile.
|
31
30
|
# @param [String] callback_url The URL we should call using the `callback_method`
|
32
31
|
# when the status of the eSIM Profile changes. At this stage of the eSIM Profile
|
33
32
|
# pilot, the a request to the URL will only be called when the ESimProfile
|
34
33
|
# resource changes from `reserving` to `available`.
|
35
34
|
# @param [String] callback_method The HTTP method we should use to call
|
36
35
|
# `callback_url`. Can be: `GET` or `POST` and the default is POST.
|
36
|
+
# @param [String] eid Identifier of the eUICC that will claim the eSIM Profile.
|
37
37
|
# @return [EsimProfileInstance] Created EsimProfileInstance
|
38
|
-
def create(
|
38
|
+
def create(callback_url: :unset, callback_method: :unset, eid: :unset)
|
39
39
|
data = Twilio::Values.of({
|
40
|
-
'Eid' => eid,
|
41
40
|
'CallbackUrl' => callback_url,
|
42
41
|
'CallbackMethod' => callback_method,
|
42
|
+
'Eid' => eid,
|
43
43
|
})
|
44
44
|
|
45
45
|
payload = @version.create('POST', @uri, data: data)
|
@@ -263,6 +263,8 @@ module Twilio
|
|
263
263
|
'data_upload' => payload['data_upload'].to_i,
|
264
264
|
'data_download' => payload['data_download'].to_i,
|
265
265
|
'data_total' => payload['data_total'].to_i,
|
266
|
+
'data_total_billed' => payload['data_total_billed'].to_f,
|
267
|
+
'billed_unit' => payload['billed_unit'],
|
266
268
|
}
|
267
269
|
end
|
268
270
|
|
@@ -320,6 +322,18 @@ module Twilio
|
|
320
322
|
@properties['data_total']
|
321
323
|
end
|
322
324
|
|
325
|
+
##
|
326
|
+
# @return [String] Total amount in the `billed_unit` that was charged for the data uploaded or downloaded.
|
327
|
+
def data_total_billed
|
328
|
+
@properties['data_total_billed']
|
329
|
+
end
|
330
|
+
|
331
|
+
##
|
332
|
+
# @return [String] The currency in which the billed amounts are measured, specified in the 3 letter ISO 4127 format (e.g. `USD`, `EUR`, `JPY`).
|
333
|
+
def billed_unit
|
334
|
+
@properties['billed_unit']
|
335
|
+
end
|
336
|
+
|
323
337
|
##
|
324
338
|
# Provide a user friendly representation
|
325
339
|
def to_s
|
@@ -48,10 +48,12 @@ module Twilio
|
|
48
48
|
# a custom code instead of a randomly generated one. Not available for all
|
49
49
|
# customers.
|
50
50
|
# @param [Boolean] push_include_date Optional configuration for the Push factors.
|
51
|
-
# If true, include the date in the Challenge's
|
51
|
+
# If true, include the date in the Challenge's response. Otherwise, the date is
|
52
52
|
# omitted from the response. See
|
53
53
|
# {Challenge}[https://www.twilio.com/docs/verify/api/challenge] resource’s details
|
54
|
-
# parameter for more info. Default:
|
54
|
+
# parameter for more info. Default: false. **Deprecated** do not use this
|
55
|
+
# parameter. This timestamp value is the same one as the one found in
|
56
|
+
# `date_created`, please use that one instead.
|
55
57
|
# @param [String] push_apn_credential_sid Optional configuration for the Push
|
56
58
|
# factors. Set the APN Credential for this service. This will allow to send push
|
57
59
|
# notifications to iOS devices. See {Credential
|
@@ -282,10 +284,11 @@ module Twilio
|
|
282
284
|
# a custom code instead of a randomly generated one. Not available for all
|
283
285
|
# customers.
|
284
286
|
# @param [Boolean] push_include_date Optional configuration for the Push factors.
|
285
|
-
# If true, include the date in the Challenge's
|
287
|
+
# If true, include the date in the Challenge's response. Otherwise, the date is
|
286
288
|
# omitted from the response. See
|
287
289
|
# {Challenge}[https://www.twilio.com/docs/verify/api/challenge] resource’s details
|
288
|
-
# parameter for more info. Default:
|
290
|
+
# parameter for more info. Default: false. **Deprecated** do not use this
|
291
|
+
# parameter.
|
289
292
|
# @param [String] push_apn_credential_sid Optional configuration for the Push
|
290
293
|
# factors. Set the APN Credential for this service. This will allow to send push
|
291
294
|
# notifications to iOS devices. See {Credential
|
@@ -666,10 +669,11 @@ module Twilio
|
|
666
669
|
# a custom code instead of a randomly generated one. Not available for all
|
667
670
|
# customers.
|
668
671
|
# @param [Boolean] push_include_date Optional configuration for the Push factors.
|
669
|
-
# If true, include the date in the Challenge's
|
672
|
+
# If true, include the date in the Challenge's response. Otherwise, the date is
|
670
673
|
# omitted from the response. See
|
671
674
|
# {Challenge}[https://www.twilio.com/docs/verify/api/challenge] resource’s details
|
672
|
-
# parameter for more info. Default:
|
675
|
+
# parameter for more info. Default: false. **Deprecated** do not use this
|
676
|
+
# parameter.
|
673
677
|
# @param [String] push_apn_credential_sid Optional configuration for the Push
|
674
678
|
# factors. Set the APN Credential for this service. This will allow to send push
|
675
679
|
# notifications to iOS devices. See {Credential
|
@@ -72,8 +72,10 @@ module Twilio
|
|
72
72
|
# @param [String] unused_room_timeout Configures how long (in minutes) a room will
|
73
73
|
# remain active if no one joins. Valid values range from 1 to 60 minutes (no
|
74
74
|
# fractions).
|
75
|
+
# @param [Boolean] large_room When set to true, indicated that this is the large
|
76
|
+
# room.
|
75
77
|
# @return [RoomInstance] Created RoomInstance
|
76
|
-
def create(enable_turn: :unset, type: :unset, unique_name: :unset, status_callback: :unset, status_callback_method: :unset, max_participants: :unset, record_participants_on_connect: :unset, video_codecs: :unset, media_region: :unset, recording_rules: :unset, audio_only: :unset, max_participant_duration: :unset, empty_room_timeout: :unset, unused_room_timeout: :unset)
|
78
|
+
def create(enable_turn: :unset, type: :unset, unique_name: :unset, status_callback: :unset, status_callback_method: :unset, max_participants: :unset, record_participants_on_connect: :unset, video_codecs: :unset, media_region: :unset, recording_rules: :unset, audio_only: :unset, max_participant_duration: :unset, empty_room_timeout: :unset, unused_room_timeout: :unset, large_room: :unset)
|
77
79
|
data = Twilio::Values.of({
|
78
80
|
'EnableTurn' => enable_turn,
|
79
81
|
'Type' => type,
|
@@ -89,6 +91,7 @@ module Twilio
|
|
89
91
|
'MaxParticipantDuration' => max_participant_duration,
|
90
92
|
'EmptyRoomTimeout' => empty_room_timeout,
|
91
93
|
'UnusedRoomTimeout' => unused_room_timeout,
|
94
|
+
'LargeRoom' => large_room,
|
92
95
|
})
|
93
96
|
|
94
97
|
payload = @version.create('POST', @uri, data: data)
|
@@ -387,6 +390,7 @@ module Twilio
|
|
387
390
|
'audio_only' => payload['audio_only'],
|
388
391
|
'empty_room_timeout' => payload['empty_room_timeout'].to_i,
|
389
392
|
'unused_room_timeout' => payload['unused_room_timeout'].to_i,
|
393
|
+
'large_room' => payload['large_room'],
|
390
394
|
'url' => payload['url'],
|
391
395
|
'links' => payload['links'],
|
392
396
|
}
|
@@ -533,6 +537,12 @@ module Twilio
|
|
533
537
|
@properties['unused_room_timeout']
|
534
538
|
end
|
535
539
|
|
540
|
+
##
|
541
|
+
# @return [Boolean] Indicates if this is a large room.
|
542
|
+
def large_room
|
543
|
+
@properties['large_room']
|
544
|
+
end
|
545
|
+
|
536
546
|
##
|
537
547
|
# @return [String] The absolute URL of the resource
|
538
548
|
def url
|
data/lib/twilio-ruby/version.rb
CHANGED
data/lib/twilio-ruby.rb
CHANGED
@@ -10,7 +10,7 @@ require 'time'
|
|
10
10
|
require 'json'
|
11
11
|
|
12
12
|
require 'twilio-ruby/version' unless defined?(Twilio::VERSION)
|
13
|
-
require 'rack/twilio_webhook_authentication' if defined?(Rack)
|
13
|
+
require 'rack/twilio_webhook_authentication' if defined?(Rack) && defined?(Rack::MediaType)
|
14
14
|
|
15
15
|
require 'twilio-ruby/util'
|
16
16
|
require 'twilio-ruby/security/request_validator'
|
data/twilio-ruby.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
|
27
27
|
spec.add_dependency('jwt', '>= 1.5', '<= 2.5')
|
28
28
|
spec.add_dependency('nokogiri', '>= 1.6', '< 2.0')
|
29
|
-
spec.add_dependency('faraday', '>= 0.9', '<
|
29
|
+
spec.add_dependency('faraday', '>= 0.9', '< 3.0')
|
30
30
|
# Workaround for RBX <= 2.2.1, should be fixed in next version
|
31
31
|
spec.add_dependency('rubysl') if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
|
32
32
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twilio-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.67.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Twilio API Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-04
|
11
|
+
date: 2022-05-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jwt
|
@@ -59,7 +59,7 @@ dependencies:
|
|
59
59
|
version: '0.9'
|
60
60
|
- - "<"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
62
|
+
version: '3.0'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
version: '0.9'
|
70
70
|
- - "<"
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: '
|
72
|
+
version: '3.0'
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: bundler
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|