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,620 @@
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 ApplicationList < ListResource
13
+ ##
14
+ # Initialize the ApplicationList
15
+ # @param [Version] version Version that contains the resource
16
+ # @param [String] account_sid The unique id of the Account that created this
17
+ # application.
18
+ # @return [ApplicationList] ApplicationList
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]}/Applications.json"
27
+ end
28
+
29
+ ##
30
+ # Retrieve a single page of ApplicationInstance records from the API.
31
+ # Request is executed immediately.
32
+ # @param [String] friendly_name A human readable description of the new
33
+ # application, maximum of 64 characters.
34
+ # @param [String] api_version Requests to this application will start a new TwiML
35
+ # session with this API version.
36
+ # @param [String] voice_url The URL Twilio will request when a phone number
37
+ # assigned to this application receives a call.
38
+ # @param [String] voice_method The HTTP method Twilio will use when requesting the
39
+ # above `Url`. Either `GET` or `POST`.
40
+ # @param [String] voice_fallback_url The URL that Twilio will request if an error
41
+ # occurs retrieving or executing the TwiML requested by `Url`.
42
+ # @param [String] voice_fallback_method The HTTP method Twilio will use when
43
+ # requesting the `VoiceFallbackUrl`. Either `GET` or `POST`.
44
+ # @param [String] status_callback The URL that Twilio will request to pass status
45
+ # parameters (such as call ended) to your application.
46
+ # @param [String] status_callback_method The HTTP method Twilio will use to make
47
+ # requests to the `StatusCallback` URL. Either `GET` or `POST`.
48
+ # @param [Boolean] voice_caller_id_lookup Look up the caller's caller-ID name from
49
+ # the CNAM database (additional charges apply). Either `true` or `false`.
50
+ # @param [String] sms_url The URL Twilio will request when a phone number assigned
51
+ # to this application receives an incoming SMS message.
52
+ # @param [String] sms_method The HTTP method Twilio will use when making requests
53
+ # to the `SmsUrl`. Either `GET` or `POST`.
54
+ # @param [String] sms_fallback_url The URL that Twilio will request if an error
55
+ # occurs retrieving or executing the TwiML from `SmsUrl`.
56
+ # @param [String] sms_fallback_method The HTTP method Twilio will use when
57
+ # requesting the above URL. Either `GET` or `POST`.
58
+ # @param [String] sms_status_callback The URL that Twilio will `POST` to when a
59
+ # message is sent via the `/SMS/Messages` endpoint if you specify the `Sid` of
60
+ # this application on an outgoing SMS request.
61
+ # @param [String] message_status_callback Twilio will make a `POST` request to
62
+ # this URL to pass status parameters (such as sent or failed) to your application
63
+ # if you use the `/Messages` endpoint to send the message and specify this
64
+ # application's `Sid` as the `ApplicationSid` on an outgoing SMS request.
65
+ # @return [ApplicationInstance] Newly created ApplicationInstance
66
+ def create(friendly_name: nil, api_version: :unset, voice_url: :unset, voice_method: :unset, voice_fallback_url: :unset, voice_fallback_method: :unset, status_callback: :unset, status_callback_method: :unset, voice_caller_id_lookup: :unset, sms_url: :unset, sms_method: :unset, sms_fallback_url: :unset, sms_fallback_method: :unset, sms_status_callback: :unset, message_status_callback: :unset)
67
+ data = Twilio::Values.of({
68
+ 'FriendlyName' => friendly_name,
69
+ 'ApiVersion' => api_version,
70
+ 'VoiceUrl' => voice_url,
71
+ 'VoiceMethod' => voice_method,
72
+ 'VoiceFallbackUrl' => voice_fallback_url,
73
+ 'VoiceFallbackMethod' => voice_fallback_method,
74
+ 'StatusCallback' => status_callback,
75
+ 'StatusCallbackMethod' => status_callback_method,
76
+ 'VoiceCallerIdLookup' => voice_caller_id_lookup,
77
+ 'SmsUrl' => sms_url,
78
+ 'SmsMethod' => sms_method,
79
+ 'SmsFallbackUrl' => sms_fallback_url,
80
+ 'SmsFallbackMethod' => sms_fallback_method,
81
+ 'SmsStatusCallback' => sms_status_callback,
82
+ 'MessageStatusCallback' => message_status_callback,
83
+ })
84
+
85
+ payload = @version.create(
86
+ 'POST',
87
+ @uri,
88
+ data: data
89
+ )
90
+
91
+ ApplicationInstance.new(
92
+ @version,
93
+ payload,
94
+ account_sid: @solution[:account_sid],
95
+ )
96
+ end
97
+
98
+ ##
99
+ # Lists ApplicationInstance records from the API as a list.
100
+ # Unlike stream(), this operation is eager and will load `limit` records into
101
+ # memory before returning.
102
+ # @param [String] friendly_name Only return application resources with friendly
103
+ # names that match exactly with this name
104
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
105
+ # guarantees to never return more than limit. Default is no limit
106
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
107
+ # the default value of 50 records. If no page_size is defined
108
+ # but a limit is defined, stream() will attempt to read the
109
+ # limit with the most efficient page size, i.e. min(limit, 1000)
110
+ # @return [Array] Array of up to limit results
111
+ def list(friendly_name: :unset, limit: nil, page_size: nil)
112
+ self.stream(
113
+ friendly_name: friendly_name,
114
+ limit: limit,
115
+ page_size: page_size
116
+ ).entries
117
+ end
118
+
119
+ ##
120
+ # Streams ApplicationInstance records from the API as an Enumerable.
121
+ # This operation lazily loads records as efficiently as possible until the limit
122
+ # is reached.
123
+ # @param [String] friendly_name Only return application resources with friendly
124
+ # names that match exactly with this name
125
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
126
+ # guarantees to never return more than limit. Default is no limit
127
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
128
+ # the default value of 50 records. If no page_size is defined
129
+ # but a limit is defined, stream() will attempt to read the
130
+ # limit with the most efficient page size, i.e. min(limit, 1000)
131
+ # @return [Enumerable] Enumerable that will yield up to limit results
132
+ def stream(friendly_name: :unset, limit: nil, page_size: nil)
133
+ limits = @version.read_limits(limit, page_size)
134
+
135
+ page = self.page(
136
+ friendly_name: friendly_name,
137
+ page_size: limits[:page_size],
138
+ )
139
+
140
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
141
+ end
142
+
143
+ ##
144
+ # When passed a block, yields ApplicationInstance records from the API.
145
+ # This operation lazily loads records as efficiently as possible until the limit
146
+ # is reached.
147
+ def each
148
+ limits = @version.read_limits
149
+
150
+ page = self.page(
151
+ page_size: limits[:page_size],
152
+ )
153
+
154
+ @version.stream(page,
155
+ limit: limits[:limit],
156
+ page_limit: limits[:page_limit]).each {|x| yield x}
157
+ end
158
+
159
+ ##
160
+ # Retrieve a single page of ApplicationInstance records from the API.
161
+ # Request is executed immediately.
162
+ # @param [String] friendly_name Only return application resources with friendly
163
+ # names that match exactly with this name
164
+ # @param [String] page_token PageToken provided by the API
165
+ # @param [Integer] page_number Page Number, this value is simply for client state
166
+ # @param [Integer] page_size Number of records to return, defaults to 50
167
+ # @return [Page] Page of ApplicationInstance
168
+ def page(friendly_name: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
169
+ params = Twilio::Values.of({
170
+ 'FriendlyName' => friendly_name,
171
+ 'PageToken' => page_token,
172
+ 'Page' => page_number,
173
+ 'PageSize' => page_size,
174
+ })
175
+ response = @version.page(
176
+ 'GET',
177
+ @uri,
178
+ params
179
+ )
180
+ ApplicationPage.new(@version, response, @solution)
181
+ end
182
+
183
+ ##
184
+ # Retrieve a single page of ApplicationInstance records from the API.
185
+ # Request is executed immediately.
186
+ # @param [String] target_url API-generated URL for the requested results page
187
+ # @return [Page] Page of ApplicationInstance
188
+ def get_page(target_url)
189
+ response = @version.domain.request(
190
+ 'GET',
191
+ target_url
192
+ )
193
+ ApplicationPage.new(@version, response, @solution)
194
+ end
195
+
196
+ ##
197
+ # Provide a user friendly representation
198
+ def to_s
199
+ '#<Twilio.Api.V2010.ApplicationList>'
200
+ end
201
+ end
202
+
203
+ class ApplicationPage < Page
204
+ ##
205
+ # Initialize the ApplicationPage
206
+ # @param [Version] version Version that contains the resource
207
+ # @param [Response] response Response from the API
208
+ # @param [Hash] solution Path solution for the resource
209
+ # @return [ApplicationPage] ApplicationPage
210
+ def initialize(version, response, solution)
211
+ super(version, response)
212
+
213
+ # Path Solution
214
+ @solution = solution
215
+ end
216
+
217
+ ##
218
+ # Build an instance of ApplicationInstance
219
+ # @param [Hash] payload Payload response from the API
220
+ # @return [ApplicationInstance] ApplicationInstance
221
+ def get_instance(payload)
222
+ ApplicationInstance.new(
223
+ @version,
224
+ payload,
225
+ account_sid: @solution[:account_sid],
226
+ )
227
+ end
228
+
229
+ ##
230
+ # Provide a user friendly representation
231
+ def to_s
232
+ '<Twilio.Api.V2010.ApplicationPage>'
233
+ end
234
+ end
235
+
236
+ class ApplicationContext < InstanceContext
237
+ ##
238
+ # Initialize the ApplicationContext
239
+ # @param [Version] version Version that contains the resource
240
+ # @param [String] account_sid The account_sid
241
+ # @param [String] sid The application Sid that that uniquely identifies this
242
+ # resource
243
+ # @return [ApplicationContext] ApplicationContext
244
+ def initialize(version, account_sid, sid)
245
+ super(version)
246
+
247
+ # Path Solution
248
+ @solution = {
249
+ account_sid: account_sid,
250
+ sid: sid,
251
+ }
252
+ @uri = "/Accounts/#{@solution[:account_sid]}/Applications/#{@solution[:sid]}.json"
253
+ end
254
+
255
+ ##
256
+ # Deletes the ApplicationInstance
257
+ # @return [Boolean] true if delete succeeds, true otherwise
258
+ def delete
259
+ @version.delete('delete', @uri)
260
+ end
261
+
262
+ ##
263
+ # Fetch a ApplicationInstance
264
+ # @return [ApplicationInstance] Fetched ApplicationInstance
265
+ def fetch
266
+ params = Twilio::Values.of({})
267
+
268
+ payload = @version.fetch(
269
+ 'GET',
270
+ @uri,
271
+ params,
272
+ )
273
+
274
+ ApplicationInstance.new(
275
+ @version,
276
+ payload,
277
+ account_sid: @solution[:account_sid],
278
+ sid: @solution[:sid],
279
+ )
280
+ end
281
+
282
+ ##
283
+ # Update the ApplicationInstance
284
+ # @param [String] friendly_name A human readable descriptive text for this
285
+ # resource, up to 64 characters long.
286
+ # @param [String] api_version Requests to this application will start a new TwiML
287
+ # session with this API version.
288
+ # @param [String] voice_url The URL Twilio will request when a phone number
289
+ # assigned to this application receives a call.
290
+ # @param [String] voice_method The HTTP method Twilio will use when requesting the
291
+ # above `Url`. Either `GET` or `POST`.
292
+ # @param [String] voice_fallback_url The URL that Twilio will request if an error
293
+ # occurs retrieving or executing the TwiML requested by `Url`.
294
+ # @param [String] voice_fallback_method The HTTP method Twilio will use when
295
+ # requesting the `VoiceFallbackUrl`. Either `GET` or `POST`.
296
+ # @param [String] status_callback The URL that Twilio will request to pass status
297
+ # parameters (such as call ended) to your application.
298
+ # @param [String] status_callback_method The HTTP method Twilio will use to make
299
+ # requests to the `StatusCallback` URL. Either `GET` or `POST`.
300
+ # @param [Boolean] voice_caller_id_lookup Look up the caller's caller-ID name from
301
+ # the CNAM database (additional charges apply). Either `true` or `false`.
302
+ # @param [String] sms_url The URL Twilio will request when a phone number assigned
303
+ # to this application receives an incoming SMS message.
304
+ # @param [String] sms_method The HTTP method Twilio will use when making requests
305
+ # to the `SmsUrl`. Either `GET` or `POST`.
306
+ # @param [String] sms_fallback_url The URL that Twilio will request if an error
307
+ # occurs retrieving or executing the TwiML from `SmsUrl`.
308
+ # @param [String] sms_fallback_method The HTTP method Twilio will use when
309
+ # requesting the above URL. Either `GET` or `POST`.
310
+ # @param [String] sms_status_callback The URL that Twilio will `POST` to when a
311
+ # message is sent via the `/SMS/Messages` endpoint if you specify the `Sid` of
312
+ # this application on an outgoing SMS request.
313
+ # @param [String] message_status_callback Twilio will make a `POST` request to
314
+ # this URL to pass status parameters (such as sent or failed) to your application
315
+ # if you use the `/Messages` endpoint to send the message and specify this
316
+ # application's `Sid` as the `ApplicationSid` on an outgoing SMS request.
317
+ # @return [ApplicationInstance] Updated ApplicationInstance
318
+ def update(friendly_name: :unset, api_version: :unset, voice_url: :unset, voice_method: :unset, voice_fallback_url: :unset, voice_fallback_method: :unset, status_callback: :unset, status_callback_method: :unset, voice_caller_id_lookup: :unset, sms_url: :unset, sms_method: :unset, sms_fallback_url: :unset, sms_fallback_method: :unset, sms_status_callback: :unset, message_status_callback: :unset)
319
+ data = Twilio::Values.of({
320
+ 'FriendlyName' => friendly_name,
321
+ 'ApiVersion' => api_version,
322
+ 'VoiceUrl' => voice_url,
323
+ 'VoiceMethod' => voice_method,
324
+ 'VoiceFallbackUrl' => voice_fallback_url,
325
+ 'VoiceFallbackMethod' => voice_fallback_method,
326
+ 'StatusCallback' => status_callback,
327
+ 'StatusCallbackMethod' => status_callback_method,
328
+ 'VoiceCallerIdLookup' => voice_caller_id_lookup,
329
+ 'SmsUrl' => sms_url,
330
+ 'SmsMethod' => sms_method,
331
+ 'SmsFallbackUrl' => sms_fallback_url,
332
+ 'SmsFallbackMethod' => sms_fallback_method,
333
+ 'SmsStatusCallback' => sms_status_callback,
334
+ 'MessageStatusCallback' => message_status_callback,
335
+ })
336
+
337
+ payload = @version.update(
338
+ 'POST',
339
+ @uri,
340
+ data: data,
341
+ )
342
+
343
+ ApplicationInstance.new(
344
+ @version,
345
+ payload,
346
+ account_sid: @solution[:account_sid],
347
+ sid: @solution[:sid],
348
+ )
349
+ end
350
+
351
+ ##
352
+ # Provide a user friendly representation
353
+ def to_s
354
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
355
+ "#<Twilio.Api.V2010.ApplicationContext #{context}>"
356
+ end
357
+ end
358
+
359
+ class ApplicationInstance < InstanceResource
360
+ ##
361
+ # Initialize the ApplicationInstance
362
+ # @param [Version] version Version that contains the resource
363
+ # @param [Hash] payload payload that contains response from Twilio
364
+ # @param [String] account_sid The unique id of the Account that created this
365
+ # application.
366
+ # @param [String] sid The application Sid that that uniquely identifies this
367
+ # resource
368
+ # @return [ApplicationInstance] ApplicationInstance
369
+ def initialize(version, payload, account_sid: nil, sid: nil)
370
+ super(version)
371
+
372
+ # Marshaled Properties
373
+ @properties = {
374
+ 'account_sid' => payload['account_sid'],
375
+ 'api_version' => payload['api_version'],
376
+ 'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
377
+ 'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
378
+ 'friendly_name' => payload['friendly_name'],
379
+ 'message_status_callback' => payload['message_status_callback'],
380
+ 'sid' => payload['sid'],
381
+ 'sms_fallback_method' => payload['sms_fallback_method'],
382
+ 'sms_fallback_url' => payload['sms_fallback_url'],
383
+ 'sms_method' => payload['sms_method'],
384
+ 'sms_status_callback' => payload['sms_status_callback'],
385
+ 'sms_url' => payload['sms_url'],
386
+ 'status_callback' => payload['status_callback'],
387
+ 'status_callback_method' => payload['status_callback_method'],
388
+ 'uri' => payload['uri'],
389
+ 'voice_caller_id_lookup' => payload['voice_caller_id_lookup'],
390
+ 'voice_fallback_method' => payload['voice_fallback_method'],
391
+ 'voice_fallback_url' => payload['voice_fallback_url'],
392
+ 'voice_method' => payload['voice_method'],
393
+ 'voice_url' => payload['voice_url'],
394
+ }
395
+
396
+ # Context
397
+ @instance_context = nil
398
+ @params = {
399
+ 'account_sid' => account_sid,
400
+ 'sid' => sid || @properties['sid'],
401
+ }
402
+ end
403
+
404
+ ##
405
+ # Generate an instance context for the instance, the context is capable of
406
+ # performing various actions. All instance actions are proxied to the context
407
+ # @return [ApplicationContext] ApplicationContext for this ApplicationInstance
408
+ def context
409
+ unless @instance_context
410
+ @instance_context = ApplicationContext.new(
411
+ @version,
412
+ @params['account_sid'],
413
+ @params['sid'],
414
+ )
415
+ end
416
+ @instance_context
417
+ end
418
+
419
+ ##
420
+ # @return [String] A string that uniquely identifies this resource
421
+ def account_sid
422
+ @properties['account_sid']
423
+ end
424
+
425
+ ##
426
+ # @return [String] The API version to use
427
+ def api_version
428
+ @properties['api_version']
429
+ end
430
+
431
+ ##
432
+ # @return [Time] Date this resource was created
433
+ def date_created
434
+ @properties['date_created']
435
+ end
436
+
437
+ ##
438
+ # @return [Time] Date this resource was last updated
439
+ def date_updated
440
+ @properties['date_updated']
441
+ end
442
+
443
+ ##
444
+ # @return [String] Human readable description of this resource
445
+ def friendly_name
446
+ @properties['friendly_name']
447
+ end
448
+
449
+ ##
450
+ # @return [String] URL to make requests to with status updates
451
+ def message_status_callback
452
+ @properties['message_status_callback']
453
+ end
454
+
455
+ ##
456
+ # @return [String] A string that uniquely identifies this resource
457
+ def sid
458
+ @properties['sid']
459
+ end
460
+
461
+ ##
462
+ # @return [String] HTTP method to use with sms_fallback_method
463
+ def sms_fallback_method
464
+ @properties['sms_fallback_method']
465
+ end
466
+
467
+ ##
468
+ # @return [String] Fallback URL if there's an error parsing TwiML
469
+ def sms_fallback_url
470
+ @properties['sms_fallback_url']
471
+ end
472
+
473
+ ##
474
+ # @return [String] HTTP method to use with sms_url
475
+ def sms_method
476
+ @properties['sms_method']
477
+ end
478
+
479
+ ##
480
+ # @return [String] URL Twilio with request with status updates
481
+ def sms_status_callback
482
+ @properties['sms_status_callback']
483
+ end
484
+
485
+ ##
486
+ # @return [String] URL Twilio will request when receiving an SMS
487
+ def sms_url
488
+ @properties['sms_url']
489
+ end
490
+
491
+ ##
492
+ # @return [String] URL to hit with status updates
493
+ def status_callback
494
+ @properties['status_callback']
495
+ end
496
+
497
+ ##
498
+ # @return [String] HTTP method to use with the status callback
499
+ def status_callback_method
500
+ @properties['status_callback_method']
501
+ end
502
+
503
+ ##
504
+ # @return [String] URI for this resource
505
+ def uri
506
+ @properties['uri']
507
+ end
508
+
509
+ ##
510
+ # @return [Boolean] True or False
511
+ def voice_caller_id_lookup
512
+ @properties['voice_caller_id_lookup']
513
+ end
514
+
515
+ ##
516
+ # @return [String] HTTP method to use with the fallback url
517
+ def voice_fallback_method
518
+ @properties['voice_fallback_method']
519
+ end
520
+
521
+ ##
522
+ # @return [String] Fallback URL
523
+ def voice_fallback_url
524
+ @properties['voice_fallback_url']
525
+ end
526
+
527
+ ##
528
+ # @return [String] HTTP method to use with the URL
529
+ def voice_method
530
+ @properties['voice_method']
531
+ end
532
+
533
+ ##
534
+ # @return [String] URL Twilio will make requests to when relieving a call
535
+ def voice_url
536
+ @properties['voice_url']
537
+ end
538
+
539
+ ##
540
+ # Deletes the ApplicationInstance
541
+ # @return [Boolean] true if delete succeeds, true otherwise
542
+ def delete
543
+ context.delete
544
+ end
545
+
546
+ ##
547
+ # Fetch a ApplicationInstance
548
+ # @return [ApplicationInstance] Fetched ApplicationInstance
549
+ def fetch
550
+ context.fetch
551
+ end
552
+
553
+ ##
554
+ # Update the ApplicationInstance
555
+ # @param [String] friendly_name A human readable descriptive text for this
556
+ # resource, up to 64 characters long.
557
+ # @param [String] api_version Requests to this application will start a new TwiML
558
+ # session with this API version.
559
+ # @param [String] voice_url The URL Twilio will request when a phone number
560
+ # assigned to this application receives a call.
561
+ # @param [String] voice_method The HTTP method Twilio will use when requesting the
562
+ # above `Url`. Either `GET` or `POST`.
563
+ # @param [String] voice_fallback_url The URL that Twilio will request if an error
564
+ # occurs retrieving or executing the TwiML requested by `Url`.
565
+ # @param [String] voice_fallback_method The HTTP method Twilio will use when
566
+ # requesting the `VoiceFallbackUrl`. Either `GET` or `POST`.
567
+ # @param [String] status_callback The URL that Twilio will request to pass status
568
+ # parameters (such as call ended) to your application.
569
+ # @param [String] status_callback_method The HTTP method Twilio will use to make
570
+ # requests to the `StatusCallback` URL. Either `GET` or `POST`.
571
+ # @param [Boolean] voice_caller_id_lookup Look up the caller's caller-ID name from
572
+ # the CNAM database (additional charges apply). Either `true` or `false`.
573
+ # @param [String] sms_url The URL Twilio will request when a phone number assigned
574
+ # to this application receives an incoming SMS message.
575
+ # @param [String] sms_method The HTTP method Twilio will use when making requests
576
+ # to the `SmsUrl`. Either `GET` or `POST`.
577
+ # @param [String] sms_fallback_url The URL that Twilio will request if an error
578
+ # occurs retrieving or executing the TwiML from `SmsUrl`.
579
+ # @param [String] sms_fallback_method The HTTP method Twilio will use when
580
+ # requesting the above URL. Either `GET` or `POST`.
581
+ # @param [String] sms_status_callback The URL that Twilio will `POST` to when a
582
+ # message is sent via the `/SMS/Messages` endpoint if you specify the `Sid` of
583
+ # this application on an outgoing SMS request.
584
+ # @param [String] message_status_callback Twilio will make a `POST` request to
585
+ # this URL to pass status parameters (such as sent or failed) to your application
586
+ # if you use the `/Messages` endpoint to send the message and specify this
587
+ # application's `Sid` as the `ApplicationSid` on an outgoing SMS request.
588
+ # @return [ApplicationInstance] Updated ApplicationInstance
589
+ def update(friendly_name: :unset, api_version: :unset, voice_url: :unset, voice_method: :unset, voice_fallback_url: :unset, voice_fallback_method: :unset, status_callback: :unset, status_callback_method: :unset, voice_caller_id_lookup: :unset, sms_url: :unset, sms_method: :unset, sms_fallback_url: :unset, sms_fallback_method: :unset, sms_status_callback: :unset, message_status_callback: :unset)
590
+ context.update(
591
+ friendly_name: friendly_name,
592
+ api_version: api_version,
593
+ voice_url: voice_url,
594
+ voice_method: voice_method,
595
+ voice_fallback_url: voice_fallback_url,
596
+ voice_fallback_method: voice_fallback_method,
597
+ status_callback: status_callback,
598
+ status_callback_method: status_callback_method,
599
+ voice_caller_id_lookup: voice_caller_id_lookup,
600
+ sms_url: sms_url,
601
+ sms_method: sms_method,
602
+ sms_fallback_url: sms_fallback_url,
603
+ sms_fallback_method: sms_fallback_method,
604
+ sms_status_callback: sms_status_callback,
605
+ message_status_callback: message_status_callback,
606
+ )
607
+ end
608
+
609
+ ##
610
+ # Provide a user friendly representation
611
+ def to_s
612
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
613
+ "<Twilio.Api.V2010.ApplicationInstance #{values}>"
614
+ end
615
+ end
616
+ end
617
+ end
618
+ end
619
+ end
620
+ end