twilio-ruby 7.10.7 → 7.11.2

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 (298) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test-and-deploy.yml +43 -67
  3. data/.gitignore +0 -1
  4. data/CHANGES.md +267 -0
  5. data/Gemfile +2 -0
  6. data/Gemfile.lock +154 -0
  7. data/README.md +3 -3
  8. data/Rakefile +1 -1
  9. data/lib/rack/twilio_webhook_authentication.rb +45 -2
  10. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +25 -65
  11. data/lib/twilio-ruby/rest/accounts/v1/bulk_consents.rb +0 -59
  12. data/lib/twilio-ruby/rest/accounts/v1/bulk_contacts.rb +0 -59
  13. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +0 -59
  14. data/lib/twilio-ruby/rest/accounts/v1/messaging_geopermissions.rb +0 -59
  15. data/lib/twilio-ruby/rest/accounts/v1/safelist.rb +0 -59
  16. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +48 -71
  17. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +0 -59
  18. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +0 -59
  19. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +0 -59
  20. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +0 -59
  21. data/lib/twilio-ruby/rest/api/v2010/account/call/transcription.rb +0 -59
  22. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +0 -59
  23. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +0 -59
  24. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +6 -0
  25. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +56 -2
  26. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +0 -59
  27. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +6 -0
  28. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +0 -59
  29. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +0 -59
  30. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload/data.rb +0 -59
  31. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls.rb +0 -59
  32. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations.rb +0 -59
  33. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +0 -59
  34. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +0 -59
  35. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +0 -59
  36. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +0 -59
  37. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +0 -59
  38. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +0 -59
  39. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +0 -59
  40. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +0 -59
  41. data/lib/twilio-ruby/rest/chat/v3/channel.rb +0 -59
  42. data/lib/twilio-ruby/rest/client.rb +0 -5
  43. data/lib/twilio-ruby/rest/content/v1/content/approval_create.rb +11 -60
  44. data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +0 -59
  45. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +0 -59
  46. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +0 -59
  47. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +10 -10
  48. data/lib/twilio-ruby/rest/conversations/v1/conversation_with_participants.rb +0 -59
  49. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +0 -59
  50. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +0 -59
  51. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +0 -59
  52. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +10 -10
  53. data/lib/twilio-ruby/rest/conversations/v1/service/conversation_with_participants.rb +0 -59
  54. data/lib/twilio-ruby/rest/conversations/v2/action.rb +2 -61
  55. data/lib/twilio-ruby/rest/conversations/v2/communication.rb +43 -21
  56. data/lib/twilio-ruby/rest/conversations/v2/configuration.rb +584 -21
  57. data/lib/twilio-ruby/rest/conversations/v2/conversation.rb +28 -28
  58. data/lib/twilio-ruby/rest/conversations/v2/operation.rb +10 -69
  59. data/lib/twilio-ruby/rest/conversations/v2/participant.rb +58 -58
  60. data/lib/twilio-ruby/rest/conversations/v2.rb +55 -49
  61. data/lib/twilio-ruby/rest/events/v1/schema.rb +0 -59
  62. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +0 -59
  63. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +0 -59
  64. data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +12 -14
  65. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +0 -59
  66. data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +12 -14
  67. data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +12 -14
  68. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +12 -14
  69. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +2 -4
  70. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +12 -14
  71. data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +12 -14
  72. data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +0 -59
  73. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +0 -59
  74. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +0 -59
  75. data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +0 -59
  76. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_transfer.rb +0 -59
  77. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +0 -59
  78. data/lib/twilio-ruby/rest/flex_api/v1/plugin/plugin_versions.rb +2 -4
  79. data/lib/twilio-ruby/rest/flex_api/v1/plugin.rb +2 -4
  80. data/lib/twilio-ruby/rest/flex_api/v1/plugin_archive.rb +0 -59
  81. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration/configured_plugin.rb +2 -4
  82. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration.rb +2 -4
  83. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration_archive.rb +0 -59
  84. data/lib/twilio-ruby/rest/flex_api/v1/plugin_release.rb +2 -4
  85. data/lib/twilio-ruby/rest/flex_api/v1/plugin_version_archive.rb +0 -59
  86. data/lib/twilio-ruby/rest/flex_api/v1/provisioning_status.rb +0 -59
  87. data/lib/twilio-ruby/rest/flex_api/v2/flex_user.rb +0 -59
  88. data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +0 -59
  89. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +0 -59
  90. data/lib/twilio-ruby/rest/iam/v1/api_key.rb +0 -59
  91. data/lib/twilio-ruby/rest/iam/v1/new_api_key.rb +2 -61
  92. data/lib/twilio-ruby/rest/iam/v1/o_auth_app.rb +15 -61
  93. data/lib/twilio-ruby/rest/iam/v1/token.rb +0 -59
  94. data/lib/twilio-ruby/rest/iam_base.rb +6 -1
  95. data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +0 -59
  96. data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +7 -59
  97. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +7 -0
  98. data/lib/twilio-ruby/rest/insights/v1/call.rb +0 -59
  99. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +7 -0
  100. data/lib/twilio-ruby/rest/insights/v1/setting.rb +0 -59
  101. data/lib/twilio-ruby/rest/insights/v2/inbound.rb +2 -261
  102. data/lib/twilio-ruby/rest/insights/v2/inbound_report.rb +258 -0
  103. data/lib/twilio-ruby/rest/insights/v2/outbound.rb +18 -299
  104. data/lib/twilio-ruby/rest/insights/v2/outbound_report.rb +258 -0
  105. data/lib/twilio-ruby/rest/insights/v2/report.rb +27 -184
  106. data/lib/twilio-ruby/rest/insights/v2.rb +14 -4
  107. data/lib/twilio-ruby/rest/insights/v3/metadata.rb +1 -60
  108. data/lib/twilio-ruby/rest/insights/v3/query.rb +1 -60
  109. data/lib/twilio-ruby/rest/insights/v3/query_job.rb +654 -0
  110. data/lib/twilio-ruby/rest/insights/v3/result.rb +195 -0
  111. data/lib/twilio-ruby/rest/insights/v3.rb +17 -1
  112. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachment.rb +0 -59
  113. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachments.rb +0 -59
  114. data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_operator_results.rb +0 -59
  115. data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_sentences.rb +0 -59
  116. data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +0 -59
  117. data/lib/twilio-ruby/rest/intelligence/v3/conversation.rb +8 -8
  118. data/lib/twilio-ruby/rest/intelligence/v3/rule_execution.rb +443 -0
  119. data/lib/twilio-ruby/rest/intelligence/v3.rb +6 -0
  120. data/lib/twilio-ruby/rest/knowledge/v1/knowledge/knowledge_status.rb +0 -59
  121. data/lib/twilio-ruby/rest/knowledge/v2/chunk.rb +28 -0
  122. data/lib/twilio-ruby/rest/knowledge/v2/knowledge.rb +38 -0
  123. data/lib/twilio-ruby/rest/knowledge/v2/operation.rb +0 -59
  124. data/lib/twilio-ruby/rest/knowledge/v2/search.rb +8 -176
  125. data/lib/twilio-ruby/rest/knowledge/v2.rb +1 -2
  126. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +0 -59
  127. data/lib/twilio-ruby/rest/lookups/v2/bucket.rb +0 -59
  128. data/lib/twilio-ruby/rest/lookups/v2/lookup_override.rb +0 -59
  129. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +0 -59
  130. data/lib/twilio-ruby/rest/lookups/v2/query.rb +0 -59
  131. data/lib/twilio-ruby/rest/lookups/v2/rate_limit.rb +0 -59
  132. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_usage.rb +0 -59
  133. data/lib/twilio-ruby/rest/marketplace/v1/module_data.rb +0 -59
  134. data/lib/twilio-ruby/rest/marketplace/v1/module_data_management.rb +0 -59
  135. data/lib/twilio-ruby/rest/marketplace/v1/referral_conversion.rb +0 -59
  136. data/lib/twilio-ruby/rest/memory/v1/bulk.rb +9 -177
  137. data/lib/twilio-ruby/rest/memory/v1/conversation_summary.rb +15 -9
  138. data/lib/twilio-ruby/rest/memory/v1/data_mapping.rb +6 -12
  139. data/lib/twilio-ruby/rest/memory/v1/identifier.rb +1 -81
  140. data/lib/twilio-ruby/rest/memory/v1/identity_resolution_setting.rb +11 -191
  141. data/lib/twilio-ruby/rest/memory/v1/import.rb +28 -5
  142. data/lib/twilio-ruby/rest/memory/v1/lookup.rb +1 -60
  143. data/lib/twilio-ruby/rest/memory/v1/observation.rb +72 -22
  144. data/lib/twilio-ruby/rest/memory/v1/operation.rb +1 -60
  145. data/lib/twilio-ruby/rest/memory/v1/profile.rb +2 -2
  146. data/lib/twilio-ruby/rest/memory/v1/recall.rb +1 -60
  147. data/lib/twilio-ruby/rest/memory/v1/revision.rb +3 -5
  148. data/lib/twilio-ruby/rest/memory/v1/store.rb +1 -1
  149. data/lib/twilio-ruby/rest/memory/v1/trait.rb +1 -1
  150. data/lib/twilio-ruby/rest/memory/v1/trait_group.rb +56 -6
  151. data/lib/twilio-ruby/rest/memory/v1.rb +3 -46
  152. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +0 -59
  153. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +0 -18
  154. data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +0 -59
  155. data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +0 -59
  156. data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +0 -59
  157. data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +0 -59
  158. data/lib/twilio-ruby/rest/messaging/v1/domain_validate_dn.rb +0 -59
  159. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +0 -59
  160. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +0 -59
  161. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +0 -59
  162. data/lib/twilio-ruby/rest/messaging/v1/request_managed_cert.rb +0 -59
  163. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +2 -4
  164. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +0 -59
  165. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +0 -59
  166. data/lib/twilio-ruby/rest/messaging/v2/channels_sender.rb +23 -4
  167. data/lib/twilio-ruby/rest/messaging/v2/domain_certs.rb +0 -59
  168. data/lib/twilio-ruby/rest/messaging/v2/typing_indicator.rb +0 -59
  169. data/lib/twilio-ruby/rest/messaging/v3/typing_indicator.rb +4 -63
  170. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +0 -59
  171. data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +0 -59
  172. data/lib/twilio-ruby/rest/numbers/v1/eligibility.rb +0 -59
  173. data/lib/twilio-ruby/rest/numbers/v1/embedded_session.rb +0 -59
  174. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in.rb +0 -59
  175. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_phone_number.rb +0 -59
  176. data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +0 -59
  177. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration.rb +0 -59
  178. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_delete.rb +0 -59
  179. data/lib/twilio-ruby/rest/numbers/v1/sender_id_registration.rb +0 -59
  180. data/lib/twilio-ruby/rest/numbers/v1/sms_verification.rb +172 -0
  181. data/lib/twilio-ruby/rest/numbers/v1/sms_verification_check.rb +179 -0
  182. data/lib/twilio-ruby/rest/numbers/v1/voice_verification.rb +186 -0
  183. data/lib/twilio-ruby/rest/numbers/v1/voice_verification_check.rb +165 -0
  184. data/lib/twilio-ruby/rest/numbers/v1/webhook.rb +0 -59
  185. data/lib/twilio-ruby/rest/numbers/v1.rb +24 -0
  186. data/lib/twilio-ruby/rest/numbers/v2/bulk_hosted_number_order.rb +0 -59
  187. data/lib/twilio-ruby/rest/numbers/v2/bundle_clone.rb +0 -59
  188. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +0 -59
  189. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +0 -59
  190. data/lib/twilio-ruby/rest/numbers/v3/hosted_number_order.rb +0 -59
  191. data/lib/twilio-ruby/rest/oauth/v1/authorize.rb +0 -59
  192. data/lib/twilio-ruby/rest/oauth/v1/token.rb +0 -59
  193. data/lib/twilio-ruby/rest/oauth/v2/authorize.rb +14 -61
  194. data/lib/twilio-ruby/rest/oauth/v2/oauth_authorization_server.rb +200 -0
  195. data/lib/twilio-ruby/rest/oauth/v2/token.rb +10 -63
  196. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +0 -59
  197. data/lib/twilio-ruby/rest/preview_iam/v1/authorize.rb +0 -59
  198. data/lib/twilio-ruby/rest/preview_iam/v1/token.rb +0 -59
  199. data/lib/twilio-ruby/rest/preview_iam/versionless/organization.rb +0 -78
  200. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +0 -59
  201. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +0 -59
  202. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +0 -59
  203. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +0 -59
  204. data/lib/twilio-ruby/rest/pricing/v2/number.rb +0 -59
  205. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +0 -59
  206. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +0 -59
  207. data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +0 -59
  208. data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +0 -59
  209. data/lib/twilio-ruby/rest/routes/v2/trunk.rb +0 -59
  210. data/lib/twilio-ruby/rest/routes/v3/phone_number.rb +406 -0
  211. data/lib/twilio-ruby/rest/routes/v3.rb +50 -0
  212. data/lib/twilio-ruby/rest/routes_base.rb +6 -1
  213. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +0 -59
  214. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +0 -59
  215. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +0 -59
  216. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +0 -59
  217. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +0 -59
  218. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +0 -59
  219. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +0 -59
  220. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +0 -59
  221. data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +0 -59
  222. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +0 -59
  223. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +0 -59
  224. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_bulk_real_time_statistics.rb +0 -59
  225. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +0 -59
  226. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +0 -59
  227. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +0 -59
  228. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +0 -59
  229. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +0 -59
  230. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +0 -59
  231. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +0 -59
  232. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +0 -59
  233. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +0 -59
  234. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +0 -59
  235. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +0 -59
  236. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +0 -59
  237. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +0 -59
  238. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +0 -59
  239. data/lib/twilio-ruby/rest/trusthub/v1/a2p_brand_registration.rb +271 -0
  240. data/lib/twilio-ruby/rest/trusthub/v1/a2p_brand_registration_embedded_session.rb +174 -0
  241. data/lib/twilio-ruby/rest/trusthub/v1/a2p_campaign_registration.rb +262 -0
  242. data/lib/twilio-ruby/rest/trusthub/v1/a2p_campaign_registration_embedded_session.rb +174 -0
  243. data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +0 -59
  244. data/lib/twilio-ruby/rest/trusthub/v1/compliance_registration_inquiries.rb +0 -59
  245. data/lib/twilio-ruby/rest/trusthub/v1/compliance_tollfree_inquiries.rb +0 -59
  246. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles_provisional_copy.rb +386 -0
  247. data/lib/twilio-ruby/rest/trusthub/v1/trust_products_provisional_copy.rb +386 -0
  248. data/lib/twilio-ruby/rest/trusthub/v1.rb +74 -0
  249. data/lib/twilio-ruby/rest/verify/v2/form.rb +0 -59
  250. data/lib/twilio-ruby/rest/verify/v2/safelist.rb +0 -59
  251. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +0 -59
  252. data/lib/twilio-ruby/rest/verify/v2/service/approve_challenge.rb +0 -59
  253. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +0 -59
  254. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +0 -59
  255. data/lib/twilio-ruby/rest/verify/v2/service/new_challenge.rb +3 -62
  256. data/lib/twilio-ruby/rest/verify/v2/service/new_factor.rb +0 -59
  257. data/lib/twilio-ruby/rest/verify/v2/service/new_verify_factor.rb +0 -59
  258. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +8 -61
  259. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +0 -59
  260. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +0 -59
  261. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +0 -59
  262. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +0 -59
  263. data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +0 -59
  264. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +0 -59
  265. data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +0 -59
  266. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +0 -59
  267. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +0 -59
  268. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +0 -59
  269. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +0 -59
  270. data/lib/twilio-ruby/rest/voice/v2/account_default_configuration.rb +497 -0
  271. data/lib/twilio-ruby/rest/voice/v2/configuration/default.rb +297 -0
  272. data/lib/twilio-ruby/rest/voice/v2/configuration.rb +353 -0
  273. data/lib/twilio-ruby/rest/voice/v2/recording.rb +557 -0
  274. data/lib/twilio-ruby/rest/voice/v2/transcription.rb +532 -0
  275. data/lib/twilio-ruby/rest/voice/v2/type.rb +459 -0
  276. data/lib/twilio-ruby/rest/voice/v2.rb +141 -0
  277. data/lib/twilio-ruby/rest/voice/v3/transcription.rb +259 -50
  278. data/lib/twilio-ruby/rest/voice_base.rb +5 -0
  279. data/lib/twilio-ruby/twiml/voice_response.rb +6 -68
  280. data/lib/twilio-ruby/version.rb +1 -1
  281. data/twilio-ruby.gemspec +1 -1
  282. metadata +36 -22
  283. data/lib/twilio-ruby/rest/assistants/v1/assistant/assistants_knowledge.rb +0 -558
  284. data/lib/twilio-ruby/rest/assistants/v1/assistant/assistants_tool.rb +0 -558
  285. data/lib/twilio-ruby/rest/assistants/v1/assistant/feedback.rb +0 -431
  286. data/lib/twilio-ruby/rest/assistants/v1/assistant/message.rb +0 -296
  287. data/lib/twilio-ruby/rest/assistants/v1/assistant.rb +0 -927
  288. data/lib/twilio-ruby/rest/assistants/v1/knowledge/chunk.rb +0 -325
  289. data/lib/twilio-ruby/rest/assistants/v1/knowledge/knowledge_status.rb +0 -349
  290. data/lib/twilio-ruby/rest/assistants/v1/knowledge.rb +0 -871
  291. data/lib/twilio-ruby/rest/assistants/v1/policy.rb +0 -364
  292. data/lib/twilio-ruby/rest/assistants/v1/session/message.rb +0 -360
  293. data/lib/twilio-ruby/rest/assistants/v1/session.rb +0 -501
  294. data/lib/twilio-ruby/rest/assistants/v1/tool.rb +0 -847
  295. data/lib/twilio-ruby/rest/assistants/v1.rb +0 -104
  296. data/lib/twilio-ruby/rest/assistants.rb +0 -6
  297. data/lib/twilio-ruby/rest/assistants_base.rb +0 -38
  298. data/lib/twilio-ruby/rest/memory/v1/event.rb +0 -320
@@ -57,13 +57,14 @@ module Twilio
57
57
  class CreateConfigurationRequest
58
58
  # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
59
59
  # @param [description]: [String] Human-readable description for the configuration.
60
- # @param [conversation_grouping_type]: [String] The strategy Conversation Orchestrator uses to assign communications to conversations.
60
+ # @param [conversation_grouping_type]: [String] Type of Conversation grouping strategy: - `GROUP_BY_PROFILE`: Groups Communications by resolved Profile from the Memory Store. A Profile is looked up or created for `CUSTOMER` Participant types. All Communications from the same Profile are in the same Conversation, regardless of address or channel. - `GROUP_BY_PARTICIPANT_ADDRESSES`: Groups Communications by Participant addresses across all channels. A customer using +18005550100 will be in the same Conversation whether they contact by SMS, WhatsApp, or RCS. - `GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPE`: Groups Communications by both Participant addresses AND channel. A customer using +18005550100 by SMS will be in a different Conversation than the same customer by Voice.
61
61
  # @param [memory_store_id]: [String] The memory store ID that Conversation Orchestrator uses for profile resolution.
62
62
  # @param [channel_settings]: [Hash<String, CreateConfigurationRequestChannelSettingsValue>]
63
63
  # @param [status_callbacks]: [Array<ConfigurationList.CreateConfigurationRequestStatusCallbacks>] A list of webhook configurations.
64
64
  # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
65
65
  # @param [memory_extraction_enabled]: [Boolean] Whether memory extraction is enabled for conversations under this configuration. Defaults to false.
66
- attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled
66
+ # @param [conversations_v1_bridge]: [ConfigurationList.CreateConfigurationRequestConversationsV1Bridge]
67
+ attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled, :conversations_v1_bridge
67
68
  def initialize(payload)
68
69
  @display_name = payload["display_name"]
69
70
  @description = payload["description"]
@@ -73,6 +74,7 @@ module Twilio
73
74
  @status_callbacks = payload["status_callbacks"]
74
75
  @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
75
76
  @memory_extraction_enabled = payload["memory_extraction_enabled"]
77
+ @conversations_v1_bridge = payload["conversations_v1_bridge"]
76
78
  end
77
79
  def to_json(options = {})
78
80
  {
@@ -84,6 +86,7 @@ module Twilio
84
86
  "statusCallbacks": @status_callbacks,
85
87
  "intelligenceConfigurationIds": @intelligence_configuration_ids,
86
88
  "memoryExtractionEnabled": @memory_extraction_enabled,
89
+ "conversationsV1Bridge": @conversations_v1_bridge,
87
90
  }.to_json(options)
88
91
  end
89
92
  end
@@ -139,6 +142,19 @@ module Twilio
139
142
  end
140
143
  end
141
144
 
145
+ class CreateConfigurationRequestConversationsV1Bridge
146
+ # @param [service_id]: [String] The Conversations V1 Service SID (IS prefix). One configuration per V1 Service SID.
147
+ attr_accessor :service_id
148
+ def initialize(payload)
149
+ @service_id = payload["service_id"]
150
+ end
151
+ def to_json(options = {})
152
+ {
153
+ "serviceId": @service_id,
154
+ }.to_json(options)
155
+ end
156
+ end
157
+
142
158
  class CreateConfigurationRequestStatusCallbacks
143
159
  # @param [url]: [String] The destination URL for webhooks.
144
160
  # @param [method]: [String] The HTTP method used to invoke the webhook URL.
@@ -155,16 +171,83 @@ module Twilio
155
171
  end
156
172
  end
157
173
 
174
+ class PatchConfigurationRequest
175
+ # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
176
+ # @param [description]: [String] Human-readable description for the configuration.
177
+ # @param [conversation_grouping_type]: [String] Type of Conversation grouping strategy: - `GROUP_BY_PROFILE`: Groups Communications by resolved Profile from the Memory Store. A Profile is looked up or created for `CUSTOMER` Participant types. All Communications from the same Profile are in the same Conversation, regardless of address or channel. - `GROUP_BY_PARTICIPANT_ADDRESSES`: Groups Communications by Participant addresses across all channels. A customer using +18005550100 will be in the same Conversation whether they contact by SMS, WhatsApp, or RCS. - `GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPE`: Groups Communications by both Participant addresses AND channel. A customer using +18005550100 by SMS will be in a different Conversation than the same customer by Voice.
178
+ # @param [memory_store_id]: [String] The Memory Store ID for profile resolution.
179
+ # @param [channel_settings]: [Hash<String, PatchConfigurationRequestChannelSettingsValue>] Channel-specific settings to merge onto the existing channelSettings map. A channel key mapped to a value replaces that channel's settings; a channel key explicitly mapped to null removes it; an omitted channel key is left untouched.
180
+ # @param [status_callbacks]: [Array<ConfigurationList.UpdateConfigurationRequestStatusCallbacks>]
181
+ # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
182
+ # @param [memory_extraction_enabled]: [Boolean] Whether memory extraction is enabled for conversations under this configuration.
183
+ # @param [conversations_v1_bridge]: [ConfigurationList.PatchConfigurationRequestConversationsV1Bridge]
184
+ attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled, :conversations_v1_bridge
185
+ def initialize(payload)
186
+ @display_name = payload["display_name"]
187
+ @description = payload["description"]
188
+ @conversation_grouping_type = payload["conversation_grouping_type"]
189
+ @memory_store_id = payload["memory_store_id"]
190
+ @channel_settings = payload["channel_settings"]
191
+ @status_callbacks = payload["status_callbacks"]
192
+ @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
193
+ @memory_extraction_enabled = payload["memory_extraction_enabled"]
194
+ @conversations_v1_bridge = payload["conversations_v1_bridge"]
195
+ end
196
+ def to_json(options = {})
197
+ {
198
+ "displayName": @display_name,
199
+ "description": @description,
200
+ "conversationGroupingType": @conversation_grouping_type,
201
+ "memoryStoreId": @memory_store_id,
202
+ "channelSettings": @channel_settings,
203
+ "statusCallbacks": @status_callbacks,
204
+ "intelligenceConfigurationIds": @intelligence_configuration_ids,
205
+ "memoryExtractionEnabled": @memory_extraction_enabled,
206
+ "conversationsV1Bridge": @conversations_v1_bridge,
207
+ }.to_json(options)
208
+ end
209
+ end
210
+
211
+ class PatchConfigurationRequestChannelSettingsValue
212
+ # @param [status_timeouts]: [UpdateConfigurationRequestChannelSettingsValueStatusTimeouts]
213
+ # @param [capture_rules]: [Array<UpdateConfigurationRequestChannelSettingsValueCaptureRules>]
214
+ attr_accessor :status_timeouts, :capture_rules
215
+ def initialize(payload)
216
+ @status_timeouts = payload["status_timeouts"]
217
+ @capture_rules = payload["capture_rules"]
218
+ end
219
+ def to_json(options = {})
220
+ {
221
+ "statusTimeouts": @status_timeouts,
222
+ "captureRules": @capture_rules,
223
+ }.to_json(options)
224
+ end
225
+ end
226
+
227
+ class PatchConfigurationRequestConversationsV1Bridge
228
+ # @param [service_id]: [String] The Conversations V1 Service SID (IS prefix). One configuration per V1 Service SID.
229
+ attr_accessor :service_id
230
+ def initialize(payload)
231
+ @service_id = payload["service_id"]
232
+ end
233
+ def to_json(options = {})
234
+ {
235
+ "serviceId": @service_id,
236
+ }.to_json(options)
237
+ end
238
+ end
239
+
158
240
  class UpdateConfigurationRequest
159
241
  # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
160
242
  # @param [description]: [String] Human-readable description for the configuration.
161
- # @param [conversation_grouping_type]: [String] The strategy Conversation Orchestrator uses to assign communications to conversations.
243
+ # @param [conversation_grouping_type]: [String] Type of Conversation grouping strategy: - `GROUP_BY_PROFILE`: Groups Communications by resolved Profile from the Memory Store. A Profile is looked up or created for `CUSTOMER` Participant types. All Communications from the same Profile are in the same Conversation, regardless of address or channel. - `GROUP_BY_PARTICIPANT_ADDRESSES`: Groups Communications by Participant addresses across all channels. A customer using +18005550100 will be in the same Conversation whether they contact by SMS, WhatsApp, or RCS. - `GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPE`: Groups Communications by both Participant addresses AND channel. A customer using +18005550100 by SMS will be in a different Conversation than the same customer by Voice.
162
244
  # @param [memory_store_id]: [String] The Memory Store ID for profile resolution.
163
245
  # @param [channel_settings]: [Hash<String, UpdateConfigurationRequestChannelSettingsValue>]
164
246
  # @param [status_callbacks]: [Array<ConfigurationList.UpdateConfigurationRequestStatusCallbacks>]
165
247
  # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
166
248
  # @param [memory_extraction_enabled]: [Boolean] Whether memory extraction is enabled for conversations under this configuration. Defaults to false.
167
- attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled
249
+ # @param [conversations_v1_bridge]: [ConfigurationList.CreateConfigurationRequestConversationsV1Bridge]
250
+ attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled, :conversations_v1_bridge
168
251
  def initialize(payload)
169
252
  @display_name = payload["display_name"]
170
253
  @description = payload["description"]
@@ -174,6 +257,7 @@ module Twilio
174
257
  @status_callbacks = payload["status_callbacks"]
175
258
  @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
176
259
  @memory_extraction_enabled = payload["memory_extraction_enabled"]
260
+ @conversations_v1_bridge = payload["conversations_v1_bridge"]
177
261
  end
178
262
  def to_json(options = {})
179
263
  {
@@ -185,6 +269,7 @@ module Twilio
185
269
  "statusCallbacks": @status_callbacks,
186
270
  "intelligenceConfigurationIds": @intelligence_configuration_ids,
187
271
  "memoryExtractionEnabled": @memory_extraction_enabled,
272
+ "conversationsV1Bridge": @conversations_v1_bridge,
188
273
  }.to_json(options)
189
274
  end
190
275
  end
@@ -295,13 +380,14 @@ module Twilio
295
380
  class CreateConfigurationRequest
296
381
  # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
297
382
  # @param [description]: [String] Human-readable description for the configuration.
298
- # @param [conversation_grouping_type]: [String] The strategy Conversation Orchestrator uses to assign communications to conversations.
383
+ # @param [conversation_grouping_type]: [String] Type of Conversation grouping strategy: - `GROUP_BY_PROFILE`: Groups Communications by resolved Profile from the Memory Store. A Profile is looked up or created for `CUSTOMER` Participant types. All Communications from the same Profile are in the same Conversation, regardless of address or channel. - `GROUP_BY_PARTICIPANT_ADDRESSES`: Groups Communications by Participant addresses across all channels. A customer using +18005550100 will be in the same Conversation whether they contact by SMS, WhatsApp, or RCS. - `GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPE`: Groups Communications by both Participant addresses AND channel. A customer using +18005550100 by SMS will be in a different Conversation than the same customer by Voice.
299
384
  # @param [memory_store_id]: [String] The memory store ID that Conversation Orchestrator uses for profile resolution.
300
385
  # @param [channel_settings]: [Hash<String, CreateConfigurationRequestChannelSettingsValue>]
301
386
  # @param [status_callbacks]: [Array<ConfigurationList.CreateConfigurationRequestStatusCallbacks>] A list of webhook configurations.
302
387
  # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
303
388
  # @param [memory_extraction_enabled]: [Boolean] Whether memory extraction is enabled for conversations under this configuration. Defaults to false.
304
- attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled
389
+ # @param [conversations_v1_bridge]: [ConfigurationList.CreateConfigurationRequestConversationsV1Bridge]
390
+ attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled, :conversations_v1_bridge
305
391
  def initialize(payload)
306
392
  @display_name = payload["display_name"]
307
393
  @description = payload["description"]
@@ -311,6 +397,7 @@ module Twilio
311
397
  @status_callbacks = payload["status_callbacks"]
312
398
  @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
313
399
  @memory_extraction_enabled = payload["memory_extraction_enabled"]
400
+ @conversations_v1_bridge = payload["conversations_v1_bridge"]
314
401
  end
315
402
  def to_json(options = {})
316
403
  {
@@ -322,6 +409,7 @@ module Twilio
322
409
  "statusCallbacks": @status_callbacks,
323
410
  "intelligenceConfigurationIds": @intelligence_configuration_ids,
324
411
  "memoryExtractionEnabled": @memory_extraction_enabled,
412
+ "conversationsV1Bridge": @conversations_v1_bridge,
325
413
  }.to_json(options)
326
414
  end
327
415
  end
@@ -377,6 +465,19 @@ module Twilio
377
465
  end
378
466
  end
379
467
 
468
+ class CreateConfigurationRequestConversationsV1Bridge
469
+ # @param [service_id]: [String] The Conversations V1 Service SID (IS prefix). One configuration per V1 Service SID.
470
+ attr_accessor :service_id
471
+ def initialize(payload)
472
+ @service_id = payload["service_id"]
473
+ end
474
+ def to_json(options = {})
475
+ {
476
+ "serviceId": @service_id,
477
+ }.to_json(options)
478
+ end
479
+ end
480
+
380
481
  class CreateConfigurationRequestStatusCallbacks
381
482
  # @param [url]: [String] The destination URL for webhooks.
382
483
  # @param [method]: [String] The HTTP method used to invoke the webhook URL.
@@ -393,16 +494,83 @@ module Twilio
393
494
  end
394
495
  end
395
496
 
497
+ class PatchConfigurationRequest
498
+ # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
499
+ # @param [description]: [String] Human-readable description for the configuration.
500
+ # @param [conversation_grouping_type]: [String] Type of Conversation grouping strategy: - `GROUP_BY_PROFILE`: Groups Communications by resolved Profile from the Memory Store. A Profile is looked up or created for `CUSTOMER` Participant types. All Communications from the same Profile are in the same Conversation, regardless of address or channel. - `GROUP_BY_PARTICIPANT_ADDRESSES`: Groups Communications by Participant addresses across all channels. A customer using +18005550100 will be in the same Conversation whether they contact by SMS, WhatsApp, or RCS. - `GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPE`: Groups Communications by both Participant addresses AND channel. A customer using +18005550100 by SMS will be in a different Conversation than the same customer by Voice.
501
+ # @param [memory_store_id]: [String] The Memory Store ID for profile resolution.
502
+ # @param [channel_settings]: [Hash<String, PatchConfigurationRequestChannelSettingsValue>] Channel-specific settings to merge onto the existing channelSettings map. A channel key mapped to a value replaces that channel's settings; a channel key explicitly mapped to null removes it; an omitted channel key is left untouched.
503
+ # @param [status_callbacks]: [Array<ConfigurationList.UpdateConfigurationRequestStatusCallbacks>]
504
+ # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
505
+ # @param [memory_extraction_enabled]: [Boolean] Whether memory extraction is enabled for conversations under this configuration.
506
+ # @param [conversations_v1_bridge]: [ConfigurationList.PatchConfigurationRequestConversationsV1Bridge]
507
+ attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled, :conversations_v1_bridge
508
+ def initialize(payload)
509
+ @display_name = payload["display_name"]
510
+ @description = payload["description"]
511
+ @conversation_grouping_type = payload["conversation_grouping_type"]
512
+ @memory_store_id = payload["memory_store_id"]
513
+ @channel_settings = payload["channel_settings"]
514
+ @status_callbacks = payload["status_callbacks"]
515
+ @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
516
+ @memory_extraction_enabled = payload["memory_extraction_enabled"]
517
+ @conversations_v1_bridge = payload["conversations_v1_bridge"]
518
+ end
519
+ def to_json(options = {})
520
+ {
521
+ "displayName": @display_name,
522
+ "description": @description,
523
+ "conversationGroupingType": @conversation_grouping_type,
524
+ "memoryStoreId": @memory_store_id,
525
+ "channelSettings": @channel_settings,
526
+ "statusCallbacks": @status_callbacks,
527
+ "intelligenceConfigurationIds": @intelligence_configuration_ids,
528
+ "memoryExtractionEnabled": @memory_extraction_enabled,
529
+ "conversationsV1Bridge": @conversations_v1_bridge,
530
+ }.to_json(options)
531
+ end
532
+ end
533
+
534
+ class PatchConfigurationRequestChannelSettingsValue
535
+ # @param [status_timeouts]: [UpdateConfigurationRequestChannelSettingsValueStatusTimeouts]
536
+ # @param [capture_rules]: [Array<UpdateConfigurationRequestChannelSettingsValueCaptureRules>]
537
+ attr_accessor :status_timeouts, :capture_rules
538
+ def initialize(payload)
539
+ @status_timeouts = payload["status_timeouts"]
540
+ @capture_rules = payload["capture_rules"]
541
+ end
542
+ def to_json(options = {})
543
+ {
544
+ "statusTimeouts": @status_timeouts,
545
+ "captureRules": @capture_rules,
546
+ }.to_json(options)
547
+ end
548
+ end
549
+
550
+ class PatchConfigurationRequestConversationsV1Bridge
551
+ # @param [service_id]: [String] The Conversations V1 Service SID (IS prefix). One configuration per V1 Service SID.
552
+ attr_accessor :service_id
553
+ def initialize(payload)
554
+ @service_id = payload["service_id"]
555
+ end
556
+ def to_json(options = {})
557
+ {
558
+ "serviceId": @service_id,
559
+ }.to_json(options)
560
+ end
561
+ end
562
+
396
563
  class UpdateConfigurationRequest
397
564
  # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
398
565
  # @param [description]: [String] Human-readable description for the configuration.
399
- # @param [conversation_grouping_type]: [String] The strategy Conversation Orchestrator uses to assign communications to conversations.
566
+ # @param [conversation_grouping_type]: [String] Type of Conversation grouping strategy: - `GROUP_BY_PROFILE`: Groups Communications by resolved Profile from the Memory Store. A Profile is looked up or created for `CUSTOMER` Participant types. All Communications from the same Profile are in the same Conversation, regardless of address or channel. - `GROUP_BY_PARTICIPANT_ADDRESSES`: Groups Communications by Participant addresses across all channels. A customer using +18005550100 will be in the same Conversation whether they contact by SMS, WhatsApp, or RCS. - `GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPE`: Groups Communications by both Participant addresses AND channel. A customer using +18005550100 by SMS will be in a different Conversation than the same customer by Voice.
400
567
  # @param [memory_store_id]: [String] The Memory Store ID for profile resolution.
401
568
  # @param [channel_settings]: [Hash<String, UpdateConfigurationRequestChannelSettingsValue>]
402
569
  # @param [status_callbacks]: [Array<ConfigurationList.UpdateConfigurationRequestStatusCallbacks>]
403
570
  # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
404
571
  # @param [memory_extraction_enabled]: [Boolean] Whether memory extraction is enabled for conversations under this configuration. Defaults to false.
405
- attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled
572
+ # @param [conversations_v1_bridge]: [ConfigurationList.CreateConfigurationRequestConversationsV1Bridge]
573
+ attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled, :conversations_v1_bridge
406
574
  def initialize(payload)
407
575
  @display_name = payload["display_name"]
408
576
  @description = payload["description"]
@@ -412,6 +580,7 @@ module Twilio
412
580
  @status_callbacks = payload["status_callbacks"]
413
581
  @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
414
582
  @memory_extraction_enabled = payload["memory_extraction_enabled"]
583
+ @conversations_v1_bridge = payload["conversations_v1_bridge"]
415
584
  end
416
585
  def to_json(options = {})
417
586
  {
@@ -423,6 +592,330 @@ module Twilio
423
592
  "statusCallbacks": @status_callbacks,
424
593
  "intelligenceConfigurationIds": @intelligence_configuration_ids,
425
594
  "memoryExtractionEnabled": @memory_extraction_enabled,
595
+ "conversationsV1Bridge": @conversations_v1_bridge,
596
+ }.to_json(options)
597
+ end
598
+ end
599
+
600
+ class UpdateConfigurationRequestChannelSettingsValue
601
+ # @param [status_timeouts]: [UpdateConfigurationRequestChannelSettingsValueStatusTimeouts]
602
+ # @param [capture_rules]: [Array<UpdateConfigurationRequestChannelSettingsValueCaptureRules>]
603
+ attr_accessor :status_timeouts, :capture_rules
604
+ def initialize(payload)
605
+ @status_timeouts = payload["status_timeouts"]
606
+ @capture_rules = payload["capture_rules"]
607
+ end
608
+ def to_json(options = {})
609
+ {
610
+ "statusTimeouts": @status_timeouts,
611
+ "captureRules": @capture_rules,
612
+ }.to_json(options)
613
+ end
614
+ end
615
+
616
+ class UpdateConfigurationRequestChannelSettingsValueCaptureRules
617
+ # @param [from]: [String]
618
+ # @param [to]: [String]
619
+ # @param [metadata]: [Hash<String, String>]
620
+ attr_accessor :from, :to, :metadata
621
+ def initialize(payload)
622
+ @from = payload["from"]
623
+ @to = payload["to"]
624
+ @metadata = payload["metadata"]
625
+ end
626
+ def to_json(options = {})
627
+ {
628
+ "from": @from,
629
+ "to": @to,
630
+ "metadata": @metadata,
631
+ }.to_json(options)
632
+ end
633
+ end
634
+
635
+ class UpdateConfigurationRequestChannelSettingsValueStatusTimeouts
636
+ # @param [inactive]: [Integer]
637
+ # @param [closed]: [Integer]
638
+ attr_accessor :inactive, :closed
639
+ def initialize(payload)
640
+ @inactive = payload["inactive"]
641
+ @closed = payload["closed"]
642
+ end
643
+ def to_json(options = {})
644
+ {
645
+ "inactive": @inactive,
646
+ "closed": @closed,
647
+ }.to_json(options)
648
+ end
649
+ end
650
+
651
+ class UpdateConfigurationRequestStatusCallbacks
652
+ # @param [url]: [String]
653
+ # @param [method]: [String]
654
+ attr_accessor :url, :method
655
+ def initialize(payload)
656
+ @url = payload["url"]
657
+ @method = payload["method"]
658
+ end
659
+ def to_json(options = {})
660
+ {
661
+ "url": @url,
662
+ "method": @method,
663
+ }.to_json(options)
664
+ end
665
+ end
666
+
667
+
668
+ class ConversationsV2CaptureRule
669
+ # @param [from]: [String] The from address. Use `*` for wildcard to match any from address.
670
+ # @param [to]: [String] The to address. Use `*` for wildcard to match any to address.
671
+ # @param [metadata]: [Hash<String, String>] Additional matching criteria for the capture rule. For voice calls, can include `callType` (`PSTN`, `SIP`, and similar).
672
+ attr_accessor :from, :to, :metadata
673
+ def initialize(payload)
674
+ @from = payload["from"]
675
+ @to = payload["to"]
676
+ @metadata = payload["metadata"]
677
+ end
678
+ def to_json(options = {})
679
+ {
680
+ "from": @from,
681
+ "to": @to,
682
+ "metadata": @metadata,
683
+ }.to_json(options)
684
+ end
685
+ end
686
+
687
+ class ConversationsV2StatusTimeouts
688
+ # @param [inactive]: [Integer] Inactivity timeout in minutes.
689
+ # @param [closed]: [Integer] Close timeout in minutes.
690
+ attr_accessor :inactive, :closed
691
+ def initialize(payload)
692
+ @inactive = payload["inactive"]
693
+ @closed = payload["closed"]
694
+ end
695
+ def to_json(options = {})
696
+ {
697
+ "inactive": @inactive,
698
+ "closed": @closed,
699
+ }.to_json(options)
700
+ end
701
+ end
702
+
703
+ class CreateConfigurationRequest
704
+ # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
705
+ # @param [description]: [String] Human-readable description for the configuration.
706
+ # @param [conversation_grouping_type]: [String] Type of Conversation grouping strategy: - `GROUP_BY_PROFILE`: Groups Communications by resolved Profile from the Memory Store. A Profile is looked up or created for `CUSTOMER` Participant types. All Communications from the same Profile are in the same Conversation, regardless of address or channel. - `GROUP_BY_PARTICIPANT_ADDRESSES`: Groups Communications by Participant addresses across all channels. A customer using +18005550100 will be in the same Conversation whether they contact by SMS, WhatsApp, or RCS. - `GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPE`: Groups Communications by both Participant addresses AND channel. A customer using +18005550100 by SMS will be in a different Conversation than the same customer by Voice.
707
+ # @param [memory_store_id]: [String] The memory store ID that Conversation Orchestrator uses for profile resolution.
708
+ # @param [channel_settings]: [Hash<String, CreateConfigurationRequestChannelSettingsValue>]
709
+ # @param [status_callbacks]: [Array<ConfigurationList.CreateConfigurationRequestStatusCallbacks>] A list of webhook configurations.
710
+ # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
711
+ # @param [memory_extraction_enabled]: [Boolean] Whether memory extraction is enabled for conversations under this configuration. Defaults to false.
712
+ # @param [conversations_v1_bridge]: [ConfigurationList.CreateConfigurationRequestConversationsV1Bridge]
713
+ attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled, :conversations_v1_bridge
714
+ def initialize(payload)
715
+ @display_name = payload["display_name"]
716
+ @description = payload["description"]
717
+ @conversation_grouping_type = payload["conversation_grouping_type"]
718
+ @memory_store_id = payload["memory_store_id"]
719
+ @channel_settings = payload["channel_settings"]
720
+ @status_callbacks = payload["status_callbacks"]
721
+ @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
722
+ @memory_extraction_enabled = payload["memory_extraction_enabled"]
723
+ @conversations_v1_bridge = payload["conversations_v1_bridge"]
724
+ end
725
+ def to_json(options = {})
726
+ {
727
+ "displayName": @display_name,
728
+ "description": @description,
729
+ "conversationGroupingType": @conversation_grouping_type,
730
+ "memoryStoreId": @memory_store_id,
731
+ "channelSettings": @channel_settings,
732
+ "statusCallbacks": @status_callbacks,
733
+ "intelligenceConfigurationIds": @intelligence_configuration_ids,
734
+ "memoryExtractionEnabled": @memory_extraction_enabled,
735
+ "conversationsV1Bridge": @conversations_v1_bridge,
736
+ }.to_json(options)
737
+ end
738
+ end
739
+
740
+ class CreateConfigurationRequestChannelSettingsValue
741
+ # @param [status_timeouts]: [CreateConfigurationRequestChannelSettingsValueStatusTimeouts]
742
+ # @param [capture_rules]: [Array<CreateConfigurationRequestChannelSettingsValueCaptureRules>]
743
+ attr_accessor :status_timeouts, :capture_rules
744
+ def initialize(payload)
745
+ @status_timeouts = payload["status_timeouts"]
746
+ @capture_rules = payload["capture_rules"]
747
+ end
748
+ def to_json(options = {})
749
+ {
750
+ "statusTimeouts": @status_timeouts,
751
+ "captureRules": @capture_rules,
752
+ }.to_json(options)
753
+ end
754
+ end
755
+
756
+ class CreateConfigurationRequestChannelSettingsValueCaptureRules
757
+ # @param [from]: [String] The from address. Use '*' for wildcard.
758
+ # @param [to]: [String] The to address. Use '*' for wildcard.
759
+ # @param [metadata]: [Hash<String, String>]
760
+ attr_accessor :from, :to, :metadata
761
+ def initialize(payload)
762
+ @from = payload["from"]
763
+ @to = payload["to"]
764
+ @metadata = payload["metadata"]
765
+ end
766
+ def to_json(options = {})
767
+ {
768
+ "from": @from,
769
+ "to": @to,
770
+ "metadata": @metadata,
771
+ }.to_json(options)
772
+ end
773
+ end
774
+
775
+ class CreateConfigurationRequestChannelSettingsValueStatusTimeouts
776
+ # @param [inactive]: [Integer] The inactivity timeout in minutes. For more information, see [Conversation lifecycle](/docs/platform/conversations/concepts/lifecycle).
777
+ # @param [closed]: [Integer] The close timeout in minutes. For more information, see [Conversation lifecycle](/docs/platform/conversations/concepts/lifecycle).
778
+ attr_accessor :inactive, :closed
779
+ def initialize(payload)
780
+ @inactive = payload["inactive"]
781
+ @closed = payload["closed"]
782
+ end
783
+ def to_json(options = {})
784
+ {
785
+ "inactive": @inactive,
786
+ "closed": @closed,
787
+ }.to_json(options)
788
+ end
789
+ end
790
+
791
+ class CreateConfigurationRequestConversationsV1Bridge
792
+ # @param [service_id]: [String] The Conversations V1 Service SID (IS prefix). One configuration per V1 Service SID.
793
+ attr_accessor :service_id
794
+ def initialize(payload)
795
+ @service_id = payload["service_id"]
796
+ end
797
+ def to_json(options = {})
798
+ {
799
+ "serviceId": @service_id,
800
+ }.to_json(options)
801
+ end
802
+ end
803
+
804
+ class CreateConfigurationRequestStatusCallbacks
805
+ # @param [url]: [String] The destination URL for webhooks.
806
+ # @param [method]: [String] The HTTP method used to invoke the webhook URL.
807
+ attr_accessor :url, :method
808
+ def initialize(payload)
809
+ @url = payload["url"]
810
+ @method = payload["method"]
811
+ end
812
+ def to_json(options = {})
813
+ {
814
+ "url": @url,
815
+ "method": @method,
816
+ }.to_json(options)
817
+ end
818
+ end
819
+
820
+ class PatchConfigurationRequest
821
+ # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
822
+ # @param [description]: [String] Human-readable description for the configuration.
823
+ # @param [conversation_grouping_type]: [String] Type of Conversation grouping strategy: - `GROUP_BY_PROFILE`: Groups Communications by resolved Profile from the Memory Store. A Profile is looked up or created for `CUSTOMER` Participant types. All Communications from the same Profile are in the same Conversation, regardless of address or channel. - `GROUP_BY_PARTICIPANT_ADDRESSES`: Groups Communications by Participant addresses across all channels. A customer using +18005550100 will be in the same Conversation whether they contact by SMS, WhatsApp, or RCS. - `GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPE`: Groups Communications by both Participant addresses AND channel. A customer using +18005550100 by SMS will be in a different Conversation than the same customer by Voice.
824
+ # @param [memory_store_id]: [String] The Memory Store ID for profile resolution.
825
+ # @param [channel_settings]: [Hash<String, PatchConfigurationRequestChannelSettingsValue>] Channel-specific settings to merge onto the existing channelSettings map. A channel key mapped to a value replaces that channel's settings; a channel key explicitly mapped to null removes it; an omitted channel key is left untouched.
826
+ # @param [status_callbacks]: [Array<ConfigurationList.UpdateConfigurationRequestStatusCallbacks>]
827
+ # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
828
+ # @param [memory_extraction_enabled]: [Boolean] Whether memory extraction is enabled for conversations under this configuration.
829
+ # @param [conversations_v1_bridge]: [ConfigurationList.PatchConfigurationRequestConversationsV1Bridge]
830
+ attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled, :conversations_v1_bridge
831
+ def initialize(payload)
832
+ @display_name = payload["display_name"]
833
+ @description = payload["description"]
834
+ @conversation_grouping_type = payload["conversation_grouping_type"]
835
+ @memory_store_id = payload["memory_store_id"]
836
+ @channel_settings = payload["channel_settings"]
837
+ @status_callbacks = payload["status_callbacks"]
838
+ @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
839
+ @memory_extraction_enabled = payload["memory_extraction_enabled"]
840
+ @conversations_v1_bridge = payload["conversations_v1_bridge"]
841
+ end
842
+ def to_json(options = {})
843
+ {
844
+ "displayName": @display_name,
845
+ "description": @description,
846
+ "conversationGroupingType": @conversation_grouping_type,
847
+ "memoryStoreId": @memory_store_id,
848
+ "channelSettings": @channel_settings,
849
+ "statusCallbacks": @status_callbacks,
850
+ "intelligenceConfigurationIds": @intelligence_configuration_ids,
851
+ "memoryExtractionEnabled": @memory_extraction_enabled,
852
+ "conversationsV1Bridge": @conversations_v1_bridge,
853
+ }.to_json(options)
854
+ end
855
+ end
856
+
857
+ class PatchConfigurationRequestChannelSettingsValue
858
+ # @param [status_timeouts]: [UpdateConfigurationRequestChannelSettingsValueStatusTimeouts]
859
+ # @param [capture_rules]: [Array<UpdateConfigurationRequestChannelSettingsValueCaptureRules>]
860
+ attr_accessor :status_timeouts, :capture_rules
861
+ def initialize(payload)
862
+ @status_timeouts = payload["status_timeouts"]
863
+ @capture_rules = payload["capture_rules"]
864
+ end
865
+ def to_json(options = {})
866
+ {
867
+ "statusTimeouts": @status_timeouts,
868
+ "captureRules": @capture_rules,
869
+ }.to_json(options)
870
+ end
871
+ end
872
+
873
+ class PatchConfigurationRequestConversationsV1Bridge
874
+ # @param [service_id]: [String] The Conversations V1 Service SID (IS prefix). One configuration per V1 Service SID.
875
+ attr_accessor :service_id
876
+ def initialize(payload)
877
+ @service_id = payload["service_id"]
878
+ end
879
+ def to_json(options = {})
880
+ {
881
+ "serviceId": @service_id,
882
+ }.to_json(options)
883
+ end
884
+ end
885
+
886
+ class UpdateConfigurationRequest
887
+ # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
888
+ # @param [description]: [String] Human-readable description for the configuration.
889
+ # @param [conversation_grouping_type]: [String] Type of Conversation grouping strategy: - `GROUP_BY_PROFILE`: Groups Communications by resolved Profile from the Memory Store. A Profile is looked up or created for `CUSTOMER` Participant types. All Communications from the same Profile are in the same Conversation, regardless of address or channel. - `GROUP_BY_PARTICIPANT_ADDRESSES`: Groups Communications by Participant addresses across all channels. A customer using +18005550100 will be in the same Conversation whether they contact by SMS, WhatsApp, or RCS. - `GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPE`: Groups Communications by both Participant addresses AND channel. A customer using +18005550100 by SMS will be in a different Conversation than the same customer by Voice.
890
+ # @param [memory_store_id]: [String] The Memory Store ID for profile resolution.
891
+ # @param [channel_settings]: [Hash<String, UpdateConfigurationRequestChannelSettingsValue>]
892
+ # @param [status_callbacks]: [Array<ConfigurationList.UpdateConfigurationRequestStatusCallbacks>]
893
+ # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
894
+ # @param [memory_extraction_enabled]: [Boolean] Whether memory extraction is enabled for conversations under this configuration. Defaults to false.
895
+ # @param [conversations_v1_bridge]: [ConfigurationList.CreateConfigurationRequestConversationsV1Bridge]
896
+ attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled, :conversations_v1_bridge
897
+ def initialize(payload)
898
+ @display_name = payload["display_name"]
899
+ @description = payload["description"]
900
+ @conversation_grouping_type = payload["conversation_grouping_type"]
901
+ @memory_store_id = payload["memory_store_id"]
902
+ @channel_settings = payload["channel_settings"]
903
+ @status_callbacks = payload["status_callbacks"]
904
+ @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
905
+ @memory_extraction_enabled = payload["memory_extraction_enabled"]
906
+ @conversations_v1_bridge = payload["conversations_v1_bridge"]
907
+ end
908
+ def to_json(options = {})
909
+ {
910
+ "displayName": @display_name,
911
+ "description": @description,
912
+ "conversationGroupingType": @conversation_grouping_type,
913
+ "memoryStoreId": @memory_store_id,
914
+ "channelSettings": @channel_settings,
915
+ "statusCallbacks": @status_callbacks,
916
+ "intelligenceConfigurationIds": @intelligence_configuration_ids,
917
+ "memoryExtractionEnabled": @memory_extraction_enabled,
918
+ "conversationsV1Bridge": @conversations_v1_bridge,
426
919
  }.to_json(options)
427
920
  end
428
921
  end
@@ -703,16 +1196,16 @@ module Twilio
703
1196
  ##
704
1197
  # Initialize the ConfigurationContext
705
1198
  # @param [Version] version Version that contains the resource
706
- # @param [String] sid
1199
+ # @param [String] id
707
1200
  # @return [ConfigurationContext] ConfigurationContext
708
- def initialize(version, sid)
1201
+ def initialize(version, id)
709
1202
 
710
1203
  apiV1Version = ApiV1Version.new version.domain, version
711
1204
  super(apiV1Version)
712
1205
 
713
1206
  # Path Solution
714
- @solution = { sid: sid, }
715
- @uri = "/ControlPlane/Configurations/#{@solution[:sid]}"
1207
+ @solution = { id: id, }
1208
+ @uri = "/ControlPlane/Configurations/#{@solution[:id]}"
716
1209
 
717
1210
 
718
1211
  end
@@ -732,7 +1225,7 @@ module Twilio
732
1225
  ConfigurationInstance.new(
733
1226
  @version,
734
1227
  response.body,
735
- sid: @solution[:sid],
1228
+ id: @solution[:id],
736
1229
  )
737
1230
 
738
1231
  end
@@ -774,7 +1267,7 @@ module Twilio
774
1267
  ConfigurationInstance.new(
775
1268
  @version,
776
1269
  payload,
777
- sid: @solution[:sid],
1270
+ id: @solution[:id],
778
1271
  )
779
1272
  end
780
1273
 
@@ -793,7 +1286,61 @@ module Twilio
793
1286
  configuration_instance = ConfigurationInstance.new(
794
1287
  @version,
795
1288
  response.body,
796
- sid: @solution[:sid],
1289
+ id: @solution[:id],
1290
+ )
1291
+ ConfigurationInstanceMetadata.new(
1292
+ @version,
1293
+ configuration_instance,
1294
+ response.headers,
1295
+ response.status_code
1296
+ )
1297
+ end
1298
+
1299
+ ##
1300
+ # Patch the ConfigurationInstance
1301
+ # @param [String] idempotency_key Client-generated UUID key to ensure idempotent behavior. Submitting the same key returns the original response without creating a duplicate operation. Keys are scoped to account + region with a 24-hour TTL.
1302
+ # @param [PatchConfigurationRequest] patch_configuration_request The partial configuration update.
1303
+ # @return [ConfigurationInstance] Patched ConfigurationInstance
1304
+ def patch(
1305
+ idempotency_key: :unset,
1306
+ patch_configuration_request: :unset
1307
+ )
1308
+
1309
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', 'Idempotency-Key' => idempotency_key, })
1310
+ headers['Content-Type'] = 'application/json'
1311
+
1312
+
1313
+
1314
+
1315
+ payload = @version.patch('PATCH', @uri, headers: headers, data: patch_configuration_request.to_json)
1316
+ ConfigurationInstance.new(
1317
+ @version,
1318
+ payload,
1319
+ id: @solution[:id],
1320
+ )
1321
+ end
1322
+
1323
+ ##
1324
+ # Patch the ConfigurationInstanceMetadata
1325
+ # @param [String] idempotency_key Client-generated UUID key to ensure idempotent behavior. Submitting the same key returns the original response without creating a duplicate operation. Keys are scoped to account + region with a 24-hour TTL.
1326
+ # @param [PatchConfigurationRequest] patch_configuration_request The partial configuration update.
1327
+ # @return [ConfigurationInstance] Patchd ConfigurationInstance
1328
+ def patch_with_metadata(
1329
+ idempotency_key: :unset,
1330
+ patch_configuration_request: :unset
1331
+ )
1332
+
1333
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', 'Idempotency-Key' => idempotency_key, })
1334
+ headers['Content-Type'] = 'application/json'
1335
+
1336
+
1337
+
1338
+
1339
+ response = @version.patch_with_metadata('PATCH', @uri, headers: headers, data: patch_configuration_request.to_json)
1340
+ configuration_instance = ConfigurationInstance.new(
1341
+ @version,
1342
+ response.body,
1343
+ id: @solution[:id],
797
1344
  )
798
1345
  ConfigurationInstanceMetadata.new(
799
1346
  @version,
@@ -823,7 +1370,7 @@ module Twilio
823
1370
  ConfigurationInstance.new(
824
1371
  @version,
825
1372
  payload,
826
- sid: @solution[:sid],
1373
+ id: @solution[:id],
827
1374
  )
828
1375
  end
829
1376
 
@@ -847,7 +1394,7 @@ module Twilio
847
1394
  configuration_instance = ConfigurationInstance.new(
848
1395
  @version,
849
1396
  response.body,
850
- sid: @solution[:sid],
1397
+ id: @solution[:id],
851
1398
  )
852
1399
  ConfigurationInstanceMetadata.new(
853
1400
  @version,
@@ -1020,7 +1567,7 @@ module Twilio
1020
1567
  # resource.
1021
1568
  # @param [String] sid The SID of the Call resource to fetch.
1022
1569
  # @return [ConfigurationInstance] ConfigurationInstance
1023
- def initialize(version, payload , sid: nil)
1570
+ def initialize(version, payload , id: nil)
1024
1571
 
1025
1572
  apiV1Version = ApiV1Version.new version.domain, version
1026
1573
  super(apiV1Version)
@@ -1046,7 +1593,7 @@ module Twilio
1046
1593
 
1047
1594
  # Context
1048
1595
  @instance_context = nil
1049
- @params = { 'sid' => sid || @properties['sid'] , }
1596
+ @params = { 'id' => id || @properties['id'] , }
1050
1597
  end
1051
1598
 
1052
1599
  ##
@@ -1055,7 +1602,7 @@ module Twilio
1055
1602
  # @return [ConfigurationContext] CallContext for this CallInstance
1056
1603
  def context
1057
1604
  unless @instance_context
1058
- @instance_context = ConfigurationContext.new(@version , @params['sid'])
1605
+ @instance_context = ConfigurationContext.new(@version , @params['id'])
1059
1606
  end
1060
1607
  @instance_context
1061
1608
  end
@@ -1091,7 +1638,7 @@ module Twilio
1091
1638
  end
1092
1639
 
1093
1640
  ##
1094
- # @return [String] Type of Conversation grouping strategy: - `GROUP_BY_PROFILE`: Groups Communications by resolved Profile from the Memory Store. A Profile is looked up or created for `CUSTOMER` Participant types. All Communications from the same Profile are in the same Conversation, regardless of address or channel. - `GROUP_BY_PARTICIPANT_ADDRESSES`: Groups Communications by Participant addresses across all channels. A customer using +18005550100 will be in the same Conversation whether they contact by SMS, WhatsApp, or RCS. - `GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPE`: Groups Communications by both Participant addresses AND channel. A customer using +18005550100 by SMS will be in a different Conversation than the same customer by Voice.
1641
+ # @return [ConversationsV2ConversationGroupingType]
1095
1642
  def conversation_grouping_type
1096
1643
  @properties['conversation_grouping_type']
1097
1644
  end
@@ -1171,6 +1718,22 @@ module Twilio
1171
1718
  context.fetch
1172
1719
  end
1173
1720
 
1721
+ ##
1722
+ # Patch the ConfigurationInstance
1723
+ # @param [String] idempotency_key Client-generated UUID key to ensure idempotent behavior. Submitting the same key returns the original response without creating a duplicate operation. Keys are scoped to account + region with a 24-hour TTL.
1724
+ # @param [PatchConfigurationRequest] patch_configuration_request The partial configuration update.
1725
+ # @return [ConfigurationInstance] Patched ConfigurationInstance
1726
+ def patch(
1727
+ idempotency_key: :unset,
1728
+ patch_configuration_request: :unset
1729
+ )
1730
+
1731
+ context.patch(
1732
+ idempotency_key: idempotency_key,
1733
+ patch_configuration_request: patch_configuration_request,
1734
+ )
1735
+ end
1736
+
1174
1737
  ##
1175
1738
  # Update the ConfigurationInstance
1176
1739
  # @param [String] idempotency_key Client-generated UUID key to ensure idempotent behavior. Submitting the same key returns the original response without creating a duplicate operation. Keys are scoped to account + region with a 24-hour TTL.