telnyx 7.23.0 → 7.24.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 (371) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/client.d.mts +8 -8
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +8 -8
  5. package/client.d.ts.map +1 -1
  6. package/client.js.map +1 -1
  7. package/client.mjs.map +1 -1
  8. package/package.json +1 -1
  9. package/resources/ai/ai.d.mts +6 -2
  10. package/resources/ai/ai.d.mts.map +1 -1
  11. package/resources/ai/ai.d.ts +6 -2
  12. package/resources/ai/ai.d.ts.map +1 -1
  13. package/resources/ai/ai.js +4 -0
  14. package/resources/ai/ai.js.map +1 -1
  15. package/resources/ai/ai.mjs +4 -0
  16. package/resources/ai/ai.mjs.map +1 -1
  17. package/resources/ai/assistants/assistants.d.mts +153 -11
  18. package/resources/ai/assistants/assistants.d.mts.map +1 -1
  19. package/resources/ai/assistants/assistants.d.ts +153 -11
  20. package/resources/ai/assistants/assistants.d.ts.map +1 -1
  21. package/resources/ai/assistants/assistants.js.map +1 -1
  22. package/resources/ai/assistants/assistants.mjs.map +1 -1
  23. package/resources/ai/assistants/index.d.mts +1 -1
  24. package/resources/ai/assistants/index.d.mts.map +1 -1
  25. package/resources/ai/assistants/index.d.ts +1 -1
  26. package/resources/ai/assistants/index.d.ts.map +1 -1
  27. package/resources/ai/assistants/index.js.map +1 -1
  28. package/resources/ai/assistants/index.mjs.map +1 -1
  29. package/resources/ai/assistants/versions.d.mts +2 -2
  30. package/resources/ai/assistants/versions.d.mts.map +1 -1
  31. package/resources/ai/assistants/versions.d.ts +2 -2
  32. package/resources/ai/assistants/versions.d.ts.map +1 -1
  33. package/resources/ai/collections/collections.d.mts +3 -3
  34. package/resources/ai/collections/collections.d.mts.map +1 -1
  35. package/resources/ai/collections/collections.d.ts +3 -3
  36. package/resources/ai/collections/collections.d.ts.map +1 -1
  37. package/resources/ai/collections/collections.js.map +1 -1
  38. package/resources/ai/collections/collections.mjs.map +1 -1
  39. package/resources/ai/collections/index.d.mts +1 -1
  40. package/resources/ai/collections/index.d.mts.map +1 -1
  41. package/resources/ai/collections/index.d.ts +1 -1
  42. package/resources/ai/collections/index.d.ts.map +1 -1
  43. package/resources/ai/collections/index.js.map +1 -1
  44. package/resources/ai/collections/index.mjs.map +1 -1
  45. package/resources/ai/collections/sources.d.mts +32 -5
  46. package/resources/ai/collections/sources.d.mts.map +1 -1
  47. package/resources/ai/collections/sources.d.ts +32 -5
  48. package/resources/ai/collections/sources.d.ts.map +1 -1
  49. package/resources/ai/collections/sources.js.map +1 -1
  50. package/resources/ai/collections/sources.mjs.map +1 -1
  51. package/resources/ai/index.d.mts +2 -1
  52. package/resources/ai/index.d.mts.map +1 -1
  53. package/resources/ai/index.d.ts +2 -1
  54. package/resources/ai/index.d.ts.map +1 -1
  55. package/resources/ai/index.js +9 -7
  56. package/resources/ai/index.js.map +1 -1
  57. package/resources/ai/index.mjs +1 -0
  58. package/resources/ai/index.mjs.map +1 -1
  59. package/resources/ai/memory/index.d.mts +3 -0
  60. package/resources/ai/memory/index.d.mts.map +1 -0
  61. package/resources/ai/memory/index.d.ts +3 -0
  62. package/resources/ai/memory/index.d.ts.map +1 -0
  63. package/resources/ai/memory/index.js +9 -0
  64. package/resources/ai/memory/index.js.map +1 -0
  65. package/resources/ai/memory/index.mjs +4 -0
  66. package/resources/ai/memory/index.mjs.map +1 -0
  67. package/resources/ai/memory/memory.d.mts +10 -0
  68. package/resources/ai/memory/memory.d.mts.map +1 -0
  69. package/resources/ai/memory/memory.d.ts +10 -0
  70. package/resources/ai/memory/memory.d.ts.map +1 -0
  71. package/resources/ai/memory/memory.js +17 -0
  72. package/resources/ai/memory/memory.js.map +1 -0
  73. package/resources/ai/memory/memory.mjs +12 -0
  74. package/resources/ai/memory/memory.mjs.map +1 -0
  75. package/resources/ai/memory/namespaces/index.d.mts +4 -0
  76. package/resources/ai/memory/namespaces/index.d.mts.map +1 -0
  77. package/resources/ai/memory/namespaces/index.d.ts +4 -0
  78. package/resources/ai/memory/namespaces/index.d.ts.map +1 -0
  79. package/resources/ai/memory/namespaces/index.js +11 -0
  80. package/resources/ai/memory/namespaces/index.js.map +1 -0
  81. package/resources/ai/memory/namespaces/index.mjs +5 -0
  82. package/resources/ai/memory/namespaces/index.mjs.map +1 -0
  83. package/resources/ai/memory/namespaces/namespaces.d.mts +54 -0
  84. package/resources/ai/memory/namespaces/namespaces.d.mts.map +1 -0
  85. package/resources/ai/memory/namespaces/namespaces.d.ts +54 -0
  86. package/resources/ai/memory/namespaces/namespaces.d.ts.map +1 -0
  87. package/resources/ai/memory/namespaces/namespaces.js +43 -0
  88. package/resources/ai/memory/namespaces/namespaces.js.map +1 -0
  89. package/resources/ai/memory/namespaces/namespaces.mjs +38 -0
  90. package/resources/ai/memory/namespaces/namespaces.mjs.map +1 -0
  91. package/resources/ai/memory/namespaces/profiles/index.d.mts +4 -0
  92. package/resources/ai/memory/namespaces/profiles/index.d.mts.map +1 -0
  93. package/resources/ai/memory/namespaces/profiles/index.d.ts +4 -0
  94. package/resources/ai/memory/namespaces/profiles/index.d.ts.map +1 -0
  95. package/resources/ai/memory/namespaces/profiles/index.js +11 -0
  96. package/resources/ai/memory/namespaces/profiles/index.js.map +1 -0
  97. package/resources/ai/memory/namespaces/profiles/index.mjs +5 -0
  98. package/resources/ai/memory/namespaces/profiles/index.mjs.map +1 -0
  99. package/resources/ai/memory/namespaces/profiles/memories.d.mts +118 -0
  100. package/resources/ai/memory/namespaces/profiles/memories.d.mts.map +1 -0
  101. package/resources/ai/memory/namespaces/profiles/memories.d.ts +118 -0
  102. package/resources/ai/memory/namespaces/profiles/memories.d.ts.map +1 -0
  103. package/resources/ai/memory/namespaces/profiles/memories.js +63 -0
  104. package/resources/ai/memory/namespaces/profiles/memories.js.map +1 -0
  105. package/resources/ai/memory/namespaces/profiles/memories.mjs +59 -0
  106. package/resources/ai/memory/namespaces/profiles/memories.mjs.map +1 -0
  107. package/resources/ai/memory/namespaces/profiles/profiles.d.mts +324 -0
  108. package/resources/ai/memory/namespaces/profiles/profiles.d.mts.map +1 -0
  109. package/resources/ai/memory/namespaces/profiles/profiles.d.ts +324 -0
  110. package/resources/ai/memory/namespaces/profiles/profiles.d.ts.map +1 -0
  111. package/resources/ai/memory/namespaces/profiles/profiles.js +161 -0
  112. package/resources/ai/memory/namespaces/profiles/profiles.js.map +1 -0
  113. package/resources/ai/memory/namespaces/profiles/profiles.mjs +156 -0
  114. package/resources/ai/memory/namespaces/profiles/profiles.mjs.map +1 -0
  115. package/resources/ai/memory/namespaces/profiles/sources.d.mts +163 -0
  116. package/resources/ai/memory/namespaces/profiles/sources.d.mts.map +1 -0
  117. package/resources/ai/memory/namespaces/profiles/sources.d.ts +163 -0
  118. package/resources/ai/memory/namespaces/profiles/sources.d.ts.map +1 -0
  119. package/resources/ai/memory/namespaces/profiles/sources.js +80 -0
  120. package/resources/ai/memory/namespaces/profiles/sources.js.map +1 -0
  121. package/resources/ai/memory/namespaces/profiles/sources.mjs +76 -0
  122. package/resources/ai/memory/namespaces/profiles/sources.mjs.map +1 -0
  123. package/resources/ai/memory/namespaces/profiles.d.mts +2 -0
  124. package/resources/ai/memory/namespaces/profiles.d.mts.map +1 -0
  125. package/resources/ai/memory/namespaces/profiles.d.ts +2 -0
  126. package/resources/ai/memory/namespaces/profiles.d.ts.map +1 -0
  127. package/resources/ai/memory/namespaces/profiles.js +6 -0
  128. package/resources/ai/memory/namespaces/profiles.js.map +1 -0
  129. package/resources/ai/memory/namespaces/profiles.mjs +3 -0
  130. package/resources/ai/memory/namespaces/profiles.mjs.map +1 -0
  131. package/resources/ai/memory/namespaces/settings.d.mts +108 -0
  132. package/resources/ai/memory/namespaces/settings.d.mts.map +1 -0
  133. package/resources/ai/memory/namespaces/settings.d.ts +108 -0
  134. package/resources/ai/memory/namespaces/settings.d.ts.map +1 -0
  135. package/resources/ai/memory/namespaces/settings.js +54 -0
  136. package/resources/ai/memory/namespaces/settings.js.map +1 -0
  137. package/resources/ai/memory/namespaces/settings.mjs +50 -0
  138. package/resources/ai/memory/namespaces/settings.mjs.map +1 -0
  139. package/resources/ai/memory/namespaces.d.mts +2 -0
  140. package/resources/ai/memory/namespaces.d.mts.map +1 -0
  141. package/resources/ai/memory/namespaces.d.ts +2 -0
  142. package/resources/ai/memory/namespaces.d.ts.map +1 -0
  143. package/resources/ai/memory/namespaces.js +6 -0
  144. package/resources/ai/memory/namespaces.js.map +1 -0
  145. package/resources/ai/memory/namespaces.mjs +3 -0
  146. package/resources/ai/memory/namespaces.mjs.map +1 -0
  147. package/resources/ai/memory.d.mts +2 -0
  148. package/resources/ai/memory.d.mts.map +1 -0
  149. package/resources/ai/memory.d.ts +2 -0
  150. package/resources/ai/memory.d.ts.map +1 -0
  151. package/resources/ai/memory.js +6 -0
  152. package/resources/ai/memory.js.map +1 -0
  153. package/resources/ai/memory.mjs +3 -0
  154. package/resources/ai/memory.mjs.map +1 -0
  155. package/resources/ai/typesafe/v1.d.mts +25 -14
  156. package/resources/ai/typesafe/v1.d.mts.map +1 -1
  157. package/resources/ai/typesafe/v1.d.ts +25 -14
  158. package/resources/ai/typesafe/v1.d.ts.map +1 -1
  159. package/resources/ai/typesafe/v1.js +15 -10
  160. package/resources/ai/typesafe/v1.js.map +1 -1
  161. package/resources/ai/typesafe/v1.mjs +15 -10
  162. package/resources/ai/typesafe/v1.mjs.map +1 -1
  163. package/resources/calls/actions.d.mts +43 -5
  164. package/resources/calls/actions.d.mts.map +1 -1
  165. package/resources/calls/actions.d.ts +43 -5
  166. package/resources/calls/actions.d.ts.map +1 -1
  167. package/resources/calls/calls.d.mts +10 -4
  168. package/resources/calls/calls.d.mts.map +1 -1
  169. package/resources/calls/calls.d.ts +10 -4
  170. package/resources/calls/calls.d.ts.map +1 -1
  171. package/resources/calls/calls.js.map +1 -1
  172. package/resources/calls/calls.mjs.map +1 -1
  173. package/resources/calls/index.d.mts +1 -1
  174. package/resources/calls/index.d.mts.map +1 -1
  175. package/resources/calls/index.d.ts +1 -1
  176. package/resources/calls/index.d.ts.map +1 -1
  177. package/resources/calls/index.js.map +1 -1
  178. package/resources/calls/index.mjs.map +1 -1
  179. package/resources/conferences/actions.d.mts +7 -1
  180. package/resources/conferences/actions.d.mts.map +1 -1
  181. package/resources/conferences/actions.d.ts +7 -1
  182. package/resources/conferences/actions.d.ts.map +1 -1
  183. package/resources/email-blocks/email-blocks.d.mts +12 -4
  184. package/resources/email-blocks/email-blocks.d.mts.map +1 -1
  185. package/resources/email-blocks/email-blocks.d.ts +12 -4
  186. package/resources/email-blocks/email-blocks.d.ts.map +1 -1
  187. package/resources/email-blocks/email-blocks.js +5 -3
  188. package/resources/email-blocks/email-blocks.js.map +1 -1
  189. package/resources/email-blocks/email-blocks.mjs +5 -3
  190. package/resources/email-blocks/email-blocks.mjs.map +1 -1
  191. package/resources/email-blocks/imports.d.mts +20 -4
  192. package/resources/email-blocks/imports.d.mts.map +1 -1
  193. package/resources/email-blocks/imports.d.ts +20 -4
  194. package/resources/email-blocks/imports.d.ts.map +1 -1
  195. package/resources/email-blocks/imports.js +17 -3
  196. package/resources/email-blocks/imports.js.map +1 -1
  197. package/resources/email-blocks/imports.mjs +17 -3
  198. package/resources/email-blocks/imports.mjs.map +1 -1
  199. package/resources/email-domains/email-domains.d.mts +98 -1
  200. package/resources/email-domains/email-domains.d.mts.map +1 -1
  201. package/resources/email-domains/email-domains.d.ts +98 -1
  202. package/resources/email-domains/email-domains.d.ts.map +1 -1
  203. package/resources/email-domains/email-domains.js +21 -0
  204. package/resources/email-domains/email-domains.js.map +1 -1
  205. package/resources/email-domains/email-domains.mjs +21 -0
  206. package/resources/email-domains/email-domains.mjs.map +1 -1
  207. package/resources/email-domains/index.d.mts +1 -1
  208. package/resources/email-domains/index.d.mts.map +1 -1
  209. package/resources/email-domains/index.d.ts +1 -1
  210. package/resources/email-domains/index.d.ts.map +1 -1
  211. package/resources/email-domains/index.js.map +1 -1
  212. package/resources/email-domains/index.mjs.map +1 -1
  213. package/resources/email-domains/webhooks.d.mts +6 -4
  214. package/resources/email-domains/webhooks.d.mts.map +1 -1
  215. package/resources/email-domains/webhooks.d.ts +6 -4
  216. package/resources/email-domains/webhooks.d.ts.map +1 -1
  217. package/resources/email-events.d.mts +162 -28
  218. package/resources/email-events.d.mts.map +1 -1
  219. package/resources/email-events.d.ts +162 -28
  220. package/resources/email-events.d.ts.map +1 -1
  221. package/resources/email-events.js +15 -6
  222. package/resources/email-events.js.map +1 -1
  223. package/resources/email-events.mjs +15 -6
  224. package/resources/email-events.mjs.map +1 -1
  225. package/resources/email-inboxes/drafts.d.mts +31 -1
  226. package/resources/email-inboxes/drafts.d.mts.map +1 -1
  227. package/resources/email-inboxes/drafts.d.ts +31 -1
  228. package/resources/email-inboxes/drafts.d.ts.map +1 -1
  229. package/resources/email-inboxes/drafts.js.map +1 -1
  230. package/resources/email-inboxes/drafts.mjs.map +1 -1
  231. package/resources/email-messages/email-messages.d.mts +174 -43
  232. package/resources/email-messages/email-messages.d.mts.map +1 -1
  233. package/resources/email-messages/email-messages.d.ts +174 -43
  234. package/resources/email-messages/email-messages.d.ts.map +1 -1
  235. package/resources/email-messages/email-messages.js +39 -7
  236. package/resources/email-messages/email-messages.js.map +1 -1
  237. package/resources/email-messages/email-messages.mjs +39 -7
  238. package/resources/email-messages/email-messages.mjs.map +1 -1
  239. package/resources/email-messages/index.d.mts +1 -1
  240. package/resources/email-messages/index.d.mts.map +1 -1
  241. package/resources/email-messages/index.d.ts +1 -1
  242. package/resources/email-messages/index.d.ts.map +1 -1
  243. package/resources/email-messages/index.js.map +1 -1
  244. package/resources/email-messages/index.mjs.map +1 -1
  245. package/resources/email-messages/recipients.d.mts +2 -2
  246. package/resources/email-messages/recipients.d.mts.map +1 -1
  247. package/resources/email-messages/recipients.d.ts +2 -2
  248. package/resources/email-messages/recipients.d.ts.map +1 -1
  249. package/resources/email-templates.d.mts +170 -0
  250. package/resources/email-templates.d.mts.map +1 -1
  251. package/resources/email-templates.d.ts +170 -0
  252. package/resources/email-templates.d.ts.map +1 -1
  253. package/resources/email-templates.js +6 -0
  254. package/resources/email-templates.js.map +1 -1
  255. package/resources/email-templates.mjs +6 -0
  256. package/resources/email-templates.mjs.map +1 -1
  257. package/resources/index.d.mts +4 -4
  258. package/resources/index.d.mts.map +1 -1
  259. package/resources/index.d.ts +4 -4
  260. package/resources/index.d.ts.map +1 -1
  261. package/resources/index.js.map +1 -1
  262. package/resources/index.mjs.map +1 -1
  263. package/resources/meeting-sessions/actions.d.mts +7 -1
  264. package/resources/meeting-sessions/actions.d.mts.map +1 -1
  265. package/resources/meeting-sessions/actions.d.ts +7 -1
  266. package/resources/meeting-sessions/actions.d.ts.map +1 -1
  267. package/resources/meeting-sessions/actions.js +7 -1
  268. package/resources/meeting-sessions/actions.js.map +1 -1
  269. package/resources/meeting-sessions/actions.mjs +7 -1
  270. package/resources/meeting-sessions/actions.mjs.map +1 -1
  271. package/resources/meeting-sessions/artifacts.d.mts +38 -11
  272. package/resources/meeting-sessions/artifacts.d.mts.map +1 -1
  273. package/resources/meeting-sessions/artifacts.d.ts +38 -11
  274. package/resources/meeting-sessions/artifacts.d.ts.map +1 -1
  275. package/resources/meeting-sessions/artifacts.js +11 -5
  276. package/resources/meeting-sessions/artifacts.js.map +1 -1
  277. package/resources/meeting-sessions/artifacts.mjs +11 -5
  278. package/resources/meeting-sessions/artifacts.mjs.map +1 -1
  279. package/resources/meeting-sessions/meeting-sessions.d.mts +63 -23
  280. package/resources/meeting-sessions/meeting-sessions.d.mts.map +1 -1
  281. package/resources/meeting-sessions/meeting-sessions.d.ts +63 -23
  282. package/resources/meeting-sessions/meeting-sessions.d.ts.map +1 -1
  283. package/resources/meeting-sessions/meeting-sessions.js +0 -2
  284. package/resources/meeting-sessions/meeting-sessions.js.map +1 -1
  285. package/resources/meeting-sessions/meeting-sessions.mjs +0 -2
  286. package/resources/meeting-sessions/meeting-sessions.mjs.map +1 -1
  287. package/resources/phone-numbers/phone-numbers.d.mts +12 -2
  288. package/resources/phone-numbers/phone-numbers.d.mts.map +1 -1
  289. package/resources/phone-numbers/phone-numbers.d.ts +12 -2
  290. package/resources/phone-numbers/phone-numbers.d.ts.map +1 -1
  291. package/resources/phone-numbers/phone-numbers.js.map +1 -1
  292. package/resources/phone-numbers/phone-numbers.mjs.map +1 -1
  293. package/resources/private-wireless-gateways.d.mts +61 -7
  294. package/resources/private-wireless-gateways.d.mts.map +1 -1
  295. package/resources/private-wireless-gateways.d.ts +61 -7
  296. package/resources/private-wireless-gateways.d.ts.map +1 -1
  297. package/resources/private-wireless-gateways.js +1 -1
  298. package/resources/private-wireless-gateways.js.map +1 -1
  299. package/resources/private-wireless-gateways.mjs +1 -1
  300. package/resources/private-wireless-gateways.mjs.map +1 -1
  301. package/resources/texml/accounts/calls/calls.d.mts +9 -9
  302. package/resources/texml/accounts/calls/calls.d.mts.map +1 -1
  303. package/resources/texml/accounts/calls/calls.d.ts +9 -9
  304. package/resources/texml/accounts/calls/calls.d.ts.map +1 -1
  305. package/resources/texml/accounts/calls/calls.js +12 -2
  306. package/resources/texml/accounts/calls/calls.js.map +1 -1
  307. package/resources/texml/accounts/calls/calls.mjs +12 -2
  308. package/resources/texml/accounts/calls/calls.mjs.map +1 -1
  309. package/resources/text-to-speech/text-to-speech.d.mts +61 -9
  310. package/resources/text-to-speech/text-to-speech.d.mts.map +1 -1
  311. package/resources/text-to-speech/text-to-speech.d.ts +61 -9
  312. package/resources/text-to-speech/text-to-speech.d.ts.map +1 -1
  313. package/resources/text-to-speech/text-to-speech.js +10 -3
  314. package/resources/text-to-speech/text-to-speech.js.map +1 -1
  315. package/resources/text-to-speech/text-to-speech.mjs +10 -3
  316. package/resources/text-to-speech/text-to-speech.mjs.map +1 -1
  317. package/resources/webhooks.d.mts +14 -4
  318. package/resources/webhooks.d.mts.map +1 -1
  319. package/resources/webhooks.d.ts +14 -4
  320. package/resources/webhooks.d.ts.map +1 -1
  321. package/src/client.ts +12 -6
  322. package/src/resources/ai/ai.ts +8 -0
  323. package/src/resources/ai/assistants/assistants.ts +221 -11
  324. package/src/resources/ai/assistants/index.ts +1 -0
  325. package/src/resources/ai/assistants/versions.ts +2 -2
  326. package/src/resources/ai/collections/collections.ts +3 -1
  327. package/src/resources/ai/collections/index.ts +2 -0
  328. package/src/resources/ai/collections/sources.ts +38 -4
  329. package/src/resources/ai/index.ts +2 -0
  330. package/src/resources/ai/memory/index.ts +4 -0
  331. package/src/resources/ai/memory/memory.ts +19 -0
  332. package/src/resources/ai/memory/namespaces/index.ts +21 -0
  333. package/src/resources/ai/memory/namespaces/namespaces.ts +116 -0
  334. package/src/resources/ai/memory/namespaces/profiles/index.ts +35 -0
  335. package/src/resources/ai/memory/namespaces/profiles/memories.ts +170 -0
  336. package/src/resources/ai/memory/namespaces/profiles/profiles.ts +482 -0
  337. package/src/resources/ai/memory/namespaces/profiles/sources.ts +226 -0
  338. package/src/resources/ai/memory/namespaces/profiles.ts +3 -0
  339. package/src/resources/ai/memory/namespaces/settings.ts +129 -0
  340. package/src/resources/ai/memory/namespaces.ts +3 -0
  341. package/src/resources/ai/memory.ts +3 -0
  342. package/src/resources/ai/typesafe/v1.ts +26 -14
  343. package/src/resources/calls/actions.ts +50 -4
  344. package/src/resources/calls/calls.ts +12 -2
  345. package/src/resources/calls/index.ts +1 -0
  346. package/src/resources/conferences/actions.ts +8 -1
  347. package/src/resources/email-blocks/email-blocks.ts +12 -4
  348. package/src/resources/email-blocks/imports.ts +20 -4
  349. package/src/resources/email-domains/email-domains.ts +120 -0
  350. package/src/resources/email-domains/index.ts +1 -0
  351. package/src/resources/email-domains/webhooks.ts +9 -4
  352. package/src/resources/email-events.ts +220 -35
  353. package/src/resources/email-inboxes/drafts.ts +32 -1
  354. package/src/resources/email-messages/email-messages.ts +191 -47
  355. package/src/resources/email-messages/index.ts +2 -1
  356. package/src/resources/email-messages/recipients.ts +6 -2
  357. package/src/resources/email-templates.ts +185 -0
  358. package/src/resources/index.ts +6 -3
  359. package/src/resources/meeting-sessions/actions.ts +7 -1
  360. package/src/resources/meeting-sessions/artifacts.ts +42 -11
  361. package/src/resources/meeting-sessions/meeting-sessions.ts +63 -24
  362. package/src/resources/phone-numbers/phone-numbers.ts +13 -2
  363. package/src/resources/private-wireless-gateways.ts +76 -8
  364. package/src/resources/texml/accounts/calls/calls.ts +20 -10
  365. package/src/resources/text-to-speech/text-to-speech.ts +69 -9
  366. package/src/resources/webhooks.ts +16 -4
  367. package/src/version.ts +1 -1
  368. package/version.d.mts +1 -1
  369. package/version.d.ts +1 -1
  370. package/version.js +1 -1
  371. package/version.mjs +1 -1
@@ -78,9 +78,11 @@ export class EmailBlocks extends APIResource {
78
78
  * stream `ORDER BY created_at ASC, id ASC` with no pagination.
79
79
  *
80
80
  * CSV columns:
81
- * `id,to,from,reason,source,scope,status,domain_id, created_at,updated_at,expires_at,group_id`.
82
- * The CSV carries the `group_id` column so group-scoped suppressions' group link
83
- * survives the export (empty for account-scope rows).
81
+ * `id,to,from,reason,source,scope,status,domain_id, created_at,updated_at,expires_at,group_id,bounce_category,dsn_code, meta`
82
+ * (15 columns). The first 12 columns are the stable native signature;
83
+ * `bounce_category`, `dsn_code`, and `meta` are optional backup fields (empty when
84
+ * unset). The CSV carries the `group_id` column so group-scoped suppressions'
85
+ * group link survives the export (empty for account-scope rows).
84
86
  *
85
87
  * @example
86
88
  * ```ts
@@ -201,6 +203,12 @@ export interface EmailBlock {
201
203
  */
202
204
  domain_id?: string | null;
203
205
 
206
+ /**
207
+ * Optional expiration time. An active row stops matching send-time suppression
208
+ * checks as soon as `expires_at <= now()`. A maintenance worker later transitions
209
+ * the row to `status: expired` and appends an `expired` audit event (normally
210
+ * within 15 minutes).
211
+ */
204
212
  expires_at?: string | null;
205
213
 
206
214
  /**
@@ -267,7 +275,7 @@ export interface EmailBlockRetrieveEventsResponse {
267
275
 
268
276
  /**
269
277
  * CSV with header row
270
- * `id,to,from,reason,source,scope,status,domain_id,created_at,updated_at,expires_at,group_id`.
278
+ * `id,to,from,reason,source,scope,status,domain_id,created_at,updated_at,expires_at,group_id,bounce_category,dsn_code,meta`.
271
279
  */
272
280
  export type EmailBlockRetrieveExportResponse = string;
273
281
 
@@ -20,9 +20,23 @@ export class Imports extends APIResource {
20
20
  * - header-only / all-blank / undetectable provider → `400` Returns `202` with the
21
21
  * import record (status `pending`); an Oban worker (`EmailBlockImportWorker`,
22
22
  * max_attempts 3) transitions `pending → processing → completed | failed`.
23
- * `block_ttl_days` applies only to imported `manual_block` rows; other reasons
24
- * get `expires_at: nil`. Provider is auto-detected from the CSV header
25
- * (`sendgrid` / `mailgun` / `ses` / `generic`).
23
+ *
24
+ * Native Telnyx exports are detected by the stable first-12-column header
25
+ * signature (`id` … `group_id`) and are restored with their original `from`,
26
+ * `domain_id`, `group_id`, `source`, `status`, `expires_at`, plus
27
+ * `bounce_category`, `dsn_code`, and `meta` when present (`scope` is re-derived
28
+ * from `domain_id`/`from`; the exported `scope` cell must be a valid enum value).
29
+ * Lifecycle changes reconcile through the same create path as the API: a row
30
+ * already in the requested state restores its mutable backup fields without a new
31
+ * audit event, and a real transition (e.g. tombstone → active) appends the
32
+ * matching lifecycle event. `block_ttl_days` is not applied to native rows — their
33
+ * exported `expires_at` is preserved verbatim.
34
+ *
35
+ * Competitor and generic imports (SendGrid / Mailgun / SES / generic) remain
36
+ * account-scoped (`from`, `domain_id`, `group_id`, `scope` are not read) and
37
+ * `block_ttl_days` applies only to imported `manual_block` rows; other reasons get
38
+ * `expires_at: nil`. Provider is auto-detected from the CSV header (`sendgrid` /
39
+ * `mailgun` / `ses` / `generic`).
26
40
  *
27
41
  * @example
28
42
  * ```ts
@@ -94,7 +108,9 @@ export interface EmailBlockImport {
94
108
  created_count?: number;
95
109
 
96
110
  /**
97
- * Only when `status == completed`.
111
+ * Rows that passed CSV parsing but failed suppression creation. This is the
112
+ * creation-failure subset of `skipped_count`; parser-rejected rows equal
113
+ * `skipped_count - error_count`. Only when `status == completed`.
98
114
  */
99
115
  error_count?: number;
100
116
 
@@ -178,6 +178,28 @@ export class EmailDomains extends APIResource {
178
178
  retrieveHealth(id: string, options?: RequestOptions): APIPromise<EmailDomainRetrieveHealthResponse> {
179
179
  return this._client.get(path`/email_domains/${id}/health`, options);
180
180
  }
181
+
182
+ /**
183
+ * Generates a new DKIM key for the domain, activates it, and retires the previous
184
+ * key. The response includes the updated DKIM DNS records the customer must
185
+ * publish. Selectors are fixed, so rotation replaces the TXT value at the existing
186
+ * `<selector>._domainkey.<domain>` host rather than adding a second record —
187
+ * `old_selector_retained` is false and the new TXT value must be published
188
+ * promptly, since signing switches to the new key immediately and the old TXT
189
+ * value will no longer match. The previous key is retired to a `retiring` state
190
+ * (retained, not revoked) so it can be revoked after the DNS propagation grace
191
+ * period.
192
+ *
193
+ * @example
194
+ * ```ts
195
+ * const response = await client.emailDomains.rotateDkim(
196
+ * '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
197
+ * );
198
+ * ```
199
+ */
200
+ rotateDkim(domainID: string, options?: RequestOptions): APIPromise<EmailDomainRotateDkimResponse> {
201
+ return this._client.post(path`/email_domains/${domainID}/rotate_dkim`, options);
202
+ }
181
203
  }
182
204
 
183
205
  export type EmailDomainsDefaultFlatPagination = DefaultFlatPagination<EmailDomain>;
@@ -401,6 +423,103 @@ export namespace EmailDomainRetrieveHealthResponse {
401
423
  }
402
424
  }
403
425
 
426
+ export interface EmailDomainRotateDkimResponse {
427
+ /**
428
+ * Result of rotating a domain's DKIM key. The new key is active and signing
429
+ * switches to it immediately; the previous key is retired to a `retiring` state
430
+ * (retained, not revoked) so it can be revoked after the DNS propagation grace
431
+ * period. Selectors are fixed, so the DKIM DNS record's TXT value is replaced in
432
+ * place at the shared `<selector>._domainkey.<domain>` host —
433
+ * `old_selector_retained` is false and the returned dns_records carry the new
434
+ * value the customer must publish promptly.
435
+ */
436
+ data: EmailDomainRotateDkimResponse.Data;
437
+ }
438
+
439
+ export namespace EmailDomainRotateDkimResponse {
440
+ /**
441
+ * Result of rotating a domain's DKIM key. The new key is active and signing
442
+ * switches to it immediately; the previous key is retired to a `retiring` state
443
+ * (retained, not revoked) so it can be revoked after the DNS propagation grace
444
+ * period. Selectors are fixed, so the DKIM DNS record's TXT value is replaced in
445
+ * place at the shared `<selector>._domainkey.<domain>` host —
446
+ * `old_selector_retained` is false and the returned dns_records carry the new
447
+ * value the customer must publish promptly.
448
+ */
449
+ export interface Data {
450
+ /**
451
+ * The new active DKIM key.
452
+ */
453
+ dkim: Data.Dkim;
454
+
455
+ /**
456
+ * The DKIM DNS records the customer must publish, carrying the new key's TXT value
457
+ * with verification reset to pending.
458
+ */
459
+ dns_records: Array<EmailDomainsAPI.DNSRecord>;
460
+
461
+ domain: string;
462
+
463
+ domain_id: string;
464
+
465
+ /**
466
+ * False for this service: one selector is fixed per domain, so rotation replaces
467
+ * the TXT value at the existing \_domainkey host. There is no dual-selector
468
+ * overlap; publish the replacement TXT promptly because signing switches
469
+ * immediately.
470
+ */
471
+ old_selector_retained: boolean;
472
+
473
+ /**
474
+ * The retired previous key, or null when the domain had no active key before
475
+ * rotation. Retained in a `retiring` state so it can be revoked after the DNS
476
+ * propagation grace period.
477
+ */
478
+ previous_dkim_key: Data.PreviousDkimKey | null;
479
+
480
+ record_type: 'email_domain_dkim_rotation';
481
+ }
482
+
483
+ export namespace Data {
484
+ /**
485
+ * The new active DKIM key.
486
+ */
487
+ export interface Dkim {
488
+ id: string;
489
+
490
+ algorithm: 'rsa-sha256';
491
+
492
+ key_length: 2048;
493
+
494
+ selector: string;
495
+
496
+ status: 'active';
497
+
498
+ /**
499
+ * Monotonically increasing per-domain key version.
500
+ */
501
+ version: number;
502
+
503
+ activated_at?: string | null;
504
+ }
505
+
506
+ /**
507
+ * The retired previous key, or null when the domain had no active key before
508
+ * rotation. Retained in a `retiring` state so it can be revoked after the DNS
509
+ * propagation grace period.
510
+ */
511
+ export interface PreviousDkimKey {
512
+ id: string;
513
+
514
+ selector: string;
515
+
516
+ status: 'retiring' | 'revoked';
517
+
518
+ version: number;
519
+ }
520
+ }
521
+ }
522
+
404
523
  export interface EmailDomainListParams extends DefaultFlatPaginationParams {
405
524
  /**
406
525
  * Partial match on domain name (case-insensitive)
@@ -506,6 +625,7 @@ export declare namespace EmailDomains {
506
625
  type EmailDomainVerification as EmailDomainVerification,
507
626
  type EmailDomainRetrieveDNSRecordsResponse as EmailDomainRetrieveDNSRecordsResponse,
508
627
  type EmailDomainRetrieveHealthResponse as EmailDomainRetrieveHealthResponse,
628
+ type EmailDomainRotateDkimResponse as EmailDomainRotateDkimResponse,
509
629
  type EmailDomainsDefaultFlatPagination as EmailDomainsDefaultFlatPagination,
510
630
  type EmailDomainListParams as EmailDomainListParams,
511
631
  type EmailDomainCreateParams as EmailDomainCreateParams,
@@ -12,6 +12,7 @@ export {
12
12
  type EmailDomainVerification,
13
13
  type EmailDomainRetrieveDNSRecordsResponse,
14
14
  type EmailDomainRetrieveHealthResponse,
15
+ type EmailDomainRotateDkimResponse,
15
16
  type EmailDomainListParams,
16
17
  type EmailDomainCreateParams,
17
18
  type EmailDomainDeleteParams,
@@ -165,9 +165,11 @@ export interface EmailWebhook {
165
165
  }
166
166
 
167
167
  /**
168
- * Event types a webhook may subscribe to. The union of email._ events (published
169
- * by email-api) and email_domain._ lifecycle events (published by this service).
170
- * An event not listed here can never be subscribed to and is silently dropped.
168
+ * Event types accepted by domain webhook subscriptions. Allowlists match the
169
+ * legacy event_type, not canonical_event_type. Of the 22 accepted types,
170
+ * email.sending is stored but intentionally not published. Cancellation,
171
+ * daily-limit failures, and system failures publish after commit when a matching
172
+ * domain webhook is configured.
171
173
  */
172
174
  export type EmailWebhookEvent =
173
175
  | 'email.scheduled'
@@ -184,11 +186,14 @@ export type EmailWebhookEvent =
184
186
  | 'email.clicked'
185
187
  | 'email.unsubscribed'
186
188
  | 'email.received'
189
+ | 'email.cancelled'
190
+ | 'email.daily_limit_exceeded'
187
191
  | 'email_domain.created'
188
192
  | 'email_domain.verified'
189
193
  | 'email_domain.degraded'
190
194
  | 'email_domain.suspended'
191
- | 'email_domain.deleted';
195
+ | 'email_domain.deleted'
196
+ | 'email_domain.dkim_rotated';
192
197
 
193
198
  export interface EmailWebhookResponse {
194
199
  data: EmailWebhook;
@@ -2,9 +2,7 @@
2
2
 
3
3
  import { APIResource } from '../core/resource';
4
4
  import * as EmailEventsAPI from './email-events';
5
- import * as DraftsAPI from './email-inboxes/drafts';
6
5
  import { APIPromise } from '../core/api-promise';
7
- import { EmailCursorPagination, type EmailCursorPaginationParams, PagePromise } from '../core/pagination';
8
6
  import { RequestOptions } from '../internal/request-options';
9
7
 
10
8
  /**
@@ -13,16 +11,26 @@ import { RequestOptions } from '../internal/request-options';
13
11
  export class EmailEvents extends APIResource {
14
12
  /**
15
13
  * Lists account-level email events sorted oldest first by
16
- * `occurred_at asc, id asc`.
14
+ * `occurred_at asc, id asc`. Each row contains a legacy email.-prefixed event_type
15
+ * and an additive canonical_event_type. Gateway rejection renders email.failed
16
+ * with canonical email.gw_reject; ambiguous injection timeout renders
17
+ * email.injection_timeout in both; MTA expiration renders email.bounced with
18
+ * canonical email.expired. Message-scoped queued, sending, sandbox, cancelled, and
19
+ * daily_limit_exceeded rows fan out per durable recipient with stable derived IDs
20
+ * matching webhook delivery. Scheduled is the cardinality exception: account
21
+ * polling retains one message-scoped scheduled row with its stored event ID, while
22
+ * scheduled webhook publication fans out per recipient with derived IDs; reconcile
23
+ * scheduled events by message ID, event type, and occurrence time rather than
24
+ * event UUID. Recipient-scoped stored rows retain their stored UUIDs across
25
+ * polling and webhook delivery. Legacy names are derived from stored rows; an
26
+ * AdminBounce row stored as failed renders email.failed in polling while its
27
+ * webhook retains email.bounced, both with canonical email.failed.
17
28
  */
18
29
  list(
19
30
  query: EmailEventListParams | null | undefined = {},
20
31
  options?: RequestOptions,
21
- ): PagePromise<EmailEventListResponsesEmailCursorPagination, EmailEventListResponse> {
22
- return this._client.getAPIList('/email_events', EmailCursorPagination<EmailEventListResponse>, {
23
- query,
24
- ...options,
25
- });
32
+ ): APIPromise<EmailEventListResponse> {
33
+ return this._client.get('/email_events', { query, ...options });
26
34
  }
27
35
 
28
36
  /**
@@ -37,8 +45,14 @@ export class EmailEvents extends APIResource {
37
45
  }
38
46
  }
39
47
 
40
- export type EmailEventListResponsesEmailCursorPagination = EmailCursorPagination<EmailEventListResponse>;
41
-
48
+ /**
49
+ * Bare stored event names returned by message history. In addition to the normal
50
+ * send and delivery lifecycle, polling can expose suppression, scan, and
51
+ * quarantine lifecycle rows. Sharp canonical names gw_reject, injection_timeout,
52
+ * and expired distinguish gateway rejection, ambiguous injection timeout, and MTA
53
+ * expiration. The failed and bounced names remain valid for system/admin failures
54
+ * and hard bounces respectively. Existing stored rows retain their original names.
55
+ */
42
56
  export type EmailEventType =
43
57
  | 'queued'
44
58
  | 'deferred'
@@ -51,11 +65,29 @@ export type EmailEventType =
51
65
  | 'delivered'
52
66
  | 'bounced'
53
67
  | 'complained'
68
+ | 'suppressed'
54
69
  | 'rejected'
55
70
  | 'opened'
56
71
  | 'clicked'
57
72
  | 'unsubscribed'
58
- | 'daily_limit_exceeded';
73
+ | 'daily_limit_exceeded'
74
+ | 'scan_deferred'
75
+ | 'quarantined'
76
+ | 'quarantine_released'
77
+ | 'quarantine_release_dispatched'
78
+ | 'quarantine_rejected'
79
+ | 'quarantine_expired'
80
+ | 'gw_reject'
81
+ | 'injection_timeout'
82
+ | 'expired';
83
+
84
+ export interface EmailWebhookRecipient {
85
+ email: string;
86
+
87
+ kind?: 'to' | 'cc' | 'bcc';
88
+
89
+ name?: string | null;
90
+ }
59
91
 
60
92
  export interface TimeRange {
61
93
  from: string | null;
@@ -64,38 +96,168 @@ export interface TimeRange {
64
96
  }
65
97
 
66
98
  export interface EmailEventListResponse {
67
- id: string;
99
+ data: Array<EmailEventListResponse.Data>;
68
100
 
69
- email_id: string;
101
+ meta: EmailEventListResponse.Meta;
102
+ }
70
103
 
71
- occurred_at: string;
104
+ export namespace EmailEventListResponse {
105
+ /**
106
+ * An account-polling event. The envelope is webhook-shaped, but polling preserves
107
+ * stored-event cardinality: queued, sending, sandbox, cancelled, and
108
+ * daily_limit_exceeded message events fan out per recipient; scheduled remains one
109
+ * message-scoped row. Payload fields vary among recipient-scoped, message-scoped,
110
+ * and minimal fallback rows.
111
+ */
112
+ export interface Data {
113
+ /**
114
+ * Event UUID.
115
+ */
116
+ id: string;
72
117
 
73
- record_type: 'email_event';
118
+ /**
119
+ * Additive canonical outcome name, prefixed with `email.`. Gateway rejection is
120
+ * `email.gw_reject`, ambiguous injection timeout is `email.injection_timeout`, and
121
+ * MTA expiration is `email.expired`. Unchanged outcomes retain their names.
122
+ * Existing stored rows are translated only when recorded payload evidence proves
123
+ * the outcome; a legacy failed row is not guessed or sharpened.
124
+ */
125
+ canonical_event_type: string;
74
126
 
75
- type: EmailEventType;
127
+ /**
128
+ * Legacy customer-visible event name, prefixed with `email.`. Gateway rejections
129
+ * render `email.failed`; MTA expirations render `email.bounced`. Webhook
130
+ * subscription allowlists match the legacy name.
131
+ */
132
+ event_type: string;
76
133
 
77
- /**
78
- * Summary of the associated email message. Present when the email_message preload
79
- * is available.
80
- */
81
- email?: EmailEventListResponse.Email;
134
+ occurred_at: string;
82
135
 
83
- payload?: { [key: string]: unknown };
84
- }
136
+ /**
137
+ * Payload returned by GET /email_events. Every row includes id, status, and
138
+ * occurred_at. Recipient-scoped rows also include recipient_id, from, subject, and
139
+ * exactly one object-valued to, cc, or bcc field. Legacy or message-scoped rows
140
+ * can omit recipient_id and use object-valued or string-valued to/cc fields,
141
+ * including an empty string when no address exists; bcc is redacted. If the
142
+ * related message or recipient cannot be loaded, the minimal fallback can omit
143
+ * from, subject, and recipient fields. Additional persisted public evidence can be
144
+ * present.
145
+ */
146
+ payload: Data.Payload;
85
147
 
86
- export namespace EmailEventListResponse {
87
- /**
88
- * Summary of the associated email message. Present when the email_message preload
89
- * is available.
90
- */
91
- export interface Email {
92
- cc: Array<DraftsAPI.EmailAddress>;
148
+ /**
149
+ * Durable email recipient UUID. Present for recipient-scoped events, including
150
+ * each queued, sending, sandbox, cancelled, and daily_limit_exceeded fan-out
151
+ * event.
152
+ */
153
+ recipient_id?: string;
154
+ }
155
+
156
+ export namespace Data {
157
+ /**
158
+ * Payload returned by GET /email_events. Every row includes id, status, and
159
+ * occurred_at. Recipient-scoped rows also include recipient_id, from, subject, and
160
+ * exactly one object-valued to, cc, or bcc field. Legacy or message-scoped rows
161
+ * can omit recipient_id and use object-valued or string-valued to/cc fields,
162
+ * including an empty string when no address exists; bcc is redacted. If the
163
+ * related message or recipient cannot be loaded, the minimal fallback can omit
164
+ * from, subject, and recipient fields. Additional persisted public evidence can be
165
+ * present.
166
+ */
167
+ export interface Payload {
168
+ /**
169
+ * Email message UUID.
170
+ */
171
+ id: string;
172
+
173
+ occurred_at: string;
93
174
 
94
- from: DraftsAPI.EmailAddress;
175
+ /**
176
+ * Stored event outcome slug, not the authoritative recipient status. Account
177
+ * polling returns the stored name, including suppression, scan, and quarantine
178
+ * lifecycle names. Webhooks retain legacy payload names: gateway rejections use
179
+ * failed and MTA expirations use bounced. New sharp stored rows can expose
180
+ * gw_reject, injection_timeout, or expired. Use the envelope canonical_event_type
181
+ * to identify the outcome across surfaces.
182
+ */
183
+ status:
184
+ | 'queued'
185
+ | 'deferred'
186
+ | 'scheduled'
187
+ | 'cancelled'
188
+ | 'sandbox'
189
+ | 'sending'
190
+ | 'sent'
191
+ | 'failed'
192
+ | 'delivered'
193
+ | 'bounced'
194
+ | 'complained'
195
+ | 'suppressed'
196
+ | 'rejected'
197
+ | 'opened'
198
+ | 'clicked'
199
+ | 'unsubscribed'
200
+ | 'daily_limit_exceeded'
201
+ | 'scan_deferred'
202
+ | 'quarantined'
203
+ | 'quarantine_released'
204
+ | 'quarantine_release_dispatched'
205
+ | 'quarantine_rejected'
206
+ | 'quarantine_expired'
207
+ | 'gw_reject'
208
+ | 'injection_timeout'
209
+ | 'expired';
210
+
211
+ bcc?: EmailEventsAPI.EmailWebhookRecipient | 'redacted';
95
212
 
96
- subject: string;
213
+ /**
214
+ * Legacy message-scoped address, or an empty string when absent.
215
+ */
216
+ cc?: EmailEventsAPI.EmailWebhookRecipient | string;
97
217
 
98
- to: Array<DraftsAPI.EmailAddress>;
218
+ /**
219
+ * Sender projection in account event polling. The display name is explicitly null
220
+ * when the message has no sender name.
221
+ */
222
+ from?: Payload.From;
223
+
224
+ /**
225
+ * Durable email recipient UUID. Present for recipient-scoped events.
226
+ */
227
+ recipient_id?: string;
228
+
229
+ subject?: string;
230
+
231
+ /**
232
+ * Legacy message-scoped address, or an empty string when absent.
233
+ */
234
+ to?: EmailEventsAPI.EmailWebhookRecipient | string;
235
+
236
+ [k: string]: unknown;
237
+ }
238
+
239
+ export namespace Payload {
240
+ /**
241
+ * Sender projection in account event polling. The display name is explicitly null
242
+ * when the message has no sender name.
243
+ */
244
+ export interface From {
245
+ email: string;
246
+
247
+ name: string | null;
248
+ }
249
+ }
250
+ }
251
+
252
+ export interface Meta {
253
+ page_size: number;
254
+
255
+ time_range: EmailEventsAPI.TimeRange;
256
+
257
+ /**
258
+ * Cursor for the next page, when more results are available.
259
+ */
260
+ page_cursor?: string;
99
261
  }
100
262
  }
101
263
 
@@ -194,7 +356,7 @@ export namespace EmailEventRetrieveStatsResponse {
194
356
  }
195
357
  }
196
358
 
197
- export interface EmailEventListParams extends EmailCursorPaginationParams {
359
+ export interface EmailEventListParams {
198
360
  /**
199
361
  * Filter events for a specific email message UUID. Invalid UUID values are
200
362
  * silently ignored (no filter applied).
@@ -205,6 +367,17 @@ export interface EmailEventListParams extends EmailCursorPaginationParams {
205
367
  * Comma-separated list of event types to include. Also accepts repeated query
206
368
  * parameters (e.g. event_type=delivered&event_type=bounced). Unknown values return
207
369
  * no matches.
370
+ *
371
+ * Dual-name compatibility: values are accepted bare or `email.`-prefixed. A legacy
372
+ * value keeps matching the rows it matched pre-rename — no widening: `failed` also
373
+ * matches the rows that now store the canonical names of the outcomes it covered
374
+ * (`gw_reject`, `injection_timeout`, `expired`); `bounced` matches stored
375
+ * `bounced` rows only (recipient-scoped Expirations stored `failed` pre-rename and
376
+ * never matched `bounced`, so `expired` is deliberately not a `bounced`
377
+ * expansion). A canonical value matches its own rows plus legacy rows whose
378
+ * recorded payload evidence proves that outcome (`expired` also surfaces legacy
379
+ * `bounced` rows with `bounce_category: transient`). The additive
380
+ * `canonical_event_type` field in each response row names the canonical outcome.
208
381
  */
209
382
  event_type?: string | Array<string>;
210
383
 
@@ -213,6 +386,18 @@ export interface EmailEventListParams extends EmailCursorPaginationParams {
213
386
  */
214
387
  from?: string;
215
388
 
389
+ /**
390
+ * Number of results to return. Defaults to 25; maximum is 100. Invalid values are
391
+ * clamped to the valid range.
392
+ */
393
+ page_size?: number;
394
+
395
+ /**
396
+ * Opaque URL-safe Base64 cursor returned by a previous event list response. The
397
+ * legacy `page[after]` and flat `page_cursor` forms are also accepted.
398
+ */
399
+ 'page[cursor]'?: string;
400
+
216
401
  /**
217
402
  * Inclusive ISO 8601 end timestamp. When `from` is provided without `to`, defaults
218
403
  * to `from + 30 days`.
@@ -236,10 +421,10 @@ export interface EmailEventRetrieveStatsParams {
236
421
  export declare namespace EmailEvents {
237
422
  export {
238
423
  type EmailEventType as EmailEventType,
424
+ type EmailWebhookRecipient as EmailWebhookRecipient,
239
425
  type TimeRange as TimeRange,
240
426
  type EmailEventListResponse as EmailEventListResponse,
241
427
  type EmailEventRetrieveStatsResponse as EmailEventRetrieveStatsResponse,
242
- type EmailEventListResponsesEmailCursorPagination as EmailEventListResponsesEmailCursorPagination,
243
428
  type EmailEventListParams as EmailEventListParams,
244
429
  type EmailEventRetrieveStatsParams as EmailEventRetrieveStatsParams,
245
430
  };
@@ -1,6 +1,7 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  import { APIResource } from '../../core/resource';
4
+ import * as EmailEventsAPI from '../email-events';
4
5
  import * as EmailMessagesAPI from '../email-messages/email-messages';
5
6
  import { APIPromise } from '../../core/api-promise';
6
7
  import {
@@ -354,10 +355,15 @@ export interface EmailMessage {
354
355
 
355
356
  created_at: string;
356
357
 
357
- events: Array<EmailMessagesAPI.MessageEvent>;
358
+ events: Array<EmailMessage.Event>;
358
359
 
359
360
  from: EmailAddress;
360
361
 
362
+ /**
363
+ * Customer-supplied metadata stored with the message.
364
+ */
365
+ metadata: { [key: string]: unknown };
366
+
361
367
  record_type: 'email_message';
362
368
 
363
369
  reply_to: string | null;
@@ -386,6 +392,11 @@ export interface EmailMessage {
386
392
 
387
393
  subject: string;
388
394
 
395
+ /**
396
+ * Customer-supplied tags stored with the message.
397
+ */
398
+ tags: Array<string>;
399
+
389
400
  template_id: string | null;
390
401
 
391
402
  template_variables: { [key: string]: unknown };
@@ -460,6 +471,26 @@ export namespace EmailMessage {
460
471
  */
461
472
  url: string | null;
462
473
  }
474
+
475
+ /**
476
+ * An event embedded in a message response. The dedicated per-message events
477
+ * endpoint additionally returns event_type and canonical_event_type.
478
+ */
479
+ export interface Event {
480
+ occurred_at: string;
481
+
482
+ /**
483
+ * Bare stored event names returned by message history. In addition to the normal
484
+ * send and delivery lifecycle, polling can expose suppression, scan, and
485
+ * quarantine lifecycle rows. Sharp canonical names gw_reject, injection_timeout,
486
+ * and expired distinguish gateway rejection, ambiguous injection timeout, and MTA
487
+ * expiration. The failed and bounced names remain valid for system/admin failures
488
+ * and hard bounces respectively. Existing stored rows retain their original names.
489
+ */
490
+ type: EmailEventsAPI.EmailEventType;
491
+
492
+ payload?: { [key: string]: unknown };
493
+ }
463
494
  }
464
495
 
465
496
  export interface EmailMessageResponse {