telnyx 7.12.0 → 7.13.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 (502) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/client.d.mts +56 -2
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +56 -2
  5. package/client.d.ts.map +1 -1
  6. package/client.js +54 -0
  7. package/client.js.map +1 -1
  8. package/client.mjs +54 -0
  9. package/client.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/resources/ai/ai.d.mts +6 -0
  12. package/resources/ai/ai.d.mts.map +1 -1
  13. package/resources/ai/ai.d.ts +6 -0
  14. package/resources/ai/ai.d.ts.map +1 -1
  15. package/resources/ai/ai.js.map +1 -1
  16. package/resources/ai/ai.mjs.map +1 -1
  17. package/resources/ai/anthropic/v1.d.mts +3 -1
  18. package/resources/ai/anthropic/v1.d.mts.map +1 -1
  19. package/resources/ai/anthropic/v1.d.ts +3 -1
  20. package/resources/ai/anthropic/v1.d.ts.map +1 -1
  21. package/resources/ai/assistants/assistants.d.mts +6 -2
  22. package/resources/ai/assistants/assistants.d.mts.map +1 -1
  23. package/resources/ai/assistants/assistants.d.ts +6 -2
  24. package/resources/ai/assistants/assistants.d.ts.map +1 -1
  25. package/resources/ai/assistants/assistants.js.map +1 -1
  26. package/resources/ai/assistants/assistants.mjs.map +1 -1
  27. package/resources/ai/chat.d.mts +6 -0
  28. package/resources/ai/chat.d.mts.map +1 -1
  29. package/resources/ai/chat.d.ts +6 -0
  30. package/resources/ai/chat.d.ts.map +1 -1
  31. package/resources/ai/openai/chat.d.mts +6 -0
  32. package/resources/ai/openai/chat.d.mts.map +1 -1
  33. package/resources/ai/openai/chat.d.ts +6 -0
  34. package/resources/ai/openai/chat.d.ts.map +1 -1
  35. package/resources/ai/openai/openai.d.mts +6 -0
  36. package/resources/ai/openai/openai.d.mts.map +1 -1
  37. package/resources/ai/openai/openai.d.ts +6 -0
  38. package/resources/ai/openai/openai.d.ts.map +1 -1
  39. package/resources/ai/openai/openai.js.map +1 -1
  40. package/resources/ai/openai/openai.mjs.map +1 -1
  41. package/resources/calls/actions.d.mts +223 -48
  42. package/resources/calls/actions.d.mts.map +1 -1
  43. package/resources/calls/actions.d.ts +223 -48
  44. package/resources/calls/actions.d.ts.map +1 -1
  45. package/resources/calls/actions.js +31 -0
  46. package/resources/calls/actions.js.map +1 -1
  47. package/resources/calls/actions.mjs +31 -0
  48. package/resources/calls/actions.mjs.map +1 -1
  49. package/resources/calls/calls.d.mts +3 -2
  50. package/resources/calls/calls.d.mts.map +1 -1
  51. package/resources/calls/calls.d.ts +3 -2
  52. package/resources/calls/calls.d.ts.map +1 -1
  53. package/resources/calls/calls.js.map +1 -1
  54. package/resources/calls/calls.mjs.map +1 -1
  55. package/resources/calls/index.d.mts +1 -1
  56. package/resources/calls/index.d.mts.map +1 -1
  57. package/resources/calls/index.d.ts +1 -1
  58. package/resources/calls/index.d.ts.map +1 -1
  59. package/resources/calls/index.js.map +1 -1
  60. package/resources/calls/index.mjs.map +1 -1
  61. package/resources/custom-storage-credentials.d.mts +110 -14
  62. package/resources/custom-storage-credentials.d.mts.map +1 -1
  63. package/resources/custom-storage-credentials.d.ts +110 -14
  64. package/resources/custom-storage-credentials.d.ts.map +1 -1
  65. package/resources/dir/dir.d.mts +3 -2
  66. package/resources/dir/dir.d.mts.map +1 -1
  67. package/resources/dir/dir.d.ts +3 -2
  68. package/resources/dir/dir.d.ts.map +1 -1
  69. package/resources/dir/dir.js +3 -2
  70. package/resources/dir/dir.js.map +1 -1
  71. package/resources/dir/dir.mjs +3 -2
  72. package/resources/dir/dir.mjs.map +1 -1
  73. package/resources/dir/references.d.mts +41 -11
  74. package/resources/dir/references.d.mts.map +1 -1
  75. package/resources/dir/references.d.ts +41 -11
  76. package/resources/dir/references.d.ts.map +1 -1
  77. package/resources/dir/references.js +30 -8
  78. package/resources/dir/references.js.map +1 -1
  79. package/resources/dir/references.mjs +30 -8
  80. package/resources/dir/references.mjs.map +1 -1
  81. package/resources/dir/verify-email.d.mts +10 -0
  82. package/resources/dir/verify-email.d.mts.map +1 -1
  83. package/resources/dir/verify-email.d.ts +10 -0
  84. package/resources/dir/verify-email.d.ts.map +1 -1
  85. package/resources/email-blocks/email-blocks.d.mts +255 -0
  86. package/resources/email-blocks/email-blocks.d.mts.map +1 -0
  87. package/resources/email-blocks/email-blocks.d.ts +255 -0
  88. package/resources/email-blocks/email-blocks.d.ts.map +1 -0
  89. package/resources/email-blocks/email-blocks.js +99 -0
  90. package/resources/email-blocks/email-blocks.js.map +1 -0
  91. package/resources/email-blocks/email-blocks.mjs +94 -0
  92. package/resources/email-blocks/email-blocks.mjs.map +1 -0
  93. package/resources/email-blocks/import.d.mts +111 -0
  94. package/resources/email-blocks/import.d.mts.map +1 -0
  95. package/resources/email-blocks/import.d.ts +111 -0
  96. package/resources/email-blocks/import.d.ts.map +1 -0
  97. package/resources/email-blocks/import.js +40 -0
  98. package/resources/email-blocks/import.js.map +1 -0
  99. package/resources/email-blocks/import.mjs +36 -0
  100. package/resources/email-blocks/import.mjs.map +1 -0
  101. package/resources/email-blocks/index.d.mts +3 -0
  102. package/resources/email-blocks/index.d.mts.map +1 -0
  103. package/resources/email-blocks/index.d.ts +3 -0
  104. package/resources/email-blocks/index.d.ts.map +1 -0
  105. package/resources/email-blocks/index.js +9 -0
  106. package/resources/email-blocks/index.js.map +1 -0
  107. package/resources/email-blocks/index.mjs +4 -0
  108. package/resources/email-blocks/index.mjs.map +1 -0
  109. package/resources/email-blocks.d.mts +2 -0
  110. package/resources/email-blocks.d.mts.map +1 -0
  111. package/resources/email-blocks.d.ts +2 -0
  112. package/resources/email-blocks.d.ts.map +1 -0
  113. package/resources/email-blocks.js +6 -0
  114. package/resources/email-blocks.js.map +1 -0
  115. package/resources/email-blocks.mjs +3 -0
  116. package/resources/email-blocks.mjs.map +1 -0
  117. package/resources/email-domains/email-domains.d.mts +344 -0
  118. package/resources/email-domains/email-domains.d.mts.map +1 -0
  119. package/resources/email-domains/email-domains.d.ts +344 -0
  120. package/resources/email-domains/email-domains.d.ts.map +1 -0
  121. package/resources/email-domains/email-domains.js +146 -0
  122. package/resources/email-domains/email-domains.js.map +1 -0
  123. package/resources/email-domains/email-domains.mjs +141 -0
  124. package/resources/email-domains/email-domains.mjs.map +1 -0
  125. package/resources/email-domains/index.d.mts +3 -0
  126. package/resources/email-domains/index.d.mts.map +1 -0
  127. package/resources/email-domains/index.d.ts +3 -0
  128. package/resources/email-domains/index.d.ts.map +1 -0
  129. package/resources/email-domains/index.js +9 -0
  130. package/resources/email-domains/index.js.map +1 -0
  131. package/resources/email-domains/index.mjs +4 -0
  132. package/resources/email-domains/index.mjs.map +1 -0
  133. package/resources/email-domains/webhooks.d.mts +170 -0
  134. package/resources/email-domains/webhooks.d.mts.map +1 -0
  135. package/resources/email-domains/webhooks.d.ts +170 -0
  136. package/resources/email-domains/webhooks.d.ts.map +1 -0
  137. package/resources/email-domains/webhooks.js +110 -0
  138. package/resources/email-domains/webhooks.js.map +1 -0
  139. package/resources/email-domains/webhooks.mjs +106 -0
  140. package/resources/email-domains/webhooks.mjs.map +1 -0
  141. package/resources/email-domains.d.mts +2 -0
  142. package/resources/email-domains.d.mts.map +1 -0
  143. package/resources/email-domains.d.ts +2 -0
  144. package/resources/email-domains.d.ts.map +1 -0
  145. package/resources/email-domains.js +6 -0
  146. package/resources/email-domains.js.map +1 -0
  147. package/resources/email-domains.mjs +3 -0
  148. package/resources/email-domains.mjs.map +1 -0
  149. package/resources/email-events.d.mts +186 -0
  150. package/resources/email-events.d.mts.map +1 -0
  151. package/resources/email-events.d.ts +186 -0
  152. package/resources/email-events.d.ts.map +1 -0
  153. package/resources/email-events.js +26 -0
  154. package/resources/email-events.js.map +1 -0
  155. package/resources/email-events.mjs +22 -0
  156. package/resources/email-events.mjs.map +1 -0
  157. package/resources/email-inboxes/drafts.d.mts +549 -0
  158. package/resources/email-inboxes/drafts.d.mts.map +1 -0
  159. package/resources/email-inboxes/drafts.d.ts +549 -0
  160. package/resources/email-inboxes/drafts.d.ts.map +1 -0
  161. package/resources/email-inboxes/drafts.js +161 -0
  162. package/resources/email-inboxes/drafts.js.map +1 -0
  163. package/resources/email-inboxes/drafts.mjs +157 -0
  164. package/resources/email-inboxes/drafts.mjs.map +1 -0
  165. package/resources/email-inboxes/email-inboxes.d.mts +131 -0
  166. package/resources/email-inboxes/email-inboxes.d.mts.map +1 -0
  167. package/resources/email-inboxes/email-inboxes.d.ts +131 -0
  168. package/resources/email-inboxes/email-inboxes.d.ts.map +1 -0
  169. package/resources/email-inboxes/email-inboxes.js +93 -0
  170. package/resources/email-inboxes/email-inboxes.js.map +1 -0
  171. package/resources/email-inboxes/email-inboxes.mjs +88 -0
  172. package/resources/email-inboxes/email-inboxes.mjs.map +1 -0
  173. package/resources/email-inboxes/filters.d.mts +137 -0
  174. package/resources/email-inboxes/filters.d.mts.map +1 -0
  175. package/resources/email-inboxes/filters.d.ts +137 -0
  176. package/resources/email-inboxes/filters.d.ts.map +1 -0
  177. package/resources/email-inboxes/filters.js +81 -0
  178. package/resources/email-inboxes/filters.js.map +1 -0
  179. package/resources/email-inboxes/filters.mjs +77 -0
  180. package/resources/email-inboxes/filters.mjs.map +1 -0
  181. package/resources/email-inboxes/index.d.mts +6 -0
  182. package/resources/email-inboxes/index.d.mts.map +1 -0
  183. package/resources/email-inboxes/index.d.ts +6 -0
  184. package/resources/email-inboxes/index.d.ts.map +1 -0
  185. package/resources/email-inboxes/index.js +15 -0
  186. package/resources/email-inboxes/index.js.map +1 -0
  187. package/resources/email-inboxes/index.mjs +7 -0
  188. package/resources/email-inboxes/index.mjs.map +1 -0
  189. package/resources/email-inboxes/messages/actions.d.mts +190 -0
  190. package/resources/email-inboxes/messages/actions.d.mts.map +1 -0
  191. package/resources/email-inboxes/messages/actions.d.ts +190 -0
  192. package/resources/email-inboxes/messages/actions.d.ts.map +1 -0
  193. package/resources/email-inboxes/messages/actions.js +106 -0
  194. package/resources/email-inboxes/messages/actions.js.map +1 -0
  195. package/resources/email-inboxes/messages/actions.mjs +102 -0
  196. package/resources/email-inboxes/messages/actions.mjs.map +1 -0
  197. package/resources/email-inboxes/messages/index.d.mts +4 -0
  198. package/resources/email-inboxes/messages/index.d.mts.map +1 -0
  199. package/resources/email-inboxes/messages/index.d.ts +4 -0
  200. package/resources/email-inboxes/messages/index.d.ts.map +1 -0
  201. package/resources/email-inboxes/messages/index.js +11 -0
  202. package/resources/email-inboxes/messages/index.js.map +1 -0
  203. package/resources/email-inboxes/messages/index.mjs +5 -0
  204. package/resources/email-inboxes/messages/index.mjs.map +1 -0
  205. package/resources/email-inboxes/messages/labels.d.mts +101 -0
  206. package/resources/email-inboxes/messages/labels.d.mts.map +1 -0
  207. package/resources/email-inboxes/messages/labels.d.ts +101 -0
  208. package/resources/email-inboxes/messages/labels.d.ts.map +1 -0
  209. package/resources/email-inboxes/messages/labels.js +69 -0
  210. package/resources/email-inboxes/messages/labels.js.map +1 -0
  211. package/resources/email-inboxes/messages/labels.mjs +65 -0
  212. package/resources/email-inboxes/messages/labels.mjs.map +1 -0
  213. package/resources/email-inboxes/messages/messages.d.mts +212 -0
  214. package/resources/email-inboxes/messages/messages.d.mts.map +1 -0
  215. package/resources/email-inboxes/messages/messages.d.ts +212 -0
  216. package/resources/email-inboxes/messages/messages.d.ts.map +1 -0
  217. package/resources/email-inboxes/messages/messages.js +89 -0
  218. package/resources/email-inboxes/messages/messages.js.map +1 -0
  219. package/resources/email-inboxes/messages/messages.mjs +84 -0
  220. package/resources/email-inboxes/messages/messages.mjs.map +1 -0
  221. package/resources/email-inboxes/messages.d.mts +2 -0
  222. package/resources/email-inboxes/messages.d.mts.map +1 -0
  223. package/resources/email-inboxes/messages.d.ts +2 -0
  224. package/resources/email-inboxes/messages.d.ts.map +1 -0
  225. package/resources/email-inboxes/messages.js +6 -0
  226. package/resources/email-inboxes/messages.js.map +1 -0
  227. package/resources/email-inboxes/messages.mjs +3 -0
  228. package/resources/email-inboxes/messages.mjs.map +1 -0
  229. package/resources/email-inboxes/threads/index.d.mts +3 -0
  230. package/resources/email-inboxes/threads/index.d.mts.map +1 -0
  231. package/resources/email-inboxes/threads/index.d.ts +3 -0
  232. package/resources/email-inboxes/threads/index.d.ts.map +1 -0
  233. package/resources/email-inboxes/threads/index.js +9 -0
  234. package/resources/email-inboxes/threads/index.js.map +1 -0
  235. package/resources/email-inboxes/threads/index.mjs +4 -0
  236. package/resources/email-inboxes/threads/index.mjs.map +1 -0
  237. package/resources/email-inboxes/threads/labels.d.mts +99 -0
  238. package/resources/email-inboxes/threads/labels.d.mts.map +1 -0
  239. package/resources/email-inboxes/threads/labels.d.ts +99 -0
  240. package/resources/email-inboxes/threads/labels.d.ts.map +1 -0
  241. package/resources/email-inboxes/threads/labels.js +64 -0
  242. package/resources/email-inboxes/threads/labels.js.map +1 -0
  243. package/resources/email-inboxes/threads/labels.mjs +60 -0
  244. package/resources/email-inboxes/threads/labels.mjs.map +1 -0
  245. package/resources/email-inboxes/threads/threads.d.mts +199 -0
  246. package/resources/email-inboxes/threads/threads.d.mts.map +1 -0
  247. package/resources/email-inboxes/threads/threads.d.ts +199 -0
  248. package/resources/email-inboxes/threads/threads.d.ts.map +1 -0
  249. package/resources/email-inboxes/threads/threads.js +51 -0
  250. package/resources/email-inboxes/threads/threads.js.map +1 -0
  251. package/resources/email-inboxes/threads/threads.mjs +46 -0
  252. package/resources/email-inboxes/threads/threads.mjs.map +1 -0
  253. package/resources/email-inboxes/threads.d.mts +2 -0
  254. package/resources/email-inboxes/threads.d.mts.map +1 -0
  255. package/resources/email-inboxes/threads.d.ts +2 -0
  256. package/resources/email-inboxes/threads.d.ts.map +1 -0
  257. package/resources/email-inboxes/threads.js +6 -0
  258. package/resources/email-inboxes/threads.js.map +1 -0
  259. package/resources/email-inboxes/threads.mjs +3 -0
  260. package/resources/email-inboxes/threads.mjs.map +1 -0
  261. package/resources/email-inboxes.d.mts +2 -0
  262. package/resources/email-inboxes.d.mts.map +1 -0
  263. package/resources/email-inboxes.d.ts +2 -0
  264. package/resources/email-inboxes.d.ts.map +1 -0
  265. package/resources/email-inboxes.js +6 -0
  266. package/resources/email-inboxes.js.map +1 -0
  267. package/resources/email-inboxes.mjs +3 -0
  268. package/resources/email-inboxes.mjs.map +1 -0
  269. package/resources/email-messages/email-messages.d.mts +543 -0
  270. package/resources/email-messages/email-messages.d.mts.map +1 -0
  271. package/resources/email-messages/email-messages.d.ts +543 -0
  272. package/resources/email-messages/email-messages.d.ts.map +1 -0
  273. package/resources/email-messages/email-messages.js +186 -0
  274. package/resources/email-messages/email-messages.js.map +1 -0
  275. package/resources/email-messages/email-messages.mjs +181 -0
  276. package/resources/email-messages/email-messages.mjs.map +1 -0
  277. package/resources/email-messages/index.d.mts +3 -0
  278. package/resources/email-messages/index.d.mts.map +1 -0
  279. package/resources/email-messages/index.d.ts +3 -0
  280. package/resources/email-messages/index.d.ts.map +1 -0
  281. package/resources/email-messages/index.js +9 -0
  282. package/resources/email-messages/index.js.map +1 -0
  283. package/resources/email-messages/index.mjs +4 -0
  284. package/resources/email-messages/index.mjs.map +1 -0
  285. package/resources/email-messages/recipients.d.mts +118 -0
  286. package/resources/email-messages/recipients.d.mts.map +1 -0
  287. package/resources/email-messages/recipients.d.ts +118 -0
  288. package/resources/email-messages/recipients.d.ts.map +1 -0
  289. package/resources/email-messages/recipients.js +48 -0
  290. package/resources/email-messages/recipients.js.map +1 -0
  291. package/resources/email-messages/recipients.mjs +44 -0
  292. package/resources/email-messages/recipients.mjs.map +1 -0
  293. package/resources/email-messages.d.mts +2 -0
  294. package/resources/email-messages.d.mts.map +1 -0
  295. package/resources/email-messages.d.ts +2 -0
  296. package/resources/email-messages.d.ts.map +1 -0
  297. package/resources/email-messages.js +6 -0
  298. package/resources/email-messages.js.map +1 -0
  299. package/resources/email-messages.mjs +3 -0
  300. package/resources/email-messages.mjs.map +1 -0
  301. package/resources/email-templates.d.mts +236 -0
  302. package/resources/email-templates.d.mts.map +1 -0
  303. package/resources/email-templates.d.ts +236 -0
  304. package/resources/email-templates.d.ts.map +1 -0
  305. package/resources/email-templates.js +124 -0
  306. package/resources/email-templates.js.map +1 -0
  307. package/resources/email-templates.mjs +120 -0
  308. package/resources/email-templates.mjs.map +1 -0
  309. package/resources/email-threads.d.mts +71 -0
  310. package/resources/email-threads.d.mts.map +1 -0
  311. package/resources/email-threads.d.ts +71 -0
  312. package/resources/email-threads.d.ts.map +1 -0
  313. package/resources/email-threads.js +34 -0
  314. package/resources/email-threads.js.map +1 -0
  315. package/resources/email-threads.mjs +30 -0
  316. package/resources/email-threads.mjs.map +1 -0
  317. package/resources/email-unsubscribe-groups/email-unsubscribe-groups.d.mts +90 -0
  318. package/resources/email-unsubscribe-groups/email-unsubscribe-groups.d.mts.map +1 -0
  319. package/resources/email-unsubscribe-groups/email-unsubscribe-groups.d.ts +90 -0
  320. package/resources/email-unsubscribe-groups/email-unsubscribe-groups.d.ts.map +1 -0
  321. package/resources/email-unsubscribe-groups/email-unsubscribe-groups.js +70 -0
  322. package/resources/email-unsubscribe-groups/email-unsubscribe-groups.js.map +1 -0
  323. package/resources/email-unsubscribe-groups/email-unsubscribe-groups.mjs +65 -0
  324. package/resources/email-unsubscribe-groups/email-unsubscribe-groups.mjs.map +1 -0
  325. package/resources/email-unsubscribe-groups/index.d.mts +3 -0
  326. package/resources/email-unsubscribe-groups/index.d.mts.map +1 -0
  327. package/resources/email-unsubscribe-groups/index.d.ts +3 -0
  328. package/resources/email-unsubscribe-groups/index.d.ts.map +1 -0
  329. package/resources/email-unsubscribe-groups/index.js +9 -0
  330. package/resources/email-unsubscribe-groups/index.js.map +1 -0
  331. package/resources/email-unsubscribe-groups/index.mjs +4 -0
  332. package/resources/email-unsubscribe-groups/index.mjs.map +1 -0
  333. package/resources/email-unsubscribe-groups/suppressions.d.mts +54 -0
  334. package/resources/email-unsubscribe-groups/suppressions.d.mts.map +1 -0
  335. package/resources/email-unsubscribe-groups/suppressions.d.ts +54 -0
  336. package/resources/email-unsubscribe-groups/suppressions.d.ts.map +1 -0
  337. package/resources/email-unsubscribe-groups/suppressions.js +52 -0
  338. package/resources/email-unsubscribe-groups/suppressions.js.map +1 -0
  339. package/resources/email-unsubscribe-groups/suppressions.mjs +48 -0
  340. package/resources/email-unsubscribe-groups/suppressions.mjs.map +1 -0
  341. package/resources/email-unsubscribe-groups.d.mts +2 -0
  342. package/resources/email-unsubscribe-groups.d.mts.map +1 -0
  343. package/resources/email-unsubscribe-groups.d.ts +2 -0
  344. package/resources/email-unsubscribe-groups.d.ts.map +1 -0
  345. package/resources/email-unsubscribe-groups.js +6 -0
  346. package/resources/email-unsubscribe-groups.js.map +1 -0
  347. package/resources/email-unsubscribe-groups.mjs +3 -0
  348. package/resources/email-unsubscribe-groups.mjs.map +1 -0
  349. package/resources/email-validations/batch.d.mts +136 -0
  350. package/resources/email-validations/batch.d.mts.map +1 -0
  351. package/resources/email-validations/batch.d.ts +136 -0
  352. package/resources/email-validations/batch.d.ts.map +1 -0
  353. package/resources/email-validations/batch.js +51 -0
  354. package/resources/email-validations/batch.js.map +1 -0
  355. package/resources/email-validations/batch.mjs +47 -0
  356. package/resources/email-validations/batch.mjs.map +1 -0
  357. package/resources/email-validations/email-validations.d.mts +87 -0
  358. package/resources/email-validations/email-validations.d.mts.map +1 -0
  359. package/resources/email-validations/email-validations.d.ts +87 -0
  360. package/resources/email-validations/email-validations.d.ts.map +1 -0
  361. package/resources/email-validations/email-validations.js +43 -0
  362. package/resources/email-validations/email-validations.js.map +1 -0
  363. package/resources/email-validations/email-validations.mjs +38 -0
  364. package/resources/email-validations/email-validations.mjs.map +1 -0
  365. package/resources/email-validations/index.d.mts +3 -0
  366. package/resources/email-validations/index.d.mts.map +1 -0
  367. package/resources/email-validations/index.d.ts +3 -0
  368. package/resources/email-validations/index.d.ts.map +1 -0
  369. package/resources/email-validations/index.js +9 -0
  370. package/resources/email-validations/index.js.map +1 -0
  371. package/resources/email-validations/index.mjs +4 -0
  372. package/resources/email-validations/index.mjs.map +1 -0
  373. package/resources/email-validations.d.mts +2 -0
  374. package/resources/email-validations.d.mts.map +1 -0
  375. package/resources/email-validations.d.ts +2 -0
  376. package/resources/email-validations.d.ts.map +1 -0
  377. package/resources/email-validations.js +6 -0
  378. package/resources/email-validations.js.map +1 -0
  379. package/resources/email-validations.mjs +3 -0
  380. package/resources/email-validations.mjs.map +1 -0
  381. package/resources/index.d.mts +11 -1
  382. package/resources/index.d.mts.map +1 -1
  383. package/resources/index.d.ts +11 -1
  384. package/resources/index.d.ts.map +1 -1
  385. package/resources/index.js +24 -4
  386. package/resources/index.js.map +1 -1
  387. package/resources/index.mjs +10 -0
  388. package/resources/index.mjs.map +1 -1
  389. package/resources/pricing/index.d.mts +3 -0
  390. package/resources/pricing/index.d.mts.map +1 -0
  391. package/resources/pricing/index.d.ts +3 -0
  392. package/resources/pricing/index.d.ts.map +1 -0
  393. package/resources/pricing/index.js +9 -0
  394. package/resources/pricing/index.js.map +1 -0
  395. package/resources/pricing/index.mjs +4 -0
  396. package/resources/pricing/index.mjs.map +1 -0
  397. package/resources/pricing/pricing.d.mts +10 -0
  398. package/resources/pricing/pricing.d.mts.map +1 -0
  399. package/resources/pricing/pricing.d.ts +10 -0
  400. package/resources/pricing/pricing.d.ts.map +1 -0
  401. package/resources/pricing/pricing.js +17 -0
  402. package/resources/pricing/pricing.js.map +1 -0
  403. package/resources/pricing/pricing.mjs +12 -0
  404. package/resources/pricing/pricing.mjs.map +1 -0
  405. package/resources/pricing/products.d.mts +161 -0
  406. package/resources/pricing/products.d.mts.map +1 -0
  407. package/resources/pricing/products.d.ts +161 -0
  408. package/resources/pricing/products.d.ts.map +1 -0
  409. package/resources/pricing/products.js +32 -0
  410. package/resources/pricing/products.js.map +1 -0
  411. package/resources/pricing/products.mjs +28 -0
  412. package/resources/pricing/products.mjs.map +1 -0
  413. package/resources/pricing.d.mts +2 -0
  414. package/resources/pricing.d.mts.map +1 -0
  415. package/resources/pricing.d.ts +2 -0
  416. package/resources/pricing.d.ts.map +1 -0
  417. package/resources/pricing.js +6 -0
  418. package/resources/pricing.js.map +1 -0
  419. package/resources/pricing.mjs +3 -0
  420. package/resources/pricing.mjs.map +1 -0
  421. package/resources/speech-to-text/speech-to-text.d.mts +4 -4
  422. package/resources/speech-to-text/speech-to-text.d.mts.map +1 -1
  423. package/resources/speech-to-text/speech-to-text.d.ts +4 -4
  424. package/resources/speech-to-text/speech-to-text.d.ts.map +1 -1
  425. package/resources/speech-to-text/speech-to-text.js +1 -1
  426. package/resources/speech-to-text/speech-to-text.mjs +1 -1
  427. package/resources/uac-connections/uac-connections.d.mts +5 -0
  428. package/resources/uac-connections/uac-connections.d.mts.map +1 -1
  429. package/resources/uac-connections/uac-connections.d.ts +5 -0
  430. package/resources/uac-connections/uac-connections.d.ts.map +1 -1
  431. package/resources/uac-connections/uac-connections.js.map +1 -1
  432. package/resources/uac-connections/uac-connections.mjs.map +1 -1
  433. package/resources/webhooks.d.mts +483 -85
  434. package/resources/webhooks.d.mts.map +1 -1
  435. package/resources/webhooks.d.ts +483 -85
  436. package/resources/webhooks.d.ts.map +1 -1
  437. package/resources/webhooks.js.map +1 -1
  438. package/resources/webhooks.mjs.map +1 -1
  439. package/src/client.ts +260 -0
  440. package/src/resources/ai/ai.ts +7 -0
  441. package/src/resources/ai/anthropic/v1.ts +3 -1
  442. package/src/resources/ai/assistants/assistants.ts +6 -1
  443. package/src/resources/ai/chat.ts +7 -0
  444. package/src/resources/ai/openai/chat.ts +7 -0
  445. package/src/resources/ai/openai/openai.ts +7 -0
  446. package/src/resources/calls/actions.ts +269 -51
  447. package/src/resources/calls/calls.ts +8 -0
  448. package/src/resources/calls/index.ts +3 -0
  449. package/src/resources/custom-storage-credentials.ts +140 -14
  450. package/src/resources/dir/dir.ts +3 -2
  451. package/src/resources/dir/references.ts +41 -11
  452. package/src/resources/dir/verify-email.ts +12 -0
  453. package/src/resources/email-blocks/email-blocks.ts +358 -0
  454. package/src/resources/email-blocks/import.ts +143 -0
  455. package/src/resources/email-blocks/index.ts +16 -0
  456. package/src/resources/email-blocks.ts +3 -0
  457. package/src/resources/email-domains/email-domains.ts +510 -0
  458. package/src/resources/email-domains/index.ts +33 -0
  459. package/src/resources/email-domains/webhooks.ts +267 -0
  460. package/src/resources/email-domains.ts +3 -0
  461. package/src/resources/email-events.ts +269 -0
  462. package/src/resources/email-inboxes/drafts.ts +746 -0
  463. package/src/resources/email-inboxes/email-inboxes.ts +276 -0
  464. package/src/resources/email-inboxes/filters.ts +193 -0
  465. package/src/resources/email-inboxes/index.ts +58 -0
  466. package/src/resources/email-inboxes/messages/actions.ts +258 -0
  467. package/src/resources/email-inboxes/messages/index.ts +27 -0
  468. package/src/resources/email-inboxes/messages/labels.ts +139 -0
  469. package/src/resources/email-inboxes/messages/messages.ts +313 -0
  470. package/src/resources/email-inboxes/messages.ts +3 -0
  471. package/src/resources/email-inboxes/threads/index.ts +21 -0
  472. package/src/resources/email-inboxes/threads/labels.ts +143 -0
  473. package/src/resources/email-inboxes/threads/threads.ts +292 -0
  474. package/src/resources/email-inboxes/threads.ts +3 -0
  475. package/src/resources/email-inboxes.ts +3 -0
  476. package/src/resources/email-messages/email-messages.ts +713 -0
  477. package/src/resources/email-messages/index.ts +26 -0
  478. package/src/resources/email-messages/recipients.ts +182 -0
  479. package/src/resources/email-messages.ts +3 -0
  480. package/src/resources/email-templates.ts +333 -0
  481. package/src/resources/email-threads.ts +100 -0
  482. package/src/resources/email-unsubscribe-groups/email-unsubscribe-groups.ts +171 -0
  483. package/src/resources/email-unsubscribe-groups/index.ts +19 -0
  484. package/src/resources/email-unsubscribe-groups/suppressions.ts +90 -0
  485. package/src/resources/email-unsubscribe-groups.ts +3 -0
  486. package/src/resources/email-validations/batch.ts +187 -0
  487. package/src/resources/email-validations/email-validations.ts +141 -0
  488. package/src/resources/email-validations/index.ts +15 -0
  489. package/src/resources/email-validations.ts +3 -0
  490. package/src/resources/index.ts +103 -0
  491. package/src/resources/pricing/index.ts +13 -0
  492. package/src/resources/pricing/pricing.ts +33 -0
  493. package/src/resources/pricing/products.ts +226 -0
  494. package/src/resources/pricing.ts +3 -0
  495. package/src/resources/speech-to-text/speech-to-text.ts +6 -3
  496. package/src/resources/uac-connections/uac-connections.ts +6 -0
  497. package/src/resources/webhooks.ts +636 -110
  498. package/src/version.ts +1 -1
  499. package/version.d.mts +1 -1
  500. package/version.d.ts +1 -1
  501. package/version.js +1 -1
  502. package/version.mjs +1 -1
@@ -238,8 +238,9 @@ export class DirResource extends APIResource {
238
238
  * numbers flip back to `submitted`. When re-submitting from `verified`, the
239
239
  * existing registration stays live throughout the new vetting cycle.
240
240
  *
241
- * Returns `400` from `submitted`/`in_review`/`permanently_rejected`. Returns `409`
242
- * if the DIR has an unresolved infringement claim.
241
+ * Returns `400` from `submitted`/`in_review`/`permanently_rejected`. Returns `400`
242
+ * if the DIR's business and financial references have not been submitted. Returns
243
+ * `409` if the DIR has an unresolved infringement claim.
243
244
  *
244
245
  * @example
245
246
  * ```ts
@@ -12,10 +12,12 @@ export class References extends APIResource {
12
12
  /**
13
13
  * List the business and financial references submitted for a DIR.
14
14
  *
15
- * Returns the two business references (slots 0 and 1) followed by the single
16
- * financial reference. Each entry carries only the customer-supplied details
17
- * (name, title, organization, relationship, phone, email, timezone). Returns an
18
- * empty list when no references were submitted.
15
+ * Returns the two business references (slots 1 and 2) followed by the single
16
+ * financial reference. Each entry carries its `ref_type` and `slot`, which
17
+ * together address the reference when updating it, alongside the details supplied
18
+ * when it was submitted (name, title, organization, relationship, phone, email,
19
+ * timezone). No internal identifiers are exposed. Returns an empty list when no
20
+ * references were submitted.
19
21
  *
20
22
  * @example
21
23
  * ```ts
@@ -35,9 +37,29 @@ export class References extends APIResource {
35
37
  * endpoint). Until it is, this returns `409` and no references are stored.
36
38
  *
37
39
  * The request body carries exactly two business references plus one financial
38
- * reference. On success the references are stored and the response echoes them in
39
- * the same shape as the GET. Submitting again converges on the already-stored
40
- * references rather than erroring.
40
+ * reference. The first submission stores them and returns `201`. Resubmitting
41
+ * returns `200`: identical values are simply confirmed and nothing is written,
42
+ * while changed values replace those references.
43
+ *
44
+ * Replacing a reference is allowed only while the DIR itself is still editable,
45
+ * the same window in which a single reference may be updated; once the DIR has
46
+ * been submitted for vetting this returns `400`. A replaced reference's pending
47
+ * verification call is cancelled and its dial-in code stops working, and the
48
+ * replacement contact is emailed fresh scheduling details. References whose
49
+ * details did not change keep their existing call, code, and the notice already
50
+ * sent to them.
51
+ *
52
+ * The response always echoes the stored references in the same shape as the GET.
53
+ *
54
+ * Who qualifies: the two business references confirm the company's reputation and
55
+ * operations. Each should be a senior contact at an organization the business
56
+ * works with, such as a vendor, partner, or client: a C-suite executive (CEO, CFO,
57
+ * CTO, COO), an owner or founder as reflected in the company's corporate records,
58
+ * or a senior manager, director, or executive. The financial reference confirms
59
+ * the company pays its bills and should be a licensed certified public accountant
60
+ * (CPA) the company uses, a contact at a bank or financial institution that has a
61
+ * relationship with the company, or a reasonable alternative banking or financial
62
+ * reference.
41
63
  *
42
64
  * @example
43
65
  * ```ts
@@ -84,7 +106,7 @@ export class References extends APIResource {
84
106
  *
85
107
  * @example
86
108
  * ```ts
87
- * const reference = await client.dir.references.update(0, {
109
+ * const reference = await client.dir.references.update(1, {
88
110
  * dir_id: '16635d38-75a6-4481-82e8-69af60e05011',
89
111
  * ref_type: 'business',
90
112
  * });
@@ -126,8 +148,10 @@ export interface Reference {
126
148
  ref_type: 'business' | 'financial';
127
149
 
128
150
  /**
129
- * Position within the reference type. Business references occupy slots 0 and 1;
130
- * the financial reference occupies slot 0.
151
+ * Position within the reference type, counting from 1. Business references occupy
152
+ * slots 1 and 2, in the order they were sent in the `business_references` array;
153
+ * the financial reference occupies slot 1. Use this value together with `ref_type`
154
+ * to address the reference when updating it.
131
155
  */
132
156
  slot: number;
133
157
 
@@ -215,7 +239,13 @@ export interface ReferenceUpdateResponse {
215
239
 
216
240
  export interface ReferenceCreateParams {
217
241
  /**
218
- * Exactly two business references.
242
+ * Exactly two business references. Array order determines each one's slot: the
243
+ * first entry becomes slot 1 and the second becomes slot 2. Those slots are what
244
+ * you pass when updating a single reference later. Each should be a senior contact
245
+ * who can speak to your company's reputation and operations: a C-suite executive
246
+ * (CEO, CFO, CTO, COO), an owner or founder as reflected in your corporate
247
+ * records, or a senior manager, director, or executive at an organization you work
248
+ * with, such as a vendor, partner, or client.
219
249
  */
220
250
  business_references: Array<ReferenceInput>;
221
251
 
@@ -96,6 +96,18 @@ export namespace EmailVerificationStatusWrapped {
96
96
  * `unverified` when no verification is in progress.
97
97
  */
98
98
  status: 'sent' | 'verified' | 'unverified';
99
+
100
+ /**
101
+ * When the outstanding code stops being accepted. Null when no verification is in
102
+ * progress.
103
+ */
104
+ expires_at?: string | null;
105
+
106
+ /**
107
+ * How many more codes may be requested for this DIR today. Null when the daily cap
108
+ * does not apply.
109
+ */
110
+ sends_remaining_today?: number | null;
99
111
  }
100
112
  }
101
113
 
@@ -0,0 +1,358 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import * as ImportAPI from './import';
5
+ import { EmailBlockImportResponse, Import, ImportCreateParams } from './import';
6
+ import { APIPromise } from '../../core/api-promise';
7
+ import { DefaultFlatPagination, type DefaultFlatPaginationParams, PagePromise } from '../../core/pagination';
8
+ import { buildHeaders } from '../../internal/headers';
9
+ import { RequestOptions } from '../../internal/request-options';
10
+ import { path } from '../../internal/utils/path';
11
+
12
+ /**
13
+ * Recipient suppression records (`/v2/email_blocks`).
14
+ */
15
+ export class EmailBlocks extends APIResource {
16
+ import: ImportAPI.Import = new ImportAPI.Import(this._client);
17
+
18
+ /**
19
+ * Account-scoped list. Two mutually exclusive pagination modes:
20
+ *
21
+ * - **Offset**: `page[number]` (default 1) + `page[size]` (default 25, max 100).
22
+ * `meta` contains `total_pages`.
23
+ * - **Cursor**: `page[after]` and/or `page[before]` (opaque `Base.url_encode64` of
24
+ * `{"created_at","id"}`). Cannot combine with `page[number]`; `after`+`before`
25
+ * together is an error. `meta` contains `next_cursor` / `previous_cursor`
26
+ * (omitted when their flag is false).
27
+ *
28
+ * Sort defaults to `-created_at` (desc); only `created_at` is sortable. A `--`
29
+ * prefix is an error. `nil`/empty filter values are silently dropped.
30
+ */
31
+ list(
32
+ query: EmailBlockListParams | null | undefined = {},
33
+ options?: RequestOptions,
34
+ ): PagePromise<EmailBlocksDefaultFlatPagination, EmailBlock> {
35
+ return this._client.getAPIList('/email_blocks', DefaultFlatPagination<EmailBlock>, { query, ...options });
36
+ }
37
+
38
+ /**
39
+ * Creates a suppression with `reason: manual_block` and `source: manual`.
40
+ * Caller-supplied `reason` / `source` are **ignored**; `scope` is **derived**
41
+ * server-side from `domain_id` / `from` and is never trusted. Idempotent: if a
42
+ * matching row already exists (NULL-safe dedupe key: account_id, scope, to,
43
+ * reason, domain_id, from), returns the existing record with `200` (no new audit
44
+ * event).
45
+ *
46
+ * `bounce_category`, `dsn_code`, `meta`, and `group_id` are **not accepted** on
47
+ * the public surface. Use the unsubscribe-group suppression endpoint or the
48
+ * internal create surface for those.
49
+ */
50
+ create(body: EmailBlockCreateParams, options?: RequestOptions): APIPromise<EmailBlockResponse> {
51
+ return this._client.post('/email_blocks', { body, ...options });
52
+ }
53
+
54
+ /**
55
+ * Streams the account's suppressions as a chunked CSV (server-side cursor; never
56
+ * materialized). Content-type `text/csv`, header
57
+ * `Content-Disposition: attachment; filename="email_blocks_export.csv"`.
58
+ *
59
+ * Filters (`filter[reason]`, `filter[domain_id]`, `filter[created_after]`,
60
+ * `filter[created_before]`) are the only params that affect output. `sort` and
61
+ * `page[*]` are **parsed** (bad values still produce `400`) but **ignored** — rows
62
+ * stream `ORDER BY created_at ASC, id ASC` with no pagination.
63
+ *
64
+ * CSV columns:
65
+ * `id,to,from,reason,source,scope,status,domain_id, created_at,updated_at,expires_at,group_id`.
66
+ * The CSV carries the `group_id` column so group-scoped suppressions' group link
67
+ * survives the export (empty for account-scope rows).
68
+ */
69
+ retrieveExport(
70
+ query: EmailBlockRetrieveExportParams | null | undefined = {},
71
+ options?: RequestOptions,
72
+ ): APIPromise<string> {
73
+ return this._client.get('/email_blocks/export', {
74
+ query,
75
+ ...options,
76
+ headers: buildHeaders([{ Accept: 'text/csv' }, options?.headers]),
77
+ });
78
+ }
79
+
80
+ /**
81
+ * Soft-deletes (status → `removed`; tombstone retained). A `removed` audit event
82
+ * is appended unless the block was already `removed` (idempotent — returns the
83
+ * existing row with `200` and no new event). Mutates `updated_at`.
84
+ */
85
+ delete(id: string, options?: RequestOptions): APIPromise<EmailBlockResponse> {
86
+ return this._client.delete(path`/email_blocks/${id}`, options);
87
+ }
88
+
89
+ /**
90
+ * Retrieve a suppression
91
+ */
92
+ retrieve(id: string, options?: RequestOptions): APIPromise<EmailBlockResponse> {
93
+ return this._client.get(path`/email_blocks/${id}`, options);
94
+ }
95
+
96
+ /**
97
+ * Offset pagination only (`page[number]` default 1, `page[size]` default **50**,
98
+ * max 100). No `sort`, no `filter`, no cursor — ordering is fixed
99
+ * `desc occurred_at, desc id`. Verifies the block belongs to the account first
100
+ * (cross-account → 404).
101
+ */
102
+ retrieveEvents(
103
+ id: string,
104
+ query: EmailBlockRetrieveEventsParams | null | undefined = {},
105
+ options?: RequestOptions,
106
+ ): APIPromise<EmailBlockRetrieveEventsResponse> {
107
+ return this._client.get(path`/email_blocks/${id}/events`, { query, ...options });
108
+ }
109
+ }
110
+
111
+ export type EmailBlocksDefaultFlatPagination = DefaultFlatPagination<EmailBlock>;
112
+
113
+ /**
114
+ * Suppression record. Schema fields hidden by the view: `account_id`,
115
+ * `bounce_category`, `dsn_code`, `meta`.
116
+ */
117
+ export interface EmailBlock {
118
+ id: string;
119
+
120
+ created_at: string;
121
+
122
+ reason: 'hard_bounce' | 'spam_complaint' | 'unsubscribe' | 'invalid' | 'manual_block';
123
+
124
+ /**
125
+ * View-only discriminator.
126
+ */
127
+ record_type: 'email_block';
128
+
129
+ /**
130
+ * Derived server-side from `domain_id`/`from`; never trusted from the caller.
131
+ */
132
+ scope: 'account' | 'domain' | 'address';
133
+
134
+ source: 'feedback' | 'manual' | 'import' | 'system';
135
+
136
+ status: 'active' | 'expired' | 'removed';
137
+
138
+ /**
139
+ * Normalized recipient. (schema: to_address)
140
+ */
141
+ to: string;
142
+
143
+ updated_at: string;
144
+
145
+ /**
146
+ * `null` ⇒ account scope. Stored on the row; exposed here.
147
+ */
148
+ domain_id?: string | null;
149
+
150
+ expires_at?: string | null;
151
+
152
+ /**
153
+ * `null` ⇒ not address-scope. (schema: from_address)
154
+ */
155
+ from?: string | null;
156
+
157
+ /**
158
+ * `null` ⇒ global; set ⇒ group-scoped opt-out.
159
+ */
160
+ group_id?: string | null;
161
+ }
162
+
163
+ export interface EmailBlockResponse {
164
+ /**
165
+ * Suppression record. Schema fields hidden by the view: `account_id`,
166
+ * `bounce_category`, `dsn_code`, `meta`.
167
+ */
168
+ data: EmailBlock;
169
+ }
170
+
171
+ export interface OffsetMeta {
172
+ page_number: number;
173
+
174
+ page_size: number;
175
+
176
+ total_pages: number;
177
+
178
+ total_results: number;
179
+ }
180
+
181
+ export interface EmailBlockRetrieveEventsResponse {
182
+ data: Array<EmailBlockRetrieveEventsResponse.Data>;
183
+
184
+ meta: OffsetMeta;
185
+ }
186
+
187
+ export namespace EmailBlockRetrieveEventsResponse {
188
+ export interface Data {
189
+ id: string;
190
+
191
+ /**
192
+ * Free-text (`user_id`/`org_id`/`api_key`/`dev_bypass`/`system`/`manual`).
193
+ */
194
+ actor: string;
195
+
196
+ event_type: 'created' | 'removed' | 'expired' | 'override_used';
197
+
198
+ occurred_at: string;
199
+
200
+ /**
201
+ * Free-text snapshot of the block's reason at event time.
202
+ */
203
+ reason: string;
204
+
205
+ /**
206
+ * View-only.
207
+ */
208
+ record_type: 'email_block_event';
209
+
210
+ /**
211
+ * Free-text snapshot of the block's source at event time.
212
+ */
213
+ source: string;
214
+
215
+ /**
216
+ * `null` when the schema field is nil (the context usually sets it to `{}`).
217
+ */
218
+ meta?: { [key: string]: unknown } | null;
219
+ }
220
+ }
221
+
222
+ /**
223
+ * CSV with header row
224
+ * `id,to,from,reason,source,scope,status,domain_id,created_at,updated_at,expires_at,group_id`.
225
+ */
226
+ export type EmailBlockRetrieveExportResponse = string;
227
+
228
+ export interface EmailBlockListParams extends DefaultFlatPaginationParams {
229
+ /**
230
+ * `created_at > value` (ISO 8601).
231
+ */
232
+ 'filter[created_after]'?: string;
233
+
234
+ /**
235
+ * `created_at < value` (ISO 8601).
236
+ */
237
+ 'filter[created_before]'?: string;
238
+
239
+ /**
240
+ * Exact-match filter on domain_id (UUID).
241
+ */
242
+ 'filter[domain_id]'?: string;
243
+
244
+ /**
245
+ * Exact-match filter on reason.
246
+ */
247
+ 'filter[reason]'?: 'hard_bounce' | 'spam_complaint' | 'unsubscribe' | 'invalid' | 'manual_block';
248
+
249
+ /**
250
+ * Opaque cursor (`Base.url_encode64` of `{"created_at","id"}`). Cursor mode;
251
+ * mutually exclusive with `page[number]` and `page[before]`.
252
+ */
253
+ 'page[after]'?: string;
254
+
255
+ /**
256
+ * Opaque cursor (see `page[after]`). Mutually exclusive with `page[after]` and
257
+ * `page[number]`.
258
+ */
259
+ 'page[before]'?: string;
260
+
261
+ /**
262
+ * Sort field. Leading `-` = desc; only `created_at` is sortable. Default
263
+ * `-created_at`. `--` is an error.
264
+ */
265
+ sort?: 'created_at' | '-created_at';
266
+ }
267
+
268
+ export interface EmailBlockCreateParams {
269
+ /**
270
+ * Recipient address (normalized: trim + lower-case).
271
+ */
272
+ to: string;
273
+
274
+ /**
275
+ * `null` ⇒ account scope.
276
+ */
277
+ domain_id?: string | null;
278
+
279
+ expires_at?: string | null;
280
+
281
+ /**
282
+ * Sender address (normalized). `null` ⇒ account/domain scope.
283
+ */
284
+ from?: string | null;
285
+ }
286
+
287
+ export interface EmailBlockRetrieveExportParams {
288
+ /**
289
+ * `created_at > value` (ISO 8601).
290
+ */
291
+ 'filter[created_after]'?: string;
292
+
293
+ /**
294
+ * `created_at < value` (ISO 8601).
295
+ */
296
+ 'filter[created_before]'?: string;
297
+
298
+ /**
299
+ * Exact-match filter on domain_id (UUID).
300
+ */
301
+ 'filter[domain_id]'?: string;
302
+
303
+ /**
304
+ * Exact-match filter on reason.
305
+ */
306
+ 'filter[reason]'?: 'hard_bounce' | 'spam_complaint' | 'unsubscribe' | 'invalid' | 'manual_block';
307
+
308
+ /**
309
+ * Offset page number (≥1, default 1).
310
+ */
311
+ 'page[number]'?: number;
312
+
313
+ /**
314
+ * Page size (1–100, default 25).
315
+ */
316
+ 'page[size]'?: number;
317
+
318
+ /**
319
+ * Sort field. Leading `-` = desc; only `created_at` is sortable. Default
320
+ * `-created_at`. `--` is an error.
321
+ */
322
+ sort?: 'created_at' | '-created_at';
323
+ }
324
+
325
+ export interface EmailBlockRetrieveEventsParams {
326
+ /**
327
+ * Offset page number (≥1, default 1).
328
+ */
329
+ 'page[number]'?: number;
330
+
331
+ /**
332
+ * Page size (default 50, max 100).
333
+ */
334
+ 'page[size]'?: number;
335
+ }
336
+
337
+ EmailBlocks.Import = Import;
338
+
339
+ export declare namespace EmailBlocks {
340
+ export {
341
+ type EmailBlock as EmailBlock,
342
+ type EmailBlockResponse as EmailBlockResponse,
343
+ type OffsetMeta as OffsetMeta,
344
+ type EmailBlockRetrieveEventsResponse as EmailBlockRetrieveEventsResponse,
345
+ type EmailBlockRetrieveExportResponse as EmailBlockRetrieveExportResponse,
346
+ type EmailBlocksDefaultFlatPagination as EmailBlocksDefaultFlatPagination,
347
+ type EmailBlockListParams as EmailBlockListParams,
348
+ type EmailBlockCreateParams as EmailBlockCreateParams,
349
+ type EmailBlockRetrieveExportParams as EmailBlockRetrieveExportParams,
350
+ type EmailBlockRetrieveEventsParams as EmailBlockRetrieveEventsParams,
351
+ };
352
+
353
+ export {
354
+ Import as Import,
355
+ type EmailBlockImportResponse as EmailBlockImportResponse,
356
+ type ImportCreateParams as ImportCreateParams,
357
+ };
358
+ }
@@ -0,0 +1,143 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import { APIPromise } from '../../core/api-promise';
5
+ import { type Uploadable } from '../../core/uploads';
6
+ import { RequestOptions } from '../../internal/request-options';
7
+ import { multipartFormRequestOptions } from '../../internal/uploads';
8
+ import { path } from '../../internal/utils/path';
9
+
10
+ /**
11
+ * Async CSV import of competitor suppression lists.
12
+ */
13
+ export class Import extends APIResource {
14
+ /**
15
+ * Accepts `multipart/form-data` with a `file` field (the CSV) and an optional
16
+ * `block_ttl_days` (integer >0, default 30). Validates:
17
+ *
18
+ * - content ≤ 25 MiB, else `413`
19
+ * - row count ≤ 250 000, else `413`
20
+ * - header-only / all-blank / undetectable provider → `400` Returns `202` with the
21
+ * import record (status `pending`); an Oban worker (`EmailBlockImportWorker`,
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`).
26
+ */
27
+ create(body: ImportCreateParams, options?: RequestOptions): APIPromise<EmailBlockImportResponse> {
28
+ return this._client.post(
29
+ '/email_blocks/import',
30
+ multipartFormRequestOptions({ body, ...options }, this._client),
31
+ );
32
+ }
33
+
34
+ /**
35
+ * Account-scoped fetch (cross-account → 404; malformed UUID → 404). Nullable
36
+ * fields are omitted until terminal: `provider`/`completed_at` when nil;
37
+ * `processed_rows`/`created_count`/`existing_count`/ `skipped_count`/`error_count`
38
+ * only when `status == completed`; `errors` only when non-empty; `failure_reason`
39
+ * only on terminal failure.
40
+ */
41
+ retrieve(id: string, options?: RequestOptions): APIPromise<EmailBlockImportResponse> {
42
+ return this._client.get(path`/email_blocks/import/${id}`, options);
43
+ }
44
+ }
45
+
46
+ export interface EmailBlockImportResponse {
47
+ /**
48
+ * Import job. Schema fields hidden: `account_id`, `csv_content`, `block_ttl_days`.
49
+ * Nullable fields use the omit-nullable pattern.
50
+ */
51
+ data: EmailBlockImportResponse.Data;
52
+ }
53
+
54
+ export namespace EmailBlockImportResponse {
55
+ /**
56
+ * Import job. Schema fields hidden: `account_id`, `csv_content`, `block_ttl_days`.
57
+ * Nullable fields use the omit-nullable pattern.
58
+ */
59
+ export interface Data {
60
+ id: string;
61
+
62
+ created_at: string;
63
+
64
+ /**
65
+ * View-only.
66
+ */
67
+ record_type: 'email_block_import';
68
+
69
+ status: 'pending' | 'processing' | 'completed' | 'failed';
70
+
71
+ /**
72
+ * Data-row count at upload.
73
+ */
74
+ total: number;
75
+
76
+ updated_at: string;
77
+
78
+ /**
79
+ * Omitted until terminal success.
80
+ */
81
+ completed_at?: string;
82
+
83
+ /**
84
+ * Only when `status == completed`.
85
+ */
86
+ created_count?: number;
87
+
88
+ /**
89
+ * Only when `status == completed`.
90
+ */
91
+ error_count?: number;
92
+
93
+ /**
94
+ * `{row_number: reason}`; only rendered when non-empty.
95
+ */
96
+ errors?: { [key: string]: string };
97
+
98
+ /**
99
+ * Only when `status == completed`.
100
+ */
101
+ existing_count?: number;
102
+
103
+ /**
104
+ * Only on terminal failure.
105
+ */
106
+ failure_reason?: string;
107
+
108
+ /**
109
+ * Only when `status == completed`.
110
+ */
111
+ processed_rows?: number;
112
+
113
+ /**
114
+ * Omitted when nil.
115
+ */
116
+ provider?: 'sendgrid' | 'mailgun' | 'ses' | 'generic';
117
+
118
+ /**
119
+ * Only when `status == completed`.
120
+ */
121
+ skipped_count?: number;
122
+ }
123
+ }
124
+
125
+ export interface ImportCreateParams {
126
+ /**
127
+ * The CSV file (Plug.Upload). Missing/non-upload → 400.
128
+ */
129
+ file: Uploadable;
130
+
131
+ /**
132
+ * TTL for imported `manual_block` rows; other reasons get `expires_at: null`.
133
+ * Invalid/missing → falls back to 30.
134
+ */
135
+ block_ttl_days?: number;
136
+ }
137
+
138
+ export declare namespace Import {
139
+ export {
140
+ type EmailBlockImportResponse as EmailBlockImportResponse,
141
+ type ImportCreateParams as ImportCreateParams,
142
+ };
143
+ }
@@ -0,0 +1,16 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export {
4
+ EmailBlocks,
5
+ type EmailBlock,
6
+ type EmailBlockResponse,
7
+ type OffsetMeta,
8
+ type EmailBlockRetrieveEventsResponse,
9
+ type EmailBlockRetrieveExportResponse,
10
+ type EmailBlockListParams,
11
+ type EmailBlockCreateParams,
12
+ type EmailBlockRetrieveExportParams,
13
+ type EmailBlockRetrieveEventsParams,
14
+ type EmailBlocksDefaultFlatPagination,
15
+ } from './email-blocks';
16
+ export { Import, type EmailBlockImportResponse, type ImportCreateParams } from './import';
@@ -0,0 +1,3 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export * from './email-blocks/index';