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,786 @@
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 IncomingPhoneNumberList < ListResource
13
+ ##
14
+ # Initialize the IncomingPhoneNumberList
15
+ # @param [Version] version Version that contains the resource
16
+ # @param [String] account_sid The unique id of the Account responsible for this
17
+ # phone number.
18
+ # @return [IncomingPhoneNumberList] IncomingPhoneNumberList
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]}/IncomingPhoneNumbers.json"
27
+
28
+ # Components
29
+ @local = nil
30
+ @mobile = nil
31
+ @toll_free = nil
32
+ end
33
+
34
+ ##
35
+ # Lists IncomingPhoneNumberInstance records from the API as a list.
36
+ # Unlike stream(), this operation is eager and will load `limit` records into
37
+ # memory before returning.
38
+ # @param [Boolean] beta Include phone numbers new to the Twilio platform
39
+ # @param [String] friendly_name Only show the incoming phone number resources with
40
+ # friendly names that exactly match this name
41
+ # @param [String] phone_number Only show the incoming phone number resources that
42
+ # match this pattern
43
+ # @param [String] origin The origin
44
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
45
+ # guarantees to never return more than limit. Default is no limit
46
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
47
+ # the default value of 50 records. If no page_size is defined
48
+ # but a limit is defined, stream() will attempt to read the
49
+ # limit with the most efficient page size, i.e. min(limit, 1000)
50
+ # @return [Array] Array of up to limit results
51
+ def list(beta: :unset, friendly_name: :unset, phone_number: :unset, origin: :unset, limit: nil, page_size: nil)
52
+ self.stream(
53
+ beta: beta,
54
+ friendly_name: friendly_name,
55
+ phone_number: phone_number,
56
+ origin: origin,
57
+ limit: limit,
58
+ page_size: page_size
59
+ ).entries
60
+ end
61
+
62
+ ##
63
+ # Streams IncomingPhoneNumberInstance records from the API as an Enumerable.
64
+ # This operation lazily loads records as efficiently as possible until the limit
65
+ # is reached.
66
+ # @param [Boolean] beta Include phone numbers new to the Twilio platform
67
+ # @param [String] friendly_name Only show the incoming phone number resources with
68
+ # friendly names that exactly match this name
69
+ # @param [String] phone_number Only show the incoming phone number resources that
70
+ # match this pattern
71
+ # @param [String] origin The origin
72
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
73
+ # guarantees to never return more than limit. Default is no limit
74
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
75
+ # the default value of 50 records. If no page_size is defined
76
+ # but a limit is defined, stream() will attempt to read the
77
+ # limit with the most efficient page size, i.e. min(limit, 1000)
78
+ # @return [Enumerable] Enumerable that will yield up to limit results
79
+ def stream(beta: :unset, friendly_name: :unset, phone_number: :unset, origin: :unset, limit: nil, page_size: nil)
80
+ limits = @version.read_limits(limit, page_size)
81
+
82
+ page = self.page(
83
+ beta: beta,
84
+ friendly_name: friendly_name,
85
+ phone_number: phone_number,
86
+ origin: origin,
87
+ page_size: limits[:page_size],
88
+ )
89
+
90
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
91
+ end
92
+
93
+ ##
94
+ # When passed a block, yields IncomingPhoneNumberInstance records from the API.
95
+ # This operation lazily loads records as efficiently as possible until the limit
96
+ # is reached.
97
+ def each
98
+ limits = @version.read_limits
99
+
100
+ page = self.page(
101
+ page_size: limits[:page_size],
102
+ )
103
+
104
+ @version.stream(page,
105
+ limit: limits[:limit],
106
+ page_limit: limits[:page_limit]).each {|x| yield x}
107
+ end
108
+
109
+ ##
110
+ # Retrieve a single page of IncomingPhoneNumberInstance records from the API.
111
+ # Request is executed immediately.
112
+ # @param [Boolean] beta Include phone numbers new to the Twilio platform
113
+ # @param [String] friendly_name Only show the incoming phone number resources with
114
+ # friendly names that exactly match this name
115
+ # @param [String] phone_number Only show the incoming phone number resources that
116
+ # match this pattern
117
+ # @param [String] origin The origin
118
+ # @param [String] page_token PageToken provided by the API
119
+ # @param [Integer] page_number Page Number, this value is simply for client state
120
+ # @param [Integer] page_size Number of records to return, defaults to 50
121
+ # @return [Page] Page of IncomingPhoneNumberInstance
122
+ def page(beta: :unset, friendly_name: :unset, phone_number: :unset, origin: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
123
+ params = Twilio::Values.of({
124
+ 'Beta' => beta,
125
+ 'FriendlyName' => friendly_name,
126
+ 'PhoneNumber' => phone_number,
127
+ 'Origin' => origin,
128
+ 'PageToken' => page_token,
129
+ 'Page' => page_number,
130
+ 'PageSize' => page_size,
131
+ })
132
+ response = @version.page(
133
+ 'GET',
134
+ @uri,
135
+ params
136
+ )
137
+ IncomingPhoneNumberPage.new(@version, response, @solution)
138
+ end
139
+
140
+ ##
141
+ # Retrieve a single page of IncomingPhoneNumberInstance records from the API.
142
+ # Request is executed immediately.
143
+ # @param [String] target_url API-generated URL for the requested results page
144
+ # @return [Page] Page of IncomingPhoneNumberInstance
145
+ def get_page(target_url)
146
+ response = @version.domain.request(
147
+ 'GET',
148
+ target_url
149
+ )
150
+ IncomingPhoneNumberPage.new(@version, response, @solution)
151
+ end
152
+
153
+ ##
154
+ # Retrieve a single page of IncomingPhoneNumberInstance records from the API.
155
+ # Request is executed immediately.
156
+ # @param [String] api_version Calls to this phone number will start a new TwiML
157
+ # session with this API version.
158
+ # @param [String] friendly_name A human readable descriptive text for this
159
+ # resource, up to 64 characters long. By default, the `FriendlyName` is a nicely
160
+ # formatted version of the phone number.
161
+ # @param [String] sms_application_sid The 34 character sid of the application
162
+ # Twilio should use to handle SMSs sent to this number. If a `SmsApplicationSid`
163
+ # is present, Twilio will ignore all of the SMS urls above and use those set on
164
+ # the application.
165
+ # @param [String] sms_fallback_method The HTTP method Twilio will use when
166
+ # requesting the above URL. Either `GET` or `POST`.
167
+ # @param [String] sms_fallback_url The URL that Twilio will request if an error
168
+ # occurs retrieving or executing the TwiML from `SmsUrl`.
169
+ # @param [String] sms_method The HTTP method Twilio will use when making requests
170
+ # to the `SmsUrl`. Either `GET` or `POST`.
171
+ # @param [String] sms_url The URL Twilio will request when receiving an incoming
172
+ # SMS message to this number.
173
+ # @param [String] status_callback The URL that Twilio will request to pass status
174
+ # parameters (such as call ended) to your application.
175
+ # @param [String] status_callback_method The HTTP method Twilio will use to make
176
+ # requests to the `StatusCallback` URL. Either `GET` or `POST`.
177
+ # @param [String] voice_application_sid The 34 character sid of the application
178
+ # Twilio should use to handle phone calls to this number. If a
179
+ # `VoiceApplicationSid` is present, Twilio will ignore all of the voice urls above
180
+ # and use those set on the application. Setting a `VoiceApplicationSid` will
181
+ # automatically delete your `TrunkSid` and vice versa.
182
+ # @param [Boolean] voice_caller_id_lookup Look up the caller's caller-ID name from
183
+ # the CNAM database ($0.01 per look up). Either `true` or `false`.
184
+ # @param [String] voice_fallback_method The HTTP method Twilio will use when
185
+ # requesting the `VoiceFallbackUrl`. Either `GET` or `POST`.
186
+ # @param [String] voice_fallback_url The URL that Twilio will request if an error
187
+ # occurs retrieving or executing the TwiML requested by `Url`.
188
+ # @param [String] voice_method The HTTP method Twilio will use when requesting the
189
+ # above `Url`. Either `GET` or `POST`.
190
+ # @param [String] voice_url The URL Twilio will request when this phone number
191
+ # receives a call. The VoiceURL will no longer be used if a `VoiceApplicationSid`
192
+ # or a `TrunkSid` is set.
193
+ # @param [incoming_phone_number.EmergencyStatus] emergency_status The
194
+ # emergency_status
195
+ # @param [String] emergency_address_sid The emergency_address_sid
196
+ # @param [String] trunk_sid The 34 character sid of the Trunk Twilio should use to
197
+ # handle phone calls to this number. If a `TrunkSid` is present, Twilio will
198
+ # ignore all of the voice urls and voice applications above and use those set on
199
+ # the Trunk. Setting a `TrunkSid` will automatically delete your
200
+ # `VoiceApplicationSid` and vice versa.
201
+ # @param [String] phone_number The phone number to purchase. e.g., +16175551212
202
+ # (E.164 format)
203
+ # @param [String] area_code The desired area code for the new phone number. Any
204
+ # three digit US or Canada rea code is valid
205
+ # @return [IncomingPhoneNumberInstance] Newly created IncomingPhoneNumberInstance
206
+ def create(api_version: :unset, friendly_name: :unset, sms_application_sid: :unset, sms_fallback_method: :unset, sms_fallback_url: :unset, sms_method: :unset, sms_url: :unset, status_callback: :unset, status_callback_method: :unset, voice_application_sid: :unset, voice_caller_id_lookup: :unset, voice_fallback_method: :unset, voice_fallback_url: :unset, voice_method: :unset, voice_url: :unset, emergency_status: :unset, emergency_address_sid: :unset, trunk_sid: :unset, phone_number: :unset, area_code: :unset)
207
+ data = Twilio::Values.of({
208
+ 'PhoneNumber' => phone_number,
209
+ 'AreaCode' => area_code,
210
+ 'ApiVersion' => api_version,
211
+ 'FriendlyName' => friendly_name,
212
+ 'SmsApplicationSid' => sms_application_sid,
213
+ 'SmsFallbackMethod' => sms_fallback_method,
214
+ 'SmsFallbackUrl' => sms_fallback_url,
215
+ 'SmsMethod' => sms_method,
216
+ 'SmsUrl' => sms_url,
217
+ 'StatusCallback' => status_callback,
218
+ 'StatusCallbackMethod' => status_callback_method,
219
+ 'VoiceApplicationSid' => voice_application_sid,
220
+ 'VoiceCallerIdLookup' => voice_caller_id_lookup,
221
+ 'VoiceFallbackMethod' => voice_fallback_method,
222
+ 'VoiceFallbackUrl' => voice_fallback_url,
223
+ 'VoiceMethod' => voice_method,
224
+ 'VoiceUrl' => voice_url,
225
+ 'EmergencyStatus' => emergency_status,
226
+ 'EmergencyAddressSid' => emergency_address_sid,
227
+ 'TrunkSid' => trunk_sid,
228
+ })
229
+
230
+ payload = @version.create(
231
+ 'POST',
232
+ @uri,
233
+ data: data
234
+ )
235
+
236
+ IncomingPhoneNumberInstance.new(
237
+ @version,
238
+ payload,
239
+ account_sid: @solution[:account_sid],
240
+ )
241
+ end
242
+
243
+ ##
244
+ # Access the local
245
+ # @return [LocalList]
246
+ # @return [LocalContext]
247
+ def local
248
+ @local ||= LocalList.new(
249
+ @version,
250
+ account_sid: @solution[:account_sid],
251
+ )
252
+ end
253
+
254
+ ##
255
+ # Access the mobile
256
+ # @return [MobileList]
257
+ # @return [MobileContext]
258
+ def mobile
259
+ @mobile ||= MobileList.new(
260
+ @version,
261
+ account_sid: @solution[:account_sid],
262
+ )
263
+ end
264
+
265
+ ##
266
+ # Access the toll_free
267
+ # @return [TollFreeList]
268
+ # @return [TollFreeContext]
269
+ def toll_free
270
+ @toll_free ||= TollFreeList.new(
271
+ @version,
272
+ account_sid: @solution[:account_sid],
273
+ )
274
+ end
275
+
276
+ ##
277
+ # Provide a user friendly representation
278
+ def to_s
279
+ '#<Twilio.Api.V2010.IncomingPhoneNumberList>'
280
+ end
281
+ end
282
+
283
+ class IncomingPhoneNumberPage < Page
284
+ ##
285
+ # Initialize the IncomingPhoneNumberPage
286
+ # @param [Version] version Version that contains the resource
287
+ # @param [Response] response Response from the API
288
+ # @param [Hash] solution Path solution for the resource
289
+ # @return [IncomingPhoneNumberPage] IncomingPhoneNumberPage
290
+ def initialize(version, response, solution)
291
+ super(version, response)
292
+
293
+ # Path Solution
294
+ @solution = solution
295
+ end
296
+
297
+ ##
298
+ # Build an instance of IncomingPhoneNumberInstance
299
+ # @param [Hash] payload Payload response from the API
300
+ # @return [IncomingPhoneNumberInstance] IncomingPhoneNumberInstance
301
+ def get_instance(payload)
302
+ IncomingPhoneNumberInstance.new(
303
+ @version,
304
+ payload,
305
+ account_sid: @solution[:account_sid],
306
+ )
307
+ end
308
+
309
+ ##
310
+ # Provide a user friendly representation
311
+ def to_s
312
+ '<Twilio.Api.V2010.IncomingPhoneNumberPage>'
313
+ end
314
+ end
315
+
316
+ class IncomingPhoneNumberContext < InstanceContext
317
+ ##
318
+ # Initialize the IncomingPhoneNumberContext
319
+ # @param [Version] version Version that contains the resource
320
+ # @param [String] account_sid The account_sid
321
+ # @param [String] sid The incoming-phone-number Sid that uniquely identifies this
322
+ # resource
323
+ # @return [IncomingPhoneNumberContext] IncomingPhoneNumberContext
324
+ def initialize(version, account_sid, sid)
325
+ super(version)
326
+
327
+ # Path Solution
328
+ @solution = {
329
+ account_sid: account_sid,
330
+ sid: sid,
331
+ }
332
+ @uri = "/Accounts/#{@solution[:account_sid]}/IncomingPhoneNumbers/#{@solution[:sid]}.json"
333
+ end
334
+
335
+ ##
336
+ # Update the IncomingPhoneNumberInstance
337
+ # @param [String] api_version Calls to this phone number will start a new TwiML
338
+ # session with this API version.
339
+ # @param [String] friendly_name A human readable descriptive text for this
340
+ # resource, up to 64 characters long. By default, the `FriendlyName` is a nicely
341
+ # formatted version of the phone number.
342
+ # @param [String] sms_application_sid The 34 character sid of the application
343
+ # Twilio should use to handle SMSs sent to this number. If a `SmsApplicationSid`
344
+ # is present, Twilio will ignore all of the SMS urls above and use those set on
345
+ # the application.
346
+ # @param [String] sms_fallback_method The HTTP method Twilio will use when
347
+ # requesting the above URL. Either `GET` or `POST`.
348
+ # @param [String] sms_fallback_url The URL that Twilio will request if an error
349
+ # occurs retrieving or executing the TwiML from `SmsUrl`.
350
+ # @param [String] sms_method The HTTP method Twilio will use when making requests
351
+ # to the `SmsUrl`. Either `GET` or `POST`.
352
+ # @param [String] sms_url The URL Twilio will request when receiving an incoming
353
+ # SMS message to this number.
354
+ # @param [String] status_callback The URL that Twilio will request to pass status
355
+ # parameters (such as call ended) to your application.
356
+ # @param [String] status_callback_method The HTTP method Twilio will use to make
357
+ # requests to the `StatusCallback` URL. Either `GET` or `POST`.
358
+ # @param [String] voice_application_sid The 34 character sid of the application
359
+ # Twilio should use to handle phone calls to this number. If a
360
+ # `VoiceApplicationSid` is present, Twilio will ignore all of the voice urls above
361
+ # and use those set on the application. Setting a `VoiceApplicationSid` will
362
+ # automatically delete your `TrunkSid` and vice versa.
363
+ # @param [Boolean] voice_caller_id_lookup Look up the caller's caller-ID name from
364
+ # the CNAM database ($0.01 per look up). Either `true` or `false`.
365
+ # @param [String] voice_fallback_method The HTTP method Twilio will use when
366
+ # requesting the `VoiceFallbackUrl`. Either `GET` or `POST`.
367
+ # @param [String] voice_fallback_url The URL that Twilio will request if an error
368
+ # occurs retrieving or executing the TwiML requested by `Url`.
369
+ # @param [String] voice_method The HTTP method Twilio will use when requesting the
370
+ # above `Url`. Either `GET` or `POST`.
371
+ # @param [String] voice_url The URL Twilio will request when this phone number
372
+ # receives a call. The VoiceURL will no longer be used if a `VoiceApplicationSid`
373
+ # or a `TrunkSid` is set.
374
+ # @param [incoming_phone_number.EmergencyStatus] emergency_status The
375
+ # emergency_status
376
+ # @param [String] emergency_address_sid The emergency_address_sid
377
+ # @param [String] trunk_sid The 34 character sid of the Trunk Twilio should use to
378
+ # handle phone calls to this number. If a `TrunkSid` is present, Twilio will
379
+ # ignore all of the voice urls and voice applications above and use those set on
380
+ # the Trunk. Setting a `TrunkSid` will automatically delete your
381
+ # `VoiceApplicationSid` and vice versa.
382
+ # @return [IncomingPhoneNumberInstance] Updated IncomingPhoneNumberInstance
383
+ def update(api_version: :unset, friendly_name: :unset, sms_application_sid: :unset, sms_fallback_method: :unset, sms_fallback_url: :unset, sms_method: :unset, sms_url: :unset, status_callback: :unset, status_callback_method: :unset, voice_application_sid: :unset, voice_caller_id_lookup: :unset, voice_fallback_method: :unset, voice_fallback_url: :unset, voice_method: :unset, voice_url: :unset, emergency_status: :unset, emergency_address_sid: :unset, trunk_sid: :unset)
384
+ data = Twilio::Values.of({
385
+ 'ApiVersion' => api_version,
386
+ 'FriendlyName' => friendly_name,
387
+ 'SmsApplicationSid' => sms_application_sid,
388
+ 'SmsFallbackMethod' => sms_fallback_method,
389
+ 'SmsFallbackUrl' => sms_fallback_url,
390
+ 'SmsMethod' => sms_method,
391
+ 'SmsUrl' => sms_url,
392
+ 'StatusCallback' => status_callback,
393
+ 'StatusCallbackMethod' => status_callback_method,
394
+ 'VoiceApplicationSid' => voice_application_sid,
395
+ 'VoiceCallerIdLookup' => voice_caller_id_lookup,
396
+ 'VoiceFallbackMethod' => voice_fallback_method,
397
+ 'VoiceFallbackUrl' => voice_fallback_url,
398
+ 'VoiceMethod' => voice_method,
399
+ 'VoiceUrl' => voice_url,
400
+ 'EmergencyStatus' => emergency_status,
401
+ 'EmergencyAddressSid' => emergency_address_sid,
402
+ 'TrunkSid' => trunk_sid,
403
+ })
404
+
405
+ payload = @version.update(
406
+ 'POST',
407
+ @uri,
408
+ data: data,
409
+ )
410
+
411
+ IncomingPhoneNumberInstance.new(
412
+ @version,
413
+ payload,
414
+ account_sid: @solution[:account_sid],
415
+ sid: @solution[:sid],
416
+ )
417
+ end
418
+
419
+ ##
420
+ # Fetch a IncomingPhoneNumberInstance
421
+ # @return [IncomingPhoneNumberInstance] Fetched IncomingPhoneNumberInstance
422
+ def fetch
423
+ params = Twilio::Values.of({})
424
+
425
+ payload = @version.fetch(
426
+ 'GET',
427
+ @uri,
428
+ params,
429
+ )
430
+
431
+ IncomingPhoneNumberInstance.new(
432
+ @version,
433
+ payload,
434
+ account_sid: @solution[:account_sid],
435
+ sid: @solution[:sid],
436
+ )
437
+ end
438
+
439
+ ##
440
+ # Deletes the IncomingPhoneNumberInstance
441
+ # @return [Boolean] true if delete succeeds, true otherwise
442
+ def delete
443
+ @version.delete('delete', @uri)
444
+ end
445
+
446
+ ##
447
+ # Provide a user friendly representation
448
+ def to_s
449
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
450
+ "#<Twilio.Api.V2010.IncomingPhoneNumberContext #{context}>"
451
+ end
452
+ end
453
+
454
+ class IncomingPhoneNumberInstance < InstanceResource
455
+ ##
456
+ # Initialize the IncomingPhoneNumberInstance
457
+ # @param [Version] version Version that contains the resource
458
+ # @param [Hash] payload payload that contains response from Twilio
459
+ # @param [String] account_sid The unique id of the Account responsible for this
460
+ # phone number.
461
+ # @param [String] sid The incoming-phone-number Sid that uniquely identifies this
462
+ # resource
463
+ # @return [IncomingPhoneNumberInstance] IncomingPhoneNumberInstance
464
+ def initialize(version, payload, account_sid: nil, sid: nil)
465
+ super(version)
466
+
467
+ # Marshaled Properties
468
+ @properties = {
469
+ 'account_sid' => payload['account_sid'],
470
+ 'address_requirements' => payload['address_requirements'],
471
+ 'api_version' => payload['api_version'],
472
+ 'beta' => payload['beta'],
473
+ 'capabilities' => payload['capabilities'],
474
+ 'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
475
+ 'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
476
+ 'friendly_name' => payload['friendly_name'],
477
+ 'phone_number' => payload['phone_number'],
478
+ 'origin' => payload['origin'],
479
+ 'sid' => payload['sid'],
480
+ 'sms_application_sid' => payload['sms_application_sid'],
481
+ 'sms_fallback_method' => payload['sms_fallback_method'],
482
+ 'sms_fallback_url' => payload['sms_fallback_url'],
483
+ 'sms_method' => payload['sms_method'],
484
+ 'sms_url' => payload['sms_url'],
485
+ 'status_callback' => payload['status_callback'],
486
+ 'status_callback_method' => payload['status_callback_method'],
487
+ 'trunk_sid' => payload['trunk_sid'],
488
+ 'uri' => payload['uri'],
489
+ 'voice_application_sid' => payload['voice_application_sid'],
490
+ 'voice_caller_id_lookup' => payload['voice_caller_id_lookup'],
491
+ 'voice_fallback_method' => payload['voice_fallback_method'],
492
+ 'voice_fallback_url' => payload['voice_fallback_url'],
493
+ 'voice_method' => payload['voice_method'],
494
+ 'voice_url' => payload['voice_url'],
495
+ 'emergency_status' => payload['emergency_status'],
496
+ 'emergency_address_sid' => payload['emergency_address_sid'],
497
+ }
498
+
499
+ # Context
500
+ @instance_context = nil
501
+ @params = {
502
+ 'account_sid' => account_sid,
503
+ 'sid' => sid || @properties['sid'],
504
+ }
505
+ end
506
+
507
+ ##
508
+ # Generate an instance context for the instance, the context is capable of
509
+ # performing various actions. All instance actions are proxied to the context
510
+ # @return [IncomingPhoneNumberContext] IncomingPhoneNumberContext for this IncomingPhoneNumberInstance
511
+ def context
512
+ unless @instance_context
513
+ @instance_context = IncomingPhoneNumberContext.new(
514
+ @version,
515
+ @params['account_sid'],
516
+ @params['sid'],
517
+ )
518
+ end
519
+ @instance_context
520
+ end
521
+
522
+ ##
523
+ # @return [String] The unique sid that identifies this account
524
+ def account_sid
525
+ @properties['account_sid']
526
+ end
527
+
528
+ ##
529
+ # @return [toll_free.AddressRequirement] Indicates if the customer requires an address
530
+ def address_requirements
531
+ @properties['address_requirements']
532
+ end
533
+
534
+ ##
535
+ # @return [String] The Twilio REST API version to use
536
+ def api_version
537
+ @properties['api_version']
538
+ end
539
+
540
+ ##
541
+ # @return [Boolean] Indicates if the phone number is a beta number
542
+ def beta
543
+ @properties['beta']
544
+ end
545
+
546
+ ##
547
+ # @return [String] Indicate if a phone can receive calls or messages
548
+ def capabilities
549
+ @properties['capabilities']
550
+ end
551
+
552
+ ##
553
+ # @return [Time] The date this resource was created
554
+ def date_created
555
+ @properties['date_created']
556
+ end
557
+
558
+ ##
559
+ # @return [Time] The date this resource was last updated
560
+ def date_updated
561
+ @properties['date_updated']
562
+ end
563
+
564
+ ##
565
+ # @return [String] A human readable description of this resouce
566
+ def friendly_name
567
+ @properties['friendly_name']
568
+ end
569
+
570
+ ##
571
+ # @return [String] The incoming phone number
572
+ def phone_number
573
+ @properties['phone_number']
574
+ end
575
+
576
+ ##
577
+ # @return [String] The origin
578
+ def origin
579
+ @properties['origin']
580
+ end
581
+
582
+ ##
583
+ # @return [String] A string that uniquely identifies this resource
584
+ def sid
585
+ @properties['sid']
586
+ end
587
+
588
+ ##
589
+ # @return [String] Unique string that identifies the application
590
+ def sms_application_sid
591
+ @properties['sms_application_sid']
592
+ end
593
+
594
+ ##
595
+ # @return [String] HTTP method used with sms fallback url
596
+ def sms_fallback_method
597
+ @properties['sms_fallback_method']
598
+ end
599
+
600
+ ##
601
+ # @return [String] URL Twilio will request if an error occurs in executing TwiML
602
+ def sms_fallback_url
603
+ @properties['sms_fallback_url']
604
+ end
605
+
606
+ ##
607
+ # @return [String] HTTP method to use with sms url
608
+ def sms_method
609
+ @properties['sms_method']
610
+ end
611
+
612
+ ##
613
+ # @return [String] URL Twilio will request when receiving an SMS
614
+ def sms_url
615
+ @properties['sms_url']
616
+ end
617
+
618
+ ##
619
+ # @return [String] URL Twilio will use to pass status parameters
620
+ def status_callback
621
+ @properties['status_callback']
622
+ end
623
+
624
+ ##
625
+ # @return [String] HTTP method twilio will use with status callback
626
+ def status_callback_method
627
+ @properties['status_callback_method']
628
+ end
629
+
630
+ ##
631
+ # @return [String] Unique string to identify the trunk
632
+ def trunk_sid
633
+ @properties['trunk_sid']
634
+ end
635
+
636
+ ##
637
+ # @return [String] The URI for this resource
638
+ def uri
639
+ @properties['uri']
640
+ end
641
+
642
+ ##
643
+ # @return [String] The unique sid of the application to handle this number
644
+ def voice_application_sid
645
+ @properties['voice_application_sid']
646
+ end
647
+
648
+ ##
649
+ # @return [Boolean] Look up the caller's caller-ID
650
+ def voice_caller_id_lookup
651
+ @properties['voice_caller_id_lookup']
652
+ end
653
+
654
+ ##
655
+ # @return [String] HTTP method used with fallback_url
656
+ def voice_fallback_method
657
+ @properties['voice_fallback_method']
658
+ end
659
+
660
+ ##
661
+ # @return [String] URL Twilio will request when an error occurs in TwiML
662
+ def voice_fallback_url
663
+ @properties['voice_fallback_url']
664
+ end
665
+
666
+ ##
667
+ # @return [String] HTTP method used with the voice url
668
+ def voice_method
669
+ @properties['voice_method']
670
+ end
671
+
672
+ ##
673
+ # @return [String] URL Twilio will request when receiving a call
674
+ def voice_url
675
+ @properties['voice_url']
676
+ end
677
+
678
+ ##
679
+ # @return [incoming_phone_number.EmergencyStatus] The emergency_status
680
+ def emergency_status
681
+ @properties['emergency_status']
682
+ end
683
+
684
+ ##
685
+ # @return [String] The emergency_address_sid
686
+ def emergency_address_sid
687
+ @properties['emergency_address_sid']
688
+ end
689
+
690
+ ##
691
+ # Update the IncomingPhoneNumberInstance
692
+ # @param [String] api_version Calls to this phone number will start a new TwiML
693
+ # session with this API version.
694
+ # @param [String] friendly_name A human readable descriptive text for this
695
+ # resource, up to 64 characters long. By default, the `FriendlyName` is a nicely
696
+ # formatted version of the phone number.
697
+ # @param [String] sms_application_sid The 34 character sid of the application
698
+ # Twilio should use to handle SMSs sent to this number. If a `SmsApplicationSid`
699
+ # is present, Twilio will ignore all of the SMS urls above and use those set on
700
+ # the application.
701
+ # @param [String] sms_fallback_method The HTTP method Twilio will use when
702
+ # requesting the above URL. Either `GET` or `POST`.
703
+ # @param [String] sms_fallback_url The URL that Twilio will request if an error
704
+ # occurs retrieving or executing the TwiML from `SmsUrl`.
705
+ # @param [String] sms_method The HTTP method Twilio will use when making requests
706
+ # to the `SmsUrl`. Either `GET` or `POST`.
707
+ # @param [String] sms_url The URL Twilio will request when receiving an incoming
708
+ # SMS message to this number.
709
+ # @param [String] status_callback The URL that Twilio will request to pass status
710
+ # parameters (such as call ended) to your application.
711
+ # @param [String] status_callback_method The HTTP method Twilio will use to make
712
+ # requests to the `StatusCallback` URL. Either `GET` or `POST`.
713
+ # @param [String] voice_application_sid The 34 character sid of the application
714
+ # Twilio should use to handle phone calls to this number. If a
715
+ # `VoiceApplicationSid` is present, Twilio will ignore all of the voice urls above
716
+ # and use those set on the application. Setting a `VoiceApplicationSid` will
717
+ # automatically delete your `TrunkSid` and vice versa.
718
+ # @param [Boolean] voice_caller_id_lookup Look up the caller's caller-ID name from
719
+ # the CNAM database ($0.01 per look up). Either `true` or `false`.
720
+ # @param [String] voice_fallback_method The HTTP method Twilio will use when
721
+ # requesting the `VoiceFallbackUrl`. Either `GET` or `POST`.
722
+ # @param [String] voice_fallback_url The URL that Twilio will request if an error
723
+ # occurs retrieving or executing the TwiML requested by `Url`.
724
+ # @param [String] voice_method The HTTP method Twilio will use when requesting the
725
+ # above `Url`. Either `GET` or `POST`.
726
+ # @param [String] voice_url The URL Twilio will request when this phone number
727
+ # receives a call. The VoiceURL will no longer be used if a `VoiceApplicationSid`
728
+ # or a `TrunkSid` is set.
729
+ # @param [incoming_phone_number.EmergencyStatus] emergency_status The
730
+ # emergency_status
731
+ # @param [String] emergency_address_sid The emergency_address_sid
732
+ # @param [String] trunk_sid The 34 character sid of the Trunk Twilio should use to
733
+ # handle phone calls to this number. If a `TrunkSid` is present, Twilio will
734
+ # ignore all of the voice urls and voice applications above and use those set on
735
+ # the Trunk. Setting a `TrunkSid` will automatically delete your
736
+ # `VoiceApplicationSid` and vice versa.
737
+ # @return [IncomingPhoneNumberInstance] Updated IncomingPhoneNumberInstance
738
+ def update(api_version: :unset, friendly_name: :unset, sms_application_sid: :unset, sms_fallback_method: :unset, sms_fallback_url: :unset, sms_method: :unset, sms_url: :unset, status_callback: :unset, status_callback_method: :unset, voice_application_sid: :unset, voice_caller_id_lookup: :unset, voice_fallback_method: :unset, voice_fallback_url: :unset, voice_method: :unset, voice_url: :unset, emergency_status: :unset, emergency_address_sid: :unset, trunk_sid: :unset)
739
+ context.update(
740
+ api_version: api_version,
741
+ friendly_name: friendly_name,
742
+ sms_application_sid: sms_application_sid,
743
+ sms_fallback_method: sms_fallback_method,
744
+ sms_fallback_url: sms_fallback_url,
745
+ sms_method: sms_method,
746
+ sms_url: sms_url,
747
+ status_callback: status_callback,
748
+ status_callback_method: status_callback_method,
749
+ voice_application_sid: voice_application_sid,
750
+ voice_caller_id_lookup: voice_caller_id_lookup,
751
+ voice_fallback_method: voice_fallback_method,
752
+ voice_fallback_url: voice_fallback_url,
753
+ voice_method: voice_method,
754
+ voice_url: voice_url,
755
+ emergency_status: emergency_status,
756
+ emergency_address_sid: emergency_address_sid,
757
+ trunk_sid: trunk_sid,
758
+ )
759
+ end
760
+
761
+ ##
762
+ # Fetch a IncomingPhoneNumberInstance
763
+ # @return [IncomingPhoneNumberInstance] Fetched IncomingPhoneNumberInstance
764
+ def fetch
765
+ context.fetch
766
+ end
767
+
768
+ ##
769
+ # Deletes the IncomingPhoneNumberInstance
770
+ # @return [Boolean] true if delete succeeds, true otherwise
771
+ def delete
772
+ context.delete
773
+ end
774
+
775
+ ##
776
+ # Provide a user friendly representation
777
+ def to_s
778
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
779
+ "<Twilio.Api.V2010.IncomingPhoneNumberInstance #{values}>"
780
+ end
781
+ end
782
+ end
783
+ end
784
+ end
785
+ end
786
+ end