twilio-ruby 7.10.7 → 7.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test-and-deploy.yml +43 -67
  3. data/.gitignore +0 -1
  4. data/CHANGES.md +267 -0
  5. data/Gemfile +2 -0
  6. data/Gemfile.lock +154 -0
  7. data/README.md +3 -3
  8. data/Rakefile +1 -1
  9. data/lib/rack/twilio_webhook_authentication.rb +45 -2
  10. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +25 -65
  11. data/lib/twilio-ruby/rest/accounts/v1/bulk_consents.rb +0 -59
  12. data/lib/twilio-ruby/rest/accounts/v1/bulk_contacts.rb +0 -59
  13. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +0 -59
  14. data/lib/twilio-ruby/rest/accounts/v1/messaging_geopermissions.rb +0 -59
  15. data/lib/twilio-ruby/rest/accounts/v1/safelist.rb +0 -59
  16. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +48 -71
  17. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +0 -59
  18. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +0 -59
  19. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +0 -59
  20. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +0 -59
  21. data/lib/twilio-ruby/rest/api/v2010/account/call/transcription.rb +0 -59
  22. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +0 -59
  23. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +0 -59
  24. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +6 -0
  25. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +56 -2
  26. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +0 -59
  27. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +6 -0
  28. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +0 -59
  29. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +0 -59
  30. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload/data.rb +0 -59
  31. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls.rb +0 -59
  32. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations.rb +0 -59
  33. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +0 -59
  34. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +0 -59
  35. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +0 -59
  36. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +0 -59
  37. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +0 -59
  38. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +0 -59
  39. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +0 -59
  40. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +0 -59
  41. data/lib/twilio-ruby/rest/chat/v3/channel.rb +0 -59
  42. data/lib/twilio-ruby/rest/client.rb +0 -5
  43. data/lib/twilio-ruby/rest/content/v1/content/approval_create.rb +11 -60
  44. data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +0 -59
  45. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +0 -59
  46. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +0 -59
  47. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +10 -10
  48. data/lib/twilio-ruby/rest/conversations/v1/conversation_with_participants.rb +0 -59
  49. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +0 -59
  50. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +0 -59
  51. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +0 -59
  52. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +10 -10
  53. data/lib/twilio-ruby/rest/conversations/v1/service/conversation_with_participants.rb +0 -59
  54. data/lib/twilio-ruby/rest/conversations/v2/action.rb +2 -61
  55. data/lib/twilio-ruby/rest/conversations/v2/communication.rb +43 -21
  56. data/lib/twilio-ruby/rest/conversations/v2/configuration.rb +584 -21
  57. data/lib/twilio-ruby/rest/conversations/v2/conversation.rb +28 -28
  58. data/lib/twilio-ruby/rest/conversations/v2/operation.rb +10 -69
  59. data/lib/twilio-ruby/rest/conversations/v2/participant.rb +58 -58
  60. data/lib/twilio-ruby/rest/conversations/v2.rb +55 -49
  61. data/lib/twilio-ruby/rest/events/v1/schema.rb +0 -59
  62. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +0 -59
  63. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +0 -59
  64. data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +12 -14
  65. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +0 -59
  66. data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +12 -14
  67. data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +12 -14
  68. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +12 -14
  69. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +2 -4
  70. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +12 -14
  71. data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +12 -14
  72. data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +0 -59
  73. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +0 -59
  74. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +0 -59
  75. data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +0 -59
  76. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_transfer.rb +0 -59
  77. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +0 -59
  78. data/lib/twilio-ruby/rest/flex_api/v1/plugin/plugin_versions.rb +2 -4
  79. data/lib/twilio-ruby/rest/flex_api/v1/plugin.rb +2 -4
  80. data/lib/twilio-ruby/rest/flex_api/v1/plugin_archive.rb +0 -59
  81. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration/configured_plugin.rb +2 -4
  82. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration.rb +2 -4
  83. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration_archive.rb +0 -59
  84. data/lib/twilio-ruby/rest/flex_api/v1/plugin_release.rb +2 -4
  85. data/lib/twilio-ruby/rest/flex_api/v1/plugin_version_archive.rb +0 -59
  86. data/lib/twilio-ruby/rest/flex_api/v1/provisioning_status.rb +0 -59
  87. data/lib/twilio-ruby/rest/flex_api/v2/flex_user.rb +0 -59
  88. data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +0 -59
  89. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +0 -59
  90. data/lib/twilio-ruby/rest/iam/v1/api_key.rb +0 -59
  91. data/lib/twilio-ruby/rest/iam/v1/new_api_key.rb +2 -61
  92. data/lib/twilio-ruby/rest/iam/v1/o_auth_app.rb +15 -61
  93. data/lib/twilio-ruby/rest/iam/v1/token.rb +0 -59
  94. data/lib/twilio-ruby/rest/iam_base.rb +6 -1
  95. data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +0 -59
  96. data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +7 -59
  97. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +7 -0
  98. data/lib/twilio-ruby/rest/insights/v1/call.rb +0 -59
  99. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +7 -0
  100. data/lib/twilio-ruby/rest/insights/v1/setting.rb +0 -59
  101. data/lib/twilio-ruby/rest/insights/v2/inbound.rb +2 -261
  102. data/lib/twilio-ruby/rest/insights/v2/inbound_report.rb +258 -0
  103. data/lib/twilio-ruby/rest/insights/v2/outbound.rb +18 -299
  104. data/lib/twilio-ruby/rest/insights/v2/outbound_report.rb +258 -0
  105. data/lib/twilio-ruby/rest/insights/v2/report.rb +27 -184
  106. data/lib/twilio-ruby/rest/insights/v2.rb +14 -4
  107. data/lib/twilio-ruby/rest/insights/v3/metadata.rb +1 -60
  108. data/lib/twilio-ruby/rest/insights/v3/query.rb +1 -60
  109. data/lib/twilio-ruby/rest/insights/v3/query_job.rb +654 -0
  110. data/lib/twilio-ruby/rest/insights/v3/result.rb +195 -0
  111. data/lib/twilio-ruby/rest/insights/v3.rb +17 -1
  112. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachment.rb +0 -59
  113. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachments.rb +0 -59
  114. data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_operator_results.rb +0 -59
  115. data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_sentences.rb +0 -59
  116. data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +0 -59
  117. data/lib/twilio-ruby/rest/intelligence/v3/conversation.rb +8 -8
  118. data/lib/twilio-ruby/rest/intelligence/v3/rule_execution.rb +443 -0
  119. data/lib/twilio-ruby/rest/intelligence/v3.rb +6 -0
  120. data/lib/twilio-ruby/rest/knowledge/v1/knowledge/knowledge_status.rb +0 -59
  121. data/lib/twilio-ruby/rest/knowledge/v2/chunk.rb +28 -0
  122. data/lib/twilio-ruby/rest/knowledge/v2/knowledge.rb +38 -0
  123. data/lib/twilio-ruby/rest/knowledge/v2/operation.rb +0 -59
  124. data/lib/twilio-ruby/rest/knowledge/v2/search.rb +8 -176
  125. data/lib/twilio-ruby/rest/knowledge/v2.rb +1 -2
  126. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +0 -59
  127. data/lib/twilio-ruby/rest/lookups/v2/bucket.rb +0 -59
  128. data/lib/twilio-ruby/rest/lookups/v2/lookup_override.rb +0 -59
  129. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +0 -59
  130. data/lib/twilio-ruby/rest/lookups/v2/query.rb +0 -59
  131. data/lib/twilio-ruby/rest/lookups/v2/rate_limit.rb +0 -59
  132. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_usage.rb +0 -59
  133. data/lib/twilio-ruby/rest/marketplace/v1/module_data.rb +0 -59
  134. data/lib/twilio-ruby/rest/marketplace/v1/module_data_management.rb +0 -59
  135. data/lib/twilio-ruby/rest/marketplace/v1/referral_conversion.rb +0 -59
  136. data/lib/twilio-ruby/rest/memory/v1/bulk.rb +9 -177
  137. data/lib/twilio-ruby/rest/memory/v1/conversation_summary.rb +15 -9
  138. data/lib/twilio-ruby/rest/memory/v1/data_mapping.rb +6 -12
  139. data/lib/twilio-ruby/rest/memory/v1/identifier.rb +1 -81
  140. data/lib/twilio-ruby/rest/memory/v1/identity_resolution_setting.rb +11 -191
  141. data/lib/twilio-ruby/rest/memory/v1/import.rb +28 -5
  142. data/lib/twilio-ruby/rest/memory/v1/lookup.rb +1 -60
  143. data/lib/twilio-ruby/rest/memory/v1/observation.rb +72 -22
  144. data/lib/twilio-ruby/rest/memory/v1/operation.rb +1 -60
  145. data/lib/twilio-ruby/rest/memory/v1/profile.rb +2 -2
  146. data/lib/twilio-ruby/rest/memory/v1/recall.rb +1 -60
  147. data/lib/twilio-ruby/rest/memory/v1/revision.rb +3 -5
  148. data/lib/twilio-ruby/rest/memory/v1/store.rb +1 -1
  149. data/lib/twilio-ruby/rest/memory/v1/trait.rb +1 -1
  150. data/lib/twilio-ruby/rest/memory/v1/trait_group.rb +56 -6
  151. data/lib/twilio-ruby/rest/memory/v1.rb +3 -46
  152. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +0 -59
  153. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +0 -18
  154. data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +0 -59
  155. data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +0 -59
  156. data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +0 -59
  157. data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +0 -59
  158. data/lib/twilio-ruby/rest/messaging/v1/domain_validate_dn.rb +0 -59
  159. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +0 -59
  160. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +0 -59
  161. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +0 -59
  162. data/lib/twilio-ruby/rest/messaging/v1/request_managed_cert.rb +0 -59
  163. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +2 -4
  164. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +0 -59
  165. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +0 -59
  166. data/lib/twilio-ruby/rest/messaging/v2/channels_sender.rb +23 -4
  167. data/lib/twilio-ruby/rest/messaging/v2/domain_certs.rb +0 -59
  168. data/lib/twilio-ruby/rest/messaging/v2/typing_indicator.rb +0 -59
  169. data/lib/twilio-ruby/rest/messaging/v3/typing_indicator.rb +4 -63
  170. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +0 -59
  171. data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +0 -59
  172. data/lib/twilio-ruby/rest/numbers/v1/eligibility.rb +0 -59
  173. data/lib/twilio-ruby/rest/numbers/v1/embedded_session.rb +0 -59
  174. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in.rb +0 -59
  175. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_phone_number.rb +0 -59
  176. data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +0 -59
  177. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration.rb +0 -59
  178. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_delete.rb +0 -59
  179. data/lib/twilio-ruby/rest/numbers/v1/sender_id_registration.rb +0 -59
  180. data/lib/twilio-ruby/rest/numbers/v1/sms_verification.rb +172 -0
  181. data/lib/twilio-ruby/rest/numbers/v1/sms_verification_check.rb +179 -0
  182. data/lib/twilio-ruby/rest/numbers/v1/voice_verification.rb +186 -0
  183. data/lib/twilio-ruby/rest/numbers/v1/voice_verification_check.rb +165 -0
  184. data/lib/twilio-ruby/rest/numbers/v1/webhook.rb +0 -59
  185. data/lib/twilio-ruby/rest/numbers/v1.rb +24 -0
  186. data/lib/twilio-ruby/rest/numbers/v2/bulk_hosted_number_order.rb +0 -59
  187. data/lib/twilio-ruby/rest/numbers/v2/bundle_clone.rb +0 -59
  188. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +0 -59
  189. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +0 -59
  190. data/lib/twilio-ruby/rest/numbers/v3/hosted_number_order.rb +0 -59
  191. data/lib/twilio-ruby/rest/oauth/v1/authorize.rb +0 -59
  192. data/lib/twilio-ruby/rest/oauth/v1/token.rb +0 -59
  193. data/lib/twilio-ruby/rest/oauth/v2/authorize.rb +14 -61
  194. data/lib/twilio-ruby/rest/oauth/v2/oauth_authorization_server.rb +200 -0
  195. data/lib/twilio-ruby/rest/oauth/v2/token.rb +10 -63
  196. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +0 -59
  197. data/lib/twilio-ruby/rest/preview_iam/v1/authorize.rb +0 -59
  198. data/lib/twilio-ruby/rest/preview_iam/v1/token.rb +0 -59
  199. data/lib/twilio-ruby/rest/preview_iam/versionless/organization.rb +0 -78
  200. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +0 -59
  201. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +0 -59
  202. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +0 -59
  203. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +0 -59
  204. data/lib/twilio-ruby/rest/pricing/v2/number.rb +0 -59
  205. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +0 -59
  206. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +0 -59
  207. data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +0 -59
  208. data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +0 -59
  209. data/lib/twilio-ruby/rest/routes/v2/trunk.rb +0 -59
  210. data/lib/twilio-ruby/rest/routes/v3/phone_number.rb +406 -0
  211. data/lib/twilio-ruby/rest/routes/v3.rb +50 -0
  212. data/lib/twilio-ruby/rest/routes_base.rb +6 -1
  213. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +0 -59
  214. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +0 -59
  215. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +0 -59
  216. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +0 -59
  217. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +0 -59
  218. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +0 -59
  219. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +0 -59
  220. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +0 -59
  221. data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +0 -59
  222. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +0 -59
  223. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +0 -59
  224. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_bulk_real_time_statistics.rb +0 -59
  225. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +0 -59
  226. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +0 -59
  227. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +0 -59
  228. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +0 -59
  229. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +0 -59
  230. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +0 -59
  231. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +0 -59
  232. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +0 -59
  233. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +0 -59
  234. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +0 -59
  235. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +0 -59
  236. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +0 -59
  237. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +0 -59
  238. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +0 -59
  239. data/lib/twilio-ruby/rest/trusthub/v1/a2p_brand_registration.rb +271 -0
  240. data/lib/twilio-ruby/rest/trusthub/v1/a2p_brand_registration_embedded_session.rb +174 -0
  241. data/lib/twilio-ruby/rest/trusthub/v1/a2p_campaign_registration.rb +262 -0
  242. data/lib/twilio-ruby/rest/trusthub/v1/a2p_campaign_registration_embedded_session.rb +174 -0
  243. data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +0 -59
  244. data/lib/twilio-ruby/rest/trusthub/v1/compliance_registration_inquiries.rb +0 -59
  245. data/lib/twilio-ruby/rest/trusthub/v1/compliance_tollfree_inquiries.rb +0 -59
  246. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles_provisional_copy.rb +386 -0
  247. data/lib/twilio-ruby/rest/trusthub/v1/trust_products_provisional_copy.rb +386 -0
  248. data/lib/twilio-ruby/rest/trusthub/v1.rb +74 -0
  249. data/lib/twilio-ruby/rest/verify/v2/form.rb +0 -59
  250. data/lib/twilio-ruby/rest/verify/v2/safelist.rb +0 -59
  251. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +0 -59
  252. data/lib/twilio-ruby/rest/verify/v2/service/approve_challenge.rb +0 -59
  253. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +0 -59
  254. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +0 -59
  255. data/lib/twilio-ruby/rest/verify/v2/service/new_challenge.rb +3 -62
  256. data/lib/twilio-ruby/rest/verify/v2/service/new_factor.rb +0 -59
  257. data/lib/twilio-ruby/rest/verify/v2/service/new_verify_factor.rb +0 -59
  258. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +8 -61
  259. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +0 -59
  260. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +0 -59
  261. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +0 -59
  262. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +0 -59
  263. data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +0 -59
  264. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +0 -59
  265. data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +0 -59
  266. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +0 -59
  267. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +0 -59
  268. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +0 -59
  269. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +0 -59
  270. data/lib/twilio-ruby/rest/voice/v2/account_default_configuration.rb +497 -0
  271. data/lib/twilio-ruby/rest/voice/v2/configuration/default.rb +297 -0
  272. data/lib/twilio-ruby/rest/voice/v2/configuration.rb +353 -0
  273. data/lib/twilio-ruby/rest/voice/v2/recording.rb +557 -0
  274. data/lib/twilio-ruby/rest/voice/v2/transcription.rb +532 -0
  275. data/lib/twilio-ruby/rest/voice/v2/type.rb +459 -0
  276. data/lib/twilio-ruby/rest/voice/v2.rb +141 -0
  277. data/lib/twilio-ruby/rest/voice/v3/transcription.rb +259 -50
  278. data/lib/twilio-ruby/rest/voice_base.rb +5 -0
  279. data/lib/twilio-ruby/twiml/voice_response.rb +6 -68
  280. data/lib/twilio-ruby/version.rb +1 -1
  281. data/twilio-ruby.gemspec +1 -1
  282. metadata +36 -22
  283. data/lib/twilio-ruby/rest/assistants/v1/assistant/assistants_knowledge.rb +0 -558
  284. data/lib/twilio-ruby/rest/assistants/v1/assistant/assistants_tool.rb +0 -558
  285. data/lib/twilio-ruby/rest/assistants/v1/assistant/feedback.rb +0 -431
  286. data/lib/twilio-ruby/rest/assistants/v1/assistant/message.rb +0 -296
  287. data/lib/twilio-ruby/rest/assistants/v1/assistant.rb +0 -927
  288. data/lib/twilio-ruby/rest/assistants/v1/knowledge/chunk.rb +0 -325
  289. data/lib/twilio-ruby/rest/assistants/v1/knowledge/knowledge_status.rb +0 -349
  290. data/lib/twilio-ruby/rest/assistants/v1/knowledge.rb +0 -871
  291. data/lib/twilio-ruby/rest/assistants/v1/policy.rb +0 -364
  292. data/lib/twilio-ruby/rest/assistants/v1/session/message.rb +0 -360
  293. data/lib/twilio-ruby/rest/assistants/v1/session.rb +0 -501
  294. data/lib/twilio-ruby/rest/assistants/v1/tool.rb +0 -847
  295. data/lib/twilio-ruby/rest/assistants/v1.rb +0 -104
  296. data/lib/twilio-ruby/rest/assistants.rb +0 -6
  297. data/lib/twilio-ruby/rest/assistants_base.rb +0 -38
  298. data/lib/twilio-ruby/rest/memory/v1/event.rb +0 -320
@@ -0,0 +1,443 @@
1
+ ##
2
+ # This code was generated by
3
+ # ___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
4
+ # | | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
5
+ # | |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
6
+ #
7
+ # Twilio Conversational Intelligence API
8
+ # The Conversational Intelligence API includes resources to create and manage intelligence configurations, define and run language operators, and retrieve processed conversations and operator results. * Use the Configurations resource to create and manage intelligence configurations and define rules that control how and when language operators analyze and transform conversations. * Use the Operators resource to create custom language operators or retrieve Twilio-author and custom operators. * Use the Conversations resource to retrieve conversations processed with an intelligence configuration, and the OperatorResults resource to retrieve language operator results for those conversations.
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 Intelligence < IntelligenceBase
19
+ class V3 < Version
20
+ class RuleExecutionList < ListResource
21
+
22
+ class CreateRuleExecutionRequest
23
+ # @param [intelligence_configuration_id]: [String] The Intelligence Configuration identifier to execute the Rule within.
24
+ # @param [rule_id]: [String] The rule identifier to execute within the selected Intelligence Configuration.
25
+ # @param [conversation_id]: [String] The Conversation identifier to execute the Rule against.
26
+ attr_accessor :intelligence_configuration_id, :rule_id, :conversation_id
27
+ def initialize(payload)
28
+ @intelligence_configuration_id = payload["intelligence_configuration_id"]
29
+ @rule_id = payload["rule_id"]
30
+ @conversation_id = payload["conversation_id"]
31
+ end
32
+ def to_json(options = {})
33
+ {
34
+ "intelligenceConfigurationId": @intelligence_configuration_id,
35
+ "ruleId": @rule_id,
36
+ "conversationId": @conversation_id,
37
+ }.to_json(options)
38
+ end
39
+ end
40
+
41
+ class ExecutionDetailsCommunications
42
+ # @param [first]: [String] Communication `id` from the attached Conversation.
43
+ # @param [last]: [String] Communication `id` from the attached Conversation.
44
+ attr_accessor :first, :last
45
+ def initialize(payload)
46
+ @first = payload["first"]
47
+ @last = payload["last"]
48
+ end
49
+ def to_json(options = {})
50
+ {
51
+ "first": @first,
52
+ "last": @last,
53
+ }.to_json(options)
54
+ end
55
+ end
56
+
57
+ class ExecutionDetailsParticipants
58
+ # @param [id]: [String] The `id` of the Participant in the Conversation.
59
+ # @param [profile_id]: [String] Customer Memory Profile identifier
60
+ # @param [type]: [String] Type of participant in the conversation. Available types: - `CUSTOMER` - `HUMAN_AGENT` - `AI_AGENT` - `AGENT` - `UNKNOWN`
61
+ attr_accessor :id, :profile_id, :type
62
+ def initialize(payload)
63
+ @id = payload["id"]
64
+ @profile_id = payload["profile_id"]
65
+ @type = payload["type"]
66
+ end
67
+ def to_json(options = {})
68
+ {
69
+ "id": @id,
70
+ "profileId": @profile_id,
71
+ "type": @type,
72
+ }.to_json(options)
73
+ end
74
+ end
75
+
76
+ class ExecutionDetailsTrigger
77
+ # @param [on]: [String] The conversational lifecycle event that activated execution of the Rule. Available values are: - `COMMUNICATION`: Trigger the Rule on each communication within the Conversation. - `CONVERSATION_END`: Trigger the Rule when the Conversation moves to the `closed` state. - `CONVERSATION_INACTIVE`: Trigger the Rule when the Conversation moves to the `inactive` state.
78
+ # @param [timestamp]: [Time] Timestamp of when the trigger was activated.
79
+ attr_accessor :on, :timestamp
80
+ def initialize(payload)
81
+ @on = payload["on"]
82
+ @timestamp = payload["timestamp"]
83
+ end
84
+ def to_json(options = {})
85
+ {
86
+ "on": @on,
87
+ "timestamp": @timestamp,
88
+ }.to_json(options)
89
+ end
90
+ end
91
+
92
+ class ExtractionResultResultEntities
93
+ # @param [text]: [String] The actual text of the extracted entity as it appears in the Conversation.
94
+ # @param [label]: [String] The label for the extracted entity (e.g., `PERSON`, `LOCATION`).
95
+ attr_accessor :text, :label
96
+ def initialize(payload)
97
+ @text = payload["text"]
98
+ @label = payload["label"]
99
+ end
100
+ def to_json(options = {})
101
+ {
102
+ "text": @text,
103
+ "label": @label,
104
+ }.to_json(options)
105
+ end
106
+ end
107
+
108
+ class ResolvedContext
109
+ # @param [memory]: [ResolvedContextMemory]
110
+ # @param [knowledge]: [ResolvedContextKnowledge]
111
+ attr_accessor :memory, :knowledge
112
+ def initialize(payload)
113
+ @memory = payload["memory"]
114
+ @knowledge = payload["knowledge"]
115
+ end
116
+ def to_json(options = {})
117
+ {
118
+ "memory": @memory,
119
+ "knowledge": @knowledge,
120
+ }.to_json(options)
121
+ end
122
+ end
123
+
124
+ class ResolvedContextKnowledge
125
+ # @param [sources]: [Array<ResolvedContextKnowledgeSources>]
126
+ attr_accessor :sources
127
+ def initialize(payload)
128
+ @sources = payload["sources"]
129
+ end
130
+ def to_json(options = {})
131
+ {
132
+ "sources": @sources,
133
+ }.to_json(options)
134
+ end
135
+ end
136
+
137
+ class ResolvedContextKnowledgeSources
138
+ # @param [base_id]: [String] Knowledge base identifier
139
+ # @param [source_id]: [String] Knowledge source identifier
140
+ attr_accessor :base_id, :source_id
141
+ def initialize(payload)
142
+ @base_id = payload["base_id"]
143
+ @source_id = payload["source_id"]
144
+ end
145
+ def to_json(options = {})
146
+ {
147
+ "baseId": @base_id,
148
+ "sourceId": @source_id,
149
+ }.to_json(options)
150
+ end
151
+ end
152
+
153
+ class ResolvedContextMemory
154
+ # @param [profile_id]: [String] Customer Memory Profile identifier
155
+ # @param [memory_store_id]: [String] Customer Memory store identifier
156
+ attr_accessor :profile_id, :memory_store_id
157
+ def initialize(payload)
158
+ @profile_id = payload["profile_id"]
159
+ @memory_store_id = payload["memory_store_id"]
160
+ end
161
+ def to_json(options = {})
162
+ {
163
+ "profileId": @profile_id,
164
+ "memoryStoreId": @memory_store_id,
165
+ }.to_json(options)
166
+ end
167
+ end
168
+
169
+ class SystemMetaData
170
+ # @param [resolved_model]: [String] The underlying LLM model used for this execution.
171
+ # @param [latency_ms]: [Integer] Operator execution time in milliseconds.
172
+ # @param [input_characters]: [Integer] Number of characters in the input sent to the model. Aligns with the billing unit.
173
+ # @param [output_characters]: [Integer] Number of characters in the model's response. Aligns with the billing unit.
174
+ # @param [input_truncated]: [Boolean] Whether the conversation input was truncated to fit the model's context window.
175
+ attr_accessor :resolved_model, :latency_ms, :input_characters, :output_characters, :input_truncated
176
+ def initialize(payload)
177
+ @resolved_model = payload["resolved_model"]
178
+ @latency_ms = payload["latency_ms"]
179
+ @input_characters = payload["input_characters"]
180
+ @output_characters = payload["output_characters"]
181
+ @input_truncated = payload["input_truncated"]
182
+ end
183
+ def to_json(options = {})
184
+ {
185
+ "resolvedModel": @resolved_model,
186
+ "latencyMs": @latency_ms,
187
+ "inputCharacters": @input_characters,
188
+ "outputCharacters": @output_characters,
189
+ "inputTruncated": @input_truncated,
190
+ }.to_json(options)
191
+ end
192
+ end
193
+
194
+
195
+ ##
196
+ # Initialize the RuleExecutionList
197
+ # @param [Version] version Version that contains the resource
198
+ # @return [RuleExecutionList] RuleExecutionList
199
+ def initialize(version)
200
+
201
+ apiV1Version = ApiV1Version.new version.domain, version
202
+ super(apiV1Version)
203
+ # Path Solution
204
+ @solution = { }
205
+ @uri = "/RuleExecutions"
206
+
207
+ end
208
+ ##
209
+ # Create the RuleExecutionInstance
210
+ # @param [CreateRuleExecutionRequest] create_rule_execution_request
211
+ # @return [RuleExecutionInstance] Created RuleExecutionInstance
212
+ def create(create_rule_execution_request: nil
213
+ )
214
+
215
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
216
+ headers['Content-Type'] = 'application/json'
217
+
218
+
219
+
220
+
221
+ payload = @version.create('POST', @uri, headers: headers, data: create_rule_execution_request.to_json)
222
+ RuleExecutionInstance.new(
223
+ @version,
224
+ payload,
225
+ )
226
+ end
227
+
228
+ ##
229
+ # Create the RuleExecutionInstanceMetadata
230
+ # @param [CreateRuleExecutionRequest] create_rule_execution_request
231
+ # @return [RuleExecutionInstance] Created RuleExecutionInstance
232
+ def create_with_metadata(create_rule_execution_request: nil
233
+ )
234
+
235
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
236
+ headers['Content-Type'] = 'application/json'
237
+
238
+
239
+
240
+
241
+ response = @version.create_with_metadata('POST', @uri, headers: headers, data: create_rule_execution_request.to_json)
242
+ rule_execution_instance = RuleExecutionInstance.new(
243
+ @version,
244
+ response.body,
245
+ )
246
+ RuleExecutionInstanceMetadata.new(
247
+ @version,
248
+ rule_execution_instance,
249
+ response.headers,
250
+ response.status_code
251
+ )
252
+ end
253
+
254
+
255
+
256
+
257
+ # Provide a user friendly representation
258
+ def to_s
259
+ '#<Twilio.Intelligence.V3.RuleExecutionList>'
260
+ end
261
+ end
262
+
263
+ class RuleExecutionPage < TokenPage
264
+ ##
265
+ # Initialize the RuleExecutionPage
266
+ # @param [Version] version Version that contains the resource
267
+ # @param [Response] response Response from the API
268
+ # @param [Hash] solution Path solution for the resource
269
+ # @return [RuleExecutionPage] RuleExecutionPage
270
+ def initialize(version, response, solution)
271
+
272
+ apiV1Version = ApiV1Version.new version.domain, version
273
+ super(apiV1Version, response)
274
+
275
+ # Path Solution
276
+ @solution = solution
277
+ end
278
+
279
+ ##
280
+ # Build an instance of RuleExecutionInstance
281
+ # @param [Hash] payload Payload response from the API
282
+ # @return [RuleExecutionInstance] RuleExecutionInstance
283
+ def get_instance(payload)
284
+ RuleExecutionInstance.new(@version, payload)
285
+ end
286
+
287
+ ##
288
+ # Provide a user friendly representation
289
+ def to_s
290
+ '<Twilio.Intelligence.V3.RuleExecutionPage>'
291
+ end
292
+ end
293
+
294
+ class RuleExecutionInstance < InstanceResource
295
+ ##
296
+ # Initialize the RuleExecutionInstance
297
+ # @param [Version] version Version that contains the resource
298
+ # @param [Hash] payload payload that contains response from Twilio
299
+ # @param [String] account_sid The SID of the
300
+ # {Account}[https://www.twilio.com/docs/iam/api/account] that created this RuleExecution
301
+ # resource.
302
+ # @param [String] sid The SID of the Call resource to fetch.
303
+ # @return [RuleExecutionInstance] RuleExecutionInstance
304
+ def initialize(version, payload )
305
+
306
+ apiV1Version = ApiV1Version.new version.domain, version
307
+ super(apiV1Version)
308
+
309
+ # Marshaled Properties
310
+ @properties = {
311
+ 'code' => payload['code'],
312
+ 'message' => payload['message'],
313
+ 'http_status_code' => payload['http_status_code'],
314
+ 'user_error' => payload['user_error'],
315
+ 'params' => payload['params'],
316
+ 'output_format' => payload['output_format'],
317
+ 'id' => payload['id'],
318
+ 'account_id' => payload['account_id'],
319
+ 'intelligence_configuration' => payload['intelligence_configuration'],
320
+ 'conversation_id' => payload['conversation_id'],
321
+ 'operator' => payload['operator'],
322
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
323
+ 'reference_ids' => payload['reference_ids'],
324
+ 'execution_details' => payload['execution_details'],
325
+ 'metadata' => payload['metadata'],
326
+ 'result' => payload['result'],
327
+ }
328
+ end
329
+
330
+
331
+ ##
332
+ # @return [String] Twilio-specific error code
333
+ def code
334
+ @properties['code']
335
+ end
336
+
337
+ ##
338
+ # @return [String] A human readable error message
339
+ def message
340
+ @properties['message']
341
+ end
342
+
343
+ ##
344
+ # @return [String] HTTP response status code
345
+ def http_status_code
346
+ @properties['http_status_code']
347
+ end
348
+
349
+ ##
350
+ # @return [Boolean] Whether the error is a user error (true) or a system error (false)
351
+ def user_error
352
+ @properties['user_error']
353
+ end
354
+
355
+ ##
356
+ # @return [Hash<String, String>] A map of parameters related to the error, for example, a `params.twilioErrorCodeUrl` might hold a URL or link to additional information
357
+ def params
358
+ @properties['params']
359
+ end
360
+
361
+ ##
362
+ # @return [String] The output format set on the Operator that generated this result. Determines the structure of the `result` object.
363
+ def output_format
364
+ @properties['output_format']
365
+ end
366
+
367
+ ##
368
+ # @return [String] A unique identifier for the Operator Result. Assigned by Twilio (TTID).
369
+ def id
370
+ @properties['id']
371
+ end
372
+
373
+ ##
374
+ # @return [String] The ID of the Account that created the Language Operator.
375
+ def account_id
376
+ @properties['account_id']
377
+ end
378
+
379
+ ##
380
+ # @return [IntelligenceConfigurationReference]
381
+ def intelligence_configuration
382
+ @properties['intelligence_configuration']
383
+ end
384
+
385
+ ##
386
+ # @return [String] The `id` of the Conversation attached to the Operator Result.
387
+ def conversation_id
388
+ @properties['conversation_id']
389
+ end
390
+
391
+ ##
392
+ # @return [OperatorReference]
393
+ def operator
394
+ @properties['operator']
395
+ end
396
+
397
+ ##
398
+ # @return [Time] Timestamp for when the Operator Result was created.
399
+ def date_created
400
+ @properties['date_created']
401
+ end
402
+
403
+ ##
404
+ # @return [Array<String>] The `id`s of objects related to this Operator Result.
405
+ def reference_ids
406
+ @properties['reference_ids']
407
+ end
408
+
409
+ ##
410
+ # @return [ExecutionDetails]
411
+ def execution_details
412
+ @properties['execution_details']
413
+ end
414
+
415
+ ##
416
+ # @return [OperatorResultsResponseBaseMetadata]
417
+ def metadata
418
+ @properties['metadata']
419
+ end
420
+
421
+ ##
422
+ # @return [ExtractionResultResult]
423
+ def result
424
+ @properties['result']
425
+ end
426
+
427
+ ##
428
+ # Provide a user friendly representation
429
+ def to_s
430
+ "<Twilio.Intelligence.V3.RuleExecutionInstance>"
431
+ end
432
+
433
+ ##
434
+ # Provide a detailed, user friendly representation
435
+ def inspect
436
+ "<Twilio.Intelligence.V3.RuleExecutionInstance>"
437
+ end
438
+ end
439
+
440
+ end
441
+ end
442
+ end
443
+ end
@@ -25,6 +25,7 @@ module Twilio
25
25
  @conversations = nil
26
26
  @operators = nil
27
27
  @operator_results = nil
28
+ @rule_executions = nil
28
29
  @versions = nil
29
30
  end
30
31
 
@@ -89,6 +90,11 @@ module Twilio
89
90
  end
90
91
  end
91
92
  ##
93
+ # @return [Twilio::REST::Intelligence::V3::RuleExecutionList]
94
+ def rule_executions
95
+ @rule_executions ||= RuleExecutionList.new self
96
+ end
97
+ ##
92
98
  # @param [String] id The unique identifier (TTID) of the Language Operator.
93
99
  # @param [String] version
94
100
  # @return [Twilio::REST::Intelligence::V3::VersionContext] if version was passed.
@@ -196,65 +196,6 @@ module Twilio
196
196
  end
197
197
  end
198
198
 
199
- class KnowledgeStatusPageMetadata < PageMetadata
200
- attr_reader :knowledge_status_page
201
-
202
- def initialize(version, response, solution, limit)
203
- super(version, response)
204
- @knowledge_status_page = []
205
- @limit = limit
206
- key = get_key(response.body)
207
- records = 0
208
- while( limit != :unset && records < limit )
209
- @knowledge_status_page << KnowledgeStatusListResponse.new(version, @payload, key, limit - records)
210
- @payload = self.next_page
211
- break unless @payload
212
- records += (@payload.body[key] || []).size
213
- end
214
- # Path Solution
215
- @solution = solution
216
- end
217
-
218
- def each
219
- @knowledge_status_page.each do |record|
220
- yield record
221
- end
222
- end
223
-
224
- def to_s
225
- '<Twilio::REST::Knowledge::V1PageMetadata>';
226
- end
227
- end
228
- class KnowledgeStatusListResponse < InstanceListResource
229
-
230
- # @param [Array<KnowledgeStatusInstance>] instance
231
- # @param [Hash{String => Object}] headers
232
- # @param [Integer] status_code
233
- def initialize(version, payload, key, limit = :unset)
234
- data_list = payload.body[key] || []
235
- if limit != :unset
236
- data_list = data_list[0, limit]
237
- end
238
- @knowledge_status = data_list.map do |data|
239
- KnowledgeStatusInstance.new(version, data)
240
- end
241
- @headers = payload.headers
242
- @status_code = payload.status_code
243
- end
244
-
245
- def knowledge_status
246
- @knowledge_status
247
- end
248
-
249
- def headers
250
- @headers
251
- end
252
-
253
- def status_code
254
- @status_code
255
- end
256
- end
257
-
258
199
  class KnowledgeStatusInstance < InstanceResource
259
200
  ##
260
201
  # Initialize the KnowledgeStatusInstance
@@ -271,6 +271,10 @@ module Twilio
271
271
  @properties = {
272
272
  'content' => payload['content'],
273
273
  'created_at' => Twilio.deserialize_iso8601_datetime(payload['created_at']),
274
+ 'chunk_index' => payload['chunk_index'] == nil ? payload['chunk_index'] : payload['chunk_index'].to_i,
275
+ 'document_title' => payload['document_title'],
276
+ 'document_url' => payload['document_url'],
277
+ 'document_number' => payload['document_number'] == nil ? payload['document_number'] : payload['document_number'].to_i,
274
278
  }
275
279
  end
276
280
 
@@ -287,6 +291,30 @@ module Twilio
287
291
  @properties['created_at']
288
292
  end
289
293
 
294
+ ##
295
+ # @return [String] 0-based position of this chunk within its source document for a single ingestion run.
296
+ def chunk_index
297
+ @properties['chunk_index']
298
+ end
299
+
300
+ ##
301
+ # @return [String] Human-readable title of the source document. Web: HTML <title> from the crawled page. File: filename from Unstructured metadata. Text: knowledge name from the knowledge source.
302
+ def document_title
303
+ @properties['document_title']
304
+ end
305
+
306
+ ##
307
+ # @return [String] Specific page URL this chunk was crawled from. Web sources only; null for File and Text sources.
308
+ def document_url
309
+ @properties['document_url']
310
+ end
311
+
312
+ ##
313
+ # @return [String] Physical page number (1-based). PDF sources only; omitted for all other source types.
314
+ def document_number
315
+ @properties['document_number']
316
+ end
317
+
290
318
  ##
291
319
  # Provide a user friendly representation
292
320
  def to_s
@@ -38,6 +38,44 @@ module Twilio
38
38
  end
39
39
  end
40
40
 
41
+ class KnowledgeErrorGroup
42
+ # @param [title]: [String] The error type or reason (e.g., \"404 Not Found\", \"500 Internal Server Error\").
43
+ # @param [instances]: [Array<KnowledgeList.KnowledgeErrorInstance>] Array of error instances for this error title. Required when an error group is present.
44
+ attr_accessor :title, :instances
45
+ def initialize(payload)
46
+ @title = payload["title"]
47
+ @instances = payload["instances"]
48
+ end
49
+ def to_json(options = {})
50
+ {
51
+ "title": @title,
52
+ "instances": @instances,
53
+ }.to_json(options)
54
+ end
55
+ end
56
+
57
+ class KnowledgeErrorInstance
58
+ # @param [type]: [String] A URI reference identifying the problem type, resolving to human-readable documentation (e.g., https://www.twilio.com/docs/api/errors/420018).
59
+ # @param [code]: [String] Twilio-specific numeric error code for programmatic handling.
60
+ # @param [instance]: [String] The specific URL or resource that caused the error.
61
+ # @param [detail]: [String] Detailed explanation of the error.
62
+ attr_accessor :type, :code, :instance, :detail
63
+ def initialize(payload)
64
+ @type = payload["type"]
65
+ @code = payload["code"]
66
+ @instance = payload["instance"]
67
+ @detail = payload["detail"]
68
+ end
69
+ def to_json(options = {})
70
+ {
71
+ "type": @type,
72
+ "code": @code,
73
+ "instance": @instance,
74
+ "detail": @detail,
75
+ }.to_json(options)
76
+ end
77
+ end
78
+
41
79
 
42
80
  ##
43
81
  # Initialize the KnowledgeList