twilio-ruby 5.0.0.rc18 → 5.0.0.rc19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +9 -0
  3. data/lib/twilio-ruby/jwt/access_token.rb +25 -0
  4. data/lib/twilio-ruby/rest/accounts.rb +40 -0
  5. data/lib/twilio-ruby/rest/accounts/v1.rb +35 -0
  6. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +102 -0
  7. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +352 -0
  8. data/lib/twilio-ruby/rest/api.rb +30 -34
  9. data/lib/twilio-ruby/rest/api/v2010.rb +28 -32
  10. data/lib/twilio-ruby/rest/api/v2010/account.rb +132 -150
  11. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +71 -55
  12. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +29 -29
  13. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +58 -58
  14. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +37 -37
  15. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +45 -45
  16. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +39 -39
  17. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +39 -39
  18. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +39 -39
  19. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +102 -123
  20. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +33 -33
  21. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +38 -38
  22. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +52 -52
  23. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +42 -37
  24. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +83 -40
  25. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +131 -43
  26. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +42 -42
  27. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +172 -96
  28. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +404 -0
  29. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +332 -0
  30. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +62 -57
  31. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +62 -57
  32. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +62 -57
  33. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +37 -37
  34. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +78 -85
  35. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +19 -19
  36. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +47 -57
  37. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +18 -18
  38. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +18 -18
  39. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +46 -46
  40. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +40 -40
  41. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +50 -50
  42. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +36 -36
  43. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +101 -68
  44. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +372 -0
  45. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +356 -0
  46. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +42 -42
  47. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +43 -43
  48. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +37 -37
  49. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +27 -16
  50. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +48 -48
  51. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +43 -43
  52. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +65 -60
  53. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +43 -38
  54. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +43 -38
  55. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +48 -48
  56. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +44 -44
  57. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +20 -20
  58. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +42 -42
  59. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +13 -13
  60. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +78 -82
  61. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +45 -73
  62. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +45 -73
  63. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +45 -73
  64. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +45 -73
  65. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +45 -73
  66. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +45 -73
  67. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +45 -73
  68. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +45 -73
  69. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +52 -52
  70. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +18 -18
  71. data/lib/twilio-ruby/rest/chat.rb +16 -9
  72. data/lib/twilio-ruby/rest/chat/v1.rb +4 -4
  73. data/lib/twilio-ruby/rest/chat/v1/credential.rb +53 -47
  74. data/lib/twilio-ruby/rest/chat/v1/service.rb +446 -69
  75. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +114 -69
  76. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +363 -0
  77. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +99 -44
  78. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +76 -54
  79. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +45 -45
  80. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +101 -46
  81. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +223 -0
  82. data/lib/twilio-ruby/rest/chat/v2.rb +44 -0
  83. data/lib/twilio-ruby/rest/chat/v2/credential.rb +381 -0
  84. data/lib/twilio-ruby/rest/chat/v2/service.rb +633 -0
  85. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +513 -0
  86. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +363 -0
  87. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +406 -0
  88. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +418 -0
  89. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +373 -0
  90. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +433 -0
  91. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +223 -0
  92. data/lib/twilio-ruby/rest/client.rb +91 -75
  93. data/lib/twilio-ruby/rest/fax.rb +40 -0
  94. data/lib/twilio-ruby/rest/fax/v1.rb +35 -0
  95. data/lib/twilio-ruby/rest/fax/v1/fax.rb +397 -0
  96. data/lib/twilio-ruby/rest/ip_messaging.rb +16 -9
  97. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +4 -4
  98. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +53 -47
  99. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +446 -69
  100. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +114 -69
  101. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +363 -0
  102. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +99 -44
  103. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +76 -54
  104. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +45 -45
  105. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +101 -46
  106. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +223 -0
  107. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +44 -0
  108. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +381 -0
  109. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +633 -0
  110. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +513 -0
  111. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +363 -0
  112. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +406 -0
  113. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +418 -0
  114. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +373 -0
  115. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +433 -0
  116. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +223 -0
  117. data/lib/twilio-ruby/rest/lookups.rb +6 -6
  118. data/lib/twilio-ruby/rest/lookups/v1.rb +3 -3
  119. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +30 -25
  120. data/lib/twilio-ruby/rest/messaging.rb +40 -0
  121. data/lib/twilio-ruby/rest/messaging/v1.rb +35 -0
  122. data/lib/twilio-ruby/rest/messaging/v1/service.rb +524 -0
  123. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +331 -0
  124. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +336 -0
  125. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +336 -0
  126. data/lib/twilio-ruby/rest/monitor.rb +7 -7
  127. data/lib/twilio-ruby/rest/monitor/v1.rb +4 -4
  128. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +57 -85
  129. data/lib/twilio-ruby/rest/monitor/v1/event.rb +63 -81
  130. data/lib/twilio-ruby/rest/notify.rb +7 -7
  131. data/lib/twilio-ruby/rest/notify/v1.rb +4 -4
  132. data/lib/twilio-ruby/rest/notify/v1/credential.rb +53 -47
  133. data/lib/twilio-ruby/rest/notify/v1/service.rb +148 -60
  134. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +70 -86
  135. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +47 -33
  136. data/lib/twilio-ruby/rest/notify/v1/service/segment.rb +206 -0
  137. data/lib/twilio-ruby/rest/notify/v1/service/user.rb +418 -0
  138. data/lib/twilio-ruby/rest/notify/v1/service/user/segment_memberships.rb +247 -0
  139. data/lib/twilio-ruby/rest/notify/v1/service/user/user_binding.rb +405 -0
  140. data/lib/twilio-ruby/rest/preview.rb +34 -19
  141. data/lib/twilio-ruby/rest/preview/marketplace.rb +44 -0
  142. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +310 -0
  143. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +284 -0
  144. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +411 -0
  145. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +322 -0
  146. data/lib/twilio-ruby/rest/preview/sync.rb +3 -3
  147. data/lib/twilio-ruby/rest/preview/sync/service.rb +72 -61
  148. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +85 -46
  149. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +377 -0
  150. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +79 -47
  151. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +46 -46
  152. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +377 -0
  153. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +79 -47
  154. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +46 -46
  155. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +377 -0
  156. data/lib/twilio-ruby/rest/preview/wireless.rb +12 -12
  157. data/lib/twilio-ruby/rest/preview/wireless/command.rb +68 -45
  158. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +137 -73
  159. data/lib/twilio-ruby/rest/preview/wireless/{device.rb → sim.rb} +127 -150
  160. data/lib/twilio-ruby/rest/preview/wireless/{device → sim}/usage.rb +49 -49
  161. data/lib/twilio-ruby/rest/pricing.rb +8 -8
  162. data/lib/twilio-ruby/rest/pricing/v1.rb +5 -5
  163. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +16 -16
  164. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +33 -33
  165. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +16 -16
  166. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +33 -38
  167. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +18 -18
  168. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +33 -33
  169. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +26 -26
  170. data/lib/twilio-ruby/rest/taskrouter.rb +6 -6
  171. data/lib/twilio-ruby/rest/taskrouter/v1.rb +3 -3
  172. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +103 -82
  173. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +48 -43
  174. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +42 -42
  175. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +114 -75
  176. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +50 -40
  177. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +35 -35
  178. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +110 -78
  179. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +31 -30
  180. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +24 -24
  181. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +71 -61
  182. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +50 -40
  183. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +45 -45
  184. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +28 -23
  185. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +28 -23
  186. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +60 -50
  187. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +29 -24
  188. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +34 -29
  189. data/lib/twilio-ruby/rest/trunking.rb +6 -6
  190. data/lib/twilio-ruby/rest/trunking/v1.rb +3 -3
  191. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +67 -67
  192. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +39 -39
  193. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +39 -39
  194. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +47 -47
  195. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +58 -58
  196. data/lib/twilio-ruby/rest/video.rb +44 -0
  197. data/lib/twilio-ruby/rest/video/v1.rb +44 -0
  198. data/lib/twilio-ruby/rest/video/v1/recording.rb +341 -0
  199. data/lib/twilio-ruby/rest/video/v1/room.rb +411 -0
  200. data/lib/twilio-ruby/version.rb +1 -1
  201. data/spec/integration/accounts/v1/credential/public_key_spec.rb +226 -0
  202. data/spec/integration/accounts/v1/credential_spec.rb +10 -0
  203. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +7 -7
  204. data/spec/integration/api/v2010/account/address_spec.rb +32 -24
  205. data/spec/integration/api/v2010/account/application_spec.rb +24 -24
  206. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +11 -11
  207. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +7 -7
  208. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +7 -7
  209. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +7 -7
  210. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +11 -11
  211. data/spec/integration/api/v2010/account/call/feedback_spec.rb +14 -14
  212. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +14 -14
  213. data/spec/integration/api/v2010/account/call/notification_spec.rb +15 -15
  214. data/spec/integration/api/v2010/account/call/recording_spec.rb +15 -15
  215. data/spec/integration/api/v2010/account/call_spec.rb +24 -24
  216. data/spec/integration/api/v2010/account/conference/participant_spec.rb +97 -25
  217. data/spec/integration/api/v2010/account/conference_spec.rb +56 -17
  218. data/spec/integration/api/v2010/account/connect_app_spec.rb +15 -15
  219. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +135 -0
  220. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +223 -0
  221. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +12 -12
  222. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +12 -12
  223. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +12 -12
  224. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +32 -24
  225. data/spec/integration/api/v2010/account/key_spec.rb +19 -19
  226. data/spec/integration/api/v2010/account/message/feedback_spec.rb +25 -3
  227. data/spec/integration/api/v2010/account/message/media_spec.rb +15 -15
  228. data/spec/integration/api/v2010/account/message_spec.rb +34 -27
  229. data/spec/integration/api/v2010/account/new_key_spec.rb +5 -5
  230. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +5 -5
  231. data/spec/integration/api/v2010/account/notification_spec.rb +15 -15
  232. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +19 -19
  233. data/spec/integration/api/v2010/account/queue/member_spec.rb +15 -15
  234. data/spec/integration/api/v2010/account/queue_spec.rb +30 -27
  235. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +175 -0
  236. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +166 -0
  237. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +15 -15
  238. data/spec/integration/api/v2010/account/recording_spec.rb +16 -16
  239. data/spec/integration/api/v2010/account/short_code_spec.rb +15 -15
  240. data/spec/integration/api/v2010/account/signing_key_spec.rb +19 -19
  241. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +24 -24
  242. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +24 -24
  243. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +20 -20
  244. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +20 -20
  245. data/spec/integration/api/v2010/account/sip/domain_spec.rb +24 -24
  246. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +24 -24
  247. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +24 -24
  248. data/spec/integration/api/v2010/account/sip_spec.rb +1 -1
  249. data/spec/integration/api/v2010/account/token_spec.rb +6 -6
  250. data/spec/integration/api/v2010/account/transcription_spec.rb +15 -15
  251. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +7 -7
  252. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +7 -7
  253. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +7 -7
  254. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +7 -7
  255. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +7 -7
  256. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +7 -7
  257. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +7 -7
  258. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +7 -7
  259. data/spec/integration/api/v2010/account/usage/record_spec.rb +7 -7
  260. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +27 -27
  261. data/spec/integration/api/v2010/account/usage_spec.rb +1 -1
  262. data/spec/integration/api/v2010/account/validation_request_spec.rb +23 -3
  263. data/spec/integration/api/v2010/account_spec.rb +20 -24
  264. data/spec/integration/chat/v1/credential_spec.rb +31 -31
  265. data/spec/integration/chat/v1/service/channel/invite_spec.rb +210 -0
  266. data/spec/integration/chat/v1/service/channel/member_spec.rb +102 -31
  267. data/spec/integration/chat/v1/service/channel/message_spec.rb +210 -16
  268. data/spec/integration/chat/v1/service/channel_spec.rb +71 -55
  269. data/spec/integration/chat/v1/service/role_spec.rb +33 -33
  270. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +92 -0
  271. data/spec/integration/chat/v1/service/user_spec.rb +57 -33
  272. data/spec/integration/chat/v1/service_spec.rb +142 -106
  273. data/spec/integration/chat/v2/credential_spec.rb +223 -0
  274. data/spec/integration/chat/v2/service/channel/invite_spec.rb +210 -0
  275. data/spec/integration/chat/v2/service/channel/member_spec.rb +284 -0
  276. data/spec/integration/chat/v2/service/channel/message_spec.rb +294 -0
  277. data/spec/integration/chat/v2/service/channel_spec.rb +275 -0
  278. data/spec/integration/chat/v2/service/role_spec.rb +263 -0
  279. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +92 -0
  280. data/spec/integration/chat/v2/service/user_spec.rb +266 -0
  281. data/spec/integration/chat/v2/service_spec.rb +325 -0
  282. data/spec/integration/fax/v1/fax_spec.rb +231 -0
  283. data/spec/integration/ip_messaging/v1/credential_spec.rb +31 -31
  284. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +210 -0
  285. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +102 -31
  286. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +210 -16
  287. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +71 -55
  288. data/spec/integration/ip_messaging/v1/service/role_spec.rb +33 -33
  289. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +92 -0
  290. data/spec/integration/ip_messaging/v1/service/user_spec.rb +57 -33
  291. data/spec/integration/ip_messaging/v1/service_spec.rb +142 -106
  292. data/spec/integration/ip_messaging/v2/credential_spec.rb +223 -0
  293. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +210 -0
  294. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +284 -0
  295. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +294 -0
  296. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +275 -0
  297. data/spec/integration/ip_messaging/v2/service/role_spec.rb +263 -0
  298. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +92 -0
  299. data/spec/integration/ip_messaging/v2/service/user_spec.rb +266 -0
  300. data/spec/integration/ip_messaging/v2/service_spec.rb +325 -0
  301. data/spec/integration/lookups/v1/phone_number_spec.rb +5 -5
  302. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +170 -0
  303. data/spec/integration/messaging/v1/service/phone_number_spec.rb +173 -0
  304. data/spec/integration/messaging/v1/service/short_code_spec.rb +173 -0
  305. data/spec/integration/messaging/v1/service_spec.rb +243 -0
  306. data/spec/integration/monitor/v1/alert_spec.rb +57 -57
  307. data/spec/integration/monitor/v1/event_spec.rb +11 -11
  308. data/spec/integration/notify/v1/credential_spec.rb +23 -23
  309. data/spec/integration/notify/v1/service/binding_spec.rb +88 -71
  310. data/spec/integration/notify/v1/service/notification_spec.rb +7 -5
  311. data/spec/integration/notify/v1/service/segment_spec.rb +84 -0
  312. data/spec/integration/notify/v1/service/user/segment_memberships_spec.rb +118 -0
  313. data/spec/integration/notify/v1/service/user/user_binding_spec.rb +235 -0
  314. data/spec/integration/notify/v1/service/user_spec.rb +213 -0
  315. data/spec/integration/notify/v1/service_spec.rb +50 -30
  316. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +121 -0
  317. data/spec/integration/preview/marketplace/available_add_on_spec.rb +142 -0
  318. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +164 -0
  319. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +252 -0
  320. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +206 -0
  321. data/spec/integration/preview/sync/service/document_spec.rb +179 -17
  322. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +167 -11
  323. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +206 -0
  324. data/spec/integration/preview/sync/service/sync_list_spec.rb +143 -9
  325. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +167 -11
  326. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +206 -0
  327. data/spec/integration/preview/sync/service/sync_map_spec.rb +143 -9
  328. data/spec/integration/preview/sync/service_spec.rb +171 -11
  329. data/spec/integration/preview/wireless/command_spec.rb +120 -9
  330. data/spec/integration/preview/wireless/rate_plan_spec.rb +228 -7
  331. data/spec/integration/preview/wireless/sim/usage_spec.rb +49 -0
  332. data/spec/integration/preview/wireless/sim_spec.rb +184 -0
  333. data/spec/integration/pricing/v1/messaging/country_spec.rb +101 -5
  334. data/spec/integration/pricing/v1/messaging_spec.rb +1 -1
  335. data/spec/integration/pricing/v1/phone_number/country_spec.rb +11 -11
  336. data/spec/integration/pricing/v1/phone_number_spec.rb +1 -1
  337. data/spec/integration/pricing/v1/voice/country_spec.rb +11 -11
  338. data/spec/integration/pricing/v1/voice/number_spec.rb +5 -5
  339. data/spec/integration/pricing/v1/voice_spec.rb +1 -1
  340. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +29 -33
  341. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +11 -11
  342. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +15 -15
  343. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +11 -11
  344. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +12 -10
  345. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +17 -16
  346. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +52 -36
  347. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +101 -46
  348. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +15 -15
  349. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +15 -15
  350. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +6 -5
  351. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +6 -5
  352. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +39 -27
  353. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +13 -11
  354. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +47 -35
  355. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +10 -8
  356. data/spec/integration/taskrouter/v1/workspace_spec.rb +28 -24
  357. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +20 -20
  358. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +62 -62
  359. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +23 -23
  360. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +19 -19
  361. data/spec/integration/trunking/v1/trunk_spec.rb +23 -23
  362. data/spec/integration/video/v1/recording_spec.rb +120 -0
  363. data/spec/integration/video/v1/room_spec.rb +225 -0
  364. data/spec/jwt/access_token_spec.rb +22 -0
  365. metadata +158 -12
  366. data/lib/twilio-ruby/rest/api/v2010/account/sandbox.rb +0 -287
  367. data/spec/integration/api/v2010/account/sandbox_spec.rb +0 -99
  368. data/spec/integration/preview/wireless/device/usage_spec.rb +0 -25
  369. data/spec/integration/preview/wireless/device_spec.rb +0 -72
@@ -0,0 +1,44 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class 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