twilio-ruby 5.31.1 → 7.1.0

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