twilio-ruby 5.42.0 → 5.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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