twilio-ruby 6.8.0 → 7.10.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (761) hide show
  1. checksums.yaml +5 -5
  2. data/.dockerignore +1 -1
  3. data/.github/ISSUE_TEMPLATE/bug_report.yml +69 -0
  4. data/.github/workflows/test-and-deploy.yml +17 -8
  5. data/.gitignore +1 -0
  6. data/.rubocop.yml +1 -0
  7. data/CHANGES.md +1303 -1
  8. data/Dockerfile +3 -2
  9. data/Gemfile +5 -0
  10. data/Makefile +4 -1
  11. data/README.md +7 -2
  12. data/UPGRADE.md +11 -0
  13. data/cluster/cluster_oauth_spec.rb +19 -0
  14. data/cluster/cluster_orgs_spec.rb +40 -0
  15. data/{cluster_spec.rb → cluster/cluster_spec.rb} +0 -2
  16. data/examples/public_oauth.rb +13 -0
  17. data/lib/twilio-ruby/auth_strategy/auth_strategy.rb +19 -0
  18. data/lib/twilio-ruby/auth_strategy/no_auth_strategy.rb +17 -0
  19. data/lib/twilio-ruby/auth_strategy/token_auth_strategy.rb +39 -0
  20. data/lib/twilio-ruby/base/client_base.rb +12 -2
  21. data/lib/twilio-ruby/credential/auth_type.rb +17 -0
  22. data/lib/twilio-ruby/credential/client_credential_provider.rb +28 -0
  23. data/lib/twilio-ruby/credential/credential_provider.rb +11 -0
  24. data/lib/twilio-ruby/credential/orgs_credential_provider.rb +30 -0
  25. data/lib/twilio-ruby/framework/request.rb +8 -1
  26. data/lib/twilio-ruby/framework/rest/api_v1_version.rb +22 -0
  27. data/lib/twilio-ruby/framework/rest/domain.rb +0 -1
  28. data/lib/twilio-ruby/framework/rest/error.rb +27 -0
  29. data/lib/twilio-ruby/framework/rest/page.rb +1 -0
  30. data/lib/twilio-ruby/framework/rest/page_metadata.rb +83 -0
  31. data/lib/twilio-ruby/framework/rest/resource.rb +16 -0
  32. data/lib/twilio-ruby/framework/rest/token_page.rb +73 -0
  33. data/lib/twilio-ruby/framework/rest/version.rb +91 -4
  34. data/lib/twilio-ruby/http/client_token_manager.rb +31 -0
  35. data/lib/twilio-ruby/http/http_client.rb +22 -5
  36. data/lib/twilio-ruby/http/org_token_manager.rb +31 -0
  37. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +143 -1
  38. data/lib/twilio-ruby/rest/accounts/v1/bulk_consents.rb +231 -0
  39. data/lib/twilio-ruby/rest/accounts/v1/bulk_contacts.rb +231 -0
  40. data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +295 -14
  41. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +295 -14
  42. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +64 -0
  43. data/lib/twilio-ruby/rest/accounts/v1/messaging_geopermissions.rb +285 -0
  44. data/lib/twilio-ruby/rest/accounts/v1/safelist.rb +177 -10
  45. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +168 -2
  46. data/lib/twilio-ruby/rest/accounts/v1.rb +29 -2
  47. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +102 -5
  48. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +385 -42
  49. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +427 -57
  50. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +183 -20
  51. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/local.rb +141 -8
  52. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/machine_to_machine.rb +141 -8
  53. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/mobile.rb +141 -8
  54. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/national.rb +141 -8
  55. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/shared_cost.rb +141 -8
  56. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/toll_free.rb +141 -8
  57. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/voip.rb +141 -8
  58. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country.rb +183 -6
  59. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +96 -1
  60. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +102 -5
  61. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +192 -6
  62. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +283 -28
  63. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +330 -19
  64. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +1004 -207
  65. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +1010 -213
  66. data/lib/twilio-ruby/rest/api/v2010/account/call/transcription.rb +559 -0
  67. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +109 -3
  68. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +186 -5
  69. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +550 -120
  70. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +572 -86
  71. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +263 -12
  72. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +274 -36
  73. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +285 -24
  74. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +185 -8
  75. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +250 -11
  76. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +238 -29
  77. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +238 -29
  78. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +238 -29
  79. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +507 -79
  80. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +250 -10
  81. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +105 -2
  82. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +215 -7
  83. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +421 -52
  84. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +104 -2
  85. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +104 -2
  86. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +191 -6
  87. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +254 -10
  88. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +232 -11
  89. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +299 -15
  90. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload/data.rb +343 -0
  91. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +232 -8
  92. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +209 -7
  93. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +209 -7
  94. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +229 -10
  95. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +254 -19
  96. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +250 -10
  97. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +297 -13
  98. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +290 -12
  99. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_credential_list_mapping.rb +250 -9
  100. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_ip_access_control_list_mapping.rb +250 -9
  101. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls.rb +64 -0
  102. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations/auth_registrations_credential_list_mapping.rb +250 -9
  103. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations.rb +64 -0
  104. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +64 -0
  105. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +250 -9
  106. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +250 -9
  107. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +398 -48
  108. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +311 -18
  109. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +290 -12
  110. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +64 -0
  111. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +104 -2
  112. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +208 -7
  113. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +114 -9
  114. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +114 -9
  115. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +114 -9
  116. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +114 -9
  117. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +114 -9
  118. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +114 -9
  119. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +114 -9
  120. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +114 -9
  121. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +114 -9
  122. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +335 -27
  123. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +64 -0
  124. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +124 -7
  125. data/lib/twilio-ruby/rest/api/v2010/account.rb +271 -13
  126. data/lib/twilio-ruby/rest/api/v2010.rb +1 -0
  127. data/lib/twilio-ruby/rest/assistants/v1/assistant/assistants_knowledge.rb +558 -0
  128. data/lib/twilio-ruby/rest/assistants/v1/assistant/assistants_tool.rb +558 -0
  129. data/lib/twilio-ruby/rest/assistants/v1/assistant/feedback.rb +431 -0
  130. data/lib/twilio-ruby/rest/assistants/v1/assistant/message.rb +296 -0
  131. data/lib/twilio-ruby/rest/assistants/v1/assistant.rb +927 -0
  132. data/lib/twilio-ruby/rest/{microvisor/v1/app.rb → assistants/v1/knowledge/chunk.rb} +145 -169
  133. data/lib/twilio-ruby/rest/assistants/v1/knowledge/knowledge_status.rb +349 -0
  134. data/lib/twilio-ruby/rest/assistants/v1/knowledge.rb +871 -0
  135. data/lib/twilio-ruby/rest/assistants/v1/policy.rb +364 -0
  136. data/lib/twilio-ruby/rest/assistants/v1/session/message.rb +360 -0
  137. data/lib/twilio-ruby/rest/assistants/v1/session.rb +501 -0
  138. data/lib/twilio-ruby/rest/assistants/v1/tool.rb +847 -0
  139. data/lib/twilio-ruby/rest/assistants/v1.rb +104 -0
  140. data/lib/twilio-ruby/rest/assistants.rb +6 -0
  141. data/lib/twilio-ruby/rest/{autopilot_base.rb → assistants_base.rb} +6 -6
  142. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +183 -6
  143. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +163 -13
  144. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +170 -3
  145. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +144 -1
  146. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +195 -8
  147. data/lib/twilio-ruby/rest/bulkexports/v1.rb +2 -0
  148. data/lib/twilio-ruby/rest/chat/v1/credential.rb +336 -28
  149. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +257 -10
  150. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +305 -15
  151. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +308 -16
  152. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +315 -19
  153. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +298 -14
  154. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +102 -5
  155. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +312 -19
  156. data/lib/twilio-ruby/rest/chat/v1/service.rb +552 -118
  157. data/lib/twilio-ruby/rest/chat/v1.rb +2 -0
  158. data/lib/twilio-ruby/rest/chat/v2/credential.rb +336 -28
  159. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +214 -7
  160. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +257 -10
  161. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +354 -33
  162. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +353 -33
  163. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +342 -28
  164. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +351 -33
  165. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +298 -14
  166. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +212 -7
  167. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +266 -16
  168. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +317 -22
  169. data/lib/twilio-ruby/rest/chat/v2/service.rb +437 -72
  170. data/lib/twilio-ruby/rest/chat/v2.rb +2 -0
  171. data/lib/twilio-ruby/rest/chat/v3/channel.rb +162 -7
  172. data/lib/twilio-ruby/rest/chat/v3.rb +6 -0
  173. data/lib/twilio-ruby/rest/client.rb +26 -11
  174. data/lib/twilio-ruby/rest/content/v1/content/approval_create.rb +280 -0
  175. data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +144 -3
  176. data/lib/twilio-ruby/rest/content/v1/content.rb +1577 -10
  177. data/lib/twilio-ruby/rest/content/v1/content_and_approvals.rb +102 -5
  178. data/lib/twilio-ruby/rest/content/v1/legacy_content.rb +102 -5
  179. data/lib/twilio-ruby/rest/content/v1.rb +1 -0
  180. data/lib/twilio-ruby/rest/content/v2/content.rb +433 -0
  181. data/lib/twilio-ruby/rest/content/v2/content_and_approvals.rb +426 -0
  182. data/lib/twilio-ruby/rest/content/v2.rb +46 -0
  183. data/lib/twilio-ruby/rest/content_base.rb +6 -1
  184. data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +373 -39
  185. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +206 -15
  186. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +198 -10
  187. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +184 -6
  188. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +360 -37
  189. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +367 -40
  190. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +334 -26
  191. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +421 -76
  192. data/lib/twilio-ruby/rest/conversations/v1/conversation_with_participants.rb +392 -0
  193. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +341 -30
  194. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +106 -5
  195. data/lib/twilio-ruby/rest/conversations/v1/role.rb +295 -14
  196. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +217 -10
  197. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +245 -28
  198. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +200 -10
  199. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +216 -26
  200. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +185 -6
  201. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +363 -37
  202. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +370 -40
  203. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +337 -26
  204. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +425 -77
  205. data/lib/twilio-ruby/rest/conversations/v1/service/conversation_with_participants.rb +399 -0
  206. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +106 -5
  207. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +298 -14
  208. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +262 -14
  209. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +321 -24
  210. data/lib/twilio-ruby/rest/conversations/v1/service.rb +283 -27
  211. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +260 -14
  212. data/lib/twilio-ruby/rest/conversations/v1/user.rb +318 -24
  213. data/lib/twilio-ruby/rest/conversations/v1.rb +12 -0
  214. data/lib/twilio-ruby/rest/conversations/v2/action.rb +507 -0
  215. data/lib/twilio-ruby/rest/conversations/v2/communication.rb +698 -0
  216. data/lib/twilio-ruby/rest/conversations/v2/configuration.rb +1208 -0
  217. data/lib/twilio-ruby/rest/conversations/v2/conversation.rb +1365 -0
  218. data/lib/twilio-ruby/rest/conversations/v2/operation.rb +369 -0
  219. data/lib/twilio-ruby/rest/conversations/v2/participant.rb +745 -0
  220. data/lib/twilio-ruby/rest/conversations/v2.rb +142 -0
  221. data/lib/twilio-ruby/rest/conversations_base.rb +6 -1
  222. data/lib/twilio-ruby/rest/events/v1/event_type.rb +198 -8
  223. data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +183 -8
  224. data/lib/twilio-ruby/rest/events/v1/schema.rb +144 -3
  225. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +96 -1
  226. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +104 -2
  227. data/lib/twilio-ruby/rest/events/v1/sink.rb +299 -16
  228. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +298 -19
  229. data/lib/twilio-ruby/rest/events/v1/subscription.rb +297 -22
  230. data/lib/twilio-ruby/rest/events/v1.rb +4 -0
  231. data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +288 -31
  232. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +282 -18
  233. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +216 -3
  234. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +433 -60
  235. data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +172 -16
  236. data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +106 -5
  237. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +331 -30
  238. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +266 -18
  239. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +305 -30
  240. data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +109 -5
  241. data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +147 -5
  242. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +98 -2
  243. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +98 -2
  244. data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +147 -5
  245. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +143 -7
  246. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +251 -11
  247. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_transfer.rb +548 -0
  248. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +257 -11
  249. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +275 -5
  250. data/lib/twilio-ruby/rest/flex_api/v1/plugin/plugin_versions.rb +629 -0
  251. data/lib/twilio-ruby/rest/flex_api/v1/plugin.rb +708 -0
  252. data/lib/twilio-ruby/rest/flex_api/v1/plugin_archive.rb +390 -0
  253. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration/configured_plugin.rb +572 -0
  254. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration.rb +607 -0
  255. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration_archive.rb +376 -0
  256. data/lib/twilio-ruby/rest/flex_api/v1/plugin_release.rb +547 -0
  257. data/lib/twilio-ruby/rest/flex_api/v1/plugin_version_archive.rb +400 -0
  258. data/lib/twilio-ruby/rest/flex_api/v1/provisioning_status.rb +327 -0
  259. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +312 -19
  260. data/lib/twilio-ruby/rest/flex_api/v1.rb +137 -0
  261. data/lib/twilio-ruby/rest/flex_api/v2/flex_user.rb +515 -0
  262. data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +125 -5
  263. data/lib/twilio-ruby/rest/flex_api/v2.rb +43 -0
  264. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +200 -12
  265. data/lib/twilio-ruby/rest/frontline_api/v1.rb +1 -0
  266. data/lib/twilio-ruby/rest/iam/v1/api_key.rb +471 -0
  267. data/lib/twilio-ruby/rest/iam/v1/get_api_keys.rb +328 -0
  268. data/lib/twilio-ruby/rest/iam/v1/new_api_key.rb +284 -0
  269. data/lib/twilio-ruby/rest/iam/v1/o_auth_app.rb +647 -0
  270. data/lib/twilio-ruby/rest/iam/v1/role_permission.rb +327 -0
  271. data/lib/twilio-ruby/rest/iam/v1/token.rb +301 -0
  272. data/lib/twilio-ruby/rest/iam/v1.rb +99 -0
  273. data/lib/twilio-ruby/rest/iam.rb +6 -0
  274. data/lib/twilio-ruby/rest/iam_base.rb +33 -0
  275. data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +216 -19
  276. data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +162 -13
  277. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +108 -9
  278. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +106 -5
  279. data/lib/twilio-ruby/rest/insights/v1/call.rb +144 -1
  280. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +267 -26
  281. data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +202 -10
  282. data/lib/twilio-ruby/rest/insights/v1/conference.rb +202 -6
  283. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +183 -8
  284. data/lib/twilio-ruby/rest/insights/v1/room.rb +194 -8
  285. data/lib/twilio-ruby/rest/insights/v1/setting.rb +201 -10
  286. data/lib/twilio-ruby/rest/insights/v1.rb +3 -0
  287. data/lib/twilio-ruby/rest/insights/v2/inbound.rb +579 -0
  288. data/lib/twilio-ruby/rest/insights/v2/outbound.rb +650 -0
  289. data/lib/twilio-ruby/rest/insights/v2/report.rb +941 -0
  290. data/lib/twilio-ruby/rest/insights/v2.rb +82 -0
  291. data/lib/twilio-ruby/rest/insights/v3/metadata.rb +227 -0
  292. data/lib/twilio-ruby/rest/insights/v3/query.rb +394 -0
  293. data/lib/twilio-ruby/rest/insights/v3.rb +46 -0
  294. data/lib/twilio-ruby/rest/insights_base.rb +11 -1
  295. data/lib/twilio-ruby/rest/intelligence/v2/custom_operator.rb +728 -0
  296. data/lib/twilio-ruby/rest/intelligence/v2/operator.rb +533 -0
  297. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachment.rb +380 -0
  298. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachments.rb +337 -0
  299. data/lib/twilio-ruby/rest/intelligence/v2/operator_type.rb +539 -0
  300. data/lib/twilio-ruby/rest/intelligence/v2/prebuilt_operator.rb +533 -0
  301. data/lib/twilio-ruby/rest/intelligence/v2/service.rb +392 -50
  302. data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_operator_results.rb +359 -0
  303. data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_sentences.rb +359 -0
  304. data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +152 -5
  305. data/lib/twilio-ruby/rest/intelligence/v2/transcript/operator_result.rb +207 -10
  306. data/lib/twilio-ruby/rest/intelligence/v2/transcript/sentence.rb +124 -10
  307. data/lib/twilio-ruby/rest/intelligence/v2/transcript.rb +333 -30
  308. data/lib/twilio-ruby/rest/intelligence/v2.rb +125 -0
  309. data/lib/twilio-ruby/rest/intelligence/v3/configuration.rb +1073 -0
  310. data/lib/twilio-ruby/rest/intelligence/v3/conversation.rb +602 -0
  311. data/lib/twilio-ruby/rest/intelligence/v3/operator.rb +784 -0
  312. data/lib/twilio-ruby/rest/intelligence/v3/operator_result.rb +622 -0
  313. data/lib/twilio-ruby/rest/intelligence/v3/version.rb +556 -0
  314. data/lib/twilio-ruby/rest/intelligence/v3.rb +120 -0
  315. data/lib/twilio-ruby/rest/intelligence_base.rb +6 -1
  316. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +336 -28
  317. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +257 -10
  318. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +305 -15
  319. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +308 -16
  320. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +315 -19
  321. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +298 -14
  322. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +102 -5
  323. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +312 -19
  324. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +552 -118
  325. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +2 -0
  326. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +336 -28
  327. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +214 -7
  328. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +257 -10
  329. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +354 -33
  330. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +353 -33
  331. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +342 -28
  332. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +351 -33
  333. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +298 -14
  334. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +212 -7
  335. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +262 -14
  336. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +317 -22
  337. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +437 -72
  338. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +2 -0
  339. data/lib/twilio-ruby/rest/knowledge/v1/knowledge/chunk.rb +325 -0
  340. data/lib/twilio-ruby/rest/knowledge/v1/knowledge/knowledge_status.rb +349 -0
  341. data/lib/twilio-ruby/rest/knowledge/v1/knowledge.rb +865 -0
  342. data/lib/twilio-ruby/rest/{preview/sync.rb → knowledge/v1.rb} +17 -16
  343. data/lib/twilio-ruby/rest/knowledge/v2/chunk.rb +306 -0
  344. data/lib/twilio-ruby/rest/knowledge/v2/knowledge.rb +714 -0
  345. data/lib/twilio-ruby/rest/knowledge/v2/knowledge_basis.rb +739 -0
  346. data/lib/twilio-ruby/rest/knowledge/v2/operation.rb +376 -0
  347. data/lib/twilio-ruby/rest/knowledge/v2/search.rb +355 -0
  348. data/lib/twilio-ruby/rest/knowledge/v2.rb +145 -0
  349. data/lib/twilio-ruby/rest/knowledge.rb +6 -0
  350. data/lib/twilio-ruby/rest/knowledge_base.rb +43 -0
  351. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +170 -12
  352. data/lib/twilio-ruby/rest/lookups/v1.rb +1 -0
  353. data/lib/twilio-ruby/rest/lookups/v2/bucket.rb +501 -0
  354. data/lib/twilio-ruby/rest/lookups/v2/lookup_override.rb +605 -0
  355. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +252 -44
  356. data/lib/twilio-ruby/rest/lookups/v2/query.rb +351 -0
  357. data/lib/twilio-ruby/rest/lookups/v2/rate_limit.rb +229 -0
  358. data/lib/twilio-ruby/rest/lookups/v2.rb +99 -0
  359. data/lib/twilio-ruby/rest/marketplace/v1/available_add_on/available_add_on_extension.rb +483 -0
  360. data/lib/twilio-ruby/rest/marketplace/v1/available_add_on.rb +509 -0
  361. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_extension.rb +563 -0
  362. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_usage.rb +252 -0
  363. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on.rb +743 -0
  364. data/lib/twilio-ruby/rest/marketplace/v1/module_data.rb +342 -0
  365. data/lib/twilio-ruby/rest/marketplace/v1/module_data_management.rb +511 -0
  366. data/lib/twilio-ruby/rest/marketplace/v1/referral_conversion.rb +235 -0
  367. data/lib/twilio-ruby/rest/marketplace/v1.rb +94 -0
  368. data/lib/twilio-ruby/rest/marketplace.rb +6 -0
  369. data/lib/twilio-ruby/rest/marketplace_base.rb +38 -0
  370. data/lib/twilio-ruby/rest/memory/v1/bulk.rb +362 -0
  371. data/lib/twilio-ruby/rest/memory/v1/conversation_summary.rb +798 -0
  372. data/lib/twilio-ruby/rest/memory/v1/data_mapping.rb +843 -0
  373. data/lib/twilio-ruby/rest/memory/v1/event.rb +320 -0
  374. data/lib/twilio-ruby/rest/memory/v1/identifier.rb +710 -0
  375. data/lib/twilio-ruby/rest/memory/v1/identity_resolution_setting.rb +442 -0
  376. data/lib/twilio-ruby/rest/memory/v1/import.rb +574 -0
  377. data/lib/twilio-ruby/rest/memory/v1/lookup.rb +250 -0
  378. data/lib/twilio-ruby/rest/memory/v1/observation.rb +786 -0
  379. data/lib/twilio-ruby/rest/memory/v1/operation.rb +376 -0
  380. data/lib/twilio-ruby/rest/memory/v1/profile.rb +721 -0
  381. data/lib/twilio-ruby/rest/memory/v1/recall.rb +366 -0
  382. data/lib/twilio-ruby/rest/memory/v1/revision.rb +349 -0
  383. data/lib/twilio-ruby/rest/memory/v1/store.rb +746 -0
  384. data/lib/twilio-ruby/rest/memory/v1/trait.rb +336 -0
  385. data/lib/twilio-ruby/rest/memory/v1/trait_group.rb +904 -0
  386. data/lib/twilio-ruby/rest/memory/v1.rb +475 -0
  387. data/lib/twilio-ruby/rest/memory.rb +6 -0
  388. data/lib/twilio-ruby/rest/{media_base.rb → memory_base.rb} +6 -6
  389. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +96 -1
  390. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_vetting.rb +229 -11
  391. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +296 -17
  392. data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +151 -3
  393. data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +210 -7
  394. data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +200 -12
  395. data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +144 -3
  396. data/lib/twilio-ruby/rest/messaging/v1/domain_validate_dn.rb +344 -0
  397. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +113 -3
  398. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +170 -4
  399. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +144 -3
  400. data/lib/twilio-ruby/rest/messaging/v1/request_managed_cert.rb +379 -0
  401. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +248 -11
  402. data/lib/twilio-ruby/rest/messaging/v1/service/channel_sender.rb +282 -9
  403. data/lib/twilio-ruby/rest/messaging/v1/service/destination_alpha_sender.rb +616 -0
  404. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +248 -11
  405. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +248 -11
  406. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +543 -30
  407. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +103 -2
  408. data/lib/twilio-ruby/rest/messaging/v1/service.rb +453 -63
  409. data/lib/twilio-ruby/rest/messaging/v1/tollfree_verification.rb +870 -83
  410. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +95 -1
  411. data/lib/twilio-ruby/rest/messaging/v1.rb +46 -1
  412. data/lib/twilio-ruby/rest/messaging/v2/channels_sender.rb +1017 -0
  413. data/lib/twilio-ruby/rest/messaging/v2/domain_certs.rb +386 -0
  414. data/lib/twilio-ruby/rest/messaging/v2/typing_indicator.rb +237 -0
  415. data/lib/twilio-ruby/rest/messaging/v2.rb +72 -0
  416. data/lib/twilio-ruby/rest/messaging/v3/typing_indicator.rb +247 -0
  417. data/lib/twilio-ruby/rest/messaging/v3.rb +40 -0
  418. data/lib/twilio-ruby/rest/messaging_base.rb +11 -1
  419. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +188 -6
  420. data/lib/twilio-ruby/rest/monitor/v1/event.rb +195 -7
  421. data/lib/twilio-ruby/rest/monitor/v1.rb +2 -0
  422. data/lib/twilio-ruby/rest/notify/v1/credential.rb +336 -30
  423. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +282 -17
  424. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +173 -20
  425. data/lib/twilio-ruby/rest/notify/v1/service.rb +410 -57
  426. data/lib/twilio-ruby/rest/notify/v1.rb +2 -0
  427. data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +190 -3
  428. data/lib/twilio-ruby/rest/numbers/v1/eligibility.rb +221 -0
  429. data/lib/twilio-ruby/rest/numbers/v1/embedded_session.rb +251 -0
  430. data/lib/twilio-ruby/rest/numbers/v1/porting_all_port_in.rb +375 -0
  431. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in.rb +616 -0
  432. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_phone_number.rb +485 -0
  433. data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +168 -26
  434. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration.rb +242 -0
  435. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_delete.rb +301 -0
  436. data/lib/twilio-ruby/rest/numbers/v1/sender_id_registration.rb +333 -0
  437. data/lib/twilio-ruby/rest/numbers/v1/signing_request_configuration.rb +403 -0
  438. data/lib/twilio-ruby/rest/numbers/v1/webhook.rb +252 -0
  439. data/lib/twilio-ruby/rest/numbers/v1.rb +125 -12
  440. data/lib/twilio-ruby/rest/numbers/v2/application.rb +715 -0
  441. data/lib/twilio-ruby/rest/numbers/v2/authorization_document/dependent_hosted_number_order.rb +110 -5
  442. data/lib/twilio-ruby/rest/numbers/v2/authorization_document.rb +270 -16
  443. data/lib/twilio-ruby/rest/numbers/v2/bulk_hosted_number_order.rb +198 -5
  444. data/lib/twilio-ruby/rest/numbers/v2/bundle_clone.rb +430 -0
  445. data/lib/twilio-ruby/rest/numbers/v2/hosted_number_order.rb +448 -27
  446. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +142 -7
  447. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +215 -7
  448. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +248 -9
  449. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +104 -2
  450. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +376 -30
  451. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +300 -16
  452. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +182 -6
  453. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +218 -11
  454. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +307 -16
  455. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +182 -6
  456. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +64 -0
  457. data/lib/twilio-ruby/rest/numbers/v2.rb +35 -0
  458. data/lib/twilio-ruby/rest/numbers/v3/hosted_number_order.rb +484 -0
  459. data/lib/twilio-ruby/rest/numbers/v3.rb +40 -0
  460. data/lib/twilio-ruby/rest/numbers_base.rb +5 -0
  461. data/lib/twilio-ruby/rest/oauth/v1/authorize.rb +253 -0
  462. data/lib/twilio-ruby/rest/oauth/v1/token.rb +149 -27
  463. data/lib/twilio-ruby/rest/oauth/v1.rb +4 -22
  464. data/lib/twilio-ruby/rest/oauth/v2/authorize.rb +253 -0
  465. data/lib/twilio-ruby/rest/oauth/v2/token.rb +311 -0
  466. data/lib/twilio-ruby/rest/oauth/v2.rb +46 -0
  467. data/lib/twilio-ruby/rest/oauth.rb +2 -29
  468. data/lib/twilio-ruby/rest/oauth_base.rb +6 -1
  469. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +112 -5
  470. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +316 -30
  471. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +406 -48
  472. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +2 -0
  473. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +183 -8
  474. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +182 -8
  475. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +225 -11
  476. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +304 -19
  477. data/lib/twilio-ruby/rest/preview/marketplace.rb +2 -0
  478. data/lib/twilio-ruby/rest/preview/wireless/command.rb +253 -16
  479. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +328 -25
  480. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +157 -7
  481. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +308 -41
  482. data/lib/twilio-ruby/rest/preview/wireless.rb +3 -0
  483. data/lib/twilio-ruby/rest/preview.rb +1 -20
  484. data/lib/twilio-ruby/rest/preview_base.rb +0 -15
  485. data/lib/twilio-ruby/rest/preview_iam/v1/authorize.rb +253 -0
  486. data/lib/twilio-ruby/rest/preview_iam/v1/token.rb +301 -0
  487. data/lib/twilio-ruby/rest/preview_iam/v1.rb +46 -0
  488. data/lib/twilio-ruby/rest/preview_iam/versionless/organization/account.rb +476 -0
  489. data/lib/twilio-ruby/rest/preview_iam/versionless/organization/role_assignment.rb +603 -0
  490. data/lib/twilio-ruby/rest/preview_iam/versionless/organization/user.rb +981 -0
  491. data/lib/twilio-ruby/rest/preview_iam/versionless/organization.rb +413 -0
  492. data/lib/twilio-ruby/rest/preview_iam/versionless.rb +50 -0
  493. data/lib/twilio-ruby/rest/preview_iam.rb +9 -0
  494. data/lib/twilio-ruby/rest/{microvisor_base.rb → preview_iam_base.rb} +6 -6
  495. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +182 -6
  496. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +64 -0
  497. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +182 -6
  498. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +64 -0
  499. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +182 -6
  500. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +144 -1
  501. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +64 -0
  502. data/lib/twilio-ruby/rest/pricing/v1.rb +22 -4
  503. data/lib/twilio-ruby/rest/pricing/v2/country.rb +182 -6
  504. data/lib/twilio-ruby/rest/pricing/v2/number.rb +152 -3
  505. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +182 -6
  506. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +152 -3
  507. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +64 -0
  508. data/lib/twilio-ruby/rest/pricing/v2.rb +13 -2
  509. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +298 -16
  510. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +210 -10
  511. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +231 -11
  512. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +262 -14
  513. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +320 -23
  514. data/lib/twilio-ruby/rest/proxy/v1/service.rb +350 -62
  515. data/lib/twilio-ruby/rest/proxy/v1.rb +1 -0
  516. data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +190 -6
  517. data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +190 -6
  518. data/lib/twilio-ruby/rest/routes/v2/trunk.rb +190 -6
  519. data/lib/twilio-ruby/rest/routes/v2.rb +3 -0
  520. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +184 -8
  521. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +290 -14
  522. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +145 -3
  523. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +260 -14
  524. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +231 -10
  525. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +191 -9
  526. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +302 -17
  527. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +252 -12
  528. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +146 -3
  529. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +184 -8
  530. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +290 -14
  531. data/lib/twilio-ruby/rest/serverless/v1/service.rb +309 -21
  532. data/lib/twilio-ruby/rest/serverless/v1.rb +1 -0
  533. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +145 -1
  534. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +146 -1
  535. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +198 -6
  536. data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +256 -11
  537. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +145 -1
  538. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +146 -1
  539. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +198 -6
  540. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +302 -14
  541. data/lib/twilio-ruby/rest/studio/v1/flow.rb +207 -7
  542. data/lib/twilio-ruby/rest/studio/v1.rb +1 -0
  543. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +145 -1
  544. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +146 -1
  545. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +198 -6
  546. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +333 -16
  547. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +190 -6
  548. data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +185 -4
  549. data/lib/twilio-ruby/rest/studio/v2/flow.rb +336 -21
  550. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +115 -5
  551. data/lib/twilio-ruby/rest/studio/v2.rb +1 -0
  552. data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +243 -17
  553. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +326 -33
  554. data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +249 -15
  555. data/lib/twilio-ruby/rest/supersim/v1/network.rb +188 -8
  556. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +248 -11
  557. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +266 -14
  558. data/lib/twilio-ruby/rest/supersim/v1/settings_update.rb +106 -5
  559. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +102 -5
  560. data/lib/twilio-ruby/rest/supersim/v1/sim/sim_ip_address.rb +102 -5
  561. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +297 -24
  562. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +239 -13
  563. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +118 -5
  564. data/lib/twilio-ruby/rest/supersim/v1.rb +7 -0
  565. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +262 -14
  566. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +306 -18
  567. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +333 -25
  568. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +262 -14
  569. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +303 -16
  570. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +337 -26
  571. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +262 -14
  572. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +303 -16
  573. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +105 -2
  574. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +294 -13
  575. data/lib/twilio-ruby/rest/sync/v1/service.rb +341 -30
  576. data/lib/twilio-ruby/rest/sync/v1.rb +1 -0
  577. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +298 -13
  578. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +205 -6
  579. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +505 -117
  580. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +411 -41
  581. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +303 -16
  582. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_bulk_real_time_statistics.rb +258 -0
  583. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +173 -11
  584. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +154 -4
  585. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +173 -11
  586. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +114 -5
  587. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +351 -27
  588. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +493 -113
  589. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +232 -11
  590. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +168 -9
  591. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +167 -9
  592. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +152 -3
  593. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +182 -15
  594. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +336 -24
  595. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +173 -11
  596. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +153 -3
  597. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +173 -11
  598. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +333 -26
  599. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +172 -11
  600. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +152 -3
  601. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +172 -11
  602. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +339 -29
  603. data/lib/twilio-ruby/rest/taskrouter/v1.rb +1 -0
  604. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +248 -9
  605. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +248 -9
  606. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +326 -24
  607. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +249 -10
  608. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +190 -6
  609. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +357 -33
  610. data/lib/twilio-ruby/rest/trunking/v1.rb +1 -0
  611. data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +213 -5
  612. data/lib/twilio-ruby/rest/trusthub/v1/compliance_registration_inquiries.rb +656 -0
  613. data/lib/twilio-ruby/rest/trusthub/v1/compliance_tollfree_inquiries.rb +474 -0
  614. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +256 -10
  615. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +258 -11
  616. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +223 -8
  617. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +327 -21
  618. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +300 -16
  619. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +182 -6
  620. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +182 -6
  621. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +300 -16
  622. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +182 -6
  623. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +256 -10
  624. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +258 -11
  625. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +223 -8
  626. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +345 -39
  627. data/lib/twilio-ruby/rest/trusthub/v1.rb +31 -1
  628. data/lib/twilio-ruby/rest/verify/v2/form.rb +144 -3
  629. data/lib/twilio-ruby/rest/verify/v2/safelist.rb +208 -6
  630. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +197 -6
  631. data/lib/twilio-ruby/rest/verify/v2/service/approve_challenge.rb +402 -0
  632. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +106 -2
  633. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +299 -18
  634. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +292 -26
  635. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +164 -15
  636. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +248 -9
  637. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +294 -13
  638. data/lib/twilio-ruby/rest/verify/v2/service/new_challenge.rb +479 -0
  639. data/lib/twilio-ruby/rest/verify/v2/service/new_factor.rb +387 -0
  640. data/lib/twilio-ruby/rest/verify/v2/service/new_verify_factor.rb +357 -0
  641. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +302 -15
  642. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +294 -13
  643. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +301 -23
  644. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +127 -7
  645. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +332 -30
  646. data/lib/twilio-ruby/rest/verify/v2/service.rb +667 -65
  647. data/lib/twilio-ruby/rest/verify/v2/template.rb +104 -5
  648. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +202 -10
  649. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +179 -16
  650. data/lib/twilio-ruby/rest/verify/v2.rb +4 -0
  651. data/lib/twilio-ruby/rest/video/v1/composition.rb +286 -17
  652. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +376 -39
  653. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +211 -17
  654. data/lib/twilio-ruby/rest/video/v1/recording.rb +220 -7
  655. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +211 -17
  656. data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +145 -1
  657. data/lib/twilio-ruby/rest/video/v1/room/participant/published_track.rb +184 -6
  658. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +138 -3
  659. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribed_track.rb +184 -6
  660. data/lib/twilio-ruby/rest/video/v1/room/participant.rb +233 -9
  661. data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +136 -3
  662. data/lib/twilio-ruby/rest/video/v1/room/room_recording.rb +216 -7
  663. data/lib/twilio-ruby/rest/video/v1/room/transcriptions.rb +665 -0
  664. data/lib/twilio-ruby/rest/video/v1/room.rb +379 -39
  665. data/lib/twilio-ruby/rest/video/v1.rb +4 -0
  666. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +137 -3
  667. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +368 -39
  668. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +326 -24
  669. data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +287 -12
  670. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +103 -2
  671. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +102 -5
  672. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +194 -8
  673. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +183 -6
  674. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +64 -0
  675. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +295 -14
  676. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +291 -13
  677. data/lib/twilio-ruby/rest/voice/v1.rb +10 -0
  678. data/lib/twilio-ruby/rest/voice/v3/transcription.rb +514 -0
  679. data/lib/twilio-ruby/rest/voice/v3.rb +50 -0
  680. data/lib/twilio-ruby/rest/voice_base.rb +6 -1
  681. data/lib/twilio-ruby/rest/wireless/v1/command.rb +278 -15
  682. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +338 -24
  683. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +102 -5
  684. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +108 -5
  685. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +343 -44
  686. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +108 -5
  687. data/lib/twilio-ruby/rest/wireless/v1.rb +3 -0
  688. data/lib/twilio-ruby/twiml/messaging_response.rb +1 -1
  689. data/lib/twilio-ruby/twiml/voice_response.rb +403 -24
  690. data/lib/twilio-ruby/version.rb +1 -1
  691. data/twilio-ruby.gemspec +4 -3
  692. metadata +193 -88
  693. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +0 -264
  694. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +0 -328
  695. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +0 -241
  696. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +0 -217
  697. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +0 -389
  698. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +0 -435
  699. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +0 -409
  700. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +0 -473
  701. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +0 -241
  702. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +0 -373
  703. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +0 -436
  704. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +0 -253
  705. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +0 -226
  706. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +0 -525
  707. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +0 -433
  708. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +0 -683
  709. data/lib/twilio-ruby/rest/autopilot/v1/restore_assistant.rb +0 -207
  710. data/lib/twilio-ruby/rest/autopilot/v1.rb +0 -55
  711. data/lib/twilio-ruby/rest/autopilot.rb +0 -22
  712. data/lib/twilio-ruby/rest/media/v1/media_processor.rb +0 -420
  713. data/lib/twilio-ruby/rest/media/v1/media_recording.rb +0 -404
  714. data/lib/twilio-ruby/rest/media/v1/player_streamer/playback_grant.rb +0 -252
  715. data/lib/twilio-ruby/rest/media/v1/player_streamer.rb +0 -432
  716. data/lib/twilio-ruby/rest/media/v1.rb +0 -79
  717. data/lib/twilio-ruby/rest/media.rb +0 -35
  718. data/lib/twilio-ruby/rest/microvisor/v1/account_config.rb +0 -358
  719. data/lib/twilio-ruby/rest/microvisor/v1/account_secret.rb +0 -351
  720. data/lib/twilio-ruby/rest/microvisor/v1/app/app_manifest.rb +0 -208
  721. data/lib/twilio-ruby/rest/microvisor/v1/device/device_config.rb +0 -374
  722. data/lib/twilio-ruby/rest/microvisor/v1/device/device_secret.rb +0 -367
  723. data/lib/twilio-ruby/rest/microvisor/v1/device.rb +0 -427
  724. data/lib/twilio-ruby/rest/microvisor/v1.rb +0 -94
  725. data/lib/twilio-ruby/rest/microvisor.rb +0 -24
  726. data/lib/twilio-ruby/rest/numbers/v1/porting_bulk_portability.rb +0 -229
  727. data/lib/twilio-ruby/rest/oauth/v1/device_code.rb +0 -171
  728. data/lib/twilio-ruby/rest/oauth/v1/oauth.rb +0 -185
  729. data/lib/twilio-ruby/rest/oauth/v1/openid_discovery.rb +0 -262
  730. data/lib/twilio-ruby/rest/oauth/v1/user_info.rb +0 -213
  731. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/certificate.rb +0 -417
  732. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/deployment.rb +0 -401
  733. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/device.rb +0 -456
  734. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/key.rb +0 -414
  735. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet.rb +0 -504
  736. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +0 -49
  737. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +0 -389
  738. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +0 -449
  739. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +0 -445
  740. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +0 -389
  741. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +0 -426
  742. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +0 -448
  743. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +0 -389
  744. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +0 -426
  745. data/lib/twilio-ruby/rest/preview/sync/service.rb +0 -505
  746. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_fallback_actions.rb +0 -241
  747. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_initiation_actions.rb +0 -241
  748. data/lib/twilio-ruby/rest/preview/understand/assistant/dialogue.rb +0 -217
  749. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type/field_value.rb +0 -389
  750. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type.rb +0 -435
  751. data/lib/twilio-ruby/rest/preview/understand/assistant/model_build.rb +0 -409
  752. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +0 -463
  753. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +0 -241
  754. data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +0 -373
  755. data/lib/twilio-ruby/rest/preview/understand/assistant/task/sample.rb +0 -436
  756. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_actions.rb +0 -253
  757. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +0 -226
  758. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +0 -525
  759. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +0 -663
  760. data/lib/twilio-ruby/rest/preview/understand.rb +0 -49
  761. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +0 -406
data/Dockerfile CHANGED
@@ -1,9 +1,10 @@
1
- FROM ruby:2.4
1
+ FROM ruby:3.2
2
2
 
3
3
  RUN mkdir /twilio
4
4
  WORKDIR /twilio
5
5
 
6
- COPY . .
6
+ COPY Rakefile Gemfile LICENSE README.md twilio-ruby.gemspec ./
7
+ COPY lib ./lib
7
8
 
8
9
  RUN bundle install
9
10
  RUN bundle exec rake install
data/Gemfile CHANGED
@@ -1,3 +1,8 @@
1
1
  source 'https://rubygems.org'
2
2
  gem 'simplecov', require: false, group: :test
3
3
  gemspec
4
+
5
+ gem "base64"
6
+ gem "benchmark"
7
+ gem "ostruct"
8
+ gem "rexml"
data/Makefile CHANGED
@@ -34,4 +34,7 @@ docker-push:
34
34
  docker push twilio/twilio-ruby:${CURRENT_TAG}
35
35
 
36
36
  cluster-test:
37
- bundle exec rspec ./cluster_spec.rb
37
+ bundle exec rspec ./cluster
38
+
39
+ prettier:
40
+ bundle exec rubocop -A -d --cache true --parallel
data/README.md CHANGED
@@ -39,13 +39,13 @@ This library supports the following Ruby implementations:
39
39
  To install using [Bundler][bundler] grab the latest stable version:
40
40
 
41
41
  ```ruby
42
- gem 'twilio-ruby', '~> 6.8.0'
42
+ gem 'twilio-ruby', '~> 7.10.7'
43
43
  ```
44
44
 
45
45
  To manually install `twilio-ruby` via [Rubygems][rubygems] simply gem install:
46
46
 
47
47
  ```bash
48
- gem install twilio-ruby -v 6.8.0
48
+ gem install twilio-ruby -v 7.10.7
49
49
  ```
50
50
 
51
51
  To build and install the development branch yourself from the latest source:
@@ -298,6 +298,11 @@ capability.add_scope(incoming_scope)
298
298
 
299
299
  There is a slightly more detailed document in the [Capability][capability] section of the wiki.
300
300
 
301
+ ## OAuth Feature for Twilio APIs
302
+ We are introducing Client Credentials Flow-based OAuth 2.0 authentication. This feature is currently in beta and its implementation is subject to change.
303
+
304
+ API examples [here](https://github.com/twilio/twilio-ruby/blob/main/examples/public_oauth.rb)
305
+
301
306
  ### Generate TwiML
302
307
 
303
308
  To control phone calls, your application needs to output [TwiML][twiml].
data/UPGRADE.md CHANGED
@@ -3,6 +3,17 @@
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
+
6
17
  [2023-05-03] 5.x.x to 6.x.x
7
18
  -----------------------------
8
19
  ### Overview
@@ -0,0 +1,19 @@
1
+ require 'rspec/matchers'
2
+ require 'twilio-ruby'
3
+ require './lib/twilio-ruby/credential/client_credential_provider'
4
+
5
+ describe 'Cluster Test' do
6
+ before(:each) do
7
+ @account_sid = ENV['TWILIO_ACCOUNT_SID']
8
+ @client_secret = ENV['TWILIO_CLIENT_SECRET']
9
+ @client_id = ENV['TWILIO_CLIENT_ID']
10
+ @message_sid = ENV['TWILIO_MESSAGE_SID']
11
+ @credential = Twilio::REST::ClientCredentialProvider.new(@client_id, @client_secret)
12
+ @client = Twilio::REST::Client.new(@account_sid).credential_provider(@credential)
13
+ end
14
+
15
+ # it 'can fetch a message' do
16
+ # response = @client.messages(@message_sid).fetch
17
+ # expect(response).to_not be_nil
18
+ # end
19
+ end
@@ -0,0 +1,40 @@
1
+ require 'rspec/matchers'
2
+ require 'twilio-ruby'
3
+ require './lib/twilio-ruby/credential/client_credential_provider'
4
+
5
+ describe 'Cluster Test' do
6
+ before(:each) do
7
+ @client_secret = ENV['TWILIO_ORGS_CLIENT_SECRET']
8
+ @client_id = ENV['TWILIO_ORGS_CLIENT_ID']
9
+ @org_sid = ENV['TWILIO_ORG_SID']
10
+ @user_sid = ENV['TWILIO_USER_SID']
11
+ @account_sid = ENV['TWILIO_ORGS_ACCOUNT_SID']
12
+ @credential = Twilio::REST::ClientCredentialProvider.new(@client_id, @client_secret)
13
+ @client = Twilio::REST::Client.new.credential_provider(@credential)
14
+ end
15
+
16
+ it 'can list accounts' do
17
+ response = @client.preview_iam.organizations(@org_sid).accounts.list
18
+ expect(response).to_not be_nil
19
+ end
20
+
21
+ it 'can fetch specific account' do
22
+ response = @client.preview_iam.organizations(@org_sid).accounts(@account_sid).fetch
23
+ expect(response).to_not be_nil
24
+ end
25
+
26
+ it 'can access role assignments list' do
27
+ response = @client.preview_iam.organizations(@org_sid).role_assignments.list(scope: @account_sid)
28
+ expect(response).to_not be_nil
29
+ end
30
+
31
+ it 'can get user list' do
32
+ response = @client.preview_iam.organizations(@org_sid).users.list
33
+ expect(response).to_not be_nil
34
+ end
35
+
36
+ it 'can get single user' do
37
+ response = @client.preview_iam.organizations(@org_sid).users(@user_sid).fetch
38
+ expect(response).to_not be_nil
39
+ end
40
+ end
@@ -1,7 +1,6 @@
1
1
  require 'rspec/matchers'
2
2
  require 'twilio-ruby'
3
3
 
4
- # rubocop:disable Metrics/BlockLength
5
4
  describe 'Cluster Test' do
6
5
  before(:each) do
7
6
  @account_sid = ENV['TWILIO_ACCOUNT_SID']
@@ -74,4 +73,3 @@ describe 'Cluster Test' do
74
73
  expect(@client.events.v1.sinks(sink.sid).delete).to eq(true)
75
74
  end
76
75
  end
77
- # rubocop:enable Metrics/BlockLength
@@ -0,0 +1,13 @@
1
+ require 'twilio-ruby'
2
+ require 'twilio-ruby/credential/client_credential_provider'
3
+
4
+ credential_provider = Twilio::REST::ClientCredentialProvider.new(ENV['CLIENT_ID'], ENV['CLIENT_SECRET'])
5
+ # passing account sid is not mandatory
6
+ client = Twilio::REST::Client.new(ENV['ACCOUNT_SID']).credential_provider(credential_provider)
7
+
8
+ # send messages
9
+ client.messages.create(
10
+ from: ENV['TWILIO_PHONE_NUMBER'],
11
+ to: ENV['PHONE_NUMBER'],
12
+ body: 'Hello from Ruby!'
13
+ )
@@ -0,0 +1,19 @@
1
+ module Twilio
2
+ module REST
3
+ class AuthStrategy
4
+ attr_accessor :auth_type
5
+
6
+ def initialize(auth_type)
7
+ @auth_type = auth_type
8
+ end
9
+
10
+ def auth_string
11
+ raise NotImplementedError, 'Subclasses must implement this method'
12
+ end
13
+
14
+ def requires_authentication
15
+ raise NotImplementedError, 'Subclasses must implement this method'
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,17 @@
1
+ module Twilio
2
+ module REST
3
+ class NoAuthStrategy < AuthStrategy
4
+ def initialize
5
+ super(AuthType::NONE)
6
+ end
7
+
8
+ def auth_string
9
+ ''
10
+ end
11
+
12
+ def requires_authentication
13
+ false
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,39 @@
1
+ require_relative 'auth_strategy'
2
+ require_relative './../credential/auth_type'
3
+ require 'jwt'
4
+ module Twilio
5
+ module REST
6
+ class TokenAuthStrategy < AuthStrategy
7
+ attr_accessor :token_manager, :token, :lock
8
+
9
+ def initialize(token_manager)
10
+ super(AuthType::ORGS_TOKEN)
11
+ @token = nil
12
+ @token_manager = token_manager
13
+ @lock = Mutex.new
14
+ end
15
+
16
+ def auth_string
17
+ token = fetch_token
18
+ "Bearer #{token}"
19
+ end
20
+
21
+ def fetch_token
22
+ @lock.synchronize do
23
+ @token = @token_manager.fetch_access_token if @token.nil? || token_expired? || @token == ''
24
+ return @token
25
+ end
26
+ end
27
+
28
+ def token_expired?
29
+ decoded_token = ::JWT.decode(@token, nil, false)
30
+ exp = decoded_token[0]['exp']
31
+ Time.at(exp) < Time.now
32
+ end
33
+
34
+ def requires_authentication
35
+ true
36
+ end
37
+ end
38
+ end
39
+ end
@@ -6,7 +6,7 @@ module Twilio
6
6
  # rubocop:enable Style/ClassVars
7
7
 
8
8
  attr_accessor :http_client, :username, :password, :account_sid, :auth_token, :region, :edge, :logger,
9
- :user_agent_extensions
9
+ :user_agent_extensions, :credentials
10
10
 
11
11
  # rubocop:disable Metrics/ParameterLists
12
12
  def initialize(username = nil, password = nil, account_sid = nil, region = nil, http_client = nil, logger = nil,
@@ -22,6 +22,11 @@ module Twilio
22
22
  @logger = logger || Twilio.logger
23
23
  @user_agent_extensions = user_agent_extensions || []
24
24
  end
25
+
26
+ def credential_provider(credential_provider = nil)
27
+ @credentials = credential_provider
28
+ self
29
+ end
25
30
  # rubocop:enable Metrics/ParameterLists
26
31
 
27
32
  ##
@@ -47,6 +52,8 @@ module Twilio
47
52
  @logger.debug("Request Params:#{params}")
48
53
  end
49
54
 
55
+ auth = @credentials.to_auth_strategy.auth_string unless @credentials.nil?
56
+
50
57
  response = @http_client.request(
51
58
  host,
52
59
  port,
@@ -111,7 +118,10 @@ module Twilio
111
118
 
112
119
  user_agent_extensions.each { |extension| headers['User-Agent'] += " #{extension}" }
113
120
 
114
- headers['Content-Type'] = 'application/x-www-form-urlencoded' if method == 'POST' && !headers['Content-Type']
121
+ if ['POST', 'PUT'].include?(method) && !headers['Content-Type']
122
+ headers['Content-Type'] =
123
+ 'application/x-www-form-urlencoded'
124
+ end
115
125
 
116
126
  headers['Accept'] = 'application/json' unless headers['Accept']
117
127
  headers
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Twilio
4
+ module REST
5
+ class AuthType
6
+ BASIC = 'basic'
7
+ ORGS_TOKEN = 'orgs_token'
8
+ API_KEY = 'api_key'
9
+ NOAUTH = 'noauth'
10
+ CLIENT_CREDENTIALS = 'client_credentials'
11
+
12
+ def to_s
13
+ name
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,28 @@
1
+ require_relative 'credential_provider'
2
+ require_relative 'auth_type'
3
+ require_relative './../http/client_token_manager'
4
+ require_relative './../auth_strategy/token_auth_strategy'
5
+ module Twilio
6
+ module REST
7
+ class ClientCredentialProvider < CredentialProvider
8
+ attr_accessor :grant_type, :client_id, :client_secret, :orgs_token, :auth_strategy
9
+
10
+ def initialize(client_id, client_secret, orgs_token = nil)
11
+ super(AuthType::ORGS_TOKEN)
12
+ raise ArgumentError, 'client_id and client_secret are required' if client_id.nil? || client_secret.nil?
13
+
14
+ @grant_type = 'client_credentials'
15
+ @client_id = client_id
16
+ @client_secret = client_secret
17
+ @orgs_token = orgs_token
18
+ @auth_strategy = nil
19
+ end
20
+
21
+ def to_auth_strategy
22
+ @orgs_token = ClientTokenManager.new(@grant_type, @client_id, @client_secret) if @orgs_token.nil?
23
+ @auth_strategy = TokenAuthStrategy.new(@orgs_token) if @auth_strategy.nil?
24
+ @auth_strategy
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,11 @@
1
+ module Twilio
2
+ module REST
3
+ class CredentialProvider
4
+ attr_accessor :auth_type
5
+
6
+ def initialize(auth_type)
7
+ @auth_type = auth_type
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'credential_provider'
4
+ require_relative 'auth_type'
5
+ require_relative './../http/org_token_manager'
6
+ require_relative './../auth_strategy/token_auth_strategy'
7
+ module Twilio
8
+ module REST
9
+ class OrgsCredentialProvider < CredentialProvider
10
+ attr_accessor :grant_type, :client_id, :client_secret, :orgs_token, :auth_strategy
11
+
12
+ def initialize(client_id, client_secret, orgs_token = nil)
13
+ super(AuthType::ORGS_TOKEN)
14
+ raise ArgumentError, 'client_id and client_secret are required' if client_id.nil? || client_secret.nil?
15
+
16
+ @grant_type = 'client_credentials'
17
+ @client_id = client_id
18
+ @client_secret = client_secret
19
+ @orgs_token = orgs_token
20
+ @auth_strategy = nil
21
+ end
22
+
23
+ def to_auth_strategy
24
+ @orgs_token = OrgTokenManager.new(@grant_type, @client_id, @client_secret) if @orgs_token.nil?
25
+ @auth_strategy = TokenAuthStrategy.new(@orgs_token) if @auth_strategy.nil?
26
+ @auth_strategy
27
+ end
28
+ end
29
+ end
30
+ end
@@ -32,7 +32,14 @@ module Twilio
32
32
  data = ''
33
33
  unless @data.nil? || @data.empty?
34
34
  data = @method.equal?('GET') ? "\n -G" : "\n"
35
- data += @data.each.map { |key, value| "-d \"#{key}\"=\"#{value}\"" }.join("\n")
35
+ data += case @headers['Content-Type']
36
+ when 'application/x-www-form-urlencoded'
37
+ @data.each.map { |key, value| "-d \"#{key}\"=\"#{value}\"" }.join("\n")
38
+ when 'application/json'
39
+ "-d '#{JSON.generate(@data)}'"
40
+ else
41
+ @data.each.map { |key, value| "-d \"#{key}\"=\"#{value}\"" }.join("\n")
42
+ end
36
43
  end
37
44
 
38
45
  "#{auth} #{@method} #{@url}#{params}#{data}#{headers}"
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'version'
4
+ require_relative 'error'
5
+
6
+ module Twilio
7
+ module REST
8
+ class ApiV1Version < Version
9
+ attr_accessor :api_version
10
+
11
+ def initialize(domain, version)
12
+ super(domain)
13
+ @version = version.version
14
+ @api_version = 'v1'
15
+ end
16
+
17
+ def exception(response, _)
18
+ RestErrorV10.new(response.body)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -18,7 +18,6 @@ module Twilio
18
18
 
19
19
  def request(method, uri, params = {}, data = {}, headers = {}, auth = nil, timeout = nil)
20
20
  url = uri.match(/^http/) ? uri : absolute_url(uri)
21
-
22
21
  @client.request(
23
22
  @base_url,
24
23
  @port,
@@ -35,5 +35,32 @@ module Twilio
35
35
 
36
36
  class ObsoleteError < StandardError
37
37
  end
38
+
39
+ class RestErrorV10 < TwilioError
40
+ attr_accessor :code, :message, :http_status_code, :params, :user_error
41
+
42
+ def initialize(response)
43
+ @code = response['code']
44
+ @message = response['message']
45
+ @http_status_code = response['httpsStatusCode']
46
+ @params = response['params']
47
+ @user_error = response['userError']
48
+ end
49
+
50
+ def to_s
51
+ message
52
+ end
53
+
54
+ private
55
+
56
+ def format_message(initial_message)
57
+ message_response = "[HTTP #{status_code}] #{code} : #{initial_message}"
58
+ message_response += "\n#{message}" if message
59
+ message_response += "\n#{http_status_code}" if http_status_code
60
+ message_response += "\n#{params}" if params
61
+ message_response += "\n#{user_error}" if user_error
62
+ message_response + "\n\n"
63
+ end
64
+ end
38
65
  end
39
66
  end
@@ -38,6 +38,7 @@ module Twilio
38
38
  end
39
39
 
40
40
  def load_page(payload)
41
+ return payload['Resources'] if payload['Resources']
41
42
  if payload['meta'] && payload['meta']['key']
42
43
  return payload[payload['meta']['key']]
43
44
  else
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Twilio
4
+ module REST
5
+ # Page Base Class
6
+ class PageMetadata
7
+ META_KEYS = [
8
+ 'end',
9
+ 'first_page_uri',
10
+ 'next_page_uri',
11
+ 'last_page_uri',
12
+ 'page',
13
+ 'page_size',
14
+ 'previous_page_uri',
15
+ 'total',
16
+ 'num_pages',
17
+ 'start',
18
+ 'uri'
19
+ ].freeze
20
+
21
+ def initialize(version, response)
22
+ payload = process_response(response)
23
+
24
+ @version = version
25
+ @payload = payload
26
+ @solution = {}
27
+ @records = payload
28
+ end
29
+
30
+ def process_response(response)
31
+ return response if response.status_code == 200
32
+
33
+ raise Twilio::REST::RestError.new('Unable to fetch page', response)
34
+ end
35
+
36
+ def get_key(payload)
37
+ return 'Resources' if payload['Resources']
38
+
39
+ return payload['meta']['key'] if payload['meta'] && payload['meta']['key']
40
+
41
+ keys = payload.keys
42
+ key = keys - META_KEYS
43
+ return key.first if key.size == 1
44
+
45
+ raise Twilio::REST::TwilioError, 'Page Records can not be deserialized'
46
+ end
47
+
48
+ def previous_page_url
49
+ # rubocop:disable Layout/LineLength
50
+ return @version.domain.absolute_url(URI.parse(@payload['meta']['previous_page_url']).request_uri) if @payload['meta'] && @payload['meta']['previous_page_url']
51
+ # rubocop:enable Layout/LineLength
52
+ return @version.domain.absolute_url(@payload['previous_page_uri']) if @payload['previous_page_uri']
53
+
54
+ nil
55
+ end
56
+
57
+ def next_page_url
58
+ # rubocop:disable Layout/LineLength
59
+ return @version.domain.absolute_url(URI.parse(@payload.body['meta']['next_page_url']).request_uri) if @payload.body['meta'] && @payload.body['meta']['next_page_url']
60
+ # rubocop:enable Layout/LineLength
61
+ return @version.domain.absolute_url(@payload.body['next_page_uri']) if @payload.body['next_page_uri']
62
+
63
+ nil
64
+ end
65
+
66
+ def previous_page
67
+ return nil unless previous_page_url
68
+
69
+ @version.domain.request('GET', previous_page_url)
70
+ end
71
+
72
+ def next_page
73
+ return nil unless next_page_url
74
+
75
+ @version.domain.request('GET', next_page_url)
76
+ end
77
+
78
+ def to_s
79
+ '#<PageMetadata>'
80
+ end
81
+ end
82
+ end
83
+ end
@@ -19,5 +19,21 @@ module Twilio
19
19
  @version = version
20
20
  end
21
21
  end
22
+
23
+ class InstanceResourceMetadata
24
+ def initialize(payload, headers, status_code)
25
+ @payload = payload
26
+ @headers = headers
27
+ @status_code = status_code
28
+ end
29
+ end
30
+
31
+ class InstanceListResource
32
+ def initialize(version, headers, status_code)
33
+ @version = version
34
+ @headers = headers
35
+ @status_code = status_code
36
+ end
37
+ end
22
38
  end
23
39
  end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Twilio
4
+ module REST
5
+ class TokenPage < Page
6
+ attr_accessor :key, :page_size, :url
7
+
8
+ def initialize(version, response)
9
+ super(version, response)
10
+
11
+ @client = @version.domain.client.http_client
12
+ @url = ''
13
+ if @client.last_request
14
+ full_url = @client.last_request.url
15
+ uri = URI.parse(full_url)
16
+ @url = uri.path
17
+ @params = @client.last_request.params
18
+ end
19
+ @page_size = @payload['meta'] && @payload['meta']['pageSize']
20
+ @next_token = @payload['meta'] && @payload['meta']['nextToken']
21
+ @previous_token = @payload['meta'] && @payload['meta']['previousToken']
22
+ end
23
+
24
+ def previous_token
25
+ @payload['meta'] && @payload['meta']['previousToken']
26
+ end
27
+
28
+ def previous_page
29
+ cached_url = previous_page_url
30
+ return nil unless cached_url
31
+
32
+ response = @version.domain.request('GET', cached_url, @params)
33
+
34
+ self.class.new(@version, response, @solution)
35
+ end
36
+
37
+ def next_token
38
+ @payload['meta'] && @payload['meta']['nextToken']
39
+ end
40
+
41
+ def previous_page_url
42
+ return nil if previous_token.nil?
43
+
44
+ @params['pageToken'] = previous_token
45
+ @version.domain.absolute_url(@url)
46
+ end
47
+
48
+ def next_page_url
49
+ token = next_token
50
+ return nil if token.nil? || token.to_s.empty?
51
+
52
+ @params['pageToken'] = token
53
+ @version.domain.absolute_url(@url)
54
+ end
55
+
56
+ def next_page
57
+ cached_url = next_page_url
58
+ return nil unless cached_url
59
+
60
+ response = @version.domain.request('GET', cached_url, @params)
61
+
62
+ self.class.new(@version, response, @solution)
63
+ end
64
+
65
+ def load_page(payload)
66
+ @key ||= payload['meta'] && payload['meta']['key']
67
+ return @payload[@key] if @key && @payload[@key]
68
+
69
+ raise Twilio::REST::TwilioError, 'Page Records can not be deserialized'
70
+ end
71
+ end
72
+ end
73
+ end