twilio-ruby 5.42.0 → 5.46.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (187) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/CHANGES.md +95 -0
  4. data/LICENSE +1 -1
  5. data/README.md +18 -2
  6. data/lib/twilio-ruby.rb +1 -1
  7. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +1 -1
  8. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +34 -9
  9. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +201 -0
  10. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +13 -13
  11. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +1 -1
  12. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +17 -5
  13. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +17 -12
  14. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +3 -3
  15. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +5 -5
  16. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +6 -3
  17. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +1 -1
  18. data/lib/twilio-ruby/rest/bulkexports.rb +4 -2
  19. data/lib/twilio-ruby/rest/bulkexports/v1.rb +4 -2
  20. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +7 -4
  21. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +7 -4
  22. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +5 -3
  23. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +5 -3
  24. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +5 -3
  25. data/lib/twilio-ruby/rest/chat/v1/service.rb +5 -5
  26. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +6 -6
  27. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +3 -3
  28. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +3 -3
  29. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +9 -9
  30. data/lib/twilio-ruby/rest/chat/v2/service.rb +5 -5
  31. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +7 -7
  32. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +6 -6
  33. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +3 -3
  34. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +3 -3
  35. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +27 -24
  36. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +9 -9
  37. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +10 -10
  38. data/lib/twilio-ruby/rest/client.rb +29 -3
  39. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +9 -9
  40. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +1 -1
  41. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +32 -2
  42. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +9 -9
  43. data/lib/twilio-ruby/rest/conversations/v1/role.rb +9 -9
  44. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +7 -7
  45. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +17 -2
  46. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +1 -1
  47. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +32 -2
  48. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +9 -9
  49. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +9 -9
  50. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +8 -1
  51. data/lib/twilio-ruby/rest/conversations/v1/user.rb +8 -1
  52. data/lib/twilio-ruby/rest/events/v1/sink.rb +2 -1
  53. data/lib/twilio-ruby/rest/events/v1/subscription.rb +14 -7
  54. data/lib/twilio-ruby/rest/flex_api.rb +1 -1
  55. data/lib/twilio-ruby/rest/flex_api/v1.rb +1 -1
  56. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +5 -5
  57. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +4 -4
  58. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +88 -76
  59. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +2 -2
  60. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +8 -9
  61. data/lib/twilio-ruby/rest/insights/v1/room.rb +7 -7
  62. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +2 -9
  63. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +3 -3
  64. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +3 -3
  65. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +3 -3
  66. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +3 -3
  67. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +4 -4
  68. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +3 -3
  69. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +7 -7
  70. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +3 -3
  71. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +3 -3
  72. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +3 -3
  73. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +6 -6
  74. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +4 -4
  75. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +4 -4
  76. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +16 -16
  77. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +1 -1
  78. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +1 -1
  79. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +1 -1
  80. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +16 -15
  81. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +18 -18
  82. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +1 -1
  83. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +1 -1
  84. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +1 -1
  85. data/lib/twilio-ruby/rest/preview.rb +4 -23
  86. data/lib/twilio-ruby/rest/preview/bulk_exports.rb +4 -2
  87. data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +7 -4
  88. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +7 -4
  89. data/lib/twilio-ruby/rest/preview/bulk_exports/export/export_custom_job.rb +5 -3
  90. data/lib/twilio-ruby/rest/preview/bulk_exports/export/job.rb +5 -3
  91. data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +5 -3
  92. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +13 -13
  93. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +2 -2
  94. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +8 -8
  95. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +0 -30
  96. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +2 -2
  97. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +2 -2
  98. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +1 -1
  99. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +2 -2
  100. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +2 -2
  101. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +1 -1
  102. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +1 -1
  103. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +1 -1
  104. data/lib/twilio-ruby/rest/serverless/v1/service.rb +5 -5
  105. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +4 -4
  106. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +4 -4
  107. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +10 -10
  108. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +4 -4
  109. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +4 -4
  110. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +4 -4
  111. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +4 -4
  112. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +4 -4
  113. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +4 -4
  114. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +4 -4
  115. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +4 -4
  116. data/lib/twilio-ruby/rest/studio/v2/flow.rb +2 -2
  117. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +1 -1
  118. data/lib/twilio-ruby/rest/studio/v2/flow/test_user.rb +3 -3
  119. data/lib/twilio-ruby/rest/supersim/v1/network.rb +1 -1
  120. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +2 -2
  121. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +1 -1
  122. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +7 -5
  123. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +4 -2
  124. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +3 -3
  125. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +4 -2
  126. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +4 -4
  127. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +1 -1
  128. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +1 -1
  129. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +12 -9
  130. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +10 -10
  131. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +16 -16
  132. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +1 -1
  133. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +10 -10
  134. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +1 -1
  135. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +1 -1
  136. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +1 -1
  137. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +1 -1
  138. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +21 -24
  139. data/lib/twilio-ruby/rest/verify/v2/service.rb +3 -3
  140. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +3 -1
  141. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +8 -6
  142. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +1 -1
  143. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +10 -10
  144. data/lib/twilio-ruby/rest/video/v1/composition.rb +16 -15
  145. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +26 -26
  146. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +6 -6
  147. data/lib/twilio-ruby/rest/video/v1/recording.rb +6 -6
  148. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +6 -6
  149. data/lib/twilio-ruby/rest/video/v1/room.rb +10 -3
  150. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +1 -1
  151. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +1 -1
  152. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +1 -1
  153. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +4 -4
  154. data/lib/twilio-ruby/twiml/voice_response.rb +8 -4
  155. data/lib/twilio-ruby/util/configuration.rb +5 -1
  156. data/lib/twilio-ruby/version.rb +1 -1
  157. data/spec/integration/api/v2010/account/call/event_spec.rb +102 -0
  158. data/spec/integration/api/v2010/account/call/recording_spec.rb +4 -0
  159. data/spec/integration/api/v2010/account/call_spec.rb +20 -10
  160. data/spec/integration/api/v2010/account/conference/participant_spec.rb +30 -0
  161. data/spec/integration/conversations/v1/conversation/participant_spec.rb +30 -10
  162. data/spec/integration/conversations/v1/service/configuration_spec.rb +2 -0
  163. data/spec/integration/conversations/v1/service/conversation/participant_spec.rb +30 -10
  164. data/spec/integration/conversations/v1/service/user_spec.rb +9 -4
  165. data/spec/integration/conversations/v1/user_spec.rb +9 -4
  166. data/spec/integration/events/v1/sink_spec.rb +14 -0
  167. data/spec/integration/events/v1/subscription_spec.rb +49 -0
  168. data/spec/integration/insights/v1/call/summary_spec.rb +1 -0
  169. data/spec/integration/insights/v1/room/participant_spec.rb +0 -2
  170. data/spec/integration/lookups/v1/phone_number_spec.rb +7 -7
  171. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +1 -1
  172. data/spec/integration/trunking/v1/trunk/recording_spec.rb +2 -6
  173. data/spec/integration/video/v1/room_spec.rb +5 -0
  174. data/spec/rest/client_spec.rb +24 -2
  175. data/spec/twiml/voice_response_spec.rb +1 -1
  176. data/twilio-ruby.gemspec +1 -0
  177. metadata +19 -17
  178. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_call.rb +0 -243
  179. data/lib/twilio-ruby/rest/preview/trusted_comms/business.rb +0 -213
  180. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights.rb +0 -108
  181. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights/impressions_rate.rb +0 -260
  182. data/lib/twilio-ruby/rest/preview/trusted_comms/phone_call.rb +0 -342
  183. data/spec/integration/preview/trusted_comms/branded_call_spec.rb +0 -59
  184. data/spec/integration/preview/trusted_comms/business/insights/impressions_rate_spec.rb +0 -56
  185. data/spec/integration/preview/trusted_comms/business/insights_spec.rb +0 -12
  186. data/spec/integration/preview/trusted_comms/business_spec.rb +0 -45
  187. data/spec/integration/preview/trusted_comms/phone_call_spec.rb +0 -59
@@ -37,9 +37,9 @@ module Twilio
37
37
  # Lists UserBindingInstance records from the API as a list.
38
38
  # Unlike stream(), this operation is eager and will load `limit` records into
39
39
  # memory before returning.
40
- # @param [user_binding.BindingType] binding_type The push technology used by the
41
- # User Binding resources to read. Can be: `apn`, `gcm`, or `fcm`. See {push
42
- # notification
40
+ # @param [Array[user_binding.BindingType]] binding_type The push technology used
41
+ # by the User Binding resources to read. Can be: `apn`, `gcm`, or `fcm`. See
42
+ # {push notification
43
43
  # configuration}[https://www.twilio.com/docs/chat/push-notification-configuration]
44
44
  # for more info.
45
45
  # @param [Integer] limit Upper limit for the number of records to return. stream()
@@ -57,9 +57,9 @@ module Twilio
57
57
  # Streams UserBindingInstance records from the API as an Enumerable.
58
58
  # This operation lazily loads records as efficiently as possible until the limit
59
59
  # is reached.
60
- # @param [user_binding.BindingType] binding_type The push technology used by the
61
- # User Binding resources to read. Can be: `apn`, `gcm`, or `fcm`. See {push
62
- # notification
60
+ # @param [Array[user_binding.BindingType]] binding_type The push technology used
61
+ # by the User Binding resources to read. Can be: `apn`, `gcm`, or `fcm`. See
62
+ # {push notification
63
63
  # configuration}[https://www.twilio.com/docs/chat/push-notification-configuration]
64
64
  # for more info.
65
65
  # @param [Integer] limit Upper limit for the number of records to return. stream()
@@ -94,9 +94,9 @@ module Twilio
94
94
  ##
95
95
  # Retrieve a single page of UserBindingInstance records from the API.
96
96
  # Request is executed immediately.
97
- # @param [user_binding.BindingType] binding_type The push technology used by the
98
- # User Binding resources to read. Can be: `apn`, `gcm`, or `fcm`. See {push
99
- # notification
97
+ # @param [Array[user_binding.BindingType]] binding_type The push technology used
98
+ # by the User Binding resources to read. Can be: `apn`, `gcm`, or `fcm`. See
99
+ # {push notification
100
100
  # configuration}[https://www.twilio.com/docs/chat/push-notification-configuration]
101
101
  # for more info.
102
102
  # @param [String] page_token PageToken provided by the API
@@ -345,7 +345,7 @@ module Twilio
345
345
  end
346
346
 
347
347
  ##
348
- # @return [String] The Programmable Chat message types the binding is subscribed to
348
+ # @return [Array[String]] The Programmable Chat message types the binding is subscribed to
349
349
  def message_types
350
350
  @properties['message_types']
351
351
  end
@@ -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
16
+ attr_accessor :http_client, :username, :password, :account_sid, :auth_token, :region, :edge, :logger
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)
20
+ def initialize(username=nil, password=nil, account_sid=nil, region=nil, http_client=nil, logger=nil)
21
21
  @username = username || Twilio.account_sid
22
22
  @password = password || Twilio.auth_token
23
23
  @region = region || Twilio.region
@@ -26,6 +26,7 @@ module Twilio
26
26
  @auth_token = @password
27
27
  @auth = [@username, @password]
28
28
  @http_client = http_client || Twilio.http_client || Twilio::HTTP::Client.new
29
+ @logger = logger || Twilio.logger
29
30
 
30
31
  # Domains
31
32
  @accounts = nil
@@ -80,7 +81,24 @@ module Twilio
80
81
 
81
82
  uri = build_uri(uri)
82
83
 
83
- @http_client.request(
84
+ if @logger
85
+ @logger.debug("--BEGIN Twilio API Request--")
86
+ @logger.debug("Request Method: <#{method}>")
87
+
88
+ headers.each do |key, value|
89
+ unless key.downcase == 'authorization'
90
+ @logger.debug("#{key}:#{value}")
91
+ end
92
+ end
93
+
94
+ url = URI(uri)
95
+ @logger.debug("Host:#{url.host}")
96
+ @logger.debug("Path:#{url.path}")
97
+ @logger.debug("Query:#{url.query}")
98
+ @logger.debug("Request Params:#{params}")
99
+ end
100
+
101
+ response = @http_client.request(
84
102
  host,
85
103
  port,
86
104
  method,
@@ -91,6 +109,14 @@ module Twilio
91
109
  auth,
92
110
  timeout
93
111
  )
112
+
113
+ if @logger
114
+ @logger.debug("Response Status Code:#{response.status_code}")
115
+ @logger.debug("Response Headers:#{response.headers}")
116
+ @logger.debug("--END TWILIO API REQUEST--")
117
+ end
118
+
119
+ response
94
120
  end
95
121
 
96
122
  ##
@@ -85,10 +85,10 @@ module Twilio
85
85
  # Update the WebhookInstance
86
86
  # @param [String] method The HTTP method to be used when sending a webhook
87
87
  # request.
88
- # @param [String] filters The list of webhook event triggers that are enabled for
89
- # this Service: `onMessageAdded`, `onMessageUpdated`, `onMessageRemoved`,
90
- # `onConversationUpdated`, `onConversationRemoved`, `onParticipantAdded`,
91
- # `onParticipantUpdated`, `onParticipantRemoved`
88
+ # @param [Array[String]] filters The list of webhook event triggers that are
89
+ # enabled for this Service: `onMessageAdded`, `onMessageUpdated`,
90
+ # `onMessageRemoved`, `onConversationUpdated`, `onConversationRemoved`,
91
+ # `onParticipantAdded`, `onParticipantUpdated`, `onParticipantRemoved`
92
92
  # @param [String] pre_webhook_url The absolute url the pre-event webhook request
93
93
  # should be sent to.
94
94
  # @param [String] post_webhook_url The absolute url the post-event webhook request
@@ -173,7 +173,7 @@ module Twilio
173
173
  end
174
174
 
175
175
  ##
176
- # @return [String] The list of webhook event triggers that are enabled for this Service.
176
+ # @return [Array[String]] The list of webhook event triggers that are enabled for this Service.
177
177
  def filters
178
178
  @properties['filters']
179
179
  end
@@ -213,10 +213,10 @@ module Twilio
213
213
  # Update the WebhookInstance
214
214
  # @param [String] method The HTTP method to be used when sending a webhook
215
215
  # request.
216
- # @param [String] filters The list of webhook event triggers that are enabled for
217
- # this Service: `onMessageAdded`, `onMessageUpdated`, `onMessageRemoved`,
218
- # `onConversationUpdated`, `onConversationRemoved`, `onParticipantAdded`,
219
- # `onParticipantUpdated`, `onParticipantRemoved`
216
+ # @param [Array[String]] filters The list of webhook event triggers that are
217
+ # enabled for this Service: `onMessageAdded`, `onMessageUpdated`,
218
+ # `onMessageRemoved`, `onConversationUpdated`, `onConversationRemoved`,
219
+ # `onParticipantAdded`, `onParticipantUpdated`, `onParticipantRemoved`
220
220
  # @param [String] pre_webhook_url The absolute url the pre-event webhook request
221
221
  # should be sent to.
222
222
  # @param [String] post_webhook_url The absolute url the post-event webhook request
@@ -378,7 +378,7 @@ module Twilio
378
378
  end
379
379
 
380
380
  ##
381
- # @return [Hash] An array of objects that describe the Message's media if attached, otherwise, null.
381
+ # @return [Array[Hash]] An array of objects that describe the Message's media if attached, otherwise, null.
382
382
  def media
383
383
  @properties['media']
384
384
  end
@@ -230,10 +230,16 @@ module Twilio
230
230
  # User}[https://www.twilio.com/docs/conversations/api/user-resource]. This
231
231
  # parameter is non-null if (and only if) the participant is using the
232
232
  # Conversations SDK to communicate. Limited to 256 characters.
233
+ # @param [String] last_read_message_index Index of last “read” message in the
234
+ # {Conversation}[https://www.twilio.com/docs/conversations/api/conversation-resource]
235
+ # for the Participant.
236
+ # @param [String] last_read_timestamp Timestamp of last “read” message in the
237
+ # {Conversation}[https://www.twilio.com/docs/conversations/api/conversation-resource]
238
+ # for the Participant.
233
239
  # @param [participant.WebhookEnabledType] x_twilio_webhook_enabled The
234
240
  # X-Twilio-Webhook-Enabled HTTP request header
235
241
  # @return [ParticipantInstance] Updated ParticipantInstance
236
- def update(date_created: :unset, date_updated: :unset, attributes: :unset, role_sid: :unset, messaging_binding_proxy_address: :unset, messaging_binding_projected_address: :unset, identity: :unset, x_twilio_webhook_enabled: :unset)
242
+ def update(date_created: :unset, date_updated: :unset, attributes: :unset, role_sid: :unset, messaging_binding_proxy_address: :unset, messaging_binding_projected_address: :unset, identity: :unset, last_read_message_index: :unset, last_read_timestamp: :unset, x_twilio_webhook_enabled: :unset)
237
243
  data = Twilio::Values.of({
238
244
  'DateCreated' => Twilio.serialize_iso8601_datetime(date_created),
239
245
  'DateUpdated' => Twilio.serialize_iso8601_datetime(date_updated),
@@ -242,6 +248,8 @@ module Twilio
242
248
  'MessagingBinding.ProxyAddress' => messaging_binding_proxy_address,
243
249
  'MessagingBinding.ProjectedAddress' => messaging_binding_projected_address,
244
250
  'Identity' => identity,
251
+ 'LastReadMessageIndex' => last_read_message_index,
252
+ 'LastReadTimestamp' => last_read_timestamp,
245
253
  })
246
254
  headers = Twilio::Values.of({'X-Twilio-Webhook-Enabled' => x_twilio_webhook_enabled, })
247
255
 
@@ -321,6 +329,8 @@ module Twilio
321
329
  'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
322
330
  'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
323
331
  'url' => payload['url'],
332
+ 'last_read_message_index' => payload['last_read_message_index'] == nil ? payload['last_read_message_index'] : payload['last_read_message_index'].to_i,
333
+ 'last_read_timestamp' => payload['last_read_timestamp'],
324
334
  }
325
335
 
326
336
  # Context
@@ -399,6 +409,18 @@ module Twilio
399
409
  @properties['url']
400
410
  end
401
411
 
412
+ ##
413
+ # @return [String] Index of last “read” message in the Conversation for the Participant.
414
+ def last_read_message_index
415
+ @properties['last_read_message_index']
416
+ end
417
+
418
+ ##
419
+ # @return [String] Timestamp of last “read” message in the Conversation for the Participant.
420
+ def last_read_timestamp
421
+ @properties['last_read_timestamp']
422
+ end
423
+
402
424
  ##
403
425
  # Update the ParticipantInstance
404
426
  # @param [Time] date_created The date that this resource was created.
@@ -419,10 +441,16 @@ module Twilio
419
441
  # User}[https://www.twilio.com/docs/conversations/api/user-resource]. This
420
442
  # parameter is non-null if (and only if) the participant is using the
421
443
  # Conversations SDK to communicate. Limited to 256 characters.
444
+ # @param [String] last_read_message_index Index of last “read” message in the
445
+ # {Conversation}[https://www.twilio.com/docs/conversations/api/conversation-resource]
446
+ # for the Participant.
447
+ # @param [String] last_read_timestamp Timestamp of last “read” message in the
448
+ # {Conversation}[https://www.twilio.com/docs/conversations/api/conversation-resource]
449
+ # for the Participant.
422
450
  # @param [participant.WebhookEnabledType] x_twilio_webhook_enabled The
423
451
  # X-Twilio-Webhook-Enabled HTTP request header
424
452
  # @return [ParticipantInstance] Updated ParticipantInstance
425
- def update(date_created: :unset, date_updated: :unset, attributes: :unset, role_sid: :unset, messaging_binding_proxy_address: :unset, messaging_binding_projected_address: :unset, identity: :unset, x_twilio_webhook_enabled: :unset)
453
+ def update(date_created: :unset, date_updated: :unset, attributes: :unset, role_sid: :unset, messaging_binding_proxy_address: :unset, messaging_binding_projected_address: :unset, identity: :unset, last_read_message_index: :unset, last_read_timestamp: :unset, x_twilio_webhook_enabled: :unset)
426
454
  context.update(
427
455
  date_created: date_created,
428
456
  date_updated: date_updated,
@@ -431,6 +459,8 @@ module Twilio
431
459
  messaging_binding_proxy_address: messaging_binding_proxy_address,
432
460
  messaging_binding_projected_address: messaging_binding_projected_address,
433
461
  identity: identity,
462
+ last_read_message_index: last_read_message_index,
463
+ last_read_timestamp: last_read_timestamp,
434
464
  x_twilio_webhook_enabled: x_twilio_webhook_enabled,
435
465
  )
436
466
  end
@@ -115,10 +115,10 @@ module Twilio
115
115
  # sent to.
116
116
  # @param [webhook.Method] configuration_method The HTTP method to be used when
117
117
  # sending a webhook request.
118
- # @param [String] configuration_filters The list of events, firing webhook event
119
- # for this Conversation.
120
- # @param [String] configuration_triggers The list of keywords, firing webhook
118
+ # @param [Array[String]] configuration_filters The list of events, firing webhook
121
119
  # event for this Conversation.
120
+ # @param [Array[String]] configuration_triggers The list of keywords, firing
121
+ # webhook event for this Conversation.
122
122
  # @param [String] configuration_flow_sid The studio flow SID, where the webhook
123
123
  # should be sent to.
124
124
  # @param [String] configuration_replay_after The message index for which and it's
@@ -214,10 +214,10 @@ module Twilio
214
214
  # sent to.
215
215
  # @param [webhook.Method] configuration_method The HTTP method to be used when
216
216
  # sending a webhook request.
217
- # @param [String] configuration_filters The list of events, firing webhook event
218
- # for this Conversation.
219
- # @param [String] configuration_triggers The list of keywords, firing webhook
217
+ # @param [Array[String]] configuration_filters The list of events, firing webhook
220
218
  # event for this Conversation.
219
+ # @param [Array[String]] configuration_triggers The list of keywords, firing
220
+ # webhook event for this Conversation.
221
221
  # @param [String] configuration_flow_sid The studio flow SID, where the webhook
222
222
  # should be sent to.
223
223
  # @return [WebhookInstance] Updated WebhookInstance
@@ -365,10 +365,10 @@ module Twilio
365
365
  # sent to.
366
366
  # @param [webhook.Method] configuration_method The HTTP method to be used when
367
367
  # sending a webhook request.
368
- # @param [String] configuration_filters The list of events, firing webhook event
369
- # for this Conversation.
370
- # @param [String] configuration_triggers The list of keywords, firing webhook
368
+ # @param [Array[String]] configuration_filters The list of events, firing webhook
371
369
  # event for this Conversation.
370
+ # @param [Array[String]] configuration_triggers The list of keywords, firing
371
+ # webhook event for this Conversation.
372
372
  # @param [String] configuration_flow_sid The studio flow SID, where the webhook
373
373
  # should be sent to.
374
374
  # @return [WebhookInstance] Updated WebhookInstance
@@ -31,10 +31,10 @@ module Twilio
31
31
  # {Conversation}[https://www.twilio.com/docs/conversations/api/conversation-resource]
32
32
  # roles or `service` for {Conversation
33
33
  # Service}[https://www.twilio.com/docs/conversations/api/service-resource] roles.
34
- # @param [String] permission A permission that you grant to the new role. Only one
35
- # permission can be granted per parameter. To assign more than one permission,
36
- # repeat this parameter for each permission value. The values for this parameter
37
- # depend on the role's `type`.
34
+ # @param [Array[String]] permission A permission that you grant to the new role.
35
+ # Only one permission can be granted per parameter. To assign more than one
36
+ # permission, repeat this parameter for each permission value. The values for this
37
+ # parameter depend on the role's `type`.
38
38
  # @return [RoleInstance] Created RoleInstance
39
39
  def create(friendly_name: nil, type: nil, permission: nil)
40
40
  data = Twilio::Values.of({
@@ -180,8 +180,8 @@ module Twilio
180
180
 
181
181
  ##
182
182
  # Update the RoleInstance
183
- # @param [String] permission A permission that you grant to the role. Only one
184
- # permission can be granted per parameter. To assign more than one permission,
183
+ # @param [Array[String]] permission A permission that you grant to the role. Only
184
+ # one permission can be granted per parameter. To assign more than one permission,
185
185
  # repeat this parameter for each permission value. Note that the update action
186
186
  # replaces all previously assigned permissions with those defined in the update
187
187
  # action. To remove a permission, do not include it in the subsequent update
@@ -296,7 +296,7 @@ module Twilio
296
296
  end
297
297
 
298
298
  ##
299
- # @return [String] An array of the permissions the role has been granted
299
+ # @return [Array[String]] An array of the permissions the role has been granted
300
300
  def permissions
301
301
  @properties['permissions']
302
302
  end
@@ -321,8 +321,8 @@ module Twilio
321
321
 
322
322
  ##
323
323
  # Update the RoleInstance
324
- # @param [String] permission A permission that you grant to the role. Only one
325
- # permission can be granted per parameter. To assign more than one permission,
324
+ # @param [Array[String]] permission A permission that you grant to the role. Only
325
+ # one permission can be granted per parameter. To assign more than one permission,
326
326
  # repeat this parameter for each permission value. Note that the update action
327
327
  # replaces all previously assigned permissions with those defined in the update
328
328
  # action. To remove a permission, do not include it in the subsequent update
@@ -31,12 +31,12 @@ module Twilio
31
31
  # Lists BindingInstance records from the API as a list.
32
32
  # Unlike stream(), this operation is eager and will load `limit` records into
33
33
  # memory before returning.
34
- # @param [binding.BindingType] binding_type The push technology used by the
34
+ # @param [Array[binding.BindingType]] binding_type The push technology used by the
35
35
  # Binding resources to read. Can be: `apn`, `gcm`, or `fcm`. See {push
36
36
  # notification
37
37
  # configuration}[https://www.twilio.com/docs/chat/push-notification-configuration]
38
38
  # for more info.
39
- # @param [String] identity The identity of a {Conversation
39
+ # @param [Array[String]] identity The identity of a {Conversation
40
40
  # User}[https://www.twilio.com/docs/conversations/api/user-resource] this binding
41
41
  # belongs to. See {access
42
42
  # tokens}[https://www.twilio.com/docs/conversations/create-tokens] for more
@@ -61,12 +61,12 @@ module Twilio
61
61
  # Streams BindingInstance records from the API as an Enumerable.
62
62
  # This operation lazily loads records as efficiently as possible until the limit
63
63
  # is reached.
64
- # @param [binding.BindingType] binding_type The push technology used by the
64
+ # @param [Array[binding.BindingType]] binding_type The push technology used by the
65
65
  # Binding resources to read. Can be: `apn`, `gcm`, or `fcm`. See {push
66
66
  # notification
67
67
  # configuration}[https://www.twilio.com/docs/chat/push-notification-configuration]
68
68
  # for more info.
69
- # @param [String] identity The identity of a {Conversation
69
+ # @param [Array[String]] identity The identity of a {Conversation
70
70
  # User}[https://www.twilio.com/docs/conversations/api/user-resource] this binding
71
71
  # belongs to. See {access
72
72
  # tokens}[https://www.twilio.com/docs/conversations/create-tokens] for more
@@ -103,12 +103,12 @@ module Twilio
103
103
  ##
104
104
  # Retrieve a single page of BindingInstance records from the API.
105
105
  # Request is executed immediately.
106
- # @param [binding.BindingType] binding_type The push technology used by the
106
+ # @param [Array[binding.BindingType]] binding_type The push technology used by the
107
107
  # Binding resources to read. Can be: `apn`, `gcm`, or `fcm`. See {push
108
108
  # notification
109
109
  # configuration}[https://www.twilio.com/docs/chat/push-notification-configuration]
110
110
  # for more info.
111
- # @param [String] identity The identity of a {Conversation
111
+ # @param [Array[String]] identity The identity of a {Conversation
112
112
  # User}[https://www.twilio.com/docs/conversations/api/user-resource] this binding
113
113
  # belongs to. See {access
114
114
  # tokens}[https://www.twilio.com/docs/conversations/create-tokens] for more
@@ -334,7 +334,7 @@ module Twilio
334
334
  end
335
335
 
336
336
  ##
337
- # @return [String] The Conversation message types the binding is subscribed to.
337
+ # @return [Array[String]] The Conversation message types the binding is subscribed to.
338
338
  def message_types
339
339
  @properties['message_types']
340
340
  end
@@ -103,12 +103,16 @@ module Twilio
103
103
  # users when they are added to the service. See the {Conversation
104
104
  # Role}[https://www.twilio.com/docs/conversations/api/role-resource] for more info
105
105
  # about roles.
106
+ # @param [Boolean] reachability_enabled Whether the {Reachability
107
+ # Indicator}[https://www.twilio.com/docs/chat/reachability-indicator] is enabled
108
+ # for this Conversations Service. The default is `false`.
106
109
  # @return [ConfigurationInstance] Updated ConfigurationInstance
107
- def update(default_conversation_creator_role_sid: :unset, default_conversation_role_sid: :unset, default_chat_service_role_sid: :unset)
110
+ def update(default_conversation_creator_role_sid: :unset, default_conversation_role_sid: :unset, default_chat_service_role_sid: :unset, reachability_enabled: :unset)
108
111
  data = Twilio::Values.of({
109
112
  'DefaultConversationCreatorRoleSid' => default_conversation_creator_role_sid,
110
113
  'DefaultConversationRoleSid' => default_conversation_role_sid,
111
114
  'DefaultChatServiceRoleSid' => default_chat_service_role_sid,
115
+ 'ReachabilityEnabled' => reachability_enabled,
112
116
  })
113
117
 
114
118
  payload = @version.update('POST', @uri, data: data)
@@ -157,6 +161,7 @@ module Twilio
157
161
  'default_chat_service_role_sid' => payload['default_chat_service_role_sid'],
158
162
  'url' => payload['url'],
159
163
  'links' => payload['links'],
164
+ 'reachability_enabled' => payload['reachability_enabled'],
160
165
  }
161
166
 
162
167
  # Context
@@ -211,6 +216,12 @@ module Twilio
211
216
  @properties['links']
212
217
  end
213
218
 
219
+ ##
220
+ # @return [Boolean] Whether the Reachability Indicator feature is enabled for this Conversations Service
221
+ def reachability_enabled
222
+ @properties['reachability_enabled']
223
+ end
224
+
214
225
  ##
215
226
  # Fetch the ConfigurationInstance
216
227
  # @return [ConfigurationInstance] Fetched ConfigurationInstance
@@ -233,12 +244,16 @@ module Twilio
233
244
  # users when they are added to the service. See the {Conversation
234
245
  # Role}[https://www.twilio.com/docs/conversations/api/role-resource] for more info
235
246
  # about roles.
247
+ # @param [Boolean] reachability_enabled Whether the {Reachability
248
+ # Indicator}[https://www.twilio.com/docs/chat/reachability-indicator] is enabled
249
+ # for this Conversations Service. The default is `false`.
236
250
  # @return [ConfigurationInstance] Updated ConfigurationInstance
237
- def update(default_conversation_creator_role_sid: :unset, default_conversation_role_sid: :unset, default_chat_service_role_sid: :unset)
251
+ def update(default_conversation_creator_role_sid: :unset, default_conversation_role_sid: :unset, default_chat_service_role_sid: :unset, reachability_enabled: :unset)
238
252
  context.update(
239
253
  default_conversation_creator_role_sid: default_conversation_creator_role_sid,
240
254
  default_conversation_role_sid: default_conversation_role_sid,
241
255
  default_chat_service_role_sid: default_chat_service_role_sid,
256
+ reachability_enabled: reachability_enabled,
242
257
  )
243
258
  end
244
259
 
@@ -423,7 +423,7 @@ module Twilio
423
423
  end
424
424
 
425
425
  ##
426
- # @return [Hash] An array of objects that describe the Message's media if attached, otherwise, null.
426
+ # @return [Array[Hash]] An array of objects that describe the Message's media if attached, otherwise, null.
427
427
  def media
428
428
  @properties['media']
429
429
  end
@@ -247,10 +247,16 @@ module Twilio
247
247
  # number that the participant is in contact with. 'null' value will remove it.
248
248
  # @param [String] messaging_binding_projected_address The address of the Twilio
249
249
  # phone number that is used in Group MMS. 'null' value will remove it.
250
+ # @param [String] last_read_message_index Index of last “read” message in the
251
+ # {Conversation}[https://www.twilio.com/docs/conversations/api/conversation-resource]
252
+ # for the Participant.
253
+ # @param [String] last_read_timestamp Timestamp of last “read” message in the
254
+ # {Conversation}[https://www.twilio.com/docs/conversations/api/conversation-resource]
255
+ # for the Participant.
250
256
  # @param [participant.WebhookEnabledType] x_twilio_webhook_enabled The
251
257
  # X-Twilio-Webhook-Enabled HTTP request header
252
258
  # @return [ParticipantInstance] Updated ParticipantInstance
253
- def update(date_created: :unset, date_updated: :unset, identity: :unset, attributes: :unset, role_sid: :unset, messaging_binding_proxy_address: :unset, messaging_binding_projected_address: :unset, x_twilio_webhook_enabled: :unset)
259
+ def update(date_created: :unset, date_updated: :unset, identity: :unset, attributes: :unset, role_sid: :unset, messaging_binding_proxy_address: :unset, messaging_binding_projected_address: :unset, last_read_message_index: :unset, last_read_timestamp: :unset, x_twilio_webhook_enabled: :unset)
254
260
  data = Twilio::Values.of({
255
261
  'DateCreated' => Twilio.serialize_iso8601_datetime(date_created),
256
262
  'DateUpdated' => Twilio.serialize_iso8601_datetime(date_updated),
@@ -259,6 +265,8 @@ module Twilio
259
265
  'RoleSid' => role_sid,
260
266
  'MessagingBinding.ProxyAddress' => messaging_binding_proxy_address,
261
267
  'MessagingBinding.ProjectedAddress' => messaging_binding_projected_address,
268
+ 'LastReadMessageIndex' => last_read_message_index,
269
+ 'LastReadTimestamp' => last_read_timestamp,
262
270
  })
263
271
  headers = Twilio::Values.of({'X-Twilio-Webhook-Enabled' => x_twilio_webhook_enabled, })
264
272
 
@@ -344,6 +352,8 @@ module Twilio
344
352
  'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
345
353
  'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
346
354
  'url' => payload['url'],
355
+ 'last_read_message_index' => payload['last_read_message_index'] == nil ? payload['last_read_message_index'] : payload['last_read_message_index'].to_i,
356
+ 'last_read_timestamp' => payload['last_read_timestamp'],
347
357
  }
348
358
 
349
359
  # Context
@@ -437,6 +447,18 @@ module Twilio
437
447
  @properties['url']
438
448
  end
439
449
 
450
+ ##
451
+ # @return [String] Index of last “read” message in the Conversation for the Participant.
452
+ def last_read_message_index
453
+ @properties['last_read_message_index']
454
+ end
455
+
456
+ ##
457
+ # @return [String] Timestamp of last “read” message in the Conversation for the Participant.
458
+ def last_read_timestamp
459
+ @properties['last_read_timestamp']
460
+ end
461
+
440
462
  ##
441
463
  # Update the ParticipantInstance
442
464
  # @param [Time] date_created The date that this resource was created.
@@ -457,10 +479,16 @@ module Twilio
457
479
  # number that the participant is in contact with. 'null' value will remove it.
458
480
  # @param [String] messaging_binding_projected_address The address of the Twilio
459
481
  # phone number that is used in Group MMS. 'null' value will remove it.
482
+ # @param [String] last_read_message_index Index of last “read” message in the
483
+ # {Conversation}[https://www.twilio.com/docs/conversations/api/conversation-resource]
484
+ # for the Participant.
485
+ # @param [String] last_read_timestamp Timestamp of last “read” message in the
486
+ # {Conversation}[https://www.twilio.com/docs/conversations/api/conversation-resource]
487
+ # for the Participant.
460
488
  # @param [participant.WebhookEnabledType] x_twilio_webhook_enabled The
461
489
  # X-Twilio-Webhook-Enabled HTTP request header
462
490
  # @return [ParticipantInstance] Updated ParticipantInstance
463
- def update(date_created: :unset, date_updated: :unset, identity: :unset, attributes: :unset, role_sid: :unset, messaging_binding_proxy_address: :unset, messaging_binding_projected_address: :unset, x_twilio_webhook_enabled: :unset)
491
+ def update(date_created: :unset, date_updated: :unset, identity: :unset, attributes: :unset, role_sid: :unset, messaging_binding_proxy_address: :unset, messaging_binding_projected_address: :unset, last_read_message_index: :unset, last_read_timestamp: :unset, x_twilio_webhook_enabled: :unset)
464
492
  context.update(
465
493
  date_created: date_created,
466
494
  date_updated: date_updated,
@@ -469,6 +497,8 @@ module Twilio
469
497
  role_sid: role_sid,
470
498
  messaging_binding_proxy_address: messaging_binding_proxy_address,
471
499
  messaging_binding_projected_address: messaging_binding_projected_address,
500
+ last_read_message_index: last_read_message_index,
501
+ last_read_timestamp: last_read_timestamp,
472
502
  x_twilio_webhook_enabled: x_twilio_webhook_enabled,
473
503
  )
474
504
  end