twilio-ruby 7.11.1 → 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 (248) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +221 -0
  3. data/Gemfile.lock +2 -2
  4. data/README.md +2 -2
  5. data/lib/rack/twilio_webhook_authentication.rb +45 -2
  6. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +0 -59
  7. data/lib/twilio-ruby/rest/accounts/v1/bulk_consents.rb +0 -59
  8. data/lib/twilio-ruby/rest/accounts/v1/bulk_contacts.rb +0 -59
  9. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +0 -59
  10. data/lib/twilio-ruby/rest/accounts/v1/messaging_geopermissions.rb +0 -59
  11. data/lib/twilio-ruby/rest/accounts/v1/safelist.rb +0 -59
  12. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +0 -59
  13. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +0 -59
  14. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +0 -59
  15. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +0 -59
  16. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +0 -59
  17. data/lib/twilio-ruby/rest/api/v2010/account/call/transcription.rb +0 -59
  18. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +0 -59
  19. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +0 -59
  20. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +0 -59
  21. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +6 -0
  22. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +0 -59
  23. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +0 -59
  24. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload/data.rb +0 -59
  25. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls.rb +0 -59
  26. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations.rb +0 -59
  27. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +0 -59
  28. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +0 -59
  29. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +0 -59
  30. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +0 -59
  31. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +0 -59
  32. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +0 -59
  33. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +0 -59
  34. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +0 -59
  35. data/lib/twilio-ruby/rest/chat/v3/channel.rb +0 -59
  36. data/lib/twilio-ruby/rest/content/v1/content/approval_create.rb +0 -59
  37. data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +0 -59
  38. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +0 -59
  39. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +0 -59
  40. data/lib/twilio-ruby/rest/conversations/v1/conversation_with_participants.rb +0 -59
  41. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +0 -59
  42. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +0 -59
  43. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +0 -59
  44. data/lib/twilio-ruby/rest/conversations/v1/service/conversation_with_participants.rb +0 -59
  45. data/lib/twilio-ruby/rest/conversations/v2/action.rb +0 -59
  46. data/lib/twilio-ruby/rest/conversations/v2/configuration.rb +525 -0
  47. data/lib/twilio-ruby/rest/conversations/v2/operation.rb +0 -59
  48. data/lib/twilio-ruby/rest/conversations/v2.rb +10 -4
  49. data/lib/twilio-ruby/rest/events/v1/schema.rb +0 -59
  50. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +0 -59
  51. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +0 -59
  52. data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +12 -14
  53. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +0 -59
  54. data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +12 -14
  55. data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +12 -14
  56. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +12 -14
  57. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +2 -4
  58. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +12 -14
  59. data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +12 -14
  60. data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +0 -59
  61. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +0 -59
  62. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +0 -59
  63. data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +0 -59
  64. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_transfer.rb +0 -59
  65. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +0 -59
  66. data/lib/twilio-ruby/rest/flex_api/v1/plugin/plugin_versions.rb +2 -4
  67. data/lib/twilio-ruby/rest/flex_api/v1/plugin.rb +2 -4
  68. data/lib/twilio-ruby/rest/flex_api/v1/plugin_archive.rb +0 -59
  69. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration/configured_plugin.rb +2 -4
  70. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration.rb +2 -4
  71. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration_archive.rb +0 -59
  72. data/lib/twilio-ruby/rest/flex_api/v1/plugin_release.rb +2 -4
  73. data/lib/twilio-ruby/rest/flex_api/v1/plugin_version_archive.rb +0 -59
  74. data/lib/twilio-ruby/rest/flex_api/v1/provisioning_status.rb +0 -59
  75. data/lib/twilio-ruby/rest/flex_api/v2/flex_user.rb +0 -59
  76. data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +0 -59
  77. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +0 -59
  78. data/lib/twilio-ruby/rest/iam/v1/api_key.rb +0 -59
  79. data/lib/twilio-ruby/rest/iam/v1/new_api_key.rb +0 -59
  80. data/lib/twilio-ruby/rest/iam/v1/o_auth_app.rb +0 -59
  81. data/lib/twilio-ruby/rest/iam/v1/token.rb +0 -59
  82. data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +0 -59
  83. data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +0 -59
  84. data/lib/twilio-ruby/rest/insights/v1/call.rb +0 -59
  85. data/lib/twilio-ruby/rest/insights/v1/setting.rb +0 -59
  86. data/lib/twilio-ruby/rest/insights/v2/inbound.rb +2 -261
  87. data/lib/twilio-ruby/rest/insights/v2/inbound_report.rb +258 -0
  88. data/lib/twilio-ruby/rest/insights/v2/outbound.rb +18 -299
  89. data/lib/twilio-ruby/rest/insights/v2/outbound_report.rb +258 -0
  90. data/lib/twilio-ruby/rest/insights/v2/report.rb +27 -184
  91. data/lib/twilio-ruby/rest/insights/v2.rb +14 -4
  92. data/lib/twilio-ruby/rest/insights/v3/metadata.rb +1 -60
  93. data/lib/twilio-ruby/rest/insights/v3/query.rb +1 -60
  94. data/lib/twilio-ruby/rest/insights/v3/query_job.rb +654 -0
  95. data/lib/twilio-ruby/rest/insights/v3/result.rb +195 -0
  96. data/lib/twilio-ruby/rest/insights/v3.rb +17 -1
  97. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachment.rb +0 -59
  98. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachments.rb +0 -59
  99. data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_operator_results.rb +0 -59
  100. data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_sentences.rb +0 -59
  101. data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +0 -59
  102. data/lib/twilio-ruby/rest/intelligence/v3/rule_execution.rb +0 -59
  103. data/lib/twilio-ruby/rest/knowledge/v1/knowledge/knowledge_status.rb +0 -59
  104. data/lib/twilio-ruby/rest/knowledge/v2/operation.rb +0 -59
  105. data/lib/twilio-ruby/rest/knowledge/v2/search.rb +0 -59
  106. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +0 -59
  107. data/lib/twilio-ruby/rest/lookups/v2/bucket.rb +0 -59
  108. data/lib/twilio-ruby/rest/lookups/v2/lookup_override.rb +0 -59
  109. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +0 -59
  110. data/lib/twilio-ruby/rest/lookups/v2/query.rb +0 -59
  111. data/lib/twilio-ruby/rest/lookups/v2/rate_limit.rb +0 -59
  112. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_usage.rb +0 -59
  113. data/lib/twilio-ruby/rest/marketplace/v1/module_data.rb +0 -59
  114. data/lib/twilio-ruby/rest/marketplace/v1/module_data_management.rb +0 -59
  115. data/lib/twilio-ruby/rest/marketplace/v1/referral_conversion.rb +0 -59
  116. data/lib/twilio-ruby/rest/memory/v1/bulk.rb +0 -59
  117. data/lib/twilio-ruby/rest/memory/v1/conversation_summary.rb +2 -4
  118. data/lib/twilio-ruby/rest/memory/v1/identifier.rb +0 -80
  119. data/lib/twilio-ruby/rest/memory/v1/identity_resolution_setting.rb +0 -59
  120. data/lib/twilio-ruby/rest/memory/v1/lookup.rb +0 -59
  121. data/lib/twilio-ruby/rest/memory/v1/observation.rb +2 -4
  122. data/lib/twilio-ruby/rest/memory/v1/operation.rb +0 -59
  123. data/lib/twilio-ruby/rest/memory/v1/recall.rb +0 -59
  124. data/lib/twilio-ruby/rest/memory/v1/revision.rb +2 -4
  125. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +0 -59
  126. data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +0 -59
  127. data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +0 -59
  128. data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +0 -59
  129. data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +0 -59
  130. data/lib/twilio-ruby/rest/messaging/v1/domain_validate_dn.rb +0 -59
  131. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +0 -59
  132. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +0 -59
  133. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +0 -59
  134. data/lib/twilio-ruby/rest/messaging/v1/request_managed_cert.rb +0 -59
  135. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +2 -4
  136. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +0 -59
  137. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +0 -59
  138. data/lib/twilio-ruby/rest/messaging/v2/domain_certs.rb +0 -59
  139. data/lib/twilio-ruby/rest/messaging/v2/typing_indicator.rb +0 -59
  140. data/lib/twilio-ruby/rest/messaging/v3/typing_indicator.rb +0 -59
  141. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +0 -59
  142. data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +0 -59
  143. data/lib/twilio-ruby/rest/numbers/v1/eligibility.rb +0 -59
  144. data/lib/twilio-ruby/rest/numbers/v1/embedded_session.rb +0 -59
  145. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in.rb +0 -59
  146. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_phone_number.rb +0 -59
  147. data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +0 -59
  148. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration.rb +0 -59
  149. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_delete.rb +0 -59
  150. data/lib/twilio-ruby/rest/numbers/v1/sender_id_registration.rb +0 -59
  151. data/lib/twilio-ruby/rest/numbers/v1/sms_verification.rb +0 -59
  152. data/lib/twilio-ruby/rest/numbers/v1/sms_verification_check.rb +0 -59
  153. data/lib/twilio-ruby/rest/numbers/v1/voice_verification.rb +0 -59
  154. data/lib/twilio-ruby/rest/numbers/v1/voice_verification_check.rb +0 -59
  155. data/lib/twilio-ruby/rest/numbers/v1/webhook.rb +0 -59
  156. data/lib/twilio-ruby/rest/numbers/v2/bulk_hosted_number_order.rb +0 -59
  157. data/lib/twilio-ruby/rest/numbers/v2/bundle_clone.rb +0 -59
  158. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +0 -59
  159. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +0 -59
  160. data/lib/twilio-ruby/rest/numbers/v2.rb +0 -16
  161. data/lib/twilio-ruby/rest/numbers/v3/hosted_number_order.rb +0 -59
  162. data/lib/twilio-ruby/rest/oauth/v1/authorize.rb +0 -59
  163. data/lib/twilio-ruby/rest/oauth/v1/token.rb +0 -59
  164. data/lib/twilio-ruby/rest/oauth/v2/authorize.rb +0 -59
  165. data/lib/twilio-ruby/rest/oauth/v2/oauth_authorization_server.rb +0 -59
  166. data/lib/twilio-ruby/rest/oauth/v2/token.rb +2 -61
  167. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +0 -59
  168. data/lib/twilio-ruby/rest/preview_iam/v1/authorize.rb +0 -59
  169. data/lib/twilio-ruby/rest/preview_iam/v1/token.rb +0 -59
  170. data/lib/twilio-ruby/rest/preview_iam/versionless/organization.rb +0 -59
  171. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +0 -59
  172. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +0 -59
  173. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +0 -59
  174. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +0 -59
  175. data/lib/twilio-ruby/rest/pricing/v2/number.rb +0 -59
  176. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +0 -59
  177. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +0 -59
  178. data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +0 -59
  179. data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +0 -59
  180. data/lib/twilio-ruby/rest/routes/v2/trunk.rb +0 -59
  181. data/lib/twilio-ruby/rest/routes/v3/phone_number.rb +0 -59
  182. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +0 -59
  183. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +0 -59
  184. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +0 -59
  185. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +0 -59
  186. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +0 -59
  187. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +0 -59
  188. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +0 -59
  189. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +0 -59
  190. data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +0 -59
  191. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +0 -59
  192. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +0 -59
  193. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_bulk_real_time_statistics.rb +0 -59
  194. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +0 -59
  195. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +0 -59
  196. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +0 -59
  197. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +0 -59
  198. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +0 -59
  199. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +0 -59
  200. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +0 -59
  201. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +0 -59
  202. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +0 -59
  203. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +0 -59
  204. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +0 -59
  205. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +0 -59
  206. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +0 -59
  207. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +0 -59
  208. data/lib/twilio-ruby/rest/trusthub/v1/a2p_brand_registration.rb +0 -59
  209. data/lib/twilio-ruby/rest/trusthub/v1/a2p_brand_registration_embedded_session.rb +0 -59
  210. data/lib/twilio-ruby/rest/trusthub/v1/a2p_campaign_registration.rb +0 -59
  211. data/lib/twilio-ruby/rest/trusthub/v1/a2p_campaign_registration_embedded_session.rb +0 -59
  212. data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +0 -59
  213. data/lib/twilio-ruby/rest/trusthub/v1/compliance_registration_inquiries.rb +0 -59
  214. data/lib/twilio-ruby/rest/trusthub/v1/compliance_tollfree_inquiries.rb +0 -59
  215. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles_provisional_copy.rb +0 -59
  216. data/lib/twilio-ruby/rest/trusthub/v1/trust_products_provisional_copy.rb +0 -59
  217. data/lib/twilio-ruby/rest/verify/v2/form.rb +0 -59
  218. data/lib/twilio-ruby/rest/verify/v2/safelist.rb +0 -59
  219. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +0 -59
  220. data/lib/twilio-ruby/rest/verify/v2/service/approve_challenge.rb +0 -59
  221. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +0 -59
  222. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +0 -59
  223. data/lib/twilio-ruby/rest/verify/v2/service/new_challenge.rb +3 -62
  224. data/lib/twilio-ruby/rest/verify/v2/service/new_factor.rb +0 -59
  225. data/lib/twilio-ruby/rest/verify/v2/service/new_verify_factor.rb +0 -59
  226. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +8 -61
  227. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +0 -59
  228. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +0 -59
  229. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +0 -59
  230. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +0 -59
  231. data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +0 -59
  232. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +0 -59
  233. data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +0 -59
  234. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +0 -59
  235. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +0 -59
  236. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +0 -59
  237. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +0 -59
  238. data/lib/twilio-ruby/rest/voice/v2/account_default_configuration.rb +0 -59
  239. data/lib/twilio-ruby/rest/voice/v2/configuration/default.rb +0 -59
  240. data/lib/twilio-ruby/rest/voice/v2/configuration.rb +0 -59
  241. data/lib/twilio-ruby/rest/voice/v2/recording.rb +0 -59
  242. data/lib/twilio-ruby/rest/voice/v2/transcription.rb +0 -59
  243. data/lib/twilio-ruby/rest/voice/v2/type.rb +0 -59
  244. data/lib/twilio-ruby/rest/voice/v3/transcription.rb +259 -50
  245. data/lib/twilio-ruby/version.rb +1 -1
  246. metadata +6 -4
  247. data/lib/twilio-ruby/rest/memory/v1/event.rb +0 -320
  248. data/lib/twilio-ruby/rest/numbers/v2/caller_id.rb +0 -515
@@ -171,6 +171,395 @@ module Twilio
171
171
  end
172
172
  end
173
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
+
240
+ class UpdateConfigurationRequest
241
+ # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
242
+ # @param [description]: [String] Human-readable description for the configuration.
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.
244
+ # @param [memory_store_id]: [String] The Memory Store ID for profile resolution.
245
+ # @param [channel_settings]: [Hash<String, UpdateConfigurationRequestChannelSettingsValue>]
246
+ # @param [status_callbacks]: [Array<ConfigurationList.UpdateConfigurationRequestStatusCallbacks>]
247
+ # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
248
+ # @param [memory_extraction_enabled]: [Boolean] Whether memory extraction is enabled for conversations under this configuration. Defaults to false.
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
251
+ def initialize(payload)
252
+ @display_name = payload["display_name"]
253
+ @description = payload["description"]
254
+ @conversation_grouping_type = payload["conversation_grouping_type"]
255
+ @memory_store_id = payload["memory_store_id"]
256
+ @channel_settings = payload["channel_settings"]
257
+ @status_callbacks = payload["status_callbacks"]
258
+ @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
259
+ @memory_extraction_enabled = payload["memory_extraction_enabled"]
260
+ @conversations_v1_bridge = payload["conversations_v1_bridge"]
261
+ end
262
+ def to_json(options = {})
263
+ {
264
+ "displayName": @display_name,
265
+ "description": @description,
266
+ "conversationGroupingType": @conversation_grouping_type,
267
+ "memoryStoreId": @memory_store_id,
268
+ "channelSettings": @channel_settings,
269
+ "statusCallbacks": @status_callbacks,
270
+ "intelligenceConfigurationIds": @intelligence_configuration_ids,
271
+ "memoryExtractionEnabled": @memory_extraction_enabled,
272
+ "conversationsV1Bridge": @conversations_v1_bridge,
273
+ }.to_json(options)
274
+ end
275
+ end
276
+
277
+ class UpdateConfigurationRequestChannelSettingsValue
278
+ # @param [status_timeouts]: [UpdateConfigurationRequestChannelSettingsValueStatusTimeouts]
279
+ # @param [capture_rules]: [Array<UpdateConfigurationRequestChannelSettingsValueCaptureRules>]
280
+ attr_accessor :status_timeouts, :capture_rules
281
+ def initialize(payload)
282
+ @status_timeouts = payload["status_timeouts"]
283
+ @capture_rules = payload["capture_rules"]
284
+ end
285
+ def to_json(options = {})
286
+ {
287
+ "statusTimeouts": @status_timeouts,
288
+ "captureRules": @capture_rules,
289
+ }.to_json(options)
290
+ end
291
+ end
292
+
293
+ class UpdateConfigurationRequestChannelSettingsValueCaptureRules
294
+ # @param [from]: [String]
295
+ # @param [to]: [String]
296
+ # @param [metadata]: [Hash<String, String>]
297
+ attr_accessor :from, :to, :metadata
298
+ def initialize(payload)
299
+ @from = payload["from"]
300
+ @to = payload["to"]
301
+ @metadata = payload["metadata"]
302
+ end
303
+ def to_json(options = {})
304
+ {
305
+ "from": @from,
306
+ "to": @to,
307
+ "metadata": @metadata,
308
+ }.to_json(options)
309
+ end
310
+ end
311
+
312
+ class UpdateConfigurationRequestChannelSettingsValueStatusTimeouts
313
+ # @param [inactive]: [Integer]
314
+ # @param [closed]: [Integer]
315
+ attr_accessor :inactive, :closed
316
+ def initialize(payload)
317
+ @inactive = payload["inactive"]
318
+ @closed = payload["closed"]
319
+ end
320
+ def to_json(options = {})
321
+ {
322
+ "inactive": @inactive,
323
+ "closed": @closed,
324
+ }.to_json(options)
325
+ end
326
+ end
327
+
328
+ class UpdateConfigurationRequestStatusCallbacks
329
+ # @param [url]: [String]
330
+ # @param [method]: [String]
331
+ attr_accessor :url, :method
332
+ def initialize(payload)
333
+ @url = payload["url"]
334
+ @method = payload["method"]
335
+ end
336
+ def to_json(options = {})
337
+ {
338
+ "url": @url,
339
+ "method": @method,
340
+ }.to_json(options)
341
+ end
342
+ end
343
+
344
+
345
+ class ConversationsV2CaptureRule
346
+ # @param [from]: [String] The from address. Use `*` for wildcard to match any from address.
347
+ # @param [to]: [String] The to address. Use `*` for wildcard to match any to address.
348
+ # @param [metadata]: [Hash<String, String>] Additional matching criteria for the capture rule. For voice calls, can include `callType` (`PSTN`, `SIP`, and similar).
349
+ attr_accessor :from, :to, :metadata
350
+ def initialize(payload)
351
+ @from = payload["from"]
352
+ @to = payload["to"]
353
+ @metadata = payload["metadata"]
354
+ end
355
+ def to_json(options = {})
356
+ {
357
+ "from": @from,
358
+ "to": @to,
359
+ "metadata": @metadata,
360
+ }.to_json(options)
361
+ end
362
+ end
363
+
364
+ class ConversationsV2StatusTimeouts
365
+ # @param [inactive]: [Integer] Inactivity timeout in minutes.
366
+ # @param [closed]: [Integer] Close timeout in minutes.
367
+ attr_accessor :inactive, :closed
368
+ def initialize(payload)
369
+ @inactive = payload["inactive"]
370
+ @closed = payload["closed"]
371
+ end
372
+ def to_json(options = {})
373
+ {
374
+ "inactive": @inactive,
375
+ "closed": @closed,
376
+ }.to_json(options)
377
+ end
378
+ end
379
+
380
+ class CreateConfigurationRequest
381
+ # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
382
+ # @param [description]: [String] Human-readable description for the configuration.
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.
384
+ # @param [memory_store_id]: [String] The memory store ID that Conversation Orchestrator uses for profile resolution.
385
+ # @param [channel_settings]: [Hash<String, CreateConfigurationRequestChannelSettingsValue>]
386
+ # @param [status_callbacks]: [Array<ConfigurationList.CreateConfigurationRequestStatusCallbacks>] A list of webhook configurations.
387
+ # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
388
+ # @param [memory_extraction_enabled]: [Boolean] Whether memory extraction is enabled for conversations under this configuration. Defaults to false.
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
391
+ def initialize(payload)
392
+ @display_name = payload["display_name"]
393
+ @description = payload["description"]
394
+ @conversation_grouping_type = payload["conversation_grouping_type"]
395
+ @memory_store_id = payload["memory_store_id"]
396
+ @channel_settings = payload["channel_settings"]
397
+ @status_callbacks = payload["status_callbacks"]
398
+ @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
399
+ @memory_extraction_enabled = payload["memory_extraction_enabled"]
400
+ @conversations_v1_bridge = payload["conversations_v1_bridge"]
401
+ end
402
+ def to_json(options = {})
403
+ {
404
+ "displayName": @display_name,
405
+ "description": @description,
406
+ "conversationGroupingType": @conversation_grouping_type,
407
+ "memoryStoreId": @memory_store_id,
408
+ "channelSettings": @channel_settings,
409
+ "statusCallbacks": @status_callbacks,
410
+ "intelligenceConfigurationIds": @intelligence_configuration_ids,
411
+ "memoryExtractionEnabled": @memory_extraction_enabled,
412
+ "conversationsV1Bridge": @conversations_v1_bridge,
413
+ }.to_json(options)
414
+ end
415
+ end
416
+
417
+ class CreateConfigurationRequestChannelSettingsValue
418
+ # @param [status_timeouts]: [CreateConfigurationRequestChannelSettingsValueStatusTimeouts]
419
+ # @param [capture_rules]: [Array<CreateConfigurationRequestChannelSettingsValueCaptureRules>]
420
+ attr_accessor :status_timeouts, :capture_rules
421
+ def initialize(payload)
422
+ @status_timeouts = payload["status_timeouts"]
423
+ @capture_rules = payload["capture_rules"]
424
+ end
425
+ def to_json(options = {})
426
+ {
427
+ "statusTimeouts": @status_timeouts,
428
+ "captureRules": @capture_rules,
429
+ }.to_json(options)
430
+ end
431
+ end
432
+
433
+ class CreateConfigurationRequestChannelSettingsValueCaptureRules
434
+ # @param [from]: [String] The from address. Use '*' for wildcard.
435
+ # @param [to]: [String] The to address. Use '*' for wildcard.
436
+ # @param [metadata]: [Hash<String, String>]
437
+ attr_accessor :from, :to, :metadata
438
+ def initialize(payload)
439
+ @from = payload["from"]
440
+ @to = payload["to"]
441
+ @metadata = payload["metadata"]
442
+ end
443
+ def to_json(options = {})
444
+ {
445
+ "from": @from,
446
+ "to": @to,
447
+ "metadata": @metadata,
448
+ }.to_json(options)
449
+ end
450
+ end
451
+
452
+ class CreateConfigurationRequestChannelSettingsValueStatusTimeouts
453
+ # @param [inactive]: [Integer] The inactivity timeout in minutes. For more information, see [Conversation lifecycle](/docs/platform/conversations/concepts/lifecycle).
454
+ # @param [closed]: [Integer] The close timeout in minutes. For more information, see [Conversation lifecycle](/docs/platform/conversations/concepts/lifecycle).
455
+ attr_accessor :inactive, :closed
456
+ def initialize(payload)
457
+ @inactive = payload["inactive"]
458
+ @closed = payload["closed"]
459
+ end
460
+ def to_json(options = {})
461
+ {
462
+ "inactive": @inactive,
463
+ "closed": @closed,
464
+ }.to_json(options)
465
+ end
466
+ end
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
+
481
+ class CreateConfigurationRequestStatusCallbacks
482
+ # @param [url]: [String] The destination URL for webhooks.
483
+ # @param [method]: [String] The HTTP method used to invoke the webhook URL.
484
+ attr_accessor :url, :method
485
+ def initialize(payload)
486
+ @url = payload["url"]
487
+ @method = payload["method"]
488
+ end
489
+ def to_json(options = {})
490
+ {
491
+ "url": @url,
492
+ "method": @method,
493
+ }.to_json(options)
494
+ end
495
+ end
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
+
174
563
  class UpdateConfigurationRequest
175
564
  # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
176
565
  # @param [description]: [String] Human-readable description for the configuration.
@@ -428,6 +817,72 @@ module Twilio
428
817
  end
429
818
  end
430
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
+
431
886
  class UpdateConfigurationRequest
432
887
  # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
433
888
  # @param [description]: [String] Human-readable description for the configuration.
@@ -841,6 +1296,60 @@ module Twilio
841
1296
  )
842
1297
  end
843
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],
1344
+ )
1345
+ ConfigurationInstanceMetadata.new(
1346
+ @version,
1347
+ configuration_instance,
1348
+ response.headers,
1349
+ response.status_code
1350
+ )
1351
+ end
1352
+
844
1353
  ##
845
1354
  # Update the ConfigurationInstance
846
1355
  # @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.
@@ -1209,6 +1718,22 @@ module Twilio
1209
1718
  context.fetch
1210
1719
  end
1211
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
+
1212
1737
  ##
1213
1738
  # Update the ConfigurationInstance
1214
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.
@@ -197,65 +197,6 @@ module Twilio
197
197
  end
198
198
  end
199
199
 
200
- class OperationPageMetadata < PageMetadata
201
- attr_reader :operation_page
202
-
203
- def initialize(version, response, solution, limit)
204
- super(version, response)
205
- @operation_page = []
206
- @limit = limit
207
- key = get_key(response.body)
208
- records = 0
209
- while( limit != :unset && records < limit )
210
- @operation_page << OperationListResponse.new(version, @payload, key, limit - records)
211
- @payload = self.next_page
212
- break unless @payload
213
- records += (@payload.body[key] || []).size
214
- end
215
- # Path Solution
216
- @solution = solution
217
- end
218
-
219
- def each
220
- @operation_page.each do |record|
221
- yield record
222
- end
223
- end
224
-
225
- def to_s
226
- '<Twilio::REST::Conversations::V2PageMetadata>';
227
- end
228
- end
229
- class OperationListResponse < InstanceListResource
230
-
231
- # @param [Array<OperationInstance>] instance
232
- # @param [Hash{String => Object}] headers
233
- # @param [Integer] status_code
234
- def initialize(version, payload, key, limit = :unset)
235
- data_list = payload.body[key] || []
236
- if limit != :unset
237
- data_list = data_list[0, limit]
238
- end
239
- @operation = data_list.map do |data|
240
- OperationInstance.new(version, data)
241
- end
242
- @headers = payload.headers
243
- @status_code = payload.status_code
244
- end
245
-
246
- def operation
247
- @operation
248
- end
249
-
250
- def headers
251
- @headers
252
- end
253
-
254
- def status_code
255
- @status_code
256
- end
257
- end
258
-
259
200
  class OperationInstance < InstanceResource
260
201
  ##
261
202
  # Initialize the OperationInstance
@@ -31,17 +31,23 @@ module Twilio
31
31
 
32
32
  ##
33
33
  # @param [String] conversation_id
34
- # @return [Twilio::REST::Conversations::V2::ActionContext] if conversationId was passed.
34
+ # @param [String] action_id
35
+ # @return [Twilio::REST::Conversations::V2::ActionContext] if action_id was passed.
35
36
  # @return [Twilio::REST::Conversations::V2::ActionList]
36
- def actions(conversation_id=:unset)
37
+ def actions(conversation_id=:unset, action_id=:unset)
37
38
  if conversation_id.nil?
38
39
  raise ArgumentError, 'conversation_id cannot be nil'
39
40
  end
41
+ if action_id.nil?
42
+ raise ArgumentError, 'action_id cannot be nil'
43
+ end
40
44
 
41
- if conversation_id == :unset
45
+ if conversation_id == :unset && action_id == :unset
42
46
  @actions ||= ActionList.new self
47
+ elsif conversation_id != :unset && action_id == :unset
48
+ ActionList.new(self, conversation_id: conversation_id)
43
49
  else
44
- ActionContext.new(self, conversation_id)
50
+ ActionContext.new(self, conversation_id, action_id)
45
51
  end
46
52
  end
47
53
  ##