@linqapp/sdk 0.1.0-alpha.1

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 (433) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/LICENSE +7 -0
  3. package/README.md +393 -0
  4. package/api-promise.d.mts +2 -0
  5. package/api-promise.d.mts.map +1 -0
  6. package/api-promise.d.ts +2 -0
  7. package/api-promise.d.ts.map +1 -0
  8. package/api-promise.js +6 -0
  9. package/api-promise.js.map +1 -0
  10. package/api-promise.mjs +2 -0
  11. package/api-promise.mjs.map +1 -0
  12. package/client.d.mts +193 -0
  13. package/client.d.mts.map +1 -0
  14. package/client.d.ts +193 -0
  15. package/client.d.ts.map +1 -0
  16. package/client.js +479 -0
  17. package/client.js.map +1 -0
  18. package/client.mjs +475 -0
  19. package/client.mjs.map +1 -0
  20. package/core/api-promise.d.mts +46 -0
  21. package/core/api-promise.d.mts.map +1 -0
  22. package/core/api-promise.d.ts +46 -0
  23. package/core/api-promise.d.ts.map +1 -0
  24. package/core/api-promise.js +74 -0
  25. package/core/api-promise.js.map +1 -0
  26. package/core/api-promise.mjs +70 -0
  27. package/core/api-promise.mjs.map +1 -0
  28. package/core/error.d.mts +46 -0
  29. package/core/error.d.mts.map +1 -0
  30. package/core/error.d.ts +46 -0
  31. package/core/error.d.ts.map +1 -0
  32. package/core/error.js +113 -0
  33. package/core/error.js.map +1 -0
  34. package/core/error.mjs +97 -0
  35. package/core/error.mjs.map +1 -0
  36. package/core/resource.d.mts +6 -0
  37. package/core/resource.d.mts.map +1 -0
  38. package/core/resource.d.ts +6 -0
  39. package/core/resource.d.ts.map +1 -0
  40. package/core/resource.js +11 -0
  41. package/core/resource.js.map +1 -0
  42. package/core/resource.mjs +7 -0
  43. package/core/resource.mjs.map +1 -0
  44. package/core/uploads.d.mts +3 -0
  45. package/core/uploads.d.mts.map +1 -0
  46. package/core/uploads.d.ts +3 -0
  47. package/core/uploads.d.ts.map +1 -0
  48. package/core/uploads.js +6 -0
  49. package/core/uploads.js.map +1 -0
  50. package/core/uploads.mjs +2 -0
  51. package/core/uploads.mjs.map +1 -0
  52. package/error.d.mts +2 -0
  53. package/error.d.mts.map +1 -0
  54. package/error.d.ts +2 -0
  55. package/error.d.ts.map +1 -0
  56. package/error.js +6 -0
  57. package/error.js.map +1 -0
  58. package/error.mjs +2 -0
  59. package/error.mjs.map +1 -0
  60. package/index.d.mts +6 -0
  61. package/index.d.mts.map +1 -0
  62. package/index.d.ts +6 -0
  63. package/index.d.ts.map +1 -0
  64. package/index.js +30 -0
  65. package/index.js.map +1 -0
  66. package/index.mjs +7 -0
  67. package/index.mjs.map +1 -0
  68. package/internal/builtin-types.d.mts +73 -0
  69. package/internal/builtin-types.d.mts.map +1 -0
  70. package/internal/builtin-types.d.ts +73 -0
  71. package/internal/builtin-types.d.ts.map +1 -0
  72. package/internal/builtin-types.js +4 -0
  73. package/internal/builtin-types.js.map +1 -0
  74. package/internal/builtin-types.mjs +3 -0
  75. package/internal/builtin-types.mjs.map +1 -0
  76. package/internal/detect-platform.d.mts +15 -0
  77. package/internal/detect-platform.d.mts.map +1 -0
  78. package/internal/detect-platform.d.ts +15 -0
  79. package/internal/detect-platform.d.ts.map +1 -0
  80. package/internal/detect-platform.js +162 -0
  81. package/internal/detect-platform.js.map +1 -0
  82. package/internal/detect-platform.mjs +157 -0
  83. package/internal/detect-platform.mjs.map +1 -0
  84. package/internal/errors.d.mts +3 -0
  85. package/internal/errors.d.mts.map +1 -0
  86. package/internal/errors.d.ts +3 -0
  87. package/internal/errors.d.ts.map +1 -0
  88. package/internal/errors.js +41 -0
  89. package/internal/errors.js.map +1 -0
  90. package/internal/errors.mjs +36 -0
  91. package/internal/errors.mjs.map +1 -0
  92. package/internal/headers.d.mts +20 -0
  93. package/internal/headers.d.mts.map +1 -0
  94. package/internal/headers.d.ts +20 -0
  95. package/internal/headers.d.ts.map +1 -0
  96. package/internal/headers.js +79 -0
  97. package/internal/headers.js.map +1 -0
  98. package/internal/headers.mjs +74 -0
  99. package/internal/headers.mjs.map +1 -0
  100. package/internal/parse.d.mts +12 -0
  101. package/internal/parse.d.mts.map +1 -0
  102. package/internal/parse.d.ts +12 -0
  103. package/internal/parse.d.ts.map +1 -0
  104. package/internal/parse.js +40 -0
  105. package/internal/parse.js.map +1 -0
  106. package/internal/parse.mjs +37 -0
  107. package/internal/parse.mjs.map +1 -0
  108. package/internal/request-options.d.mts +75 -0
  109. package/internal/request-options.d.mts.map +1 -0
  110. package/internal/request-options.d.ts +75 -0
  111. package/internal/request-options.d.ts.map +1 -0
  112. package/internal/request-options.js +14 -0
  113. package/internal/request-options.js.map +1 -0
  114. package/internal/request-options.mjs +10 -0
  115. package/internal/request-options.mjs.map +1 -0
  116. package/internal/shim-types.d.mts +17 -0
  117. package/internal/shim-types.d.mts.map +1 -0
  118. package/internal/shim-types.d.ts +17 -0
  119. package/internal/shim-types.d.ts.map +1 -0
  120. package/internal/shim-types.js +4 -0
  121. package/internal/shim-types.js.map +1 -0
  122. package/internal/shim-types.mjs +3 -0
  123. package/internal/shim-types.mjs.map +1 -0
  124. package/internal/shims.d.mts +20 -0
  125. package/internal/shims.d.mts.map +1 -0
  126. package/internal/shims.d.ts +20 -0
  127. package/internal/shims.d.ts.map +1 -0
  128. package/internal/shims.js +92 -0
  129. package/internal/shims.js.map +1 -0
  130. package/internal/shims.mjs +85 -0
  131. package/internal/shims.mjs.map +1 -0
  132. package/internal/to-file.d.mts +45 -0
  133. package/internal/to-file.d.mts.map +1 -0
  134. package/internal/to-file.d.ts +45 -0
  135. package/internal/to-file.d.ts.map +1 -0
  136. package/internal/to-file.js +91 -0
  137. package/internal/to-file.js.map +1 -0
  138. package/internal/to-file.mjs +88 -0
  139. package/internal/to-file.mjs.map +1 -0
  140. package/internal/tslib.js +81 -0
  141. package/internal/tslib.mjs +17 -0
  142. package/internal/types.d.mts +69 -0
  143. package/internal/types.d.mts.map +1 -0
  144. package/internal/types.d.ts +69 -0
  145. package/internal/types.d.ts.map +1 -0
  146. package/internal/types.js +4 -0
  147. package/internal/types.js.map +1 -0
  148. package/internal/types.mjs +3 -0
  149. package/internal/types.mjs.map +1 -0
  150. package/internal/uploads.d.mts +42 -0
  151. package/internal/uploads.d.mts.map +1 -0
  152. package/internal/uploads.d.ts +42 -0
  153. package/internal/uploads.d.ts.map +1 -0
  154. package/internal/uploads.js +141 -0
  155. package/internal/uploads.js.map +1 -0
  156. package/internal/uploads.mjs +131 -0
  157. package/internal/uploads.mjs.map +1 -0
  158. package/internal/utils/base64.d.mts +3 -0
  159. package/internal/utils/base64.d.mts.map +1 -0
  160. package/internal/utils/base64.d.ts +3 -0
  161. package/internal/utils/base64.d.ts.map +1 -0
  162. package/internal/utils/base64.js +38 -0
  163. package/internal/utils/base64.js.map +1 -0
  164. package/internal/utils/base64.mjs +33 -0
  165. package/internal/utils/base64.mjs.map +1 -0
  166. package/internal/utils/bytes.d.mts +4 -0
  167. package/internal/utils/bytes.d.mts.map +1 -0
  168. package/internal/utils/bytes.d.ts +4 -0
  169. package/internal/utils/bytes.d.ts.map +1 -0
  170. package/internal/utils/bytes.js +31 -0
  171. package/internal/utils/bytes.js.map +1 -0
  172. package/internal/utils/bytes.mjs +26 -0
  173. package/internal/utils/bytes.mjs.map +1 -0
  174. package/internal/utils/env.d.mts +9 -0
  175. package/internal/utils/env.d.mts.map +1 -0
  176. package/internal/utils/env.d.ts +9 -0
  177. package/internal/utils/env.d.ts.map +1 -0
  178. package/internal/utils/env.js +22 -0
  179. package/internal/utils/env.js.map +1 -0
  180. package/internal/utils/env.mjs +18 -0
  181. package/internal/utils/env.mjs.map +1 -0
  182. package/internal/utils/log.d.mts +37 -0
  183. package/internal/utils/log.d.mts.map +1 -0
  184. package/internal/utils/log.d.ts +37 -0
  185. package/internal/utils/log.d.ts.map +1 -0
  186. package/internal/utils/log.js +85 -0
  187. package/internal/utils/log.js.map +1 -0
  188. package/internal/utils/log.mjs +79 -0
  189. package/internal/utils/log.mjs.map +1 -0
  190. package/internal/utils/path.d.mts +15 -0
  191. package/internal/utils/path.d.mts.map +1 -0
  192. package/internal/utils/path.d.ts +15 -0
  193. package/internal/utils/path.d.ts.map +1 -0
  194. package/internal/utils/path.js +79 -0
  195. package/internal/utils/path.js.map +1 -0
  196. package/internal/utils/path.mjs +74 -0
  197. package/internal/utils/path.mjs.map +1 -0
  198. package/internal/utils/sleep.d.mts +2 -0
  199. package/internal/utils/sleep.d.mts.map +1 -0
  200. package/internal/utils/sleep.d.ts +2 -0
  201. package/internal/utils/sleep.d.ts.map +1 -0
  202. package/internal/utils/sleep.js +7 -0
  203. package/internal/utils/sleep.js.map +1 -0
  204. package/internal/utils/sleep.mjs +3 -0
  205. package/internal/utils/sleep.mjs.map +1 -0
  206. package/internal/utils/uuid.d.mts +5 -0
  207. package/internal/utils/uuid.d.mts.map +1 -0
  208. package/internal/utils/uuid.d.ts +5 -0
  209. package/internal/utils/uuid.d.ts.map +1 -0
  210. package/internal/utils/uuid.js +19 -0
  211. package/internal/utils/uuid.js.map +1 -0
  212. package/internal/utils/uuid.mjs +15 -0
  213. package/internal/utils/uuid.mjs.map +1 -0
  214. package/internal/utils/values.d.mts +18 -0
  215. package/internal/utils/values.d.mts.map +1 -0
  216. package/internal/utils/values.d.ts +18 -0
  217. package/internal/utils/values.d.ts.map +1 -0
  218. package/internal/utils/values.js +112 -0
  219. package/internal/utils/values.js.map +1 -0
  220. package/internal/utils/values.mjs +94 -0
  221. package/internal/utils/values.mjs.map +1 -0
  222. package/internal/utils.d.mts +7 -0
  223. package/internal/utils.d.mts.map +1 -0
  224. package/internal/utils.d.ts +7 -0
  225. package/internal/utils.d.ts.map +1 -0
  226. package/internal/utils.js +11 -0
  227. package/internal/utils.js.map +1 -0
  228. package/internal/utils.mjs +8 -0
  229. package/internal/utils.mjs.map +1 -0
  230. package/package.json +137 -0
  231. package/resource.d.mts +2 -0
  232. package/resource.d.mts.map +1 -0
  233. package/resource.d.ts +2 -0
  234. package/resource.d.ts.map +1 -0
  235. package/resource.js +6 -0
  236. package/resource.js.map +1 -0
  237. package/resource.mjs +2 -0
  238. package/resource.mjs.map +1 -0
  239. package/resources/attachments.d.mts +215 -0
  240. package/resources/attachments.d.mts.map +1 -0
  241. package/resources/attachments.d.ts +215 -0
  242. package/resources/attachments.d.ts.map +1 -0
  243. package/resources/attachments.js +102 -0
  244. package/resources/attachments.js.map +1 -0
  245. package/resources/attachments.mjs +98 -0
  246. package/resources/attachments.mjs.map +1 -0
  247. package/resources/chats/chats.d.mts +1040 -0
  248. package/resources/chats/chats.d.mts.map +1 -0
  249. package/resources/chats/chats.d.ts +1040 -0
  250. package/resources/chats/chats.d.ts.map +1 -0
  251. package/resources/chats/chats.js +182 -0
  252. package/resources/chats/chats.js.map +1 -0
  253. package/resources/chats/chats.mjs +177 -0
  254. package/resources/chats/chats.mjs.map +1 -0
  255. package/resources/chats/index.d.mts +5 -0
  256. package/resources/chats/index.d.mts.map +1 -0
  257. package/resources/chats/index.d.ts +5 -0
  258. package/resources/chats/index.d.ts.map +1 -0
  259. package/resources/chats/index.js +13 -0
  260. package/resources/chats/index.js.map +1 -0
  261. package/resources/chats/index.mjs +6 -0
  262. package/resources/chats/index.mjs.map +1 -0
  263. package/resources/chats/messages.d.mts +813 -0
  264. package/resources/chats/messages.d.mts.map +1 -0
  265. package/resources/chats/messages.d.ts +813 -0
  266. package/resources/chats/messages.d.ts.map +1 -0
  267. package/resources/chats/messages.js +56 -0
  268. package/resources/chats/messages.js.map +1 -0
  269. package/resources/chats/messages.mjs +52 -0
  270. package/resources/chats/messages.mjs.map +1 -0
  271. package/resources/chats/participants.d.mts +68 -0
  272. package/resources/chats/participants.d.mts.map +1 -0
  273. package/resources/chats/participants.d.ts +68 -0
  274. package/resources/chats/participants.d.ts.map +1 -0
  275. package/resources/chats/participants.js +51 -0
  276. package/resources/chats/participants.js.map +1 -0
  277. package/resources/chats/participants.mjs +47 -0
  278. package/resources/chats/participants.mjs.map +1 -0
  279. package/resources/chats/typing.d.mts +35 -0
  280. package/resources/chats/typing.d.mts.map +1 -0
  281. package/resources/chats/typing.d.ts +35 -0
  282. package/resources/chats/typing.d.ts.map +1 -0
  283. package/resources/chats/typing.js +50 -0
  284. package/resources/chats/typing.js.map +1 -0
  285. package/resources/chats/typing.mjs +46 -0
  286. package/resources/chats/typing.mjs.map +1 -0
  287. package/resources/chats.d.mts +2 -0
  288. package/resources/chats.d.mts.map +1 -0
  289. package/resources/chats.d.ts +2 -0
  290. package/resources/chats.d.ts.map +1 -0
  291. package/resources/chats.js +6 -0
  292. package/resources/chats.js.map +1 -0
  293. package/resources/chats.mjs +3 -0
  294. package/resources/chats.mjs.map +1 -0
  295. package/resources/index.d.mts +6 -0
  296. package/resources/index.d.mts.map +1 -0
  297. package/resources/index.d.ts +6 -0
  298. package/resources/index.d.ts.map +1 -0
  299. package/resources/index.js +15 -0
  300. package/resources/index.js.map +1 -0
  301. package/resources/index.mjs +7 -0
  302. package/resources/index.mjs.map +1 -0
  303. package/resources/messages.d.mts +761 -0
  304. package/resources/messages.d.mts.map +1 -0
  305. package/resources/messages.d.ts +761 -0
  306. package/resources/messages.d.ts.map +1 -0
  307. package/resources/messages.js +90 -0
  308. package/resources/messages.js.map +1 -0
  309. package/resources/messages.mjs +86 -0
  310. package/resources/messages.mjs.map +1 -0
  311. package/resources/phone-numbers.d.mts +58 -0
  312. package/resources/phone-numbers.d.mts.map +1 -0
  313. package/resources/phone-numbers.d.ts +58 -0
  314. package/resources/phone-numbers.d.ts.map +1 -0
  315. package/resources/phone-numbers.js +17 -0
  316. package/resources/phone-numbers.js.map +1 -0
  317. package/resources/phone-numbers.mjs +13 -0
  318. package/resources/phone-numbers.mjs.map +1 -0
  319. package/resources/webhooks/events.d.mts +30 -0
  320. package/resources/webhooks/events.d.mts.map +1 -0
  321. package/resources/webhooks/events.d.ts +30 -0
  322. package/resources/webhooks/events.d.ts.map +1 -0
  323. package/resources/webhooks/events.js +22 -0
  324. package/resources/webhooks/events.js.map +1 -0
  325. package/resources/webhooks/events.mjs +18 -0
  326. package/resources/webhooks/events.mjs.map +1 -0
  327. package/resources/webhooks/index.d.mts +4 -0
  328. package/resources/webhooks/index.d.mts.map +1 -0
  329. package/resources/webhooks/index.d.ts +4 -0
  330. package/resources/webhooks/index.d.ts.map +1 -0
  331. package/resources/webhooks/index.js +11 -0
  332. package/resources/webhooks/index.js.map +1 -0
  333. package/resources/webhooks/index.mjs +5 -0
  334. package/resources/webhooks/index.mjs.map +1 -0
  335. package/resources/webhooks/subscriptions.d.mts +237 -0
  336. package/resources/webhooks/subscriptions.d.mts.map +1 -0
  337. package/resources/webhooks/subscriptions.d.ts +237 -0
  338. package/resources/webhooks/subscriptions.d.ts.map +1 -0
  339. package/resources/webhooks/subscriptions.js +107 -0
  340. package/resources/webhooks/subscriptions.js.map +1 -0
  341. package/resources/webhooks/subscriptions.mjs +103 -0
  342. package/resources/webhooks/subscriptions.mjs.map +1 -0
  343. package/resources/webhooks/webhooks.d.mts +14 -0
  344. package/resources/webhooks/webhooks.d.mts.map +1 -0
  345. package/resources/webhooks/webhooks.d.ts +14 -0
  346. package/resources/webhooks/webhooks.d.ts.map +1 -0
  347. package/resources/webhooks/webhooks.js +21 -0
  348. package/resources/webhooks/webhooks.js.map +1 -0
  349. package/resources/webhooks/webhooks.mjs +16 -0
  350. package/resources/webhooks/webhooks.mjs.map +1 -0
  351. package/resources/webhooks.d.mts +2 -0
  352. package/resources/webhooks.d.mts.map +1 -0
  353. package/resources/webhooks.d.ts +2 -0
  354. package/resources/webhooks.d.ts.map +1 -0
  355. package/resources/webhooks.js +6 -0
  356. package/resources/webhooks.js.map +1 -0
  357. package/resources/webhooks.mjs +3 -0
  358. package/resources/webhooks.mjs.map +1 -0
  359. package/resources.d.mts +2 -0
  360. package/resources.d.mts.map +1 -0
  361. package/resources.d.ts +2 -0
  362. package/resources.d.ts.map +1 -0
  363. package/resources.js +5 -0
  364. package/resources.js.map +1 -0
  365. package/resources.mjs +2 -0
  366. package/resources.mjs.map +1 -0
  367. package/src/api-promise.ts +2 -0
  368. package/src/client.ts +801 -0
  369. package/src/core/README.md +3 -0
  370. package/src/core/api-promise.ts +92 -0
  371. package/src/core/error.ts +130 -0
  372. package/src/core/resource.ts +11 -0
  373. package/src/core/uploads.ts +2 -0
  374. package/src/error.ts +2 -0
  375. package/src/index.ts +22 -0
  376. package/src/internal/README.md +3 -0
  377. package/src/internal/builtin-types.ts +93 -0
  378. package/src/internal/detect-platform.ts +196 -0
  379. package/src/internal/errors.ts +33 -0
  380. package/src/internal/headers.ts +97 -0
  381. package/src/internal/parse.ts +56 -0
  382. package/src/internal/request-options.ts +91 -0
  383. package/src/internal/shim-types.ts +26 -0
  384. package/src/internal/shims.ts +107 -0
  385. package/src/internal/to-file.ts +154 -0
  386. package/src/internal/types.ts +95 -0
  387. package/src/internal/uploads.ts +187 -0
  388. package/src/internal/utils/base64.ts +40 -0
  389. package/src/internal/utils/bytes.ts +32 -0
  390. package/src/internal/utils/env.ts +18 -0
  391. package/src/internal/utils/log.ts +126 -0
  392. package/src/internal/utils/path.ts +88 -0
  393. package/src/internal/utils/sleep.ts +3 -0
  394. package/src/internal/utils/uuid.ts +17 -0
  395. package/src/internal/utils/values.ts +105 -0
  396. package/src/internal/utils.ts +8 -0
  397. package/src/lib/.keep +4 -0
  398. package/src/resource.ts +2 -0
  399. package/src/resources/attachments.ts +344 -0
  400. package/src/resources/chats/chats.ts +1285 -0
  401. package/src/resources/chats/index.ts +29 -0
  402. package/src/resources/chats/messages.ts +968 -0
  403. package/src/resources/chats/participants.ts +98 -0
  404. package/src/resources/chats/typing.ts +50 -0
  405. package/src/resources/chats.ts +3 -0
  406. package/src/resources/index.ts +31 -0
  407. package/src/resources/messages.ts +937 -0
  408. package/src/resources/phone-numbers.ts +72 -0
  409. package/src/resources/webhooks/events.ts +55 -0
  410. package/src/resources/webhooks/index.ts +13 -0
  411. package/src/resources/webhooks/subscriptions.ts +409 -0
  412. package/src/resources/webhooks/webhooks.ts +37 -0
  413. package/src/resources/webhooks.ts +3 -0
  414. package/src/resources.ts +1 -0
  415. package/src/tsconfig.json +11 -0
  416. package/src/uploads.ts +2 -0
  417. package/src/version.ts +1 -0
  418. package/uploads.d.mts +2 -0
  419. package/uploads.d.mts.map +1 -0
  420. package/uploads.d.ts +2 -0
  421. package/uploads.d.ts.map +1 -0
  422. package/uploads.js +6 -0
  423. package/uploads.js.map +1 -0
  424. package/uploads.mjs +2 -0
  425. package/uploads.mjs.map +1 -0
  426. package/version.d.mts +2 -0
  427. package/version.d.mts.map +1 -0
  428. package/version.d.ts +2 -0
  429. package/version.d.ts.map +1 -0
  430. package/version.js +5 -0
  431. package/version.js.map +1 -0
  432. package/version.mjs +2 -0
  433. package/version.mjs.map +1 -0
@@ -0,0 +1,344 @@
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 { RequestOptions } from '../internal/request-options';
6
+ import { path } from '../internal/utils/path';
7
+
8
+ export class Attachments extends APIResource {
9
+ /**
10
+ * **This endpoint is optional.** You can send media by simply providing a URL in
11
+ * your message's media part — no pre-upload required. Use this endpoint only when
12
+ * you want to upload a file ahead of time for reuse or latency optimization.
13
+ *
14
+ * Returns a presigned upload URL and a permanent `attachment_id` you can reference
15
+ * in future messages.
16
+ *
17
+ * ## Step 1: Request an upload URL
18
+ *
19
+ * Call this endpoint with file metadata:
20
+ *
21
+ * ```json
22
+ * POST /v3/attachments
23
+ * {
24
+ * "filename": "photo.jpg",
25
+ * "content_type": "image/jpeg",
26
+ * "size_bytes": 1024000
27
+ * }
28
+ * ```
29
+ *
30
+ * The response includes an `upload_url` (valid for 15 minutes) and a permanent
31
+ * `attachment_id`.
32
+ *
33
+ * ## Step 2: Upload the file
34
+ *
35
+ * Make a PUT request to the `upload_url` with the raw file bytes as the request
36
+ * body.. Include the headers from `required_headers`. The request body is the
37
+ * binary file content — **not** JSON, **not** multipart form data.
38
+ *
39
+ * ```bash
40
+ * curl -X PUT "<upload_url from step 1>" \
41
+ * -H "Content-Type: image/jpeg" \
42
+ * --data-binary @filebytes
43
+ * ```
44
+ *
45
+ * ## Step 3: Send a message with the attachment
46
+ *
47
+ * Reference the `attachment_id` in a media part. The ID never expires — use it in
48
+ * as many messages as you want.
49
+ *
50
+ * ```json
51
+ * POST /v3/messages
52
+ * {
53
+ * "to": ["+15551234567"],
54
+ * "from": "+15559876543",
55
+ * "parts": [
56
+ * { "type": "media", "attachment_id": "<attachment_id from step 1>" }
57
+ * ]
58
+ * }
59
+ * ```
60
+ *
61
+ * ## When to use this instead of a URL in the media part
62
+ *
63
+ * - Sending the same file to multiple recipients (avoids re-downloading each time)
64
+ * - Large files where you want to separate upload from message send
65
+ * - Latency-sensitive sends where the file should already be stored
66
+ *
67
+ * If you just need to send a file once, skip all of this and pass a `url` directly
68
+ * in the media part instead.
69
+ *
70
+ * **File Size Limit:** 100MB
71
+ *
72
+ * **Unsupported Types:** WebP, SVG, FLAC, OGG, and executable files are explicitly
73
+ * rejected.
74
+ *
75
+ * @example
76
+ * ```ts
77
+ * const attachment = await client.attachments.create({
78
+ * content_type: 'image/jpeg',
79
+ * filename: 'photo.jpg',
80
+ * size_bytes: 1024000,
81
+ * });
82
+ * ```
83
+ */
84
+ create(body: AttachmentCreateParams, options?: RequestOptions): APIPromise<AttachmentCreateResponse> {
85
+ return this._client.post('/v3/attachments', { body, ...options });
86
+ }
87
+
88
+ /**
89
+ * Retrieve metadata for a specific attachment including its status, file
90
+ * information, and URLs for downloading.
91
+ *
92
+ * @example
93
+ * ```ts
94
+ * const attachment = await client.attachments.retrieve(
95
+ * 'abc12345-1234-5678-9abc-def012345678',
96
+ * );
97
+ * ```
98
+ */
99
+ retrieve(attachmentID: string, options?: RequestOptions): APIPromise<AttachmentRetrieveResponse> {
100
+ return this._client.get(path`/v3/attachments/${attachmentID}`, options);
101
+ }
102
+ }
103
+
104
+ export interface AttachmentCreateResponse {
105
+ /**
106
+ * Unique identifier for the attachment (for status checks via GET
107
+ * /v3/attachments/{id})
108
+ */
109
+ attachment_id: string;
110
+
111
+ /**
112
+ * Permanent CDN URL for the file. Does not expire. Use the `attachment_id` to
113
+ * reference this file in media parts when sending messages.
114
+ */
115
+ download_url: string;
116
+
117
+ /**
118
+ * When the upload URL expires (15 minutes from now)
119
+ */
120
+ expires_at: string;
121
+
122
+ /**
123
+ * HTTP method to use for upload (always PUT)
124
+ */
125
+ http_method: 'PUT';
126
+
127
+ /**
128
+ * HTTP headers required for the upload request
129
+ */
130
+ required_headers: { [key: string]: string };
131
+
132
+ /**
133
+ * Presigned URL for uploading the file. PUT the raw binary file content to this
134
+ * URL with the `required_headers`. Do not JSON-encode or multipart-wrap the body.
135
+ * Expires after 15 minutes.
136
+ */
137
+ upload_url: string;
138
+ }
139
+
140
+ export interface AttachmentRetrieveResponse {
141
+ /**
142
+ * Unique identifier for the attachment (UUID)
143
+ */
144
+ id: string;
145
+
146
+ /**
147
+ * Supported MIME types for file attachments and media URLs.
148
+ *
149
+ * **Images:** image/jpeg, image/png, image/gif, image/heic, image/heif,
150
+ * image/tiff, image/bmp
151
+ *
152
+ * **Videos:** video/mp4, video/quicktime, video/mpeg, video/3gpp
153
+ *
154
+ * **Audio:** audio/mpeg, audio/mp4, audio/x-m4a, audio/x-caf, audio/wav,
155
+ * audio/aiff, audio/aac, audio/amr
156
+ *
157
+ * **Documents:** application/pdf, text/plain, text/vcard, text/rtf, text/csv,
158
+ * text/html, text/calendar, application/msword,
159
+ * application/vnd.openxmlformats-officedocument.wordprocessingml.document,
160
+ * application/vnd.ms-excel,
161
+ * application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,
162
+ * application/vnd.ms-powerpoint,
163
+ * application/vnd.openxmlformats-officedocument.presentationml.presentation,
164
+ * application/vnd.apple.pages, application/vnd.apple.numbers,
165
+ * application/vnd.apple.keynote, application/epub+zip, application/zip
166
+ *
167
+ * **Unsupported:** WebP, SVG, FLAC, OGG, and executable files are explicitly
168
+ * rejected.
169
+ */
170
+ content_type:
171
+ | 'image/jpeg'
172
+ | 'image/jpg'
173
+ | 'image/png'
174
+ | 'image/gif'
175
+ | 'image/heic'
176
+ | 'image/heif'
177
+ | 'image/tiff'
178
+ | 'image/bmp'
179
+ | 'image/x-ms-bmp'
180
+ | 'video/mp4'
181
+ | 'video/quicktime'
182
+ | 'video/mpeg'
183
+ | 'video/x-m4v'
184
+ | 'video/3gpp'
185
+ | 'audio/mpeg'
186
+ | 'audio/mp3'
187
+ | 'audio/mp4'
188
+ | 'audio/x-m4a'
189
+ | 'audio/m4a'
190
+ | 'audio/x-caf'
191
+ | 'audio/wav'
192
+ | 'audio/x-wav'
193
+ | 'audio/aiff'
194
+ | 'audio/x-aiff'
195
+ | 'audio/aac'
196
+ | 'audio/x-aac'
197
+ | 'audio/amr'
198
+ | 'application/pdf'
199
+ | 'text/plain'
200
+ | 'text/vcard'
201
+ | 'text/x-vcard'
202
+ | 'text/rtf'
203
+ | 'application/rtf'
204
+ | 'text/csv'
205
+ | 'text/html'
206
+ | 'text/calendar'
207
+ | 'application/msword'
208
+ | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
209
+ | 'application/vnd.ms-excel'
210
+ | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
211
+ | 'application/vnd.ms-powerpoint'
212
+ | 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
213
+ | 'application/vnd.apple.pages'
214
+ | 'application/x-iwork-pages-sffpages'
215
+ | 'application/vnd.apple.numbers'
216
+ | 'application/x-iwork-numbers-sffnumbers'
217
+ | 'application/vnd.apple.keynote'
218
+ | 'application/x-iwork-keynote-sffkey'
219
+ | 'application/epub+zip'
220
+ | 'application/zip'
221
+ | 'application/x-zip-compressed';
222
+
223
+ /**
224
+ * When the attachment was created
225
+ */
226
+ created_at: string;
227
+
228
+ /**
229
+ * Original filename of the attachment
230
+ */
231
+ filename: string;
232
+
233
+ /**
234
+ * Size of the attachment in bytes
235
+ */
236
+ size_bytes: number;
237
+
238
+ /**
239
+ * Current upload/processing status
240
+ */
241
+ status: 'pending' | 'complete' | 'failed';
242
+
243
+ /**
244
+ * URL to download the attachment
245
+ */
246
+ download_url?: string;
247
+ }
248
+
249
+ export interface AttachmentCreateParams {
250
+ /**
251
+ * Supported MIME types for file attachments and media URLs.
252
+ *
253
+ * **Images:** image/jpeg, image/png, image/gif, image/heic, image/heif,
254
+ * image/tiff, image/bmp
255
+ *
256
+ * **Videos:** video/mp4, video/quicktime, video/mpeg, video/3gpp
257
+ *
258
+ * **Audio:** audio/mpeg, audio/mp4, audio/x-m4a, audio/x-caf, audio/wav,
259
+ * audio/aiff, audio/aac, audio/amr
260
+ *
261
+ * **Documents:** application/pdf, text/plain, text/vcard, text/rtf, text/csv,
262
+ * text/html, text/calendar, application/msword,
263
+ * application/vnd.openxmlformats-officedocument.wordprocessingml.document,
264
+ * application/vnd.ms-excel,
265
+ * application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,
266
+ * application/vnd.ms-powerpoint,
267
+ * application/vnd.openxmlformats-officedocument.presentationml.presentation,
268
+ * application/vnd.apple.pages, application/vnd.apple.numbers,
269
+ * application/vnd.apple.keynote, application/epub+zip, application/zip
270
+ *
271
+ * **Unsupported:** WebP, SVG, FLAC, OGG, and executable files are explicitly
272
+ * rejected.
273
+ */
274
+ content_type:
275
+ | 'image/jpeg'
276
+ | 'image/jpg'
277
+ | 'image/png'
278
+ | 'image/gif'
279
+ | 'image/heic'
280
+ | 'image/heif'
281
+ | 'image/tiff'
282
+ | 'image/bmp'
283
+ | 'image/x-ms-bmp'
284
+ | 'video/mp4'
285
+ | 'video/quicktime'
286
+ | 'video/mpeg'
287
+ | 'video/x-m4v'
288
+ | 'video/3gpp'
289
+ | 'audio/mpeg'
290
+ | 'audio/mp3'
291
+ | 'audio/mp4'
292
+ | 'audio/x-m4a'
293
+ | 'audio/m4a'
294
+ | 'audio/x-caf'
295
+ | 'audio/wav'
296
+ | 'audio/x-wav'
297
+ | 'audio/aiff'
298
+ | 'audio/x-aiff'
299
+ | 'audio/aac'
300
+ | 'audio/x-aac'
301
+ | 'audio/amr'
302
+ | 'application/pdf'
303
+ | 'text/plain'
304
+ | 'text/vcard'
305
+ | 'text/x-vcard'
306
+ | 'text/rtf'
307
+ | 'application/rtf'
308
+ | 'text/csv'
309
+ | 'text/html'
310
+ | 'text/calendar'
311
+ | 'application/msword'
312
+ | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
313
+ | 'application/vnd.ms-excel'
314
+ | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
315
+ | 'application/vnd.ms-powerpoint'
316
+ | 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
317
+ | 'application/vnd.apple.pages'
318
+ | 'application/x-iwork-pages-sffpages'
319
+ | 'application/vnd.apple.numbers'
320
+ | 'application/x-iwork-numbers-sffnumbers'
321
+ | 'application/vnd.apple.keynote'
322
+ | 'application/x-iwork-keynote-sffkey'
323
+ | 'application/epub+zip'
324
+ | 'application/zip'
325
+ | 'application/x-zip-compressed';
326
+
327
+ /**
328
+ * Name of the file to upload
329
+ */
330
+ filename: string;
331
+
332
+ /**
333
+ * Size of the file in bytes (max 100MB)
334
+ */
335
+ size_bytes: number;
336
+ }
337
+
338
+ export declare namespace Attachments {
339
+ export {
340
+ type AttachmentCreateResponse as AttachmentCreateResponse,
341
+ type AttachmentRetrieveResponse as AttachmentRetrieveResponse,
342
+ type AttachmentCreateParams as AttachmentCreateParams,
343
+ };
344
+ }