twilio-ruby 3.11.5 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
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,1098 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Api < Domain
10
+ class V2010 < Version
11
+ class AccountList < ListResource
12
+ ##
13
+ # Initialize the AccountList
14
+ # @param [Version] version Version that contains the resource
15
+ # @return [AccountList] AccountList
16
+ def initialize(version)
17
+ super(version)
18
+
19
+ # Path Solution
20
+ @solution = {}
21
+ @uri = "/Accounts.json"
22
+ end
23
+
24
+ ##
25
+ # Retrieve a single page of AccountInstance records from the API.
26
+ # Request is executed immediately.
27
+ # @param [String] friendly_name A human readable description of the account to
28
+ # create, defaults to `SubAccount Created at {YYYY-MM-DD HH:MM meridian}`
29
+ # @return [AccountInstance] Newly created AccountInstance
30
+ def create(friendly_name: :unset)
31
+ data = Twilio::Values.of({
32
+ 'FriendlyName' => friendly_name,
33
+ })
34
+
35
+ payload = @version.create(
36
+ 'POST',
37
+ @uri,
38
+ data: data
39
+ )
40
+
41
+ AccountInstance.new(
42
+ @version,
43
+ payload,
44
+ )
45
+ end
46
+
47
+ ##
48
+ # Lists AccountInstance records from the API as a list.
49
+ # Unlike stream(), this operation is eager and will load `limit` records into
50
+ # memory before returning.
51
+ # @param [String] friendly_name Filter accounts where the friendly name exactly
52
+ # matches the desired FriendlyName
53
+ # @param [account.Status] status Only show accounts with the given Status
54
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
55
+ # guarantees to never return more than limit. Default is no limit
56
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
57
+ # the default value of 50 records. If no page_size is defined
58
+ # but a limit is defined, stream() will attempt to read the
59
+ # limit with the most efficient page size, i.e. min(limit, 1000)
60
+ # @return [Array] Array of up to limit results
61
+ def list(friendly_name: :unset, status: :unset, limit: nil, page_size: nil)
62
+ self.stream(
63
+ friendly_name: friendly_name,
64
+ status: status,
65
+ limit: limit,
66
+ page_size: page_size
67
+ ).entries
68
+ end
69
+
70
+ ##
71
+ # Streams AccountInstance records from the API as an Enumerable.
72
+ # This operation lazily loads records as efficiently as possible until the limit
73
+ # is reached.
74
+ # @param [String] friendly_name Filter accounts where the friendly name exactly
75
+ # matches the desired FriendlyName
76
+ # @param [account.Status] status Only show accounts with the given Status
77
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
78
+ # guarantees to never return more than limit. Default is no limit
79
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
80
+ # the default value of 50 records. If no page_size is defined
81
+ # but a limit is defined, stream() will attempt to read the
82
+ # limit with the most efficient page size, i.e. min(limit, 1000)
83
+ # @return [Enumerable] Enumerable that will yield up to limit results
84
+ def stream(friendly_name: :unset, status: :unset, limit: nil, page_size: nil)
85
+ limits = @version.read_limits(limit, page_size)
86
+
87
+ page = self.page(
88
+ friendly_name: friendly_name,
89
+ status: status,
90
+ page_size: limits[:page_size],
91
+ )
92
+
93
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
94
+ end
95
+
96
+ ##
97
+ # When passed a block, yields AccountInstance records from the API.
98
+ # This operation lazily loads records as efficiently as possible until the limit
99
+ # is reached.
100
+ def each
101
+ limits = @version.read_limits
102
+
103
+ page = self.page(
104
+ page_size: limits[:page_size],
105
+ )
106
+
107
+ @version.stream(page,
108
+ limit: limits[:limit],
109
+ page_limit: limits[:page_limit]).each {|x| yield x}
110
+ end
111
+
112
+ ##
113
+ # Retrieve a single page of AccountInstance records from the API.
114
+ # Request is executed immediately.
115
+ # @param [String] friendly_name Filter accounts where the friendly name exactly
116
+ # matches the desired FriendlyName
117
+ # @param [account.Status] status Only show accounts with the given Status
118
+ # @param [String] page_token PageToken provided by the API
119
+ # @param [Integer] page_number Page Number, this value is simply for client state
120
+ # @param [Integer] page_size Number of records to return, defaults to 50
121
+ # @return [Page] Page of AccountInstance
122
+ def page(friendly_name: :unset, status: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
123
+ params = Twilio::Values.of({
124
+ 'FriendlyName' => friendly_name,
125
+ 'Status' => status,
126
+ 'PageToken' => page_token,
127
+ 'Page' => page_number,
128
+ 'PageSize' => page_size,
129
+ })
130
+ response = @version.page(
131
+ 'GET',
132
+ @uri,
133
+ params
134
+ )
135
+ AccountPage.new(@version, response, @solution)
136
+ end
137
+
138
+ ##
139
+ # Retrieve a single page of AccountInstance records from the API.
140
+ # Request is executed immediately.
141
+ # @param [String] target_url API-generated URL for the requested results page
142
+ # @return [Page] Page of AccountInstance
143
+ def get_page(target_url)
144
+ response = @version.domain.request(
145
+ 'GET',
146
+ target_url
147
+ )
148
+ AccountPage.new(@version, response, @solution)
149
+ end
150
+
151
+ ##
152
+ # Provide a user friendly representation
153
+ def to_s
154
+ '#<Twilio.Api.V2010.AccountList>'
155
+ end
156
+ end
157
+
158
+ class AccountPage < Page
159
+ ##
160
+ # Initialize the AccountPage
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 [AccountPage] AccountPage
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 AccountInstance
174
+ # @param [Hash] payload Payload response from the API
175
+ # @return [AccountInstance] AccountInstance
176
+ def get_instance(payload)
177
+ AccountInstance.new(
178
+ @version,
179
+ payload,
180
+ )
181
+ end
182
+
183
+ ##
184
+ # Provide a user friendly representation
185
+ def to_s
186
+ '<Twilio.Api.V2010.AccountPage>'
187
+ end
188
+ end
189
+
190
+ class AccountContext < InstanceContext
191
+ ##
192
+ # Initialize the AccountContext
193
+ # @param [Version] version Version that contains the resource
194
+ # @param [String] sid The Account Sid that uniquely identifies the account to
195
+ # fetch
196
+ # @return [AccountContext] AccountContext
197
+ def initialize(version, sid)
198
+ super(version)
199
+
200
+ # Path Solution
201
+ @solution = {
202
+ sid: sid,
203
+ }
204
+ @uri = "/Accounts/#{@solution[:sid]}.json"
205
+
206
+ # Dependents
207
+ @addresses = nil
208
+ @applications = nil
209
+ @authorized_connect_apps = nil
210
+ @available_phone_numbers = nil
211
+ @calls = nil
212
+ @conferences = nil
213
+ @connect_apps = nil
214
+ @incoming_phone_numbers = nil
215
+ @keys = nil
216
+ @messages = nil
217
+ @new_keys = nil
218
+ @new_signing_keys = nil
219
+ @notifications = nil
220
+ @outgoing_caller_ids = nil
221
+ @queues = nil
222
+ @recordings = nil
223
+ @signing_keys = nil
224
+ @sip = nil
225
+ @short_codes = nil
226
+ @tokens = nil
227
+ @transcriptions = nil
228
+ @usage = nil
229
+ @validation_requests = nil
230
+ end
231
+
232
+ ##
233
+ # Fetch a AccountInstance
234
+ # @return [AccountInstance] Fetched AccountInstance
235
+ def fetch
236
+ params = Twilio::Values.of({})
237
+
238
+ payload = @version.fetch(
239
+ 'GET',
240
+ @uri,
241
+ params,
242
+ )
243
+
244
+ AccountInstance.new(
245
+ @version,
246
+ payload,
247
+ sid: @solution[:sid],
248
+ )
249
+ end
250
+
251
+ ##
252
+ # Update the AccountInstance
253
+ # @param [String] friendly_name Update the human-readable description of this
254
+ # Account
255
+ # @param [account.Status] status Alter the status of this account with a given
256
+ # Status
257
+ # @return [AccountInstance] Updated AccountInstance
258
+ def update(friendly_name: :unset, status: :unset)
259
+ data = Twilio::Values.of({
260
+ 'FriendlyName' => friendly_name,
261
+ 'Status' => status,
262
+ })
263
+
264
+ payload = @version.update(
265
+ 'POST',
266
+ @uri,
267
+ data: data,
268
+ )
269
+
270
+ AccountInstance.new(
271
+ @version,
272
+ payload,
273
+ sid: @solution[:sid],
274
+ )
275
+ end
276
+
277
+ ##
278
+ # Access the addresses
279
+ # @return [AddressList]
280
+ # @return [AddressContext] if sid was passed.
281
+ def addresses(sid=:unset)
282
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
283
+
284
+ if sid != :unset
285
+ return AddressContext.new(
286
+ @version,
287
+ @solution[:sid],
288
+ sid,
289
+ )
290
+ end
291
+
292
+ unless @addresses
293
+ @addresses = AddressList.new(
294
+ @version,
295
+ account_sid: @solution[:sid],
296
+ )
297
+ end
298
+
299
+ @addresses
300
+ end
301
+
302
+ ##
303
+ # Access the applications
304
+ # @return [ApplicationList]
305
+ # @return [ApplicationContext] if sid was passed.
306
+ def applications(sid=:unset)
307
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
308
+
309
+ if sid != :unset
310
+ return ApplicationContext.new(
311
+ @version,
312
+ @solution[:sid],
313
+ sid,
314
+ )
315
+ end
316
+
317
+ unless @applications
318
+ @applications = ApplicationList.new(
319
+ @version,
320
+ account_sid: @solution[:sid],
321
+ )
322
+ end
323
+
324
+ @applications
325
+ end
326
+
327
+ ##
328
+ # Access the authorized_connect_apps
329
+ # @return [AuthorizedConnectAppList]
330
+ # @return [AuthorizedConnectAppContext] if connect_app_sid was passed.
331
+ def authorized_connect_apps(connect_app_sid=:unset)
332
+ raise ArgumentError, 'connect_app_sid cannot be nil' if connect_app_sid.nil?
333
+
334
+ if connect_app_sid != :unset
335
+ return AuthorizedConnectAppContext.new(
336
+ @version,
337
+ @solution[:sid],
338
+ connect_app_sid,
339
+ )
340
+ end
341
+
342
+ unless @authorized_connect_apps
343
+ @authorized_connect_apps = AuthorizedConnectAppList.new(
344
+ @version,
345
+ account_sid: @solution[:sid],
346
+ )
347
+ end
348
+
349
+ @authorized_connect_apps
350
+ end
351
+
352
+ ##
353
+ # Access the available_phone_numbers
354
+ # @return [AvailablePhoneNumberCountryList]
355
+ # @return [AvailablePhoneNumberCountryContext] if country_code was passed.
356
+ def available_phone_numbers(country_code=:unset)
357
+ raise ArgumentError, 'country_code cannot be nil' if country_code.nil?
358
+
359
+ if country_code != :unset
360
+ return AvailablePhoneNumberCountryContext.new(
361
+ @version,
362
+ @solution[:sid],
363
+ country_code,
364
+ )
365
+ end
366
+
367
+ unless @available_phone_numbers
368
+ @available_phone_numbers = AvailablePhoneNumberCountryList.new(
369
+ @version,
370
+ account_sid: @solution[:sid],
371
+ )
372
+ end
373
+
374
+ @available_phone_numbers
375
+ end
376
+
377
+ ##
378
+ # Access the calls
379
+ # @return [CallList]
380
+ # @return [CallContext] if sid was passed.
381
+ def calls(sid=:unset)
382
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
383
+
384
+ if sid != :unset
385
+ return CallContext.new(
386
+ @version,
387
+ @solution[:sid],
388
+ sid,
389
+ )
390
+ end
391
+
392
+ unless @calls
393
+ @calls = CallList.new(
394
+ @version,
395
+ account_sid: @solution[:sid],
396
+ )
397
+ end
398
+
399
+ @calls
400
+ end
401
+
402
+ ##
403
+ # Access the conferences
404
+ # @return [ConferenceList]
405
+ # @return [ConferenceContext] if sid was passed.
406
+ def conferences(sid=:unset)
407
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
408
+
409
+ if sid != :unset
410
+ return ConferenceContext.new(
411
+ @version,
412
+ @solution[:sid],
413
+ sid,
414
+ )
415
+ end
416
+
417
+ unless @conferences
418
+ @conferences = ConferenceList.new(
419
+ @version,
420
+ account_sid: @solution[:sid],
421
+ )
422
+ end
423
+
424
+ @conferences
425
+ end
426
+
427
+ ##
428
+ # Access the connect_apps
429
+ # @return [ConnectAppList]
430
+ # @return [ConnectAppContext] if sid was passed.
431
+ def connect_apps(sid=:unset)
432
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
433
+
434
+ if sid != :unset
435
+ return ConnectAppContext.new(
436
+ @version,
437
+ @solution[:sid],
438
+ sid,
439
+ )
440
+ end
441
+
442
+ unless @connect_apps
443
+ @connect_apps = ConnectAppList.new(
444
+ @version,
445
+ account_sid: @solution[:sid],
446
+ )
447
+ end
448
+
449
+ @connect_apps
450
+ end
451
+
452
+ ##
453
+ # Access the incoming_phone_numbers
454
+ # @return [IncomingPhoneNumberList]
455
+ # @return [IncomingPhoneNumberContext] if sid was passed.
456
+ def incoming_phone_numbers(sid=:unset)
457
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
458
+
459
+ if sid != :unset
460
+ return IncomingPhoneNumberContext.new(
461
+ @version,
462
+ @solution[:sid],
463
+ sid,
464
+ )
465
+ end
466
+
467
+ unless @incoming_phone_numbers
468
+ @incoming_phone_numbers = IncomingPhoneNumberList.new(
469
+ @version,
470
+ account_sid: @solution[:sid],
471
+ )
472
+ end
473
+
474
+ @incoming_phone_numbers
475
+ end
476
+
477
+ ##
478
+ # Access the keys
479
+ # @return [KeyList]
480
+ # @return [KeyContext] if sid was passed.
481
+ def keys(sid=:unset)
482
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
483
+
484
+ if sid != :unset
485
+ return KeyContext.new(
486
+ @version,
487
+ @solution[:sid],
488
+ sid,
489
+ )
490
+ end
491
+
492
+ unless @keys
493
+ @keys = KeyList.new(
494
+ @version,
495
+ account_sid: @solution[:sid],
496
+ )
497
+ end
498
+
499
+ @keys
500
+ end
501
+
502
+ ##
503
+ # Access the messages
504
+ # @return [MessageList]
505
+ # @return [MessageContext] if sid was passed.
506
+ def messages(sid=:unset)
507
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
508
+
509
+ if sid != :unset
510
+ return MessageContext.new(
511
+ @version,
512
+ @solution[:sid],
513
+ sid,
514
+ )
515
+ end
516
+
517
+ unless @messages
518
+ @messages = MessageList.new(
519
+ @version,
520
+ account_sid: @solution[:sid],
521
+ )
522
+ end
523
+
524
+ @messages
525
+ end
526
+
527
+ ##
528
+ # Access the new_keys
529
+ # @return [NewKeyList]
530
+ # @return [NewKeyContext]
531
+ def new_keys
532
+ unless @new_keys
533
+ @new_keys = NewKeyList.new(
534
+ @version,
535
+ account_sid: @solution[:sid],
536
+ )
537
+ end
538
+
539
+ @new_keys
540
+ end
541
+
542
+ ##
543
+ # Access the new_signing_keys
544
+ # @return [NewSigningKeyList]
545
+ # @return [NewSigningKeyContext]
546
+ def new_signing_keys
547
+ unless @new_signing_keys
548
+ @new_signing_keys = NewSigningKeyList.new(
549
+ @version,
550
+ account_sid: @solution[:sid],
551
+ )
552
+ end
553
+
554
+ @new_signing_keys
555
+ end
556
+
557
+ ##
558
+ # Access the notifications
559
+ # @return [NotificationList]
560
+ # @return [NotificationContext] if sid was passed.
561
+ def notifications(sid=:unset)
562
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
563
+
564
+ if sid != :unset
565
+ return NotificationContext.new(
566
+ @version,
567
+ @solution[:sid],
568
+ sid,
569
+ )
570
+ end
571
+
572
+ unless @notifications
573
+ @notifications = NotificationList.new(
574
+ @version,
575
+ account_sid: @solution[:sid],
576
+ )
577
+ end
578
+
579
+ @notifications
580
+ end
581
+
582
+ ##
583
+ # Access the outgoing_caller_ids
584
+ # @return [OutgoingCallerIdList]
585
+ # @return [OutgoingCallerIdContext] if sid was passed.
586
+ def outgoing_caller_ids(sid=:unset)
587
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
588
+
589
+ if sid != :unset
590
+ return OutgoingCallerIdContext.new(
591
+ @version,
592
+ @solution[:sid],
593
+ sid,
594
+ )
595
+ end
596
+
597
+ unless @outgoing_caller_ids
598
+ @outgoing_caller_ids = OutgoingCallerIdList.new(
599
+ @version,
600
+ account_sid: @solution[:sid],
601
+ )
602
+ end
603
+
604
+ @outgoing_caller_ids
605
+ end
606
+
607
+ ##
608
+ # Access the queues
609
+ # @return [QueueList]
610
+ # @return [QueueContext] if sid was passed.
611
+ def queues(sid=:unset)
612
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
613
+
614
+ if sid != :unset
615
+ return QueueContext.new(
616
+ @version,
617
+ @solution[:sid],
618
+ sid,
619
+ )
620
+ end
621
+
622
+ unless @queues
623
+ @queues = QueueList.new(
624
+ @version,
625
+ account_sid: @solution[:sid],
626
+ )
627
+ end
628
+
629
+ @queues
630
+ end
631
+
632
+ ##
633
+ # Access the recordings
634
+ # @return [RecordingList]
635
+ # @return [RecordingContext] if sid was passed.
636
+ def recordings(sid=:unset)
637
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
638
+
639
+ if sid != :unset
640
+ return RecordingContext.new(
641
+ @version,
642
+ @solution[:sid],
643
+ sid,
644
+ )
645
+ end
646
+
647
+ unless @recordings
648
+ @recordings = RecordingList.new(
649
+ @version,
650
+ account_sid: @solution[:sid],
651
+ )
652
+ end
653
+
654
+ @recordings
655
+ end
656
+
657
+ ##
658
+ # Access the signing_keys
659
+ # @return [SigningKeyList]
660
+ # @return [SigningKeyContext] if sid was passed.
661
+ def signing_keys(sid=:unset)
662
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
663
+
664
+ if sid != :unset
665
+ return SigningKeyContext.new(
666
+ @version,
667
+ @solution[:sid],
668
+ sid,
669
+ )
670
+ end
671
+
672
+ unless @signing_keys
673
+ @signing_keys = SigningKeyList.new(
674
+ @version,
675
+ account_sid: @solution[:sid],
676
+ )
677
+ end
678
+
679
+ @signing_keys
680
+ end
681
+
682
+ ##
683
+ # Access the sip
684
+ # @return [SipList]
685
+ # @return [SipContext]
686
+ def sip
687
+ unless @sip
688
+ @sip = SipList.new(
689
+ @version,
690
+ account_sid: @solution[:sid],
691
+ )
692
+ end
693
+
694
+ @sip
695
+ end
696
+
697
+ ##
698
+ # Access the short_codes
699
+ # @return [ShortCodeList]
700
+ # @return [ShortCodeContext] if sid was passed.
701
+ def short_codes(sid=:unset)
702
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
703
+
704
+ if sid != :unset
705
+ return ShortCodeContext.new(
706
+ @version,
707
+ @solution[:sid],
708
+ sid,
709
+ )
710
+ end
711
+
712
+ unless @short_codes
713
+ @short_codes = ShortCodeList.new(
714
+ @version,
715
+ account_sid: @solution[:sid],
716
+ )
717
+ end
718
+
719
+ @short_codes
720
+ end
721
+
722
+ ##
723
+ # Access the tokens
724
+ # @return [TokenList]
725
+ # @return [TokenContext]
726
+ def tokens
727
+ unless @tokens
728
+ @tokens = TokenList.new(
729
+ @version,
730
+ account_sid: @solution[:sid],
731
+ )
732
+ end
733
+
734
+ @tokens
735
+ end
736
+
737
+ ##
738
+ # Access the transcriptions
739
+ # @return [TranscriptionList]
740
+ # @return [TranscriptionContext] if sid was passed.
741
+ def transcriptions(sid=:unset)
742
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
743
+
744
+ if sid != :unset
745
+ return TranscriptionContext.new(
746
+ @version,
747
+ @solution[:sid],
748
+ sid,
749
+ )
750
+ end
751
+
752
+ unless @transcriptions
753
+ @transcriptions = TranscriptionList.new(
754
+ @version,
755
+ account_sid: @solution[:sid],
756
+ )
757
+ end
758
+
759
+ @transcriptions
760
+ end
761
+
762
+ ##
763
+ # Access the usage
764
+ # @return [UsageList]
765
+ # @return [UsageContext]
766
+ def usage
767
+ unless @usage
768
+ @usage = UsageList.new(
769
+ @version,
770
+ account_sid: @solution[:sid],
771
+ )
772
+ end
773
+
774
+ @usage
775
+ end
776
+
777
+ ##
778
+ # Access the validation_requests
779
+ # @return [ValidationRequestList]
780
+ # @return [ValidationRequestContext]
781
+ def validation_requests
782
+ unless @validation_requests
783
+ @validation_requests = ValidationRequestList.new(
784
+ @version,
785
+ account_sid: @solution[:sid],
786
+ )
787
+ end
788
+
789
+ @validation_requests
790
+ end
791
+
792
+ ##
793
+ # Provide a user friendly representation
794
+ def to_s
795
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
796
+ "#<Twilio.Api.V2010.AccountContext #{context}>"
797
+ end
798
+ end
799
+
800
+ class AccountInstance < InstanceResource
801
+ ##
802
+ # Initialize the AccountInstance
803
+ # @param [Version] version Version that contains the resource
804
+ # @param [Hash] payload payload that contains response from Twilio
805
+ # @param [String] sid The Account Sid that uniquely identifies the account to
806
+ # fetch
807
+ # @return [AccountInstance] AccountInstance
808
+ def initialize(version, payload, sid: nil)
809
+ super(version)
810
+
811
+ # Marshaled Properties
812
+ @properties = {
813
+ 'auth_token' => payload['auth_token'],
814
+ 'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
815
+ 'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
816
+ 'friendly_name' => payload['friendly_name'],
817
+ 'owner_account_sid' => payload['owner_account_sid'],
818
+ 'sid' => payload['sid'],
819
+ 'status' => payload['status'],
820
+ 'subresource_uris' => payload['subresource_uris'],
821
+ 'type' => payload['type'],
822
+ 'uri' => payload['uri'],
823
+ }
824
+
825
+ # Context
826
+ @instance_context = nil
827
+ @params = {
828
+ 'sid' => sid || @properties['sid'],
829
+ }
830
+ end
831
+
832
+ ##
833
+ # Generate an instance context for the instance, the context is capable of
834
+ # performing various actions. All instance actions are proxied to the context
835
+ # @return [AccountContext] AccountContext for this AccountInstance
836
+ def context
837
+ unless @instance_context
838
+ @instance_context = AccountContext.new(
839
+ @version,
840
+ @params['sid'],
841
+ )
842
+ end
843
+ @instance_context
844
+ end
845
+
846
+ ##
847
+ # @return [String] The authorization token for this account
848
+ def auth_token
849
+ @properties['auth_token']
850
+ end
851
+
852
+ ##
853
+ # @return [Time] The date this account was created
854
+ def date_created
855
+ @properties['date_created']
856
+ end
857
+
858
+ ##
859
+ # @return [Time] The date this account was last updated
860
+ def date_updated
861
+ @properties['date_updated']
862
+ end
863
+
864
+ ##
865
+ # @return [String] A human readable description of this account
866
+ def friendly_name
867
+ @properties['friendly_name']
868
+ end
869
+
870
+ ##
871
+ # @return [String] The unique 34 character id representing the parent of this account
872
+ def owner_account_sid
873
+ @properties['owner_account_sid']
874
+ end
875
+
876
+ ##
877
+ # @return [String] A 34 character string that uniquely identifies this resource.
878
+ def sid
879
+ @properties['sid']
880
+ end
881
+
882
+ ##
883
+ # @return [account.Status] The status of this account
884
+ def status
885
+ @properties['status']
886
+ end
887
+
888
+ ##
889
+ # @return [String] Account Instance Subresources
890
+ def subresource_uris
891
+ @properties['subresource_uris']
892
+ end
893
+
894
+ ##
895
+ # @return [account.Type] The type of this account
896
+ def type
897
+ @properties['type']
898
+ end
899
+
900
+ ##
901
+ # @return [String] The URI for this resource, relative to `https://api.twilio.com`
902
+ def uri
903
+ @properties['uri']
904
+ end
905
+
906
+ ##
907
+ # Fetch a AccountInstance
908
+ # @return [AccountInstance] Fetched AccountInstance
909
+ def fetch
910
+ context.fetch
911
+ end
912
+
913
+ ##
914
+ # Update the AccountInstance
915
+ # @param [String] friendly_name Update the human-readable description of this
916
+ # Account
917
+ # @param [account.Status] status Alter the status of this account with a given
918
+ # Status
919
+ # @return [AccountInstance] Updated AccountInstance
920
+ def update(friendly_name: :unset, status: :unset)
921
+ context.update(
922
+ friendly_name: friendly_name,
923
+ status: status,
924
+ )
925
+ end
926
+
927
+ ##
928
+ # Access the addresses
929
+ # @return [addresses] addresses
930
+ def addresses
931
+ context.addresses
932
+ end
933
+
934
+ ##
935
+ # Access the applications
936
+ # @return [applications] applications
937
+ def applications
938
+ context.applications
939
+ end
940
+
941
+ ##
942
+ # Access the authorized_connect_apps
943
+ # @return [authorized_connect_apps] authorized_connect_apps
944
+ def authorized_connect_apps
945
+ context.authorized_connect_apps
946
+ end
947
+
948
+ ##
949
+ # Access the available_phone_numbers
950
+ # @return [available_phone_numbers] available_phone_numbers
951
+ def available_phone_numbers
952
+ context.available_phone_numbers
953
+ end
954
+
955
+ ##
956
+ # Access the calls
957
+ # @return [calls] calls
958
+ def calls
959
+ context.calls
960
+ end
961
+
962
+ ##
963
+ # Access the conferences
964
+ # @return [conferences] conferences
965
+ def conferences
966
+ context.conferences
967
+ end
968
+
969
+ ##
970
+ # Access the connect_apps
971
+ # @return [connect_apps] connect_apps
972
+ def connect_apps
973
+ context.connect_apps
974
+ end
975
+
976
+ ##
977
+ # Access the incoming_phone_numbers
978
+ # @return [incoming_phone_numbers] incoming_phone_numbers
979
+ def incoming_phone_numbers
980
+ context.incoming_phone_numbers
981
+ end
982
+
983
+ ##
984
+ # Access the keys
985
+ # @return [keys] keys
986
+ def keys
987
+ context.keys
988
+ end
989
+
990
+ ##
991
+ # Access the messages
992
+ # @return [messages] messages
993
+ def messages
994
+ context.messages
995
+ end
996
+
997
+ ##
998
+ # Access the new_keys
999
+ # @return [new_keys] new_keys
1000
+ def new_keys
1001
+ context.new_keys
1002
+ end
1003
+
1004
+ ##
1005
+ # Access the new_signing_keys
1006
+ # @return [new_signing_keys] new_signing_keys
1007
+ def new_signing_keys
1008
+ context.new_signing_keys
1009
+ end
1010
+
1011
+ ##
1012
+ # Access the notifications
1013
+ # @return [notifications] notifications
1014
+ def notifications
1015
+ context.notifications
1016
+ end
1017
+
1018
+ ##
1019
+ # Access the outgoing_caller_ids
1020
+ # @return [outgoing_caller_ids] outgoing_caller_ids
1021
+ def outgoing_caller_ids
1022
+ context.outgoing_caller_ids
1023
+ end
1024
+
1025
+ ##
1026
+ # Access the queues
1027
+ # @return [queues] queues
1028
+ def queues
1029
+ context.queues
1030
+ end
1031
+
1032
+ ##
1033
+ # Access the recordings
1034
+ # @return [recordings] recordings
1035
+ def recordings
1036
+ context.recordings
1037
+ end
1038
+
1039
+ ##
1040
+ # Access the signing_keys
1041
+ # @return [signing_keys] signing_keys
1042
+ def signing_keys
1043
+ context.signing_keys
1044
+ end
1045
+
1046
+ ##
1047
+ # Access the sip
1048
+ # @return [sip] sip
1049
+ def sip
1050
+ context.sip
1051
+ end
1052
+
1053
+ ##
1054
+ # Access the short_codes
1055
+ # @return [short_codes] short_codes
1056
+ def short_codes
1057
+ context.short_codes
1058
+ end
1059
+
1060
+ ##
1061
+ # Access the tokens
1062
+ # @return [tokens] tokens
1063
+ def tokens
1064
+ context.tokens
1065
+ end
1066
+
1067
+ ##
1068
+ # Access the transcriptions
1069
+ # @return [transcriptions] transcriptions
1070
+ def transcriptions
1071
+ context.transcriptions
1072
+ end
1073
+
1074
+ ##
1075
+ # Access the usage
1076
+ # @return [usage] usage
1077
+ def usage
1078
+ context.usage
1079
+ end
1080
+
1081
+ ##
1082
+ # Access the validation_requests
1083
+ # @return [validation_requests] validation_requests
1084
+ def validation_requests
1085
+ context.validation_requests
1086
+ end
1087
+
1088
+ ##
1089
+ # Provide a user friendly representation
1090
+ def to_s
1091
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
1092
+ "<Twilio.Api.V2010.AccountInstance #{values}>"
1093
+ end
1094
+ end
1095
+ end
1096
+ end
1097
+ end
1098
+ end