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,1365 @@
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 ConversationList < ListResource
21
+
22
+ class ConversationsV2Address
23
+ # @param [channel]: [String] The channel for Communication.
24
+ # @param [address]: [String] The address value formatted according to channel type: - SMS/VOICE: E.164 phone number (such as \"+18005550100\") - WHATSAPP: Phone number with whatsapp prefix (such as \"whatsapp:+18005550100\") - RCS: Sender ID or phone number with rcs prefix (such as \"rcs:brand_acme_agent\" or \"rcs:+18005550100\") - CHAT: Customer-defined string identifier
25
+ # @param [channel_id]: [String] Channel-specific ID for correlating Communications.
26
+ attr_accessor :channel, :address, :channel_id
27
+ def initialize(payload)
28
+ @channel = payload["channel"]
29
+ @address = payload["address"]
30
+ @channel_id = payload["channel_id"]
31
+ end
32
+ def to_json(options = {})
33
+ {
34
+ "channel": @channel,
35
+ "address": @address,
36
+ "channelId": @channel_id,
37
+ }.to_json(options)
38
+ end
39
+ end
40
+
41
+ class ConversationsV2CaptureRule
42
+ # @param [from]: [String] The from address. Use `*` for wildcard to match any from address.
43
+ # @param [to]: [String] The to address. Use `*` for wildcard to match any to address.
44
+ # @param [metadata]: [Hash<String, String>] Additional matching criteria for the capture rule. For voice calls, can include `callType` (`PSTN`, `SIP`, and similar).
45
+ attr_accessor :from, :to, :metadata
46
+ def initialize(payload)
47
+ @from = payload["from"]
48
+ @to = payload["to"]
49
+ @metadata = payload["metadata"]
50
+ end
51
+ def to_json(options = {})
52
+ {
53
+ "from": @from,
54
+ "to": @to,
55
+ "metadata": @metadata,
56
+ }.to_json(options)
57
+ end
58
+ end
59
+
60
+ class ConversationsV2StatusTimeouts
61
+ # @param [inactive]: [Integer] Inactivity timeout in minutes.
62
+ # @param [closed]: [Integer] Close timeout in minutes.
63
+ attr_accessor :inactive, :closed
64
+ def initialize(payload)
65
+ @inactive = payload["inactive"]
66
+ @closed = payload["closed"]
67
+ end
68
+ def to_json(options = {})
69
+ {
70
+ "inactive": @inactive,
71
+ "closed": @closed,
72
+ }.to_json(options)
73
+ end
74
+ end
75
+
76
+ class CreateConversationWithConfigRequest
77
+ # @param [configuration_id]: [String] The ID of an existing configuration.
78
+ # @param [name]: [String] The name of the conversation.
79
+ # @param [configuration]: [ConversationList.CreateConversationWithConfigRequestConfiguration]
80
+ # @param [participants]: [Array<ConversationList.CreateConversationWithConfigRequestParticipants>] Optional list of Participants to create with the Conversation.
81
+ attr_accessor :configuration_id, :name, :configuration, :participants
82
+ def initialize(payload)
83
+ @configuration_id = payload["configuration_id"]
84
+ @name = payload["name"]
85
+ @configuration = payload["configuration"]
86
+ @participants = payload["participants"]
87
+ end
88
+ def to_json(options = {})
89
+ {
90
+ "configurationId": @configuration_id,
91
+ "name": @name,
92
+ "configuration": @configuration,
93
+ "participants": @participants,
94
+ }.to_json(options)
95
+ end
96
+ end
97
+
98
+ class CreateConversationWithConfigRequestConfiguration
99
+ # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
100
+ attr_accessor :intelligence_configuration_ids
101
+ def initialize(payload)
102
+ @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
103
+ end
104
+ def to_json(options = {})
105
+ {
106
+ "intelligenceConfigurationIds": @intelligence_configuration_ids,
107
+ }.to_json(options)
108
+ end
109
+ end
110
+
111
+ class CreateConversationWithConfigRequestParticipants
112
+ # @param [name]: [String] Display name for the Participant.
113
+ # @param [type]: [String] Type of Participant in the Conversation.
114
+ # @param [profile_id]: [String] Resolved profile ID.
115
+ # @param [addresses]: [Array<ConversationList.CreateConversationWithConfigRequestParticipantsAddresses>] List of Communication addresses for the Participant.
116
+ attr_accessor :name, :type, :profile_id, :addresses
117
+ def initialize(payload)
118
+ @name = payload["name"]
119
+ @type = payload["type"]
120
+ @profile_id = payload["profile_id"]
121
+ @addresses = payload["addresses"]
122
+ end
123
+ def to_json(options = {})
124
+ {
125
+ "name": @name,
126
+ "type": @type,
127
+ "profileId": @profile_id,
128
+ "addresses": @addresses,
129
+ }.to_json(options)
130
+ end
131
+ end
132
+
133
+ class CreateConversationWithConfigRequestParticipantsAddresses
134
+ # @param [channel]: [String]
135
+ # @param [address]: [String]
136
+ # @param [channel_id]: [String]
137
+ attr_accessor :channel, :address, :channel_id
138
+ def initialize(payload)
139
+ @channel = payload["channel"]
140
+ @address = payload["address"]
141
+ @channel_id = payload["channel_id"]
142
+ end
143
+ def to_json(options = {})
144
+ {
145
+ "channel": @channel,
146
+ "address": @address,
147
+ "channelId": @channel_id,
148
+ }.to_json(options)
149
+ end
150
+ end
151
+
152
+ class PatchConversationByIdRequest
153
+ # @param [name]: [String] The name of the Conversation.
154
+ # @param [status]: [String] The state of the Conversation.
155
+ # @param [configuration]: [ConversationList.PatchConversationByIdRequestConfiguration]
156
+ attr_accessor :name, :status, :configuration
157
+ def initialize(payload)
158
+ @name = payload["name"]
159
+ @status = payload["status"]
160
+ @configuration = payload["configuration"]
161
+ end
162
+ def to_json(options = {})
163
+ {
164
+ "name": @name,
165
+ "status": @status,
166
+ "configuration": @configuration,
167
+ }.to_json(options)
168
+ end
169
+ end
170
+
171
+ class PatchConversationByIdRequestConfiguration
172
+ # @param [status_callbacks]: [Array<ConversationList.ConversationsV2StatusCallbackConfig>] List of webhook configurations for this conversation. Send an empty array to clear all callbacks and stop webhook delivery.
173
+ attr_accessor :status_callbacks
174
+ def initialize(payload)
175
+ @status_callbacks = payload["status_callbacks"]
176
+ end
177
+ def to_json(options = {})
178
+ {
179
+ "statusCallbacks": @status_callbacks,
180
+ }.to_json(options)
181
+ end
182
+ end
183
+
184
+ class UpdateConversationByIdRequest
185
+ # @param [name]: [String] The name of the Conversation.
186
+ # @param [status]: [String] The state of the Conversation.
187
+ attr_accessor :name, :status
188
+ def initialize(payload)
189
+ @name = payload["name"]
190
+ @status = payload["status"]
191
+ end
192
+ def to_json(options = {})
193
+ {
194
+ "name": @name,
195
+ "status": @status,
196
+ }.to_json(options)
197
+ end
198
+ end
199
+
200
+
201
+ class ConversationsV2Address
202
+ # @param [channel]: [String] The channel for Communication.
203
+ # @param [address]: [String] The address value formatted according to channel type: - SMS/VOICE: E.164 phone number (such as \"+18005550100\") - WHATSAPP: Phone number with whatsapp prefix (such as \"whatsapp:+18005550100\") - RCS: Sender ID or phone number with rcs prefix (such as \"rcs:brand_acme_agent\" or \"rcs:+18005550100\") - CHAT: Customer-defined string identifier
204
+ # @param [channel_id]: [String] Channel-specific ID for correlating Communications.
205
+ attr_accessor :channel, :address, :channel_id
206
+ def initialize(payload)
207
+ @channel = payload["channel"]
208
+ @address = payload["address"]
209
+ @channel_id = payload["channel_id"]
210
+ end
211
+ def to_json(options = {})
212
+ {
213
+ "channel": @channel,
214
+ "address": @address,
215
+ "channelId": @channel_id,
216
+ }.to_json(options)
217
+ end
218
+ end
219
+
220
+ class ConversationsV2CaptureRule
221
+ # @param [from]: [String] The from address. Use `*` for wildcard to match any from address.
222
+ # @param [to]: [String] The to address. Use `*` for wildcard to match any to address.
223
+ # @param [metadata]: [Hash<String, String>] Additional matching criteria for the capture rule. For voice calls, can include `callType` (`PSTN`, `SIP`, and similar).
224
+ attr_accessor :from, :to, :metadata
225
+ def initialize(payload)
226
+ @from = payload["from"]
227
+ @to = payload["to"]
228
+ @metadata = payload["metadata"]
229
+ end
230
+ def to_json(options = {})
231
+ {
232
+ "from": @from,
233
+ "to": @to,
234
+ "metadata": @metadata,
235
+ }.to_json(options)
236
+ end
237
+ end
238
+
239
+ class ConversationsV2StatusTimeouts
240
+ # @param [inactive]: [Integer] Inactivity timeout in minutes.
241
+ # @param [closed]: [Integer] Close timeout in minutes.
242
+ attr_accessor :inactive, :closed
243
+ def initialize(payload)
244
+ @inactive = payload["inactive"]
245
+ @closed = payload["closed"]
246
+ end
247
+ def to_json(options = {})
248
+ {
249
+ "inactive": @inactive,
250
+ "closed": @closed,
251
+ }.to_json(options)
252
+ end
253
+ end
254
+
255
+ class CreateConversationWithConfigRequest
256
+ # @param [configuration_id]: [String] The ID of an existing configuration.
257
+ # @param [name]: [String] The name of the conversation.
258
+ # @param [configuration]: [ConversationList.CreateConversationWithConfigRequestConfiguration]
259
+ # @param [participants]: [Array<ConversationList.CreateConversationWithConfigRequestParticipants>] Optional list of Participants to create with the Conversation.
260
+ attr_accessor :configuration_id, :name, :configuration, :participants
261
+ def initialize(payload)
262
+ @configuration_id = payload["configuration_id"]
263
+ @name = payload["name"]
264
+ @configuration = payload["configuration"]
265
+ @participants = payload["participants"]
266
+ end
267
+ def to_json(options = {})
268
+ {
269
+ "configurationId": @configuration_id,
270
+ "name": @name,
271
+ "configuration": @configuration,
272
+ "participants": @participants,
273
+ }.to_json(options)
274
+ end
275
+ end
276
+
277
+ class CreateConversationWithConfigRequestConfiguration
278
+ # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
279
+ attr_accessor :intelligence_configuration_ids
280
+ def initialize(payload)
281
+ @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
282
+ end
283
+ def to_json(options = {})
284
+ {
285
+ "intelligenceConfigurationIds": @intelligence_configuration_ids,
286
+ }.to_json(options)
287
+ end
288
+ end
289
+
290
+ class CreateConversationWithConfigRequestParticipants
291
+ # @param [name]: [String] Display name for the Participant.
292
+ # @param [type]: [String] Type of Participant in the Conversation.
293
+ # @param [profile_id]: [String] Resolved profile ID.
294
+ # @param [addresses]: [Array<ConversationList.CreateConversationWithConfigRequestParticipantsAddresses>] List of Communication addresses for the Participant.
295
+ attr_accessor :name, :type, :profile_id, :addresses
296
+ def initialize(payload)
297
+ @name = payload["name"]
298
+ @type = payload["type"]
299
+ @profile_id = payload["profile_id"]
300
+ @addresses = payload["addresses"]
301
+ end
302
+ def to_json(options = {})
303
+ {
304
+ "name": @name,
305
+ "type": @type,
306
+ "profileId": @profile_id,
307
+ "addresses": @addresses,
308
+ }.to_json(options)
309
+ end
310
+ end
311
+
312
+ class CreateConversationWithConfigRequestParticipantsAddresses
313
+ # @param [channel]: [String]
314
+ # @param [address]: [String]
315
+ # @param [channel_id]: [String]
316
+ attr_accessor :channel, :address, :channel_id
317
+ def initialize(payload)
318
+ @channel = payload["channel"]
319
+ @address = payload["address"]
320
+ @channel_id = payload["channel_id"]
321
+ end
322
+ def to_json(options = {})
323
+ {
324
+ "channel": @channel,
325
+ "address": @address,
326
+ "channelId": @channel_id,
327
+ }.to_json(options)
328
+ end
329
+ end
330
+
331
+ class PatchConversationByIdRequest
332
+ # @param [name]: [String] The name of the Conversation.
333
+ # @param [status]: [String] The state of the Conversation.
334
+ # @param [configuration]: [ConversationList.PatchConversationByIdRequestConfiguration]
335
+ attr_accessor :name, :status, :configuration
336
+ def initialize(payload)
337
+ @name = payload["name"]
338
+ @status = payload["status"]
339
+ @configuration = payload["configuration"]
340
+ end
341
+ def to_json(options = {})
342
+ {
343
+ "name": @name,
344
+ "status": @status,
345
+ "configuration": @configuration,
346
+ }.to_json(options)
347
+ end
348
+ end
349
+
350
+ class PatchConversationByIdRequestConfiguration
351
+ # @param [status_callbacks]: [Array<ConversationList.ConversationsV2StatusCallbackConfig>] List of webhook configurations for this conversation. Send an empty array to clear all callbacks and stop webhook delivery.
352
+ attr_accessor :status_callbacks
353
+ def initialize(payload)
354
+ @status_callbacks = payload["status_callbacks"]
355
+ end
356
+ def to_json(options = {})
357
+ {
358
+ "statusCallbacks": @status_callbacks,
359
+ }.to_json(options)
360
+ end
361
+ end
362
+
363
+ class UpdateConversationByIdRequest
364
+ # @param [name]: [String] The name of the Conversation.
365
+ # @param [status]: [String] The state of the Conversation.
366
+ attr_accessor :name, :status
367
+ def initialize(payload)
368
+ @name = payload["name"]
369
+ @status = payload["status"]
370
+ end
371
+ def to_json(options = {})
372
+ {
373
+ "name": @name,
374
+ "status": @status,
375
+ }.to_json(options)
376
+ end
377
+ end
378
+
379
+
380
+ class ConversationsV2Address
381
+ # @param [channel]: [String] The channel for Communication.
382
+ # @param [address]: [String] The address value formatted according to channel type: - SMS/VOICE: E.164 phone number (such as \"+18005550100\") - WHATSAPP: Phone number with whatsapp prefix (such as \"whatsapp:+18005550100\") - RCS: Sender ID or phone number with rcs prefix (such as \"rcs:brand_acme_agent\" or \"rcs:+18005550100\") - CHAT: Customer-defined string identifier
383
+ # @param [channel_id]: [String] Channel-specific ID for correlating Communications.
384
+ attr_accessor :channel, :address, :channel_id
385
+ def initialize(payload)
386
+ @channel = payload["channel"]
387
+ @address = payload["address"]
388
+ @channel_id = payload["channel_id"]
389
+ end
390
+ def to_json(options = {})
391
+ {
392
+ "channel": @channel,
393
+ "address": @address,
394
+ "channelId": @channel_id,
395
+ }.to_json(options)
396
+ end
397
+ end
398
+
399
+ class ConversationsV2CaptureRule
400
+ # @param [from]: [String] The from address. Use `*` for wildcard to match any from address.
401
+ # @param [to]: [String] The to address. Use `*` for wildcard to match any to address.
402
+ # @param [metadata]: [Hash<String, String>] Additional matching criteria for the capture rule. For voice calls, can include `callType` (`PSTN`, `SIP`, and similar).
403
+ attr_accessor :from, :to, :metadata
404
+ def initialize(payload)
405
+ @from = payload["from"]
406
+ @to = payload["to"]
407
+ @metadata = payload["metadata"]
408
+ end
409
+ def to_json(options = {})
410
+ {
411
+ "from": @from,
412
+ "to": @to,
413
+ "metadata": @metadata,
414
+ }.to_json(options)
415
+ end
416
+ end
417
+
418
+ class ConversationsV2StatusTimeouts
419
+ # @param [inactive]: [Integer] Inactivity timeout in minutes.
420
+ # @param [closed]: [Integer] Close timeout in minutes.
421
+ attr_accessor :inactive, :closed
422
+ def initialize(payload)
423
+ @inactive = payload["inactive"]
424
+ @closed = payload["closed"]
425
+ end
426
+ def to_json(options = {})
427
+ {
428
+ "inactive": @inactive,
429
+ "closed": @closed,
430
+ }.to_json(options)
431
+ end
432
+ end
433
+
434
+ class CreateConversationWithConfigRequest
435
+ # @param [configuration_id]: [String] The ID of an existing configuration.
436
+ # @param [name]: [String] The name of the conversation.
437
+ # @param [configuration]: [ConversationList.CreateConversationWithConfigRequestConfiguration]
438
+ # @param [participants]: [Array<ConversationList.CreateConversationWithConfigRequestParticipants>] Optional list of Participants to create with the Conversation.
439
+ attr_accessor :configuration_id, :name, :configuration, :participants
440
+ def initialize(payload)
441
+ @configuration_id = payload["configuration_id"]
442
+ @name = payload["name"]
443
+ @configuration = payload["configuration"]
444
+ @participants = payload["participants"]
445
+ end
446
+ def to_json(options = {})
447
+ {
448
+ "configurationId": @configuration_id,
449
+ "name": @name,
450
+ "configuration": @configuration,
451
+ "participants": @participants,
452
+ }.to_json(options)
453
+ end
454
+ end
455
+
456
+ class CreateConversationWithConfigRequestConfiguration
457
+ # @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
458
+ attr_accessor :intelligence_configuration_ids
459
+ def initialize(payload)
460
+ @intelligence_configuration_ids = payload["intelligence_configuration_ids"]
461
+ end
462
+ def to_json(options = {})
463
+ {
464
+ "intelligenceConfigurationIds": @intelligence_configuration_ids,
465
+ }.to_json(options)
466
+ end
467
+ end
468
+
469
+ class CreateConversationWithConfigRequestParticipants
470
+ # @param [name]: [String] Display name for the Participant.
471
+ # @param [type]: [String] Type of Participant in the Conversation.
472
+ # @param [profile_id]: [String] Resolved profile ID.
473
+ # @param [addresses]: [Array<ConversationList.CreateConversationWithConfigRequestParticipantsAddresses>] List of Communication addresses for the Participant.
474
+ attr_accessor :name, :type, :profile_id, :addresses
475
+ def initialize(payload)
476
+ @name = payload["name"]
477
+ @type = payload["type"]
478
+ @profile_id = payload["profile_id"]
479
+ @addresses = payload["addresses"]
480
+ end
481
+ def to_json(options = {})
482
+ {
483
+ "name": @name,
484
+ "type": @type,
485
+ "profileId": @profile_id,
486
+ "addresses": @addresses,
487
+ }.to_json(options)
488
+ end
489
+ end
490
+
491
+ class CreateConversationWithConfigRequestParticipantsAddresses
492
+ # @param [channel]: [String]
493
+ # @param [address]: [String]
494
+ # @param [channel_id]: [String]
495
+ attr_accessor :channel, :address, :channel_id
496
+ def initialize(payload)
497
+ @channel = payload["channel"]
498
+ @address = payload["address"]
499
+ @channel_id = payload["channel_id"]
500
+ end
501
+ def to_json(options = {})
502
+ {
503
+ "channel": @channel,
504
+ "address": @address,
505
+ "channelId": @channel_id,
506
+ }.to_json(options)
507
+ end
508
+ end
509
+
510
+ class PatchConversationByIdRequest
511
+ # @param [name]: [String] The name of the Conversation.
512
+ # @param [status]: [String] The state of the Conversation.
513
+ # @param [configuration]: [ConversationList.PatchConversationByIdRequestConfiguration]
514
+ attr_accessor :name, :status, :configuration
515
+ def initialize(payload)
516
+ @name = payload["name"]
517
+ @status = payload["status"]
518
+ @configuration = payload["configuration"]
519
+ end
520
+ def to_json(options = {})
521
+ {
522
+ "name": @name,
523
+ "status": @status,
524
+ "configuration": @configuration,
525
+ }.to_json(options)
526
+ end
527
+ end
528
+
529
+ class PatchConversationByIdRequestConfiguration
530
+ # @param [status_callbacks]: [Array<ConversationList.ConversationsV2StatusCallbackConfig>] List of webhook configurations for this conversation. Send an empty array to clear all callbacks and stop webhook delivery.
531
+ attr_accessor :status_callbacks
532
+ def initialize(payload)
533
+ @status_callbacks = payload["status_callbacks"]
534
+ end
535
+ def to_json(options = {})
536
+ {
537
+ "statusCallbacks": @status_callbacks,
538
+ }.to_json(options)
539
+ end
540
+ end
541
+
542
+ class UpdateConversationByIdRequest
543
+ # @param [name]: [String] The name of the Conversation.
544
+ # @param [status]: [String] The state of the Conversation.
545
+ attr_accessor :name, :status
546
+ def initialize(payload)
547
+ @name = payload["name"]
548
+ @status = payload["status"]
549
+ end
550
+ def to_json(options = {})
551
+ {
552
+ "name": @name,
553
+ "status": @status,
554
+ }.to_json(options)
555
+ end
556
+ end
557
+
558
+
559
+ ##
560
+ # Initialize the ConversationList
561
+ # @param [Version] version Version that contains the resource
562
+ # @return [ConversationList] ConversationList
563
+ def initialize(version)
564
+
565
+ apiV1Version = ApiV1Version.new version.domain, version
566
+ super(apiV1Version)
567
+ # Path Solution
568
+ @solution = { }
569
+ @uri = "/Conversations"
570
+
571
+ end
572
+ ##
573
+ # Create the ConversationInstance
574
+ # @param [CreateConversationWithConfigRequest] create_conversation_with_config_request
575
+ # @return [ConversationInstance] Created ConversationInstance
576
+ def create(create_conversation_with_config_request: :unset
577
+ )
578
+
579
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
580
+ headers['Content-Type'] = 'application/json'
581
+
582
+
583
+
584
+
585
+ payload = @version.create('POST', @uri, headers: headers, data: create_conversation_with_config_request.to_json)
586
+ ConversationInstance.new(
587
+ @version,
588
+ payload,
589
+ )
590
+ end
591
+
592
+ ##
593
+ # Create the ConversationInstanceMetadata
594
+ # @param [CreateConversationWithConfigRequest] create_conversation_with_config_request
595
+ # @return [ConversationInstance] Created ConversationInstance
596
+ def create_with_metadata(create_conversation_with_config_request: :unset
597
+ )
598
+
599
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
600
+ headers['Content-Type'] = 'application/json'
601
+
602
+
603
+
604
+
605
+ response = @version.create_with_metadata('POST', @uri, headers: headers, data: create_conversation_with_config_request.to_json)
606
+ conversation_instance = ConversationInstance.new(
607
+ @version,
608
+ response.body,
609
+ )
610
+ ConversationInstanceMetadata.new(
611
+ @version,
612
+ conversation_instance,
613
+ response.headers,
614
+ response.status_code
615
+ )
616
+ end
617
+
618
+
619
+ ##
620
+ # Lists ConversationInstance records from the API as a list.
621
+ # Unlike stream(), this operation is eager and will load `limit` records into
622
+ # memory before returning.
623
+ # @param [Array[String]] status Filters for specific statuses
624
+ # @param [String] channel_id The resource identifier (such as callSid or messageSid) to filter conversations.
625
+ # @param [String] page_token A URL-safe, base64-encoded token representing the page of results to return
626
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
627
+ # guarantees to never return more than limit. Default is no limit
628
+ # @param [Integer] page_size Number of records to fetch per request, when
629
+ # not set will use the default value of 50 records. If no page_size is defined
630
+ # but a limit is defined, stream() will attempt to read the limit with the most
631
+ # efficient page size, i.e. min(limit, 1000)
632
+ # @return [Array] Array of up to limit results
633
+ def list(status: :unset, channel_id: :unset, page_token: :unset, limit: nil, page_size: nil)
634
+ self.stream(
635
+ status: status,
636
+ channel_id: channel_id,
637
+ page_token: page_token,
638
+ limit: limit,
639
+ page_size: page_size
640
+ ).entries
641
+ end
642
+
643
+ ##
644
+ # Streams Instance records from the API as an Enumerable.
645
+ # This operation lazily loads records as efficiently as possible until the limit
646
+ # is reached.
647
+ # @param [Array[String]] status Filters for specific statuses
648
+ # @param [String] channel_id The resource identifier (such as callSid or messageSid) to filter conversations.
649
+ # @param [String] page_token A URL-safe, base64-encoded token representing the page of results to return
650
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
651
+ # guarantees to never return more than limit. Default is no limit
652
+ # @param [Integer] page_size Number of records to fetch per request, when
653
+ # not set will use the default value of 50 records. If no page_size is defined
654
+ # but a limit is defined, stream() will attempt to read the limit with the most
655
+ # efficient page size, i.e. min(limit, 1000)
656
+ # @return [Enumerable] Enumerable that will yield up to limit results
657
+ def stream(status: :unset, channel_id: :unset, page_token: :unset, limit: nil, page_size: nil)
658
+ limits = @version.read_limits(limit, page_size)
659
+
660
+ page = self.page(
661
+ status: status,
662
+ channel_id: channel_id,
663
+ page_token: page_token,
664
+ page_size: limits[:page_size], )
665
+
666
+ return [].each if page.nil?
667
+
668
+ result = @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
669
+ return [].each if result.nil?
670
+ result
671
+ end
672
+
673
+ ##
674
+ # Lists ConversationPageMetadata records from the API as a list.
675
+ # @param [Array[String]] status Filters for specific statuses
676
+ # @param [String] channel_id The resource identifier (such as callSid or messageSid) to filter conversations.
677
+ # @param [String] page_token A URL-safe, base64-encoded token representing the page of results to return
678
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
679
+ # guarantees to never return more than limit. Default is no limit
680
+ # @param [Integer] page_size Number of records to fetch per request, when
681
+ # not set will use the default value of 50 records. If no page_size is defined
682
+ # but a limit is defined, stream() will attempt to read the limit with the most
683
+ # efficient page size, i.e. min(limit, 1000)
684
+ # @return [Array] Array of up to limit results
685
+ def list_with_metadata(status: :unset, channel_id: :unset, page_token: :unset, limit: nil, page_size: nil)
686
+ limits = @version.read_limits(limit, page_size)
687
+ params = Twilio::Values.of({
688
+
689
+ 'status' => Twilio.serialize_list(status) { |e| e },
690
+ 'channelId' => channel_id,
691
+ 'pageToken' => page_token,
692
+
693
+ 'PageSize' => limits[:page_size],
694
+ });
695
+ headers = Twilio::Values.of({})
696
+
697
+ response = @version.page('GET', @uri, params: params, headers: headers)
698
+
699
+ ConversationPageMetadata.new(@version, response, @solution, limits[:limit])
700
+ end
701
+
702
+ ##
703
+ # When passed a block, yields ConversationInstance records from the API.
704
+ # This operation lazily loads records as efficiently as possible until the limit
705
+ # is reached.
706
+ def each
707
+ limits = @version.read_limits
708
+
709
+ page = self.page(page_size: limits[:page_size], )
710
+
711
+ return [].each if page.nil?
712
+
713
+ result = @version.stream(page,
714
+ limit: limits[:limit],
715
+ page_limit: limits[:page_limit])
716
+ return [].each if result.nil?
717
+ result.each {|x| yield x}
718
+ end
719
+
720
+ ##
721
+ # Retrieve a single page of ConversationInstance records from the API.
722
+ # Request is executed immediately.
723
+ # @param [Array[String]] status Filters for specific statuses
724
+ # @param [String] channel_id The resource identifier (such as callSid or messageSid) to filter conversations.
725
+ # @param [String] page_token A URL-safe, base64-encoded token representing the page of results to return
726
+
727
+ # @return [Page] Page of ConversationInstance
728
+ def page(status: :unset, channel_id: :unset, page_token: :unset, page_size: :unset)
729
+ params = Twilio::Values.of({
730
+
731
+ 'status' => Twilio.serialize_list(status) { |e| e },
732
+ 'channelId' => channel_id,
733
+ 'pageToken' => page_token,
734
+ 'PageSize' => page_size,
735
+ })
736
+ headers = Twilio::Values.of({})
737
+
738
+
739
+
740
+ response = @version.page('GET', @uri, params: params, headers: headers)
741
+
742
+ ConversationPage.new(@version, response, @solution)
743
+ end
744
+
745
+ ##
746
+ # Retrieve a single page of ConversationInstance records from the API.
747
+ # Request is executed immediately.
748
+ # @param [String] target_url API-generated URL for the requested results page
749
+ # @return [Page] Page of ConversationInstance
750
+ def get_page(target_url)
751
+ response = @version.domain.request(
752
+ 'GET',
753
+ target_url
754
+ )
755
+ ConversationPage.new(@version, response, @solution)
756
+ end
757
+
758
+
759
+
760
+ # Provide a user friendly representation
761
+ def to_s
762
+ '#<Twilio.Conversations.V2.ConversationList>'
763
+ end
764
+ end
765
+
766
+
767
+ class ConversationContext < InstanceContext
768
+ ##
769
+ # Initialize the ConversationContext
770
+ # @param [Version] version Version that contains the resource
771
+ # @param [String] sid
772
+ # @return [ConversationContext] ConversationContext
773
+ def initialize(version, sid)
774
+
775
+ apiV1Version = ApiV1Version.new version.domain, version
776
+ super(apiV1Version)
777
+
778
+ # Path Solution
779
+ @solution = { sid: sid, }
780
+ @uri = "/Conversations/#{@solution[:sid]}"
781
+
782
+
783
+ end
784
+ ##
785
+ # Delete the ConversationInstance
786
+ # @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.
787
+ # @return [Boolean] True if delete succeeds, false otherwise
788
+ def delete(
789
+ idempotency_key: :unset
790
+ )
791
+
792
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', 'Idempotency-Key' => idempotency_key, })
793
+
794
+
795
+
796
+ response = @version.delete_with_metadata('DELETE', @uri, headers: headers)
797
+ ConversationInstance.new(
798
+ @version,
799
+ response.body,
800
+ sid: @solution[:sid],
801
+ )
802
+
803
+ end
804
+
805
+ ##
806
+ # Delete the ConversationInstanceMetadata
807
+ # @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.
808
+ # @return [Boolean] True if delete succeeds, false otherwise
809
+ def delete_with_metadata(
810
+ idempotency_key: :unset
811
+ )
812
+
813
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', 'Idempotency-Key' => idempotency_key, })
814
+
815
+
816
+
817
+ response = @version.delete_with_metadata('DELETE', @uri, headers: headers)
818
+ conversation_instance = ConversationInstance.new(
819
+ @version,
820
+ response.body,
821
+ account_sid: @solution[:account_sid],
822
+ sid: @solution[:sid],
823
+ )
824
+ ConversationInstanceMetadata.new(@version, conversation_instance, response.headers, response.status_code)
825
+ end
826
+
827
+ ##
828
+ # Fetch the ConversationInstance
829
+ # @return [ConversationInstance] Fetched ConversationInstance
830
+ def fetch
831
+
832
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
833
+
834
+
835
+
836
+
837
+
838
+ payload = @version.fetch('GET', @uri, headers: headers)
839
+ ConversationInstance.new(
840
+ @version,
841
+ payload,
842
+ sid: @solution[:sid],
843
+ )
844
+ end
845
+
846
+ ##
847
+ # Fetch the ConversationInstanceMetadata
848
+ # @return [ConversationInstance] Fetched ConversationInstance
849
+ def fetch_with_metadata
850
+
851
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
852
+
853
+
854
+
855
+
856
+
857
+ response = @version.fetch_with_metadata('GET', @uri, headers: headers)
858
+ conversation_instance = ConversationInstance.new(
859
+ @version,
860
+ response.body,
861
+ sid: @solution[:sid],
862
+ )
863
+ ConversationInstanceMetadata.new(
864
+ @version,
865
+ conversation_instance,
866
+ response.headers,
867
+ response.status_code
868
+ )
869
+ end
870
+
871
+ ##
872
+ # Patch the ConversationInstance
873
+ # @param [PatchConversationByIdRequest] patch_conversation_by_id_request The conversation fields to update
874
+ # @return [ConversationInstance] Patched ConversationInstance
875
+ def patch(patch_conversation_by_id_request: :unset
876
+ )
877
+
878
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
879
+ headers['Content-Type'] = 'application/json'
880
+
881
+
882
+
883
+
884
+ payload = @version.patch('PATCH', @uri, headers: headers, data: patch_conversation_by_id_request.to_json)
885
+ ConversationInstance.new(
886
+ @version,
887
+ payload,
888
+ sid: @solution[:sid],
889
+ )
890
+ end
891
+
892
+ ##
893
+ # Patch the ConversationInstanceMetadata
894
+ # @param [PatchConversationByIdRequest] patch_conversation_by_id_request The conversation fields to update
895
+ # @return [ConversationInstance] Patchd ConversationInstance
896
+ def patch_with_metadata(patch_conversation_by_id_request: :unset
897
+ )
898
+
899
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
900
+ headers['Content-Type'] = 'application/json'
901
+
902
+
903
+
904
+
905
+ response = @version.patch_with_metadata('PATCH', @uri, headers: headers, data: patch_conversation_by_id_request.to_json)
906
+ conversation_instance = ConversationInstance.new(
907
+ @version,
908
+ response.body,
909
+ sid: @solution[:sid],
910
+ )
911
+ ConversationInstanceMetadata.new(
912
+ @version,
913
+ conversation_instance,
914
+ response.headers,
915
+ response.status_code
916
+ )
917
+ end
918
+
919
+ ##
920
+ # Update the ConversationInstance
921
+ # @param [UpdateConversationByIdRequest] update_conversation_by_id_request The conversation to update
922
+ # @return [ConversationInstance] Updated ConversationInstance
923
+ def update(update_conversation_by_id_request: :unset
924
+ )
925
+
926
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
927
+ headers['Content-Type'] = 'application/json'
928
+
929
+
930
+
931
+
932
+ payload = @version.update('PUT', @uri, headers: headers, data: update_conversation_by_id_request.to_json)
933
+ ConversationInstance.new(
934
+ @version,
935
+ payload,
936
+ sid: @solution[:sid],
937
+ )
938
+ end
939
+
940
+ ##
941
+ # Update the ConversationInstanceMetadata
942
+ # @param [UpdateConversationByIdRequest] update_conversation_by_id_request The conversation to update
943
+ # @return [ConversationInstance] Updated ConversationInstance
944
+ def update_with_metadata(update_conversation_by_id_request: :unset
945
+ )
946
+
947
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
948
+ headers['Content-Type'] = 'application/json'
949
+
950
+
951
+
952
+
953
+ response = @version.update_with_metadata('PUT', @uri, headers: headers, data: update_conversation_by_id_request.to_json)
954
+ conversation_instance = ConversationInstance.new(
955
+ @version,
956
+ response.body,
957
+ sid: @solution[:sid],
958
+ )
959
+ ConversationInstanceMetadata.new(
960
+ @version,
961
+ conversation_instance,
962
+ response.headers,
963
+ response.status_code
964
+ )
965
+ end
966
+
967
+
968
+ ##
969
+ # Provide a user friendly representation
970
+ def to_s
971
+ context = @solution.map{|k, v| "#{k}: #{v}"}.join(',')
972
+ "#<Twilio.Conversations.V2.ConversationContext #{context}>"
973
+ end
974
+
975
+ ##
976
+ # Provide a detailed, user friendly representation
977
+ def inspect
978
+ context = @solution.map{|k, v| "#{k}: #{v}"}.join(',')
979
+ "#<Twilio.Conversations.V2.ConversationContext #{context}>"
980
+ end
981
+ end
982
+
983
+ class ConversationInstanceMetadata < InstanceResourceMetadata
984
+ ##
985
+ # Initializes a new ConversationInstanceMetadata.
986
+ # @param [Version] version Version that contains the resource
987
+ # @param [}ConversationInstance] conversation_instance The instance associated with the metadata.
988
+ # @param [Hash] headers Header object with response headers.
989
+ # @param [Integer] status_code The HTTP status code of the response.
990
+ # @return [ConversationInstanceMetadata] The initialized instance with metadata.
991
+ def initialize(version, conversation_instance, headers, status_code)
992
+ super(version, headers, status_code)
993
+ @conversation_instance = conversation_instance
994
+ end
995
+
996
+ def conversation
997
+ @conversation_instance
998
+ end
999
+
1000
+ def headers
1001
+ @headers
1002
+ end
1003
+
1004
+ def status_code
1005
+ @status_code
1006
+ end
1007
+
1008
+ def to_s
1009
+ "<Twilio.Api.V2010.ConversationInstanceMetadata status=#{@status_code}>"
1010
+ end
1011
+ end
1012
+
1013
+ class ConversationListResponse < InstanceListResource
1014
+ # @param [Array<ConversationInstance>] instance
1015
+ # @param [Hash{String => Object}] headers
1016
+ # @param [Integer] status_code
1017
+ def initialize(version, payload, key)
1018
+ @conversation_instance = payload.body[key].map do |data|
1019
+ ConversationInstance.new(version, data)
1020
+ end
1021
+ @headers = payload.headers
1022
+ @status_code = payload.status_code
1023
+ end
1024
+
1025
+ def conversation_instance
1026
+ @instance
1027
+ end
1028
+ end
1029
+
1030
+ class ConversationPage < TokenPage
1031
+ ##
1032
+ # Initialize the ConversationPage
1033
+ # @param [Version] version Version that contains the resource
1034
+ # @param [Response] response Response from the API
1035
+ # @param [Hash] solution Path solution for the resource
1036
+ # @return [ConversationPage] ConversationPage
1037
+ def initialize(version, response, solution)
1038
+
1039
+ apiV1Version = ApiV1Version.new version.domain, version
1040
+ super(apiV1Version, response)
1041
+
1042
+ # Path Solution
1043
+ @solution = solution
1044
+ end
1045
+
1046
+ ##
1047
+ # Build an instance of ConversationInstance
1048
+ # @param [Hash] payload Payload response from the API
1049
+ # @return [ConversationInstance] ConversationInstance
1050
+ def get_instance(payload)
1051
+ ConversationInstance.new(@version, payload)
1052
+ end
1053
+
1054
+ ##
1055
+ # Provide a user friendly representation
1056
+ def to_s
1057
+ '<Twilio.Conversations.V2.ConversationPage>'
1058
+ end
1059
+ end
1060
+
1061
+ class ConversationPageMetadata < PageMetadata
1062
+ attr_reader :conversation_page
1063
+
1064
+ def initialize(version, response, solution, limit)
1065
+ super(version, response)
1066
+ @conversation_page = []
1067
+ @limit = limit
1068
+ key = get_key(response.body)
1069
+ records = 0
1070
+ while( limit != :unset && records < limit )
1071
+ @conversation_page << ConversationListResponse.new(version, @payload, key, limit - records)
1072
+ @payload = self.next_page
1073
+ break unless @payload
1074
+ records += (@payload.body[key] || []).size
1075
+ end
1076
+ # Path Solution
1077
+ @solution = solution
1078
+ end
1079
+
1080
+ def each
1081
+ @conversation_page.each do |record|
1082
+ yield record
1083
+ end
1084
+ end
1085
+
1086
+ def to_s
1087
+ '<Twilio::REST::Conversations::V2PageMetadata>';
1088
+ end
1089
+ end
1090
+ class ConversationListResponse < InstanceListResource
1091
+
1092
+ # @param [Array<ConversationInstance>] instance
1093
+ # @param [Hash{String => Object}] headers
1094
+ # @param [Integer] status_code
1095
+ def initialize(version, payload, key, limit = :unset)
1096
+ data_list = payload.body[key] || []
1097
+ if limit != :unset
1098
+ data_list = data_list[0, limit]
1099
+ end
1100
+ @conversation = data_list.map do |data|
1101
+ ConversationInstance.new(version, data)
1102
+ end
1103
+ @headers = payload.headers
1104
+ @status_code = payload.status_code
1105
+ end
1106
+
1107
+ def conversation
1108
+ @conversation
1109
+ end
1110
+
1111
+ def headers
1112
+ @headers
1113
+ end
1114
+
1115
+ def status_code
1116
+ @status_code
1117
+ end
1118
+ end
1119
+
1120
+ class ConversationInstance < InstanceResource
1121
+ ##
1122
+ # Initialize the ConversationInstance
1123
+ # @param [Version] version Version that contains the resource
1124
+ # @param [Hash] payload payload that contains response from Twilio
1125
+ # @param [String] account_sid The SID of the
1126
+ # {Account}[https://www.twilio.com/docs/iam/api/account] that created this Conversation
1127
+ # resource.
1128
+ # @param [String] sid The SID of the Call resource to fetch.
1129
+ # @return [ConversationInstance] ConversationInstance
1130
+ def initialize(version, payload , sid: nil)
1131
+
1132
+ apiV1Version = ApiV1Version.new version.domain, version
1133
+ super(apiV1Version)
1134
+
1135
+ # Marshaled Properties
1136
+ @properties = {
1137
+ 'id' => payload['id'],
1138
+ 'account_id' => payload['account_id'],
1139
+ 'configuration_id' => payload['configuration_id'],
1140
+ 'status' => payload['status'],
1141
+ 'name' => payload['name'],
1142
+ 'created_at' => Twilio.deserialize_iso8601_datetime(payload['created_at']),
1143
+ 'updated_at' => Twilio.deserialize_iso8601_datetime(payload['updated_at']),
1144
+ 'configuration' => payload['configuration'],
1145
+ 'participants' => payload['participants'],
1146
+ 'status_url' => payload['status_url'],
1147
+ 'related' => payload['related'],
1148
+ 'display_name' => payload['display_name'],
1149
+ 'description' => payload['description'],
1150
+ 'conversation_grouping_type' => payload['conversation_grouping_type'],
1151
+ 'memory_store_id' => payload['memory_store_id'],
1152
+ 'channel_settings' => payload['channel_settings'],
1153
+ 'status_callbacks' => payload['status_callbacks'],
1154
+ 'intelligence_configuration_ids' => payload['intelligence_configuration_ids'],
1155
+ 'memory_extraction_enabled' => payload['memory_extraction_enabled'],
1156
+ 'conversations_v1_bridge' => payload['conversations_v1_bridge'],
1157
+ 'version' => payload['version'],
1158
+ }
1159
+
1160
+ # Context
1161
+ @instance_context = nil
1162
+ @params = { 'sid' => sid || @properties['sid'] , }
1163
+ end
1164
+
1165
+ ##
1166
+ # Generate an instance context for the instance, the context is capable of
1167
+ # performing various actions. All instance actions are proxied to the context
1168
+ # @return [ConversationContext] CallContext for this CallInstance
1169
+ def context
1170
+ unless @instance_context
1171
+ @instance_context = ConversationContext.new(@version , @params['sid'])
1172
+ end
1173
+ @instance_context
1174
+ end
1175
+
1176
+ ##
1177
+ # @return [String] Conversation ID.
1178
+ def id
1179
+ @properties['id']
1180
+ end
1181
+
1182
+ ##
1183
+ # @return [String] Account ID.
1184
+ def account_id
1185
+ @properties['account_id']
1186
+ end
1187
+
1188
+ ##
1189
+ # @return [String] Configuration ID.
1190
+ def configuration_id
1191
+ @properties['configuration_id']
1192
+ end
1193
+
1194
+ ##
1195
+ # @return [String] Conversation status.
1196
+ def status
1197
+ @properties['status']
1198
+ end
1199
+
1200
+ ##
1201
+ # @return [String] Conversation name.
1202
+ def name
1203
+ @properties['name']
1204
+ end
1205
+
1206
+ ##
1207
+ # @return [Time] Timestamp when this Conversation was created.
1208
+ def created_at
1209
+ @properties['created_at']
1210
+ end
1211
+
1212
+ ##
1213
+ # @return [Time] Timestamp when this Conversation was last updated.
1214
+ def updated_at
1215
+ @properties['updated_at']
1216
+ end
1217
+
1218
+ ##
1219
+ # @return [ListConversationByAccount200ResponseConversationsConfiguration]
1220
+ def configuration
1221
+ @properties['configuration']
1222
+ end
1223
+
1224
+ ##
1225
+ # @return [Array<ConversationsV2Participant>] Participants in this Conversation.
1226
+ def participants
1227
+ @properties['participants']
1228
+ end
1229
+
1230
+ ##
1231
+ # @return [String] URL to poll for operation status.
1232
+ def status_url
1233
+ @properties['status_url']
1234
+ end
1235
+
1236
+ ##
1237
+ # @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
1238
+ def related
1239
+ @properties['related']
1240
+ end
1241
+
1242
+ ##
1243
+ # @return [String] A human-readable name for the configuration. Limited to 32 characters.
1244
+ def display_name
1245
+ @properties['display_name']
1246
+ end
1247
+
1248
+ ##
1249
+ # @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.
1250
+ def description
1251
+ @properties['description']
1252
+ end
1253
+
1254
+ ##
1255
+ # @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.
1256
+ def conversation_grouping_type
1257
+ @properties['conversation_grouping_type']
1258
+ end
1259
+
1260
+ ##
1261
+ # @return [String] Memory Store ID for Profile resolution.
1262
+ def memory_store_id
1263
+ @properties['memory_store_id']
1264
+ end
1265
+
1266
+ ##
1267
+ # @return [Hash<String, ConversationsV2ChannelSetting>] Channel-specific configuration settings by channel type. Keys should be valid channel types (`VOICE`, `SMS`, `RCS`, `WHATSAPP`, `CHAT`).
1268
+ def channel_settings
1269
+ @properties['channel_settings']
1270
+ end
1271
+
1272
+ ##
1273
+ # @return [Array<ConversationsV2StatusCallbackConfig>] List of default webhook configurations applied to Conversations under this Configuration.
1274
+ def status_callbacks
1275
+ @properties['status_callbacks']
1276
+ end
1277
+
1278
+ ##
1279
+ # @return [Array<String>] A list of Conversational Intelligence configuration IDs.
1280
+ def intelligence_configuration_ids
1281
+ @properties['intelligence_configuration_ids']
1282
+ end
1283
+
1284
+ ##
1285
+ # @return [Boolean] Whether memory extraction is enabled for conversations under this configuration. Defaults to false.
1286
+ def memory_extraction_enabled
1287
+ @properties['memory_extraction_enabled']
1288
+ end
1289
+
1290
+ ##
1291
+ # @return [ConversationsV2ConversationsV1Bridge]
1292
+ def conversations_v1_bridge
1293
+ @properties['conversations_v1_bridge']
1294
+ end
1295
+
1296
+ ##
1297
+ # @return [String] Version number used for optimistic locking.
1298
+ def version
1299
+ @properties['version']
1300
+ end
1301
+
1302
+ ##
1303
+ # Delete the ConversationInstance
1304
+ # @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.
1305
+ # @return [Boolean] True if delete succeeds, false otherwise
1306
+ def delete(
1307
+ idempotency_key: :unset
1308
+ )
1309
+
1310
+ context.delete(
1311
+ idempotency_key: idempotency_key,
1312
+ )
1313
+ end
1314
+
1315
+ ##
1316
+ # Fetch the ConversationInstance
1317
+ # @return [ConversationInstance] Fetched ConversationInstance
1318
+ def fetch
1319
+
1320
+ context.fetch
1321
+ end
1322
+
1323
+ ##
1324
+ # Patch the ConversationInstance
1325
+ # @param [PatchConversationByIdRequest] patch_conversation_by_id_request The conversation fields to update
1326
+ # @return [ConversationInstance] Patched ConversationInstance
1327
+ def patch(patch_conversation_by_id_request: :unset
1328
+ )
1329
+
1330
+ context.patch(
1331
+ patch_conversation_by_id_request: patch_conversation_by_id_request,
1332
+ )
1333
+ end
1334
+
1335
+ ##
1336
+ # Update the ConversationInstance
1337
+ # @param [UpdateConversationByIdRequest] update_conversation_by_id_request The conversation to update
1338
+ # @return [ConversationInstance] Updated ConversationInstance
1339
+ def update(update_conversation_by_id_request: :unset
1340
+ )
1341
+
1342
+ context.update(
1343
+ update_conversation_by_id_request: update_conversation_by_id_request,
1344
+ )
1345
+ end
1346
+
1347
+ ##
1348
+ # Provide a user friendly representation
1349
+ def to_s
1350
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
1351
+ "<Twilio.Conversations.V2.ConversationInstance #{values}>"
1352
+ end
1353
+
1354
+ ##
1355
+ # Provide a detailed, user friendly representation
1356
+ def inspect
1357
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
1358
+ "<Twilio.Conversations.V2.ConversationInstance #{values}>"
1359
+ end
1360
+ end
1361
+
1362
+ end
1363
+ end
1364
+ end
1365
+ end