twilio-ruby 5.31.1 → 7.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1097) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/pr-lint.yml +21 -0
  3. data/.github/workflows/test-and-deploy.yml +139 -0
  4. data/.gitignore +8 -1
  5. data/.rubocop.yml +20 -2
  6. data/.rubocop_todo.yml +90 -58
  7. data/CHANGES.md +2369 -1
  8. data/CODE_OF_CONDUCT.md +73 -0
  9. data/CONTRIBUTING.md +13 -11
  10. data/Gemfile +3 -8
  11. data/ISSUE_TEMPLATE.md +17 -13
  12. data/{LICENSE.md → LICENSE} +2 -2
  13. data/Makefile +22 -24
  14. data/PULL_REQUEST_TEMPLATE.md +31 -0
  15. data/README.md +174 -20
  16. data/Rakefile +0 -54
  17. data/UPGRADE.md +21 -0
  18. data/advanced-examples/custom-http-client.md +170 -0
  19. data/cluster_spec.rb +77 -0
  20. data/examples/examples.rb +1 -1
  21. data/githooks/pre-commit +0 -0
  22. data/lib/rack/twilio_webhook_authentication.rb +25 -1
  23. data/lib/twilio-ruby/base/client_base.rb +124 -0
  24. data/lib/twilio-ruby/framework/request.rb +8 -1
  25. data/lib/twilio-ruby/framework/{error.rb → rest/error.rb} +3 -15
  26. data/lib/twilio-ruby/framework/{version.rb → rest/version.rb} +7 -11
  27. data/lib/twilio-ruby/http/http_client.rb +33 -9
  28. data/lib/twilio-ruby/http.rb +5 -0
  29. data/lib/twilio-ruby/jwt/access_token.rb +20 -61
  30. data/lib/twilio-ruby/jwt/jwt.rb +6 -0
  31. data/lib/twilio-ruby/jwt/task_router.rb +2 -2
  32. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +209 -0
  33. data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +380 -349
  34. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +380 -349
  35. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +122 -114
  36. data/lib/twilio-ruby/rest/accounts/v1/safelist.rb +176 -0
  37. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +227 -0
  38. data/lib/twilio-ruby/rest/accounts/v1.rb +51 -28
  39. data/lib/twilio-ruby/rest/accounts.rb +10 -28
  40. data/lib/twilio-ruby/rest/accounts_base.rb +38 -0
  41. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +371 -367
  42. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +560 -531
  43. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +624 -601
  44. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +316 -328
  45. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/local.rb +395 -0
  46. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/machine_to_machine.rb +395 -0
  47. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/mobile.rb +395 -0
  48. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/national.rb +395 -0
  49. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/shared_cost.rb +395 -0
  50. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/toll_free.rb +395 -0
  51. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/voip.rb +395 -0
  52. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country.rb +435 -0
  53. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +139 -124
  54. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +210 -0
  55. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +403 -439
  56. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +327 -0
  57. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +503 -516
  58. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +877 -0
  59. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +877 -0
  60. data/lib/twilio-ruby/rest/api/v2010/account/call/transcription.rb +901 -0
  61. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +166 -0
  62. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +244 -0
  63. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +955 -858
  64. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +668 -676
  65. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +458 -470
  66. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +494 -491
  67. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +433 -419
  68. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +323 -360
  69. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +403 -431
  70. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +539 -540
  71. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +539 -539
  72. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +539 -539
  73. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +850 -899
  74. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +342 -314
  75. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +170 -169
  76. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +345 -358
  77. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +624 -613
  78. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +160 -143
  79. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +160 -143
  80. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +403 -407
  81. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +375 -370
  82. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +345 -350
  83. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +435 -407
  84. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +363 -388
  85. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +373 -393
  86. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +369 -380
  87. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +512 -494
  88. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +422 -420
  89. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +342 -318
  90. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +384 -385
  91. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +408 -390
  92. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_credential_list_mapping.rb +353 -0
  93. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_ip_access_control_list_mapping.rb +353 -0
  94. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls.rb +141 -0
  95. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations/auth_registrations_credential_list_mapping.rb +353 -0
  96. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations.rb +127 -0
  97. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +95 -103
  98. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +346 -352
  99. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +346 -351
  100. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +658 -586
  101. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +421 -438
  102. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +408 -391
  103. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +142 -150
  104. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +174 -159
  105. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +369 -358
  106. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +315 -341
  107. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +315 -341
  108. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +315 -341
  109. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +315 -341
  110. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +315 -341
  111. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +315 -341
  112. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +315 -341
  113. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +315 -341
  114. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +382 -418
  115. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +494 -500
  116. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +113 -104
  117. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +175 -166
  118. data/lib/twilio-ruby/rest/api/v2010/account.rb +986 -960
  119. data/lib/twilio-ruby/rest/api/v2010.rb +126 -147
  120. data/lib/twilio-ruby/rest/api.rb +27 -36
  121. data/lib/twilio-ruby/rest/api_base.rb +38 -0
  122. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +309 -0
  123. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +308 -0
  124. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +283 -0
  125. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +257 -0
  126. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +258 -0
  127. data/lib/twilio-ruby/rest/bulkexports/v1.rb +64 -0
  128. data/lib/twilio-ruby/rest/bulkexports.rb +25 -0
  129. data/lib/twilio-ruby/rest/bulkexports_base.rb +38 -0
  130. data/lib/twilio-ruby/rest/chat/v1/credential.rb +428 -420
  131. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +381 -404
  132. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +431 -457
  133. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +447 -454
  134. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +543 -532
  135. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +405 -384
  136. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +245 -241
  137. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +474 -457
  138. data/lib/twilio-ruby/rest/chat/v1/service.rb +870 -911
  139. data/lib/twilio-ruby/rest/chat/v1.rb +57 -53
  140. data/lib/twilio-ruby/rest/chat/v2/credential.rb +428 -418
  141. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +376 -378
  142. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +381 -399
  143. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +492 -529
  144. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +519 -535
  145. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +449 -481
  146. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +612 -607
  147. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +405 -386
  148. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +369 -389
  149. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +412 -425
  150. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +516 -495
  151. data/lib/twilio-ruby/rest/chat/v2/service.rb +773 -795
  152. data/lib/twilio-ruby/rest/chat/v2.rb +57 -51
  153. data/lib/twilio-ruby/rest/chat/v3/channel.rb +299 -0
  154. data/lib/twilio-ruby/rest/chat/v3.rb +71 -0
  155. data/lib/twilio-ruby/rest/chat.rb +10 -38
  156. data/lib/twilio-ruby/rest/chat_base.rb +48 -0
  157. data/lib/twilio-ruby/rest/client.rb +329 -467
  158. data/lib/twilio-ruby/rest/content/v1/content/approval_create.rb +185 -0
  159. data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +209 -0
  160. data/lib/twilio-ruby/rest/content/v1/content.rb +788 -0
  161. data/lib/twilio-ruby/rest/content/v1/content_and_approvals.rb +252 -0
  162. data/lib/twilio-ruby/rest/content/v1/legacy_content.rb +266 -0
  163. data/lib/twilio-ruby/rest/content/v1.rb +61 -0
  164. data/lib/twilio-ruby/rest/content/v2/content.rb +316 -0
  165. data/lib/twilio-ruby/rest/content/v2/content_and_approvals.rb +309 -0
  166. data/lib/twilio-ruby/rest/content/v2.rb +46 -0
  167. data/lib/twilio-ruby/rest/content.rb +15 -0
  168. data/lib/twilio-ruby/rest/content_base.rb +43 -0
  169. data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +491 -0
  170. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +286 -0
  171. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +292 -0
  172. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +348 -0
  173. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +543 -449
  174. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +504 -424
  175. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +434 -425
  176. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +626 -495
  177. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +444 -0
  178. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +313 -0
  179. data/lib/twilio-ruby/rest/conversations/v1/role.rb +403 -0
  180. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +376 -0
  181. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +339 -0
  182. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +285 -0
  183. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +319 -0
  184. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +359 -0
  185. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +563 -0
  186. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +524 -0
  187. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +454 -0
  188. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +645 -0
  189. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +318 -0
  190. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +412 -0
  191. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +464 -0
  192. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +497 -0
  193. data/lib/twilio-ruby/rest/conversations/v1/service.rb +493 -0
  194. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +459 -0
  195. data/lib/twilio-ruby/rest/conversations/v1/user.rb +488 -0
  196. data/lib/twilio-ruby/rest/conversations/v1.rb +129 -44
  197. data/lib/twilio-ruby/rest/conversations.rb +54 -28
  198. data/lib/twilio-ruby/rest/conversations_base.rb +38 -0
  199. data/lib/twilio-ruby/rest/events/v1/event_type.rb +329 -0
  200. data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +302 -0
  201. data/lib/twilio-ruby/rest/events/v1/schema.rb +238 -0
  202. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +132 -0
  203. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +139 -0
  204. data/lib/twilio-ruby/rest/events/v1/sink.rb +453 -0
  205. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +381 -0
  206. data/lib/twilio-ruby/rest/events/v1/subscription.rb +435 -0
  207. data/lib/twilio-ruby/rest/events/v1.rb +94 -0
  208. data/lib/twilio-ruby/rest/events.rb +43 -0
  209. data/lib/twilio-ruby/rest/events_base.rb +38 -0
  210. data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +449 -0
  211. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +372 -342
  212. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +547 -437
  213. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +572 -539
  214. data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +329 -0
  215. data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +229 -0
  216. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +445 -0
  217. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +360 -0
  218. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +445 -0
  219. data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +362 -0
  220. data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +217 -0
  221. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +157 -0
  222. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +143 -0
  223. data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +196 -0
  224. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +254 -0
  225. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +354 -0
  226. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +411 -0
  227. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +272 -0
  228. data/lib/twilio-ruby/rest/flex_api/v1/plugin/plugin_versions.rb +397 -0
  229. data/lib/twilio-ruby/rest/flex_api/v1/plugin.rb +446 -0
  230. data/lib/twilio-ruby/rest/flex_api/v1/plugin_archive.rb +247 -0
  231. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration/configured_plugin.rb +393 -0
  232. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration.rb +386 -0
  233. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration_archive.rb +233 -0
  234. data/lib/twilio-ruby/rest/flex_api/v1/plugin_release.rb +332 -0
  235. data/lib/twilio-ruby/rest/flex_api/v1/plugin_version_archive.rb +256 -0
  236. data/lib/twilio-ruby/rest/flex_api/v1/provisioning_status.rb +188 -0
  237. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +387 -348
  238. data/lib/twilio-ruby/rest/flex_api/v1.rb +313 -73
  239. data/lib/twilio-ruby/rest/flex_api/v2/flex_user.rb +290 -0
  240. data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +151 -0
  241. data/lib/twilio-ruby/rest/flex_api/v2.rb +77 -0
  242. data/lib/twilio-ruby/rest/flex_api.rb +34 -32
  243. data/lib/twilio-ruby/rest/flex_api_base.rb +43 -0
  244. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +278 -0
  245. data/lib/twilio-ruby/rest/frontline_api/v1.rb +49 -0
  246. data/lib/twilio-ruby/rest/frontline_api.rb +15 -0
  247. data/lib/twilio-ruby/rest/frontline_api_base.rb +38 -0
  248. data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +322 -0
  249. data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +353 -0
  250. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +250 -237
  251. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +242 -227
  252. data/lib/twilio-ruby/rest/insights/v1/call.rb +263 -234
  253. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +494 -0
  254. data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +491 -0
  255. data/lib/twilio-ruby/rest/insights/v1/conference.rb +508 -0
  256. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +386 -0
  257. data/lib/twilio-ruby/rest/insights/v1/room.rb +501 -0
  258. data/lib/twilio-ruby/rest/insights/v1/setting.rb +259 -0
  259. data/lib/twilio-ruby/rest/insights/v1.rb +84 -36
  260. data/lib/twilio-ruby/rest/insights.rb +28 -28
  261. data/lib/twilio-ruby/rest/insights_base.rb +38 -0
  262. data/lib/twilio-ruby/rest/intelligence/v2/custom_operator.rb +447 -0
  263. data/lib/twilio-ruby/rest/intelligence/v2/operator.rb +356 -0
  264. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachment.rb +217 -0
  265. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachments.rb +197 -0
  266. data/lib/twilio-ruby/rest/intelligence/v2/operator_type.rb +358 -0
  267. data/lib/twilio-ruby/rest/intelligence/v2/prebuilt_operator.rb +356 -0
  268. data/lib/twilio-ruby/rest/intelligence/v2/service.rb +517 -0
  269. data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +227 -0
  270. data/lib/twilio-ruby/rest/intelligence/v2/transcript/operator_result.rb +389 -0
  271. data/lib/twilio-ruby/rest/intelligence/v2/transcript/sentence.rb +249 -0
  272. data/lib/twilio-ruby/rest/intelligence/v2/transcript.rb +525 -0
  273. data/lib/twilio-ruby/rest/intelligence/v2.rb +176 -0
  274. data/lib/twilio-ruby/rest/intelligence.rb +6 -0
  275. data/lib/twilio-ruby/rest/intelligence_base.rb +38 -0
  276. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +428 -420
  277. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +381 -404
  278. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +431 -457
  279. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +447 -454
  280. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +543 -532
  281. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +405 -384
  282. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +245 -241
  283. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +474 -457
  284. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +870 -911
  285. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +57 -53
  286. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +428 -418
  287. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +376 -378
  288. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +381 -399
  289. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +492 -529
  290. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +519 -535
  291. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +449 -481
  292. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +612 -607
  293. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +405 -386
  294. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +369 -389
  295. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +404 -425
  296. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +516 -495
  297. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +773 -795
  298. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +57 -51
  299. data/lib/twilio-ruby/rest/ip_messaging.rb +9 -49
  300. data/lib/twilio-ruby/rest/ip_messaging_base.rb +43 -0
  301. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +246 -243
  302. data/lib/twilio-ruby/rest/lookups/v1.rb +42 -38
  303. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +384 -0
  304. data/lib/twilio-ruby/rest/lookups/v2.rb +49 -0
  305. data/lib/twilio-ruby/rest/lookups.rb +3 -35
  306. data/lib/twilio-ruby/rest/lookups_base.rb +43 -0
  307. data/lib/twilio-ruby/rest/marketplace/v1/available_add_on/available_add_on_extension.rb +309 -0
  308. data/lib/twilio-ruby/rest/marketplace/v1/available_add_on.rb +336 -0
  309. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_extension.rb +352 -0
  310. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_usage.rb +170 -0
  311. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on.rb +465 -0
  312. data/lib/twilio-ruby/rest/marketplace/v1/module_data_management.rb +284 -0
  313. data/lib/twilio-ruby/rest/marketplace/v1.rb +79 -0
  314. data/lib/twilio-ruby/rest/marketplace.rb +6 -0
  315. data/lib/twilio-ruby/rest/marketplace_base.rb +38 -0
  316. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +139 -0
  317. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_vetting.rb +368 -0
  318. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +509 -0
  319. data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +192 -0
  320. data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +285 -0
  321. data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +292 -0
  322. data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +239 -0
  323. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +164 -0
  324. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +217 -0
  325. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +197 -0
  326. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +356 -348
  327. data/lib/twilio-ruby/rest/messaging/v1/service/channel_sender.rb +330 -0
  328. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +363 -354
  329. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +363 -349
  330. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +620 -0
  331. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +138 -0
  332. data/lib/twilio-ruby/rest/messaging/v1/service.rb +774 -659
  333. data/lib/twilio-ruby/rest/messaging/v1/tollfree_verification.rb +803 -0
  334. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +126 -0
  335. data/lib/twilio-ruby/rest/messaging/v1.rb +187 -58
  336. data/lib/twilio-ruby/rest/messaging.rb +48 -36
  337. data/lib/twilio-ruby/rest/messaging_base.rb +38 -0
  338. data/lib/twilio-ruby/rest/microvisor/v1/account_config.rb +365 -0
  339. data/lib/twilio-ruby/rest/microvisor/v1/account_secret.rb +358 -0
  340. data/lib/twilio-ruby/rest/microvisor/v1/app/app_manifest.rb +209 -0
  341. data/lib/twilio-ruby/rest/microvisor/v1/app.rb +352 -0
  342. data/lib/twilio-ruby/rest/microvisor/v1/device/device_config.rb +381 -0
  343. data/lib/twilio-ruby/rest/microvisor/v1/device/device_secret.rb +374 -0
  344. data/lib/twilio-ruby/rest/microvisor/v1/device.rb +430 -0
  345. data/lib/twilio-ruby/rest/microvisor/v1.rb +94 -0
  346. data/lib/twilio-ruby/rest/microvisor.rb +24 -0
  347. data/lib/twilio-ruby/rest/microvisor_base.rb +38 -0
  348. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +401 -403
  349. data/lib/twilio-ruby/rest/monitor/v1/event.rb +384 -398
  350. data/lib/twilio-ruby/rest/monitor/v1.rb +57 -51
  351. data/lib/twilio-ruby/rest/monitor.rb +3 -34
  352. data/lib/twilio-ruby/rest/monitor_base.rb +38 -0
  353. data/lib/twilio-ruby/rest/notify/v1/credential.rb +428 -419
  354. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +442 -464
  355. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +316 -359
  356. data/lib/twilio-ruby/rest/notify/v1/service.rb +633 -620
  357. data/lib/twilio-ruby/rest/notify/v1.rb +57 -53
  358. data/lib/twilio-ruby/rest/notify.rb +3 -34
  359. data/lib/twilio-ruby/rest/notify_base.rb +38 -0
  360. data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +241 -0
  361. data/lib/twilio-ruby/rest/numbers/v1/eligibility.rb +128 -0
  362. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in.rb +294 -0
  363. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_phone_number.rb +315 -0
  364. data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +250 -0
  365. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration.rb +149 -0
  366. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_delete.rb +168 -0
  367. data/lib/twilio-ruby/rest/numbers/v1/signing_request_configuration.rb +177 -0
  368. data/lib/twilio-ruby/rest/numbers/v1/webhook.rb +161 -0
  369. data/lib/twilio-ruby/rest/numbers/v1.rb +155 -0
  370. data/lib/twilio-ruby/rest/numbers/v2/authorization_document/dependent_hosted_number_order.rb +344 -0
  371. data/lib/twilio-ruby/rest/numbers/v2/authorization_document.rb +408 -0
  372. data/lib/twilio-ruby/rest/numbers/v2/bulk_hosted_number_order.rb +266 -0
  373. data/lib/twilio-ruby/rest/numbers/v2/hosted_number_order.rb +507 -0
  374. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +288 -0
  375. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +340 -0
  376. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +351 -0
  377. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +204 -0
  378. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +617 -0
  379. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +407 -0
  380. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +300 -0
  381. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +349 -0
  382. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +428 -0
  383. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +300 -0
  384. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +186 -0
  385. data/lib/twilio-ruby/rest/numbers/v2.rb +85 -0
  386. data/lib/twilio-ruby/rest/numbers.rb +12 -0
  387. data/lib/twilio-ruby/rest/numbers_base.rb +43 -0
  388. data/lib/twilio-ruby/rest/oauth/v1/authorize.rb +144 -0
  389. data/lib/twilio-ruby/rest/oauth/v1/token.rb +182 -0
  390. data/lib/twilio-ruby/rest/oauth/v1.rb +46 -0
  391. data/lib/twilio-ruby/rest/oauth.rb +6 -0
  392. data/lib/twilio-ruby/rest/oauth_base.rb +38 -0
  393. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/certificate.rb +417 -392
  394. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/deployment.rb +401 -375
  395. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/device.rb +456 -435
  396. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/key.rb +414 -386
  397. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet.rb +501 -476
  398. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +42 -37
  399. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +371 -395
  400. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +451 -458
  401. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +617 -642
  402. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +57 -53
  403. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +302 -306
  404. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +326 -317
  405. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +345 -342
  406. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +436 -415
  407. data/lib/twilio-ruby/rest/preview/marketplace.rb +57 -51
  408. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +383 -386
  409. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +448 -413
  410. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +439 -417
  411. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +383 -386
  412. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +424 -411
  413. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +442 -414
  414. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +383 -386
  415. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +424 -411
  416. data/lib/twilio-ruby/rest/preview/sync/service.rb +502 -469
  417. data/lib/twilio-ruby/rest/preview/sync.rb +42 -36
  418. data/lib/twilio-ruby/rest/preview/wireless/command.rb +390 -377
  419. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +455 -415
  420. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +235 -211
  421. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +577 -535
  422. data/lib/twilio-ruby/rest/preview/wireless.rb +72 -66
  423. data/lib/twilio-ruby/rest/preview.rb +11 -155
  424. data/lib/twilio-ruby/rest/preview_base.rb +58 -0
  425. data/lib/twilio-ruby/rest/preview_iam.rb +6 -0
  426. data/lib/twilio-ruby/rest/preview_iam_base.rb +33 -0
  427. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +300 -283
  428. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +108 -119
  429. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +293 -276
  430. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +108 -119
  431. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +300 -283
  432. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +223 -203
  433. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +122 -135
  434. data/lib/twilio-ruby/rest/pricing/v1.rb +45 -42
  435. data/lib/twilio-ruby/rest/pricing/v2/country.rb +302 -0
  436. data/lib/twilio-ruby/rest/pricing/v2/number.rb +243 -0
  437. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +300 -283
  438. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +241 -224
  439. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +122 -138
  440. data/lib/twilio-ruby/rest/pricing/v2.rb +63 -28
  441. data/lib/twilio-ruby/rest/pricing.rb +22 -38
  442. data/lib/twilio-ruby/rest/pricing_base.rb +43 -0
  443. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +426 -418
  444. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +411 -426
  445. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +433 -462
  446. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +426 -455
  447. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +529 -523
  448. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +406 -387
  449. data/lib/twilio-ruby/rest/proxy/v1/service.rb +566 -613
  450. data/lib/twilio-ruby/rest/proxy/v1.rb +42 -37
  451. data/lib/twilio-ruby/rest/proxy.rb +2 -34
  452. data/lib/twilio-ruby/rest/proxy_base.rb +38 -0
  453. data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +273 -0
  454. data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +273 -0
  455. data/lib/twilio-ruby/rest/routes/v2/trunk.rb +273 -0
  456. data/lib/twilio-ruby/rest/routes/v2.rb +79 -0
  457. data/lib/twilio-ruby/rest/routes.rb +32 -0
  458. data/lib/twilio-ruby/rest/routes_base.rb +38 -0
  459. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +316 -331
  460. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +419 -397
  461. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +220 -0
  462. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +412 -362
  463. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +339 -351
  464. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +362 -359
  465. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +410 -413
  466. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +461 -462
  467. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +231 -0
  468. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +343 -331
  469. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +419 -397
  470. data/lib/twilio-ruby/rest/serverless/v1/service.rb +530 -484
  471. data/lib/twilio-ruby/rest/serverless/v1.rb +42 -36
  472. data/lib/twilio-ruby/rest/serverless.rb +2 -34
  473. data/lib/twilio-ruby/rest/serverless_base.rb +38 -0
  474. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +209 -205
  475. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +224 -224
  476. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +364 -363
  477. data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +429 -407
  478. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +209 -206
  479. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +224 -227
  480. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +364 -369
  481. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +477 -440
  482. data/lib/twilio-ruby/rest/studio/v1/flow.rb +385 -363
  483. data/lib/twilio-ruby/rest/studio/v1.rb +42 -36
  484. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +220 -0
  485. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +231 -0
  486. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +375 -0
  487. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +477 -0
  488. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +351 -0
  489. data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +237 -0
  490. data/lib/twilio-ruby/rest/studio/v2/flow.rb +538 -0
  491. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +142 -0
  492. data/lib/twilio-ruby/rest/studio/v2.rb +55 -0
  493. data/lib/twilio-ruby/rest/studio.rb +9 -34
  494. data/lib/twilio-ruby/rest/studio_base.rb +43 -0
  495. data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +406 -0
  496. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +487 -0
  497. data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +411 -0
  498. data/lib/twilio-ruby/rest/supersim/v1/network.rb +313 -0
  499. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +349 -0
  500. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +395 -0
  501. data/lib/twilio-ruby/rest/supersim/v1/settings_update.rb +257 -0
  502. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +250 -0
  503. data/lib/twilio-ruby/rest/supersim/v1/sim/sim_ip_address.rb +208 -0
  504. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +475 -0
  505. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +371 -0
  506. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +314 -0
  507. data/lib/twilio-ruby/rest/supersim/v1.rb +151 -0
  508. data/lib/twilio-ruby/rest/supersim.rb +88 -0
  509. data/lib/twilio-ruby/rest/supersim_base.rb +38 -0
  510. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +383 -391
  511. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +464 -450
  512. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +473 -501
  513. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +383 -390
  514. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +479 -474
  515. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +476 -508
  516. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +383 -388
  517. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +479 -473
  518. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +142 -143
  519. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +428 -431
  520. data/lib/twilio-ruby/rest/sync/v1/service.rb +584 -592
  521. data/lib/twilio-ruby/rest/sync/v1.rb +42 -36
  522. data/lib/twilio-ruby/rest/sync.rb +2 -34
  523. data/lib/twilio-ruby/rest/sync_base.rb +38 -0
  524. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +414 -404
  525. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +445 -466
  526. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +709 -740
  527. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +659 -643
  528. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +418 -399
  529. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_bulk_real_time_statistics.rb +164 -0
  530. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +362 -362
  531. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +282 -265
  532. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +233 -240
  533. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +240 -260
  534. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +583 -583
  535. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +691 -736
  536. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +394 -400
  537. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +238 -243
  538. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +284 -269
  539. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +218 -197
  540. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +254 -238
  541. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +630 -639
  542. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +362 -377
  543. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +230 -227
  544. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +233 -248
  545. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +532 -527
  546. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +356 -358
  547. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +235 -211
  548. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +244 -238
  549. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +729 -732
  550. data/lib/twilio-ruby/rest/taskrouter/v1.rb +42 -36
  551. data/lib/twilio-ruby/rest/taskrouter.rb +2 -34
  552. data/lib/twilio-ruby/rest/taskrouter_base.rb +38 -0
  553. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +349 -333
  554. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +349 -329
  555. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +449 -436
  556. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +482 -463
  557. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +236 -0
  558. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +632 -642
  559. data/lib/twilio-ruby/rest/trunking/v1.rb +42 -37
  560. data/lib/twilio-ruby/rest/trunking.rb +2 -34
  561. data/lib/twilio-ruby/rest/trunking_base.rb +38 -0
  562. data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +240 -0
  563. data/lib/twilio-ruby/rest/trusthub/v1/compliance_registration_inquiries.rb +357 -0
  564. data/lib/twilio-ruby/rest/trusthub/v1/compliance_tollfree_inquiries.rb +220 -0
  565. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +371 -0
  566. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +355 -0
  567. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +345 -0
  568. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +551 -0
  569. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +402 -0
  570. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +295 -0
  571. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +288 -0
  572. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +416 -0
  573. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +295 -0
  574. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +371 -0
  575. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +355 -0
  576. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +345 -0
  577. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +551 -0
  578. data/lib/twilio-ruby/rest/trusthub/v1.rb +175 -0
  579. data/lib/twilio-ruby/rest/trusthub.rb +74 -0
  580. data/lib/twilio-ruby/rest/trusthub_base.rb +38 -0
  581. data/lib/twilio-ruby/rest/verify/v2/form.rb +204 -0
  582. data/lib/twilio-ruby/rest/verify/v2/safelist.rb +236 -0
  583. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +284 -0
  584. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +201 -0
  585. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +515 -0
  586. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +465 -0
  587. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +272 -0
  588. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +436 -0
  589. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +388 -380
  590. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +410 -405
  591. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +429 -401
  592. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +387 -346
  593. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +221 -204
  594. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +463 -0
  595. data/lib/twilio-ruby/rest/verify/v2/service.rb +816 -546
  596. data/lib/twilio-ruby/rest/verify/v2/template.rb +230 -0
  597. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +385 -0
  598. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +250 -0
  599. data/lib/twilio-ruby/rest/verify/v2.rb +99 -37
  600. data/lib/twilio-ruby/rest/verify.rb +36 -25
  601. data/lib/twilio-ruby/rest/verify_base.rb +38 -0
  602. data/lib/twilio-ruby/rest/video/v1/composition.rb +484 -501
  603. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +534 -663
  604. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +286 -277
  605. data/lib/twilio-ruby/rest/video/v1/recording.rb +431 -413
  606. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +286 -277
  607. data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +262 -0
  608. data/lib/twilio-ruby/rest/video/v1/room/participant/published_track.rb +334 -0
  609. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +186 -0
  610. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribed_track.rb +341 -0
  611. data/lib/twilio-ruby/rest/video/v1/room/participant.rb +503 -0
  612. data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +175 -0
  613. data/lib/twilio-ruby/rest/video/v1/room/room_recording.rb +428 -0
  614. data/lib/twilio-ruby/rest/video/v1/room.rb +613 -534
  615. data/lib/twilio-ruby/rest/video/v1.rb +99 -95
  616. data/lib/twilio-ruby/rest/video.rb +7 -34
  617. data/lib/twilio-ruby/rest/video_base.rb +38 -0
  618. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +169 -0
  619. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +520 -0
  620. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +456 -0
  621. data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +410 -0
  622. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +138 -126
  623. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +196 -185
  624. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +376 -405
  625. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +220 -200
  626. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +123 -124
  627. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +396 -0
  628. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +379 -0
  629. data/lib/twilio-ruby/rest/voice/v1.rb +130 -28
  630. data/lib/twilio-ruby/rest/voice.rb +41 -24
  631. data/lib/twilio-ruby/rest/voice_base.rb +38 -0
  632. data/lib/twilio-ruby/rest/wireless/v1/command.rb +415 -419
  633. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +472 -452
  634. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +299 -300
  635. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +240 -245
  636. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +641 -669
  637. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +227 -223
  638. data/lib/twilio-ruby/rest/wireless/v1.rb +78 -73
  639. data/lib/twilio-ruby/rest/wireless.rb +5 -34
  640. data/lib/twilio-ruby/rest/wireless_base.rb +38 -0
  641. data/lib/twilio-ruby/rest.rb +14 -0
  642. data/lib/twilio-ruby/security/request_validator.rb +1 -1
  643. data/lib/twilio-ruby/twiml/messaging_response.rb +1 -1
  644. data/lib/twilio-ruby/twiml/twiml.rb +4 -0
  645. data/lib/twilio-ruby/twiml/voice_response.rb +989 -131
  646. data/lib/twilio-ruby/util/configuration.rb +13 -1
  647. data/lib/twilio-ruby/version.rb +1 -1
  648. data/lib/twilio-ruby.rb +8 -26
  649. data/sonar-project.properties +13 -0
  650. data/twilio-ruby.gemspec +14 -8
  651. metadata +416 -812
  652. data/.travis.yml +0 -35
  653. data/conf/cacert.pem +0 -3376
  654. data/lib/twilio-ruby/framework/twilio_response.rb +0 -19
  655. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +0 -493
  656. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +0 -493
  657. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +0 -493
  658. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +0 -493
  659. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +0 -493
  660. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +0 -493
  661. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +0 -493
  662. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +0 -472
  663. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +0 -317
  664. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +0 -325
  665. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +0 -361
  666. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping.rb +0 -361
  667. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +0 -163
  668. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping.rb +0 -361
  669. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +0 -137
  670. data/lib/twilio-ruby/rest/authy/v1/form.rb +0 -197
  671. data/lib/twilio-ruby/rest/authy/v1/service/entity/factor/challenge.rb +0 -412
  672. data/lib/twilio-ruby/rest/authy/v1/service/entity/factor.rb +0 -486
  673. data/lib/twilio-ruby/rest/authy/v1/service/entity.rb +0 -379
  674. data/lib/twilio-ruby/rest/authy/v1/service.rb +0 -385
  675. data/lib/twilio-ruby/rest/authy/v1.rb +0 -59
  676. data/lib/twilio-ruby/rest/authy.rb +0 -55
  677. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +0 -230
  678. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +0 -220
  679. data/lib/twilio-ruby/rest/autopilot/v1/assistant/export_assistant.rb +0 -222
  680. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +0 -408
  681. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +0 -435
  682. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +0 -409
  683. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +0 -463
  684. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +0 -228
  685. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +0 -399
  686. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +0 -466
  687. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +0 -265
  688. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +0 -243
  689. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +0 -524
  690. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +0 -437
  691. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +0 -683
  692. data/lib/twilio-ruby/rest/autopilot/v1.rb +0 -44
  693. data/lib/twilio-ruby/rest/autopilot.rb +0 -47
  694. data/lib/twilio-ruby/rest/conversations/v1/webhook.rb +0 -272
  695. data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +0 -322
  696. data/lib/twilio-ruby/rest/fax/v1/fax.rb +0 -552
  697. data/lib/twilio-ruby/rest/fax/v1.rb +0 -44
  698. data/lib/twilio-ruby/rest/fax.rb +0 -47
  699. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +0 -305
  700. data/lib/twilio-ruby/rest/messaging/v1/session/message.rb +0 -439
  701. data/lib/twilio-ruby/rest/messaging/v1/session/participant.rb +0 -458
  702. data/lib/twilio-ruby/rest/messaging/v1/session/webhook.rb +0 -444
  703. data/lib/twilio-ruby/rest/messaging/v1/session.rb +0 -513
  704. data/lib/twilio-ruby/rest/messaging/v1/webhook.rb +0 -299
  705. data/lib/twilio-ruby/rest/preview/acc_security/service/verification.rb +0 -185
  706. data/lib/twilio-ruby/rest/preview/acc_security/service/verification_check.rb +0 -182
  707. data/lib/twilio-ruby/rest/preview/acc_security/service.rb +0 -395
  708. data/lib/twilio-ruby/rest/preview/acc_security.rb +0 -43
  709. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +0 -211
  710. data/lib/twilio-ruby/rest/preview/bulk_exports/export/export_custom_job.rb +0 -298
  711. data/lib/twilio-ruby/rest/preview/bulk_exports/export/job.rb +0 -232
  712. data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +0 -248
  713. data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +0 -234
  714. data/lib/twilio-ruby/rest/preview/bulk_exports.rb +0 -58
  715. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_call.rb +0 -248
  716. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights/success_rate.rb +0 -264
  717. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights.rb +0 -111
  718. data/lib/twilio-ruby/rest/preview/trusted_comms/business.rb +0 -219
  719. data/lib/twilio-ruby/rest/preview/trusted_comms/cps.rb +0 -186
  720. data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +0 -263
  721. data/lib/twilio-ruby/rest/preview/trusted_comms/device.rb +0 -146
  722. data/lib/twilio-ruby/rest/preview/trusted_comms/phone_call.rb +0 -347
  723. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +0 -79
  724. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_fallback_actions.rb +0 -222
  725. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_initiation_actions.rb +0 -222
  726. data/lib/twilio-ruby/rest/preview/understand/assistant/dialogue.rb +0 -212
  727. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type/field_value.rb +0 -399
  728. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type.rb +0 -424
  729. data/lib/twilio-ruby/rest/preview/understand/assistant/model_build.rb +0 -397
  730. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +0 -454
  731. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +0 -222
  732. data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +0 -386
  733. data/lib/twilio-ruby/rest/preview/understand/assistant/task/sample.rb +0 -445
  734. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_actions.rb +0 -251
  735. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +0 -231
  736. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +0 -512
  737. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +0 -646
  738. data/lib/twilio-ruby/rest/preview/understand.rb +0 -44
  739. data/lib/twilio-ruby/rest/trunking/v1/trunk/terminating_sip_domain.rb +0 -418
  740. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +0 -414
  741. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +0 -343
  742. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +0 -191
  743. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb +0 -348
  744. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +0 -495
  745. data/spec/framework/request_spec.rb +0 -36
  746. data/spec/framework/serialize_spec.rb +0 -80
  747. data/spec/holodeck/holodeck.rb +0 -61
  748. data/spec/holodeck/hologram.rb +0 -4
  749. data/spec/http/http_client_spec.rb +0 -122
  750. data/spec/integration/accounts/v1/credential/aws_spec.rb +0 -226
  751. data/spec/integration/accounts/v1/credential/public_key_spec.rb +0 -226
  752. data/spec/integration/accounts/v1/credential_spec.rb +0 -12
  753. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +0 -107
  754. data/spec/integration/api/v2010/account/address_spec.rb +0 -273
  755. data/spec/integration/api/v2010/account/application_spec.rb +0 -279
  756. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +0 -139
  757. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +0 -103
  758. data/spec/integration/api/v2010/account/available_phone_number/machine_to_machine_spec.rb +0 -103
  759. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +0 -102
  760. data/spec/integration/api/v2010/account/available_phone_number/national_spec.rb +0 -103
  761. data/spec/integration/api/v2010/account/available_phone_number/shared_cost_spec.rb +0 -103
  762. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +0 -102
  763. data/spec/integration/api/v2010/account/available_phone_number/voip_spec.rb +0 -103
  764. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +0 -130
  765. data/spec/integration/api/v2010/account/balance_spec.rb +0 -45
  766. data/spec/integration/api/v2010/account/call/feedback_spec.rb +0 -139
  767. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +0 -151
  768. data/spec/integration/api/v2010/account/call/notification_spec.rb +0 -181
  769. data/spec/integration/api/v2010/account/call/recording_spec.rb +0 -287
  770. data/spec/integration/api/v2010/account/call_spec.rb +0 -624
  771. data/spec/integration/api/v2010/account/conference/participant_spec.rb +0 -477
  772. data/spec/integration/api/v2010/account/conference/recording_spec.rb +0 -237
  773. data/spec/integration/api/v2010/account/conference_spec.rb +0 -433
  774. data/spec/integration/api/v2010/account/connect_app_spec.rb +0 -201
  775. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +0 -137
  776. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +0 -223
  777. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +0 -191
  778. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +0 -191
  779. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +0 -191
  780. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +0 -345
  781. data/spec/integration/api/v2010/account/key_spec.rb +0 -180
  782. data/spec/integration/api/v2010/account/message/feedback_spec.rb +0 -50
  783. data/spec/integration/api/v2010/account/message/media_spec.rb +0 -164
  784. data/spec/integration/api/v2010/account/message_spec.rb +0 -473
  785. data/spec/integration/api/v2010/account/new_key_spec.rb +0 -47
  786. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +0 -47
  787. data/spec/integration/api/v2010/account/notification_spec.rb +0 -140
  788. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +0 -195
  789. data/spec/integration/api/v2010/account/queue/member_spec.rb +0 -210
  790. data/spec/integration/api/v2010/account/queue_spec.rb +0 -248
  791. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +0 -177
  792. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +0 -168
  793. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +0 -176
  794. data/spec/integration/api/v2010/account/recording_spec.rb +0 -187
  795. data/spec/integration/api/v2010/account/short_code_spec.rb +0 -182
  796. data/spec/integration/api/v2010/account/signing_key_spec.rb +0 -180
  797. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +0 -256
  798. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +0 -244
  799. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping_spec.rb +0 -220
  800. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping_spec.rb +0 -220
  801. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping_spec.rb +0 -12
  802. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping_spec.rb +0 -220
  803. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping_spec.rb +0 -12
  804. data/spec/integration/api/v2010/account/sip/domain/auth_types_spec.rb +0 -12
  805. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +0 -210
  806. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +0 -220
  807. data/spec/integration/api/v2010/account/sip/domain_spec.rb +0 -295
  808. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +0 -258
  809. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +0 -254
  810. data/spec/integration/api/v2010/account/sip_spec.rb +0 -12
  811. data/spec/integration/api/v2010/account/token_spec.rb +0 -60
  812. data/spec/integration/api/v2010/account/transcription_spec.rb +0 -169
  813. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +0 -114
  814. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +0 -114
  815. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +0 -114
  816. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +0 -114
  817. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +0 -114
  818. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +0 -114
  819. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +0 -114
  820. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +0 -114
  821. data/spec/integration/api/v2010/account/usage/record_spec.rb +0 -111
  822. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +0 -285
  823. data/spec/integration/api/v2010/account/usage_spec.rb +0 -12
  824. data/spec/integration/api/v2010/account/validation_request_spec.rb +0 -48
  825. data/spec/integration/api/v2010/account_spec.rb +0 -286
  826. data/spec/integration/authy/v1/form_spec.rb +0 -48
  827. data/spec/integration/authy/v1/service/entity/factor/challenge_spec.rb +0 -267
  828. data/spec/integration/authy/v1/service/entity/factor_spec.rb +0 -273
  829. data/spec/integration/authy/v1/service/entity_spec.rb +0 -201
  830. data/spec/integration/authy/v1/service_spec.rb +0 -227
  831. data/spec/integration/autopilot/v1/assistant/defaults_spec.rb +0 -81
  832. data/spec/integration/autopilot/v1/assistant/dialogue_spec.rb +0 -47
  833. data/spec/integration/autopilot/v1/assistant/export_assistant_spec.rb +0 -49
  834. data/spec/integration/autopilot/v1/assistant/field_type/field_value_spec.rb +0 -210
  835. data/spec/integration/autopilot/v1/assistant/field_type_spec.rb +0 -246
  836. data/spec/integration/autopilot/v1/assistant/model_build_spec.rb +0 -241
  837. data/spec/integration/autopilot/v1/assistant/query_spec.rb +0 -290
  838. data/spec/integration/autopilot/v1/assistant/style_sheet_spec.rb +0 -81
  839. data/spec/integration/autopilot/v1/assistant/task/field_spec.rb +0 -207
  840. data/spec/integration/autopilot/v1/assistant/task/sample_spec.rb +0 -253
  841. data/spec/integration/autopilot/v1/assistant/task/task_actions_spec.rb +0 -87
  842. data/spec/integration/autopilot/v1/assistant/task/task_statistics_spec.rb +0 -50
  843. data/spec/integration/autopilot/v1/assistant/task_spec.rb +0 -262
  844. data/spec/integration/autopilot/v1/assistant/webhook_spec.rb +0 -246
  845. data/spec/integration/autopilot/v1/assistant_spec.rb +0 -286
  846. data/spec/integration/chat/v1/credential_spec.rb +0 -223
  847. data/spec/integration/chat/v1/service/channel/invite_spec.rb +0 -210
  848. data/spec/integration/chat/v1/service/channel/member_spec.rb +0 -284
  849. data/spec/integration/chat/v1/service/channel/message_spec.rb +0 -294
  850. data/spec/integration/chat/v1/service/channel_spec.rb +0 -277
  851. data/spec/integration/chat/v1/service/role_spec.rb +0 -263
  852. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +0 -94
  853. data/spec/integration/chat/v1/service/user_spec.rb +0 -266
  854. data/spec/integration/chat/v1/service_spec.rb +0 -299
  855. data/spec/integration/chat/v2/credential_spec.rb +0 -223
  856. data/spec/integration/chat/v2/service/binding_spec.rb +0 -177
  857. data/spec/integration/chat/v2/service/channel/invite_spec.rb +0 -210
  858. data/spec/integration/chat/v2/service/channel/member_spec.rb +0 -261
  859. data/spec/integration/chat/v2/service/channel/message_spec.rb +0 -405
  860. data/spec/integration/chat/v2/service/channel/webhook_spec.rb +0 -307
  861. data/spec/integration/chat/v2/service/channel_spec.rb +0 -281
  862. data/spec/integration/chat/v2/service/role_spec.rb +0 -263
  863. data/spec/integration/chat/v2/service/user/user_binding_spec.rb +0 -180
  864. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +0 -251
  865. data/spec/integration/chat/v2/service/user_spec.rb +0 -270
  866. data/spec/integration/chat/v2/service_spec.rb +0 -354
  867. data/spec/integration/conversations/v1/conversation/message_spec.rb +0 -293
  868. data/spec/integration/conversations/v1/conversation/participant_spec.rb +0 -290
  869. data/spec/integration/conversations/v1/conversation/webhook_spec.rb +0 -286
  870. data/spec/integration/conversations/v1/conversation_spec.rb +0 -222
  871. data/spec/integration/conversations/v1/webhook_spec.rb +0 -88
  872. data/spec/integration/fax/v1/fax/fax_media_spec.rb +0 -128
  873. data/spec/integration/fax/v1/fax_spec.rb +0 -271
  874. data/spec/integration/flex_api/v1/channel_spec.rb +0 -191
  875. data/spec/integration/flex_api/v1/configuration_spec.rb +0 -449
  876. data/spec/integration/flex_api/v1/flex_flow_spec.rb +0 -263
  877. data/spec/integration/flex_api/v1/web_channel_spec.rb +0 -220
  878. data/spec/integration/insights/v1/call/event_spec.rb +0 -167
  879. data/spec/integration/insights/v1/call/metric_spec.rb +0 -155
  880. data/spec/integration/insights/v1/call/summary_spec.rb +0 -63
  881. data/spec/integration/insights/v1/call_spec.rb +0 -47
  882. data/spec/integration/ip_messaging/v1/credential_spec.rb +0 -223
  883. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +0 -210
  884. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +0 -284
  885. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +0 -294
  886. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +0 -277
  887. data/spec/integration/ip_messaging/v1/service/role_spec.rb +0 -263
  888. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +0 -94
  889. data/spec/integration/ip_messaging/v1/service/user_spec.rb +0 -266
  890. data/spec/integration/ip_messaging/v1/service_spec.rb +0 -299
  891. data/spec/integration/ip_messaging/v2/credential_spec.rb +0 -223
  892. data/spec/integration/ip_messaging/v2/service/binding_spec.rb +0 -177
  893. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +0 -210
  894. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +0 -261
  895. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +0 -405
  896. data/spec/integration/ip_messaging/v2/service/channel/webhook_spec.rb +0 -307
  897. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +0 -281
  898. data/spec/integration/ip_messaging/v2/service/role_spec.rb +0 -263
  899. data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +0 -180
  900. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +0 -251
  901. data/spec/integration/ip_messaging/v2/service/user_spec.rb +0 -270
  902. data/spec/integration/ip_messaging/v2/service_spec.rb +0 -354
  903. data/spec/integration/lookups/v1/phone_number_spec.rb +0 -337
  904. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +0 -170
  905. data/spec/integration/messaging/v1/service/phone_number_spec.rb +0 -201
  906. data/spec/integration/messaging/v1/service/short_code_spec.rb +0 -179
  907. data/spec/integration/messaging/v1/service_spec.rb +0 -271
  908. data/spec/integration/messaging/v1/session/message_spec.rb +0 -238
  909. data/spec/integration/messaging/v1/session/participant_spec.rb +0 -256
  910. data/spec/integration/messaging/v1/session/webhook_spec.rb +0 -300
  911. data/spec/integration/messaging/v1/session_spec.rb +0 -227
  912. data/spec/integration/messaging/v1/webhook_spec.rb +0 -94
  913. data/spec/integration/monitor/v1/alert_spec.rb +0 -140
  914. data/spec/integration/monitor/v1/event_spec.rb +0 -150
  915. data/spec/integration/notify/v1/credential_spec.rb +0 -223
  916. data/spec/integration/notify/v1/service/binding_spec.rb +0 -225
  917. data/spec/integration/notify/v1/service/notification_spec.rb +0 -99
  918. data/spec/integration/notify/v1/service_spec.rb +0 -294
  919. data/spec/integration/preview/acc_security/service/verification_check_spec.rb +0 -52
  920. data/spec/integration/preview/acc_security/service/verification_spec.rb +0 -52
  921. data/spec/integration/preview/acc_security/service_spec.rb +0 -185
  922. data/spec/integration/preview/bulk_exports/export/day_spec.rb +0 -58
  923. data/spec/integration/preview/bulk_exports/export/export_custom_job_spec.rb +0 -129
  924. data/spec/integration/preview/bulk_exports/export/job_spec.rb +0 -77
  925. data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +0 -79
  926. data/spec/integration/preview/bulk_exports/export_spec.rb +0 -45
  927. data/spec/integration/preview/deployed_devices/fleet/certificate_spec.rb +0 -238
  928. data/spec/integration/preview/deployed_devices/fleet/deployment_spec.rb +0 -233
  929. data/spec/integration/preview/deployed_devices/fleet/device_spec.rb +0 -249
  930. data/spec/integration/preview/deployed_devices/fleet/key_spec.rb +0 -237
  931. data/spec/integration/preview/deployed_devices/fleet_spec.rb +0 -246
  932. data/spec/integration/preview/hosted_numbers/authorization_document/dependent_hosted_number_order_spec.rb +0 -111
  933. data/spec/integration/preview/hosted_numbers/authorization_document_spec.rb +0 -227
  934. data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +0 -393
  935. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +0 -123
  936. data/spec/integration/preview/marketplace/available_add_on_spec.rb +0 -144
  937. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +0 -164
  938. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +0 -254
  939. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +0 -204
  940. data/spec/integration/preview/sync/service/document_spec.rb +0 -254
  941. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +0 -254
  942. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +0 -204
  943. data/spec/integration/preview/sync/service/sync_list_spec.rb +0 -209
  944. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +0 -254
  945. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +0 -204
  946. data/spec/integration/preview/sync/service/sync_map_spec.rb +0 -209
  947. data/spec/integration/preview/sync/service_spec.rb +0 -246
  948. data/spec/integration/preview/trusted_comms/branded_call_spec.rb +0 -59
  949. data/spec/integration/preview/trusted_comms/business/insights/success_rate_spec.rb +0 -58
  950. data/spec/integration/preview/trusted_comms/business/insights_spec.rb +0 -12
  951. data/spec/integration/preview/trusted_comms/business_spec.rb +0 -46
  952. data/spec/integration/preview/trusted_comms/cps_spec.rb +0 -43
  953. data/spec/integration/preview/trusted_comms/current_call_spec.rb +0 -54
  954. data/spec/integration/preview/trusted_comms/device_spec.rb +0 -45
  955. data/spec/integration/preview/trusted_comms/phone_call_spec.rb +0 -59
  956. data/spec/integration/preview/understand/assistant/assistant_fallback_actions_spec.rb +0 -81
  957. data/spec/integration/preview/understand/assistant/assistant_initiation_actions_spec.rb +0 -81
  958. data/spec/integration/preview/understand/assistant/dialogue_spec.rb +0 -47
  959. data/spec/integration/preview/understand/assistant/field_type/field_value_spec.rb +0 -210
  960. data/spec/integration/preview/understand/assistant/field_type_spec.rb +0 -246
  961. data/spec/integration/preview/understand/assistant/model_build_spec.rb +0 -241
  962. data/spec/integration/preview/understand/assistant/query_spec.rb +0 -306
  963. data/spec/integration/preview/understand/assistant/style_sheet_spec.rb +0 -81
  964. data/spec/integration/preview/understand/assistant/task/field_spec.rb +0 -207
  965. data/spec/integration/preview/understand/assistant/task/sample_spec.rb +0 -253
  966. data/spec/integration/preview/understand/assistant/task/task_actions_spec.rb +0 -87
  967. data/spec/integration/preview/understand/assistant/task/task_statistics_spec.rb +0 -50
  968. data/spec/integration/preview/understand/assistant/task_spec.rb +0 -262
  969. data/spec/integration/preview/understand/assistant_spec.rb +0 -274
  970. data/spec/integration/preview/wireless/command_spec.rb +0 -169
  971. data/spec/integration/preview/wireless/rate_plan_spec.rb +0 -262
  972. data/spec/integration/preview/wireless/sim/usage_spec.rb +0 -51
  973. data/spec/integration/preview/wireless/sim_spec.rb +0 -210
  974. data/spec/integration/pricing/v1/messaging/country_spec.rb +0 -139
  975. data/spec/integration/pricing/v1/messaging_spec.rb +0 -12
  976. data/spec/integration/pricing/v1/phone_number/country_spec.rb +0 -130
  977. data/spec/integration/pricing/v1/phone_number_spec.rb +0 -12
  978. data/spec/integration/pricing/v1/voice/country_spec.rb +0 -140
  979. data/spec/integration/pricing/v1/voice/number_spec.rb +0 -56
  980. data/spec/integration/pricing/v1/voice_spec.rb +0 -12
  981. data/spec/integration/pricing/v2/voice/country_spec.rb +0 -181
  982. data/spec/integration/pricing/v2/voice/number_spec.rb +0 -62
  983. data/spec/integration/pricing/v2/voice_spec.rb +0 -12
  984. data/spec/integration/proxy/v1/service/phone_number_spec.rb +0 -236
  985. data/spec/integration/proxy/v1/service/session/interaction_spec.rb +0 -136
  986. data/spec/integration/proxy/v1/service/session/participant/message_interaction_spec.rb +0 -166
  987. data/spec/integration/proxy/v1/service/session/participant_spec.rb +0 -243
  988. data/spec/integration/proxy/v1/service/session_spec.rb +0 -230
  989. data/spec/integration/proxy/v1/service/short_code_spec.rb +0 -229
  990. data/spec/integration/proxy/v1/service_spec.rb +0 -218
  991. data/spec/integration/serverless/v1/service/asset/asset_version_spec.rb +0 -95
  992. data/spec/integration/serverless/v1/service/asset_spec.rb +0 -205
  993. data/spec/integration/serverless/v1/service/build_spec.rb +0 -212
  994. data/spec/integration/serverless/v1/service/environment/deployment_spec.rb +0 -137
  995. data/spec/integration/serverless/v1/service/environment/log_spec.rb +0 -98
  996. data/spec/integration/serverless/v1/service/environment/variable_spec.rb +0 -211
  997. data/spec/integration/serverless/v1/service/environment_spec.rb +0 -173
  998. data/spec/integration/serverless/v1/service/function/function_version_spec.rb +0 -95
  999. data/spec/integration/serverless/v1/service/function_spec.rb +0 -205
  1000. data/spec/integration/serverless/v1/service_spec.rb +0 -206
  1001. data/spec/integration/studio/v1/flow/engagement/engagement_context_spec.rb +0 -51
  1002. data/spec/integration/studio/v1/flow/engagement/step/step_context_spec.rb +0 -54
  1003. data/spec/integration/studio/v1/flow/engagement/step_spec.rb +0 -101
  1004. data/spec/integration/studio/v1/flow/engagement_spec.rb +0 -171
  1005. data/spec/integration/studio/v1/flow/execution/execution_context_spec.rb +0 -51
  1006. data/spec/integration/studio/v1/flow/execution/execution_step/execution_step_context_spec.rb +0 -54
  1007. data/spec/integration/studio/v1/flow/execution/execution_step_spec.rb +0 -101
  1008. data/spec/integration/studio/v1/flow/execution_spec.rb +0 -171
  1009. data/spec/integration/studio/v1/flow_spec.rb +0 -117
  1010. data/spec/integration/sync/v1/service/document/document_permission_spec.rb +0 -204
  1011. data/spec/integration/sync/v1/service/document_spec.rb +0 -257
  1012. data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +0 -257
  1013. data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +0 -204
  1014. data/spec/integration/sync/v1/service/sync_list_spec.rb +0 -257
  1015. data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +0 -257
  1016. data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +0 -204
  1017. data/spec/integration/sync/v1/service/sync_map_spec.rb +0 -257
  1018. data/spec/integration/sync/v1/service/sync_stream/stream_message_spec.rb +0 -47
  1019. data/spec/integration/sync/v1/service/sync_stream_spec.rb +0 -249
  1020. data/spec/integration/sync/v1/service_spec.rb +0 -266
  1021. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +0 -236
  1022. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +0 -165
  1023. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +0 -225
  1024. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +0 -316
  1025. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics_spec.rb +0 -96
  1026. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics_spec.rb +0 -82
  1027. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +0 -108
  1028. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +0 -146
  1029. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +0 -294
  1030. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +0 -326
  1031. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +0 -194
  1032. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +0 -188
  1033. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +0 -92
  1034. data/spec/integration/taskrouter/v1/workspace/worker/workers_cumulative_statistics_spec.rb +0 -89
  1035. data/spec/integration/taskrouter/v1/workspace/worker/workers_real_time_statistics_spec.rb +0 -70
  1036. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +0 -116
  1037. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +0 -294
  1038. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics_spec.rb +0 -97
  1039. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_real_time_statistics_spec.rb +0 -58
  1040. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +0 -71
  1041. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +0 -270
  1042. data/spec/integration/taskrouter/v1/workspace/workspace_cumulative_statistics_spec.rb +0 -94
  1043. data/spec/integration/taskrouter/v1/workspace/workspace_real_time_statistics_spec.rb +0 -73
  1044. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +0 -105
  1045. data/spec/integration/taskrouter/v1/workspace_spec.rb +0 -295
  1046. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +0 -192
  1047. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +0 -192
  1048. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +0 -252
  1049. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +0 -267
  1050. data/spec/integration/trunking/v1/trunk/terminating_sip_domain_spec.rb +0 -231
  1051. data/spec/integration/trunking/v1/trunk_spec.rb +0 -368
  1052. data/spec/integration/verify/v2/service/messaging_configuration_spec.rb +0 -231
  1053. data/spec/integration/verify/v2/service/rate_limit/bucket_spec.rb +0 -249
  1054. data/spec/integration/verify/v2/service/rate_limit_spec.rb +0 -221
  1055. data/spec/integration/verify/v2/service/verification_check_spec.rb +0 -54
  1056. data/spec/integration/verify/v2/service/verification_spec.rb +0 -277
  1057. data/spec/integration/verify/v2/service_spec.rb +0 -243
  1058. data/spec/integration/video/v1/composition_hook_spec.rb +0 -410
  1059. data/spec/integration/video/v1/composition_settings_spec.rb +0 -86
  1060. data/spec/integration/video/v1/composition_spec.rb +0 -350
  1061. data/spec/integration/video/v1/recording_settings_spec.rb +0 -86
  1062. data/spec/integration/video/v1/recording_spec.rb +0 -179
  1063. data/spec/integration/video/v1/room/recording_spec.rb +0 -188
  1064. data/spec/integration/video/v1/room/room_participant/room_participant_published_track_spec.rb +0 -96
  1065. data/spec/integration/video/v1/room/room_participant/room_participant_subscribe_rule_spec.rb +0 -105
  1066. data/spec/integration/video/v1/room/room_participant/room_participant_subscribed_track_spec.rb +0 -97
  1067. data/spec/integration/video/v1/room/room_participant_spec.rb +0 -190
  1068. data/spec/integration/video/v1/room_spec.rb +0 -257
  1069. data/spec/integration/voice/v1/dialing_permissions/bulk_country_update_spec.rb +0 -45
  1070. data/spec/integration/voice/v1/dialing_permissions/country/highrisk_special_prefix_spec.rb +0 -61
  1071. data/spec/integration/voice/v1/dialing_permissions/country_spec.rb +0 -112
  1072. data/spec/integration/voice/v1/dialing_permissions/settings_spec.rb +0 -77
  1073. data/spec/integration/voice/v1/dialing_permissions_spec.rb +0 -12
  1074. data/spec/integration/wireless/v1/command_spec.rb +0 -289
  1075. data/spec/integration/wireless/v1/rate_plan_spec.rb +0 -282
  1076. data/spec/integration/wireless/v1/sim/data_session_spec.rb +0 -89
  1077. data/spec/integration/wireless/v1/sim/usage_record_spec.rb +0 -115
  1078. data/spec/integration/wireless/v1/sim_spec.rb +0 -329
  1079. data/spec/integration/wireless/v1/usage_record_spec.rb +0 -111
  1080. data/spec/jwt/access_token_spec.rb +0 -151
  1081. data/spec/jwt/client_capability_spec.rb +0 -104
  1082. data/spec/jwt/task_router_spec.rb +0 -172
  1083. data/spec/rack/twilio_webhook_authentication_spec.rb +0 -106
  1084. data/spec/rest/client_spec.rb +0 -83
  1085. data/spec/security/request_validator_spec.rb +0 -125
  1086. data/spec/spec_helper.rb +0 -38
  1087. data/spec/support/fakeweb.rb +0 -2
  1088. data/spec/twilio_spec.rb +0 -17
  1089. data/spec/twiml/messaging_response_spec.rb +0 -235
  1090. data/spec/twiml/voice_response_spec.rb +0 -847
  1091. data/spec/util/configuration_spec.rb +0 -21
  1092. data/spec/util/url_encode_spec.rb +0 -12
  1093. /data/lib/twilio-ruby/framework/{domain.rb → rest/domain.rb} +0 -0
  1094. /data/lib/twilio-ruby/framework/{helper.rb → rest/helper.rb} +0 -0
  1095. /data/lib/twilio-ruby/framework/{obsolete_client.rb → rest/obsolete_client.rb} +0 -0
  1096. /data/lib/twilio-ruby/framework/{page.rb → rest/page.rb} +0 -0
  1097. /data/lib/twilio-ruby/framework/{resource.rb → rest/resource.rb} +0 -0
@@ -0,0 +1,170 @@
1
+ # Custom HTTP Clients for the Twilio Ruby Helper Library
2
+
3
+ If you are working with the Twilio Ruby Helper Library, and you need to be able to modify the HTTP requests that the library makes to the Twilio servers, you’re in the right place. The most common need to alter the HTTP request is to connect and authenticate with an enterprise’s proxy server. We’ll provide sample code that you can drop right into your app to handle this use case.
4
+
5
+ Connect and authenticate with a proxy server
6
+ To connect and provide credentials to a proxy server that may be between your app and Twilio, you need a way to modify the HTTP requests that the Twilio helper library makes on your behalf to invoke the Twilio REST API.
7
+
8
+ The Twilio Ruby helper library uses the [Faraday](https://rubygems.org/gems/faraday) gem under the hood to make the HTTP requests. The following example shows a typical request, without a custom `http_client`:
9
+
10
+ ```rb
11
+ @client = Twilio::REST::Client.new(account_sid, auth_token)
12
+
13
+ message = @client.messages
14
+ .create(
15
+ to: "+15558675310",
16
+ body: "Hey there!",
17
+ from: "+15017122661",
18
+ )
19
+ ```
20
+
21
+ Out of the box, the helper library is creating a default `Twilio::Http::Client` for you, using the Twilio credentials you provide. However, you can create your own `Twilio::Http::Client`, and pass it to any Twilio REST API resource action you want.
22
+
23
+ Here’s an example of sending an SMS message with a custom client:
24
+
25
+ ```rb
26
+ # Download the helper library from https://www.twilio.com/docs/ruby/install
27
+ require "rubygems"
28
+ require "twilio-ruby"
29
+ require "dotenv/load"
30
+
31
+ # Custom HTTP Client
32
+ require_relative "MyRequestClass"
33
+
34
+ # Your Account Sid and Auth Token from twilio.com/console
35
+ account_sid = ENV["ACCOUNT_SID"]
36
+ auth_token = ENV["AUTH_TOKEN"]
37
+ proxy_address = ENV["PROXY_ADDRESS"]
38
+ proxy_protocol = ENV["PROXY_PROTOCOL"]
39
+ proxy_port = ENV["PROXY_PORT"]
40
+
41
+ my_request_client = MyRequestClass.new(proxy_protocol, proxy_address, proxy_port)
42
+
43
+ @client = Twilio::REST::Client.new(account_sid, auth_token,
44
+ nil, nil, my_request_client)
45
+
46
+ message = @client.messages
47
+ .create(
48
+ to: "+593978613041",
49
+ body: "RB This is the ship that made the Kesssssel Run in fourteen parsecs?",
50
+ from: "+13212855389",
51
+ )
52
+
53
+ puts "Message SID: #{message.sid}"
54
+ ```
55
+
56
+ ## Create your custom TwilioRestClient
57
+
58
+ When you take a closer look at the constructor for `Twilio::Http::Client`, you see that this class provides it to the Twilio helper library to make the necessary HTTP requests.
59
+
60
+ ## Call Twilio through the proxy server
61
+
62
+ Now that we understand how all the components fit together, we can create our own `http_client` that can connect through a proxy server. To make this reusable, here’s a class that you can use to create this `http_client` whenever you need one.
63
+
64
+ ```rb
65
+ class MyRequestClass
66
+ attr_accessor :adapter
67
+ attr_reader :timeout, :last_response, :last_request
68
+
69
+ def initialize(proxy_prot = nil, proxy_addr = nil, proxy_port = nil, timeout: nil)
70
+ @proxy_prot = proxy_prot
71
+ @proxy_addr = proxy_addr
72
+ @proxy_port = proxy_port
73
+ @timeout = timeout
74
+ @adapter = Faraday.default_adapter
75
+ end
76
+
77
+ def _request(request)
78
+ @connection = Faraday.new(url: request.host + ":" + request.port.to_s, ssl: { verify: true }) do |f|
79
+ f.options.params_encoder = Faraday::FlatParamsEncoder
80
+ f.request :url_encoded
81
+ f.adapter @adapter
82
+ f.headers = request.headers
83
+ f.basic_auth(request.auth[0], request.auth[1])
84
+ if @proxy_addr
85
+ f.proxy = "#{@proxy_prot}://#{@proxy_addr}:#{@proxy_port}"
86
+ end
87
+ f.options.open_timeout = request.timeout || @timeout
88
+ f.options.timeout = request.timeout || @timeout
89
+ end
90
+
91
+ @last_request = request
92
+ @last_response = nil
93
+ response = @connection.send(request.method.downcase.to_sym,
94
+ request.url,
95
+ request.method == "GET" ? request.params : request.data)
96
+
97
+ if response.body && !response.body.empty?
98
+ object = response.body
99
+ elsif response.status == 400
100
+ object = { message: "Bad request", code: 400 }.to_json
101
+ end
102
+
103
+ twilio_response = Twilio::Response.new(response.status, object, headers: response.headers)
104
+ @last_response = twilio_response
105
+
106
+ twilio_response
107
+ end
108
+
109
+ def request(host, port, method, url, params = {}, data = {}, headers = {}, auth = nil, timeout = nil)
110
+ request = Twilio::Request.new(host, port, method, url, params, data, headers, auth, timeout)
111
+ _request(request)
112
+ end
113
+ end
114
+ ```
115
+
116
+ In this example, we are using some environment variables loaded at the program startup to retrieve various configuration settings:
117
+
118
+ - Your Twilio Account Sid and Auth Token ([found here, in the Twilio console](https://console.twilio.com))
119
+ - A proxy address in the form of `http://127.0.0.1:8888`
120
+
121
+ These settings are located in a file like `.env` like so:
122
+
123
+ ```env
124
+ ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
125
+ AUTH_TOKEN= your_auth_token
126
+
127
+ HTTPS_PROXY=https://127.0.0.1:8888
128
+ HTTP_PROXY=http://127.0.0.1:8888
129
+ ```
130
+
131
+ Here’s the full console program that sends a text message and shows how it all can work together. It loads the `.env` file.
132
+
133
+ ```rb
134
+ # Download the helper library from https://www.twilio.com/docs/ruby/install
135
+ require "rubygems"
136
+ require "twilio-ruby"
137
+ require "dotenv/load"
138
+
139
+ # Custom HTTP Client
140
+ require_relative "MyRequestClass"
141
+
142
+ # Your Account Sid and Auth Token from twilio.com/console
143
+ account_sid = ENV["ACCOUNT_SID"]
144
+ auth_token = ENV["AUTH_TOKEN"]
145
+ proxy_address = ENV["PROXY_ADDRESS"]
146
+ proxy_protocol = ENV["PROXY_PROTOCOL"]
147
+ proxy_port = ENV["PROXY_PORT"]
148
+
149
+ my_request_client = MyRequestClass.new(proxy_protocol, proxy_address, proxy_port)
150
+
151
+ @client = Twilio::REST::Client.new(account_sid, auth_token,
152
+ nil, nil, my_request_client)
153
+
154
+ message = @client.messages
155
+ .create(
156
+ to: "+593978613041",
157
+ body: "RB This is the ship that made the Kesssssel Run in fourteen parsecs?",
158
+ from: "+13212855389",
159
+ )
160
+
161
+ puts "Message SID: #{message.sid}"
162
+ ```
163
+
164
+ ## What else can this technique be used for?
165
+
166
+ Now that you know how to inject your own `http_client` into the Twilio API request pipeline, you could use this technique to add custom HTTP headers and authorization to the requests (perhaps as required by an upstream proxy server).
167
+
168
+ You could also implement your own `http_client` to mock the Twilio API responses so your unit and integration tests can run quickly without the need to make a connection to Twilio. In fact, there’s already an example online showing [how to do exactly that with Node.js and Prism](https://www.twilio.com/docs/openapi/mock-api-generation-with-twilio-openapi-spec).
169
+
170
+ We can’t wait to see what you build!
data/cluster_spec.rb ADDED
@@ -0,0 +1,77 @@
1
+ require 'rspec/matchers'
2
+ require 'twilio-ruby'
3
+
4
+ # rubocop:disable Metrics/BlockLength
5
+ describe 'Cluster Test' do
6
+ before(:each) do
7
+ @account_sid = ENV['TWILIO_ACCOUNT_SID']
8
+ @secret = ENV['TWILIO_API_SECRET']
9
+ @api_key = ENV['TWILIO_API_KEY']
10
+ @to_number = ENV['TWILIO_TO_NUMBER']
11
+ @from_number = ENV['TWILIO_FROM_NUMBER']
12
+ @client = Twilio::REST::Client.new @api_key, @secret, @account_sid
13
+ end
14
+
15
+ it 'can send a text' do
16
+ message = @client.messages.create(
17
+ to: @to_number,
18
+ from: @from_number,
19
+ body: 'Cluster test message from twilio-ruby'
20
+ )
21
+ expect(message).to_not eq(nil)
22
+ expect(message.body.include?('Cluster test message from twilio-ruby')).to eq(true)
23
+ expect(message.from).to eq(@from_number)
24
+ expect(message.to).to eq(@to_number)
25
+ end
26
+
27
+ it 'can list numbers' do
28
+ phone_numbers = @client.incoming_phone_numbers.list
29
+ expect(phone_numbers).to_not eq(nil)
30
+ expect(phone_numbers).to_not match_array([])
31
+ end
32
+
33
+ it 'list a number' do
34
+ phone_numbers = @client.incoming_phone_numbers.list(phone_number: @from_number)
35
+ expect(phone_numbers).to_not eq(nil)
36
+ expect(phone_numbers[0].phone_number).to eq(@from_number)
37
+ end
38
+
39
+ it 'allows special characters for friendly and identity name' do
40
+ service = @client.chat.v2.services.create(friendly_name: 'service|friendly&name')
41
+ expect(service).to_not eq(nil)
42
+
43
+ user = @client.chat.v2.services(service.sid).users.create(identity: 'user|identity&string')
44
+ expect(user).to_not eq(nil)
45
+
46
+ is_user_deleted = @client.chat.v2.services(service.sid).users(user.sid).delete
47
+ expect(is_user_deleted).to eq(true)
48
+
49
+ is_service_deleted = @client.chat.v2.services(service.sid).delete
50
+ expect(is_service_deleted).to eq(true)
51
+ end
52
+
53
+ it 'test list params' do
54
+ sink_configuration = { 'destination' => 'http://example.org/webhook', 'method' => 'post',
55
+ 'batch_events' => false }
56
+ types = [{ 'type' => 'com.twilio.messaging.message.delivered' },
57
+ { 'type' => 'com.twilio.messaging.message.sent' }]
58
+
59
+ sink = @client.events.v1.sinks.create(
60
+ description: 'test sink ruby',
61
+ sink_configuration: sink_configuration,
62
+ sink_type: 'webhook'
63
+ )
64
+ expect(sink).to_not eq(nil)
65
+
66
+ subscription = @client.events.v1.subscriptions.create(
67
+ description: 'test subscription ruby',
68
+ types: types,
69
+ sink_sid: sink.sid
70
+ )
71
+ expect(subscription).to_not eq(nil)
72
+
73
+ expect(@client.events.v1.subscriptions(subscription.sid).delete).to eq(true)
74
+ expect(@client.events.v1.sinks(sink.sid).delete).to eq(true)
75
+ end
76
+ end
77
+ # rubocop:enable Metrics/BlockLength
data/examples/examples.rb CHANGED
@@ -69,7 +69,7 @@ puts @client.messages('SMXXXXXXXX').fetch.body
69
69
  @client.messages.create(
70
70
  from: '+14159341234',
71
71
  to: '+16105557069',
72
- media_urls: 'http://example.com/media.png'
72
+ media_url: 'http://example.com/media.png'
73
73
  )
74
74
 
75
75
  ################ PHONE NUMBERS ################
data/githooks/pre-commit CHANGED
File without changes
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'rack/media_type'
4
+
3
5
  module Rack
4
6
  # Middleware that authenticates webhooks from Twilio using the request
5
7
  # validator.
@@ -19,6 +21,10 @@ module Rack
19
21
  # doesn't validate then the middleware responds immediately with a 403 status.
20
22
 
21
23
  class TwilioWebhookAuthentication
24
+ # Rack's FORM_DATA_MEDIA_TYPES can be modified to taste, so we're slightly
25
+ # more conservative in what we consider form data.
26
+ FORM_URLENCODED_MEDIA_TYPE = Rack::MediaType.type('application/x-www-form-urlencoded')
27
+
22
28
  def initialize(app, auth_token, *paths, &auth_token_lookup)
23
29
  @app = app
24
30
  @auth_token = auth_token
@@ -30,7 +36,7 @@ module Rack
30
36
  return @app.call(env) unless env['PATH_INFO'].match(@path_regex)
31
37
  request = Rack::Request.new(env)
32
38
  original_url = request.url
33
- params = request.post? ? request.POST : {}
39
+ params = extract_params!(request)
34
40
  auth_token = @auth_token || get_auth_token(params['AccountSid'])
35
41
  validator = Twilio::Security::RequestValidator.new(auth_token)
36
42
  signature = env['HTTP_X_TWILIO_SIGNATURE'] || ''
@@ -44,5 +50,23 @@ module Rack
44
50
  ]
45
51
  end
46
52
  end
53
+
54
+ # Extract the params from the the request that we can use to determine the
55
+ # signature. This _may_ modify the passed in request since it may read/rewind
56
+ # the body.
57
+ def extract_params!(request)
58
+ return {} unless request.post?
59
+
60
+ if request.media_type == FORM_URLENCODED_MEDIA_TYPE
61
+ request.POST
62
+ else
63
+ request.body.rewind
64
+ body = request.body.read
65
+ request.body.rewind
66
+ body
67
+ end
68
+ end
69
+
70
+ private :extract_params!
47
71
  end
48
72
  end
@@ -0,0 +1,124 @@
1
+ module Twilio
2
+ module REST
3
+ class ClientBase
4
+ # rubocop:disable Style/ClassVars
5
+ @@default_region = 'us1'
6
+ # rubocop:enable Style/ClassVars
7
+
8
+ attr_accessor :http_client, :username, :password, :account_sid, :auth_token, :region, :edge, :logger,
9
+ :user_agent_extensions
10
+
11
+ # rubocop:disable Metrics/ParameterLists
12
+ def initialize(username = nil, password = nil, account_sid = nil, region = nil, http_client = nil, logger = nil,
13
+ user_agent_extensions = nil)
14
+ @username = username || Twilio.account_sid
15
+ @password = password || Twilio.auth_token
16
+ @region = region || Twilio.region
17
+ @edge = Twilio.edge
18
+ @account_sid = account_sid || @username
19
+ @auth_token = @password
20
+ @auth = [@username, @password]
21
+ @http_client = http_client || Twilio.http_client || Twilio::HTTP::Client.new
22
+ @logger = logger || Twilio.logger
23
+ @user_agent_extensions = user_agent_extensions || []
24
+ end
25
+ # rubocop:enable Metrics/ParameterLists
26
+
27
+ ##
28
+ # Makes a request to the Twilio API using the configured http client
29
+ # Authentication information is automatically added if none is provided
30
+ def request(host, port, method, uri, params = {}, data = {}, headers = {}, auth = nil, timeout = nil) # rubocop:disable Metrics/MethodLength
31
+ auth ||= @auth
32
+ headers = generate_headers(method, headers)
33
+ uri = build_uri(uri)
34
+
35
+ if @logger
36
+ @logger.debug('--BEGIN Twilio API Request--')
37
+ @logger.debug("Request Method: <#{method}>")
38
+
39
+ headers.each do |key, value|
40
+ @logger.debug("#{key}:#{value}") unless key.downcase == 'authorization'
41
+ end
42
+
43
+ url = URI(uri)
44
+ @logger.debug("Host:#{url.host}")
45
+ @logger.debug("Path:#{url.path}")
46
+ @logger.debug("Query:#{url.query}")
47
+ @logger.debug("Request Params:#{params}")
48
+ end
49
+
50
+ response = @http_client.request(
51
+ host,
52
+ port,
53
+ method,
54
+ uri,
55
+ params,
56
+ data,
57
+ headers,
58
+ auth,
59
+ timeout
60
+ )
61
+
62
+ if @logger
63
+ @logger.debug("Response Status Code:#{response.status_code}")
64
+ @logger.debug("Response Headers:#{response.headers}")
65
+ @logger.debug('--END TWILIO API REQUEST--')
66
+ end
67
+
68
+ response
69
+ end
70
+
71
+ ##
72
+ # Build the final request uri
73
+ def build_uri(uri)
74
+ return uri if @region.nil? && @edge.nil?
75
+
76
+ parsed_url = URI(uri)
77
+ pieces = parsed_url.host.split('.')
78
+ product = pieces[0]
79
+ domain = pieces[-2, 2]
80
+ new_edge = @edge
81
+ new_region = @region
82
+
83
+ case pieces.length
84
+ when 4
85
+ new_region ||= pieces[1]
86
+ when 5
87
+ new_edge ||= pieces[1]
88
+ new_region ||= pieces[2]
89
+ end
90
+
91
+ new_region = @@default_region if !new_edge.nil? && new_region.nil?
92
+
93
+ parsed_url.host = [product, new_edge, new_region, domain].reject(&:nil?).join('.')
94
+ parsed_url.to_s
95
+ end
96
+
97
+ ##
98
+ # Validate the SSL certificates for the Twilio API
99
+ def validate_ssl_certificate
100
+ response = request('tls-test.twilio.com', '443', 'GET', 'https://tls-test.twilio.com')
101
+ return unless response.status_code < 200 || response.status_code >= 300
102
+
103
+ raise RestError.new 'Unexpected response from certificate endpoint', response
104
+ end
105
+
106
+ def generate_headers(method, headers)
107
+ ruby_config = RbConfig::CONFIG
108
+ headers['User-Agent'] =
109
+ "twilio-ruby/#{Twilio::VERSION} (#{ruby_config['host_os']} #{ruby_config['host_cpu']}) Ruby/#{RUBY_VERSION}"
110
+ headers['Accept-Charset'] = 'utf-8'
111
+
112
+ user_agent_extensions.each { |extension| headers['User-Agent'] += " #{extension}" }
113
+
114
+ if ['POST', 'PUT'].include?(method) && !headers['Content-Type']
115
+ headers['Content-Type'] =
116
+ 'application/x-www-form-urlencoded'
117
+ end
118
+
119
+ headers['Accept'] = 'application/json' unless headers['Accept']
120
+ headers
121
+ end
122
+ end
123
+ end
124
+ end
@@ -32,7 +32,14 @@ module Twilio
32
32
  data = ''
33
33
  unless @data.nil? || @data.empty?
34
34
  data = @method.equal?('GET') ? "\n -G" : "\n"
35
- data += @data.each.map { |key, value| "-d \"#{key}\"=\"#{value}\"" }.join("\n")
35
+ data += case @headers['Content-Type']
36
+ when 'application/x-www-form-urlencoded'
37
+ @data.each.map { |key, value| "-d \"#{key}\"=\"#{value}\"" }.join("\n")
38
+ when 'application/json'
39
+ "-d '#{JSON.generate(@data)}'"
40
+ else
41
+ @data.each.map { |key, value| "-d \"#{key}\"=\"#{value}\"" }.join("\n")
42
+ end
36
43
  end
37
44
 
38
45
  "#{auth} #{@method} #{@url}#{params}#{data}#{headers}"
@@ -3,33 +3,21 @@
3
3
  module Twilio
4
4
  module REST
5
5
  class TwilioError < StandardError
6
- # @deprecated all errors that have a body are now 'Twilio::RestError's
7
- def body
8
- warn "'Twilio::REST::TwilioError#body' has been deprecated. No 'TwilioError' objects are raised with a body."
9
- nil
10
- end
11
6
  end
12
7
 
13
8
  class RestError < TwilioError
14
- attr_reader :message, :response, :code, :status_code, :detail, :more_info, :error_message
9
+ attr_reader :message, :response, :code, :status_code, :details, :more_info, :error_message
15
10
 
16
11
  def initialize(message, response)
17
12
  @status_code = response.status_code
18
13
  @code = response.body.fetch('code', @status_code)
19
- @detail = response.body.fetch('detail', nil)
14
+ @details = response.body.fetch('details', nil)
20
15
  @error_message = response.body.fetch('message', nil)
21
16
  @more_info = response.body.fetch('more_info', nil)
22
17
  @message = format_message(message)
23
18
  @response = response
24
19
  end
25
20
 
26
- # @deprecated use #response instead
27
- def body
28
- warn 'This error used to be a "Twilio::REST::TwilioError" but is now a "Twilio::REST::RestError". ' \
29
- 'Please use #response instead of #body.'
30
- @response
31
- end
32
-
33
21
  def to_s
34
22
  message
35
23
  end
@@ -39,7 +27,7 @@ module Twilio
39
27
  def format_message(initial_message)
40
28
  message = "[HTTP #{status_code}] #{code} : #{initial_message}"
41
29
  message += "\n#{error_message}" if error_message
42
- message += "\n#{detail}" if detail
30
+ message += "\n#{details}" if details
43
31
  message += "\n#{more_info}" if more_info
44
32
  message + "\n\n"
45
33
  end
@@ -57,7 +57,7 @@ module Twilio
57
57
  Twilio::REST::RestError.new(header, response)
58
58
  end
59
59
 
60
- def fetch(method, uri, params = {}, data = {}, headers = {}, auth = nil, timeout = nil)
60
+ def fetch(method, uri, params: {}, data: {}, headers: {}, auth: nil, timeout: nil)
61
61
  response = request(
62
62
  method,
63
63
  uri,
@@ -68,7 +68,8 @@ module Twilio
68
68
  timeout
69
69
  )
70
70
 
71
- if response.status_code < 200 || response.status_code >= 300
71
+ # Note that 3XX response codes are allowed for fetches.
72
+ if response.status_code < 200 || response.status_code >= 400
72
73
  raise exception(response, 'Unable to fetch record')
73
74
  end
74
75
 
@@ -93,7 +94,7 @@ module Twilio
93
94
  response.body
94
95
  end
95
96
 
96
- def delete(method, uri, params = {}, data = {}, headers = {}, auth = nil, timeout = nil)
97
+ def delete(method, uri, params: {}, data: {}, headers: {}, auth: nil, timeout: nil)
97
98
  response = request(
98
99
  method,
99
100
  uri,
@@ -112,22 +113,17 @@ module Twilio
112
113
  end
113
114
 
114
115
  def read_limits(limit = nil, page_size = nil)
115
- page_limit = nil
116
-
117
- unless limit.nil?
118
- # If there is no user-specified page_size, pick the most network efficient size
116
+ unless limit.nil? || page_size
119
117
  page_size = limit
120
- page_limit = (limit / page_size.to_f).ceil
121
118
  end
122
119
 
123
120
  {
124
121
  limit: limit || nil,
125
- page_size: page_size || nil,
126
- page_limit: page_limit
122
+ page_size: page_size || nil
127
123
  }
128
124
  end
129
125
 
130
- def page(method, uri, params = {}, data = {}, headers = {}, auth = nil, timeout = nil)
126
+ def page(method, uri, params: {}, data: {}, headers: {}, auth: nil, timeout: nil)
131
127
  request(
132
128
  method,
133
129
  uri,
@@ -6,35 +6,59 @@ module Twilio
6
6
  module HTTP
7
7
  class Client
8
8
  attr_accessor :adapter
9
- attr_reader :timeout, :last_response, :last_request
9
+ attr_reader :timeout, :last_response, :last_request, :connection
10
10
 
11
11
  def initialize(proxy_prot = nil, proxy_addr = nil, proxy_port = nil, proxy_user = nil, proxy_pass = nil,
12
- ssl_ca_file = nil, timeout: nil)
12
+ timeout: nil)
13
13
  @proxy_prot = proxy_prot
14
14
  @proxy_path = "#{proxy_addr}:#{proxy_port}" if proxy_addr && proxy_port
15
15
  @proxy_auth = "#{proxy_user}:#{proxy_pass}@" if proxy_pass && proxy_user
16
- @ssl_ca_file = ssl_ca_file
17
16
  @timeout = timeout
18
17
  @adapter = Faraday.default_adapter
18
+ @configure_connection_blocks = []
19
19
  end
20
20
 
21
- def _request(request)
21
+ def configure_connection(&block)
22
+ raise ArgumentError, "#{__method__} must be given a block!" unless block_given?
23
+
24
+ @configure_connection_blocks << block
25
+ nil
26
+ end
27
+
28
+ def _request(request) # rubocop:disable Metrics/MethodLength
29
+ middle_ware = case request.headers['Content-Type']
30
+ when 'application/json'
31
+ :json
32
+ when 'application/x-www-form-urlencoded'
33
+ :url_encoded
34
+ else
35
+ :url_encoded
36
+ end
22
37
  @connection = Faraday.new(url: request.host + ':' + request.port.to_s, ssl: { verify: true }) do |f|
23
38
  f.options.params_encoder = Faraday::FlatParamsEncoder
24
- f.request :url_encoded
25
- f.adapter @adapter
39
+ f.request(middle_ware)
26
40
  f.headers = request.headers
27
- f.basic_auth(request.auth[0], request.auth[1])
41
+ if Faraday::VERSION.start_with?('2.')
42
+ f.request(:authorization, :basic, request.auth[0], request.auth[1])
43
+ else
44
+ f.request(:basic_auth, request.auth[0], request.auth[1])
45
+ end
28
46
  f.proxy = "#{@proxy_prot}://#{@proxy_auth}#{@proxy_path}" if @proxy_prot && @proxy_path
29
47
  f.options.open_timeout = request.timeout || @timeout
30
48
  f.options.timeout = request.timeout || @timeout
49
+ f.params = request.params.nil? ? {} : request.params
50
+
51
+ @configure_connection_blocks.each { |block| block.call(f) }
52
+ f.adapter @adapter
31
53
  end
32
54
 
33
55
  @last_request = request
34
56
  @last_response = nil
35
57
 
36
58
  response = send(request)
37
- if response.body && !response.body.empty?
59
+ if (500..599).include?(response.status)
60
+ object = { message: "Server error (#{response.status})", code: response.status }.to_json
61
+ elsif response.body && !response.body.empty?
38
62
  object = response.body
39
63
  elsif response.status == 400
40
64
  object = { message: 'Bad request', code: 400 }.to_json
@@ -49,7 +73,7 @@ module Twilio
49
73
  def send(request)
50
74
  @connection.send(request.method.downcase.to_sym,
51
75
  request.url,
52
- request.method == 'GET' ? request.params : request.data)
76
+ request.data)
53
77
  rescue Faraday::Error => e
54
78
  raise Twilio::REST::TwilioError, e
55
79
  end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ Dir[File.join(__dir__, 'http/**/*.rb')].sort.each do |file|
4
+ require file
5
+ end