telnyx 7.28.0 → 7.30.0-beta.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 (557) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +27 -0
  3. package/client.d.mts +37 -6
  4. package/client.d.mts.map +1 -1
  5. package/client.d.ts +37 -6
  6. package/client.d.ts.map +1 -1
  7. package/client.js +31 -0
  8. package/client.js.map +1 -1
  9. package/client.mjs +31 -0
  10. package/client.mjs.map +1 -1
  11. package/lib/login-token.d.mts +87 -0
  12. package/lib/login-token.d.mts.map +1 -0
  13. package/lib/login-token.d.ts +87 -0
  14. package/lib/login-token.d.ts.map +1 -0
  15. package/lib/login-token.js +190 -0
  16. package/lib/login-token.js.map +1 -0
  17. package/lib/login-token.mjs +151 -0
  18. package/lib/login-token.mjs.map +1 -0
  19. package/package.json +1 -1
  20. package/resources/addresses/actions.d.mts +19 -4
  21. package/resources/addresses/actions.d.mts.map +1 -1
  22. package/resources/addresses/actions.d.ts +19 -4
  23. package/resources/addresses/actions.d.ts.map +1 -1
  24. package/resources/ai/ai.d.mts +4 -0
  25. package/resources/ai/ai.d.mts.map +1 -1
  26. package/resources/ai/ai.d.ts +4 -0
  27. package/resources/ai/ai.d.ts.map +1 -1
  28. package/resources/ai/ai.js +4 -0
  29. package/resources/ai/ai.js.map +1 -1
  30. package/resources/ai/ai.mjs +4 -0
  31. package/resources/ai/ai.mjs.map +1 -1
  32. package/resources/ai/assistants/assistants.d.mts +31 -27
  33. package/resources/ai/assistants/assistants.d.mts.map +1 -1
  34. package/resources/ai/assistants/assistants.d.ts +31 -27
  35. package/resources/ai/assistants/assistants.d.ts.map +1 -1
  36. package/resources/ai/assistants/assistants.js.map +1 -1
  37. package/resources/ai/assistants/assistants.mjs.map +1 -1
  38. package/resources/ai/avatars.d.mts +9 -9
  39. package/resources/ai/avatars.d.ts +9 -9
  40. package/resources/ai/avatars.js +9 -9
  41. package/resources/ai/avatars.mjs +9 -9
  42. package/resources/ai/index.d.mts +1 -0
  43. package/resources/ai/index.d.mts.map +1 -1
  44. package/resources/ai/index.d.ts +1 -0
  45. package/resources/ai/index.d.ts.map +1 -1
  46. package/resources/ai/index.js +5 -3
  47. package/resources/ai/index.js.map +1 -1
  48. package/resources/ai/index.mjs +1 -0
  49. package/resources/ai/index.mjs.map +1 -1
  50. package/resources/ai/tests/index.d.mts +4 -0
  51. package/resources/ai/tests/index.d.mts.map +1 -0
  52. package/resources/ai/tests/index.d.ts +4 -0
  53. package/resources/ai/tests/index.d.ts.map +1 -0
  54. package/resources/ai/tests/index.js +11 -0
  55. package/resources/ai/tests/index.js.map +1 -0
  56. package/resources/ai/tests/index.mjs +5 -0
  57. package/resources/ai/tests/index.mjs.map +1 -0
  58. package/resources/ai/tests/schedules/index.d.mts +3 -0
  59. package/resources/ai/tests/schedules/index.d.mts.map +1 -0
  60. package/resources/ai/tests/schedules/index.d.ts +3 -0
  61. package/resources/ai/tests/schedules/index.d.ts.map +1 -0
  62. package/resources/ai/tests/schedules/index.js +9 -0
  63. package/resources/ai/tests/schedules/index.js.map +1 -0
  64. package/resources/ai/tests/schedules/index.mjs +4 -0
  65. package/resources/ai/tests/schedules/index.mjs.map +1 -0
  66. package/resources/ai/tests/schedules/schedules.d.mts +10 -0
  67. package/resources/ai/tests/schedules/schedules.d.mts.map +1 -0
  68. package/resources/ai/tests/schedules/schedules.d.ts +10 -0
  69. package/resources/ai/tests/schedules/schedules.d.ts.map +1 -0
  70. package/resources/ai/tests/schedules/schedules.js +17 -0
  71. package/resources/ai/tests/schedules/schedules.js.map +1 -0
  72. package/resources/ai/tests/schedules/schedules.mjs +12 -0
  73. package/resources/ai/tests/schedules/schedules.mjs.map +1 -0
  74. package/resources/ai/tests/schedules/v1/cron-jobs.d.mts +171 -0
  75. package/resources/ai/tests/schedules/v1/cron-jobs.d.mts.map +1 -0
  76. package/resources/ai/tests/schedules/v1/cron-jobs.d.ts +171 -0
  77. package/resources/ai/tests/schedules/v1/cron-jobs.d.ts.map +1 -0
  78. package/resources/ai/tests/schedules/v1/cron-jobs.js +88 -0
  79. package/resources/ai/tests/schedules/v1/cron-jobs.js.map +1 -0
  80. package/resources/ai/tests/schedules/v1/cron-jobs.mjs +84 -0
  81. package/resources/ai/tests/schedules/v1/cron-jobs.mjs.map +1 -0
  82. package/resources/ai/tests/schedules/v1/index.d.mts +3 -0
  83. package/resources/ai/tests/schedules/v1/index.d.mts.map +1 -0
  84. package/resources/ai/tests/schedules/v1/index.d.ts +3 -0
  85. package/resources/ai/tests/schedules/v1/index.d.ts.map +1 -0
  86. package/resources/ai/tests/schedules/v1/index.js +9 -0
  87. package/resources/ai/tests/schedules/v1/index.js.map +1 -0
  88. package/resources/ai/tests/schedules/v1/index.mjs +4 -0
  89. package/resources/ai/tests/schedules/v1/index.mjs.map +1 -0
  90. package/resources/ai/tests/schedules/v1/v1.d.mts +10 -0
  91. package/resources/ai/tests/schedules/v1/v1.d.mts.map +1 -0
  92. package/resources/ai/tests/schedules/v1/v1.d.ts +10 -0
  93. package/resources/ai/tests/schedules/v1/v1.d.ts.map +1 -0
  94. package/resources/ai/tests/schedules/v1/v1.js +17 -0
  95. package/resources/ai/tests/schedules/v1/v1.js.map +1 -0
  96. package/resources/ai/tests/schedules/v1/v1.mjs +12 -0
  97. package/resources/ai/tests/schedules/v1/v1.mjs.map +1 -0
  98. package/resources/ai/tests/schedules/v1.d.mts +2 -0
  99. package/resources/ai/tests/schedules/v1.d.mts.map +1 -0
  100. package/resources/ai/tests/schedules/v1.d.ts +2 -0
  101. package/resources/ai/tests/schedules/v1.d.ts.map +1 -0
  102. package/resources/ai/tests/schedules/v1.js +6 -0
  103. package/resources/ai/tests/schedules/v1.js.map +1 -0
  104. package/resources/ai/tests/schedules/v1.mjs +3 -0
  105. package/resources/ai/tests/schedules/v1.mjs.map +1 -0
  106. package/resources/ai/tests/schedules.d.mts +2 -0
  107. package/resources/ai/tests/schedules.d.mts.map +1 -0
  108. package/resources/ai/tests/schedules.d.ts +2 -0
  109. package/resources/ai/tests/schedules.d.ts.map +1 -0
  110. package/resources/ai/tests/schedules.js +6 -0
  111. package/resources/ai/tests/schedules.js.map +1 -0
  112. package/resources/ai/tests/schedules.mjs +3 -0
  113. package/resources/ai/tests/schedules.mjs.map +1 -0
  114. package/resources/ai/tests/test-framework/index.d.mts +3 -0
  115. package/resources/ai/tests/test-framework/index.d.mts.map +1 -0
  116. package/resources/ai/tests/test-framework/index.d.ts +3 -0
  117. package/resources/ai/tests/test-framework/index.d.ts.map +1 -0
  118. package/resources/ai/tests/test-framework/index.js +9 -0
  119. package/resources/ai/tests/test-framework/index.js.map +1 -0
  120. package/resources/ai/tests/test-framework/index.mjs +4 -0
  121. package/resources/ai/tests/test-framework/index.mjs.map +1 -0
  122. package/resources/ai/tests/test-framework/test-framework.d.mts +10 -0
  123. package/resources/ai/tests/test-framework/test-framework.d.mts.map +1 -0
  124. package/resources/ai/tests/test-framework/test-framework.d.ts +10 -0
  125. package/resources/ai/tests/test-framework/test-framework.d.ts.map +1 -0
  126. package/resources/ai/tests/test-framework/test-framework.js +17 -0
  127. package/resources/ai/tests/test-framework/test-framework.js.map +1 -0
  128. package/resources/ai/tests/test-framework/test-framework.mjs +12 -0
  129. package/resources/ai/tests/test-framework/test-framework.mjs.map +1 -0
  130. package/resources/ai/tests/test-framework/v1/aiagents.d.mts +216 -0
  131. package/resources/ai/tests/test-framework/v1/aiagents.d.mts.map +1 -0
  132. package/resources/ai/tests/test-framework/v1/aiagents.d.ts +216 -0
  133. package/resources/ai/tests/test-framework/v1/aiagents.d.ts.map +1 -0
  134. package/resources/ai/tests/test-framework/v1/aiagents.js +93 -0
  135. package/resources/ai/tests/test-framework/v1/aiagents.js.map +1 -0
  136. package/resources/ai/tests/test-framework/v1/aiagents.mjs +89 -0
  137. package/resources/ai/tests/test-framework/v1/aiagents.mjs.map +1 -0
  138. package/resources/ai/tests/test-framework/v1/index.d.mts +6 -0
  139. package/resources/ai/tests/test-framework/v1/index.d.mts.map +1 -0
  140. package/resources/ai/tests/test-framework/v1/index.d.ts +6 -0
  141. package/resources/ai/tests/test-framework/v1/index.d.ts.map +1 -0
  142. package/resources/ai/tests/test-framework/v1/index.js +15 -0
  143. package/resources/ai/tests/test-framework/v1/index.js.map +1 -0
  144. package/resources/ai/tests/test-framework/v1/index.mjs +7 -0
  145. package/resources/ai/tests/test-framework/v1/index.mjs.map +1 -0
  146. package/resources/ai/tests/test-framework/v1/metrics.d.mts +339 -0
  147. package/resources/ai/tests/test-framework/v1/metrics.d.mts.map +1 -0
  148. package/resources/ai/tests/test-framework/v1/metrics.d.ts +339 -0
  149. package/resources/ai/tests/test-framework/v1/metrics.d.ts.map +1 -0
  150. package/resources/ai/tests/test-framework/v1/metrics.js +145 -0
  151. package/resources/ai/tests/test-framework/v1/metrics.js.map +1 -0
  152. package/resources/ai/tests/test-framework/v1/metrics.mjs +141 -0
  153. package/resources/ai/tests/test-framework/v1/metrics.mjs.map +1 -0
  154. package/resources/ai/tests/test-framework/v1/results.d.mts +207 -0
  155. package/resources/ai/tests/test-framework/v1/results.d.mts.map +1 -0
  156. package/resources/ai/tests/test-framework/v1/results.d.ts +207 -0
  157. package/resources/ai/tests/test-framework/v1/results.d.ts.map +1 -0
  158. package/resources/ai/tests/test-framework/v1/results.js +65 -0
  159. package/resources/ai/tests/test-framework/v1/results.js.map +1 -0
  160. package/resources/ai/tests/test-framework/v1/results.mjs +61 -0
  161. package/resources/ai/tests/test-framework/v1/results.mjs.map +1 -0
  162. package/resources/ai/tests/test-framework/v1/scenarios.d.mts +528 -0
  163. package/resources/ai/tests/test-framework/v1/scenarios.d.mts.map +1 -0
  164. package/resources/ai/tests/test-framework/v1/scenarios.d.ts +528 -0
  165. package/resources/ai/tests/test-framework/v1/scenarios.d.ts.map +1 -0
  166. package/resources/ai/tests/test-framework/v1/scenarios.js +222 -0
  167. package/resources/ai/tests/test-framework/v1/scenarios.js.map +1 -0
  168. package/resources/ai/tests/test-framework/v1/scenarios.mjs +218 -0
  169. package/resources/ai/tests/test-framework/v1/scenarios.mjs.map +1 -0
  170. package/resources/ai/tests/test-framework/v1/v1.d.mts +83 -0
  171. package/resources/ai/tests/test-framework/v1/v1.d.mts.map +1 -0
  172. package/resources/ai/tests/test-framework/v1/v1.d.ts +83 -0
  173. package/resources/ai/tests/test-framework/v1/v1.d.ts.map +1 -0
  174. package/resources/ai/tests/test-framework/v1/v1.js +46 -0
  175. package/resources/ai/tests/test-framework/v1/v1.js.map +1 -0
  176. package/resources/ai/tests/test-framework/v1/v1.mjs +41 -0
  177. package/resources/ai/tests/test-framework/v1/v1.mjs.map +1 -0
  178. package/resources/ai/tests/test-framework/v1.d.mts +2 -0
  179. package/resources/ai/tests/test-framework/v1.d.mts.map +1 -0
  180. package/resources/ai/tests/test-framework/v1.d.ts +2 -0
  181. package/resources/ai/tests/test-framework/v1.d.ts.map +1 -0
  182. package/resources/ai/tests/test-framework/v1.js +6 -0
  183. package/resources/ai/tests/test-framework/v1.js.map +1 -0
  184. package/resources/ai/tests/test-framework/v1.mjs +3 -0
  185. package/resources/ai/tests/test-framework/v1.mjs.map +1 -0
  186. package/resources/ai/tests/test-framework.d.mts +2 -0
  187. package/resources/ai/tests/test-framework.d.mts.map +1 -0
  188. package/resources/ai/tests/test-framework.d.ts +2 -0
  189. package/resources/ai/tests/test-framework.d.ts.map +1 -0
  190. package/resources/ai/tests/test-framework.js +6 -0
  191. package/resources/ai/tests/test-framework.js.map +1 -0
  192. package/resources/ai/tests/test-framework.mjs +3 -0
  193. package/resources/ai/tests/test-framework.mjs.map +1 -0
  194. package/resources/ai/tests/tests.d.mts +14 -0
  195. package/resources/ai/tests/tests.d.mts.map +1 -0
  196. package/resources/ai/tests/tests.d.ts +14 -0
  197. package/resources/ai/tests/tests.d.ts.map +1 -0
  198. package/resources/ai/tests/tests.js +21 -0
  199. package/resources/ai/tests/tests.js.map +1 -0
  200. package/resources/ai/tests/tests.mjs +16 -0
  201. package/resources/ai/tests/tests.mjs.map +1 -0
  202. package/resources/ai/tests.d.mts +2 -0
  203. package/resources/ai/tests.d.mts.map +1 -0
  204. package/resources/ai/tests.d.ts +2 -0
  205. package/resources/ai/tests.d.ts.map +1 -0
  206. package/resources/ai/tests.js +6 -0
  207. package/resources/ai/tests.js.map +1 -0
  208. package/resources/ai/tests.mjs +3 -0
  209. package/resources/ai/tests.mjs.map +1 -0
  210. package/resources/artifact-downloads.d.mts +21 -0
  211. package/resources/artifact-downloads.d.mts.map +1 -0
  212. package/resources/artifact-downloads.d.ts +21 -0
  213. package/resources/artifact-downloads.d.ts.map +1 -0
  214. package/resources/artifact-downloads.js +26 -0
  215. package/resources/artifact-downloads.js.map +1 -0
  216. package/resources/artifact-downloads.mjs +22 -0
  217. package/resources/artifact-downloads.mjs.map +1 -0
  218. package/resources/bot-challenge.js +1 -1
  219. package/resources/bot-challenge.js.map +1 -1
  220. package/resources/bot-challenge.mjs +1 -1
  221. package/resources/bot-challenge.mjs.map +1 -1
  222. package/resources/bot-sessions.js +1 -1
  223. package/resources/bot-sessions.js.map +1 -1
  224. package/resources/bot-sessions.mjs +1 -1
  225. package/resources/bot-sessions.mjs.map +1 -1
  226. package/resources/bot-signup.js +2 -2
  227. package/resources/bot-signup.js.map +1 -1
  228. package/resources/bot-signup.mjs +2 -2
  229. package/resources/bot-signup.mjs.map +1 -1
  230. package/resources/browser-sessions/actions.d.mts +542 -0
  231. package/resources/browser-sessions/actions.d.mts.map +1 -0
  232. package/resources/browser-sessions/actions.d.ts +542 -0
  233. package/resources/browser-sessions/actions.d.ts.map +1 -0
  234. package/resources/browser-sessions/actions.js +55 -0
  235. package/resources/browser-sessions/actions.js.map +1 -0
  236. package/resources/browser-sessions/actions.mjs +51 -0
  237. package/resources/browser-sessions/actions.mjs.map +1 -0
  238. package/resources/browser-sessions/browser-sessions.d.mts +165 -0
  239. package/resources/browser-sessions/browser-sessions.d.mts.map +1 -0
  240. package/resources/browser-sessions/browser-sessions.d.ts +165 -0
  241. package/resources/browser-sessions/browser-sessions.d.ts.map +1 -0
  242. package/resources/browser-sessions/browser-sessions.js +87 -0
  243. package/resources/browser-sessions/browser-sessions.js.map +1 -0
  244. package/resources/browser-sessions/browser-sessions.mjs +82 -0
  245. package/resources/browser-sessions/browser-sessions.mjs.map +1 -0
  246. package/resources/browser-sessions/index.d.mts +3 -0
  247. package/resources/browser-sessions/index.d.mts.map +1 -0
  248. package/resources/browser-sessions/index.d.ts +3 -0
  249. package/resources/browser-sessions/index.d.ts.map +1 -0
  250. package/resources/browser-sessions/index.js +9 -0
  251. package/resources/browser-sessions/index.js.map +1 -0
  252. package/resources/browser-sessions/index.mjs +4 -0
  253. package/resources/browser-sessions/index.mjs.map +1 -0
  254. package/resources/browser-sessions.d.mts +2 -0
  255. package/resources/browser-sessions.d.mts.map +1 -0
  256. package/resources/browser-sessions.d.ts +2 -0
  257. package/resources/browser-sessions.d.ts.map +1 -0
  258. package/resources/browser-sessions.js +6 -0
  259. package/resources/browser-sessions.js.map +1 -0
  260. package/resources/browser-sessions.mjs +3 -0
  261. package/resources/browser-sessions.mjs.map +1 -0
  262. package/resources/call-control-applications.d.mts +2 -2
  263. package/resources/call-control-applications.d.ts +2 -2
  264. package/resources/calls/actions.d.mts +35 -28
  265. package/resources/calls/actions.d.mts.map +1 -1
  266. package/resources/calls/actions.d.ts +35 -28
  267. package/resources/calls/actions.d.ts.map +1 -1
  268. package/resources/conferences/actions.d.mts +3 -2
  269. package/resources/conferences/actions.d.mts.map +1 -1
  270. package/resources/conferences/actions.d.ts +3 -2
  271. package/resources/conferences/actions.d.ts.map +1 -1
  272. package/resources/email/dedicated-ips/actions.d.mts +73 -0
  273. package/resources/email/dedicated-ips/actions.d.mts.map +1 -0
  274. package/resources/email/dedicated-ips/actions.d.ts +73 -0
  275. package/resources/email/dedicated-ips/actions.d.ts.map +1 -0
  276. package/resources/email/dedicated-ips/actions.js +84 -0
  277. package/resources/email/dedicated-ips/actions.js.map +1 -0
  278. package/resources/email/dedicated-ips/actions.mjs +80 -0
  279. package/resources/email/dedicated-ips/actions.mjs.map +1 -0
  280. package/resources/email/dedicated-ips/dedicated-ips.d.mts +444 -0
  281. package/resources/email/dedicated-ips/dedicated-ips.d.mts.map +1 -0
  282. package/resources/email/dedicated-ips/dedicated-ips.d.ts +444 -0
  283. package/resources/email/dedicated-ips/dedicated-ips.d.ts.map +1 -0
  284. package/resources/email/dedicated-ips/dedicated-ips.js +142 -0
  285. package/resources/email/dedicated-ips/dedicated-ips.js.map +1 -0
  286. package/resources/email/dedicated-ips/dedicated-ips.mjs +137 -0
  287. package/resources/email/dedicated-ips/dedicated-ips.mjs.map +1 -0
  288. package/resources/email/dedicated-ips/index.d.mts +3 -0
  289. package/resources/email/dedicated-ips/index.d.mts.map +1 -0
  290. package/resources/email/dedicated-ips/index.d.ts +3 -0
  291. package/resources/email/dedicated-ips/index.d.ts.map +1 -0
  292. package/resources/email/dedicated-ips/index.js +9 -0
  293. package/resources/email/dedicated-ips/index.js.map +1 -0
  294. package/resources/email/dedicated-ips/index.mjs +4 -0
  295. package/resources/email/dedicated-ips/index.mjs.map +1 -0
  296. package/resources/email/dedicated-ips.d.mts +2 -0
  297. package/resources/email/dedicated-ips.d.mts.map +1 -0
  298. package/resources/email/dedicated-ips.d.ts +2 -0
  299. package/resources/email/dedicated-ips.d.ts.map +1 -0
  300. package/resources/email/dedicated-ips.js +6 -0
  301. package/resources/email/dedicated-ips.js.map +1 -0
  302. package/resources/email/dedicated-ips.mjs +3 -0
  303. package/resources/email/dedicated-ips.mjs.map +1 -0
  304. package/resources/email/email.d.mts +14 -0
  305. package/resources/email/email.d.mts.map +1 -0
  306. package/resources/email/email.d.ts +14 -0
  307. package/resources/email/email.d.ts.map +1 -0
  308. package/resources/email/email.js +21 -0
  309. package/resources/email/email.js.map +1 -0
  310. package/resources/email/email.mjs +16 -0
  311. package/resources/email/email.mjs.map +1 -0
  312. package/resources/email/index.d.mts +4 -0
  313. package/resources/email/index.d.mts.map +1 -0
  314. package/resources/email/index.d.ts +4 -0
  315. package/resources/email/index.d.ts.map +1 -0
  316. package/resources/email/index.js +11 -0
  317. package/resources/email/index.js.map +1 -0
  318. package/resources/email/index.mjs +5 -0
  319. package/resources/email/index.mjs.map +1 -0
  320. package/resources/email/ip-pools/index.d.mts +3 -0
  321. package/resources/email/ip-pools/index.d.mts.map +1 -0
  322. package/resources/email/ip-pools/index.d.ts +3 -0
  323. package/resources/email/ip-pools/index.d.ts.map +1 -0
  324. package/resources/email/ip-pools/index.js +9 -0
  325. package/resources/email/ip-pools/index.js.map +1 -0
  326. package/resources/email/ip-pools/index.mjs +4 -0
  327. package/resources/email/ip-pools/index.mjs.map +1 -0
  328. package/resources/email/ip-pools/ip-pools.d.mts +184 -0
  329. package/resources/email/ip-pools/ip-pools.d.mts.map +1 -0
  330. package/resources/email/ip-pools/ip-pools.d.ts +184 -0
  331. package/resources/email/ip-pools/ip-pools.d.ts.map +1 -0
  332. package/resources/email/ip-pools/ip-pools.js +102 -0
  333. package/resources/email/ip-pools/ip-pools.js.map +1 -0
  334. package/resources/email/ip-pools/ip-pools.mjs +97 -0
  335. package/resources/email/ip-pools/ip-pools.mjs.map +1 -0
  336. package/resources/email/ip-pools/ips.d.mts +83 -0
  337. package/resources/email/ip-pools/ips.d.mts.map +1 -0
  338. package/resources/email/ip-pools/ips.d.ts +83 -0
  339. package/resources/email/ip-pools/ips.d.ts.map +1 -0
  340. package/resources/email/ip-pools/ips.js +54 -0
  341. package/resources/email/ip-pools/ips.js.map +1 -0
  342. package/resources/email/ip-pools/ips.mjs +50 -0
  343. package/resources/email/ip-pools/ips.mjs.map +1 -0
  344. package/resources/email/ip-pools.d.mts +2 -0
  345. package/resources/email/ip-pools.d.mts.map +1 -0
  346. package/resources/email/ip-pools.d.ts +2 -0
  347. package/resources/email/ip-pools.d.ts.map +1 -0
  348. package/resources/email/ip-pools.js +6 -0
  349. package/resources/email/ip-pools.js.map +1 -0
  350. package/resources/email/ip-pools.mjs +3 -0
  351. package/resources/email/ip-pools.mjs.map +1 -0
  352. package/resources/email.d.mts +2 -0
  353. package/resources/email.d.mts.map +1 -0
  354. package/resources/email.d.ts +2 -0
  355. package/resources/email.d.ts.map +1 -0
  356. package/resources/email.js +6 -0
  357. package/resources/email.js.map +1 -0
  358. package/resources/email.mjs +3 -0
  359. package/resources/email.mjs.map +1 -0
  360. package/resources/fax-applications.d.mts +6 -6
  361. package/resources/fax-applications.d.ts +6 -6
  362. package/resources/fqdn-connections/fqdn-connections.d.mts +2 -2
  363. package/resources/fqdn-connections/fqdn-connections.d.ts +2 -2
  364. package/resources/index.d.mts +8 -2
  365. package/resources/index.d.mts.map +1 -1
  366. package/resources/index.d.ts +8 -2
  367. package/resources/index.d.ts.map +1 -1
  368. package/resources/index.js +16 -4
  369. package/resources/index.js.map +1 -1
  370. package/resources/index.mjs +6 -0
  371. package/resources/index.mjs.map +1 -1
  372. package/resources/ip-connections.d.mts +4 -4
  373. package/resources/ip-connections.d.ts +4 -4
  374. package/resources/messaging-profiles/index.d.mts +1 -1
  375. package/resources/messaging-profiles/index.d.mts.map +1 -1
  376. package/resources/messaging-profiles/index.d.ts +1 -1
  377. package/resources/messaging-profiles/index.d.ts.map +1 -1
  378. package/resources/messaging-profiles/index.js.map +1 -1
  379. package/resources/messaging-profiles/index.mjs.map +1 -1
  380. package/resources/messaging-profiles/messaging-profiles.d.mts +26 -1
  381. package/resources/messaging-profiles/messaging-profiles.d.mts.map +1 -1
  382. package/resources/messaging-profiles/messaging-profiles.d.ts +26 -1
  383. package/resources/messaging-profiles/messaging-profiles.d.ts.map +1 -1
  384. package/resources/messaging-profiles/messaging-profiles.js.map +1 -1
  385. package/resources/messaging-profiles/messaging-profiles.mjs.map +1 -1
  386. package/resources/network-routes.d.mts +257 -0
  387. package/resources/network-routes.d.mts.map +1 -0
  388. package/resources/network-routes.d.ts +257 -0
  389. package/resources/network-routes.d.ts.map +1 -0
  390. package/resources/network-routes.js +83 -0
  391. package/resources/network-routes.js.map +1 -0
  392. package/resources/network-routes.mjs +79 -0
  393. package/resources/network-routes.mjs.map +1 -0
  394. package/resources/pay-connectors.d.mts +378 -0
  395. package/resources/pay-connectors.d.mts.map +1 -0
  396. package/resources/pay-connectors.d.ts +378 -0
  397. package/resources/pay-connectors.d.ts.map +1 -0
  398. package/resources/pay-connectors.js +116 -0
  399. package/resources/pay-connectors.js.map +1 -0
  400. package/resources/pay-connectors.mjs +112 -0
  401. package/resources/pay-connectors.mjs.map +1 -0
  402. package/resources/public-internet-gateways.d.mts +0 -8
  403. package/resources/public-internet-gateways.d.mts.map +1 -1
  404. package/resources/public-internet-gateways.d.ts +0 -8
  405. package/resources/public-internet-gateways.d.ts.map +1 -1
  406. package/resources/spend-limits.d.mts +150 -32
  407. package/resources/spend-limits.d.mts.map +1 -1
  408. package/resources/spend-limits.d.ts +150 -32
  409. package/resources/spend-limits.d.ts.map +1 -1
  410. package/resources/spend-limits.js +26 -7
  411. package/resources/spend-limits.js.map +1 -1
  412. package/resources/spend-limits.mjs +26 -7
  413. package/resources/spend-limits.mjs.map +1 -1
  414. package/resources/telephony-credentials.d.mts +48 -2
  415. package/resources/telephony-credentials.d.mts.map +1 -1
  416. package/resources/telephony-credentials.d.ts +48 -2
  417. package/resources/telephony-credentials.d.ts.map +1 -1
  418. package/resources/telephony-credentials.js +46 -2
  419. package/resources/telephony-credentials.js.map +1 -1
  420. package/resources/telephony-credentials.mjs +46 -2
  421. package/resources/telephony-credentials.mjs.map +1 -1
  422. package/resources/texml-applications.d.mts +6 -6
  423. package/resources/texml-applications.d.ts +6 -6
  424. package/resources/text-to-speech/text-to-speech.d.mts +1 -6
  425. package/resources/text-to-speech/text-to-speech.d.mts.map +1 -1
  426. package/resources/text-to-speech/text-to-speech.d.ts +1 -6
  427. package/resources/text-to-speech/text-to-speech.d.ts.map +1 -1
  428. package/resources/text-to-speech/text-to-speech.js +1 -2
  429. package/resources/text-to-speech/text-to-speech.js.map +1 -1
  430. package/resources/text-to-speech/text-to-speech.mjs +1 -2
  431. package/resources/text-to-speech/text-to-speech.mjs.map +1 -1
  432. package/resources/tunnels/actions.d.mts +29 -0
  433. package/resources/tunnels/actions.d.mts.map +1 -0
  434. package/resources/tunnels/actions.d.ts +29 -0
  435. package/resources/tunnels/actions.d.ts.map +1 -0
  436. package/resources/tunnels/actions.js +28 -0
  437. package/resources/tunnels/actions.js.map +1 -0
  438. package/resources/tunnels/actions.mjs +24 -0
  439. package/resources/tunnels/actions.mjs.map +1 -0
  440. package/resources/tunnels/index.d.mts +3 -0
  441. package/resources/tunnels/index.d.mts.map +1 -0
  442. package/resources/tunnels/index.d.ts +3 -0
  443. package/resources/tunnels/index.d.ts.map +1 -0
  444. package/resources/tunnels/index.js +9 -0
  445. package/resources/tunnels/index.js.map +1 -0
  446. package/resources/tunnels/index.mjs +4 -0
  447. package/resources/tunnels/index.mjs.map +1 -0
  448. package/resources/tunnels/tunnels.d.mts +194 -0
  449. package/resources/tunnels/tunnels.d.mts.map +1 -0
  450. package/resources/tunnels/tunnels.d.ts +194 -0
  451. package/resources/tunnels/tunnels.d.ts.map +1 -0
  452. package/resources/tunnels/tunnels.js +82 -0
  453. package/resources/tunnels/tunnels.js.map +1 -0
  454. package/resources/tunnels/tunnels.mjs +77 -0
  455. package/resources/tunnels/tunnels.mjs.map +1 -0
  456. package/resources/tunnels.d.mts +2 -0
  457. package/resources/tunnels.d.mts.map +1 -0
  458. package/resources/tunnels.d.ts +2 -0
  459. package/resources/tunnels.d.ts.map +1 -0
  460. package/resources/tunnels.js +6 -0
  461. package/resources/tunnels.js.map +1 -0
  462. package/resources/tunnels.mjs +3 -0
  463. package/resources/tunnels.mjs.map +1 -0
  464. package/resources/voice-clones.d.mts +54 -8
  465. package/resources/voice-clones.d.mts.map +1 -1
  466. package/resources/voice-clones.d.ts +54 -8
  467. package/resources/voice-clones.d.ts.map +1 -1
  468. package/resources/voice-clones.js +6 -5
  469. package/resources/voice-clones.js.map +1 -1
  470. package/resources/voice-clones.mjs +6 -5
  471. package/resources/voice-clones.mjs.map +1 -1
  472. package/resources/whatsapp/hosted-signups.d.mts +2 -1
  473. package/resources/whatsapp/hosted-signups.d.mts.map +1 -1
  474. package/resources/whatsapp/hosted-signups.d.ts +2 -1
  475. package/resources/whatsapp/hosted-signups.d.ts.map +1 -1
  476. package/resources/wireguard-interfaces.d.mts +0 -8
  477. package/resources/wireguard-interfaces.d.mts.map +1 -1
  478. package/resources/wireguard-interfaces.d.ts +0 -8
  479. package/resources/wireguard-interfaces.d.ts.map +1 -1
  480. package/src/client.ts +130 -0
  481. package/src/lib/login-token.ts +219 -0
  482. package/src/resources/addresses/actions.ts +23 -4
  483. package/src/resources/ai/ai.ts +6 -0
  484. package/src/resources/ai/assistants/assistants.ts +31 -24
  485. package/src/resources/ai/avatars.ts +9 -9
  486. package/src/resources/ai/index.ts +1 -0
  487. package/src/resources/ai/tests/index.ts +5 -0
  488. package/src/resources/ai/tests/schedules/index.ts +4 -0
  489. package/src/resources/ai/tests/schedules/schedules.ts +15 -0
  490. package/src/resources/ai/tests/schedules/v1/cron-jobs.ts +248 -0
  491. package/src/resources/ai/tests/schedules/v1/index.ts +12 -0
  492. package/src/resources/ai/tests/schedules/v1/v1.ts +31 -0
  493. package/src/resources/ai/tests/schedules/v1.ts +3 -0
  494. package/src/resources/ai/tests/schedules.ts +3 -0
  495. package/src/resources/ai/tests/test-framework/index.ts +4 -0
  496. package/src/resources/ai/tests/test-framework/test-framework.ts +15 -0
  497. package/src/resources/ai/tests/test-framework/v1/aiagents.ts +304 -0
  498. package/src/resources/ai/tests/test-framework/v1/index.ts +54 -0
  499. package/src/resources/ai/tests/test-framework/v1/metrics.ts +491 -0
  500. package/src/resources/ai/tests/test-framework/v1/results.ts +304 -0
  501. package/src/resources/ai/tests/test-framework/v1/scenarios.ts +774 -0
  502. package/src/resources/ai/tests/test-framework/v1/v1.ts +214 -0
  503. package/src/resources/ai/tests/test-framework/v1.ts +3 -0
  504. package/src/resources/ai/tests/test-framework.ts +3 -0
  505. package/src/resources/ai/tests/tests.ts +21 -0
  506. package/src/resources/ai/tests.ts +3 -0
  507. package/src/resources/artifact-downloads.ts +39 -0
  508. package/src/resources/bot-challenge.ts +1 -1
  509. package/src/resources/bot-sessions.ts +1 -1
  510. package/src/resources/bot-signup.ts +2 -2
  511. package/src/resources/browser-sessions/actions.ts +778 -0
  512. package/src/resources/browser-sessions/browser-sessions.ts +278 -0
  513. package/src/resources/browser-sessions/index.ts +31 -0
  514. package/src/resources/browser-sessions.ts +3 -0
  515. package/src/resources/call-control-applications.ts +2 -2
  516. package/src/resources/calls/actions.ts +38 -27
  517. package/src/resources/conferences/actions.ts +3 -2
  518. package/src/resources/email/dedicated-ips/actions.ts +87 -0
  519. package/src/resources/email/dedicated-ips/dedicated-ips.ts +563 -0
  520. package/src/resources/email/dedicated-ips/index.ts +13 -0
  521. package/src/resources/email/dedicated-ips.ts +3 -0
  522. package/src/resources/email/email.ts +55 -0
  523. package/src/resources/email/index.ts +22 -0
  524. package/src/resources/email/ip-pools/index.ts +12 -0
  525. package/src/resources/email/ip-pools/ip-pools.ts +247 -0
  526. package/src/resources/email/ip-pools/ips.ts +112 -0
  527. package/src/resources/email/ip-pools.ts +3 -0
  528. package/src/resources/email.ts +3 -0
  529. package/src/resources/fax-applications.ts +6 -6
  530. package/src/resources/fqdn-connections/fqdn-connections.ts +2 -2
  531. package/src/resources/index.ts +46 -0
  532. package/src/resources/ip-connections.ts +4 -4
  533. package/src/resources/messaging-profiles/index.ts +1 -0
  534. package/src/resources/messaging-profiles/messaging-profiles.ts +31 -0
  535. package/src/resources/network-routes.ts +332 -0
  536. package/src/resources/pay-connectors.ts +482 -0
  537. package/src/resources/public-internet-gateways.ts +0 -10
  538. package/src/resources/spend-limits.ts +179 -36
  539. package/src/resources/telephony-credentials.ts +75 -2
  540. package/src/resources/texml-applications.ts +6 -6
  541. package/src/resources/text-to-speech/text-to-speech.ts +1 -7
  542. package/src/resources/tunnels/actions.ts +36 -0
  543. package/src/resources/tunnels/index.ts +13 -0
  544. package/src/resources/tunnels/tunnels.ts +260 -0
  545. package/src/resources/tunnels.ts +3 -0
  546. package/src/resources/voice-clones.ts +88 -8
  547. package/src/resources/whatsapp/hosted-signups.ts +2 -1
  548. package/src/resources/wireguard-interfaces.ts +0 -10
  549. package/src/version.ts +1 -1
  550. package/version.d.mts +1 -1
  551. package/version.d.mts.map +1 -1
  552. package/version.d.ts +1 -1
  553. package/version.d.ts.map +1 -1
  554. package/version.js +1 -1
  555. package/version.js.map +1 -1
  556. package/version.mjs +1 -1
  557. package/version.mjs.map +1 -1
@@ -0,0 +1,219 @@
1
+ /**
2
+ * WebRTC login tokens minted locally, with no request to Telnyx.
3
+ *
4
+ * The token has the same shape as the one
5
+ * `POST /v2/telephony_credentials/{id}/token` returns, so it is used the same
6
+ * way: pass it to the WebRTC SDK as `login_token`. Telnyx verifies it on login.
7
+ * It is the same computation as `TelephonyCredential#to_jwt` in telnyx-ruby.
8
+ *
9
+ * The signing material comes from the credential: `token_material` is in the
10
+ * response of `POST /v2/telephony_credentials` and of
11
+ * `GET /v2/telephony_credentials/{id}/token_material`. It is as sensitive as
12
+ * the SIP password, so keep it on the server; never ship it to a browser.
13
+ *
14
+ * @example
15
+ * const { data: credential } = await client.telephonyCredentials.create({
16
+ * connection_id: '123',
17
+ * include: 'token_material', // the API returns the material only when asked
18
+ * });
19
+ * const loginToken = await client.telephonyCredentials.toJwt(credential); // 1 hour
20
+ * const shortLived = await client.telephonyCredentials.toJwt(credential, { ttl: 600 });
21
+ *
22
+ * To mint later with no request at all, store these with the user the credential
23
+ * belongs to, server side: `id`, `user_id`, `sip_username`, `expires_at` and
24
+ * `token_material`. The token is built from all of them.
25
+ *
26
+ * @example From stored values, without a request at all
27
+ * import { createLoginToken } from 'telnyx/lib/login-token';
28
+ * const loginToken = await createLoginToken({
29
+ * id: '...', user_id: '...', sip_username: 'gencred...', expires_at: '2027-01-01T00:00:00Z',
30
+ * token_material: { kid: 'v1', tel_token: '...', signing_secret: '...' },
31
+ * });
32
+ */
33
+
34
+ import { TelnyxError } from '../core/error';
35
+ import { fromBase64, toBase64 } from '../internal/utils/base64';
36
+ import { decodeUTF8, encodeUTF8 } from '../internal/utils/bytes';
37
+
38
+ /** Token lifetime when `ttl` is not given: one hour. */
39
+ export const LOGIN_TOKEN_DEFAULT_TTL = 3600;
40
+ /** Longest lifetime a login token can have: one day, the same as API-minted tokens. */
41
+ export const LOGIN_TOKEN_MAX_TTL = 86400;
42
+ /** `cty` header of a locally minted token; voice-sdk-proxy selects the verification path by it. */
43
+ export const LOGIN_TOKEN_CONTENT_TYPE = 'telnyx-webrtc;v=1';
44
+
45
+ /**
46
+ * What the API returns as `token_material`. `signing_secret` is base64url
47
+ * (unpadded) bytes of the HS256 key; `tel_token` goes into the token as is.
48
+ */
49
+ export interface TokenMaterial {
50
+ /** Which key the material was derived with (`v1` today). Goes in the JWT header. */
51
+ kid: string;
52
+ /** The SIP credential encrypted for the gateway, the same value `/token` puts in the `tel_token` claim. */
53
+ tel_token: string;
54
+ /** The HS256 key the token is signed with, base64url. */
55
+ signing_secret: string;
56
+ }
57
+
58
+ /** The fields of a telephony credential that a login token is built from. */
59
+ export interface LoginTokenCredential {
60
+ /** The telephony credential `id`. */
61
+ id?: string | undefined;
62
+ /** The credential's `user_id`. */
63
+ user_id?: string | undefined;
64
+ /** The credential's `sip_username`; the token's `identity`. */
65
+ sip_username?: string | undefined;
66
+ /** The credential's `expires_at`, as the API returns it, or null. */
67
+ expires_at?: string | null | undefined;
68
+ /** `kid`, `tel_token`, `signing_secret`; present on a credential from `create`. */
69
+ token_material?: TokenMaterial | undefined;
70
+ }
71
+
72
+ export interface LoginTokenOptions {
73
+ /** Token lifetime in seconds, 1..86400. Default one hour. */
74
+ ttl?: number | undefined;
75
+ /** Signing material to use instead of `credential.token_material`. */
76
+ tokenMaterial?: TokenMaterial | undefined;
77
+ /** The token's issue time; defaults to now. */
78
+ now?: Date | number | undefined;
79
+ }
80
+
81
+ export class TelnyxLoginTokenError extends TelnyxError {
82
+ constructor(message: string) {
83
+ super(message);
84
+ this.name = 'TelnyxLoginTokenError';
85
+ }
86
+ }
87
+
88
+ /**
89
+ * Mints a login token for `credential`, valid from `now` for `ttl` seconds.
90
+ * Pure computation: HMAC-SHA256 over the token with `token_material.signing_secret`.
91
+ */
92
+ export async function createLoginToken(
93
+ credential: LoginTokenCredential,
94
+ options: LoginTokenOptions = {},
95
+ ): Promise<string> {
96
+ const credentialId = required(credential.id, 'id');
97
+ const userId = required(credential.user_id, 'user_id');
98
+ const identity = required(credential.sip_username, 'sip_username');
99
+ const material = normalizeMaterial(options.tokenMaterial ?? credential.token_material);
100
+ const ttl = clampTtl(options.ttl);
101
+ const now = options.now === undefined ? Date.now() : Number(options.now);
102
+ const iat = Math.floor(now / 1000);
103
+
104
+ // Same field order as the Ruby SDK, so the two produce the same bytes.
105
+ const header = { alg: 'HS256', typ: 'JWT', cty: LOGIN_TOKEN_CONTENT_TYPE, kid: material.kid };
106
+ const payload = {
107
+ sub: credentialId,
108
+ user_id: userId,
109
+ identity,
110
+ cred_exp: credential.expires_at ?? null,
111
+ tel_token: material.tel_token,
112
+ iat,
113
+ nbf: iat,
114
+ exp: iat + ttl,
115
+ jti: `${credentialId}-${iat}`,
116
+ };
117
+
118
+ const signingInput = `${base64url(JSON.stringify(header))}.${base64url(JSON.stringify(payload))}`;
119
+ return `${signingInput}.${base64url(await sign(signingInput, material.signing_secret))}`;
120
+ }
121
+
122
+ /**
123
+ * Checks a token minted by `createLoginToken` against `signingSecret` and
124
+ * returns its claims. For tests and debugging: Telnyx does the real
125
+ * verification on login.
126
+ */
127
+ export async function decodeLoginToken(jwt: string, signingSecret: string): Promise<Record<string, unknown>> {
128
+ const [head, body, sig, ...rest] = String(jwt).split('.');
129
+ if (!head || !body || sig === undefined || rest.length) {
130
+ throw new TelnyxLoginTokenError('not a JWT');
131
+ }
132
+ const expected = await sign(`${head}.${body}`, signingSecret);
133
+ const given = fromBase64url(sig);
134
+ if (!bytesEqual(given, expected)) {
135
+ throw new TelnyxLoginTokenError('Signature is invalid and does not match the payload');
136
+ }
137
+ return JSON.parse(decodeUTF8(fromBase64url(body))) as Record<string, unknown>;
138
+ }
139
+
140
+ function required(value: string | null | undefined, name: string): string {
141
+ if (value === undefined || value === null || String(value) === '') {
142
+ throw new TelnyxLoginTokenError(`${name} is required to mint a token`);
143
+ }
144
+ return String(value);
145
+ }
146
+
147
+ function normalizeMaterial(material: TokenMaterial | null | undefined): TokenMaterial {
148
+ if (!material || typeof material !== 'object') {
149
+ throw new TelnyxLoginTokenError('token_material is required to mint a token');
150
+ }
151
+ const out = {} as Record<keyof TokenMaterial, string>;
152
+ for (const field of ['kid', 'tel_token', 'signing_secret'] as const) {
153
+ const value = material[field];
154
+ if (value === undefined || value === null || String(value) === '') {
155
+ throw new TelnyxLoginTokenError(`token_material.${field} is missing`);
156
+ }
157
+ out[field] = String(value);
158
+ }
159
+ return out;
160
+ }
161
+
162
+ function clampTtl(ttl: number | undefined): number {
163
+ const n = ttl === undefined ? LOGIN_TOKEN_DEFAULT_TTL : Math.trunc(Number(ttl));
164
+ if (!Number.isFinite(n)) return LOGIN_TOKEN_DEFAULT_TTL;
165
+ return Math.min(LOGIN_TOKEN_MAX_TTL, Math.max(1, n));
166
+ }
167
+
168
+ function base64url(data: string | Uint8Array): string {
169
+ // Base64 pads with at most two '=': a bounded match keeps this linear on any input.
170
+ return toBase64(data)
171
+ .replace(/\+/g, '-')
172
+ .replace(/\//g, '_')
173
+ .replace(/={1,2}$/, '');
174
+ }
175
+
176
+ function fromBase64url(str: string): Uint8Array {
177
+ const b64 = str.replace(/-/g, '+').replace(/_/g, '/');
178
+ return fromBase64(b64 + '='.repeat((4 - (b64.length % 4)) % 4));
179
+ }
180
+
181
+ function bytesEqual(a: Uint8Array, b: Uint8Array): boolean {
182
+ if (a.length !== b.length) return false;
183
+ let diff = 0;
184
+ for (let i = 0; i < a.length; i++) diff |= a[i]! ^ b[i]!;
185
+ return diff === 0;
186
+ }
187
+
188
+ // HMAC-SHA256 through WebCrypto, which Node, Deno, Bun, browsers and edge runtimes all provide.
189
+ interface SubtleCryptoLike {
190
+ importKey(
191
+ format: string,
192
+ keyData: Uint8Array,
193
+ algorithm: { name: string; hash: string },
194
+ extractable: boolean,
195
+ keyUsages: string[],
196
+ ): Promise<unknown>;
197
+ sign(algorithm: string, key: unknown, data: Uint8Array): Promise<ArrayBuffer>;
198
+ }
199
+
200
+ async function getSubtle(): Promise<SubtleCryptoLike> {
201
+ if (typeof globalThis.crypto !== 'undefined' && globalThis.crypto.subtle) {
202
+ return globalThis.crypto.subtle as unknown as SubtleCryptoLike;
203
+ }
204
+ // Node.js < 19 may need webcrypto from crypto module
205
+ const nodeCrypto = await import('crypto');
206
+ return (nodeCrypto.webcrypto as unknown as { subtle: SubtleCryptoLike }).subtle;
207
+ }
208
+
209
+ async function sign(signingInput: string, signingSecret: string): Promise<Uint8Array> {
210
+ const subtle = await getSubtle();
211
+ const key = await subtle.importKey(
212
+ 'raw',
213
+ fromBase64url(signingSecret),
214
+ { name: 'HMAC', hash: 'SHA-256' },
215
+ false,
216
+ ['sign'],
217
+ );
218
+ return new Uint8Array(await subtle.sign('HMAC', key, encodeUTF8(signingInput)));
219
+ }
@@ -78,10 +78,7 @@ export interface ActionValidateResponse {
78
78
 
79
79
  export namespace ActionValidateResponse {
80
80
  export interface Data {
81
- /**
82
- * Indicates whether an address is valid or invalid.
83
- */
84
- result: 'valid' | 'invalid';
81
+ result: 'valid';
85
82
 
86
83
  /**
87
84
  * Provides normalized address when available.
@@ -107,6 +104,12 @@ export namespace ActionValidateResponse {
107
104
  */
108
105
  administrative_area?: string;
109
106
 
107
+ /**
108
+ * The borough of the address. This field is not used for addresses in the US but
109
+ * is used for some international addresses.
110
+ */
111
+ borough?: string;
112
+
110
113
  /**
111
114
  * The two-character (ISO 3166-1 alpha-2) country code of the address.
112
115
  */
@@ -118,12 +121,28 @@ export namespace ActionValidateResponse {
118
121
  */
119
122
  extended_address?: string;
120
123
 
124
+ /**
125
+ * Latitude of the suggested address, when available.
126
+ */
127
+ latitude?: number | null;
128
+
121
129
  /**
122
130
  * The locality of the address. For US addresses, this corresponds to the city of
123
131
  * the address.
124
132
  */
125
133
  locality?: string;
126
134
 
135
+ /**
136
+ * Longitude of the suggested address, when available.
137
+ */
138
+ longitude?: number | null;
139
+
140
+ /**
141
+ * The neighborhood of the address. This field is not used for addresses in the US
142
+ * but is used for some international addresses.
143
+ */
144
+ neighborhood?: string;
145
+
127
146
  /**
128
147
  * The postal code of the address.
129
148
  */
@@ -193,6 +193,8 @@ import {
193
193
  } from './missions/missions';
194
194
  import * as OpenAIAPI from './openai/openai';
195
195
  import { OpenAI, OpenAICreateResponseParams, OpenAICreateResponseResponse } from './openai/openai';
196
+ import * as TestsAPI from './tests/tests';
197
+ import { Tests } from './tests/tests';
196
198
  import * as TypesafeAPI from './typesafe/typesafe';
197
199
  import { Typesafe } from './typesafe/typesafe';
198
200
  import { APIPromise } from '../../core/api-promise';
@@ -219,6 +221,7 @@ export class AI extends APIResource {
219
221
  typesafe: TypesafeAPI.Typesafe = new TypesafeAPI.Typesafe(this._client);
220
222
  memory: MemoryAPI.Memory = new MemoryAPI.Memory(this._client);
221
223
  avatars: AvatarsAPI.Avatars = new AvatarsAPI.Avatars(this._client);
224
+ tests: TestsAPI.Tests = new TestsAPI.Tests(this._client);
222
225
 
223
226
  /**
224
227
  * Generate a summary of a file's contents.
@@ -674,6 +677,7 @@ AI.Knowledge = Knowledge;
674
677
  AI.Typesafe = Typesafe;
675
678
  AI.Memory = Memory;
676
679
  AI.Avatars = Avatars;
680
+ AI.Tests = Tests;
677
681
 
678
682
  export declare namespace AI {
679
683
  export {
@@ -887,4 +891,6 @@ export declare namespace AI {
887
891
  type AvatarCreateParams as AvatarCreateParams,
888
892
  type AvatarUpdateParams as AvatarUpdateParams,
889
893
  };
894
+
895
+ export { Tests as Tests };
890
896
  }
@@ -3804,9 +3804,10 @@ export interface TranscriptionSettings {
3804
3804
  * auto-detect; set `language` from Speechmatics' Realtime language list
3805
3805
  * (defaults to `en`).
3806
3806
  * - `azure/fast` is a multilingual Azure transcription model.
3807
- * - `assemblyai/universal-3-5-pro` is a multilingual streaming model with
3808
- * configurable turn detection. The legacy alias `assemblyai/universal-streaming`
3809
- * is still accepted and resolves to the same model.
3807
+ * - `assemblyai/universal-3-6-pro` (AssemblyAI Universal-3.6 Pro) is a
3808
+ * multilingual streaming model with configurable turn detection. The legacy
3809
+ * aliases `assemblyai/universal-3-5-pro` and `assemblyai/universal-streaming`
3810
+ * are still accepted and run the same model.
3810
3811
  * - `xai/grok-stt` is a multilingual Grok STT model.
3811
3812
  * - `soniox/stt-rt-v4` and `soniox/stt-rt-v5` are multilingual streaming models
3812
3813
  * with automatic language detection, configurable endpointing, term biasing
@@ -3829,6 +3830,7 @@ export interface TranscriptionSettings {
3829
3830
  | 'speechmatics/standard'
3830
3831
  | 'speechmatics/linden-1'
3831
3832
  | 'azure/fast'
3833
+ | 'assemblyai/universal-3-6-pro'
3832
3834
  | 'assemblyai/universal-3-5-pro'
3833
3835
  | 'assemblyai/universal-streaming'
3834
3836
  | 'xai/grok-stt'
@@ -3861,11 +3863,11 @@ export namespace TranscriptionSettings {
3861
3863
  /**
3862
3864
  * The language booster's model. It must be the same kind of model as
3863
3865
  * `transcription.model`: both streaming (`deepgram/flux`, `deepgram/nova-3`,
3864
- * `deepgram/nova-2`, `assemblyai/universal-3-5-pro` or its legacy alias
3865
- * `assemblyai/universal-streaming`, `xai/grok-stt`, `soniox/stt-rt-v4`,
3866
- * `soniox/stt-rt-v5`, `humain/realtime`, `reson8/turns`) or both non-streaming
3867
- * (`azure/fast`, `nvidia/parakeet-v3`, `omi-health/omi-med-stt-v1`,
3868
- * `cohere/ar-stt`, `distil-whisper/distil-large-v2`,
3866
+ * `deepgram/nova-2`, `assemblyai/universal-3-6-pro` or its legacy aliases
3867
+ * `assemblyai/universal-3-5-pro` and `assemblyai/universal-streaming`,
3868
+ * `xai/grok-stt`, `soniox/stt-rt-v4`, `soniox/stt-rt-v5`, `humain/realtime`,
3869
+ * `reson8/turns`) or both non-streaming (`azure/fast`, `nvidia/parakeet-v3`,
3870
+ * `omi-health/omi-med-stt-v1`, `cohere/ar-stt`, `distil-whisper/distil-large-v2`,
3869
3871
  * `openai/whisper-large-v3-turbo`, `telnyx/basira`). It can be the same model as
3870
3872
  * `transcription.model` on a different `language`.
3871
3873
  */
@@ -3874,6 +3876,7 @@ export namespace TranscriptionSettings {
3874
3876
  | 'deepgram/nova-3'
3875
3877
  | 'deepgram/nova-2'
3876
3878
  | 'azure/fast'
3879
+ | 'assemblyai/universal-3-6-pro'
3877
3880
  | 'assemblyai/universal-3-5-pro'
3878
3881
  | 'assemblyai/universal-streaming'
3879
3882
  | 'xai/grok-stt'
@@ -3936,14 +3939,16 @@ export namespace TranscriptionSettings {
3936
3939
  /**
3937
3940
  * The fallback model. It must be a streaming model other than
3938
3941
  * `transcription.model` and the other fallbacks: `deepgram/flux`,
3939
- * `deepgram/nova-3`, `deepgram/nova-2`, `assemblyai/universal-3-5-pro` (or its
3940
- * legacy alias `assemblyai/universal-streaming`), `xai/grok-stt`,
3941
- * `soniox/stt-rt-v4`, `soniox/stt-rt-v5`, `humain/realtime`, or `reson8/turns`.
3942
+ * `deepgram/nova-3`, `deepgram/nova-2`, `assemblyai/universal-3-6-pro` (or its
3943
+ * legacy aliases `assemblyai/universal-3-5-pro` and
3944
+ * `assemblyai/universal-streaming`), `xai/grok-stt`, `soniox/stt-rt-v4`,
3945
+ * `soniox/stt-rt-v5`, `humain/realtime`, or `reson8/turns`.
3942
3946
  */
3943
3947
  model:
3944
3948
  | 'deepgram/flux'
3945
3949
  | 'deepgram/nova-3'
3946
3950
  | 'deepgram/nova-2'
3951
+ | 'assemblyai/universal-3-6-pro'
3947
3952
  | 'assemblyai/universal-3-5-pro'
3948
3953
  | 'assemblyai/universal-streaming'
3949
3954
  | 'xai/grok-stt'
@@ -4026,9 +4031,9 @@ export interface TranscriptionSettingsConfig {
4026
4031
  * transcription, used by Deepgram, Reson8, Speechmatics Linden 1 and AssemblyAI
4027
4032
  * models. Helps improve accuracy for domain-specific terminology, proper nouns, or
4028
4033
  * uncommon words. At most 1000 characters in total. For
4029
- * assemblyai/universal-3-5-pro (and its legacy alias
4030
- * assemblyai/universal-streaming), also at most 100 terms of up to 50 characters
4031
- * each. This field may be templated with
4034
+ * assemblyai/universal-3-6-pro (and its legacy aliases
4035
+ * assemblyai/universal-3-5-pro and assemblyai/universal-streaming), also at most
4036
+ * 100 terms of up to 50 characters each. This field may be templated with
4032
4037
  * [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)
4033
4038
  * using mustache syntax (e.g. `Telnyx,{{customer_name}},VoIP`). Variables are
4034
4039
  * resolved at call time before the value is sent to the speech-to-text engine.
@@ -4050,26 +4055,28 @@ export interface TranscriptionSettingsConfig {
4050
4055
  max_endpoint_delay_ms?: number;
4051
4056
 
4052
4057
  /**
4053
- * Available only for assemblyai/universal-3-5-pro (and its legacy alias
4054
- * assemblyai/universal-streaming). Maximum duration of silence in milliseconds
4055
- * before forcing an end of turn.
4058
+ * Available only for assemblyai/universal-3-6-pro (and its legacy aliases
4059
+ * assemblyai/universal-3-5-pro and assemblyai/universal-streaming). Maximum
4060
+ * duration of silence in milliseconds before forcing an end of turn.
4056
4061
  */
4057
4062
  max_turn_silence?: number;
4058
4063
 
4059
4064
  /**
4060
- * Available only for assemblyai/universal-3-5-pro (and its legacy alias
4061
- * assemblyai/universal-streaming). Minimum duration of silence in milliseconds
4062
- * before a turn can end. Must be less than or equal to max_turn_silence.
4065
+ * Available only for assemblyai/universal-3-6-pro (and its legacy aliases
4066
+ * assemblyai/universal-3-5-pro and assemblyai/universal-streaming). Minimum
4067
+ * duration of silence in milliseconds before a turn can end. Must be less than or
4068
+ * equal to max_turn_silence.
4063
4069
  */
4064
4070
  min_turn_silence?: number;
4065
4071
 
4066
4072
  numerals?: boolean;
4067
4073
 
4068
4074
  /**
4069
- * Available only for assemblyai/universal-3-5-pro (and its legacy alias
4070
- * assemblyai/universal-streaming). Context about the conversation (domain, names,
4071
- * terms) to improve transcription; describe the content, do not give instructions.
4072
- * Leave empty unless needed. At most 1750 characters.
4075
+ * Available only for assemblyai/universal-3-6-pro (and its legacy aliases
4076
+ * assemblyai/universal-3-5-pro and assemblyai/universal-streaming). Context about
4077
+ * the conversation (domain, names, terms) to improve transcription; describe the
4078
+ * content, do not give instructions. Leave empty unless needed. At most 1750
4079
+ * characters.
4073
4080
  */
4074
4081
  prompt?: string;
4075
4082
 
@@ -44,15 +44,15 @@ export class Avatars extends APIResource {
44
44
  * is stored independently from the rendering model and background, which are
45
45
  * selected where the avatar is consumed. Supported image types are JPEG, PNG, and
46
46
  * WebP. Images may be up to 10 MiB, must be between 256 and 8192 pixels on each
47
- * side, and may contain at most 40 megapixels. Each organization may have up to 20
48
- * custom avatars. For best results, use a 16:9 landscape image, preferably 1920 by
49
- * 1080 pixels and at least 1280 by 720 pixels. Show one centered, front-facing
50
- * person from the shoulders up, keep the full head and hair visible with space
51
- * around it, and use a sharp, evenly lit image with unobstructed eyes and mouth.
52
- * Use a transparent PNG or WebP when the avatar will be combined with a selectable
53
- * background. These composition recommendations are not enforced in the first
54
- * release; the first release does not validate the number of faces, pose, or image
55
- * content.
47
+ * side, and may contain at most 40 megapixels. A per-organization custom-avatar
48
+ * quota applies; the create request returns an error when the quota is reached.
49
+ * For best results, use a 16:9 landscape image, preferably 1920 by 1080 pixels and
50
+ * at least 1280 by 720 pixels. Show one centered, front-facing person from the
51
+ * shoulders up, keep the full head and hair visible with space around it, and use
52
+ * a sharp, evenly lit image with unobstructed eyes and mouth. Use a transparent
53
+ * PNG or WebP when the avatar will be combined with a selectable background. These
54
+ * composition recommendations are not enforced in the first release; the first
55
+ * release does not validate the number of faces, pose, or image content.
56
56
  *
57
57
  * @example
58
58
  * ```ts
@@ -174,6 +174,7 @@ export {
174
174
  type MissionDataDefaultFlatPagination,
175
175
  } from './missions/index';
176
176
  export { OpenAI, type OpenAICreateResponseResponse, type OpenAICreateResponseParams } from './openai/index';
177
+ export { Tests } from './tests/index';
177
178
  export {
178
179
  Tools,
179
180
  type PayToolParams,
@@ -0,0 +1,5 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export { Schedules } from './schedules/index';
4
+ export { TestFramework } from './test-framework/index';
5
+ export { Tests } from './tests';
@@ -0,0 +1,4 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export { Schedules } from './schedules';
4
+ export { V1 } from './v1/index';
@@ -0,0 +1,15 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../../../core/resource';
4
+ import * as V1API from './v1/v1';
5
+ import { V1 } from './v1/v1';
6
+
7
+ export class Schedules extends APIResource {
8
+ v1: V1API.V1 = new V1API.V1(this._client);
9
+ }
10
+
11
+ Schedules.V1 = V1;
12
+
13
+ export declare namespace Schedules {
14
+ export { V1 as V1 };
15
+ }