twilio-ruby 5.0.0.rc18 → 5.0.0.rc19

Sign up to get free protection for your applications and to get access to all the features.
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