twilio-ruby 5.0.0 → 5.1.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 (258) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +30 -2
  3. data/CONTRIBUTING.md +159 -0
  4. data/ISSUE_TEMPLATE.md +26 -0
  5. data/LICENSE.md +1 -1
  6. data/README.md +6 -7
  7. data/VERSIONS.md +21 -49
  8. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +11 -11
  9. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +11 -11
  10. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +11 -11
  11. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +11 -11
  12. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +11 -11
  13. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +11 -11
  14. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +11 -11
  15. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +11 -11
  16. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +11 -11
  17. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +11 -11
  18. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +11 -18
  19. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +11 -11
  20. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +11 -11
  21. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +11 -11
  22. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +11 -11
  23. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +358 -0
  24. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +439 -0
  25. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +11 -11
  26. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +11 -11
  27. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +11 -11
  28. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +48 -11
  29. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +11 -11
  30. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +11 -11
  31. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +22 -12
  32. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +11 -11
  33. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +11 -11
  34. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +11 -11
  35. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +11 -11
  36. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +11 -11
  37. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +11 -11
  38. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +11 -11
  39. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +11 -18
  40. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +11 -11
  41. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +11 -11
  42. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +11 -11
  43. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +11 -11
  44. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +11 -11
  45. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +11 -11
  46. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +11 -11
  47. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +11 -11
  48. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +11 -11
  49. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +11 -11
  50. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +11 -11
  51. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +11 -11
  52. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +11 -11
  53. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +11 -11
  54. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +11 -11
  55. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +11 -11
  56. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +11 -11
  57. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +11 -11
  58. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +11 -11
  59. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +11 -11
  60. data/lib/twilio-ruby/rest/api/v2010/account.rb +11 -11
  61. data/lib/twilio-ruby/rest/chat/v1/credential.rb +11 -11
  62. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +11 -11
  63. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +11 -11
  64. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +11 -11
  65. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +11 -11
  66. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +11 -11
  67. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +11 -11
  68. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +11 -11
  69. data/lib/twilio-ruby/rest/chat/v1/service.rb +11 -11
  70. data/lib/twilio-ruby/rest/chat/v2/credential.rb +11 -11
  71. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +11 -11
  72. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +11 -11
  73. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +11 -11
  74. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +11 -11
  75. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +11 -11
  76. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +11 -11
  77. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +11 -11
  78. data/lib/twilio-ruby/rest/chat/v2/service.rb +11 -11
  79. data/lib/twilio-ruby/rest/client.rb +42 -0
  80. data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +334 -0
  81. data/lib/twilio-ruby/rest/fax/v1/fax.rb +549 -0
  82. data/lib/twilio-ruby/rest/fax/v1.rb +41 -0
  83. data/lib/twilio-ruby/rest/fax.rb +44 -0
  84. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +11 -11
  85. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +11 -11
  86. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +11 -11
  87. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +11 -11
  88. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +11 -11
  89. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +11 -11
  90. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +11 -11
  91. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +11 -11
  92. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +11 -11
  93. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +11 -11
  94. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +11 -11
  95. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +11 -11
  96. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +11 -11
  97. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +11 -11
  98. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +11 -11
  99. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +11 -11
  100. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +11 -11
  101. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +11 -11
  102. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +360 -0
  103. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +367 -0
  104. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +367 -0
  105. data/lib/twilio-ruby/rest/messaging/v1/service.rb +645 -0
  106. data/lib/twilio-ruby/rest/messaging/v1.rb +41 -0
  107. data/lib/twilio-ruby/rest/messaging.rb +44 -0
  108. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +11 -11
  109. data/lib/twilio-ruby/rest/monitor/v1/event.rb +11 -11
  110. data/lib/twilio-ruby/rest/notify/v1/credential.rb +411 -0
  111. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +438 -0
  112. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +294 -0
  113. data/lib/twilio-ruby/rest/notify/v1/service/segment.rb +230 -0
  114. data/lib/twilio-ruby/rest/notify/v1/service/user/segment_memberships.rb +262 -0
  115. data/lib/twilio-ruby/rest/notify/v1/service/user/user_binding.rb +442 -0
  116. data/lib/twilio-ruby/rest/notify/v1/service/user.rb +453 -0
  117. data/lib/twilio-ruby/rest/notify/v1/service.rb +647 -0
  118. data/lib/twilio-ruby/rest/notify/v1.rb +56 -0
  119. data/lib/twilio-ruby/rest/notify.rb +52 -0
  120. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +216 -0
  121. data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +211 -0
  122. data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +251 -0
  123. data/lib/twilio-ruby/rest/preview/bulk_exports.rb +56 -0
  124. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +570 -0
  125. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +42 -0
  126. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +309 -0
  127. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +341 -0
  128. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +349 -0
  129. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +448 -0
  130. data/lib/twilio-ruby/rest/preview/marketplace.rb +58 -0
  131. data/lib/twilio-ruby/rest/preview/proxy/service/phone_number.rb +367 -0
  132. data/lib/twilio-ruby/rest/preview/proxy/service/session/interaction.rb +437 -0
  133. data/lib/twilio-ruby/rest/preview/proxy/service/session/participant/message_interaction.rb +460 -0
  134. data/lib/twilio-ruby/rest/preview/proxy/service/session/participant.rb +514 -0
  135. data/lib/twilio-ruby/rest/preview/proxy/service/session.rb +544 -0
  136. data/lib/twilio-ruby/rest/preview/proxy/service/short_code.rb +367 -0
  137. data/lib/twilio-ruby/rest/preview/proxy/service.rb +508 -0
  138. data/lib/twilio-ruby/rest/preview/proxy.rb +41 -0
  139. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +403 -0
  140. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +453 -0
  141. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +438 -0
  142. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +403 -0
  143. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +446 -0
  144. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +440 -0
  145. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +403 -0
  146. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +446 -0
  147. data/lib/twilio-ruby/rest/preview/sync/service.rb +512 -0
  148. data/lib/twilio-ruby/rest/preview/sync.rb +41 -0
  149. data/lib/twilio-ruby/rest/preview/wireless/command.rb +390 -0
  150. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +443 -0
  151. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +244 -0
  152. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +552 -0
  153. data/lib/twilio-ruby/rest/preview/wireless.rb +71 -0
  154. data/lib/twilio-ruby/rest/preview.rb +145 -0
  155. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +11 -11
  156. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +11 -11
  157. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +11 -11
  158. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +403 -0
  159. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +453 -0
  160. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +438 -0
  161. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +403 -0
  162. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +446 -0
  163. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +440 -0
  164. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +403 -0
  165. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +446 -0
  166. data/lib/twilio-ruby/rest/sync/v1/service.rb +512 -0
  167. data/lib/twilio-ruby/rest/sync/v1.rb +41 -0
  168. data/lib/twilio-ruby/rest/sync.rb +44 -0
  169. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +11 -11
  170. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +11 -11
  171. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +143 -13
  172. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +11 -11
  173. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +11 -11
  174. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +11 -11
  175. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +11 -11
  176. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +143 -13
  177. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +11 -11
  178. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +11 -11
  179. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +11 -11
  180. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +11 -11
  181. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +11 -11
  182. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +11 -11
  183. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +11 -11
  184. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +11 -11
  185. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +11 -11
  186. data/lib/twilio-ruby/rest/video/v1/recording.rb +11 -11
  187. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +11 -11
  188. data/lib/twilio-ruby/rest/video/v1/room.rb +11 -11
  189. data/lib/twilio-ruby/rest/wireless/v1/command.rb +375 -0
  190. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +460 -0
  191. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +241 -0
  192. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +556 -0
  193. data/lib/twilio-ruby/rest/wireless/v1.rb +71 -0
  194. data/lib/twilio-ruby/rest/wireless.rb +60 -0
  195. data/lib/twilio-ruby/version.rb +1 -1
  196. data/spec/integration/api/v2010/account/call/recording_spec.rb +0 -2
  197. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +135 -0
  198. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +223 -0
  199. data/spec/integration/api/v2010/account/recording_spec.rb +0 -2
  200. data/spec/integration/fax/v1/fax/fax_media_spec.rb +126 -0
  201. data/spec/integration/fax/v1/fax_spec.rb +272 -0
  202. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +170 -0
  203. data/spec/integration/messaging/v1/service/phone_number_spec.rb +201 -0
  204. data/spec/integration/messaging/v1/service/short_code_spec.rb +173 -0
  205. data/spec/integration/messaging/v1/service_spec.rb +263 -0
  206. data/spec/integration/notify/v1/credential_spec.rb +223 -0
  207. data/spec/integration/notify/v1/service/binding_spec.rb +227 -0
  208. data/spec/integration/notify/v1/service/notification_spec.rb +97 -0
  209. data/spec/integration/notify/v1/service/segment_spec.rb +84 -0
  210. data/spec/integration/notify/v1/service/user/segment_memberships_spec.rb +118 -0
  211. data/spec/integration/notify/v1/service/user/user_binding_spec.rb +269 -0
  212. data/spec/integration/notify/v1/service/user_spec.rb +213 -0
  213. data/spec/integration/notify/v1/service_spec.rb +280 -0
  214. data/spec/integration/preview/bulk_exports/export/day_spec.rb +56 -0
  215. data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +79 -0
  216. data/spec/integration/preview/bulk_exports/export_spec.rb +43 -0
  217. data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +280 -0
  218. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +121 -0
  219. data/spec/integration/preview/marketplace/available_add_on_spec.rb +142 -0
  220. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +164 -0
  221. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +252 -0
  222. data/spec/integration/preview/proxy/service/phone_number_spec.rb +173 -0
  223. data/spec/integration/preview/proxy/service/session/interaction_spec.rb +104 -0
  224. data/spec/integration/preview/proxy/service/session/participant/message_interaction_spec.rb +164 -0
  225. data/spec/integration/preview/proxy/service/session/participant_spec.rb +226 -0
  226. data/spec/integration/preview/proxy/service/session_spec.rb +216 -0
  227. data/spec/integration/preview/proxy/service/short_code_spec.rb +173 -0
  228. data/spec/integration/preview/proxy/service_spec.rb +200 -0
  229. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +206 -0
  230. data/spec/integration/preview/sync/service/document_spec.rb +254 -0
  231. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +256 -0
  232. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +206 -0
  233. data/spec/integration/preview/sync/service/sync_list_spec.rb +207 -0
  234. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +257 -0
  235. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +206 -0
  236. data/spec/integration/preview/sync/service/sync_map_spec.rb +207 -0
  237. data/spec/integration/preview/sync/service_spec.rb +244 -0
  238. data/spec/integration/preview/wireless/command_spec.rb +169 -0
  239. data/spec/integration/preview/wireless/rate_plan_spec.rb +260 -0
  240. data/spec/integration/preview/wireless/sim/usage_spec.rb +49 -0
  241. data/spec/integration/preview/wireless/sim_spec.rb +208 -0
  242. data/spec/integration/sync/v1/service/document/document_permission_spec.rb +206 -0
  243. data/spec/integration/sync/v1/service/document_spec.rb +254 -0
  244. data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +256 -0
  245. data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +206 -0
  246. data/spec/integration/sync/v1/service/sync_list_spec.rb +207 -0
  247. data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +257 -0
  248. data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +206 -0
  249. data/spec/integration/sync/v1/service/sync_map_spec.rb +207 -0
  250. data/spec/integration/sync/v1/service_spec.rb +244 -0
  251. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +5 -5
  252. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +5 -5
  253. data/spec/integration/wireless/v1/command_spec.rb +166 -0
  254. data/spec/integration/wireless/v1/rate_plan_spec.rb +268 -0
  255. data/spec/integration/wireless/v1/sim/usage_record_spec.rb +65 -0
  256. data/spec/integration/wireless/v1/sim_spec.rb +208 -0
  257. data/twilio-ruby.gemspec +1 -3
  258. metadata +192 -2
@@ -0,0 +1,544 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Preview < Domain
10
+ class Proxy < Version
11
+ class ServiceContext < InstanceContext
12
+ ##
13
+ # 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.
14
+ class SessionList < ListResource
15
+ ##
16
+ # Initialize the SessionList
17
+ # @param [Version] version Version that contains the resource
18
+ # @param [String] service_sid The unique SID identifier of the Service.
19
+ # @return [SessionList] SessionList
20
+ def initialize(version, service_sid: nil)
21
+ super(version)
22
+
23
+ # Path Solution
24
+ @solution = {
25
+ service_sid: service_sid
26
+ }
27
+ @uri = "/Services/#{@solution[:service_sid]}/Sessions"
28
+ end
29
+
30
+ ##
31
+ # Lists SessionInstance records from the API as a list.
32
+ # Unlike stream(), this operation is eager and will load `limit` records into
33
+ # memory before returning.
34
+ # @param [String] unique_name Provides a unique and addressable name to be
35
+ # assigned to this Session, assigned by the developer, to be optionally used in
36
+ # addition to SID.
37
+ # @param [session.Status] status The Status of this Session. One of `in-progess`
38
+ # or `completed`.
39
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
40
+ # guarantees to never return more than limit. Default is no limit
41
+ # @param [Integer] page_size Number of records to fetch per request, when
42
+ # not set will use the default value of 50 records. If no page_size is defined
43
+ # but a limit is defined, stream() will attempt to read the limit with the most
44
+ # efficient page size, i.e. min(limit, 1000)
45
+ # @return [Array] Array of up to limit results
46
+ def list(unique_name: :unset, status: :unset, limit: nil, page_size: nil)
47
+ self.stream(
48
+ unique_name: unique_name,
49
+ status: status,
50
+ limit: limit,
51
+ page_size: page_size
52
+ ).entries
53
+ end
54
+
55
+ ##
56
+ # Streams SessionInstance records from the API as an Enumerable.
57
+ # This operation lazily loads records as efficiently as possible until the limit
58
+ # is reached.
59
+ # @param [String] unique_name Provides a unique and addressable name to be
60
+ # assigned to this Session, assigned by the developer, to be optionally used in
61
+ # addition to SID.
62
+ # @param [session.Status] status The Status of this Session. One of `in-progess`
63
+ # or `completed`.
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 [Enumerable] Enumerable that will yield up to limit results
71
+ def stream(unique_name: :unset, status: :unset, limit: nil, page_size: nil)
72
+ limits = @version.read_limits(limit, page_size)
73
+
74
+ page = self.page(
75
+ unique_name: unique_name,
76
+ status: status,
77
+ page_size: limits[:page_size],
78
+ )
79
+
80
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
81
+ end
82
+
83
+ ##
84
+ # When passed a block, yields SessionInstance records from the API.
85
+ # This operation lazily loads records as efficiently as possible until the limit
86
+ # is reached.
87
+ def each
88
+ limits = @version.read_limits
89
+
90
+ page = self.page(
91
+ page_size: limits[:page_size],
92
+ )
93
+
94
+ @version.stream(page,
95
+ limit: limits[:limit],
96
+ page_limit: limits[:page_limit]).each {|x| yield x}
97
+ end
98
+
99
+ ##
100
+ # Retrieve a single page of SessionInstance records from the API.
101
+ # Request is executed immediately.
102
+ # @param [String] unique_name Provides a unique and addressable name to be
103
+ # assigned to this Session, assigned by the developer, to be optionally used in
104
+ # addition to SID.
105
+ # @param [session.Status] status The Status of this Session. One of `in-progess`
106
+ # or `completed`.
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 SessionInstance
111
+ def page(unique_name: :unset, status: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
112
+ params = Twilio::Values.of({
113
+ 'UniqueName' => unique_name,
114
+ 'Status' => status,
115
+ 'PageToken' => page_token,
116
+ 'Page' => page_number,
117
+ 'PageSize' => page_size,
118
+ })
119
+ response = @version.page(
120
+ 'GET',
121
+ @uri,
122
+ params
123
+ )
124
+ SessionPage.new(@version, response, @solution)
125
+ end
126
+
127
+ ##
128
+ # Retrieve a single page of SessionInstance 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 SessionInstance
132
+ def get_page(target_url)
133
+ response = @version.domain.request(
134
+ 'GET',
135
+ target_url
136
+ )
137
+ SessionPage.new(@version, response, @solution)
138
+ end
139
+
140
+ ##
141
+ # Retrieve a single page of SessionInstance records from the API.
142
+ # Request is executed immediately.
143
+ # @param [String] unique_name Provides a unique and addressable name to be
144
+ # assigned to this Session, assigned by the developer, to be optionally used in
145
+ # addition to SID.
146
+ # @param [String] ttl How long will this session stay open, in seconds. Each new
147
+ # interaction resets this timer.
148
+ # @param [session.Status] status The Status of this Session. One of `in-progess`
149
+ # or `completed`.
150
+ # @param [String] participants The participants
151
+ # @return [SessionInstance] Newly created SessionInstance
152
+ def create(unique_name: :unset, ttl: :unset, status: :unset, participants: :unset)
153
+ data = Twilio::Values.of({
154
+ 'UniqueName' => unique_name,
155
+ 'Ttl' => ttl,
156
+ 'Status' => status,
157
+ 'Participants' => participants,
158
+ })
159
+
160
+ payload = @version.create(
161
+ 'POST',
162
+ @uri,
163
+ data: data
164
+ )
165
+
166
+ SessionInstance.new(
167
+ @version,
168
+ payload,
169
+ service_sid: @solution[:service_sid],
170
+ )
171
+ end
172
+
173
+ ##
174
+ # Provide a user friendly representation
175
+ def to_s
176
+ '#<Twilio.Preview.Proxy.SessionList>'
177
+ end
178
+ end
179
+
180
+ ##
181
+ # 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.
182
+ class SessionPage < Page
183
+ ##
184
+ # Initialize the SessionPage
185
+ # @param [Version] version Version that contains the resource
186
+ # @param [Response] response Response from the API
187
+ # @param [Hash] solution Path solution for the resource
188
+ # @return [SessionPage] SessionPage
189
+ def initialize(version, response, solution)
190
+ super(version, response)
191
+
192
+ # Path Solution
193
+ @solution = solution
194
+ end
195
+
196
+ ##
197
+ # Build an instance of SessionInstance
198
+ # @param [Hash] payload Payload response from the API
199
+ # @return [SessionInstance] SessionInstance
200
+ def get_instance(payload)
201
+ SessionInstance.new(
202
+ @version,
203
+ payload,
204
+ service_sid: @solution[:service_sid],
205
+ )
206
+ end
207
+
208
+ ##
209
+ # Provide a user friendly representation
210
+ def to_s
211
+ '<Twilio.Preview.Proxy.SessionPage>'
212
+ end
213
+ end
214
+
215
+ ##
216
+ # 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.
217
+ class SessionContext < InstanceContext
218
+ ##
219
+ # Initialize the SessionContext
220
+ # @param [Version] version Version that contains the resource
221
+ # @param [String] service_sid The unique SID identifier of the Service.
222
+ # @param [String] sid A 34 character string that uniquely identifies this Session.
223
+ # @return [SessionContext] SessionContext
224
+ def initialize(version, service_sid, sid)
225
+ super(version)
226
+
227
+ # Path Solution
228
+ @solution = {
229
+ service_sid: service_sid,
230
+ sid: sid,
231
+ }
232
+ @uri = "/Services/#{@solution[:service_sid]}/Sessions/#{@solution[:sid]}"
233
+
234
+ # Dependents
235
+ @interactions = nil
236
+ @participants = nil
237
+ end
238
+
239
+ ##
240
+ # Fetch a SessionInstance
241
+ # @return [SessionInstance] Fetched SessionInstance
242
+ def fetch
243
+ params = Twilio::Values.of({})
244
+
245
+ payload = @version.fetch(
246
+ 'GET',
247
+ @uri,
248
+ params,
249
+ )
250
+
251
+ SessionInstance.new(
252
+ @version,
253
+ payload,
254
+ service_sid: @solution[:service_sid],
255
+ sid: @solution[:sid],
256
+ )
257
+ end
258
+
259
+ ##
260
+ # Deletes the SessionInstance
261
+ # @return [Boolean] true if delete succeeds, true otherwise
262
+ def delete
263
+ @version.delete('delete', @uri)
264
+ end
265
+
266
+ ##
267
+ # Update the SessionInstance
268
+ # @param [String] unique_name Provides a unique and addressable name to be
269
+ # assigned to this Session, assigned by the developer, to be optionally used in
270
+ # addition to SID.
271
+ # @param [String] ttl How long will this session stay open, in seconds. Each new
272
+ # interaction resets this timer.
273
+ # @param [session.Status] status The Status of this Session. One of `in-progess`
274
+ # or `completed`.
275
+ # @param [String] participants The participants
276
+ # @return [SessionInstance] Updated SessionInstance
277
+ def update(unique_name: :unset, ttl: :unset, status: :unset, participants: :unset)
278
+ data = Twilio::Values.of({
279
+ 'UniqueName' => unique_name,
280
+ 'Ttl' => ttl,
281
+ 'Status' => status,
282
+ 'Participants' => participants,
283
+ })
284
+
285
+ payload = @version.update(
286
+ 'POST',
287
+ @uri,
288
+ data: data,
289
+ )
290
+
291
+ SessionInstance.new(
292
+ @version,
293
+ payload,
294
+ service_sid: @solution[:service_sid],
295
+ sid: @solution[:sid],
296
+ )
297
+ end
298
+
299
+ ##
300
+ # Access the interactions
301
+ # @return [InteractionList]
302
+ # @return [InteractionContext] if sid was passed.
303
+ def interactions(sid=:unset)
304
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
305
+
306
+ if sid != :unset
307
+ return InteractionContext.new(
308
+ @version,
309
+ @solution[:service_sid],
310
+ @solution[:sid],
311
+ sid,
312
+ )
313
+ end
314
+
315
+ unless @interactions
316
+ @interactions = InteractionList.new(
317
+ @version,
318
+ service_sid: @solution[:service_sid],
319
+ session_sid: @solution[:sid],
320
+ )
321
+ end
322
+
323
+ @interactions
324
+ end
325
+
326
+ ##
327
+ # Access the participants
328
+ # @return [ParticipantList]
329
+ # @return [ParticipantContext] if sid was passed.
330
+ def participants(sid=:unset)
331
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
332
+
333
+ if sid != :unset
334
+ return ParticipantContext.new(
335
+ @version,
336
+ @solution[:service_sid],
337
+ @solution[:sid],
338
+ sid,
339
+ )
340
+ end
341
+
342
+ unless @participants
343
+ @participants = ParticipantList.new(
344
+ @version,
345
+ service_sid: @solution[:service_sid],
346
+ session_sid: @solution[:sid],
347
+ )
348
+ end
349
+
350
+ @participants
351
+ end
352
+
353
+ ##
354
+ # Provide a user friendly representation
355
+ def to_s
356
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
357
+ "#<Twilio.Preview.Proxy.SessionContext #{context}>"
358
+ end
359
+ end
360
+
361
+ ##
362
+ # 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.
363
+ class SessionInstance < InstanceResource
364
+ ##
365
+ # Initialize the SessionInstance
366
+ # @param [Version] version Version that contains the resource
367
+ # @param [Hash] payload payload that contains response from Twilio
368
+ # @param [String] service_sid The unique SID identifier of the Service.
369
+ # @param [String] sid A 34 character string that uniquely identifies this Session.
370
+ # @return [SessionInstance] SessionInstance
371
+ def initialize(version, payload, service_sid: nil, sid: nil)
372
+ super(version)
373
+
374
+ # Marshaled Properties
375
+ @properties = {
376
+ 'sid' => payload['sid'],
377
+ 'service_sid' => payload['service_sid'],
378
+ 'account_sid' => payload['account_sid'],
379
+ 'unique_name' => payload['unique_name'],
380
+ 'ttl' => payload['ttl'].to_i,
381
+ 'status' => payload['status'],
382
+ 'start_time' => Twilio.deserialize_iso8601_datetime(payload['start_time']),
383
+ 'end_time' => Twilio.deserialize_iso8601_datetime(payload['end_time']),
384
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
385
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
386
+ 'url' => payload['url'],
387
+ 'links' => payload['links'],
388
+ }
389
+
390
+ # Context
391
+ @instance_context = nil
392
+ @params = {
393
+ 'service_sid' => service_sid,
394
+ 'sid' => sid || @properties['sid'],
395
+ }
396
+ end
397
+
398
+ ##
399
+ # Generate an instance context for the instance, the context is capable of
400
+ # performing various actions. All instance actions are proxied to the context
401
+ # @return [SessionContext] SessionContext for this SessionInstance
402
+ def context
403
+ unless @instance_context
404
+ @instance_context = SessionContext.new(
405
+ @version,
406
+ @params['service_sid'],
407
+ @params['sid'],
408
+ )
409
+ end
410
+ @instance_context
411
+ end
412
+
413
+ ##
414
+ # @return [String] A string that uniquely identifies this Session.
415
+ def sid
416
+ @properties['sid']
417
+ end
418
+
419
+ ##
420
+ # @return [String] Service Sid.
421
+ def service_sid
422
+ @properties['service_sid']
423
+ end
424
+
425
+ ##
426
+ # @return [String] Account Sid.
427
+ def account_sid
428
+ @properties['account_sid']
429
+ end
430
+
431
+ ##
432
+ # @return [String] A unique, developer assigned name of this Session.
433
+ def unique_name
434
+ @properties['unique_name']
435
+ end
436
+
437
+ ##
438
+ # @return [String] How long will this session stay open, in seconds.
439
+ def ttl
440
+ @properties['ttl']
441
+ end
442
+
443
+ ##
444
+ # @return [session.Status] The Status of this Session
445
+ def status
446
+ @properties['status']
447
+ end
448
+
449
+ ##
450
+ # @return [Time] The date this Session was started
451
+ def start_time
452
+ @properties['start_time']
453
+ end
454
+
455
+ ##
456
+ # @return [Time] The date this Session was ended
457
+ def end_time
458
+ @properties['end_time']
459
+ end
460
+
461
+ ##
462
+ # @return [Time] The date this Session was created
463
+ def date_created
464
+ @properties['date_created']
465
+ end
466
+
467
+ ##
468
+ # @return [Time] The date this Session was updated
469
+ def date_updated
470
+ @properties['date_updated']
471
+ end
472
+
473
+ ##
474
+ # @return [String] The URL of this Session.
475
+ def url
476
+ @properties['url']
477
+ end
478
+
479
+ ##
480
+ # @return [String] Nested resource URLs.
481
+ def links
482
+ @properties['links']
483
+ end
484
+
485
+ ##
486
+ # Fetch a SessionInstance
487
+ # @return [SessionInstance] Fetched SessionInstance
488
+ def fetch
489
+ context.fetch
490
+ end
491
+
492
+ ##
493
+ # Deletes the SessionInstance
494
+ # @return [Boolean] true if delete succeeds, true otherwise
495
+ def delete
496
+ context.delete
497
+ end
498
+
499
+ ##
500
+ # Update the SessionInstance
501
+ # @param [String] unique_name Provides a unique and addressable name to be
502
+ # assigned to this Session, assigned by the developer, to be optionally used in
503
+ # addition to SID.
504
+ # @param [String] ttl How long will this session stay open, in seconds. Each new
505
+ # interaction resets this timer.
506
+ # @param [session.Status] status The Status of this Session. One of `in-progess`
507
+ # or `completed`.
508
+ # @param [String] participants The participants
509
+ # @return [SessionInstance] Updated SessionInstance
510
+ def update(unique_name: :unset, ttl: :unset, status: :unset, participants: :unset)
511
+ context.update(
512
+ unique_name: unique_name,
513
+ ttl: ttl,
514
+ status: status,
515
+ participants: participants,
516
+ )
517
+ end
518
+
519
+ ##
520
+ # Access the interactions
521
+ # @return [interactions] interactions
522
+ def interactions
523
+ context.interactions
524
+ end
525
+
526
+ ##
527
+ # Access the participants
528
+ # @return [participants] participants
529
+ def participants
530
+ context.participants
531
+ end
532
+
533
+ ##
534
+ # Provide a user friendly representation
535
+ def to_s
536
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
537
+ "<Twilio.Preview.Proxy.SessionInstance #{values}>"
538
+ end
539
+ end
540
+ end
541
+ end
542
+ end
543
+ end
544
+ end