twilio-ruby 5.52.0 → 5.67.3

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 (163) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/pr-lint.yml +15 -0
  3. data/.github/workflows/test-and-deploy.yml +129 -0
  4. data/.gitignore +5 -1
  5. data/.rubocop.yml +1 -1
  6. data/.rubocop_todo.yml +91 -28
  7. data/CHANGES.md +563 -0
  8. data/Gemfile +1 -0
  9. data/Makefile +8 -11
  10. data/README.md +13 -6
  11. data/examples/examples.rb +1 -1
  12. data/lib/rack/twilio_webhook_authentication.rb +25 -1
  13. data/lib/twilio-ruby/http/http_client.rb +20 -4
  14. data/lib/twilio-ruby/http.rb +5 -0
  15. data/lib/twilio-ruby/jwt/access_token.rb +13 -0
  16. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +23 -23
  17. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +5 -5
  18. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +8 -8
  19. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +674 -0
  20. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +674 -0
  21. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +68 -14
  22. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +12 -8
  23. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +1 -1
  24. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +11 -4
  25. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +11 -4
  26. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +11 -4
  27. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +17 -10
  28. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +18 -5
  29. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +34 -7
  30. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +11 -11
  31. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +11 -11
  32. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +0 -8
  33. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +0 -6
  34. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +0 -8
  35. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +0 -8
  36. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +0 -8
  37. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +10 -4
  38. data/lib/twilio-ruby/rest/chat/v3/channel.rb +275 -0
  39. data/lib/twilio-ruby/rest/chat/v3.rb +48 -0
  40. data/lib/twilio-ruby/rest/chat.rb +16 -0
  41. data/lib/twilio-ruby/rest/client.rb +21 -12
  42. data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +454 -0
  43. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +12 -5
  44. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +7 -0
  45. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +312 -0
  46. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +18 -2
  47. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +269 -0
  48. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +8 -0
  49. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +12 -5
  50. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +7 -0
  51. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +324 -0
  52. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +466 -0
  53. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +44 -0
  54. data/lib/twilio-ruby/rest/conversations/v1/service.rb +23 -0
  55. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +442 -0
  56. data/lib/twilio-ruby/rest/conversations/v1/user.rb +35 -0
  57. data/lib/twilio-ruby/rest/conversations/v1.rb +24 -0
  58. data/lib/twilio-ruby/rest/conversations.rb +15 -0
  59. data/lib/twilio-ruby/rest/events/v1/event_type.rb +12 -5
  60. data/lib/twilio-ruby/rest/events/v1/sink.rb +41 -5
  61. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +28 -0
  62. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +55 -34
  63. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +236 -0
  64. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +330 -0
  65. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +384 -0
  66. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +233 -0
  67. data/lib/twilio-ruby/rest/flex_api/v1.rb +16 -0
  68. data/lib/twilio-ruby/rest/flex_api.rb +9 -0
  69. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +258 -0
  70. data/lib/twilio-ruby/rest/{fax → frontline_api}/v1.rb +11 -11
  71. data/lib/twilio-ruby/rest/{fax.rb → frontline_api.rb} +11 -11
  72. data/lib/twilio-ruby/rest/insights/v1/annotation.rb +271 -0
  73. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +434 -0
  74. data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +474 -0
  75. data/lib/twilio-ruby/rest/insights/v1/conference.rb +512 -0
  76. data/lib/twilio-ruby/rest/insights/v1/setting.rb +215 -0
  77. data/lib/twilio-ruby/rest/insights/v1.rb +46 -0
  78. data/lib/twilio-ruby/rest/insights.rb +28 -0
  79. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +268 -0
  80. data/lib/twilio-ruby/rest/lookups/v2.rb +45 -0
  81. data/lib/twilio-ruby/rest/lookups.rb +7 -0
  82. data/lib/twilio-ruby/rest/media/v1/media_processor.rb +397 -0
  83. data/lib/twilio-ruby/rest/media/v1/media_recording.rb +406 -0
  84. data/lib/twilio-ruby/rest/media/v1/player_streamer/playback_grant.rb +221 -0
  85. data/lib/twilio-ruby/rest/media/v1/player_streamer.rb +403 -0
  86. data/lib/twilio-ruby/rest/media/v1.rb +76 -0
  87. data/lib/twilio-ruby/rest/media.rb +65 -0
  88. data/lib/twilio-ruby/rest/{fax/v1/fax/fax_media.rb → messaging/v1/brand_registration/brand_vetting.rb} +134 -95
  89. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +127 -2
  90. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +7 -0
  91. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +187 -20
  92. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +6 -2
  93. data/lib/twilio-ruby/rest/messaging/v1/service.rb +37 -5
  94. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +268 -0
  95. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +188 -0
  96. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +128 -26
  97. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +7 -0
  98. data/lib/twilio-ruby/rest/pricing/v2/country.rb +280 -0
  99. data/lib/twilio-ruby/rest/pricing/v2/number.rb +225 -0
  100. data/lib/twilio-ruby/rest/pricing/v2.rb +37 -0
  101. data/lib/twilio-ruby/rest/pricing.rb +19 -0
  102. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +1 -1
  103. data/lib/twilio-ruby/rest/serverless/v1/service.rb +7 -0
  104. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +1 -1
  105. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +1 -1
  106. data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +372 -0
  107. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +44 -55
  108. data/lib/twilio-ruby/rest/supersim/v1/{command.rb → ip_command.rb} +132 -84
  109. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +231 -0
  110. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +30 -1
  111. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +1 -1
  112. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +23 -9
  113. data/lib/twilio-ruby/rest/supersim/v1.rb +23 -7
  114. data/lib/twilio-ruby/rest/supersim.rb +15 -6
  115. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +7 -0
  116. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +7 -3
  117. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +6 -2
  118. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +7 -3
  119. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +23 -11
  120. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +4 -2
  121. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +4 -2
  122. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +38 -22
  123. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +19 -3
  124. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +155 -10
  125. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +12 -9
  126. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +74 -22
  127. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +34 -15
  128. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +66 -31
  129. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +7 -3
  130. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +25 -7
  131. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +24 -5
  132. data/lib/twilio-ruby/rest/verify/v2/service.rb +40 -11
  133. data/lib/twilio-ruby/rest/verify/v2/template.rb +206 -0
  134. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +89 -21
  135. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +234 -0
  136. data/lib/twilio-ruby/rest/verify/v2.rb +14 -0
  137. data/lib/twilio-ruby/rest/verify.rb +14 -2
  138. data/lib/twilio-ruby/rest/video/v1/composition.rb +21 -8
  139. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +0 -8
  140. data/lib/twilio-ruby/rest/video/v1/recording.rb +21 -0
  141. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +7 -0
  142. data/lib/twilio-ruby/rest/video/v1/room.rb +62 -5
  143. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +184 -0
  144. data/lib/twilio-ruby/rest/voice/v1.rb +21 -0
  145. data/lib/twilio-ruby/rest/voice.rb +8 -0
  146. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +3 -3
  147. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +16 -26
  148. data/lib/twilio-ruby/rest.rb +13 -0
  149. data/lib/twilio-ruby/twiml/voice_response.rb +727 -87
  150. data/lib/twilio-ruby/version.rb +1 -1
  151. data/lib/twilio-ruby.rb +6 -16
  152. data/sonar-project.properties +13 -0
  153. data/twilio-ruby.gemspec +1 -2
  154. metadata +59 -32
  155. data/.travis.yml +0 -45
  156. data/lib/twilio-ruby/rest/fax/v1/fax.rb +0 -536
  157. /data/lib/twilio-ruby/framework/{domain.rb → rest/domain.rb} +0 -0
  158. /data/lib/twilio-ruby/framework/{error.rb → rest/error.rb} +0 -0
  159. /data/lib/twilio-ruby/framework/{helper.rb → rest/helper.rb} +0 -0
  160. /data/lib/twilio-ruby/framework/{obsolete_client.rb → rest/obsolete_client.rb} +0 -0
  161. /data/lib/twilio-ruby/framework/{page.rb → rest/page.rb} +0 -0
  162. /data/lib/twilio-ruby/framework/{resource.rb → rest/resource.rb} +0 -0
  163. /data/lib/twilio-ruby/framework/{version.rb → rest/version.rb} +0 -0
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'rack/media_type'
4
+
3
5
  module Rack
4
6
  # Middleware that authenticates webhooks from Twilio using the request
5
7
  # validator.
@@ -19,6 +21,10 @@ module Rack
19
21
  # doesn't validate then the middleware responds immediately with a 403 status.
20
22
 
21
23
  class TwilioWebhookAuthentication
24
+ # Rack's FORM_DATA_MEDIA_TYPES can be modified to taste, so we're slightly
25
+ # more conservative in what we consider form data.
26
+ FORM_URLENCODED_MEDIA_TYPE = Rack::MediaType.type('application/x-www-form-urlencoded')
27
+
22
28
  def initialize(app, auth_token, *paths, &auth_token_lookup)
23
29
  @app = app
24
30
  @auth_token = auth_token
@@ -30,7 +36,7 @@ module Rack
30
36
  return @app.call(env) unless env['PATH_INFO'].match(@path_regex)
31
37
  request = Rack::Request.new(env)
32
38
  original_url = request.url
33
- params = request.post? ? request.POST : {}
39
+ params = extract_params!(request)
34
40
  auth_token = @auth_token || get_auth_token(params['AccountSid'])
35
41
  validator = Twilio::Security::RequestValidator.new(auth_token)
36
42
  signature = env['HTTP_X_TWILIO_SIGNATURE'] || ''
@@ -44,5 +50,23 @@ module Rack
44
50
  ]
45
51
  end
46
52
  end
53
+
54
+ # Extract the params from the the request that we can use to determine the
55
+ # signature. This _may_ modify the passed in request since it may read/rewind
56
+ # the body.
57
+ def extract_params!(request)
58
+ return {} unless request.post?
59
+
60
+ if request.media_type == FORM_URLENCODED_MEDIA_TYPE
61
+ request.POST
62
+ else
63
+ request.body.rewind
64
+ body = request.body.read
65
+ request.body.rewind
66
+ body
67
+ end
68
+ end
69
+
70
+ private :extract_params!
47
71
  end
48
72
  end
@@ -16,25 +16,41 @@ module Twilio
16
16
  @ssl_ca_file = ssl_ca_file
17
17
  @timeout = timeout
18
18
  @adapter = Faraday.default_adapter
19
+ @configure_connection_blocks = []
19
20
  end
20
21
 
21
- def _request(request)
22
+ def configure_connection(&block)
23
+ raise ArgumentError, "#{__method__} must be given a block!" unless block_given?
24
+
25
+ @configure_connection_blocks << block
26
+ nil
27
+ end
28
+
29
+ def _request(request) # rubocop:disable Metrics/MethodLength
22
30
  @connection = Faraday.new(url: request.host + ':' + request.port.to_s, ssl: { verify: true }) do |f|
23
31
  f.options.params_encoder = Faraday::FlatParamsEncoder
24
32
  f.request :url_encoded
25
- f.adapter @adapter
26
33
  f.headers = request.headers
27
- f.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
28
39
  f.proxy = "#{@proxy_prot}://#{@proxy_auth}#{@proxy_path}" if @proxy_prot && @proxy_path
29
40
  f.options.open_timeout = request.timeout || @timeout
30
41
  f.options.timeout = request.timeout || @timeout
42
+
43
+ @configure_connection_blocks.each { |block| block.call(f) }
44
+ f.adapter @adapter
31
45
  end
32
46
 
33
47
  @last_request = request
34
48
  @last_response = nil
35
49
 
36
50
  response = send(request)
37
- if response.body && !response.body.empty?
51
+ if (500..599).include?(response.status)
52
+ object = { message: "Server error (#{response.status})", code: response.status }.to_json
53
+ elsif response.body && !response.body.empty?
38
54
  object = response.body
39
55
  elsif response.status == 400
40
56
  object = { message: 'Bad request', code: 400 }.to_json
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ Dir[File.join(__dir__, 'http/**/*.rb')].sort.each do |file|
4
+ require file
5
+ end
@@ -267,6 +267,19 @@ module Twilio
267
267
  payload
268
268
  end
269
269
  end
270
+
271
+ class PlaybackGrant
272
+ include AccessTokenGrant
273
+ attr_accessor :grant
274
+
275
+ def _key
276
+ 'player'
277
+ end
278
+
279
+ def _generate_payload
280
+ grant
281
+ end
282
+ end
270
283
  end
271
284
  end
272
285
  end
@@ -87,6 +87,20 @@ module Twilio
87
87
  @uri = "/Accounts/#{@solution[:account_sid]}/Calls/#{@solution[:call_sid]}/Feedback.json"
88
88
  end
89
89
 
90
+ ##
91
+ # Fetch the FeedbackInstance
92
+ # @return [FeedbackInstance] Fetched FeedbackInstance
93
+ def fetch
94
+ payload = @version.fetch('GET', @uri)
95
+
96
+ FeedbackInstance.new(
97
+ @version,
98
+ payload,
99
+ account_sid: @solution[:account_sid],
100
+ call_sid: @solution[:call_sid],
101
+ )
102
+ end
103
+
90
104
  ##
91
105
  # Create the FeedbackInstance
92
106
  # @param [String] quality_score The call quality expressed as an integer from `1`
@@ -113,20 +127,6 @@ module Twilio
113
127
  )
114
128
  end
115
129
 
116
- ##
117
- # Fetch the FeedbackInstance
118
- # @return [FeedbackInstance] Fetched FeedbackInstance
119
- def fetch
120
- payload = @version.fetch('GET', @uri)
121
-
122
- FeedbackInstance.new(
123
- @version,
124
- payload,
125
- account_sid: @solution[:account_sid],
126
- call_sid: @solution[:call_sid],
127
- )
128
- end
129
-
130
130
  ##
131
131
  # Update the FeedbackInstance
132
132
  # @param [String] quality_score The call quality expressed as an integer from `1`
@@ -137,7 +137,7 @@ module Twilio
137
137
  # `incorrect-caller-id`, `post-dial-delay`, `digits-not-captured`,
138
138
  # `audio-latency`, `unsolicited-call`, or `one-way-audio`.
139
139
  # @return [FeedbackInstance] Updated FeedbackInstance
140
- def update(quality_score: nil, issue: :unset)
140
+ def update(quality_score: :unset, issue: :unset)
141
141
  data = Twilio::Values.of({
142
142
  'QualityScore' => quality_score,
143
143
  'Issue' => Twilio.serialize_list(issue) { |e| e },
@@ -244,6 +244,13 @@ module Twilio
244
244
  @properties['sid']
245
245
  end
246
246
 
247
+ ##
248
+ # Fetch the FeedbackInstance
249
+ # @return [FeedbackInstance] Fetched FeedbackInstance
250
+ def fetch
251
+ context.fetch
252
+ end
253
+
247
254
  ##
248
255
  # Create the FeedbackInstance
249
256
  # @param [String] quality_score The call quality expressed as an integer from `1`
@@ -258,13 +265,6 @@ module Twilio
258
265
  context.create(quality_score: quality_score, issue: issue, )
259
266
  end
260
267
 
261
- ##
262
- # Fetch the FeedbackInstance
263
- # @return [FeedbackInstance] Fetched FeedbackInstance
264
- def fetch
265
- context.fetch
266
- end
267
-
268
268
  ##
269
269
  # Update the FeedbackInstance
270
270
  # @param [String] quality_score The call quality expressed as an integer from `1`
@@ -275,7 +275,7 @@ module Twilio
275
275
  # `incorrect-caller-id`, `post-dial-delay`, `digits-not-captured`,
276
276
  # `audio-latency`, `unsolicited-call`, or `one-way-audio`.
277
277
  # @return [FeedbackInstance] Updated FeedbackInstance
278
- def update(quality_score: nil, issue: :unset)
278
+ def update(quality_score: :unset, issue: :unset)
279
279
  context.update(quality_score: quality_score, issue: issue, )
280
280
  end
281
281
 
@@ -167,14 +167,14 @@ module Twilio
167
167
  'call_feedback_count' => payload['call_feedback_count'].to_i,
168
168
  'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
169
169
  'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
170
- 'end_date' => Twilio.deserialize_iso8601_datetime(payload['end_date']),
170
+ 'end_date' => Twilio.deserialize_iso8601_date(payload['end_date']),
171
171
  'include_subaccounts' => payload['include_subaccounts'],
172
172
  'issues' => payload['issues'],
173
173
  'quality_score_average' => payload['quality_score_average'].to_f,
174
174
  'quality_score_median' => payload['quality_score_median'].to_f,
175
175
  'quality_score_standard_deviation' => payload['quality_score_standard_deviation'].to_f,
176
176
  'sid' => payload['sid'],
177
- 'start_date' => Twilio.deserialize_iso8601_datetime(payload['start_date']),
177
+ 'start_date' => Twilio.deserialize_iso8601_date(payload['start_date']),
178
178
  'status' => payload['status'],
179
179
  }
180
180
 
@@ -225,7 +225,7 @@ module Twilio
225
225
  end
226
226
 
227
227
  ##
228
- # @return [Time] The latest feedback entry date in the summary
228
+ # @return [Date] The latest feedback entry date in the summary
229
229
  def end_date
230
230
  @properties['end_date']
231
231
  end
@@ -237,7 +237,7 @@ module Twilio
237
237
  end
238
238
 
239
239
  ##
240
- # @return [Array[String]] Issues experienced during the call
240
+ # @return [Array[Hash]] Issues experienced during the call
241
241
  def issues
242
242
  @properties['issues']
243
243
  end
@@ -267,7 +267,7 @@ module Twilio
267
267
  end
268
268
 
269
269
  ##
270
- # @return [Time] The earliest feedback entry date in the summary
270
+ # @return [Date] The earliest feedback entry date in the summary
271
271
  def start_date
272
272
  @properties['start_date']
273
273
  end
@@ -52,7 +52,7 @@ module Twilio
52
52
  # overwritten with `currency` field. Leave blank or set to 0 to tokenize.
53
53
  # @param [String] currency The currency of the `charge_amount`, formatted as {ISO
54
54
  # 4127}[http://www.iso.org/iso/home/standards/currency_codes.htm] format. The
55
- # default value is `USD` and all values allowed from the <Pay> Connector are
55
+ # default value is `USD` and all values allowed from the Pay Connector are
56
56
  # accepted.
57
57
  # @param [String] description The description can be used to provide more details
58
58
  # regarding the transaction. This information is submitted along with the payment
@@ -63,14 +63,14 @@ module Twilio
63
63
  # @param [String] min_postal_code_length A positive integer that is used to
64
64
  # validate the length of the `PostalCode` inputted by the user. User must enter
65
65
  # this many digits.
66
- # @param [Hash] parameter A single level JSON string that is required when
67
- # accepting certain information specific only to ACH payments. The information
66
+ # @param [Hash] parameter A single-level JSON object used to pass custom
67
+ # parameters to payment processors. (Required for ACH payments). The information
68
68
  # that has to be included here depends on the <Pay> Connector. {Read
69
69
  # more}[https://www.twilio.com/console/voice/pay-connectors].
70
70
  # @param [String] payment_connector This is the unique name corresponding to the
71
- # Payment Gateway Connector installed in the Twilio Add-ons. Learn more about
72
- # {<Pay> Connectors}[https://www.twilio.com/console/voice/pay-connectors]. The
73
- # default value is `Default`.
71
+ # Pay Connector installed in the Twilio Add-ons. Learn more about {<Pay>
72
+ # Connectors}[https://www.twilio.com/console/voice/pay-connectors]. The default
73
+ # value is `Default`.
74
74
  # @param [payment.PaymentMethod] payment_method Type of payment being captured.
75
75
  # One of `credit-card` or `ach-debit`. The default value is `credit-card`.
76
76
  # @param [Boolean] postal_code Indicates whether the credit card postal code (zip
@@ -202,7 +202,7 @@ module Twilio
202
202
  # @param [payment.Status] status Indicates whether the current payment session
203
203
  # should be cancelled or completed. When `cancel` the payment session is
204
204
  # cancelled. When `complete`, Twilio sends the payment information to the selected
205
- # <Pay> connector for processing.
205
+ # Pay Connector for processing.
206
206
  # @return [PaymentInstance] Updated PaymentInstance
207
207
  def update(idempotency_key: nil, status_callback: nil, capture: :unset, status: :unset)
208
208
  data = Twilio::Values.of({
@@ -342,7 +342,7 @@ module Twilio
342
342
  # @param [payment.Status] status Indicates whether the current payment session
343
343
  # should be cancelled or completed. When `cancel` the payment session is
344
344
  # cancelled. When `complete`, Twilio sends the payment information to the selected
345
- # <Pay> connector for processing.
345
+ # Pay Connector for processing.
346
346
  # @return [PaymentInstance] Updated PaymentInstance
347
347
  def update(idempotency_key: nil, status_callback: nil, capture: :unset, status: :unset)
348
348
  context.update(