twilio-ruby 5.31.1 → 7.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1104) 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 +2422 -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 +307 -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/data.rb +200 -0
  85. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +384 -388
  86. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +373 -393
  87. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +369 -380
  88. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +512 -494
  89. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +422 -420
  90. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +342 -318
  91. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +384 -385
  92. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +408 -390
  93. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_credential_list_mapping.rb +353 -0
  94. 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
  95. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls.rb +141 -0
  96. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations/auth_registrations_credential_list_mapping.rb +353 -0
  97. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations.rb +127 -0
  98. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +95 -103
  99. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +346 -352
  100. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +346 -351
  101. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +658 -586
  102. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +421 -438
  103. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +408 -391
  104. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +142 -150
  105. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +174 -159
  106. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +369 -358
  107. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +315 -341
  108. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +315 -341
  109. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +315 -341
  110. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +315 -341
  111. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +315 -341
  112. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +315 -341
  113. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +315 -341
  114. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +315 -341
  115. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +382 -418
  116. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +494 -500
  117. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +113 -104
  118. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +175 -166
  119. data/lib/twilio-ruby/rest/api/v2010/account.rb +986 -960
  120. data/lib/twilio-ruby/rest/api/v2010.rb +126 -147
  121. data/lib/twilio-ruby/rest/api.rb +27 -36
  122. data/lib/twilio-ruby/rest/api_base.rb +38 -0
  123. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +309 -0
  124. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +308 -0
  125. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +283 -0
  126. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +257 -0
  127. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +258 -0
  128. data/lib/twilio-ruby/rest/bulkexports/v1.rb +64 -0
  129. data/lib/twilio-ruby/rest/bulkexports.rb +25 -0
  130. data/lib/twilio-ruby/rest/bulkexports_base.rb +38 -0
  131. data/lib/twilio-ruby/rest/chat/v1/credential.rb +428 -420
  132. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +381 -404
  133. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +431 -457
  134. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +447 -454
  135. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +543 -532
  136. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +405 -384
  137. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +245 -241
  138. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +474 -457
  139. data/lib/twilio-ruby/rest/chat/v1/service.rb +870 -911
  140. data/lib/twilio-ruby/rest/chat/v1.rb +57 -53
  141. data/lib/twilio-ruby/rest/chat/v2/credential.rb +428 -418
  142. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +376 -378
  143. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +381 -399
  144. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +492 -529
  145. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +519 -535
  146. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +449 -481
  147. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +612 -607
  148. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +405 -386
  149. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +369 -389
  150. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +412 -425
  151. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +516 -495
  152. data/lib/twilio-ruby/rest/chat/v2/service.rb +773 -795
  153. data/lib/twilio-ruby/rest/chat/v2.rb +57 -51
  154. data/lib/twilio-ruby/rest/chat/v3/channel.rb +299 -0
  155. data/lib/twilio-ruby/rest/chat/v3.rb +71 -0
  156. data/lib/twilio-ruby/rest/chat.rb +10 -38
  157. data/lib/twilio-ruby/rest/chat_base.rb +48 -0
  158. data/lib/twilio-ruby/rest/client.rb +329 -467
  159. data/lib/twilio-ruby/rest/content/v1/content/approval_create.rb +185 -0
  160. data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +209 -0
  161. data/lib/twilio-ruby/rest/content/v1/content.rb +951 -0
  162. data/lib/twilio-ruby/rest/content/v1/content_and_approvals.rb +252 -0
  163. data/lib/twilio-ruby/rest/content/v1/legacy_content.rb +266 -0
  164. data/lib/twilio-ruby/rest/content/v1.rb +61 -0
  165. data/lib/twilio-ruby/rest/content/v2/content.rb +316 -0
  166. data/lib/twilio-ruby/rest/content/v2/content_and_approvals.rb +309 -0
  167. data/lib/twilio-ruby/rest/content/v2.rb +46 -0
  168. data/lib/twilio-ruby/rest/content.rb +15 -0
  169. data/lib/twilio-ruby/rest/content_base.rb +43 -0
  170. data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +491 -0
  171. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +286 -0
  172. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +292 -0
  173. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +348 -0
  174. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +543 -449
  175. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +504 -424
  176. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +434 -425
  177. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +626 -495
  178. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +444 -0
  179. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +313 -0
  180. data/lib/twilio-ruby/rest/conversations/v1/role.rb +403 -0
  181. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +376 -0
  182. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +339 -0
  183. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +285 -0
  184. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +319 -0
  185. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +359 -0
  186. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +563 -0
  187. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +524 -0
  188. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +454 -0
  189. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +645 -0
  190. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +318 -0
  191. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +412 -0
  192. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +464 -0
  193. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +497 -0
  194. data/lib/twilio-ruby/rest/conversations/v1/service.rb +493 -0
  195. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +459 -0
  196. data/lib/twilio-ruby/rest/conversations/v1/user.rb +488 -0
  197. data/lib/twilio-ruby/rest/conversations/v1.rb +129 -44
  198. data/lib/twilio-ruby/rest/conversations.rb +54 -28
  199. data/lib/twilio-ruby/rest/conversations_base.rb +38 -0
  200. data/lib/twilio-ruby/rest/events/v1/event_type.rb +329 -0
  201. data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +302 -0
  202. data/lib/twilio-ruby/rest/events/v1/schema.rb +238 -0
  203. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +132 -0
  204. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +139 -0
  205. data/lib/twilio-ruby/rest/events/v1/sink.rb +453 -0
  206. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +381 -0
  207. data/lib/twilio-ruby/rest/events/v1/subscription.rb +435 -0
  208. data/lib/twilio-ruby/rest/events/v1.rb +94 -0
  209. data/lib/twilio-ruby/rest/events.rb +43 -0
  210. data/lib/twilio-ruby/rest/events_base.rb +38 -0
  211. data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +449 -0
  212. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +372 -342
  213. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +547 -437
  214. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +572 -539
  215. data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +329 -0
  216. data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +229 -0
  217. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +445 -0
  218. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +360 -0
  219. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +445 -0
  220. data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +362 -0
  221. data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +217 -0
  222. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +157 -0
  223. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +143 -0
  224. data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +196 -0
  225. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +254 -0
  226. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +354 -0
  227. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +411 -0
  228. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +272 -0
  229. data/lib/twilio-ruby/rest/flex_api/v1/plugin/plugin_versions.rb +397 -0
  230. data/lib/twilio-ruby/rest/flex_api/v1/plugin.rb +446 -0
  231. data/lib/twilio-ruby/rest/flex_api/v1/plugin_archive.rb +247 -0
  232. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration/configured_plugin.rb +393 -0
  233. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration.rb +386 -0
  234. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration_archive.rb +233 -0
  235. data/lib/twilio-ruby/rest/flex_api/v1/plugin_release.rb +332 -0
  236. data/lib/twilio-ruby/rest/flex_api/v1/plugin_version_archive.rb +256 -0
  237. data/lib/twilio-ruby/rest/flex_api/v1/provisioning_status.rb +188 -0
  238. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +387 -348
  239. data/lib/twilio-ruby/rest/flex_api/v1.rb +313 -73
  240. data/lib/twilio-ruby/rest/flex_api/v2/flex_user.rb +370 -0
  241. data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +151 -0
  242. data/lib/twilio-ruby/rest/flex_api/v2.rb +77 -0
  243. data/lib/twilio-ruby/rest/flex_api.rb +34 -32
  244. data/lib/twilio-ruby/rest/flex_api_base.rb +43 -0
  245. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +278 -0
  246. data/lib/twilio-ruby/rest/frontline_api/v1.rb +49 -0
  247. data/lib/twilio-ruby/rest/frontline_api.rb +15 -0
  248. data/lib/twilio-ruby/rest/frontline_api_base.rb +38 -0
  249. data/lib/twilio-ruby/rest/iam/v1/api_key.rb +270 -0
  250. data/lib/twilio-ruby/rest/iam/v1/get_api_keys.rb +223 -0
  251. data/lib/twilio-ruby/rest/iam/v1/new_api_key.rb +177 -0
  252. data/lib/twilio-ruby/rest/iam/v1.rb +61 -0
  253. data/lib/twilio-ruby/rest/iam.rb +6 -0
  254. data/lib/twilio-ruby/rest/iam_base.rb +38 -0
  255. data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +322 -0
  256. data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +353 -0
  257. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +250 -237
  258. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +242 -227
  259. data/lib/twilio-ruby/rest/insights/v1/call.rb +263 -234
  260. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +542 -0
  261. data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +491 -0
  262. data/lib/twilio-ruby/rest/insights/v1/conference.rb +508 -0
  263. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +386 -0
  264. data/lib/twilio-ruby/rest/insights/v1/room.rb +501 -0
  265. data/lib/twilio-ruby/rest/insights/v1/setting.rb +259 -0
  266. data/lib/twilio-ruby/rest/insights/v1.rb +84 -36
  267. data/lib/twilio-ruby/rest/insights.rb +28 -28
  268. data/lib/twilio-ruby/rest/insights_base.rb +38 -0
  269. data/lib/twilio-ruby/rest/intelligence/v2/custom_operator.rb +447 -0
  270. data/lib/twilio-ruby/rest/intelligence/v2/operator.rb +356 -0
  271. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachment.rb +217 -0
  272. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachments.rb +197 -0
  273. data/lib/twilio-ruby/rest/intelligence/v2/operator_type.rb +358 -0
  274. data/lib/twilio-ruby/rest/intelligence/v2/prebuilt_operator.rb +356 -0
  275. data/lib/twilio-ruby/rest/intelligence/v2/service.rb +517 -0
  276. data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +227 -0
  277. data/lib/twilio-ruby/rest/intelligence/v2/transcript/operator_result.rb +389 -0
  278. data/lib/twilio-ruby/rest/intelligence/v2/transcript/sentence.rb +262 -0
  279. data/lib/twilio-ruby/rest/intelligence/v2/transcript.rb +525 -0
  280. data/lib/twilio-ruby/rest/intelligence/v2.rb +176 -0
  281. data/lib/twilio-ruby/rest/intelligence.rb +6 -0
  282. data/lib/twilio-ruby/rest/intelligence_base.rb +38 -0
  283. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +428 -420
  284. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +381 -404
  285. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +431 -457
  286. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +447 -454
  287. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +543 -532
  288. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +405 -384
  289. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +245 -241
  290. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +474 -457
  291. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +870 -911
  292. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +57 -53
  293. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +428 -418
  294. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +376 -378
  295. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +381 -399
  296. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +492 -529
  297. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +519 -535
  298. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +449 -481
  299. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +612 -607
  300. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +405 -386
  301. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +369 -389
  302. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +404 -425
  303. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +516 -495
  304. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +773 -795
  305. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +57 -51
  306. data/lib/twilio-ruby/rest/ip_messaging.rb +9 -49
  307. data/lib/twilio-ruby/rest/ip_messaging_base.rb +43 -0
  308. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +246 -243
  309. data/lib/twilio-ruby/rest/lookups/v1.rb +42 -38
  310. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +384 -0
  311. data/lib/twilio-ruby/rest/lookups/v2.rb +49 -0
  312. data/lib/twilio-ruby/rest/lookups.rb +3 -35
  313. data/lib/twilio-ruby/rest/lookups_base.rb +43 -0
  314. data/lib/twilio-ruby/rest/marketplace/v1/available_add_on/available_add_on_extension.rb +309 -0
  315. data/lib/twilio-ruby/rest/marketplace/v1/available_add_on.rb +336 -0
  316. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_extension.rb +352 -0
  317. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_usage.rb +170 -0
  318. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on.rb +465 -0
  319. data/lib/twilio-ruby/rest/marketplace/v1/module_data_management.rb +297 -0
  320. data/lib/twilio-ruby/rest/marketplace/v1/referral_conversion.rb +199 -0
  321. data/lib/twilio-ruby/rest/marketplace/v1.rb +85 -0
  322. data/lib/twilio-ruby/rest/marketplace.rb +6 -0
  323. data/lib/twilio-ruby/rest/marketplace_base.rb +38 -0
  324. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +139 -0
  325. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_vetting.rb +368 -0
  326. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +509 -0
  327. data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +192 -0
  328. data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +285 -0
  329. data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +292 -0
  330. data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +239 -0
  331. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +167 -0
  332. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +217 -0
  333. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +197 -0
  334. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +356 -348
  335. data/lib/twilio-ruby/rest/messaging/v1/service/channel_sender.rb +370 -0
  336. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +363 -354
  337. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +363 -349
  338. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +620 -0
  339. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +138 -0
  340. data/lib/twilio-ruby/rest/messaging/v1/service.rb +774 -659
  341. data/lib/twilio-ruby/rest/messaging/v1/tollfree_verification.rb +803 -0
  342. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +126 -0
  343. data/lib/twilio-ruby/rest/messaging/v1.rb +187 -58
  344. data/lib/twilio-ruby/rest/messaging.rb +48 -36
  345. data/lib/twilio-ruby/rest/messaging_base.rb +38 -0
  346. data/lib/twilio-ruby/rest/microvisor/v1/account_config.rb +365 -0
  347. data/lib/twilio-ruby/rest/microvisor/v1/account_secret.rb +358 -0
  348. data/lib/twilio-ruby/rest/microvisor/v1/app/app_manifest.rb +209 -0
  349. data/lib/twilio-ruby/rest/microvisor/v1/app.rb +352 -0
  350. data/lib/twilio-ruby/rest/microvisor/v1/device/device_config.rb +381 -0
  351. data/lib/twilio-ruby/rest/microvisor/v1/device/device_secret.rb +374 -0
  352. data/lib/twilio-ruby/rest/microvisor/v1/device.rb +430 -0
  353. data/lib/twilio-ruby/rest/microvisor/v1.rb +94 -0
  354. data/lib/twilio-ruby/rest/microvisor.rb +24 -0
  355. data/lib/twilio-ruby/rest/microvisor_base.rb +38 -0
  356. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +401 -403
  357. data/lib/twilio-ruby/rest/monitor/v1/event.rb +384 -398
  358. data/lib/twilio-ruby/rest/monitor/v1.rb +57 -51
  359. data/lib/twilio-ruby/rest/monitor.rb +3 -34
  360. data/lib/twilio-ruby/rest/monitor_base.rb +38 -0
  361. data/lib/twilio-ruby/rest/notify/v1/credential.rb +428 -419
  362. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +442 -464
  363. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +316 -359
  364. data/lib/twilio-ruby/rest/notify/v1/service.rb +633 -620
  365. data/lib/twilio-ruby/rest/notify/v1.rb +57 -53
  366. data/lib/twilio-ruby/rest/notify.rb +3 -34
  367. data/lib/twilio-ruby/rest/notify_base.rb +38 -0
  368. data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +241 -0
  369. data/lib/twilio-ruby/rest/numbers/v1/eligibility.rb +128 -0
  370. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in.rb +294 -0
  371. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_phone_number.rb +322 -0
  372. data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +250 -0
  373. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration.rb +149 -0
  374. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_delete.rb +168 -0
  375. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_fetch.rb +161 -0
  376. data/lib/twilio-ruby/rest/numbers/v1/signing_request_configuration.rb +273 -0
  377. data/lib/twilio-ruby/rest/numbers/v1.rb +155 -0
  378. data/lib/twilio-ruby/rest/numbers/v2/authorization_document/dependent_hosted_number_order.rb +344 -0
  379. data/lib/twilio-ruby/rest/numbers/v2/authorization_document.rb +408 -0
  380. data/lib/twilio-ruby/rest/numbers/v2/bulk_hosted_number_order.rb +266 -0
  381. data/lib/twilio-ruby/rest/numbers/v2/bundle_clone.rb +277 -0
  382. data/lib/twilio-ruby/rest/numbers/v2/hosted_number_order.rb +507 -0
  383. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +288 -0
  384. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +340 -0
  385. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +351 -0
  386. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +204 -0
  387. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +620 -0
  388. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +407 -0
  389. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +300 -0
  390. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +349 -0
  391. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +435 -0
  392. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +300 -0
  393. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +186 -0
  394. data/lib/twilio-ruby/rest/numbers/v2.rb +100 -0
  395. data/lib/twilio-ruby/rest/numbers.rb +12 -0
  396. data/lib/twilio-ruby/rest/numbers_base.rb +43 -0
  397. data/lib/twilio-ruby/rest/oauth/v1/authorize.rb +144 -0
  398. data/lib/twilio-ruby/rest/oauth/v1/token.rb +182 -0
  399. data/lib/twilio-ruby/rest/oauth/v1.rb +46 -0
  400. data/lib/twilio-ruby/rest/oauth.rb +6 -0
  401. data/lib/twilio-ruby/rest/oauth_base.rb +38 -0
  402. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/certificate.rb +417 -392
  403. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/deployment.rb +401 -375
  404. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/device.rb +456 -435
  405. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/key.rb +414 -386
  406. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet.rb +501 -476
  407. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +42 -37
  408. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +371 -395
  409. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +451 -458
  410. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +617 -642
  411. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +57 -53
  412. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +302 -306
  413. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +326 -317
  414. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +345 -342
  415. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +436 -415
  416. data/lib/twilio-ruby/rest/preview/marketplace.rb +57 -51
  417. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +383 -386
  418. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +448 -413
  419. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +439 -417
  420. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +383 -386
  421. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +424 -411
  422. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +442 -414
  423. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +383 -386
  424. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +424 -411
  425. data/lib/twilio-ruby/rest/preview/sync/service.rb +502 -469
  426. data/lib/twilio-ruby/rest/preview/sync.rb +42 -36
  427. data/lib/twilio-ruby/rest/preview/wireless/command.rb +390 -377
  428. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +455 -415
  429. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +235 -211
  430. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +577 -535
  431. data/lib/twilio-ruby/rest/preview/wireless.rb +72 -66
  432. data/lib/twilio-ruby/rest/preview.rb +11 -155
  433. data/lib/twilio-ruby/rest/preview_base.rb +58 -0
  434. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +300 -283
  435. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +108 -119
  436. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +293 -276
  437. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +108 -119
  438. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +300 -283
  439. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +223 -203
  440. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +122 -135
  441. data/lib/twilio-ruby/rest/pricing/v1.rb +45 -42
  442. data/lib/twilio-ruby/rest/pricing/v2/country.rb +302 -0
  443. data/lib/twilio-ruby/rest/pricing/v2/number.rb +243 -0
  444. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +300 -283
  445. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +241 -224
  446. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +122 -138
  447. data/lib/twilio-ruby/rest/pricing/v2.rb +63 -28
  448. data/lib/twilio-ruby/rest/pricing.rb +22 -38
  449. data/lib/twilio-ruby/rest/pricing_base.rb +43 -0
  450. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +426 -418
  451. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +411 -426
  452. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +433 -462
  453. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +426 -455
  454. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +529 -523
  455. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +406 -387
  456. data/lib/twilio-ruby/rest/proxy/v1/service.rb +566 -613
  457. data/lib/twilio-ruby/rest/proxy/v1.rb +42 -37
  458. data/lib/twilio-ruby/rest/proxy.rb +2 -34
  459. data/lib/twilio-ruby/rest/proxy_base.rb +38 -0
  460. data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +273 -0
  461. data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +273 -0
  462. data/lib/twilio-ruby/rest/routes/v2/trunk.rb +273 -0
  463. data/lib/twilio-ruby/rest/routes/v2.rb +79 -0
  464. data/lib/twilio-ruby/rest/routes.rb +32 -0
  465. data/lib/twilio-ruby/rest/routes_base.rb +38 -0
  466. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +316 -331
  467. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +419 -397
  468. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +220 -0
  469. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +412 -362
  470. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +339 -351
  471. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +362 -359
  472. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +410 -413
  473. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +461 -462
  474. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +231 -0
  475. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +343 -331
  476. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +419 -397
  477. data/lib/twilio-ruby/rest/serverless/v1/service.rb +530 -484
  478. data/lib/twilio-ruby/rest/serverless/v1.rb +42 -36
  479. data/lib/twilio-ruby/rest/serverless.rb +2 -34
  480. data/lib/twilio-ruby/rest/serverless_base.rb +38 -0
  481. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +209 -205
  482. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +224 -224
  483. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +364 -363
  484. data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +429 -407
  485. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +209 -206
  486. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +224 -227
  487. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +364 -369
  488. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +477 -440
  489. data/lib/twilio-ruby/rest/studio/v1/flow.rb +385 -363
  490. data/lib/twilio-ruby/rest/studio/v1.rb +42 -36
  491. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +220 -0
  492. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +231 -0
  493. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +375 -0
  494. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +477 -0
  495. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +351 -0
  496. data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +237 -0
  497. data/lib/twilio-ruby/rest/studio/v2/flow.rb +538 -0
  498. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +142 -0
  499. data/lib/twilio-ruby/rest/studio/v2.rb +55 -0
  500. data/lib/twilio-ruby/rest/studio.rb +9 -34
  501. data/lib/twilio-ruby/rest/studio_base.rb +43 -0
  502. data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +406 -0
  503. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +487 -0
  504. data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +411 -0
  505. data/lib/twilio-ruby/rest/supersim/v1/network.rb +313 -0
  506. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +349 -0
  507. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +395 -0
  508. data/lib/twilio-ruby/rest/supersim/v1/settings_update.rb +257 -0
  509. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +250 -0
  510. data/lib/twilio-ruby/rest/supersim/v1/sim/sim_ip_address.rb +208 -0
  511. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +475 -0
  512. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +371 -0
  513. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +314 -0
  514. data/lib/twilio-ruby/rest/supersim/v1.rb +151 -0
  515. data/lib/twilio-ruby/rest/supersim.rb +88 -0
  516. data/lib/twilio-ruby/rest/supersim_base.rb +38 -0
  517. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +383 -391
  518. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +464 -450
  519. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +473 -501
  520. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +383 -390
  521. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +479 -474
  522. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +476 -508
  523. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +383 -388
  524. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +479 -473
  525. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +142 -143
  526. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +428 -431
  527. data/lib/twilio-ruby/rest/sync/v1/service.rb +584 -592
  528. data/lib/twilio-ruby/rest/sync/v1.rb +42 -36
  529. data/lib/twilio-ruby/rest/sync.rb +2 -34
  530. data/lib/twilio-ruby/rest/sync_base.rb +38 -0
  531. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +414 -404
  532. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +445 -466
  533. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +709 -740
  534. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +659 -643
  535. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +418 -399
  536. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_bulk_real_time_statistics.rb +164 -0
  537. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +362 -362
  538. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +282 -265
  539. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +233 -240
  540. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +240 -260
  541. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +583 -583
  542. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +691 -736
  543. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +394 -400
  544. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +238 -243
  545. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +284 -269
  546. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +218 -197
  547. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +254 -238
  548. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +630 -639
  549. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +362 -377
  550. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +230 -227
  551. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +233 -248
  552. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +532 -527
  553. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +356 -358
  554. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +235 -211
  555. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +244 -238
  556. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +729 -732
  557. data/lib/twilio-ruby/rest/taskrouter/v1.rb +42 -36
  558. data/lib/twilio-ruby/rest/taskrouter.rb +2 -34
  559. data/lib/twilio-ruby/rest/taskrouter_base.rb +38 -0
  560. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +349 -333
  561. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +349 -329
  562. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +449 -436
  563. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +482 -463
  564. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +236 -0
  565. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +632 -642
  566. data/lib/twilio-ruby/rest/trunking/v1.rb +42 -37
  567. data/lib/twilio-ruby/rest/trunking.rb +2 -34
  568. data/lib/twilio-ruby/rest/trunking_base.rb +38 -0
  569. data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +249 -0
  570. data/lib/twilio-ruby/rest/trusthub/v1/compliance_registration_inquiries.rb +357 -0
  571. data/lib/twilio-ruby/rest/trusthub/v1/compliance_tollfree_inquiries.rb +220 -0
  572. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +371 -0
  573. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +355 -0
  574. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +345 -0
  575. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +551 -0
  576. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +402 -0
  577. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +295 -0
  578. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +288 -0
  579. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +416 -0
  580. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +295 -0
  581. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +371 -0
  582. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +355 -0
  583. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +345 -0
  584. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +551 -0
  585. data/lib/twilio-ruby/rest/trusthub/v1.rb +175 -0
  586. data/lib/twilio-ruby/rest/trusthub.rb +74 -0
  587. data/lib/twilio-ruby/rest/trusthub_base.rb +38 -0
  588. data/lib/twilio-ruby/rest/verify/v2/form.rb +204 -0
  589. data/lib/twilio-ruby/rest/verify/v2/safelist.rb +236 -0
  590. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +284 -0
  591. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +201 -0
  592. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +515 -0
  593. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +465 -0
  594. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +272 -0
  595. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +436 -0
  596. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +388 -380
  597. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +410 -405
  598. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +429 -401
  599. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +387 -346
  600. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +221 -204
  601. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +463 -0
  602. data/lib/twilio-ruby/rest/verify/v2/service.rb +816 -546
  603. data/lib/twilio-ruby/rest/verify/v2/template.rb +230 -0
  604. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +385 -0
  605. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +250 -0
  606. data/lib/twilio-ruby/rest/verify/v2.rb +99 -37
  607. data/lib/twilio-ruby/rest/verify.rb +36 -25
  608. data/lib/twilio-ruby/rest/verify_base.rb +38 -0
  609. data/lib/twilio-ruby/rest/video/v1/composition.rb +484 -501
  610. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +534 -663
  611. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +286 -277
  612. data/lib/twilio-ruby/rest/video/v1/recording.rb +431 -413
  613. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +286 -277
  614. data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +262 -0
  615. data/lib/twilio-ruby/rest/video/v1/room/participant/published_track.rb +334 -0
  616. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +186 -0
  617. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribed_track.rb +341 -0
  618. data/lib/twilio-ruby/rest/video/v1/room/participant.rb +503 -0
  619. data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +175 -0
  620. data/lib/twilio-ruby/rest/video/v1/room/room_recording.rb +428 -0
  621. data/lib/twilio-ruby/rest/video/v1/room.rb +613 -534
  622. data/lib/twilio-ruby/rest/video/v1.rb +99 -95
  623. data/lib/twilio-ruby/rest/video.rb +7 -34
  624. data/lib/twilio-ruby/rest/video_base.rb +38 -0
  625. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +169 -0
  626. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +520 -0
  627. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +456 -0
  628. data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +410 -0
  629. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +138 -126
  630. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +196 -185
  631. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +376 -405
  632. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +220 -200
  633. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +123 -124
  634. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +396 -0
  635. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +379 -0
  636. data/lib/twilio-ruby/rest/voice/v1.rb +130 -28
  637. data/lib/twilio-ruby/rest/voice.rb +41 -24
  638. data/lib/twilio-ruby/rest/voice_base.rb +38 -0
  639. data/lib/twilio-ruby/rest/wireless/v1/command.rb +415 -419
  640. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +472 -452
  641. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +299 -300
  642. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +240 -245
  643. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +641 -669
  644. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +227 -223
  645. data/lib/twilio-ruby/rest/wireless/v1.rb +78 -73
  646. data/lib/twilio-ruby/rest/wireless.rb +5 -34
  647. data/lib/twilio-ruby/rest/wireless_base.rb +38 -0
  648. data/lib/twilio-ruby/rest.rb +14 -0
  649. data/lib/twilio-ruby/security/request_validator.rb +1 -1
  650. data/lib/twilio-ruby/twiml/messaging_response.rb +1 -1
  651. data/lib/twilio-ruby/twiml/twiml.rb +4 -0
  652. data/lib/twilio-ruby/twiml/voice_response.rb +989 -131
  653. data/lib/twilio-ruby/util/configuration.rb +13 -1
  654. data/lib/twilio-ruby/version.rb +1 -1
  655. data/lib/twilio-ruby.rb +8 -26
  656. data/sonar-project.properties +13 -0
  657. data/twilio-ruby.gemspec +14 -8
  658. metadata +423 -812
  659. data/.travis.yml +0 -35
  660. data/conf/cacert.pem +0 -3376
  661. data/lib/twilio-ruby/framework/twilio_response.rb +0 -19
  662. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +0 -493
  663. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +0 -493
  664. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +0 -493
  665. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +0 -493
  666. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +0 -493
  667. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +0 -493
  668. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +0 -493
  669. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +0 -472
  670. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +0 -317
  671. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +0 -325
  672. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +0 -361
  673. 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
  674. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +0 -163
  675. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping.rb +0 -361
  676. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +0 -137
  677. data/lib/twilio-ruby/rest/authy/v1/form.rb +0 -197
  678. data/lib/twilio-ruby/rest/authy/v1/service/entity/factor/challenge.rb +0 -412
  679. data/lib/twilio-ruby/rest/authy/v1/service/entity/factor.rb +0 -486
  680. data/lib/twilio-ruby/rest/authy/v1/service/entity.rb +0 -379
  681. data/lib/twilio-ruby/rest/authy/v1/service.rb +0 -385
  682. data/lib/twilio-ruby/rest/authy/v1.rb +0 -59
  683. data/lib/twilio-ruby/rest/authy.rb +0 -55
  684. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +0 -230
  685. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +0 -220
  686. data/lib/twilio-ruby/rest/autopilot/v1/assistant/export_assistant.rb +0 -222
  687. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +0 -408
  688. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +0 -435
  689. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +0 -409
  690. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +0 -463
  691. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +0 -228
  692. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +0 -399
  693. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +0 -466
  694. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +0 -265
  695. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +0 -243
  696. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +0 -524
  697. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +0 -437
  698. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +0 -683
  699. data/lib/twilio-ruby/rest/autopilot/v1.rb +0 -44
  700. data/lib/twilio-ruby/rest/autopilot.rb +0 -47
  701. data/lib/twilio-ruby/rest/conversations/v1/webhook.rb +0 -272
  702. data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +0 -322
  703. data/lib/twilio-ruby/rest/fax/v1/fax.rb +0 -552
  704. data/lib/twilio-ruby/rest/fax/v1.rb +0 -44
  705. data/lib/twilio-ruby/rest/fax.rb +0 -47
  706. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +0 -305
  707. data/lib/twilio-ruby/rest/messaging/v1/session/message.rb +0 -439
  708. data/lib/twilio-ruby/rest/messaging/v1/session/participant.rb +0 -458
  709. data/lib/twilio-ruby/rest/messaging/v1/session/webhook.rb +0 -444
  710. data/lib/twilio-ruby/rest/messaging/v1/session.rb +0 -513
  711. data/lib/twilio-ruby/rest/messaging/v1/webhook.rb +0 -299
  712. data/lib/twilio-ruby/rest/preview/acc_security/service/verification.rb +0 -185
  713. data/lib/twilio-ruby/rest/preview/acc_security/service/verification_check.rb +0 -182
  714. data/lib/twilio-ruby/rest/preview/acc_security/service.rb +0 -395
  715. data/lib/twilio-ruby/rest/preview/acc_security.rb +0 -43
  716. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +0 -211
  717. data/lib/twilio-ruby/rest/preview/bulk_exports/export/export_custom_job.rb +0 -298
  718. data/lib/twilio-ruby/rest/preview/bulk_exports/export/job.rb +0 -232
  719. data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +0 -248
  720. data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +0 -234
  721. data/lib/twilio-ruby/rest/preview/bulk_exports.rb +0 -58
  722. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_call.rb +0 -248
  723. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights/success_rate.rb +0 -264
  724. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights.rb +0 -111
  725. data/lib/twilio-ruby/rest/preview/trusted_comms/business.rb +0 -219
  726. data/lib/twilio-ruby/rest/preview/trusted_comms/cps.rb +0 -186
  727. data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +0 -263
  728. data/lib/twilio-ruby/rest/preview/trusted_comms/device.rb +0 -146
  729. data/lib/twilio-ruby/rest/preview/trusted_comms/phone_call.rb +0 -347
  730. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +0 -79
  731. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_fallback_actions.rb +0 -222
  732. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_initiation_actions.rb +0 -222
  733. data/lib/twilio-ruby/rest/preview/understand/assistant/dialogue.rb +0 -212
  734. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type/field_value.rb +0 -399
  735. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type.rb +0 -424
  736. data/lib/twilio-ruby/rest/preview/understand/assistant/model_build.rb +0 -397
  737. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +0 -454
  738. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +0 -222
  739. data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +0 -386
  740. data/lib/twilio-ruby/rest/preview/understand/assistant/task/sample.rb +0 -445
  741. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_actions.rb +0 -251
  742. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +0 -231
  743. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +0 -512
  744. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +0 -646
  745. data/lib/twilio-ruby/rest/preview/understand.rb +0 -44
  746. data/lib/twilio-ruby/rest/trunking/v1/trunk/terminating_sip_domain.rb +0 -418
  747. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +0 -414
  748. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +0 -343
  749. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +0 -191
  750. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb +0 -348
  751. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +0 -495
  752. data/spec/framework/request_spec.rb +0 -36
  753. data/spec/framework/serialize_spec.rb +0 -80
  754. data/spec/holodeck/holodeck.rb +0 -61
  755. data/spec/holodeck/hologram.rb +0 -4
  756. data/spec/http/http_client_spec.rb +0 -122
  757. data/spec/integration/accounts/v1/credential/aws_spec.rb +0 -226
  758. data/spec/integration/accounts/v1/credential/public_key_spec.rb +0 -226
  759. data/spec/integration/accounts/v1/credential_spec.rb +0 -12
  760. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +0 -107
  761. data/spec/integration/api/v2010/account/address_spec.rb +0 -273
  762. data/spec/integration/api/v2010/account/application_spec.rb +0 -279
  763. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +0 -139
  764. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +0 -103
  765. data/spec/integration/api/v2010/account/available_phone_number/machine_to_machine_spec.rb +0 -103
  766. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +0 -102
  767. data/spec/integration/api/v2010/account/available_phone_number/national_spec.rb +0 -103
  768. data/spec/integration/api/v2010/account/available_phone_number/shared_cost_spec.rb +0 -103
  769. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +0 -102
  770. data/spec/integration/api/v2010/account/available_phone_number/voip_spec.rb +0 -103
  771. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +0 -130
  772. data/spec/integration/api/v2010/account/balance_spec.rb +0 -45
  773. data/spec/integration/api/v2010/account/call/feedback_spec.rb +0 -139
  774. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +0 -151
  775. data/spec/integration/api/v2010/account/call/notification_spec.rb +0 -181
  776. data/spec/integration/api/v2010/account/call/recording_spec.rb +0 -287
  777. data/spec/integration/api/v2010/account/call_spec.rb +0 -624
  778. data/spec/integration/api/v2010/account/conference/participant_spec.rb +0 -477
  779. data/spec/integration/api/v2010/account/conference/recording_spec.rb +0 -237
  780. data/spec/integration/api/v2010/account/conference_spec.rb +0 -433
  781. data/spec/integration/api/v2010/account/connect_app_spec.rb +0 -201
  782. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +0 -137
  783. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +0 -223
  784. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +0 -191
  785. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +0 -191
  786. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +0 -191
  787. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +0 -345
  788. data/spec/integration/api/v2010/account/key_spec.rb +0 -180
  789. data/spec/integration/api/v2010/account/message/feedback_spec.rb +0 -50
  790. data/spec/integration/api/v2010/account/message/media_spec.rb +0 -164
  791. data/spec/integration/api/v2010/account/message_spec.rb +0 -473
  792. data/spec/integration/api/v2010/account/new_key_spec.rb +0 -47
  793. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +0 -47
  794. data/spec/integration/api/v2010/account/notification_spec.rb +0 -140
  795. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +0 -195
  796. data/spec/integration/api/v2010/account/queue/member_spec.rb +0 -210
  797. data/spec/integration/api/v2010/account/queue_spec.rb +0 -248
  798. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +0 -177
  799. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +0 -168
  800. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +0 -176
  801. data/spec/integration/api/v2010/account/recording_spec.rb +0 -187
  802. data/spec/integration/api/v2010/account/short_code_spec.rb +0 -182
  803. data/spec/integration/api/v2010/account/signing_key_spec.rb +0 -180
  804. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +0 -256
  805. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +0 -244
  806. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping_spec.rb +0 -220
  807. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping_spec.rb +0 -220
  808. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping_spec.rb +0 -12
  809. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping_spec.rb +0 -220
  810. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping_spec.rb +0 -12
  811. data/spec/integration/api/v2010/account/sip/domain/auth_types_spec.rb +0 -12
  812. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +0 -210
  813. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +0 -220
  814. data/spec/integration/api/v2010/account/sip/domain_spec.rb +0 -295
  815. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +0 -258
  816. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +0 -254
  817. data/spec/integration/api/v2010/account/sip_spec.rb +0 -12
  818. data/spec/integration/api/v2010/account/token_spec.rb +0 -60
  819. data/spec/integration/api/v2010/account/transcription_spec.rb +0 -169
  820. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +0 -114
  821. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +0 -114
  822. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +0 -114
  823. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +0 -114
  824. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +0 -114
  825. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +0 -114
  826. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +0 -114
  827. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +0 -114
  828. data/spec/integration/api/v2010/account/usage/record_spec.rb +0 -111
  829. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +0 -285
  830. data/spec/integration/api/v2010/account/usage_spec.rb +0 -12
  831. data/spec/integration/api/v2010/account/validation_request_spec.rb +0 -48
  832. data/spec/integration/api/v2010/account_spec.rb +0 -286
  833. data/spec/integration/authy/v1/form_spec.rb +0 -48
  834. data/spec/integration/authy/v1/service/entity/factor/challenge_spec.rb +0 -267
  835. data/spec/integration/authy/v1/service/entity/factor_spec.rb +0 -273
  836. data/spec/integration/authy/v1/service/entity_spec.rb +0 -201
  837. data/spec/integration/authy/v1/service_spec.rb +0 -227
  838. data/spec/integration/autopilot/v1/assistant/defaults_spec.rb +0 -81
  839. data/spec/integration/autopilot/v1/assistant/dialogue_spec.rb +0 -47
  840. data/spec/integration/autopilot/v1/assistant/export_assistant_spec.rb +0 -49
  841. data/spec/integration/autopilot/v1/assistant/field_type/field_value_spec.rb +0 -210
  842. data/spec/integration/autopilot/v1/assistant/field_type_spec.rb +0 -246
  843. data/spec/integration/autopilot/v1/assistant/model_build_spec.rb +0 -241
  844. data/spec/integration/autopilot/v1/assistant/query_spec.rb +0 -290
  845. data/spec/integration/autopilot/v1/assistant/style_sheet_spec.rb +0 -81
  846. data/spec/integration/autopilot/v1/assistant/task/field_spec.rb +0 -207
  847. data/spec/integration/autopilot/v1/assistant/task/sample_spec.rb +0 -253
  848. data/spec/integration/autopilot/v1/assistant/task/task_actions_spec.rb +0 -87
  849. data/spec/integration/autopilot/v1/assistant/task/task_statistics_spec.rb +0 -50
  850. data/spec/integration/autopilot/v1/assistant/task_spec.rb +0 -262
  851. data/spec/integration/autopilot/v1/assistant/webhook_spec.rb +0 -246
  852. data/spec/integration/autopilot/v1/assistant_spec.rb +0 -286
  853. data/spec/integration/chat/v1/credential_spec.rb +0 -223
  854. data/spec/integration/chat/v1/service/channel/invite_spec.rb +0 -210
  855. data/spec/integration/chat/v1/service/channel/member_spec.rb +0 -284
  856. data/spec/integration/chat/v1/service/channel/message_spec.rb +0 -294
  857. data/spec/integration/chat/v1/service/channel_spec.rb +0 -277
  858. data/spec/integration/chat/v1/service/role_spec.rb +0 -263
  859. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +0 -94
  860. data/spec/integration/chat/v1/service/user_spec.rb +0 -266
  861. data/spec/integration/chat/v1/service_spec.rb +0 -299
  862. data/spec/integration/chat/v2/credential_spec.rb +0 -223
  863. data/spec/integration/chat/v2/service/binding_spec.rb +0 -177
  864. data/spec/integration/chat/v2/service/channel/invite_spec.rb +0 -210
  865. data/spec/integration/chat/v2/service/channel/member_spec.rb +0 -261
  866. data/spec/integration/chat/v2/service/channel/message_spec.rb +0 -405
  867. data/spec/integration/chat/v2/service/channel/webhook_spec.rb +0 -307
  868. data/spec/integration/chat/v2/service/channel_spec.rb +0 -281
  869. data/spec/integration/chat/v2/service/role_spec.rb +0 -263
  870. data/spec/integration/chat/v2/service/user/user_binding_spec.rb +0 -180
  871. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +0 -251
  872. data/spec/integration/chat/v2/service/user_spec.rb +0 -270
  873. data/spec/integration/chat/v2/service_spec.rb +0 -354
  874. data/spec/integration/conversations/v1/conversation/message_spec.rb +0 -293
  875. data/spec/integration/conversations/v1/conversation/participant_spec.rb +0 -290
  876. data/spec/integration/conversations/v1/conversation/webhook_spec.rb +0 -286
  877. data/spec/integration/conversations/v1/conversation_spec.rb +0 -222
  878. data/spec/integration/conversations/v1/webhook_spec.rb +0 -88
  879. data/spec/integration/fax/v1/fax/fax_media_spec.rb +0 -128
  880. data/spec/integration/fax/v1/fax_spec.rb +0 -271
  881. data/spec/integration/flex_api/v1/channel_spec.rb +0 -191
  882. data/spec/integration/flex_api/v1/configuration_spec.rb +0 -449
  883. data/spec/integration/flex_api/v1/flex_flow_spec.rb +0 -263
  884. data/spec/integration/flex_api/v1/web_channel_spec.rb +0 -220
  885. data/spec/integration/insights/v1/call/event_spec.rb +0 -167
  886. data/spec/integration/insights/v1/call/metric_spec.rb +0 -155
  887. data/spec/integration/insights/v1/call/summary_spec.rb +0 -63
  888. data/spec/integration/insights/v1/call_spec.rb +0 -47
  889. data/spec/integration/ip_messaging/v1/credential_spec.rb +0 -223
  890. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +0 -210
  891. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +0 -284
  892. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +0 -294
  893. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +0 -277
  894. data/spec/integration/ip_messaging/v1/service/role_spec.rb +0 -263
  895. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +0 -94
  896. data/spec/integration/ip_messaging/v1/service/user_spec.rb +0 -266
  897. data/spec/integration/ip_messaging/v1/service_spec.rb +0 -299
  898. data/spec/integration/ip_messaging/v2/credential_spec.rb +0 -223
  899. data/spec/integration/ip_messaging/v2/service/binding_spec.rb +0 -177
  900. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +0 -210
  901. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +0 -261
  902. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +0 -405
  903. data/spec/integration/ip_messaging/v2/service/channel/webhook_spec.rb +0 -307
  904. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +0 -281
  905. data/spec/integration/ip_messaging/v2/service/role_spec.rb +0 -263
  906. data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +0 -180
  907. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +0 -251
  908. data/spec/integration/ip_messaging/v2/service/user_spec.rb +0 -270
  909. data/spec/integration/ip_messaging/v2/service_spec.rb +0 -354
  910. data/spec/integration/lookups/v1/phone_number_spec.rb +0 -337
  911. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +0 -170
  912. data/spec/integration/messaging/v1/service/phone_number_spec.rb +0 -201
  913. data/spec/integration/messaging/v1/service/short_code_spec.rb +0 -179
  914. data/spec/integration/messaging/v1/service_spec.rb +0 -271
  915. data/spec/integration/messaging/v1/session/message_spec.rb +0 -238
  916. data/spec/integration/messaging/v1/session/participant_spec.rb +0 -256
  917. data/spec/integration/messaging/v1/session/webhook_spec.rb +0 -300
  918. data/spec/integration/messaging/v1/session_spec.rb +0 -227
  919. data/spec/integration/messaging/v1/webhook_spec.rb +0 -94
  920. data/spec/integration/monitor/v1/alert_spec.rb +0 -140
  921. data/spec/integration/monitor/v1/event_spec.rb +0 -150
  922. data/spec/integration/notify/v1/credential_spec.rb +0 -223
  923. data/spec/integration/notify/v1/service/binding_spec.rb +0 -225
  924. data/spec/integration/notify/v1/service/notification_spec.rb +0 -99
  925. data/spec/integration/notify/v1/service_spec.rb +0 -294
  926. data/spec/integration/preview/acc_security/service/verification_check_spec.rb +0 -52
  927. data/spec/integration/preview/acc_security/service/verification_spec.rb +0 -52
  928. data/spec/integration/preview/acc_security/service_spec.rb +0 -185
  929. data/spec/integration/preview/bulk_exports/export/day_spec.rb +0 -58
  930. data/spec/integration/preview/bulk_exports/export/export_custom_job_spec.rb +0 -129
  931. data/spec/integration/preview/bulk_exports/export/job_spec.rb +0 -77
  932. data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +0 -79
  933. data/spec/integration/preview/bulk_exports/export_spec.rb +0 -45
  934. data/spec/integration/preview/deployed_devices/fleet/certificate_spec.rb +0 -238
  935. data/spec/integration/preview/deployed_devices/fleet/deployment_spec.rb +0 -233
  936. data/spec/integration/preview/deployed_devices/fleet/device_spec.rb +0 -249
  937. data/spec/integration/preview/deployed_devices/fleet/key_spec.rb +0 -237
  938. data/spec/integration/preview/deployed_devices/fleet_spec.rb +0 -246
  939. data/spec/integration/preview/hosted_numbers/authorization_document/dependent_hosted_number_order_spec.rb +0 -111
  940. data/spec/integration/preview/hosted_numbers/authorization_document_spec.rb +0 -227
  941. data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +0 -393
  942. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +0 -123
  943. data/spec/integration/preview/marketplace/available_add_on_spec.rb +0 -144
  944. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +0 -164
  945. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +0 -254
  946. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +0 -204
  947. data/spec/integration/preview/sync/service/document_spec.rb +0 -254
  948. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +0 -254
  949. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +0 -204
  950. data/spec/integration/preview/sync/service/sync_list_spec.rb +0 -209
  951. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +0 -254
  952. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +0 -204
  953. data/spec/integration/preview/sync/service/sync_map_spec.rb +0 -209
  954. data/spec/integration/preview/sync/service_spec.rb +0 -246
  955. data/spec/integration/preview/trusted_comms/branded_call_spec.rb +0 -59
  956. data/spec/integration/preview/trusted_comms/business/insights/success_rate_spec.rb +0 -58
  957. data/spec/integration/preview/trusted_comms/business/insights_spec.rb +0 -12
  958. data/spec/integration/preview/trusted_comms/business_spec.rb +0 -46
  959. data/spec/integration/preview/trusted_comms/cps_spec.rb +0 -43
  960. data/spec/integration/preview/trusted_comms/current_call_spec.rb +0 -54
  961. data/spec/integration/preview/trusted_comms/device_spec.rb +0 -45
  962. data/spec/integration/preview/trusted_comms/phone_call_spec.rb +0 -59
  963. data/spec/integration/preview/understand/assistant/assistant_fallback_actions_spec.rb +0 -81
  964. data/spec/integration/preview/understand/assistant/assistant_initiation_actions_spec.rb +0 -81
  965. data/spec/integration/preview/understand/assistant/dialogue_spec.rb +0 -47
  966. data/spec/integration/preview/understand/assistant/field_type/field_value_spec.rb +0 -210
  967. data/spec/integration/preview/understand/assistant/field_type_spec.rb +0 -246
  968. data/spec/integration/preview/understand/assistant/model_build_spec.rb +0 -241
  969. data/spec/integration/preview/understand/assistant/query_spec.rb +0 -306
  970. data/spec/integration/preview/understand/assistant/style_sheet_spec.rb +0 -81
  971. data/spec/integration/preview/understand/assistant/task/field_spec.rb +0 -207
  972. data/spec/integration/preview/understand/assistant/task/sample_spec.rb +0 -253
  973. data/spec/integration/preview/understand/assistant/task/task_actions_spec.rb +0 -87
  974. data/spec/integration/preview/understand/assistant/task/task_statistics_spec.rb +0 -50
  975. data/spec/integration/preview/understand/assistant/task_spec.rb +0 -262
  976. data/spec/integration/preview/understand/assistant_spec.rb +0 -274
  977. data/spec/integration/preview/wireless/command_spec.rb +0 -169
  978. data/spec/integration/preview/wireless/rate_plan_spec.rb +0 -262
  979. data/spec/integration/preview/wireless/sim/usage_spec.rb +0 -51
  980. data/spec/integration/preview/wireless/sim_spec.rb +0 -210
  981. data/spec/integration/pricing/v1/messaging/country_spec.rb +0 -139
  982. data/spec/integration/pricing/v1/messaging_spec.rb +0 -12
  983. data/spec/integration/pricing/v1/phone_number/country_spec.rb +0 -130
  984. data/spec/integration/pricing/v1/phone_number_spec.rb +0 -12
  985. data/spec/integration/pricing/v1/voice/country_spec.rb +0 -140
  986. data/spec/integration/pricing/v1/voice/number_spec.rb +0 -56
  987. data/spec/integration/pricing/v1/voice_spec.rb +0 -12
  988. data/spec/integration/pricing/v2/voice/country_spec.rb +0 -181
  989. data/spec/integration/pricing/v2/voice/number_spec.rb +0 -62
  990. data/spec/integration/pricing/v2/voice_spec.rb +0 -12
  991. data/spec/integration/proxy/v1/service/phone_number_spec.rb +0 -236
  992. data/spec/integration/proxy/v1/service/session/interaction_spec.rb +0 -136
  993. data/spec/integration/proxy/v1/service/session/participant/message_interaction_spec.rb +0 -166
  994. data/spec/integration/proxy/v1/service/session/participant_spec.rb +0 -243
  995. data/spec/integration/proxy/v1/service/session_spec.rb +0 -230
  996. data/spec/integration/proxy/v1/service/short_code_spec.rb +0 -229
  997. data/spec/integration/proxy/v1/service_spec.rb +0 -218
  998. data/spec/integration/serverless/v1/service/asset/asset_version_spec.rb +0 -95
  999. data/spec/integration/serverless/v1/service/asset_spec.rb +0 -205
  1000. data/spec/integration/serverless/v1/service/build_spec.rb +0 -212
  1001. data/spec/integration/serverless/v1/service/environment/deployment_spec.rb +0 -137
  1002. data/spec/integration/serverless/v1/service/environment/log_spec.rb +0 -98
  1003. data/spec/integration/serverless/v1/service/environment/variable_spec.rb +0 -211
  1004. data/spec/integration/serverless/v1/service/environment_spec.rb +0 -173
  1005. data/spec/integration/serverless/v1/service/function/function_version_spec.rb +0 -95
  1006. data/spec/integration/serverless/v1/service/function_spec.rb +0 -205
  1007. data/spec/integration/serverless/v1/service_spec.rb +0 -206
  1008. data/spec/integration/studio/v1/flow/engagement/engagement_context_spec.rb +0 -51
  1009. data/spec/integration/studio/v1/flow/engagement/step/step_context_spec.rb +0 -54
  1010. data/spec/integration/studio/v1/flow/engagement/step_spec.rb +0 -101
  1011. data/spec/integration/studio/v1/flow/engagement_spec.rb +0 -171
  1012. data/spec/integration/studio/v1/flow/execution/execution_context_spec.rb +0 -51
  1013. data/spec/integration/studio/v1/flow/execution/execution_step/execution_step_context_spec.rb +0 -54
  1014. data/spec/integration/studio/v1/flow/execution/execution_step_spec.rb +0 -101
  1015. data/spec/integration/studio/v1/flow/execution_spec.rb +0 -171
  1016. data/spec/integration/studio/v1/flow_spec.rb +0 -117
  1017. data/spec/integration/sync/v1/service/document/document_permission_spec.rb +0 -204
  1018. data/spec/integration/sync/v1/service/document_spec.rb +0 -257
  1019. data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +0 -257
  1020. data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +0 -204
  1021. data/spec/integration/sync/v1/service/sync_list_spec.rb +0 -257
  1022. data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +0 -257
  1023. data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +0 -204
  1024. data/spec/integration/sync/v1/service/sync_map_spec.rb +0 -257
  1025. data/spec/integration/sync/v1/service/sync_stream/stream_message_spec.rb +0 -47
  1026. data/spec/integration/sync/v1/service/sync_stream_spec.rb +0 -249
  1027. data/spec/integration/sync/v1/service_spec.rb +0 -266
  1028. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +0 -236
  1029. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +0 -165
  1030. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +0 -225
  1031. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +0 -316
  1032. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics_spec.rb +0 -96
  1033. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics_spec.rb +0 -82
  1034. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +0 -108
  1035. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +0 -146
  1036. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +0 -294
  1037. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +0 -326
  1038. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +0 -194
  1039. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +0 -188
  1040. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +0 -92
  1041. data/spec/integration/taskrouter/v1/workspace/worker/workers_cumulative_statistics_spec.rb +0 -89
  1042. data/spec/integration/taskrouter/v1/workspace/worker/workers_real_time_statistics_spec.rb +0 -70
  1043. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +0 -116
  1044. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +0 -294
  1045. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics_spec.rb +0 -97
  1046. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_real_time_statistics_spec.rb +0 -58
  1047. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +0 -71
  1048. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +0 -270
  1049. data/spec/integration/taskrouter/v1/workspace/workspace_cumulative_statistics_spec.rb +0 -94
  1050. data/spec/integration/taskrouter/v1/workspace/workspace_real_time_statistics_spec.rb +0 -73
  1051. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +0 -105
  1052. data/spec/integration/taskrouter/v1/workspace_spec.rb +0 -295
  1053. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +0 -192
  1054. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +0 -192
  1055. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +0 -252
  1056. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +0 -267
  1057. data/spec/integration/trunking/v1/trunk/terminating_sip_domain_spec.rb +0 -231
  1058. data/spec/integration/trunking/v1/trunk_spec.rb +0 -368
  1059. data/spec/integration/verify/v2/service/messaging_configuration_spec.rb +0 -231
  1060. data/spec/integration/verify/v2/service/rate_limit/bucket_spec.rb +0 -249
  1061. data/spec/integration/verify/v2/service/rate_limit_spec.rb +0 -221
  1062. data/spec/integration/verify/v2/service/verification_check_spec.rb +0 -54
  1063. data/spec/integration/verify/v2/service/verification_spec.rb +0 -277
  1064. data/spec/integration/verify/v2/service_spec.rb +0 -243
  1065. data/spec/integration/video/v1/composition_hook_spec.rb +0 -410
  1066. data/spec/integration/video/v1/composition_settings_spec.rb +0 -86
  1067. data/spec/integration/video/v1/composition_spec.rb +0 -350
  1068. data/spec/integration/video/v1/recording_settings_spec.rb +0 -86
  1069. data/spec/integration/video/v1/recording_spec.rb +0 -179
  1070. data/spec/integration/video/v1/room/recording_spec.rb +0 -188
  1071. data/spec/integration/video/v1/room/room_participant/room_participant_published_track_spec.rb +0 -96
  1072. data/spec/integration/video/v1/room/room_participant/room_participant_subscribe_rule_spec.rb +0 -105
  1073. data/spec/integration/video/v1/room/room_participant/room_participant_subscribed_track_spec.rb +0 -97
  1074. data/spec/integration/video/v1/room/room_participant_spec.rb +0 -190
  1075. data/spec/integration/video/v1/room_spec.rb +0 -257
  1076. data/spec/integration/voice/v1/dialing_permissions/bulk_country_update_spec.rb +0 -45
  1077. data/spec/integration/voice/v1/dialing_permissions/country/highrisk_special_prefix_spec.rb +0 -61
  1078. data/spec/integration/voice/v1/dialing_permissions/country_spec.rb +0 -112
  1079. data/spec/integration/voice/v1/dialing_permissions/settings_spec.rb +0 -77
  1080. data/spec/integration/voice/v1/dialing_permissions_spec.rb +0 -12
  1081. data/spec/integration/wireless/v1/command_spec.rb +0 -289
  1082. data/spec/integration/wireless/v1/rate_plan_spec.rb +0 -282
  1083. data/spec/integration/wireless/v1/sim/data_session_spec.rb +0 -89
  1084. data/spec/integration/wireless/v1/sim/usage_record_spec.rb +0 -115
  1085. data/spec/integration/wireless/v1/sim_spec.rb +0 -329
  1086. data/spec/integration/wireless/v1/usage_record_spec.rb +0 -111
  1087. data/spec/jwt/access_token_spec.rb +0 -151
  1088. data/spec/jwt/client_capability_spec.rb +0 -104
  1089. data/spec/jwt/task_router_spec.rb +0 -172
  1090. data/spec/rack/twilio_webhook_authentication_spec.rb +0 -106
  1091. data/spec/rest/client_spec.rb +0 -83
  1092. data/spec/security/request_validator_spec.rb +0 -125
  1093. data/spec/spec_helper.rb +0 -38
  1094. data/spec/support/fakeweb.rb +0 -2
  1095. data/spec/twilio_spec.rb +0 -17
  1096. data/spec/twiml/messaging_response_spec.rb +0 -235
  1097. data/spec/twiml/voice_response_spec.rb +0 -847
  1098. data/spec/util/configuration_spec.rb +0 -21
  1099. data/spec/util/url_encode_spec.rb +0 -12
  1100. /data/lib/twilio-ruby/framework/{domain.rb → rest/domain.rb} +0 -0
  1101. /data/lib/twilio-ruby/framework/{helper.rb → rest/helper.rb} +0 -0
  1102. /data/lib/twilio-ruby/framework/{obsolete_client.rb → rest/obsolete_client.rb} +0 -0
  1103. /data/lib/twilio-ruby/framework/{page.rb → rest/page.rb} +0 -0
  1104. /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