twilio-ruby 5.0.0.rc18 → 5.0.0.rc19

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