twilio-ruby 3.11.5 → 5.0.0

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 (435) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -1
  3. data/.rubocop.yml +21 -0
  4. data/.rubocop_todo.yml +187 -0
  5. data/.travis.yml +10 -10
  6. data/AUTHORS.md +21 -0
  7. data/CHANGES.md +351 -0
  8. data/Gemfile +8 -1
  9. data/{LICENSE → LICENSE.md} +13 -11
  10. data/Makefile +15 -3
  11. data/README.md +90 -95
  12. data/Rakefile +59 -7
  13. data/VERSIONS.md +64 -0
  14. data/examples/examples.rb +62 -49
  15. data/examples/{print-call-log.rb → print_call_log.rb} +7 -7
  16. data/lib/rack/twilio_webhook_authentication.rb +46 -0
  17. data/lib/twilio-ruby/framework/domain.rb +34 -0
  18. data/lib/twilio-ruby/framework/error.rb +30 -0
  19. data/lib/twilio-ruby/framework/helper.rb +9 -0
  20. data/lib/twilio-ruby/framework/page.rb +101 -0
  21. data/lib/twilio-ruby/framework/resource.rb +21 -0
  22. data/lib/twilio-ruby/framework/serialize.rb +70 -0
  23. data/lib/twilio-ruby/framework/twilio_response.rb +15 -0
  24. data/lib/twilio-ruby/framework/values.rb +7 -0
  25. data/lib/twilio-ruby/framework/version.rb +164 -0
  26. data/lib/twilio-ruby/http/http_client.rb +46 -0
  27. data/lib/twilio-ruby/jwt/access_token.rb +232 -0
  28. data/lib/twilio-ruby/jwt/client_capability.rb +102 -0
  29. data/lib/twilio-ruby/jwt/jwt.rb +50 -0
  30. data/lib/twilio-ruby/jwt/task_router.rb +174 -0
  31. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +370 -0
  32. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +105 -0
  33. data/lib/twilio-ruby/rest/accounts/v1.rb +39 -0
  34. data/lib/twilio-ruby/rest/accounts.rb +36 -9
  35. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +265 -0
  36. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +509 -0
  37. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +620 -0
  38. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +331 -0
  39. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +389 -0
  40. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +389 -0
  41. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +389 -0
  42. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +370 -0
  43. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +296 -0
  44. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +317 -0
  45. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +427 -0
  46. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +379 -0
  47. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +799 -0
  48. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +515 -0
  49. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +455 -0
  50. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +413 -0
  51. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +445 -0
  52. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +445 -0
  53. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +445 -0
  54. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +786 -0
  55. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +336 -0
  56. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +165 -0
  57. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +355 -0
  58. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +583 -0
  59. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +153 -0
  60. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +153 -0
  61. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +418 -0
  62. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +377 -0
  63. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +345 -0
  64. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +438 -0
  65. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +378 -0
  66. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +397 -0
  67. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +375 -0
  68. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +479 -0
  69. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +430 -0
  70. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +336 -0
  71. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +395 -0
  72. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +419 -0
  73. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +361 -0
  74. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +361 -0
  75. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +570 -0
  76. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +406 -0
  77. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +424 -0
  78. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +174 -0
  79. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +168 -0
  80. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +366 -0
  81. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +304 -0
  82. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +304 -0
  83. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +304 -0
  84. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +304 -0
  85. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +304 -0
  86. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +304 -0
  87. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +304 -0
  88. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +304 -0
  89. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +418 -0
  90. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +507 -0
  91. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +127 -0
  92. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +161 -0
  93. data/lib/twilio-ruby/rest/api/v2010/account.rb +1098 -0
  94. data/lib/twilio-ruby/rest/api/v2010.rb +147 -0
  95. data/lib/twilio-ruby/rest/api.rb +234 -0
  96. data/lib/twilio-ruby/rest/chat/v1/credential.rb +403 -0
  97. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +386 -0
  98. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +431 -0
  99. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +447 -0
  100. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +554 -0
  101. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +396 -0
  102. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +244 -0
  103. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +467 -0
  104. data/lib/twilio-ruby/rest/chat/v1/service.rb +935 -0
  105. data/lib/twilio-ruby/rest/chat/v1.rb +56 -0
  106. data/lib/twilio-ruby/rest/chat/v2/credential.rb +403 -0
  107. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +386 -0
  108. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +431 -0
  109. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +447 -0
  110. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +554 -0
  111. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +396 -0
  112. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +244 -0
  113. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +467 -0
  114. data/lib/twilio-ruby/rest/chat/v2/service.rb +688 -0
  115. data/lib/twilio-ruby/rest/chat/v2.rb +56 -0
  116. data/lib/twilio-ruby/rest/chat.rb +59 -0
  117. data/lib/twilio-ruby/rest/client.rb +307 -215
  118. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +403 -0
  119. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +386 -0
  120. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +431 -0
  121. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +447 -0
  122. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +554 -0
  123. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +396 -0
  124. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +244 -0
  125. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +467 -0
  126. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +935 -0
  127. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +56 -0
  128. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +403 -0
  129. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +386 -0
  130. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +431 -0
  131. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +447 -0
  132. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +554 -0
  133. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +396 -0
  134. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +244 -0
  135. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +467 -0
  136. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +688 -0
  137. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +56 -0
  138. data/lib/twilio-ruby/rest/ip_messaging.rb +59 -0
  139. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +224 -0
  140. data/lib/twilio-ruby/rest/lookups/v1.rb +41 -0
  141. data/lib/twilio-ruby/rest/lookups.rb +44 -0
  142. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +398 -0
  143. data/lib/twilio-ruby/rest/monitor/v1/event.rb +381 -0
  144. data/lib/twilio-ruby/rest/monitor/v1.rb +56 -0
  145. data/lib/twilio-ruby/rest/monitor.rb +52 -0
  146. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +291 -0
  147. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +129 -0
  148. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +284 -0
  149. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +129 -0
  150. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +291 -0
  151. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +208 -0
  152. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +150 -0
  153. data/lib/twilio-ruby/rest/pricing/v1.rb +65 -0
  154. data/lib/twilio-ruby/rest/pricing.rb +54 -0
  155. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +399 -0
  156. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +418 -0
  157. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +461 -0
  158. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +584 -0
  159. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +315 -0
  160. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +230 -0
  161. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +243 -0
  162. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +527 -0
  163. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +461 -0
  164. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +406 -0
  165. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +223 -0
  166. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +226 -0
  167. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +585 -0
  168. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +230 -0
  169. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +475 -0
  170. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +212 -0
  171. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +712 -0
  172. data/lib/twilio-ruby/rest/taskrouter/v1.rb +41 -0
  173. data/lib/twilio-ruby/rest/taskrouter.rb +44 -0
  174. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +345 -0
  175. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +345 -0
  176. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +430 -0
  177. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +478 -0
  178. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +577 -0
  179. data/lib/twilio-ruby/rest/trunking/v1.rb +41 -0
  180. data/lib/twilio-ruby/rest/trunking.rb +44 -0
  181. data/lib/twilio-ruby/rest/video/v1/recording.rb +382 -0
  182. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +381 -0
  183. data/lib/twilio-ruby/rest/video/v1/room.rb +485 -0
  184. data/lib/twilio-ruby/rest/video/v1.rb +56 -0
  185. data/lib/twilio-ruby/rest/video.rb +52 -0
  186. data/lib/twilio-ruby/security/request_validator.rb +54 -0
  187. data/lib/twilio-ruby/twiml/messaging_response.rb +141 -0
  188. data/lib/twilio-ruby/twiml/twiml.rb +69 -0
  189. data/lib/twilio-ruby/twiml/voice_response.rb +916 -0
  190. data/lib/twilio-ruby/util/configuration.rb +7 -0
  191. data/lib/twilio-ruby/util.rb +1 -1
  192. data/lib/twilio-ruby/version.rb +1 -1
  193. data/lib/twilio-ruby.rb +52 -49
  194. data/spec/framework/serialize_spec.rb +59 -0
  195. data/spec/holodeck/holodeck.rb +61 -0
  196. data/spec/holodeck/hologram.rb +4 -0
  197. data/spec/integration/accounts/v1/credential/public_key_spec.rb +226 -0
  198. data/spec/integration/accounts/v1/credential_spec.rb +10 -0
  199. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +90 -0
  200. data/spec/integration/api/v2010/account/address_spec.rb +267 -0
  201. data/spec/integration/api/v2010/account/application_spec.rb +286 -0
  202. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +137 -0
  203. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +101 -0
  204. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +100 -0
  205. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +100 -0
  206. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +128 -0
  207. data/spec/integration/api/v2010/account/call/feedback_spec.rb +141 -0
  208. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +149 -0
  209. data/spec/integration/api/v2010/account/call/notification_spec.rb +179 -0
  210. data/spec/integration/api/v2010/account/call/recording_spec.rb +178 -0
  211. data/spec/integration/api/v2010/account/call_spec.rb +319 -0
  212. data/spec/integration/api/v2010/account/conference/participant_spec.rb +283 -0
  213. data/spec/integration/api/v2010/account/conference_spec.rb +174 -0
  214. data/spec/integration/api/v2010/account/connect_app_spec.rb +177 -0
  215. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +181 -0
  216. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +181 -0
  217. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +181 -0
  218. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +331 -0
  219. data/spec/integration/api/v2010/account/key_spec.rb +178 -0
  220. data/spec/integration/api/v2010/account/message/feedback_spec.rb +48 -0
  221. data/spec/integration/api/v2010/account/message/media_spec.rb +162 -0
  222. data/spec/integration/api/v2010/account/message_spec.rb +297 -0
  223. data/spec/integration/api/v2010/account/new_key_spec.rb +45 -0
  224. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +45 -0
  225. data/spec/integration/api/v2010/account/notification_spec.rb +172 -0
  226. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +193 -0
  227. data/spec/integration/api/v2010/account/queue/member_spec.rb +170 -0
  228. data/spec/integration/api/v2010/account/queue_spec.rb +242 -0
  229. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +175 -0
  230. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +166 -0
  231. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +174 -0
  232. data/spec/integration/api/v2010/account/recording_spec.rb +179 -0
  233. data/spec/integration/api/v2010/account/short_code_spec.rb +180 -0
  234. data/spec/integration/api/v2010/account/signing_key_spec.rb +178 -0
  235. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +257 -0
  236. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +246 -0
  237. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +210 -0
  238. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +220 -0
  239. data/spec/integration/api/v2010/account/sip/domain_spec.rb +283 -0
  240. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +261 -0
  241. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +256 -0
  242. data/spec/integration/api/v2010/account/sip_spec.rb +10 -0
  243. data/spec/integration/api/v2010/account/token_spec.rb +56 -0
  244. data/spec/integration/api/v2010/account/transcription_spec.rb +167 -0
  245. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +111 -0
  246. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +111 -0
  247. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +111 -0
  248. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +111 -0
  249. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +111 -0
  250. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +111 -0
  251. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +111 -0
  252. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +111 -0
  253. data/spec/integration/api/v2010/account/usage/record_spec.rb +108 -0
  254. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +283 -0
  255. data/spec/integration/api/v2010/account/usage_spec.rb +10 -0
  256. data/spec/integration/api/v2010/account/validation_request_spec.rb +48 -0
  257. data/spec/integration/api/v2010/account_spec.rb +254 -0
  258. data/spec/integration/chat/v1/credential_spec.rb +223 -0
  259. data/spec/integration/chat/v1/service/channel/invite_spec.rb +210 -0
  260. data/spec/integration/chat/v1/service/channel/member_spec.rb +284 -0
  261. data/spec/integration/chat/v1/service/channel/message_spec.rb +294 -0
  262. data/spec/integration/chat/v1/service/channel_spec.rb +275 -0
  263. data/spec/integration/chat/v1/service/role_spec.rb +263 -0
  264. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +92 -0
  265. data/spec/integration/chat/v1/service/user_spec.rb +266 -0
  266. data/spec/integration/chat/v1/service_spec.rb +299 -0
  267. data/spec/integration/chat/v2/credential_spec.rb +223 -0
  268. data/spec/integration/chat/v2/service/channel/invite_spec.rb +210 -0
  269. data/spec/integration/chat/v2/service/channel/member_spec.rb +284 -0
  270. data/spec/integration/chat/v2/service/channel/message_spec.rb +294 -0
  271. data/spec/integration/chat/v2/service/channel_spec.rb +275 -0
  272. data/spec/integration/chat/v2/service/role_spec.rb +263 -0
  273. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +92 -0
  274. data/spec/integration/chat/v2/service/user_spec.rb +266 -0
  275. data/spec/integration/chat/v2/service_spec.rb +325 -0
  276. data/spec/integration/ip_messaging/v1/credential_spec.rb +223 -0
  277. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +210 -0
  278. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +284 -0
  279. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +294 -0
  280. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +275 -0
  281. data/spec/integration/ip_messaging/v1/service/role_spec.rb +263 -0
  282. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +92 -0
  283. data/spec/integration/ip_messaging/v1/service/user_spec.rb +266 -0
  284. data/spec/integration/ip_messaging/v1/service_spec.rb +299 -0
  285. data/spec/integration/ip_messaging/v2/credential_spec.rb +223 -0
  286. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +210 -0
  287. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +284 -0
  288. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +294 -0
  289. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +275 -0
  290. data/spec/integration/ip_messaging/v2/service/role_spec.rb +263 -0
  291. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +92 -0
  292. data/spec/integration/ip_messaging/v2/service/user_spec.rb +266 -0
  293. data/spec/integration/ip_messaging/v2/service_spec.rb +325 -0
  294. data/spec/integration/lookups/v1/phone_number_spec.rb +60 -0
  295. data/spec/integration/monitor/v1/alert_spec.rb +161 -0
  296. data/spec/integration/monitor/v1/event_spec.rb +148 -0
  297. data/spec/integration/pricing/v1/messaging/country_spec.rb +137 -0
  298. data/spec/integration/pricing/v1/messaging_spec.rb +10 -0
  299. data/spec/integration/pricing/v1/phone_number/country_spec.rb +128 -0
  300. data/spec/integration/pricing/v1/phone_number_spec.rb +10 -0
  301. data/spec/integration/pricing/v1/voice/country_spec.rb +266 -0
  302. data/spec/integration/pricing/v1/voice/number_spec.rb +54 -0
  303. data/spec/integration/pricing/v1/voice_spec.rb +10 -0
  304. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +236 -0
  305. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +157 -0
  306. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +192 -0
  307. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +127 -0
  308. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +106 -0
  309. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +144 -0
  310. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +292 -0
  311. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +324 -0
  312. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +192 -0
  313. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +201 -0
  314. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +107 -0
  315. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +141 -0
  316. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +282 -0
  317. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +69 -0
  318. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +265 -0
  319. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +103 -0
  320. data/spec/integration/taskrouter/v1/workspace_spec.rb +287 -0
  321. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +192 -0
  322. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +192 -0
  323. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +250 -0
  324. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +267 -0
  325. data/spec/integration/trunking/v1/trunk_spec.rb +276 -0
  326. data/spec/integration/video/v1/recording_spec.rb +165 -0
  327. data/spec/integration/video/v1/room/recording_spec.rb +146 -0
  328. data/spec/integration/video/v1/room_spec.rb +237 -0
  329. data/spec/jwt/access_token_spec.rb +130 -0
  330. data/spec/jwt/client_capability_spec.rb +104 -0
  331. data/spec/jwt/task_router_spec.rb +172 -0
  332. data/spec/rack/twilio_webhook_authentication_spec.rb +106 -0
  333. data/spec/security/request_validator_spec.rb +113 -0
  334. data/spec/spec_helper.rb +29 -3
  335. data/spec/support/fakeweb.rb +2 -0
  336. data/spec/twilio_spec.rb +15 -0
  337. data/spec/twiml/messaging_response_spec.rb +90 -0
  338. data/spec/twiml/voice_response_spec.rb +474 -0
  339. data/spec/util/configuration_spec.rb +15 -0
  340. data/spec/util/url_encode_spec.rb +2 -2
  341. data/twilio-ruby.gemspec +32 -26
  342. metadata +502 -152
  343. data/CHANGES +0 -47
  344. data/docs/Makefile +0 -130
  345. data/docs/_themes/LICENSE +0 -45
  346. data/docs/_themes/README.rst +0 -25
  347. data/docs/_themes/flask_theme_support.py +0 -86
  348. data/docs/_themes/kr/layout.html +0 -32
  349. data/docs/_themes/kr/relations.html +0 -19
  350. data/docs/_themes/kr/static/flasky.css_t +0 -469
  351. data/docs/_themes/kr/static/small_flask.css +0 -70
  352. data/docs/_themes/kr/theme.conf +0 -7
  353. data/docs/_themes/kr_small/layout.html +0 -22
  354. data/docs/_themes/kr_small/static/flasky.css_t +0 -287
  355. data/docs/_themes/kr_small/theme.conf +0 -10
  356. data/docs/changelog.rst +0 -1
  357. data/docs/conf.py +0 -266
  358. data/docs/faq.rst +0 -42
  359. data/docs/getting-started.rst +0 -91
  360. data/docs/index.rst +0 -109
  361. data/docs/make.bat +0 -170
  362. data/docs/src/pip-delete-this-directory.txt +0 -5
  363. data/docs/usage/accounts.rst +0 -89
  364. data/docs/usage/applications.rst +0 -108
  365. data/docs/usage/basics.rst +0 -102
  366. data/docs/usage/caller-ids.rst +0 -45
  367. data/docs/usage/conferences.rst +0 -108
  368. data/docs/usage/errors.rst +0 -29
  369. data/docs/usage/messages.rst +0 -109
  370. data/docs/usage/notifications.rst +0 -70
  371. data/docs/usage/phone-calls.rst +0 -166
  372. data/docs/usage/phone-numbers.rst +0 -174
  373. data/docs/usage/queues.rst +0 -112
  374. data/docs/usage/recordings.rst +0 -96
  375. data/docs/usage/sip.rst +0 -103
  376. data/docs/usage/token-generation.rst +0 -81
  377. data/docs/usage/transcriptions.rst +0 -31
  378. data/docs/usage/twiml.rst +0 -69
  379. data/docs/usage/validation.rst +0 -71
  380. data/lib/twilio-ruby/rest/applications.rb +0 -6
  381. data/lib/twilio-ruby/rest/authorized_connect_apps.rb +0 -6
  382. data/lib/twilio-ruby/rest/available_phone_numbers/country.rb +0 -10
  383. data/lib/twilio-ruby/rest/available_phone_numbers/local.rb +0 -11
  384. data/lib/twilio-ruby/rest/available_phone_numbers/mobile.rb +0 -11
  385. data/lib/twilio-ruby/rest/available_phone_numbers/toll_free.rb +0 -11
  386. data/lib/twilio-ruby/rest/available_phone_numbers.rb +0 -13
  387. data/lib/twilio-ruby/rest/calls.rb +0 -28
  388. data/lib/twilio-ruby/rest/conferences/participants.rb +0 -23
  389. data/lib/twilio-ruby/rest/conferences.rb +0 -12
  390. data/lib/twilio-ruby/rest/connect_apps.rb +0 -6
  391. data/lib/twilio-ruby/rest/errors.rb +0 -14
  392. data/lib/twilio-ruby/rest/incoming_phone_numbers/local.rb +0 -13
  393. data/lib/twilio-ruby/rest/incoming_phone_numbers/mobile.rb +0 -13
  394. data/lib/twilio-ruby/rest/incoming_phone_numbers/toll_free.rb +0 -13
  395. data/lib/twilio-ruby/rest/incoming_phone_numbers.rb +0 -17
  396. data/lib/twilio-ruby/rest/instance_resource.rb +0 -101
  397. data/lib/twilio-ruby/rest/list_resource.rb +0 -110
  398. data/lib/twilio-ruby/rest/media.rb +0 -14
  399. data/lib/twilio-ruby/rest/messages.rb +0 -17
  400. data/lib/twilio-ruby/rest/notifications.rb +0 -6
  401. data/lib/twilio-ruby/rest/outgoing_caller_ids.rb +0 -25
  402. data/lib/twilio-ruby/rest/queues/members.rb +0 -29
  403. data/lib/twilio-ruby/rest/queues.rb +0 -12
  404. data/lib/twilio-ruby/rest/recordings.rb +0 -35
  405. data/lib/twilio-ruby/rest/sandbox.rb +0 -5
  406. data/lib/twilio-ruby/rest/sip/credential_lists/credentials.rb +0 -6
  407. data/lib/twilio-ruby/rest/sip/credential_lists.rb +0 -11
  408. data/lib/twilio-ruby/rest/sip/domains/credential_list_mappings.rb +0 -6
  409. data/lib/twilio-ruby/rest/sip/domains/ip_access_control_list_mappings.rb +0 -6
  410. data/lib/twilio-ruby/rest/sip/domains.rb +0 -12
  411. data/lib/twilio-ruby/rest/sip/ip_access_control_lists/ip_addresses.rb +0 -6
  412. data/lib/twilio-ruby/rest/sip/ip_access_control_lists.rb +0 -11
  413. data/lib/twilio-ruby/rest/sip.rb +0 -12
  414. data/lib/twilio-ruby/rest/sms/messages.rb +0 -15
  415. data/lib/twilio-ruby/rest/sms/short_codes.rb +0 -8
  416. data/lib/twilio-ruby/rest/sms.rb +0 -11
  417. data/lib/twilio-ruby/rest/transcriptions.rb +0 -6
  418. data/lib/twilio-ruby/rest/usage/records.rb +0 -21
  419. data/lib/twilio-ruby/rest/usage/triggers.rb +0 -12
  420. data/lib/twilio-ruby/rest/usage.rb +0 -10
  421. data/lib/twilio-ruby/rest/utils.rb +0 -25
  422. data/lib/twilio-ruby/twiml/response.rb +0 -15
  423. data/lib/twilio-ruby/util/capability.rb +0 -61
  424. data/lib/twilio-ruby/util/request_validator.rb +0 -22
  425. data/spec/rest/account_spec.rb +0 -58
  426. data/spec/rest/call_spec.rb +0 -18
  427. data/spec/rest/client_spec.rb +0 -100
  428. data/spec/rest/conference_spec.rb +0 -9
  429. data/spec/rest/instance_resource_spec.rb +0 -15
  430. data/spec/rest/message_spec.rb +0 -12
  431. data/spec/rest/numbers_spec.rb +0 -46
  432. data/spec/rest/queue_spec.rb +0 -9
  433. data/spec/rest/recording_spec.rb +0 -9
  434. data/spec/util/capability_spec.rb +0 -137
  435. data/spec/util/request_validator_spec.rb +0 -65
@@ -0,0 +1,712 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Taskrouter < Domain
10
+ class V1 < Version
11
+ class WorkspaceList < ListResource
12
+ ##
13
+ # Initialize the WorkspaceList
14
+ # @param [Version] version Version that contains the resource
15
+ # @return [WorkspaceList] WorkspaceList
16
+ def initialize(version)
17
+ super(version)
18
+
19
+ # Path Solution
20
+ @solution = {}
21
+ @uri = "/Workspaces"
22
+ end
23
+
24
+ ##
25
+ # Lists WorkspaceInstance 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 [String] friendly_name The friendly_name
29
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
30
+ # guarantees to never return more than limit. Default is no limit
31
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
32
+ # the default value of 50 records. If no page_size is defined
33
+ # but a limit is defined, stream() will attempt to read the
34
+ # limit with the most efficient page size, i.e. min(limit, 1000)
35
+ # @return [Array] Array of up to limit results
36
+ def list(friendly_name: :unset, limit: nil, page_size: nil)
37
+ self.stream(
38
+ friendly_name: friendly_name,
39
+ limit: limit,
40
+ page_size: page_size
41
+ ).entries
42
+ end
43
+
44
+ ##
45
+ # Streams WorkspaceInstance records from the API as an Enumerable.
46
+ # This operation lazily loads records as efficiently as possible until the limit
47
+ # is reached.
48
+ # @param [String] friendly_name The friendly_name
49
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
50
+ # guarantees to never return more than limit. Default is no limit
51
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
52
+ # the default value of 50 records. If no page_size is defined
53
+ # but a limit is defined, stream() will attempt to read the
54
+ # limit with the most efficient page size, i.e. min(limit, 1000)
55
+ # @return [Enumerable] Enumerable that will yield up to limit results
56
+ def stream(friendly_name: :unset, limit: nil, page_size: nil)
57
+ limits = @version.read_limits(limit, page_size)
58
+
59
+ page = self.page(
60
+ friendly_name: friendly_name,
61
+ page_size: limits[:page_size],
62
+ )
63
+
64
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
65
+ end
66
+
67
+ ##
68
+ # When passed a block, yields WorkspaceInstance records from the API.
69
+ # This operation lazily loads records as efficiently as possible until the limit
70
+ # is reached.
71
+ def each
72
+ limits = @version.read_limits
73
+
74
+ page = self.page(
75
+ page_size: limits[:page_size],
76
+ )
77
+
78
+ @version.stream(page,
79
+ limit: limits[:limit],
80
+ page_limit: limits[:page_limit]).each {|x| yield x}
81
+ end
82
+
83
+ ##
84
+ # Retrieve a single page of WorkspaceInstance records from the API.
85
+ # Request is executed immediately.
86
+ # @param [String] friendly_name The friendly_name
87
+ # @param [String] page_token PageToken provided by the API
88
+ # @param [Integer] page_number Page Number, this value is simply for client state
89
+ # @param [Integer] page_size Number of records to return, defaults to 50
90
+ # @return [Page] Page of WorkspaceInstance
91
+ def page(friendly_name: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
92
+ params = Twilio::Values.of({
93
+ 'FriendlyName' => friendly_name,
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
+ WorkspacePage.new(@version, response, @solution)
104
+ end
105
+
106
+ ##
107
+ # Retrieve a single page of WorkspaceInstance records from the API.
108
+ # Request is executed immediately.
109
+ # @param [String] target_url API-generated URL for the requested results page
110
+ # @return [Page] Page of WorkspaceInstance
111
+ def get_page(target_url)
112
+ response = @version.domain.request(
113
+ 'GET',
114
+ target_url
115
+ )
116
+ WorkspacePage.new(@version, response, @solution)
117
+ end
118
+
119
+ ##
120
+ # Retrieve a single page of WorkspaceInstance records from the API.
121
+ # Request is executed immediately.
122
+ # @param [String] friendly_name The friendly_name
123
+ # @param [String] event_callback_url The event_callback_url
124
+ # @param [String] events_filter The events_filter
125
+ # @param [Boolean] multi_task_enabled The multi_task_enabled
126
+ # @param [String] template The template
127
+ # @param [workspace.QueueOrder] prioritize_queue_order The prioritize_queue_order
128
+ # @return [WorkspaceInstance] Newly created WorkspaceInstance
129
+ def create(friendly_name: nil, event_callback_url: :unset, events_filter: :unset, multi_task_enabled: :unset, template: :unset, prioritize_queue_order: :unset)
130
+ data = Twilio::Values.of({
131
+ 'FriendlyName' => friendly_name,
132
+ 'EventCallbackUrl' => event_callback_url,
133
+ 'EventsFilter' => events_filter,
134
+ 'MultiTaskEnabled' => multi_task_enabled,
135
+ 'Template' => template,
136
+ 'PrioritizeQueueOrder' => prioritize_queue_order,
137
+ })
138
+
139
+ payload = @version.create(
140
+ 'POST',
141
+ @uri,
142
+ data: data
143
+ )
144
+
145
+ WorkspaceInstance.new(
146
+ @version,
147
+ payload,
148
+ )
149
+ end
150
+
151
+ ##
152
+ # Provide a user friendly representation
153
+ def to_s
154
+ '#<Twilio.Taskrouter.V1.WorkspaceList>'
155
+ end
156
+ end
157
+
158
+ class WorkspacePage < Page
159
+ ##
160
+ # Initialize the WorkspacePage
161
+ # @param [Version] version Version that contains the resource
162
+ # @param [Response] response Response from the API
163
+ # @param [Hash] solution Path solution for the resource
164
+ # @return [WorkspacePage] WorkspacePage
165
+ def initialize(version, response, solution)
166
+ super(version, response)
167
+
168
+ # Path Solution
169
+ @solution = solution
170
+ end
171
+
172
+ ##
173
+ # Build an instance of WorkspaceInstance
174
+ # @param [Hash] payload Payload response from the API
175
+ # @return [WorkspaceInstance] WorkspaceInstance
176
+ def get_instance(payload)
177
+ WorkspaceInstance.new(
178
+ @version,
179
+ payload,
180
+ )
181
+ end
182
+
183
+ ##
184
+ # Provide a user friendly representation
185
+ def to_s
186
+ '<Twilio.Taskrouter.V1.WorkspacePage>'
187
+ end
188
+ end
189
+
190
+ class WorkspaceContext < InstanceContext
191
+ ##
192
+ # Initialize the WorkspaceContext
193
+ # @param [Version] version Version that contains the resource
194
+ # @param [String] sid The sid
195
+ # @return [WorkspaceContext] WorkspaceContext
196
+ def initialize(version, sid)
197
+ super(version)
198
+
199
+ # Path Solution
200
+ @solution = {
201
+ sid: sid,
202
+ }
203
+ @uri = "/Workspaces/#{@solution[:sid]}"
204
+
205
+ # Dependents
206
+ @activities = nil
207
+ @events = nil
208
+ @tasks = nil
209
+ @task_queues = nil
210
+ @workers = nil
211
+ @workflows = nil
212
+ @statistics = nil
213
+ @task_channels = nil
214
+ end
215
+
216
+ ##
217
+ # Fetch a WorkspaceInstance
218
+ # @return [WorkspaceInstance] Fetched WorkspaceInstance
219
+ def fetch
220
+ params = Twilio::Values.of({})
221
+
222
+ payload = @version.fetch(
223
+ 'GET',
224
+ @uri,
225
+ params,
226
+ )
227
+
228
+ WorkspaceInstance.new(
229
+ @version,
230
+ payload,
231
+ sid: @solution[:sid],
232
+ )
233
+ end
234
+
235
+ ##
236
+ # Update the WorkspaceInstance
237
+ # @param [String] default_activity_sid The default_activity_sid
238
+ # @param [String] event_callback_url The event_callback_url
239
+ # @param [String] events_filter The events_filter
240
+ # @param [String] friendly_name The friendly_name
241
+ # @param [Boolean] multi_task_enabled The multi_task_enabled
242
+ # @param [String] timeout_activity_sid The timeout_activity_sid
243
+ # @param [workspace.QueueOrder] prioritize_queue_order The prioritize_queue_order
244
+ # @return [WorkspaceInstance] Updated WorkspaceInstance
245
+ def update(default_activity_sid: :unset, event_callback_url: :unset, events_filter: :unset, friendly_name: :unset, multi_task_enabled: :unset, timeout_activity_sid: :unset, prioritize_queue_order: :unset)
246
+ data = Twilio::Values.of({
247
+ 'DefaultActivitySid' => default_activity_sid,
248
+ 'EventCallbackUrl' => event_callback_url,
249
+ 'EventsFilter' => events_filter,
250
+ 'FriendlyName' => friendly_name,
251
+ 'MultiTaskEnabled' => multi_task_enabled,
252
+ 'TimeoutActivitySid' => timeout_activity_sid,
253
+ 'PrioritizeQueueOrder' => prioritize_queue_order,
254
+ })
255
+
256
+ payload = @version.update(
257
+ 'POST',
258
+ @uri,
259
+ data: data,
260
+ )
261
+
262
+ WorkspaceInstance.new(
263
+ @version,
264
+ payload,
265
+ sid: @solution[:sid],
266
+ )
267
+ end
268
+
269
+ ##
270
+ # Deletes the WorkspaceInstance
271
+ # @return [Boolean] true if delete succeeds, true otherwise
272
+ def delete
273
+ @version.delete('delete', @uri)
274
+ end
275
+
276
+ ##
277
+ # Access the activities
278
+ # @return [ActivityList]
279
+ # @return [ActivityContext] if sid was passed.
280
+ def activities(sid=:unset)
281
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
282
+
283
+ if sid != :unset
284
+ return ActivityContext.new(
285
+ @version,
286
+ @solution[:sid],
287
+ sid,
288
+ )
289
+ end
290
+
291
+ unless @activities
292
+ @activities = ActivityList.new(
293
+ @version,
294
+ workspace_sid: @solution[:sid],
295
+ )
296
+ end
297
+
298
+ @activities
299
+ end
300
+
301
+ ##
302
+ # Access the events
303
+ # @return [EventList]
304
+ # @return [EventContext] if sid was passed.
305
+ def events(sid=:unset)
306
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
307
+
308
+ if sid != :unset
309
+ return EventContext.new(
310
+ @version,
311
+ @solution[:sid],
312
+ sid,
313
+ )
314
+ end
315
+
316
+ unless @events
317
+ @events = EventList.new(
318
+ @version,
319
+ workspace_sid: @solution[:sid],
320
+ )
321
+ end
322
+
323
+ @events
324
+ end
325
+
326
+ ##
327
+ # Access the tasks
328
+ # @return [TaskList]
329
+ # @return [TaskContext] if sid was passed.
330
+ def tasks(sid=:unset)
331
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
332
+
333
+ if sid != :unset
334
+ return TaskContext.new(
335
+ @version,
336
+ @solution[:sid],
337
+ sid,
338
+ )
339
+ end
340
+
341
+ unless @tasks
342
+ @tasks = TaskList.new(
343
+ @version,
344
+ workspace_sid: @solution[:sid],
345
+ )
346
+ end
347
+
348
+ @tasks
349
+ end
350
+
351
+ ##
352
+ # Access the task_queues
353
+ # @return [TaskQueueList]
354
+ # @return [TaskQueueContext] if sid was passed.
355
+ def task_queues(sid=:unset)
356
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
357
+
358
+ if sid != :unset
359
+ return TaskQueueContext.new(
360
+ @version,
361
+ @solution[:sid],
362
+ sid,
363
+ )
364
+ end
365
+
366
+ unless @task_queues
367
+ @task_queues = TaskQueueList.new(
368
+ @version,
369
+ workspace_sid: @solution[:sid],
370
+ )
371
+ end
372
+
373
+ @task_queues
374
+ end
375
+
376
+ ##
377
+ # Access the workers
378
+ # @return [WorkerList]
379
+ # @return [WorkerContext] if sid was passed.
380
+ def workers(sid=:unset)
381
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
382
+
383
+ if sid != :unset
384
+ return WorkerContext.new(
385
+ @version,
386
+ @solution[:sid],
387
+ sid,
388
+ )
389
+ end
390
+
391
+ unless @workers
392
+ @workers = WorkerList.new(
393
+ @version,
394
+ workspace_sid: @solution[:sid],
395
+ )
396
+ end
397
+
398
+ @workers
399
+ end
400
+
401
+ ##
402
+ # Access the workflows
403
+ # @return [WorkflowList]
404
+ # @return [WorkflowContext] if sid was passed.
405
+ def workflows(sid=:unset)
406
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
407
+
408
+ if sid != :unset
409
+ return WorkflowContext.new(
410
+ @version,
411
+ @solution[:sid],
412
+ sid,
413
+ )
414
+ end
415
+
416
+ unless @workflows
417
+ @workflows = WorkflowList.new(
418
+ @version,
419
+ workspace_sid: @solution[:sid],
420
+ )
421
+ end
422
+
423
+ @workflows
424
+ end
425
+
426
+ ##
427
+ # Access the statistics
428
+ # @return [WorkspaceStatisticsList]
429
+ # @return [WorkspaceStatisticsContext]
430
+ def statistics
431
+ WorkspaceStatisticsContext.new(
432
+ @version,
433
+ @solution[:sid],
434
+ )
435
+ end
436
+
437
+ ##
438
+ # Access the task_channels
439
+ # @return [TaskChannelList]
440
+ # @return [TaskChannelContext] if sid was passed.
441
+ def task_channels(sid=:unset)
442
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
443
+
444
+ if sid != :unset
445
+ return TaskChannelContext.new(
446
+ @version,
447
+ @solution[:sid],
448
+ sid,
449
+ )
450
+ end
451
+
452
+ unless @task_channels
453
+ @task_channels = TaskChannelList.new(
454
+ @version,
455
+ workspace_sid: @solution[:sid],
456
+ )
457
+ end
458
+
459
+ @task_channels
460
+ end
461
+
462
+ ##
463
+ # Provide a user friendly representation
464
+ def to_s
465
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
466
+ "#<Twilio.Taskrouter.V1.WorkspaceContext #{context}>"
467
+ end
468
+ end
469
+
470
+ class WorkspaceInstance < InstanceResource
471
+ ##
472
+ # Initialize the WorkspaceInstance
473
+ # @param [Version] version Version that contains the resource
474
+ # @param [Hash] payload payload that contains response from Twilio
475
+ # @param [String] sid The sid
476
+ # @return [WorkspaceInstance] WorkspaceInstance
477
+ def initialize(version, payload, sid: nil)
478
+ super(version)
479
+
480
+ # Marshaled Properties
481
+ @properties = {
482
+ 'account_sid' => payload['account_sid'],
483
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
484
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
485
+ 'default_activity_name' => payload['default_activity_name'],
486
+ 'default_activity_sid' => payload['default_activity_sid'],
487
+ 'event_callback_url' => payload['event_callback_url'],
488
+ 'events_filter' => payload['events_filter'],
489
+ 'friendly_name' => payload['friendly_name'],
490
+ 'multi_task_enabled' => payload['multi_task_enabled'],
491
+ 'sid' => payload['sid'],
492
+ 'timeout_activity_name' => payload['timeout_activity_name'],
493
+ 'timeout_activity_sid' => payload['timeout_activity_sid'],
494
+ 'prioritize_queue_order' => payload['prioritize_queue_order'],
495
+ 'url' => payload['url'],
496
+ 'links' => payload['links'],
497
+ }
498
+
499
+ # Context
500
+ @instance_context = nil
501
+ @params = {
502
+ 'sid' => sid || @properties['sid'],
503
+ }
504
+ end
505
+
506
+ ##
507
+ # Generate an instance context for the instance, the context is capable of
508
+ # performing various actions. All instance actions are proxied to the context
509
+ # @return [WorkspaceContext] WorkspaceContext for this WorkspaceInstance
510
+ def context
511
+ unless @instance_context
512
+ @instance_context = WorkspaceContext.new(
513
+ @version,
514
+ @params['sid'],
515
+ )
516
+ end
517
+ @instance_context
518
+ end
519
+
520
+ ##
521
+ # @return [String] The account_sid
522
+ def account_sid
523
+ @properties['account_sid']
524
+ end
525
+
526
+ ##
527
+ # @return [Time] The date_created
528
+ def date_created
529
+ @properties['date_created']
530
+ end
531
+
532
+ ##
533
+ # @return [Time] The date_updated
534
+ def date_updated
535
+ @properties['date_updated']
536
+ end
537
+
538
+ ##
539
+ # @return [String] The default_activity_name
540
+ def default_activity_name
541
+ @properties['default_activity_name']
542
+ end
543
+
544
+ ##
545
+ # @return [String] The default_activity_sid
546
+ def default_activity_sid
547
+ @properties['default_activity_sid']
548
+ end
549
+
550
+ ##
551
+ # @return [String] The event_callback_url
552
+ def event_callback_url
553
+ @properties['event_callback_url']
554
+ end
555
+
556
+ ##
557
+ # @return [String] The events_filter
558
+ def events_filter
559
+ @properties['events_filter']
560
+ end
561
+
562
+ ##
563
+ # @return [String] The friendly_name
564
+ def friendly_name
565
+ @properties['friendly_name']
566
+ end
567
+
568
+ ##
569
+ # @return [Boolean] The multi_task_enabled
570
+ def multi_task_enabled
571
+ @properties['multi_task_enabled']
572
+ end
573
+
574
+ ##
575
+ # @return [String] The sid
576
+ def sid
577
+ @properties['sid']
578
+ end
579
+
580
+ ##
581
+ # @return [String] The timeout_activity_name
582
+ def timeout_activity_name
583
+ @properties['timeout_activity_name']
584
+ end
585
+
586
+ ##
587
+ # @return [String] The timeout_activity_sid
588
+ def timeout_activity_sid
589
+ @properties['timeout_activity_sid']
590
+ end
591
+
592
+ ##
593
+ # @return [workspace.QueueOrder] The prioritize_queue_order
594
+ def prioritize_queue_order
595
+ @properties['prioritize_queue_order']
596
+ end
597
+
598
+ ##
599
+ # @return [String] The url
600
+ def url
601
+ @properties['url']
602
+ end
603
+
604
+ ##
605
+ # @return [String] The links
606
+ def links
607
+ @properties['links']
608
+ end
609
+
610
+ ##
611
+ # Fetch a WorkspaceInstance
612
+ # @return [WorkspaceInstance] Fetched WorkspaceInstance
613
+ def fetch
614
+ context.fetch
615
+ end
616
+
617
+ ##
618
+ # Update the WorkspaceInstance
619
+ # @param [String] default_activity_sid The default_activity_sid
620
+ # @param [String] event_callback_url The event_callback_url
621
+ # @param [String] events_filter The events_filter
622
+ # @param [String] friendly_name The friendly_name
623
+ # @param [Boolean] multi_task_enabled The multi_task_enabled
624
+ # @param [String] timeout_activity_sid The timeout_activity_sid
625
+ # @param [workspace.QueueOrder] prioritize_queue_order The prioritize_queue_order
626
+ # @return [WorkspaceInstance] Updated WorkspaceInstance
627
+ def update(default_activity_sid: :unset, event_callback_url: :unset, events_filter: :unset, friendly_name: :unset, multi_task_enabled: :unset, timeout_activity_sid: :unset, prioritize_queue_order: :unset)
628
+ context.update(
629
+ default_activity_sid: default_activity_sid,
630
+ event_callback_url: event_callback_url,
631
+ events_filter: events_filter,
632
+ friendly_name: friendly_name,
633
+ multi_task_enabled: multi_task_enabled,
634
+ timeout_activity_sid: timeout_activity_sid,
635
+ prioritize_queue_order: prioritize_queue_order,
636
+ )
637
+ end
638
+
639
+ ##
640
+ # Deletes the WorkspaceInstance
641
+ # @return [Boolean] true if delete succeeds, true otherwise
642
+ def delete
643
+ context.delete
644
+ end
645
+
646
+ ##
647
+ # Access the activities
648
+ # @return [activities] activities
649
+ def activities
650
+ context.activities
651
+ end
652
+
653
+ ##
654
+ # Access the events
655
+ # @return [events] events
656
+ def events
657
+ context.events
658
+ end
659
+
660
+ ##
661
+ # Access the tasks
662
+ # @return [tasks] tasks
663
+ def tasks
664
+ context.tasks
665
+ end
666
+
667
+ ##
668
+ # Access the task_queues
669
+ # @return [task_queues] task_queues
670
+ def task_queues
671
+ context.task_queues
672
+ end
673
+
674
+ ##
675
+ # Access the workers
676
+ # @return [workers] workers
677
+ def workers
678
+ context.workers
679
+ end
680
+
681
+ ##
682
+ # Access the workflows
683
+ # @return [workflows] workflows
684
+ def workflows
685
+ context.workflows
686
+ end
687
+
688
+ ##
689
+ # Access the statistics
690
+ # @return [statistics] statistics
691
+ def statistics
692
+ context.statistics
693
+ end
694
+
695
+ ##
696
+ # Access the task_channels
697
+ # @return [task_channels] task_channels
698
+ def task_channels
699
+ context.task_channels
700
+ end
701
+
702
+ ##
703
+ # Provide a user friendly representation
704
+ def to_s
705
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
706
+ "<Twilio.Taskrouter.V1.WorkspaceInstance #{values}>"
707
+ end
708
+ end
709
+ end
710
+ end
711
+ end
712
+ end