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,799 @@
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 AccountContext < InstanceContext
12
+ class CallList < ListResource
13
+ ##
14
+ # Initialize the CallList
15
+ # @param [Version] version Version that contains the resource
16
+ # @param [String] account_sid The unique id of the Account responsible for
17
+ # creating this Call
18
+ # @return [CallList] CallList
19
+ def initialize(version, account_sid: nil)
20
+ super(version)
21
+
22
+ # Path Solution
23
+ @solution = {
24
+ account_sid: account_sid
25
+ }
26
+ @uri = "/Accounts/#{@solution[:account_sid]}/Calls.json"
27
+
28
+ # Components
29
+ @feedback_summaries = nil
30
+ end
31
+
32
+ ##
33
+ # Retrieve a single page of CallInstance records from the API.
34
+ # Request is executed immediately.
35
+ # @param [String] to The phone number, SIP address or client identifier to call.
36
+ # @param [String] from The phone number or client identifier to use as the caller
37
+ # id. If using a phone number, it must be a Twilio number or a Verified outgoing
38
+ # caller id for your account.
39
+ # @param [String] method The HTTP method Twilio should use when requesting the
40
+ # URL. Defaults to `POST`. If an `ApplicationSid` was provided, this parameter is
41
+ # ignored.
42
+ # @param [String] fallback_url A URL that Twilio will request if an error occurs
43
+ # requesting or executing the TwiML at `Url`. If an `ApplicationSid` was provided,
44
+ # this parameter is ignored.
45
+ # @param [String] fallback_method The HTTP method that Twilio should use to
46
+ # request the `FallbackUrl`. Must be either `GET` or `POST`. Defaults to `POST`.
47
+ # If an `ApplicationSid` was provided, this parameter is ignored.
48
+ # @param [String] status_callback A URL that Twilio will request when the call
49
+ # ends to notify your app. If an `ApplicationSid` was provided, this parameter is
50
+ # ignored.
51
+ # @param [String] status_callback_event The status_callback_event
52
+ # @param [String] status_callback_method The HTTP method that Twilio should use to
53
+ # request the `StatusCallback`. Defaults to `POST`. If an `ApplicationSid` was
54
+ # provided, this parameter is ignored.
55
+ # @param [String] send_digits A string of keys to dial after connecting to the
56
+ # number. Valid digits in the string include: any digit (`0`-`9`), '`#`', '`*`'
57
+ # and '`w`' (to insert a half second pause). For example, if you connected to a
58
+ # company phone number, and wanted to pause for one second, dial extension 1234
59
+ # and then the pound key, use `ww1234#`.
60
+ # @param [String] if_machine Tell Twilio to try and determine if a machine (like
61
+ # voicemail) or a human has answered the call. Possible value are `Continue` and
62
+ # `Hangup`.
63
+ # @param [String] timeout The integer number of seconds that Twilio should allow
64
+ # the phone to ring before assuming there is no answer. Default is `60` seconds,
65
+ # the maximum is `999` seconds. Note, you could set this to a low value, such as
66
+ # `15`, to hangup before reaching an answering machine or voicemail.
67
+ # @param [Boolean] record Set this parameter to true to record the entirety of a
68
+ # phone call. The RecordingUrl will be sent to the StatusCallback URL. Defaults to
69
+ # false.
70
+ # @param [String] recording_channels The recording_channels
71
+ # @param [String] recording_status_callback The recording_status_callback
72
+ # @param [String] recording_status_callback_method The
73
+ # recording_status_callback_method
74
+ # @param [String] sip_auth_username The sip_auth_username
75
+ # @param [String] sip_auth_password The sip_auth_password
76
+ # @param [String] machine_detection Twilio will try to detect if a human, fax
77
+ # machine or answering machine has answered the call. Possible value are `Enable`
78
+ # and `DetectMessageEnd`.
79
+ # @param [String] machine_detection_timeout The integer number of miliseconds that
80
+ # Twilio should wait while machine_detection is performned before timing out.
81
+ # @param [String] url The fully qualified URL that should be consulted when the
82
+ # call connects. Just like when you set a URL on a phone number for handling
83
+ # inbound calls.
84
+ # @param [String] application_sid The 34 character sid of the application Twilio
85
+ # should use to handle this phone call. If this parameter is present, Twilio will
86
+ # ignore all of the voice URLs passed and use the URLs set on the application.
87
+ # @return [CallInstance] Newly created CallInstance
88
+ def create(to: nil, from: nil, method: :unset, fallback_url: :unset, fallback_method: :unset, status_callback: :unset, status_callback_event: :unset, status_callback_method: :unset, send_digits: :unset, if_machine: :unset, timeout: :unset, record: :unset, recording_channels: :unset, recording_status_callback: :unset, recording_status_callback_method: :unset, sip_auth_username: :unset, sip_auth_password: :unset, machine_detection: :unset, machine_detection_timeout: :unset, url: :unset, application_sid: :unset)
89
+ data = Twilio::Values.of({
90
+ 'To' => to,
91
+ 'From' => from,
92
+ 'Url' => url,
93
+ 'ApplicationSid' => application_sid,
94
+ 'Method' => method,
95
+ 'FallbackUrl' => fallback_url,
96
+ 'FallbackMethod' => fallback_method,
97
+ 'StatusCallback' => status_callback,
98
+ 'StatusCallbackEvent' => status_callback_event,
99
+ 'StatusCallbackMethod' => status_callback_method,
100
+ 'SendDigits' => send_digits,
101
+ 'IfMachine' => if_machine,
102
+ 'Timeout' => timeout,
103
+ 'Record' => record,
104
+ 'RecordingChannels' => recording_channels,
105
+ 'RecordingStatusCallback' => recording_status_callback,
106
+ 'RecordingStatusCallbackMethod' => recording_status_callback_method,
107
+ 'SipAuthUsername' => sip_auth_username,
108
+ 'SipAuthPassword' => sip_auth_password,
109
+ 'MachineDetection' => machine_detection,
110
+ 'MachineDetectionTimeout' => machine_detection_timeout,
111
+ })
112
+
113
+ payload = @version.create(
114
+ 'POST',
115
+ @uri,
116
+ data: data
117
+ )
118
+
119
+ CallInstance.new(
120
+ @version,
121
+ payload,
122
+ account_sid: @solution[:account_sid],
123
+ )
124
+ end
125
+
126
+ ##
127
+ # Lists CallInstance records from the API as a list.
128
+ # Unlike stream(), this operation is eager and will load `limit` records into
129
+ # memory before returning.
130
+ # @param [String] to Only show calls to this phone number or Client identifier
131
+ # @param [String] from Only show calls from this phone number or Client identifier
132
+ # @param [String] parent_call_sid Only show calls spawned by the call with this
133
+ # Sid
134
+ # @param [feedback_summary.Status] status Only show calls currently in this status
135
+ # @param [Time] start_time_before StartTime to filter on
136
+ # @param [Time] start_time StartTime to filter on
137
+ # @param [Time] start_time_after StartTime to filter on
138
+ # @param [Time] end_time_before EndTime to filter on
139
+ # @param [Time] end_time EndTime to filter on
140
+ # @param [Time] end_time_after EndTime to filter on
141
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
142
+ # guarantees to never return more than limit. Default is no limit
143
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
144
+ # the default value of 50 records. If no page_size is defined
145
+ # but a limit is defined, stream() will attempt to read the
146
+ # limit with the most efficient page size, i.e. min(limit, 1000)
147
+ # @return [Array] Array of up to limit results
148
+ def list(to: :unset, from: :unset, parent_call_sid: :unset, status: :unset, start_time_before: :unset, start_time: :unset, start_time_after: :unset, end_time_before: :unset, end_time: :unset, end_time_after: :unset, limit: nil, page_size: nil)
149
+ self.stream(
150
+ to: to,
151
+ from: from,
152
+ parent_call_sid: parent_call_sid,
153
+ status: status,
154
+ start_time_before: start_time_before,
155
+ start_time: start_time,
156
+ start_time_after: start_time_after,
157
+ end_time_before: end_time_before,
158
+ end_time: end_time,
159
+ end_time_after: end_time_after,
160
+ limit: limit,
161
+ page_size: page_size
162
+ ).entries
163
+ end
164
+
165
+ ##
166
+ # Streams CallInstance records from the API as an Enumerable.
167
+ # This operation lazily loads records as efficiently as possible until the limit
168
+ # is reached.
169
+ # @param [String] to Only show calls to this phone number or Client identifier
170
+ # @param [String] from Only show calls from this phone number or Client identifier
171
+ # @param [String] parent_call_sid Only show calls spawned by the call with this
172
+ # Sid
173
+ # @param [feedback_summary.Status] status Only show calls currently in this status
174
+ # @param [Time] start_time_before StartTime to filter on
175
+ # @param [Time] start_time StartTime to filter on
176
+ # @param [Time] start_time_after StartTime to filter on
177
+ # @param [Time] end_time_before EndTime to filter on
178
+ # @param [Time] end_time EndTime to filter on
179
+ # @param [Time] end_time_after EndTime to filter on
180
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
181
+ # guarantees to never return more than limit. Default is no limit
182
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
183
+ # the default value of 50 records. If no page_size is defined
184
+ # but a limit is defined, stream() will attempt to read the
185
+ # limit with the most efficient page size, i.e. min(limit, 1000)
186
+ # @return [Enumerable] Enumerable that will yield up to limit results
187
+ def stream(to: :unset, from: :unset, parent_call_sid: :unset, status: :unset, start_time_before: :unset, start_time: :unset, start_time_after: :unset, end_time_before: :unset, end_time: :unset, end_time_after: :unset, limit: nil, page_size: nil)
188
+ limits = @version.read_limits(limit, page_size)
189
+
190
+ page = self.page(
191
+ to: to,
192
+ from: from,
193
+ parent_call_sid: parent_call_sid,
194
+ status: status,
195
+ start_time_before: start_time_before,
196
+ start_time: start_time,
197
+ start_time_after: start_time_after,
198
+ end_time_before: end_time_before,
199
+ end_time: end_time,
200
+ end_time_after: end_time_after,
201
+ page_size: limits[:page_size],
202
+ )
203
+
204
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
205
+ end
206
+
207
+ ##
208
+ # When passed a block, yields CallInstance records from the API.
209
+ # This operation lazily loads records as efficiently as possible until the limit
210
+ # is reached.
211
+ def each
212
+ limits = @version.read_limits
213
+
214
+ page = self.page(
215
+ page_size: limits[:page_size],
216
+ )
217
+
218
+ @version.stream(page,
219
+ limit: limits[:limit],
220
+ page_limit: limits[:page_limit]).each {|x| yield x}
221
+ end
222
+
223
+ ##
224
+ # Retrieve a single page of CallInstance records from the API.
225
+ # Request is executed immediately.
226
+ # @param [String] to Only show calls to this phone number or Client identifier
227
+ # @param [String] from Only show calls from this phone number or Client identifier
228
+ # @param [String] parent_call_sid Only show calls spawned by the call with this
229
+ # Sid
230
+ # @param [feedback_summary.Status] status Only show calls currently in this status
231
+ # @param [Time] start_time_before StartTime to filter on
232
+ # @param [Time] start_time StartTime to filter on
233
+ # @param [Time] start_time_after StartTime to filter on
234
+ # @param [Time] end_time_before EndTime to filter on
235
+ # @param [Time] end_time EndTime to filter on
236
+ # @param [Time] end_time_after EndTime to filter on
237
+ # @param [String] page_token PageToken provided by the API
238
+ # @param [Integer] page_number Page Number, this value is simply for client state
239
+ # @param [Integer] page_size Number of records to return, defaults to 50
240
+ # @return [Page] Page of CallInstance
241
+ def page(to: :unset, from: :unset, parent_call_sid: :unset, status: :unset, start_time_before: :unset, start_time: :unset, start_time_after: :unset, end_time_before: :unset, end_time: :unset, end_time_after: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
242
+ params = Twilio::Values.of({
243
+ 'To' => to,
244
+ 'From' => from,
245
+ 'ParentCallSid' => parent_call_sid,
246
+ 'Status' => status,
247
+ 'StartTime<' => Twilio.serialize_iso8601_datetime(start_time_before),
248
+ 'StartTime' => Twilio.serialize_iso8601_datetime(start_time),
249
+ 'StartTime>' => Twilio.serialize_iso8601_datetime(start_time_after),
250
+ 'EndTime<' => Twilio.serialize_iso8601_datetime(end_time_before),
251
+ 'EndTime' => Twilio.serialize_iso8601_datetime(end_time),
252
+ 'EndTime>' => Twilio.serialize_iso8601_datetime(end_time_after),
253
+ 'PageToken' => page_token,
254
+ 'Page' => page_number,
255
+ 'PageSize' => page_size,
256
+ })
257
+ response = @version.page(
258
+ 'GET',
259
+ @uri,
260
+ params
261
+ )
262
+ CallPage.new(@version, response, @solution)
263
+ end
264
+
265
+ ##
266
+ # Retrieve a single page of CallInstance records from the API.
267
+ # Request is executed immediately.
268
+ # @param [String] target_url API-generated URL for the requested results page
269
+ # @return [Page] Page of CallInstance
270
+ def get_page(target_url)
271
+ response = @version.domain.request(
272
+ 'GET',
273
+ target_url
274
+ )
275
+ CallPage.new(@version, response, @solution)
276
+ end
277
+
278
+ ##
279
+ # Access the feedback_summaries
280
+ # @param [String] sid The sid
281
+ # @return [FeedbackSummaryList]
282
+ # @return [FeedbackSummaryContext] if sid was passed.
283
+ def feedback_summaries(sid=:unset)
284
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
285
+
286
+ if sid != :unset
287
+ return FeedbackSummaryContext.new(
288
+ @version,
289
+ @solution[:account_sid],
290
+ sid,
291
+ )
292
+ end
293
+
294
+ @feedback_summaries ||= FeedbackSummaryList.new(
295
+ @version,
296
+ account_sid: @solution[:account_sid],
297
+ )
298
+ end
299
+
300
+ ##
301
+ # Provide a user friendly representation
302
+ def to_s
303
+ '#<Twilio.Api.V2010.CallList>'
304
+ end
305
+ end
306
+
307
+ class CallPage < Page
308
+ ##
309
+ # Initialize the CallPage
310
+ # @param [Version] version Version that contains the resource
311
+ # @param [Response] response Response from the API
312
+ # @param [Hash] solution Path solution for the resource
313
+ # @return [CallPage] CallPage
314
+ def initialize(version, response, solution)
315
+ super(version, response)
316
+
317
+ # Path Solution
318
+ @solution = solution
319
+ end
320
+
321
+ ##
322
+ # Build an instance of CallInstance
323
+ # @param [Hash] payload Payload response from the API
324
+ # @return [CallInstance] CallInstance
325
+ def get_instance(payload)
326
+ CallInstance.new(
327
+ @version,
328
+ payload,
329
+ account_sid: @solution[:account_sid],
330
+ )
331
+ end
332
+
333
+ ##
334
+ # Provide a user friendly representation
335
+ def to_s
336
+ '<Twilio.Api.V2010.CallPage>'
337
+ end
338
+ end
339
+
340
+ class CallContext < InstanceContext
341
+ ##
342
+ # Initialize the CallContext
343
+ # @param [Version] version Version that contains the resource
344
+ # @param [String] account_sid The account_sid
345
+ # @param [String] sid The Call Sid that uniquely identifies the Call to fetch
346
+ # @return [CallContext] CallContext
347
+ def initialize(version, account_sid, sid)
348
+ super(version)
349
+
350
+ # Path Solution
351
+ @solution = {
352
+ account_sid: account_sid,
353
+ sid: sid,
354
+ }
355
+ @uri = "/Accounts/#{@solution[:account_sid]}/Calls/#{@solution[:sid]}.json"
356
+
357
+ # Dependents
358
+ @recordings = nil
359
+ @notifications = nil
360
+ @feedback = nil
361
+ end
362
+
363
+ ##
364
+ # Deletes the CallInstance
365
+ # @return [Boolean] true if delete succeeds, true otherwise
366
+ def delete
367
+ @version.delete('delete', @uri)
368
+ end
369
+
370
+ ##
371
+ # Fetch a CallInstance
372
+ # @return [CallInstance] Fetched CallInstance
373
+ def fetch
374
+ params = Twilio::Values.of({})
375
+
376
+ payload = @version.fetch(
377
+ 'GET',
378
+ @uri,
379
+ params,
380
+ )
381
+
382
+ CallInstance.new(
383
+ @version,
384
+ payload,
385
+ account_sid: @solution[:account_sid],
386
+ sid: @solution[:sid],
387
+ )
388
+ end
389
+
390
+ ##
391
+ # Update the CallInstance
392
+ # @param [String] url A valid URL that returns TwiML. Twilio will immediately
393
+ # redirect the call to the new TwiML upon execution.
394
+ # @param [String] method The HTTP method Twilio should use when requesting the
395
+ # URL. Defaults to `POST`.
396
+ # @param [call.UpdateStatus] status Either `canceled` or `completed`. Specifying
397
+ # `canceled` will attempt to hangup calls that are queued or ringing but not
398
+ # affect calls already in progress. Specifying `completed` will attempt to hang up
399
+ # a call even if it's already in progress.
400
+ # @param [String] fallback_url A URL that Twilio will request if an error occurs
401
+ # requesting or executing the TwiML at `Url`.
402
+ # @param [String] fallback_method The HTTP method that Twilio should use to
403
+ # request the `FallbackUrl`. Must be either `GET` or `POST`. Defaults to `POST`.
404
+ # @param [String] status_callback A URL that Twilio will request when the call
405
+ # ends to notify your app.
406
+ # @param [String] status_callback_method The HTTP method that Twilio should use to
407
+ # request the `StatusCallback`. Defaults to `POST`.
408
+ # @return [CallInstance] Updated CallInstance
409
+ def update(url: :unset, method: :unset, status: :unset, fallback_url: :unset, fallback_method: :unset, status_callback: :unset, status_callback_method: :unset)
410
+ data = Twilio::Values.of({
411
+ 'Url' => url,
412
+ 'Method' => method,
413
+ 'Status' => status,
414
+ 'FallbackUrl' => fallback_url,
415
+ 'FallbackMethod' => fallback_method,
416
+ 'StatusCallback' => status_callback,
417
+ 'StatusCallbackMethod' => status_callback_method,
418
+ })
419
+
420
+ payload = @version.update(
421
+ 'POST',
422
+ @uri,
423
+ data: data,
424
+ )
425
+
426
+ CallInstance.new(
427
+ @version,
428
+ payload,
429
+ account_sid: @solution[:account_sid],
430
+ sid: @solution[:sid],
431
+ )
432
+ end
433
+
434
+ ##
435
+ # Access the recordings
436
+ # @return [RecordingList]
437
+ # @return [RecordingContext] if sid was passed.
438
+ def recordings(sid=:unset)
439
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
440
+
441
+ if sid != :unset
442
+ return RecordingContext.new(
443
+ @version,
444
+ @solution[:account_sid],
445
+ @solution[:sid],
446
+ sid,
447
+ )
448
+ end
449
+
450
+ unless @recordings
451
+ @recordings = RecordingList.new(
452
+ @version,
453
+ account_sid: @solution[:account_sid],
454
+ call_sid: @solution[:sid],
455
+ )
456
+ end
457
+
458
+ @recordings
459
+ end
460
+
461
+ ##
462
+ # Access the notifications
463
+ # @return [NotificationList]
464
+ # @return [NotificationContext] if sid was passed.
465
+ def notifications(sid=:unset)
466
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
467
+
468
+ if sid != :unset
469
+ return NotificationContext.new(
470
+ @version,
471
+ @solution[:account_sid],
472
+ @solution[:sid],
473
+ sid,
474
+ )
475
+ end
476
+
477
+ unless @notifications
478
+ @notifications = NotificationList.new(
479
+ @version,
480
+ account_sid: @solution[:account_sid],
481
+ call_sid: @solution[:sid],
482
+ )
483
+ end
484
+
485
+ @notifications
486
+ end
487
+
488
+ ##
489
+ # Access the feedback
490
+ # @return [FeedbackList]
491
+ # @return [FeedbackContext]
492
+ def feedback
493
+ FeedbackContext.new(
494
+ @version,
495
+ @solution[:account_sid],
496
+ @solution[:sid],
497
+ )
498
+ end
499
+
500
+ ##
501
+ # Provide a user friendly representation
502
+ def to_s
503
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
504
+ "#<Twilio.Api.V2010.CallContext #{context}>"
505
+ end
506
+ end
507
+
508
+ class CallInstance < InstanceResource
509
+ ##
510
+ # Initialize the CallInstance
511
+ # @param [Version] version Version that contains the resource
512
+ # @param [Hash] payload payload that contains response from Twilio
513
+ # @param [String] account_sid The unique id of the Account responsible for
514
+ # creating this Call
515
+ # @param [String] sid The Call Sid that uniquely identifies the Call to fetch
516
+ # @return [CallInstance] CallInstance
517
+ def initialize(version, payload, account_sid: nil, sid: nil)
518
+ super(version)
519
+
520
+ # Marshaled Properties
521
+ @properties = {
522
+ 'account_sid' => payload['account_sid'],
523
+ 'annotation' => payload['annotation'],
524
+ 'answered_by' => payload['answered_by'],
525
+ 'api_version' => payload['api_version'],
526
+ 'caller_name' => payload['caller_name'],
527
+ 'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
528
+ 'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
529
+ 'direction' => payload['direction'],
530
+ 'duration' => payload['duration'],
531
+ 'end_time' => Twilio.deserialize_rfc2822(payload['end_time']),
532
+ 'forwarded_from' => payload['forwarded_from'],
533
+ 'from' => payload['from'],
534
+ 'from_formatted' => payload['from_formatted'],
535
+ 'group_sid' => payload['group_sid'],
536
+ 'parent_call_sid' => payload['parent_call_sid'],
537
+ 'phone_number_sid' => payload['phone_number_sid'],
538
+ 'price' => payload['price'].to_f,
539
+ 'price_unit' => payload['price_unit'],
540
+ 'sid' => payload['sid'],
541
+ 'start_time' => Twilio.deserialize_rfc2822(payload['start_time']),
542
+ 'status' => payload['status'],
543
+ 'subresource_uris' => payload['subresource_uris'],
544
+ 'to' => payload['to'],
545
+ 'to_formatted' => payload['to_formatted'],
546
+ 'uri' => payload['uri'],
547
+ }
548
+
549
+ # Context
550
+ @instance_context = nil
551
+ @params = {
552
+ 'account_sid' => account_sid,
553
+ 'sid' => sid || @properties['sid'],
554
+ }
555
+ end
556
+
557
+ ##
558
+ # Generate an instance context for the instance, the context is capable of
559
+ # performing various actions. All instance actions are proxied to the context
560
+ # @return [CallContext] CallContext for this CallInstance
561
+ def context
562
+ unless @instance_context
563
+ @instance_context = CallContext.new(
564
+ @version,
565
+ @params['account_sid'],
566
+ @params['sid'],
567
+ )
568
+ end
569
+ @instance_context
570
+ end
571
+
572
+ ##
573
+ # @return [String] The unique id of the Account responsible for creating this Call
574
+ def account_sid
575
+ @properties['account_sid']
576
+ end
577
+
578
+ ##
579
+ # @return [String] The annotation provided for the Call
580
+ def annotation
581
+ @properties['annotation']
582
+ end
583
+
584
+ ##
585
+ # @return [String] If this call was initiated with answering machine detection, either `human` or `machine`. Empty otherwise.
586
+ def answered_by
587
+ @properties['answered_by']
588
+ end
589
+
590
+ ##
591
+ # @return [String] The API Version the Call was created through
592
+ def api_version
593
+ @properties['api_version']
594
+ end
595
+
596
+ ##
597
+ # @return [String] If this call was an incoming call to a phone number with Caller ID Lookup enabled, the caller's name. Empty otherwise.
598
+ def caller_name
599
+ @properties['caller_name']
600
+ end
601
+
602
+ ##
603
+ # @return [Time] The date that this resource was created
604
+ def date_created
605
+ @properties['date_created']
606
+ end
607
+
608
+ ##
609
+ # @return [Time] The date that this resource was last updated
610
+ def date_updated
611
+ @properties['date_updated']
612
+ end
613
+
614
+ ##
615
+ # @return [String] A string describing the direction of the call. `inbound` for inbound calls, `outbound-api` for calls initiated via the REST API or `outbound-dial` for calls initiated by a `Dial` verb.
616
+ def direction
617
+ @properties['direction']
618
+ end
619
+
620
+ ##
621
+ # @return [String] The duration
622
+ def duration
623
+ @properties['duration']
624
+ end
625
+
626
+ ##
627
+ # @return [Time] The end time of the Call. Null if the call did not complete successfully.
628
+ def end_time
629
+ @properties['end_time']
630
+ end
631
+
632
+ ##
633
+ # @return [String] If this Call was an incoming call forwarded from another number, the forwarding phone number (depends on carrier supporting forwarding). Empty otherwise.
634
+ def forwarded_from
635
+ @properties['forwarded_from']
636
+ end
637
+
638
+ ##
639
+ # @return [String] The phone number, SIP address or Client identifier that made this Call. Phone numbers are in E.164 format (e.g. +16175551212). SIP addresses are formatted as `name@company.com`. Client identifiers are formatted `client:name`.
640
+ def from
641
+ @properties['from']
642
+ end
643
+
644
+ ##
645
+ # @return [String] The phone number, SIP address or Client identifier that made this Call. Formatted for display.
646
+ def from_formatted
647
+ @properties['from_formatted']
648
+ end
649
+
650
+ ##
651
+ # @return [String] A 34 character Group Sid associated with this Call. Empty if no Group is associated with the Call.
652
+ def group_sid
653
+ @properties['group_sid']
654
+ end
655
+
656
+ ##
657
+ # @return [String] A 34 character string that uniquely identifies the Call that created this leg.
658
+ def parent_call_sid
659
+ @properties['parent_call_sid']
660
+ end
661
+
662
+ ##
663
+ # @return [String] If the call was inbound, this is the Sid of the IncomingPhoneNumber that received the call. If the call was outbound, it is the Sid of the OutgoingCallerId from which the call was placed.
664
+ def phone_number_sid
665
+ @properties['phone_number_sid']
666
+ end
667
+
668
+ ##
669
+ # @return [String] The charge for this call, in the currency associated with the account. Populated after the call is completed. May not be immediately available.
670
+ def price
671
+ @properties['price']
672
+ end
673
+
674
+ ##
675
+ # @return [String] The currency in which `Price` is measured.
676
+ def price_unit
677
+ @properties['price_unit']
678
+ end
679
+
680
+ ##
681
+ # @return [String] A 34 character string that uniquely identifies this resource.
682
+ def sid
683
+ @properties['sid']
684
+ end
685
+
686
+ ##
687
+ # @return [Time] The start time of the Call. Null if the call has not yet been dialed.
688
+ def start_time
689
+ @properties['start_time']
690
+ end
691
+
692
+ ##
693
+ # @return [feedback_summary.Status] The status
694
+ def status
695
+ @properties['status']
696
+ end
697
+
698
+ ##
699
+ # @return [String] Call Instance Subresources
700
+ def subresource_uris
701
+ @properties['subresource_uris']
702
+ end
703
+
704
+ ##
705
+ # @return [String] The phone number, SIP address or Client identifier that received this Call. Phone numbers are in E.164 format (e.g. +16175551212). SIP addresses are formatted as `name@company.com`. Client identifiers are formatted `client:name`.
706
+ def to
707
+ @properties['to']
708
+ end
709
+
710
+ ##
711
+ # @return [String] The phone number, SIP address or Client identifier that received this Call. Formatted for display.
712
+ def to_formatted
713
+ @properties['to_formatted']
714
+ end
715
+
716
+ ##
717
+ # @return [String] The URI for this resource, relative to `https://api.twilio.com`
718
+ def uri
719
+ @properties['uri']
720
+ end
721
+
722
+ ##
723
+ # Deletes the CallInstance
724
+ # @return [Boolean] true if delete succeeds, true otherwise
725
+ def delete
726
+ context.delete
727
+ end
728
+
729
+ ##
730
+ # Fetch a CallInstance
731
+ # @return [CallInstance] Fetched CallInstance
732
+ def fetch
733
+ context.fetch
734
+ end
735
+
736
+ ##
737
+ # Update the CallInstance
738
+ # @param [String] url A valid URL that returns TwiML. Twilio will immediately
739
+ # redirect the call to the new TwiML upon execution.
740
+ # @param [String] method The HTTP method Twilio should use when requesting the
741
+ # URL. Defaults to `POST`.
742
+ # @param [call.UpdateStatus] status Either `canceled` or `completed`. Specifying
743
+ # `canceled` will attempt to hangup calls that are queued or ringing but not
744
+ # affect calls already in progress. Specifying `completed` will attempt to hang up
745
+ # a call even if it's already in progress.
746
+ # @param [String] fallback_url A URL that Twilio will request if an error occurs
747
+ # requesting or executing the TwiML at `Url`.
748
+ # @param [String] fallback_method The HTTP method that Twilio should use to
749
+ # request the `FallbackUrl`. Must be either `GET` or `POST`. Defaults to `POST`.
750
+ # @param [String] status_callback A URL that Twilio will request when the call
751
+ # ends to notify your app.
752
+ # @param [String] status_callback_method The HTTP method that Twilio should use to
753
+ # request the `StatusCallback`. Defaults to `POST`.
754
+ # @return [CallInstance] Updated CallInstance
755
+ def update(url: :unset, method: :unset, status: :unset, fallback_url: :unset, fallback_method: :unset, status_callback: :unset, status_callback_method: :unset)
756
+ context.update(
757
+ url: url,
758
+ method: method,
759
+ status: status,
760
+ fallback_url: fallback_url,
761
+ fallback_method: fallback_method,
762
+ status_callback: status_callback,
763
+ status_callback_method: status_callback_method,
764
+ )
765
+ end
766
+
767
+ ##
768
+ # Access the recordings
769
+ # @return [recordings] recordings
770
+ def recordings
771
+ context.recordings
772
+ end
773
+
774
+ ##
775
+ # Access the notifications
776
+ # @return [notifications] notifications
777
+ def notifications
778
+ context.notifications
779
+ end
780
+
781
+ ##
782
+ # Access the feedback
783
+ # @return [feedback] feedback
784
+ def feedback
785
+ context.feedback
786
+ end
787
+
788
+ ##
789
+ # Provide a user friendly representation
790
+ def to_s
791
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
792
+ "<Twilio.Api.V2010.CallInstance #{values}>"
793
+ end
794
+ end
795
+ end
796
+ end
797
+ end
798
+ end
799
+ end