twilio-ruby 5.66.0 → 5.67.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 05d747e6afb3147d260dc189582592a19e650957
4
- data.tar.gz: 07114f3240dfeebbdd9d3128a6631d6b40255a41
3
+ metadata.gz: 7701af5fb4015c43f3cb33005487afe3b041e183
4
+ data.tar.gz: ecdf6d5493148b024f336215e37d63b7f81e8bcd
5
5
  SHA512:
6
- metadata.gz: cceca2b0801fc90db7e7671ef014bfd0d962e44a732be30b6d8e32fa00006cfb9cbcf9742e3ca4848b35f6cf2ea7ca8c6cf3e9a5b078a3a9dd3f900ed19f9f9a
7
- data.tar.gz: 8d735e1c20ec6c1d5b151ffb100bcad25413bd67e935104bf0b3d6fc4070fc1598c8c8e66427295e54507dcf7fd456a71e45de4b3ef4fc58af8eddadad280bfb
6
+ metadata.gz: 9bcaa3d09a723a6093c8f108c6b3104c66751ca3ccc6c159f88fcd34311b77a6695ea2c7a01ea58136569daae4984cb9f607e34db53b094a8e5b339f5630e9ff
7
+ data.tar.gz: 7ca90f7c1ef070172105178679e1f05ed6f05570b4f8f12437788f8eaa1c333499444aee475f69033fe1411977d5573a1d03c32fae22eb67cacc3d2f6273749a
@@ -0,0 +1,15 @@
1
+ name: Lint PR
2
+ on:
3
+ pull_request_target:
4
+ types: [ opened, edited, synchronize, reopened ]
5
+
6
+ jobs:
7
+ validate:
8
+ name: Validate title
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: amannn/action-semantic-pull-request@v4
12
+ with:
13
+ types: chore docs fix feat test
14
+ env:
15
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
data/CHANGES.md CHANGED
@@ -1,6 +1,46 @@
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
+
25
+ [2022-04-20] Version 5.66.2
26
+ ---------------------------
27
+ **Library - Chore**
28
+ - [PR #604](https://github.com/twilio/twilio-ruby/pull/604): update the user agent string for twilio-ruby. Thanks to [@claudiachua](https://github.com/claudiachua)!
29
+
30
+
31
+ [2022-04-06] Version 5.66.1
32
+ ---------------------------
33
+ **Api**
34
+ - Updated `provider_sid` visibility to private
35
+
36
+ **Verify**
37
+ - Verify List Attempts API summary endpoint added.
38
+ - Update PII documentation for `AccessTokens` `factor_friendly_name` property.
39
+
40
+ **Voice**
41
+ - make annotation parameter from /Calls API private
42
+
43
+
4
44
  [2022-03-23] Version 5.66.0
5
45
  ---------------------------
6
46
  **Api**
data/README.md CHANGED
@@ -4,8 +4,6 @@
4
4
  [![Gem Version](https://img.shields.io/gem/v/twilio-ruby.svg)](https://rubygems.org/gems/twilio-ruby)
5
5
  [![Learn with TwilioQuest](https://img.shields.io/static/v1?label=TwilioQuest&message=Learn%20to%20contribute%21&color=F22F46&labelColor=1f243c&style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAASFBMVEUAAAAZGRkcHBwjIyMoKCgAAABgYGBoaGiAgICMjIyzs7PJycnMzMzNzc3UoBfd3d3m5ubqrhfrMEDu7u739/f4vSb/3AD///9tbdyEAAAABXRSTlMAAAAAAMJrBrEAAAKoSURBVHgB7ZrRcuI6EESdyxXGYoNFvMD//+l2bSszRgyUYpFAsXOeiJGmj4NkuWx1Qeh+Ekl9DgEXOBwOx+Px5xyQhDykfgq4wG63MxxaR4ddIkg6Ul3g84vCIcjPBA5gmUMeXESrlukuoK33+33uID8TWeLAdOWsKpJYzwVMB7bOzYSGOciyUlXSn0/ABXTosJ1M1SbypZ4O4MbZuIDMU02PMbauhhHMHXbmebmALIiEbbbbbUrpF1gwE9kFfRNAJaP+FQEXCCTGyJ4ngDrjOFo3jEL5JdqjF/pueR4cCeCGgAtwmuRS6gDwaRiGvu+DMFwSBLTE3+jF8JyuV1okPZ+AC4hDFhCHyHQjdjPHUKFDlHSJkHQXMB3KpSwXNGJPcwwTdZiXlRN0gSp0zpWxNtM0beYE0nRH6QIbO7rawwXaBYz0j78gxjokDuv12gVeUuBD0MDi0OQCLvDaAho4juP1Q/jkAncXqIcCfd+7gAu4QLMACCLxpRsSuQh0igu0C9Svhi7weAGZg50L3IE3cai4IfkNZAC8dfdhsUD3CgKBVC9JE5ABAFzg4QL/taYPAAWrHdYcgfLaIgAXWJ7OV38n1LEF8tt2TH29E+QAoDoO5Ve/LtCQDmKM9kPbvCEBApK+IXzbcSJ0cIGF6e8gpcRhUDogWZ8JnaWjPXc/fNnBBUKRngiHgTUSivSzDRDgHZQOLvBQgf8rRt+VdBUUhwkU6VpJ+xcOwQUqZr+mR0kvBUgv6cB4+37hQAkXqE8PwGisGhJtN4xAHMzrsgvI7rccXqSvKh6jltGlrOHA3Xk1At3LC4QiPdX9/0ndHpGVvTjR4bZA1ypAKgVcwE5vx74ulwIugDt8e/X7JgfkucBMIAr26ndnB4UCLnDOqvteQsHlgX9N4A+c4cW3DXSPbwAAAABJRU5ErkJggg==)](https://twil.io/learn-open-source)
6
6
 
7
- **The default branch name for this repository has been changed to `main` as of 07/27/2020.**
8
-
9
7
  ## Documentation
10
8
 
11
9
  The documentation for the Twilio API can be found [here][apidocs].
@@ -36,13 +34,13 @@ This library supports the following Ruby implementations:
36
34
  To install using [Bundler][bundler] grab the latest stable version:
37
35
 
38
36
  ```ruby
39
- gem 'twilio-ruby', '~> 5.66.0'
37
+ gem 'twilio-ruby', '~> 5.67.0'
40
38
  ```
41
39
 
42
40
  To manually install `twilio-ruby` via [Rubygems][rubygems] simply gem install:
43
41
 
44
42
  ```bash
45
- gem install twilio-ruby -v 5.66.0
43
+ gem install twilio-ruby -v 5.67.0
46
44
  ```
47
45
 
48
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
- f.request(:basic_auth, request.auth[0], request.auth[1])
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 == 504
48
- object = { message: 'Request timeout', code: 504 }.to_json
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
@@ -684,7 +684,6 @@ module Twilio
684
684
  'price_unit' => payload['price_unit'],
685
685
  'direction' => payload['direction'],
686
686
  'answered_by' => payload['answered_by'],
687
- 'annotation' => payload['annotation'],
688
687
  'api_version' => payload['api_version'],
689
688
  'forwarded_from' => payload['forwarded_from'],
690
689
  'group_sid' => payload['group_sid'],
@@ -819,12 +818,6 @@ module Twilio
819
818
  @properties['answered_by']
820
819
  end
821
820
 
822
- ##
823
- # @return [String] The annotation provided for the call
824
- def annotation
825
- @properties['annotation']
826
- end
827
-
828
821
  ##
829
822
  # @return [String] The API Version used to create the call
830
823
  def api_version
@@ -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. This is a Beta
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
@@ -13,11 +13,11 @@ module Twilio
13
13
  class Client
14
14
  @@default_region = 'us1'
15
15
 
16
- attr_accessor :http_client, :username, :password, :account_sid, :auth_token, :region, :edge, :logger
16
+ attr_accessor :http_client, :username, :password, :account_sid, :auth_token, :region, :edge, :logger, :user_agent_extensions
17
17
 
18
18
  ##
19
19
  # Initializes the Twilio Client
20
- def initialize(username=nil, password=nil, account_sid=nil, region=nil, http_client=nil, logger=nil)
20
+ def initialize(username=nil, password=nil, account_sid=nil, region=nil, http_client=nil, logger=nil, user_agent_extensions=nil)
21
21
  @username = username || Twilio.account_sid
22
22
  @password = password || Twilio.auth_token
23
23
  @region = region || Twilio.region
@@ -27,6 +27,7 @@ module Twilio
27
27
  @auth = [@username, @password]
28
28
  @http_client = http_client || Twilio.http_client || Twilio::HTTP::Client.new
29
29
  @logger = logger || Twilio.logger
30
+ @user_agent_extensions = user_agent_extensions || []
30
31
 
31
32
  # Domains
32
33
  @accounts = nil
@@ -69,11 +70,12 @@ module Twilio
69
70
  def request(host, port, method, uri, params={}, data={}, headers={}, auth=nil, timeout=nil)
70
71
  auth ||= @auth
71
72
 
72
- headers['User-Agent'] = "twilio-ruby/#{Twilio::VERSION}" +
73
- " (#{RUBY_ENGINE}/#{RUBY_PLATFORM}" +
74
- " #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL})"
73
+ ruby_config = RbConfig::CONFIG
74
+ headers['User-Agent'] = "twilio-ruby/#{Twilio::VERSION} (#{ruby_config["host_os"]} #{ruby_config["host_cpu"]}) Ruby/#{RUBY_VERSION}"
75
75
  headers['Accept-Charset'] = 'utf-8'
76
76
 
77
+ user_agent_extensions.each { |extension| headers['User-Agent'] += " #{extension}" }
78
+
77
79
  if method == 'POST' && !headers['Content-Type']
78
80
  headers['Content-Type'] = 'application/x-www-form-urlencoded'
79
81
  end
@@ -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(eid: nil, callback_url: :unset, callback_method: :unset)
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
@@ -61,7 +61,8 @@ module Twilio
61
61
  # may include multiple Rate Limit values in each request.
62
62
  # @param [Hash] channel_configuration
63
63
  # {`email`}[https://www.twilio.com/docs/verify/email] channel configuration in
64
- # json format. Must include 'from' and 'from_name'.
64
+ # json format. The fields 'from' and 'from_name' are optional but if included the
65
+ # 'from' field must have a valid email address.
65
66
  # @param [String] app_hash Your {App
66
67
  # Hash}[https://developers.google.com/identity/sms-retriever/verify#computing_your_apps_hash_string]
67
68
  # to be appended at the end of your verification SMS body. Applies only to SMS.
@@ -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 reponse. Otherwise, the date is
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: true
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 reponse. Otherwise, the date is
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: true
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 reponse. Otherwise, the date is
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: true
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
@@ -0,0 +1,234 @@
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 Verify < Domain
12
+ class V2 < Version
13
+ class VerificationAttemptsSummaryList < ListResource
14
+ ##
15
+ # Initialize the VerificationAttemptsSummaryList
16
+ # @param [Version] version Version that contains the resource
17
+ # @return [VerificationAttemptsSummaryList] VerificationAttemptsSummaryList
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.Verify.V2.VerificationAttemptsSummaryList>'
29
+ end
30
+ end
31
+
32
+ class VerificationAttemptsSummaryPage < Page
33
+ ##
34
+ # Initialize the VerificationAttemptsSummaryPage
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 [VerificationAttemptsSummaryPage] VerificationAttemptsSummaryPage
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 VerificationAttemptsSummaryInstance
48
+ # @param [Hash] payload Payload response from the API
49
+ # @return [VerificationAttemptsSummaryInstance] VerificationAttemptsSummaryInstance
50
+ def get_instance(payload)
51
+ VerificationAttemptsSummaryInstance.new(@version, payload, )
52
+ end
53
+
54
+ ##
55
+ # Provide a user friendly representation
56
+ def to_s
57
+ '<Twilio.Verify.V2.VerificationAttemptsSummaryPage>'
58
+ end
59
+ end
60
+
61
+ class VerificationAttemptsSummaryContext < InstanceContext
62
+ ##
63
+ # Initialize the VerificationAttemptsSummaryContext
64
+ # @param [Version] version Version that contains the resource
65
+ # @return [VerificationAttemptsSummaryContext] VerificationAttemptsSummaryContext
66
+ def initialize(version)
67
+ super(version)
68
+
69
+ # Path Solution
70
+ @solution = {}
71
+ @uri = "/Attempts/Summary"
72
+ end
73
+
74
+ ##
75
+ # Fetch the VerificationAttemptsSummaryInstance
76
+ # @param [String] verify_service_sid Filter used to consider only Verification
77
+ # Attempts of the given verify service on the summary aggregation.
78
+ # @param [Time] date_created_after Datetime filter used to consider only
79
+ # Verification Attempts created after this datetime on the summary aggregation.
80
+ # Given as GMT in RFC 2822 format.
81
+ # @param [Time] date_created_before Datetime filter used to consider only
82
+ # Verification Attempts created before this datetime on the summary aggregation.
83
+ # Given as GMT in RFC 2822 format.
84
+ # @param [String] country Filter used to consider only Verification Attempts sent
85
+ # to the specified destination country on the summary aggregation.
86
+ # @param [verification_attempts_summary.Channels] channel Filter Verification
87
+ # Attempts considered on the summary aggregation by communication channel. Valid
88
+ # values are `SMS` and `CALL`
89
+ # @param [String] destination_prefix Filter the Verification Attempts considered
90
+ # on the summary aggregation by Destination prefix. It is the prefix of a phone
91
+ # number in E.164 format.
92
+ # @return [VerificationAttemptsSummaryInstance] Fetched VerificationAttemptsSummaryInstance
93
+ def fetch(verify_service_sid: :unset, date_created_after: :unset, date_created_before: :unset, country: :unset, channel: :unset, destination_prefix: :unset)
94
+ params = Twilio::Values.of({
95
+ 'VerifyServiceSid' => verify_service_sid,
96
+ 'DateCreatedAfter' => Twilio.serialize_iso8601_datetime(date_created_after),
97
+ 'DateCreatedBefore' => Twilio.serialize_iso8601_datetime(date_created_before),
98
+ 'Country' => country,
99
+ 'Channel' => channel,
100
+ 'DestinationPrefix' => destination_prefix,
101
+ })
102
+
103
+ payload = @version.fetch('GET', @uri, params: params)
104
+
105
+ VerificationAttemptsSummaryInstance.new(@version, payload, )
106
+ end
107
+
108
+ ##
109
+ # Provide a user friendly representation
110
+ def to_s
111
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
112
+ "#<Twilio.Verify.V2.VerificationAttemptsSummaryContext #{context}>"
113
+ end
114
+
115
+ ##
116
+ # Provide a detailed, user friendly representation
117
+ def inspect
118
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
119
+ "#<Twilio.Verify.V2.VerificationAttemptsSummaryContext #{context}>"
120
+ end
121
+ end
122
+
123
+ class VerificationAttemptsSummaryInstance < InstanceResource
124
+ ##
125
+ # Initialize the VerificationAttemptsSummaryInstance
126
+ # @param [Version] version Version that contains the resource
127
+ # @param [Hash] payload payload that contains response from Twilio
128
+ # @return [VerificationAttemptsSummaryInstance] VerificationAttemptsSummaryInstance
129
+ def initialize(version, payload)
130
+ super(version)
131
+
132
+ # Marshaled Properties
133
+ @properties = {
134
+ 'total_attempts' => payload['total_attempts'].to_i,
135
+ 'total_converted' => payload['total_converted'].to_i,
136
+ 'total_unconverted' => payload['total_unconverted'].to_i,
137
+ 'conversion_rate_percentage' => payload['conversion_rate_percentage'].to_f,
138
+ 'url' => payload['url'],
139
+ }
140
+
141
+ # Context
142
+ @instance_context = nil
143
+ @params = {}
144
+ end
145
+
146
+ ##
147
+ # Generate an instance context for the instance, the context is capable of
148
+ # performing various actions. All instance actions are proxied to the context
149
+ # @return [VerificationAttemptsSummaryContext] VerificationAttemptsSummaryContext for this VerificationAttemptsSummaryInstance
150
+ def context
151
+ unless @instance_context
152
+ @instance_context = VerificationAttemptsSummaryContext.new(@version, )
153
+ end
154
+ @instance_context
155
+ end
156
+
157
+ ##
158
+ # @return [String] Total of attempts made.
159
+ def total_attempts
160
+ @properties['total_attempts']
161
+ end
162
+
163
+ ##
164
+ # @return [String] Total of attempts confirmed by the end user.
165
+ def total_converted
166
+ @properties['total_converted']
167
+ end
168
+
169
+ ##
170
+ # @return [String] Total of attempts made that were not confirmed by the end user.
171
+ def total_unconverted
172
+ @properties['total_unconverted']
173
+ end
174
+
175
+ ##
176
+ # @return [String] Percentage of the confirmed messages over the total.
177
+ def conversion_rate_percentage
178
+ @properties['conversion_rate_percentage']
179
+ end
180
+
181
+ ##
182
+ # @return [String] The url
183
+ def url
184
+ @properties['url']
185
+ end
186
+
187
+ ##
188
+ # Fetch the VerificationAttemptsSummaryInstance
189
+ # @param [String] verify_service_sid Filter used to consider only Verification
190
+ # Attempts of the given verify service on the summary aggregation.
191
+ # @param [Time] date_created_after Datetime filter used to consider only
192
+ # Verification Attempts created after this datetime on the summary aggregation.
193
+ # Given as GMT in RFC 2822 format.
194
+ # @param [Time] date_created_before Datetime filter used to consider only
195
+ # Verification Attempts created before this datetime on the summary aggregation.
196
+ # Given as GMT in RFC 2822 format.
197
+ # @param [String] country Filter used to consider only Verification Attempts sent
198
+ # to the specified destination country on the summary aggregation.
199
+ # @param [verification_attempts_summary.Channels] channel Filter Verification
200
+ # Attempts considered on the summary aggregation by communication channel. Valid
201
+ # values are `SMS` and `CALL`
202
+ # @param [String] destination_prefix Filter the Verification Attempts considered
203
+ # on the summary aggregation by Destination prefix. It is the prefix of a phone
204
+ # number in E.164 format.
205
+ # @return [VerificationAttemptsSummaryInstance] Fetched VerificationAttemptsSummaryInstance
206
+ def fetch(verify_service_sid: :unset, date_created_after: :unset, date_created_before: :unset, country: :unset, channel: :unset, destination_prefix: :unset)
207
+ context.fetch(
208
+ verify_service_sid: verify_service_sid,
209
+ date_created_after: date_created_after,
210
+ date_created_before: date_created_before,
211
+ country: country,
212
+ channel: channel,
213
+ destination_prefix: destination_prefix,
214
+ )
215
+ end
216
+
217
+ ##
218
+ # Provide a user friendly representation
219
+ def to_s
220
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
221
+ "<Twilio.Verify.V2.VerificationAttemptsSummaryInstance #{values}>"
222
+ end
223
+
224
+ ##
225
+ # Provide a detailed, user friendly representation
226
+ def inspect
227
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
228
+ "<Twilio.Verify.V2.VerificationAttemptsSummaryInstance #{values}>"
229
+ end
230
+ end
231
+ end
232
+ end
233
+ end
234
+ end
@@ -18,6 +18,7 @@ module Twilio
18
18
  @forms = nil
19
19
  @services = nil
20
20
  @verification_attempts = nil
21
+ @verification_attempts_summary = nil
21
22
  @templates = nil
22
23
  end
23
24
 
@@ -68,6 +69,12 @@ module Twilio
68
69
  end
69
70
  end
70
71
 
72
+ ##
73
+ # @return [Twilio::REST::Verify::V2::VerificationAttemptsSummaryContext]
74
+ def verification_attempts_summary
75
+ @verification_attempts_summary ||= VerificationAttemptsSummaryContext.new self
76
+ end
77
+
71
78
  ##
72
79
  # @return [Twilio::REST::Verify::V2::TemplateContext]
73
80
  def templates
@@ -55,6 +55,12 @@ module Twilio
55
55
  self.v2.verification_attempts(sid)
56
56
  end
57
57
 
58
+ ##
59
+ # @return [Twilio::REST::Verify::V2::VerificationAttemptsSummaryInstance]
60
+ def verification_attempts_summary
61
+ self.v2.verification_attempts_summary()
62
+ end
63
+
58
64
  ##
59
65
  # @return [Twilio::REST::Verify::V2::TemplateInstance]
60
66
  def templates
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Twilio
2
- VERSION = '5.66.0'
2
+ VERSION = '5.67.0'
3
3
  end
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', '< 2.0')
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.66.0
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-03-23 00:00:00.000000000 Z
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: '2.0'
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: '2.0'
72
+ version: '3.0'
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: bundler
75
75
  requirement: !ruby/object:Gem::Requirement
@@ -198,6 +198,7 @@ extra_rdoc_files:
198
198
  - LICENSE
199
199
  files:
200
200
  - ".dockerignore"
201
+ - ".github/workflows/pr-lint.yml"
201
202
  - ".github/workflows/test-and-deploy.yml"
202
203
  - ".gitignore"
203
204
  - ".rubocop.yml"
@@ -725,6 +726,7 @@ files:
725
726
  - lib/twilio-ruby/rest/verify/v2/service/webhook.rb
726
727
  - lib/twilio-ruby/rest/verify/v2/template.rb
727
728
  - lib/twilio-ruby/rest/verify/v2/verification_attempt.rb
729
+ - lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb
728
730
  - lib/twilio-ruby/rest/video.rb
729
731
  - lib/twilio-ruby/rest/video/v1.rb
730
732
  - lib/twilio-ruby/rest/video/v1/composition.rb