twilio-ruby 7.3.7 → 7.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (532) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test-and-deploy.yml +8 -0
  3. data/.rubocop.yml +1 -0
  4. data/CHANGES.md +6 -0
  5. data/Makefile +1 -1
  6. data/README.md +7 -2
  7. data/cluster/cluster_oauth_spec.rb +19 -0
  8. data/cluster/cluster_orgs_spec.rb +40 -0
  9. data/{cluster_spec.rb → cluster/cluster_spec.rb} +0 -2
  10. data/examples/public_oauth.rb +13 -0
  11. data/lib/twilio-ruby/auth_strategy/auth_strategy.rb +19 -0
  12. data/lib/twilio-ruby/auth_strategy/no_auth_strategy.rb +17 -0
  13. data/lib/twilio-ruby/auth_strategy/token_auth_strategy.rb +39 -0
  14. data/lib/twilio-ruby/base/client_base.rb +8 -1
  15. data/lib/twilio-ruby/credential/auth_type.rb +17 -0
  16. data/lib/twilio-ruby/credential/client_credential_provider.rb +28 -0
  17. data/lib/twilio-ruby/credential/credential_provider.rb +11 -0
  18. data/lib/twilio-ruby/credential/orgs_credential_provider.rb +30 -0
  19. data/lib/twilio-ruby/framework/rest/domain.rb +0 -1
  20. data/lib/twilio-ruby/framework/rest/page.rb +1 -0
  21. data/lib/twilio-ruby/http/client_token_manager.rb +28 -0
  22. data/lib/twilio-ruby/http/http_client.rb +9 -0
  23. data/lib/twilio-ruby/http/org_token_manager.rb +28 -0
  24. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +4 -0
  25. data/lib/twilio-ruby/rest/accounts/v1/bulk_consents.rb +4 -0
  26. data/lib/twilio-ruby/rest/accounts/v1/bulk_contacts.rb +4 -0
  27. data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +18 -1
  28. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +18 -1
  29. data/lib/twilio-ruby/rest/accounts/v1/safelist.rb +10 -0
  30. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +6 -0
  31. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +4 -1
  32. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +18 -1
  33. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +18 -1
  34. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +8 -1
  35. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/local.rb +4 -1
  36. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/machine_to_machine.rb +4 -1
  37. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/mobile.rb +4 -1
  38. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/national.rb +4 -1
  39. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/shared_cost.rb +4 -1
  40. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/toll_free.rb +4 -1
  41. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/voip.rb +4 -1
  42. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country.rb +8 -1
  43. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +4 -0
  44. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +4 -1
  45. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +8 -1
  46. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +8 -0
  47. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +18 -1
  48. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +8 -0
  49. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +8 -0
  50. data/lib/twilio-ruby/rest/api/v2010/account/call/transcription.rb +8 -0
  51. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +4 -0
  52. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +6 -0
  53. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +18 -1
  54. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +18 -1
  55. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +14 -1
  56. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +12 -1
  57. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +14 -1
  58. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +8 -1
  59. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +14 -1
  60. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +8 -1
  61. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +8 -1
  62. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +8 -1
  63. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +18 -1
  64. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +14 -1
  65. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +4 -0
  66. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +10 -1
  67. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +18 -1
  68. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +4 -0
  69. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +4 -0
  70. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +8 -1
  71. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +14 -1
  72. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +12 -1
  73. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +18 -1
  74. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload/data.rb +4 -0
  75. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +10 -1
  76. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +10 -1
  77. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +10 -1
  78. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +10 -1
  79. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +12 -1
  80. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +14 -1
  81. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +18 -1
  82. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +18 -1
  83. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_credential_list_mapping.rb +14 -1
  84. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_ip_access_control_list_mapping.rb +14 -1
  85. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations/auth_registrations_credential_list_mapping.rb +14 -1
  86. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +14 -1
  87. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +14 -1
  88. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +18 -1
  89. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +18 -1
  90. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +18 -1
  91. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +4 -0
  92. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +10 -1
  93. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +4 -1
  94. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +4 -1
  95. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +4 -1
  96. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +4 -1
  97. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +4 -1
  98. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +4 -1
  99. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +4 -1
  100. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +4 -1
  101. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +4 -1
  102. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +18 -1
  103. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +4 -0
  104. data/lib/twilio-ruby/rest/api/v2010/account.rb +16 -1
  105. data/lib/twilio-ruby/rest/assistants/v1/assistant/assistants_knowledge.rb +10 -1
  106. data/lib/twilio-ruby/rest/assistants/v1/assistant/assistants_tool.rb +10 -1
  107. data/lib/twilio-ruby/rest/assistants/v1/assistant/feedback.rb +13 -5
  108. data/lib/twilio-ruby/rest/assistants/v1/assistant/message.rb +10 -5
  109. data/lib/twilio-ruby/rest/assistants/v1/assistant.rb +50 -31
  110. data/lib/twilio-ruby/rest/assistants/v1/knowledge/chunk.rb +4 -1
  111. data/lib/twilio-ruby/rest/assistants/v1/knowledge/knowledge_status.rb +4 -0
  112. data/lib/twilio-ruby/rest/assistants/v1/knowledge.rb +52 -33
  113. data/lib/twilio-ruby/rest/assistants/v1/policy.rb +4 -1
  114. data/lib/twilio-ruby/rest/assistants/v1/session/message.rb +4 -1
  115. data/lib/twilio-ruby/rest/assistants/v1/session.rb +8 -1
  116. data/lib/twilio-ruby/rest/assistants/v1/tool.rb +58 -39
  117. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +8 -1
  118. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +8 -1
  119. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +6 -0
  120. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +4 -0
  121. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +8 -0
  122. data/lib/twilio-ruby/rest/chat/v1/credential.rb +18 -1
  123. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +14 -1
  124. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +18 -1
  125. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +18 -1
  126. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +18 -1
  127. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +18 -1
  128. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +4 -1
  129. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +18 -1
  130. data/lib/twilio-ruby/rest/chat/v1/service.rb +18 -1
  131. data/lib/twilio-ruby/rest/chat/v2/credential.rb +18 -1
  132. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +10 -1
  133. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +14 -1
  134. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +18 -1
  135. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +18 -1
  136. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +18 -1
  137. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +18 -1
  138. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +18 -1
  139. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +10 -1
  140. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +14 -1
  141. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +18 -1
  142. data/lib/twilio-ruby/rest/chat/v2/service.rb +18 -1
  143. data/lib/twilio-ruby/rest/chat/v3/channel.rb +4 -0
  144. data/lib/twilio-ruby/rest/client.rb +5 -0
  145. data/lib/twilio-ruby/rest/content/v1/content/approval_create.rb +7 -2
  146. data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +4 -0
  147. data/lib/twilio-ruby/rest/content/v1/content.rb +115 -101
  148. data/lib/twilio-ruby/rest/content/v1/content_and_approvals.rb +4 -1
  149. data/lib/twilio-ruby/rest/content/v1/legacy_content.rb +4 -1
  150. data/lib/twilio-ruby/rest/content/v2/content.rb +4 -1
  151. data/lib/twilio-ruby/rest/content/v2/content_and_approvals.rb +4 -1
  152. data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +18 -1
  153. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +8 -0
  154. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +8 -0
  155. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +8 -1
  156. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +18 -1
  157. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +18 -1
  158. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +18 -1
  159. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +18 -1
  160. data/lib/twilio-ruby/rest/conversations/v1/conversation_with_participants.rb +4 -0
  161. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +18 -1
  162. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +4 -1
  163. data/lib/twilio-ruby/rest/conversations/v1/role.rb +18 -1
  164. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +10 -1
  165. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +8 -0
  166. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +8 -0
  167. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +8 -0
  168. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +8 -1
  169. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +18 -1
  170. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +18 -1
  171. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +18 -1
  172. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +18 -1
  173. data/lib/twilio-ruby/rest/conversations/v1/service/conversation_with_participants.rb +4 -0
  174. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +4 -1
  175. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +18 -1
  176. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +14 -1
  177. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +18 -1
  178. data/lib/twilio-ruby/rest/conversations/v1/service.rb +14 -1
  179. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +14 -1
  180. data/lib/twilio-ruby/rest/conversations/v1/user.rb +18 -1
  181. data/lib/twilio-ruby/rest/events/v1/event_type.rb +8 -1
  182. data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +8 -1
  183. data/lib/twilio-ruby/rest/events/v1/schema.rb +4 -0
  184. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +4 -0
  185. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +4 -0
  186. data/lib/twilio-ruby/rest/events/v1/sink.rb +18 -1
  187. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +18 -1
  188. data/lib/twilio-ruby/rest/events/v1/subscription.rb +18 -1
  189. data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +12 -1
  190. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +14 -1
  191. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +8 -0
  192. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +18 -1
  193. data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +8 -1
  194. data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +4 -1
  195. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +18 -1
  196. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +14 -1
  197. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +14 -1
  198. data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +4 -1
  199. data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +4 -0
  200. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +4 -0
  201. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +4 -0
  202. data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +4 -0
  203. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +8 -1
  204. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +12 -1
  205. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +12 -1
  206. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +8 -0
  207. data/lib/twilio-ruby/rest/flex_api/v1/plugin/plugin_versions.rb +12 -1
  208. data/lib/twilio-ruby/rest/flex_api/v1/plugin.rb +16 -1
  209. data/lib/twilio-ruby/rest/flex_api/v1/plugin_archive.rb +4 -0
  210. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration/configured_plugin.rb +8 -1
  211. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration.rb +12 -1
  212. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration_archive.rb +4 -0
  213. data/lib/twilio-ruby/rest/flex_api/v1/plugin_release.rb +12 -1
  214. data/lib/twilio-ruby/rest/flex_api/v1/plugin_version_archive.rb +4 -0
  215. data/lib/twilio-ruby/rest/flex_api/v1/provisioning_status.rb +4 -0
  216. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +18 -1
  217. data/lib/twilio-ruby/rest/flex_api/v2/flex_user.rb +8 -0
  218. data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +4 -0
  219. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +8 -0
  220. data/lib/twilio-ruby/rest/iam/v1/api_key.rb +10 -0
  221. data/lib/twilio-ruby/rest/iam/v1/get_api_keys.rb +4 -1
  222. data/lib/twilio-ruby/rest/iam/v1/{key.rb → new_api_key.rb} +24 -20
  223. data/lib/twilio-ruby/rest/iam/v1.rb +4 -4
  224. data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +8 -0
  225. data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +4 -0
  226. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +4 -1
  227. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +4 -1
  228. data/lib/twilio-ruby/rest/insights/v1/call.rb +4 -0
  229. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +4 -1
  230. data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +8 -1
  231. data/lib/twilio-ruby/rest/insights/v1/conference.rb +8 -1
  232. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +8 -1
  233. data/lib/twilio-ruby/rest/insights/v1/room.rb +8 -1
  234. data/lib/twilio-ruby/rest/insights/v1/setting.rb +8 -0
  235. data/lib/twilio-ruby/rest/intelligence/v2/custom_operator.rb +18 -1
  236. data/lib/twilio-ruby/rest/intelligence/v2/operator.rb +8 -1
  237. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachment.rb +6 -0
  238. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachments.rb +4 -0
  239. data/lib/twilio-ruby/rest/intelligence/v2/operator_type.rb +8 -1
  240. data/lib/twilio-ruby/rest/intelligence/v2/prebuilt_operator.rb +8 -1
  241. data/lib/twilio-ruby/rest/intelligence/v2/service.rb +18 -1
  242. data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +4 -0
  243. data/lib/twilio-ruby/rest/intelligence/v2/transcript/operator_result.rb +8 -1
  244. data/lib/twilio-ruby/rest/intelligence/v2/transcript/sentence.rb +4 -1
  245. data/lib/twilio-ruby/rest/intelligence/v2/transcript.rb +14 -1
  246. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +18 -1
  247. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +14 -1
  248. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +18 -1
  249. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +18 -1
  250. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +18 -1
  251. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +18 -1
  252. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +4 -1
  253. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +18 -1
  254. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +18 -1
  255. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +18 -1
  256. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +10 -1
  257. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +14 -1
  258. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +18 -1
  259. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +18 -1
  260. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +18 -1
  261. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +18 -1
  262. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +18 -1
  263. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +10 -1
  264. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +14 -1
  265. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +18 -1
  266. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +18 -1
  267. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +4 -0
  268. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +4 -0
  269. data/lib/twilio-ruby/rest/marketplace/v1/available_add_on/available_add_on_extension.rb +8 -1
  270. data/lib/twilio-ruby/rest/marketplace/v1/available_add_on.rb +8 -1
  271. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_extension.rb +12 -1
  272. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_usage.rb +7 -2
  273. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on.rb +18 -1
  274. data/lib/twilio-ruby/rest/marketplace/v1/module_data_management.rb +8 -0
  275. data/lib/twilio-ruby/rest/marketplace/v1/referral_conversion.rb +6 -1
  276. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +4 -0
  277. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_vetting.rb +12 -1
  278. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +16 -1
  279. data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +4 -0
  280. data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +10 -0
  281. data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +8 -0
  282. data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +4 -0
  283. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +4 -0
  284. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +6 -0
  285. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +4 -0
  286. data/lib/twilio-ruby/rest/messaging/v1/request_managed_cert.rb +4 -0
  287. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +14 -1
  288. data/lib/twilio-ruby/rest/messaging/v1/service/channel_sender.rb +14 -1
  289. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +14 -1
  290. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +14 -1
  291. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +18 -1
  292. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +4 -0
  293. data/lib/twilio-ruby/rest/messaging/v1/service.rb +18 -1
  294. data/lib/twilio-ruby/rest/messaging/v1/tollfree_verification.rb +18 -1
  295. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +4 -0
  296. data/lib/twilio-ruby/rest/microvisor/v1/account_config.rb +18 -1
  297. data/lib/twilio-ruby/rest/microvisor/v1/account_secret.rb +18 -1
  298. data/lib/twilio-ruby/rest/microvisor/v1/app/app_manifest.rb +4 -0
  299. data/lib/twilio-ruby/rest/microvisor/v1/app.rb +10 -1
  300. data/lib/twilio-ruby/rest/microvisor/v1/device/device_config.rb +18 -1
  301. data/lib/twilio-ruby/rest/microvisor/v1/device/device_secret.rb +18 -1
  302. data/lib/twilio-ruby/rest/microvisor/v1/device.rb +12 -1
  303. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +8 -1
  304. data/lib/twilio-ruby/rest/monitor/v1/event.rb +8 -1
  305. data/lib/twilio-ruby/rest/notify/v1/credential.rb +18 -1
  306. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +14 -1
  307. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +4 -0
  308. data/lib/twilio-ruby/rest/notify/v1/service.rb +18 -1
  309. data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +8 -0
  310. data/lib/twilio-ruby/rest/numbers/v1/eligibility.rb +4 -0
  311. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in.rb +10 -0
  312. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_phone_number.rb +6 -0
  313. data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +4 -0
  314. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration.rb +4 -0
  315. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_delete.rb +2 -0
  316. data/lib/twilio-ruby/rest/numbers/v1/signing_request_configuration.rb +8 -1
  317. data/lib/twilio-ruby/rest/numbers/v1/{porting_webhook_configuration_fetch.rb → webhook.rb} +24 -20
  318. data/lib/twilio-ruby/rest/numbers/v1.rb +6 -6
  319. data/lib/twilio-ruby/rest/numbers/v2/authorization_document/dependent_hosted_number_order.rb +4 -1
  320. data/lib/twilio-ruby/rest/numbers/v2/authorization_document.rb +14 -1
  321. data/lib/twilio-ruby/rest/numbers/v2/bulk_hosted_number_order.rb +8 -0
  322. data/lib/twilio-ruby/rest/numbers/v2/bundle_clone.rb +4 -0
  323. data/lib/twilio-ruby/rest/numbers/v2/hosted_number_order.rb +18 -1
  324. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +8 -1
  325. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +12 -1
  326. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +14 -1
  327. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +4 -0
  328. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +18 -1
  329. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +18 -1
  330. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +8 -1
  331. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +8 -1
  332. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +18 -1
  333. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +8 -1
  334. data/lib/twilio-ruby/rest/oauth/v1/authorize.rb +4 -0
  335. data/lib/twilio-ruby/rest/oauth/v1/token.rb +4 -0
  336. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +4 -1
  337. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +16 -1
  338. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +18 -1
  339. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +8 -1
  340. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +8 -1
  341. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +12 -1
  342. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +18 -1
  343. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +14 -1
  344. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +18 -1
  345. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +18 -1
  346. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +14 -1
  347. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +14 -1
  348. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +18 -1
  349. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +14 -1
  350. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +14 -1
  351. data/lib/twilio-ruby/rest/preview/sync/service.rb +18 -1
  352. data/lib/twilio-ruby/rest/preview/wireless/command.rb +12 -1
  353. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +18 -1
  354. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +4 -0
  355. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +12 -1
  356. data/lib/twilio-ruby/rest/preview_iam/v1/authorize.rb +148 -0
  357. data/lib/twilio-ruby/rest/preview_iam/v1/token.rb +186 -0
  358. data/lib/twilio-ruby/rest/preview_iam/v1.rb +46 -0
  359. data/lib/twilio-ruby/rest/preview_iam/versionless/organization/account.rb +309 -0
  360. data/lib/twilio-ruby/rest/preview_iam/versionless/organization/role_assignment.rb +375 -0
  361. data/lib/twilio-ruby/rest/preview_iam/versionless/organization/user.rb +530 -0
  362. data/lib/twilio-ruby/rest/preview_iam/versionless/organization.rb +277 -0
  363. data/lib/twilio-ruby/rest/preview_iam/versionless.rb +49 -0
  364. data/lib/twilio-ruby/rest/preview_iam.rb +9 -0
  365. data/lib/twilio-ruby/rest/preview_iam_base.rb +38 -0
  366. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +8 -1
  367. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +8 -1
  368. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +8 -1
  369. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +4 -0
  370. data/lib/twilio-ruby/rest/pricing/v2/country.rb +8 -1
  371. data/lib/twilio-ruby/rest/pricing/v2/number.rb +4 -0
  372. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +8 -1
  373. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +4 -0
  374. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +18 -1
  375. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +10 -1
  376. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +12 -1
  377. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +14 -1
  378. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +18 -1
  379. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +18 -1
  380. data/lib/twilio-ruby/rest/proxy/v1/service.rb +18 -1
  381. data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +8 -0
  382. data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +8 -0
  383. data/lib/twilio-ruby/rest/routes/v2/trunk.rb +8 -0
  384. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +8 -1
  385. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +18 -1
  386. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +4 -0
  387. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +14 -1
  388. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +12 -1
  389. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +8 -1
  390. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +18 -1
  391. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +14 -1
  392. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +4 -0
  393. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +8 -1
  394. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +18 -1
  395. data/lib/twilio-ruby/rest/serverless/v1/service.rb +18 -1
  396. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +4 -0
  397. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +4 -0
  398. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +8 -1
  399. data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +14 -1
  400. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +4 -0
  401. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +4 -0
  402. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +8 -1
  403. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +18 -1
  404. data/lib/twilio-ruby/rest/studio/v1/flow.rb +10 -1
  405. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +4 -0
  406. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +4 -0
  407. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +8 -1
  408. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +18 -1
  409. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +8 -1
  410. data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +8 -0
  411. data/lib/twilio-ruby/rest/studio/v2/flow.rb +18 -1
  412. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +4 -0
  413. data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +12 -1
  414. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +16 -1
  415. data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +12 -1
  416. data/lib/twilio-ruby/rest/supersim/v1/network.rb +8 -1
  417. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +14 -1
  418. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +16 -1
  419. data/lib/twilio-ruby/rest/supersim/v1/settings_update.rb +4 -1
  420. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +4 -1
  421. data/lib/twilio-ruby/rest/supersim/v1/sim/sim_ip_address.rb +4 -1
  422. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +16 -1
  423. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +12 -1
  424. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +4 -1
  425. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +14 -1
  426. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +18 -1
  427. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +18 -1
  428. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +14 -1
  429. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +18 -1
  430. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +18 -1
  431. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +14 -1
  432. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +18 -1
  433. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +4 -0
  434. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +18 -1
  435. data/lib/twilio-ruby/rest/sync/v1/service.rb +18 -1
  436. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +18 -1
  437. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +8 -1
  438. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +12 -1
  439. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +18 -1
  440. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +18 -1
  441. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_bulk_real_time_statistics.rb +4 -0
  442. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +4 -0
  443. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +4 -0
  444. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +4 -0
  445. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +4 -1
  446. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +18 -1
  447. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +12 -1
  448. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +12 -1
  449. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +4 -0
  450. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +4 -0
  451. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +4 -0
  452. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +4 -0
  453. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +18 -1
  454. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +4 -0
  455. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +4 -0
  456. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +4 -0
  457. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +18 -1
  458. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +4 -0
  459. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +4 -0
  460. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +4 -0
  461. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +18 -1
  462. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +14 -1
  463. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +14 -1
  464. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +18 -1
  465. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +14 -1
  466. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +8 -0
  467. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +18 -1
  468. data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +8 -0
  469. data/lib/twilio-ruby/rest/trusthub/v1/compliance_registration_inquiries.rb +8 -0
  470. data/lib/twilio-ruby/rest/trusthub/v1/compliance_tollfree_inquiries.rb +4 -0
  471. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +14 -1
  472. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +14 -1
  473. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +12 -1
  474. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +18 -1
  475. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +18 -1
  476. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +8 -1
  477. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +8 -1
  478. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +18 -1
  479. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +8 -1
  480. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +14 -1
  481. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +14 -1
  482. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +12 -1
  483. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +18 -1
  484. data/lib/twilio-ruby/rest/verify/v2/form.rb +4 -0
  485. data/lib/twilio-ruby/rest/verify/v2/safelist.rb +10 -0
  486. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +8 -0
  487. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +4 -0
  488. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +16 -1
  489. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +14 -1
  490. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +4 -0
  491. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +14 -1
  492. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +18 -1
  493. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +18 -1
  494. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +18 -1
  495. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +12 -0
  496. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +4 -0
  497. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +18 -1
  498. data/lib/twilio-ruby/rest/verify/v2/service.rb +18 -1
  499. data/lib/twilio-ruby/rest/verify/v2/template.rb +4 -1
  500. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +8 -1
  501. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +4 -0
  502. data/lib/twilio-ruby/rest/video/v1/composition.rb +14 -1
  503. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +18 -1
  504. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +8 -0
  505. data/lib/twilio-ruby/rest/video/v1/recording.rb +10 -1
  506. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +8 -0
  507. data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +4 -0
  508. data/lib/twilio-ruby/rest/video/v1/room/participant/published_track.rb +8 -1
  509. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +8 -0
  510. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribed_track.rb +8 -1
  511. data/lib/twilio-ruby/rest/video/v1/room/participant.rb +12 -1
  512. data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +8 -0
  513. data/lib/twilio-ruby/rest/video/v1/room/room_recording.rb +10 -1
  514. data/lib/twilio-ruby/rest/video/v1/room.rb +16 -1
  515. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +2 -0
  516. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +18 -1
  517. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +18 -1
  518. data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +18 -1
  519. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +4 -0
  520. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +4 -1
  521. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +8 -1
  522. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +8 -0
  523. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +18 -1
  524. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +18 -1
  525. data/lib/twilio-ruby/rest/wireless/v1/command.rb +14 -1
  526. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +18 -1
  527. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +4 -1
  528. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +4 -1
  529. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +14 -1
  530. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +4 -1
  531. data/lib/twilio-ruby/version.rb +1 -1
  532. metadata +27 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 182ec237b162cf02d16e3a4dc40fc5499c689499
4
- data.tar.gz: caaf9bf2cb6aa21da43180e7ed772ad8421aa7ad
3
+ metadata.gz: 716a5360bb07ddef4a7034ccd964bd8736d9b3e0
4
+ data.tar.gz: 7badc6efe024f8a5113474cdff90d60809abc628
5
5
  SHA512:
6
- metadata.gz: 50bd70ed5afd1f9d050ffe7ca6c0a2d6d71de08e7e5392e1da40b88de5e4e3d35ae48c5728466fb47370cfa4682e5bb73ccd0e968eb2df8e97d8aeef924b986a
7
- data.tar.gz: 05723bb62e01c7dd88e95bf9c9bdfae857063ee559d391aea43fa07b4c9ea8bf9e1633a3e183a92acf3d304d6a147351d2cceaf1e392025995f34014be4e9e3b
6
+ metadata.gz: 2e04bd87298d040265efc809ffcc1b8041b145a9c696c62f5eca55a6dd4aa923b8eeccbc8b1776ba2b6cd52fe86a42c6f5555908037a026077646a213ca12801
7
+ data.tar.gz: 0fea2a97101303015bb771358fb85fab848e9ec072d6e0e6b373ea199aaf1266d3acc5461d7620c0db42bbb39991d0f8ddb4966dee046978cc6a0032a2c6ee39
@@ -53,6 +53,14 @@ jobs:
53
53
  TWILIO_API_SECRET: ${{ secrets.TWILIO_CLUSTER_TEST_API_KEY_SECRET }}
54
54
  TWILIO_FROM_NUMBER: ${{ secrets.TWILIO_FROM_NUMBER }}
55
55
  TWILIO_TO_NUMBER: ${{ secrets.TWILIO_TO_NUMBER }}
56
+ TWILIO_ORGS_ACCOUNT_SID: ${{ secrets.TWILIO_ORGS_ACCOUNT_SID }}
57
+ TWILIO_ORGS_CLIENT_SECRET: ${{ secrets.TWILIO_ORGS_CLIENT_SECRET }}
58
+ TWILIO_ORGS_CLIENT_ID: ${{ secrets.TWILIO_ORGS_CLIENT_ID }}
59
+ TWILIO_ORG_SID: ${{ secrets.TWILIO_ORG_SID }}
60
+ TWILIO_USER_SID: ${{ secrets.TWILIO_USER_SID }}
61
+ TWILIO_CLIENT_SECRET: ${{ secrets.TWILIO_CLIENT_SECRET }}
62
+ TWILIO_CLIENT_ID: ${{ secrets.TWILIO_CLIENT_ID }}
63
+ TWILIO_MESSAGE_SID: ${{ secrets.TWILIO_MESSAGE_SID }}
56
64
  run: make cluster-test
57
65
 
58
66
  - name: Fix code coverage paths
data/.rubocop.yml CHANGED
@@ -26,6 +26,7 @@ Lint/AmbiguousBlockAssociation:
26
26
  Metrics/BlockLength:
27
27
  Exclude:
28
28
  - 'spec/**/*'
29
+ - 'cluster/*'
29
30
  - twilio-ruby.gemspec
30
31
 
31
32
  Layout/HeredocIndentation:
data/CHANGES.md CHANGED
@@ -1,6 +1,12 @@
1
1
  twilio-ruby changelog
2
2
  =====================
3
3
 
4
+ [2024-12-12] Version 7.4.0
5
+ --------------------------
6
+ **Library - Feature**
7
+ - [PR #735](https://github.com/twilio/twilio-ruby/pull/735): public oauth. Thanks to [@manisha1997](https://github.com/manisha1997)!
8
+
9
+
4
10
  [2024-12-05] Version 7.3.7
5
11
  --------------------------
6
12
  **Api**
data/Makefile CHANGED
@@ -34,7 +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
38
 
39
39
  prettier:
40
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', '~> 7.3.7'
42
+ gem 'twilio-ruby', '~> 7.4.0'
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 7.3.7
48
+ gem install twilio-ruby -v 7.4.0
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].
@@ -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,
@@ -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
@@ -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,
@@ -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,28 @@
1
+ module Twilio
2
+ module REST
3
+ class ClientTokenManager
4
+ attr_accessor :grant_type, :client_id, :client_secret, :code, :redirect_uri, :audience, :refresh_token, :scope
5
+
6
+ def initialize(grant_type, client_id, client_secret, code = nil, redirect_uri = nil, audience = nil,
7
+ refresh_token = nil, scope = nil)
8
+ raise ArgumentError, 'client_id and client_secret are required' if client_id.nil? || client_secret.nil?
9
+
10
+ @grant_type = grant_type
11
+ @client_id = client_id
12
+ @client_secret = client_secret
13
+ @code = code
14
+ @redirect_uri = redirect_uri
15
+ @audience = audience
16
+ @refresh_token = refresh_token
17
+ @scope = scope
18
+ end
19
+
20
+ def fetch_access_token
21
+ client = Twilio::REST::Client.new
22
+ token_instance = client.preview_iam.v1.token.create(grant_type: @grant_type,
23
+ client_id: @client_id, client_secret: @client_secret)
24
+ token_instance.access_token
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'faraday'
4
+ require 'faraday/middleware'
4
5
 
5
6
  module Twilio
6
7
  module HTTP
@@ -79,9 +80,17 @@ module Twilio
79
80
  end
80
81
 
81
82
  def request(host, port, method, url, params = {}, data = {}, headers = {}, auth = nil, timeout = nil)
83
+ headers['Authorization'] = auth if jwt_token?(auth)
82
84
  request = Twilio::Request.new(host, port, method, url, params, data, headers, auth, timeout)
83
85
  _request(request)
84
86
  end
87
+
88
+ def jwt_token?(auth)
89
+ return false unless auth.is_a?(String)
90
+
91
+ parts = auth.split('.')
92
+ parts.length == 3
93
+ end
85
94
  end
86
95
  end
87
96
  end
@@ -0,0 +1,28 @@
1
+ module Twilio
2
+ module REST
3
+ class OrgTokenManager
4
+ attr_accessor :grant_type, :client_id, :client_secret, :code, :redirect_uri, :audience, :refresh_token, :scope
5
+
6
+ def initialize(grant_type, client_id, client_secret, code = nil, redirect_uri = nil, audience = nil,
7
+ refresh_token = nil, scope = nil)
8
+ raise ArgumentError, 'client_id and client_secret are required' if client_id.nil? || client_secret.nil?
9
+
10
+ @grant_type = grant_type
11
+ @client_id = client_id
12
+ @client_secret = client_secret
13
+ @code = code
14
+ @redirect_uri = redirect_uri
15
+ @audience = audience
16
+ @refresh_token = refresh_token
17
+ @scope = scope
18
+ end
19
+
20
+ def fetch_access_token
21
+ client = Twilio::REST::Client.new
22
+ token_instance = client.preview_iam.v1.token.create(grant_type: @grant_type,
23
+ client_id: @client_id, client_secret: @client_secret)
24
+ token_instance.access_token
25
+ end
26
+ end
27
+ end
28
+ end
@@ -61,6 +61,10 @@ module Twilio
61
61
 
62
62
  headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
63
63
 
64
+
65
+
66
+
67
+
64
68
  payload = @version.update('POST', @uri, headers: headers)
65
69
  AuthTokenPromotionInstance.new(
66
70
  @version,
@@ -44,6 +44,10 @@ module Twilio
44
44
 
45
45
  headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
46
46
 
47
+
48
+
49
+
50
+
47
51
  payload = @version.create('POST', @uri, data: data, headers: headers)
48
52
  BulkConsentsInstance.new(
49
53
  @version,
@@ -44,6 +44,10 @@ module Twilio
44
44
 
45
45
  headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
46
46
 
47
+
48
+
49
+
50
+
47
51
  payload = @version.create('POST', @uri, data: data, headers: headers)
48
52
  BulkContactsInstance.new(
49
53
  @version,
@@ -52,6 +52,10 @@ module Twilio
52
52
 
53
53
  headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
54
54
 
55
+
56
+
57
+
58
+
55
59
  payload = @version.create('POST', @uri, data: data, headers: headers)
56
60
  AwsInstance.new(
57
61
  @version,
@@ -125,8 +129,11 @@ module Twilio
125
129
  'Page' => page_number,
126
130
  'PageSize' => page_size,
127
131
  })
132
+ headers = Twilio::Values.of({})
133
+
134
+
128
135
 
129
- response = @version.page('GET', @uri, params: params)
136
+ response = @version.page('GET', @uri, params: params, headers: headers)
130
137
 
131
138
  AwsPage.new(@version, response, @solution)
132
139
  end
@@ -175,6 +182,8 @@ module Twilio
175
182
 
176
183
  headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
177
184
 
185
+
186
+
178
187
  @version.delete('DELETE', @uri, headers: headers)
179
188
  end
180
189
 
@@ -185,6 +194,10 @@ module Twilio
185
194
 
186
195
  headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
187
196
 
197
+
198
+
199
+
200
+
188
201
  payload = @version.fetch('GET', @uri, headers: headers)
189
202
  AwsInstance.new(
190
203
  @version,
@@ -207,6 +220,10 @@ module Twilio
207
220
 
208
221
  headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
209
222
 
223
+
224
+
225
+
226
+
210
227
  payload = @version.update('POST', @uri, data: data, headers: headers)
211
228
  AwsInstance.new(
212
229
  @version,
@@ -52,6 +52,10 @@ module Twilio
52
52
 
53
53
  headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
54
54
 
55
+
56
+
57
+
58
+
55
59
  payload = @version.create('POST', @uri, data: data, headers: headers)
56
60
  PublicKeyInstance.new(
57
61
  @version,
@@ -125,8 +129,11 @@ module Twilio
125
129
  'Page' => page_number,
126
130
  'PageSize' => page_size,
127
131
  })
132
+ headers = Twilio::Values.of({})
133
+
134
+
128
135
 
129
- response = @version.page('GET', @uri, params: params)
136
+ response = @version.page('GET', @uri, params: params, headers: headers)
130
137
 
131
138
  PublicKeyPage.new(@version, response, @solution)
132
139
  end
@@ -175,6 +182,8 @@ module Twilio
175
182
 
176
183
  headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
177
184
 
185
+
186
+
178
187
  @version.delete('DELETE', @uri, headers: headers)
179
188
  end
180
189
 
@@ -185,6 +194,10 @@ module Twilio
185
194
 
186
195
  headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
187
196
 
197
+
198
+
199
+
200
+
188
201
  payload = @version.fetch('GET', @uri, headers: headers)
189
202
  PublicKeyInstance.new(
190
203
  @version,
@@ -207,6 +220,10 @@ module Twilio
207
220
 
208
221
  headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
209
222
 
223
+
224
+
225
+
226
+
210
227
  payload = @version.update('POST', @uri, data: data, headers: headers)
211
228
  PublicKeyInstance.new(
212
229
  @version,
@@ -44,6 +44,10 @@ module Twilio
44
44
 
45
45
  headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
46
46
 
47
+
48
+
49
+
50
+
47
51
  payload = @version.create('POST', @uri, data: data, headers: headers)
48
52
  SafelistInstance.new(
49
53
  @version,
@@ -64,6 +68,8 @@ module Twilio
64
68
  })
65
69
  headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
66
70
 
71
+
72
+
67
73
  @version.delete('DELETE', @uri, params: params, headers: headers)
68
74
  end
69
75
 
@@ -80,6 +86,10 @@ module Twilio
80
86
  })
81
87
  headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
82
88
 
89
+
90
+
91
+
92
+
83
93
  payload = @version.fetch('GET', @uri, params: params, headers: headers)
84
94
  SafelistInstance.new(
85
95
  @version,