telnyx 5.169.0 → 5.170.0

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 (346) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/internal/email_cursor_pagination.rb +2 -2
  5. data/lib/telnyx/internal/type/union.rb +1 -1
  6. data/lib/telnyx/models/ai/assistant_create_params.rb +3 -3
  7. data/lib/telnyx/models/ai/assistant_tool.rb +31 -1
  8. data/lib/telnyx/models/ai/assistant_update_params.rb +3 -3
  9. data/lib/telnyx/models/ai/assistants/update_assistant.rb +3 -3
  10. data/lib/telnyx/models/ai/collection.rb +3 -3
  11. data/lib/telnyx/models/ai/collections/collections_source.rb +64 -0
  12. data/lib/telnyx/models/ai/collections/source.rb +25 -29
  13. data/lib/telnyx/models/ai/collections/source_create_response.rb +3 -3
  14. data/lib/telnyx/models/ai/collections/source_list_response.rb +3 -3
  15. data/lib/telnyx/models/ai/collections/source_replace_response.rb +3 -3
  16. data/lib/telnyx/models/ai/flow_node.rb +3 -3
  17. data/lib/telnyx/models/ai/flow_node_req.rb +3 -3
  18. data/lib/telnyx/models/ai/inference_embedding.rb +3 -3
  19. data/lib/telnyx/models/ai/inference_embedding_voice_settings.rb +334 -0
  20. data/lib/telnyx/models/ai/inference_embedding_webhook_tool_params.rb +13 -11
  21. data/lib/telnyx/models/ai/memory/namespace_retrieve_params.rb +30 -0
  22. data/lib/telnyx/models/ai/memory/namespace_retrieve_response.rb +76 -0
  23. data/lib/telnyx/models/ai/memory/namespaces/namespace_settings_response.rb +63 -0
  24. data/lib/telnyx/models/ai/memory/namespaces/page_meta.rb +58 -0
  25. data/lib/telnyx/models/ai/memory/namespaces/profile_delete_params.rb +35 -0
  26. data/lib/telnyx/models/ai/memory/namespaces/profile_delete_response.rb +47 -0
  27. data/lib/telnyx/models/ai/memory/namespaces/profile_ingest_params.rb +94 -0
  28. data/lib/telnyx/models/ai/memory/namespaces/profile_ingest_response.rb +61 -0
  29. data/lib/telnyx/models/ai/memory/namespaces/profile_list_params.rb +48 -0
  30. data/lib/telnyx/models/ai/memory/namespaces/profile_list_response.rb +34 -0
  31. data/lib/telnyx/models/ai/memory/namespaces/profile_recall_params.rb +44 -0
  32. data/lib/telnyx/models/ai/memory/namespaces/profile_recall_response.rb +60 -0
  33. data/lib/telnyx/models/ai/memory/namespaces/profile_remember_params.rb +38 -0
  34. data/lib/telnyx/models/ai/memory/namespaces/profile_remember_response.rb +54 -0
  35. data/lib/telnyx/models/ai/memory/namespaces/profile_retrieve_summary_params.rb +35 -0
  36. data/lib/telnyx/models/ai/memory/namespaces/profile_retrieve_summary_response.rb +64 -0
  37. data/lib/telnyx/models/ai/memory/namespaces/profiles/memory_list_params.rb +76 -0
  38. data/lib/telnyx/models/ai/memory/namespaces/profiles/memory_list_response.rb +53 -0
  39. data/lib/telnyx/models/ai/memory/namespaces/profiles/memory_retrieve_params.rb +50 -0
  40. data/lib/telnyx/models/ai/memory/namespaces/profiles/memory_retrieve_response.rb +74 -0
  41. data/lib/telnyx/models/ai/memory/namespaces/profiles/source_delete_params.rb +52 -0
  42. data/lib/telnyx/models/ai/memory/namespaces/profiles/source_delete_response.rb +60 -0
  43. data/lib/telnyx/models/ai/memory/namespaces/profiles/source_list_params.rb +67 -0
  44. data/lib/telnyx/models/ai/memory/namespaces/profiles/source_retrieve_params.rb +52 -0
  45. data/lib/telnyx/models/ai/memory/namespaces/profiles/source_retrieve_response.rb +123 -0
  46. data/lib/telnyx/models/ai/memory/namespaces/setting_list_params.rb +28 -0
  47. data/lib/telnyx/models/ai/memory/namespaces/setting_patch_all_params.rb +69 -0
  48. data/lib/telnyx/models/ai/typesafe/v1_systemone_params.rb +29 -1
  49. data/lib/telnyx/models/ai/typesafe/v1_systemone_response.rb +19 -6
  50. data/lib/telnyx/models/ai/webhook_tool.rb +16 -1
  51. data/lib/telnyx/models/artifact_completed_webhook_event.rb +17 -1
  52. data/lib/telnyx/models/artifact_failed_webhook_event.rb +4 -0
  53. data/lib/telnyx/models/calls/action_gather_using_ai_params.rb +11 -3
  54. data/lib/telnyx/models/calls/action_gather_using_speak_params.rb +11 -3
  55. data/lib/telnyx/models/calls/action_speak_params.rb +11 -3
  56. data/lib/telnyx/models/calls/action_start_conversation_relay_params.rb +11 -3
  57. data/lib/telnyx/models/calls/soniox_voice_settings.rb +46 -0
  58. data/lib/telnyx/models/conferences/action_speak_params.rb +11 -3
  59. data/lib/telnyx/models/conversation_relay_embedded_config.rb +11 -3
  60. data/lib/telnyx/models/conversation_relay_language.rb +5 -3
  61. data/lib/telnyx/models/email_block.rb +8 -1
  62. data/lib/telnyx/models/email_blocks/email_block_import.rb +7 -2
  63. data/lib/telnyx/models/email_domain_rotate_dkim_params.rb +20 -0
  64. data/lib/telnyx/models/email_domain_rotate_dkim_response.rb +243 -0
  65. data/lib/telnyx/models/email_domains/email_webhook_event.rb +8 -3
  66. data/lib/telnyx/models/email_event_list_params.rb +33 -10
  67. data/lib/telnyx/models/email_event_list_response.rb +300 -73
  68. data/lib/telnyx/models/email_event_type.rb +16 -0
  69. data/lib/telnyx/models/email_inboxes/email_message.rb +56 -4
  70. data/lib/telnyx/models/email_message_batch_params.rb +32 -15
  71. data/lib/telnyx/models/email_message_create_params.rb +44 -12
  72. data/lib/telnyx/models/{email_message_retrieve_response.rb → email_message_detail_response.rb} +5 -5
  73. data/lib/telnyx/models/email_message_list_params.rb +26 -1
  74. data/lib/telnyx/models/email_message_update_schedule_params.rb +29 -0
  75. data/lib/telnyx/models/email_messages/email_recipient.rb +2 -0
  76. data/lib/telnyx/models/email_messages/recipient_list_params.rb +2 -0
  77. data/lib/telnyx/models/email_template.rb +68 -2
  78. data/lib/telnyx/models/email_template_create_params.rb +71 -1
  79. data/lib/telnyx/models/email_webhook_recipient.rb +39 -0
  80. data/lib/telnyx/models/meeting_session.rb +34 -6
  81. data/lib/telnyx/models/meeting_session_create_params.rb +73 -39
  82. data/lib/telnyx/models/meeting_sessions/artifact_create_params.rb +77 -13
  83. data/lib/telnyx/models/meeting_sessions/meeting_session_artifact.rb +25 -1
  84. data/lib/telnyx/models/message_event.rb +41 -2
  85. data/lib/telnyx/models/numbers_phone_number_detailed.rb +19 -5
  86. data/lib/telnyx/models/private_wireless_gateway.rb +0 -1
  87. data/lib/telnyx/models/private_wireless_gateway_create_params.rb +28 -1
  88. data/lib/telnyx/models/private_wireless_gateway_create_response.rb +3 -3
  89. data/lib/telnyx/models/private_wireless_gateway_delete_response.rb +3 -3
  90. data/lib/telnyx/models/private_wireless_gateway_retrieve_response.rb +3 -3
  91. data/lib/telnyx/models/texml/accounts/call_retrieve_calls_params.rb +17 -17
  92. data/lib/telnyx/models/text_to_speech_generate_speech_params.rb +129 -3
  93. data/lib/telnyx/models/text_to_speech_list_voices_params.rb +1 -0
  94. data/lib/telnyx/models/text_to_speech_retrieve_speech_params.rb +1 -1
  95. data/lib/telnyx/models/update_email_template_request.rb +54 -1
  96. data/lib/telnyx/models/wireless_private_wireless_gateway.rb +120 -0
  97. data/lib/telnyx/models.rb +10 -0
  98. data/lib/telnyx/resources/ai/assistants/versions.rb +1 -1
  99. data/lib/telnyx/resources/ai/assistants.rb +2 -2
  100. data/lib/telnyx/resources/ai/memory/namespaces/profiles/memories.rb +122 -0
  101. data/lib/telnyx/resources/ai/memory/namespaces/profiles/sources.rb +163 -0
  102. data/lib/telnyx/resources/ai/memory/namespaces/profiles.rb +244 -0
  103. data/lib/telnyx/resources/ai/memory/namespaces/settings.rb +76 -0
  104. data/lib/telnyx/resources/ai/memory/namespaces.rb +55 -0
  105. data/lib/telnyx/resources/ai/memory.rb +21 -0
  106. data/lib/telnyx/resources/ai/typesafe/v1.rb +20 -11
  107. data/lib/telnyx/resources/ai/typesafe.rb +1 -1
  108. data/lib/telnyx/resources/ai.rb +4 -0
  109. data/lib/telnyx/resources/calls/actions.rb +4 -4
  110. data/lib/telnyx/resources/conferences/actions.rb +1 -1
  111. data/lib/telnyx/resources/email_blocks/imports.rb +17 -3
  112. data/lib/telnyx/resources/email_blocks.rb +5 -3
  113. data/lib/telnyx/resources/email_domains.rb +28 -0
  114. data/lib/telnyx/resources/email_events.rb +21 -9
  115. data/lib/telnyx/resources/email_messages.rb +57 -13
  116. data/lib/telnyx/resources/email_templates.rb +33 -3
  117. data/lib/telnyx/resources/meeting_sessions/actions.rb +7 -1
  118. data/lib/telnyx/resources/meeting_sessions/artifacts.rb +18 -9
  119. data/lib/telnyx/resources/meeting_sessions.rb +6 -5
  120. data/lib/telnyx/resources/private_wireless_gateways.rb +5 -3
  121. data/lib/telnyx/resources/texml/accounts/calls.rb +9 -9
  122. data/lib/telnyx/resources/text_to_speech.rb +6 -4
  123. data/lib/telnyx/version.rb +1 -1
  124. data/lib/telnyx.rb +42 -1
  125. data/rbi/telnyx/models/ai/assistant_create_params.rbi +8 -4
  126. data/rbi/telnyx/models/ai/assistant_tool.rbi +56 -5
  127. data/rbi/telnyx/models/ai/assistant_update_params.rbi +8 -4
  128. data/rbi/telnyx/models/ai/assistants/update_assistant.rbi +12 -4
  129. data/rbi/telnyx/models/ai/collection.rbi +10 -4
  130. data/rbi/telnyx/models/ai/collections/collections_source.rbi +110 -0
  131. data/rbi/telnyx/models/ai/collections/source.rbi +36 -62
  132. data/rbi/telnyx/models/ai/collections/source_create_response.rbi +14 -6
  133. data/rbi/telnyx/models/ai/collections/source_list_response.rbi +10 -4
  134. data/rbi/telnyx/models/ai/collections/source_replace_response.rbi +11 -4
  135. data/rbi/telnyx/models/ai/flow_node.rbi +8 -4
  136. data/rbi/telnyx/models/ai/flow_node_req.rbi +8 -4
  137. data/rbi/telnyx/models/ai/inference_embedding.rbi +8 -4
  138. data/rbi/telnyx/models/ai/inference_embedding_voice_settings.rbi +803 -0
  139. data/rbi/telnyx/models/ai/inference_embedding_webhook_tool_params.rbi +23 -19
  140. data/rbi/telnyx/models/ai/memory/namespace_retrieve_params.rbi +50 -0
  141. data/rbi/telnyx/models/ai/memory/namespace_retrieve_response.rbi +167 -0
  142. data/rbi/telnyx/models/ai/memory/namespaces/namespace_settings_response.rbi +156 -0
  143. data/rbi/telnyx/models/ai/memory/namespaces/page_meta.rbi +81 -0
  144. data/rbi/telnyx/models/ai/memory/namespaces/profile_delete_params.rbi +58 -0
  145. data/rbi/telnyx/models/ai/memory/namespaces/profile_delete_response.rbi +97 -0
  146. data/rbi/telnyx/models/ai/memory/namespaces/profile_ingest_params.rbi +149 -0
  147. data/rbi/telnyx/models/ai/memory/namespaces/profile_ingest_response.rbi +113 -0
  148. data/rbi/telnyx/models/ai/memory/namespaces/profile_list_params.rbi +74 -0
  149. data/rbi/telnyx/models/ai/memory/namespaces/profile_list_response.rbi +48 -0
  150. data/rbi/telnyx/models/ai/memory/namespaces/profile_recall_params.rbi +68 -0
  151. data/rbi/telnyx/models/ai/memory/namespaces/profile_recall_response.rbi +109 -0
  152. data/rbi/telnyx/models/ai/memory/namespaces/profile_remember_params.rbi +57 -0
  153. data/rbi/telnyx/models/ai/memory/namespaces/profile_remember_response.rbi +107 -0
  154. data/rbi/telnyx/models/ai/memory/namespaces/profile_retrieve_summary_params.rbi +58 -0
  155. data/rbi/telnyx/models/ai/memory/namespaces/profile_retrieve_summary_response.rbi +119 -0
  156. data/rbi/telnyx/models/ai/memory/namespaces/profiles/memory_list_params.rbi +102 -0
  157. data/rbi/telnyx/models/ai/memory/namespaces/profiles/memory_list_response.rbi +72 -0
  158. data/rbi/telnyx/models/ai/memory/namespaces/profiles/memory_retrieve_params.rbi +70 -0
  159. data/rbi/telnyx/models/ai/memory/namespaces/profiles/memory_retrieve_response.rbi +129 -0
  160. data/rbi/telnyx/models/ai/memory/namespaces/profiles/source_delete_params.rbi +74 -0
  161. data/rbi/telnyx/models/ai/memory/namespaces/profiles/source_delete_response.rbi +117 -0
  162. data/rbi/telnyx/models/ai/memory/namespaces/profiles/source_list_params.rbi +92 -0
  163. data/rbi/telnyx/models/ai/memory/namespaces/profiles/source_retrieve_params.rbi +74 -0
  164. data/rbi/telnyx/models/ai/memory/namespaces/profiles/source_retrieve_response.rbi +209 -0
  165. data/rbi/telnyx/models/ai/memory/namespaces/setting_list_params.rbi +49 -0
  166. data/rbi/telnyx/models/ai/memory/namespaces/setting_patch_all_params.rbi +125 -0
  167. data/rbi/telnyx/models/ai/typesafe/v1_systemone_params.rbi +62 -0
  168. data/rbi/telnyx/models/ai/typesafe/v1_systemone_response.rbi +49 -9
  169. data/rbi/telnyx/models/ai/webhook_tool.rbi +23 -3
  170. data/rbi/telnyx/models/artifact_completed_webhook_event.rbi +30 -0
  171. data/rbi/telnyx/models/artifact_failed_webhook_event.rbi +20 -0
  172. data/rbi/telnyx/models/calls/action_gather_using_ai_params.rbi +22 -5
  173. data/rbi/telnyx/models/calls/action_gather_using_speak_params.rbi +22 -5
  174. data/rbi/telnyx/models/calls/action_speak_params.rbi +22 -5
  175. data/rbi/telnyx/models/calls/action_start_conversation_relay_params.rbi +22 -5
  176. data/rbi/telnyx/models/calls/soniox_voice_settings.rbi +86 -0
  177. data/rbi/telnyx/models/conferences/action_speak_params.rbi +22 -5
  178. data/rbi/telnyx/models/conversation_relay_embedded_config.rbi +22 -5
  179. data/rbi/telnyx/models/conversation_relay_language.rbi +10 -5
  180. data/rbi/telnyx/models/email_block.rbi +8 -0
  181. data/rbi/telnyx/models/email_blocks/email_block_import.rbi +6 -2
  182. data/rbi/telnyx/models/email_domain_rotate_dkim_params.rbi +35 -0
  183. data/rbi/telnyx/models/email_domain_rotate_dkim_response.rbi +487 -0
  184. data/rbi/telnyx/models/email_domains/email_webhook_event.rbi +20 -3
  185. data/rbi/telnyx/models/email_event_list_params.rbi +46 -11
  186. data/rbi/telnyx/models/email_event_list_response.rbi +599 -97
  187. data/rbi/telnyx/models/email_event_type.rbi +25 -0
  188. data/rbi/telnyx/models/email_inboxes/email_message.rbi +81 -3
  189. data/rbi/telnyx/models/email_message_batch_params.rbi +54 -20
  190. data/rbi/telnyx/models/email_message_create_params.rbi +80 -16
  191. data/rbi/telnyx/models/{email_message_retrieve_response.rbi → email_message_detail_response.rbi} +9 -16
  192. data/rbi/telnyx/models/email_message_list_params.rbi +40 -0
  193. data/rbi/telnyx/models/email_message_update_schedule_params.rbi +52 -0
  194. data/rbi/telnyx/models/email_messages/email_recipient.rbi +10 -0
  195. data/rbi/telnyx/models/email_messages/recipient_list_params.rbi +10 -0
  196. data/rbi/telnyx/models/email_template.rbi +84 -0
  197. data/rbi/telnyx/models/email_template_create_params.rbi +124 -0
  198. data/rbi/telnyx/models/email_webhook_recipient.rbi +68 -0
  199. data/rbi/telnyx/models/meeting_session.rbi +36 -10
  200. data/rbi/telnyx/models/meeting_session_create_params.rbi +112 -48
  201. data/rbi/telnyx/models/meeting_sessions/artifact_create_params.rbi +161 -24
  202. data/rbi/telnyx/models/meeting_sessions/meeting_session_artifact.rbi +30 -0
  203. data/rbi/telnyx/models/message_event.rbi +48 -1
  204. data/rbi/telnyx/models/numbers_phone_number_detailed.rbi +24 -4
  205. data/rbi/telnyx/models/private_wireless_gateway_create_params.rbi +71 -0
  206. data/rbi/telnyx/models/private_wireless_gateway_create_response.rbi +4 -4
  207. data/rbi/telnyx/models/private_wireless_gateway_delete_response.rbi +4 -4
  208. data/rbi/telnyx/models/private_wireless_gateway_retrieve_response.rbi +4 -4
  209. data/rbi/telnyx/models/texml/accounts/call_retrieve_calls_params.rbi +22 -22
  210. data/rbi/telnyx/models/text_to_speech_generate_speech_params.rbi +311 -2
  211. data/rbi/telnyx/models/text_to_speech_list_voices_params.rbi +5 -0
  212. data/rbi/telnyx/models/text_to_speech_retrieve_speech_params.rbi +5 -5
  213. data/rbi/telnyx/models/update_email_template_request.rbi +90 -0
  214. data/rbi/telnyx/models/wireless_private_wireless_gateway.rbi +211 -0
  215. data/rbi/telnyx/models.rbi +12 -0
  216. data/rbi/telnyx/resources/ai/assistants/versions.rbi +2 -1
  217. data/rbi/telnyx/resources/ai/assistants.rbi +2 -2
  218. data/rbi/telnyx/resources/ai/memory/namespaces/profiles/memories.rbi +94 -0
  219. data/rbi/telnyx/resources/ai/memory/namespaces/profiles/sources.rbi +117 -0
  220. data/rbi/telnyx/resources/ai/memory/namespaces/profiles.rbi +196 -0
  221. data/rbi/telnyx/resources/ai/memory/namespaces/settings.rbi +67 -0
  222. data/rbi/telnyx/resources/ai/memory/namespaces.rbi +37 -0
  223. data/rbi/telnyx/resources/ai/memory.rbi +18 -0
  224. data/rbi/telnyx/resources/ai/typesafe/v1.rbi +20 -10
  225. data/rbi/telnyx/resources/ai/typesafe.rbi +1 -1
  226. data/rbi/telnyx/resources/ai.rbi +3 -0
  227. data/rbi/telnyx/resources/calls/actions.rbi +32 -4
  228. data/rbi/telnyx/resources/conferences/actions.rbi +8 -1
  229. data/rbi/telnyx/resources/email_blocks/imports.rbi +17 -3
  230. data/rbi/telnyx/resources/email_blocks.rbi +5 -3
  231. data/rbi/telnyx/resources/email_domains.rbi +22 -0
  232. data/rbi/telnyx/resources/email_events.rbi +30 -9
  233. data/rbi/telnyx/resources/email_messages.rbi +100 -16
  234. data/rbi/telnyx/resources/email_templates.rbi +71 -0
  235. data/rbi/telnyx/resources/meeting_sessions/actions.rbi +7 -1
  236. data/rbi/telnyx/resources/meeting_sessions/artifacts.rbi +19 -8
  237. data/rbi/telnyx/resources/meeting_sessions.rbi +15 -7
  238. data/rbi/telnyx/resources/private_wireless_gateways.rbi +9 -1
  239. data/rbi/telnyx/resources/texml/accounts/calls.rbi +6 -6
  240. data/rbi/telnyx/resources/text_to_speech.rbi +7 -3
  241. data/sig/telnyx/models/ai/assistant_create_params.rbs +6 -6
  242. data/sig/telnyx/models/ai/assistant_tool.rbs +33 -3
  243. data/sig/telnyx/models/ai/assistant_update_params.rbs +6 -6
  244. data/sig/telnyx/models/ai/assistants/update_assistant.rbs +6 -6
  245. data/sig/telnyx/models/ai/collection.rbs +6 -6
  246. data/sig/telnyx/models/ai/collections/collections_source.rbs +65 -0
  247. data/sig/telnyx/models/ai/collections/source.rbs +18 -37
  248. data/sig/telnyx/models/ai/collections/source_create_response.rbs +9 -6
  249. data/sig/telnyx/models/ai/collections/source_list_response.rbs +8 -6
  250. data/sig/telnyx/models/ai/collections/source_replace_response.rbs +6 -6
  251. data/sig/telnyx/models/ai/flow_node.rbs +6 -6
  252. data/sig/telnyx/models/ai/flow_node_req.rbs +6 -6
  253. data/sig/telnyx/models/ai/inference_embedding.rbs +6 -6
  254. data/sig/telnyx/models/ai/inference_embedding_voice_settings.rbs +308 -0
  255. data/sig/telnyx/models/ai/inference_embedding_webhook_tool_params.rbs +13 -13
  256. data/sig/telnyx/models/ai/memory/namespace_retrieve_params.rbs +32 -0
  257. data/sig/telnyx/models/ai/memory/namespace_retrieve_response.rbs +69 -0
  258. data/sig/telnyx/models/ai/memory/namespaces/namespace_settings_response.rbs +59 -0
  259. data/sig/telnyx/models/ai/memory/namespaces/page_meta.rbs +41 -0
  260. data/sig/telnyx/models/ai/memory/namespaces/profile_delete_params.rbs +34 -0
  261. data/sig/telnyx/models/ai/memory/namespaces/profile_delete_response.rbs +41 -0
  262. data/sig/telnyx/models/ai/memory/namespaces/profile_ingest_params.rbs +69 -0
  263. data/sig/telnyx/models/ai/memory/namespaces/profile_ingest_response.rbs +58 -0
  264. data/sig/telnyx/models/ai/memory/namespaces/profile_list_params.rbs +42 -0
  265. data/sig/telnyx/models/ai/memory/namespaces/profile_list_response.rbs +22 -0
  266. data/sig/telnyx/models/ai/memory/namespaces/profile_recall_params.rbs +47 -0
  267. data/sig/telnyx/models/ai/memory/namespaces/profile_recall_response.rbs +53 -0
  268. data/sig/telnyx/models/ai/memory/namespaces/profile_remember_params.rbs +38 -0
  269. data/sig/telnyx/models/ai/memory/namespaces/profile_remember_response.rbs +49 -0
  270. data/sig/telnyx/models/ai/memory/namespaces/profile_retrieve_summary_params.rbs +34 -0
  271. data/sig/telnyx/models/ai/memory/namespaces/profile_retrieve_summary_response.rbs +58 -0
  272. data/sig/telnyx/models/ai/memory/namespaces/profiles/memory_list_params.rbs +63 -0
  273. data/sig/telnyx/models/ai/memory/namespaces/profiles/memory_list_response.rbs +43 -0
  274. data/sig/telnyx/models/ai/memory/namespaces/profiles/memory_retrieve_params.rbs +40 -0
  275. data/sig/telnyx/models/ai/memory/namespaces/profiles/memory_retrieve_response.rbs +65 -0
  276. data/sig/telnyx/models/ai/memory/namespaces/profiles/source_delete_params.rbs +40 -0
  277. data/sig/telnyx/models/ai/memory/namespaces/profiles/source_delete_response.rbs +55 -0
  278. data/sig/telnyx/models/ai/memory/namespaces/profiles/source_list_params.rbs +58 -0
  279. data/sig/telnyx/models/ai/memory/namespaces/profiles/source_retrieve_params.rbs +40 -0
  280. data/sig/telnyx/models/ai/memory/namespaces/profiles/source_retrieve_response.rbs +92 -0
  281. data/sig/telnyx/models/ai/memory/namespaces/setting_list_params.rbs +29 -0
  282. data/sig/telnyx/models/ai/memory/namespaces/setting_patch_all_params.rbs +47 -0
  283. data/sig/telnyx/models/ai/typesafe/v1_systemone_params.rbs +21 -1
  284. data/sig/telnyx/models/ai/typesafe/v1_systemone_response.rbs +15 -4
  285. data/sig/telnyx/models/ai/webhook_tool.rbs +10 -3
  286. data/sig/telnyx/models/artifact_completed_webhook_event.rbs +16 -1
  287. data/sig/telnyx/models/artifact_failed_webhook_event.rbs +11 -1
  288. data/sig/telnyx/models/calls/action_gather_using_ai_params.rbs +1 -0
  289. data/sig/telnyx/models/calls/action_gather_using_speak_params.rbs +1 -0
  290. data/sig/telnyx/models/calls/action_speak_params.rbs +1 -0
  291. data/sig/telnyx/models/calls/action_start_conversation_relay_params.rbs +1 -0
  292. data/sig/telnyx/models/calls/soniox_voice_settings.rbs +46 -0
  293. data/sig/telnyx/models/conferences/action_speak_params.rbs +1 -0
  294. data/sig/telnyx/models/conversation_relay_embedded_config.rbs +1 -0
  295. data/sig/telnyx/models/conversation_relay_language.rbs +1 -0
  296. data/sig/telnyx/models/email_domain_rotate_dkim_params.rbs +23 -0
  297. data/sig/telnyx/models/email_domain_rotate_dkim_response.rbs +195 -0
  298. data/sig/telnyx/models/email_domains/email_webhook_event.rbs +6 -0
  299. data/sig/telnyx/models/email_event_list_params.rbs +7 -7
  300. data/sig/telnyx/models/email_event_list_response.rbs +235 -59
  301. data/sig/telnyx/models/email_event_type.rbs +20 -0
  302. data/sig/telnyx/models/email_inboxes/email_message.rbs +43 -4
  303. data/sig/telnyx/models/{email_message_retrieve_response.rbs → email_message_detail_response.rbs} +6 -10
  304. data/sig/telnyx/models/email_message_list_params.rbs +18 -1
  305. data/sig/telnyx/models/email_message_update_schedule_params.rbs +28 -0
  306. data/sig/telnyx/models/email_messages/email_recipient.rbs +4 -0
  307. data/sig/telnyx/models/email_messages/recipient_list_params.rbs +4 -0
  308. data/sig/telnyx/models/email_template.rbs +29 -0
  309. data/sig/telnyx/models/email_template_create_params.rbs +33 -0
  310. data/sig/telnyx/models/email_webhook_recipient.rbs +46 -0
  311. data/sig/telnyx/models/meeting_session.rbs +20 -5
  312. data/sig/telnyx/models/meeting_session_create_params.rbs +28 -20
  313. data/sig/telnyx/models/meeting_sessions/artifact_create_params.rbs +53 -10
  314. data/sig/telnyx/models/meeting_sessions/meeting_session_artifact.rbs +16 -1
  315. data/sig/telnyx/models/message_event.rbs +10 -0
  316. data/sig/telnyx/models/numbers_phone_number_detailed.rbs +5 -0
  317. data/sig/telnyx/models/private_wireless_gateway_create_params.rbs +25 -1
  318. data/sig/telnyx/models/private_wireless_gateway_create_response.rbs +6 -6
  319. data/sig/telnyx/models/private_wireless_gateway_delete_response.rbs +6 -6
  320. data/sig/telnyx/models/private_wireless_gateway_retrieve_response.rbs +6 -6
  321. data/sig/telnyx/models/texml/accounts/call_retrieve_calls_params.rbs +14 -14
  322. data/sig/telnyx/models/text_to_speech_generate_speech_params.rbs +114 -0
  323. data/sig/telnyx/models/text_to_speech_list_voices_params.rbs +2 -0
  324. data/sig/telnyx/models/text_to_speech_retrieve_speech_params.rbs +2 -2
  325. data/sig/telnyx/models/update_email_template_request.rbs +33 -0
  326. data/sig/telnyx/models/wireless_private_wireless_gateway.rbs +109 -0
  327. data/sig/telnyx/models.rbs +10 -0
  328. data/sig/telnyx/resources/ai/assistants/versions.rbs +1 -1
  329. data/sig/telnyx/resources/ai/assistants.rbs +2 -2
  330. data/sig/telnyx/resources/ai/memory/namespaces/profiles/memories.rbs +32 -0
  331. data/sig/telnyx/resources/ai/memory/namespaces/profiles/sources.rbs +38 -0
  332. data/sig/telnyx/resources/ai/memory/namespaces/profiles.rbs +59 -0
  333. data/sig/telnyx/resources/ai/memory/namespaces/settings.rbs +24 -0
  334. data/sig/telnyx/resources/ai/memory/namespaces.rbs +21 -0
  335. data/sig/telnyx/resources/ai/memory.rbs +11 -0
  336. data/sig/telnyx/resources/ai/typesafe/v1.rbs +1 -0
  337. data/sig/telnyx/resources/ai.rbs +2 -0
  338. data/sig/telnyx/resources/email_domains.rbs +5 -0
  339. data/sig/telnyx/resources/email_events.rbs +2 -2
  340. data/sig/telnyx/resources/email_messages.rbs +9 -1
  341. data/sig/telnyx/resources/email_templates.rbs +9 -0
  342. data/sig/telnyx/resources/meeting_sessions/artifacts.rbs +1 -1
  343. data/sig/telnyx/resources/meeting_sessions.rbs +1 -0
  344. data/sig/telnyx/resources/private_wireless_gateways.rbs +2 -1
  345. data/sig/telnyx/resources/text_to_speech.rbs +1 -0
  346. metadata +128 -5
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Resources
5
+ class AI
6
+ class Memory
7
+ # Whether a write has finished.
8
+ # @return [Telnyx::Resources::AI::Memory::Namespaces]
9
+ attr_reader :namespaces
10
+
11
+ # @api private
12
+ #
13
+ # @param client [Telnyx::Client]
14
+ def initialize(client:)
15
+ @client = client
16
+ @namespaces = Telnyx::Resources::AI::Memory::Namespaces.new(client: client)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -5,34 +5,43 @@ module Telnyx
5
5
  class AI
6
6
  class Typesafe
7
7
  # Beta API for evaluating shared context with typed questions and structured
8
- # answers. Telnyx manages model selection.
8
+ # answers using Flash or Pro.
9
9
  class V1
10
- # **Beta API.** Telnyx controls model selection.
10
+ # Some parameter documentations has been truncated, see
11
+ # {Telnyx::Models::AI::Typesafe::V1SystemoneParams} for more details.
12
+ #
13
+ # **Beta API.** Choose telnyx/decision-flash for the lowest cost and latency, or
14
+ # telnyx/decision-pro for decisions that require long context, including inputs
15
+ # beyond Jev’s 32k per-decision limit. Omitted model defaults to
16
+ # telnyx/decision-flash.
11
17
  #
12
18
  # Evaluate shared context using named choice, noul (yes/no), and score questions.
13
- # Returns TypeSafe System One-compatible answer shapes, an opaque compatibility
14
- # identifier, and token usage. See the
19
+ # Returns TypeSafe System One-compatible answer shapes, the selected public model
20
+ # alias, and token usage. See the
15
21
  # [decision model guide](https://developers.telnyx.com/docs/inference/decision-models)
16
22
  # for examples and compatibility limits.
17
23
  #
18
24
  # The supported request subset requires instructions for every question, string
19
25
  # descriptions for criteria (or null for choice descriptions), 1–64 questions, and
20
- # 2–64 options for choice and score questions. The SDK-supplied model value is
21
- # ignored and cannot select a model. Other unknown fields are rejected. The
22
- # endpoint is synchronous and does not stream.
26
+ # 2–64 options for choice and score questions. The model field accepts only
27
+ # telnyx/decision-flash or telnyx/decision-pro. Unsupported model values and
28
+ # unknown fields are rejected. The endpoint is synchronous and does not stream.
23
29
  #
24
30
  # Use the TypeSafe Python SDK with base_url set to
25
31
  # https://api.telnyx.com/v2/ai/typesafe and a Telnyx API key. The SDK appends
26
- # /v1/systemone. Compatibility covers this operation and the documented request
27
- # subset; it does not include TypeSafe model listing. Scores describe relative
28
- # preference, not calibrated correctness.
32
+ # /v1/systemone; explicitly set model to a supported Telnyx alias because its own
33
+ # default model is not supported. Compatibility covers this operation and the
34
+ # documented request subset; it does not include TypeSafe model listing. Scores
35
+ # describe relative preference, not calibrated correctness.
29
36
  #
30
- # @overload systemone(questions:, state:, request_options: {})
37
+ # @overload systemone(questions:, state:, model: nil, request_options: {})
31
38
  #
32
39
  # @param questions [Hash{Symbol=>Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Choice, Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Noul, Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Score}] Between 1 and 64 named questions. Each key identifies the corresponding answer.
33
40
  #
34
41
  # @param state [String, Hash{Symbol=>Object}, Array<Object>] Shared context evaluated by every question.
35
42
  #
43
+ # @param model [Symbol, Telnyx::Models::AI::Typesafe::V1SystemoneParams::Model] Public model alias. telnyx/decision-flash offers the lowest cost and latency; te
44
+ #
36
45
  # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
37
46
  #
38
47
  # @return [Telnyx::Models::AI::Typesafe::V1SystemoneResponse]
@@ -5,7 +5,7 @@ module Telnyx
5
5
  class AI
6
6
  class Typesafe
7
7
  # Beta API for evaluating shared context with typed questions and structured
8
- # answers. Telnyx manages model selection.
8
+ # answers using Flash or Pro.
9
9
  # @return [Telnyx::Resources::AI::Typesafe::V1]
10
10
  attr_reader :v1
11
11
 
@@ -58,6 +58,9 @@ module Telnyx
58
58
  # @return [Telnyx::Resources::AI::Typesafe]
59
59
  attr_reader :typesafe
60
60
 
61
+ # @return [Telnyx::Resources::AI::Memory]
62
+ attr_reader :memory
63
+
61
64
  # Some parameter documentations has been truncated, see
62
65
  # {Telnyx::Models::AIRetrieveConversationHistoriesParams} for more details.
63
66
  #
@@ -232,6 +235,7 @@ module Telnyx
232
235
  @anthropic = Telnyx::Resources::AI::Anthropic.new(client: client)
233
236
  @knowledge = Telnyx::Resources::AI::Knowledge.new(client: client)
234
237
  @typesafe = Telnyx::Resources::AI::Typesafe.new(client: client)
238
+ @memory = Telnyx::Resources::AI::Memory.new(client: client)
235
239
  end
236
240
  end
237
241
  end
@@ -352,7 +352,7 @@ module Telnyx
352
352
  #
353
353
  # @param voice [String] The voice to be used by the voice assistant. Currently we support ElevenLabs, Te
354
354
  #
355
- # @param voice_settings [Telnyx::Models::Calls::ElevenLabsVoiceSettings, Telnyx::Models::Calls::TelnyxVoiceSettings, Telnyx::Models::Calls::AwsVoiceSettings, Telnyx::Models::AzureVoiceSettings, Telnyx::Models::ResembleVoiceSettings, Telnyx::Models::XaiVoiceSettings] The settings associated with the voice selected
355
+ # @param voice_settings [Telnyx::Models::Calls::ElevenLabsVoiceSettings, Telnyx::Models::Calls::TelnyxVoiceSettings, Telnyx::Models::Calls::AwsVoiceSettings, Telnyx::Models::AzureVoiceSettings, Telnyx::Models::ResembleVoiceSettings, Telnyx::Models::XaiVoiceSettings, Telnyx::Models::Calls::SonioxVoiceSettings] The settings associated with the voice selected
356
356
  #
357
357
  # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
358
358
  #
@@ -485,7 +485,7 @@ module Telnyx
485
485
  #
486
486
  # @param valid_digits [String] A list of all digits accepted as valid.
487
487
  #
488
- # @param voice_settings [Telnyx::Models::Calls::ElevenLabsVoiceSettings, Telnyx::Models::Calls::TelnyxVoiceSettings, Telnyx::Models::Calls::AwsVoiceSettings, Telnyx::Models::MinimaxVoiceSettings, Telnyx::Models::AzureVoiceSettings, Telnyx::Models::ResembleVoiceSettings, Telnyx::Models::InworldVoiceSettings, Telnyx::Models::XaiVoiceSettings] The settings associated with the voice selected
488
+ # @param voice_settings [Telnyx::Models::Calls::ElevenLabsVoiceSettings, Telnyx::Models::Calls::TelnyxVoiceSettings, Telnyx::Models::Calls::AwsVoiceSettings, Telnyx::Models::MinimaxVoiceSettings, Telnyx::Models::AzureVoiceSettings, Telnyx::Models::ResembleVoiceSettings, Telnyx::Models::InworldVoiceSettings, Telnyx::Models::XaiVoiceSettings, Telnyx::Models::Calls::SonioxVoiceSettings] The settings associated with the voice selected
489
489
  #
490
490
  # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
491
491
  #
@@ -947,7 +947,7 @@ module Telnyx
947
947
  #
948
948
  # @param target_legs [Symbol, Telnyx::Models::Calls::ActionSpeakParams::TargetLegs] Specifies which legs of the call should receive the spoken audio.
949
949
  #
950
- # @param voice_settings [Telnyx::Models::Calls::ElevenLabsVoiceSettings, Telnyx::Models::Calls::TelnyxVoiceSettings, Telnyx::Models::Calls::AwsVoiceSettings, Telnyx::Models::MinimaxVoiceSettings, Telnyx::Models::AzureVoiceSettings, Telnyx::Models::ResembleVoiceSettings, Telnyx::Models::InworldVoiceSettings, Telnyx::Models::XaiVoiceSettings] The settings associated with the voice selected
950
+ # @param voice_settings [Telnyx::Models::Calls::ElevenLabsVoiceSettings, Telnyx::Models::Calls::TelnyxVoiceSettings, Telnyx::Models::Calls::AwsVoiceSettings, Telnyx::Models::MinimaxVoiceSettings, Telnyx::Models::AzureVoiceSettings, Telnyx::Models::ResembleVoiceSettings, Telnyx::Models::InworldVoiceSettings, Telnyx::Models::XaiVoiceSettings, Telnyx::Models::Calls::SonioxVoiceSettings] The settings associated with the voice selected
951
951
  #
952
952
  # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
953
953
  #
@@ -1076,7 +1076,7 @@ module Telnyx
1076
1076
  #
1077
1077
  # @param voice [String] The voice to be used by the voice assistant. Currently we support ElevenLabs, Te
1078
1078
  #
1079
- # @param voice_settings [Telnyx::Models::Calls::ElevenLabsVoiceSettings, Telnyx::Models::Calls::TelnyxVoiceSettings, Telnyx::Models::Calls::AwsVoiceSettings, Telnyx::Models::MinimaxVoiceSettings, Telnyx::Models::AzureVoiceSettings, Telnyx::Models::ResembleVoiceSettings, Telnyx::Models::InworldVoiceSettings, Telnyx::Models::XaiVoiceSettings] The settings associated with the voice selected
1079
+ # @param voice_settings [Telnyx::Models::Calls::ElevenLabsVoiceSettings, Telnyx::Models::Calls::TelnyxVoiceSettings, Telnyx::Models::Calls::AwsVoiceSettings, Telnyx::Models::MinimaxVoiceSettings, Telnyx::Models::AzureVoiceSettings, Telnyx::Models::ResembleVoiceSettings, Telnyx::Models::InworldVoiceSettings, Telnyx::Models::XaiVoiceSettings, Telnyx::Models::Calls::SonioxVoiceSettings] The settings associated with the voice selected
1080
1080
  #
1081
1081
  # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
1082
1082
  #
@@ -522,7 +522,7 @@ module Telnyx
522
522
  #
523
523
  # @param region [Symbol, Telnyx::Models::Conferences::ConferenceRegion] Region where the conference data is located. Defaults to the region defined in u
524
524
  #
525
- # @param voice_settings [Telnyx::Models::Calls::ElevenLabsVoiceSettings, Telnyx::Models::Calls::TelnyxVoiceSettings, Telnyx::Models::Calls::AwsVoiceSettings, Telnyx::Models::MinimaxVoiceSettings, Telnyx::Models::AzureVoiceSettings, Telnyx::Models::ResembleVoiceSettings, Telnyx::Models::InworldVoiceSettings, Telnyx::Models::XaiVoiceSettings] The settings associated with the voice selected
525
+ # @param voice_settings [Telnyx::Models::Calls::ElevenLabsVoiceSettings, Telnyx::Models::Calls::TelnyxVoiceSettings, Telnyx::Models::Calls::AwsVoiceSettings, Telnyx::Models::MinimaxVoiceSettings, Telnyx::Models::AzureVoiceSettings, Telnyx::Models::ResembleVoiceSettings, Telnyx::Models::InworldVoiceSettings, Telnyx::Models::XaiVoiceSettings, Telnyx::Models::Calls::SonioxVoiceSettings] The settings associated with the voice selected
526
526
  #
527
527
  # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
528
528
  #
@@ -16,9 +16,23 @@ module Telnyx
16
16
  # - header-only / all-blank / undetectable provider → `400` Returns `202` with the
17
17
  # import record (status `pending`); an Oban worker (`EmailBlockImportWorker`,
18
18
  # max_attempts 3) transitions `pending → processing → completed | failed`.
19
- # `block_ttl_days` applies only to imported `manual_block` rows; other reasons
20
- # get `expires_at: nil`. Provider is auto-detected from the CSV header
21
- # (`sendgrid` / `mailgun` / `ses` / `generic`).
19
+ #
20
+ # Native Telnyx exports are detected by the stable first-12-column header
21
+ # signature (`id` … `group_id`) and are restored with their original `from`,
22
+ # `domain_id`, `group_id`, `source`, `status`, `expires_at`, plus
23
+ # `bounce_category`, `dsn_code`, and `meta` when present (`scope` is re-derived
24
+ # from `domain_id`/`from`; the exported `scope` cell must be a valid enum value).
25
+ # Lifecycle changes reconcile through the same create path as the API: a row
26
+ # already in the requested state restores its mutable backup fields without a new
27
+ # audit event, and a real transition (e.g. tombstone → active) appends the
28
+ # matching lifecycle event. `block_ttl_days` is not applied to native rows — their
29
+ # exported `expires_at` is preserved verbatim.
30
+ #
31
+ # Competitor and generic imports (SendGrid / Mailgun / SES / generic) remain
32
+ # account-scoped (`from`, `domain_id`, `group_id`, `scope` are not read) and
33
+ # `block_ttl_days` applies only to imported `manual_block` rows; other reasons get
34
+ # `expires_at: nil`. Provider is auto-detected from the CSV header (`sendgrid` /
35
+ # `mailgun` / `ses` / `generic`).
22
36
  #
23
37
  # @overload create(file:, block_ttl_days: nil, request_options: {})
24
38
  #
@@ -194,9 +194,11 @@ module Telnyx
194
194
  # stream `ORDER BY created_at ASC, id ASC` with no pagination.
195
195
  #
196
196
  # CSV columns:
197
- # `id,to,from,reason,source,scope,status,domain_id, created_at,updated_at,expires_at,group_id`.
198
- # The CSV carries the `group_id` column so group-scoped suppressions' group link
199
- # survives the export (empty for account-scope rows).
197
+ # `id,to,from,reason,source,scope,status,domain_id, created_at,updated_at,expires_at,group_id,bounce_category,dsn_code, meta`
198
+ # (15 columns). The first 12 columns are the stable native signature;
199
+ # `bounce_category`, `dsn_code`, and `meta` are optional backup fields (empty when
200
+ # unset). The CSV carries the `group_id` column so group-scoped suppressions'
201
+ # group link survives the export (empty for account-scope rows).
200
202
  #
201
203
  # @overload retrieve_export(filter_created_after: nil, filter_created_before: nil, filter_domain_id: nil, filter_reason: nil, page_number: nil, page_size: nil, sort: nil, request_options: {})
202
204
  #
@@ -221,6 +221,34 @@ module Telnyx
221
221
  )
222
222
  end
223
223
 
224
+ # Generates a new DKIM key for the domain, activates it, and retires the previous
225
+ # key. The response includes the updated DKIM DNS records the customer must
226
+ # publish. Selectors are fixed, so rotation replaces the TXT value at the existing
227
+ # `<selector>._domainkey.<domain>` host rather than adding a second record —
228
+ # `old_selector_retained` is false and the new TXT value must be published
229
+ # promptly, since signing switches to the new key immediately and the old TXT
230
+ # value will no longer match. The previous key is retired to a `retiring` state
231
+ # (retained, not revoked) so it can be revoked after the DNS propagation grace
232
+ # period.
233
+ #
234
+ # @overload rotate_dkim(domain_id, request_options: {})
235
+ #
236
+ # @param domain_id [String] Email domain UUID
237
+ #
238
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
239
+ #
240
+ # @return [Telnyx::Models::EmailDomainRotateDkimResponse]
241
+ #
242
+ # @see Telnyx::Models::EmailDomainRotateDkimParams
243
+ def rotate_dkim(domain_id, params = {})
244
+ @client.request(
245
+ method: :post,
246
+ path: ["email_domains/%1$s/rotate_dkim", domain_id],
247
+ model: Telnyx::Models::EmailDomainRotateDkimResponse,
248
+ options: params[:request_options]
249
+ )
250
+ end
251
+
224
252
  # Checks the published DNS records against the records required for the email
225
253
  # domain and returns the latest verification results.
226
254
  #
@@ -8,25 +8,38 @@ module Telnyx
8
8
  # {Telnyx::Models::EmailEventListParams} for more details.
9
9
  #
10
10
  # Lists account-level email events sorted oldest first by
11
- # `occurred_at asc, id asc`.
12
- #
13
- # @overload list(email_id: nil, event_type: nil, from: nil, page_cursor: nil, page_size: nil, to: nil, request_options: {})
11
+ # `occurred_at asc, id asc`. Each row contains a legacy email.-prefixed event_type
12
+ # and an additive canonical_event_type. Gateway rejection renders email.failed
13
+ # with canonical email.gw_reject; ambiguous injection timeout renders
14
+ # email.injection_timeout in both; MTA expiration renders email.bounced with
15
+ # canonical email.expired. Message-scoped queued, sending, sandbox, cancelled, and
16
+ # daily_limit_exceeded rows fan out per durable recipient with stable derived IDs
17
+ # matching webhook delivery. Scheduled is the cardinality exception: account
18
+ # polling retains one message-scoped scheduled row with its stored event ID, while
19
+ # scheduled webhook publication fans out per recipient with derived IDs; reconcile
20
+ # scheduled events by message ID, event type, and occurrence time rather than
21
+ # event UUID. Recipient-scoped stored rows retain their stored UUIDs across
22
+ # polling and webhook delivery. Legacy names are derived from stored rows; an
23
+ # AdminBounce row stored as failed renders email.failed in polling while its
24
+ # webhook retains email.bounced, both with canonical email.failed.
25
+ #
26
+ # @overload list(email_id: nil, event_type: nil, from: nil, page_size: nil, page_cursor: nil, to: nil, request_options: {})
14
27
  #
15
28
  # @param email_id [String] Filter events for a specific email message UUID. Invalid UUID values are silentl
16
29
  #
17
- # @param event_type [String, Array<String>] Comma-separated list of event types to include. Also accepts repeated query para
30
+ # @param event_type [String, Array<String>] Comma-separated list of event types to include. Also accepts repeated
18
31
  #
19
32
  # @param from [Time] Inclusive ISO 8601 start timestamp. Defaults to 30 days ago when omitted.
20
33
  #
21
- # @param page_cursor [String] Opaque URL-safe Base64 cursor returned by a previous list response.
22
- #
23
34
  # @param page_size [Integer] Number of results to return. Defaults to 25; maximum is 100. Invalid values are
24
35
  #
36
+ # @param page_cursor [String] Opaque URL-safe Base64 cursor returned by a previous event list response. The le
37
+ #
25
38
  # @param to [Time] Inclusive ISO 8601 end timestamp. When `from` is provided without `to`, defaults
26
39
  #
27
40
  # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
28
41
  #
29
- # @return [Telnyx::Internal::EmailCursorPagination<Telnyx::Models::EmailEventListResponse>]
42
+ # @return [Telnyx::Models::EmailEventListResponse]
30
43
  #
31
44
  # @see Telnyx::Models::EmailEventListParams
32
45
  def list(params = {})
@@ -35,8 +48,7 @@ module Telnyx
35
48
  @client.request(
36
49
  method: :get,
37
50
  path: "email_events",
38
- query: query,
39
- page: Telnyx::Internal::EmailCursorPagination,
51
+ query: query.transform_keys(page_cursor: "page[cursor]"),
40
52
  model: Telnyx::Models::EmailEventListResponse,
41
53
  options: options
42
54
  )
@@ -50,21 +50,21 @@ module Telnyx
50
50
  #
51
51
  # @param inline_css [Boolean] Body param
52
52
  #
53
- # @param metadata [Hash{Symbol=>Object}] Body param: Custom metadata. Write-only; not returned in responses.
53
+ # @param metadata [Hash{Symbol=>Object}] Body param: Custom metadata key/value pairs. Stored on the message, returned on
54
54
  #
55
55
  # @param reply_to [String, Telnyx::Models::EmailInboxes::EmailAddress] Body param: Reply-to address. If provided as an object with a name, only the ema
56
56
  #
57
57
  # @param reply_to_all [Boolean, nil] Body param: Indicates a reply-all intent. In Phase 1 (wire-only) this does not
58
58
  #
59
- # @param sandbox_mode [Boolean] Body param
59
+ # @param sandbox_mode [Boolean] Body param: Validates and accepts the message without injecting it into the MTA
60
60
  #
61
- # @param scheduled_at [Time, nil] Body param: Future ISO 8601 time to schedule sending. Invalid or past timestamps
61
+ # @param scheduled_at [Time, nil] Body param: Future ISO 8601 delivery time. Invalid or non-future timestamps are
62
62
  #
63
63
  # @param send_at [Time] Body param: Deprecated alias for `scheduled_at`.
64
64
  #
65
65
  # @param subject [String] Body param: Required unless `template_id` is supplied. When using a template, th
66
66
  #
67
- # @param tags [Array<String>] Body param: Tags for categorization and reporting. Stored on the message and pro
67
+ # @param tags [Array<String>] Body param: Tags for categorization and filtering. Stored on the message, return
68
68
  #
69
69
  # @param template_id [String] Body param
70
70
  #
@@ -103,14 +103,14 @@ module Telnyx
103
103
  #
104
104
  # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
105
105
  #
106
- # @return [Telnyx::Models::EmailMessageRetrieveResponse]
106
+ # @return [Telnyx::Models::EmailMessageDetailResponse]
107
107
  #
108
108
  # @see Telnyx::Models::EmailMessageRetrieveParams
109
109
  def retrieve(id, params = {})
110
110
  @client.request(
111
111
  method: :get,
112
112
  path: ["email_messages/%1$s", id],
113
- model: Telnyx::Models::EmailMessageRetrieveResponse,
113
+ model: Telnyx::EmailMessageDetailResponse,
114
114
  options: params[:request_options]
115
115
  )
116
116
  end
@@ -118,11 +118,15 @@ module Telnyx
118
118
  # Some parameter documentations has been truncated, see
119
119
  # {Telnyx::Models::EmailMessageListParams} for more details.
120
120
  #
121
- # Lists messages sorted newest first by `created_at desc, id desc`. No filters
122
- # other than cursor pagination are implemented. The legacy `/v2/emails` GET route
123
- # is a backward-compatible alias for this operation.
121
+ # Lists messages sorted newest first by `created_at desc, id desc`. Tags and
122
+ # metadata filters compose with cursor pagination. The legacy `/v2/emails` GET
123
+ # route is a backward-compatible alias for this operation.
124
124
  #
125
- # @overload list(page_cursor: nil, page_size: nil, request_options: {})
125
+ # @overload list(filter_metadata: nil, filter_tags: nil, page_cursor: nil, page_size: nil, request_options: {})
126
+ #
127
+ # @param filter_metadata [String] Metadata containment filter, supplied as a JSON object or comma-separated `key=v
128
+ #
129
+ # @param filter_tags [String] Comma-separated tags. Each segment is trimmed, and messages having at least one
126
130
  #
127
131
  # @param page_cursor [String] Opaque URL-safe Base64 cursor returned by a previous list response.
128
132
  #
@@ -139,7 +143,7 @@ module Telnyx
139
143
  @client.request(
140
144
  method: :get,
141
145
  path: "email_messages",
142
- query: query,
146
+ query: query.transform_keys(filter_metadata: "filter[metadata]", filter_tags: "filter[tags]"),
143
147
  page: Telnyx::Internal::EmailCursorPagination,
144
148
  model: Telnyx::EmailInboxes::EmailMessage,
145
149
  options: options
@@ -176,13 +180,16 @@ module Telnyx
176
180
  # checks run first and can reject the whole batch before message creation. After
177
181
  # those checks pass, each message is validated and sent independently; item-level
178
182
  # failures do not affect other messages, and the processed batch returns 207
179
- # Multi-Status.
183
+ # Multi-Status. Per-message failures include validation errors; when a template
184
+ # has `strict_variables` enabled, a missing required variable produces a per-item
185
+ # `unprocessable_entity` error naming that variable while the other messages
186
+ # continue.
180
187
  #
181
188
  # @overload batch(messages:, sandbox_mode: nil, idempotency_key: nil, request_options: {})
182
189
  #
183
190
  # @param messages [Array<Telnyx::Models::EmailMessageBatchParams::Message>] Body param: Array of email messages to send. Up to 1,000 messages per batch requ
184
191
  #
185
- # @param sandbox_mode [Boolean] Body param: Applies sandbox mode to all messages in the batch. Overrides any per
192
+ # @param sandbox_mode [Boolean] Body param: Applies sandbox mode to all messages in the batch and overrides any
186
193
  #
187
194
  # @param idempotency_key [String] Header param: Optional opaque, unquoted key for safely retrying the same logical
188
195
  #
@@ -262,6 +269,15 @@ module Telnyx
262
269
  # `occurred_at asc, id asc`. The legacy `/v2/emails/{id}/events` GET route is a
263
270
  # backward-compatible alias.
264
271
  #
272
+ # For compatibility, each event carries the legacy customer-visible `event_type`
273
+ # (`email.`-prefixed), the additive `canonical_event_type` (`email.`-prefixed),
274
+ # and the deprecated `type` duplicate — whose value keeps the exact legacy format:
275
+ # the bare stored event name, never `email.`-prefixed. Gateway rejections render
276
+ # `email.failed` + canonical `email.gw_reject`; MTA expirations render
277
+ # `email.bounced` + canonical `email.expired`; every unchanged outcome carries
278
+ # identical `event_type` and `canonical_event_type` values (and `type` keeps the
279
+ # stored name).
280
+ #
265
281
  # @overload retrieve_events(email_id, page_cursor: nil, page_size: nil, request_options: {})
266
282
  #
267
283
  # @param email_id [String] Email message UUID.
@@ -288,6 +304,34 @@ module Telnyx
288
304
  )
289
305
  end
290
306
 
307
+ # Moves an existing scheduled email to a new future send time. Only the delivery
308
+ # time (`scheduled_at`) changes; the message ID, content, recipients, tags, and
309
+ # metadata remain unchanged. Returns `409 Conflict` if the message is no longer
310
+ # scheduled or its scheduled-send worker has already started processing it. This
311
+ # route emits no dedicated `rescheduled` event.
312
+ #
313
+ # @overload update_schedule(email_id, scheduled_at:, request_options: {})
314
+ #
315
+ # @param email_id [String] Email message UUID.
316
+ #
317
+ # @param scheduled_at [Time] New ISO 8601 delivery time. Must be strictly in the future.
318
+ #
319
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
320
+ #
321
+ # @return [Telnyx::Models::EmailMessageDetailResponse]
322
+ #
323
+ # @see Telnyx::Models::EmailMessageUpdateScheduleParams
324
+ def update_schedule(email_id, params)
325
+ parsed, options = Telnyx::EmailMessageUpdateScheduleParams.dump_request(params)
326
+ @client.request(
327
+ method: :patch,
328
+ path: ["email_messages/%1$s/schedule", email_id],
329
+ body: parsed,
330
+ model: Telnyx::EmailMessageDetailResponse,
331
+ options: options
332
+ )
333
+ end
334
+
291
335
  # @api private
292
336
  #
293
337
  # @param client [Telnyx::Client]
@@ -9,16 +9,22 @@ module Telnyx
9
9
  #
10
10
  # Creates a Liquid email template. Variables are auto-extracted when omitted.
11
11
  #
12
- # @overload create(name:, html_body: nil, subject: nil, text_body: nil, variables: nil, idempotency_key: nil, request_options: {})
12
+ # @overload create(name:, autoescape: nil, html_body: nil, strict_variables: nil, subject: nil, text_body: nil, variable_schema: nil, variables: nil, idempotency_key: nil, request_options: {})
13
13
  #
14
14
  # @param name [String] Body param: Letters, numbers, spaces, hyphens, and underscores only.
15
15
  #
16
+ # @param autoescape [Boolean] Body param: Per-template HTML autoescaping setting. Defaults to `false` for back
17
+ #
16
18
  # @param html_body [String, nil] Body param: Liquid template HTML body.
17
19
  #
20
+ # @param strict_variables [Boolean] Body param: Per-template strict variable-validation setting. Defaults to `false`
21
+ #
18
22
  # @param subject [String, nil] Body param: Liquid template subject.
19
23
  #
20
24
  # @param text_body [String, nil] Body param: Liquid template text body.
21
25
  #
26
+ # @param variable_schema [Hash{Symbol=>Telnyx::Models::EmailTemplateCreateParams::VariableSchema}, nil] Body param: Structured variable requirements. Required variables cannot define d
27
+ #
22
28
  # @param variables [Array<String>] Body param: Template variables. Auto-extracted from subject/body fields when abs
23
29
  #
24
30
  # @param idempotency_key [String] Header param: Optional opaque, unquoted key for safely retrying the same logical
@@ -62,21 +68,30 @@ module Telnyx
62
68
  )
63
69
  end
64
70
 
71
+ # Some parameter documentations has been truncated, see
72
+ # {Telnyx::Models::EmailTemplateUpdateParams} for more details.
73
+ #
65
74
  # Updates one or more fields of the specified email template and returns the
66
75
  # updated template.
67
76
  #
68
- # @overload update(id, html_body: nil, name: nil, subject: nil, text_body: nil, variables: nil, request_options: {})
77
+ # @overload update(id, autoescape: nil, html_body: nil, name: nil, strict_variables: nil, subject: nil, text_body: nil, variable_schema: nil, variables: nil, request_options: {})
69
78
  #
70
79
  # @param id [String] Email template UUID.
71
80
  #
81
+ # @param autoescape [Boolean] Per-template HTML autoescaping setting.
82
+ #
72
83
  # @param html_body [String, nil] Liquid template HTML body.
73
84
  #
74
85
  # @param name [String]
75
86
  #
87
+ # @param strict_variables [Boolean] Per-template strict variable-validation setting.
88
+ #
76
89
  # @param subject [String, nil] Liquid template subject.
77
90
  #
78
91
  # @param text_body [String, nil] Liquid template text body.
79
92
  #
93
+ # @param variable_schema [Hash{Symbol=>Telnyx::Models::UpdateEmailTemplateRequest::VariableSchema}, nil] Structured variable requirements. Required variables cannot define defaults; inv
94
+ #
80
95
  # @param variables [Array<String>]
81
96
  #
82
97
  # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
@@ -151,6 +166,12 @@ module Telnyx
151
166
  # Renders a template using the provided Liquid variables. Missing
152
167
  # `template_variables` defaults to `{}`.
153
168
  #
169
+ # When the template has `strict_variables` enabled and a required variable (per
170
+ # `variable_schema`) is missing, returns 422 naming the variable. When the
171
+ # template has `autoescape` enabled, the rendered `html_body` expression output is
172
+ # HTML-escaped at the output boundary; `subject` and `text_body` are not
173
+ # autoescaped.
174
+ #
154
175
  # @overload render(id, template_variables: nil, request_options: {})
155
176
  #
156
177
  # @param id [String] Email template UUID.
@@ -173,21 +194,30 @@ module Telnyx
173
194
  )
174
195
  end
175
196
 
197
+ # Some parameter documentations has been truncated, see
198
+ # {Telnyx::Models::EmailTemplateReplaceParams} for more details.
199
+ #
176
200
  # Replaces template fields. Behaves identically to PATCH; provided for
177
201
  # compatibility with Phoenix resource routes.
178
202
  #
179
- # @overload replace(id, html_body: nil, name: nil, subject: nil, text_body: nil, variables: nil, request_options: {})
203
+ # @overload replace(id, autoescape: nil, html_body: nil, name: nil, strict_variables: nil, subject: nil, text_body: nil, variable_schema: nil, variables: nil, request_options: {})
180
204
  #
181
205
  # @param id [String] Email template UUID.
182
206
  #
207
+ # @param autoescape [Boolean] Per-template HTML autoescaping setting.
208
+ #
183
209
  # @param html_body [String, nil] Liquid template HTML body.
184
210
  #
185
211
  # @param name [String]
186
212
  #
213
+ # @param strict_variables [Boolean] Per-template strict variable-validation setting.
214
+ #
187
215
  # @param subject [String, nil] Liquid template subject.
188
216
  #
189
217
  # @param text_body [String, nil] Liquid template text body.
190
218
  #
219
+ # @param variable_schema [Hash{Symbol=>Telnyx::Models::UpdateEmailTemplateRequest::VariableSchema}, nil] Structured variable requirements. Required variables cannot define defaults; inv
220
+ #
191
221
  # @param variables [Array<String>]
192
222
  #
193
223
  # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
@@ -32,7 +32,13 @@ module Telnyx
32
32
  # Some parameter documentations has been truncated, see
33
33
  # {Telnyx::Models::MeetingSessions::ActionSpeakParams} for more details.
34
34
  #
35
- # Sends audio / text-to-speech into a meeting session.
35
+ # Sends audio / text-to-speech into a meeting session. With a Telnyx AI Assistant
36
+ # (or avatar) attached, the bot is a webpage-output bot: the speak audio routes
37
+ # through the assistant's output page rather than the bot mic and plays once the
38
+ # assistant is connected -- it is not refused. If that page cannot be reached,
39
+ # delivery fails with the 502 below, which may arrive without an error envelope,
40
+ # so branch on the status code before parsing a body. The assistant is designed to
41
+ # own the conversation, so prefer letting it speak or use `send_chat`.
36
42
  #
37
43
  # @overload speak(id, text:, interrupt: nil, voice: nil, request_options: {})
38
44
  #
@@ -5,17 +5,26 @@ module Telnyx
5
5
  class MeetingSessions
6
6
  # Create and retrieve asynchronous summaries and action-item artifacts.
7
7
  class Artifacts
8
- # Requests asynchronous generation of one `summary` or `action_items` artifact.
9
- # Each type requires its own request. Generation requires transcript content and
10
- # configured inference and currently reads at most the first 10,000 segments, so
11
- # exceptionally long transcripts may produce incomplete artifacts or fail model
12
- # limits.
13
- #
14
- # @overload create(id, type:, request_options: {})
8
+ # Some parameter documentations has been truncated, see
9
+ # {Telnyx::Models::MeetingSessions::ArtifactCreateParams} for more details.
10
+ #
11
+ # Requests asynchronous generation of one artifact: `summary`, `action_items`,
12
+ # `decisions`, `topics`, `open_questions`, or `custom`. Each request produces one
13
+ # artifact. `custom` is answered from a `prompt` you supply, which is required for
14
+ # `custom` and rejected on the five named types. Generation requires transcript
15
+ # content and configured inference and currently reads at most the first 10,000
16
+ # segments, so exceptionally long transcripts may produce incomplete artifacts or
17
+ # fail model limits. **Not idempotent, and every call is billed**: each request is
18
+ # a separate inference run, so a retry or a duplicate POST produces a second
19
+ # artifact and a second charge. Guard the call rather than relying on the service
20
+ # to collapse it. The automatic `summarize_on_end` attempt is billed on the same
21
+ # basis.
22
+ #
23
+ # @overload create(id, body:, request_options: {})
15
24
  #
16
25
  # @param id [String] Unique identifier for the meeting session.
17
26
  #
18
- # @param type [Symbol, Telnyx::Models::MeetingSessions::ArtifactCreateParams::Type] Type of artifact to generate from the session.
27
+ # @param body [Telnyx::Models::MeetingSessions::ArtifactCreateParams::Body::NamedArtifact, Telnyx::Models::MeetingSessions::ArtifactCreateParams::Body::CustomArtifact] One of two shapes: a named type on its own, or `custom` with the prompt it answe
19
28
  #
20
29
  # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
21
30
  #
@@ -27,7 +36,7 @@ module Telnyx
27
36
  @client.request(
28
37
  method: :post,
29
38
  path: ["meeting_sessions/%1$s/artifacts", id],
30
- body: parsed,
39
+ body: parsed[:body],
31
40
  model: Telnyx::MeetingSessions::MeetingSessionArtifactResponse,
32
41
  options: options
33
42
  )
@@ -26,11 +26,11 @@ module Telnyx
26
26
  # before bot creation; neither the source URL nor image bytes are persisted,
27
27
  # returned, or logged. Treat signed URLs as credentials.
28
28
  #
29
- # @overload create(meeting_url:, assistant: nil, avatar: nil, barge_in: nil, bot_name: nil, camera_image: nil, idempotency_key: nil, join_at: nil, metadata: nil, speak_on_enter: nil, summarize_on_end: nil, voice: nil, webhook_url: nil, request_options: {})
29
+ # @overload create(meeting_url:, assistant: nil, avatar: nil, barge_in: nil, bot_name: nil, camera_image: nil, chat_on_enter: nil, idempotency_key: nil, join_at: nil, metadata: nil, speak_on_enter: nil, summarize_on_end: nil, voice: nil, webhook_url: nil, request_options: {})
30
30
  #
31
31
  # @param meeting_url [String] The meeting URL the bot should join.
32
32
  #
33
- # @param assistant [Telnyx::Models::MeetingSessionCreateParams::Assistant] Request options for attaching a voice assistant to the session. Routing fields (
33
+ # @param assistant [Telnyx::Models::MeetingSessionCreateParams::Assistant] Attach a Telnyx AI Assistant to the session. Supply the Assistant's ID; the Meet
34
34
  #
35
35
  # @param avatar [Telnyx::Models::MeetingSessionCreateParams::Avatar] Request options for attaching a bring-your-own-key avatar to the session.
36
36
  #
@@ -40,13 +40,16 @@ module Telnyx
40
40
  #
41
41
  # @param camera_image [Telnyx::Models::MeetingSessionCreateParams::CameraImage::MeetingSessionCameraImageBase64Source, Telnyx::Models::MeetingSessionCreateParams::CameraImage::MeetingSessionCameraImageURLSource] Write-only static camera-tile image for this session, not a native account or pa
42
42
  #
43
+ # @param chat_on_enter [String] A message the bot posts to the meeting's chat as soon as it becomes active — typ
44
+ #
43
45
  # @param idempotency_key [String] Client-supplied idempotency key to safely retry creation requests without duplic
44
46
  #
45
47
  # @param join_at [Time] ISO-8601 timestamp in the future at which the bot should join. If omitted, the b
46
48
  #
47
49
  # @param metadata [Hash{Symbol=>Object}] Arbitrary key-value metadata attached to the session. The serialized JSON repres
48
50
  #
49
- # @param speak_on_enter [String] Text the bot speaks when it enters the meeting.
51
+ # @param speak_on_enter [String] Text the bot speaks when it enters the meeting. \*\*Not spoken when an
52
+ # `assistant`
50
53
  #
51
54
  # @param summarize_on_end [Boolean] If true, generate a summary artifact when the session ends.
52
55
  #
@@ -165,8 +168,6 @@ module Telnyx
165
168
  )
166
169
  end
167
170
 
168
- # **Not yet available in production** — this route is not currently routed on
169
- # api.telnyx.com and returns a generic 404; it is documented ahead of rollout.
170
171
  # Irreversibly requests deletion of provider-hosted aggregate recording media
171
172
  # under the provider contract. The operation retains the Telnyx-local Meeting
172
173
  # session, transcript segments, events, artifacts, and usage records. It is