twilio-ruby 3.11.5 → 5.71.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 (673) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +1 -0
  3. data/.github/workflows/pr-lint.yml +15 -0
  4. data/.github/workflows/test-and-deploy.yml +129 -0
  5. data/.gitignore +12 -2
  6. data/.rubocop.yml +59 -0
  7. data/.rubocop_todo.yml +261 -0
  8. data/AUTHORS.md +21 -0
  9. data/CHANGES.md +3045 -0
  10. data/CODE_OF_CONDUCT.md +73 -0
  11. data/CONTRIBUTING.md +161 -0
  12. data/Dockerfile +9 -0
  13. data/Gemfile +2 -2
  14. data/ISSUE_TEMPLATE.md +30 -0
  15. data/LICENSE +13 -11
  16. data/Makefile +26 -5
  17. data/PULL_REQUEST_TEMPLATE.md +31 -0
  18. data/README.md +171 -90
  19. data/Rakefile +8 -10
  20. data/UPGRADE.md +30 -0
  21. data/VERSIONS.md +35 -0
  22. data/examples/examples.rb +62 -49
  23. data/examples/{print-call-log.rb → print_call_log.rb} +7 -7
  24. data/githooks/pre-commit +1 -0
  25. data/lib/rack/twilio_webhook_authentication.rb +72 -0
  26. data/lib/twilio-ruby/framework/request.rb +41 -0
  27. data/lib/twilio-ruby/framework/response.rb +18 -0
  28. data/lib/twilio-ruby/framework/rest/domain.rb +36 -0
  29. data/lib/twilio-ruby/framework/rest/error.rb +51 -0
  30. data/lib/twilio-ruby/framework/rest/helper.rb +11 -0
  31. data/lib/twilio-ruby/framework/rest/obsolete_client.rb +12 -0
  32. data/lib/twilio-ruby/framework/rest/page.rb +103 -0
  33. data/lib/twilio-ruby/framework/rest/resource.rb +23 -0
  34. data/lib/twilio-ruby/framework/rest/version.rb +153 -0
  35. data/lib/twilio-ruby/framework/serialize.rb +81 -0
  36. data/lib/twilio-ruby/framework/twilio_response.rb +19 -0
  37. data/lib/twilio-ruby/framework/values.rb +9 -0
  38. data/lib/twilio-ruby/http/http_client.rb +79 -0
  39. data/lib/twilio-ruby/http.rb +5 -0
  40. data/lib/twilio-ruby/jwt/access_token.rb +285 -0
  41. data/lib/twilio-ruby/jwt/client_capability.rb +102 -0
  42. data/lib/twilio-ruby/jwt/jwt.rb +59 -0
  43. data/lib/twilio-ruby/jwt/task_router.rb +172 -0
  44. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +186 -0
  45. data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +339 -0
  46. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +339 -0
  47. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +122 -0
  48. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +200 -0
  49. data/lib/twilio-ruby/rest/accounts/v1.rb +49 -0
  50. data/lib/twilio-ruby/rest/accounts.rb +50 -9
  51. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +372 -0
  52. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +521 -0
  53. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +593 -0
  54. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +327 -0
  55. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +500 -0
  56. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +500 -0
  57. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +500 -0
  58. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +500 -0
  59. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +500 -0
  60. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +500 -0
  61. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +500 -0
  62. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +464 -0
  63. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +125 -0
  64. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +201 -0
  65. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +301 -0
  66. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +314 -0
  67. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +428 -0
  68. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +375 -0
  69. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +522 -0
  70. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +674 -0
  71. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +674 -0
  72. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +998 -0
  73. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +728 -0
  74. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +469 -0
  75. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +500 -0
  76. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +414 -0
  77. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +367 -0
  78. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +431 -0
  79. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +561 -0
  80. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +560 -0
  81. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +560 -0
  82. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +910 -0
  83. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +309 -0
  84. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +173 -0
  85. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +361 -0
  86. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +632 -0
  87. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +145 -0
  88. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +145 -0
  89. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +406 -0
  90. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +365 -0
  91. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +349 -0
  92. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +397 -0
  93. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +387 -0
  94. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +398 -0
  95. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +383 -0
  96. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +520 -0
  97. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +415 -0
  98. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +313 -0
  99. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +387 -0
  100. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +386 -0
  101. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +348 -0
  102. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping.rb +348 -0
  103. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +163 -0
  104. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping.rb +348 -0
  105. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +137 -0
  106. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +135 -0
  107. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +356 -0
  108. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +355 -0
  109. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +660 -0
  110. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +432 -0
  111. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +387 -0
  112. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +157 -0
  113. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +161 -0
  114. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +357 -0
  115. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +351 -0
  116. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +351 -0
  117. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +351 -0
  118. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +351 -0
  119. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +351 -0
  120. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +351 -0
  121. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +351 -0
  122. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +351 -0
  123. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +423 -0
  124. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +495 -0
  125. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +120 -0
  126. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +168 -0
  127. data/lib/twilio-ruby/rest/api/v2010/account.rb +953 -0
  128. data/lib/twilio-ruby/rest/api/v2010.rb +154 -0
  129. data/lib/twilio-ruby/rest/api.rb +247 -0
  130. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +220 -0
  131. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +214 -0
  132. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +399 -0
  133. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +418 -0
  134. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +392 -0
  135. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +469 -0
  136. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +218 -0
  137. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +386 -0
  138. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +456 -0
  139. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +255 -0
  140. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +237 -0
  141. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +507 -0
  142. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +420 -0
  143. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +650 -0
  144. data/lib/twilio-ruby/rest/autopilot/v1/restore_assistant.rb +194 -0
  145. data/lib/twilio-ruby/rest/autopilot/v1.rb +52 -0
  146. data/lib/twilio-ruby/rest/autopilot.rb +53 -0
  147. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +286 -0
  148. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +286 -0
  149. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +255 -0
  150. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +243 -0
  151. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +226 -0
  152. data/lib/twilio-ruby/rest/bulkexports/v1.rb +62 -0
  153. data/lib/twilio-ruby/rest/bulkexports.rb +56 -0
  154. data/lib/twilio-ruby/rest/chat/v1/credential.rb +413 -0
  155. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +402 -0
  156. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +451 -0
  157. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +448 -0
  158. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +522 -0
  159. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +374 -0
  160. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +246 -0
  161. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +447 -0
  162. data/lib/twilio-ruby/rest/chat/v1/service.rb +904 -0
  163. data/lib/twilio-ruby/rest/chat/v1.rb +62 -0
  164. data/lib/twilio-ruby/rest/chat/v2/credential.rb +411 -0
  165. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +377 -0
  166. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +397 -0
  167. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +538 -0
  168. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +544 -0
  169. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +478 -0
  170. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +612 -0
  171. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +376 -0
  172. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +392 -0
  173. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +430 -0
  174. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +498 -0
  175. data/lib/twilio-ruby/rest/chat/v2/service.rb +788 -0
  176. data/lib/twilio-ruby/rest/chat/v2.rb +60 -0
  177. data/lib/twilio-ruby/rest/chat/v3/channel.rb +275 -0
  178. data/lib/twilio-ruby/rest/chat/v3.rb +48 -0
  179. data/lib/twilio-ruby/rest/chat.rb +79 -0
  180. data/lib/twilio-ruby/rest/client.rb +572 -214
  181. data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +454 -0
  182. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +254 -0
  183. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +260 -0
  184. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +355 -0
  185. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +502 -0
  186. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +502 -0
  187. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +410 -0
  188. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +562 -0
  189. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +419 -0
  190. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +312 -0
  191. data/lib/twilio-ruby/rest/conversations/v1/role.rb +366 -0
  192. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +380 -0
  193. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +323 -0
  194. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +269 -0
  195. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +286 -0
  196. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +386 -0
  197. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +548 -0
  198. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +541 -0
  199. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +449 -0
  200. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +595 -0
  201. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +324 -0
  202. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +387 -0
  203. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +466 -0
  204. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +481 -0
  205. data/lib/twilio-ruby/rest/conversations/v1/service.rb +457 -0
  206. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +442 -0
  207. data/lib/twilio-ruby/rest/conversations/v1/user.rb +451 -0
  208. data/lib/twilio-ruby/rest/conversations/v1.rb +143 -0
  209. data/lib/twilio-ruby/rest/conversations.rb +104 -0
  210. data/lib/twilio-ruby/rest/events/v1/event_type.rb +298 -0
  211. data/lib/twilio-ruby/rest/events/v1/schema/version.rb +290 -0
  212. data/lib/twilio-ruby/rest/events/v1/schema.rb +226 -0
  213. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +115 -0
  214. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +119 -0
  215. data/lib/twilio-ruby/rest/events/v1/sink.rb +418 -0
  216. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +346 -0
  217. data/lib/twilio-ruby/rest/events/v1/subscription.rb +397 -0
  218. data/lib/twilio-ruby/rest/events/v1.rb +94 -0
  219. data/lib/twilio-ruby/rest/events.rb +72 -0
  220. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +340 -0
  221. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +490 -0
  222. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +580 -0
  223. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +236 -0
  224. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +330 -0
  225. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +405 -0
  226. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +233 -0
  227. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +341 -0
  228. data/lib/twilio-ruby/rest/flex_api/v1.rb +99 -0
  229. data/lib/twilio-ruby/rest/flex_api.rb +80 -0
  230. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +258 -0
  231. data/lib/twilio-ruby/rest/frontline_api/v1.rb +45 -0
  232. data/lib/twilio-ruby/rest/frontline_api.rb +47 -0
  233. data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +322 -0
  234. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +262 -0
  235. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +252 -0
  236. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +314 -0
  237. data/lib/twilio-ruby/rest/insights/v1/call.rb +244 -0
  238. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +434 -0
  239. data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +474 -0
  240. data/lib/twilio-ruby/rest/insights/v1/conference.rb +512 -0
  241. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +378 -0
  242. data/lib/twilio-ruby/rest/insights/v1/room.rb +499 -0
  243. data/lib/twilio-ruby/rest/insights/v1/setting.rb +215 -0
  244. data/lib/twilio-ruby/rest/insights/v1.rb +90 -0
  245. data/lib/twilio-ruby/rest/insights.rb +74 -0
  246. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +374 -0
  247. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +370 -0
  248. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +408 -0
  249. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +420 -0
  250. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +495 -0
  251. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +354 -0
  252. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +240 -0
  253. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +425 -0
  254. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +789 -0
  255. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +60 -0
  256. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +374 -0
  257. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +350 -0
  258. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +370 -0
  259. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +462 -0
  260. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +490 -0
  261. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +422 -0
  262. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +562 -0
  263. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +354 -0
  264. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +362 -0
  265. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +395 -0
  266. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +474 -0
  267. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +699 -0
  268. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +60 -0
  269. data/lib/twilio-ruby/rest/ip_messaging.rb +61 -0
  270. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +247 -0
  271. data/lib/twilio-ruby/rest/lookups/v1.rb +46 -0
  272. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +261 -0
  273. data/lib/twilio-ruby/rest/lookups/v2.rb +45 -0
  274. data/lib/twilio-ruby/rest/lookups.rb +55 -0
  275. data/lib/twilio-ruby/rest/media/v1/media_processor.rb +397 -0
  276. data/lib/twilio-ruby/rest/media/v1/media_recording.rb +399 -0
  277. data/lib/twilio-ruby/rest/media/v1/player_streamer/playback_grant.rb +221 -0
  278. data/lib/twilio-ruby/rest/media/v1/player_streamer.rb +403 -0
  279. data/lib/twilio-ruby/rest/media/v1.rb +76 -0
  280. data/lib/twilio-ruby/rest/media.rb +58 -7
  281. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_vetting.rb +353 -0
  282. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +453 -0
  283. data/lib/twilio-ruby/rest/messaging/v1/deactivation.rb +164 -0
  284. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +150 -0
  285. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +342 -0
  286. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +348 -0
  287. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +343 -0
  288. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +433 -0
  289. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +129 -0
  290. data/lib/twilio-ruby/rest/messaging/v1/service.rb +773 -0
  291. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +111 -0
  292. data/lib/twilio-ruby/rest/messaging/v1.rb +81 -0
  293. data/lib/twilio-ruby/rest/messaging.rb +73 -0
  294. data/lib/twilio-ruby/rest/microvisor/v1/app.rb +305 -0
  295. data/lib/twilio-ruby/rest/microvisor/v1/device.rb +332 -0
  296. data/lib/twilio-ruby/rest/microvisor/v1.rb +60 -0
  297. data/lib/twilio-ruby/rest/microvisor.rb +54 -0
  298. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +405 -0
  299. data/lib/twilio-ruby/rest/monitor/v1/event.rb +400 -0
  300. data/lib/twilio-ruby/rest/monitor/v1.rb +60 -0
  301. data/lib/twilio-ruby/rest/monitor.rb +56 -0
  302. data/lib/twilio-ruby/rest/notify/v1/credential.rb +418 -0
  303. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +459 -0
  304. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +369 -0
  305. data/lib/twilio-ruby/rest/notify/v1/service.rb +632 -0
  306. data/lib/twilio-ruby/rest/notify/v1.rb +62 -0
  307. data/lib/twilio-ruby/rest/notify.rb +56 -0
  308. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +268 -0
  309. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +309 -0
  310. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +320 -0
  311. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +188 -0
  312. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +614 -0
  313. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +358 -0
  314. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +273 -0
  315. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +314 -0
  316. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +378 -0
  317. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +273 -0
  318. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +189 -0
  319. data/lib/twilio-ruby/rest/numbers/v2.rb +35 -0
  320. data/lib/twilio-ruby/rest/numbers.rb +44 -0
  321. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/certificate.rb +382 -0
  322. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/deployment.rb +365 -0
  323. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/device.rb +425 -0
  324. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/key.rb +376 -0
  325. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet.rb +469 -0
  326. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +45 -0
  327. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +403 -0
  328. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +456 -0
  329. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +635 -0
  330. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +62 -0
  331. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +305 -0
  332. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +319 -0
  333. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +337 -0
  334. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +408 -0
  335. data/lib/twilio-ruby/rest/preview/marketplace.rb +60 -0
  336. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +385 -0
  337. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +406 -0
  338. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +418 -0
  339. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +385 -0
  340. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +405 -0
  341. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +415 -0
  342. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +385 -0
  343. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +405 -0
  344. data/lib/twilio-ruby/rest/preview/sync/service.rb +462 -0
  345. data/lib/twilio-ruby/rest/preview/sync.rb +44 -0
  346. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel/channel.rb +165 -0
  347. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel.rb +225 -0
  348. data/lib/twilio-ruby/rest/preview/trusted_comms/brands_information.rb +195 -0
  349. data/lib/twilio-ruby/rest/preview/trusted_comms/cps.rb +186 -0
  350. data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +277 -0
  351. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +65 -0
  352. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_fallback_actions.rb +212 -0
  353. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_initiation_actions.rb +212 -0
  354. data/lib/twilio-ruby/rest/preview/understand/assistant/dialogue.rb +206 -0
  355. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type/field_value.rb +386 -0
  356. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type.rb +407 -0
  357. data/lib/twilio-ruby/rest/preview/understand/assistant/model_build.rb +380 -0
  358. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +437 -0
  359. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +212 -0
  360. data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +373 -0
  361. data/lib/twilio-ruby/rest/preview/understand/assistant/task/sample.rb +428 -0
  362. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_actions.rb +241 -0
  363. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +225 -0
  364. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +495 -0
  365. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +629 -0
  366. data/lib/twilio-ruby/rest/preview/understand.rb +45 -0
  367. data/lib/twilio-ruby/rest/preview/wireless/command.rb +374 -0
  368. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +408 -0
  369. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +233 -0
  370. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +533 -0
  371. data/lib/twilio-ruby/rest/preview/wireless.rb +76 -0
  372. data/lib/twilio-ruby/rest/preview.rb +193 -0
  373. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +282 -0
  374. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +127 -0
  375. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +275 -0
  376. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +127 -0
  377. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +282 -0
  378. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +204 -0
  379. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +143 -0
  380. data/lib/twilio-ruby/rest/pricing/v1.rb +49 -0
  381. data/lib/twilio-ruby/rest/pricing/v2/country.rb +280 -0
  382. data/lib/twilio-ruby/rest/pricing/v2/number.rb +225 -0
  383. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +282 -0
  384. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +227 -0
  385. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +146 -0
  386. data/lib/twilio-ruby/rest/pricing/v2.rb +72 -0
  387. data/lib/twilio-ruby/rest/pricing.rb +82 -0
  388. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +410 -0
  389. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +429 -0
  390. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +458 -0
  391. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +468 -0
  392. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +554 -0
  393. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +377 -0
  394. data/lib/twilio-ruby/rest/proxy/v1/service.rb +606 -0
  395. data/lib/twilio-ruby/rest/proxy/v1.rb +45 -0
  396. data/lib/twilio-ruby/rest/proxy.rb +47 -0
  397. data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +235 -0
  398. data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +231 -0
  399. data/lib/twilio-ruby/rest/routes/v2/trunk.rb +235 -0
  400. data/lib/twilio-ruby/rest/routes/v2.rb +76 -0
  401. data/lib/twilio-ruby/rest/routes.rb +62 -0
  402. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +334 -0
  403. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +387 -0
  404. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +219 -0
  405. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +391 -0
  406. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +349 -0
  407. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +394 -0
  408. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +407 -0
  409. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +454 -0
  410. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +241 -0
  411. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +364 -0
  412. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +387 -0
  413. data/lib/twilio-ruby/rest/serverless/v1/service.rb +503 -0
  414. data/lib/twilio-ruby/rest/serverless/v1.rb +44 -0
  415. data/lib/twilio-ruby/rest/serverless.rb +47 -0
  416. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +210 -0
  417. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +225 -0
  418. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +366 -0
  419. data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +401 -0
  420. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +211 -0
  421. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +228 -0
  422. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +372 -0
  423. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +456 -0
  424. data/lib/twilio-ruby/rest/studio/v1/flow.rb +365 -0
  425. data/lib/twilio-ruby/rest/studio/v1.rb +44 -0
  426. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +211 -0
  427. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +228 -0
  428. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +372 -0
  429. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +449 -0
  430. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +327 -0
  431. data/lib/twilio-ruby/rest/studio/v2/flow/test_user.rb +199 -0
  432. data/lib/twilio-ruby/rest/studio/v2/flow.rb +482 -0
  433. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +117 -0
  434. data/lib/twilio-ruby/rest/studio/v2.rb +51 -0
  435. data/lib/twilio-ruby/rest/studio.rb +60 -0
  436. data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +372 -0
  437. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +493 -0
  438. data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +416 -0
  439. data/lib/twilio-ruby/rest/supersim/v1/network.rb +307 -0
  440. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +339 -0
  441. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +361 -0
  442. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +231 -0
  443. data/lib/twilio-ruby/rest/supersim/v1/sim/sim_ip_address.rb +195 -0
  444. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +463 -0
  445. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +371 -0
  446. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +352 -0
  447. data/lib/twilio-ruby/rest/supersim/v1.rb +147 -0
  448. data/lib/twilio-ruby/rest/supersim.rb +106 -0
  449. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +382 -0
  450. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +430 -0
  451. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +501 -0
  452. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +381 -0
  453. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +452 -0
  454. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +506 -0
  455. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +379 -0
  456. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +451 -0
  457. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +139 -0
  458. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +407 -0
  459. data/lib/twilio-ruby/rest/sync/v1/service.rb +577 -0
  460. data/lib/twilio-ruby/rest/sync/v1.rb +44 -0
  461. data/lib/twilio-ruby/rest/sync.rb +47 -0
  462. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +402 -0
  463. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +471 -0
  464. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +747 -0
  465. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +668 -0
  466. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +389 -0
  467. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +381 -0
  468. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +287 -0
  469. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +265 -0
  470. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +285 -0
  471. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +573 -0
  472. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +743 -0
  473. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +399 -0
  474. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +250 -0
  475. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +277 -0
  476. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +204 -0
  477. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +245 -0
  478. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +638 -0
  479. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +387 -0
  480. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +252 -0
  481. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +273 -0
  482. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +517 -0
  483. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +363 -0
  484. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +234 -0
  485. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +241 -0
  486. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +740 -0
  487. data/lib/twilio-ruby/rest/taskrouter/v1.rb +44 -0
  488. data/lib/twilio-ruby/rest/taskrouter.rb +47 -0
  489. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +327 -0
  490. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +324 -0
  491. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +426 -0
  492. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +458 -0
  493. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +198 -0
  494. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +640 -0
  495. data/lib/twilio-ruby/rest/trunking/v1.rb +45 -0
  496. data/lib/twilio-ruby/rest/trunking.rb +47 -0
  497. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +359 -0
  498. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +330 -0
  499. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +328 -0
  500. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +523 -0
  501. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +356 -0
  502. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +271 -0
  503. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +262 -0
  504. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +369 -0
  505. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +271 -0
  506. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +359 -0
  507. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +330 -0
  508. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +328 -0
  509. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +523 -0
  510. data/lib/twilio-ruby/rest/trusthub/v1.rb +146 -0
  511. data/lib/twilio-ruby/rest/trusthub.rb +100 -0
  512. data/lib/twilio-ruby/rest/verify/v2/form.rb +191 -0
  513. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +269 -0
  514. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +205 -0
  515. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +551 -0
  516. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +472 -0
  517. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +309 -0
  518. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +429 -0
  519. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +370 -0
  520. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +399 -0
  521. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +391 -0
  522. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +373 -0
  523. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +212 -0
  524. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +427 -0
  525. data/lib/twilio-ruby/rest/verify/v2/service.rb +790 -0
  526. data/lib/twilio-ruby/rest/verify/v2/template.rb +206 -0
  527. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +397 -0
  528. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +234 -0
  529. data/lib/twilio-ruby/rest/verify/v2.rb +92 -0
  530. data/lib/twilio-ruby/rest/verify.rb +77 -0
  531. data/lib/twilio-ruby/rest/video/v1/composition.rb +517 -0
  532. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +657 -0
  533. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +269 -0
  534. data/lib/twilio-ruby/rest/video/v1/recording.rb +436 -0
  535. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +269 -0
  536. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +413 -0
  537. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +335 -0
  538. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +175 -0
  539. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb +340 -0
  540. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +483 -0
  541. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +144 -0
  542. data/lib/twilio-ruby/rest/video/v1/room.rb +612 -0
  543. data/lib/twilio-ruby/rest/video/v1.rb +106 -0
  544. data/lib/twilio-ruby/rest/video.rb +86 -0
  545. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +184 -0
  546. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +496 -0
  547. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +441 -0
  548. data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +362 -0
  549. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +128 -0
  550. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +190 -0
  551. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +404 -0
  552. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +197 -0
  553. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +129 -0
  554. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +349 -0
  555. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +329 -0
  556. data/lib/twilio-ruby/rest/voice/v1.rb +124 -0
  557. data/lib/twilio-ruby/rest/voice.rb +88 -0
  558. data/lib/twilio-ruby/rest/wireless/v1/command.rb +416 -0
  559. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +446 -0
  560. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +291 -0
  561. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +250 -0
  562. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +657 -0
  563. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +229 -0
  564. data/lib/twilio-ruby/rest/wireless/v1.rb +83 -0
  565. data/lib/twilio-ruby/rest/wireless.rb +71 -0
  566. data/lib/twilio-ruby/rest.rb +13 -0
  567. data/lib/twilio-ruby/security/request_validator.rb +150 -0
  568. data/lib/twilio-ruby/twiml/fax_response.rb +45 -0
  569. data/lib/twilio-ruby/twiml/messaging_response.rb +107 -0
  570. data/lib/twilio-ruby/twiml/twiml.rb +126 -0
  571. data/lib/twilio-ruby/twiml/voice_response.rb +1849 -0
  572. data/lib/twilio-ruby/util/configuration.rb +33 -0
  573. data/lib/twilio-ruby/util.rb +5 -1
  574. data/lib/twilio-ruby/version.rb +1 -1
  575. data/lib/twilio-ruby.rb +39 -50
  576. data/sonar-project.properties +13 -0
  577. data/twilio-ruby.gemspec +34 -26
  578. metadata +674 -141
  579. data/.travis.yml +0 -13
  580. data/CHANGES +0 -47
  581. data/docs/Makefile +0 -130
  582. data/docs/_themes/LICENSE +0 -45
  583. data/docs/_themes/README.rst +0 -25
  584. data/docs/_themes/flask_theme_support.py +0 -86
  585. data/docs/_themes/kr/layout.html +0 -32
  586. data/docs/_themes/kr/relations.html +0 -19
  587. data/docs/_themes/kr/static/flasky.css_t +0 -469
  588. data/docs/_themes/kr/static/small_flask.css +0 -70
  589. data/docs/_themes/kr/theme.conf +0 -7
  590. data/docs/_themes/kr_small/layout.html +0 -22
  591. data/docs/_themes/kr_small/static/flasky.css_t +0 -287
  592. data/docs/_themes/kr_small/theme.conf +0 -10
  593. data/docs/changelog.rst +0 -1
  594. data/docs/conf.py +0 -266
  595. data/docs/faq.rst +0 -42
  596. data/docs/getting-started.rst +0 -91
  597. data/docs/index.rst +0 -109
  598. data/docs/make.bat +0 -170
  599. data/docs/src/pip-delete-this-directory.txt +0 -5
  600. data/docs/usage/accounts.rst +0 -89
  601. data/docs/usage/applications.rst +0 -108
  602. data/docs/usage/basics.rst +0 -102
  603. data/docs/usage/caller-ids.rst +0 -45
  604. data/docs/usage/conferences.rst +0 -108
  605. data/docs/usage/errors.rst +0 -29
  606. data/docs/usage/messages.rst +0 -109
  607. data/docs/usage/notifications.rst +0 -70
  608. data/docs/usage/phone-calls.rst +0 -166
  609. data/docs/usage/phone-numbers.rst +0 -174
  610. data/docs/usage/queues.rst +0 -112
  611. data/docs/usage/recordings.rst +0 -96
  612. data/docs/usage/sip.rst +0 -103
  613. data/docs/usage/token-generation.rst +0 -81
  614. data/docs/usage/transcriptions.rst +0 -31
  615. data/docs/usage/twiml.rst +0 -69
  616. data/docs/usage/validation.rst +0 -71
  617. data/lib/twilio-ruby/rest/applications.rb +0 -6
  618. data/lib/twilio-ruby/rest/authorized_connect_apps.rb +0 -6
  619. data/lib/twilio-ruby/rest/available_phone_numbers/country.rb +0 -10
  620. data/lib/twilio-ruby/rest/available_phone_numbers/local.rb +0 -11
  621. data/lib/twilio-ruby/rest/available_phone_numbers/mobile.rb +0 -11
  622. data/lib/twilio-ruby/rest/available_phone_numbers/toll_free.rb +0 -11
  623. data/lib/twilio-ruby/rest/available_phone_numbers.rb +0 -13
  624. data/lib/twilio-ruby/rest/calls.rb +0 -28
  625. data/lib/twilio-ruby/rest/conferences/participants.rb +0 -23
  626. data/lib/twilio-ruby/rest/conferences.rb +0 -12
  627. data/lib/twilio-ruby/rest/connect_apps.rb +0 -6
  628. data/lib/twilio-ruby/rest/errors.rb +0 -14
  629. data/lib/twilio-ruby/rest/incoming_phone_numbers/local.rb +0 -13
  630. data/lib/twilio-ruby/rest/incoming_phone_numbers/mobile.rb +0 -13
  631. data/lib/twilio-ruby/rest/incoming_phone_numbers/toll_free.rb +0 -13
  632. data/lib/twilio-ruby/rest/incoming_phone_numbers.rb +0 -17
  633. data/lib/twilio-ruby/rest/instance_resource.rb +0 -101
  634. data/lib/twilio-ruby/rest/list_resource.rb +0 -110
  635. data/lib/twilio-ruby/rest/messages.rb +0 -17
  636. data/lib/twilio-ruby/rest/notifications.rb +0 -6
  637. data/lib/twilio-ruby/rest/outgoing_caller_ids.rb +0 -25
  638. data/lib/twilio-ruby/rest/queues/members.rb +0 -29
  639. data/lib/twilio-ruby/rest/queues.rb +0 -12
  640. data/lib/twilio-ruby/rest/recordings.rb +0 -35
  641. data/lib/twilio-ruby/rest/sandbox.rb +0 -5
  642. data/lib/twilio-ruby/rest/sip/credential_lists/credentials.rb +0 -6
  643. data/lib/twilio-ruby/rest/sip/credential_lists.rb +0 -11
  644. data/lib/twilio-ruby/rest/sip/domains/credential_list_mappings.rb +0 -6
  645. data/lib/twilio-ruby/rest/sip/domains/ip_access_control_list_mappings.rb +0 -6
  646. data/lib/twilio-ruby/rest/sip/domains.rb +0 -12
  647. data/lib/twilio-ruby/rest/sip/ip_access_control_lists/ip_addresses.rb +0 -6
  648. data/lib/twilio-ruby/rest/sip/ip_access_control_lists.rb +0 -11
  649. data/lib/twilio-ruby/rest/sip.rb +0 -12
  650. data/lib/twilio-ruby/rest/sms/messages.rb +0 -15
  651. data/lib/twilio-ruby/rest/sms/short_codes.rb +0 -8
  652. data/lib/twilio-ruby/rest/sms.rb +0 -11
  653. data/lib/twilio-ruby/rest/transcriptions.rb +0 -6
  654. data/lib/twilio-ruby/rest/usage/records.rb +0 -21
  655. data/lib/twilio-ruby/rest/usage/triggers.rb +0 -12
  656. data/lib/twilio-ruby/rest/usage.rb +0 -10
  657. data/lib/twilio-ruby/rest/utils.rb +0 -25
  658. data/lib/twilio-ruby/twiml/response.rb +0 -15
  659. data/lib/twilio-ruby/util/capability.rb +0 -61
  660. data/lib/twilio-ruby/util/request_validator.rb +0 -22
  661. data/spec/rest/account_spec.rb +0 -58
  662. data/spec/rest/call_spec.rb +0 -18
  663. data/spec/rest/client_spec.rb +0 -100
  664. data/spec/rest/conference_spec.rb +0 -9
  665. data/spec/rest/instance_resource_spec.rb +0 -15
  666. data/spec/rest/message_spec.rb +0 -12
  667. data/spec/rest/numbers_spec.rb +0 -46
  668. data/spec/rest/queue_spec.rb +0 -9
  669. data/spec/rest/recording_spec.rb +0 -9
  670. data/spec/spec_helper.rb +0 -6
  671. data/spec/util/capability_spec.rb +0 -137
  672. data/spec/util/request_validator_spec.rb +0 -65
  673. data/spec/util/url_encode_spec.rb +0 -12
@@ -1,235 +1,593 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+ #
7
+ # frozen_string_literal: true
8
+
1
9
  module Twilio
2
10
  module REST
3
11
  ##
4
- # The Twilio::REST::Client class caches authentication parameters and
5
- # exposes methods to make HTTP requests to Twilio's REST API. However, you
6
- # should never really need to call these methods yourself since you can
7
- # work with the more pleasant wrapper objects like Twilio::REST::Call.
8
- #
9
- # Instantiate a client like so:
10
- #
11
- # @client = Twilio::REST::Client.new account_sid, auth_token
12
- #
13
- # There are a few options you can use to configure the way your client will
14
- # communicate with Twilio. See #new for a list and descriptions.
15
- #
16
- # Once you have a client object you can use it to do fun things. Every
17
- # client object exposes two wrapper objects which you can use as entry
18
- # points into Twilio: +account+ and +accounts+.
19
- #
20
- # ==== @client.account
21
- #
22
- # Most of the time you'll want to start with the +account+ attribute. This
23
- # object is an instance of Twilio::REST::Account that wraps the account
24
- # referenced by the +account_sid+ you used when instantiating the client.
25
- #
26
- # An instance of Twilio::REST::Account exposes objects wrapping all of the
27
- # account-level Twilio resources as properties. So
28
- #
29
- # @client.account.calls
30
- #
31
- # represents an account's call list.
32
- #
33
- # ==== @client.accounts
34
- #
35
- # If you are doing anything related to subaccounts you'll want to start
36
- # here. This object is an instance of Twilio::REST::Accounts that wraps
37
- # the list of accounts belonging to the master account referenced by
38
- # the +account_sid+ used to instantiate the client.
39
- #
40
- # This class inherits from Twilio::REST::ListResource, so you can use
41
- # methods like ListResource#list to return a (possibly filtered) list of
42
- # accounts and ListResource#create to create a new account. Use
43
- # ListResource#get to grab a particular account once you know its sid.
12
+ # A client for accessing the Twilio API.
44
13
  class Client
45
- include Twilio::Util
46
- include Twilio::REST::Utils
47
-
48
- API_VERSION = '2010-04-01'
49
-
50
- # 1.8.7 doesn't have the RUBY_ENGINE constant.
51
- engine = !defined?(RUBY_ENGINE) || RUBY_ENGINE == 'ruby'
52
-
53
- HTTP_HEADERS = {
54
- 'Accept' => 'application/json',
55
- 'Accept-Charset' => 'utf-8',
56
- 'User-Agent' => "twilio-ruby/#{Twilio::VERSION} (#{engine}/#{RUBY_PLATFORM} #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL})",
57
- }
58
-
59
- DEFAULTS = {
60
- :host => 'api.twilio.com',
61
- :port => 443,
62
- :use_ssl => true,
63
- :ssl_verify_peer => true,
64
- :ssl_ca_file => File.dirname(__FILE__) + '/../../../conf/cacert.pem',
65
- :timeout => 30,
66
- :proxy_addr => nil,
67
- :proxy_port => nil,
68
- :proxy_user => nil,
69
- :proxy_pass => nil,
70
- :retry_limit => 1,
71
- }
72
-
73
- attr_reader :account_sid, :account, :accounts, :last_request,
74
- :last_response
75
-
76
- ##
77
- # Instantiate a new HTTP client to talk to Twilio. The parameters
78
- # +account_sid+ and +auth_token+ are required and used to generate the
79
- # HTTP basic auth header in each request. The +options+ parameter is a
80
- # hash of connection configuration options. the following keys are
81
- # supported:
82
- #
83
- # === <tt>:host => 'api.twilio.com'</tt>
84
- #
85
- # The domain to which you'd like the client to make HTTP requests. Useful
86
- # for testing. Defaults to 'api.twilio.com'.
87
- #
88
- # === <tt>:port => 443</tt>
89
- #
90
- # The port on which to connect to the above domain. Defaults to 443 and
91
- # should be left that way except in testing environments.
92
- #
93
- # === <tt>:use_ssl => true</tt>
94
- #
95
- # Declare whether ssl should be used for connections to the above domain.
96
- # Defaults to true and should be left alone except when testing.
97
- #
98
- # === <tt>:ssl_verify_peer => true</tt>
99
- #
100
- # Declare whether to verify the host's ssl cert when setting up the
101
- # connection to the above domain. Defaults to true, but can be turned off
102
- # to avoid ssl certificate verification failures in environments without
103
- # the necessary ca certificates.
104
- #
105
- # === <tt>:ssl_ca_file => '/path/to/ca/file'</tt>
106
- #
107
- # Specify the path to the certificate authority bundle you'd like to use
108
- # to verify Twilio's SSL certificate on each request. If not specified, a
109
- # certificate bundle extraced from Firefox is packaged with the gem and
110
- # used by default.
111
- #
112
- # === <tt>:timeout => 30</tt>
113
- #
114
- # Set the time in seconds to wait before timing out the HTTP request.
115
- # Defaults to 30 seconds. If you aren't fetching giant pages of call or
116
- # SMS logs you can safely decrease this to something like 3 seconds or
117
- # lower. In paricular if you are sending SMS you can set this to 1 second
118
- # or less and swallow the exception if you don't care about the response.
119
- #
120
- # === <tt>:proxy_addr => 'proxy.host.domain'</tt>
121
- #
122
- # The domain of a proxy through which you'd like the client to make HTTP
123
- # requests. Defaults to nil.
124
- #
125
- # === <tt>:proxy_port => 3128</tt>
126
- #
127
- # The port on which to connect to the above proxy. Defaults to nil.
128
- #
129
- # === <tt>:proxy_user => 'username'</tt>
130
- #
131
- # The user name to use for authentication with the proxy. Defaults to nil.
132
- #
133
- # === <tt>:proxy_pass => 'password'</tt>
134
- #
135
- # The password to use for authentication with the proxy. Defaults to nil.
136
- #
137
- # === <tt>:retry_limit => 1</tt>
138
- #
139
- # The number of times to retry a request that has failed before throwing
140
- # an exception. Defaults to one.
141
- def initialize(account_sid, auth_token, options={})
142
- @account_sid, @auth_token = account_sid.strip, auth_token.strip
143
- @config = DEFAULTS.merge! options
144
- set_up_connection
145
- set_up_subresources
146
- end
147
-
148
- def inspect # :nodoc:
149
- "<Twilio::REST::Client @account_sid=#{@account_sid}>"
150
- end
151
-
152
- ##
153
- # Define #get, #put, #post and #delete helper methods for sending HTTP
154
- # requests to Twilio. You shouldn't need to use these methods directly,
155
- # but they can be useful for debugging. Each method returns a hash
156
- # obtained from parsing the JSON object in the response body.
157
- [:get, :put, :post, :delete].each do |method|
158
- method_class = Net::HTTP.const_get method.to_s.capitalize
159
- define_method method do |path, *args|
160
- params = twilify args[0]; params = {} if params.empty?
161
- unless args[1] # build the full path unless already given
162
- path = "#{path}.json"
163
- path << "?#{url_encode(params)}" if method == :get && !params.empty?
14
+ @@default_region = 'us1'
15
+
16
+ attr_accessor :http_client, :username, :password, :account_sid, :auth_token, :region, :edge, :logger, :user_agent_extensions
17
+
18
+ ##
19
+ # Initializes the Twilio Client
20
+ def initialize(username=nil, password=nil, account_sid=nil, region=nil, http_client=nil, logger=nil, user_agent_extensions=nil)
21
+ @username = username || Twilio.account_sid
22
+ @password = password || Twilio.auth_token
23
+ @region = region || Twilio.region
24
+ @edge = Twilio.edge
25
+ @account_sid = account_sid || @username
26
+ @auth_token = @password
27
+ @auth = [@username, @password]
28
+ @http_client = http_client || Twilio.http_client || Twilio::HTTP::Client.new
29
+ @logger = logger || Twilio.logger
30
+ @user_agent_extensions = user_agent_extensions || []
31
+
32
+ # Domains
33
+ @accounts = nil
34
+ @api = nil
35
+ @autopilot = nil
36
+ @chat = nil
37
+ @conversations = nil
38
+ @events = nil
39
+ @flex_api = nil
40
+ @frontline_api = nil
41
+ @insights = nil
42
+ @ip_messaging = nil
43
+ @lookups = nil
44
+ @media = nil
45
+ @messaging = nil
46
+ @monitor = nil
47
+ @notify = nil
48
+ @numbers = nil
49
+ @preview = nil
50
+ @pricing = nil
51
+ @proxy = nil
52
+ @routes = nil
53
+ @serverless = nil
54
+ @studio = nil
55
+ @sync = nil
56
+ @taskrouter = nil
57
+ @trunking = nil
58
+ @trusthub = nil
59
+ @verify = nil
60
+ @video = nil
61
+ @voice = nil
62
+ @wireless = nil
63
+ @supersim = nil
64
+ @bulkexports = nil
65
+ @microvisor = nil
66
+ end
67
+
68
+ ##
69
+ # Makes a request to the Twilio API using the configured http client
70
+ # Authentication information is automatically added if none is provided
71
+ def request(host, port, method, uri, params={}, data={}, headers={}, auth=nil, timeout=nil)
72
+ auth ||= @auth
73
+
74
+ ruby_config = RbConfig::CONFIG
75
+ headers['User-Agent'] = "twilio-ruby/#{Twilio::VERSION} (#{ruby_config["host_os"]} #{ruby_config["host_cpu"]}) Ruby/#{RUBY_VERSION}"
76
+ headers['Accept-Charset'] = 'utf-8'
77
+
78
+ user_agent_extensions.each { |extension| headers['User-Agent'] += " #{extension}" }
79
+
80
+ if method == 'POST' && !headers['Content-Type']
81
+ headers['Content-Type'] = 'application/x-www-form-urlencoded'
82
+ end
83
+
84
+ unless headers['Accept']
85
+ headers['Accept'] = 'application/json'
86
+ end
87
+
88
+ uri = build_uri(uri)
89
+
90
+ if @logger
91
+ @logger.debug("--BEGIN Twilio API Request--")
92
+ @logger.debug("Request Method: <#{method}>")
93
+
94
+ headers.each do |key, value|
95
+ unless key.downcase == 'authorization'
96
+ @logger.debug("#{key}:#{value}")
97
+ end
164
98
  end
165
- request = method_class.new path, HTTP_HEADERS
166
- request.basic_auth @account_sid, @auth_token
167
- request.form_data = params if [:post, :put].include? method
168
- connect_and_send request
99
+
100
+ url = URI(uri)
101
+ @logger.debug("Host:#{url.host}")
102
+ @logger.debug("Path:#{url.path}")
103
+ @logger.debug("Query:#{url.query}")
104
+ @logger.debug("Request Params:#{params}")
105
+ end
106
+
107
+ response = @http_client.request(
108
+ host,
109
+ port,
110
+ method,
111
+ uri,
112
+ params,
113
+ data,
114
+ headers,
115
+ auth,
116
+ timeout
117
+ )
118
+
119
+ if @logger
120
+ @logger.debug("Response Status Code:#{response.status_code}")
121
+ @logger.debug("Response Headers:#{response.headers}")
122
+ @logger.debug("--END TWILIO API REQUEST--")
169
123
  end
170
- end
171
124
 
172
- private
125
+ response
126
+ end
173
127
 
174
128
  ##
175
- # Set up and cache a Net::HTTP object to use when making requests. This is
176
- # a private method documented for completeness.
177
- def set_up_connection # :doc:
178
- connection_class = Net::HTTP::Proxy @config[:proxy_addr],
179
- @config[:proxy_port], @config[:proxy_user], @config[:proxy_pass]
180
- @connection = connection_class.new @config[:host], @config[:port]
181
- set_up_ssl
182
- @connection.open_timeout = @config[:timeout]
183
- @connection.read_timeout = @config[:timeout]
129
+ # Build the final request uri
130
+ def build_uri(uri)
131
+ if @region.nil? and @edge.nil?
132
+ return uri
133
+ end
134
+
135
+ parsed_url = URI(uri)
136
+ pieces = parsed_url.host.split('.')
137
+ product = pieces[0]
138
+ domain = pieces[-2, 2]
139
+ new_edge = @edge
140
+ new_region = @region
141
+
142
+ if pieces.length == 4
143
+ new_region ||= pieces[1]
144
+ elsif pieces.length == 5
145
+ new_edge ||= pieces[1]
146
+ new_region ||= pieces[2]
147
+ end
148
+
149
+ if !new_edge.nil? && new_region.nil?
150
+ new_region = @@default_region
151
+ end
152
+
153
+ parsed_url.host = [product, new_edge, new_region, domain].select {|item| !item.nil?}.join('.')
154
+ parsed_url.to_s
184
155
  end
185
-
156
+
186
157
  ##
187
- # Set up the ssl properties of the <tt>@connection</tt> Net::HTTP object.
188
- # This is a private method documented for completeness.
189
- def set_up_ssl # :doc:
190
- @connection.use_ssl = @config[:use_ssl]
191
- if @config[:ssl_verify_peer]
192
- @connection.verify_mode = OpenSSL::SSL::VERIFY_PEER
193
- @connection.ca_file = @config[:ssl_ca_file]
194
- else
195
- @connection.verify_mode = OpenSSL::SSL::VERIFY_NONE
158
+ # Validate the new SSL certificate for the Twilio API
159
+ def validate_ssl_certificate
160
+ response = request('api.twilio.com', '8443', 'GET', 'https://api.twilio.com:8443/.json')
161
+ if response.status_code < 200 || response.status_code >= 300
162
+ raise RestError.new 'Unexpected response from certificate endpoint', response
196
163
  end
197
164
  end
198
165
 
199
166
  ##
200
- # Set up +account+ and +accounts+ attributes.
201
- def set_up_subresources # :doc:
202
- @accounts = Twilio::REST::Accounts.new "/#{API_VERSION}/Accounts", self
203
- @account = @accounts.get @account_sid
167
+ # Access the Accounts Twilio Domain
168
+ def accounts
169
+ @accounts ||= Accounts.new self
204
170
  end
205
171
 
206
172
  ##
207
- # Send an HTTP request using the cached <tt>@connection</tt> object and
208
- # return the JSON response body parsed into a hash. Also save the raw
209
- # Net::HTTP::Request and Net::HTTP::Response objects as
210
- # <tt>@last_request</tt> and <tt>@last_response</tt> to allow for
211
- # inspection later.
212
- def connect_and_send(request) # :doc:
213
- @last_request = request
214
- retries_left = @config[:retry_limit]
215
- begin
216
- response = @connection.request request
217
- @last_response = response
218
- if response.kind_of? Net::HTTPServerError
219
- raise Twilio::REST::ServerError
220
- end
221
- rescue Exception
222
- raise if request.class == Net::HTTP::Post
223
- if retries_left > 0 then retries_left -= 1; retry else raise end
224
- end
225
- if response.body and !response.body.empty?
226
- object = MultiJson.load response.body
227
- end
228
- if response.kind_of? Net::HTTPClientError
229
- raise Twilio::REST::RequestError.new object['message'], object['code']
230
- end
231
- object
173
+ # Access the Api Twilio Domain
174
+ def api
175
+ @api ||= Api.new self
176
+ end
177
+
178
+ ##
179
+ # Access the Autopilot Twilio Domain
180
+ def autopilot
181
+ @autopilot ||= Autopilot.new self
182
+ end
183
+
184
+ ##
185
+ # Access the Chat Twilio Domain
186
+ def chat
187
+ @chat ||= Chat.new self
188
+ end
189
+
190
+ ##
191
+ # Access the Conversations Twilio Domain
192
+ def conversations
193
+ @conversations ||= Conversations.new self
194
+ end
195
+
196
+ ##
197
+ # Access the Events Twilio Domain
198
+ def events
199
+ @events ||= Events.new self
200
+ end
201
+
202
+ ##
203
+ # Access the FlexApi Twilio Domain
204
+ def flex_api
205
+ @flex_api ||= FlexApi.new self
206
+ end
207
+
208
+ ##
209
+ # Access the FrontlineApi Twilio Domain
210
+ def frontline_api
211
+ @frontline_api ||= FrontlineApi.new self
212
+ end
213
+
214
+ ##
215
+ # Access the Insights Twilio Domain
216
+ def insights
217
+ @insights ||= Insights.new self
218
+ end
219
+
220
+ ##
221
+ # Access the IpMessaging Twilio Domain
222
+ def ip_messaging
223
+ @ip_messaging ||= IpMessaging.new self
224
+ end
225
+
226
+ ##
227
+ # Access the Lookups Twilio Domain
228
+ def lookups
229
+ @lookups ||= Lookups.new self
230
+ end
231
+
232
+ ##
233
+ # Access the Media Twilio Domain
234
+ def media
235
+ @media ||= Media.new self
236
+ end
237
+
238
+ ##
239
+ # Access the Messaging Twilio Domain
240
+ def messaging
241
+ @messaging ||= Messaging.new self
242
+ end
243
+
244
+ ##
245
+ # Access the Monitor Twilio Domain
246
+ def monitor
247
+ @monitor ||= Monitor.new self
248
+ end
249
+
250
+ ##
251
+ # Access the Notify Twilio Domain
252
+ def notify
253
+ @notify ||= Notify.new self
254
+ end
255
+
256
+ ##
257
+ # Access the Numbers Twilio Domain
258
+ def numbers
259
+ @numbers ||= Numbers.new self
260
+ end
261
+
262
+ ##
263
+ # Access the Preview Twilio Domain
264
+ def preview
265
+ @preview ||= Preview.new self
266
+ end
267
+
268
+ ##
269
+ # Access the Pricing Twilio Domain
270
+ def pricing
271
+ @pricing ||= Pricing.new self
272
+ end
273
+
274
+ ##
275
+ # Access the Proxy Twilio Domain
276
+ def proxy
277
+ @proxy ||= Proxy.new self
278
+ end
279
+
280
+ ##
281
+ # Access the Routes Twilio Domain
282
+ def routes
283
+ @routes ||= Routes.new self
284
+ end
285
+
286
+ ##
287
+ # Access the Serverless Twilio Domain
288
+ def serverless
289
+ @serverless ||= Serverless.new self
290
+ end
291
+
292
+ ##
293
+ # Access the Studio Twilio Domain
294
+ def studio
295
+ @studio ||= Studio.new self
296
+ end
297
+
298
+ ##
299
+ # Access the Sync Twilio Domain
300
+ def sync
301
+ @sync ||= Sync.new self
302
+ end
303
+
304
+ ##
305
+ # Access the Taskrouter Twilio Domain
306
+ def taskrouter
307
+ @taskrouter ||= Taskrouter.new self
308
+ end
309
+
310
+ ##
311
+ # Access the Trunking Twilio Domain
312
+ def trunking
313
+ @trunking ||= Trunking.new self
314
+ end
315
+
316
+ ##
317
+ # Access the Trusthub Twilio Domain
318
+ def trusthub
319
+ @trusthub ||= Trusthub.new self
320
+ end
321
+
322
+ ##
323
+ # Access the Verify Twilio Domain
324
+ def verify
325
+ @verify ||= Verify.new self
326
+ end
327
+
328
+ ##
329
+ # Access the Video Twilio Domain
330
+ def video
331
+ @video ||= Video.new self
332
+ end
333
+
334
+ ##
335
+ # Access the Voice Twilio Domain
336
+ def voice
337
+ @voice ||= Voice.new self
338
+ end
339
+
340
+ ##
341
+ # Access the Wireless Twilio Domain
342
+ def wireless
343
+ @wireless ||= Wireless.new self
344
+ end
345
+
346
+ ##
347
+ # Access the Supersim Twilio Domain
348
+ def supersim
349
+ @supersim ||= Supersim.new self
350
+ end
351
+
352
+ ##
353
+ # Access the Bulkexports Twilio Domain
354
+ def bulkexports
355
+ @bulkexports ||= Bulkexports.new self
356
+ end
357
+
358
+ ##
359
+ # Access the Microvisor Twilio Domain
360
+ def microvisor
361
+ @microvisor ||= Microvisor.new self
362
+ end
363
+
364
+ ##
365
+ # @param [String] sid The unique string that that we created to identify the
366
+ # Address resource.
367
+ # @return [Twilio::REST::Api::V2010::AccountContext::AddressInstance] if sid was passed.
368
+ # @return [Twilio::REST::Api::V2010::AccountContext::AddressList]
369
+ def addresses(sid=:unset)
370
+ self.api.v2010.account.addresses(sid)
371
+ end
372
+
373
+ ##
374
+ # @param [String] sid The unique string that that we created to identify the
375
+ # Application resource.
376
+ # @return [Twilio::REST::Api::V2010::AccountContext::ApplicationInstance] if sid was passed.
377
+ # @return [Twilio::REST::Api::V2010::AccountContext::ApplicationList]
378
+ def applications(sid=:unset)
379
+ self.api.v2010.account.applications(sid)
380
+ end
381
+
382
+ ##
383
+ # @param [String] connect_app_sid The SID that we assigned to the Connect App.
384
+ # @return [Twilio::REST::Api::V2010::AccountContext::AuthorizedConnectAppInstance] if connect_app_sid was passed.
385
+ # @return [Twilio::REST::Api::V2010::AccountContext::AuthorizedConnectAppList]
386
+ def authorized_connect_apps(connect_app_sid=:unset)
387
+ self.api.v2010.account.authorized_connect_apps(connect_app_sid)
388
+ end
389
+
390
+ ##
391
+ # @param [String] country_code The
392
+ # {ISO-3166-1}[https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2] country code of
393
+ # the country.
394
+ # @return [Twilio::REST::Api::V2010::AccountContext::AvailablePhoneNumberCountryInstance] if country_code was passed.
395
+ # @return [Twilio::REST::Api::V2010::AccountContext::AvailablePhoneNumberCountryList]
396
+ def available_phone_numbers(country_code=:unset)
397
+ self.api.v2010.account.available_phone_numbers(country_code)
398
+ end
399
+
400
+ ##
401
+ # @return [Twilio::REST::Api::V2010::AccountContext::BalanceInstance]
402
+ def balance
403
+ self.api.v2010.account.balance
404
+ end
405
+
406
+ ##
407
+ # @param [String] sid The unique string that we created to identify this Call
408
+ # resource.
409
+ # @return [Twilio::REST::Api::V2010::AccountContext::CallInstance] if sid was passed.
410
+ # @return [Twilio::REST::Api::V2010::AccountContext::CallList]
411
+ def calls(sid=:unset)
412
+ self.api.v2010.account.calls(sid)
413
+ end
414
+
415
+ ##
416
+ # @param [String] sid The unique string that that we created to identify this
417
+ # Conference resource.
418
+ # @return [Twilio::REST::Api::V2010::AccountContext::ConferenceInstance] if sid was passed.
419
+ # @return [Twilio::REST::Api::V2010::AccountContext::ConferenceList]
420
+ def conferences(sid=:unset)
421
+ self.api.v2010.account.conferences(sid)
422
+ end
423
+
424
+ ##
425
+ # @param [String] sid The unique string that that we created to identify the
426
+ # ConnectApp resource.
427
+ # @return [Twilio::REST::Api::V2010::AccountContext::ConnectAppInstance] if sid was passed.
428
+ # @return [Twilio::REST::Api::V2010::AccountContext::ConnectAppList]
429
+ def connect_apps(sid=:unset)
430
+ self.api.v2010.account.connect_apps(sid)
431
+ end
432
+
433
+ ##
434
+ # @param [String] sid The unique string that that we created to identify this
435
+ # IncomingPhoneNumber resource.
436
+ # @return [Twilio::REST::Api::V2010::AccountContext::IncomingPhoneNumberInstance] if sid was passed.
437
+ # @return [Twilio::REST::Api::V2010::AccountContext::IncomingPhoneNumberList]
438
+ def incoming_phone_numbers(sid=:unset)
439
+ self.api.v2010.account.incoming_phone_numbers(sid)
440
+ end
441
+
442
+ ##
443
+ # @param [String] sid The unique string that that we created to identify the Key
444
+ # resource.
445
+ # @return [Twilio::REST::Api::V2010::AccountContext::KeyInstance] if sid was passed.
446
+ # @return [Twilio::REST::Api::V2010::AccountContext::KeyList]
447
+ def keys(sid=:unset)
448
+ self.api.v2010.account.keys(sid)
449
+ end
450
+
451
+ ##
452
+ # @param [String] sid The unique string that that we created to identify the
453
+ # Message resource.
454
+ # @return [Twilio::REST::Api::V2010::AccountContext::MessageInstance] if sid was passed.
455
+ # @return [Twilio::REST::Api::V2010::AccountContext::MessageList]
456
+ def messages(sid=:unset)
457
+ self.api.v2010.account.messages(sid)
458
+ end
459
+
460
+ ##
461
+ # @return [Twilio::REST::Api::V2010::AccountContext::NewKeyInstance]
462
+ def new_keys
463
+ self.api.v2010.account.new_keys
464
+ end
465
+
466
+ ##
467
+ # @return [Twilio::REST::Api::V2010::AccountContext::NewSigningKeyInstance]
468
+ def new_signing_keys
469
+ self.api.v2010.account.new_signing_keys
470
+ end
471
+
472
+ ##
473
+ # @param [String] sid The unique string that that we created to identify the
474
+ # Notification resource.
475
+ # @return [Twilio::REST::Api::V2010::AccountContext::NotificationInstance] if sid was passed.
476
+ # @return [Twilio::REST::Api::V2010::AccountContext::NotificationList]
477
+ def notifications(sid=:unset)
478
+ self.api.v2010.account.notifications(sid)
479
+ end
480
+
481
+ ##
482
+ # @param [String] sid The unique string that that we created to identify the
483
+ # OutgoingCallerId resource.
484
+ # @return [Twilio::REST::Api::V2010::AccountContext::OutgoingCallerIdInstance] if sid was passed.
485
+ # @return [Twilio::REST::Api::V2010::AccountContext::OutgoingCallerIdList]
486
+ def outgoing_caller_ids(sid=:unset)
487
+ self.api.v2010.account.outgoing_caller_ids(sid)
488
+ end
489
+
490
+ ##
491
+ # @param [String] sid The unique string that that we created to identify this
492
+ # Queue resource.
493
+ # @return [Twilio::REST::Api::V2010::AccountContext::QueueInstance] if sid was passed.
494
+ # @return [Twilio::REST::Api::V2010::AccountContext::QueueList]
495
+ def queues(sid=:unset)
496
+ self.api.v2010.account.queues(sid)
497
+ end
498
+
499
+ ##
500
+ # @param [String] sid The unique string that that we created to identify the
501
+ # Recording resource.
502
+ # @return [Twilio::REST::Api::V2010::AccountContext::RecordingInstance] if sid was passed.
503
+ # @return [Twilio::REST::Api::V2010::AccountContext::RecordingList]
504
+ def recordings(sid=:unset)
505
+ self.api.v2010.account.recordings(sid)
506
+ end
507
+
508
+ ##
509
+ # @param [String] sid The sid
510
+ # @return [Twilio::REST::Api::V2010::AccountContext::SigningKeyInstance] if sid was passed.
511
+ # @return [Twilio::REST::Api::V2010::AccountContext::SigningKeyList]
512
+ def signing_keys(sid=:unset)
513
+ self.api.v2010.account.signing_keys(sid)
514
+ end
515
+
516
+ ##
517
+ # @return [Twilio::REST::Api::V2010::AccountContext::SipInstance]
518
+ def sip
519
+ self.api.v2010.account.sip
520
+ end
521
+
522
+ ##
523
+ # @param [String] sid The unique string that that we created to identify this
524
+ # ShortCode resource.
525
+ # @return [Twilio::REST::Api::V2010::AccountContext::ShortCodeInstance] if sid was passed.
526
+ # @return [Twilio::REST::Api::V2010::AccountContext::ShortCodeList]
527
+ def short_codes(sid=:unset)
528
+ self.api.v2010.account.short_codes(sid)
529
+ end
530
+
531
+ ##
532
+ # @return [Twilio::REST::Api::V2010::AccountContext::TokenInstance]
533
+ def tokens
534
+ self.api.v2010.account.tokens
535
+ end
536
+
537
+ ##
538
+ # @param [String] sid The unique string that that we created to identify the
539
+ # Transcription resource.
540
+ # @return [Twilio::REST::Api::V2010::AccountContext::TranscriptionInstance] if sid was passed.
541
+ # @return [Twilio::REST::Api::V2010::AccountContext::TranscriptionList]
542
+ def transcriptions(sid=:unset)
543
+ self.api.v2010.account.transcriptions(sid)
544
+ end
545
+
546
+ ##
547
+ # @return [Twilio::REST::Api::V2010::AccountContext::UsageInstance]
548
+ def usage
549
+ self.api.v2010.account.usage
550
+ end
551
+
552
+ ##
553
+ # @return [Twilio::REST::Api::V2010::AccountContext::ValidationRequestInstance]
554
+ def validation_requests
555
+ self.api.v2010.account.validation_requests
556
+ end
557
+
558
+ ##
559
+ # Provide a user friendly representation
560
+ def to_s
561
+ "#<Twilio::REST::Client #{@account_sid}>"
232
562
  end
233
563
  end
564
+
565
+ ##
566
+ # Dummy client which provides no functionality. Please use Twilio::REST::Client instead.
567
+ class BaseClient < ObsoleteClient; end
568
+
569
+ ##
570
+ # Dummy client which provides no functionality. Please use Twilio::REST::Client instead.
571
+ class IpMessagingClient < ObsoleteClient; end
572
+
573
+ ##
574
+ # Dummy client which provides no functionality. Please use Twilio::REST::Client instead.
575
+ class LookupsClient < ObsoleteClient; end
576
+
577
+ ##
578
+ # Dummy client which provides no functionality. Please use Twilio::REST::Client instead.
579
+ class MonitorClient < ObsoleteClient; end
580
+
581
+ ##
582
+ # Dummy client which provides no functionality. Please use Twilio::REST::Client instead.
583
+ class PricingClient < ObsoleteClient; end
584
+
585
+ ##
586
+ # Dummy client which provides no functionality. Please use Twilio::REST::Client instead.
587
+ class TaskRouterClient < ObsoleteClient; end
588
+
589
+ ##
590
+ # Dummy client which provides no functionality. Please use Twilio::REST::Client instead.
591
+ class TrunkingClient < ObsoleteClient; end
234
592
  end
235
- end
593
+ end