twilio-ruby 5.0.0.rc18 → 5.0.0.rc19

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 +9 -0
  3. data/lib/twilio-ruby/jwt/access_token.rb +25 -0
  4. data/lib/twilio-ruby/rest/accounts.rb +40 -0
  5. data/lib/twilio-ruby/rest/accounts/v1.rb +35 -0
  6. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +102 -0
  7. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +352 -0
  8. data/lib/twilio-ruby/rest/api.rb +30 -34
  9. data/lib/twilio-ruby/rest/api/v2010.rb +28 -32
  10. data/lib/twilio-ruby/rest/api/v2010/account.rb +132 -150
  11. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +71 -55
  12. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +29 -29
  13. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +58 -58
  14. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +37 -37
  15. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +45 -45
  16. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +39 -39
  17. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +39 -39
  18. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +39 -39
  19. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +102 -123
  20. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +33 -33
  21. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +38 -38
  22. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +52 -52
  23. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +42 -37
  24. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +83 -40
  25. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +131 -43
  26. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +42 -42
  27. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +172 -96
  28. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +404 -0
  29. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +332 -0
  30. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +62 -57
  31. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +62 -57
  32. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +62 -57
  33. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +37 -37
  34. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +78 -85
  35. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +19 -19
  36. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +47 -57
  37. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +18 -18
  38. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +18 -18
  39. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +46 -46
  40. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +40 -40
  41. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +50 -50
  42. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +36 -36
  43. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +101 -68
  44. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +372 -0
  45. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +356 -0
  46. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +42 -42
  47. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +43 -43
  48. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +37 -37
  49. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +27 -16
  50. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +48 -48
  51. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +43 -43
  52. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +65 -60
  53. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +43 -38
  54. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +43 -38
  55. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +48 -48
  56. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +44 -44
  57. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +20 -20
  58. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +42 -42
  59. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +13 -13
  60. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +78 -82
  61. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +45 -73
  62. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +45 -73
  63. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +45 -73
  64. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +45 -73
  65. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +45 -73
  66. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +45 -73
  67. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +45 -73
  68. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +45 -73
  69. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +52 -52
  70. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +18 -18
  71. data/lib/twilio-ruby/rest/chat.rb +16 -9
  72. data/lib/twilio-ruby/rest/chat/v1.rb +4 -4
  73. data/lib/twilio-ruby/rest/chat/v1/credential.rb +53 -47
  74. data/lib/twilio-ruby/rest/chat/v1/service.rb +446 -69
  75. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +114 -69
  76. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +363 -0
  77. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +99 -44
  78. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +76 -54
  79. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +45 -45
  80. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +101 -46
  81. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +223 -0
  82. data/lib/twilio-ruby/rest/chat/v2.rb +44 -0
  83. data/lib/twilio-ruby/rest/chat/v2/credential.rb +381 -0
  84. data/lib/twilio-ruby/rest/chat/v2/service.rb +633 -0
  85. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +513 -0
  86. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +363 -0
  87. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +406 -0
  88. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +418 -0
  89. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +373 -0
  90. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +433 -0
  91. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +223 -0
  92. data/lib/twilio-ruby/rest/client.rb +91 -75
  93. data/lib/twilio-ruby/rest/fax.rb +40 -0
  94. data/lib/twilio-ruby/rest/fax/v1.rb +35 -0
  95. data/lib/twilio-ruby/rest/fax/v1/fax.rb +397 -0
  96. data/lib/twilio-ruby/rest/ip_messaging.rb +16 -9
  97. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +4 -4
  98. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +53 -47
  99. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +446 -69
  100. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +114 -69
  101. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +363 -0
  102. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +99 -44
  103. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +76 -54
  104. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +45 -45
  105. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +101 -46
  106. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +223 -0
  107. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +44 -0
  108. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +381 -0
  109. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +633 -0
  110. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +513 -0
  111. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +363 -0
  112. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +406 -0
  113. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +418 -0
  114. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +373 -0
  115. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +433 -0
  116. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +223 -0
  117. data/lib/twilio-ruby/rest/lookups.rb +6 -6
  118. data/lib/twilio-ruby/rest/lookups/v1.rb +3 -3
  119. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +30 -25
  120. data/lib/twilio-ruby/rest/messaging.rb +40 -0
  121. data/lib/twilio-ruby/rest/messaging/v1.rb +35 -0
  122. data/lib/twilio-ruby/rest/messaging/v1/service.rb +524 -0
  123. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +331 -0
  124. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +336 -0
  125. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +336 -0
  126. data/lib/twilio-ruby/rest/monitor.rb +7 -7
  127. data/lib/twilio-ruby/rest/monitor/v1.rb +4 -4
  128. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +57 -85
  129. data/lib/twilio-ruby/rest/monitor/v1/event.rb +63 -81
  130. data/lib/twilio-ruby/rest/notify.rb +7 -7
  131. data/lib/twilio-ruby/rest/notify/v1.rb +4 -4
  132. data/lib/twilio-ruby/rest/notify/v1/credential.rb +53 -47
  133. data/lib/twilio-ruby/rest/notify/v1/service.rb +148 -60
  134. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +70 -86
  135. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +47 -33
  136. data/lib/twilio-ruby/rest/notify/v1/service/segment.rb +206 -0
  137. data/lib/twilio-ruby/rest/notify/v1/service/user.rb +418 -0
  138. data/lib/twilio-ruby/rest/notify/v1/service/user/segment_memberships.rb +247 -0
  139. data/lib/twilio-ruby/rest/notify/v1/service/user/user_binding.rb +405 -0
  140. data/lib/twilio-ruby/rest/preview.rb +34 -19
  141. data/lib/twilio-ruby/rest/preview/marketplace.rb +44 -0
  142. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +310 -0
  143. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +284 -0
  144. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +411 -0
  145. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +322 -0
  146. data/lib/twilio-ruby/rest/preview/sync.rb +3 -3
  147. data/lib/twilio-ruby/rest/preview/sync/service.rb +72 -61
  148. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +85 -46
  149. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +377 -0
  150. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +79 -47
  151. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +46 -46
  152. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +377 -0
  153. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +79 -47
  154. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +46 -46
  155. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +377 -0
  156. data/lib/twilio-ruby/rest/preview/wireless.rb +12 -12
  157. data/lib/twilio-ruby/rest/preview/wireless/command.rb +68 -45
  158. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +137 -73
  159. data/lib/twilio-ruby/rest/preview/wireless/{device.rb → sim.rb} +127 -150
  160. data/lib/twilio-ruby/rest/preview/wireless/{device → sim}/usage.rb +49 -49
  161. data/lib/twilio-ruby/rest/pricing.rb +8 -8
  162. data/lib/twilio-ruby/rest/pricing/v1.rb +5 -5
  163. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +16 -16
  164. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +33 -33
  165. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +16 -16
  166. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +33 -38
  167. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +18 -18
  168. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +33 -33
  169. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +26 -26
  170. data/lib/twilio-ruby/rest/taskrouter.rb +6 -6
  171. data/lib/twilio-ruby/rest/taskrouter/v1.rb +3 -3
  172. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +103 -82
  173. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +48 -43
  174. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +42 -42
  175. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +114 -75
  176. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +50 -40
  177. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +35 -35
  178. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +110 -78
  179. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +31 -30
  180. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +24 -24
  181. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +71 -61
  182. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +50 -40
  183. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +45 -45
  184. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +28 -23
  185. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +28 -23
  186. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +60 -50
  187. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +29 -24
  188. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +34 -29
  189. data/lib/twilio-ruby/rest/trunking.rb +6 -6
  190. data/lib/twilio-ruby/rest/trunking/v1.rb +3 -3
  191. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +67 -67
  192. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +39 -39
  193. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +39 -39
  194. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +47 -47
  195. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +58 -58
  196. data/lib/twilio-ruby/rest/video.rb +44 -0
  197. data/lib/twilio-ruby/rest/video/v1.rb +44 -0
  198. data/lib/twilio-ruby/rest/video/v1/recording.rb +341 -0
  199. data/lib/twilio-ruby/rest/video/v1/room.rb +411 -0
  200. data/lib/twilio-ruby/version.rb +1 -1
  201. data/spec/integration/accounts/v1/credential/public_key_spec.rb +226 -0
  202. data/spec/integration/accounts/v1/credential_spec.rb +10 -0
  203. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +7 -7
  204. data/spec/integration/api/v2010/account/address_spec.rb +32 -24
  205. data/spec/integration/api/v2010/account/application_spec.rb +24 -24
  206. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +11 -11
  207. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +7 -7
  208. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +7 -7
  209. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +7 -7
  210. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +11 -11
  211. data/spec/integration/api/v2010/account/call/feedback_spec.rb +14 -14
  212. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +14 -14
  213. data/spec/integration/api/v2010/account/call/notification_spec.rb +15 -15
  214. data/spec/integration/api/v2010/account/call/recording_spec.rb +15 -15
  215. data/spec/integration/api/v2010/account/call_spec.rb +24 -24
  216. data/spec/integration/api/v2010/account/conference/participant_spec.rb +97 -25
  217. data/spec/integration/api/v2010/account/conference_spec.rb +56 -17
  218. data/spec/integration/api/v2010/account/connect_app_spec.rb +15 -15
  219. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +135 -0
  220. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +223 -0
  221. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +12 -12
  222. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +12 -12
  223. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +12 -12
  224. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +32 -24
  225. data/spec/integration/api/v2010/account/key_spec.rb +19 -19
  226. data/spec/integration/api/v2010/account/message/feedback_spec.rb +25 -3
  227. data/spec/integration/api/v2010/account/message/media_spec.rb +15 -15
  228. data/spec/integration/api/v2010/account/message_spec.rb +34 -27
  229. data/spec/integration/api/v2010/account/new_key_spec.rb +5 -5
  230. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +5 -5
  231. data/spec/integration/api/v2010/account/notification_spec.rb +15 -15
  232. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +19 -19
  233. data/spec/integration/api/v2010/account/queue/member_spec.rb +15 -15
  234. data/spec/integration/api/v2010/account/queue_spec.rb +30 -27
  235. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +175 -0
  236. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +166 -0
  237. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +15 -15
  238. data/spec/integration/api/v2010/account/recording_spec.rb +16 -16
  239. data/spec/integration/api/v2010/account/short_code_spec.rb +15 -15
  240. data/spec/integration/api/v2010/account/signing_key_spec.rb +19 -19
  241. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +24 -24
  242. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +24 -24
  243. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +20 -20
  244. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +20 -20
  245. data/spec/integration/api/v2010/account/sip/domain_spec.rb +24 -24
  246. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +24 -24
  247. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +24 -24
  248. data/spec/integration/api/v2010/account/sip_spec.rb +1 -1
  249. data/spec/integration/api/v2010/account/token_spec.rb +6 -6
  250. data/spec/integration/api/v2010/account/transcription_spec.rb +15 -15
  251. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +7 -7
  252. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +7 -7
  253. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +7 -7
  254. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +7 -7
  255. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +7 -7
  256. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +7 -7
  257. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +7 -7
  258. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +7 -7
  259. data/spec/integration/api/v2010/account/usage/record_spec.rb +7 -7
  260. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +27 -27
  261. data/spec/integration/api/v2010/account/usage_spec.rb +1 -1
  262. data/spec/integration/api/v2010/account/validation_request_spec.rb +23 -3
  263. data/spec/integration/api/v2010/account_spec.rb +20 -24
  264. data/spec/integration/chat/v1/credential_spec.rb +31 -31
  265. data/spec/integration/chat/v1/service/channel/invite_spec.rb +210 -0
  266. data/spec/integration/chat/v1/service/channel/member_spec.rb +102 -31
  267. data/spec/integration/chat/v1/service/channel/message_spec.rb +210 -16
  268. data/spec/integration/chat/v1/service/channel_spec.rb +71 -55
  269. data/spec/integration/chat/v1/service/role_spec.rb +33 -33
  270. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +92 -0
  271. data/spec/integration/chat/v1/service/user_spec.rb +57 -33
  272. data/spec/integration/chat/v1/service_spec.rb +142 -106
  273. data/spec/integration/chat/v2/credential_spec.rb +223 -0
  274. data/spec/integration/chat/v2/service/channel/invite_spec.rb +210 -0
  275. data/spec/integration/chat/v2/service/channel/member_spec.rb +284 -0
  276. data/spec/integration/chat/v2/service/channel/message_spec.rb +294 -0
  277. data/spec/integration/chat/v2/service/channel_spec.rb +275 -0
  278. data/spec/integration/chat/v2/service/role_spec.rb +263 -0
  279. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +92 -0
  280. data/spec/integration/chat/v2/service/user_spec.rb +266 -0
  281. data/spec/integration/chat/v2/service_spec.rb +325 -0
  282. data/spec/integration/fax/v1/fax_spec.rb +231 -0
  283. data/spec/integration/ip_messaging/v1/credential_spec.rb +31 -31
  284. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +210 -0
  285. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +102 -31
  286. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +210 -16
  287. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +71 -55
  288. data/spec/integration/ip_messaging/v1/service/role_spec.rb +33 -33
  289. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +92 -0
  290. data/spec/integration/ip_messaging/v1/service/user_spec.rb +57 -33
  291. data/spec/integration/ip_messaging/v1/service_spec.rb +142 -106
  292. data/spec/integration/ip_messaging/v2/credential_spec.rb +223 -0
  293. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +210 -0
  294. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +284 -0
  295. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +294 -0
  296. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +275 -0
  297. data/spec/integration/ip_messaging/v2/service/role_spec.rb +263 -0
  298. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +92 -0
  299. data/spec/integration/ip_messaging/v2/service/user_spec.rb +266 -0
  300. data/spec/integration/ip_messaging/v2/service_spec.rb +325 -0
  301. data/spec/integration/lookups/v1/phone_number_spec.rb +5 -5
  302. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +170 -0
  303. data/spec/integration/messaging/v1/service/phone_number_spec.rb +173 -0
  304. data/spec/integration/messaging/v1/service/short_code_spec.rb +173 -0
  305. data/spec/integration/messaging/v1/service_spec.rb +243 -0
  306. data/spec/integration/monitor/v1/alert_spec.rb +57 -57
  307. data/spec/integration/monitor/v1/event_spec.rb +11 -11
  308. data/spec/integration/notify/v1/credential_spec.rb +23 -23
  309. data/spec/integration/notify/v1/service/binding_spec.rb +88 -71
  310. data/spec/integration/notify/v1/service/notification_spec.rb +7 -5
  311. data/spec/integration/notify/v1/service/segment_spec.rb +84 -0
  312. data/spec/integration/notify/v1/service/user/segment_memberships_spec.rb +118 -0
  313. data/spec/integration/notify/v1/service/user/user_binding_spec.rb +235 -0
  314. data/spec/integration/notify/v1/service/user_spec.rb +213 -0
  315. data/spec/integration/notify/v1/service_spec.rb +50 -30
  316. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +121 -0
  317. data/spec/integration/preview/marketplace/available_add_on_spec.rb +142 -0
  318. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +164 -0
  319. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +252 -0
  320. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +206 -0
  321. data/spec/integration/preview/sync/service/document_spec.rb +179 -17
  322. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +167 -11
  323. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +206 -0
  324. data/spec/integration/preview/sync/service/sync_list_spec.rb +143 -9
  325. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +167 -11
  326. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +206 -0
  327. data/spec/integration/preview/sync/service/sync_map_spec.rb +143 -9
  328. data/spec/integration/preview/sync/service_spec.rb +171 -11
  329. data/spec/integration/preview/wireless/command_spec.rb +120 -9
  330. data/spec/integration/preview/wireless/rate_plan_spec.rb +228 -7
  331. data/spec/integration/preview/wireless/sim/usage_spec.rb +49 -0
  332. data/spec/integration/preview/wireless/sim_spec.rb +184 -0
  333. data/spec/integration/pricing/v1/messaging/country_spec.rb +101 -5
  334. data/spec/integration/pricing/v1/messaging_spec.rb +1 -1
  335. data/spec/integration/pricing/v1/phone_number/country_spec.rb +11 -11
  336. data/spec/integration/pricing/v1/phone_number_spec.rb +1 -1
  337. data/spec/integration/pricing/v1/voice/country_spec.rb +11 -11
  338. data/spec/integration/pricing/v1/voice/number_spec.rb +5 -5
  339. data/spec/integration/pricing/v1/voice_spec.rb +1 -1
  340. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +29 -33
  341. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +11 -11
  342. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +15 -15
  343. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +11 -11
  344. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +12 -10
  345. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +17 -16
  346. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +52 -36
  347. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +101 -46
  348. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +15 -15
  349. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +15 -15
  350. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +6 -5
  351. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +6 -5
  352. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +39 -27
  353. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +13 -11
  354. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +47 -35
  355. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +10 -8
  356. data/spec/integration/taskrouter/v1/workspace_spec.rb +28 -24
  357. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +20 -20
  358. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +62 -62
  359. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +23 -23
  360. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +19 -19
  361. data/spec/integration/trunking/v1/trunk_spec.rb +23 -23
  362. data/spec/integration/video/v1/recording_spec.rb +120 -0
  363. data/spec/integration/video/v1/room_spec.rb +225 -0
  364. data/spec/jwt/access_token_spec.rb +22 -0
  365. metadata +158 -12
  366. data/lib/twilio-ruby/rest/api/v2010/account/sandbox.rb +0 -287
  367. data/spec/integration/api/v2010/account/sandbox_spec.rb +0 -99
  368. data/spec/integration/preview/wireless/device/usage_spec.rb +0 -25
  369. data/spec/integration/preview/wireless/device_spec.rb +0 -72
@@ -0,0 +1,44 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Video < Domain
10
+ ##
11
+ # Initialize the Video Domain
12
+ def initialize(twilio)
13
+ super
14
+
15
+ @base_url = 'https://video.twilio.com'
16
+ @host = 'video.twilio.com'
17
+ @port = 443
18
+
19
+ # Versions
20
+ @v1 = nil
21
+ end
22
+
23
+ ##
24
+ # Version v1 of video
25
+ def v1
26
+ @v1 ||= V1.new self
27
+ end
28
+
29
+ def recordings
30
+ self.v1.recordings
31
+ end
32
+
33
+ def rooms
34
+ self.v1.rooms
35
+ end
36
+
37
+ ##
38
+ # Provide a user friendly representation
39
+ def to_s
40
+ '#<Twilio::REST::Video>'
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,44 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Video
10
+ class V1 < Version
11
+ ##
12
+ # Initialize the V1 version of Video
13
+ def initialize(domain)
14
+ super
15
+ @version = 'v1'
16
+ @recordings = nil
17
+ @rooms = nil
18
+ end
19
+
20
+ def recordings(sid=:unset)
21
+ if sid == :unset
22
+ @recordings ||= RecordingList.new self
23
+ else
24
+ RecordingContext.new(self, sid)
25
+ end
26
+ end
27
+
28
+ def rooms(sid=:unset)
29
+ if sid == :unset
30
+ @rooms ||= RoomList.new self
31
+ else
32
+ RoomContext.new(self, sid)
33
+ end
34
+ end
35
+
36
+ ##
37
+ # Provide a user friendly representation
38
+ def to_s
39
+ '<Twilio::REST::Video::V1>'
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,341 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Video < Domain
10
+ class V1 < Version
11
+ class RecordingList < ListResource
12
+ ##
13
+ # Initialize the RecordingList
14
+ # @param [Version] version Version that contains the resource
15
+ # @return [RecordingList] RecordingList
16
+ def initialize(version)
17
+ super(version)
18
+
19
+ # Path Solution
20
+ @solution = {}
21
+ @uri = "/Recordings"
22
+ end
23
+
24
+ ##
25
+ # Lists RecordingInstance records from the API as a list.
26
+ # Unlike stream(), this operation is eager and will load `limit` records into
27
+ # memory before returning.
28
+ # @param [recording.Status] status The status
29
+ # @param [String] source_sid The source_sid
30
+ # @param [String] grouping_sid The grouping_sid
31
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
32
+ # guarantees to never return more than limit. Default is no limit
33
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
34
+ # the default value of 50 records. If no page_size is defined
35
+ # but a limit is defined, stream() will attempt to read the
36
+ # limit with the most efficient page size, i.e. min(limit, 1000)
37
+ # @return [Array] Array of up to limit results
38
+ def list(status: nil, source_sid: nil, grouping_sid: nil, limit: nil, page_size: nil)
39
+ self.stream(
40
+ status: status,
41
+ source_sid: source_sid,
42
+ grouping_sid: grouping_sid,
43
+ limit: limit,
44
+ page_size: page_size
45
+ ).entries
46
+ end
47
+
48
+ ##
49
+ # Streams RecordingInstance records from the API as an Enumerable.
50
+ # This operation lazily loads records as efficiently as possible until the limit
51
+ # is reached.
52
+ # @param [recording.Status] status The status
53
+ # @param [String] source_sid The source_sid
54
+ # @param [String] grouping_sid The grouping_sid
55
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
56
+ # guarantees to never return more than limit. Default is no limit
57
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
58
+ # the default value of 50 records. If no page_size is defined
59
+ # but a limit is defined, stream() will attempt to read the
60
+ # limit with the most efficient page size, i.e. min(limit, 1000)
61
+ # @return [Enumerable] Enumerable that will yield up to limit results
62
+ def stream(status: nil, source_sid: nil, grouping_sid: nil, limit: nil, page_size: nil)
63
+ limits = @version.read_limits(limit, page_size)
64
+
65
+ page = self.page(
66
+ status: status,
67
+ source_sid: source_sid,
68
+ grouping_sid: grouping_sid,
69
+ page_size: limits[:page_size],
70
+ )
71
+
72
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
73
+ end
74
+
75
+ ##
76
+ # When passed a block, yields RecordingInstance records from the API.
77
+ # This operation lazily loads records as efficiently as possible until the limit
78
+ # is reached.
79
+ # @param [recording.Status] status The status
80
+ # @param [String] source_sid The source_sid
81
+ # @param [String] grouping_sid The grouping_sid
82
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
83
+ # guarantees to never return more than limit. Default is no limit
84
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
85
+ # the default value of 50 records. If no page_size is defined
86
+ # but a limit is defined, stream() will attempt to read the
87
+ # limit with the most efficient page size, i.e. min(limit, 1000)
88
+ def each
89
+ limits = @version.read_limits
90
+
91
+ page = self.page(
92
+ page_size: limits[:page_size],
93
+ )
94
+
95
+ @version.stream(page,
96
+ limit: limits[:limit],
97
+ page_limit: limits[:page_limit]).each {|x| yield x}
98
+ end
99
+
100
+ ##
101
+ # Retrieve a single page of RecordingInstance records from the API.
102
+ # Request is executed immediately.
103
+ # @param [recording.Status] status The status
104
+ # @param [String] source_sid The source_sid
105
+ # @param [String] grouping_sid The grouping_sid
106
+ # @param [String] page_token PageToken provided by the API
107
+ # @param [Integer] page_number Page Number, this value is simply for client state
108
+ # @param [Integer] page_size Number of records to return, defaults to 50
109
+ # @return [Page] Page of RecordingInstance
110
+ def page(status: nil, source_sid: nil, grouping_sid: nil, page_token: nil, page_number: nil, page_size: nil)
111
+ params = {
112
+ 'Status' => status,
113
+ 'SourceSid' => source_sid,
114
+ 'GroupingSid' => grouping_sid,
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
+ return RecordingPage.new(@version, response, @solution)
125
+ end
126
+
127
+ ##
128
+ # Provide a user friendly representation
129
+ def to_s
130
+ '#<Twilio.Video.V1.RecordingList>'
131
+ end
132
+ end
133
+
134
+ class RecordingPage < Page
135
+ ##
136
+ # Initialize the RecordingPage
137
+ # @param [Version] version Version that contains the resource
138
+ # @param [Response] response Response from the API
139
+ # @param [Hash] solution Path solution for the resource
140
+ # @return [RecordingPage] RecordingPage
141
+ def initialize(version, response, solution)
142
+ super(version, response)
143
+
144
+ # Path Solution
145
+ @solution = solution
146
+ end
147
+
148
+ ##
149
+ # Build an instance of RecordingInstance
150
+ # @param [Hash] payload Payload response from the API
151
+ # @return [RecordingInstance] RecordingInstance
152
+ def get_instance(payload)
153
+ return RecordingInstance.new(
154
+ @version,
155
+ payload,
156
+ )
157
+ end
158
+
159
+ ##
160
+ # Provide a user friendly representation
161
+ def to_s
162
+ '<Twilio.Video.V1.RecordingPage>'
163
+ end
164
+ end
165
+
166
+ class RecordingContext < InstanceContext
167
+ ##
168
+ # Initialize the RecordingContext
169
+ # @param [Version] version Version that contains the resource
170
+ # @param [String] sid The sid
171
+ # @return [RecordingContext] RecordingContext
172
+ def initialize(version, sid)
173
+ super(version)
174
+
175
+ # Path Solution
176
+ @solution = {
177
+ sid: sid,
178
+ }
179
+ @uri = "/Recordings/#{@solution[:sid]}"
180
+ end
181
+
182
+ ##
183
+ # Fetch a RecordingInstance
184
+ # @return [RecordingInstance] Fetched RecordingInstance
185
+ def fetch
186
+ params = {}
187
+
188
+ payload = @version.fetch(
189
+ 'GET',
190
+ @uri,
191
+ params,
192
+ )
193
+
194
+ return RecordingInstance.new(
195
+ @version,
196
+ payload,
197
+ sid: @solution[:sid],
198
+ )
199
+ end
200
+
201
+ ##
202
+ # Deletes the RecordingInstance
203
+ # @return [Boolean] true if delete succeeds, true otherwise
204
+ def delete
205
+ return @version.delete('delete', @uri)
206
+ end
207
+
208
+ ##
209
+ # Provide a user friendly representation
210
+ def to_s
211
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
212
+ "#<Twilio.Video.V1.RecordingContext #{context}>"
213
+ end
214
+ end
215
+
216
+ class RecordingInstance < InstanceResource
217
+ ##
218
+ # Initialize the RecordingInstance
219
+ # @param [Version] version Version that contains the resource
220
+ # @param [Hash] payload payload that contains response from Twilio
221
+ # @param [String] sid The sid
222
+ # @return [RecordingInstance] RecordingInstance
223
+ def initialize(version, payload, sid: nil)
224
+ super(version)
225
+
226
+ # Marshaled Properties
227
+ @properties = {
228
+ 'account_sid' => payload['account_sid'],
229
+ 'status' => payload['status'],
230
+ 'date_created' => Twilio.deserialize_iso8601(payload['date_created']),
231
+ 'sid' => payload['sid'],
232
+ 'source_sid' => payload['source_sid'],
233
+ 'size' => payload['size'] == nil ? payload['size'] : payload['size'].to_i,
234
+ 'url' => payload['url'],
235
+ 'type' => payload['type'],
236
+ 'duration' => payload['duration'] == nil ? payload['duration'] : payload['duration'].to_i,
237
+ 'container_format' => payload['container_format'],
238
+ 'codec' => payload['codec'],
239
+ 'grouping_sids' => payload['grouping_sids'],
240
+ 'links' => payload['links'],
241
+ }
242
+
243
+ # Context
244
+ @instance_context = nil
245
+ @params = {
246
+ 'sid' => sid || @properties['sid'],
247
+ }
248
+ end
249
+
250
+ ##
251
+ # Generate an instance context for the instance, the context is capable of
252
+ # performing various actions. All instance actions are proxied to the context
253
+ # @param [Version] version Version that contains the resource
254
+ # @return [RecordingContext] RecordingContext for this RecordingInstance
255
+ def context
256
+ unless @instance_context
257
+ @instance_context = RecordingContext.new(
258
+ @version,
259
+ @params['sid'],
260
+ )
261
+ end
262
+ @instance_context
263
+ end
264
+
265
+ def account_sid
266
+ @properties['account_sid']
267
+ end
268
+
269
+ def status
270
+ @properties['status']
271
+ end
272
+
273
+ def date_created
274
+ @properties['date_created']
275
+ end
276
+
277
+ def sid
278
+ @properties['sid']
279
+ end
280
+
281
+ def source_sid
282
+ @properties['source_sid']
283
+ end
284
+
285
+ def size
286
+ @properties['size']
287
+ end
288
+
289
+ def url
290
+ @properties['url']
291
+ end
292
+
293
+ def type
294
+ @properties['type']
295
+ end
296
+
297
+ def duration
298
+ @properties['duration']
299
+ end
300
+
301
+ def container_format
302
+ @properties['container_format']
303
+ end
304
+
305
+ def codec
306
+ @properties['codec']
307
+ end
308
+
309
+ def grouping_sids
310
+ @properties['grouping_sids']
311
+ end
312
+
313
+ def links
314
+ @properties['links']
315
+ end
316
+
317
+ ##
318
+ # Fetch a RecordingInstance
319
+ # @return [RecordingInstance] Fetched RecordingInstance
320
+ def fetch
321
+ context.fetch
322
+ end
323
+
324
+ ##
325
+ # Deletes the RecordingInstance
326
+ # @return [Boolean] true if delete succeeds, true otherwise
327
+ def delete
328
+ context.delete
329
+ end
330
+
331
+ ##
332
+ # Provide a user friendly representation
333
+ def to_s
334
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
335
+ "<Twilio.Video.V1.RecordingInstance #{values}>"
336
+ end
337
+ end
338
+ end
339
+ end
340
+ end
341
+ end
@@ -0,0 +1,411 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Video < Domain
10
+ class V1 < Version
11
+ class RoomList < ListResource
12
+ ##
13
+ # Initialize the RoomList
14
+ # @param [Version] version Version that contains the resource
15
+ # @return [RoomList] RoomList
16
+ def initialize(version)
17
+ super(version)
18
+
19
+ # Path Solution
20
+ @solution = {}
21
+ @uri = "/Rooms"
22
+ end
23
+
24
+ ##
25
+ # Retrieve a single page of RoomInstance records from the API.
26
+ # Request is executed immediately.
27
+ # @param [Boolean] enable_turn The enable_turn
28
+ # @param [room.RoomType] type The type
29
+ # @param [String] unique_name The unique_name
30
+ # @param [String] status_callback The status_callback
31
+ # @param [String] status_callback_method The status_callback_method
32
+ # @param [String] max_participants The max_participants
33
+ # @param [Boolean] record_participants_on_connect The
34
+ # record_participants_on_connect
35
+ # @return [RoomInstance] Newly created RoomInstance
36
+ def create(enable_turn: nil, type: nil, unique_name: nil, status_callback: nil, status_callback_method: nil, max_participants: nil, record_participants_on_connect: nil)
37
+ data = {
38
+ 'EnableTurn' => enable_turn,
39
+ 'Type' => type,
40
+ 'UniqueName' => unique_name,
41
+ 'StatusCallback' => status_callback,
42
+ 'StatusCallbackMethod' => status_callback_method,
43
+ 'MaxParticipants' => max_participants,
44
+ 'RecordParticipantsOnConnect' => record_participants_on_connect,
45
+ }
46
+
47
+ payload = @version.create(
48
+ 'POST',
49
+ @uri,
50
+ data: data
51
+ )
52
+
53
+ return RoomInstance.new(
54
+ @version,
55
+ payload,
56
+ )
57
+ end
58
+
59
+ ##
60
+ # Lists RoomInstance records from the API as a list.
61
+ # Unlike stream(), this operation is eager and will load `limit` records into
62
+ # memory before returning.
63
+ # @param [room.RoomStatus] status The status
64
+ # @param [String] unique_name The unique_name
65
+ # @param [Time] date_created_after The date_created_after
66
+ # @param [Time] date_created_before The date_created_before
67
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
68
+ # guarantees to never return more than limit. Default is no limit
69
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
70
+ # the default value of 50 records. If no page_size is defined
71
+ # but a limit is defined, stream() will attempt to read the
72
+ # limit with the most efficient page size, i.e. min(limit, 1000)
73
+ # @return [Array] Array of up to limit results
74
+ def list(status: nil, unique_name: nil, date_created_after: nil, date_created_before: nil, limit: nil, page_size: nil)
75
+ self.stream(
76
+ status: status,
77
+ unique_name: unique_name,
78
+ date_created_after: date_created_after,
79
+ date_created_before: date_created_before,
80
+ limit: limit,
81
+ page_size: page_size
82
+ ).entries
83
+ end
84
+
85
+ ##
86
+ # Streams RoomInstance records from the API as an Enumerable.
87
+ # This operation lazily loads records as efficiently as possible until the limit
88
+ # is reached.
89
+ # @param [room.RoomStatus] status The status
90
+ # @param [String] unique_name The unique_name
91
+ # @param [Time] date_created_after The date_created_after
92
+ # @param [Time] date_created_before The date_created_before
93
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
94
+ # guarantees to never return more than limit. Default is no limit
95
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
96
+ # the default value of 50 records. If no page_size is defined
97
+ # but a limit is defined, stream() will attempt to read the
98
+ # limit with the most efficient page size, i.e. min(limit, 1000)
99
+ # @return [Enumerable] Enumerable that will yield up to limit results
100
+ def stream(status: nil, unique_name: nil, date_created_after: nil, date_created_before: nil, limit: nil, page_size: nil)
101
+ limits = @version.read_limits(limit, page_size)
102
+
103
+ page = self.page(
104
+ status: status,
105
+ unique_name: unique_name,
106
+ date_created_after: date_created_after,
107
+ date_created_before: date_created_before,
108
+ page_size: limits[:page_size],
109
+ )
110
+
111
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
112
+ end
113
+
114
+ ##
115
+ # When passed a block, yields RoomInstance records from the API.
116
+ # This operation lazily loads records as efficiently as possible until the limit
117
+ # is reached.
118
+ # @param [room.RoomStatus] status The status
119
+ # @param [String] unique_name The unique_name
120
+ # @param [Time] date_created_after The date_created_after
121
+ # @param [Time] date_created_before The date_created_before
122
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
123
+ # guarantees to never return more than limit. Default is no limit
124
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
125
+ # the default value of 50 records. If no page_size is defined
126
+ # but a limit is defined, stream() will attempt to read the
127
+ # limit with the most efficient page size, i.e. min(limit, 1000)
128
+ def each
129
+ limits = @version.read_limits
130
+
131
+ page = self.page(
132
+ page_size: limits[:page_size],
133
+ )
134
+
135
+ @version.stream(page,
136
+ limit: limits[:limit],
137
+ page_limit: limits[:page_limit]).each {|x| yield x}
138
+ end
139
+
140
+ ##
141
+ # Retrieve a single page of RoomInstance records from the API.
142
+ # Request is executed immediately.
143
+ # @param [room.RoomStatus] status The status
144
+ # @param [String] unique_name The unique_name
145
+ # @param [Time] date_created_after The date_created_after
146
+ # @param [Time] date_created_before The date_created_before
147
+ # @param [String] page_token PageToken provided by the API
148
+ # @param [Integer] page_number Page Number, this value is simply for client state
149
+ # @param [Integer] page_size Number of records to return, defaults to 50
150
+ # @return [Page] Page of RoomInstance
151
+ def page(status: nil, unique_name: nil, date_created_after: nil, date_created_before: nil, page_token: nil, page_number: nil, page_size: nil)
152
+ params = {
153
+ 'Status' => status,
154
+ 'UniqueName' => unique_name,
155
+ 'DateCreatedAfter' => Twilio.serialize_iso8601(date_created_after),
156
+ 'DateCreatedBefore' => Twilio.serialize_iso8601(date_created_before),
157
+ 'PageToken' => page_token,
158
+ 'Page' => page_number,
159
+ 'PageSize' => page_size,
160
+ }
161
+ response = @version.page(
162
+ 'GET',
163
+ @uri,
164
+ params
165
+ )
166
+ return RoomPage.new(@version, response, @solution)
167
+ end
168
+
169
+ ##
170
+ # Provide a user friendly representation
171
+ def to_s
172
+ '#<Twilio.Video.V1.RoomList>'
173
+ end
174
+ end
175
+
176
+ class RoomPage < Page
177
+ ##
178
+ # Initialize the RoomPage
179
+ # @param [Version] version Version that contains the resource
180
+ # @param [Response] response Response from the API
181
+ # @param [Hash] solution Path solution for the resource
182
+ # @return [RoomPage] RoomPage
183
+ def initialize(version, response, solution)
184
+ super(version, response)
185
+
186
+ # Path Solution
187
+ @solution = solution
188
+ end
189
+
190
+ ##
191
+ # Build an instance of RoomInstance
192
+ # @param [Hash] payload Payload response from the API
193
+ # @return [RoomInstance] RoomInstance
194
+ def get_instance(payload)
195
+ return RoomInstance.new(
196
+ @version,
197
+ payload,
198
+ )
199
+ end
200
+
201
+ ##
202
+ # Provide a user friendly representation
203
+ def to_s
204
+ '<Twilio.Video.V1.RoomPage>'
205
+ end
206
+ end
207
+
208
+ class RoomContext < InstanceContext
209
+ ##
210
+ # Initialize the RoomContext
211
+ # @param [Version] version Version that contains the resource
212
+ # @param [String] sid The sid
213
+ # @return [RoomContext] RoomContext
214
+ def initialize(version, sid)
215
+ super(version)
216
+
217
+ # Path Solution
218
+ @solution = {
219
+ sid: sid,
220
+ }
221
+ @uri = "/Rooms/#{@solution[:sid]}"
222
+ end
223
+
224
+ ##
225
+ # Fetch a RoomInstance
226
+ # @return [RoomInstance] Fetched RoomInstance
227
+ def fetch
228
+ params = {}
229
+
230
+ payload = @version.fetch(
231
+ 'GET',
232
+ @uri,
233
+ params,
234
+ )
235
+
236
+ return RoomInstance.new(
237
+ @version,
238
+ payload,
239
+ sid: @solution[:sid],
240
+ )
241
+ end
242
+
243
+ ##
244
+ # Update the RoomInstance
245
+ # @param [room.RoomStatus] status The status
246
+ # @return [RoomInstance] Updated RoomInstance
247
+ def update(status: nil)
248
+ data = {
249
+ 'Status' => status,
250
+ }
251
+
252
+ payload = @version.update(
253
+ 'POST',
254
+ @uri,
255
+ data: data,
256
+ )
257
+
258
+ return RoomInstance.new(
259
+ @version,
260
+ payload,
261
+ sid: @solution[:sid],
262
+ )
263
+ end
264
+
265
+ ##
266
+ # Provide a user friendly representation
267
+ def to_s
268
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
269
+ "#<Twilio.Video.V1.RoomContext #{context}>"
270
+ end
271
+ end
272
+
273
+ class RoomInstance < InstanceResource
274
+ ##
275
+ # Initialize the RoomInstance
276
+ # @param [Version] version Version that contains the resource
277
+ # @param [Hash] payload payload that contains response from Twilio
278
+ # @param [String] sid The sid
279
+ # @return [RoomInstance] RoomInstance
280
+ def initialize(version, payload, sid: nil)
281
+ super(version)
282
+
283
+ # Marshaled Properties
284
+ @properties = {
285
+ 'sid' => payload['sid'],
286
+ 'status' => payload['status'],
287
+ 'date_created' => Twilio.deserialize_iso8601(payload['date_created']),
288
+ 'date_updated' => Twilio.deserialize_iso8601(payload['date_updated']),
289
+ 'account_sid' => payload['account_sid'],
290
+ 'enable_turn' => payload['enable_turn'],
291
+ 'unique_name' => payload['unique_name'],
292
+ 'status_callback' => payload['status_callback'],
293
+ 'status_callback_method' => payload['status_callback_method'],
294
+ 'end_time' => Twilio.deserialize_iso8601(payload['end_time']),
295
+ 'duration' => payload['duration'] == nil ? payload['duration'] : payload['duration'].to_i,
296
+ 'type' => payload['type'],
297
+ 'max_participants' => payload['max_participants'].to_i,
298
+ 'record_participants_on_connect' => payload['record_participants_on_connect'],
299
+ 'url' => payload['url'],
300
+ }
301
+
302
+ # Context
303
+ @instance_context = nil
304
+ @params = {
305
+ 'sid' => sid || @properties['sid'],
306
+ }
307
+ end
308
+
309
+ ##
310
+ # Generate an instance context for the instance, the context is capable of
311
+ # performing various actions. All instance actions are proxied to the context
312
+ # @param [Version] version Version that contains the resource
313
+ # @return [RoomContext] RoomContext for this RoomInstance
314
+ def context
315
+ unless @instance_context
316
+ @instance_context = RoomContext.new(
317
+ @version,
318
+ @params['sid'],
319
+ )
320
+ end
321
+ @instance_context
322
+ end
323
+
324
+ def sid
325
+ @properties['sid']
326
+ end
327
+
328
+ def status
329
+ @properties['status']
330
+ end
331
+
332
+ def date_created
333
+ @properties['date_created']
334
+ end
335
+
336
+ def date_updated
337
+ @properties['date_updated']
338
+ end
339
+
340
+ def account_sid
341
+ @properties['account_sid']
342
+ end
343
+
344
+ def enable_turn
345
+ @properties['enable_turn']
346
+ end
347
+
348
+ def unique_name
349
+ @properties['unique_name']
350
+ end
351
+
352
+ def status_callback
353
+ @properties['status_callback']
354
+ end
355
+
356
+ def status_callback_method
357
+ @properties['status_callback_method']
358
+ end
359
+
360
+ def end_time
361
+ @properties['end_time']
362
+ end
363
+
364
+ def duration
365
+ @properties['duration']
366
+ end
367
+
368
+ def type
369
+ @properties['type']
370
+ end
371
+
372
+ def max_participants
373
+ @properties['max_participants']
374
+ end
375
+
376
+ def record_participants_on_connect
377
+ @properties['record_participants_on_connect']
378
+ end
379
+
380
+ def url
381
+ @properties['url']
382
+ end
383
+
384
+ ##
385
+ # Fetch a RoomInstance
386
+ # @return [RoomInstance] Fetched RoomInstance
387
+ def fetch
388
+ context.fetch
389
+ end
390
+
391
+ ##
392
+ # Update the RoomInstance
393
+ # @param [room.RoomStatus] status The status
394
+ # @return [RoomInstance] Updated RoomInstance
395
+ def update(status: nil)
396
+ context.update(
397
+ status: status,
398
+ )
399
+ end
400
+
401
+ ##
402
+ # Provide a user friendly representation
403
+ def to_s
404
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
405
+ "<Twilio.Video.V1.RoomInstance #{values}>"
406
+ end
407
+ end
408
+ end
409
+ end
410
+ end
411
+ end