twilio-ruby 5.23.0 → 7.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1067) hide show
  1. checksums.yaml +5 -5
  2. data/.dockerignore +1 -0
  3. data/.github/workflows/pr-lint.yml +21 -0
  4. data/.github/workflows/test-and-deploy.yml +139 -0
  5. data/.gitignore +11 -1
  6. data/.rubocop.yml +22 -6
  7. data/.rubocop_todo.yml +147 -73
  8. data/CHANGES.md +2681 -0
  9. data/CODE_OF_CONDUCT.md +73 -0
  10. data/CONTRIBUTING.md +14 -10
  11. data/Dockerfile +2 -2
  12. data/Gemfile +3 -8
  13. data/ISSUE_TEMPLATE.md +17 -13
  14. data/{LICENSE.md → LICENSE} +2 -2
  15. data/Makefile +22 -24
  16. data/PULL_REQUEST_TEMPLATE.md +30 -3
  17. data/README.md +211 -54
  18. data/Rakefile +0 -54
  19. data/UPGRADE.md +21 -0
  20. data/VERSIONS.md +9 -10
  21. data/advanced-examples/custom-http-client.md +170 -0
  22. data/cluster_spec.rb +77 -0
  23. data/examples/examples.rb +1 -1
  24. data/githooks/pre-commit +0 -0
  25. data/lib/rack/twilio_webhook_authentication.rb +25 -1
  26. data/lib/twilio-ruby/base/client_base.rb +124 -0
  27. data/lib/twilio-ruby/framework/request.rb +8 -1
  28. data/lib/twilio-ruby/framework/{domain.rb → rest/domain.rb} +1 -1
  29. data/lib/twilio-ruby/framework/{error.rb → rest/error.rb} +3 -15
  30. data/lib/twilio-ruby/framework/{version.rb → rest/version.rb} +7 -11
  31. data/lib/twilio-ruby/http/http_client.rb +44 -17
  32. data/lib/twilio-ruby/http.rb +5 -0
  33. data/lib/twilio-ruby/jwt/access_token.rb +20 -61
  34. data/lib/twilio-ruby/jwt/jwt.rb +6 -0
  35. data/lib/twilio-ruby/jwt/task_router.rb +2 -2
  36. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +209 -0
  37. data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +381 -350
  38. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +381 -350
  39. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +123 -115
  40. data/lib/twilio-ruby/rest/accounts/v1/safelist.rb +176 -0
  41. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +227 -0
  42. data/lib/twilio-ruby/rest/accounts/v1.rb +52 -29
  43. data/lib/twilio-ruby/rest/accounts.rb +10 -28
  44. data/lib/twilio-ruby/rest/accounts_base.rb +38 -0
  45. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +372 -368
  46. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +561 -532
  47. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +625 -602
  48. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +317 -329
  49. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/local.rb +395 -0
  50. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/machine_to_machine.rb +395 -0
  51. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/mobile.rb +395 -0
  52. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/national.rb +395 -0
  53. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/shared_cost.rb +395 -0
  54. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/toll_free.rb +395 -0
  55. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/voip.rb +395 -0
  56. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country.rb +435 -0
  57. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +140 -125
  58. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +210 -0
  59. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +404 -439
  60. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +327 -0
  61. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +504 -516
  62. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +877 -0
  63. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +877 -0
  64. data/lib/twilio-ruby/rest/api/v2010/account/call/transcription.rb +901 -0
  65. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +166 -0
  66. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +244 -0
  67. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +956 -851
  68. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +669 -674
  69. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +459 -471
  70. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +495 -492
  71. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +434 -420
  72. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +324 -361
  73. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +404 -432
  74. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +540 -500
  75. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +540 -499
  76. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +540 -499
  77. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +851 -884
  78. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +343 -315
  79. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +171 -172
  80. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +346 -359
  81. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +625 -619
  82. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +161 -144
  83. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +161 -144
  84. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +404 -422
  85. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +376 -371
  86. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +346 -349
  87. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +436 -415
  88. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +364 -389
  89. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +374 -394
  90. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +370 -381
  91. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +513 -492
  92. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +423 -421
  93. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +343 -319
  94. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +385 -386
  95. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +409 -391
  96. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_credential_list_mapping.rb +353 -0
  97. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_ip_access_control_list_mapping.rb +353 -0
  98. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls.rb +141 -0
  99. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations/auth_registrations_credential_list_mapping.rb +353 -0
  100. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations.rb +127 -0
  101. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +96 -104
  102. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +347 -353
  103. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +347 -352
  104. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +659 -587
  105. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +422 -439
  106. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +409 -392
  107. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +143 -151
  108. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +175 -160
  109. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +370 -359
  110. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +316 -335
  111. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +316 -335
  112. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +316 -335
  113. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +316 -335
  114. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +316 -335
  115. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +316 -335
  116. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +316 -335
  117. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +316 -335
  118. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +383 -412
  119. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +495 -501
  120. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +114 -105
  121. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +176 -167
  122. data/lib/twilio-ruby/rest/api/v2010/account.rb +987 -961
  123. data/lib/twilio-ruby/rest/api/v2010.rb +127 -148
  124. data/lib/twilio-ruby/rest/api.rb +27 -36
  125. data/lib/twilio-ruby/rest/api_base.rb +38 -0
  126. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +309 -0
  127. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +308 -0
  128. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +283 -0
  129. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +257 -0
  130. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +258 -0
  131. data/lib/twilio-ruby/rest/bulkexports/v1.rb +64 -0
  132. data/lib/twilio-ruby/rest/bulkexports.rb +25 -0
  133. data/lib/twilio-ruby/rest/bulkexports_base.rb +38 -0
  134. data/lib/twilio-ruby/rest/chat/v1/credential.rb +429 -421
  135. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +382 -405
  136. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +432 -458
  137. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +448 -455
  138. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +544 -533
  139. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +406 -385
  140. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +246 -242
  141. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +475 -458
  142. data/lib/twilio-ruby/rest/chat/v1/service.rb +871 -912
  143. data/lib/twilio-ruby/rest/chat/v1.rb +58 -54
  144. data/lib/twilio-ruby/rest/chat/v2/credential.rb +429 -421
  145. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +377 -381
  146. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +382 -398
  147. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +493 -531
  148. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +520 -535
  149. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +450 -483
  150. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +613 -604
  151. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +406 -385
  152. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +370 -392
  153. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +413 -385
  154. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +517 -492
  155. data/lib/twilio-ruby/rest/chat/v2/service.rb +774 -798
  156. data/lib/twilio-ruby/rest/chat/v2.rb +58 -54
  157. data/lib/twilio-ruby/rest/chat/v3/channel.rb +299 -0
  158. data/lib/twilio-ruby/rest/chat/v3.rb +71 -0
  159. data/lib/twilio-ruby/rest/chat.rb +10 -38
  160. data/lib/twilio-ruby/rest/chat_base.rb +48 -0
  161. data/lib/twilio-ruby/rest/client.rb +329 -460
  162. data/lib/twilio-ruby/rest/content/v1/content/approval_create.rb +185 -0
  163. data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +209 -0
  164. data/lib/twilio-ruby/rest/content/v1/content.rb +788 -0
  165. data/lib/twilio-ruby/rest/content/v1/content_and_approvals.rb +252 -0
  166. data/lib/twilio-ruby/rest/content/v1/legacy_content.rb +266 -0
  167. data/lib/twilio-ruby/rest/content/v1.rb +61 -0
  168. data/lib/twilio-ruby/rest/content/v2/content.rb +316 -0
  169. data/lib/twilio-ruby/rest/content/v2/content_and_approvals.rb +309 -0
  170. data/lib/twilio-ruby/rest/content/v2.rb +46 -0
  171. data/lib/twilio-ruby/rest/content.rb +15 -0
  172. data/lib/twilio-ruby/rest/content_base.rb +43 -0
  173. data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +491 -0
  174. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +286 -0
  175. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +292 -0
  176. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +348 -0
  177. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +550 -0
  178. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +511 -0
  179. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +441 -0
  180. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +636 -0
  181. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +444 -0
  182. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +313 -0
  183. data/lib/twilio-ruby/rest/conversations/v1/role.rb +403 -0
  184. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +376 -0
  185. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +339 -0
  186. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +285 -0
  187. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +319 -0
  188. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +359 -0
  189. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +563 -0
  190. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +524 -0
  191. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +454 -0
  192. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +645 -0
  193. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +318 -0
  194. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +412 -0
  195. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +464 -0
  196. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +497 -0
  197. data/lib/twilio-ruby/rest/conversations/v1/service.rb +493 -0
  198. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +459 -0
  199. data/lib/twilio-ruby/rest/conversations/v1/user.rb +488 -0
  200. data/lib/twilio-ruby/rest/conversations/v1.rb +136 -0
  201. data/lib/twilio-ruby/rest/conversations.rb +79 -0
  202. data/lib/twilio-ruby/rest/conversations_base.rb +38 -0
  203. data/lib/twilio-ruby/rest/events/v1/event_type.rb +329 -0
  204. data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +302 -0
  205. data/lib/twilio-ruby/rest/events/v1/schema.rb +238 -0
  206. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +132 -0
  207. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +139 -0
  208. data/lib/twilio-ruby/rest/events/v1/sink.rb +453 -0
  209. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +381 -0
  210. data/lib/twilio-ruby/rest/events/v1/subscription.rb +435 -0
  211. data/lib/twilio-ruby/rest/events/v1.rb +94 -0
  212. data/lib/twilio-ruby/rest/events.rb +43 -0
  213. data/lib/twilio-ruby/rest/events_base.rb +38 -0
  214. data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +449 -0
  215. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +382 -0
  216. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +548 -415
  217. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +573 -506
  218. data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +329 -0
  219. data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +229 -0
  220. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +445 -0
  221. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +360 -0
  222. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +445 -0
  223. data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +362 -0
  224. data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +217 -0
  225. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +157 -0
  226. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +143 -0
  227. data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +196 -0
  228. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +254 -0
  229. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +354 -0
  230. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +411 -0
  231. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +272 -0
  232. data/lib/twilio-ruby/rest/flex_api/v1/plugin/plugin_versions.rb +397 -0
  233. data/lib/twilio-ruby/rest/flex_api/v1/plugin.rb +446 -0
  234. data/lib/twilio-ruby/rest/flex_api/v1/plugin_archive.rb +247 -0
  235. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration/configured_plugin.rb +393 -0
  236. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration.rb +386 -0
  237. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration_archive.rb +233 -0
  238. data/lib/twilio-ruby/rest/flex_api/v1/plugin_release.rb +332 -0
  239. data/lib/twilio-ruby/rest/flex_api/v1/plugin_version_archive.rb +256 -0
  240. data/lib/twilio-ruby/rest/flex_api/v1/provisioning_status.rb +188 -0
  241. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +397 -0
  242. data/lib/twilio-ruby/rest/flex_api/v1.rb +314 -44
  243. data/lib/twilio-ruby/rest/flex_api/v2/flex_user.rb +290 -0
  244. data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +151 -0
  245. data/lib/twilio-ruby/rest/flex_api/v2.rb +77 -0
  246. data/lib/twilio-ruby/rest/flex_api.rb +49 -28
  247. data/lib/twilio-ruby/rest/flex_api_base.rb +43 -0
  248. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +278 -0
  249. data/lib/twilio-ruby/rest/frontline_api/v1.rb +49 -0
  250. data/lib/twilio-ruby/rest/frontline_api.rb +15 -0
  251. data/lib/twilio-ruby/rest/frontline_api_base.rb +38 -0
  252. data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +322 -0
  253. data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +353 -0
  254. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +277 -0
  255. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +269 -0
  256. data/lib/twilio-ruby/rest/insights/v1/call.rb +271 -0
  257. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +494 -0
  258. data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +491 -0
  259. data/lib/twilio-ruby/rest/insights/v1/conference.rb +508 -0
  260. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +386 -0
  261. data/lib/twilio-ruby/rest/insights/v1/room.rb +501 -0
  262. data/lib/twilio-ruby/rest/insights/v1/setting.rb +259 -0
  263. data/lib/twilio-ruby/rest/insights/v1.rb +85 -37
  264. data/lib/twilio-ruby/rest/insights.rb +29 -29
  265. data/lib/twilio-ruby/rest/insights_base.rb +38 -0
  266. data/lib/twilio-ruby/rest/intelligence/v2/custom_operator.rb +447 -0
  267. data/lib/twilio-ruby/rest/intelligence/v2/operator.rb +356 -0
  268. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachment.rb +217 -0
  269. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachments.rb +197 -0
  270. data/lib/twilio-ruby/rest/intelligence/v2/operator_type.rb +358 -0
  271. data/lib/twilio-ruby/rest/intelligence/v2/prebuilt_operator.rb +356 -0
  272. data/lib/twilio-ruby/rest/intelligence/v2/service.rb +517 -0
  273. data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +227 -0
  274. data/lib/twilio-ruby/rest/intelligence/v2/transcript/operator_result.rb +389 -0
  275. data/lib/twilio-ruby/rest/intelligence/v2/transcript/sentence.rb +249 -0
  276. data/lib/twilio-ruby/rest/intelligence/v2/transcript.rb +525 -0
  277. data/lib/twilio-ruby/rest/intelligence/v2.rb +176 -0
  278. data/lib/twilio-ruby/rest/intelligence.rb +6 -0
  279. data/lib/twilio-ruby/rest/intelligence_base.rb +38 -0
  280. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +429 -421
  281. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +382 -405
  282. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +432 -458
  283. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +448 -455
  284. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +544 -533
  285. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +406 -385
  286. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +246 -242
  287. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +475 -458
  288. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +871 -912
  289. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +58 -54
  290. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +429 -421
  291. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +377 -381
  292. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +382 -398
  293. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +493 -531
  294. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +520 -535
  295. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +450 -483
  296. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +613 -604
  297. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +406 -385
  298. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +370 -392
  299. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +405 -385
  300. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +517 -492
  301. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +774 -798
  302. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +58 -54
  303. data/lib/twilio-ruby/rest/ip_messaging.rb +9 -49
  304. data/lib/twilio-ruby/rest/ip_messaging_base.rb +43 -0
  305. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +247 -244
  306. data/lib/twilio-ruby/rest/lookups/v1.rb +43 -39
  307. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +384 -0
  308. data/lib/twilio-ruby/rest/lookups/v2.rb +49 -0
  309. data/lib/twilio-ruby/rest/lookups.rb +3 -35
  310. data/lib/twilio-ruby/rest/lookups_base.rb +43 -0
  311. data/lib/twilio-ruby/rest/marketplace/v1/available_add_on/available_add_on_extension.rb +309 -0
  312. data/lib/twilio-ruby/rest/marketplace/v1/available_add_on.rb +336 -0
  313. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_extension.rb +352 -0
  314. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_usage.rb +170 -0
  315. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on.rb +465 -0
  316. data/lib/twilio-ruby/rest/marketplace/v1/module_data_management.rb +284 -0
  317. data/lib/twilio-ruby/rest/marketplace/v1.rb +79 -0
  318. data/lib/twilio-ruby/rest/marketplace.rb +6 -0
  319. data/lib/twilio-ruby/rest/marketplace_base.rb +38 -0
  320. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +139 -0
  321. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_vetting.rb +368 -0
  322. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +509 -0
  323. data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +192 -0
  324. data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +285 -0
  325. data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +292 -0
  326. data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +239 -0
  327. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +164 -0
  328. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +217 -0
  329. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +197 -0
  330. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +357 -345
  331. data/lib/twilio-ruby/rest/messaging/v1/service/channel_sender.rb +330 -0
  332. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +364 -349
  333. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +364 -352
  334. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +620 -0
  335. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +138 -0
  336. data/lib/twilio-ruby/rest/messaging/v1/service.rb +775 -627
  337. data/lib/twilio-ruby/rest/messaging/v1/tollfree_verification.rb +803 -0
  338. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +126 -0
  339. data/lib/twilio-ruby/rest/messaging/v1.rb +188 -60
  340. data/lib/twilio-ruby/rest/messaging.rb +47 -34
  341. data/lib/twilio-ruby/rest/messaging_base.rb +38 -0
  342. data/lib/twilio-ruby/rest/microvisor/v1/account_config.rb +365 -0
  343. data/lib/twilio-ruby/rest/microvisor/v1/account_secret.rb +358 -0
  344. data/lib/twilio-ruby/rest/microvisor/v1/app/app_manifest.rb +209 -0
  345. data/lib/twilio-ruby/rest/microvisor/v1/app.rb +352 -0
  346. data/lib/twilio-ruby/rest/microvisor/v1/device/device_config.rb +381 -0
  347. data/lib/twilio-ruby/rest/microvisor/v1/device/device_secret.rb +374 -0
  348. data/lib/twilio-ruby/rest/microvisor/v1/device.rb +430 -0
  349. data/lib/twilio-ruby/rest/microvisor/v1.rb +94 -0
  350. data/lib/twilio-ruby/rest/microvisor.rb +24 -0
  351. data/lib/twilio-ruby/rest/microvisor_base.rb +38 -0
  352. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +402 -416
  353. data/lib/twilio-ruby/rest/monitor/v1/event.rb +385 -402
  354. data/lib/twilio-ruby/rest/monitor/v1.rb +58 -52
  355. data/lib/twilio-ruby/rest/monitor.rb +7 -36
  356. data/lib/twilio-ruby/rest/monitor_base.rb +38 -0
  357. data/lib/twilio-ruby/rest/notify/v1/credential.rb +429 -420
  358. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +443 -465
  359. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +317 -358
  360. data/lib/twilio-ruby/rest/notify/v1/service.rb +634 -611
  361. data/lib/twilio-ruby/rest/notify/v1.rb +58 -54
  362. data/lib/twilio-ruby/rest/notify.rb +3 -34
  363. data/lib/twilio-ruby/rest/notify_base.rb +38 -0
  364. data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +241 -0
  365. data/lib/twilio-ruby/rest/numbers/v1/eligibility.rb +128 -0
  366. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in.rb +294 -0
  367. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_phone_number.rb +315 -0
  368. data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +250 -0
  369. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration.rb +149 -0
  370. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_delete.rb +168 -0
  371. data/lib/twilio-ruby/rest/numbers/v1/signing_request_configuration.rb +177 -0
  372. data/lib/twilio-ruby/rest/numbers/v1/webhook.rb +161 -0
  373. data/lib/twilio-ruby/rest/numbers/v1.rb +155 -0
  374. data/lib/twilio-ruby/rest/numbers/v2/authorization_document/dependent_hosted_number_order.rb +344 -0
  375. data/lib/twilio-ruby/rest/numbers/v2/authorization_document.rb +408 -0
  376. data/lib/twilio-ruby/rest/numbers/v2/bulk_hosted_number_order.rb +266 -0
  377. data/lib/twilio-ruby/rest/numbers/v2/hosted_number_order.rb +507 -0
  378. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +288 -0
  379. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +340 -0
  380. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +351 -0
  381. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +204 -0
  382. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +617 -0
  383. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +407 -0
  384. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +300 -0
  385. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +349 -0
  386. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +428 -0
  387. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +300 -0
  388. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +186 -0
  389. data/lib/twilio-ruby/rest/numbers/v2.rb +85 -0
  390. data/lib/twilio-ruby/rest/numbers.rb +12 -0
  391. data/lib/twilio-ruby/rest/numbers_base.rb +43 -0
  392. data/lib/twilio-ruby/rest/oauth/v1/authorize.rb +144 -0
  393. data/lib/twilio-ruby/rest/oauth/v1/token.rb +182 -0
  394. data/lib/twilio-ruby/rest/oauth/v1.rb +46 -0
  395. data/lib/twilio-ruby/rest/oauth.rb +6 -0
  396. data/lib/twilio-ruby/rest/oauth_base.rb +38 -0
  397. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/certificate.rb +418 -393
  398. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/deployment.rb +402 -376
  399. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/device.rb +457 -436
  400. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/key.rb +415 -387
  401. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet.rb +502 -477
  402. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +43 -38
  403. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +372 -396
  404. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +452 -459
  405. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +618 -643
  406. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +58 -54
  407. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +303 -304
  408. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +327 -320
  409. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +346 -340
  410. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +437 -419
  411. data/lib/twilio-ruby/rest/preview/marketplace.rb +58 -54
  412. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +384 -387
  413. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +449 -414
  414. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +440 -418
  415. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +384 -387
  416. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +425 -412
  417. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +443 -415
  418. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +384 -387
  419. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +425 -412
  420. data/lib/twilio-ruby/rest/preview/sync/service.rb +503 -470
  421. data/lib/twilio-ruby/rest/preview/sync.rb +43 -37
  422. data/lib/twilio-ruby/rest/preview/wireless/command.rb +391 -378
  423. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +456 -416
  424. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +236 -212
  425. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +578 -536
  426. data/lib/twilio-ruby/rest/preview/wireless.rb +73 -67
  427. data/lib/twilio-ruby/rest/preview.rb +23 -145
  428. data/lib/twilio-ruby/rest/preview_base.rb +58 -0
  429. data/lib/twilio-ruby/rest/preview_iam.rb +6 -0
  430. data/lib/twilio-ruby/rest/preview_iam_base.rb +33 -0
  431. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +301 -284
  432. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +109 -120
  433. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +294 -277
  434. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +109 -120
  435. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +301 -284
  436. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +224 -204
  437. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +123 -136
  438. data/lib/twilio-ruby/rest/pricing/v1.rb +46 -43
  439. data/lib/twilio-ruby/rest/pricing/v2/country.rb +302 -0
  440. data/lib/twilio-ruby/rest/pricing/v2/number.rb +243 -0
  441. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +301 -284
  442. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +242 -225
  443. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +123 -139
  444. data/lib/twilio-ruby/rest/pricing/v2.rb +64 -29
  445. data/lib/twilio-ruby/rest/pricing.rb +22 -38
  446. data/lib/twilio-ruby/rest/pricing_base.rb +43 -0
  447. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +427 -419
  448. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +412 -427
  449. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +434 -463
  450. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +427 -456
  451. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +530 -540
  452. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +407 -388
  453. data/lib/twilio-ruby/rest/proxy/v1/service.rb +567 -614
  454. data/lib/twilio-ruby/rest/proxy/v1.rb +43 -38
  455. data/lib/twilio-ruby/rest/proxy.rb +2 -34
  456. data/lib/twilio-ruby/rest/proxy_base.rb +38 -0
  457. data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +273 -0
  458. data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +273 -0
  459. data/lib/twilio-ruby/rest/routes/v2/trunk.rb +273 -0
  460. data/lib/twilio-ruby/rest/routes/v2.rb +79 -0
  461. data/lib/twilio-ruby/rest/routes.rb +32 -0
  462. data/lib/twilio-ruby/rest/routes_base.rb +38 -0
  463. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +317 -365
  464. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +420 -384
  465. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +220 -0
  466. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +413 -348
  467. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +340 -355
  468. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +373 -0
  469. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +411 -400
  470. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +462 -417
  471. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +231 -0
  472. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +344 -365
  473. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +420 -384
  474. data/lib/twilio-ruby/rest/serverless/v1/service.rb +531 -472
  475. data/lib/twilio-ruby/rest/serverless/v1.rb +43 -38
  476. data/lib/twilio-ruby/rest/serverless.rb +4 -35
  477. data/lib/twilio-ruby/rest/serverless_base.rb +38 -0
  478. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +210 -206
  479. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +225 -227
  480. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +365 -364
  481. data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +430 -407
  482. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +210 -206
  483. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +225 -227
  484. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +365 -369
  485. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +478 -434
  486. data/lib/twilio-ruby/rest/studio/v1/flow.rb +386 -364
  487. data/lib/twilio-ruby/rest/studio/v1.rb +43 -37
  488. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +220 -0
  489. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +231 -0
  490. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +375 -0
  491. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +477 -0
  492. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +351 -0
  493. data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +237 -0
  494. data/lib/twilio-ruby/rest/studio/v2/flow.rb +538 -0
  495. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +142 -0
  496. data/lib/twilio-ruby/rest/studio/v2.rb +55 -0
  497. data/lib/twilio-ruby/rest/studio.rb +11 -35
  498. data/lib/twilio-ruby/rest/studio_base.rb +43 -0
  499. data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +406 -0
  500. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +487 -0
  501. data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +411 -0
  502. data/lib/twilio-ruby/rest/supersim/v1/network.rb +313 -0
  503. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +349 -0
  504. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +395 -0
  505. data/lib/twilio-ruby/rest/supersim/v1/settings_update.rb +257 -0
  506. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +250 -0
  507. data/lib/twilio-ruby/rest/supersim/v1/sim/sim_ip_address.rb +208 -0
  508. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +475 -0
  509. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +371 -0
  510. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +314 -0
  511. data/lib/twilio-ruby/rest/supersim/v1.rb +151 -0
  512. data/lib/twilio-ruby/rest/supersim.rb +88 -0
  513. data/lib/twilio-ruby/rest/supersim_base.rb +38 -0
  514. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +384 -388
  515. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +465 -435
  516. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +474 -478
  517. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +384 -388
  518. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +480 -459
  519. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +477 -486
  520. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +384 -388
  521. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +480 -459
  522. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +143 -142
  523. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +429 -418
  524. data/lib/twilio-ruby/rest/sync/v1/service.rb +585 -521
  525. data/lib/twilio-ruby/rest/sync/v1.rb +43 -37
  526. data/lib/twilio-ruby/rest/sync.rb +4 -35
  527. data/lib/twilio-ruby/rest/sync_base.rb +38 -0
  528. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +415 -397
  529. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +446 -458
  530. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +710 -646
  531. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +660 -628
  532. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +419 -394
  533. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_bulk_real_time_statistics.rb +164 -0
  534. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +363 -363
  535. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +283 -260
  536. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +234 -241
  537. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +241 -268
  538. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +584 -577
  539. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +692 -592
  540. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +395 -399
  541. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +239 -238
  542. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +285 -269
  543. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +219 -193
  544. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +255 -239
  545. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +631 -621
  546. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +363 -370
  547. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +249 -240
  548. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +234 -241
  549. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +533 -517
  550. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +357 -357
  551. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +236 -212
  552. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +245 -237
  553. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +730 -726
  554. data/lib/twilio-ruby/rest/taskrouter/v1.rb +43 -37
  555. data/lib/twilio-ruby/rest/taskrouter.rb +4 -35
  556. data/lib/twilio-ruby/rest/taskrouter_base.rb +38 -0
  557. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +350 -334
  558. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +350 -331
  559. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +450 -437
  560. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +483 -465
  561. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +236 -0
  562. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +633 -637
  563. data/lib/twilio-ruby/rest/trunking/v1.rb +43 -38
  564. data/lib/twilio-ruby/rest/trunking.rb +2 -34
  565. data/lib/twilio-ruby/rest/trunking_base.rb +38 -0
  566. data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +240 -0
  567. data/lib/twilio-ruby/rest/trusthub/v1/compliance_registration_inquiries.rb +357 -0
  568. data/lib/twilio-ruby/rest/trusthub/v1/compliance_tollfree_inquiries.rb +220 -0
  569. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +371 -0
  570. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +355 -0
  571. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +345 -0
  572. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +551 -0
  573. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +402 -0
  574. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +295 -0
  575. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +288 -0
  576. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +416 -0
  577. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +295 -0
  578. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +371 -0
  579. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +355 -0
  580. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +345 -0
  581. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +551 -0
  582. data/lib/twilio-ruby/rest/trusthub/v1.rb +175 -0
  583. data/lib/twilio-ruby/rest/trusthub.rb +74 -0
  584. data/lib/twilio-ruby/rest/trusthub_base.rb +38 -0
  585. data/lib/twilio-ruby/rest/verify/v2/form.rb +204 -0
  586. data/lib/twilio-ruby/rest/verify/v2/safelist.rb +236 -0
  587. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +284 -0
  588. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +201 -0
  589. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +515 -0
  590. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +465 -0
  591. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +272 -0
  592. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +436 -0
  593. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +395 -0
  594. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +421 -0
  595. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +436 -0
  596. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +388 -345
  597. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +222 -207
  598. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +463 -0
  599. data/lib/twilio-ruby/rest/verify/v2/service.rb +817 -500
  600. data/lib/twilio-ruby/rest/verify/v2/template.rb +230 -0
  601. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +385 -0
  602. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +250 -0
  603. data/lib/twilio-ruby/rest/verify/v2.rb +100 -38
  604. data/lib/twilio-ruby/rest/verify.rb +36 -25
  605. data/lib/twilio-ruby/rest/verify_base.rb +38 -0
  606. data/lib/twilio-ruby/rest/video/v1/composition.rb +485 -511
  607. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +535 -635
  608. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +287 -278
  609. data/lib/twilio-ruby/rest/video/v1/recording.rb +432 -416
  610. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +287 -278
  611. data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +262 -0
  612. data/lib/twilio-ruby/rest/video/v1/room/participant/published_track.rb +334 -0
  613. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +186 -0
  614. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribed_track.rb +341 -0
  615. data/lib/twilio-ruby/rest/video/v1/room/participant.rb +503 -0
  616. data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +175 -0
  617. data/lib/twilio-ruby/rest/video/v1/room/room_recording.rb +428 -0
  618. data/lib/twilio-ruby/rest/video/v1/room.rb +614 -520
  619. data/lib/twilio-ruby/rest/video/v1.rb +100 -99
  620. data/lib/twilio-ruby/rest/video.rb +19 -46
  621. data/lib/twilio-ruby/rest/video_base.rb +38 -0
  622. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +169 -0
  623. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +520 -0
  624. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +456 -0
  625. data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +410 -0
  626. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +139 -127
  627. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +197 -186
  628. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +377 -404
  629. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +221 -201
  630. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +124 -124
  631. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +396 -0
  632. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +379 -0
  633. data/lib/twilio-ruby/rest/voice/v1.rb +131 -29
  634. data/lib/twilio-ruby/rest/voice.rb +41 -24
  635. data/lib/twilio-ruby/rest/voice_base.rb +38 -0
  636. data/lib/twilio-ruby/rest/wireless/v1/command.rb +416 -417
  637. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +473 -446
  638. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +300 -295
  639. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +241 -240
  640. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +642 -650
  641. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +235 -0
  642. data/lib/twilio-ruby/rest/wireless/v1.rb +79 -69
  643. data/lib/twilio-ruby/rest/wireless.rb +11 -34
  644. data/lib/twilio-ruby/rest/wireless_base.rb +38 -0
  645. data/lib/twilio-ruby/rest.rb +14 -0
  646. data/lib/twilio-ruby/security/request_validator.rb +62 -9
  647. data/lib/twilio-ruby/twiml/fax_response.rb +6 -3
  648. data/lib/twilio-ruby/twiml/messaging_response.rb +2 -2
  649. data/lib/twilio-ruby/twiml/twiml.rb +4 -0
  650. data/lib/twilio-ruby/twiml/voice_response.rb +1243 -181
  651. data/lib/twilio-ruby/util/configuration.rb +22 -5
  652. data/lib/twilio-ruby/version.rb +1 -1
  653. data/lib/twilio-ruby.rb +9 -25
  654. data/sonar-project.properties +13 -0
  655. data/twilio-ruby.gemspec +14 -8
  656. metadata +432 -754
  657. data/.travis.yml +0 -26
  658. data/conf/cacert.pem +0 -3376
  659. data/lib/twilio-ruby/framework/twilio_response.rb +0 -19
  660. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +0 -493
  661. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +0 -493
  662. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +0 -493
  663. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +0 -493
  664. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +0 -493
  665. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +0 -493
  666. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +0 -493
  667. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +0 -472
  668. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +0 -317
  669. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +0 -325
  670. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +0 -361
  671. 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
  672. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +0 -163
  673. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping.rb +0 -361
  674. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +0 -137
  675. data/lib/twilio-ruby/rest/authy/v1/form.rb +0 -197
  676. data/lib/twilio-ruby/rest/authy/v1/service/entity/factor/challenge.rb +0 -412
  677. data/lib/twilio-ruby/rest/authy/v1/service/entity/factor.rb +0 -486
  678. data/lib/twilio-ruby/rest/authy/v1/service/entity.rb +0 -379
  679. data/lib/twilio-ruby/rest/authy/v1/service.rb +0 -385
  680. data/lib/twilio-ruby/rest/authy/v1.rb +0 -59
  681. data/lib/twilio-ruby/rest/authy.rb +0 -55
  682. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +0 -230
  683. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +0 -220
  684. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +0 -408
  685. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +0 -435
  686. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +0 -409
  687. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +0 -463
  688. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +0 -228
  689. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +0 -399
  690. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +0 -466
  691. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +0 -265
  692. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +0 -243
  693. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +0 -524
  694. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +0 -621
  695. data/lib/twilio-ruby/rest/autopilot/v1.rb +0 -44
  696. data/lib/twilio-ruby/rest/autopilot.rb +0 -47
  697. data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +0 -322
  698. data/lib/twilio-ruby/rest/fax/v1/fax.rb +0 -548
  699. data/lib/twilio-ruby/rest/fax/v1.rb +0 -44
  700. data/lib/twilio-ruby/rest/fax.rb +0 -47
  701. data/lib/twilio-ruby/rest/insights/v1/summary.rb +0 -302
  702. data/lib/twilio-ruby/rest/messaging/v1/session/message.rb +0 -441
  703. data/lib/twilio-ruby/rest/messaging/v1/session/participant.rb +0 -465
  704. data/lib/twilio-ruby/rest/messaging/v1/session/webhook.rb +0 -448
  705. data/lib/twilio-ruby/rest/messaging/v1/session.rb +0 -509
  706. data/lib/twilio-ruby/rest/messaging/v1/webhook.rb +0 -305
  707. data/lib/twilio-ruby/rest/preview/acc_security/service/verification.rb +0 -185
  708. data/lib/twilio-ruby/rest/preview/acc_security/service/verification_check.rb +0 -182
  709. data/lib/twilio-ruby/rest/preview/acc_security/service.rb +0 -395
  710. data/lib/twilio-ruby/rest/preview/acc_security.rb +0 -43
  711. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +0 -211
  712. data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +0 -210
  713. data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +0 -234
  714. data/lib/twilio-ruby/rest/preview/bulk_exports.rb +0 -58
  715. data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +0 -217
  716. data/lib/twilio-ruby/rest/preview/trusted_comms/device.rb +0 -146
  717. data/lib/twilio-ruby/rest/preview/trusted_comms/phone_call.rb +0 -169
  718. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +0 -49
  719. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_fallback_actions.rb +0 -222
  720. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_initiation_actions.rb +0 -222
  721. data/lib/twilio-ruby/rest/preview/understand/assistant/dialogue.rb +0 -212
  722. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type/field_value.rb +0 -399
  723. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type.rb +0 -424
  724. data/lib/twilio-ruby/rest/preview/understand/assistant/model_build.rb +0 -397
  725. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +0 -454
  726. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +0 -222
  727. data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +0 -386
  728. data/lib/twilio-ruby/rest/preview/understand/assistant/task/sample.rb +0 -445
  729. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_actions.rb +0 -251
  730. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +0 -231
  731. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +0 -512
  732. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +0 -646
  733. data/lib/twilio-ruby/rest/preview/understand.rb +0 -44
  734. data/lib/twilio-ruby/rest/trunking/v1/trunk/terminating_sip_domain.rb +0 -418
  735. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +0 -402
  736. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +0 -340
  737. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +0 -191
  738. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb +0 -347
  739. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +0 -496
  740. data/spec/framework/request_spec.rb +0 -36
  741. data/spec/framework/serialize_spec.rb +0 -80
  742. data/spec/holodeck/holodeck.rb +0 -61
  743. data/spec/holodeck/hologram.rb +0 -4
  744. data/spec/http/http_client_spec.rb +0 -122
  745. data/spec/integration/accounts/v1/credential/aws_spec.rb +0 -226
  746. data/spec/integration/accounts/v1/credential/public_key_spec.rb +0 -226
  747. data/spec/integration/accounts/v1/credential_spec.rb +0 -12
  748. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +0 -107
  749. data/spec/integration/api/v2010/account/address_spec.rb +0 -273
  750. data/spec/integration/api/v2010/account/application_spec.rb +0 -280
  751. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +0 -139
  752. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +0 -103
  753. data/spec/integration/api/v2010/account/available_phone_number/machine_to_machine_spec.rb +0 -103
  754. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +0 -102
  755. data/spec/integration/api/v2010/account/available_phone_number/national_spec.rb +0 -103
  756. data/spec/integration/api/v2010/account/available_phone_number/shared_cost_spec.rb +0 -103
  757. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +0 -102
  758. data/spec/integration/api/v2010/account/available_phone_number/voip_spec.rb +0 -103
  759. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +0 -130
  760. data/spec/integration/api/v2010/account/balance_spec.rb +0 -45
  761. data/spec/integration/api/v2010/account/call/feedback_spec.rb +0 -139
  762. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +0 -151
  763. data/spec/integration/api/v2010/account/call/notification_spec.rb +0 -181
  764. data/spec/integration/api/v2010/account/call/recording_spec.rb +0 -287
  765. data/spec/integration/api/v2010/account/call_spec.rb +0 -361
  766. data/spec/integration/api/v2010/account/conference/participant_spec.rb +0 -350
  767. data/spec/integration/api/v2010/account/conference/recording_spec.rb +0 -237
  768. data/spec/integration/api/v2010/account/conference_spec.rb +0 -263
  769. data/spec/integration/api/v2010/account/connect_app_spec.rb +0 -201
  770. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +0 -137
  771. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +0 -223
  772. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +0 -185
  773. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +0 -185
  774. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +0 -185
  775. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +0 -341
  776. data/spec/integration/api/v2010/account/key_spec.rb +0 -180
  777. data/spec/integration/api/v2010/account/message/feedback_spec.rb +0 -50
  778. data/spec/integration/api/v2010/account/message/media_spec.rb +0 -164
  779. data/spec/integration/api/v2010/account/message_spec.rb +0 -290
  780. data/spec/integration/api/v2010/account/new_key_spec.rb +0 -47
  781. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +0 -47
  782. data/spec/integration/api/v2010/account/notification_spec.rb +0 -174
  783. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +0 -195
  784. data/spec/integration/api/v2010/account/queue/member_spec.rb +0 -210
  785. data/spec/integration/api/v2010/account/queue_spec.rb +0 -248
  786. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +0 -177
  787. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +0 -168
  788. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +0 -176
  789. data/spec/integration/api/v2010/account/recording_spec.rb +0 -187
  790. data/spec/integration/api/v2010/account/short_code_spec.rb +0 -182
  791. data/spec/integration/api/v2010/account/signing_key_spec.rb +0 -180
  792. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +0 -256
  793. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +0 -244
  794. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping_spec.rb +0 -220
  795. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping_spec.rb +0 -220
  796. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping_spec.rb +0 -12
  797. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping_spec.rb +0 -220
  798. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping_spec.rb +0 -12
  799. data/spec/integration/api/v2010/account/sip/domain/auth_types_spec.rb +0 -12
  800. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +0 -210
  801. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +0 -220
  802. data/spec/integration/api/v2010/account/sip/domain_spec.rb +0 -295
  803. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +0 -258
  804. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +0 -254
  805. data/spec/integration/api/v2010/account/sip_spec.rb +0 -12
  806. data/spec/integration/api/v2010/account/token_spec.rb +0 -58
  807. data/spec/integration/api/v2010/account/transcription_spec.rb +0 -169
  808. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +0 -113
  809. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +0 -113
  810. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +0 -113
  811. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +0 -113
  812. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +0 -113
  813. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +0 -113
  814. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +0 -113
  815. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +0 -113
  816. data/spec/integration/api/v2010/account/usage/record_spec.rb +0 -110
  817. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +0 -285
  818. data/spec/integration/api/v2010/account/usage_spec.rb +0 -12
  819. data/spec/integration/api/v2010/account/validation_request_spec.rb +0 -48
  820. data/spec/integration/api/v2010/account_spec.rb +0 -275
  821. data/spec/integration/authy/v1/form_spec.rb +0 -48
  822. data/spec/integration/authy/v1/service/entity/factor/challenge_spec.rb +0 -267
  823. data/spec/integration/authy/v1/service/entity/factor_spec.rb +0 -273
  824. data/spec/integration/authy/v1/service/entity_spec.rb +0 -201
  825. data/spec/integration/authy/v1/service_spec.rb +0 -227
  826. data/spec/integration/autopilot/v1/assistant/defaults_spec.rb +0 -81
  827. data/spec/integration/autopilot/v1/assistant/dialogue_spec.rb +0 -47
  828. data/spec/integration/autopilot/v1/assistant/field_type/field_value_spec.rb +0 -210
  829. data/spec/integration/autopilot/v1/assistant/field_type_spec.rb +0 -246
  830. data/spec/integration/autopilot/v1/assistant/model_build_spec.rb +0 -241
  831. data/spec/integration/autopilot/v1/assistant/query_spec.rb +0 -306
  832. data/spec/integration/autopilot/v1/assistant/style_sheet_spec.rb +0 -81
  833. data/spec/integration/autopilot/v1/assistant/task/field_spec.rb +0 -207
  834. data/spec/integration/autopilot/v1/assistant/task/sample_spec.rb +0 -253
  835. data/spec/integration/autopilot/v1/assistant/task/task_actions_spec.rb +0 -87
  836. data/spec/integration/autopilot/v1/assistant/task/task_statistics_spec.rb +0 -50
  837. data/spec/integration/autopilot/v1/assistant/task_spec.rb +0 -262
  838. data/spec/integration/autopilot/v1/assistant_spec.rb +0 -270
  839. data/spec/integration/chat/v1/credential_spec.rb +0 -223
  840. data/spec/integration/chat/v1/service/channel/invite_spec.rb +0 -210
  841. data/spec/integration/chat/v1/service/channel/member_spec.rb +0 -284
  842. data/spec/integration/chat/v1/service/channel/message_spec.rb +0 -294
  843. data/spec/integration/chat/v1/service/channel_spec.rb +0 -277
  844. data/spec/integration/chat/v1/service/role_spec.rb +0 -263
  845. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +0 -94
  846. data/spec/integration/chat/v1/service/user_spec.rb +0 -266
  847. data/spec/integration/chat/v1/service_spec.rb +0 -299
  848. data/spec/integration/chat/v2/credential_spec.rb +0 -223
  849. data/spec/integration/chat/v2/service/binding_spec.rb +0 -177
  850. data/spec/integration/chat/v2/service/channel/invite_spec.rb +0 -210
  851. data/spec/integration/chat/v2/service/channel/member_spec.rb +0 -261
  852. data/spec/integration/chat/v2/service/channel/message_spec.rb +0 -405
  853. data/spec/integration/chat/v2/service/channel/webhook_spec.rb +0 -307
  854. data/spec/integration/chat/v2/service/channel_spec.rb +0 -281
  855. data/spec/integration/chat/v2/service/role_spec.rb +0 -263
  856. data/spec/integration/chat/v2/service/user/user_binding_spec.rb +0 -180
  857. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +0 -192
  858. data/spec/integration/chat/v2/service/user_spec.rb +0 -270
  859. data/spec/integration/chat/v2/service_spec.rb +0 -354
  860. data/spec/integration/fax/v1/fax/fax_media_spec.rb +0 -128
  861. data/spec/integration/fax/v1/fax_spec.rb +0 -271
  862. data/spec/integration/flex_api/v1/configuration_spec.rb +0 -365
  863. data/spec/integration/flex_api/v1/flex_flow_spec.rb +0 -255
  864. data/spec/integration/insights/v1/summary_spec.rb +0 -61
  865. data/spec/integration/ip_messaging/v1/credential_spec.rb +0 -223
  866. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +0 -210
  867. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +0 -284
  868. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +0 -294
  869. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +0 -277
  870. data/spec/integration/ip_messaging/v1/service/role_spec.rb +0 -263
  871. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +0 -94
  872. data/spec/integration/ip_messaging/v1/service/user_spec.rb +0 -266
  873. data/spec/integration/ip_messaging/v1/service_spec.rb +0 -299
  874. data/spec/integration/ip_messaging/v2/credential_spec.rb +0 -223
  875. data/spec/integration/ip_messaging/v2/service/binding_spec.rb +0 -177
  876. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +0 -210
  877. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +0 -261
  878. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +0 -405
  879. data/spec/integration/ip_messaging/v2/service/channel/webhook_spec.rb +0 -307
  880. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +0 -281
  881. data/spec/integration/ip_messaging/v2/service/role_spec.rb +0 -263
  882. data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +0 -180
  883. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +0 -192
  884. data/spec/integration/ip_messaging/v2/service/user_spec.rb +0 -270
  885. data/spec/integration/ip_messaging/v2/service_spec.rb +0 -354
  886. data/spec/integration/lookups/v1/phone_number_spec.rb +0 -332
  887. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +0 -170
  888. data/spec/integration/messaging/v1/service/phone_number_spec.rb +0 -201
  889. data/spec/integration/messaging/v1/service/short_code_spec.rb +0 -173
  890. data/spec/integration/messaging/v1/service_spec.rb +0 -271
  891. data/spec/integration/messaging/v1/session/message_spec.rb +0 -238
  892. data/spec/integration/messaging/v1/session/participant_spec.rb +0 -256
  893. data/spec/integration/messaging/v1/session/webhook_spec.rb +0 -300
  894. data/spec/integration/messaging/v1/session_spec.rb +0 -227
  895. data/spec/integration/messaging/v1/webhook_spec.rb +0 -94
  896. data/spec/integration/monitor/v1/alert_spec.rb +0 -163
  897. data/spec/integration/monitor/v1/event_spec.rb +0 -150
  898. data/spec/integration/notify/v1/credential_spec.rb +0 -223
  899. data/spec/integration/notify/v1/service/binding_spec.rb +0 -225
  900. data/spec/integration/notify/v1/service/notification_spec.rb +0 -99
  901. data/spec/integration/notify/v1/service_spec.rb +0 -286
  902. data/spec/integration/preview/acc_security/service/verification_check_spec.rb +0 -52
  903. data/spec/integration/preview/acc_security/service/verification_spec.rb +0 -52
  904. data/spec/integration/preview/acc_security/service_spec.rb +0 -185
  905. data/spec/integration/preview/bulk_exports/export/day_spec.rb +0 -58
  906. data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +0 -79
  907. data/spec/integration/preview/bulk_exports/export_spec.rb +0 -45
  908. data/spec/integration/preview/deployed_devices/fleet/certificate_spec.rb +0 -238
  909. data/spec/integration/preview/deployed_devices/fleet/deployment_spec.rb +0 -233
  910. data/spec/integration/preview/deployed_devices/fleet/device_spec.rb +0 -249
  911. data/spec/integration/preview/deployed_devices/fleet/key_spec.rb +0 -237
  912. data/spec/integration/preview/deployed_devices/fleet_spec.rb +0 -246
  913. data/spec/integration/preview/hosted_numbers/authorization_document/dependent_hosted_number_order_spec.rb +0 -111
  914. data/spec/integration/preview/hosted_numbers/authorization_document_spec.rb +0 -227
  915. data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +0 -393
  916. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +0 -123
  917. data/spec/integration/preview/marketplace/available_add_on_spec.rb +0 -144
  918. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +0 -164
  919. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +0 -254
  920. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +0 -204
  921. data/spec/integration/preview/sync/service/document_spec.rb +0 -254
  922. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +0 -254
  923. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +0 -204
  924. data/spec/integration/preview/sync/service/sync_list_spec.rb +0 -209
  925. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +0 -254
  926. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +0 -204
  927. data/spec/integration/preview/sync/service/sync_map_spec.rb +0 -209
  928. data/spec/integration/preview/sync/service_spec.rb +0 -246
  929. data/spec/integration/preview/trusted_comms/current_call_spec.rb +0 -46
  930. data/spec/integration/preview/trusted_comms/device_spec.rb +0 -45
  931. data/spec/integration/preview/trusted_comms/phone_call_spec.rb +0 -48
  932. data/spec/integration/preview/understand/assistant/assistant_fallback_actions_spec.rb +0 -81
  933. data/spec/integration/preview/understand/assistant/assistant_initiation_actions_spec.rb +0 -81
  934. data/spec/integration/preview/understand/assistant/dialogue_spec.rb +0 -47
  935. data/spec/integration/preview/understand/assistant/field_type/field_value_spec.rb +0 -210
  936. data/spec/integration/preview/understand/assistant/field_type_spec.rb +0 -246
  937. data/spec/integration/preview/understand/assistant/model_build_spec.rb +0 -241
  938. data/spec/integration/preview/understand/assistant/query_spec.rb +0 -306
  939. data/spec/integration/preview/understand/assistant/style_sheet_spec.rb +0 -81
  940. data/spec/integration/preview/understand/assistant/task/field_spec.rb +0 -207
  941. data/spec/integration/preview/understand/assistant/task/sample_spec.rb +0 -253
  942. data/spec/integration/preview/understand/assistant/task/task_actions_spec.rb +0 -87
  943. data/spec/integration/preview/understand/assistant/task/task_statistics_spec.rb +0 -50
  944. data/spec/integration/preview/understand/assistant/task_spec.rb +0 -262
  945. data/spec/integration/preview/understand/assistant_spec.rb +0 -274
  946. data/spec/integration/preview/wireless/command_spec.rb +0 -169
  947. data/spec/integration/preview/wireless/rate_plan_spec.rb +0 -262
  948. data/spec/integration/preview/wireless/sim/usage_spec.rb +0 -51
  949. data/spec/integration/preview/wireless/sim_spec.rb +0 -210
  950. data/spec/integration/pricing/v1/messaging/country_spec.rb +0 -139
  951. data/spec/integration/pricing/v1/messaging_spec.rb +0 -12
  952. data/spec/integration/pricing/v1/phone_number/country_spec.rb +0 -130
  953. data/spec/integration/pricing/v1/phone_number_spec.rb +0 -12
  954. data/spec/integration/pricing/v1/voice/country_spec.rb +0 -140
  955. data/spec/integration/pricing/v1/voice/number_spec.rb +0 -56
  956. data/spec/integration/pricing/v1/voice_spec.rb +0 -12
  957. data/spec/integration/pricing/v2/voice/country_spec.rb +0 -181
  958. data/spec/integration/pricing/v2/voice/number_spec.rb +0 -62
  959. data/spec/integration/pricing/v2/voice_spec.rb +0 -12
  960. data/spec/integration/proxy/v1/service/phone_number_spec.rb +0 -236
  961. data/spec/integration/proxy/v1/service/session/interaction_spec.rb +0 -136
  962. data/spec/integration/proxy/v1/service/session/participant/message_interaction_spec.rb +0 -166
  963. data/spec/integration/proxy/v1/service/session/participant_spec.rb +0 -243
  964. data/spec/integration/proxy/v1/service/session_spec.rb +0 -230
  965. data/spec/integration/proxy/v1/service/short_code_spec.rb +0 -229
  966. data/spec/integration/proxy/v1/service_spec.rb +0 -218
  967. data/spec/integration/serverless/v1/service/asset/asset_version_spec.rb +0 -144
  968. data/spec/integration/serverless/v1/service/asset_spec.rb +0 -177
  969. data/spec/integration/serverless/v1/service/build_spec.rb +0 -184
  970. data/spec/integration/serverless/v1/service/environment/deployment_spec.rb +0 -137
  971. data/spec/integration/serverless/v1/service/environment/variable_spec.rb +0 -181
  972. data/spec/integration/serverless/v1/service/environment_spec.rb +0 -143
  973. data/spec/integration/serverless/v1/service/function/function_version_spec.rb +0 -144
  974. data/spec/integration/serverless/v1/service/function_spec.rb +0 -177
  975. data/spec/integration/serverless/v1/service_spec.rb +0 -180
  976. data/spec/integration/studio/v1/flow/engagement/engagement_context_spec.rb +0 -51
  977. data/spec/integration/studio/v1/flow/engagement/step/step_context_spec.rb +0 -54
  978. data/spec/integration/studio/v1/flow/engagement/step_spec.rb +0 -101
  979. data/spec/integration/studio/v1/flow/engagement_spec.rb +0 -171
  980. data/spec/integration/studio/v1/flow/execution/execution_context_spec.rb +0 -51
  981. data/spec/integration/studio/v1/flow/execution/execution_step/execution_step_context_spec.rb +0 -54
  982. data/spec/integration/studio/v1/flow/execution/execution_step_spec.rb +0 -101
  983. data/spec/integration/studio/v1/flow/execution_spec.rb +0 -171
  984. data/spec/integration/studio/v1/flow_spec.rb +0 -117
  985. data/spec/integration/sync/v1/service/document/document_permission_spec.rb +0 -204
  986. data/spec/integration/sync/v1/service/document_spec.rb +0 -257
  987. data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +0 -257
  988. data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +0 -204
  989. data/spec/integration/sync/v1/service/sync_list_spec.rb +0 -257
  990. data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +0 -257
  991. data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +0 -204
  992. data/spec/integration/sync/v1/service/sync_map_spec.rb +0 -257
  993. data/spec/integration/sync/v1/service/sync_stream/stream_message_spec.rb +0 -47
  994. data/spec/integration/sync/v1/service/sync_stream_spec.rb +0 -249
  995. data/spec/integration/sync/v1/service_spec.rb +0 -254
  996. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +0 -236
  997. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +0 -165
  998. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +0 -225
  999. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +0 -316
  1000. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics_spec.rb +0 -96
  1001. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics_spec.rb +0 -82
  1002. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +0 -108
  1003. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +0 -146
  1004. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +0 -294
  1005. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +0 -326
  1006. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +0 -194
  1007. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +0 -188
  1008. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +0 -92
  1009. data/spec/integration/taskrouter/v1/workspace/worker/workers_cumulative_statistics_spec.rb +0 -89
  1010. data/spec/integration/taskrouter/v1/workspace/worker/workers_real_time_statistics_spec.rb +0 -70
  1011. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +0 -116
  1012. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +0 -294
  1013. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics_spec.rb +0 -97
  1014. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_real_time_statistics_spec.rb +0 -58
  1015. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +0 -71
  1016. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +0 -272
  1017. data/spec/integration/taskrouter/v1/workspace/workspace_cumulative_statistics_spec.rb +0 -94
  1018. data/spec/integration/taskrouter/v1/workspace/workspace_real_time_statistics_spec.rb +0 -73
  1019. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +0 -105
  1020. data/spec/integration/taskrouter/v1/workspace_spec.rb +0 -295
  1021. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +0 -192
  1022. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +0 -192
  1023. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +0 -252
  1024. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +0 -267
  1025. data/spec/integration/trunking/v1/trunk/terminating_sip_domain_spec.rb +0 -231
  1026. data/spec/integration/trunking/v1/trunk_spec.rb +0 -368
  1027. data/spec/integration/verify/v2/service/verification_check_spec.rb +0 -54
  1028. data/spec/integration/verify/v2/service/verification_spec.rb +0 -169
  1029. data/spec/integration/verify/v2/service_spec.rb +0 -231
  1030. data/spec/integration/video/v1/composition_hook_spec.rb +0 -410
  1031. data/spec/integration/video/v1/composition_settings_spec.rb +0 -86
  1032. data/spec/integration/video/v1/composition_spec.rb +0 -350
  1033. data/spec/integration/video/v1/recording_settings_spec.rb +0 -86
  1034. data/spec/integration/video/v1/recording_spec.rb +0 -179
  1035. data/spec/integration/video/v1/room/recording_spec.rb +0 -188
  1036. data/spec/integration/video/v1/room/room_participant/room_participant_published_track_spec.rb +0 -96
  1037. data/spec/integration/video/v1/room/room_participant/room_participant_subscribe_rule_spec.rb +0 -92
  1038. data/spec/integration/video/v1/room/room_participant/room_participant_subscribed_track_spec.rb +0 -97
  1039. data/spec/integration/video/v1/room/room_participant_spec.rb +0 -190
  1040. data/spec/integration/video/v1/room_spec.rb +0 -257
  1041. data/spec/integration/voice/v1/dialing_permissions/bulk_country_update_spec.rb +0 -45
  1042. data/spec/integration/voice/v1/dialing_permissions/country/highrisk_special_prefix_spec.rb +0 -61
  1043. data/spec/integration/voice/v1/dialing_permissions/country_spec.rb +0 -112
  1044. data/spec/integration/voice/v1/dialing_permissions/settings_spec.rb +0 -77
  1045. data/spec/integration/voice/v1/dialing_permissions_spec.rb +0 -12
  1046. data/spec/integration/wireless/v1/command_spec.rb +0 -289
  1047. data/spec/integration/wireless/v1/rate_plan_spec.rb +0 -270
  1048. data/spec/integration/wireless/v1/sim/data_session_spec.rb +0 -89
  1049. data/spec/integration/wireless/v1/sim/usage_record_spec.rb +0 -67
  1050. data/spec/integration/wireless/v1/sim_spec.rb +0 -245
  1051. data/spec/jwt/access_token_spec.rb +0 -151
  1052. data/spec/jwt/client_capability_spec.rb +0 -104
  1053. data/spec/jwt/task_router_spec.rb +0 -172
  1054. data/spec/rack/twilio_webhook_authentication_spec.rb +0 -106
  1055. data/spec/rest/client_spec.rb +0 -61
  1056. data/spec/security/request_validator_spec.rb +0 -84
  1057. data/spec/spec_helper.rb +0 -38
  1058. data/spec/support/fakeweb.rb +0 -2
  1059. data/spec/twilio_spec.rb +0 -15
  1060. data/spec/twiml/messaging_response_spec.rb +0 -235
  1061. data/spec/twiml/voice_response_spec.rb +0 -847
  1062. data/spec/util/configuration_spec.rb +0 -15
  1063. data/spec/util/url_encode_spec.rb +0 -12
  1064. /data/lib/twilio-ruby/framework/{helper.rb → rest/helper.rb} +0 -0
  1065. /data/lib/twilio-ruby/framework/{obsolete_client.rb → rest/obsolete_client.rb} +0 -0
  1066. /data/lib/twilio-ruby/framework/{page.rb → rest/page.rb} +0 -0
  1067. /data/lib/twilio-ruby/framework/{resource.rb → rest/resource.rb} +0 -0
data/README.md CHANGED
@@ -1,38 +1,51 @@
1
1
  # twilio-ruby
2
2
 
3
- [![Build Status](http://img.shields.io/travis/twilio/twilio-ruby.svg)][travis]
4
- [![Gem Version](http://img.shields.io/gem/v/twilio-ruby.svg)](https://rubygems.org/gems/twilio-ruby)
3
+ [![Tests](https://github.com/twilio/twilio-ruby/actions/workflows/test-and-deploy.yml/badge.svg)][github-actions]
4
+ [![Gem Version](https://img.shields.io/gem/v/twilio-ruby.svg)](https://rubygems.org/gems/twilio-ruby)
5
+ [![Learn with TwilioQuest](https://img.shields.io/static/v1?label=TwilioQuest&message=Learn%20to%20contribute%21&color=F22F46&labelColor=1f243c&style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAASFBMVEUAAAAZGRkcHBwjIyMoKCgAAABgYGBoaGiAgICMjIyzs7PJycnMzMzNzc3UoBfd3d3m5ubqrhfrMEDu7u739/f4vSb/3AD///9tbdyEAAAABXRSTlMAAAAAAMJrBrEAAAKoSURBVHgB7ZrRcuI6EESdyxXGYoNFvMD//+l2bSszRgyUYpFAsXOeiJGmj4NkuWx1Qeh+Ekl9DgEXOBwOx+Px5xyQhDykfgq4wG63MxxaR4ddIkg6Ul3g84vCIcjPBA5gmUMeXESrlukuoK33+33uID8TWeLAdOWsKpJYzwVMB7bOzYSGOciyUlXSn0/ABXTosJ1M1SbypZ4O4MbZuIDMU02PMbauhhHMHXbmebmALIiEbbbbbUrpF1gwE9kFfRNAJaP+FQEXCCTGyJ4ngDrjOFo3jEL5JdqjF/pueR4cCeCGgAtwmuRS6gDwaRiGvu+DMFwSBLTE3+jF8JyuV1okPZ+AC4hDFhCHyHQjdjPHUKFDlHSJkHQXMB3KpSwXNGJPcwwTdZiXlRN0gSp0zpWxNtM0beYE0nRH6QIbO7rawwXaBYz0j78gxjokDuv12gVeUuBD0MDi0OQCLvDaAho4juP1Q/jkAncXqIcCfd+7gAu4QLMACCLxpRsSuQh0igu0C9Svhi7weAGZg50L3IE3cai4IfkNZAC8dfdhsUD3CgKBVC9JE5ABAFzg4QL/taYPAAWrHdYcgfLaIgAXWJ7OV38n1LEF8tt2TH29E+QAoDoO5Ve/LtCQDmKM9kPbvCEBApK+IXzbcSJ0cIGF6e8gpcRhUDogWZ8JnaWjPXc/fNnBBUKRngiHgTUSivSzDRDgHZQOLvBQgf8rRt+VdBUUhwkU6VpJ+xcOwQUqZr+mR0kvBUgv6cB4+37hQAkXqE8PwGisGhJtN4xAHMzrsgvI7rccXqSvKh6jltGlrOHA3Xk1At3LC4QiPdX9/0ndHpGVvTjR4bZA1ypAKgVcwE5vx74ulwIugDt8e/X7JgfkucBMIAr26ndnB4UCLnDOqvteQsHlgX9N4A+c4cW3DXSPbwAAAABJRU5ErkJggg==)](https://twil.io/learn-open-source)
5
6
 
6
- A module for using the Twilio REST API and generating valid [TwiML](http://www.twilio.com/docs/api/twiml/ "TwiML - Twilio Markup Language"). [Click here to read the full documentation.][documentation]
7
+ ## Documentation
8
+
9
+ The documentation for the Twilio API can be found [here][apidocs].
10
+
11
+ The individual releases [here][refdocs].
12
+
13
+ ## Versions
14
+
15
+ `twilio-ruby` uses a modified version of [Semantic Versioning](https://semver.org) for all changes. [See this document](VERSIONS.md) for details.
16
+
17
+ ### Supported Ruby Versions
7
18
 
8
- ## Recent Update
19
+ This library supports the following Ruby implementations:
9
20
 
10
- As of release 5.1.0, Beta and Developer Preview products are now exposed via
11
- the main `twilio-ruby` artifact. Releases of the `alpha` branch have been
12
- discontinued.
21
+ * Ruby 2.4
22
+ * Ruby 2.5
23
+ * Ruby 2.6
24
+ * Ruby 2.7
25
+ * Ruby 3.0
26
+ * Ruby 3.1
27
+ * Ruby 3.2
13
28
 
14
- If you were using the `alpha` release line, you should be able to switch back
15
- to the normal release line without issue.
29
+ * JRuby 9.2
30
+ * JRuby 9.3
31
+ * JRuby 9.4
16
32
 
17
- If you were using the normal release line, you should now see several new
18
- product lines that were historically hidden from you due to their Beta or
19
- Developer Preview status. Such products are explicitly documented as
20
- Beta/Developer Preview both in the Twilio docs and console, as well as through
21
- in-line code documentation here in the library.
33
+ ### Migrating from 5.x
22
34
 
35
+ [Upgrade Guide][upgrade]
23
36
 
24
37
  ## Installation
25
38
 
26
39
  To install using [Bundler][bundler] grab the latest stable version:
27
40
 
28
41
  ```ruby
29
- gem 'twilio-ruby', '~> 5.23.0'
42
+ gem 'twilio-ruby', '~> 7.2.3'
30
43
  ```
31
44
 
32
45
  To manually install `twilio-ruby` via [Rubygems][rubygems] simply gem install:
33
46
 
34
47
  ```bash
35
- gem install twilio-ruby -v 5.23.0
48
+ gem install twilio-ruby -v 7.2.3
36
49
  ```
37
50
 
38
51
  To build and install the development branch yourself from the latest source:
@@ -43,40 +56,86 @@ cd twilio-ruby
43
56
  make install
44
57
  ```
45
58
 
46
- ### Migration from 4.x
47
- [Upgrade Guide][upgrade]
59
+ > **Info**
60
+ > If the command line gives you an error message that says Permission Denied, try running the above commands with sudo.
61
+ >
62
+ > For example: `sudo gem install twilio-ruby`
48
63
 
49
- ## Documentation
50
- [Here][documentation]
64
+ ### Test your installation
51
65
 
52
- ## Docker Image
53
- The `Dockerfile` present in this repository and its respective `twilio/twilio-ruby` Docker image are currently used by Twilio for testing purposes only.
66
+ To make sure the installation was successful, try sending yourself an SMS message, like this:
54
67
 
55
- ## Getting help
68
+ ```rb
69
+ require "twilio-ruby"
56
70
 
57
- If you need help installing or using the library, please check the [Twilio Support Help Center](https://support.twilio.com) first, and [file a support ticket](https://twilio.com/help/contact) if you don't find an answer to your question.
71
+ # Your Account SID and Auth Token from console.twilio.com
72
+ account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
73
+ auth_token = "your_auth_token"
58
74
 
59
- If you've instead found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo!
75
+ @client = Twilio::REST::Client.new account_sid, auth_token
76
+ message = @client.messages.create(
77
+ body: "Hello from Ruby",
78
+ to: "+12345678901", # Text this number
79
+ from: "+15005550006", # From a valid Twilio number
80
+ )
81
+
82
+ puts message.sid
83
+ ```
60
84
 
61
- ## Getting Started
85
+ > **Warning**
86
+ > It's okay to hardcode your credentials when testing locally, but you should use environment variables to keep them secret before committing any code or deploying to production. Check out [How to Set Environment Variables](https://www.twilio.com/blog/2017/01/how-to-set-environment-variables.html) for more information.
62
87
 
63
- ### Setup Work
88
+ ## Usage
89
+
90
+ ### Authenticate the Client
64
91
 
65
92
  ```ruby
66
93
  require 'twilio-ruby'
67
94
 
68
- # put your own credentials here
95
+ # Your Account SID and Auth Token from console.twilio.com
69
96
  account_sid = 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
70
97
  auth_token = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
71
98
 
72
- # set up a client to talk to the Twilio REST API
99
+ # Initialize the Twilio Client with your credentials
73
100
  @client = Twilio::REST::Client.new account_sid, auth_token
74
101
  ```
75
102
 
103
+ ### Use An API Key
104
+
105
+ ```ruby
106
+ require 'twilio-ruby'
107
+
108
+ # Your Account SID from console.twilio.com
109
+ account_sid = 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
110
+ # API Key from twilio.com/console/project/api-keys
111
+ api_key_sid = 'zzzzzzzzzzzzzzzzzzzzzz'
112
+ api_key_secret = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
113
+
114
+ # set up a client to talk to the Twilio REST API using an API Key
115
+ @client = Twilio::REST::Client.new api_key_sid, api_key_secret, account_sid
116
+ ```
117
+
118
+ ### Specify a Region and/or Edge
119
+
120
+ To take advantage of Twilio's [Global Infrastructure](https://www.twilio.com/docs/global-infrastructure), specify the target Region and/or Edge for the client:
121
+
122
+ ```ruby
123
+ # set up a client to talk to the Twilio REST API over a specific region and edge
124
+ @client = Twilio::REST::Client.new account_sid, auth_token, nil, 'au1'
125
+ @client.edge = 'sydney'
126
+
127
+ # you may also specify the region and/or edge after client creation
128
+ @client = Twilio::REST::Client.new account_sid, auth_token
129
+ @client.region = 'au1'
130
+ @client.edge = 'sydney'
131
+ ```
132
+
133
+ This will result in the `hostname` transforming from `api.twilio.com` to `api.sydney.au1.twilio.com`.
134
+
76
135
  ### Make a Call
77
136
 
78
137
  ```ruby
79
- @client.api.account.calls.create(
138
+ @client.calls.create(
80
139
  from: '+14159341234',
81
140
  to: '+16105557069',
82
141
  url: 'http://example.com'
@@ -86,7 +145,7 @@ auth_token = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
86
145
  ### Send an SMS
87
146
 
88
147
  ```ruby
89
- @client.api.account.messages.create(
148
+ @client.messages.create(
90
149
  from: '+14159341234',
91
150
  to: '+16105557069',
92
151
  body: 'Hey there!'
@@ -96,7 +155,7 @@ auth_token = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
96
155
  ### List your SMS Messages
97
156
 
98
157
  ```ruby
99
- @client.api.account.messages.list
158
+ @client.messages.list(limit: 20)
100
159
  ```
101
160
 
102
161
  ### Fetch a single SMS message by Sid
@@ -104,21 +163,116 @@ auth_token = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
104
163
  ```ruby
105
164
  # put the message sid you want to retrieve here:
106
165
  message_sid = 'SMxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
107
- @client.api.account.messages(message_sid).fetch
166
+ @client.messages(message_sid).fetch
167
+ ```
168
+
169
+ ### Iterate through records
170
+
171
+ The library automatically handles paging for you. Collections, such as `calls` and `messages`, have `list` and stream methods that page under the hood. With both `list` and `stream`, you can specify the number of records you want to receive (`limit`) and the maximum size you want each page fetch to be (`page_size`). The library will then handle the task for you.
172
+
173
+ `list` eagerly fetches all records and returns them as a list, whereas `stream` returns an enumerator and lazily retrieves pages of records as you iterate over the collection. You can also page manually using the `page` method.
174
+
175
+ For more information about these methods, view the [auto-generated library docs](https://www.twilio.com/docs/libraries/reference/twilio-ruby).
176
+
177
+ ```rb
178
+ require 'twilio-ruby'
179
+
180
+ account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
181
+ auth_token = 'your_auth_token'
182
+
183
+ @client = Twilio::REST::Client.new(account_sid, auth_token)
184
+
185
+ @client.calls.list
186
+ .each do |call|
187
+ puts call.direction
188
+ end
108
189
  ```
109
190
 
110
- ### Customizing your HTTP Client
111
- twilio-ruby uses [Faraday][faraday] to make HTTP requests. You can tell
112
- Twilio::REST::Client to use any of the Faraday adapters like so:
191
+ ### Enable Debug logging
192
+
193
+ In order to enable debug logging, pass in a 'logger' instance to the client with the level set to at least 'DEBUG'
194
+
195
+ ```ruby
196
+ @client = Twilio::REST::Client.new account_sid, auth_token
197
+ myLogger = Logger.new(STDOUT)
198
+ myLogger.level = Logger::DEBUG
199
+ @client.logger = myLogger
200
+
201
+ @client = Twilio::REST::Client.new account_sid, auth_token
202
+ myLogger = Logger.new('my_log.log')
203
+ myLogger.level = Logger::DEBUG
204
+ @client.logger = myLogger
205
+ ```
206
+
207
+ ### Handle Exceptions {#exceptions}
208
+
209
+ If the Twilio API returns a 400 or a 500 level HTTP response, the `twilio-ruby`
210
+ library will throw a `Twilio::REST::RestError`. 400-level errors are normal
211
+ during API operation (`“Invalid number”`, `“Cannot deliver SMS to that number”`,
212
+ for example) and should be handled appropriately.
213
+
214
+ ```rb
215
+ require 'twilio-ruby'
216
+
217
+ account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
218
+ auth_token = 'your_auth_token'
219
+
220
+ @client = Twilio::REST::Client.new account_sid, auth_token
221
+
222
+ begin
223
+ messages = @client.messages.list(limit: 20)
224
+ rescue Twilio::REST::RestError => e
225
+ puts e.message
226
+ end
227
+ ```
228
+
229
+ ### Debug API requests
230
+
231
+ To assist with debugging, the library allows you to access the underlying request and response objects. This capability is built into the default HTTP client that ships with the library.
232
+
233
+ For example, you can retrieve the status code of the last response like so:
234
+
235
+ ```ruby
236
+ require 'rubygems' # Not necessary with ruby 1.9 but included for completeness
237
+ require 'twilio-ruby'
238
+
239
+ # Your Account SID and Auth Token from console.twilio.com
240
+ account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
241
+ auth_token = 'your_auth_token'
242
+
243
+ @client = Twilio::REST::Client.new(account_sid, auth_token)
244
+
245
+ @message = @client.messages.create(
246
+ to: '+14158675309',
247
+ from: '+14258675310',
248
+ body: 'Ahoy!'
249
+ )
250
+
251
+ # Retrieve the status code of the last response from the HTTP client
252
+ puts @client.http_client.last_response.status_code
253
+ ```
254
+
255
+ ### Customize your HTTP Client
256
+
257
+ `twilio-ruby` uses [Faraday][faraday] to make HTTP requests. You can tell `Twilio::REST::Client` to use any of the Faraday adapters like so:
113
258
 
114
259
  ```ruby
115
260
  @client.http_client.adapter = :typhoeus
116
261
  ```
117
262
 
118
- ## Getting Started With Client Capability Tokens
263
+ To use a custom HTTP client with this helper library, please see the [advanced example of how to do so](./advanced-examples/custom-http-client.md).
264
+
265
+ To apply customizations such as middleware, you can use the `configure_connection` method like so:
266
+
267
+ ```ruby
268
+ @client.http_client.configure_connection do |faraday|
269
+ faraday.use SomeMiddleware
270
+ end
271
+ ```
272
+
273
+ ### Get started With Client Capability Tokens
119
274
 
120
- If you just need to generate a Capability Token for use with Twilio Client, you
121
- can do this:
275
+ If you just need to generate a Capability Token for use with Twilio Client, you can do this:
122
276
 
123
277
  ```ruby
124
278
  require 'twilio-ruby'
@@ -142,10 +296,11 @@ capability.add_scope(incoming_scope)
142
296
  @token = capability.to_s
143
297
  ```
144
298
 
145
- There is a slightly more detailed document in the [Capability][capability]
146
- section of the wiki.
299
+ There is a slightly more detailed document in the [Capability][capability] section of the wiki.
147
300
 
148
- ## Getting Started With TwiML
301
+ ### Generate TwiML
302
+
303
+ To control phone calls, your application needs to output [TwiML][twiml].
149
304
 
150
305
  You can construct a TwiML response like this:
151
306
 
@@ -175,24 +330,26 @@ This will print the following (except for the whitespace):
175
330
  </Response>
176
331
  ```
177
332
 
178
- ## Supported Ruby Versions
333
+ ## Docker Image
179
334
 
180
- This library supports and is [tested against][travis] the following Ruby
181
- implementations:
335
+ The `Dockerfile` present in this repository and its respective `twilio/twilio-ruby` Docker image are currently used by Twilio for testing purposes only.
182
336
 
183
- - Ruby 2.5.0
184
- - Ruby 2.4.0
185
- - Ruby 2.3.0
186
- - Ruby 2.2.0
337
+ ## Getting help
338
+
339
+ If you need help installing or using the library, please check the [Twilio Support Help Center](https://support.twilio.com) first, and [file a support ticket](https://twilio.com/help/contact) if you don't find an answer to your question.
340
+
341
+ If you've instead found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo!
187
342
 
343
+ [apidocs]: https://www.twilio.com/docs/api
344
+ [twiml]: https://www.twilio.com/docs/api/twiml
345
+ [libdocs]: https://www.twilio.com/docs/libraries/reference/twilio-ruby/
346
+ [refdocs]: https://twilio.github.io/twilio-ruby
188
347
  [capability]: https://github.com/twilio/twilio-ruby/wiki/JWT-Tokens
189
- [examples]: https://github.com/twilio/twilio-ruby/blob/master/examples
190
- [documentation]: http://twilio.github.io/twilio-ruby
191
348
  [wiki]: https://github.com/twilio/twilio-ruby/wiki
192
- [bundler]: http://bundler.io
193
- [rubygems]: http://rubygems.org
349
+ [bundler]: https://bundler.io
350
+ [rubygems]: https://rubygems.org
194
351
  [gem]: https://rubygems.org/gems/twilio
195
- [travis]: http://travis-ci.org/twilio/twilio-ruby
352
+ [github-actions]: https://github.com/twilio/twilio-ruby/actions/workflows/test-and-deploy.yml
196
353
  [upgrade]: https://github.com/twilio/twilio-ruby/wiki/Ruby-Version-5.x-Upgrade-Guide
197
354
  [issues]: https://github.com/twilio/twilio-ruby/issues
198
355
  [faraday]: https://github.com/lostisland/faraday
data/Rakefile CHANGED
@@ -8,57 +8,3 @@ RSpec::Core::RakeTask.new(:spec)
8
8
 
9
9
  task default: :spec
10
10
  task test: :spec
11
-
12
- task :authors do
13
- `make authors`
14
- end
15
-
16
- task :deploy, [:version] => [:spec, :authors] do |t, args|
17
- current_version = Twilio::VERSION
18
-
19
- if args.version.nil?
20
- version = Twilio::VERSION
21
- version_parts = version.split('.')
22
- increment = version_parts.pop
23
- increment_prefix = increment.split(/\d/)[0]
24
-
25
- increment = increment[increment_prefix.length..-1] if increment_prefix
26
-
27
- increment = increment.to_i + 1
28
- increment = "#{increment_prefix}#{increment}" if increment_prefix
29
-
30
- version = [*version_parts, increment].join('.')
31
- else
32
- version = args.version
33
- end
34
-
35
- puts("Deploying #{version}")
36
-
37
- # Update version.rb
38
- version_file = <<SRC
39
- module Twilio
40
- VERSION = '#{version}'
41
- end
42
- SRC
43
- File.write('lib/twilio-ruby/version.rb', version_file)
44
-
45
- # Update README.md
46
- current_readme = File.read('README.md')
47
- new_readme = current_readme.gsub(Regexp.new(current_version.gsub('.', '\.')), version)
48
- File.write('README.md', new_readme)
49
-
50
- # Make a git commit
51
- `git commit -am "Bumping to version #{version}"`
52
-
53
- # Do the gem deployment
54
- `make gem`
55
-
56
- # Push the branch back up
57
- `git push`
58
-
59
- # Tag the branch
60
- `git tag #{version}`
61
-
62
- # Push the tags
63
- `git push --tags`
64
- end
data/UPGRADE.md CHANGED
@@ -3,6 +3,27 @@
3
3
  _After `5.0.0` all `MINOR` and `MAJOR` version bumps will have upgrade notes
4
4
  posted here._
5
5
 
6
+ [2024-01-19] 6.x.x to 7.x.x
7
+ -----------------------------
8
+ ### Overview
9
+
10
+ ##### Twilio Ruby Helper Library’s major version 7.0.0 is now available. We ensured that you can upgrade to Ruby helper Library 7.0.0 version without any breaking changes of existing apis
11
+
12
+ Behind the scenes Ruby Helper is now auto-generated via OpenAPI with this release. This enables us to rapidly add new features and enhance consistency across versions and languages.
13
+ We're pleased to inform you that version 7.0.0 adds support for the application/json content type in the request body.
14
+
15
+ To learn more about the Ruby Helper Library, check out [our docs](https://www.twilio.com/docs/libraries/ruby).
16
+
17
+ [2023-05-03] 5.x.x to 6.x.x
18
+ -----------------------------
19
+ ### Overview
20
+
21
+ ##### Twilio Ruby Helper Library’s major version 6.0.0 is now available. We ensured that you can upgrade to Ruby helper Library 6.0.0 version without any breaking changes
22
+
23
+ Behind the scenes Ruby Helper is now auto-generated via OpenAPI with this release. This enables us to rapidly add new features and enhance consistency across versions and languages.
24
+
25
+ To learn more about the Ruby Helper Library, check out [our docs](https://www.twilio.com/docs/libraries/ruby).
26
+
6
27
  [2017-09-29] 5.x.x to 5.3.x
7
28
  ---------------------------
8
29
 
data/VERSIONS.md CHANGED
@@ -5,11 +5,11 @@ all changes to the helper library. It is strongly encouraged that you pin at
5
5
  least the major version and potentially the minor version to avoid pulling in
6
6
  breaking changes.
7
7
 
8
- Semantic Versions take the form of `MAJOR`.`MINOR`.`PATCH`
8
+ Semantic Versions take the form of `MAJOR.MINOR.PATCH`
9
9
 
10
- When bugs are fixed in the library in a backwards compatible way, the `PATCH`
10
+ When bugs are fixed in the library in a backwards-compatible way, the `PATCH`
11
11
  level will be incremented by one. When new features are added to the library
12
- in a backwards compatible way, the `PATCH` level will be incremented by one.
12
+ in a backwards-compatible way, the `PATCH` level will be incremented by one.
13
13
  `PATCH` changes should _not_ break your code and are generally safe for upgrade.
14
14
 
15
15
  When a new large feature set comes online or a small breaking change is
@@ -19,8 +19,8 @@ change for upgrade. These backwards-incompatible changes will generally be
19
19
  limited to a small number of function signature changes.
20
20
 
21
21
  The `MAJOR` version is used to indicate the family of technology represented by
22
- the helper library. Breaking changes that requires extensive reworking of code
23
- will case the `MAJOR` version to be incremented by one, and the `MINOR` and
22
+ the helper library. Breaking changes that require extensive reworking of code
23
+ will cause the `MAJOR` version to be incremented by one, and the `MINOR` and
24
24
  `PATCH` versions will be reset to zero. Twilio understands that this can be very
25
25
  disruptive, so we will only introduce this type of breaking change when
26
26
  absolutely necessary. New `MAJOR` versions will be communicated in advance with
@@ -28,9 +28,8 @@ absolutely necessary. New `MAJOR` versions will be communicated in advance with
28
28
 
29
29
  ## Supported Versions
30
30
 
31
- `twilio-ruby` follows an evergreen model of support. New features and
32
- functionality will only be added to the current version. The current version -
33
- 1 will continue to be supported with bug fixes and security updates, but no new
34
- features.
31
+ Only the current `MAJOR` version of `twilio-ruby` is supported. New
32
+ features, functionality, bug fixes, and security updates will only be added to
33
+ the current `MAJOR` version.
35
34
 
36
- [semver]: http://semver.org/
35
+ [semver]: https://semver.org
@@ -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!