twilio-ruby 5.40.2 → 5.43.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 (369) 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 +18 -2
  6. data/lib/twilio-ruby.rb +1 -1
  7. data/lib/twilio-ruby/framework/version.rb +2 -1
  8. data/lib/twilio-ruby/jwt/access_token.rb +7 -2
  9. data/lib/twilio-ruby/rest/accounts.rb +12 -0
  10. data/lib/twilio-ruby/rest/accounts/v1.rb +14 -0
  11. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +186 -0
  12. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +200 -0
  13. data/lib/twilio-ruby/rest/api.rb +1 -1
  14. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +3 -3
  15. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +2 -2
  16. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +3 -3
  17. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +3 -3
  18. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +3 -3
  19. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +32 -23
  20. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +32 -23
  21. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +32 -23
  22. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +32 -23
  23. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +32 -23
  24. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +32 -23
  25. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +32 -23
  26. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +41 -20
  27. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +201 -0
  28. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +3 -3
  29. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +3 -3
  30. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +6 -6
  31. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +20 -14
  32. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +8 -8
  33. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +3 -3
  34. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +29 -22
  35. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +3 -3
  36. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +3 -3
  37. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +10 -10
  38. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +3 -3
  39. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +3 -3
  40. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +3 -3
  41. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +3 -3
  42. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +3 -3
  43. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +1 -1
  44. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +28 -21
  45. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +6 -4
  46. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +3 -3
  47. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +3 -3
  48. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +3 -3
  49. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +3 -3
  50. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +5 -5
  51. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +6 -6
  52. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +3 -3
  53. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +3 -3
  54. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +6 -6
  55. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +3 -3
  56. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +1 -1
  57. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +2 -2
  58. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +2 -2
  59. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +3 -3
  60. 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
  61. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +2 -2
  62. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping.rb +3 -3
  63. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +1 -1
  64. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +1 -1
  65. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +1 -1
  66. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +2 -2
  67. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +3 -3
  68. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +6 -6
  69. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +6 -6
  70. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +6 -6
  71. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +6 -6
  72. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +6 -6
  73. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +6 -6
  74. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +6 -6
  75. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +6 -6
  76. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +6 -6
  77. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +19 -18
  78. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +3 -3
  79. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +12 -12
  80. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +3 -3
  81. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +3 -3
  82. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +3 -3
  83. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +15 -11
  84. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +3 -3
  85. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +33 -26
  86. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +3 -3
  87. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +6 -6
  88. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +9 -9
  89. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +31 -24
  90. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +8 -8
  91. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +6 -6
  92. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +3 -3
  93. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +5 -22
  94. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +25 -40
  95. data/lib/twilio-ruby/rest/chat/v1/service.rb +36 -36
  96. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +3 -3
  97. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +19 -19
  98. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +28 -28
  99. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +7 -7
  100. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +5 -5
  101. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +8 -8
  102. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +2 -2
  103. data/lib/twilio-ruby/rest/chat/v2/service.rb +36 -36
  104. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +18 -18
  105. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +15 -15
  106. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +19 -19
  107. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +54 -54
  108. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +25 -25
  109. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +15 -15
  110. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +5 -5
  111. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +8 -8
  112. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +18 -18
  113. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +20 -20
  114. data/lib/twilio-ruby/rest/client.rb +30 -4
  115. data/lib/twilio-ruby/rest/conversations.rb +0 -16
  116. data/lib/twilio-ruby/rest/conversations/v1.rb +0 -24
  117. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +23 -21
  118. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +254 -0
  119. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +20 -20
  120. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +15 -20
  121. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +23 -25
  122. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +42 -44
  123. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +14 -19
  124. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +1 -9
  125. data/lib/twilio-ruby/rest/conversations/v1/role.rb +5 -11
  126. data/lib/twilio-ruby/rest/conversations/v1/service.rb +2 -10
  127. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +34 -39
  128. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +32 -28
  129. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +307 -0
  130. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +27 -25
  131. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +24 -29
  132. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +33 -35
  133. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +52 -54
  134. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +24 -29
  135. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +14 -20
  136. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +53 -42
  137. data/lib/twilio-ruby/rest/conversations/v1/user.rb +44 -33
  138. data/lib/twilio-ruby/rest/events.rb +10 -1
  139. data/lib/twilio-ruby/rest/events/v1.rb +17 -1
  140. data/lib/twilio-ruby/rest/events/v1/event_type.rb +8 -8
  141. data/lib/twilio-ruby/rest/events/v1/schema.rb +226 -0
  142. data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +290 -0
  143. data/lib/twilio-ruby/rest/events/v1/subscription.rb +40 -13
  144. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +3 -109
  145. data/lib/twilio-ruby/rest/fax/v1/fax.rb +28 -27
  146. data/lib/twilio-ruby/rest/insights.rb +8 -0
  147. data/lib/twilio-ruby/rest/insights/v1.rb +15 -0
  148. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +7 -0
  149. data/lib/twilio-ruby/rest/insights/v1/room.rb +487 -0
  150. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +378 -0
  151. data/lib/twilio-ruby/rest/ip_messaging.rb +8 -10
  152. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +6 -8
  153. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +29 -68
  154. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +198 -313
  155. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +32 -59
  156. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +23 -55
  157. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +28 -71
  158. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +31 -59
  159. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +19 -39
  160. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +29 -51
  161. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +12 -18
  162. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +6 -6
  163. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +29 -66
  164. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +116 -205
  165. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +23 -50
  166. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +41 -91
  167. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +23 -50
  168. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +42 -118
  169. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +46 -100
  170. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +36 -89
  171. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +19 -41
  172. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +29 -53
  173. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +23 -53
  174. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +27 -56
  175. data/lib/twilio-ruby/rest/lookups.rb +1 -1
  176. data/lib/twilio-ruby/rest/lookups/v1.rb +1 -1
  177. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +10 -10
  178. data/lib/twilio-ruby/rest/messaging/v1/service.rb +39 -36
  179. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +3 -3
  180. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +3 -3
  181. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +3 -3
  182. data/lib/twilio-ruby/rest/monitor/v1/event.rb +15 -15
  183. data/lib/twilio-ruby/rest/notify/v1/credential.rb +12 -6
  184. data/lib/twilio-ruby/rest/notify/v1/service.rb +24 -24
  185. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +10 -10
  186. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +23 -15
  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 +6 -6
  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 +6 -6
  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 +5 -5
  219. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +4 -4
  220. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +4 -4
  221. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +29 -4
  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 +4 -4
  224. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +4 -4
  225. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +4 -4
  226. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +4 -4
  227. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +4 -4
  228. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +4 -4
  229. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +4 -4
  230. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +6 -6
  231. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +6 -6
  232. data/lib/twilio-ruby/rest/supersim/v1/command.rb +7 -7
  233. data/lib/twilio-ruby/rest/supersim/v1/network.rb +6 -6
  234. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +7 -7
  235. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +6 -6
  236. data/lib/twilio-ruby/rest/sync/v1/service.rb +3 -3
  237. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +21 -11
  238. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +6 -6
  239. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +21 -11
  240. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +34 -11
  241. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +6 -6
  242. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +21 -11
  243. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +40 -17
  244. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +6 -6
  245. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +21 -11
  246. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +4 -4
  247. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +4 -4
  248. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +6 -6
  249. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +12 -9
  250. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +16 -12
  251. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +16 -16
  252. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +8 -8
  253. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +6 -6
  254. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +6 -6
  255. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +9 -9
  256. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +4 -7
  257. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +16 -12
  258. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +4 -4
  259. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +4 -4
  260. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +6 -6
  261. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +12 -12
  262. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +4 -4
  263. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +6 -6
  264. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +4 -4
  265. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +6 -6
  266. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +46 -53
  267. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +2 -2
  268. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +3 -2
  269. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +3 -2
  270. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +201 -0
  271. data/lib/twilio-ruby/rest/verify/v2/form.rb +4 -4
  272. data/lib/twilio-ruby/rest/verify/v2/service.rb +54 -33
  273. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +3 -3
  274. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +23 -35
  275. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +36 -61
  276. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +59 -61
  277. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +12 -12
  278. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +3 -3
  279. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +3 -3
  280. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +14 -12
  281. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +5 -5
  282. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +4 -4
  283. data/lib/twilio-ruby/rest/video/v1/composition.rb +13 -9
  284. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +33 -24
  285. data/lib/twilio-ruby/rest/video/v1/recording.rb +6 -6
  286. data/lib/twilio-ruby/rest/video/v1/room.rb +27 -9
  287. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +6 -6
  288. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +9 -9
  289. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +2 -2
  290. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +150 -0
  291. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +9 -9
  292. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +3 -6
  293. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +22 -22
  294. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +4 -4
  295. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +2 -2
  296. data/lib/twilio-ruby/rest/wireless/v1/command.rb +7 -7
  297. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +8 -7
  298. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +22 -22
  299. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +4 -4
  300. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +10 -10
  301. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +6 -6
  302. data/lib/twilio-ruby/util/configuration.rb +5 -1
  303. data/lib/twilio-ruby/version.rb +1 -1
  304. data/spec/framework/version_spec.rb +11 -0
  305. data/spec/integration/accounts/v1/auth_token_promotion_spec.rb +44 -0
  306. data/spec/integration/accounts/v1/secondary_auth_token_spec.rb +69 -0
  307. data/spec/integration/api/v2010/account/call/event_spec.rb +102 -0
  308. data/spec/integration/api/v2010/account/call_spec.rb +20 -10
  309. data/spec/integration/api/v2010/account/conference/participant_spec.rb +30 -0
  310. data/spec/integration/bulkexports/v1/export/export_custom_job_spec.rb +4 -2
  311. data/spec/integration/conversations/v1/{webhook_spec.rb → configuration/webhook_spec.rb} +12 -8
  312. data/spec/integration/conversations/v1/configuration_spec.rb +4 -2
  313. data/spec/integration/conversations/v1/conversation_spec.rb +1 -1
  314. data/spec/integration/conversations/v1/{notification_spec.rb → service/configuration/notification_spec.rb} +12 -4
  315. data/spec/integration/conversations/v1/service/conversation_spec.rb +1 -1
  316. data/spec/integration/conversations/v1/service/user_spec.rb +9 -3
  317. data/spec/integration/conversations/v1/user_spec.rb +9 -3
  318. data/spec/integration/events/v1/schema/schema_version_spec.rb +126 -0
  319. data/spec/integration/events/v1/schema_spec.rb +46 -0
  320. data/spec/integration/events/v1/sink/sink_test_spec.rb +1 -1
  321. data/spec/integration/events/v1/subscription/subscribed_event_spec.rb +0 -121
  322. data/spec/integration/events/v1/subscription_spec.rb +87 -0
  323. data/spec/integration/insights/v1/call/summary_spec.rb +1 -0
  324. data/spec/integration/insights/v1/room/participant_spec.rb +147 -0
  325. data/spec/integration/insights/v1/room_spec.rb +164 -0
  326. data/spec/integration/ip_messaging/v1/credential_spec.rb +13 -13
  327. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +11 -11
  328. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +14 -14
  329. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +14 -14
  330. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +25 -25
  331. data/spec/integration/ip_messaging/v1/service/role_spec.rb +13 -13
  332. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +7 -7
  333. data/spec/integration/ip_messaging/v1/service/user_spec.rb +17 -17
  334. data/spec/integration/ip_messaging/v1/service_spec.rb +9 -9
  335. data/spec/integration/ip_messaging/v2/credential_spec.rb +13 -13
  336. data/spec/integration/ip_messaging/v2/service/binding_spec.rb +11 -11
  337. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +11 -11
  338. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +13 -13
  339. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +17 -17
  340. data/spec/integration/ip_messaging/v2/service/channel/webhook_spec.rb +15 -15
  341. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +29 -29
  342. data/spec/integration/ip_messaging/v2/service/role_spec.rb +13 -13
  343. data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +9 -9
  344. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +20 -20
  345. data/spec/integration/ip_messaging/v2/service/user_spec.rb +21 -21
  346. data/spec/integration/ip_messaging/v2/service_spec.rb +29 -29
  347. data/spec/integration/preview/bulk_exports/export/export_custom_job_spec.rb +4 -2
  348. data/spec/integration/preview/trusted_comms/{business/brand/branded_channel → branded_channel}/channel_spec.rb +4 -8
  349. data/spec/integration/preview/trusted_comms/{business/brand/branded_channel_spec.rb → branded_channel_spec.rb} +5 -9
  350. data/spec/integration/preview/trusted_comms/business_spec.rb +0 -1
  351. data/spec/integration/serverless/v1/service/build/build_status_spec.rb +48 -0
  352. data/spec/integration/serverless/v1/service/build_spec.rb +8 -2
  353. data/spec/integration/trunking/v1/trunk/recording_spec.rb +79 -0
  354. data/spec/integration/verify/v2/service/entity/challenge_spec.rb +56 -20
  355. data/spec/integration/verify/v2/service/entity/factor_spec.rb +11 -26
  356. data/spec/integration/verify/v2/service/entity_spec.rb +4 -12
  357. data/spec/integration/verify/v2/service_spec.rb +8 -4
  358. data/spec/integration/video/v1/room/room_recording_rule_spec.rb +89 -0
  359. data/spec/integration/video/v1/room_spec.rb +12 -7
  360. data/spec/jwt/access_token_spec.rb +9 -1
  361. data/spec/rest/client_spec.rb +24 -2
  362. data/twilio-ruby.gemspec +2 -1
  363. metadata +60 -19
  364. data/lib/twilio-ruby/rest/conversations/v1/notification.rb +0 -310
  365. data/lib/twilio-ruby/rest/conversations/v1/webhook.rb +0 -262
  366. data/lib/twilio-ruby/rest/preview/trusted_comms/business/brand.rb +0 -233
  367. data/lib/twilio-ruby/rest/preview/trusted_comms/business/brand/branded_channel.rb +0 -260
  368. data/lib/twilio-ruby/rest/preview/trusted_comms/business/brand/branded_channel/channel.rb +0 -189
  369. data/spec/integration/preview/trusted_comms/business/brand_spec.rb +0 -48
@@ -29,13 +29,22 @@ module Twilio
29
29
  end
30
30
 
31
31
  ##
32
- # @param [String] type The type
32
+ # @param [String] type A string that uniquely identifies this Event Type.
33
33
  # @return [Twilio::REST::Events::V1::EventTypeInstance] if type was passed.
34
34
  # @return [Twilio::REST::Events::V1::EventTypeList]
35
35
  def event_types(type=:unset)
36
36
  self.v1.event_types(type)
37
37
  end
38
38
 
39
+ ##
40
+ # @param [String] id The unique identifier of the schema. Each schema can have
41
+ # multiple versions, that share the same id.
42
+ # @return [Twilio::REST::Events::V1::SchemaInstance] if id was passed.
43
+ # @return [Twilio::REST::Events::V1::SchemaList]
44
+ def schemas(id=:unset)
45
+ self.v1.schemas(id)
46
+ end
47
+
39
48
  ##
40
49
  # @param [String] sid A 34 character string that uniquely identifies this Sink.
41
50
  # @return [Twilio::REST::Events::V1::SinkInstance] if sid was passed.
@@ -16,12 +16,13 @@ module Twilio
16
16
  super
17
17
  @version = 'v1'
18
18
  @event_types = nil
19
+ @schemas = nil
19
20
  @sinks = nil
20
21
  @subscriptions = nil
21
22
  end
22
23
 
23
24
  ##
24
- # @param [String] type The type
25
+ # @param [String] type A string that uniquely identifies this Event Type.
25
26
  # @return [Twilio::REST::Events::V1::EventTypeContext] if type was passed.
26
27
  # @return [Twilio::REST::Events::V1::EventTypeList]
27
28
  def event_types(type=:unset)
@@ -34,6 +35,21 @@ module Twilio
34
35
  end
35
36
  end
36
37
 
38
+ ##
39
+ # @param [String] id The unique identifier of the schema. Each schema can have
40
+ # multiple versions, that share the same id.
41
+ # @return [Twilio::REST::Events::V1::SchemaContext] if id was passed.
42
+ # @return [Twilio::REST::Events::V1::SchemaList]
43
+ def schemas(id=:unset)
44
+ if id.nil?
45
+ raise ArgumentError, 'id cannot be nil'
46
+ elsif id == :unset
47
+ @schemas ||= SchemaList.new self
48
+ else
49
+ SchemaContext.new(self, id)
50
+ end
51
+ end
52
+
37
53
  ##
38
54
  # @param [String] sid A 34 character string that uniquely identifies this Sink.
39
55
  # @return [Twilio::REST::Events::V1::SinkContext] if sid was passed.
@@ -149,7 +149,7 @@ module Twilio
149
149
  ##
150
150
  # Initialize the EventTypeContext
151
151
  # @param [Version] version Version that contains the resource
152
- # @param [String] type The type
152
+ # @param [String] type A string that uniquely identifies this Event Type.
153
153
  # @return [EventTypeContext] EventTypeContext
154
154
  def initialize(version, type)
155
155
  super(version)
@@ -190,7 +190,7 @@ module Twilio
190
190
  # Initialize the EventTypeInstance
191
191
  # @param [Version] version Version that contains the resource
192
192
  # @param [Hash] payload payload that contains response from Twilio
193
- # @param [String] type The type
193
+ # @param [String] type A string that uniquely identifies this Event Type.
194
194
  # @return [EventTypeInstance] EventTypeInstance
195
195
  def initialize(version, payload, type: nil)
196
196
  super(version)
@@ -223,37 +223,37 @@ module Twilio
223
223
  end
224
224
 
225
225
  ##
226
- # @return [String] The type
226
+ # @return [String] The Event Type identifier.
227
227
  def type
228
228
  @properties['type']
229
229
  end
230
230
 
231
231
  ##
232
- # @return [String] The schema_id
232
+ # @return [String] The Schema identifier for this Event Type.
233
233
  def schema_id
234
234
  @properties['schema_id']
235
235
  end
236
236
 
237
237
  ##
238
- # @return [Time] The date_created
238
+ # @return [Time] The date this Event Type was created.
239
239
  def date_created
240
240
  @properties['date_created']
241
241
  end
242
242
 
243
243
  ##
244
- # @return [Time] The date_updated
244
+ # @return [Time] The date this Event Type was updated.
245
245
  def date_updated
246
246
  @properties['date_updated']
247
247
  end
248
248
 
249
249
  ##
250
- # @return [String] The description
250
+ # @return [String] Event Type description.
251
251
  def description
252
252
  @properties['description']
253
253
  end
254
254
 
255
255
  ##
256
- # @return [String] The url
256
+ # @return [String] The URL of this resource.
257
257
  def url
258
258
  @properties['url']
259
259
  end
@@ -0,0 +1,226 @@
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 Events < Domain
12
+ class V1 < Version
13
+ ##
14
+ # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
15
+ class SchemaList < ListResource
16
+ ##
17
+ # Initialize the SchemaList
18
+ # @param [Version] version Version that contains the resource
19
+ # @return [SchemaList] SchemaList
20
+ def initialize(version)
21
+ super(version)
22
+
23
+ # Path Solution
24
+ @solution = {}
25
+ end
26
+
27
+ ##
28
+ # Provide a user friendly representation
29
+ def to_s
30
+ '#<Twilio.Events.V1.SchemaList>'
31
+ end
32
+ end
33
+
34
+ ##
35
+ # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
36
+ class SchemaPage < Page
37
+ ##
38
+ # Initialize the SchemaPage
39
+ # @param [Version] version Version that contains the resource
40
+ # @param [Response] response Response from the API
41
+ # @param [Hash] solution Path solution for the resource
42
+ # @return [SchemaPage] SchemaPage
43
+ def initialize(version, response, solution)
44
+ super(version, response)
45
+
46
+ # Path Solution
47
+ @solution = solution
48
+ end
49
+
50
+ ##
51
+ # Build an instance of SchemaInstance
52
+ # @param [Hash] payload Payload response from the API
53
+ # @return [SchemaInstance] SchemaInstance
54
+ def get_instance(payload)
55
+ SchemaInstance.new(@version, payload, )
56
+ end
57
+
58
+ ##
59
+ # Provide a user friendly representation
60
+ def to_s
61
+ '<Twilio.Events.V1.SchemaPage>'
62
+ end
63
+ end
64
+
65
+ ##
66
+ # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
67
+ class SchemaContext < InstanceContext
68
+ ##
69
+ # Initialize the SchemaContext
70
+ # @param [Version] version Version that contains the resource
71
+ # @param [String] id The unique identifier of the schema. Each schema can have
72
+ # multiple versions, that share the same id.
73
+ # @return [SchemaContext] SchemaContext
74
+ def initialize(version, id)
75
+ super(version)
76
+
77
+ # Path Solution
78
+ @solution = {id: id, }
79
+ @uri = "/Schemas/#{@solution[:id]}"
80
+
81
+ # Dependents
82
+ @versions = nil
83
+ end
84
+
85
+ ##
86
+ # Fetch the SchemaInstance
87
+ # @return [SchemaInstance] Fetched SchemaInstance
88
+ def fetch
89
+ payload = @version.fetch('GET', @uri)
90
+
91
+ SchemaInstance.new(@version, payload, id: @solution[:id], )
92
+ end
93
+
94
+ ##
95
+ # Access the versions
96
+ # @return [VersionList]
97
+ # @return [VersionContext] if schema_version was passed.
98
+ def versions(schema_version=:unset)
99
+ raise ArgumentError, 'schema_version cannot be nil' if schema_version.nil?
100
+
101
+ if schema_version != :unset
102
+ return VersionContext.new(@version, @solution[:id], schema_version, )
103
+ end
104
+
105
+ unless @versions
106
+ @versions = VersionList.new(@version, id: @solution[:id], )
107
+ end
108
+
109
+ @versions
110
+ end
111
+
112
+ ##
113
+ # Provide a user friendly representation
114
+ def to_s
115
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
116
+ "#<Twilio.Events.V1.SchemaContext #{context}>"
117
+ end
118
+
119
+ ##
120
+ # Provide a detailed, user friendly representation
121
+ def inspect
122
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
123
+ "#<Twilio.Events.V1.SchemaContext #{context}>"
124
+ end
125
+ end
126
+
127
+ ##
128
+ # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
129
+ class SchemaInstance < InstanceResource
130
+ ##
131
+ # Initialize the SchemaInstance
132
+ # @param [Version] version Version that contains the resource
133
+ # @param [Hash] payload payload that contains response from Twilio
134
+ # @param [String] id The unique identifier of the schema. Each schema can have
135
+ # multiple versions, that share the same id.
136
+ # @return [SchemaInstance] SchemaInstance
137
+ def initialize(version, payload, id: nil)
138
+ super(version)
139
+
140
+ # Marshaled Properties
141
+ @properties = {
142
+ 'id' => payload['id'],
143
+ 'url' => payload['url'],
144
+ 'links' => payload['links'],
145
+ 'last_created' => Twilio.deserialize_iso8601_datetime(payload['last_created']),
146
+ 'last_version' => payload['last_version'].to_i,
147
+ }
148
+
149
+ # Context
150
+ @instance_context = nil
151
+ @params = {'id' => id || @properties['id'], }
152
+ end
153
+
154
+ ##
155
+ # Generate an instance context for the instance, the context is capable of
156
+ # performing various actions. All instance actions are proxied to the context
157
+ # @return [SchemaContext] SchemaContext for this SchemaInstance
158
+ def context
159
+ unless @instance_context
160
+ @instance_context = SchemaContext.new(@version, @params['id'], )
161
+ end
162
+ @instance_context
163
+ end
164
+
165
+ ##
166
+ # @return [String] Schema Identifier.
167
+ def id
168
+ @properties['id']
169
+ end
170
+
171
+ ##
172
+ # @return [String] The URL of this resource.
173
+ def url
174
+ @properties['url']
175
+ end
176
+
177
+ ##
178
+ # @return [String] Nested resource URLs.
179
+ def links
180
+ @properties['links']
181
+ end
182
+
183
+ ##
184
+ # @return [Time] The date that the last schema version was created.
185
+ def last_created
186
+ @properties['last_created']
187
+ end
188
+
189
+ ##
190
+ # @return [String] Last schema version.
191
+ def last_version
192
+ @properties['last_version']
193
+ end
194
+
195
+ ##
196
+ # Fetch the SchemaInstance
197
+ # @return [SchemaInstance] Fetched SchemaInstance
198
+ def fetch
199
+ context.fetch
200
+ end
201
+
202
+ ##
203
+ # Access the versions
204
+ # @return [versions] versions
205
+ def versions
206
+ context.versions
207
+ end
208
+
209
+ ##
210
+ # Provide a user friendly representation
211
+ def to_s
212
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
213
+ "<Twilio.Events.V1.SchemaInstance #{values}>"
214
+ end
215
+
216
+ ##
217
+ # Provide a detailed, user friendly representation
218
+ def inspect
219
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
220
+ "<Twilio.Events.V1.SchemaInstance #{values}>"
221
+ end
222
+ end
223
+ end
224
+ end
225
+ end
226
+ end
@@ -0,0 +1,290 @@
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 Events < Domain
12
+ class V1 < Version
13
+ class SchemaContext < InstanceContext
14
+ ##
15
+ # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
16
+ class VersionList < ListResource
17
+ ##
18
+ # Initialize the VersionList
19
+ # @param [Version] version Version that contains the resource
20
+ # @param [String] id The unique identifier of the schema. Each schema can have
21
+ # multiple versions, that share the same id.
22
+ # @return [VersionList] VersionList
23
+ def initialize(version, id: nil)
24
+ super(version)
25
+
26
+ # Path Solution
27
+ @solution = {id: id}
28
+ @uri = "/Schemas/#{@solution[:id]}/Versions"
29
+ end
30
+
31
+ ##
32
+ # Lists VersionInstance records from the API as a list.
33
+ # Unlike stream(), this operation is eager and will load `limit` records into
34
+ # memory before returning.
35
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
36
+ # guarantees to never return more than limit. Default is no limit
37
+ # @param [Integer] page_size Number of records to fetch per request, when
38
+ # not set will use the default value of 50 records. If no page_size is defined
39
+ # but a limit is defined, stream() will attempt to read the limit with the most
40
+ # efficient page size, i.e. min(limit, 1000)
41
+ # @return [Array] Array of up to limit results
42
+ def list(limit: nil, page_size: nil)
43
+ self.stream(limit: limit, page_size: page_size).entries
44
+ end
45
+
46
+ ##
47
+ # Streams VersionInstance records from the API as an Enumerable.
48
+ # This operation lazily loads records as efficiently as possible until the limit
49
+ # is reached.
50
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
51
+ # guarantees to never return more than limit. Default is no limit.
52
+ # @param [Integer] page_size Number of records to fetch per request, when
53
+ # not set will use the default value of 50 records. If no page_size is defined
54
+ # but a limit is defined, stream() will attempt to read the limit with the most
55
+ # efficient page size, i.e. min(limit, 1000)
56
+ # @return [Enumerable] Enumerable that will yield up to limit results
57
+ def stream(limit: nil, page_size: nil)
58
+ limits = @version.read_limits(limit, page_size)
59
+
60
+ page = self.page(page_size: limits[:page_size], )
61
+
62
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
63
+ end
64
+
65
+ ##
66
+ # When passed a block, yields VersionInstance records from the API.
67
+ # This operation lazily loads records as efficiently as possible until the limit
68
+ # is reached.
69
+ def each
70
+ limits = @version.read_limits
71
+
72
+ page = self.page(page_size: limits[:page_size], )
73
+
74
+ @version.stream(page,
75
+ limit: limits[:limit],
76
+ page_limit: limits[:page_limit]).each {|x| yield x}
77
+ end
78
+
79
+ ##
80
+ # Retrieve a single page of VersionInstance records from the API.
81
+ # Request is executed immediately.
82
+ # @param [String] page_token PageToken provided by the API
83
+ # @param [Integer] page_number Page Number, this value is simply for client state
84
+ # @param [Integer] page_size Number of records to return, defaults to 50
85
+ # @return [Page] Page of VersionInstance
86
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
87
+ params = Twilio::Values.of({
88
+ 'PageToken' => page_token,
89
+ 'Page' => page_number,
90
+ 'PageSize' => page_size,
91
+ })
92
+
93
+ response = @version.page('GET', @uri, params: params)
94
+
95
+ VersionPage.new(@version, response, @solution)
96
+ end
97
+
98
+ ##
99
+ # Retrieve a single page of VersionInstance records from the API.
100
+ # Request is executed immediately.
101
+ # @param [String] target_url API-generated URL for the requested results page
102
+ # @return [Page] Page of VersionInstance
103
+ def get_page(target_url)
104
+ response = @version.domain.request(
105
+ 'GET',
106
+ target_url
107
+ )
108
+ VersionPage.new(@version, response, @solution)
109
+ end
110
+
111
+ ##
112
+ # Provide a user friendly representation
113
+ def to_s
114
+ '#<Twilio.Events.V1.VersionList>'
115
+ end
116
+ end
117
+
118
+ ##
119
+ # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
120
+ class VersionPage < Page
121
+ ##
122
+ # Initialize the VersionPage
123
+ # @param [Version] version Version that contains the resource
124
+ # @param [Response] response Response from the API
125
+ # @param [Hash] solution Path solution for the resource
126
+ # @return [VersionPage] VersionPage
127
+ def initialize(version, response, solution)
128
+ super(version, response)
129
+
130
+ # Path Solution
131
+ @solution = solution
132
+ end
133
+
134
+ ##
135
+ # Build an instance of VersionInstance
136
+ # @param [Hash] payload Payload response from the API
137
+ # @return [VersionInstance] VersionInstance
138
+ def get_instance(payload)
139
+ VersionInstance.new(@version, payload, id: @solution[:id], )
140
+ end
141
+
142
+ ##
143
+ # Provide a user friendly representation
144
+ def to_s
145
+ '<Twilio.Events.V1.VersionPage>'
146
+ end
147
+ end
148
+
149
+ ##
150
+ # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
151
+ class VersionContext < InstanceContext
152
+ ##
153
+ # Initialize the VersionContext
154
+ # @param [Version] version Version that contains the resource
155
+ # @param [String] id The unique identifier of the schema. Each schema can have
156
+ # multiple versions, that share the same id.
157
+ # @param [String] schema_version The version of the schema
158
+ # @return [VersionContext] VersionContext
159
+ def initialize(version, id, schema_version)
160
+ super(version)
161
+
162
+ # Path Solution
163
+ @solution = {id: id, schema_version: schema_version, }
164
+ @uri = "/Schemas/#{@solution[:id]}/Versions/#{@solution[:schema_version]}"
165
+ end
166
+
167
+ ##
168
+ # Fetch the VersionInstance
169
+ # @return [VersionInstance] Fetched VersionInstance
170
+ def fetch
171
+ payload = @version.fetch('GET', @uri)
172
+
173
+ VersionInstance.new(
174
+ @version,
175
+ payload,
176
+ id: @solution[:id],
177
+ schema_version: @solution[:schema_version],
178
+ )
179
+ end
180
+
181
+ ##
182
+ # Provide a user friendly representation
183
+ def to_s
184
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
185
+ "#<Twilio.Events.V1.VersionContext #{context}>"
186
+ end
187
+
188
+ ##
189
+ # Provide a detailed, user friendly representation
190
+ def inspect
191
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
192
+ "#<Twilio.Events.V1.VersionContext #{context}>"
193
+ end
194
+ end
195
+
196
+ ##
197
+ # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
198
+ class VersionInstance < InstanceResource
199
+ ##
200
+ # Initialize the VersionInstance
201
+ # @param [Version] version Version that contains the resource
202
+ # @param [Hash] payload payload that contains response from Twilio
203
+ # @param [String] id The unique identifier of the schema. Each schema can have
204
+ # multiple versions, that share the same id.
205
+ # @param [String] schema_version The version of the schema
206
+ # @return [VersionInstance] VersionInstance
207
+ def initialize(version, payload, id: nil, schema_version: nil)
208
+ super(version)
209
+
210
+ # Marshaled Properties
211
+ @properties = {
212
+ 'id' => payload['id'],
213
+ 'schema_version' => payload['schema_version'].to_i,
214
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
215
+ 'url' => payload['url'],
216
+ 'raw' => payload['raw'],
217
+ }
218
+
219
+ # Context
220
+ @instance_context = nil
221
+ @params = {'id' => id, 'schema_version' => schema_version || @properties['schema_version'], }
222
+ end
223
+
224
+ ##
225
+ # Generate an instance context for the instance, the context is capable of
226
+ # performing various actions. All instance actions are proxied to the context
227
+ # @return [VersionContext] VersionContext for this VersionInstance
228
+ def context
229
+ unless @instance_context
230
+ @instance_context = VersionContext.new(@version, @params['id'], @params['schema_version'], )
231
+ end
232
+ @instance_context
233
+ end
234
+
235
+ ##
236
+ # @return [String] The unique identifier of the schema.
237
+ def id
238
+ @properties['id']
239
+ end
240
+
241
+ ##
242
+ # @return [String] The version of this schema.
243
+ def schema_version
244
+ @properties['schema_version']
245
+ end
246
+
247
+ ##
248
+ # @return [Time] The date the schema version was created.
249
+ def date_created
250
+ @properties['date_created']
251
+ end
252
+
253
+ ##
254
+ # @return [String] The URL of this resource.
255
+ def url
256
+ @properties['url']
257
+ end
258
+
259
+ ##
260
+ # @return [String] The raw
261
+ def raw
262
+ @properties['raw']
263
+ end
264
+
265
+ ##
266
+ # Fetch the VersionInstance
267
+ # @return [VersionInstance] Fetched VersionInstance
268
+ def fetch
269
+ context.fetch
270
+ end
271
+
272
+ ##
273
+ # Provide a user friendly representation
274
+ def to_s
275
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
276
+ "<Twilio.Events.V1.VersionInstance #{values}>"
277
+ end
278
+
279
+ ##
280
+ # Provide a detailed, user friendly representation
281
+ def inspect
282
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
283
+ "<Twilio.Events.V1.VersionInstance #{values}>"
284
+ end
285
+ end
286
+ end
287
+ end
288
+ end
289
+ end
290
+ end