twilio-ruby 3.11.5 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -1
  3. data/.rubocop.yml +21 -0
  4. data/.rubocop_todo.yml +187 -0
  5. data/.travis.yml +10 -10
  6. data/AUTHORS.md +21 -0
  7. data/CHANGES.md +351 -0
  8. data/Gemfile +8 -1
  9. data/{LICENSE → LICENSE.md} +13 -11
  10. data/Makefile +15 -3
  11. data/README.md +90 -95
  12. data/Rakefile +59 -7
  13. data/VERSIONS.md +64 -0
  14. data/examples/examples.rb +62 -49
  15. data/examples/{print-call-log.rb → print_call_log.rb} +7 -7
  16. data/lib/rack/twilio_webhook_authentication.rb +46 -0
  17. data/lib/twilio-ruby/framework/domain.rb +34 -0
  18. data/lib/twilio-ruby/framework/error.rb +30 -0
  19. data/lib/twilio-ruby/framework/helper.rb +9 -0
  20. data/lib/twilio-ruby/framework/page.rb +101 -0
  21. data/lib/twilio-ruby/framework/resource.rb +21 -0
  22. data/lib/twilio-ruby/framework/serialize.rb +70 -0
  23. data/lib/twilio-ruby/framework/twilio_response.rb +15 -0
  24. data/lib/twilio-ruby/framework/values.rb +7 -0
  25. data/lib/twilio-ruby/framework/version.rb +164 -0
  26. data/lib/twilio-ruby/http/http_client.rb +46 -0
  27. data/lib/twilio-ruby/jwt/access_token.rb +232 -0
  28. data/lib/twilio-ruby/jwt/client_capability.rb +102 -0
  29. data/lib/twilio-ruby/jwt/jwt.rb +50 -0
  30. data/lib/twilio-ruby/jwt/task_router.rb +174 -0
  31. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +370 -0
  32. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +105 -0
  33. data/lib/twilio-ruby/rest/accounts/v1.rb +39 -0
  34. data/lib/twilio-ruby/rest/accounts.rb +36 -9
  35. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +265 -0
  36. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +509 -0
  37. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +620 -0
  38. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +331 -0
  39. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +389 -0
  40. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +389 -0
  41. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +389 -0
  42. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +370 -0
  43. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +296 -0
  44. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +317 -0
  45. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +427 -0
  46. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +379 -0
  47. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +799 -0
  48. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +515 -0
  49. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +455 -0
  50. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +413 -0
  51. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +445 -0
  52. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +445 -0
  53. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +445 -0
  54. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +786 -0
  55. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +336 -0
  56. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +165 -0
  57. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +355 -0
  58. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +583 -0
  59. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +153 -0
  60. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +153 -0
  61. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +418 -0
  62. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +377 -0
  63. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +345 -0
  64. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +438 -0
  65. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +378 -0
  66. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +397 -0
  67. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +375 -0
  68. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +479 -0
  69. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +430 -0
  70. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +336 -0
  71. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +395 -0
  72. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +419 -0
  73. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +361 -0
  74. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +361 -0
  75. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +570 -0
  76. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +406 -0
  77. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +424 -0
  78. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +174 -0
  79. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +168 -0
  80. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +366 -0
  81. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +304 -0
  82. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +304 -0
  83. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +304 -0
  84. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +304 -0
  85. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +304 -0
  86. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +304 -0
  87. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +304 -0
  88. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +304 -0
  89. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +418 -0
  90. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +507 -0
  91. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +127 -0
  92. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +161 -0
  93. data/lib/twilio-ruby/rest/api/v2010/account.rb +1098 -0
  94. data/lib/twilio-ruby/rest/api/v2010.rb +147 -0
  95. data/lib/twilio-ruby/rest/api.rb +234 -0
  96. data/lib/twilio-ruby/rest/chat/v1/credential.rb +403 -0
  97. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +386 -0
  98. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +431 -0
  99. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +447 -0
  100. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +554 -0
  101. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +396 -0
  102. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +244 -0
  103. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +467 -0
  104. data/lib/twilio-ruby/rest/chat/v1/service.rb +935 -0
  105. data/lib/twilio-ruby/rest/chat/v1.rb +56 -0
  106. data/lib/twilio-ruby/rest/chat/v2/credential.rb +403 -0
  107. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +386 -0
  108. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +431 -0
  109. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +447 -0
  110. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +554 -0
  111. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +396 -0
  112. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +244 -0
  113. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +467 -0
  114. data/lib/twilio-ruby/rest/chat/v2/service.rb +688 -0
  115. data/lib/twilio-ruby/rest/chat/v2.rb +56 -0
  116. data/lib/twilio-ruby/rest/chat.rb +59 -0
  117. data/lib/twilio-ruby/rest/client.rb +307 -215
  118. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +403 -0
  119. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +386 -0
  120. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +431 -0
  121. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +447 -0
  122. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +554 -0
  123. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +396 -0
  124. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +244 -0
  125. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +467 -0
  126. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +935 -0
  127. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +56 -0
  128. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +403 -0
  129. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +386 -0
  130. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +431 -0
  131. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +447 -0
  132. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +554 -0
  133. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +396 -0
  134. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +244 -0
  135. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +467 -0
  136. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +688 -0
  137. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +56 -0
  138. data/lib/twilio-ruby/rest/ip_messaging.rb +59 -0
  139. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +224 -0
  140. data/lib/twilio-ruby/rest/lookups/v1.rb +41 -0
  141. data/lib/twilio-ruby/rest/lookups.rb +44 -0
  142. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +398 -0
  143. data/lib/twilio-ruby/rest/monitor/v1/event.rb +381 -0
  144. data/lib/twilio-ruby/rest/monitor/v1.rb +56 -0
  145. data/lib/twilio-ruby/rest/monitor.rb +52 -0
  146. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +291 -0
  147. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +129 -0
  148. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +284 -0
  149. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +129 -0
  150. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +291 -0
  151. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +208 -0
  152. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +150 -0
  153. data/lib/twilio-ruby/rest/pricing/v1.rb +65 -0
  154. data/lib/twilio-ruby/rest/pricing.rb +54 -0
  155. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +399 -0
  156. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +418 -0
  157. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +461 -0
  158. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +584 -0
  159. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +315 -0
  160. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +230 -0
  161. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +243 -0
  162. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +527 -0
  163. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +461 -0
  164. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +406 -0
  165. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +223 -0
  166. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +226 -0
  167. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +585 -0
  168. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +230 -0
  169. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +475 -0
  170. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +212 -0
  171. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +712 -0
  172. data/lib/twilio-ruby/rest/taskrouter/v1.rb +41 -0
  173. data/lib/twilio-ruby/rest/taskrouter.rb +44 -0
  174. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +345 -0
  175. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +345 -0
  176. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +430 -0
  177. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +478 -0
  178. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +577 -0
  179. data/lib/twilio-ruby/rest/trunking/v1.rb +41 -0
  180. data/lib/twilio-ruby/rest/trunking.rb +44 -0
  181. data/lib/twilio-ruby/rest/video/v1/recording.rb +382 -0
  182. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +381 -0
  183. data/lib/twilio-ruby/rest/video/v1/room.rb +485 -0
  184. data/lib/twilio-ruby/rest/video/v1.rb +56 -0
  185. data/lib/twilio-ruby/rest/video.rb +52 -0
  186. data/lib/twilio-ruby/security/request_validator.rb +54 -0
  187. data/lib/twilio-ruby/twiml/messaging_response.rb +141 -0
  188. data/lib/twilio-ruby/twiml/twiml.rb +69 -0
  189. data/lib/twilio-ruby/twiml/voice_response.rb +916 -0
  190. data/lib/twilio-ruby/util/configuration.rb +7 -0
  191. data/lib/twilio-ruby/util.rb +1 -1
  192. data/lib/twilio-ruby/version.rb +1 -1
  193. data/lib/twilio-ruby.rb +52 -49
  194. data/spec/framework/serialize_spec.rb +59 -0
  195. data/spec/holodeck/holodeck.rb +61 -0
  196. data/spec/holodeck/hologram.rb +4 -0
  197. data/spec/integration/accounts/v1/credential/public_key_spec.rb +226 -0
  198. data/spec/integration/accounts/v1/credential_spec.rb +10 -0
  199. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +90 -0
  200. data/spec/integration/api/v2010/account/address_spec.rb +267 -0
  201. data/spec/integration/api/v2010/account/application_spec.rb +286 -0
  202. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +137 -0
  203. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +101 -0
  204. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +100 -0
  205. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +100 -0
  206. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +128 -0
  207. data/spec/integration/api/v2010/account/call/feedback_spec.rb +141 -0
  208. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +149 -0
  209. data/spec/integration/api/v2010/account/call/notification_spec.rb +179 -0
  210. data/spec/integration/api/v2010/account/call/recording_spec.rb +178 -0
  211. data/spec/integration/api/v2010/account/call_spec.rb +319 -0
  212. data/spec/integration/api/v2010/account/conference/participant_spec.rb +283 -0
  213. data/spec/integration/api/v2010/account/conference_spec.rb +174 -0
  214. data/spec/integration/api/v2010/account/connect_app_spec.rb +177 -0
  215. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +181 -0
  216. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +181 -0
  217. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +181 -0
  218. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +331 -0
  219. data/spec/integration/api/v2010/account/key_spec.rb +178 -0
  220. data/spec/integration/api/v2010/account/message/feedback_spec.rb +48 -0
  221. data/spec/integration/api/v2010/account/message/media_spec.rb +162 -0
  222. data/spec/integration/api/v2010/account/message_spec.rb +297 -0
  223. data/spec/integration/api/v2010/account/new_key_spec.rb +45 -0
  224. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +45 -0
  225. data/spec/integration/api/v2010/account/notification_spec.rb +172 -0
  226. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +193 -0
  227. data/spec/integration/api/v2010/account/queue/member_spec.rb +170 -0
  228. data/spec/integration/api/v2010/account/queue_spec.rb +242 -0
  229. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +175 -0
  230. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +166 -0
  231. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +174 -0
  232. data/spec/integration/api/v2010/account/recording_spec.rb +179 -0
  233. data/spec/integration/api/v2010/account/short_code_spec.rb +180 -0
  234. data/spec/integration/api/v2010/account/signing_key_spec.rb +178 -0
  235. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +257 -0
  236. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +246 -0
  237. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +210 -0
  238. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +220 -0
  239. data/spec/integration/api/v2010/account/sip/domain_spec.rb +283 -0
  240. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +261 -0
  241. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +256 -0
  242. data/spec/integration/api/v2010/account/sip_spec.rb +10 -0
  243. data/spec/integration/api/v2010/account/token_spec.rb +56 -0
  244. data/spec/integration/api/v2010/account/transcription_spec.rb +167 -0
  245. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +111 -0
  246. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +111 -0
  247. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +111 -0
  248. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +111 -0
  249. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +111 -0
  250. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +111 -0
  251. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +111 -0
  252. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +111 -0
  253. data/spec/integration/api/v2010/account/usage/record_spec.rb +108 -0
  254. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +283 -0
  255. data/spec/integration/api/v2010/account/usage_spec.rb +10 -0
  256. data/spec/integration/api/v2010/account/validation_request_spec.rb +48 -0
  257. data/spec/integration/api/v2010/account_spec.rb +254 -0
  258. data/spec/integration/chat/v1/credential_spec.rb +223 -0
  259. data/spec/integration/chat/v1/service/channel/invite_spec.rb +210 -0
  260. data/spec/integration/chat/v1/service/channel/member_spec.rb +284 -0
  261. data/spec/integration/chat/v1/service/channel/message_spec.rb +294 -0
  262. data/spec/integration/chat/v1/service/channel_spec.rb +275 -0
  263. data/spec/integration/chat/v1/service/role_spec.rb +263 -0
  264. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +92 -0
  265. data/spec/integration/chat/v1/service/user_spec.rb +266 -0
  266. data/spec/integration/chat/v1/service_spec.rb +299 -0
  267. data/spec/integration/chat/v2/credential_spec.rb +223 -0
  268. data/spec/integration/chat/v2/service/channel/invite_spec.rb +210 -0
  269. data/spec/integration/chat/v2/service/channel/member_spec.rb +284 -0
  270. data/spec/integration/chat/v2/service/channel/message_spec.rb +294 -0
  271. data/spec/integration/chat/v2/service/channel_spec.rb +275 -0
  272. data/spec/integration/chat/v2/service/role_spec.rb +263 -0
  273. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +92 -0
  274. data/spec/integration/chat/v2/service/user_spec.rb +266 -0
  275. data/spec/integration/chat/v2/service_spec.rb +325 -0
  276. data/spec/integration/ip_messaging/v1/credential_spec.rb +223 -0
  277. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +210 -0
  278. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +284 -0
  279. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +294 -0
  280. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +275 -0
  281. data/spec/integration/ip_messaging/v1/service/role_spec.rb +263 -0
  282. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +92 -0
  283. data/spec/integration/ip_messaging/v1/service/user_spec.rb +266 -0
  284. data/spec/integration/ip_messaging/v1/service_spec.rb +299 -0
  285. data/spec/integration/ip_messaging/v2/credential_spec.rb +223 -0
  286. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +210 -0
  287. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +284 -0
  288. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +294 -0
  289. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +275 -0
  290. data/spec/integration/ip_messaging/v2/service/role_spec.rb +263 -0
  291. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +92 -0
  292. data/spec/integration/ip_messaging/v2/service/user_spec.rb +266 -0
  293. data/spec/integration/ip_messaging/v2/service_spec.rb +325 -0
  294. data/spec/integration/lookups/v1/phone_number_spec.rb +60 -0
  295. data/spec/integration/monitor/v1/alert_spec.rb +161 -0
  296. data/spec/integration/monitor/v1/event_spec.rb +148 -0
  297. data/spec/integration/pricing/v1/messaging/country_spec.rb +137 -0
  298. data/spec/integration/pricing/v1/messaging_spec.rb +10 -0
  299. data/spec/integration/pricing/v1/phone_number/country_spec.rb +128 -0
  300. data/spec/integration/pricing/v1/phone_number_spec.rb +10 -0
  301. data/spec/integration/pricing/v1/voice/country_spec.rb +266 -0
  302. data/spec/integration/pricing/v1/voice/number_spec.rb +54 -0
  303. data/spec/integration/pricing/v1/voice_spec.rb +10 -0
  304. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +236 -0
  305. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +157 -0
  306. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +192 -0
  307. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +127 -0
  308. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +106 -0
  309. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +144 -0
  310. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +292 -0
  311. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +324 -0
  312. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +192 -0
  313. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +201 -0
  314. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +107 -0
  315. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +141 -0
  316. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +282 -0
  317. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +69 -0
  318. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +265 -0
  319. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +103 -0
  320. data/spec/integration/taskrouter/v1/workspace_spec.rb +287 -0
  321. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +192 -0
  322. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +192 -0
  323. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +250 -0
  324. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +267 -0
  325. data/spec/integration/trunking/v1/trunk_spec.rb +276 -0
  326. data/spec/integration/video/v1/recording_spec.rb +165 -0
  327. data/spec/integration/video/v1/room/recording_spec.rb +146 -0
  328. data/spec/integration/video/v1/room_spec.rb +237 -0
  329. data/spec/jwt/access_token_spec.rb +130 -0
  330. data/spec/jwt/client_capability_spec.rb +104 -0
  331. data/spec/jwt/task_router_spec.rb +172 -0
  332. data/spec/rack/twilio_webhook_authentication_spec.rb +106 -0
  333. data/spec/security/request_validator_spec.rb +113 -0
  334. data/spec/spec_helper.rb +29 -3
  335. data/spec/support/fakeweb.rb +2 -0
  336. data/spec/twilio_spec.rb +15 -0
  337. data/spec/twiml/messaging_response_spec.rb +90 -0
  338. data/spec/twiml/voice_response_spec.rb +474 -0
  339. data/spec/util/configuration_spec.rb +15 -0
  340. data/spec/util/url_encode_spec.rb +2 -2
  341. data/twilio-ruby.gemspec +32 -26
  342. metadata +502 -152
  343. data/CHANGES +0 -47
  344. data/docs/Makefile +0 -130
  345. data/docs/_themes/LICENSE +0 -45
  346. data/docs/_themes/README.rst +0 -25
  347. data/docs/_themes/flask_theme_support.py +0 -86
  348. data/docs/_themes/kr/layout.html +0 -32
  349. data/docs/_themes/kr/relations.html +0 -19
  350. data/docs/_themes/kr/static/flasky.css_t +0 -469
  351. data/docs/_themes/kr/static/small_flask.css +0 -70
  352. data/docs/_themes/kr/theme.conf +0 -7
  353. data/docs/_themes/kr_small/layout.html +0 -22
  354. data/docs/_themes/kr_small/static/flasky.css_t +0 -287
  355. data/docs/_themes/kr_small/theme.conf +0 -10
  356. data/docs/changelog.rst +0 -1
  357. data/docs/conf.py +0 -266
  358. data/docs/faq.rst +0 -42
  359. data/docs/getting-started.rst +0 -91
  360. data/docs/index.rst +0 -109
  361. data/docs/make.bat +0 -170
  362. data/docs/src/pip-delete-this-directory.txt +0 -5
  363. data/docs/usage/accounts.rst +0 -89
  364. data/docs/usage/applications.rst +0 -108
  365. data/docs/usage/basics.rst +0 -102
  366. data/docs/usage/caller-ids.rst +0 -45
  367. data/docs/usage/conferences.rst +0 -108
  368. data/docs/usage/errors.rst +0 -29
  369. data/docs/usage/messages.rst +0 -109
  370. data/docs/usage/notifications.rst +0 -70
  371. data/docs/usage/phone-calls.rst +0 -166
  372. data/docs/usage/phone-numbers.rst +0 -174
  373. data/docs/usage/queues.rst +0 -112
  374. data/docs/usage/recordings.rst +0 -96
  375. data/docs/usage/sip.rst +0 -103
  376. data/docs/usage/token-generation.rst +0 -81
  377. data/docs/usage/transcriptions.rst +0 -31
  378. data/docs/usage/twiml.rst +0 -69
  379. data/docs/usage/validation.rst +0 -71
  380. data/lib/twilio-ruby/rest/applications.rb +0 -6
  381. data/lib/twilio-ruby/rest/authorized_connect_apps.rb +0 -6
  382. data/lib/twilio-ruby/rest/available_phone_numbers/country.rb +0 -10
  383. data/lib/twilio-ruby/rest/available_phone_numbers/local.rb +0 -11
  384. data/lib/twilio-ruby/rest/available_phone_numbers/mobile.rb +0 -11
  385. data/lib/twilio-ruby/rest/available_phone_numbers/toll_free.rb +0 -11
  386. data/lib/twilio-ruby/rest/available_phone_numbers.rb +0 -13
  387. data/lib/twilio-ruby/rest/calls.rb +0 -28
  388. data/lib/twilio-ruby/rest/conferences/participants.rb +0 -23
  389. data/lib/twilio-ruby/rest/conferences.rb +0 -12
  390. data/lib/twilio-ruby/rest/connect_apps.rb +0 -6
  391. data/lib/twilio-ruby/rest/errors.rb +0 -14
  392. data/lib/twilio-ruby/rest/incoming_phone_numbers/local.rb +0 -13
  393. data/lib/twilio-ruby/rest/incoming_phone_numbers/mobile.rb +0 -13
  394. data/lib/twilio-ruby/rest/incoming_phone_numbers/toll_free.rb +0 -13
  395. data/lib/twilio-ruby/rest/incoming_phone_numbers.rb +0 -17
  396. data/lib/twilio-ruby/rest/instance_resource.rb +0 -101
  397. data/lib/twilio-ruby/rest/list_resource.rb +0 -110
  398. data/lib/twilio-ruby/rest/media.rb +0 -14
  399. data/lib/twilio-ruby/rest/messages.rb +0 -17
  400. data/lib/twilio-ruby/rest/notifications.rb +0 -6
  401. data/lib/twilio-ruby/rest/outgoing_caller_ids.rb +0 -25
  402. data/lib/twilio-ruby/rest/queues/members.rb +0 -29
  403. data/lib/twilio-ruby/rest/queues.rb +0 -12
  404. data/lib/twilio-ruby/rest/recordings.rb +0 -35
  405. data/lib/twilio-ruby/rest/sandbox.rb +0 -5
  406. data/lib/twilio-ruby/rest/sip/credential_lists/credentials.rb +0 -6
  407. data/lib/twilio-ruby/rest/sip/credential_lists.rb +0 -11
  408. data/lib/twilio-ruby/rest/sip/domains/credential_list_mappings.rb +0 -6
  409. data/lib/twilio-ruby/rest/sip/domains/ip_access_control_list_mappings.rb +0 -6
  410. data/lib/twilio-ruby/rest/sip/domains.rb +0 -12
  411. data/lib/twilio-ruby/rest/sip/ip_access_control_lists/ip_addresses.rb +0 -6
  412. data/lib/twilio-ruby/rest/sip/ip_access_control_lists.rb +0 -11
  413. data/lib/twilio-ruby/rest/sip.rb +0 -12
  414. data/lib/twilio-ruby/rest/sms/messages.rb +0 -15
  415. data/lib/twilio-ruby/rest/sms/short_codes.rb +0 -8
  416. data/lib/twilio-ruby/rest/sms.rb +0 -11
  417. data/lib/twilio-ruby/rest/transcriptions.rb +0 -6
  418. data/lib/twilio-ruby/rest/usage/records.rb +0 -21
  419. data/lib/twilio-ruby/rest/usage/triggers.rb +0 -12
  420. data/lib/twilio-ruby/rest/usage.rb +0 -10
  421. data/lib/twilio-ruby/rest/utils.rb +0 -25
  422. data/lib/twilio-ruby/twiml/response.rb +0 -15
  423. data/lib/twilio-ruby/util/capability.rb +0 -61
  424. data/lib/twilio-ruby/util/request_validator.rb +0 -22
  425. data/spec/rest/account_spec.rb +0 -58
  426. data/spec/rest/call_spec.rb +0 -18
  427. data/spec/rest/client_spec.rb +0 -100
  428. data/spec/rest/conference_spec.rb +0 -9
  429. data/spec/rest/instance_resource_spec.rb +0 -15
  430. data/spec/rest/message_spec.rb +0 -12
  431. data/spec/rest/numbers_spec.rb +0 -46
  432. data/spec/rest/queue_spec.rb +0 -9
  433. data/spec/rest/recording_spec.rb +0 -9
  434. data/spec/util/capability_spec.rb +0 -137
  435. data/spec/util/request_validator_spec.rb +0 -65
@@ -0,0 +1,916 @@
1
+ module Twilio
2
+ module TwiML
3
+ # Voice TwiML Response
4
+ class VoiceResponse < TwiML
5
+ # Create a new <Response>
6
+ def initialize
7
+ super()
8
+ @name = 'Response'
9
+ yield(self) if block_given?
10
+ end
11
+
12
+ # Create a <Dial> element
13
+ #
14
+ # == Parameters:
15
+ # number:: phone number to dial
16
+ # action:: action URL
17
+ # method:: action HTTP method
18
+ # timeout:: time to wait for answer
19
+ # hangup_on_star:: hangup call on * press
20
+ # time_limit:: max time length
21
+ # caller_id:: caller ID to display
22
+ # record:: record the call
23
+ # trim:: trim the recording
24
+ # recording_status_callback:: status callback URL
25
+ # recording_status_callback_method:: status callback URL method
26
+ # keyword_args:: additional attributes
27
+ #
28
+ # == Returns:
29
+ # A <Response> element with a <Dial> child element
30
+ def dial(
31
+ number: nil,
32
+ action: nil,
33
+ method: nil,
34
+ timeout: nil,
35
+ hangup_on_star: nil,
36
+ time_limit: nil,
37
+ caller_id: nil,
38
+ record: nil,
39
+ trim: nil,
40
+ recording_status_callback: nil,
41
+ recording_status_callback_method: nil,
42
+ **keyword_args
43
+ )
44
+
45
+ dial = Dial.new(
46
+ number: number,
47
+ action: action,
48
+ method: method,
49
+ timeout: timeout,
50
+ hangup_on_star: hangup_on_star,
51
+ time_limit: time_limit,
52
+ caller_id: caller_id,
53
+ record: record,
54
+ trim: trim,
55
+ recording_status_callback: recording_status_callback,
56
+ recording_status_callback_method: recording_status_callback_method,
57
+ **keyword_args
58
+ )
59
+
60
+ yield(dial) if block_given?
61
+ append(dial)
62
+ end
63
+
64
+ # Create an <Echo> element
65
+ #
66
+ # == Parameters:
67
+ # keyword_args:: attributes
68
+ #
69
+ # == Returns:
70
+ # A <Response> element with an <Echo> child element
71
+ def echo(**keyword_args)
72
+ append(Echo.new(**keyword_args))
73
+ end
74
+
75
+ # Create an <Enqueue> element
76
+ #
77
+ # == Parameters:
78
+ # name:: friendly name
79
+ # action:: action URL
80
+ # method:: action URL method
81
+ # wait_url:: wait URL
82
+ # wait_url_method:: wait URL method
83
+ # workflow_sid:: TaskRouter workflow SID
84
+ # keyword_args:: additional attributes
85
+ #
86
+ # == Returns:
87
+ # A <Response> element with an <Enqueue> child element
88
+ def enqueue(
89
+ name,
90
+ action: nil,
91
+ method: nil,
92
+ wait_url: nil,
93
+ wait_url_method: nil,
94
+ workflow_sid: nil,
95
+ **keyword_args
96
+ )
97
+
98
+ enqueue = Enqueue.new(
99
+ name,
100
+ action: action,
101
+ method: method,
102
+ wait_url: wait_url,
103
+ wait_url_method: wait_url_method,
104
+ workflow_sid: workflow_sid,
105
+ **keyword_args
106
+ )
107
+
108
+ yield(enqueue) if block_given?
109
+ append(enqueue)
110
+ end
111
+
112
+ # Create a <Gather> element
113
+ #
114
+ # == Parameters:
115
+ # action:: action URL
116
+ # method:: action URL method
117
+ # timeout:: time to wait while gathering input
118
+ # finish_on_key:: finish on key press
119
+ # num_digits:: digits to collect
120
+ # partial_result_callback:: callback url
121
+ # partial_result_callback_method:: callback method
122
+ # language:: locale string
123
+ # hints:: speech recognition hints
124
+ # barge_in:: stop playing media upon speech
125
+ # acknowledge_sound_url:: url to hit when sound starts
126
+ # keyword_args:: additional attributes
127
+ #
128
+ # == Returns:
129
+ # A <Response> element with a <Gather> child element
130
+ def gather(
131
+ action: nil,
132
+ method: nil,
133
+ timeout: nil,
134
+ finish_on_key: nil,
135
+ num_digits: nil,
136
+ partial_result_callback: nil,
137
+ partial_result_callback_method: nil,
138
+ language: nil,
139
+ hints: nil,
140
+ barge_in: nil,
141
+ acknowledge_sound_url: nil,
142
+ **keyword_args
143
+ )
144
+
145
+ gather = Gather.new(
146
+ action: action,
147
+ method: method,
148
+ timeout: timeout,
149
+ finish_on_key: finish_on_key,
150
+ num_digits: num_digits,
151
+ partial_result_callback: partial_result_callback,
152
+ partial_result_callback_method: partial_result_callback_method,
153
+ language: language,
154
+ hints: hints,
155
+ barge_in: barge_in,
156
+ acknowledge_sound_url: acknowledge_sound_url,
157
+ **keyword_args
158
+ )
159
+
160
+ yield(gather) if block_given?
161
+ append(gather)
162
+ end
163
+
164
+ # Create a <Hangup> element
165
+ #
166
+ # == Returns:
167
+ # A <Response> element with a <Hangup> child element
168
+ def hangup
169
+ append(Hangup.new)
170
+ end
171
+
172
+ # Create a <Leave> element
173
+ #
174
+ # == Returns:
175
+ # A <Response> element with a <Leave> child element
176
+ def leave
177
+ append(Leave.new)
178
+ end
179
+
180
+ # Create a <Pause> element
181
+ #
182
+ # == Parameters:
183
+ # length:: time in seconds to pause
184
+ #
185
+ # == Returns:
186
+ # A <Response> element with a <Pause> child element
187
+ def pause(length: nil)
188
+ append(Pause.new(length: length))
189
+ end
190
+
191
+ # Create a <Play> element
192
+ #
193
+ # == Parameters:
194
+ # url:: url to play
195
+ # loop:: times to loop
196
+ # digits:: play DTMF tones during a call
197
+ # keyword_args:: additional attributes
198
+ #
199
+ # == Returns:
200
+ # A <Response> element with a <Play> child element
201
+ def play(url: nil, loop: nil, digits: nil, **keyword_args)
202
+ append(Play.new(
203
+ url: url,
204
+ loop: loop,
205
+ digits: digits,
206
+ **keyword_args
207
+ ))
208
+ end
209
+
210
+ # Create a <Record> element
211
+ #
212
+ # == Parameters:
213
+ # action:: action URL
214
+ # method:: action URL method
215
+ # timeout:: timeout for recording
216
+ # finish_on_key:: finish recording on key
217
+ # max_length:: max length to record
218
+ # play_beep:: play beep
219
+ # trim:: trim the recording
220
+ # recording_status_callback:: status callback for the recordings
221
+ # recording_status_callback_method:: status callback method
222
+ # transcribe:: transcribe the recording
223
+ # transcribe_callback:: transcribe callback URL
224
+ # keyword_args:: additional attributes
225
+ #
226
+ # == Returns:
227
+ # A <Response> element with a <Record> child element
228
+ def record(
229
+ action: nil,
230
+ method: nil,
231
+ timeout: nil,
232
+ finish_on_key: nil,
233
+ max_length: nil,
234
+ play_beep: nil,
235
+ trim: nil,
236
+ recording_status_callback: nil,
237
+ recording_status_callback_method: nil,
238
+ transcribe: nil,
239
+ transcribe_callback: nil,
240
+ **keyword_args
241
+ )
242
+ append(Record.new(
243
+ action: action,
244
+ method: method,
245
+ timeout: timeout,
246
+ finish_on_key: finish_on_key,
247
+ max_length: max_length,
248
+ play_beep: play_beep,
249
+ trim: trim,
250
+ recording_status_callback: recording_status_callback,
251
+ recording_status_callback_method: recording_status_callback_method,
252
+ transcribe: transcribe,
253
+ transcribe_callback: transcribe_callback,
254
+ **keyword_args
255
+ ))
256
+ end
257
+
258
+ # Create a <Redirect> element
259
+ #
260
+ # == Parameters:
261
+ # url:: redirect URL
262
+ # method:: redirect method
263
+ # keyword_args:: additional attributes
264
+ #
265
+ # == Returns:
266
+ # A <Response> element with a <Redirect> child element
267
+ def redirect(url, method: nil, **keyword_args)
268
+ append(Redirect.new(url, method: method, **keyword_args))
269
+ end
270
+
271
+ # Create a <Reject> element
272
+ #
273
+ # == Parameters:
274
+ # reason:: rejection reason
275
+ # keyword_args:: additional attributes
276
+ #
277
+ # == Returns:
278
+ # A <Response> element with a <Reject> child element
279
+ def reject(reason: nil, **keyword_args)
280
+ append(Reject.new(reason: reason, **keyword_args))
281
+ end
282
+
283
+ # Create a <Say> element
284
+ #
285
+ # == Parameters:
286
+ # body:: message body
287
+ # loop:: times to loop
288
+ # language:: language of message
289
+ # voice:: voice to use
290
+ # keyword_args:: additional attributes
291
+ #
292
+ # == Returns:
293
+ # A <Response> element with a <Say> child element
294
+ def say(body, loop: nil, language: nil, voice: nil, **keyword_args)
295
+ append(Say.new(
296
+ body,
297
+ loop: loop,
298
+ language: language,
299
+ voice: voice,
300
+ **keyword_args
301
+ ))
302
+ end
303
+
304
+ # Create a <Sms> element
305
+ #
306
+ # == Parameters:
307
+ # body:: body of message
308
+ # to:: to phone number
309
+ # from_:: from phone number
310
+ # method:: action URL method
311
+ # action:: action URL
312
+ # status_callback:: status callback URL
313
+ # keyword_args:: additional attributes
314
+ #
315
+ # == Returns:
316
+ # A <Response> element with a <Sms> child element
317
+ def sms(body, to: nil, from: nil, method: nil, action: nil, status_callback: nil, **keyword_args)
318
+ append(Sms.new(
319
+ body,
320
+ to: to,
321
+ from: from,
322
+ method: method,
323
+ action: action,
324
+ status_callback: status_callback,
325
+ **keyword_args
326
+ ))
327
+ end
328
+ end
329
+
330
+ # <Dial> element
331
+ class Dial < TwiML
332
+ # Create a <Dial> element
333
+ #
334
+ # == Parameters:
335
+ # number:: phone number to dial
336
+ # keyword_args:: additional attributes
337
+ #
338
+ # == Returns:
339
+ # A <Dial> element
340
+ def initialize(number: nil, **keyword_args)
341
+ super(**keyword_args)
342
+ @value = number unless number.nil?
343
+ yield(self) if block_given?
344
+ end
345
+
346
+ # Create a <Client> element
347
+ #
348
+ # == Parameters:
349
+ # name:: name of client
350
+ # method:: action URL method
351
+ # url:: action URL
352
+ # status_callback_event:: events to call status callback
353
+ # status_callback_method:: status callback URL method
354
+ # status_callback:: status callback URL
355
+ # keyword_args:: additional attributes
356
+ #
357
+ # == Returns:
358
+ # A <Dial> element with a <Client> child element
359
+ def client(
360
+ name,
361
+ method: nil,
362
+ url: nil,
363
+ status_callback_event: nil,
364
+ status_callback_method: nil,
365
+ status_callback: nil,
366
+ **keyword_args
367
+ )
368
+ append(Client.new(
369
+ name,
370
+ method: method,
371
+ url: url,
372
+ status_callback_event: status_callback_event,
373
+ status_callback_method: status_callback_method,
374
+ status_callback: status_callback,
375
+ **keyword_args
376
+ ))
377
+ end
378
+
379
+ # Create a <Conference> element
380
+ #
381
+ # == Parameters:
382
+ # name:: name of conference
383
+ # muted:: join the conference muted
384
+ # start_conference_on_enter:: start the conference on enter
385
+ # end_conference_on_exit:: end the conference on exit
386
+ # max_participants:: max number of people in conference
387
+ # beep:: play beep when joining
388
+ # record:: record the conference
389
+ # trim:: trim the recording
390
+ # wait_method:: wait URL method
391
+ # wait_url:: wait URL to play
392
+ # event_callback_url:: event callback URL
393
+ # status_callback_event:: events to call status callback
394
+ # status_callback:: status callback URL
395
+ # status_callback_method:: status callback URL method
396
+ # recording_status_callback:: recording status callback URL
397
+ # recording_status_callback_method:: recording status callback URL method
398
+ # keyword_args:: additional attributes
399
+ #
400
+ # == Returns:
401
+ # A <Dial> element with a <Conference> child element
402
+ def conference(
403
+ name,
404
+ muted: nil,
405
+ start_conference_on_enter: nil,
406
+ end_conference_on_exit: nil,
407
+ max_participants: nil,
408
+ beep: nil,
409
+ record: nil,
410
+ trim: nil,
411
+ wait_url: nil,
412
+ wait_method: nil,
413
+ event_callback_url: nil,
414
+ status_callback: nil,
415
+ status_callback_event: nil,
416
+ status_callback_method: nil,
417
+ recording_status_callback: nil,
418
+ recording_status_callback_method: nil,
419
+ **keyword_args
420
+ )
421
+ append(Conference.new(
422
+ name,
423
+ muted: muted,
424
+ start_conference_on_enter: start_conference_on_enter,
425
+ end_conference_on_exit: end_conference_on_exit,
426
+ max_participants: max_participants,
427
+ beep: beep,
428
+ record: record,
429
+ trim: trim,
430
+ wait_url: wait_url,
431
+ wait_method: wait_method,
432
+ event_callback_url: event_callback_url,
433
+ status_callback: status_callback,
434
+ status_callback_event: status_callback_event,
435
+ status_callback_method: status_callback_method,
436
+ recording_status_callback: recording_status_callback,
437
+ recording_status_callback_method: recording_status_callback_method,
438
+ **keyword_args
439
+ ))
440
+ end
441
+
442
+ # Create a <Number> element
443
+ #
444
+ # == Parameters:
445
+ # number:: phone number to dial
446
+ # send_digits:: play DTMF tones when the call is answered
447
+ # url:: TwiML URL
448
+ # method:: TwiML URL method
449
+ # status_callback_event:: events to call status callback
450
+ # status_callback:: status callback URL
451
+ # status_callback_method:: status callback URL method
452
+ # keyword_args:: additional attributes
453
+ #
454
+ # == Returns:
455
+ # A <Dial> element with a <Number> child element
456
+ def number(
457
+ number,
458
+ send_digits: nil,
459
+ url: nil,
460
+ method: nil,
461
+ status_callback: nil,
462
+ status_callback_event: nil,
463
+ status_callback_method: nil,
464
+ **keyword_args
465
+ )
466
+ append(Number.new(
467
+ number,
468
+ send_digits: send_digits,
469
+ url: url,
470
+ method: method,
471
+ status_callback: status_callback,
472
+ status_callback_event: status_callback_event,
473
+ status_callback_method: status_callback_method,
474
+ **keyword_args
475
+ ))
476
+ end
477
+
478
+ # Create a <Queue> element
479
+ #
480
+ # == Parameters:
481
+ # queue_name:: queue name
482
+ # url:: action URL
483
+ # method:: action URL method
484
+ # reservation_sid:: TaskRouter reservation SID
485
+ # post_work_activity_sid:: TaskRouter activity SID
486
+ # keyword_args:: additional attributes
487
+ #
488
+ # == Returns:
489
+ # A <Dial> element with a <Queue> child element
490
+ def queue(
491
+ queue_name,
492
+ url: nil,
493
+ method: nil,
494
+ reservation_sid: nil,
495
+ post_work_activity_sid: nil,
496
+ **keyword_args
497
+ )
498
+ append(Queue.new(
499
+ queue_name,
500
+ url: url,
501
+ method: method,
502
+ reservation_sid: reservation_sid,
503
+ post_work_activity_sid: post_work_activity_sid,
504
+ **keyword_args
505
+ ))
506
+ end
507
+
508
+ # Create a <Sim> element
509
+ #
510
+ # == Parameters:
511
+ # sid:: sim sid
512
+ # keyword_args:: additional attributes
513
+ #
514
+ # == Returns:
515
+ # A <Dial> element with a <Sim> child element
516
+ def sim(sid, **keyword_args)
517
+ append(Sim.new(sid, **keyword_args))
518
+ end
519
+
520
+ # Create a <Sip> element
521
+ #
522
+ # == Parameters:
523
+ # uri:: sip url
524
+ # username:: sip username
525
+ # password:: sip password
526
+ # url:: action URL
527
+ # method:: action URL method
528
+ # status_callback_event:: events to call status callback
529
+ # status_callback:: status callback URL
530
+ # status_callback_method:: status callback URL method
531
+ # keyword_args:: additional attributes
532
+ #
533
+ # == Returns:
534
+ # A <Dial> element with a <Sip> child element
535
+ def sip(
536
+ uri,
537
+ username: nil,
538
+ password: nil,
539
+ url: nil,
540
+ method: nil,
541
+ status_callback: nil,
542
+ status_callback_event: nil,
543
+ status_callback_method: nil,
544
+ **keyword_args
545
+ )
546
+ append(Sip.new(
547
+ uri,
548
+ username: username,
549
+ password: password,
550
+ url: url,
551
+ method: method,
552
+ status_callback: status_callback,
553
+ status_callback_event: status_callback_event,
554
+ status_callback_method: status_callback_method,
555
+ **keyword_args
556
+ ))
557
+ end
558
+ end
559
+
560
+ # <Client> element
561
+ class Client < TwiML
562
+ # Create a <Client> element
563
+ #
564
+ # == Parameters:
565
+ # name:: name of client
566
+ # keyword_args:: additional attributes
567
+ #
568
+ # == Returns:
569
+ # A <Client> element
570
+ def initialize(name, **keyword_args)
571
+ super(**keyword_args)
572
+ @value = name
573
+ end
574
+ end
575
+
576
+ # <Conference> element
577
+ class Conference < TwiML
578
+ # Create a <Conference> element
579
+ #
580
+ # == Parameters:
581
+ # name:: name of conference
582
+ # keyword_args:: additional attributes
583
+ #
584
+ # == Returns:
585
+ # A <Conference> element
586
+ def initialize(name, **keyword_args)
587
+ super(**keyword_args)
588
+ @value = name
589
+ end
590
+ end
591
+
592
+ # <Number> element
593
+ class Number < TwiML
594
+ # Create a <Number> element
595
+ #
596
+ # == Parameters:
597
+ # number:: phone number
598
+ # keyword_args:: additional attributes
599
+ #
600
+ # == Returns:
601
+ # A <Number> element
602
+ def initialize(number, **keyword_args)
603
+ super(**keyword_args)
604
+ @value = number
605
+ end
606
+ end
607
+
608
+ # <Queue> element
609
+ class Queue < TwiML
610
+ # Create a <Queue> element
611
+ #
612
+ # == Parameters:
613
+ # queue_name:: name of queues
614
+ # keyword_args:: additional attributes
615
+ #
616
+ # == Returns:
617
+ # A <Queue> element
618
+ def initialize(queue_name, **keyword_args)
619
+ super(**keyword_args)
620
+ @value = queue_name
621
+ end
622
+ end
623
+
624
+ # <Sim> element
625
+ class Sim < TwiML
626
+ # Create a <Sim> element
627
+ #
628
+ # == Parameters:
629
+ # sid:: sim sid
630
+ # keyword_args:: additional attributes
631
+ #
632
+ # == Returns:
633
+ # A <Sim> element
634
+ def initialize(sid, **keyword_args)
635
+ super(**keyword_args)
636
+ @value = sid
637
+ end
638
+ end
639
+
640
+ # <Sip> element
641
+ class Sip < TwiML
642
+ # Create a <Sip> element
643
+ #
644
+ # == Parameters:
645
+ # uri:: sip uri
646
+ # keyword_args:: additional attributes
647
+ #
648
+ # == Returns:
649
+ # A <Sip> element
650
+ def initialize(uri, **keyword_args)
651
+ super(**keyword_args)
652
+ @value = uri
653
+ end
654
+ end
655
+
656
+ # <Echo> element
657
+ class Echo < TwiML
658
+ # Create a <Echo> element
659
+ #
660
+ # == Parameters:
661
+ # keyword_args:: additional attributes
662
+ #
663
+ # == Returns:
664
+ # A <Echo> element
665
+ def initialize(**keyword_args)
666
+ super(**keyword_args)
667
+ end
668
+ end
669
+
670
+ # <Enqueue> element
671
+ class Enqueue < TwiML
672
+ # Create a <Enqueue> element
673
+ #
674
+ # == Parameters:
675
+ # name:: queue name
676
+ # keyword_args:: additional attributes
677
+ #
678
+ # == Returns:
679
+ # A <Enqueue> element
680
+ def initialize(name, **keyword_args)
681
+ super(**keyword_args)
682
+ @value = name
683
+ yield(self) if block_given?
684
+ end
685
+
686
+ # Create a <Task> element
687
+ #
688
+ # == Parameters:
689
+ # attributes:: attributes for a task
690
+ # keyword_args:: additional attributes
691
+ #
692
+ # == Returns:
693
+ # An <Enqueue> element with a <Task> child element
694
+ def task(attributes, **keyword_args)
695
+ append(Task.new(attributes, **keyword_args))
696
+ end
697
+ end
698
+
699
+ # <Task> element
700
+ class Task < TwiML
701
+ # Create a <Task> element
702
+ #
703
+ # == Parameters:
704
+ # attributes:: attributes for a task
705
+ # keyword_args:: additional attributes
706
+ #
707
+ # == Returns:
708
+ # A <Task> element
709
+ def initialize(attributes, **keyword_args)
710
+ super(**keyword_args)
711
+ @value = attributes.is_a?(String) ? attributes : JSON.generate(attributes)
712
+ end
713
+ end
714
+
715
+ # <Gather> element
716
+ class Gather < TwiML
717
+ # Create a <Gather> element
718
+ #
719
+ # == Parameters:
720
+ # keyword_args:: additional attributes
721
+ #
722
+ # == Returns:
723
+ # A <Gather> element
724
+ def initialize(**keyword_args)
725
+ super(**keyword_args)
726
+ yield(self) if block_given?
727
+ end
728
+
729
+ # Create a <Say> element
730
+ #
731
+ # == Parameters:
732
+ # name:: name of client
733
+ # body:: message body
734
+ # loop:: times to loop
735
+ # language:: message language
736
+ # voice:: voice to use
737
+ # keyword_args:: additional attributes
738
+ #
739
+ # == Returns:
740
+ # A <Gather> element with a <Say> child element
741
+ def say(body, loop: nil, language: nil, voice: nil, **keyword_args)
742
+ append(Say.new(
743
+ body,
744
+ loop: loop,
745
+ language: language,
746
+ voice: voice,
747
+ **keyword_args
748
+ ))
749
+ end
750
+
751
+ # Create a <Play> element
752
+ #
753
+ # == Parameters:
754
+ # url:: media URL
755
+ # loop:: times to loop
756
+ # digits:: digits to simulate
757
+ # keyword_args:: additional attributes
758
+ #
759
+ # == Returns:
760
+ # A <Gather> element with a <Play> child element
761
+ def play(url: nil, loop: nil, digits: nil, **keyword_args)
762
+ append(Play.new(
763
+ url: url,
764
+ loop: loop,
765
+ digits: digits,
766
+ **keyword_args
767
+ ))
768
+ end
769
+
770
+ # Create a <Pause> element
771
+ #
772
+ # == Parameters:
773
+ # length:: time to pause
774
+ #
775
+ # == Returns:
776
+ # A <Gather> element with a <Pause> child element
777
+ def pause(length: nil)
778
+ append(Pause.new(length: length))
779
+ end
780
+ end
781
+
782
+ # <Pause> element
783
+ class Pause < TwiML
784
+ # Create a <Pause> element
785
+ #
786
+ # == Parameters:
787
+ # keyword_args:: additional attributes
788
+ #
789
+ # == Returns:
790
+ # A <Pause> element
791
+ def initialize(**keyword_args)
792
+ super(**keyword_args)
793
+ end
794
+ end
795
+
796
+ # <Play> element
797
+ class Play < TwiML
798
+ # Create a <Play> element
799
+ #
800
+ # == Parameters:
801
+ # url:: media URL
802
+ # keyword_args:: additional attributes
803
+ #
804
+ # == Returns:
805
+ # A <Play> element
806
+ def initialize(url: nil, **keyword_args)
807
+ super(**keyword_args)
808
+ @value = url
809
+ end
810
+ end
811
+
812
+ # <Say> element
813
+ class Say < TwiML
814
+ # Create a <Say> element
815
+ #
816
+ # == Parameters:
817
+ # body:: message body
818
+ # keyword_args:: additional attributes
819
+ #
820
+ # == Returns:
821
+ # A <Say> element
822
+ def initialize(body, **keyword_args)
823
+ super(**keyword_args)
824
+ @value = body
825
+ end
826
+ end
827
+
828
+ # <Hangup> element
829
+ class Hangup < TwiML
830
+ # Create a <hangup_on_star> element
831
+ #
832
+ # == Parameters:
833
+ # keyword_args:: additional attributes
834
+ #
835
+ # == Returns:
836
+ # A <hangup_on_star> element
837
+ def initialize(**keyword_args)
838
+ super(**keyword_args)
839
+ end
840
+ end
841
+
842
+ # <Leave> element
843
+ class Leave < TwiML
844
+ # Create a <Leave> element
845
+ #
846
+ # == Parameters:
847
+ # keyword_args:: additional attributes
848
+ #
849
+ # == Returns:
850
+ # A <Leave> element
851
+ def initialize(**keyword_args)
852
+ super(**keyword_args)
853
+ end
854
+ end
855
+
856
+ # <Record> element
857
+ class Record < TwiML
858
+ # Create a <Record> element
859
+ #
860
+ # == Parameters:
861
+ # keyword_args:: additional attributes
862
+ #
863
+ # == Returns:
864
+ # A <Record> element
865
+ def initialize(**keyword_args)
866
+ super(**keyword_args)
867
+ end
868
+ end
869
+
870
+ # <Redirect> element
871
+ class Redirect < TwiML
872
+ # Create a <Redirect> element
873
+ #
874
+ # == Parameters:
875
+ # url:: TwiML URL
876
+ # keyword_args:: additional attributes
877
+ #
878
+ # == Returns:
879
+ # A <Redirect> element
880
+ def initialize(url, **keyword_args)
881
+ super(**keyword_args)
882
+ @value = url
883
+ end
884
+ end
885
+
886
+ # <Reject> element
887
+ class Reject < TwiML
888
+ # Create a <Reject> element
889
+ #
890
+ # == Parameters:
891
+ # keyword_args:: additional attributes
892
+ #
893
+ # == Returns:
894
+ # A <Reject> element
895
+ def initialize(**keyword_args)
896
+ super(**keyword_args)
897
+ end
898
+ end
899
+
900
+ # <Sms> element
901
+ class Sms < TwiML
902
+ # Create a <Sms> element
903
+ #
904
+ # == Parameters:
905
+ # body:: message body
906
+ # keyword_args:: additional attributes
907
+ #
908
+ # == Returns:
909
+ # A <Sms> element
910
+ def initialize(body, **keyword_args)
911
+ super(**keyword_args)
912
+ @value = body
913
+ end
914
+ end
915
+ end
916
+ end