twilio-ruby 7.10.4 → 7.10.6

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 (639) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test-and-deploy.yml +1 -1
  3. data/CHANGES.md +166 -0
  4. data/README.md +2 -2
  5. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +2 -2
  6. data/lib/twilio-ruby/rest/accounts/v1/bulk_consents.rb +3 -3
  7. data/lib/twilio-ruby/rest/accounts/v1/bulk_contacts.rb +3 -3
  8. data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +18 -10
  9. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +18 -10
  10. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +2 -2
  11. data/lib/twilio-ruby/rest/accounts/v1/messaging_geopermissions.rb +4 -4
  12. data/lib/twilio-ruby/rest/accounts/v1/safelist.rb +5 -5
  13. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +2 -2
  14. data/lib/twilio-ruby/rest/accounts/v1.rb +11 -2
  15. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +13 -5
  16. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +41 -33
  17. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +61 -53
  18. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +13 -5
  19. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/local.rb +13 -5
  20. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/machine_to_machine.rb +13 -5
  21. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/mobile.rb +13 -5
  22. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/national.rb +13 -5
  23. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/shared_cost.rb +13 -5
  24. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/toll_free.rb +13 -5
  25. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/voip.rb +13 -5
  26. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country.rb +13 -5
  27. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +2 -2
  28. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +13 -5
  29. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +13 -5
  30. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +28 -28
  31. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +30 -16
  32. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +207 -207
  33. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +207 -207
  34. data/lib/twilio-ruby/rest/api/v2010/account/call/transcription.rb +27 -21
  35. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +4 -4
  36. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +5 -5
  37. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +73 -59
  38. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +93 -79
  39. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +17 -9
  40. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +19 -11
  41. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +29 -21
  42. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +13 -5
  43. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +14 -6
  44. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +36 -28
  45. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +36 -28
  46. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +36 -28
  47. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +83 -75
  48. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +15 -7
  49. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +3 -3
  50. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +13 -5
  51. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +47 -33
  52. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +3 -3
  53. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +3 -3
  54. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +13 -5
  55. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +15 -7
  56. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +17 -9
  57. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +19 -11
  58. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload/data.rb +2 -2
  59. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +13 -5
  60. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +13 -5
  61. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +13 -5
  62. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +15 -7
  63. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +25 -17
  64. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +15 -7
  65. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +17 -9
  66. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +16 -8
  67. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_credential_list_mapping.rb +14 -6
  68. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_ip_access_control_list_mapping.rb +14 -6
  69. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls.rb +2 -2
  70. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations/auth_registrations_credential_list_mapping.rb +14 -6
  71. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations.rb +2 -2
  72. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +2 -2
  73. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +14 -6
  74. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +14 -6
  75. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +52 -44
  76. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +22 -14
  77. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +16 -8
  78. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +2 -2
  79. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +3 -3
  80. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +13 -5
  81. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +13 -5
  82. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +13 -5
  83. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +13 -5
  84. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +13 -5
  85. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +13 -5
  86. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +13 -5
  87. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +13 -5
  88. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +13 -5
  89. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +13 -5
  90. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +26 -18
  91. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +2 -2
  92. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +8 -8
  93. data/lib/twilio-ruby/rest/api/v2010/account.rb +18 -10
  94. data/lib/twilio-ruby/rest/api/v2010.rb +1 -0
  95. data/lib/twilio-ruby/rest/assistants/v1/assistant/assistants_knowledge.rb +13 -5
  96. data/lib/twilio-ruby/rest/assistants/v1/assistant/assistants_tool.rb +13 -5
  97. data/lib/twilio-ruby/rest/assistants/v1/assistant/feedback.rb +13 -5
  98. data/lib/twilio-ruby/rest/assistants/v1/assistant/message.rb +2 -2
  99. data/lib/twilio-ruby/rest/assistants/v1/assistant.rb +14 -5
  100. data/lib/twilio-ruby/rest/assistants/v1/knowledge/chunk.rb +13 -5
  101. data/lib/twilio-ruby/rest/assistants/v1/knowledge/knowledge_status.rb +2 -2
  102. data/lib/twilio-ruby/rest/assistants/v1/knowledge.rb +14 -5
  103. data/lib/twilio-ruby/rest/assistants/v1/policy.rb +13 -5
  104. data/lib/twilio-ruby/rest/assistants/v1/session/message.rb +13 -5
  105. data/lib/twilio-ruby/rest/assistants/v1/session.rb +13 -5
  106. data/lib/twilio-ruby/rest/assistants/v1/tool.rb +14 -5
  107. data/lib/twilio-ruby/rest/assistants/v1.rb +4 -0
  108. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +13 -5
  109. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +19 -11
  110. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +2 -2
  111. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +2 -2
  112. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +8 -8
  113. data/lib/twilio-ruby/rest/bulkexports/v1.rb +2 -0
  114. data/lib/twilio-ruby/rest/chat/v1/credential.rb +32 -24
  115. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +15 -7
  116. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +19 -11
  117. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +20 -12
  118. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +23 -15
  119. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +18 -10
  120. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +13 -5
  121. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +23 -15
  122. data/lib/twilio-ruby/rest/chat/v1/service.rb +122 -114
  123. data/lib/twilio-ruby/rest/chat/v1.rb +2 -0
  124. data/lib/twilio-ruby/rest/chat/v2/credential.rb +32 -24
  125. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +13 -5
  126. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +15 -7
  127. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +37 -29
  128. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +37 -29
  129. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +32 -24
  130. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +37 -29
  131. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +18 -10
  132. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +13 -5
  133. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +21 -13
  134. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +26 -18
  135. data/lib/twilio-ruby/rest/chat/v2/service.rb +76 -68
  136. data/lib/twilio-ruby/rest/chat/v2.rb +2 -0
  137. data/lib/twilio-ruby/rest/chat/v3/channel.rb +8 -8
  138. data/lib/twilio-ruby/rest/chat/v3.rb +6 -0
  139. data/lib/twilio-ruby/rest/client.rb +5 -0
  140. data/lib/twilio-ruby/rest/content/v1/content/approval_create.rb +2 -2
  141. data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +2 -2
  142. data/lib/twilio-ruby/rest/content/v1/content.rb +14 -5
  143. data/lib/twilio-ruby/rest/content/v1/content_and_approvals.rb +13 -5
  144. data/lib/twilio-ruby/rest/content/v1/legacy_content.rb +13 -5
  145. data/lib/twilio-ruby/rest/content/v1.rb +1 -0
  146. data/lib/twilio-ruby/rest/content/v2/content.rb +13 -5
  147. data/lib/twilio-ruby/rest/content/v2/content_and_approvals.rb +13 -5
  148. data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +43 -35
  149. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +12 -12
  150. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +10 -10
  151. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +13 -5
  152. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +39 -31
  153. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +44 -36
  154. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +30 -22
  155. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +51 -43
  156. data/lib/twilio-ruby/rest/conversations/v1/conversation_with_participants.rb +15 -15
  157. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +34 -26
  158. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +13 -5
  159. data/lib/twilio-ruby/rest/conversations/v1/role.rb +18 -10
  160. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +13 -5
  161. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +28 -28
  162. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +10 -10
  163. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +10 -10
  164. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +13 -5
  165. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +39 -31
  166. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +44 -36
  167. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +30 -22
  168. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +51 -43
  169. data/lib/twilio-ruby/rest/conversations/v1/service/conversation_with_participants.rb +15 -15
  170. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +13 -5
  171. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +18 -10
  172. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +19 -11
  173. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +28 -20
  174. data/lib/twilio-ruby/rest/conversations/v1/service.rb +14 -6
  175. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +19 -11
  176. data/lib/twilio-ruby/rest/conversations/v1/user.rb +28 -20
  177. data/lib/twilio-ruby/rest/conversations/v1.rb +6 -0
  178. data/lib/twilio-ruby/rest/conversations/v2/communication.rb +698 -0
  179. data/lib/twilio-ruby/rest/conversations/v2/configuration.rb +1208 -0
  180. data/lib/twilio-ruby/rest/conversations/v2/conversation.rb +1365 -0
  181. data/lib/twilio-ruby/rest/conversations/v2/operation.rb +369 -0
  182. data/lib/twilio-ruby/rest/conversations/v2/participant.rb +745 -0
  183. data/lib/twilio-ruby/rest/conversations/v2.rb +126 -0
  184. data/lib/twilio-ruby/rest/conversations_base.rb +6 -1
  185. data/lib/twilio-ruby/rest/events/v1/event_type.rb +13 -5
  186. data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +13 -5
  187. data/lib/twilio-ruby/rest/events/v1/schema.rb +2 -2
  188. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +2 -2
  189. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +3 -3
  190. data/lib/twilio-ruby/rest/events/v1/sink.rb +18 -10
  191. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +17 -9
  192. data/lib/twilio-ruby/rest/events/v1/subscription.rb +18 -10
  193. data/lib/twilio-ruby/rest/events/v1.rb +4 -0
  194. data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +32 -24
  195. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +23 -15
  196. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +5 -4
  197. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +64 -56
  198. data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +20 -12
  199. data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +13 -5
  200. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +32 -24
  201. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +21 -13
  202. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +33 -25
  203. data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +13 -5
  204. data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +4 -4
  205. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +3 -3
  206. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +3 -3
  207. data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +4 -4
  208. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +14 -6
  209. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +18 -10
  210. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_transfer.rb +3 -2
  211. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +17 -9
  212. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +8 -8
  213. data/lib/twilio-ruby/rest/flex_api/v1/plugin/plugin_versions.rb +27 -19
  214. data/lib/twilio-ruby/rest/flex_api/v1/plugin.rb +25 -17
  215. data/lib/twilio-ruby/rest/flex_api/v1/plugin_archive.rb +4 -4
  216. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration/configured_plugin.rb +15 -7
  217. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration.rb +19 -11
  218. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration_archive.rb +4 -4
  219. data/lib/twilio-ruby/rest/flex_api/v1/plugin_release.rb +17 -9
  220. data/lib/twilio-ruby/rest/flex_api/v1/plugin_version_archive.rb +4 -4
  221. data/lib/twilio-ruby/rest/flex_api/v1/provisioning_status.rb +2 -2
  222. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +23 -15
  223. data/lib/twilio-ruby/rest/flex_api/v1.rb +19 -6
  224. data/lib/twilio-ruby/rest/flex_api/v2/flex_user.rb +8 -8
  225. data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +8 -8
  226. data/lib/twilio-ruby/rest/flex_api/v2.rb +6 -0
  227. data/lib/twilio-ruby/rest/flex_api_base.rb +6 -1
  228. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +10 -10
  229. data/lib/twilio-ruby/rest/frontline_api/v1.rb +1 -0
  230. data/lib/twilio-ruby/rest/iam/v1/api_key.rb +6 -6
  231. data/lib/twilio-ruby/rest/iam/v1/get_api_keys.rb +13 -5
  232. data/lib/twilio-ruby/rest/iam/v1/new_api_key.rb +6 -6
  233. data/lib/twilio-ruby/rest/iam/v1/o_auth_app.rb +3 -2
  234. data/lib/twilio-ruby/rest/iam/v1/role_permission.rb +327 -0
  235. data/lib/twilio-ruby/rest/iam/v1/token.rb +10 -10
  236. data/lib/twilio-ruby/rest/iam/v1.rb +17 -0
  237. data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +16 -16
  238. data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +14 -14
  239. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +17 -9
  240. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +13 -5
  241. data/lib/twilio-ruby/rest/insights/v1/call.rb +2 -2
  242. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +23 -15
  243. data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +17 -9
  244. data/lib/twilio-ruby/rest/insights/v1/conference.rb +13 -5
  245. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +13 -5
  246. data/lib/twilio-ruby/rest/insights/v1/room.rb +13 -5
  247. data/lib/twilio-ruby/rest/insights/v1/setting.rb +10 -10
  248. data/lib/twilio-ruby/rest/insights/v1.rb +3 -0
  249. data/lib/twilio-ruby/rest/insights/v2/inbound.rb +21 -12
  250. data/lib/twilio-ruby/rest/insights/v2/outbound.rb +21 -12
  251. data/lib/twilio-ruby/rest/insights/v2/report.rb +10 -9
  252. data/lib/twilio-ruby/rest/insights/v2.rb +3 -0
  253. data/lib/twilio-ruby/rest/insights/v3/metadata.rb +227 -0
  254. data/lib/twilio-ruby/rest/insights/v3/query.rb +394 -0
  255. data/lib/twilio-ruby/rest/insights/v3.rb +46 -0
  256. data/lib/twilio-ruby/rest/insights_base.rb +5 -0
  257. data/lib/twilio-ruby/rest/intelligence/v2/custom_operator.rb +22 -14
  258. data/lib/twilio-ruby/rest/intelligence/v2/operator.rb +13 -5
  259. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachment.rb +2 -2
  260. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachments.rb +2 -2
  261. data/lib/twilio-ruby/rest/intelligence/v2/operator_type.rb +13 -5
  262. data/lib/twilio-ruby/rest/intelligence/v2/prebuilt_operator.rb +13 -5
  263. data/lib/twilio-ruby/rest/intelligence/v2/service.rb +43 -35
  264. data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_operator_results.rb +4 -4
  265. data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_sentences.rb +4 -4
  266. data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +4 -4
  267. data/lib/twilio-ruby/rest/intelligence/v2/transcript/operator_result.rb +15 -7
  268. data/lib/twilio-ruby/rest/intelligence/v2/transcript/sentence.rb +13 -5
  269. data/lib/twilio-ruby/rest/intelligence/v2/transcript.rb +17 -9
  270. data/lib/twilio-ruby/rest/intelligence/v2.rb +13 -0
  271. data/lib/twilio-ruby/rest/intelligence/v3/configuration.rb +1073 -0
  272. data/lib/twilio-ruby/rest/intelligence/v3/conversation.rb +602 -0
  273. data/lib/twilio-ruby/rest/intelligence/v3/operator.rb +784 -0
  274. data/lib/twilio-ruby/rest/intelligence/v3/operator_result.rb +622 -0
  275. data/lib/twilio-ruby/rest/intelligence/v3/version.rb +556 -0
  276. data/lib/twilio-ruby/rest/intelligence/v3.rb +120 -0
  277. data/lib/twilio-ruby/rest/intelligence_base.rb +6 -1
  278. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +32 -24
  279. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +15 -7
  280. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +19 -11
  281. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +20 -12
  282. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +23 -15
  283. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +18 -10
  284. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +13 -5
  285. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +23 -15
  286. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +122 -114
  287. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +2 -0
  288. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +32 -24
  289. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +13 -5
  290. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +15 -7
  291. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +37 -29
  292. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +37 -29
  293. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +32 -24
  294. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +37 -29
  295. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +18 -10
  296. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +13 -5
  297. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +19 -11
  298. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +26 -18
  299. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +76 -68
  300. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +2 -0
  301. data/lib/twilio-ruby/rest/knowledge/v1/knowledge/chunk.rb +13 -5
  302. data/lib/twilio-ruby/rest/knowledge/v1/knowledge/knowledge_status.rb +2 -2
  303. data/lib/twilio-ruby/rest/knowledge/v1/knowledge.rb +14 -5
  304. data/lib/twilio-ruby/rest/knowledge/v1.rb +1 -0
  305. data/lib/twilio-ruby/rest/knowledge/v2/chunk.rb +306 -0
  306. data/lib/twilio-ruby/rest/knowledge/v2/knowledge.rb +714 -0
  307. data/lib/twilio-ruby/rest/knowledge/v2/knowledge_basis.rb +739 -0
  308. data/lib/twilio-ruby/rest/knowledge/v2/operation.rb +376 -0
  309. data/lib/twilio-ruby/rest/knowledge/v2/search.rb +355 -0
  310. data/lib/twilio-ruby/rest/knowledge/v2.rb +145 -0
  311. data/lib/twilio-ruby/rest/knowledge_base.rb +6 -1
  312. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +10 -10
  313. data/lib/twilio-ruby/rest/lookups/v1.rb +1 -0
  314. data/lib/twilio-ruby/rest/lookups/v2/bucket.rb +3 -2
  315. data/lib/twilio-ruby/rest/lookups/v2/lookup_override.rb +4 -2
  316. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +32 -32
  317. data/lib/twilio-ruby/rest/lookups/v2/query.rb +2 -2
  318. data/lib/twilio-ruby/rest/lookups/v2/rate_limit.rb +3 -3
  319. data/lib/twilio-ruby/rest/lookups/v2.rb +13 -0
  320. data/lib/twilio-ruby/rest/marketplace/v1/available_add_on/available_add_on_extension.rb +13 -5
  321. data/lib/twilio-ruby/rest/marketplace/v1/available_add_on.rb +13 -5
  322. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_extension.rb +15 -7
  323. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_usage.rb +2 -2
  324. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on.rb +21 -13
  325. data/lib/twilio-ruby/rest/marketplace/v1/module_data.rb +4 -4
  326. data/lib/twilio-ruby/rest/marketplace/v1/module_data_management.rb +16 -16
  327. data/lib/twilio-ruby/rest/marketplace/v1/referral_conversion.rb +2 -2
  328. data/lib/twilio-ruby/rest/marketplace/v1.rb +3 -0
  329. data/lib/twilio-ruby/rest/{flex_api/v1/create_flex_instance.rb → memory/v1/bulk.rb} +104 -124
  330. data/lib/twilio-ruby/rest/memory/v1/conversation_summary.rb +798 -0
  331. data/lib/twilio-ruby/rest/memory/v1/data_mapping.rb +843 -0
  332. data/lib/twilio-ruby/rest/memory/v1/event.rb +320 -0
  333. data/lib/twilio-ruby/rest/memory/v1/identifier.rb +710 -0
  334. data/lib/twilio-ruby/rest/memory/v1/identity_resolution_setting.rb +442 -0
  335. data/lib/twilio-ruby/rest/memory/v1/import.rb +574 -0
  336. data/lib/twilio-ruby/rest/memory/v1/lookup.rb +250 -0
  337. data/lib/twilio-ruby/rest/memory/v1/observation.rb +786 -0
  338. data/lib/twilio-ruby/rest/memory/v1/operation.rb +376 -0
  339. data/lib/twilio-ruby/rest/memory/v1/profile.rb +636 -0
  340. data/lib/twilio-ruby/rest/memory/v1/recall.rb +366 -0
  341. data/lib/twilio-ruby/rest/memory/v1/revision.rb +349 -0
  342. data/lib/twilio-ruby/rest/memory/v1/store.rb +701 -0
  343. data/lib/twilio-ruby/rest/memory/v1/trait.rb +336 -0
  344. data/lib/twilio-ruby/rest/memory/v1/trait_group.rb +904 -0
  345. data/lib/twilio-ruby/rest/memory/v1.rb +475 -0
  346. data/lib/twilio-ruby/rest/memory.rb +6 -0
  347. data/lib/twilio-ruby/rest/memory_base.rb +38 -0
  348. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +2 -2
  349. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_vetting.rb +15 -7
  350. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +18 -10
  351. data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +4 -4
  352. data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +4 -4
  353. data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +10 -10
  354. data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +2 -2
  355. data/lib/twilio-ruby/rest/messaging/v1/domain_validate_dn.rb +2 -2
  356. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +5 -5
  357. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +2 -2
  358. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +2 -2
  359. data/lib/twilio-ruby/rest/messaging/v1/request_managed_cert.rb +2 -2
  360. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +14 -6
  361. data/lib/twilio-ruby/rest/messaging/v1/service/channel_sender.rb +14 -6
  362. data/lib/twilio-ruby/rest/messaging/v1/service/destination_alpha_sender.rb +15 -7
  363. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +14 -6
  364. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +14 -6
  365. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +54 -46
  366. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +3 -3
  367. data/lib/twilio-ruby/rest/messaging/v1/service.rb +61 -53
  368. data/lib/twilio-ruby/rest/messaging/v1/tollfree_verification.rb +120 -112
  369. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +2 -2
  370. data/lib/twilio-ruby/rest/messaging/v1.rb +15 -0
  371. data/lib/twilio-ruby/rest/messaging/v2/channels_sender.rb +22 -7
  372. data/lib/twilio-ruby/rest/messaging/v2/domain_certs.rb +2 -2
  373. data/lib/twilio-ruby/rest/messaging/v2/typing_indicator.rb +4 -4
  374. data/lib/twilio-ruby/rest/messaging/v2.rb +2 -0
  375. data/lib/twilio-ruby/rest/messaging/v3/typing_indicator.rb +247 -0
  376. data/lib/twilio-ruby/rest/messaging/v3.rb +40 -0
  377. data/lib/twilio-ruby/rest/messaging_base.rb +5 -0
  378. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +13 -5
  379. data/lib/twilio-ruby/rest/monitor/v1/event.rb +13 -5
  380. data/lib/twilio-ruby/rest/monitor/v1.rb +2 -0
  381. data/lib/twilio-ruby/rest/notify/v1/credential.rb +32 -24
  382. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +20 -12
  383. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +20 -20
  384. data/lib/twilio-ruby/rest/notify/v1/service.rb +55 -47
  385. data/lib/twilio-ruby/rest/notify/v1.rb +2 -0
  386. data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +2 -2
  387. data/lib/twilio-ruby/rest/numbers/v1/eligibility.rb +2 -2
  388. data/lib/twilio-ruby/rest/numbers/v1/embedded_session.rb +2 -2
  389. data/lib/twilio-ruby/rest/numbers/v1/porting_all_port_in.rb +13 -5
  390. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in.rb +2 -2
  391. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_phone_number.rb +2 -2
  392. data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +6 -6
  393. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration.rb +2 -2
  394. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_delete.rb +2 -2
  395. data/lib/twilio-ruby/rest/numbers/v1/sender_id_registration.rb +2 -2
  396. data/lib/twilio-ruby/rest/numbers/v1/signing_request_configuration.rb +13 -5
  397. data/lib/twilio-ruby/rest/numbers/v1/webhook.rb +2 -2
  398. data/lib/twilio-ruby/rest/numbers/v1.rb +21 -2
  399. data/lib/twilio-ruby/rest/numbers/v2/application.rb +13 -5
  400. data/lib/twilio-ruby/rest/numbers/v2/authorization_document/dependent_hosted_number_order.rb +13 -5
  401. data/lib/twilio-ruby/rest/numbers/v2/authorization_document.rb +19 -11
  402. data/lib/twilio-ruby/rest/numbers/v2/bulk_hosted_number_order.rb +4 -4
  403. data/lib/twilio-ruby/rest/numbers/v2/bundle_clone.rb +8 -8
  404. data/lib/twilio-ruby/rest/numbers/v2/hosted_number_order.rb +35 -27
  405. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +14 -6
  406. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +13 -5
  407. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +14 -6
  408. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +3 -3
  409. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +29 -21
  410. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +20 -12
  411. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +13 -5
  412. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +15 -7
  413. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +20 -12
  414. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +13 -5
  415. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +2 -2
  416. data/lib/twilio-ruby/rest/numbers/v2.rb +5 -0
  417. data/lib/twilio-ruby/rest/numbers/v3/hosted_number_order.rb +19 -19
  418. data/lib/twilio-ruby/rest/oauth/v1/authorize.rb +7 -7
  419. data/lib/twilio-ruby/rest/oauth/v1/token.rb +10 -10
  420. data/lib/twilio-ruby/rest/oauth/v2/authorize.rb +7 -7
  421. data/lib/twilio-ruby/rest/oauth/v2/token.rb +11 -11
  422. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +13 -5
  423. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +33 -25
  424. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +50 -42
  425. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +2 -0
  426. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +13 -5
  427. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +13 -5
  428. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +15 -7
  429. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +21 -13
  430. data/lib/twilio-ruby/rest/preview/marketplace.rb +2 -0
  431. data/lib/twilio-ruby/rest/preview/wireless/command.rb +20 -12
  432. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +27 -19
  433. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +6 -6
  434. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +45 -37
  435. data/lib/twilio-ruby/rest/preview/wireless.rb +3 -0
  436. data/lib/twilio-ruby/rest/preview_iam/v1/authorize.rb +7 -7
  437. data/lib/twilio-ruby/rest/preview_iam/v1/token.rb +10 -10
  438. data/lib/twilio-ruby/rest/preview_iam/versionless/organization/account.rb +13 -5
  439. data/lib/twilio-ruby/rest/preview_iam/versionless/organization/role_assignment.rb +54 -10
  440. data/lib/twilio-ruby/rest/preview_iam/versionless/organization/user.rb +27 -11
  441. data/lib/twilio-ruby/rest/preview_iam/versionless/organization.rb +2 -2
  442. data/lib/twilio-ruby/rest/preview_iam/versionless.rb +1 -0
  443. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +13 -5
  444. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +2 -2
  445. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +13 -5
  446. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +2 -2
  447. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +13 -5
  448. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +2 -2
  449. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +2 -2
  450. data/lib/twilio-ruby/rest/pricing/v1.rb +22 -4
  451. data/lib/twilio-ruby/rest/pricing/v2/country.rb +13 -5
  452. data/lib/twilio-ruby/rest/pricing/v2/number.rb +4 -4
  453. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +13 -5
  454. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +4 -4
  455. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +2 -2
  456. data/lib/twilio-ruby/rest/pricing/v2.rb +13 -2
  457. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +18 -10
  458. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +13 -5
  459. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +15 -7
  460. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +17 -9
  461. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +25 -17
  462. data/lib/twilio-ruby/rest/proxy/v1/service.rb +37 -29
  463. data/lib/twilio-ruby/rest/proxy/v1.rb +1 -0
  464. data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +6 -6
  465. data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +6 -6
  466. data/lib/twilio-ruby/rest/routes/v2/trunk.rb +6 -6
  467. data/lib/twilio-ruby/rest/routes/v2.rb +3 -0
  468. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +13 -5
  469. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +16 -8
  470. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +2 -2
  471. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +17 -9
  472. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +15 -7
  473. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +13 -5
  474. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +19 -11
  475. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +15 -7
  476. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +2 -2
  477. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +13 -5
  478. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +16 -8
  479. data/lib/twilio-ruby/rest/serverless/v1/service.rb +23 -15
  480. data/lib/twilio-ruby/rest/serverless/v1.rb +1 -0
  481. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +2 -2
  482. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +2 -2
  483. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +13 -5
  484. data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +16 -8
  485. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +2 -2
  486. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +2 -2
  487. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +13 -5
  488. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +18 -10
  489. data/lib/twilio-ruby/rest/studio/v1/flow.rb +13 -5
  490. data/lib/twilio-ruby/rest/studio/v1.rb +1 -0
  491. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +2 -2
  492. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +2 -2
  493. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +13 -5
  494. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +37 -14
  495. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +13 -5
  496. data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +4 -4
  497. data/lib/twilio-ruby/rest/studio/v2/flow.rb +42 -19
  498. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +6 -6
  499. data/lib/twilio-ruby/rest/studio/v2.rb +1 -0
  500. data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +17 -9
  501. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +36 -28
  502. data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +19 -11
  503. data/lib/twilio-ruby/rest/supersim/v1/network.rb +13 -5
  504. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +14 -6
  505. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +17 -9
  506. data/lib/twilio-ruby/rest/supersim/v1/settings_update.rb +13 -5
  507. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +13 -5
  508. data/lib/twilio-ruby/rest/supersim/v1/sim/sim_ip_address.rb +13 -5
  509. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +27 -19
  510. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +17 -9
  511. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +13 -5
  512. data/lib/twilio-ruby/rest/supersim/v1.rb +7 -0
  513. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +19 -11
  514. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +22 -14
  515. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +29 -21
  516. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +19 -11
  517. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +20 -12
  518. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +30 -22
  519. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +19 -11
  520. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +20 -12
  521. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +3 -3
  522. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +17 -9
  523. data/lib/twilio-ruby/rest/sync/v1/service.rb +34 -26
  524. data/lib/twilio-ruby/rest/sync/v1.rb +1 -0
  525. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +17 -9
  526. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +13 -5
  527. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +123 -115
  528. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +38 -30
  529. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +20 -12
  530. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_bulk_real_time_statistics.rb +2 -2
  531. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +12 -12
  532. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +4 -4
  533. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +12 -12
  534. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +13 -5
  535. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +31 -23
  536. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +119 -111
  537. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +17 -9
  538. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +10 -10
  539. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +10 -10
  540. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +4 -4
  541. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +16 -16
  542. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +28 -20
  543. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +12 -12
  544. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +4 -4
  545. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +12 -12
  546. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +30 -22
  547. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +12 -12
  548. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +4 -4
  549. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +12 -12
  550. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +33 -25
  551. data/lib/twilio-ruby/rest/taskrouter/v1.rb +1 -0
  552. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +14 -6
  553. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +14 -6
  554. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +28 -20
  555. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +14 -6
  556. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +6 -6
  557. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +37 -29
  558. data/lib/twilio-ruby/rest/trunking/v1.rb +1 -0
  559. data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +9 -9
  560. data/lib/twilio-ruby/rest/trusthub/v1/compliance_registration_inquiries.rb +45 -45
  561. data/lib/twilio-ruby/rest/trusthub/v1/compliance_tollfree_inquiries.rb +40 -40
  562. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +15 -7
  563. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +14 -6
  564. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +14 -6
  565. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +25 -17
  566. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +20 -12
  567. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +13 -5
  568. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +13 -5
  569. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +20 -12
  570. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +13 -5
  571. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +15 -7
  572. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +14 -6
  573. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +14 -6
  574. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +25 -17
  575. data/lib/twilio-ruby/rest/trusthub/v1.rb +9 -0
  576. data/lib/twilio-ruby/rest/verify/v2/form.rb +2 -2
  577. data/lib/twilio-ruby/rest/verify/v2/safelist.rb +3 -3
  578. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +6 -6
  579. data/lib/twilio-ruby/rest/verify/v2/service/approve_challenge.rb +9 -9
  580. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +3 -3
  581. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +23 -15
  582. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +31 -23
  583. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +16 -16
  584. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +14 -6
  585. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +17 -9
  586. data/lib/twilio-ruby/rest/verify/v2/service/new_challenge.rb +10 -9
  587. data/lib/twilio-ruby/rest/verify/v2/service/new_factor.rb +2 -2
  588. data/lib/twilio-ruby/rest/verify/v2/service/new_verify_factor.rb +2 -2
  589. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +19 -11
  590. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +17 -9
  591. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +24 -24
  592. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +8 -8
  593. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +40 -32
  594. data/lib/twilio-ruby/rest/verify/v2/service.rb +91 -83
  595. data/lib/twilio-ruby/rest/verify/v2/template.rb +13 -5
  596. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +13 -5
  597. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +14 -14
  598. data/lib/twilio-ruby/rest/verify/v2.rb +4 -0
  599. data/lib/twilio-ruby/rest/video/v1/composition.rb +22 -14
  600. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +43 -35
  601. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +14 -14
  602. data/lib/twilio-ruby/rest/video/v1/recording.rb +13 -5
  603. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +14 -14
  604. data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +2 -2
  605. data/lib/twilio-ruby/rest/video/v1/room/participant/published_track.rb +13 -5
  606. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +3 -3
  607. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribed_track.rb +13 -5
  608. data/lib/twilio-ruby/rest/video/v1/room/participant.rb +15 -7
  609. data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +3 -3
  610. data/lib/twilio-ruby/rest/video/v1/room/room_recording.rb +13 -5
  611. data/lib/twilio-ruby/rest/video/v1/room/transcriptions.rb +18 -10
  612. data/lib/twilio-ruby/rest/video/v1/room.rb +32 -24
  613. data/lib/twilio-ruby/rest/video/v1.rb +4 -0
  614. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +2 -2
  615. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +43 -35
  616. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +28 -20
  617. data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +16 -8
  618. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +3 -3
  619. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +13 -5
  620. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +13 -5
  621. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +4 -4
  622. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +2 -2
  623. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +18 -10
  624. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +17 -9
  625. data/lib/twilio-ruby/rest/voice/v1.rb +10 -0
  626. data/lib/twilio-ruby/rest/voice/v3/transcription.rb +514 -0
  627. data/lib/twilio-ruby/rest/voice/v3.rb +50 -0
  628. data/lib/twilio-ruby/rest/voice_base.rb +6 -1
  629. data/lib/twilio-ruby/rest/wireless/v1/command.rb +20 -12
  630. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +29 -21
  631. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +13 -5
  632. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +13 -5
  633. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +49 -41
  634. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +13 -5
  635. data/lib/twilio-ruby/rest/wireless/v1.rb +3 -0
  636. data/lib/twilio-ruby/twiml/voice_response.rb +20 -11
  637. data/lib/twilio-ruby/version.rb +1 -1
  638. data/twilio-ruby.gemspec +1 -1
  639. metadata +49 -5
@@ -0,0 +1,1208 @@
1
+ ##
2
+ # This code was generated by
3
+ # ___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
4
+ # | | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
5
+ # | |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
6
+ #
7
+ # Conversation Orchestrator
8
+ # Manage configurations, conversations, participants, and communications. Create configurations to define capture rules and channel settings, then use conversations to group related communications.
9
+ #
10
+ # NOTE: This class is auto generated by OpenAPI Generator.
11
+ # https://openapi-generator.tech
12
+ # Do not edit the class manually.
13
+ #
14
+
15
+
16
+ module Twilio
17
+ module REST
18
+ class Conversations < ConversationsBase
19
+ class V2 < Version
20
+ class ConfigurationList < ListResource
21
+
22
+ class ConversationsV2CaptureRule
23
+ # @param [from]: [String] The from address. Use `*` for wildcard to match any from address.
24
+ # @param [to]: [String] The to address. Use `*` for wildcard to match any to address.
25
+ # @param [metadata]: [Hash<String, String>] Additional matching criteria for the capture rule. For voice calls, can include `callType` (`PSTN`, `SIP`, and similar).
26
+ attr_accessor :from, :to, :metadata
27
+ def initialize(payload)
28
+ @from = payload["from"]
29
+ @to = payload["to"]
30
+ @metadata = payload["metadata"]
31
+ end
32
+ def to_json(options = {})
33
+ {
34
+ "from": @from,
35
+ "to": @to,
36
+ "metadata": @metadata,
37
+ }.to_json(options)
38
+ end
39
+ end
40
+
41
+ class ConversationsV2StatusTimeouts
42
+ # @param [inactive]: [Integer] Inactivity timeout in minutes.
43
+ # @param [closed]: [Integer] Close timeout in minutes.
44
+ attr_accessor :inactive, :closed
45
+ def initialize(payload)
46
+ @inactive = payload["inactive"]
47
+ @closed = payload["closed"]
48
+ end
49
+ def to_json(options = {})
50
+ {
51
+ "inactive": @inactive,
52
+ "closed": @closed,
53
+ }.to_json(options)
54
+ end
55
+ end
56
+
57
+ class CreateConfigurationRequest
58
+ # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
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.
61
+ # @param [memory_store_id]: [String] The memory store ID that Conversation Orchestrator uses for profile resolution.
62
+ # @param [channel_settings]: [Hash<String, CreateConfigurationRequestChannelSettingsValue>]
63
+ # @param [status_callbacks]: [Array<ConfigurationList.CreateConfigurationRequestStatusCallbacks>] A list of webhook configurations.
64
+ # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
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
67
+ def initialize(payload)
68
+ @display_name = payload["display_name"]
69
+ @description = payload["description"]
70
+ @conversation_grouping_type = payload["conversation_grouping_type"]
71
+ @memory_store_id = payload["memory_store_id"]
72
+ @channel_settings = payload["channel_settings"]
73
+ @status_callbacks = payload["status_callbacks"]
74
+ @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
75
+ @memory_extraction_enabled = payload["memory_extraction_enabled"]
76
+ end
77
+ def to_json(options = {})
78
+ {
79
+ "displayName": @display_name,
80
+ "description": @description,
81
+ "conversationGroupingType": @conversation_grouping_type,
82
+ "memoryStoreId": @memory_store_id,
83
+ "channelSettings": @channel_settings,
84
+ "statusCallbacks": @status_callbacks,
85
+ "intelligenceConfigurationIds": @intelligence_configuration_ids,
86
+ "memoryExtractionEnabled": @memory_extraction_enabled,
87
+ }.to_json(options)
88
+ end
89
+ end
90
+
91
+ class CreateConfigurationRequestChannelSettingsValue
92
+ # @param [status_timeouts]: [CreateConfigurationRequestChannelSettingsValueStatusTimeouts]
93
+ # @param [capture_rules]: [Array<CreateConfigurationRequestChannelSettingsValueCaptureRules>]
94
+ attr_accessor :status_timeouts, :capture_rules
95
+ def initialize(payload)
96
+ @status_timeouts = payload["status_timeouts"]
97
+ @capture_rules = payload["capture_rules"]
98
+ end
99
+ def to_json(options = {})
100
+ {
101
+ "statusTimeouts": @status_timeouts,
102
+ "captureRules": @capture_rules,
103
+ }.to_json(options)
104
+ end
105
+ end
106
+
107
+ class CreateConfigurationRequestChannelSettingsValueCaptureRules
108
+ # @param [from]: [String] The from address. Use '*' for wildcard.
109
+ # @param [to]: [String] The to address. Use '*' for wildcard.
110
+ # @param [metadata]: [Hash<String, String>]
111
+ attr_accessor :from, :to, :metadata
112
+ def initialize(payload)
113
+ @from = payload["from"]
114
+ @to = payload["to"]
115
+ @metadata = payload["metadata"]
116
+ end
117
+ def to_json(options = {})
118
+ {
119
+ "from": @from,
120
+ "to": @to,
121
+ "metadata": @metadata,
122
+ }.to_json(options)
123
+ end
124
+ end
125
+
126
+ class CreateConfigurationRequestChannelSettingsValueStatusTimeouts
127
+ # @param [inactive]: [Integer] The inactivity timeout in minutes. For more information, see [Conversation lifecycle](/docs/platform/conversations/concepts/lifecycle).
128
+ # @param [closed]: [Integer] The close timeout in minutes. For more information, see [Conversation lifecycle](/docs/platform/conversations/concepts/lifecycle).
129
+ attr_accessor :inactive, :closed
130
+ def initialize(payload)
131
+ @inactive = payload["inactive"]
132
+ @closed = payload["closed"]
133
+ end
134
+ def to_json(options = {})
135
+ {
136
+ "inactive": @inactive,
137
+ "closed": @closed,
138
+ }.to_json(options)
139
+ end
140
+ end
141
+
142
+ class CreateConfigurationRequestStatusCallbacks
143
+ # @param [url]: [String] The destination URL for webhooks.
144
+ # @param [method]: [String] The HTTP method used to invoke the webhook URL.
145
+ attr_accessor :url, :method
146
+ def initialize(payload)
147
+ @url = payload["url"]
148
+ @method = payload["method"]
149
+ end
150
+ def to_json(options = {})
151
+ {
152
+ "url": @url,
153
+ "method": @method,
154
+ }.to_json(options)
155
+ end
156
+ end
157
+
158
+ class UpdateConfigurationRequest
159
+ # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
160
+ # @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.
162
+ # @param [memory_store_id]: [String] The Memory Store ID for profile resolution.
163
+ # @param [channel_settings]: [Hash<String, UpdateConfigurationRequestChannelSettingsValue>]
164
+ # @param [status_callbacks]: [Array<ConfigurationList.UpdateConfigurationRequestStatusCallbacks>]
165
+ # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
166
+ # @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
168
+ def initialize(payload)
169
+ @display_name = payload["display_name"]
170
+ @description = payload["description"]
171
+ @conversation_grouping_type = payload["conversation_grouping_type"]
172
+ @memory_store_id = payload["memory_store_id"]
173
+ @channel_settings = payload["channel_settings"]
174
+ @status_callbacks = payload["status_callbacks"]
175
+ @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
176
+ @memory_extraction_enabled = payload["memory_extraction_enabled"]
177
+ end
178
+ def to_json(options = {})
179
+ {
180
+ "displayName": @display_name,
181
+ "description": @description,
182
+ "conversationGroupingType": @conversation_grouping_type,
183
+ "memoryStoreId": @memory_store_id,
184
+ "channelSettings": @channel_settings,
185
+ "statusCallbacks": @status_callbacks,
186
+ "intelligenceConfigurationIds": @intelligence_configuration_ids,
187
+ "memoryExtractionEnabled": @memory_extraction_enabled,
188
+ }.to_json(options)
189
+ end
190
+ end
191
+
192
+ class UpdateConfigurationRequestChannelSettingsValue
193
+ # @param [status_timeouts]: [UpdateConfigurationRequestChannelSettingsValueStatusTimeouts]
194
+ # @param [capture_rules]: [Array<UpdateConfigurationRequestChannelSettingsValueCaptureRules>]
195
+ attr_accessor :status_timeouts, :capture_rules
196
+ def initialize(payload)
197
+ @status_timeouts = payload["status_timeouts"]
198
+ @capture_rules = payload["capture_rules"]
199
+ end
200
+ def to_json(options = {})
201
+ {
202
+ "statusTimeouts": @status_timeouts,
203
+ "captureRules": @capture_rules,
204
+ }.to_json(options)
205
+ end
206
+ end
207
+
208
+ class UpdateConfigurationRequestChannelSettingsValueCaptureRules
209
+ # @param [from]: [String]
210
+ # @param [to]: [String]
211
+ # @param [metadata]: [Hash<String, String>]
212
+ attr_accessor :from, :to, :metadata
213
+ def initialize(payload)
214
+ @from = payload["from"]
215
+ @to = payload["to"]
216
+ @metadata = payload["metadata"]
217
+ end
218
+ def to_json(options = {})
219
+ {
220
+ "from": @from,
221
+ "to": @to,
222
+ "metadata": @metadata,
223
+ }.to_json(options)
224
+ end
225
+ end
226
+
227
+ class UpdateConfigurationRequestChannelSettingsValueStatusTimeouts
228
+ # @param [inactive]: [Integer]
229
+ # @param [closed]: [Integer]
230
+ attr_accessor :inactive, :closed
231
+ def initialize(payload)
232
+ @inactive = payload["inactive"]
233
+ @closed = payload["closed"]
234
+ end
235
+ def to_json(options = {})
236
+ {
237
+ "inactive": @inactive,
238
+ "closed": @closed,
239
+ }.to_json(options)
240
+ end
241
+ end
242
+
243
+ class UpdateConfigurationRequestStatusCallbacks
244
+ # @param [url]: [String]
245
+ # @param [method]: [String]
246
+ attr_accessor :url, :method
247
+ def initialize(payload)
248
+ @url = payload["url"]
249
+ @method = payload["method"]
250
+ end
251
+ def to_json(options = {})
252
+ {
253
+ "url": @url,
254
+ "method": @method,
255
+ }.to_json(options)
256
+ end
257
+ end
258
+
259
+
260
+ class ConversationsV2CaptureRule
261
+ # @param [from]: [String] The from address. Use `*` for wildcard to match any from address.
262
+ # @param [to]: [String] The to address. Use `*` for wildcard to match any to address.
263
+ # @param [metadata]: [Hash<String, String>] Additional matching criteria for the capture rule. For voice calls, can include `callType` (`PSTN`, `SIP`, and similar).
264
+ attr_accessor :from, :to, :metadata
265
+ def initialize(payload)
266
+ @from = payload["from"]
267
+ @to = payload["to"]
268
+ @metadata = payload["metadata"]
269
+ end
270
+ def to_json(options = {})
271
+ {
272
+ "from": @from,
273
+ "to": @to,
274
+ "metadata": @metadata,
275
+ }.to_json(options)
276
+ end
277
+ end
278
+
279
+ class ConversationsV2StatusTimeouts
280
+ # @param [inactive]: [Integer] Inactivity timeout in minutes.
281
+ # @param [closed]: [Integer] Close timeout in minutes.
282
+ attr_accessor :inactive, :closed
283
+ def initialize(payload)
284
+ @inactive = payload["inactive"]
285
+ @closed = payload["closed"]
286
+ end
287
+ def to_json(options = {})
288
+ {
289
+ "inactive": @inactive,
290
+ "closed": @closed,
291
+ }.to_json(options)
292
+ end
293
+ end
294
+
295
+ class CreateConfigurationRequest
296
+ # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
297
+ # @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.
299
+ # @param [memory_store_id]: [String] The memory store ID that Conversation Orchestrator uses for profile resolution.
300
+ # @param [channel_settings]: [Hash<String, CreateConfigurationRequestChannelSettingsValue>]
301
+ # @param [status_callbacks]: [Array<ConfigurationList.CreateConfigurationRequestStatusCallbacks>] A list of webhook configurations.
302
+ # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
303
+ # @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
305
+ def initialize(payload)
306
+ @display_name = payload["display_name"]
307
+ @description = payload["description"]
308
+ @conversation_grouping_type = payload["conversation_grouping_type"]
309
+ @memory_store_id = payload["memory_store_id"]
310
+ @channel_settings = payload["channel_settings"]
311
+ @status_callbacks = payload["status_callbacks"]
312
+ @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
313
+ @memory_extraction_enabled = payload["memory_extraction_enabled"]
314
+ end
315
+ def to_json(options = {})
316
+ {
317
+ "displayName": @display_name,
318
+ "description": @description,
319
+ "conversationGroupingType": @conversation_grouping_type,
320
+ "memoryStoreId": @memory_store_id,
321
+ "channelSettings": @channel_settings,
322
+ "statusCallbacks": @status_callbacks,
323
+ "intelligenceConfigurationIds": @intelligence_configuration_ids,
324
+ "memoryExtractionEnabled": @memory_extraction_enabled,
325
+ }.to_json(options)
326
+ end
327
+ end
328
+
329
+ class CreateConfigurationRequestChannelSettingsValue
330
+ # @param [status_timeouts]: [CreateConfigurationRequestChannelSettingsValueStatusTimeouts]
331
+ # @param [capture_rules]: [Array<CreateConfigurationRequestChannelSettingsValueCaptureRules>]
332
+ attr_accessor :status_timeouts, :capture_rules
333
+ def initialize(payload)
334
+ @status_timeouts = payload["status_timeouts"]
335
+ @capture_rules = payload["capture_rules"]
336
+ end
337
+ def to_json(options = {})
338
+ {
339
+ "statusTimeouts": @status_timeouts,
340
+ "captureRules": @capture_rules,
341
+ }.to_json(options)
342
+ end
343
+ end
344
+
345
+ class CreateConfigurationRequestChannelSettingsValueCaptureRules
346
+ # @param [from]: [String] The from address. Use '*' for wildcard.
347
+ # @param [to]: [String] The to address. Use '*' for wildcard.
348
+ # @param [metadata]: [Hash<String, String>]
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 CreateConfigurationRequestChannelSettingsValueStatusTimeouts
365
+ # @param [inactive]: [Integer] The inactivity timeout in minutes. For more information, see [Conversation lifecycle](/docs/platform/conversations/concepts/lifecycle).
366
+ # @param [closed]: [Integer] The close timeout in minutes. For more information, see [Conversation lifecycle](/docs/platform/conversations/concepts/lifecycle).
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 CreateConfigurationRequestStatusCallbacks
381
+ # @param [url]: [String] The destination URL for webhooks.
382
+ # @param [method]: [String] The HTTP method used to invoke the webhook URL.
383
+ attr_accessor :url, :method
384
+ def initialize(payload)
385
+ @url = payload["url"]
386
+ @method = payload["method"]
387
+ end
388
+ def to_json(options = {})
389
+ {
390
+ "url": @url,
391
+ "method": @method,
392
+ }.to_json(options)
393
+ end
394
+ end
395
+
396
+ class UpdateConfigurationRequest
397
+ # @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
398
+ # @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.
400
+ # @param [memory_store_id]: [String] The Memory Store ID for profile resolution.
401
+ # @param [channel_settings]: [Hash<String, UpdateConfigurationRequestChannelSettingsValue>]
402
+ # @param [status_callbacks]: [Array<ConfigurationList.UpdateConfigurationRequestStatusCallbacks>]
403
+ # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
404
+ # @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
406
+ def initialize(payload)
407
+ @display_name = payload["display_name"]
408
+ @description = payload["description"]
409
+ @conversation_grouping_type = payload["conversation_grouping_type"]
410
+ @memory_store_id = payload["memory_store_id"]
411
+ @channel_settings = payload["channel_settings"]
412
+ @status_callbacks = payload["status_callbacks"]
413
+ @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
414
+ @memory_extraction_enabled = payload["memory_extraction_enabled"]
415
+ end
416
+ def to_json(options = {})
417
+ {
418
+ "displayName": @display_name,
419
+ "description": @description,
420
+ "conversationGroupingType": @conversation_grouping_type,
421
+ "memoryStoreId": @memory_store_id,
422
+ "channelSettings": @channel_settings,
423
+ "statusCallbacks": @status_callbacks,
424
+ "intelligenceConfigurationIds": @intelligence_configuration_ids,
425
+ "memoryExtractionEnabled": @memory_extraction_enabled,
426
+ }.to_json(options)
427
+ end
428
+ end
429
+
430
+ class UpdateConfigurationRequestChannelSettingsValue
431
+ # @param [status_timeouts]: [UpdateConfigurationRequestChannelSettingsValueStatusTimeouts]
432
+ # @param [capture_rules]: [Array<UpdateConfigurationRequestChannelSettingsValueCaptureRules>]
433
+ attr_accessor :status_timeouts, :capture_rules
434
+ def initialize(payload)
435
+ @status_timeouts = payload["status_timeouts"]
436
+ @capture_rules = payload["capture_rules"]
437
+ end
438
+ def to_json(options = {})
439
+ {
440
+ "statusTimeouts": @status_timeouts,
441
+ "captureRules": @capture_rules,
442
+ }.to_json(options)
443
+ end
444
+ end
445
+
446
+ class UpdateConfigurationRequestChannelSettingsValueCaptureRules
447
+ # @param [from]: [String]
448
+ # @param [to]: [String]
449
+ # @param [metadata]: [Hash<String, String>]
450
+ attr_accessor :from, :to, :metadata
451
+ def initialize(payload)
452
+ @from = payload["from"]
453
+ @to = payload["to"]
454
+ @metadata = payload["metadata"]
455
+ end
456
+ def to_json(options = {})
457
+ {
458
+ "from": @from,
459
+ "to": @to,
460
+ "metadata": @metadata,
461
+ }.to_json(options)
462
+ end
463
+ end
464
+
465
+ class UpdateConfigurationRequestChannelSettingsValueStatusTimeouts
466
+ # @param [inactive]: [Integer]
467
+ # @param [closed]: [Integer]
468
+ attr_accessor :inactive, :closed
469
+ def initialize(payload)
470
+ @inactive = payload["inactive"]
471
+ @closed = payload["closed"]
472
+ end
473
+ def to_json(options = {})
474
+ {
475
+ "inactive": @inactive,
476
+ "closed": @closed,
477
+ }.to_json(options)
478
+ end
479
+ end
480
+
481
+ class UpdateConfigurationRequestStatusCallbacks
482
+ # @param [url]: [String]
483
+ # @param [method]: [String]
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
+
498
+ ##
499
+ # Initialize the ConfigurationList
500
+ # @param [Version] version Version that contains the resource
501
+ # @return [ConfigurationList] ConfigurationList
502
+ def initialize(version)
503
+
504
+ apiV1Version = ApiV1Version.new version.domain, version
505
+ super(apiV1Version)
506
+ # Path Solution
507
+ @solution = { }
508
+ @uri = "/ControlPlane/Configurations"
509
+
510
+ end
511
+ ##
512
+ # Create the ConfigurationInstance
513
+ # @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.
514
+ # @param [CreateConfigurationRequest] create_configuration_request The configuration to create
515
+ # @return [ConfigurationInstance] Created ConfigurationInstance
516
+ def create(
517
+ idempotency_key: :unset,
518
+ create_configuration_request: :unset
519
+ )
520
+
521
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', 'Idempotency-Key' => idempotency_key, })
522
+ headers['Content-Type'] = 'application/json'
523
+
524
+
525
+
526
+
527
+ payload = @version.create('POST', @uri, headers: headers, data: create_configuration_request.to_json)
528
+ ConfigurationInstance.new(
529
+ @version,
530
+ payload,
531
+ )
532
+ end
533
+
534
+ ##
535
+ # Create the ConfigurationInstanceMetadata
536
+ # @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.
537
+ # @param [CreateConfigurationRequest] create_configuration_request The configuration to create
538
+ # @return [ConfigurationInstance] Created ConfigurationInstance
539
+ def create_with_metadata(
540
+ idempotency_key: :unset,
541
+ create_configuration_request: :unset
542
+ )
543
+
544
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', 'Idempotency-Key' => idempotency_key, })
545
+ headers['Content-Type'] = 'application/json'
546
+
547
+
548
+
549
+
550
+ response = @version.create_with_metadata('POST', @uri, headers: headers, data: create_configuration_request.to_json)
551
+ configuration_instance = ConfigurationInstance.new(
552
+ @version,
553
+ response.body,
554
+ )
555
+ ConfigurationInstanceMetadata.new(
556
+ @version,
557
+ configuration_instance,
558
+ response.headers,
559
+ response.status_code
560
+ )
561
+ end
562
+
563
+
564
+ ##
565
+ # Lists ConfigurationInstance records from the API as a list.
566
+ # Unlike stream(), this operation is eager and will load `limit` records into
567
+ # memory before returning.
568
+ # @param [String] page_token A URL-safe, base64-encoded token representing the page of results to return
569
+ # @param [String] memory_store_id Filter configurations by Memory Store ID
570
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
571
+ # guarantees to never return more than limit. Default is no limit
572
+ # @param [Integer] page_size Number of records to fetch per request, when
573
+ # not set will use the default value of 50 records. If no page_size is defined
574
+ # but a limit is defined, stream() will attempt to read the limit with the most
575
+ # efficient page size, i.e. min(limit, 1000)
576
+ # @return [Array] Array of up to limit results
577
+ def list(page_token: :unset, memory_store_id: :unset, limit: nil, page_size: nil)
578
+ self.stream(
579
+ page_token: page_token,
580
+ memory_store_id: memory_store_id,
581
+ limit: limit,
582
+ page_size: page_size
583
+ ).entries
584
+ end
585
+
586
+ ##
587
+ # Streams Instance records from the API as an Enumerable.
588
+ # This operation lazily loads records as efficiently as possible until the limit
589
+ # is reached.
590
+ # @param [String] page_token A URL-safe, base64-encoded token representing the page of results to return
591
+ # @param [String] memory_store_id Filter configurations by Memory Store ID
592
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
593
+ # guarantees to never return more than limit. Default is no limit
594
+ # @param [Integer] page_size Number of records to fetch per request, when
595
+ # not set will use the default value of 50 records. If no page_size is defined
596
+ # but a limit is defined, stream() will attempt to read the limit with the most
597
+ # efficient page size, i.e. min(limit, 1000)
598
+ # @return [Enumerable] Enumerable that will yield up to limit results
599
+ def stream(page_token: :unset, memory_store_id: :unset, limit: nil, page_size: nil)
600
+ limits = @version.read_limits(limit, page_size)
601
+
602
+ page = self.page(
603
+ page_token: page_token,
604
+ memory_store_id: memory_store_id,
605
+ page_size: limits[:page_size], )
606
+
607
+ return [].each if page.nil?
608
+
609
+ result = @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
610
+ return [].each if result.nil?
611
+ result
612
+ end
613
+
614
+ ##
615
+ # Lists ConfigurationPageMetadata records from the API as a list.
616
+ # @param [String] page_token A URL-safe, base64-encoded token representing the page of results to return
617
+ # @param [String] memory_store_id Filter configurations by Memory Store ID
618
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
619
+ # guarantees to never return more than limit. Default is no limit
620
+ # @param [Integer] page_size Number of records to fetch per request, when
621
+ # not set will use the default value of 50 records. If no page_size is defined
622
+ # but a limit is defined, stream() will attempt to read the limit with the most
623
+ # efficient page size, i.e. min(limit, 1000)
624
+ # @return [Array] Array of up to limit results
625
+ def list_with_metadata(page_token: :unset, memory_store_id: :unset, limit: nil, page_size: nil)
626
+ limits = @version.read_limits(limit, page_size)
627
+ params = Twilio::Values.of({
628
+ 'pageToken' => page_token,
629
+ 'memoryStoreId' => memory_store_id,
630
+
631
+ 'PageSize' => limits[:page_size],
632
+ });
633
+ headers = Twilio::Values.of({})
634
+
635
+ response = @version.page('GET', @uri, params: params, headers: headers)
636
+
637
+ ConfigurationPageMetadata.new(@version, response, @solution, limits[:limit])
638
+ end
639
+
640
+ ##
641
+ # When passed a block, yields ConfigurationInstance records from the API.
642
+ # This operation lazily loads records as efficiently as possible until the limit
643
+ # is reached.
644
+ def each
645
+ limits = @version.read_limits
646
+
647
+ page = self.page(page_size: limits[:page_size], )
648
+
649
+ return [].each if page.nil?
650
+
651
+ result = @version.stream(page,
652
+ limit: limits[:limit],
653
+ page_limit: limits[:page_limit])
654
+ return [].each if result.nil?
655
+ result.each {|x| yield x}
656
+ end
657
+
658
+ ##
659
+ # Retrieve a single page of ConfigurationInstance records from the API.
660
+ # Request is executed immediately.
661
+ # @param [String] page_token A URL-safe, base64-encoded token representing the page of results to return
662
+ # @param [String] memory_store_id Filter configurations by Memory Store ID
663
+
664
+ # @return [Page] Page of ConfigurationInstance
665
+ def page(page_token: :unset, memory_store_id: :unset, page_size: :unset)
666
+ params = Twilio::Values.of({
667
+ 'pageToken' => page_token,
668
+ 'memoryStoreId' => memory_store_id,
669
+ 'PageSize' => page_size,
670
+ })
671
+ headers = Twilio::Values.of({})
672
+
673
+
674
+
675
+ response = @version.page('GET', @uri, params: params, headers: headers)
676
+
677
+ ConfigurationPage.new(@version, response, @solution)
678
+ end
679
+
680
+ ##
681
+ # Retrieve a single page of ConfigurationInstance records from the API.
682
+ # Request is executed immediately.
683
+ # @param [String] target_url API-generated URL for the requested results page
684
+ # @return [Page] Page of ConfigurationInstance
685
+ def get_page(target_url)
686
+ response = @version.domain.request(
687
+ 'GET',
688
+ target_url
689
+ )
690
+ ConfigurationPage.new(@version, response, @solution)
691
+ end
692
+
693
+
694
+
695
+ # Provide a user friendly representation
696
+ def to_s
697
+ '#<Twilio.Conversations.V2.ConfigurationList>'
698
+ end
699
+ end
700
+
701
+
702
+ class ConfigurationContext < InstanceContext
703
+ ##
704
+ # Initialize the ConfigurationContext
705
+ # @param [Version] version Version that contains the resource
706
+ # @param [String] sid
707
+ # @return [ConfigurationContext] ConfigurationContext
708
+ def initialize(version, sid)
709
+
710
+ apiV1Version = ApiV1Version.new version.domain, version
711
+ super(apiV1Version)
712
+
713
+ # Path Solution
714
+ @solution = { sid: sid, }
715
+ @uri = "/ControlPlane/Configurations/#{@solution[:sid]}"
716
+
717
+
718
+ end
719
+ ##
720
+ # Delete the ConfigurationInstance
721
+ # @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.
722
+ # @return [Boolean] True if delete succeeds, false otherwise
723
+ def delete(
724
+ idempotency_key: :unset
725
+ )
726
+
727
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', 'Idempotency-Key' => idempotency_key, })
728
+
729
+
730
+
731
+ response = @version.delete_with_metadata('DELETE', @uri, headers: headers)
732
+ ConfigurationInstance.new(
733
+ @version,
734
+ response.body,
735
+ sid: @solution[:sid],
736
+ )
737
+
738
+ end
739
+
740
+ ##
741
+ # Delete the ConfigurationInstanceMetadata
742
+ # @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.
743
+ # @return [Boolean] True if delete succeeds, false otherwise
744
+ def delete_with_metadata(
745
+ idempotency_key: :unset
746
+ )
747
+
748
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', 'Idempotency-Key' => idempotency_key, })
749
+
750
+
751
+
752
+ response = @version.delete_with_metadata('DELETE', @uri, headers: headers)
753
+ configuration_instance = ConfigurationInstance.new(
754
+ @version,
755
+ response.body,
756
+ account_sid: @solution[:account_sid],
757
+ sid: @solution[:sid],
758
+ )
759
+ ConfigurationInstanceMetadata.new(@version, configuration_instance, response.headers, response.status_code)
760
+ end
761
+
762
+ ##
763
+ # Fetch the ConfigurationInstance
764
+ # @return [ConfigurationInstance] Fetched ConfigurationInstance
765
+ def fetch
766
+
767
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
768
+
769
+
770
+
771
+
772
+
773
+ payload = @version.fetch('GET', @uri, headers: headers)
774
+ ConfigurationInstance.new(
775
+ @version,
776
+ payload,
777
+ sid: @solution[:sid],
778
+ )
779
+ end
780
+
781
+ ##
782
+ # Fetch the ConfigurationInstanceMetadata
783
+ # @return [ConfigurationInstance] Fetched ConfigurationInstance
784
+ def fetch_with_metadata
785
+
786
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
787
+
788
+
789
+
790
+
791
+
792
+ response = @version.fetch_with_metadata('GET', @uri, headers: headers)
793
+ configuration_instance = ConfigurationInstance.new(
794
+ @version,
795
+ response.body,
796
+ sid: @solution[:sid],
797
+ )
798
+ ConfigurationInstanceMetadata.new(
799
+ @version,
800
+ configuration_instance,
801
+ response.headers,
802
+ response.status_code
803
+ )
804
+ end
805
+
806
+ ##
807
+ # Update the ConfigurationInstance
808
+ # @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.
809
+ # @param [UpdateConfigurationRequest] update_configuration_request The configuration to update
810
+ # @return [ConfigurationInstance] Updated ConfigurationInstance
811
+ def update(
812
+ idempotency_key: :unset,
813
+ update_configuration_request: :unset
814
+ )
815
+
816
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', 'Idempotency-Key' => idempotency_key, })
817
+ headers['Content-Type'] = 'application/json'
818
+
819
+
820
+
821
+
822
+ payload = @version.update('PUT', @uri, headers: headers, data: update_configuration_request.to_json)
823
+ ConfigurationInstance.new(
824
+ @version,
825
+ payload,
826
+ sid: @solution[:sid],
827
+ )
828
+ end
829
+
830
+ ##
831
+ # Update the ConfigurationInstanceMetadata
832
+ # @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.
833
+ # @param [UpdateConfigurationRequest] update_configuration_request The configuration to update
834
+ # @return [ConfigurationInstance] Updated ConfigurationInstance
835
+ def update_with_metadata(
836
+ idempotency_key: :unset,
837
+ update_configuration_request: :unset
838
+ )
839
+
840
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', 'Idempotency-Key' => idempotency_key, })
841
+ headers['Content-Type'] = 'application/json'
842
+
843
+
844
+
845
+
846
+ response = @version.update_with_metadata('PUT', @uri, headers: headers, data: update_configuration_request.to_json)
847
+ configuration_instance = ConfigurationInstance.new(
848
+ @version,
849
+ response.body,
850
+ sid: @solution[:sid],
851
+ )
852
+ ConfigurationInstanceMetadata.new(
853
+ @version,
854
+ configuration_instance,
855
+ response.headers,
856
+ response.status_code
857
+ )
858
+ end
859
+
860
+
861
+ ##
862
+ # Provide a user friendly representation
863
+ def to_s
864
+ context = @solution.map{|k, v| "#{k}: #{v}"}.join(',')
865
+ "#<Twilio.Conversations.V2.ConfigurationContext #{context}>"
866
+ end
867
+
868
+ ##
869
+ # Provide a detailed, user friendly representation
870
+ def inspect
871
+ context = @solution.map{|k, v| "#{k}: #{v}"}.join(',')
872
+ "#<Twilio.Conversations.V2.ConfigurationContext #{context}>"
873
+ end
874
+ end
875
+
876
+ class ConfigurationInstanceMetadata < InstanceResourceMetadata
877
+ ##
878
+ # Initializes a new ConfigurationInstanceMetadata.
879
+ # @param [Version] version Version that contains the resource
880
+ # @param [}ConfigurationInstance] configuration_instance The instance associated with the metadata.
881
+ # @param [Hash] headers Header object with response headers.
882
+ # @param [Integer] status_code The HTTP status code of the response.
883
+ # @return [ConfigurationInstanceMetadata] The initialized instance with metadata.
884
+ def initialize(version, configuration_instance, headers, status_code)
885
+ super(version, headers, status_code)
886
+ @configuration_instance = configuration_instance
887
+ end
888
+
889
+ def configuration
890
+ @configuration_instance
891
+ end
892
+
893
+ def headers
894
+ @headers
895
+ end
896
+
897
+ def status_code
898
+ @status_code
899
+ end
900
+
901
+ def to_s
902
+ "<Twilio.Api.V2010.ConfigurationInstanceMetadata status=#{@status_code}>"
903
+ end
904
+ end
905
+
906
+ class ConfigurationListResponse < InstanceListResource
907
+ # @param [Array<ConfigurationInstance>] instance
908
+ # @param [Hash{String => Object}] headers
909
+ # @param [Integer] status_code
910
+ def initialize(version, payload, key)
911
+ @configuration_instance = payload.body[key].map do |data|
912
+ ConfigurationInstance.new(version, data)
913
+ end
914
+ @headers = payload.headers
915
+ @status_code = payload.status_code
916
+ end
917
+
918
+ def configuration_instance
919
+ @instance
920
+ end
921
+ end
922
+
923
+ class ConfigurationPage < TokenPage
924
+ ##
925
+ # Initialize the ConfigurationPage
926
+ # @param [Version] version Version that contains the resource
927
+ # @param [Response] response Response from the API
928
+ # @param [Hash] solution Path solution for the resource
929
+ # @return [ConfigurationPage] ConfigurationPage
930
+ def initialize(version, response, solution)
931
+
932
+ apiV1Version = ApiV1Version.new version.domain, version
933
+ super(apiV1Version, response)
934
+
935
+ # Path Solution
936
+ @solution = solution
937
+ end
938
+
939
+ ##
940
+ # Build an instance of ConfigurationInstance
941
+ # @param [Hash] payload Payload response from the API
942
+ # @return [ConfigurationInstance] ConfigurationInstance
943
+ def get_instance(payload)
944
+ ConfigurationInstance.new(@version, payload)
945
+ end
946
+
947
+ ##
948
+ # Provide a user friendly representation
949
+ def to_s
950
+ '<Twilio.Conversations.V2.ConfigurationPage>'
951
+ end
952
+ end
953
+
954
+ class ConfigurationPageMetadata < PageMetadata
955
+ attr_reader :configuration_page
956
+
957
+ def initialize(version, response, solution, limit)
958
+ super(version, response)
959
+ @configuration_page = []
960
+ @limit = limit
961
+ key = get_key(response.body)
962
+ records = 0
963
+ while( limit != :unset && records < limit )
964
+ @configuration_page << ConfigurationListResponse.new(version, @payload, key, limit - records)
965
+ @payload = self.next_page
966
+ break unless @payload
967
+ records += (@payload.body[key] || []).size
968
+ end
969
+ # Path Solution
970
+ @solution = solution
971
+ end
972
+
973
+ def each
974
+ @configuration_page.each do |record|
975
+ yield record
976
+ end
977
+ end
978
+
979
+ def to_s
980
+ '<Twilio::REST::Conversations::V2PageMetadata>';
981
+ end
982
+ end
983
+ class ConfigurationListResponse < InstanceListResource
984
+
985
+ # @param [Array<ConfigurationInstance>] instance
986
+ # @param [Hash{String => Object}] headers
987
+ # @param [Integer] status_code
988
+ def initialize(version, payload, key, limit = :unset)
989
+ data_list = payload.body[key] || []
990
+ if limit != :unset
991
+ data_list = data_list[0, limit]
992
+ end
993
+ @configuration = data_list.map do |data|
994
+ ConfigurationInstance.new(version, data)
995
+ end
996
+ @headers = payload.headers
997
+ @status_code = payload.status_code
998
+ end
999
+
1000
+ def configuration
1001
+ @configuration
1002
+ end
1003
+
1004
+ def headers
1005
+ @headers
1006
+ end
1007
+
1008
+ def status_code
1009
+ @status_code
1010
+ end
1011
+ end
1012
+
1013
+ class ConfigurationInstance < InstanceResource
1014
+ ##
1015
+ # Initialize the ConfigurationInstance
1016
+ # @param [Version] version Version that contains the resource
1017
+ # @param [Hash] payload payload that contains response from Twilio
1018
+ # @param [String] account_sid The SID of the
1019
+ # {Account}[https://www.twilio.com/docs/iam/api/account] that created this Configuration
1020
+ # resource.
1021
+ # @param [String] sid The SID of the Call resource to fetch.
1022
+ # @return [ConfigurationInstance] ConfigurationInstance
1023
+ def initialize(version, payload , sid: nil)
1024
+
1025
+ apiV1Version = ApiV1Version.new version.domain, version
1026
+ super(apiV1Version)
1027
+
1028
+ # Marshaled Properties
1029
+ @properties = {
1030
+ 'status_url' => payload['status_url'],
1031
+ 'related' => payload['related'],
1032
+ 'id' => payload['id'],
1033
+ 'display_name' => payload['display_name'],
1034
+ 'description' => payload['description'],
1035
+ 'conversation_grouping_type' => payload['conversation_grouping_type'],
1036
+ 'memory_store_id' => payload['memory_store_id'],
1037
+ 'channel_settings' => payload['channel_settings'],
1038
+ 'status_callbacks' => payload['status_callbacks'],
1039
+ 'intelligence_configuration_ids' => payload['intelligence_configuration_ids'],
1040
+ 'memory_extraction_enabled' => payload['memory_extraction_enabled'],
1041
+ 'conversations_v1_bridge' => payload['conversations_v1_bridge'],
1042
+ 'created_at' => Twilio.deserialize_iso8601_datetime(payload['created_at']),
1043
+ 'updated_at' => Twilio.deserialize_iso8601_datetime(payload['updated_at']),
1044
+ 'version' => payload['version'],
1045
+ }
1046
+
1047
+ # Context
1048
+ @instance_context = nil
1049
+ @params = { 'sid' => sid || @properties['sid'] , }
1050
+ end
1051
+
1052
+ ##
1053
+ # Generate an instance context for the instance, the context is capable of
1054
+ # performing various actions. All instance actions are proxied to the context
1055
+ # @return [ConfigurationContext] CallContext for this CallInstance
1056
+ def context
1057
+ unless @instance_context
1058
+ @instance_context = ConfigurationContext.new(@version , @params['sid'])
1059
+ end
1060
+ @instance_context
1061
+ end
1062
+
1063
+ ##
1064
+ # @return [String] URL to poll for operation status.
1065
+ def status_url
1066
+ @properties['status_url']
1067
+ end
1068
+
1069
+ ##
1070
+ # @return [Hash<String, String>] Named resource identifiers associated with this operation. Keys depend on the operation type: - config-create, config-update, config-delete: configurationId - conversation-delete: conversationId
1071
+ def related
1072
+ @properties['related']
1073
+ end
1074
+
1075
+ ##
1076
+ # @return [String] Configuration ID.
1077
+ def id
1078
+ @properties['id']
1079
+ end
1080
+
1081
+ ##
1082
+ # @return [String] A human-readable name for the configuration. Limited to 32 characters.
1083
+ def display_name
1084
+ @properties['display_name']
1085
+ end
1086
+
1087
+ ##
1088
+ # @return [String] Human-readable description for the Configuration. Allows spaces and special characters, typically limited to a paragraph of text. This serves as a descriptive field rather than just a name.
1089
+ def description
1090
+ @properties['description']
1091
+ end
1092
+
1093
+ ##
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.
1095
+ def conversation_grouping_type
1096
+ @properties['conversation_grouping_type']
1097
+ end
1098
+
1099
+ ##
1100
+ # @return [String] Memory Store ID for Profile resolution.
1101
+ def memory_store_id
1102
+ @properties['memory_store_id']
1103
+ end
1104
+
1105
+ ##
1106
+ # @return [Hash<String, ConversationsV2ChannelSetting>] Channel-specific configuration settings by channel type. Keys should be valid channel types (`VOICE`, `SMS`, `RCS`, `WHATSAPP`, `CHAT`).
1107
+ def channel_settings
1108
+ @properties['channel_settings']
1109
+ end
1110
+
1111
+ ##
1112
+ # @return [Array<ConversationsV2StatusCallbackConfig>] List of default webhook configurations applied to Conversations under this Configuration.
1113
+ def status_callbacks
1114
+ @properties['status_callbacks']
1115
+ end
1116
+
1117
+ ##
1118
+ # @return [Array<String>] A list of Conversational Intelligence configuration IDs.
1119
+ def intelligence_configuration_ids
1120
+ @properties['intelligence_configuration_ids']
1121
+ end
1122
+
1123
+ ##
1124
+ # @return [Boolean] Whether memory extraction is enabled for conversations under this configuration. Defaults to false.
1125
+ def memory_extraction_enabled
1126
+ @properties['memory_extraction_enabled']
1127
+ end
1128
+
1129
+ ##
1130
+ # @return [ConversationsV2ConversationsV1Bridge]
1131
+ def conversations_v1_bridge
1132
+ @properties['conversations_v1_bridge']
1133
+ end
1134
+
1135
+ ##
1136
+ # @return [Time] Timestamp when this Configuration was created.
1137
+ def created_at
1138
+ @properties['created_at']
1139
+ end
1140
+
1141
+ ##
1142
+ # @return [Time] Timestamp when this Configuration was last updated.
1143
+ def updated_at
1144
+ @properties['updated_at']
1145
+ end
1146
+
1147
+ ##
1148
+ # @return [String] Version number used for optimistic locking.
1149
+ def version
1150
+ @properties['version']
1151
+ end
1152
+
1153
+ ##
1154
+ # Delete the ConfigurationInstance
1155
+ # @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.
1156
+ # @return [Boolean] True if delete succeeds, false otherwise
1157
+ def delete(
1158
+ idempotency_key: :unset
1159
+ )
1160
+
1161
+ context.delete(
1162
+ idempotency_key: idempotency_key,
1163
+ )
1164
+ end
1165
+
1166
+ ##
1167
+ # Fetch the ConfigurationInstance
1168
+ # @return [ConfigurationInstance] Fetched ConfigurationInstance
1169
+ def fetch
1170
+
1171
+ context.fetch
1172
+ end
1173
+
1174
+ ##
1175
+ # Update the ConfigurationInstance
1176
+ # @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.
1177
+ # @param [UpdateConfigurationRequest] update_configuration_request The configuration to update
1178
+ # @return [ConfigurationInstance] Updated ConfigurationInstance
1179
+ def update(
1180
+ idempotency_key: :unset,
1181
+ update_configuration_request: :unset
1182
+ )
1183
+
1184
+ context.update(
1185
+ idempotency_key: idempotency_key,
1186
+ update_configuration_request: update_configuration_request,
1187
+ )
1188
+ end
1189
+
1190
+ ##
1191
+ # Provide a user friendly representation
1192
+ def to_s
1193
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
1194
+ "<Twilio.Conversations.V2.ConfigurationInstance #{values}>"
1195
+ end
1196
+
1197
+ ##
1198
+ # Provide a detailed, user friendly representation
1199
+ def inspect
1200
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
1201
+ "<Twilio.Conversations.V2.ConfigurationInstance #{values}>"
1202
+ end
1203
+ end
1204
+
1205
+ end
1206
+ end
1207
+ end
1208
+ end