twilio-ruby 5.40.1 → 5.42.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 (378) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +111 -0
  3. data/{LICENSE.md → LICENSE} +0 -0
  4. data/PULL_REQUEST_TEMPLATE.md +3 -3
  5. data/README.md +2 -2
  6. data/lib/twilio-ruby/framework/version.rb +4 -8
  7. data/lib/twilio-ruby/jwt/access_token.rb +7 -2
  8. data/lib/twilio-ruby/rest/accounts.rb +12 -0
  9. data/lib/twilio-ruby/rest/accounts/v1.rb +14 -0
  10. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +186 -0
  11. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +200 -0
  12. data/lib/twilio-ruby/rest/api.rb +1 -1
  13. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +3 -3
  14. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +2 -2
  15. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +3 -3
  16. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +3 -3
  17. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +3 -3
  18. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +32 -23
  19. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +32 -23
  20. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +32 -23
  21. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +32 -23
  22. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +32 -23
  23. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +32 -23
  24. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +32 -23
  25. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +21 -20
  26. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +3 -3
  27. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +3 -3
  28. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +6 -6
  29. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +20 -14
  30. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +8 -8
  31. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +3 -3
  32. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +29 -22
  33. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +3 -3
  34. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +3 -3
  35. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +10 -10
  36. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +3 -3
  37. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +3 -3
  38. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +3 -3
  39. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +3 -3
  40. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +3 -3
  41. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +1 -1
  42. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +28 -21
  43. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +6 -4
  44. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +3 -3
  45. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +3 -3
  46. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +3 -3
  47. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +3 -3
  48. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +5 -5
  49. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +6 -6
  50. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +3 -3
  51. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +3 -3
  52. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +6 -6
  53. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +3 -3
  54. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +1 -1
  55. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +2 -2
  56. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +2 -2
  57. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +3 -3
  58. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping.rb +3 -3
  59. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +2 -2
  60. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping.rb +3 -3
  61. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +1 -1
  62. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +1 -1
  63. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +1 -1
  64. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +2 -2
  65. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +3 -3
  66. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +6 -6
  67. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +6 -6
  68. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +6 -6
  69. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +6 -6
  70. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +6 -6
  71. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +6 -6
  72. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +6 -6
  73. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +6 -6
  74. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +6 -6
  75. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +19 -18
  76. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +3 -3
  77. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +12 -12
  78. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +3 -3
  79. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +3 -3
  80. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +3 -3
  81. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +15 -11
  82. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +3 -3
  83. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +33 -26
  84. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +3 -3
  85. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +6 -6
  86. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +9 -9
  87. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +31 -24
  88. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +8 -8
  89. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +6 -6
  90. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +3 -3
  91. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +5 -22
  92. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +25 -40
  93. data/lib/twilio-ruby/rest/chat/v1/service.rb +36 -36
  94. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +3 -3
  95. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +19 -19
  96. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +28 -28
  97. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +7 -7
  98. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +5 -5
  99. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +8 -8
  100. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +2 -2
  101. data/lib/twilio-ruby/rest/chat/v2/service.rb +36 -36
  102. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +18 -18
  103. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +15 -15
  104. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +19 -19
  105. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +54 -54
  106. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +25 -25
  107. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +15 -15
  108. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +5 -5
  109. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +8 -8
  110. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +18 -18
  111. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +20 -20
  112. data/lib/twilio-ruby/rest/client.rb +1 -1
  113. data/lib/twilio-ruby/rest/conversations.rb +39 -3
  114. data/lib/twilio-ruby/rest/conversations/v1.rb +68 -5
  115. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +260 -0
  116. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +254 -0
  117. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +34 -23
  118. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +15 -20
  119. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +35 -28
  120. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +42 -44
  121. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +14 -19
  122. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +419 -0
  123. data/lib/twilio-ruby/rest/conversations/v1/role.rb +366 -0
  124. data/lib/twilio-ruby/rest/conversations/v1/service.rb +434 -0
  125. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +380 -0
  126. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +263 -0
  127. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +307 -0
  128. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +588 -0
  129. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +541 -0
  130. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +386 -0
  131. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +511 -0
  132. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +449 -0
  133. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +387 -0
  134. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +430 -0
  135. data/lib/twilio-ruby/rest/conversations/v1/user.rb +409 -0
  136. data/lib/twilio-ruby/rest/events.rb +17 -0
  137. data/lib/twilio-ruby/rest/events/v1.rb +31 -0
  138. data/lib/twilio-ruby/rest/events/v1/event_type.rb +291 -0
  139. data/lib/twilio-ruby/rest/events/v1/schema.rb +226 -0
  140. data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +290 -0
  141. data/lib/twilio-ruby/rest/events/v1/subscription.rb +28 -8
  142. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +3 -109
  143. data/lib/twilio-ruby/rest/fax/v1/fax.rb +28 -27
  144. data/lib/twilio-ruby/rest/insights.rb +8 -0
  145. data/lib/twilio-ruby/rest/insights/v1.rb +15 -0
  146. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +7 -0
  147. data/lib/twilio-ruby/rest/insights/v1/room.rb +487 -0
  148. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +385 -0
  149. data/lib/twilio-ruby/rest/ip_messaging.rb +8 -10
  150. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +6 -8
  151. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +29 -68
  152. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +198 -313
  153. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +32 -59
  154. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +23 -55
  155. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +28 -71
  156. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +31 -59
  157. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +19 -39
  158. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +29 -51
  159. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +12 -18
  160. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +6 -6
  161. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +29 -66
  162. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +116 -205
  163. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +23 -50
  164. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +41 -91
  165. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +23 -50
  166. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +42 -118
  167. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +46 -100
  168. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +36 -89
  169. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +19 -41
  170. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +29 -53
  171. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +23 -53
  172. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +27 -56
  173. data/lib/twilio-ruby/rest/lookups.rb +1 -1
  174. data/lib/twilio-ruby/rest/lookups/v1.rb +1 -1
  175. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +10 -10
  176. data/lib/twilio-ruby/rest/messaging/v1/service.rb +39 -36
  177. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +3 -3
  178. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +3 -3
  179. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +3 -3
  180. data/lib/twilio-ruby/rest/monitor/v1/event.rb +15 -15
  181. data/lib/twilio-ruby/rest/notify/v1/credential.rb +12 -6
  182. data/lib/twilio-ruby/rest/notify/v1/service.rb +24 -24
  183. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +10 -10
  184. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +23 -15
  185. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +2 -2
  186. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +18 -4
  187. data/lib/twilio-ruby/rest/preview.rb +8 -0
  188. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +5 -22
  189. data/lib/twilio-ruby/rest/preview/bulk_exports/export/export_custom_job.rb +21 -39
  190. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +15 -10
  191. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +9 -6
  192. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +1 -1
  193. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +15 -0
  194. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_call.rb +4 -4
  195. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel.rb +225 -0
  196. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel/channel.rb +165 -0
  197. data/lib/twilio-ruby/rest/preview/trusted_comms/business.rb +0 -26
  198. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights.rb +1 -4
  199. data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +4 -4
  200. data/lib/twilio-ruby/rest/preview/trusted_comms/phone_call.rb +52 -52
  201. data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +2 -2
  202. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +2 -2
  203. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +4 -4
  204. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +2 -2
  205. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +4 -4
  206. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +2 -2
  207. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +4 -4
  208. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +3 -3
  209. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +4 -4
  210. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +4 -4
  211. data/lib/twilio-ruby/rest/proxy/v1/service.rb +15 -15
  212. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +13 -11
  213. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +33 -30
  214. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +6 -6
  215. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +18 -17
  216. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +9 -9
  217. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +8 -8
  218. data/lib/twilio-ruby/rest/serverless/v1/service.rb +13 -13
  219. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +6 -6
  220. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +5 -5
  221. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +33 -8
  222. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +219 -0
  223. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +6 -8
  224. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +8 -8
  225. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +14 -14
  226. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +4 -4
  227. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +7 -7
  228. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +1 -1
  229. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +6 -6
  230. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +6 -6
  231. data/lib/twilio-ruby/rest/supersim/v1/command.rb +7 -7
  232. data/lib/twilio-ruby/rest/supersim/v1/network.rb +6 -6
  233. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +22 -12
  234. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +6 -6
  235. data/lib/twilio-ruby/rest/sync/v1/service.rb +3 -3
  236. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +6 -6
  237. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +6 -6
  238. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +6 -6
  239. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +6 -6
  240. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +6 -6
  241. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +6 -6
  242. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +12 -12
  243. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +6 -6
  244. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +6 -6
  245. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +4 -4
  246. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +4 -4
  247. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +2 -1
  248. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +6 -6
  249. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +16 -12
  250. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +8 -8
  251. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +6 -6
  252. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +6 -6
  253. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +9 -9
  254. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +4 -7
  255. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +16 -12
  256. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +4 -4
  257. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +4 -4
  258. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +6 -6
  259. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +12 -12
  260. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +4 -4
  261. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +6 -6
  262. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +4 -4
  263. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +6 -6
  264. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +46 -53
  265. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +2 -2
  266. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +3 -2
  267. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +3 -2
  268. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +201 -0
  269. data/lib/twilio-ruby/rest/verify/v2/form.rb +4 -4
  270. data/lib/twilio-ruby/rest/verify/v2/service.rb +51 -30
  271. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +3 -3
  272. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +20 -34
  273. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +32 -59
  274. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +59 -61
  275. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +12 -12
  276. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +3 -3
  277. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +3 -3
  278. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +14 -12
  279. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +5 -5
  280. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +4 -4
  281. data/lib/twilio-ruby/rest/video/v1/composition.rb +13 -9
  282. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +33 -24
  283. data/lib/twilio-ruby/rest/video/v1/recording.rb +6 -6
  284. data/lib/twilio-ruby/rest/video/v1/room.rb +27 -9
  285. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +6 -6
  286. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +9 -9
  287. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +2 -2
  288. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +150 -0
  289. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +9 -9
  290. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +3 -6
  291. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +22 -22
  292. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +4 -4
  293. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +2 -2
  294. data/lib/twilio-ruby/rest/wireless/v1/command.rb +7 -7
  295. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +8 -7
  296. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +22 -22
  297. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +4 -4
  298. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +10 -10
  299. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +6 -6
  300. data/lib/twilio-ruby/version.rb +1 -1
  301. data/spec/framework/version_spec.rb +53 -0
  302. data/spec/holodeck/holodeck.rb +3 -3
  303. data/spec/integration/accounts/v1/auth_token_promotion_spec.rb +44 -0
  304. data/spec/integration/accounts/v1/secondary_auth_token_spec.rb +69 -0
  305. data/spec/integration/api/v2010/account/conference/participant_spec.rb +30 -0
  306. data/spec/integration/bulkexports/v1/export/export_custom_job_spec.rb +4 -2
  307. data/spec/integration/conversations/v1/{webhook_spec.rb → configuration/webhook_spec.rb} +12 -8
  308. data/spec/integration/conversations/v1/configuration_spec.rb +87 -0
  309. data/spec/integration/conversations/v1/conversation/message/delivery_receipt_spec.rb +4 -0
  310. data/spec/integration/conversations/v1/conversation/participant_spec.rb +6 -6
  311. data/spec/integration/conversations/v1/conversation_spec.rb +5 -0
  312. data/spec/integration/conversations/v1/credential_spec.rb +219 -0
  313. data/spec/integration/conversations/v1/role_spec.rb +249 -0
  314. data/spec/integration/conversations/v1/service/binding_spec.rb +166 -0
  315. data/spec/integration/conversations/v1/service/configuration/notification_spec.rb +115 -0
  316. data/spec/integration/conversations/v1/service/configuration_spec.rb +87 -0
  317. data/spec/integration/conversations/v1/service/conversation/message/delivery_receipt_spec.rb +144 -0
  318. data/spec/integration/conversations/v1/service/conversation/message_spec.rb +429 -0
  319. data/spec/integration/conversations/v1/service/conversation/participant_spec.rb +407 -0
  320. data/spec/integration/conversations/v1/service/conversation/webhook_spec.rb +299 -0
  321. data/spec/integration/conversations/v1/service/conversation_spec.rb +289 -0
  322. data/spec/integration/conversations/v1/service/role_spec.rb +260 -0
  323. data/spec/integration/conversations/v1/service/user_spec.rb +236 -0
  324. data/spec/integration/conversations/v1/service_spec.rb +174 -0
  325. data/spec/integration/conversations/v1/user_spec.rb +226 -0
  326. data/spec/integration/events/v1/event_type_spec.rb +133 -0
  327. data/spec/integration/events/v1/schema/schema_version_spec.rb +126 -0
  328. data/spec/integration/events/v1/schema_spec.rb +46 -0
  329. data/spec/integration/events/v1/sink/sink_test_spec.rb +1 -1
  330. data/spec/integration/events/v1/subscription/subscribed_event_spec.rb +0 -121
  331. data/spec/integration/events/v1/subscription_spec.rb +38 -0
  332. data/spec/integration/insights/v1/call/summary_spec.rb +1 -0
  333. data/spec/integration/insights/v1/room/participant_spec.rb +149 -0
  334. data/spec/integration/insights/v1/room_spec.rb +164 -0
  335. data/spec/integration/ip_messaging/v1/credential_spec.rb +13 -13
  336. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +11 -11
  337. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +14 -14
  338. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +14 -14
  339. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +25 -25
  340. data/spec/integration/ip_messaging/v1/service/role_spec.rb +13 -13
  341. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +7 -7
  342. data/spec/integration/ip_messaging/v1/service/user_spec.rb +17 -17
  343. data/spec/integration/ip_messaging/v1/service_spec.rb +9 -9
  344. data/spec/integration/ip_messaging/v2/credential_spec.rb +13 -13
  345. data/spec/integration/ip_messaging/v2/service/binding_spec.rb +11 -11
  346. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +11 -11
  347. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +13 -13
  348. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +17 -17
  349. data/spec/integration/ip_messaging/v2/service/channel/webhook_spec.rb +15 -15
  350. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +29 -29
  351. data/spec/integration/ip_messaging/v2/service/role_spec.rb +13 -13
  352. data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +9 -9
  353. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +20 -20
  354. data/spec/integration/ip_messaging/v2/service/user_spec.rb +21 -21
  355. data/spec/integration/ip_messaging/v2/service_spec.rb +29 -29
  356. data/spec/integration/numbers/v2/regulatory_compliance/supporting_document_spec.rb +27 -0
  357. data/spec/integration/preview/bulk_exports/export/export_custom_job_spec.rb +4 -2
  358. data/spec/integration/preview/trusted_comms/{business/brand/branded_channel → branded_channel}/channel_spec.rb +4 -8
  359. data/spec/integration/preview/trusted_comms/{business/brand/branded_channel_spec.rb → branded_channel_spec.rb} +5 -9
  360. data/spec/integration/preview/trusted_comms/business_spec.rb +0 -1
  361. data/spec/integration/serverless/v1/service/build/build_status_spec.rb +48 -0
  362. data/spec/integration/serverless/v1/service/build_spec.rb +8 -2
  363. data/spec/integration/supersim/v1/sim_spec.rb +23 -0
  364. data/spec/integration/trunking/v1/trunk/recording_spec.rb +79 -0
  365. data/spec/integration/verify/v2/service/entity/challenge_spec.rb +56 -20
  366. data/spec/integration/verify/v2/service/entity/factor_spec.rb +11 -26
  367. data/spec/integration/verify/v2/service/entity_spec.rb +4 -12
  368. data/spec/integration/verify/v2/service_spec.rb +8 -4
  369. data/spec/integration/video/v1/room/room_recording_rule_spec.rb +89 -0
  370. data/spec/integration/video/v1/room_spec.rb +12 -7
  371. data/spec/jwt/access_token_spec.rb +9 -1
  372. data/twilio-ruby.gemspec +1 -1
  373. metadata +88 -16
  374. data/lib/twilio-ruby/rest/conversations/v1/webhook.rb +0 -262
  375. data/lib/twilio-ruby/rest/preview/trusted_comms/business/brand.rb +0 -233
  376. data/lib/twilio-ruby/rest/preview/trusted_comms/business/brand/branded_channel.rb +0 -260
  377. data/lib/twilio-ruby/rest/preview/trusted_comms/business/brand/branded_channel/channel.rb +0 -189
  378. data/spec/integration/preview/trusted_comms/business/brand_spec.rb +0 -48
@@ -0,0 +1,430 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+ #
7
+ # frozen_string_literal: true
8
+
9
+ module Twilio
10
+ module REST
11
+ class Conversations < Domain
12
+ class V1 < Version
13
+ class ServiceContext < InstanceContext
14
+ class UserList < ListResource
15
+ ##
16
+ # Initialize the UserList
17
+ # @param [Version] version Version that contains the resource
18
+ # @param [String] chat_service_sid The SID of the {Conversation
19
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] the
20
+ # User resource is associated with.
21
+ # @return [UserList] UserList
22
+ def initialize(version, chat_service_sid: nil)
23
+ super(version)
24
+
25
+ # Path Solution
26
+ @solution = {chat_service_sid: chat_service_sid}
27
+ @uri = "/Services/#{@solution[:chat_service_sid]}/Users"
28
+ end
29
+
30
+ ##
31
+ # Create the UserInstance
32
+ # @param [String] identity The application-defined string that uniquely identifies
33
+ # the resource's User within the {Conversation
34
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource]. This
35
+ # value is often a username or an email address, and is case-sensitive.
36
+ # @param [String] friendly_name The string that you assigned to describe the
37
+ # resource.
38
+ # @param [String] attributes The JSON Object string that stores
39
+ # application-specific data. If attributes have not been set, `{}` is returned.
40
+ # @param [String] role_sid The SID of a service-level
41
+ # {Role}[https://www.twilio.com/docs/conversations/api/role-resource] to assign to
42
+ # the user.
43
+ # @param [user.WebhookEnabledType] x_twilio_webhook_enabled The
44
+ # X-Twilio-Webhook-Enabled HTTP request header
45
+ # @return [UserInstance] Created UserInstance
46
+ def create(identity: nil, friendly_name: :unset, attributes: :unset, role_sid: :unset, x_twilio_webhook_enabled: :unset)
47
+ data = Twilio::Values.of({
48
+ 'Identity' => identity,
49
+ 'FriendlyName' => friendly_name,
50
+ 'Attributes' => attributes,
51
+ 'RoleSid' => role_sid,
52
+ })
53
+ headers = Twilio::Values.of({'X-Twilio-Webhook-Enabled' => x_twilio_webhook_enabled, })
54
+
55
+ payload = @version.create('POST', @uri, data: data, headers: headers)
56
+
57
+ UserInstance.new(@version, payload, chat_service_sid: @solution[:chat_service_sid], )
58
+ end
59
+
60
+ ##
61
+ # Lists UserInstance records from the API as a list.
62
+ # Unlike stream(), this operation is eager and will load `limit` records into
63
+ # memory before returning.
64
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
65
+ # guarantees to never return more than limit. Default is no limit
66
+ # @param [Integer] page_size Number of records to fetch per request, when
67
+ # not set will use the default value of 50 records. If no page_size is defined
68
+ # but a limit is defined, stream() will attempt to read the limit with the most
69
+ # efficient page size, i.e. min(limit, 1000)
70
+ # @return [Array] Array of up to limit results
71
+ def list(limit: nil, page_size: nil)
72
+ self.stream(limit: limit, page_size: page_size).entries
73
+ end
74
+
75
+ ##
76
+ # Streams UserInstance records from the API as an Enumerable.
77
+ # This operation lazily loads records as efficiently as possible until the limit
78
+ # is reached.
79
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
80
+ # guarantees to never return more than limit. Default is no limit.
81
+ # @param [Integer] page_size Number of records to fetch per request, when
82
+ # not set will use the default value of 50 records. If no page_size is defined
83
+ # but a limit is defined, stream() will attempt to read the limit with the most
84
+ # efficient page size, i.e. min(limit, 1000)
85
+ # @return [Enumerable] Enumerable that will yield up to limit results
86
+ def stream(limit: nil, page_size: nil)
87
+ limits = @version.read_limits(limit, page_size)
88
+
89
+ page = self.page(page_size: limits[:page_size], )
90
+
91
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
92
+ end
93
+
94
+ ##
95
+ # When passed a block, yields UserInstance records from the API.
96
+ # This operation lazily loads records as efficiently as possible until the limit
97
+ # is reached.
98
+ def each
99
+ limits = @version.read_limits
100
+
101
+ page = self.page(page_size: limits[:page_size], )
102
+
103
+ @version.stream(page,
104
+ limit: limits[:limit],
105
+ page_limit: limits[:page_limit]).each {|x| yield x}
106
+ end
107
+
108
+ ##
109
+ # Retrieve a single page of UserInstance records from the API.
110
+ # Request is executed immediately.
111
+ # @param [String] page_token PageToken provided by the API
112
+ # @param [Integer] page_number Page Number, this value is simply for client state
113
+ # @param [Integer] page_size Number of records to return, defaults to 50
114
+ # @return [Page] Page of UserInstance
115
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
116
+ params = Twilio::Values.of({
117
+ 'PageToken' => page_token,
118
+ 'Page' => page_number,
119
+ 'PageSize' => page_size,
120
+ })
121
+
122
+ response = @version.page('GET', @uri, params: params)
123
+
124
+ UserPage.new(@version, response, @solution)
125
+ end
126
+
127
+ ##
128
+ # Retrieve a single page of UserInstance records from the API.
129
+ # Request is executed immediately.
130
+ # @param [String] target_url API-generated URL for the requested results page
131
+ # @return [Page] Page of UserInstance
132
+ def get_page(target_url)
133
+ response = @version.domain.request(
134
+ 'GET',
135
+ target_url
136
+ )
137
+ UserPage.new(@version, response, @solution)
138
+ end
139
+
140
+ ##
141
+ # Provide a user friendly representation
142
+ def to_s
143
+ '#<Twilio.Conversations.V1.UserList>'
144
+ end
145
+ end
146
+
147
+ class UserPage < Page
148
+ ##
149
+ # Initialize the UserPage
150
+ # @param [Version] version Version that contains the resource
151
+ # @param [Response] response Response from the API
152
+ # @param [Hash] solution Path solution for the resource
153
+ # @return [UserPage] UserPage
154
+ def initialize(version, response, solution)
155
+ super(version, response)
156
+
157
+ # Path Solution
158
+ @solution = solution
159
+ end
160
+
161
+ ##
162
+ # Build an instance of UserInstance
163
+ # @param [Hash] payload Payload response from the API
164
+ # @return [UserInstance] UserInstance
165
+ def get_instance(payload)
166
+ UserInstance.new(@version, payload, chat_service_sid: @solution[:chat_service_sid], )
167
+ end
168
+
169
+ ##
170
+ # Provide a user friendly representation
171
+ def to_s
172
+ '<Twilio.Conversations.V1.UserPage>'
173
+ end
174
+ end
175
+
176
+ class UserContext < InstanceContext
177
+ ##
178
+ # Initialize the UserContext
179
+ # @param [Version] version Version that contains the resource
180
+ # @param [String] chat_service_sid The SID of the {Conversation
181
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] to
182
+ # fetch the User resource from.
183
+ # @param [String] sid The SID of the User resource to fetch. This value can be
184
+ # either the `sid` or the `identity` of the User resource to fetch.
185
+ # @return [UserContext] UserContext
186
+ def initialize(version, chat_service_sid, sid)
187
+ super(version)
188
+
189
+ # Path Solution
190
+ @solution = {chat_service_sid: chat_service_sid, sid: sid, }
191
+ @uri = "/Services/#{@solution[:chat_service_sid]}/Users/#{@solution[:sid]}"
192
+ end
193
+
194
+ ##
195
+ # Update the UserInstance
196
+ # @param [String] friendly_name The string that you assigned to describe the
197
+ # resource.
198
+ # @param [String] attributes The JSON Object string that stores
199
+ # application-specific data. If attributes have not been set, `{}` is returned.
200
+ # @param [String] role_sid The SID of a service-level
201
+ # {Role}[https://www.twilio.com/docs/conversations/api/role-resource] to assign to
202
+ # the user.
203
+ # @param [user.WebhookEnabledType] x_twilio_webhook_enabled The
204
+ # X-Twilio-Webhook-Enabled HTTP request header
205
+ # @return [UserInstance] Updated UserInstance
206
+ def update(friendly_name: :unset, attributes: :unset, role_sid: :unset, x_twilio_webhook_enabled: :unset)
207
+ data = Twilio::Values.of({
208
+ 'FriendlyName' => friendly_name,
209
+ 'Attributes' => attributes,
210
+ 'RoleSid' => role_sid,
211
+ })
212
+ headers = Twilio::Values.of({'X-Twilio-Webhook-Enabled' => x_twilio_webhook_enabled, })
213
+
214
+ payload = @version.update('POST', @uri, data: data, headers: headers)
215
+
216
+ UserInstance.new(
217
+ @version,
218
+ payload,
219
+ chat_service_sid: @solution[:chat_service_sid],
220
+ sid: @solution[:sid],
221
+ )
222
+ end
223
+
224
+ ##
225
+ # Delete the UserInstance
226
+ # @param [user.WebhookEnabledType] x_twilio_webhook_enabled The
227
+ # X-Twilio-Webhook-Enabled HTTP request header
228
+ # @return [Boolean] true if delete succeeds, false otherwise
229
+ def delete(x_twilio_webhook_enabled: :unset)
230
+ headers = Twilio::Values.of({'X-Twilio-Webhook-Enabled' => x_twilio_webhook_enabled, })
231
+
232
+ @version.delete('DELETE', @uri, headers: headers)
233
+ end
234
+
235
+ ##
236
+ # Fetch the UserInstance
237
+ # @return [UserInstance] Fetched UserInstance
238
+ def fetch
239
+ payload = @version.fetch('GET', @uri)
240
+
241
+ UserInstance.new(
242
+ @version,
243
+ payload,
244
+ chat_service_sid: @solution[:chat_service_sid],
245
+ sid: @solution[:sid],
246
+ )
247
+ end
248
+
249
+ ##
250
+ # Provide a user friendly representation
251
+ def to_s
252
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
253
+ "#<Twilio.Conversations.V1.UserContext #{context}>"
254
+ end
255
+
256
+ ##
257
+ # Provide a detailed, user friendly representation
258
+ def inspect
259
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
260
+ "#<Twilio.Conversations.V1.UserContext #{context}>"
261
+ end
262
+ end
263
+
264
+ class UserInstance < InstanceResource
265
+ ##
266
+ # Initialize the UserInstance
267
+ # @param [Version] version Version that contains the resource
268
+ # @param [Hash] payload payload that contains response from Twilio
269
+ # @param [String] chat_service_sid The SID of the {Conversation
270
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] the
271
+ # User resource is associated with.
272
+ # @param [String] sid The SID of the User resource to fetch. This value can be
273
+ # either the `sid` or the `identity` of the User resource to fetch.
274
+ # @return [UserInstance] UserInstance
275
+ def initialize(version, payload, chat_service_sid: nil, sid: nil)
276
+ super(version)
277
+
278
+ # Marshaled Properties
279
+ @properties = {
280
+ 'sid' => payload['sid'],
281
+ 'account_sid' => payload['account_sid'],
282
+ 'chat_service_sid' => payload['chat_service_sid'],
283
+ 'role_sid' => payload['role_sid'],
284
+ 'identity' => payload['identity'],
285
+ 'friendly_name' => payload['friendly_name'],
286
+ 'attributes' => payload['attributes'],
287
+ 'is_online' => payload['is_online'],
288
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
289
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
290
+ 'url' => payload['url'],
291
+ }
292
+
293
+ # Context
294
+ @instance_context = nil
295
+ @params = {'chat_service_sid' => chat_service_sid, 'sid' => sid || @properties['sid'], }
296
+ end
297
+
298
+ ##
299
+ # Generate an instance context for the instance, the context is capable of
300
+ # performing various actions. All instance actions are proxied to the context
301
+ # @return [UserContext] UserContext for this UserInstance
302
+ def context
303
+ unless @instance_context
304
+ @instance_context = UserContext.new(@version, @params['chat_service_sid'], @params['sid'], )
305
+ end
306
+ @instance_context
307
+ end
308
+
309
+ ##
310
+ # @return [String] The unique string that identifies the resource
311
+ def sid
312
+ @properties['sid']
313
+ end
314
+
315
+ ##
316
+ # @return [String] The SID of the Account that created the resource
317
+ def account_sid
318
+ @properties['account_sid']
319
+ end
320
+
321
+ ##
322
+ # @return [String] The SID of the Conversation Service that the resource is associated with
323
+ def chat_service_sid
324
+ @properties['chat_service_sid']
325
+ end
326
+
327
+ ##
328
+ # @return [String] The SID of a service-level Role assigned to the user
329
+ def role_sid
330
+ @properties['role_sid']
331
+ end
332
+
333
+ ##
334
+ # @return [String] The string that identifies the resource's User
335
+ def identity
336
+ @properties['identity']
337
+ end
338
+
339
+ ##
340
+ # @return [String] The string that you assigned to describe the resource
341
+ def friendly_name
342
+ @properties['friendly_name']
343
+ end
344
+
345
+ ##
346
+ # @return [String] The JSON Object string that stores application-specific data
347
+ def attributes
348
+ @properties['attributes']
349
+ end
350
+
351
+ ##
352
+ # @return [Boolean] Whether the User is actively connected to the Service instance and online
353
+ def is_online
354
+ @properties['is_online']
355
+ end
356
+
357
+ ##
358
+ # @return [Time] The ISO 8601 date and time in GMT when the resource was created
359
+ def date_created
360
+ @properties['date_created']
361
+ end
362
+
363
+ ##
364
+ # @return [Time] The ISO 8601 date and time in GMT when the resource was last updated
365
+ def date_updated
366
+ @properties['date_updated']
367
+ end
368
+
369
+ ##
370
+ # @return [String] An absolute URL for this user.
371
+ def url
372
+ @properties['url']
373
+ end
374
+
375
+ ##
376
+ # Update the UserInstance
377
+ # @param [String] friendly_name The string that you assigned to describe the
378
+ # resource.
379
+ # @param [String] attributes The JSON Object string that stores
380
+ # application-specific data. If attributes have not been set, `{}` is returned.
381
+ # @param [String] role_sid The SID of a service-level
382
+ # {Role}[https://www.twilio.com/docs/conversations/api/role-resource] to assign to
383
+ # the user.
384
+ # @param [user.WebhookEnabledType] x_twilio_webhook_enabled The
385
+ # X-Twilio-Webhook-Enabled HTTP request header
386
+ # @return [UserInstance] Updated UserInstance
387
+ def update(friendly_name: :unset, attributes: :unset, role_sid: :unset, x_twilio_webhook_enabled: :unset)
388
+ context.update(
389
+ friendly_name: friendly_name,
390
+ attributes: attributes,
391
+ role_sid: role_sid,
392
+ x_twilio_webhook_enabled: x_twilio_webhook_enabled,
393
+ )
394
+ end
395
+
396
+ ##
397
+ # Delete the UserInstance
398
+ # @param [user.WebhookEnabledType] x_twilio_webhook_enabled The
399
+ # X-Twilio-Webhook-Enabled HTTP request header
400
+ # @return [Boolean] true if delete succeeds, false otherwise
401
+ def delete(x_twilio_webhook_enabled: :unset)
402
+ context.delete(x_twilio_webhook_enabled: x_twilio_webhook_enabled, )
403
+ end
404
+
405
+ ##
406
+ # Fetch the UserInstance
407
+ # @return [UserInstance] Fetched UserInstance
408
+ def fetch
409
+ context.fetch
410
+ end
411
+
412
+ ##
413
+ # Provide a user friendly representation
414
+ def to_s
415
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
416
+ "<Twilio.Conversations.V1.UserInstance #{values}>"
417
+ end
418
+
419
+ ##
420
+ # Provide a detailed, user friendly representation
421
+ def inspect
422
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
423
+ "<Twilio.Conversations.V1.UserInstance #{values}>"
424
+ end
425
+ end
426
+ end
427
+ end
428
+ end
429
+ end
430
+ end
@@ -0,0 +1,409 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+ #
7
+ # frozen_string_literal: true
8
+
9
+ module Twilio
10
+ module REST
11
+ class Conversations < Domain
12
+ class V1 < Version
13
+ class UserList < ListResource
14
+ ##
15
+ # Initialize the UserList
16
+ # @param [Version] version Version that contains the resource
17
+ # @return [UserList] UserList
18
+ def initialize(version)
19
+ super(version)
20
+
21
+ # Path Solution
22
+ @solution = {}
23
+ @uri = "/Users"
24
+ end
25
+
26
+ ##
27
+ # Create the UserInstance
28
+ # @param [String] identity The application-defined string that uniquely identifies
29
+ # the resource's User within the {Conversation
30
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource]. This
31
+ # value is often a username or an email address, and is case-sensitive.
32
+ # @param [String] friendly_name The string that you assigned to describe the
33
+ # resource.
34
+ # @param [String] attributes The JSON Object string that stores
35
+ # application-specific data. If attributes have not been set, `{}` is returned.
36
+ # @param [String] role_sid The SID of a service-level
37
+ # {Role}[https://www.twilio.com/docs/conversations/api/role-resource] to assign to
38
+ # the user.
39
+ # @param [user.WebhookEnabledType] x_twilio_webhook_enabled The
40
+ # X-Twilio-Webhook-Enabled HTTP request header
41
+ # @return [UserInstance] Created UserInstance
42
+ def create(identity: nil, friendly_name: :unset, attributes: :unset, role_sid: :unset, x_twilio_webhook_enabled: :unset)
43
+ data = Twilio::Values.of({
44
+ 'Identity' => identity,
45
+ 'FriendlyName' => friendly_name,
46
+ 'Attributes' => attributes,
47
+ 'RoleSid' => role_sid,
48
+ })
49
+ headers = Twilio::Values.of({'X-Twilio-Webhook-Enabled' => x_twilio_webhook_enabled, })
50
+
51
+ payload = @version.create('POST', @uri, data: data, headers: headers)
52
+
53
+ UserInstance.new(@version, payload, )
54
+ end
55
+
56
+ ##
57
+ # Lists UserInstance records from the API as a list.
58
+ # Unlike stream(), this operation is eager and will load `limit` records into
59
+ # memory before returning.
60
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
61
+ # guarantees to never return more than limit. Default is no limit
62
+ # @param [Integer] page_size Number of records to fetch per request, when
63
+ # not set will use the default value of 50 records. If no page_size is defined
64
+ # but a limit is defined, stream() will attempt to read the limit with the most
65
+ # efficient page size, i.e. min(limit, 1000)
66
+ # @return [Array] Array of up to limit results
67
+ def list(limit: nil, page_size: nil)
68
+ self.stream(limit: limit, page_size: page_size).entries
69
+ end
70
+
71
+ ##
72
+ # Streams UserInstance records from the API as an Enumerable.
73
+ # This operation lazily loads records as efficiently as possible until the limit
74
+ # is reached.
75
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
76
+ # guarantees to never return more than limit. Default is no limit.
77
+ # @param [Integer] page_size Number of records to fetch per request, when
78
+ # not set will use the default value of 50 records. If no page_size is defined
79
+ # but a limit is defined, stream() will attempt to read the limit with the most
80
+ # efficient page size, i.e. min(limit, 1000)
81
+ # @return [Enumerable] Enumerable that will yield up to limit results
82
+ def stream(limit: nil, page_size: nil)
83
+ limits = @version.read_limits(limit, page_size)
84
+
85
+ page = self.page(page_size: limits[:page_size], )
86
+
87
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
88
+ end
89
+
90
+ ##
91
+ # When passed a block, yields UserInstance records from the API.
92
+ # This operation lazily loads records as efficiently as possible until the limit
93
+ # is reached.
94
+ def each
95
+ limits = @version.read_limits
96
+
97
+ page = self.page(page_size: limits[:page_size], )
98
+
99
+ @version.stream(page,
100
+ limit: limits[:limit],
101
+ page_limit: limits[:page_limit]).each {|x| yield x}
102
+ end
103
+
104
+ ##
105
+ # Retrieve a single page of UserInstance records from the API.
106
+ # Request is executed immediately.
107
+ # @param [String] page_token PageToken provided by the API
108
+ # @param [Integer] page_number Page Number, this value is simply for client state
109
+ # @param [Integer] page_size Number of records to return, defaults to 50
110
+ # @return [Page] Page of UserInstance
111
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
112
+ params = Twilio::Values.of({
113
+ 'PageToken' => page_token,
114
+ 'Page' => page_number,
115
+ 'PageSize' => page_size,
116
+ })
117
+
118
+ response = @version.page('GET', @uri, params: params)
119
+
120
+ UserPage.new(@version, response, @solution)
121
+ end
122
+
123
+ ##
124
+ # Retrieve a single page of UserInstance records from the API.
125
+ # Request is executed immediately.
126
+ # @param [String] target_url API-generated URL for the requested results page
127
+ # @return [Page] Page of UserInstance
128
+ def get_page(target_url)
129
+ response = @version.domain.request(
130
+ 'GET',
131
+ target_url
132
+ )
133
+ UserPage.new(@version, response, @solution)
134
+ end
135
+
136
+ ##
137
+ # Provide a user friendly representation
138
+ def to_s
139
+ '#<Twilio.Conversations.V1.UserList>'
140
+ end
141
+ end
142
+
143
+ class UserPage < Page
144
+ ##
145
+ # Initialize the UserPage
146
+ # @param [Version] version Version that contains the resource
147
+ # @param [Response] response Response from the API
148
+ # @param [Hash] solution Path solution for the resource
149
+ # @return [UserPage] UserPage
150
+ def initialize(version, response, solution)
151
+ super(version, response)
152
+
153
+ # Path Solution
154
+ @solution = solution
155
+ end
156
+
157
+ ##
158
+ # Build an instance of UserInstance
159
+ # @param [Hash] payload Payload response from the API
160
+ # @return [UserInstance] UserInstance
161
+ def get_instance(payload)
162
+ UserInstance.new(@version, payload, )
163
+ end
164
+
165
+ ##
166
+ # Provide a user friendly representation
167
+ def to_s
168
+ '<Twilio.Conversations.V1.UserPage>'
169
+ end
170
+ end
171
+
172
+ class UserContext < InstanceContext
173
+ ##
174
+ # Initialize the UserContext
175
+ # @param [Version] version Version that contains the resource
176
+ # @param [String] sid The SID of the User resource to fetch. This value can be
177
+ # either the `sid` or the `identity` of the User resource to fetch.
178
+ # @return [UserContext] UserContext
179
+ def initialize(version, sid)
180
+ super(version)
181
+
182
+ # Path Solution
183
+ @solution = {sid: sid, }
184
+ @uri = "/Users/#{@solution[:sid]}"
185
+ end
186
+
187
+ ##
188
+ # Update the UserInstance
189
+ # @param [String] friendly_name The string that you assigned to describe the
190
+ # resource.
191
+ # @param [String] attributes The JSON Object string that stores
192
+ # application-specific data. If attributes have not been set, `{}` is returned.
193
+ # @param [String] role_sid The SID of a service-level
194
+ # {Role}[https://www.twilio.com/docs/conversations/api/role-resource] to assign to
195
+ # the user.
196
+ # @param [user.WebhookEnabledType] x_twilio_webhook_enabled The
197
+ # X-Twilio-Webhook-Enabled HTTP request header
198
+ # @return [UserInstance] Updated UserInstance
199
+ def update(friendly_name: :unset, attributes: :unset, role_sid: :unset, x_twilio_webhook_enabled: :unset)
200
+ data = Twilio::Values.of({
201
+ 'FriendlyName' => friendly_name,
202
+ 'Attributes' => attributes,
203
+ 'RoleSid' => role_sid,
204
+ })
205
+ headers = Twilio::Values.of({'X-Twilio-Webhook-Enabled' => x_twilio_webhook_enabled, })
206
+
207
+ payload = @version.update('POST', @uri, data: data, headers: headers)
208
+
209
+ UserInstance.new(@version, payload, sid: @solution[:sid], )
210
+ end
211
+
212
+ ##
213
+ # Delete the UserInstance
214
+ # @param [user.WebhookEnabledType] x_twilio_webhook_enabled The
215
+ # X-Twilio-Webhook-Enabled HTTP request header
216
+ # @return [Boolean] true if delete succeeds, false otherwise
217
+ def delete(x_twilio_webhook_enabled: :unset)
218
+ headers = Twilio::Values.of({'X-Twilio-Webhook-Enabled' => x_twilio_webhook_enabled, })
219
+
220
+ @version.delete('DELETE', @uri, headers: headers)
221
+ end
222
+
223
+ ##
224
+ # Fetch the UserInstance
225
+ # @return [UserInstance] Fetched UserInstance
226
+ def fetch
227
+ payload = @version.fetch('GET', @uri)
228
+
229
+ UserInstance.new(@version, payload, sid: @solution[:sid], )
230
+ end
231
+
232
+ ##
233
+ # Provide a user friendly representation
234
+ def to_s
235
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
236
+ "#<Twilio.Conversations.V1.UserContext #{context}>"
237
+ end
238
+
239
+ ##
240
+ # Provide a detailed, user friendly representation
241
+ def inspect
242
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
243
+ "#<Twilio.Conversations.V1.UserContext #{context}>"
244
+ end
245
+ end
246
+
247
+ class UserInstance < InstanceResource
248
+ ##
249
+ # Initialize the UserInstance
250
+ # @param [Version] version Version that contains the resource
251
+ # @param [Hash] payload payload that contains response from Twilio
252
+ # @param [String] sid The SID of the User resource to fetch. This value can be
253
+ # either the `sid` or the `identity` of the User resource to fetch.
254
+ # @return [UserInstance] UserInstance
255
+ def initialize(version, payload, sid: nil)
256
+ super(version)
257
+
258
+ # Marshaled Properties
259
+ @properties = {
260
+ 'sid' => payload['sid'],
261
+ 'account_sid' => payload['account_sid'],
262
+ 'chat_service_sid' => payload['chat_service_sid'],
263
+ 'role_sid' => payload['role_sid'],
264
+ 'identity' => payload['identity'],
265
+ 'friendly_name' => payload['friendly_name'],
266
+ 'attributes' => payload['attributes'],
267
+ 'is_online' => payload['is_online'],
268
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
269
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
270
+ 'url' => payload['url'],
271
+ }
272
+
273
+ # Context
274
+ @instance_context = nil
275
+ @params = {'sid' => sid || @properties['sid'], }
276
+ end
277
+
278
+ ##
279
+ # Generate an instance context for the instance, the context is capable of
280
+ # performing various actions. All instance actions are proxied to the context
281
+ # @return [UserContext] UserContext for this UserInstance
282
+ def context
283
+ unless @instance_context
284
+ @instance_context = UserContext.new(@version, @params['sid'], )
285
+ end
286
+ @instance_context
287
+ end
288
+
289
+ ##
290
+ # @return [String] The unique string that identifies the resource
291
+ def sid
292
+ @properties['sid']
293
+ end
294
+
295
+ ##
296
+ # @return [String] The SID of the Account that created the resource
297
+ def account_sid
298
+ @properties['account_sid']
299
+ end
300
+
301
+ ##
302
+ # @return [String] The SID of the Conversation Service that the resource is associated with
303
+ def chat_service_sid
304
+ @properties['chat_service_sid']
305
+ end
306
+
307
+ ##
308
+ # @return [String] The SID of a service-level Role assigned to the user
309
+ def role_sid
310
+ @properties['role_sid']
311
+ end
312
+
313
+ ##
314
+ # @return [String] The string that identifies the resource's User
315
+ def identity
316
+ @properties['identity']
317
+ end
318
+
319
+ ##
320
+ # @return [String] The string that you assigned to describe the resource
321
+ def friendly_name
322
+ @properties['friendly_name']
323
+ end
324
+
325
+ ##
326
+ # @return [String] The JSON Object string that stores application-specific data
327
+ def attributes
328
+ @properties['attributes']
329
+ end
330
+
331
+ ##
332
+ # @return [Boolean] Whether the User is actively connected to the Service instance and online
333
+ def is_online
334
+ @properties['is_online']
335
+ end
336
+
337
+ ##
338
+ # @return [Time] The ISO 8601 date and time in GMT when the resource was created
339
+ def date_created
340
+ @properties['date_created']
341
+ end
342
+
343
+ ##
344
+ # @return [Time] The ISO 8601 date and time in GMT when the resource was last updated
345
+ def date_updated
346
+ @properties['date_updated']
347
+ end
348
+
349
+ ##
350
+ # @return [String] An absolute URL for this user.
351
+ def url
352
+ @properties['url']
353
+ end
354
+
355
+ ##
356
+ # Update the UserInstance
357
+ # @param [String] friendly_name The string that you assigned to describe the
358
+ # resource.
359
+ # @param [String] attributes The JSON Object string that stores
360
+ # application-specific data. If attributes have not been set, `{}` is returned.
361
+ # @param [String] role_sid The SID of a service-level
362
+ # {Role}[https://www.twilio.com/docs/conversations/api/role-resource] to assign to
363
+ # the user.
364
+ # @param [user.WebhookEnabledType] x_twilio_webhook_enabled The
365
+ # X-Twilio-Webhook-Enabled HTTP request header
366
+ # @return [UserInstance] Updated UserInstance
367
+ def update(friendly_name: :unset, attributes: :unset, role_sid: :unset, x_twilio_webhook_enabled: :unset)
368
+ context.update(
369
+ friendly_name: friendly_name,
370
+ attributes: attributes,
371
+ role_sid: role_sid,
372
+ x_twilio_webhook_enabled: x_twilio_webhook_enabled,
373
+ )
374
+ end
375
+
376
+ ##
377
+ # Delete the UserInstance
378
+ # @param [user.WebhookEnabledType] x_twilio_webhook_enabled The
379
+ # X-Twilio-Webhook-Enabled HTTP request header
380
+ # @return [Boolean] true if delete succeeds, false otherwise
381
+ def delete(x_twilio_webhook_enabled: :unset)
382
+ context.delete(x_twilio_webhook_enabled: x_twilio_webhook_enabled, )
383
+ end
384
+
385
+ ##
386
+ # Fetch the UserInstance
387
+ # @return [UserInstance] Fetched UserInstance
388
+ def fetch
389
+ context.fetch
390
+ end
391
+
392
+ ##
393
+ # Provide a user friendly representation
394
+ def to_s
395
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
396
+ "<Twilio.Conversations.V1.UserInstance #{values}>"
397
+ end
398
+
399
+ ##
400
+ # Provide a detailed, user friendly representation
401
+ def inspect
402
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
403
+ "<Twilio.Conversations.V1.UserInstance #{values}>"
404
+ end
405
+ end
406
+ end
407
+ end
408
+ end
409
+ end