twilio-ruby 5.0.0.rc18 → 5.0.0.rc19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (369) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +9 -0
  3. data/lib/twilio-ruby/jwt/access_token.rb +25 -0
  4. data/lib/twilio-ruby/rest/accounts.rb +40 -0
  5. data/lib/twilio-ruby/rest/accounts/v1.rb +35 -0
  6. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +102 -0
  7. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +352 -0
  8. data/lib/twilio-ruby/rest/api.rb +30 -34
  9. data/lib/twilio-ruby/rest/api/v2010.rb +28 -32
  10. data/lib/twilio-ruby/rest/api/v2010/account.rb +132 -150
  11. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +71 -55
  12. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +29 -29
  13. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +58 -58
  14. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +37 -37
  15. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +45 -45
  16. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +39 -39
  17. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +39 -39
  18. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +39 -39
  19. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +102 -123
  20. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +33 -33
  21. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +38 -38
  22. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +52 -52
  23. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +42 -37
  24. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +83 -40
  25. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +131 -43
  26. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +42 -42
  27. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +172 -96
  28. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +404 -0
  29. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +332 -0
  30. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +62 -57
  31. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +62 -57
  32. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +62 -57
  33. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +37 -37
  34. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +78 -85
  35. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +19 -19
  36. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +47 -57
  37. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +18 -18
  38. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +18 -18
  39. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +46 -46
  40. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +40 -40
  41. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +50 -50
  42. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +36 -36
  43. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +101 -68
  44. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +372 -0
  45. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +356 -0
  46. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +42 -42
  47. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +43 -43
  48. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +37 -37
  49. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +27 -16
  50. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +48 -48
  51. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +43 -43
  52. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +65 -60
  53. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +43 -38
  54. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +43 -38
  55. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +48 -48
  56. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +44 -44
  57. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +20 -20
  58. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +42 -42
  59. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +13 -13
  60. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +78 -82
  61. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +45 -73
  62. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +45 -73
  63. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +45 -73
  64. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +45 -73
  65. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +45 -73
  66. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +45 -73
  67. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +45 -73
  68. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +45 -73
  69. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +52 -52
  70. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +18 -18
  71. data/lib/twilio-ruby/rest/chat.rb +16 -9
  72. data/lib/twilio-ruby/rest/chat/v1.rb +4 -4
  73. data/lib/twilio-ruby/rest/chat/v1/credential.rb +53 -47
  74. data/lib/twilio-ruby/rest/chat/v1/service.rb +446 -69
  75. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +114 -69
  76. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +363 -0
  77. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +99 -44
  78. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +76 -54
  79. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +45 -45
  80. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +101 -46
  81. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +223 -0
  82. data/lib/twilio-ruby/rest/chat/v2.rb +44 -0
  83. data/lib/twilio-ruby/rest/chat/v2/credential.rb +381 -0
  84. data/lib/twilio-ruby/rest/chat/v2/service.rb +633 -0
  85. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +513 -0
  86. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +363 -0
  87. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +406 -0
  88. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +418 -0
  89. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +373 -0
  90. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +433 -0
  91. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +223 -0
  92. data/lib/twilio-ruby/rest/client.rb +91 -75
  93. data/lib/twilio-ruby/rest/fax.rb +40 -0
  94. data/lib/twilio-ruby/rest/fax/v1.rb +35 -0
  95. data/lib/twilio-ruby/rest/fax/v1/fax.rb +397 -0
  96. data/lib/twilio-ruby/rest/ip_messaging.rb +16 -9
  97. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +4 -4
  98. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +53 -47
  99. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +446 -69
  100. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +114 -69
  101. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +363 -0
  102. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +99 -44
  103. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +76 -54
  104. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +45 -45
  105. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +101 -46
  106. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +223 -0
  107. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +44 -0
  108. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +381 -0
  109. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +633 -0
  110. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +513 -0
  111. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +363 -0
  112. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +406 -0
  113. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +418 -0
  114. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +373 -0
  115. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +433 -0
  116. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +223 -0
  117. data/lib/twilio-ruby/rest/lookups.rb +6 -6
  118. data/lib/twilio-ruby/rest/lookups/v1.rb +3 -3
  119. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +30 -25
  120. data/lib/twilio-ruby/rest/messaging.rb +40 -0
  121. data/lib/twilio-ruby/rest/messaging/v1.rb +35 -0
  122. data/lib/twilio-ruby/rest/messaging/v1/service.rb +524 -0
  123. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +331 -0
  124. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +336 -0
  125. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +336 -0
  126. data/lib/twilio-ruby/rest/monitor.rb +7 -7
  127. data/lib/twilio-ruby/rest/monitor/v1.rb +4 -4
  128. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +57 -85
  129. data/lib/twilio-ruby/rest/monitor/v1/event.rb +63 -81
  130. data/lib/twilio-ruby/rest/notify.rb +7 -7
  131. data/lib/twilio-ruby/rest/notify/v1.rb +4 -4
  132. data/lib/twilio-ruby/rest/notify/v1/credential.rb +53 -47
  133. data/lib/twilio-ruby/rest/notify/v1/service.rb +148 -60
  134. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +70 -86
  135. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +47 -33
  136. data/lib/twilio-ruby/rest/notify/v1/service/segment.rb +206 -0
  137. data/lib/twilio-ruby/rest/notify/v1/service/user.rb +418 -0
  138. data/lib/twilio-ruby/rest/notify/v1/service/user/segment_memberships.rb +247 -0
  139. data/lib/twilio-ruby/rest/notify/v1/service/user/user_binding.rb +405 -0
  140. data/lib/twilio-ruby/rest/preview.rb +34 -19
  141. data/lib/twilio-ruby/rest/preview/marketplace.rb +44 -0
  142. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +310 -0
  143. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +284 -0
  144. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +411 -0
  145. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +322 -0
  146. data/lib/twilio-ruby/rest/preview/sync.rb +3 -3
  147. data/lib/twilio-ruby/rest/preview/sync/service.rb +72 -61
  148. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +85 -46
  149. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +377 -0
  150. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +79 -47
  151. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +46 -46
  152. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +377 -0
  153. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +79 -47
  154. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +46 -46
  155. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +377 -0
  156. data/lib/twilio-ruby/rest/preview/wireless.rb +12 -12
  157. data/lib/twilio-ruby/rest/preview/wireless/command.rb +68 -45
  158. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +137 -73
  159. data/lib/twilio-ruby/rest/preview/wireless/{device.rb → sim.rb} +127 -150
  160. data/lib/twilio-ruby/rest/preview/wireless/{device → sim}/usage.rb +49 -49
  161. data/lib/twilio-ruby/rest/pricing.rb +8 -8
  162. data/lib/twilio-ruby/rest/pricing/v1.rb +5 -5
  163. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +16 -16
  164. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +33 -33
  165. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +16 -16
  166. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +33 -38
  167. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +18 -18
  168. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +33 -33
  169. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +26 -26
  170. data/lib/twilio-ruby/rest/taskrouter.rb +6 -6
  171. data/lib/twilio-ruby/rest/taskrouter/v1.rb +3 -3
  172. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +103 -82
  173. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +48 -43
  174. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +42 -42
  175. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +114 -75
  176. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +50 -40
  177. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +35 -35
  178. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +110 -78
  179. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +31 -30
  180. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +24 -24
  181. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +71 -61
  182. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +50 -40
  183. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +45 -45
  184. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +28 -23
  185. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +28 -23
  186. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +60 -50
  187. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +29 -24
  188. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +34 -29
  189. data/lib/twilio-ruby/rest/trunking.rb +6 -6
  190. data/lib/twilio-ruby/rest/trunking/v1.rb +3 -3
  191. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +67 -67
  192. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +39 -39
  193. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +39 -39
  194. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +47 -47
  195. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +58 -58
  196. data/lib/twilio-ruby/rest/video.rb +44 -0
  197. data/lib/twilio-ruby/rest/video/v1.rb +44 -0
  198. data/lib/twilio-ruby/rest/video/v1/recording.rb +341 -0
  199. data/lib/twilio-ruby/rest/video/v1/room.rb +411 -0
  200. data/lib/twilio-ruby/version.rb +1 -1
  201. data/spec/integration/accounts/v1/credential/public_key_spec.rb +226 -0
  202. data/spec/integration/accounts/v1/credential_spec.rb +10 -0
  203. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +7 -7
  204. data/spec/integration/api/v2010/account/address_spec.rb +32 -24
  205. data/spec/integration/api/v2010/account/application_spec.rb +24 -24
  206. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +11 -11
  207. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +7 -7
  208. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +7 -7
  209. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +7 -7
  210. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +11 -11
  211. data/spec/integration/api/v2010/account/call/feedback_spec.rb +14 -14
  212. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +14 -14
  213. data/spec/integration/api/v2010/account/call/notification_spec.rb +15 -15
  214. data/spec/integration/api/v2010/account/call/recording_spec.rb +15 -15
  215. data/spec/integration/api/v2010/account/call_spec.rb +24 -24
  216. data/spec/integration/api/v2010/account/conference/participant_spec.rb +97 -25
  217. data/spec/integration/api/v2010/account/conference_spec.rb +56 -17
  218. data/spec/integration/api/v2010/account/connect_app_spec.rb +15 -15
  219. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +135 -0
  220. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +223 -0
  221. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +12 -12
  222. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +12 -12
  223. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +12 -12
  224. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +32 -24
  225. data/spec/integration/api/v2010/account/key_spec.rb +19 -19
  226. data/spec/integration/api/v2010/account/message/feedback_spec.rb +25 -3
  227. data/spec/integration/api/v2010/account/message/media_spec.rb +15 -15
  228. data/spec/integration/api/v2010/account/message_spec.rb +34 -27
  229. data/spec/integration/api/v2010/account/new_key_spec.rb +5 -5
  230. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +5 -5
  231. data/spec/integration/api/v2010/account/notification_spec.rb +15 -15
  232. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +19 -19
  233. data/spec/integration/api/v2010/account/queue/member_spec.rb +15 -15
  234. data/spec/integration/api/v2010/account/queue_spec.rb +30 -27
  235. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +175 -0
  236. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +166 -0
  237. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +15 -15
  238. data/spec/integration/api/v2010/account/recording_spec.rb +16 -16
  239. data/spec/integration/api/v2010/account/short_code_spec.rb +15 -15
  240. data/spec/integration/api/v2010/account/signing_key_spec.rb +19 -19
  241. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +24 -24
  242. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +24 -24
  243. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +20 -20
  244. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +20 -20
  245. data/spec/integration/api/v2010/account/sip/domain_spec.rb +24 -24
  246. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +24 -24
  247. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +24 -24
  248. data/spec/integration/api/v2010/account/sip_spec.rb +1 -1
  249. data/spec/integration/api/v2010/account/token_spec.rb +6 -6
  250. data/spec/integration/api/v2010/account/transcription_spec.rb +15 -15
  251. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +7 -7
  252. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +7 -7
  253. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +7 -7
  254. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +7 -7
  255. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +7 -7
  256. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +7 -7
  257. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +7 -7
  258. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +7 -7
  259. data/spec/integration/api/v2010/account/usage/record_spec.rb +7 -7
  260. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +27 -27
  261. data/spec/integration/api/v2010/account/usage_spec.rb +1 -1
  262. data/spec/integration/api/v2010/account/validation_request_spec.rb +23 -3
  263. data/spec/integration/api/v2010/account_spec.rb +20 -24
  264. data/spec/integration/chat/v1/credential_spec.rb +31 -31
  265. data/spec/integration/chat/v1/service/channel/invite_spec.rb +210 -0
  266. data/spec/integration/chat/v1/service/channel/member_spec.rb +102 -31
  267. data/spec/integration/chat/v1/service/channel/message_spec.rb +210 -16
  268. data/spec/integration/chat/v1/service/channel_spec.rb +71 -55
  269. data/spec/integration/chat/v1/service/role_spec.rb +33 -33
  270. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +92 -0
  271. data/spec/integration/chat/v1/service/user_spec.rb +57 -33
  272. data/spec/integration/chat/v1/service_spec.rb +142 -106
  273. data/spec/integration/chat/v2/credential_spec.rb +223 -0
  274. data/spec/integration/chat/v2/service/channel/invite_spec.rb +210 -0
  275. data/spec/integration/chat/v2/service/channel/member_spec.rb +284 -0
  276. data/spec/integration/chat/v2/service/channel/message_spec.rb +294 -0
  277. data/spec/integration/chat/v2/service/channel_spec.rb +275 -0
  278. data/spec/integration/chat/v2/service/role_spec.rb +263 -0
  279. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +92 -0
  280. data/spec/integration/chat/v2/service/user_spec.rb +266 -0
  281. data/spec/integration/chat/v2/service_spec.rb +325 -0
  282. data/spec/integration/fax/v1/fax_spec.rb +231 -0
  283. data/spec/integration/ip_messaging/v1/credential_spec.rb +31 -31
  284. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +210 -0
  285. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +102 -31
  286. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +210 -16
  287. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +71 -55
  288. data/spec/integration/ip_messaging/v1/service/role_spec.rb +33 -33
  289. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +92 -0
  290. data/spec/integration/ip_messaging/v1/service/user_spec.rb +57 -33
  291. data/spec/integration/ip_messaging/v1/service_spec.rb +142 -106
  292. data/spec/integration/ip_messaging/v2/credential_spec.rb +223 -0
  293. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +210 -0
  294. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +284 -0
  295. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +294 -0
  296. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +275 -0
  297. data/spec/integration/ip_messaging/v2/service/role_spec.rb +263 -0
  298. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +92 -0
  299. data/spec/integration/ip_messaging/v2/service/user_spec.rb +266 -0
  300. data/spec/integration/ip_messaging/v2/service_spec.rb +325 -0
  301. data/spec/integration/lookups/v1/phone_number_spec.rb +5 -5
  302. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +170 -0
  303. data/spec/integration/messaging/v1/service/phone_number_spec.rb +173 -0
  304. data/spec/integration/messaging/v1/service/short_code_spec.rb +173 -0
  305. data/spec/integration/messaging/v1/service_spec.rb +243 -0
  306. data/spec/integration/monitor/v1/alert_spec.rb +57 -57
  307. data/spec/integration/monitor/v1/event_spec.rb +11 -11
  308. data/spec/integration/notify/v1/credential_spec.rb +23 -23
  309. data/spec/integration/notify/v1/service/binding_spec.rb +88 -71
  310. data/spec/integration/notify/v1/service/notification_spec.rb +7 -5
  311. data/spec/integration/notify/v1/service/segment_spec.rb +84 -0
  312. data/spec/integration/notify/v1/service/user/segment_memberships_spec.rb +118 -0
  313. data/spec/integration/notify/v1/service/user/user_binding_spec.rb +235 -0
  314. data/spec/integration/notify/v1/service/user_spec.rb +213 -0
  315. data/spec/integration/notify/v1/service_spec.rb +50 -30
  316. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +121 -0
  317. data/spec/integration/preview/marketplace/available_add_on_spec.rb +142 -0
  318. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +164 -0
  319. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +252 -0
  320. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +206 -0
  321. data/spec/integration/preview/sync/service/document_spec.rb +179 -17
  322. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +167 -11
  323. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +206 -0
  324. data/spec/integration/preview/sync/service/sync_list_spec.rb +143 -9
  325. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +167 -11
  326. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +206 -0
  327. data/spec/integration/preview/sync/service/sync_map_spec.rb +143 -9
  328. data/spec/integration/preview/sync/service_spec.rb +171 -11
  329. data/spec/integration/preview/wireless/command_spec.rb +120 -9
  330. data/spec/integration/preview/wireless/rate_plan_spec.rb +228 -7
  331. data/spec/integration/preview/wireless/sim/usage_spec.rb +49 -0
  332. data/spec/integration/preview/wireless/sim_spec.rb +184 -0
  333. data/spec/integration/pricing/v1/messaging/country_spec.rb +101 -5
  334. data/spec/integration/pricing/v1/messaging_spec.rb +1 -1
  335. data/spec/integration/pricing/v1/phone_number/country_spec.rb +11 -11
  336. data/spec/integration/pricing/v1/phone_number_spec.rb +1 -1
  337. data/spec/integration/pricing/v1/voice/country_spec.rb +11 -11
  338. data/spec/integration/pricing/v1/voice/number_spec.rb +5 -5
  339. data/spec/integration/pricing/v1/voice_spec.rb +1 -1
  340. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +29 -33
  341. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +11 -11
  342. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +15 -15
  343. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +11 -11
  344. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +12 -10
  345. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +17 -16
  346. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +52 -36
  347. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +101 -46
  348. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +15 -15
  349. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +15 -15
  350. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +6 -5
  351. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +6 -5
  352. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +39 -27
  353. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +13 -11
  354. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +47 -35
  355. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +10 -8
  356. data/spec/integration/taskrouter/v1/workspace_spec.rb +28 -24
  357. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +20 -20
  358. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +62 -62
  359. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +23 -23
  360. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +19 -19
  361. data/spec/integration/trunking/v1/trunk_spec.rb +23 -23
  362. data/spec/integration/video/v1/recording_spec.rb +120 -0
  363. data/spec/integration/video/v1/room_spec.rb +225 -0
  364. data/spec/jwt/access_token_spec.rb +22 -0
  365. metadata +158 -12
  366. data/lib/twilio-ruby/rest/api/v2010/account/sandbox.rb +0 -287
  367. data/spec/integration/api/v2010/account/sandbox_spec.rb +0 -99
  368. data/spec/integration/preview/wireless/device/usage_spec.rb +0 -25
  369. data/spec/integration/preview/wireless/device_spec.rb +0 -72
@@ -0,0 +1,44 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class IpMessaging
10
+ class V2 < Version
11
+ ##
12
+ # Initialize the V2 version of IpMessaging
13
+ def initialize(domain)
14
+ super
15
+ @version = 'v2'
16
+ @credentials = nil
17
+ @services = nil
18
+ end
19
+
20
+ def credentials(sid=:unset)
21
+ if sid == :unset
22
+ @credentials ||= CredentialList.new self
23
+ else
24
+ CredentialContext.new(self, sid)
25
+ end
26
+ end
27
+
28
+ def services(sid=:unset)
29
+ if sid == :unset
30
+ @services ||= ServiceList.new self
31
+ else
32
+ ServiceContext.new(self, sid)
33
+ end
34
+ end
35
+
36
+ ##
37
+ # Provide a user friendly representation
38
+ def to_s
39
+ '<Twilio::REST::IpMessaging::V2>'
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,381 @@
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 CredentialList < ListResource
12
+ ##
13
+ # Initialize the CredentialList
14
+ # @param [Version] version Version that contains the resource
15
+ # @return [CredentialList] CredentialList
16
+ def initialize(version)
17
+ super(version)
18
+
19
+ # Path Solution
20
+ @solution = {}
21
+ @uri = "/Credentials"
22
+ end
23
+
24
+ ##
25
+ # Lists CredentialInstance records from the API as a list.
26
+ # Unlike stream(), this operation is eager and will load `limit` records into
27
+ # memory before returning.
28
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
29
+ # guarantees to never return more than limit. Default is no limit
30
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
31
+ # the default value of 50 records. If no page_size is defined
32
+ # but a limit is defined, stream() will attempt to read the
33
+ # limit with the most efficient page size, i.e. min(limit, 1000)
34
+ # @return [Array] Array of up to limit results
35
+ def list(limit: nil, page_size: nil)
36
+ self.stream(
37
+ limit: limit,
38
+ page_size: page_size
39
+ ).entries
40
+ end
41
+
42
+ ##
43
+ # Streams CredentialInstance records from the API as an Enumerable.
44
+ # This operation lazily loads records as efficiently as possible until the limit
45
+ # is reached.
46
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
47
+ # guarantees to never return more than limit. Default is no limit
48
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
49
+ # the default value of 50 records. If no page_size is defined
50
+ # but a limit is defined, stream() will attempt to read the
51
+ # limit with the most efficient page size, i.e. min(limit, 1000)
52
+ # @return [Enumerable] Enumerable that will yield up to limit results
53
+ def stream(limit: nil, page_size: nil)
54
+ limits = @version.read_limits(limit, page_size)
55
+
56
+ page = self.page(
57
+ page_size: limits[:page_size],
58
+ )
59
+
60
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
61
+ end
62
+
63
+ ##
64
+ # When passed a block, yields CredentialInstance records from the API.
65
+ # This operation lazily loads records as efficiently as possible until the limit
66
+ # is reached.
67
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
68
+ # guarantees to never return more than limit. Default is no limit
69
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
70
+ # the default value of 50 records. If no page_size is defined
71
+ # but a limit is defined, stream() will attempt to read the
72
+ # limit with the most efficient page size, i.e. min(limit, 1000)
73
+ def each
74
+ limits = @version.read_limits
75
+
76
+ page = self.page(
77
+ page_size: limits[:page_size],
78
+ )
79
+
80
+ @version.stream(page,
81
+ limit: limits[:limit],
82
+ page_limit: limits[:page_limit]).each {|x| yield x}
83
+ end
84
+
85
+ ##
86
+ # Retrieve a single page of CredentialInstance records from the API.
87
+ # Request is executed immediately.
88
+ # @param [String] page_token PageToken provided by the API
89
+ # @param [Integer] page_number Page Number, this value is simply for client state
90
+ # @param [Integer] page_size Number of records to return, defaults to 50
91
+ # @return [Page] Page of CredentialInstance
92
+ def page(page_token: nil, page_number: nil, page_size: nil)
93
+ params = {
94
+ 'PageToken' => page_token,
95
+ 'Page' => page_number,
96
+ 'PageSize' => page_size,
97
+ }
98
+ response = @version.page(
99
+ 'GET',
100
+ @uri,
101
+ params
102
+ )
103
+ return CredentialPage.new(@version, response, @solution)
104
+ end
105
+
106
+ ##
107
+ # Retrieve a single page of CredentialInstance records from the API.
108
+ # Request is executed immediately.
109
+ # @param [credential.PushService] type The type
110
+ # @param [String] friendly_name The friendly_name
111
+ # @param [String] certificate The certificate
112
+ # @param [String] private_key The private_key
113
+ # @param [Boolean] sandbox The sandbox
114
+ # @param [String] api_key The api_key
115
+ # @param [String] secret The secret
116
+ # @return [CredentialInstance] Newly created CredentialInstance
117
+ def create(type: nil, friendly_name: nil, certificate: nil, private_key: nil, sandbox: nil, api_key: nil, secret: nil)
118
+ data = {
119
+ 'Type' => type,
120
+ 'FriendlyName' => friendly_name,
121
+ 'Certificate' => certificate,
122
+ 'PrivateKey' => private_key,
123
+ 'Sandbox' => sandbox,
124
+ 'ApiKey' => api_key,
125
+ 'Secret' => secret,
126
+ }
127
+
128
+ payload = @version.create(
129
+ 'POST',
130
+ @uri,
131
+ data: data
132
+ )
133
+
134
+ return CredentialInstance.new(
135
+ @version,
136
+ payload,
137
+ )
138
+ end
139
+
140
+ ##
141
+ # Provide a user friendly representation
142
+ def to_s
143
+ '#<Twilio.IpMessaging.V2.CredentialList>'
144
+ end
145
+ end
146
+
147
+ class CredentialPage < Page
148
+ ##
149
+ # Initialize the CredentialPage
150
+ # @param [Version] version Version that contains the resource
151
+ # @param [Response] response Response from the API
152
+ # @param [Hash] solution Path solution for the resource
153
+ # @return [CredentialPage] CredentialPage
154
+ def initialize(version, response, solution)
155
+ super(version, response)
156
+
157
+ # Path Solution
158
+ @solution = solution
159
+ end
160
+
161
+ ##
162
+ # Build an instance of CredentialInstance
163
+ # @param [Hash] payload Payload response from the API
164
+ # @return [CredentialInstance] CredentialInstance
165
+ def get_instance(payload)
166
+ return CredentialInstance.new(
167
+ @version,
168
+ payload,
169
+ )
170
+ end
171
+
172
+ ##
173
+ # Provide a user friendly representation
174
+ def to_s
175
+ '<Twilio.IpMessaging.V2.CredentialPage>'
176
+ end
177
+ end
178
+
179
+ class CredentialContext < InstanceContext
180
+ ##
181
+ # Initialize the CredentialContext
182
+ # @param [Version] version Version that contains the resource
183
+ # @param [String] sid The sid
184
+ # @return [CredentialContext] CredentialContext
185
+ def initialize(version, sid)
186
+ super(version)
187
+
188
+ # Path Solution
189
+ @solution = {
190
+ sid: sid,
191
+ }
192
+ @uri = "/Credentials/#{@solution[:sid]}"
193
+ end
194
+
195
+ ##
196
+ # Fetch a CredentialInstance
197
+ # @return [CredentialInstance] Fetched CredentialInstance
198
+ def fetch
199
+ params = {}
200
+
201
+ payload = @version.fetch(
202
+ 'GET',
203
+ @uri,
204
+ params,
205
+ )
206
+
207
+ return CredentialInstance.new(
208
+ @version,
209
+ payload,
210
+ sid: @solution[:sid],
211
+ )
212
+ end
213
+
214
+ ##
215
+ # Update the CredentialInstance
216
+ # @param [String] friendly_name The friendly_name
217
+ # @param [String] certificate The certificate
218
+ # @param [String] private_key The private_key
219
+ # @param [Boolean] sandbox The sandbox
220
+ # @param [String] api_key The api_key
221
+ # @param [String] secret The secret
222
+ # @return [CredentialInstance] Updated CredentialInstance
223
+ def update(friendly_name: nil, certificate: nil, private_key: nil, sandbox: nil, api_key: nil, secret: nil)
224
+ data = {
225
+ 'FriendlyName' => friendly_name,
226
+ 'Certificate' => certificate,
227
+ 'PrivateKey' => private_key,
228
+ 'Sandbox' => sandbox,
229
+ 'ApiKey' => api_key,
230
+ 'Secret' => secret,
231
+ }
232
+
233
+ payload = @version.update(
234
+ 'POST',
235
+ @uri,
236
+ data: data,
237
+ )
238
+
239
+ return CredentialInstance.new(
240
+ @version,
241
+ payload,
242
+ sid: @solution[:sid],
243
+ )
244
+ end
245
+
246
+ ##
247
+ # Deletes the CredentialInstance
248
+ # @return [Boolean] true if delete succeeds, true otherwise
249
+ def delete
250
+ return @version.delete('delete', @uri)
251
+ end
252
+
253
+ ##
254
+ # Provide a user friendly representation
255
+ def to_s
256
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
257
+ "#<Twilio.IpMessaging.V2.CredentialContext #{context}>"
258
+ end
259
+ end
260
+
261
+ class CredentialInstance < InstanceResource
262
+ ##
263
+ # Initialize the CredentialInstance
264
+ # @param [Version] version Version that contains the resource
265
+ # @param [Hash] payload payload that contains response from Twilio
266
+ # @param [String] sid The sid
267
+ # @return [CredentialInstance] CredentialInstance
268
+ def initialize(version, payload, sid: nil)
269
+ super(version)
270
+
271
+ # Marshaled Properties
272
+ @properties = {
273
+ 'sid' => payload['sid'],
274
+ 'account_sid' => payload['account_sid'],
275
+ 'friendly_name' => payload['friendly_name'],
276
+ 'type' => payload['type'],
277
+ 'sandbox' => payload['sandbox'],
278
+ 'date_created' => Twilio.deserialize_iso8601(payload['date_created']),
279
+ 'date_updated' => Twilio.deserialize_iso8601(payload['date_updated']),
280
+ 'url' => payload['url'],
281
+ }
282
+
283
+ # Context
284
+ @instance_context = nil
285
+ @params = {
286
+ 'sid' => sid || @properties['sid'],
287
+ }
288
+ end
289
+
290
+ ##
291
+ # Generate an instance context for the instance, the context is capable of
292
+ # performing various actions. All instance actions are proxied to the context
293
+ # @param [Version] version Version that contains the resource
294
+ # @return [CredentialContext] CredentialContext for this CredentialInstance
295
+ def context
296
+ unless @instance_context
297
+ @instance_context = CredentialContext.new(
298
+ @version,
299
+ @params['sid'],
300
+ )
301
+ end
302
+ @instance_context
303
+ end
304
+
305
+ def sid
306
+ @properties['sid']
307
+ end
308
+
309
+ def account_sid
310
+ @properties['account_sid']
311
+ end
312
+
313
+ def friendly_name
314
+ @properties['friendly_name']
315
+ end
316
+
317
+ def type
318
+ @properties['type']
319
+ end
320
+
321
+ def sandbox
322
+ @properties['sandbox']
323
+ end
324
+
325
+ def date_created
326
+ @properties['date_created']
327
+ end
328
+
329
+ def date_updated
330
+ @properties['date_updated']
331
+ end
332
+
333
+ def url
334
+ @properties['url']
335
+ end
336
+
337
+ ##
338
+ # Fetch a CredentialInstance
339
+ # @return [CredentialInstance] Fetched CredentialInstance
340
+ def fetch
341
+ context.fetch
342
+ end
343
+
344
+ ##
345
+ # Update the CredentialInstance
346
+ # @param [String] friendly_name The friendly_name
347
+ # @param [String] certificate The certificate
348
+ # @param [String] private_key The private_key
349
+ # @param [Boolean] sandbox The sandbox
350
+ # @param [String] api_key The api_key
351
+ # @param [String] secret The secret
352
+ # @return [CredentialInstance] Updated CredentialInstance
353
+ def update(friendly_name: nil, certificate: nil, private_key: nil, sandbox: nil, api_key: nil, secret: nil)
354
+ context.update(
355
+ friendly_name: friendly_name,
356
+ certificate: certificate,
357
+ private_key: private_key,
358
+ sandbox: sandbox,
359
+ api_key: api_key,
360
+ secret: secret,
361
+ )
362
+ end
363
+
364
+ ##
365
+ # Deletes the CredentialInstance
366
+ # @return [Boolean] true if delete succeeds, true otherwise
367
+ def delete
368
+ context.delete
369
+ end
370
+
371
+ ##
372
+ # Provide a user friendly representation
373
+ def to_s
374
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
375
+ "<Twilio.IpMessaging.V2.CredentialInstance #{values}>"
376
+ end
377
+ end
378
+ end
379
+ end
380
+ end
381
+ end
@@ -0,0 +1,633 @@
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 ServiceList < ListResource
12
+ ##
13
+ # Initialize the ServiceList
14
+ # @param [Version] version Version that contains the resource
15
+ # @return [ServiceList] ServiceList
16
+ def initialize(version)
17
+ super(version)
18
+
19
+ # Path Solution
20
+ @solution = {}
21
+ @uri = "/Services"
22
+ end
23
+
24
+ ##
25
+ # Retrieve a single page of ServiceInstance records from the API.
26
+ # Request is executed immediately.
27
+ # @param [String] friendly_name The friendly_name
28
+ # @return [ServiceInstance] Newly created ServiceInstance
29
+ def create(friendly_name: nil)
30
+ data = {
31
+ 'FriendlyName' => friendly_name,
32
+ }
33
+
34
+ payload = @version.create(
35
+ 'POST',
36
+ @uri,
37
+ data: data
38
+ )
39
+
40
+ return ServiceInstance.new(
41
+ @version,
42
+ payload,
43
+ )
44
+ end
45
+
46
+ ##
47
+ # Lists ServiceInstance records from the API as a list.
48
+ # Unlike stream(), this operation is eager and will load `limit` records into
49
+ # memory before returning.
50
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
51
+ # guarantees to never return more than limit. Default is no limit
52
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
53
+ # the default value of 50 records. If no page_size is defined
54
+ # but a limit is defined, stream() will attempt to read the
55
+ # limit with the most efficient page size, i.e. min(limit, 1000)
56
+ # @return [Array] Array of up to limit results
57
+ def list(limit: nil, page_size: nil)
58
+ self.stream(
59
+ limit: limit,
60
+ page_size: page_size
61
+ ).entries
62
+ end
63
+
64
+ ##
65
+ # Streams ServiceInstance records from the API as an Enumerable.
66
+ # This operation lazily loads records as efficiently as possible until the limit
67
+ # is reached.
68
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
69
+ # guarantees to never return more than limit. Default is no limit
70
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
71
+ # the default value of 50 records. If no page_size is defined
72
+ # but a limit is defined, stream() will attempt to read the
73
+ # limit with the most efficient page size, i.e. min(limit, 1000)
74
+ # @return [Enumerable] Enumerable that will yield up to limit results
75
+ def stream(limit: nil, page_size: nil)
76
+ limits = @version.read_limits(limit, page_size)
77
+
78
+ page = self.page(
79
+ page_size: limits[:page_size],
80
+ )
81
+
82
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
83
+ end
84
+
85
+ ##
86
+ # When passed a block, yields ServiceInstance records from the API.
87
+ # This operation lazily loads records as efficiently as possible until the limit
88
+ # is reached.
89
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
90
+ # guarantees to never return more than limit. Default is no limit
91
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
92
+ # the default value of 50 records. If no page_size is defined
93
+ # but a limit is defined, stream() will attempt to read the
94
+ # limit with the most efficient page size, i.e. min(limit, 1000)
95
+ def each
96
+ limits = @version.read_limits
97
+
98
+ page = self.page(
99
+ page_size: limits[:page_size],
100
+ )
101
+
102
+ @version.stream(page,
103
+ limit: limits[:limit],
104
+ page_limit: limits[:page_limit]).each {|x| yield x}
105
+ end
106
+
107
+ ##
108
+ # Retrieve a single page of ServiceInstance records from the API.
109
+ # Request is executed immediately.
110
+ # @param [String] page_token PageToken provided by the API
111
+ # @param [Integer] page_number Page Number, this value is simply for client state
112
+ # @param [Integer] page_size Number of records to return, defaults to 50
113
+ # @return [Page] Page of ServiceInstance
114
+ def page(page_token: nil, page_number: nil, page_size: nil)
115
+ params = {
116
+ 'PageToken' => page_token,
117
+ 'Page' => page_number,
118
+ 'PageSize' => page_size,
119
+ }
120
+ response = @version.page(
121
+ 'GET',
122
+ @uri,
123
+ params
124
+ )
125
+ return ServicePage.new(@version, response, @solution)
126
+ end
127
+
128
+ ##
129
+ # Provide a user friendly representation
130
+ def to_s
131
+ '#<Twilio.IpMessaging.V2.ServiceList>'
132
+ end
133
+ end
134
+
135
+ class ServicePage < Page
136
+ ##
137
+ # Initialize the ServicePage
138
+ # @param [Version] version Version that contains the resource
139
+ # @param [Response] response Response from the API
140
+ # @param [Hash] solution Path solution for the resource
141
+ # @return [ServicePage] ServicePage
142
+ def initialize(version, response, solution)
143
+ super(version, response)
144
+
145
+ # Path Solution
146
+ @solution = solution
147
+ end
148
+
149
+ ##
150
+ # Build an instance of ServiceInstance
151
+ # @param [Hash] payload Payload response from the API
152
+ # @return [ServiceInstance] ServiceInstance
153
+ def get_instance(payload)
154
+ return ServiceInstance.new(
155
+ @version,
156
+ payload,
157
+ )
158
+ end
159
+
160
+ ##
161
+ # Provide a user friendly representation
162
+ def to_s
163
+ '<Twilio.IpMessaging.V2.ServicePage>'
164
+ end
165
+ end
166
+
167
+ class ServiceContext < InstanceContext
168
+ ##
169
+ # Initialize the ServiceContext
170
+ # @param [Version] version Version that contains the resource
171
+ # @param [String] sid The sid
172
+ # @return [ServiceContext] ServiceContext
173
+ def initialize(version, sid)
174
+ super(version)
175
+
176
+ # Path Solution
177
+ @solution = {
178
+ sid: sid,
179
+ }
180
+ @uri = "/Services/#{@solution[:sid]}"
181
+
182
+ # Dependents
183
+ @channels = nil
184
+ @roles = nil
185
+ @users = nil
186
+ end
187
+
188
+ ##
189
+ # Fetch a ServiceInstance
190
+ # @return [ServiceInstance] Fetched ServiceInstance
191
+ def fetch
192
+ params = {}
193
+
194
+ payload = @version.fetch(
195
+ 'GET',
196
+ @uri,
197
+ params,
198
+ )
199
+
200
+ return ServiceInstance.new(
201
+ @version,
202
+ payload,
203
+ sid: @solution[:sid],
204
+ )
205
+ end
206
+
207
+ ##
208
+ # Deletes the ServiceInstance
209
+ # @return [Boolean] true if delete succeeds, true otherwise
210
+ def delete
211
+ return @version.delete('delete', @uri)
212
+ end
213
+
214
+ ##
215
+ # Update the ServiceInstance
216
+ # @param [String] friendly_name The friendly_name
217
+ # @param [String] default_service_role_sid The default_service_role_sid
218
+ # @param [String] default_channel_role_sid The default_channel_role_sid
219
+ # @param [String] default_channel_creator_role_sid The
220
+ # default_channel_creator_role_sid
221
+ # @param [Boolean] read_status_enabled The read_status_enabled
222
+ # @param [Boolean] reachability_enabled The reachability_enabled
223
+ # @param [String] typing_indicator_timeout The typing_indicator_timeout
224
+ # @param [String] consumption_report_interval The consumption_report_interval
225
+ # @param [Boolean] notifications_new_message_enabled The
226
+ # notifications.new_message.enabled
227
+ # @param [String] notifications_new_message_template The
228
+ # notifications.new_message.template
229
+ # @param [String] notifications_new_message_sound The
230
+ # notifications.new_message.sound
231
+ # @param [Boolean] notifications_new_message_badge_count_enabled The
232
+ # notifications.new_message.badge_count_enabled
233
+ # @param [Boolean] notifications_added_to_channel_enabled The
234
+ # notifications.added_to_channel.enabled
235
+ # @param [String] notifications_added_to_channel_template The
236
+ # notifications.added_to_channel.template
237
+ # @param [String] notifications_added_to_channel_sound The
238
+ # notifications.added_to_channel.sound
239
+ # @param [Boolean] notifications_removed_from_channel_enabled The
240
+ # notifications.removed_from_channel.enabled
241
+ # @param [String] notifications_removed_from_channel_template The
242
+ # notifications.removed_from_channel.template
243
+ # @param [String] notifications_removed_from_channel_sound The
244
+ # notifications.removed_from_channel.sound
245
+ # @param [Boolean] notifications_invited_to_channel_enabled The
246
+ # notifications.invited_to_channel.enabled
247
+ # @param [String] notifications_invited_to_channel_template The
248
+ # notifications.invited_to_channel.template
249
+ # @param [String] notifications_invited_to_channel_sound The
250
+ # notifications.invited_to_channel.sound
251
+ # @param [String] pre_webhook_url The pre_webhook_url
252
+ # @param [String] post_webhook_url The post_webhook_url
253
+ # @param [String] webhook_method The webhook_method
254
+ # @param [String] webhook_filters The webhook_filters
255
+ # @param [String] limits_channel_members The limits.channel_members
256
+ # @param [String] limits_user_channels The limits.user_channels
257
+ # @return [ServiceInstance] Updated ServiceInstance
258
+ def update(friendly_name: nil, default_service_role_sid: nil, default_channel_role_sid: nil, default_channel_creator_role_sid: nil, read_status_enabled: nil, reachability_enabled: nil, typing_indicator_timeout: nil, consumption_report_interval: nil, notifications_new_message_enabled: nil, notifications_new_message_template: nil, notifications_new_message_sound: nil, notifications_new_message_badge_count_enabled: nil, notifications_added_to_channel_enabled: nil, notifications_added_to_channel_template: nil, notifications_added_to_channel_sound: nil, notifications_removed_from_channel_enabled: nil, notifications_removed_from_channel_template: nil, notifications_removed_from_channel_sound: nil, notifications_invited_to_channel_enabled: nil, notifications_invited_to_channel_template: nil, notifications_invited_to_channel_sound: nil, pre_webhook_url: nil, post_webhook_url: nil, webhook_method: nil, webhook_filters: nil, limits_channel_members: nil, limits_user_channels: nil)
259
+ data = {
260
+ 'FriendlyName' => friendly_name,
261
+ 'DefaultServiceRoleSid' => default_service_role_sid,
262
+ 'DefaultChannelRoleSid' => default_channel_role_sid,
263
+ 'DefaultChannelCreatorRoleSid' => default_channel_creator_role_sid,
264
+ 'ReadStatusEnabled' => read_status_enabled,
265
+ 'ReachabilityEnabled' => reachability_enabled,
266
+ 'TypingIndicatorTimeout' => typing_indicator_timeout,
267
+ 'ConsumptionReportInterval' => consumption_report_interval,
268
+ 'Notifications.NewMessage.Enabled' => notifications_new_message_enabled,
269
+ 'Notifications.NewMessage.Template' => notifications_new_message_template,
270
+ 'Notifications.NewMessage.Sound' => notifications_new_message_sound,
271
+ 'Notifications.NewMessage.BadgeCountEnabled' => notifications_new_message_badge_count_enabled,
272
+ 'Notifications.AddedToChannel.Enabled' => notifications_added_to_channel_enabled,
273
+ 'Notifications.AddedToChannel.Template' => notifications_added_to_channel_template,
274
+ 'Notifications.AddedToChannel.Sound' => notifications_added_to_channel_sound,
275
+ 'Notifications.RemovedFromChannel.Enabled' => notifications_removed_from_channel_enabled,
276
+ 'Notifications.RemovedFromChannel.Template' => notifications_removed_from_channel_template,
277
+ 'Notifications.RemovedFromChannel.Sound' => notifications_removed_from_channel_sound,
278
+ 'Notifications.InvitedToChannel.Enabled' => notifications_invited_to_channel_enabled,
279
+ 'Notifications.InvitedToChannel.Template' => notifications_invited_to_channel_template,
280
+ 'Notifications.InvitedToChannel.Sound' => notifications_invited_to_channel_sound,
281
+ 'PreWebhookUrl' => pre_webhook_url,
282
+ 'PostWebhookUrl' => post_webhook_url,
283
+ 'WebhookMethod' => webhook_method,
284
+ 'WebhookFilters' => webhook_filters,
285
+ 'Limits.ChannelMembers' => limits_channel_members,
286
+ 'Limits.UserChannels' => limits_user_channels,
287
+ }
288
+
289
+ payload = @version.update(
290
+ 'POST',
291
+ @uri,
292
+ data: data,
293
+ )
294
+
295
+ return ServiceInstance.new(
296
+ @version,
297
+ payload,
298
+ sid: @solution[:sid],
299
+ )
300
+ end
301
+
302
+ ##
303
+ # Access the channels
304
+ # @return [ChannelList] ChannelList
305
+ def channels(sid=:unset)
306
+ if sid != :unset
307
+ return ChannelContext.new(
308
+ @version,
309
+ @solution[:sid],
310
+ sid,
311
+ )
312
+ end
313
+
314
+ unless @channels
315
+ @channels = ChannelList.new(
316
+ @version,
317
+ service_sid: @solution[:sid],
318
+ )
319
+ end
320
+
321
+ @channels
322
+ end
323
+
324
+ ##
325
+ # Access the roles
326
+ # @return [RoleList] RoleList
327
+ def roles(sid=:unset)
328
+ if sid != :unset
329
+ return RoleContext.new(
330
+ @version,
331
+ @solution[:sid],
332
+ sid,
333
+ )
334
+ end
335
+
336
+ unless @roles
337
+ @roles = RoleList.new(
338
+ @version,
339
+ service_sid: @solution[:sid],
340
+ )
341
+ end
342
+
343
+ @roles
344
+ end
345
+
346
+ ##
347
+ # Access the users
348
+ # @return [UserList] UserList
349
+ def users(sid=:unset)
350
+ if sid != :unset
351
+ return UserContext.new(
352
+ @version,
353
+ @solution[:sid],
354
+ sid,
355
+ )
356
+ end
357
+
358
+ unless @users
359
+ @users = UserList.new(
360
+ @version,
361
+ service_sid: @solution[:sid],
362
+ )
363
+ end
364
+
365
+ @users
366
+ end
367
+
368
+ ##
369
+ # Provide a user friendly representation
370
+ def to_s
371
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
372
+ "#<Twilio.IpMessaging.V2.ServiceContext #{context}>"
373
+ end
374
+ end
375
+
376
+ class ServiceInstance < InstanceResource
377
+ ##
378
+ # Initialize the ServiceInstance
379
+ # @param [Version] version Version that contains the resource
380
+ # @param [Hash] payload payload that contains response from Twilio
381
+ # @param [String] sid The sid
382
+ # @return [ServiceInstance] ServiceInstance
383
+ def initialize(version, payload, sid: nil)
384
+ super(version)
385
+
386
+ # Marshaled Properties
387
+ @properties = {
388
+ 'sid' => payload['sid'],
389
+ 'account_sid' => payload['account_sid'],
390
+ 'friendly_name' => payload['friendly_name'],
391
+ 'date_created' => Twilio.deserialize_iso8601(payload['date_created']),
392
+ 'date_updated' => Twilio.deserialize_iso8601(payload['date_updated']),
393
+ 'default_service_role_sid' => payload['default_service_role_sid'],
394
+ 'default_channel_role_sid' => payload['default_channel_role_sid'],
395
+ 'default_channel_creator_role_sid' => payload['default_channel_creator_role_sid'],
396
+ 'read_status_enabled' => payload['read_status_enabled'],
397
+ 'reachability_enabled' => payload['reachability_enabled'],
398
+ 'typing_indicator_timeout' => payload['typing_indicator_timeout'].to_i,
399
+ 'consumption_report_interval' => payload['consumption_report_interval'].to_i,
400
+ 'limits' => payload['limits'],
401
+ 'pre_webhook_url' => payload['pre_webhook_url'],
402
+ 'post_webhook_url' => payload['post_webhook_url'],
403
+ 'webhook_method' => payload['webhook_method'],
404
+ 'webhook_filters' => payload['webhook_filters'],
405
+ 'notifications' => payload['notifications'],
406
+ 'url' => payload['url'],
407
+ 'links' => payload['links'],
408
+ }
409
+
410
+ # Context
411
+ @instance_context = nil
412
+ @params = {
413
+ 'sid' => sid || @properties['sid'],
414
+ }
415
+ end
416
+
417
+ ##
418
+ # Generate an instance context for the instance, the context is capable of
419
+ # performing various actions. All instance actions are proxied to the context
420
+ # @param [Version] version Version that contains the resource
421
+ # @return [ServiceContext] ServiceContext for this ServiceInstance
422
+ def context
423
+ unless @instance_context
424
+ @instance_context = ServiceContext.new(
425
+ @version,
426
+ @params['sid'],
427
+ )
428
+ end
429
+ @instance_context
430
+ end
431
+
432
+ def sid
433
+ @properties['sid']
434
+ end
435
+
436
+ def account_sid
437
+ @properties['account_sid']
438
+ end
439
+
440
+ def friendly_name
441
+ @properties['friendly_name']
442
+ end
443
+
444
+ def date_created
445
+ @properties['date_created']
446
+ end
447
+
448
+ def date_updated
449
+ @properties['date_updated']
450
+ end
451
+
452
+ def default_service_role_sid
453
+ @properties['default_service_role_sid']
454
+ end
455
+
456
+ def default_channel_role_sid
457
+ @properties['default_channel_role_sid']
458
+ end
459
+
460
+ def default_channel_creator_role_sid
461
+ @properties['default_channel_creator_role_sid']
462
+ end
463
+
464
+ def read_status_enabled
465
+ @properties['read_status_enabled']
466
+ end
467
+
468
+ def reachability_enabled
469
+ @properties['reachability_enabled']
470
+ end
471
+
472
+ def typing_indicator_timeout
473
+ @properties['typing_indicator_timeout']
474
+ end
475
+
476
+ def consumption_report_interval
477
+ @properties['consumption_report_interval']
478
+ end
479
+
480
+ def limits
481
+ @properties['limits']
482
+ end
483
+
484
+ def pre_webhook_url
485
+ @properties['pre_webhook_url']
486
+ end
487
+
488
+ def post_webhook_url
489
+ @properties['post_webhook_url']
490
+ end
491
+
492
+ def webhook_method
493
+ @properties['webhook_method']
494
+ end
495
+
496
+ def webhook_filters
497
+ @properties['webhook_filters']
498
+ end
499
+
500
+ def notifications
501
+ @properties['notifications']
502
+ end
503
+
504
+ def url
505
+ @properties['url']
506
+ end
507
+
508
+ def links
509
+ @properties['links']
510
+ end
511
+
512
+ ##
513
+ # Fetch a ServiceInstance
514
+ # @return [ServiceInstance] Fetched ServiceInstance
515
+ def fetch
516
+ context.fetch
517
+ end
518
+
519
+ ##
520
+ # Deletes the ServiceInstance
521
+ # @return [Boolean] true if delete succeeds, true otherwise
522
+ def delete
523
+ context.delete
524
+ end
525
+
526
+ ##
527
+ # Update the ServiceInstance
528
+ # @param [String] friendly_name The friendly_name
529
+ # @param [String] default_service_role_sid The default_service_role_sid
530
+ # @param [String] default_channel_role_sid The default_channel_role_sid
531
+ # @param [String] default_channel_creator_role_sid The
532
+ # default_channel_creator_role_sid
533
+ # @param [Boolean] read_status_enabled The read_status_enabled
534
+ # @param [Boolean] reachability_enabled The reachability_enabled
535
+ # @param [String] typing_indicator_timeout The typing_indicator_timeout
536
+ # @param [String] consumption_report_interval The consumption_report_interval
537
+ # @param [Boolean] notifications_new_message_enabled The
538
+ # notifications.new_message.enabled
539
+ # @param [String] notifications_new_message_template The
540
+ # notifications.new_message.template
541
+ # @param [String] notifications_new_message_sound The
542
+ # notifications.new_message.sound
543
+ # @param [Boolean] notifications_new_message_badge_count_enabled The
544
+ # notifications.new_message.badge_count_enabled
545
+ # @param [Boolean] notifications_added_to_channel_enabled The
546
+ # notifications.added_to_channel.enabled
547
+ # @param [String] notifications_added_to_channel_template The
548
+ # notifications.added_to_channel.template
549
+ # @param [String] notifications_added_to_channel_sound The
550
+ # notifications.added_to_channel.sound
551
+ # @param [Boolean] notifications_removed_from_channel_enabled The
552
+ # notifications.removed_from_channel.enabled
553
+ # @param [String] notifications_removed_from_channel_template The
554
+ # notifications.removed_from_channel.template
555
+ # @param [String] notifications_removed_from_channel_sound The
556
+ # notifications.removed_from_channel.sound
557
+ # @param [Boolean] notifications_invited_to_channel_enabled The
558
+ # notifications.invited_to_channel.enabled
559
+ # @param [String] notifications_invited_to_channel_template The
560
+ # notifications.invited_to_channel.template
561
+ # @param [String] notifications_invited_to_channel_sound The
562
+ # notifications.invited_to_channel.sound
563
+ # @param [String] pre_webhook_url The pre_webhook_url
564
+ # @param [String] post_webhook_url The post_webhook_url
565
+ # @param [String] webhook_method The webhook_method
566
+ # @param [String] webhook_filters The webhook_filters
567
+ # @param [String] limits_channel_members The limits.channel_members
568
+ # @param [String] limits_user_channels The limits.user_channels
569
+ # @return [ServiceInstance] Updated ServiceInstance
570
+ def update(friendly_name: nil, default_service_role_sid: nil, default_channel_role_sid: nil, default_channel_creator_role_sid: nil, read_status_enabled: nil, reachability_enabled: nil, typing_indicator_timeout: nil, consumption_report_interval: nil, notifications_new_message_enabled: nil, notifications_new_message_template: nil, notifications_new_message_sound: nil, notifications_new_message_badge_count_enabled: nil, notifications_added_to_channel_enabled: nil, notifications_added_to_channel_template: nil, notifications_added_to_channel_sound: nil, notifications_removed_from_channel_enabled: nil, notifications_removed_from_channel_template: nil, notifications_removed_from_channel_sound: nil, notifications_invited_to_channel_enabled: nil, notifications_invited_to_channel_template: nil, notifications_invited_to_channel_sound: nil, pre_webhook_url: nil, post_webhook_url: nil, webhook_method: nil, webhook_filters: nil, limits_channel_members: nil, limits_user_channels: nil)
571
+ context.update(
572
+ friendly_name: friendly_name,
573
+ default_service_role_sid: default_service_role_sid,
574
+ default_channel_role_sid: default_channel_role_sid,
575
+ default_channel_creator_role_sid: default_channel_creator_role_sid,
576
+ read_status_enabled: read_status_enabled,
577
+ reachability_enabled: reachability_enabled,
578
+ typing_indicator_timeout: typing_indicator_timeout,
579
+ consumption_report_interval: consumption_report_interval,
580
+ notifications_new_message_enabled: notifications_new_message_enabled,
581
+ notifications_new_message_template: notifications_new_message_template,
582
+ notifications_new_message_sound: notifications_new_message_sound,
583
+ notifications_new_message_badge_count_enabled: notifications_new_message_badge_count_enabled,
584
+ notifications_added_to_channel_enabled: notifications_added_to_channel_enabled,
585
+ notifications_added_to_channel_template: notifications_added_to_channel_template,
586
+ notifications_added_to_channel_sound: notifications_added_to_channel_sound,
587
+ notifications_removed_from_channel_enabled: notifications_removed_from_channel_enabled,
588
+ notifications_removed_from_channel_template: notifications_removed_from_channel_template,
589
+ notifications_removed_from_channel_sound: notifications_removed_from_channel_sound,
590
+ notifications_invited_to_channel_enabled: notifications_invited_to_channel_enabled,
591
+ notifications_invited_to_channel_template: notifications_invited_to_channel_template,
592
+ notifications_invited_to_channel_sound: notifications_invited_to_channel_sound,
593
+ pre_webhook_url: pre_webhook_url,
594
+ post_webhook_url: post_webhook_url,
595
+ webhook_method: webhook_method,
596
+ webhook_filters: webhook_filters,
597
+ limits_channel_members: limits_channel_members,
598
+ limits_user_channels: limits_user_channels,
599
+ )
600
+ end
601
+
602
+ ##
603
+ # Access the channels
604
+ # @return [channels] channels
605
+ def channels
606
+ context.channels
607
+ end
608
+
609
+ ##
610
+ # Access the roles
611
+ # @return [roles] roles
612
+ def roles
613
+ context.roles
614
+ end
615
+
616
+ ##
617
+ # Access the users
618
+ # @return [users] users
619
+ def users
620
+ context.users
621
+ end
622
+
623
+ ##
624
+ # Provide a user friendly representation
625
+ def to_s
626
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
627
+ "<Twilio.IpMessaging.V2.ServiceInstance #{values}>"
628
+ end
629
+ end
630
+ end
631
+ end
632
+ end
633
+ end