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
@@ -2,7 +2,7 @@
2
2
  # This code was generated by
3
3
  # \ / _ _ _| _ _
4
4
  # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
- # / /
5
+ # / /
6
6
 
7
7
  module Twilio
8
8
  module REST
@@ -17,14 +17,14 @@ module Twilio
17
17
  # @return [DocumentList] DocumentList
18
18
  def initialize(version, service_sid: nil)
19
19
  super(version)
20
-
20
+
21
21
  # Path Solution
22
22
  @solution = {
23
23
  service_sid: service_sid
24
24
  }
25
25
  @uri = "/Services/#{@solution[:service_sid]}/Documents"
26
26
  end
27
-
27
+
28
28
  ##
29
29
  # Retrieve a single page of DocumentInstance records from the API.
30
30
  # Request is executed immediately.
@@ -36,20 +36,20 @@ module Twilio
36
36
  'UniqueName' => unique_name,
37
37
  'Data' => data,
38
38
  }
39
-
39
+
40
40
  payload = @version.create(
41
41
  'POST',
42
42
  @uri,
43
43
  data: data
44
44
  )
45
-
45
+
46
46
  return DocumentInstance.new(
47
47
  @version,
48
48
  payload,
49
49
  service_sid: @solution[:service_sid],
50
50
  )
51
51
  end
52
-
52
+
53
53
  ##
54
54
  # Lists DocumentInstance records from the API as a list.
55
55
  # Unlike stream(), this operation is eager and will load `limit` records into
@@ -67,7 +67,7 @@ module Twilio
67
67
  page_size: page_size
68
68
  ).entries
69
69
  end
70
-
70
+
71
71
  ##
72
72
  # Streams DocumentInstance records from the API as an Enumerable.
73
73
  # This operation lazily loads records as efficiently as possible until the limit
@@ -81,14 +81,14 @@ module Twilio
81
81
  # @return [Enumerable] Enumerable that will yield up to limit results
82
82
  def stream(limit: nil, page_size: nil)
83
83
  limits = @version.read_limits(limit, page_size)
84
-
84
+
85
85
  page = self.page(
86
86
  page_size: limits[:page_size],
87
87
  )
88
-
88
+
89
89
  @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
90
90
  end
91
-
91
+
92
92
  ##
93
93
  # When passed a block, yields DocumentInstance records from the API.
94
94
  # This operation lazily loads records as efficiently as possible until the limit
@@ -101,16 +101,16 @@ module Twilio
101
101
  # limit with the most efficient page size, i.e. min(limit, 1000)
102
102
  def each
103
103
  limits = @version.read_limits
104
-
104
+
105
105
  page = self.page(
106
106
  page_size: limits[:page_size],
107
107
  )
108
-
108
+
109
109
  @version.stream(page,
110
110
  limit: limits[:limit],
111
111
  page_limit: limits[:page_limit]).each {|x| yield x}
112
112
  end
113
-
113
+
114
114
  ##
115
115
  # Retrieve a single page of DocumentInstance records from the API.
116
116
  # Request is executed immediately.
@@ -131,14 +131,14 @@ module Twilio
131
131
  )
132
132
  return DocumentPage.new(@version, response, @solution)
133
133
  end
134
-
134
+
135
135
  ##
136
136
  # Provide a user friendly representation
137
137
  def to_s
138
138
  '#<Twilio.Preview.Sync.DocumentList>'
139
139
  end
140
140
  end
141
-
141
+
142
142
  class DocumentPage < Page
143
143
  ##
144
144
  # Initialize the DocumentPage
@@ -149,11 +149,11 @@ module Twilio
149
149
  # @return [DocumentPage] DocumentPage
150
150
  def initialize(version, response, solution)
151
151
  super(version, response)
152
-
152
+
153
153
  # Path Solution
154
154
  @solution = solution
155
155
  end
156
-
156
+
157
157
  ##
158
158
  # Build an instance of DocumentInstance
159
159
  # @param [Hash] payload Payload response from the API
@@ -165,14 +165,14 @@ module Twilio
165
165
  service_sid: @solution[:service_sid],
166
166
  )
167
167
  end
168
-
168
+
169
169
  ##
170
170
  # Provide a user friendly representation
171
171
  def to_s
172
172
  '<Twilio.Preview.Sync.DocumentPage>'
173
173
  end
174
174
  end
175
-
175
+
176
176
  class DocumentContext < InstanceContext
177
177
  ##
178
178
  # Initialize the DocumentContext
@@ -182,27 +182,30 @@ module Twilio
182
182
  # @return [DocumentContext] DocumentContext
183
183
  def initialize(version, service_sid, sid)
184
184
  super(version)
185
-
185
+
186
186
  # Path Solution
187
187
  @solution = {
188
188
  service_sid: service_sid,
189
189
  sid: sid,
190
190
  }
191
191
  @uri = "/Services/#{@solution[:service_sid]}/Documents/#{@solution[:sid]}"
192
+
193
+ # Dependents
194
+ @document_permissions = nil
192
195
  end
193
-
196
+
194
197
  ##
195
198
  # Fetch a DocumentInstance
196
199
  # @return [DocumentInstance] Fetched DocumentInstance
197
200
  def fetch
198
201
  params = {}
199
-
202
+
200
203
  payload = @version.fetch(
201
204
  'GET',
202
205
  @uri,
203
206
  params,
204
207
  )
205
-
208
+
206
209
  return DocumentInstance.new(
207
210
  @version,
208
211
  payload,
@@ -210,14 +213,14 @@ module Twilio
210
213
  sid: @solution[:sid],
211
214
  )
212
215
  end
213
-
216
+
214
217
  ##
215
218
  # Deletes the DocumentInstance
216
219
  # @return [Boolean] true if delete succeeds, true otherwise
217
220
  def delete
218
221
  return @version.delete('delete', @uri)
219
222
  end
220
-
223
+
221
224
  ##
222
225
  # Update the DocumentInstance
223
226
  # @param [Hash] data The data
@@ -226,13 +229,13 @@ module Twilio
226
229
  data = {
227
230
  'Data' => data,
228
231
  }
229
-
232
+
230
233
  payload = @version.update(
231
234
  'POST',
232
235
  @uri,
233
236
  data: data,
234
237
  )
235
-
238
+
236
239
  return DocumentInstance.new(
237
240
  @version,
238
241
  payload,
@@ -240,7 +243,31 @@ module Twilio
240
243
  sid: @solution[:sid],
241
244
  )
242
245
  end
243
-
246
+
247
+ ##
248
+ # Access the document_permissions
249
+ # @return [DocumentPermissionList] DocumentPermissionList
250
+ def document_permissions(identity=:unset)
251
+ if identity != :unset
252
+ return DocumentPermissionContext.new(
253
+ @version,
254
+ @solution[:service_sid],
255
+ @solution[:sid],
256
+ identity,
257
+ )
258
+ end
259
+
260
+ unless @document_permissions
261
+ @document_permissions = DocumentPermissionList.new(
262
+ @version,
263
+ service_sid: @solution[:service_sid],
264
+ document_sid: @solution[:sid],
265
+ )
266
+ end
267
+
268
+ @document_permissions
269
+ end
270
+
244
271
  ##
245
272
  # Provide a user friendly representation
246
273
  def to_s
@@ -248,7 +275,7 @@ module Twilio
248
275
  "#<Twilio.Preview.Sync.DocumentContext #{context}>"
249
276
  end
250
277
  end
251
-
278
+
252
279
  class DocumentInstance < InstanceResource
253
280
  ##
254
281
  # Initialize the DocumentInstance
@@ -259,7 +286,7 @@ module Twilio
259
286
  # @return [DocumentInstance] DocumentInstance
260
287
  def initialize(version, payload, service_sid: nil, sid: nil)
261
288
  super(version)
262
-
289
+
263
290
  # Marshaled Properties
264
291
  @properties = {
265
292
  'sid' => payload['sid'],
@@ -267,13 +294,14 @@ module Twilio
267
294
  'account_sid' => payload['account_sid'],
268
295
  'service_sid' => payload['service_sid'],
269
296
  'url' => payload['url'],
297
+ 'links' => payload['links'],
270
298
  'revision' => payload['revision'],
271
299
  'data' => payload['data'],
272
300
  'date_created' => Twilio.deserialize_iso8601(payload['date_created']),
273
301
  'date_updated' => Twilio.deserialize_iso8601(payload['date_updated']),
274
302
  'created_by' => payload['created_by'],
275
303
  }
276
-
304
+
277
305
  # Context
278
306
  @instance_context = nil
279
307
  @params = {
@@ -281,7 +309,7 @@ module Twilio
281
309
  'sid' => sid || @properties['sid'],
282
310
  }
283
311
  end
284
-
312
+
285
313
  ##
286
314
  # Generate an instance context for the instance, the context is capable of
287
315
  # performing various actions. All instance actions are proxied to the context
@@ -297,61 +325,65 @@ module Twilio
297
325
  end
298
326
  @instance_context
299
327
  end
300
-
328
+
301
329
  def sid
302
330
  @properties['sid']
303
331
  end
304
-
332
+
305
333
  def unique_name
306
334
  @properties['unique_name']
307
335
  end
308
-
336
+
309
337
  def account_sid
310
338
  @properties['account_sid']
311
339
  end
312
-
340
+
313
341
  def service_sid
314
342
  @properties['service_sid']
315
343
  end
316
-
344
+
317
345
  def url
318
346
  @properties['url']
319
347
  end
320
-
348
+
349
+ def links
350
+ @properties['links']
351
+ end
352
+
321
353
  def revision
322
354
  @properties['revision']
323
355
  end
324
-
356
+
325
357
  def data
326
358
  @properties['data']
327
359
  end
328
-
360
+
329
361
  def date_created
330
362
  @properties['date_created']
331
363
  end
332
-
364
+
333
365
  def date_updated
334
366
  @properties['date_updated']
335
367
  end
336
-
368
+
337
369
  def created_by
338
370
  @properties['created_by']
339
371
  end
340
-
372
+
341
373
  ##
342
374
  # Fetch a DocumentInstance
343
375
  # @return [DocumentInstance] Fetched DocumentInstance
344
376
  def fetch
345
377
  context.fetch
346
378
  end
347
-
379
+
348
380
  ##
349
381
  # Deletes the DocumentInstance
350
382
  # @return [Boolean] true if delete succeeds, true otherwise
351
383
  def delete
352
384
  context.delete
353
385
  end
354
-
386
+
355
387
  ##
356
388
  # Update the DocumentInstance
357
389
  # @param [Hash] data The data
@@ -361,7 +393,14 @@ module Twilio
361
393
  data: data,
362
394
  )
363
395
  end
364
-
396
+
397
+ ##
398
+ # Access the document_permissions
399
+ # @return [document_permissions] document_permissions
400
+ def document_permissions
401
+ context.document_permissions
402
+ end
403
+
365
404
  ##
366
405
  # Provide a user friendly representation
367
406
  def to_s
@@ -0,0 +1,377 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Preview < Domain
10
+ class Sync < Version
11
+ class ServiceContext < InstanceContext
12
+ class DocumentContext < InstanceContext
13
+ class DocumentPermissionList < ListResource
14
+ ##
15
+ # Initialize the DocumentPermissionList
16
+ # @param [Version] version Version that contains the resource
17
+ # @param [String] service_sid The unique SID identifier of the Sync Service
18
+ # Instance.
19
+ # @param [String] document_sid The unique SID identifier of the Sync Document to
20
+ # which the Permission applies.
21
+ # @return [DocumentPermissionList] DocumentPermissionList
22
+ def initialize(version, service_sid: nil, document_sid: nil)
23
+ super(version)
24
+
25
+ # Path Solution
26
+ @solution = {
27
+ service_sid: service_sid,
28
+ document_sid: document_sid
29
+ }
30
+ @uri = "/Services/#{@solution[:service_sid]}/Documents/#{@solution[:document_sid]}/Permissions"
31
+ end
32
+
33
+ ##
34
+ # Lists DocumentPermissionInstance records from the API as a list.
35
+ # Unlike stream(), this operation is eager and will load `limit` records into
36
+ # memory before returning.
37
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
38
+ # guarantees to never return more than limit. Default is no limit
39
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
40
+ # the default value of 50 records. If no page_size is defined
41
+ # but a limit is defined, stream() will attempt to read the
42
+ # limit with the most efficient page size, i.e. min(limit, 1000)
43
+ # @return [Array] Array of up to limit results
44
+ def list(limit: nil, page_size: nil)
45
+ self.stream(
46
+ limit: limit,
47
+ page_size: page_size
48
+ ).entries
49
+ end
50
+
51
+ ##
52
+ # Streams DocumentPermissionInstance records from the API as an Enumerable.
53
+ # This operation lazily loads records as efficiently as possible until the limit
54
+ # is reached.
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(limit: nil, page_size: nil)
63
+ limits = @version.read_limits(limit, page_size)
64
+
65
+ page = self.page(
66
+ page_size: limits[:page_size],
67
+ )
68
+
69
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
70
+ end
71
+
72
+ ##
73
+ # When passed a block, yields DocumentPermissionInstance records from the API.
74
+ # This operation lazily loads records as efficiently as possible until the limit
75
+ # is reached.
76
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
77
+ # guarantees to never return more than limit. Default is no limit
78
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
79
+ # the default value of 50 records. If no page_size is defined
80
+ # but a limit is defined, stream() will attempt to read the
81
+ # limit with the most efficient page size, i.e. min(limit, 1000)
82
+ def each
83
+ limits = @version.read_limits
84
+
85
+ page = self.page(
86
+ page_size: limits[:page_size],
87
+ )
88
+
89
+ @version.stream(page,
90
+ limit: limits[:limit],
91
+ page_limit: limits[:page_limit]).each {|x| yield x}
92
+ end
93
+
94
+ ##
95
+ # Retrieve a single page of DocumentPermissionInstance records from the API.
96
+ # Request is executed immediately.
97
+ # @param [String] page_token PageToken provided by the API
98
+ # @param [Integer] page_number Page Number, this value is simply for client state
99
+ # @param [Integer] page_size Number of records to return, defaults to 50
100
+ # @return [Page] Page of DocumentPermissionInstance
101
+ def page(page_token: nil, page_number: nil, page_size: nil)
102
+ params = {
103
+ 'PageToken' => page_token,
104
+ 'Page' => page_number,
105
+ 'PageSize' => page_size,
106
+ }
107
+ response = @version.page(
108
+ 'GET',
109
+ @uri,
110
+ params
111
+ )
112
+ return DocumentPermissionPage.new(@version, response, @solution)
113
+ end
114
+
115
+ ##
116
+ # Provide a user friendly representation
117
+ def to_s
118
+ '#<Twilio.Preview.Sync.DocumentPermissionList>'
119
+ end
120
+ end
121
+
122
+ class DocumentPermissionPage < Page
123
+ ##
124
+ # Initialize the DocumentPermissionPage
125
+ # @param [Version] version Version that contains the resource
126
+ # @param [Response] response Response from the API
127
+ # @param [Hash] solution Path solution for the resource
128
+ # @param [String] service_sid The unique SID identifier of the Sync Service
129
+ # Instance.
130
+ # @param [String] document_sid The unique SID identifier of the Sync Document to
131
+ # which the Permission applies.
132
+ # @return [DocumentPermissionPage] DocumentPermissionPage
133
+ def initialize(version, response, solution)
134
+ super(version, response)
135
+
136
+ # Path Solution
137
+ @solution = solution
138
+ end
139
+
140
+ ##
141
+ # Build an instance of DocumentPermissionInstance
142
+ # @param [Hash] payload Payload response from the API
143
+ # @return [DocumentPermissionInstance] DocumentPermissionInstance
144
+ def get_instance(payload)
145
+ return DocumentPermissionInstance.new(
146
+ @version,
147
+ payload,
148
+ service_sid: @solution[:service_sid],
149
+ document_sid: @solution[:document_sid],
150
+ )
151
+ end
152
+
153
+ ##
154
+ # Provide a user friendly representation
155
+ def to_s
156
+ '<Twilio.Preview.Sync.DocumentPermissionPage>'
157
+ end
158
+ end
159
+
160
+ class DocumentPermissionContext < InstanceContext
161
+ ##
162
+ # Initialize the DocumentPermissionContext
163
+ # @param [Version] version Version that contains the resource
164
+ # @param [String] service_sid The service_sid
165
+ # @param [String] document_sid Identifier of the Sync Document. Either a SID or a
166
+ # unique name.
167
+ # @param [String] identity Arbitrary string identifier representing a user
168
+ # associated with an FPA token, assigned by the developer.
169
+ # @return [DocumentPermissionContext] DocumentPermissionContext
170
+ def initialize(version, service_sid, document_sid, identity)
171
+ super(version)
172
+
173
+ # Path Solution
174
+ @solution = {
175
+ service_sid: service_sid,
176
+ document_sid: document_sid,
177
+ identity: identity,
178
+ }
179
+ @uri = "/Services/#{@solution[:service_sid]}/Documents/#{@solution[:document_sid]}/Permissions/#{@solution[:identity]}"
180
+ end
181
+
182
+ ##
183
+ # Fetch a DocumentPermissionInstance
184
+ # @return [DocumentPermissionInstance] Fetched DocumentPermissionInstance
185
+ def fetch
186
+ params = {}
187
+
188
+ payload = @version.fetch(
189
+ 'GET',
190
+ @uri,
191
+ params,
192
+ )
193
+
194
+ return DocumentPermissionInstance.new(
195
+ @version,
196
+ payload,
197
+ service_sid: @solution[:service_sid],
198
+ document_sid: @solution[:document_sid],
199
+ identity: @solution[:identity],
200
+ )
201
+ end
202
+
203
+ ##
204
+ # Deletes the DocumentPermissionInstance
205
+ # @return [Boolean] true if delete succeeds, true otherwise
206
+ def delete
207
+ return @version.delete('delete', @uri)
208
+ end
209
+
210
+ ##
211
+ # Update the DocumentPermissionInstance
212
+ # @param [Boolean] read Boolean flag specifying whether the identity can read the
213
+ # Sync Document.
214
+ # @param [Boolean] write Boolean flag specifying whether the identity can update
215
+ # the Sync Document.
216
+ # @param [Boolean] manage Boolean flag specifying whether the identity can delete
217
+ # the Sync Document.
218
+ # @return [DocumentPermissionInstance] Updated DocumentPermissionInstance
219
+ def update(read: nil, write: nil, manage: nil)
220
+ data = {
221
+ 'Read' => read,
222
+ 'Write' => write,
223
+ 'Manage' => manage,
224
+ }
225
+
226
+ payload = @version.update(
227
+ 'POST',
228
+ @uri,
229
+ data: data,
230
+ )
231
+
232
+ return DocumentPermissionInstance.new(
233
+ @version,
234
+ payload,
235
+ service_sid: @solution[:service_sid],
236
+ document_sid: @solution[:document_sid],
237
+ identity: @solution[:identity],
238
+ )
239
+ end
240
+
241
+ ##
242
+ # Provide a user friendly representation
243
+ def to_s
244
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
245
+ "#<Twilio.Preview.Sync.DocumentPermissionContext #{context}>"
246
+ end
247
+ end
248
+
249
+ class DocumentPermissionInstance < InstanceResource
250
+ ##
251
+ # Initialize the DocumentPermissionInstance
252
+ # @param [Version] version Version that contains the resource
253
+ # @param [Hash] payload payload that contains response from Twilio
254
+ # @param [String] service_sid The unique SID identifier of the Sync Service
255
+ # Instance.
256
+ # @param [String] document_sid The unique SID identifier of the Sync Document to
257
+ # which the Permission applies.
258
+ # @param [String] identity Arbitrary string identifier representing a user
259
+ # associated with an FPA token, assigned by the developer.
260
+ # @return [DocumentPermissionInstance] DocumentPermissionInstance
261
+ def initialize(version, payload, service_sid: nil, document_sid: nil, identity: nil)
262
+ super(version)
263
+
264
+ # Marshaled Properties
265
+ @properties = {
266
+ 'account_sid' => payload['account_sid'],
267
+ 'service_sid' => payload['service_sid'],
268
+ 'document_sid' => payload['document_sid'],
269
+ 'identity' => payload['identity'],
270
+ 'read' => payload['read'],
271
+ 'write' => payload['write'],
272
+ 'manage' => payload['manage'],
273
+ 'url' => payload['url'],
274
+ }
275
+
276
+ # Context
277
+ @instance_context = nil
278
+ @params = {
279
+ 'service_sid' => service_sid,
280
+ 'document_sid' => document_sid,
281
+ 'identity' => identity || @properties['identity'],
282
+ }
283
+ end
284
+
285
+ ##
286
+ # Generate an instance context for the instance, the context is capable of
287
+ # performing various actions. All instance actions are proxied to the context
288
+ # @param [Version] version Version that contains the resource
289
+ # @return [DocumentPermissionContext] DocumentPermissionContext for this DocumentPermissionInstance
290
+ def context
291
+ unless @instance_context
292
+ @instance_context = DocumentPermissionContext.new(
293
+ @version,
294
+ @params['service_sid'],
295
+ @params['document_sid'],
296
+ @params['identity'],
297
+ )
298
+ end
299
+ @instance_context
300
+ end
301
+
302
+ def account_sid
303
+ @properties['account_sid']
304
+ end
305
+
306
+ def service_sid
307
+ @properties['service_sid']
308
+ end
309
+
310
+ def document_sid
311
+ @properties['document_sid']
312
+ end
313
+
314
+ def identity
315
+ @properties['identity']
316
+ end
317
+
318
+ def read
319
+ @properties['read']
320
+ end
321
+
322
+ def write
323
+ @properties['write']
324
+ end
325
+
326
+ def manage
327
+ @properties['manage']
328
+ end
329
+
330
+ def url
331
+ @properties['url']
332
+ end
333
+
334
+ ##
335
+ # Fetch a DocumentPermissionInstance
336
+ # @return [DocumentPermissionInstance] Fetched DocumentPermissionInstance
337
+ def fetch
338
+ context.fetch
339
+ end
340
+
341
+ ##
342
+ # Deletes the DocumentPermissionInstance
343
+ # @return [Boolean] true if delete succeeds, true otherwise
344
+ def delete
345
+ context.delete
346
+ end
347
+
348
+ ##
349
+ # Update the DocumentPermissionInstance
350
+ # @param [Boolean] read Boolean flag specifying whether the identity can read the
351
+ # Sync Document.
352
+ # @param [Boolean] write Boolean flag specifying whether the identity can update
353
+ # the Sync Document.
354
+ # @param [Boolean] manage Boolean flag specifying whether the identity can delete
355
+ # the Sync Document.
356
+ # @return [DocumentPermissionInstance] Updated DocumentPermissionInstance
357
+ def update(read: nil, write: nil, manage: nil)
358
+ context.update(
359
+ read: read,
360
+ write: write,
361
+ manage: manage,
362
+ )
363
+ end
364
+
365
+ ##
366
+ # Provide a user friendly representation
367
+ def to_s
368
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
369
+ "<Twilio.Preview.Sync.DocumentPermissionInstance #{values}>"
370
+ end
371
+ end
372
+ end
373
+ end
374
+ end
375
+ end
376
+ end
377
+ end