@scenario-labs/sdk 3.2.0 → 3.3.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 (530) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/client.d.mts +20 -5
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +20 -5
  5. package/client.d.ts.map +1 -1
  6. package/client.js +9 -0
  7. package/client.js.map +1 -1
  8. package/client.mjs +9 -0
  9. package/client.mjs.map +1 -1
  10. package/core/pagination.d.mts +42 -0
  11. package/core/pagination.d.mts.map +1 -1
  12. package/core/pagination.d.ts +42 -0
  13. package/core/pagination.d.ts.map +1 -1
  14. package/core/pagination.js +79 -1
  15. package/core/pagination.js.map +1 -1
  16. package/core/pagination.mjs +75 -0
  17. package/core/pagination.mjs.map +1 -1
  18. package/internal/utils/values.d.mts +6 -0
  19. package/internal/utils/values.d.mts.map +1 -1
  20. package/internal/utils/values.d.ts +6 -0
  21. package/internal/utils/values.d.ts.map +1 -1
  22. package/internal/utils/values.js +11 -0
  23. package/internal/utils/values.js.map +1 -1
  24. package/internal/utils/values.mjs +10 -0
  25. package/internal/utils/values.mjs.map +1 -1
  26. package/lib/asset.d.mts +1 -1
  27. package/lib/asset.d.ts +1 -1
  28. package/lib/asset.js +1 -1
  29. package/lib/asset.mjs +1 -1
  30. package/lib/generate.js +7 -7
  31. package/lib/generate.js.map +1 -1
  32. package/lib/generate.mjs +7 -7
  33. package/lib/generate.mjs.map +1 -1
  34. package/lib/job.d.mts +1 -1
  35. package/lib/job.d.mts.map +1 -1
  36. package/lib/job.d.ts +1 -1
  37. package/lib/job.d.ts.map +1 -1
  38. package/lib/job.js +5 -6
  39. package/lib/job.js.map +1 -1
  40. package/lib/job.mjs +6 -7
  41. package/lib/job.mjs.map +1 -1
  42. package/lib/models.d.mts.map +1 -1
  43. package/lib/models.d.ts.map +1 -1
  44. package/lib/models.js +7 -5
  45. package/lib/models.js.map +1 -1
  46. package/lib/models.mjs +8 -6
  47. package/lib/models.mjs.map +1 -1
  48. package/lib/query.d.mts +21 -0
  49. package/lib/query.d.mts.map +1 -0
  50. package/lib/query.d.ts +21 -0
  51. package/lib/query.d.ts.map +1 -0
  52. package/lib/query.js +36 -0
  53. package/lib/query.js.map +1 -0
  54. package/lib/query.mjs +33 -0
  55. package/lib/query.mjs.map +1 -0
  56. package/lib/scenario.d.mts +3 -0
  57. package/lib/scenario.d.mts.map +1 -1
  58. package/lib/scenario.d.ts +3 -0
  59. package/lib/scenario.d.ts.map +1 -1
  60. package/lib/scenario.js +6 -0
  61. package/lib/scenario.js.map +1 -1
  62. package/lib/scenario.mjs +6 -0
  63. package/lib/scenario.mjs.map +1 -1
  64. package/lib/scope.d.mts +27 -7
  65. package/lib/scope.d.mts.map +1 -1
  66. package/lib/scope.d.ts +27 -7
  67. package/lib/scope.d.ts.map +1 -1
  68. package/lib/scope.js +40 -7
  69. package/lib/scope.js.map +1 -1
  70. package/lib/scope.mjs +37 -7
  71. package/lib/scope.mjs.map +1 -1
  72. package/lib/upload.d.mts +11 -6
  73. package/lib/upload.d.mts.map +1 -1
  74. package/lib/upload.d.ts +11 -6
  75. package/lib/upload.d.ts.map +1 -1
  76. package/lib/upload.js +6 -7
  77. package/lib/upload.js.map +1 -1
  78. package/lib/upload.mjs +7 -8
  79. package/lib/upload.mjs.map +1 -1
  80. package/lib/workflow.d.mts +4 -2
  81. package/lib/workflow.d.mts.map +1 -1
  82. package/lib/workflow.d.ts +4 -2
  83. package/lib/workflow.d.ts.map +1 -1
  84. package/lib/workflow.js +13 -7
  85. package/lib/workflow.js.map +1 -1
  86. package/lib/workflow.mjs +14 -8
  87. package/lib/workflow.mjs.map +1 -1
  88. package/lib/workflow_converter.d.mts.map +1 -1
  89. package/lib/workflow_converter.d.ts.map +1 -1
  90. package/lib/workflow_converter.js +1 -1
  91. package/lib/workflow_converter.js.map +1 -1
  92. package/lib/workflow_converter.mjs +1 -1
  93. package/lib/workflow_converter.mjs.map +1 -1
  94. package/lib/workflow_validator.d.mts +5 -0
  95. package/lib/workflow_validator.d.mts.map +1 -1
  96. package/lib/workflow_validator.d.ts +5 -0
  97. package/lib/workflow_validator.d.ts.map +1 -1
  98. package/lib/workflow_validator.js +113 -0
  99. package/lib/workflow_validator.js.map +1 -1
  100. package/lib/workflow_validator.mjs +113 -0
  101. package/lib/workflow_validator.mjs.map +1 -1
  102. package/package.json +1 -1
  103. package/resources/assets/assets.d.mts +130 -31
  104. package/resources/assets/assets.d.mts.map +1 -1
  105. package/resources/assets/assets.d.ts +130 -31
  106. package/resources/assets/assets.d.ts.map +1 -1
  107. package/resources/assets/assets.js +34 -11
  108. package/resources/assets/assets.js.map +1 -1
  109. package/resources/assets/assets.mjs +34 -11
  110. package/resources/assets/assets.mjs.map +1 -1
  111. package/resources/assets/download.d.mts +24 -5
  112. package/resources/assets/download.d.mts.map +1 -1
  113. package/resources/assets/download.d.ts +24 -5
  114. package/resources/assets/download.d.ts.map +1 -1
  115. package/resources/assets/download.js +15 -3
  116. package/resources/assets/download.js.map +1 -1
  117. package/resources/assets/download.mjs +15 -3
  118. package/resources/assets/download.mjs.map +1 -1
  119. package/resources/collections/assets.d.mts.map +1 -1
  120. package/resources/collections/assets.d.ts.map +1 -1
  121. package/resources/collections/assets.js +3 -2
  122. package/resources/collections/assets.js.map +1 -1
  123. package/resources/collections/assets.mjs +3 -2
  124. package/resources/collections/assets.mjs.map +1 -1
  125. package/resources/collections/collections.d.mts.map +1 -1
  126. package/resources/collections/collections.d.ts.map +1 -1
  127. package/resources/collections/collections.js +20 -5
  128. package/resources/collections/collections.js.map +1 -1
  129. package/resources/collections/collections.mjs +20 -5
  130. package/resources/collections/collections.mjs.map +1 -1
  131. package/resources/collections/models.d.mts.map +1 -1
  132. package/resources/collections/models.d.ts.map +1 -1
  133. package/resources/collections/models.js +3 -2
  134. package/resources/collections/models.js.map +1 -1
  135. package/resources/collections/models.mjs +3 -2
  136. package/resources/collections/models.mjs.map +1 -1
  137. package/resources/generate.d.mts +1719 -225
  138. package/resources/generate.d.mts.map +1 -1
  139. package/resources/generate.d.ts +1719 -225
  140. package/resources/generate.d.ts.map +1 -1
  141. package/resources/generate.js +65 -8
  142. package/resources/generate.js.map +1 -1
  143. package/resources/generate.mjs +65 -8
  144. package/resources/generate.mjs.map +1 -1
  145. package/resources/index.d.mts +5 -2
  146. package/resources/index.d.mts.map +1 -1
  147. package/resources/index.d.ts +5 -2
  148. package/resources/index.d.ts.map +1 -1
  149. package/resources/index.js +7 -1
  150. package/resources/index.js.map +1 -1
  151. package/resources/index.mjs +3 -0
  152. package/resources/index.mjs.map +1 -1
  153. package/resources/jobs.d.mts +176 -74
  154. package/resources/jobs.d.mts.map +1 -1
  155. package/resources/jobs.d.ts +176 -74
  156. package/resources/jobs.d.ts.map +1 -1
  157. package/resources/jobs.js +16 -4
  158. package/resources/jobs.js.map +1 -1
  159. package/resources/jobs.mjs +16 -4
  160. package/resources/jobs.mjs.map +1 -1
  161. package/resources/models/description.d.mts +2 -2
  162. package/resources/models/description.d.mts.map +1 -1
  163. package/resources/models/description.d.ts +2 -2
  164. package/resources/models/description.d.ts.map +1 -1
  165. package/resources/models/description.js +6 -2
  166. package/resources/models/description.js.map +1 -1
  167. package/resources/models/description.mjs +6 -2
  168. package/resources/models/description.mjs.map +1 -1
  169. package/resources/models/examples.d.mts +120 -48
  170. package/resources/models/examples.d.mts.map +1 -1
  171. package/resources/models/examples.d.ts +120 -48
  172. package/resources/models/examples.d.ts.map +1 -1
  173. package/resources/models/examples.js +6 -2
  174. package/resources/models/examples.js.map +1 -1
  175. package/resources/models/examples.mjs +6 -2
  176. package/resources/models/examples.mjs.map +1 -1
  177. package/resources/models/index.d.mts +3 -0
  178. package/resources/models/index.d.mts.map +1 -1
  179. package/resources/models/index.d.ts +3 -0
  180. package/resources/models/index.d.ts.map +1 -1
  181. package/resources/models/index.js +7 -1
  182. package/resources/models/index.js.map +1 -1
  183. package/resources/models/index.mjs +3 -0
  184. package/resources/models/index.mjs.map +1 -1
  185. package/resources/models/models.d.mts +215 -77
  186. package/resources/models/models.d.mts.map +1 -1
  187. package/resources/models/models.d.ts +215 -77
  188. package/resources/models/models.d.ts.map +1 -1
  189. package/resources/models/models.js +52 -11
  190. package/resources/models/models.js.map +1 -1
  191. package/resources/models/models.mjs +52 -11
  192. package/resources/models/models.mjs.map +1 -1
  193. package/resources/models/presets.d.mts +1016 -0
  194. package/resources/models/presets.d.mts.map +1 -0
  195. package/resources/models/presets.d.ts +1016 -0
  196. package/resources/models/presets.d.ts.map +1 -0
  197. package/resources/models/presets.js +52 -0
  198. package/resources/models/presets.js.map +1 -0
  199. package/resources/models/presets.mjs +48 -0
  200. package/resources/models/presets.mjs.map +1 -0
  201. package/resources/models/prompt-guide.d.mts +64 -0
  202. package/resources/models/prompt-guide.d.mts.map +1 -0
  203. package/resources/models/prompt-guide.d.ts +64 -0
  204. package/resources/models/prompt-guide.d.ts.map +1 -0
  205. package/resources/models/prompt-guide.js +31 -0
  206. package/resources/models/prompt-guide.js.map +1 -0
  207. package/resources/models/prompt-guide.mjs +27 -0
  208. package/resources/models/prompt-guide.mjs.map +1 -0
  209. package/resources/models/scores.d.mts +278 -0
  210. package/resources/models/scores.d.mts.map +1 -0
  211. package/resources/models/scores.d.ts +278 -0
  212. package/resources/models/scores.d.ts.map +1 -0
  213. package/resources/models/scores.js +29 -0
  214. package/resources/models/scores.js.map +1 -0
  215. package/resources/models/scores.mjs +25 -0
  216. package/resources/models/scores.mjs.map +1 -0
  217. package/resources/models/train.d.mts +108 -45
  218. package/resources/models/train.d.mts.map +1 -1
  219. package/resources/models/train.d.ts +108 -45
  220. package/resources/models/train.d.ts.map +1 -1
  221. package/resources/models/train.js +3 -2
  222. package/resources/models/train.js.map +1 -1
  223. package/resources/models/train.mjs +3 -2
  224. package/resources/models/train.mjs.map +1 -1
  225. package/resources/models/training-images.d.mts.map +1 -1
  226. package/resources/models/training-images.d.ts.map +1 -1
  227. package/resources/models/training-images.js +5 -4
  228. package/resources/models/training-images.js.map +1 -1
  229. package/resources/models/training-images.mjs +5 -4
  230. package/resources/models/training-images.mjs.map +1 -1
  231. package/resources/projects/api-keys.d.mts +54 -0
  232. package/resources/projects/api-keys.d.mts.map +1 -0
  233. package/resources/projects/api-keys.d.ts +54 -0
  234. package/resources/projects/api-keys.d.ts.map +1 -0
  235. package/resources/projects/api-keys.js +23 -0
  236. package/resources/projects/api-keys.js.map +1 -0
  237. package/resources/projects/api-keys.mjs +19 -0
  238. package/resources/projects/api-keys.mjs.map +1 -0
  239. package/resources/projects/brief.d.mts +149 -0
  240. package/resources/projects/brief.d.mts.map +1 -0
  241. package/resources/projects/brief.d.ts +149 -0
  242. package/resources/projects/brief.d.ts.map +1 -0
  243. package/resources/projects/brief.js +28 -0
  244. package/resources/projects/brief.js.map +1 -0
  245. package/resources/projects/brief.mjs +24 -0
  246. package/resources/projects/brief.mjs.map +1 -0
  247. package/resources/projects/index.d.mts +9 -0
  248. package/resources/projects/index.d.mts.map +1 -0
  249. package/resources/projects/index.d.ts +9 -0
  250. package/resources/projects/index.d.ts.map +1 -0
  251. package/resources/projects/index.js +21 -0
  252. package/resources/projects/index.js.map +1 -0
  253. package/resources/projects/index.mjs +10 -0
  254. package/resources/projects/index.mjs.map +1 -0
  255. package/resources/projects/instructions.d.mts +102 -0
  256. package/resources/projects/instructions.d.mts.map +1 -0
  257. package/resources/projects/instructions.d.ts +102 -0
  258. package/resources/projects/instructions.d.ts.map +1 -0
  259. package/resources/projects/instructions.js +24 -0
  260. package/resources/projects/instructions.js.map +1 -0
  261. package/resources/projects/instructions.mjs +20 -0
  262. package/resources/projects/instructions.mjs.map +1 -0
  263. package/resources/projects/members.d.mts +788 -0
  264. package/resources/projects/members.d.mts.map +1 -0
  265. package/resources/projects/members.d.ts +788 -0
  266. package/resources/projects/members.d.ts.map +1 -0
  267. package/resources/projects/members.js +30 -0
  268. package/resources/projects/members.js.map +1 -0
  269. package/resources/projects/members.mjs +26 -0
  270. package/resources/projects/members.mjs.map +1 -0
  271. package/resources/projects/memory.d.mts +102 -0
  272. package/resources/projects/memory.d.mts.map +1 -0
  273. package/resources/projects/memory.d.ts +102 -0
  274. package/resources/projects/memory.d.ts.map +1 -0
  275. package/resources/projects/memory.js +24 -0
  276. package/resources/projects/memory.js.map +1 -0
  277. package/resources/projects/memory.mjs +20 -0
  278. package/resources/projects/memory.mjs.map +1 -0
  279. package/resources/projects/projects.d.mts +1129 -0
  280. package/resources/projects/projects.d.mts.map +1 -0
  281. package/resources/projects/projects.d.ts +1129 -0
  282. package/resources/projects/projects.d.ts.map +1 -0
  283. package/resources/projects/projects.js +79 -0
  284. package/resources/projects/projects.js.map +1 -0
  285. package/resources/projects/projects.mjs +74 -0
  286. package/resources/projects/projects.mjs.map +1 -0
  287. package/resources/projects/watermark.d.mts +459 -0
  288. package/resources/projects/watermark.d.mts.map +1 -0
  289. package/resources/projects/watermark.d.ts +459 -0
  290. package/resources/projects/watermark.d.ts.map +1 -0
  291. package/resources/projects/watermark.js +46 -0
  292. package/resources/projects/watermark.js.map +1 -0
  293. package/resources/projects/watermark.mjs +42 -0
  294. package/resources/projects/watermark.mjs.map +1 -0
  295. package/resources/projects/webhook-endpoints/events.d.mts +87 -0
  296. package/resources/projects/webhook-endpoints/events.d.mts.map +1 -0
  297. package/resources/projects/webhook-endpoints/events.d.ts +87 -0
  298. package/resources/projects/webhook-endpoints/events.d.ts.map +1 -0
  299. package/resources/projects/webhook-endpoints/events.js +28 -0
  300. package/resources/projects/webhook-endpoints/events.js.map +1 -0
  301. package/resources/projects/webhook-endpoints/events.mjs +24 -0
  302. package/resources/projects/webhook-endpoints/events.mjs.map +1 -0
  303. package/resources/projects/webhook-endpoints/index.d.mts +3 -0
  304. package/resources/projects/webhook-endpoints/index.d.mts.map +1 -0
  305. package/resources/projects/webhook-endpoints/index.d.ts +3 -0
  306. package/resources/projects/webhook-endpoints/index.d.ts.map +1 -0
  307. package/resources/projects/webhook-endpoints/index.js +9 -0
  308. package/resources/projects/webhook-endpoints/index.js.map +1 -0
  309. package/resources/projects/webhook-endpoints/index.mjs +4 -0
  310. package/resources/projects/webhook-endpoints/index.mjs.map +1 -0
  311. package/resources/projects/webhook-endpoints/webhook-endpoints.d.mts +249 -0
  312. package/resources/projects/webhook-endpoints/webhook-endpoints.d.mts.map +1 -0
  313. package/resources/projects/webhook-endpoints/webhook-endpoints.d.ts +249 -0
  314. package/resources/projects/webhook-endpoints/webhook-endpoints.d.ts.map +1 -0
  315. package/resources/projects/webhook-endpoints/webhook-endpoints.js +44 -0
  316. package/resources/projects/webhook-endpoints/webhook-endpoints.js.map +1 -0
  317. package/resources/projects/webhook-endpoints/webhook-endpoints.mjs +39 -0
  318. package/resources/projects/webhook-endpoints/webhook-endpoints.mjs.map +1 -0
  319. package/resources/projects/webhook-endpoints.d.mts +2 -0
  320. package/resources/projects/webhook-endpoints.d.mts.map +1 -0
  321. package/resources/projects/webhook-endpoints.d.ts +2 -0
  322. package/resources/projects/webhook-endpoints.d.ts.map +1 -0
  323. package/resources/projects/webhook-endpoints.js +6 -0
  324. package/resources/projects/webhook-endpoints.js.map +1 -0
  325. package/resources/projects/webhook-endpoints.mjs +3 -0
  326. package/resources/projects/webhook-endpoints.mjs.map +1 -0
  327. package/resources/projects.d.mts +2 -0
  328. package/resources/projects.d.mts.map +1 -0
  329. package/resources/projects.d.ts +2 -0
  330. package/resources/projects.d.ts.map +1 -0
  331. package/resources/projects.js +6 -0
  332. package/resources/projects.js.map +1 -0
  333. package/resources/projects.mjs +3 -0
  334. package/resources/projects.mjs.map +1 -0
  335. package/resources/recommendations.d.mts +1107 -0
  336. package/resources/recommendations.d.mts.map +1 -0
  337. package/resources/recommendations.d.ts +1107 -0
  338. package/resources/recommendations.d.ts.map +1 -0
  339. package/resources/recommendations.js +17 -0
  340. package/resources/recommendations.js.map +1 -0
  341. package/resources/recommendations.mjs +13 -0
  342. package/resources/recommendations.mjs.map +1 -0
  343. package/resources/search.d.mts.map +1 -1
  344. package/resources/search.d.ts.map +1 -1
  345. package/resources/search.js +4 -3
  346. package/resources/search.js.map +1 -1
  347. package/resources/search.mjs +4 -3
  348. package/resources/search.mjs.map +1 -1
  349. package/resources/tags.d.mts.map +1 -1
  350. package/resources/tags.d.ts.map +1 -1
  351. package/resources/tags.js +5 -1
  352. package/resources/tags.js.map +1 -1
  353. package/resources/tags.mjs +5 -1
  354. package/resources/tags.mjs.map +1 -1
  355. package/resources/teams/brief.d.mts +149 -0
  356. package/resources/teams/brief.d.mts.map +1 -0
  357. package/resources/teams/brief.d.ts +149 -0
  358. package/resources/teams/brief.d.ts.map +1 -0
  359. package/resources/teams/brief.js +28 -0
  360. package/resources/teams/brief.js.map +1 -0
  361. package/resources/teams/brief.mjs +24 -0
  362. package/resources/teams/brief.mjs.map +1 -0
  363. package/resources/teams/index.d.mts +7 -0
  364. package/resources/teams/index.d.mts.map +1 -0
  365. package/resources/teams/index.d.ts +7 -0
  366. package/resources/teams/index.d.ts.map +1 -0
  367. package/resources/teams/index.js +17 -0
  368. package/resources/teams/index.js.map +1 -0
  369. package/resources/teams/index.mjs +8 -0
  370. package/resources/teams/index.mjs.map +1 -0
  371. package/resources/teams/ip-filters.d.mts +115 -0
  372. package/resources/teams/ip-filters.d.mts.map +1 -0
  373. package/resources/teams/ip-filters.d.ts +115 -0
  374. package/resources/teams/ip-filters.d.ts.map +1 -0
  375. package/resources/teams/ip-filters.js +45 -0
  376. package/resources/teams/ip-filters.js.map +1 -0
  377. package/resources/teams/ip-filters.mjs +41 -0
  378. package/resources/teams/ip-filters.mjs.map +1 -0
  379. package/resources/teams/members.d.mts +204 -0
  380. package/resources/teams/members.d.mts.map +1 -0
  381. package/resources/teams/members.d.ts +204 -0
  382. package/resources/teams/members.d.ts.map +1 -0
  383. package/resources/teams/members.js +30 -0
  384. package/resources/teams/members.js.map +1 -0
  385. package/resources/teams/members.mjs +26 -0
  386. package/resources/teams/members.mjs.map +1 -0
  387. package/resources/teams/teams.d.mts +878 -0
  388. package/resources/teams/teams.d.mts.map +1 -0
  389. package/resources/teams/teams.d.ts +878 -0
  390. package/resources/teams/teams.d.ts.map +1 -0
  391. package/resources/teams/teams.js +66 -0
  392. package/resources/teams/teams.js.map +1 -0
  393. package/resources/teams/teams.mjs +61 -0
  394. package/resources/teams/teams.mjs.map +1 -0
  395. package/resources/teams/watermark.d.mts +459 -0
  396. package/resources/teams/watermark.d.mts.map +1 -0
  397. package/resources/teams/watermark.d.ts +459 -0
  398. package/resources/teams/watermark.d.ts.map +1 -0
  399. package/resources/teams/watermark.js +46 -0
  400. package/resources/teams/watermark.js.map +1 -0
  401. package/resources/teams/watermark.mjs +42 -0
  402. package/resources/teams/watermark.mjs.map +1 -0
  403. package/resources/teams/webhook-endpoints/events.d.mts +87 -0
  404. package/resources/teams/webhook-endpoints/events.d.mts.map +1 -0
  405. package/resources/teams/webhook-endpoints/events.d.ts +87 -0
  406. package/resources/teams/webhook-endpoints/events.d.ts.map +1 -0
  407. package/resources/teams/webhook-endpoints/events.js +28 -0
  408. package/resources/teams/webhook-endpoints/events.js.map +1 -0
  409. package/resources/teams/webhook-endpoints/events.mjs +24 -0
  410. package/resources/teams/webhook-endpoints/events.mjs.map +1 -0
  411. package/resources/teams/webhook-endpoints/index.d.mts +3 -0
  412. package/resources/teams/webhook-endpoints/index.d.mts.map +1 -0
  413. package/resources/teams/webhook-endpoints/index.d.ts +3 -0
  414. package/resources/teams/webhook-endpoints/index.d.ts.map +1 -0
  415. package/resources/teams/webhook-endpoints/index.js +9 -0
  416. package/resources/teams/webhook-endpoints/index.js.map +1 -0
  417. package/resources/teams/webhook-endpoints/index.mjs +4 -0
  418. package/resources/teams/webhook-endpoints/index.mjs.map +1 -0
  419. package/resources/teams/webhook-endpoints/webhook-endpoints.d.mts +250 -0
  420. package/resources/teams/webhook-endpoints/webhook-endpoints.d.mts.map +1 -0
  421. package/resources/teams/webhook-endpoints/webhook-endpoints.d.ts +250 -0
  422. package/resources/teams/webhook-endpoints/webhook-endpoints.d.ts.map +1 -0
  423. package/resources/teams/webhook-endpoints/webhook-endpoints.js +45 -0
  424. package/resources/teams/webhook-endpoints/webhook-endpoints.js.map +1 -0
  425. package/resources/teams/webhook-endpoints/webhook-endpoints.mjs +40 -0
  426. package/resources/teams/webhook-endpoints/webhook-endpoints.mjs.map +1 -0
  427. package/resources/teams/webhook-endpoints.d.mts +2 -0
  428. package/resources/teams/webhook-endpoints.d.mts.map +1 -0
  429. package/resources/teams/webhook-endpoints.d.ts +2 -0
  430. package/resources/teams/webhook-endpoints.d.ts.map +1 -0
  431. package/resources/teams/webhook-endpoints.js +6 -0
  432. package/resources/teams/webhook-endpoints.js.map +1 -0
  433. package/resources/teams/webhook-endpoints.mjs +3 -0
  434. package/resources/teams/webhook-endpoints.mjs.map +1 -0
  435. package/resources/teams.d.mts +2 -0
  436. package/resources/teams.d.mts.map +1 -0
  437. package/resources/teams.d.ts +2 -0
  438. package/resources/teams.d.ts.map +1 -0
  439. package/resources/teams.js +6 -0
  440. package/resources/teams.js.map +1 -0
  441. package/resources/teams.mjs +3 -0
  442. package/resources/teams.mjs.map +1 -0
  443. package/resources/uploads.d.mts.map +1 -1
  444. package/resources/uploads.d.ts.map +1 -1
  445. package/resources/uploads.js +15 -3
  446. package/resources/uploads.js.map +1 -1
  447. package/resources/uploads.mjs +15 -3
  448. package/resources/uploads.mjs.map +1 -1
  449. package/resources/usages.d.mts +51 -24
  450. package/resources/usages.d.mts.map +1 -1
  451. package/resources/usages.d.ts +51 -24
  452. package/resources/usages.d.ts.map +1 -1
  453. package/resources/usages.js +2 -1
  454. package/resources/usages.js.map +1 -1
  455. package/resources/usages.mjs +2 -1
  456. package/resources/usages.mjs.map +1 -1
  457. package/resources/workflows.d.mts +1381 -280
  458. package/resources/workflows.d.mts.map +1 -1
  459. package/resources/workflows.d.ts +1381 -280
  460. package/resources/workflows.d.ts.map +1 -1
  461. package/resources/workflows.js +39 -8
  462. package/resources/workflows.js.map +1 -1
  463. package/resources/workflows.mjs +39 -8
  464. package/resources/workflows.mjs.map +1 -1
  465. package/src/client.ts +101 -0
  466. package/src/core/pagination.ts +144 -0
  467. package/src/internal/utils/values.ts +10 -0
  468. package/src/lib/asset.ts +1 -1
  469. package/src/lib/generate.ts +7 -7
  470. package/src/lib/job.ts +9 -7
  471. package/src/lib/models.ts +8 -6
  472. package/src/lib/query.ts +42 -0
  473. package/src/lib/scenario.ts +8 -0
  474. package/src/lib/scope.ts +42 -7
  475. package/src/lib/upload.ts +20 -13
  476. package/src/lib/workflow.ts +21 -8
  477. package/src/lib/workflow_converter.ts +4 -2
  478. package/src/lib/workflow_validator.ts +115 -0
  479. package/src/resources/assets/assets.ts +192 -33
  480. package/src/resources/assets/download.ts +43 -8
  481. package/src/resources/collections/assets.ts +3 -2
  482. package/src/resources/collections/collections.ts +20 -5
  483. package/src/resources/collections/models.ts +3 -2
  484. package/src/resources/generate.ts +2350 -186
  485. package/src/resources/index.ts +34 -0
  486. package/src/resources/jobs.ts +204 -74
  487. package/src/resources/models/description.ts +10 -2
  488. package/src/resources/models/examples.ts +140 -46
  489. package/src/resources/models/index.ts +25 -0
  490. package/src/resources/models/models.ts +326 -88
  491. package/src/resources/models/presets.ts +1335 -0
  492. package/src/resources/models/prompt-guide.ts +102 -0
  493. package/src/resources/models/scores.ts +383 -0
  494. package/src/resources/models/train.ts +121 -46
  495. package/src/resources/models/training-images.ts +5 -4
  496. package/src/resources/projects/api-keys.ts +86 -0
  497. package/src/resources/projects/brief.ts +197 -0
  498. package/src/resources/projects/index.ts +71 -0
  499. package/src/resources/projects/instructions.ts +134 -0
  500. package/src/resources/projects/members.ts +958 -0
  501. package/src/resources/projects/memory.ts +134 -0
  502. package/src/resources/projects/projects.ts +1478 -0
  503. package/src/resources/projects/watermark.ts +590 -0
  504. package/src/resources/projects/webhook-endpoints/events.ts +179 -0
  505. package/src/resources/projects/webhook-endpoints/index.ts +19 -0
  506. package/src/resources/projects/webhook-endpoints/webhook-endpoints.ts +452 -0
  507. package/src/resources/projects/webhook-endpoints.ts +3 -0
  508. package/src/resources/projects.ts +3 -0
  509. package/src/resources/recommendations.ts +1502 -0
  510. package/src/resources/search.ts +4 -3
  511. package/src/resources/tags.ts +5 -1
  512. package/src/resources/teams/brief.ts +193 -0
  513. package/src/resources/teams/index.ts +62 -0
  514. package/src/resources/teams/ip-filters.ts +177 -0
  515. package/src/resources/teams/members.ts +282 -0
  516. package/src/resources/teams/teams.ts +1255 -0
  517. package/src/resources/teams/watermark.ts +590 -0
  518. package/src/resources/teams/webhook-endpoints/events.ts +179 -0
  519. package/src/resources/teams/webhook-endpoints/index.ts +19 -0
  520. package/src/resources/teams/webhook-endpoints/webhook-endpoints.ts +453 -0
  521. package/src/resources/teams/webhook-endpoints.ts +3 -0
  522. package/src/resources/teams.ts +3 -0
  523. package/src/resources/uploads.ts +15 -3
  524. package/src/resources/usages.ts +58 -23
  525. package/src/resources/workflows.ts +1707 -241
  526. package/src/version.ts +1 -1
  527. package/version.d.mts +1 -1
  528. package/version.d.ts +1 -1
  529. package/version.js +1 -1
  530. package/version.mjs +1 -1
@@ -4,6 +4,7 @@ import { APIResource } from '../core/resource';
4
4
  import { APIPromise } from '../core/api-promise';
5
5
  import { RequestOptions } from '../internal/request-options';
6
6
  import { path } from '../internal/utils/path';
7
+ import { omitUndefined } from '../internal/utils/values';
7
8
 
8
9
  export class Generate extends APIResource {
9
10
  /**
@@ -11,7 +12,11 @@ export class Generate extends APIResource {
11
12
  */
12
13
  caption(params: GenerateCaptionParams, options?: RequestOptions): APIPromise<GenerateCaptionResponse> {
13
14
  const { dryRun, projectId, ...body } = params;
14
- return this._client.post('/generate/caption', { query: { dryRun, projectId }, body, ...options });
15
+ return this._client.post('/generate/caption', {
16
+ body,
17
+ ...options,
18
+ query: { dryRun, projectId, ...omitUndefined(options?.query) },
19
+ });
15
20
  }
16
21
 
17
22
  /**
@@ -22,7 +27,11 @@ export class Generate extends APIResource {
22
27
  options?: RequestOptions,
23
28
  ): APIPromise<GenerateDescribeStyleResponse> {
24
29
  const { dryRun, projectId, ...body } = params;
25
- return this._client.post('/generate/describe-style', { query: { dryRun, projectId }, body, ...options });
30
+ return this._client.post('/generate/describe-style', {
31
+ body,
32
+ ...options,
33
+ query: { dryRun, projectId, ...omitUndefined(options?.query) },
34
+ });
26
35
  }
27
36
 
28
37
  /**
@@ -32,9 +41,9 @@ export class Generate extends APIResource {
32
41
  detect(params: GenerateDetectParams, options?: RequestOptions): APIPromise<GenerateDetectResponse> {
33
42
  const { dryRun, originalAssets, projectId, ...body } = params;
34
43
  return this._client.post('/generate/detect', {
35
- query: { dryRun, originalAssets, projectId },
36
44
  body,
37
45
  ...options,
46
+ query: { dryRun, originalAssets, projectId, ...omitUndefined(options?.query) },
38
47
  });
39
48
  }
40
49
 
@@ -44,9 +53,34 @@ export class Generate extends APIResource {
44
53
  embed(params: GenerateEmbedParams, options?: RequestOptions): APIPromise<GenerateEmbedResponse> {
45
54
  const { dryRun, originalAssets, projectId, ...body } = params;
46
55
  return this._client.post('/generate/embed', {
47
- query: { dryRun, originalAssets, projectId },
48
56
  body,
49
57
  ...options,
58
+ query: { dryRun, originalAssets, projectId, ...omitUndefined(options?.query) },
59
+ });
60
+ }
61
+
62
+ /**
63
+ * Check prompts and/or existing assets against the team's enabled IP-detection
64
+ * filters, without generating anything. Advisory only: the call never blocks and
65
+ * nothing is stored. The payload is analyzed as ONE input set, so the answer is a
66
+ * single merged verdict — call the route once per item to know which item trips a
67
+ * filter. Videos are analyzed through their extracted frames; audio and 3d assets
68
+ * are returned in `skippedAssetIds` and are never checked. Available on the
69
+ * Enterprise plan only; a team with no enabled filter gets `evaluatedFilters: 0`
70
+ * and is charged nothing. Billed on the provider tokens the check sends — the
71
+ * prompt plus every analyzed image, once per enabled filter — with a 1 CU minimum,
72
+ * reported under `ipDetection.creativeUnitsCharged` and surfaced in
73
+ * `GET /v1/usages` as `ip-detection`.
74
+ */
75
+ ipDetection(
76
+ params: GenerateIPDetectionParams,
77
+ options?: RequestOptions,
78
+ ): APIPromise<GenerateIPDetectionResponse> {
79
+ const { dryRun, projectId, ...body } = params;
80
+ return this._client.post('/generate/ip-detection', {
81
+ body,
82
+ ...options,
83
+ query: { dryRun, projectId, ...omitUndefined(options?.query) },
50
84
  });
51
85
  }
52
86
 
@@ -55,7 +89,11 @@ export class Generate extends APIResource {
55
89
  */
56
90
  patch(params: GeneratePatchParams, options?: RequestOptions): APIPromise<GeneratePatchResponse> {
57
91
  const { originalAssets, projectId, ...body } = params;
58
- return this._client.post('/generate/patch', { query: { originalAssets, projectId }, body, ...options });
92
+ return this._client.post('/generate/patch', {
93
+ body,
94
+ ...options,
95
+ query: { originalAssets, projectId, ...omitUndefined(options?.query) },
96
+ });
59
97
  }
60
98
 
61
99
  /**
@@ -63,7 +101,30 @@ export class Generate extends APIResource {
63
101
  */
64
102
  prompt(params: GeneratePromptParams, options?: RequestOptions): APIPromise<GeneratePromptResponse> {
65
103
  const { dryRun, projectId, ...body } = params;
66
- return this._client.post('/generate/prompt', { query: { dryRun, projectId }, body, ...options });
104
+ return this._client.post('/generate/prompt', {
105
+ body,
106
+ ...options,
107
+ query: { dryRun, projectId, ...omitUndefined(options?.query) },
108
+ });
109
+ }
110
+
111
+ /**
112
+ * Verify an image against the applicable brand/style/campaign briefs and generic
113
+ * AI-quality checks; returns a combined score, verdict, reasons, and suggested
114
+ * fixes. The verdict is stored on the asset: pass an asset id to re-score it in
115
+ * place (for example after the brief changed), or a data URL to upload the image
116
+ * as an asset (deduplicated on content) and score it.
117
+ */
118
+ qualityGate(
119
+ params: GenerateQualityGateParams,
120
+ options?: RequestOptions,
121
+ ): APIPromise<GenerateQualityGateResponse> {
122
+ const { dryRun, originalAssets, projectId, ...body } = params;
123
+ return this._client.post('/generate/quality-gate', {
124
+ body,
125
+ ...options,
126
+ query: { dryRun, originalAssets, projectId, ...omitUndefined(options?.query) },
127
+ });
67
128
  }
68
129
 
69
130
  /**
@@ -78,9 +139,9 @@ export class Generate extends APIResource {
78
139
  ): APIPromise<GenerateRunModelResponse> {
79
140
  const { body, dryRun, ipDetection, projectId } = params;
80
141
  return this._client.post(path`/generate/custom/${modelID}`, {
81
- query: { dryRun, ipDetection, projectId },
82
142
  body: body,
83
143
  ...options,
144
+ query: { dryRun, ipDetection, projectId, ...omitUndefined(options?.query) },
84
145
  });
85
146
  }
86
147
 
@@ -92,7 +153,11 @@ export class Generate extends APIResource {
92
153
  options?: RequestOptions,
93
154
  ): APIPromise<GenerateTranslateResponse> {
94
155
  const { dryRun, projectId, ...body } = params;
95
- return this._client.post('/generate/translate', { query: { dryRun, projectId }, body, ...options });
156
+ return this._client.post('/generate/translate', {
157
+ body,
158
+ ...options,
159
+ query: { dryRun, projectId, ...omitUndefined(options?.query) },
160
+ });
96
161
  }
97
162
  }
98
163
 
@@ -321,6 +386,7 @@ export namespace GenerateCaptionResponse {
321
386
  | 'remove-background'
322
387
  | 'transform'
323
388
  | 'user-approval'
389
+ | 'user-selection'
324
390
  | 'workflow';
325
391
 
326
392
  /**
@@ -351,14 +417,15 @@ export namespace GenerateCaptionResponse {
351
417
  includeOutputsInWorkflowJob?: true;
352
418
 
353
419
  /**
354
- * The inputs of the node.
420
+ * The inputs of the node. For a user-selection node, the array input's `min`/`max`
421
+ * bound how many items the user may pick (defaults: 1 and 100); conditional
422
+ * connections may be present as additional inputs.
355
423
  */
356
424
  inputs?: Array<Flow.Input>;
357
425
 
358
426
  /**
359
- * Statically-configured items for a List node. The node outputs this array as-is
360
- * when executed. Only available for List nodes. The values can be strings,
361
- * numbers, or asset IDs.
427
+ * Statically-configured items for a List node, or the frozen candidate list of a
428
+ * UserSelection node. The values can be strings, numbers, or asset IDs.
362
429
  */
363
430
  items?: Array<string>;
364
431
 
@@ -638,8 +705,7 @@ export namespace GenerateCaptionResponse {
638
705
  * - \`ifNotDefined\`: Input is required when another specified input is not
639
706
  * defined
640
707
  * - \`ifDefined\`: Input is required when another specified input is defined
641
- * - \`conditionalValues\`: Input is required when another input has a specific
642
- * value
708
+ * - \`conditional\`: Input is required when other inputs have specific values
643
709
  *
644
710
  * By default, the input is not required.
645
711
  */
@@ -869,8 +935,7 @@ export namespace GenerateCaptionResponse {
869
935
  * - \`ifNotDefined\`: Input is required when another specified input is not
870
936
  * defined
871
937
  * - \`ifDefined\`: Input is required when another specified input is defined
872
- * - \`conditionalValues\`: Input is required when another input has a specific
873
- * value
938
+ * - \`conditional\`: Input is required when other inputs have specific values
874
939
  *
875
940
  * By default, the input is not required.
876
941
  */
@@ -927,8 +992,7 @@ export namespace GenerateCaptionResponse {
927
992
  * - \`ifNotDefined\`: Input is required when another specified input is not
928
993
  * defined
929
994
  * - \`ifDefined\`: Input is required when another specified input is defined
930
- * - \`conditionalValues\`: Input is required when another input has a specific
931
- * value
995
+ * - \`conditional\`: Input is required when other inputs have specific values
932
996
  *
933
997
  * By default, the input is not required.
934
998
  */
@@ -939,12 +1003,9 @@ export namespace GenerateCaptionResponse {
939
1003
  always?: boolean;
940
1004
 
941
1005
  /**
942
- * Makes this input required when another input has a specific value:
943
- *
944
- * - Key: name of the input to check
945
- * - Value: operation and allowed values that trigger the requirement
1006
+ * Makes this input required when other inputs have one of the listed values
946
1007
  */
947
- conditionalValues?: unknown;
1008
+ conditional?: Required.Conditional;
948
1009
 
949
1010
  /**
950
1011
  * Makes this input required when another input is defined:
@@ -962,6 +1023,26 @@ export namespace GenerateCaptionResponse {
962
1023
  */
963
1024
  ifNotDefined?: unknown;
964
1025
  }
1026
+
1027
+ export namespace Required {
1028
+ /**
1029
+ * Makes this input required when other inputs have one of the listed values
1030
+ */
1031
+ export interface Conditional {
1032
+ /**
1033
+ * The conditions to check:
1034
+ *
1035
+ * - Key: name of the input to check
1036
+ * - Value: values of that input that satisfy the condition
1037
+ */
1038
+ values: unknown;
1039
+
1040
+ /**
1041
+ * How the conditions combine: \`and\` (all must match) or \`or\` (any must match)
1042
+ */
1043
+ operator?: 'and' | 'or';
1044
+ }
1045
+ }
965
1046
  }
966
1047
 
967
1048
  /**
@@ -1002,8 +1083,7 @@ export namespace GenerateCaptionResponse {
1002
1083
  * - \`ifNotDefined\`: Input is required when another specified input is not
1003
1084
  * defined
1004
1085
  * - \`ifDefined\`: Input is required when another specified input is defined
1005
- * - \`conditionalValues\`: Input is required when another input has a specific
1006
- * value
1086
+ * - \`conditional\`: Input is required when other inputs have specific values
1007
1087
  *
1008
1088
  * By default, the input is not required.
1009
1089
  */
@@ -1014,12 +1094,9 @@ export namespace GenerateCaptionResponse {
1014
1094
  always?: boolean;
1015
1095
 
1016
1096
  /**
1017
- * Makes this input required when another input has a specific value:
1018
- *
1019
- * - Key: name of the input to check
1020
- * - Value: operation and allowed values that trigger the requirement
1097
+ * Makes this input required when other inputs have one of the listed values
1021
1098
  */
1022
- conditionalValues?: unknown;
1099
+ conditional?: Required.Conditional;
1023
1100
 
1024
1101
  /**
1025
1102
  * Makes this input required when another input is defined:
@@ -1037,6 +1114,26 @@ export namespace GenerateCaptionResponse {
1037
1114
  */
1038
1115
  ifNotDefined?: unknown;
1039
1116
  }
1117
+
1118
+ export namespace Required {
1119
+ /**
1120
+ * Makes this input required when other inputs have one of the listed values
1121
+ */
1122
+ export interface Conditional {
1123
+ /**
1124
+ * The conditions to check:
1125
+ *
1126
+ * - Key: name of the input to check
1127
+ * - Value: values of that input that satisfy the condition
1128
+ */
1129
+ values: unknown;
1130
+
1131
+ /**
1132
+ * How the conditions combine: \`and\` (all must match) or \`or\` (any must match)
1133
+ */
1134
+ operator?: 'and' | 'or';
1135
+ }
1136
+ }
1040
1137
  }
1041
1138
 
1042
1139
  /**
@@ -1513,6 +1610,7 @@ export namespace GenerateDescribeStyleResponse {
1513
1610
  | 'remove-background'
1514
1611
  | 'transform'
1515
1612
  | 'user-approval'
1613
+ | 'user-selection'
1516
1614
  | 'workflow';
1517
1615
 
1518
1616
  /**
@@ -1543,14 +1641,15 @@ export namespace GenerateDescribeStyleResponse {
1543
1641
  includeOutputsInWorkflowJob?: true;
1544
1642
 
1545
1643
  /**
1546
- * The inputs of the node.
1644
+ * The inputs of the node. For a user-selection node, the array input's `min`/`max`
1645
+ * bound how many items the user may pick (defaults: 1 and 100); conditional
1646
+ * connections may be present as additional inputs.
1547
1647
  */
1548
1648
  inputs?: Array<Flow.Input>;
1549
1649
 
1550
1650
  /**
1551
- * Statically-configured items for a List node. The node outputs this array as-is
1552
- * when executed. Only available for List nodes. The values can be strings,
1553
- * numbers, or asset IDs.
1651
+ * Statically-configured items for a List node, or the frozen candidate list of a
1652
+ * UserSelection node. The values can be strings, numbers, or asset IDs.
1554
1653
  */
1555
1654
  items?: Array<string>;
1556
1655
 
@@ -1830,8 +1929,7 @@ export namespace GenerateDescribeStyleResponse {
1830
1929
  * - \`ifNotDefined\`: Input is required when another specified input is not
1831
1930
  * defined
1832
1931
  * - \`ifDefined\`: Input is required when another specified input is defined
1833
- * - \`conditionalValues\`: Input is required when another input has a specific
1834
- * value
1932
+ * - \`conditional\`: Input is required when other inputs have specific values
1835
1933
  *
1836
1934
  * By default, the input is not required.
1837
1935
  */
@@ -2061,8 +2159,7 @@ export namespace GenerateDescribeStyleResponse {
2061
2159
  * - \`ifNotDefined\`: Input is required when another specified input is not
2062
2160
  * defined
2063
2161
  * - \`ifDefined\`: Input is required when another specified input is defined
2064
- * - \`conditionalValues\`: Input is required when another input has a specific
2065
- * value
2162
+ * - \`conditional\`: Input is required when other inputs have specific values
2066
2163
  *
2067
2164
  * By default, the input is not required.
2068
2165
  */
@@ -2119,8 +2216,7 @@ export namespace GenerateDescribeStyleResponse {
2119
2216
  * - \`ifNotDefined\`: Input is required when another specified input is not
2120
2217
  * defined
2121
2218
  * - \`ifDefined\`: Input is required when another specified input is defined
2122
- * - \`conditionalValues\`: Input is required when another input has a specific
2123
- * value
2219
+ * - \`conditional\`: Input is required when other inputs have specific values
2124
2220
  *
2125
2221
  * By default, the input is not required.
2126
2222
  */
@@ -2131,12 +2227,9 @@ export namespace GenerateDescribeStyleResponse {
2131
2227
  always?: boolean;
2132
2228
 
2133
2229
  /**
2134
- * Makes this input required when another input has a specific value:
2135
- *
2136
- * - Key: name of the input to check
2137
- * - Value: operation and allowed values that trigger the requirement
2230
+ * Makes this input required when other inputs have one of the listed values
2138
2231
  */
2139
- conditionalValues?: unknown;
2232
+ conditional?: Required.Conditional;
2140
2233
 
2141
2234
  /**
2142
2235
  * Makes this input required when another input is defined:
@@ -2154,6 +2247,26 @@ export namespace GenerateDescribeStyleResponse {
2154
2247
  */
2155
2248
  ifNotDefined?: unknown;
2156
2249
  }
2250
+
2251
+ export namespace Required {
2252
+ /**
2253
+ * Makes this input required when other inputs have one of the listed values
2254
+ */
2255
+ export interface Conditional {
2256
+ /**
2257
+ * The conditions to check:
2258
+ *
2259
+ * - Key: name of the input to check
2260
+ * - Value: values of that input that satisfy the condition
2261
+ */
2262
+ values: unknown;
2263
+
2264
+ /**
2265
+ * How the conditions combine: \`and\` (all must match) or \`or\` (any must match)
2266
+ */
2267
+ operator?: 'and' | 'or';
2268
+ }
2269
+ }
2157
2270
  }
2158
2271
 
2159
2272
  /**
@@ -2194,8 +2307,7 @@ export namespace GenerateDescribeStyleResponse {
2194
2307
  * - \`ifNotDefined\`: Input is required when another specified input is not
2195
2308
  * defined
2196
2309
  * - \`ifDefined\`: Input is required when another specified input is defined
2197
- * - \`conditionalValues\`: Input is required when another input has a specific
2198
- * value
2310
+ * - \`conditional\`: Input is required when other inputs have specific values
2199
2311
  *
2200
2312
  * By default, the input is not required.
2201
2313
  */
@@ -2206,12 +2318,9 @@ export namespace GenerateDescribeStyleResponse {
2206
2318
  always?: boolean;
2207
2319
 
2208
2320
  /**
2209
- * Makes this input required when another input has a specific value:
2210
- *
2211
- * - Key: name of the input to check
2212
- * - Value: operation and allowed values that trigger the requirement
2321
+ * Makes this input required when other inputs have one of the listed values
2213
2322
  */
2214
- conditionalValues?: unknown;
2323
+ conditional?: Required.Conditional;
2215
2324
 
2216
2325
  /**
2217
2326
  * Makes this input required when another input is defined:
@@ -2229,6 +2338,26 @@ export namespace GenerateDescribeStyleResponse {
2229
2338
  */
2230
2339
  ifNotDefined?: unknown;
2231
2340
  }
2341
+
2342
+ export namespace Required {
2343
+ /**
2344
+ * Makes this input required when other inputs have one of the listed values
2345
+ */
2346
+ export interface Conditional {
2347
+ /**
2348
+ * The conditions to check:
2349
+ *
2350
+ * - Key: name of the input to check
2351
+ * - Value: values of that input that satisfy the condition
2352
+ */
2353
+ values: unknown;
2354
+
2355
+ /**
2356
+ * How the conditions combine: \`and\` (all must match) or \`or\` (any must match)
2357
+ */
2358
+ operator?: 'and' | 'or';
2359
+ }
2360
+ }
2232
2361
  }
2233
2362
 
2234
2363
  /**
@@ -2697,6 +2826,7 @@ export namespace GenerateDetectResponse {
2697
2826
  | 'remove-background'
2698
2827
  | 'transform'
2699
2828
  | 'user-approval'
2829
+ | 'user-selection'
2700
2830
  | 'workflow';
2701
2831
 
2702
2832
  /**
@@ -2727,14 +2857,15 @@ export namespace GenerateDetectResponse {
2727
2857
  includeOutputsInWorkflowJob?: true;
2728
2858
 
2729
2859
  /**
2730
- * The inputs of the node.
2860
+ * The inputs of the node. For a user-selection node, the array input's `min`/`max`
2861
+ * bound how many items the user may pick (defaults: 1 and 100); conditional
2862
+ * connections may be present as additional inputs.
2731
2863
  */
2732
2864
  inputs?: Array<Flow.Input>;
2733
2865
 
2734
2866
  /**
2735
- * Statically-configured items for a List node. The node outputs this array as-is
2736
- * when executed. Only available for List nodes. The values can be strings,
2737
- * numbers, or asset IDs.
2867
+ * Statically-configured items for a List node, or the frozen candidate list of a
2868
+ * UserSelection node. The values can be strings, numbers, or asset IDs.
2738
2869
  */
2739
2870
  items?: Array<string>;
2740
2871
 
@@ -3014,8 +3145,7 @@ export namespace GenerateDetectResponse {
3014
3145
  * - \`ifNotDefined\`: Input is required when another specified input is not
3015
3146
  * defined
3016
3147
  * - \`ifDefined\`: Input is required when another specified input is defined
3017
- * - \`conditionalValues\`: Input is required when another input has a specific
3018
- * value
3148
+ * - \`conditional\`: Input is required when other inputs have specific values
3019
3149
  *
3020
3150
  * By default, the input is not required.
3021
3151
  */
@@ -3245,8 +3375,7 @@ export namespace GenerateDetectResponse {
3245
3375
  * - \`ifNotDefined\`: Input is required when another specified input is not
3246
3376
  * defined
3247
3377
  * - \`ifDefined\`: Input is required when another specified input is defined
3248
- * - \`conditionalValues\`: Input is required when another input has a specific
3249
- * value
3378
+ * - \`conditional\`: Input is required when other inputs have specific values
3250
3379
  *
3251
3380
  * By default, the input is not required.
3252
3381
  */
@@ -3303,8 +3432,7 @@ export namespace GenerateDetectResponse {
3303
3432
  * - \`ifNotDefined\`: Input is required when another specified input is not
3304
3433
  * defined
3305
3434
  * - \`ifDefined\`: Input is required when another specified input is defined
3306
- * - \`conditionalValues\`: Input is required when another input has a specific
3307
- * value
3435
+ * - \`conditional\`: Input is required when other inputs have specific values
3308
3436
  *
3309
3437
  * By default, the input is not required.
3310
3438
  */
@@ -3315,12 +3443,9 @@ export namespace GenerateDetectResponse {
3315
3443
  always?: boolean;
3316
3444
 
3317
3445
  /**
3318
- * Makes this input required when another input has a specific value:
3319
- *
3320
- * - Key: name of the input to check
3321
- * - Value: operation and allowed values that trigger the requirement
3446
+ * Makes this input required when other inputs have one of the listed values
3322
3447
  */
3323
- conditionalValues?: unknown;
3448
+ conditional?: Required.Conditional;
3324
3449
 
3325
3450
  /**
3326
3451
  * Makes this input required when another input is defined:
@@ -3338,6 +3463,26 @@ export namespace GenerateDetectResponse {
3338
3463
  */
3339
3464
  ifNotDefined?: unknown;
3340
3465
  }
3466
+
3467
+ export namespace Required {
3468
+ /**
3469
+ * Makes this input required when other inputs have one of the listed values
3470
+ */
3471
+ export interface Conditional {
3472
+ /**
3473
+ * The conditions to check:
3474
+ *
3475
+ * - Key: name of the input to check
3476
+ * - Value: values of that input that satisfy the condition
3477
+ */
3478
+ values: unknown;
3479
+
3480
+ /**
3481
+ * How the conditions combine: \`and\` (all must match) or \`or\` (any must match)
3482
+ */
3483
+ operator?: 'and' | 'or';
3484
+ }
3485
+ }
3341
3486
  }
3342
3487
 
3343
3488
  /**
@@ -3378,8 +3523,7 @@ export namespace GenerateDetectResponse {
3378
3523
  * - \`ifNotDefined\`: Input is required when another specified input is not
3379
3524
  * defined
3380
3525
  * - \`ifDefined\`: Input is required when another specified input is defined
3381
- * - \`conditionalValues\`: Input is required when another input has a specific
3382
- * value
3526
+ * - \`conditional\`: Input is required when other inputs have specific values
3383
3527
  *
3384
3528
  * By default, the input is not required.
3385
3529
  */
@@ -3390,12 +3534,9 @@ export namespace GenerateDetectResponse {
3390
3534
  always?: boolean;
3391
3535
 
3392
3536
  /**
3393
- * Makes this input required when another input has a specific value:
3394
- *
3395
- * - Key: name of the input to check
3396
- * - Value: operation and allowed values that trigger the requirement
3537
+ * Makes this input required when other inputs have one of the listed values
3397
3538
  */
3398
- conditionalValues?: unknown;
3539
+ conditional?: Required.Conditional;
3399
3540
 
3400
3541
  /**
3401
3542
  * Makes this input required when another input is defined:
@@ -3413,6 +3554,26 @@ export namespace GenerateDetectResponse {
3413
3554
  */
3414
3555
  ifNotDefined?: unknown;
3415
3556
  }
3557
+
3558
+ export namespace Required {
3559
+ /**
3560
+ * Makes this input required when other inputs have one of the listed values
3561
+ */
3562
+ export interface Conditional {
3563
+ /**
3564
+ * The conditions to check:
3565
+ *
3566
+ * - Key: name of the input to check
3567
+ * - Value: values of that input that satisfy the condition
3568
+ */
3569
+ values: unknown;
3570
+
3571
+ /**
3572
+ * How the conditions combine: \`and\` (all must match) or \`or\` (any must match)
3573
+ */
3574
+ operator?: 'and' | 'or';
3575
+ }
3576
+ }
3416
3577
  }
3417
3578
 
3418
3579
  /**
@@ -3773,6 +3934,7 @@ export namespace GenerateDetectResponse {
3773
3934
  | 'application/x-zip-compressed'
3774
3935
  | 'application/x.autodesk.fbx'
3775
3936
  | 'application/zip'
3937
+ | 'audio/flac'
3776
3938
  | 'audio/m4a'
3777
3939
  | 'audio/mpeg'
3778
3940
  | 'audio/ogg'
@@ -3803,6 +3965,7 @@ export namespace GenerateDetectResponse {
3803
3965
  | 'model/vnd.collada+xml'
3804
3966
  | 'model/vnd.ms-package.3dmanufacturing-3dmodel+xml'
3805
3967
  | 'model/x-3d-vox'
3968
+ | 'model/x-blender'
3806
3969
  | 'model/x-fbx'
3807
3970
  | 'model/x-maya-ascii'
3808
3971
  | 'model/x-maya-binary'
@@ -4040,6 +4203,12 @@ export namespace GenerateDetectResponse {
4040
4203
  */
4041
4204
  factor?: number;
4042
4205
 
4206
+ /**
4207
+ * The name its parent's files reference it by (an OBJ's MTL, an MTL's texture),
4208
+ * kept as delivered.
4209
+ */
4210
+ fileName?: string;
4211
+
4043
4212
  filterSpeckle?: number;
4044
4213
 
4045
4214
  /**
@@ -4129,6 +4298,11 @@ export namespace GenerateDetectResponse {
4129
4298
  */
4130
4299
  invert?: boolean;
4131
4300
 
4301
+ /**
4302
+ * Its own references (an OBJ's `mtllib`, an MTL's maps) were kept as delivered.
4303
+ */
4304
+ keepsFileNames?: boolean;
4305
+
4132
4306
  /**
4133
4307
  * How polished is the surface? 0 is like a rough surface, 1 is like a mirror
4134
4308
  */
@@ -5257,6 +5431,7 @@ export namespace GenerateEmbedResponse {
5257
5431
  | 'remove-background'
5258
5432
  | 'transform'
5259
5433
  | 'user-approval'
5434
+ | 'user-selection'
5260
5435
  | 'workflow';
5261
5436
 
5262
5437
  /**
@@ -5287,14 +5462,15 @@ export namespace GenerateEmbedResponse {
5287
5462
  includeOutputsInWorkflowJob?: true;
5288
5463
 
5289
5464
  /**
5290
- * The inputs of the node.
5465
+ * The inputs of the node. For a user-selection node, the array input's `min`/`max`
5466
+ * bound how many items the user may pick (defaults: 1 and 100); conditional
5467
+ * connections may be present as additional inputs.
5291
5468
  */
5292
5469
  inputs?: Array<Flow.Input>;
5293
5470
 
5294
5471
  /**
5295
- * Statically-configured items for a List node. The node outputs this array as-is
5296
- * when executed. Only available for List nodes. The values can be strings,
5297
- * numbers, or asset IDs.
5472
+ * Statically-configured items for a List node, or the frozen candidate list of a
5473
+ * UserSelection node. The values can be strings, numbers, or asset IDs.
5298
5474
  */
5299
5475
  items?: Array<string>;
5300
5476
 
@@ -5574,8 +5750,7 @@ export namespace GenerateEmbedResponse {
5574
5750
  * - \`ifNotDefined\`: Input is required when another specified input is not
5575
5751
  * defined
5576
5752
  * - \`ifDefined\`: Input is required when another specified input is defined
5577
- * - \`conditionalValues\`: Input is required when another input has a specific
5578
- * value
5753
+ * - \`conditional\`: Input is required when other inputs have specific values
5579
5754
  *
5580
5755
  * By default, the input is not required.
5581
5756
  */
@@ -5805,8 +5980,7 @@ export namespace GenerateEmbedResponse {
5805
5980
  * - \`ifNotDefined\`: Input is required when another specified input is not
5806
5981
  * defined
5807
5982
  * - \`ifDefined\`: Input is required when another specified input is defined
5808
- * - \`conditionalValues\`: Input is required when another input has a specific
5809
- * value
5983
+ * - \`conditional\`: Input is required when other inputs have specific values
5810
5984
  *
5811
5985
  * By default, the input is not required.
5812
5986
  */
@@ -5863,8 +6037,7 @@ export namespace GenerateEmbedResponse {
5863
6037
  * - \`ifNotDefined\`: Input is required when another specified input is not
5864
6038
  * defined
5865
6039
  * - \`ifDefined\`: Input is required when another specified input is defined
5866
- * - \`conditionalValues\`: Input is required when another input has a specific
5867
- * value
6040
+ * - \`conditional\`: Input is required when other inputs have specific values
5868
6041
  *
5869
6042
  * By default, the input is not required.
5870
6043
  */
@@ -5875,12 +6048,9 @@ export namespace GenerateEmbedResponse {
5875
6048
  always?: boolean;
5876
6049
 
5877
6050
  /**
5878
- * Makes this input required when another input has a specific value:
5879
- *
5880
- * - Key: name of the input to check
5881
- * - Value: operation and allowed values that trigger the requirement
6051
+ * Makes this input required when other inputs have one of the listed values
5882
6052
  */
5883
- conditionalValues?: unknown;
6053
+ conditional?: Required.Conditional;
5884
6054
 
5885
6055
  /**
5886
6056
  * Makes this input required when another input is defined:
@@ -5898,6 +6068,26 @@ export namespace GenerateEmbedResponse {
5898
6068
  */
5899
6069
  ifNotDefined?: unknown;
5900
6070
  }
6071
+
6072
+ export namespace Required {
6073
+ /**
6074
+ * Makes this input required when other inputs have one of the listed values
6075
+ */
6076
+ export interface Conditional {
6077
+ /**
6078
+ * The conditions to check:
6079
+ *
6080
+ * - Key: name of the input to check
6081
+ * - Value: values of that input that satisfy the condition
6082
+ */
6083
+ values: unknown;
6084
+
6085
+ /**
6086
+ * How the conditions combine: \`and\` (all must match) or \`or\` (any must match)
6087
+ */
6088
+ operator?: 'and' | 'or';
6089
+ }
6090
+ }
5901
6091
  }
5902
6092
 
5903
6093
  /**
@@ -5938,8 +6128,7 @@ export namespace GenerateEmbedResponse {
5938
6128
  * - \`ifNotDefined\`: Input is required when another specified input is not
5939
6129
  * defined
5940
6130
  * - \`ifDefined\`: Input is required when another specified input is defined
5941
- * - \`conditionalValues\`: Input is required when another input has a specific
5942
- * value
6131
+ * - \`conditional\`: Input is required when other inputs have specific values
5943
6132
  *
5944
6133
  * By default, the input is not required.
5945
6134
  */
@@ -5950,12 +6139,9 @@ export namespace GenerateEmbedResponse {
5950
6139
  always?: boolean;
5951
6140
 
5952
6141
  /**
5953
- * Makes this input required when another input has a specific value:
5954
- *
5955
- * - Key: name of the input to check
5956
- * - Value: operation and allowed values that trigger the requirement
6142
+ * Makes this input required when other inputs have one of the listed values
5957
6143
  */
5958
- conditionalValues?: unknown;
6144
+ conditional?: Required.Conditional;
5959
6145
 
5960
6146
  /**
5961
6147
  * Makes this input required when another input is defined:
@@ -5973,6 +6159,26 @@ export namespace GenerateEmbedResponse {
5973
6159
  */
5974
6160
  ifNotDefined?: unknown;
5975
6161
  }
6162
+
6163
+ export namespace Required {
6164
+ /**
6165
+ * Makes this input required when other inputs have one of the listed values
6166
+ */
6167
+ export interface Conditional {
6168
+ /**
6169
+ * The conditions to check:
6170
+ *
6171
+ * - Key: name of the input to check
6172
+ * - Value: values of that input that satisfy the condition
6173
+ */
6174
+ values: unknown;
6175
+
6176
+ /**
6177
+ * How the conditions combine: \`and\` (all must match) or \`or\` (any must match)
6178
+ */
6179
+ operator?: 'and' | 'or';
6180
+ }
6181
+ }
5976
6182
  }
5977
6183
 
5978
6184
  /**
@@ -6227,6 +6433,117 @@ export namespace GenerateEmbedResponse {
6227
6433
  }
6228
6434
  }
6229
6435
 
6436
+ /**
6437
+ * Response of POST /generate/ip-detection.
6438
+ */
6439
+ export interface GenerateIPDetectionResponse {
6440
+ /**
6441
+ * Merged verdict for the whole input set. `action` is always `allowed` or
6442
+ * `flagged` — this route is advisory and blocks nothing — while
6443
+ * `creativeUnitsCharged` and `analyzedImagesCount` report what was billed and what
6444
+ * was actually analyzed.
6445
+ */
6446
+ ipDetection: GenerateIPDetectionResponse.IPDetection;
6447
+
6448
+ /**
6449
+ * Input asset ids excluded from image analysis — audio and 3d assets, or a video
6450
+ * with no extractable frame. Their content was NOT checked.
6451
+ */
6452
+ skippedAssetIds: Array<string>;
6453
+ }
6454
+
6455
+ export namespace GenerateIPDetectionResponse {
6456
+ /**
6457
+ * Merged verdict for the whole input set. `action` is always `allowed` or
6458
+ * `flagged` — this route is advisory and blocks nothing — while
6459
+ * `creativeUnitsCharged` and `analyzedImagesCount` report what was billed and what
6460
+ * was actually analyzed.
6461
+ */
6462
+ export interface IPDetection {
6463
+ /**
6464
+ * Whether and how detection affected the request.
6465
+ */
6466
+ action: 'allowed' | 'blocked' | 'flagged';
6467
+
6468
+ /**
6469
+ * Number of images the detectors actually analyzed — a video counts as each of its
6470
+ * extracted frames, and an image that could not be read is excluded (and not
6471
+ * billed). Each of them is priced once per enabled filter.
6472
+ */
6473
+ analyzedImagesCount: number;
6474
+
6475
+ /**
6476
+ * IP-detection CU fee, separate from creativeUnitsCost: it follows the provider
6477
+ * tokens the run sends — the prompt plus every analyzed image, once per enabled
6478
+ * filter — with a 1 CU minimum per run.
6479
+ */
6480
+ creativeUnitsCharged: number;
6481
+
6482
+ /**
6483
+ * Number of enabled filters evaluated for this request.
6484
+ */
6485
+ evaluatedFilters: number;
6486
+
6487
+ /**
6488
+ * Per-filter verdicts gathered for this request.
6489
+ */
6490
+ findings: Array<IPDetection.Finding>;
6491
+
6492
+ /**
6493
+ * Whether a filter considered the inputs an IP risk. Independent of `action`: a
6494
+ * request blocked because a detector errored is `blocked` and NOT flagged.
6495
+ */
6496
+ flagged: boolean;
6497
+
6498
+ /**
6499
+ * True if one or more detectors errored while evaluating this request.
6500
+ */
6501
+ hasDetectorError?: boolean;
6502
+ }
6503
+
6504
+ export namespace IPDetection {
6505
+ /**
6506
+ * A single filter's verdict.
6507
+ */
6508
+ export interface Finding {
6509
+ /**
6510
+ * Category of the filter that produced this verdict.
6511
+ */
6512
+ category: 'artist-style' | 'brand-trademark' | 'celebrity-likeness' | 'custom' | 'fictional-character';
6513
+
6514
+ /**
6515
+ * Confidence score from 0 (low) to 1 (high).
6516
+ */
6517
+ confidence: number;
6518
+
6519
+ /**
6520
+ * Identifier of the filter that produced this verdict.
6521
+ */
6522
+ filterId: string;
6523
+
6524
+ /**
6525
+ * Display name of the filter that produced this verdict.
6526
+ */
6527
+ filterName: string;
6528
+
6529
+ /**
6530
+ * Whether this filter considered the request an IP risk.
6531
+ */
6532
+ flagged: boolean;
6533
+
6534
+ /**
6535
+ * Short, user-facing explanation of the verdict.
6536
+ */
6537
+ reason: string;
6538
+
6539
+ /**
6540
+ * Named entities the filter recognized (e.g. characters, brands, people).
6541
+ */
6542
+ entities?: Array<string>;
6543
+ }
6544
+ }
6545
+ }
6546
+
6230
6547
  export interface GeneratePatchResponse {
6231
6548
  job: GeneratePatchResponse.Job;
6232
6549
 
@@ -6441,6 +6758,7 @@ export namespace GeneratePatchResponse {
6441
6758
  | 'remove-background'
6442
6759
  | 'transform'
6443
6760
  | 'user-approval'
6761
+ | 'user-selection'
6444
6762
  | 'workflow';
6445
6763
 
6446
6764
  /**
@@ -6471,14 +6789,15 @@ export namespace GeneratePatchResponse {
6471
6789
  includeOutputsInWorkflowJob?: true;
6472
6790
 
6473
6791
  /**
6474
- * The inputs of the node.
6792
+ * The inputs of the node. For a user-selection node, the array input's `min`/`max`
6793
+ * bound how many items the user may pick (defaults: 1 and 100); conditional
6794
+ * connections may be present as additional inputs.
6475
6795
  */
6476
6796
  inputs?: Array<Flow.Input>;
6477
6797
 
6478
6798
  /**
6479
- * Statically-configured items for a List node. The node outputs this array as-is
6480
- * when executed. Only available for List nodes. The values can be strings,
6481
- * numbers, or asset IDs.
6799
+ * Statically-configured items for a List node, or the frozen candidate list of a
6800
+ * UserSelection node. The values can be strings, numbers, or asset IDs.
6482
6801
  */
6483
6802
  items?: Array<string>;
6484
6803
 
@@ -6758,8 +7077,7 @@ export namespace GeneratePatchResponse {
6758
7077
  * - \`ifNotDefined\`: Input is required when another specified input is not
6759
7078
  * defined
6760
7079
  * - \`ifDefined\`: Input is required when another specified input is defined
6761
- * - \`conditionalValues\`: Input is required when another input has a specific
6762
- * value
7080
+ * - \`conditional\`: Input is required when other inputs have specific values
6763
7081
  *
6764
7082
  * By default, the input is not required.
6765
7083
  */
@@ -6989,8 +7307,7 @@ export namespace GeneratePatchResponse {
6989
7307
  * - \`ifNotDefined\`: Input is required when another specified input is not
6990
7308
  * defined
6991
7309
  * - \`ifDefined\`: Input is required when another specified input is defined
6992
- * - \`conditionalValues\`: Input is required when another input has a specific
6993
- * value
7310
+ * - \`conditional\`: Input is required when other inputs have specific values
6994
7311
  *
6995
7312
  * By default, the input is not required.
6996
7313
  */
@@ -7047,8 +7364,7 @@ export namespace GeneratePatchResponse {
7047
7364
  * - \`ifNotDefined\`: Input is required when another specified input is not
7048
7365
  * defined
7049
7366
  * - \`ifDefined\`: Input is required when another specified input is defined
7050
- * - \`conditionalValues\`: Input is required when another input has a specific
7051
- * value
7367
+ * - \`conditional\`: Input is required when other inputs have specific values
7052
7368
  *
7053
7369
  * By default, the input is not required.
7054
7370
  */
@@ -7059,12 +7375,9 @@ export namespace GeneratePatchResponse {
7059
7375
  always?: boolean;
7060
7376
 
7061
7377
  /**
7062
- * Makes this input required when another input has a specific value:
7063
- *
7064
- * - Key: name of the input to check
7065
- * - Value: operation and allowed values that trigger the requirement
7378
+ * Makes this input required when other inputs have one of the listed values
7066
7379
  */
7067
- conditionalValues?: unknown;
7380
+ conditional?: Required.Conditional;
7068
7381
 
7069
7382
  /**
7070
7383
  * Makes this input required when another input is defined:
@@ -7082,6 +7395,26 @@ export namespace GeneratePatchResponse {
7082
7395
  */
7083
7396
  ifNotDefined?: unknown;
7084
7397
  }
7398
+
7399
+ export namespace Required {
7400
+ /**
7401
+ * Makes this input required when other inputs have one of the listed values
7402
+ */
7403
+ export interface Conditional {
7404
+ /**
7405
+ * The conditions to check:
7406
+ *
7407
+ * - Key: name of the input to check
7408
+ * - Value: values of that input that satisfy the condition
7409
+ */
7410
+ values: unknown;
7411
+
7412
+ /**
7413
+ * How the conditions combine: \`and\` (all must match) or \`or\` (any must match)
7414
+ */
7415
+ operator?: 'and' | 'or';
7416
+ }
7417
+ }
7085
7418
  }
7086
7419
 
7087
7420
  /**
@@ -7122,8 +7455,7 @@ export namespace GeneratePatchResponse {
7122
7455
  * - \`ifNotDefined\`: Input is required when another specified input is not
7123
7456
  * defined
7124
7457
  * - \`ifDefined\`: Input is required when another specified input is defined
7125
- * - \`conditionalValues\`: Input is required when another input has a specific
7126
- * value
7458
+ * - \`conditional\`: Input is required when other inputs have specific values
7127
7459
  *
7128
7460
  * By default, the input is not required.
7129
7461
  */
@@ -7134,12 +7466,9 @@ export namespace GeneratePatchResponse {
7134
7466
  always?: boolean;
7135
7467
 
7136
7468
  /**
7137
- * Makes this input required when another input has a specific value:
7138
- *
7139
- * - Key: name of the input to check
7140
- * - Value: operation and allowed values that trigger the requirement
7469
+ * Makes this input required when other inputs have one of the listed values
7141
7470
  */
7142
- conditionalValues?: unknown;
7471
+ conditional?: Required.Conditional;
7143
7472
 
7144
7473
  /**
7145
7474
  * Makes this input required when another input is defined:
@@ -7157,6 +7486,26 @@ export namespace GeneratePatchResponse {
7157
7486
  */
7158
7487
  ifNotDefined?: unknown;
7159
7488
  }
7489
+
7490
+ export namespace Required {
7491
+ /**
7492
+ * Makes this input required when other inputs have one of the listed values
7493
+ */
7494
+ export interface Conditional {
7495
+ /**
7496
+ * The conditions to check:
7497
+ *
7498
+ * - Key: name of the input to check
7499
+ * - Value: values of that input that satisfy the condition
7500
+ */
7501
+ values: unknown;
7502
+
7503
+ /**
7504
+ * How the conditions combine: \`and\` (all must match) or \`or\` (any must match)
7505
+ */
7506
+ operator?: 'and' | 'or';
7507
+ }
7508
+ }
7160
7509
  }
7161
7510
 
7162
7511
  /**
@@ -7517,6 +7866,7 @@ export namespace GeneratePatchResponse {
7517
7866
  | 'application/x-zip-compressed'
7518
7867
  | 'application/x.autodesk.fbx'
7519
7868
  | 'application/zip'
7869
+ | 'audio/flac'
7520
7870
  | 'audio/m4a'
7521
7871
  | 'audio/mpeg'
7522
7872
  | 'audio/ogg'
@@ -7547,6 +7897,7 @@ export namespace GeneratePatchResponse {
7547
7897
  | 'model/vnd.collada+xml'
7548
7898
  | 'model/vnd.ms-package.3dmanufacturing-3dmodel+xml'
7549
7899
  | 'model/x-3d-vox'
7900
+ | 'model/x-blender'
7550
7901
  | 'model/x-fbx'
7551
7902
  | 'model/x-maya-ascii'
7552
7903
  | 'model/x-maya-binary'
@@ -7784,6 +8135,12 @@ export namespace GeneratePatchResponse {
7784
8135
  */
7785
8136
  factor?: number;
7786
8137
 
8138
+ /**
8139
+ * The name its parent's files reference it by (an OBJ's MTL, an MTL's texture),
8140
+ * kept as delivered.
8141
+ */
8142
+ fileName?: string;
8143
+
7787
8144
  filterSpeckle?: number;
7788
8145
 
7789
8146
  /**
@@ -7873,6 +8230,11 @@ export namespace GeneratePatchResponse {
7873
8230
  */
7874
8231
  invert?: boolean;
7875
8232
 
8233
+ /**
8234
+ * Its own references (an OBJ's `mtllib`, an MTL's maps) were kept as delivered.
8235
+ */
8236
+ keepsFileNames?: boolean;
8237
+
7876
8238
  /**
7877
8239
  * How polished is the surface? 0 is like a rough surface, 1 is like a mirror
7878
8240
  */
@@ -9010,6 +9372,7 @@ export namespace GeneratePromptResponse {
9010
9372
  | 'remove-background'
9011
9373
  | 'transform'
9012
9374
  | 'user-approval'
9375
+ | 'user-selection'
9013
9376
  | 'workflow';
9014
9377
 
9015
9378
  /**
@@ -9040,14 +9403,15 @@ export namespace GeneratePromptResponse {
9040
9403
  includeOutputsInWorkflowJob?: true;
9041
9404
 
9042
9405
  /**
9043
- * The inputs of the node.
9406
+ * The inputs of the node. For a user-selection node, the array input's `min`/`max`
9407
+ * bound how many items the user may pick (defaults: 1 and 100); conditional
9408
+ * connections may be present as additional inputs.
9044
9409
  */
9045
9410
  inputs?: Array<Flow.Input>;
9046
9411
 
9047
9412
  /**
9048
- * Statically-configured items for a List node. The node outputs this array as-is
9049
- * when executed. Only available for List nodes. The values can be strings,
9050
- * numbers, or asset IDs.
9413
+ * Statically-configured items for a List node, or the frozen candidate list of a
9414
+ * UserSelection node. The values can be strings, numbers, or asset IDs.
9051
9415
  */
9052
9416
  items?: Array<string>;
9053
9417
 
@@ -9327,8 +9691,7 @@ export namespace GeneratePromptResponse {
9327
9691
  * - \`ifNotDefined\`: Input is required when another specified input is not
9328
9692
  * defined
9329
9693
  * - \`ifDefined\`: Input is required when another specified input is defined
9330
- * - \`conditionalValues\`: Input is required when another input has a specific
9331
- * value
9694
+ * - \`conditional\`: Input is required when other inputs have specific values
9332
9695
  *
9333
9696
  * By default, the input is not required.
9334
9697
  */
@@ -9558,8 +9921,7 @@ export namespace GeneratePromptResponse {
9558
9921
  * - \`ifNotDefined\`: Input is required when another specified input is not
9559
9922
  * defined
9560
9923
  * - \`ifDefined\`: Input is required when another specified input is defined
9561
- * - \`conditionalValues\`: Input is required when another input has a specific
9562
- * value
9924
+ * - \`conditional\`: Input is required when other inputs have specific values
9563
9925
  *
9564
9926
  * By default, the input is not required.
9565
9927
  */
@@ -9616,8 +9978,7 @@ export namespace GeneratePromptResponse {
9616
9978
  * - \`ifNotDefined\`: Input is required when another specified input is not
9617
9979
  * defined
9618
9980
  * - \`ifDefined\`: Input is required when another specified input is defined
9619
- * - \`conditionalValues\`: Input is required when another input has a specific
9620
- * value
9981
+ * - \`conditional\`: Input is required when other inputs have specific values
9621
9982
  *
9622
9983
  * By default, the input is not required.
9623
9984
  */
@@ -9628,12 +9989,9 @@ export namespace GeneratePromptResponse {
9628
9989
  always?: boolean;
9629
9990
 
9630
9991
  /**
9631
- * Makes this input required when another input has a specific value:
9632
- *
9633
- * - Key: name of the input to check
9634
- * - Value: operation and allowed values that trigger the requirement
9992
+ * Makes this input required when other inputs have one of the listed values
9635
9993
  */
9636
- conditionalValues?: unknown;
9994
+ conditional?: Required.Conditional;
9637
9995
 
9638
9996
  /**
9639
9997
  * Makes this input required when another input is defined:
@@ -9651,6 +10009,26 @@ export namespace GeneratePromptResponse {
9651
10009
  */
9652
10010
  ifNotDefined?: unknown;
9653
10011
  }
10012
+
10013
+ export namespace Required {
10014
+ /**
10015
+ * Makes this input required when other inputs have one of the listed values
10016
+ */
10017
+ export interface Conditional {
10018
+ /**
10019
+ * The conditions to check:
10020
+ *
10021
+ * - Key: name of the input to check
10022
+ * - Value: values of that input that satisfy the condition
10023
+ */
10024
+ values: unknown;
10025
+
10026
+ /**
10027
+ * How the conditions combine: \`and\` (all must match) or \`or\` (any must match)
10028
+ */
10029
+ operator?: 'and' | 'or';
10030
+ }
10031
+ }
9654
10032
  }
9655
10033
 
9656
10034
  /**
@@ -9691,8 +10069,7 @@ export namespace GeneratePromptResponse {
9691
10069
  * - \`ifNotDefined\`: Input is required when another specified input is not
9692
10070
  * defined
9693
10071
  * - \`ifDefined\`: Input is required when another specified input is defined
9694
- * - \`conditionalValues\`: Input is required when another input has a specific
9695
- * value
10072
+ * - \`conditional\`: Input is required when other inputs have specific values
9696
10073
  *
9697
10074
  * By default, the input is not required.
9698
10075
  */
@@ -9703,12 +10080,9 @@ export namespace GeneratePromptResponse {
9703
10080
  always?: boolean;
9704
10081
 
9705
10082
  /**
9706
- * Makes this input required when another input has a specific value:
9707
- *
9708
- * - Key: name of the input to check
9709
- * - Value: operation and allowed values that trigger the requirement
10083
+ * Makes this input required when other inputs have one of the listed values
9710
10084
  */
9711
- conditionalValues?: unknown;
10085
+ conditional?: Required.Conditional;
9712
10086
 
9713
10087
  /**
9714
10088
  * Makes this input required when another input is defined:
@@ -9726,6 +10100,26 @@ export namespace GeneratePromptResponse {
9726
10100
  */
9727
10101
  ifNotDefined?: unknown;
9728
10102
  }
10103
+
10104
+ export namespace Required {
10105
+ /**
10106
+ * Makes this input required when other inputs have one of the listed values
10107
+ */
10108
+ export interface Conditional {
10109
+ /**
10110
+ * The conditions to check:
10111
+ *
10112
+ * - Key: name of the input to check
10113
+ * - Value: values of that input that satisfy the condition
10114
+ */
10115
+ values: unknown;
10116
+
10117
+ /**
10118
+ * How the conditions combine: \`and\` (all must match) or \`or\` (any must match)
10119
+ */
10120
+ operator?: 'and' | 'or';
10121
+ }
10122
+ }
9729
10123
  }
9730
10124
 
9731
10125
  /**
@@ -10004,8 +10398,1648 @@ export namespace GeneratePromptResponse {
10004
10398
  }
10005
10399
  }
10006
10400
 
10007
- export interface GenerateRunModelResponse {
10008
- job: GenerateRunModelResponse.Job;
10401
+ export interface GenerateQualityGateResponse {
10402
+ /**
10403
+ * Always-on generic AI-quality dimension
10404
+ */
10405
+ aiQuality: GenerateQualityGateResponse.AIQuality;
10406
+
10407
+ /**
10408
+ * Briefs that contributed to this verdict
10409
+ */
10410
+ appliedBriefs: Array<GenerateQualityGateResponse.AppliedBrief>;
10411
+
10412
+ asset: GenerateQualityGateResponse.Asset;
10413
+
10414
+ /**
10415
+ * 0–100 combined score
10416
+ */
10417
+ overallScore: number;
10418
+
10419
+ /**
10420
+ * pass / warn / fail: the worse of overallScore and aiQuality.score, each read
10421
+ * against sensitivity
10422
+ */
10423
+ verdict: 'fail' | 'pass' | 'warn';
10424
+
10425
+ /**
10426
+ * Brief-compliance dimension; omitted when no brief applied
10427
+ */
10428
+ briefCompliance?: GenerateQualityGateResponse.BriefCompliance;
10429
+
10430
+ /**
10431
+ * Compute Units cost per billing action for this request, after discount. Values
10432
+ * sum to `creativeUnitsCost`. Only Compute-Units-consuming actions with a non-zero
10433
+ * charge appear. Lets clients split the total (e.g. generation vs `quality-gate`)
10434
+ * — including on dryRun estimates.
10435
+ */
10436
+ costDetails?: GenerateQualityGateResponse.CostDetails;
10437
+
10438
+ /**
10439
+ * The Compute Units cost for the request billed
10440
+ */
10441
+ creativeUnitsCost?: number;
10442
+
10443
+ /**
10444
+ * The Compute Units discount for the request billed
10445
+ */
10446
+ creativeUnitsDiscount?: number;
10447
+
10448
+ /**
10449
+ * IP detection findings, when detection ran for this request.
10450
+ */
10451
+ ipDetection?: GenerateQualityGateResponse.IPDetection;
10452
+
10453
+ /**
10454
+ * Sensitivity used to derive the verdict
10455
+ */
10456
+ sensitivity?: 'high' | 'low' | 'medium';
10457
+ }
10458
+
10459
+ export namespace GenerateQualityGateResponse {
10460
+ /**
10461
+ * Always-on generic AI-quality dimension
10462
+ */
10463
+ export interface AIQuality {
10464
+ /**
10465
+ * Why the image scored as it did
10466
+ */
10467
+ reasons: Array<string>;
10468
+
10469
+ /**
10470
+ * 0–100; higher is better (more compliant / less AI-looking)
10471
+ */
10472
+ score: number;
10473
+
10474
+ /**
10475
+ * Actionable suggestions to improve the score
10476
+ */
10477
+ suggestions: Array<string>;
10478
+ }
10479
+
10480
+ /**
10481
+ * Identifies a brief that contributed to a verdict.
10482
+ */
10483
+ export interface AppliedBrief {
10484
+ /**
10485
+ * The brief's id
10486
+ */
10487
+ id: string;
10488
+
10489
+ /**
10490
+ * The brief's scope
10491
+ */
10492
+ level: 'project' | 'team';
10493
+ }
10494
+
10495
+ export interface Asset {
10496
+ /**
10497
+ * The asset ID (example: "asset_GTrL3mq4SXWyMxkOHRxlpw")
10498
+ */
10499
+ id: string;
10500
+
10501
+ /**
10502
+ * The author user ID (example: "dcf121faaa1a0a0bbbd9ca1b73d62aea")
10503
+ */
10504
+ authorId: string;
10505
+
10506
+ /**
10507
+ * A list of CollectionId this asset belongs to
10508
+ */
10509
+ collectionIds: Array<string>;
10510
+
10511
+ /**
10512
+ * The asset creation date as an ISO string (example: "2023-02-03T11:19:41.579Z")
10513
+ */
10514
+ createdAt: string;
10515
+
10516
+ /**
10517
+ * List of edit capabilities
10518
+ */
10519
+ editCapabilities: Array<
10520
+ | 'DETECTION'
10521
+ | 'GENERATIVE_FILL'
10522
+ | 'PIXELATE'
10523
+ | 'PROMPT_EDITING'
10524
+ | 'REFINE'
10525
+ | 'REFRAME'
10526
+ | 'REMOVE_BACKGROUND'
10527
+ | 'SEGMENTATION'
10528
+ | 'UPSCALE'
10529
+ | 'UPSCALE_360'
10530
+ | 'VECTORIZATION'
10531
+ >;
10532
+
10533
+ /**
10534
+ * The kind of asset
10535
+ */
10536
+ kind: '3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'text' | 'video';
10537
+
10538
+ /**
10539
+ * Metadata of the asset with some additional information
10540
+ */
10541
+ metadata: Asset.Metadata;
10542
+
10543
+ /**
10544
+ * The mime type of the asset (example: "image/png")
10545
+ */
10546
+ mimeType: string;
10547
+
10548
+ /**
10549
+ * The owner (project) ID (example: "proj_23tlk332lkht3kl2" or
10550
+ * "team_dlkhgs23tlk3hlkth32lkht3kl2" for old teams)
10551
+ */
10552
+ ownerId: string;
10553
+
10554
+ /**
10555
+ * The privacy of the asset
10556
+ */
10557
+ privacy: 'private' | 'public' | 'unlisted';
10558
+
10559
+ /**
10560
+ * The properties of the asset, content may depend on the kind of asset returned
10561
+ */
10562
+ properties: Asset.Properties;
10563
+
10564
+ /**
10565
+ * source of the asset
10566
+ */
10567
+ source:
10568
+ | '3d23d'
10569
+ | '3d23d:texture'
10570
+ | '3d:texture'
10571
+ | '3d:texture:albedo'
10572
+ | '3d:texture:metallic'
10573
+ | '3d:texture:mtl'
10574
+ | '3d:texture:normal'
10575
+ | '3d:texture:roughness'
10576
+ | 'audio2audio'
10577
+ | 'audio2txt'
10578
+ | 'audio2video'
10579
+ | 'background-removal'
10580
+ | 'canvas'
10581
+ | 'canvas-drawing'
10582
+ | 'canvas-export'
10583
+ | 'detection'
10584
+ | 'generative-fill'
10585
+ | 'image-prompt-editing'
10586
+ | 'img23d'
10587
+ | 'img2img'
10588
+ | 'img2splat'
10589
+ | 'img2txt'
10590
+ | 'img2video'
10591
+ | 'inference-control-net'
10592
+ | 'inference-control-net-img'
10593
+ | 'inference-control-net-inpainting'
10594
+ | 'inference-control-net-inpainting-ip-adapter'
10595
+ | 'inference-control-net-ip-adapter'
10596
+ | 'inference-control-net-reference'
10597
+ | 'inference-control-net-texture'
10598
+ | 'inference-img'
10599
+ | 'inference-img-ip-adapter'
10600
+ | 'inference-img-texture'
10601
+ | 'inference-in-paint'
10602
+ | 'inference-in-paint-ip-adapter'
10603
+ | 'inference-reference'
10604
+ | 'inference-reference-texture'
10605
+ | 'inference-txt'
10606
+ | 'inference-txt-ip-adapter'
10607
+ | 'inference-txt-texture'
10608
+ | 'patch'
10609
+ | 'pixelization'
10610
+ | 'reframe'
10611
+ | 'restyle'
10612
+ | 'segment'
10613
+ | 'segmentation-image'
10614
+ | 'segmentation-mask'
10615
+ | 'skybox-3d'
10616
+ | 'skybox-base-360'
10617
+ | 'skybox-hdri'
10618
+ | 'texture'
10619
+ | 'texture:albedo'
10620
+ | 'texture:ao'
10621
+ | 'texture:edge'
10622
+ | 'texture:height'
10623
+ | 'texture:metallic'
10624
+ | 'texture:normal'
10625
+ | 'texture:smoothness'
10626
+ | 'txt23d'
10627
+ | 'txt2audio'
10628
+ | 'txt2img'
10629
+ | 'txt2txt'
10630
+ | 'txt2video'
10631
+ | 'unknown'
10632
+ | 'uploaded'
10633
+ | 'uploaded-3d'
10634
+ | 'uploaded-audio'
10635
+ | 'uploaded-avatar'
10636
+ | 'uploaded-text'
10637
+ | 'uploaded-video'
10638
+ | 'upscale'
10639
+ | 'upscale-skybox'
10640
+ | 'upscale-texture'
10641
+ | 'upscale-video'
10642
+ | 'vectorization'
10643
+ | 'video23d'
10644
+ | 'video2audio'
10645
+ | 'video2img'
10646
+ | 'video2video'
10647
+ | 'voice-clone';
10648
+
10649
+ /**
10650
+ * The actual status
10651
+ */
10652
+ status: 'error' | 'pending' | 'success';
10653
+
10654
+ /**
10655
+ * The associated tags (example: ["sci-fi", "landscape"])
10656
+ */
10657
+ tags: Array<string>;
10658
+
10659
+ /**
10660
+ * The asset last update date as an ISO string (example:
10661
+ * "2023-02-03T11:19:41.579Z")
10662
+ */
10663
+ updatedAt: string;
10664
+
10665
+ /**
10666
+ * Signed URL to get the asset content
10667
+ */
10668
+ url: string;
10669
+
10670
+ /**
10671
+ * Automatic captioning of the asset
10672
+ */
10673
+ automaticCaptioning?: string;
10674
+
10675
+ /**
10676
+ * The description, it will contain in priority:
10677
+ *
10678
+ * - the manual description
10679
+ * - the advanced captioning when the asset is used in training flow
10680
+ * - the automatic captioning
10681
+ */
10682
+ description?: string;
10683
+
10684
+ /**
10685
+ * The embedding of the asset when requested.
10686
+ *
10687
+ * Only available when an asset can be embedded (ie: not Detection maps)
10688
+ */
10689
+ embedding?: Array<number>;
10690
+
10691
+ /**
10692
+ * The video asset's first frame.
10693
+ *
10694
+ * Contains the assetId and the url of the first frame.
10695
+ */
10696
+ firstFrame?: Asset.FirstFrame;
10697
+
10698
+ /**
10699
+ * Whether the asset is hidden.
10700
+ */
10701
+ isHidden?: boolean;
10702
+
10703
+ /**
10704
+ * The video asset's last frame.
10705
+ *
10706
+ * Contains the assetId and the url of the last frame.
10707
+ */
10708
+ lastFrame?: Asset.LastFrame;
10709
+
10710
+ /**
10711
+ * The NSFW labels
10712
+ */
10713
+ nsfw?: Array<string>;
10714
+
10715
+ /**
10716
+ * The original file url.
10717
+ *
10718
+ * Contains the url of the original file. without any conversion. Only available
10719
+ * for some specific video, audio and threeD assets. Is only specified if the given
10720
+ * asset data has been replaced with a new file during the creation of the asset.
10721
+ */
10722
+ originalFileUrl?: string;
10723
+
10724
+ /**
10725
+ * The mime type of the original file url.
10726
+ *
10727
+ * The original file is stored under a key that carries no extension, so this is
10728
+ * the only way to know which format `originalFileUrl` serves (e.g. an HDRi skybox
10729
+ * exposes a JPEG preview as `url` and its `.exr` or `.hdr` file as the original).
10730
+ * Omitted when the stored format could not be determined.
10731
+ */
10732
+ originalMimeType?:
10733
+ | 'application/gzip'
10734
+ | 'application/json'
10735
+ | 'application/octet-stream'
10736
+ | 'application/pdf'
10737
+ | 'application/safetensors'
10738
+ | 'application/vnd.autodesk.fbx'
10739
+ | 'application/x-authorware-bin'
10740
+ | 'application/x-zip-compressed'
10741
+ | 'application/x.autodesk.fbx'
10742
+ | 'application/zip'
10743
+ | 'audio/flac'
10744
+ | 'audio/m4a'
10745
+ | 'audio/mpeg'
10746
+ | 'audio/ogg'
10747
+ | 'audio/wav'
10748
+ | 'image/aces'
10749
+ | 'image/avif'
10750
+ | 'image/bmp'
10751
+ | 'image/gif'
10752
+ | 'image/heic'
10753
+ | 'image/jpeg'
10754
+ | 'image/png'
10755
+ | 'image/svg+xml'
10756
+ | 'image/tiff'
10757
+ | 'image/vnd.radiance'
10758
+ | 'image/webp'
10759
+ | 'image/x-exr'
10760
+ | 'model/glb'
10761
+ | 'model/gltf+json'
10762
+ | 'model/gltf-binary'
10763
+ | 'model/ksplat'
10764
+ | 'model/mtl'
10765
+ | 'model/obj'
10766
+ | 'model/ply'
10767
+ | 'model/sog'
10768
+ | 'model/splat'
10769
+ | 'model/spz'
10770
+ | 'model/stl'
10771
+ | 'model/vnd.collada+xml'
10772
+ | 'model/vnd.ms-package.3dmanufacturing-3dmodel+xml'
10773
+ | 'model/x-3d-vox'
10774
+ | 'model/x-blender'
10775
+ | 'model/x-fbx'
10776
+ | 'model/x-maya-ascii'
10777
+ | 'model/x-maya-binary'
10778
+ | 'model/x3d+xml'
10779
+ | 'text/plain'
10780
+ | 'video/mp4'
10781
+ | 'video/quicktime'
10782
+ | 'video/webm';
10783
+
10784
+ /**
10785
+ * The output index of the asset within a job This index is an positive integer
10786
+ * that starts at 0 It is used to differentiate between multiple outputs of the
10787
+ * same job If the job has only one output, this index is 0
10788
+ */
10789
+ outputIndex?: number;
10790
+
10791
+ /**
10792
+ * The asset's preview.
10793
+ *
10794
+ * Contains the assetId and the url of the preview.
10795
+ */
10796
+ preview?: Asset.Preview;
10797
+
10798
+ /**
10799
+ * Quality Gate result, computed asynchronously after generation.
10800
+ *
10801
+ * `details` (the per-dimension reasons and suggestions) is returned only when the
10802
+ * asset is read with `withQualityGateDetails=true`.
10803
+ */
10804
+ qualityGate?: Asset.QualityGate;
10805
+
10806
+ /**
10807
+ * The asset's thumbnail.
10808
+ *
10809
+ * Contains the assetId and the url of the thumbnail.
10810
+ */
10811
+ thumbnail?: Asset.Thumbnail;
10812
+ }
10813
+
10814
+ export namespace Asset {
10815
+ /**
10816
+ * Metadata of the asset with some additional information
10817
+ */
10818
+ export interface Metadata {
10819
+ kind: '3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'text' | 'video';
10820
+
10821
+ /**
10822
+ * The type of the asset. Ex: 'inference-txt2img' will represent an asset generated
10823
+ * from a text to image model
10824
+ */
10825
+ type:
10826
+ | '3d-texture'
10827
+ | '3d-texture-albedo'
10828
+ | '3d-texture-metallic'
10829
+ | '3d-texture-mtl'
10830
+ | '3d-texture-normal'
10831
+ | '3d-texture-roughness'
10832
+ | '3d23d'
10833
+ | '3d23d-texture'
10834
+ | 'audio2audio'
10835
+ | 'audio2txt'
10836
+ | 'audio2video'
10837
+ | 'background-removal'
10838
+ | 'canvas'
10839
+ | 'canvas-drawing'
10840
+ | 'canvas-export'
10841
+ | 'detection'
10842
+ | 'generative-fill'
10843
+ | 'image-prompt-editing'
10844
+ | 'img23d'
10845
+ | 'img2img'
10846
+ | 'img2splat'
10847
+ | 'img2txt'
10848
+ | 'img2video'
10849
+ | 'inference-controlnet'
10850
+ | 'inference-controlnet-img2img'
10851
+ | 'inference-controlnet-inpaint'
10852
+ | 'inference-controlnet-inpaint-ip-adapter'
10853
+ | 'inference-controlnet-ip-adapter'
10854
+ | 'inference-controlnet-reference'
10855
+ | 'inference-controlnet-texture'
10856
+ | 'inference-img2img'
10857
+ | 'inference-img2img-ip-adapter'
10858
+ | 'inference-img2img-texture'
10859
+ | 'inference-inpaint'
10860
+ | 'inference-inpaint-ip-adapter'
10861
+ | 'inference-reference'
10862
+ | 'inference-reference-texture'
10863
+ | 'inference-txt2img'
10864
+ | 'inference-txt2img-ip-adapter'
10865
+ | 'inference-txt2img-texture'
10866
+ | 'patch'
10867
+ | 'pixelization'
10868
+ | 'reframe'
10869
+ | 'restyle'
10870
+ | 'segment'
10871
+ | 'segmentation-image'
10872
+ | 'segmentation-mask'
10873
+ | 'skybox-3d'
10874
+ | 'skybox-base-360'
10875
+ | 'skybox-hdri'
10876
+ | 'texture'
10877
+ | 'texture-albedo'
10878
+ | 'texture-ao'
10879
+ | 'texture-edge'
10880
+ | 'texture-height'
10881
+ | 'texture-metallic'
10882
+ | 'texture-normal'
10883
+ | 'texture-smoothness'
10884
+ | 'txt23d'
10885
+ | 'txt2audio'
10886
+ | 'txt2img'
10887
+ | 'txt2txt'
10888
+ | 'txt2video'
10889
+ | 'unknown'
10890
+ | 'uploaded'
10891
+ | 'uploaded-3d'
10892
+ | 'uploaded-audio'
10893
+ | 'uploaded-avatar'
10894
+ | 'uploaded-text'
10895
+ | 'uploaded-video'
10896
+ | 'upscale'
10897
+ | 'upscale-skybox'
10898
+ | 'upscale-texture'
10899
+ | 'upscale-video'
10900
+ | 'vectorization'
10901
+ | 'video23d'
10902
+ | 'video2audio'
10903
+ | 'video2img'
10904
+ | 'video2video'
10905
+ | 'voice-clone';
10906
+
10907
+ /**
10908
+ * How angular is the surface? 0 is like a sphere, 1 is like a mechanical object
10909
+ */
10910
+ angular?: number;
10911
+
10912
+ /**
10913
+ * The optional aspect ratio given for the generation, only applicable for some
10914
+ * models
10915
+ */
10916
+ aspectRatio?: string;
10917
+
10918
+ backgroundOpacity?: number;
10919
+
10920
+ /**
10921
+ * The baseModelId that maybe changed at inference time
10922
+ */
10923
+ baseModelId?: string;
10924
+
10925
+ /**
10926
+ * A bounding box around the object of interest, in the format [x1, y1, x2, y2].
10927
+ */
10928
+ bbox?: Array<number>;
10929
+
10930
+ betterQuality?: boolean;
10931
+
10932
+ /**
10933
+ * The control image already processed by canny detector. Must reference an
10934
+ * existing AssetId.
10935
+ */
10936
+ cannyStructureImage?: string;
10937
+
10938
+ /**
10939
+ * Activate clustering.
10940
+ */
10941
+ clustering?: boolean;
10942
+
10943
+ /**
10944
+ * Ensure upscaled tile have the same color histogram as original tile.
10945
+ */
10946
+ colorCorrection?: boolean;
10947
+
10948
+ colorMode?: string;
10949
+
10950
+ colorPrecision?: number;
10951
+
10952
+ /**
10953
+ * Flux Kontext LoRA to style the image. For Flux Kontext Prompt Editing.
10954
+ */
10955
+ concepts?: Array<Metadata.Concept>;
10956
+
10957
+ contours?: Array<Array<Array<Array<number>>>>;
10958
+
10959
+ /**
10960
+ * End step for control.
10961
+ */
10962
+ controlEnd?: number;
10963
+
10964
+ /**
10965
+ * The date when the asset was copied to a project
10966
+ */
10967
+ copiedAt?: string;
10968
+
10969
+ cornerThreshold?: number;
10970
+
10971
+ /**
10972
+ * Allow the generation of "hallucinations" during the upscale process, which adds
10973
+ * additional details and deviates from the original image. Default: optimized for
10974
+ * your preset and style.
10975
+ */
10976
+ creativity?: number;
10977
+
10978
+ /**
10979
+ * Amount of decay in creativity over the upscale process. The lowest the value,
10980
+ * the less the creativity will be preserved over the upscale process.
10981
+ */
10982
+ creativityDecay?: number;
10983
+
10984
+ /**
10985
+ * If true, use the default parameters
10986
+ */
10987
+ defaultParameters?: boolean;
10988
+
10989
+ /**
10990
+ * The depth fidelity if a depth image provided
10991
+ */
10992
+ depthFidelity?: number;
10993
+
10994
+ /**
10995
+ * The control image processed by depth estimator. Must reference an existing
10996
+ * AssetId.
10997
+ */
10998
+ depthImage?: string;
10999
+
11000
+ /**
11001
+ * Amount of details to remove or add
11002
+ */
11003
+ detailsLevel?: number;
11004
+
11005
+ dilate?: number;
11006
+
11007
+ /**
11008
+ * Contrast factor for Grayscale detector
11009
+ */
11010
+ factor?: number;
11011
+
11012
+ /**
11013
+ * The name its parent's files reference it by (an OBJ's MTL, an MTL's texture),
11014
+ * kept as delivered.
11015
+ */
11016
+ fileName?: string;
11017
+
11018
+ filterSpeckle?: number;
11019
+
11020
+ /**
11021
+ * Determine the scale at which the upscale process works.
11022
+ *
11023
+ * - With a small value, the upscale works at the largest scale, resulting in fewer
11024
+ * added details and more coherent images. Ideal for portraits, for example.
11025
+ * - With a large value, the upscale works at the smallest scale, resulting in more
11026
+ * added details and more hallucinations. Ideal for landscapes, for example.
11027
+ *
11028
+ * (info): A small value is slower and more expensive to run.
11029
+ */
11030
+ fractality?: number;
11031
+
11032
+ /**
11033
+ * Apply extra control to the Skybox 360 geometry. The higher the value, the more
11034
+ * the 360 geometry will influence the generated skybox image.
11035
+ *
11036
+ * Use with caution. Default is adapted to the other parameters.
11037
+ */
11038
+ geometryEnforcement?: number;
11039
+
11040
+ /**
11041
+ * The guidance used to generate this asset
11042
+ */
11043
+ guidance?: number;
11044
+
11045
+ halfMode?: boolean;
11046
+
11047
+ hdr?: number;
11048
+
11049
+ height?: number;
11050
+
11051
+ /**
11052
+ * High threshold for Canny detector
11053
+ */
11054
+ highThreshold?: number;
11055
+
11056
+ /**
11057
+ * (deprecated) Horizontal expansion ratio.
11058
+ */
11059
+ horizontalExpansionRatio?: number;
11060
+
11061
+ /**
11062
+ * The input image to process. Must reference an existing AssetId or be a data URL.
11063
+ */
11064
+ image?: string;
11065
+
11066
+ /**
11067
+ * Strengthen the similarity to the original image during the upscale. Default:
11068
+ * optimized for your preset and style.
11069
+ */
11070
+ imageFidelity?: number;
11071
+
11072
+ /**
11073
+ * Preserve the seamless properties of skybox or texture images. Input has to be of
11074
+ * same type (seamless).
11075
+ */
11076
+ imageType?: 'seamfull' | 'skybox' | 'texture';
11077
+
11078
+ /**
11079
+ * The id of the Inference describing how this image was generated
11080
+ */
11081
+ inferenceId?: string;
11082
+
11083
+ /**
11084
+ * When set to `high`, allows to better preserve details from the input images in
11085
+ * the output. This is especially useful when using images that contain elements
11086
+ * like faces or logos that require accurate preservation in the generated image.
11087
+ *
11088
+ * You can provide multiple input images that will all be preserved with high
11089
+ * fidelity, but keep in mind that the first image will be preserved with richer
11090
+ * textures and finer details, so if you include elements such as faces, consider
11091
+ * placing them in the first image.
11092
+ *
11093
+ * Only available for the `gpt-image-1` model.
11094
+ */
11095
+ inputFidelity?: 'high' | 'low';
11096
+
11097
+ /**
11098
+ * Location of the input image in the output.
11099
+ */
11100
+ inputLocation?: 'bottom' | 'left' | 'middle' | 'right' | 'top';
11101
+
11102
+ /**
11103
+ * To invert the relief
11104
+ */
11105
+ invert?: boolean;
11106
+
11107
+ /**
11108
+ * Its own references (an OBJ's `mtllib`, an MTL's maps) were kept as delivered.
11109
+ */
11110
+ keepsFileNames?: boolean;
11111
+
11112
+ /**
11113
+ * How polished is the surface? 0 is like a rough surface, 1 is like a mirror
11114
+ */
11115
+ keypointThreshold?: number;
11116
+
11117
+ layerDifference?: number;
11118
+
11119
+ lengthThreshold?: number;
11120
+
11121
+ /**
11122
+ * The ISO timestamp when the lock on the canvas will expire
11123
+ */
11124
+ lockExpiresAt?: string;
11125
+
11126
+ /**
11127
+ * Low threshold for Canny detector
11128
+ */
11129
+ lowThreshold?: number;
11130
+
11131
+ /**
11132
+ * The mask used for the asset generation or editing
11133
+ */
11134
+ mask?: string;
11135
+
11136
+ maxIterations?: number;
11137
+
11138
+ /**
11139
+ * Maximum threshold for Grayscale conversion
11140
+ */
11141
+ maxThreshold?: number;
11142
+
11143
+ /**
11144
+ * Minimum threshold for Grayscale conversion
11145
+ */
11146
+ minThreshold?: number;
11147
+
11148
+ /**
11149
+ * Modality to detect
11150
+ */
11151
+ modality?:
11152
+ | 'canny'
11153
+ | 'depth'
11154
+ | 'grayscale'
11155
+ | 'lineart_anime'
11156
+ | 'mlsd'
11157
+ | 'normal'
11158
+ | 'pose'
11159
+ | 'scribble'
11160
+ | 'segmentation'
11161
+ | 'sketch';
11162
+
11163
+ mode?: string;
11164
+
11165
+ /**
11166
+ * The modelId used to generate this asset
11167
+ */
11168
+ modelId?: string;
11169
+
11170
+ /**
11171
+ * The type of the generator used
11172
+ */
11173
+ modelType?:
11174
+ | 'custom'
11175
+ | 'elevenlabs-voice'
11176
+ | 'flux.1'
11177
+ | 'flux.1-composition'
11178
+ | 'flux.1-kontext-dev'
11179
+ | 'flux.1-kontext-lora'
11180
+ | 'flux.1-krea-dev'
11181
+ | 'flux.1-krea-lora'
11182
+ | 'flux.1-lora'
11183
+ | 'flux.1-pro'
11184
+ | 'flux.1.1-pro-ultra'
11185
+ | 'flux.2-dev-edit-lora'
11186
+ | 'flux.2-dev-lora'
11187
+ | 'flux.2-klein-4b-edit-lora'
11188
+ | 'flux.2-klein-4b-lora'
11189
+ | 'flux.2-klein-9b-edit-lora'
11190
+ | 'flux.2-klein-9b-lora'
11191
+ | 'flux.2-klein-base-4b-edit-lora'
11192
+ | 'flux.2-klein-base-4b-lora'
11193
+ | 'flux.2-klein-base-9b-edit-lora'
11194
+ | 'flux.2-klein-base-9b-lora'
11195
+ | 'flux1.1-pro'
11196
+ | 'gpt-image-1'
11197
+ | 'qwen-image-2512-lora'
11198
+ | 'qwen-image-edit-2509-lora'
11199
+ | 'qwen-image-edit-2511-lora'
11200
+ | 'qwen-image-edit-lora'
11201
+ | 'qwen-image-lora'
11202
+ | 'zimage-de-turbo-lora'
11203
+ | 'zimage-lora'
11204
+ | 'zimage-turbo-lora';
11205
+
11206
+ name?: string;
11207
+
11208
+ nbMasks?: number;
11209
+
11210
+ /**
11211
+ * The negative prompt used to generate this asset
11212
+ */
11213
+ negativePrompt?: string;
11214
+
11215
+ /**
11216
+ * Controls the influence of the negative prompt. Default 0 means the negative
11217
+ * prompt has no effect. Higher values increase negative prompt influence. Must
11218
+ * be > 0 if negativePrompt is provided.
11219
+ */
11220
+ negativePromptStrength?: number;
11221
+
11222
+ /**
11223
+ * The number of denoising steps for each image generation.
11224
+ */
11225
+ numInferenceSteps?: number;
11226
+
11227
+ /**
11228
+ * The number of outputs to generate.
11229
+ */
11230
+ numOutputs?: number;
11231
+
11232
+ originalAssetId?: string;
11233
+
11234
+ outputIndex?: number;
11235
+
11236
+ /**
11237
+ * Overlap percentage for the output image.
11238
+ */
11239
+ overlapPercentage?: number;
11240
+
11241
+ /**
11242
+ * Override the embeddings of the model. Only your prompt and negativePrompt will
11243
+ * be used. Use with caution.
11244
+ */
11245
+ overrideEmbeddings?: boolean;
11246
+
11247
+ parentId?: string;
11248
+
11249
+ parentJobId?: string;
11250
+
11251
+ pathPrecision?: number;
11252
+
11253
+ /**
11254
+ * List of points (label, x, y) in the image where label = 0 for background and 1
11255
+ * for object.
11256
+ */
11257
+ points?: Array<Array<number>>;
11258
+
11259
+ /**
11260
+ * How polished is the surface? 0 is like a rough surface, 1 is like a mirror
11261
+ */
11262
+ polished?: number;
11263
+
11264
+ preset?: string;
11265
+
11266
+ progressPercent?: number;
11267
+
11268
+ /**
11269
+ * The prompt that guided the asset generation or editing
11270
+ */
11271
+ prompt?: string;
11272
+
11273
+ /**
11274
+ * Increase the fidelity to the prompt during upscale. Default: optimized for your
11275
+ * preset and style.
11276
+ */
11277
+ promptFidelity?: number;
11278
+
11279
+ /**
11280
+ * How raised is the surface? 0 is flat like water, 1 is like a very rough rock
11281
+ */
11282
+ raised?: number;
11283
+
11284
+ /**
11285
+ * The reference images used for the asset generation or editing
11286
+ */
11287
+ referenceImages?: Array<string>;
11288
+
11289
+ /**
11290
+ * Additional refinement steps before scaling.
11291
+ *
11292
+ * If scalingFactor == 1, the refinement process will be applied (1 +
11293
+ * refinementSteps) times. If scalingFactor > 1, the refinement process will be
11294
+ * applied refinementSteps times.
11295
+ */
11296
+ refinementSteps?: number;
11297
+
11298
+ /**
11299
+ * Remove background for Grayscale detector
11300
+ */
11301
+ removeBackground?: boolean;
11302
+
11303
+ /**
11304
+ * Size proportion of the input image in the output.
11305
+ */
11306
+ resizeOption?: number;
11307
+
11308
+ /**
11309
+ * Boolean to output the contours.
11310
+ */
11311
+ resultContours?: boolean;
11312
+
11313
+ /**
11314
+ * Boolean to return the source image with the mask applied as alpha channel (RGBA
11315
+ * PNG, transparent background) instead of the binary mask. Mutually exclusive with
11316
+ * `resultMask` — passing both as `true` returns a 400 error. Note:
11317
+ * `backgroundOpacity` is no longer honored — alpha is binary (0/255) only.
11318
+ */
11319
+ resultImage?: boolean;
11320
+
11321
+ /**
11322
+ * Boolean to return the binary masks in the response. Mutually exclusive with
11323
+ * `resultImage` — passing both as `true` returns a 400 error.
11324
+ */
11325
+ resultMask?: boolean;
11326
+
11327
+ rootParentId?: string;
11328
+
11329
+ /**
11330
+ * Save a flipbook of the texture. Deactivated when the input texture is larger
11331
+ * than 2048x2048px
11332
+ */
11333
+ saveFlipbook?: boolean;
11334
+
11335
+ /**
11336
+ * Scaling factor (when `targetWidth` not specified)
11337
+ */
11338
+ scalingFactor?: number;
11339
+
11340
+ /**
11341
+ * The scheduler used to generate this asset
11342
+ */
11343
+ scheduler?: string;
11344
+
11345
+ /**
11346
+ * The seed used to generate this asset. <!> Can be a string or a number in some
11347
+ * cases <!>.
11348
+ */
11349
+ seed?: string;
11350
+
11351
+ /**
11352
+ * Sharpen tiles.
11353
+ */
11354
+ sharpen?: boolean;
11355
+
11356
+ /**
11357
+ * How shiny is the surface? 0 is like a matte surface, 1 is like a diamond
11358
+ */
11359
+ shiny?: number;
11360
+
11361
+ size?: number;
11362
+
11363
+ /**
11364
+ * Activate sketch detection instead of canny.
11365
+ */
11366
+ sketch?: boolean;
11367
+
11368
+ sourceProjectId?: string;
11369
+
11370
+ spliceThreshold?: number;
11371
+
11372
+ /**
11373
+ * The strength
11374
+ *
11375
+ * Only available for the `flux-kontext` LoRA model.
11376
+ */
11377
+ strength?: number;
11378
+
11379
+ /**
11380
+ * Strength for the input image structure preservation
11381
+ */
11382
+ structureFidelity?: number;
11383
+
11384
+ /**
11385
+ * The control image for structure. A canny detector will be applied to this image.
11386
+ * Must reference an existing AssetId.
11387
+ */
11388
+ structureImage?: string;
11389
+
11390
+ style?:
11391
+ | '3d-cartoon'
11392
+ | '3d-rendered'
11393
+ | 'anime'
11394
+ | 'cartoon'
11395
+ | 'cinematic'
11396
+ | 'claymation'
11397
+ | 'cloud-skydome'
11398
+ | 'comic'
11399
+ | 'cyberpunk'
11400
+ | 'enchanted'
11401
+ | 'fantasy'
11402
+ | 'ink'
11403
+ | 'manga'
11404
+ | 'manga-color'
11405
+ | 'minimalist'
11406
+ | 'neon-tron'
11407
+ | 'oil-painting'
11408
+ | 'pastel'
11409
+ | 'photo'
11410
+ | 'photography'
11411
+ | 'psychedelic'
11412
+ | 'retro-fantasy'
11413
+ | 'scifi-concept-art'
11414
+ | 'space'
11415
+ | 'standard'
11416
+ | 'whimsical';
11417
+
11418
+ /**
11419
+ * The higher the value the more it will look like the style image(s)
11420
+ */
11421
+ styleFidelity?: number;
11422
+
11423
+ /**
11424
+ * List of style images. Most of the time, only one image is enough. It must be
11425
+ * existing AssetIds.
11426
+ */
11427
+ styleImages?: Array<string>;
11428
+
11429
+ /**
11430
+ * Condition the influence of the style image(s). The higher the value, the more
11431
+ * the style images will influence the upscaled image.
11432
+ */
11433
+ styleImagesFidelity?: number;
11434
+
11435
+ /**
11436
+ * The target height of the output image.
11437
+ */
11438
+ targetHeight?: number;
11439
+
11440
+ /**
11441
+ * Target width for the upscaled image, take priority over scaling factor
11442
+ */
11443
+ targetWidth?: number;
11444
+
11445
+ /**
11446
+ * A textual description / keywords describing the object of interest.
11447
+ */
11448
+ text?: string;
11449
+
11450
+ /**
11451
+ * The asset to convert in texture maps. Must reference an existing AssetId.
11452
+ */
11453
+ texture?: string;
11454
+
11455
+ /**
11456
+ * The thumbnail of the canvas
11457
+ */
11458
+ thumbnail?: Metadata.Thumbnail;
11459
+
11460
+ /**
11461
+ * If set to true, during the upscaling process, the model will match tiles of the
11462
+ * source image with tiles of the style image(s). This will result in a more
11463
+ * coherent restyle. Works best with style images that have a similar composition.
11464
+ */
11465
+ tileStyle?: boolean;
11466
+
11467
+ trainingImage?: boolean;
11468
+
11469
+ /**
11470
+ * (deprecated) Vertical expansion ratio.
11471
+ */
11472
+ verticalExpansionRatio?: number;
11473
+
11474
+ /**
11475
+ * The width of the rendered image.
11476
+ */
11477
+ width?: number;
11478
+ }
11479
+
11480
+ export namespace Metadata {
11481
+ export interface Concept {
11482
+ /**
11483
+ * The model ID (example: "model_eyVcnFJcR92BxBkz7N6g5w")
11484
+ */
11485
+ modelId: string;
11486
+
11487
+ /**
11488
+ * The scale of the model (example: 1.0) For Flux Kontext Prompt Editing, the scale
11489
+ * is between 0 and 2.
11490
+ */
11491
+ scale: number;
11492
+
11493
+ /**
11494
+ * The epoch of the model (example: "000001") Only available for Flux Lora Trained
11495
+ * models
11496
+ */
11497
+ modelEpoch?: string;
11498
+ }
11499
+
11500
+ /**
11501
+ * The thumbnail of the canvas
11502
+ */
11503
+ export interface Thumbnail {
11504
+ /**
11505
+ * The AssetId of the image used as a thumbnail for the canvas (example:
11506
+ * "asset_GTrL3mq4SXWyMxkOHRxlpw")
11507
+ */
11508
+ assetId: string;
11509
+
11510
+ /**
11511
+ * The url of the image used as a thumbnail for the canvas
11512
+ */
11513
+ url: string;
11514
+ }
11515
+ }
11516
+
11517
+ /**
11518
+ * The properties of the asset, content may depend on the kind of asset returned
11519
+ */
11520
+ export interface Properties {
11521
+ size: number;
11522
+
11523
+ /**
11524
+ * Number of animation frames if animations exist
11525
+ */
11526
+ animationFrameCount?: number;
11527
+
11528
+ /**
11529
+ * Bitrate of the media in bits per second
11530
+ */
11531
+ bitrate?: number;
11532
+
11533
+ /**
11534
+ * Number of bones if skeleton exists
11535
+ */
11536
+ boneCount?: number;
11537
+
11538
+ /**
11539
+ * Recommended preview camera mode emitted by the generator (gsplat route); passed
11540
+ * through to mesh-rendering verbatim.
11541
+ */
11542
+ cameraMode?: 'aerial' | 'interior' | 'turntable';
11543
+
11544
+ /**
11545
+ * Recommended preview camera path emitted by the generator (gsplat route); passed
11546
+ * through to mesh-rendering verbatim.
11547
+ */
11548
+ cameraTrajectory?: Array<Properties.CameraTrajectory>;
11549
+
11550
+ /**
11551
+ * Number of channels of the audio
11552
+ */
11553
+ channels?: number;
11554
+
11555
+ /**
11556
+ * Number of Unicode code points in the text. Code-point-aware (so a non-BMP emoji
11557
+ * counts as 1) but not full grapheme-cluster aware (a ZWJ sequence still counts as
11558
+ * several).
11559
+ */
11560
+ charCount?: number;
11561
+
11562
+ /**
11563
+ * Classification of the audio
11564
+ */
11565
+ classification?: 'effect' | 'interview' | 'music' | 'other' | 'sound' | 'speech' | 'text' | 'unknown';
11566
+
11567
+ /**
11568
+ * Codec name of the media
11569
+ */
11570
+ codecName?: string;
11571
+
11572
+ /**
11573
+ * Description of the audio
11574
+ */
11575
+ description?: string;
11576
+
11577
+ /**
11578
+ * Bounding box dimensions [width, height, depth]
11579
+ */
11580
+ dimensions?: Array<number>;
11581
+
11582
+ /**
11583
+ * Duration of the media in seconds
11584
+ */
11585
+ duration?: number;
11586
+
11587
+ /**
11588
+ * Number of faces/triangles in the mesh
11589
+ */
11590
+ faceCount?: number;
11591
+
11592
+ /**
11593
+ * Format of the mesh file (e.g. 'glb', etc.)
11594
+ */
11595
+ format?: string;
11596
+
11597
+ /**
11598
+ * Frame rate of the video in frames per second
11599
+ */
11600
+ frameRate?: number;
11601
+
11602
+ /**
11603
+ * Whether the mesh has animations
11604
+ */
11605
+ hasAnimations?: boolean;
11606
+
11607
+ /**
11608
+ * True when `preview` holds the entire content unmodified — consumers can use it
11609
+ * directly without fetching `asset.url`. False or undefined means the content
11610
+ * exceeds the preview budget and consumers must fetch the full body from S3 to
11611
+ * read past the preview.
11612
+ */
11613
+ hasFullPreview?: boolean;
11614
+
11615
+ /**
11616
+ * Whether the mesh has normal vectors
11617
+ */
11618
+ hasNormals?: boolean;
11619
+
11620
+ /**
11621
+ * Whether the mesh has bones/skeleton
11622
+ */
11623
+ hasSkeleton?: boolean;
11624
+
11625
+ /**
11626
+ * Whether the mesh has UV coordinates
11627
+ */
11628
+ hasUVs?: boolean;
11629
+
11630
+ height?: number;
11631
+
11632
+ /**
11633
+ * Number of frames in the video
11634
+ */
11635
+ nbFrames?: number;
11636
+
11637
+ /**
11638
+ * Leading slice of the content used for inline UI display and as a search
11639
+ * shortcut. Capped at TEXT_PREVIEW_MAX_BYTES (UTF-8) and always cut on a
11640
+ * code-point boundary so no character is split. Number of characters in the
11641
+ * preview varies by script (around 1024 for ASCII, ~340 for CJK, ~256 for
11642
+ * emoji-heavy text at the default 1 KB budget).
11643
+ */
11644
+ preview?: string;
11645
+
11646
+ /**
11647
+ * Sample rate of the media in Hz
11648
+ */
11649
+ sampleRate?: number;
11650
+
11651
+ /**
11652
+ * Transcription of the audio
11653
+ */
11654
+ transcription?: Properties.Transcription;
11655
+
11656
+ /**
11657
+ * Number of vertices in the mesh
11658
+ */
11659
+ vertexCount?: number;
11660
+
11661
+ width?: number;
11662
+
11663
+ /**
11664
+ * Number of whitespace-separated words in the text
11665
+ */
11666
+ wordCount?: number;
11667
+ }
11668
+
11669
+ export namespace Properties {
11670
+ /**
11671
+ * One explicit camera keyframe for the splat route. Several are interpolated over
11672
+ * the requested frames into an orbit/fly-through; a single keyframe renders a
11673
+ * static view. Overrides {@link SplatCameraMode} when provided.
11674
+ */
11675
+ export interface CameraTrajectory {
11676
+ /**
11677
+ * Camera eye position in the splat's world frame.
11678
+ */
11679
+ position: Array<number>;
11680
+
11681
+ /**
11682
+ * Look-at point in the splat's world frame.
11683
+ */
11684
+ target: Array<number>;
11685
+
11686
+ /**
11687
+ * Vertical field of view in degrees (defaults to 50 in the renderer).
11688
+ */
11689
+ fov?: number;
11690
+ }
11691
+
11692
+ /**
11693
+ * Transcription of the audio
11694
+ */
11695
+ export interface Transcription {
11696
+ text: string;
11697
+ }
11698
+ }
11699
+
11700
+ /**
11701
+ * The video asset's first frame.
11702
+ *
11703
+ * Contains the assetId and the url of the first frame.
11704
+ */
11705
+ export interface FirstFrame {
11706
+ assetId: string;
11707
+
11708
+ url: string;
11709
+ }
11710
+
11711
+ /**
11712
+ * The video asset's last frame.
11713
+ *
11714
+ * Contains the assetId and the url of the last frame.
11715
+ */
11716
+ export interface LastFrame {
11717
+ assetId: string;
11718
+
11719
+ url: string;
11720
+ }
11721
+
11722
+ /**
11723
+ * The asset's preview.
11724
+ *
11725
+ * Contains the assetId and the url of the preview.
11726
+ */
11727
+ export interface Preview {
11728
+ assetId: string;
11729
+
11730
+ url: string;
11731
+ }
11732
+
11733
+ /**
11734
+ * Quality Gate result, computed asynchronously after generation.
11735
+ *
11736
+ * `details` (the per-dimension reasons and suggestions) is returned only when the
11737
+ * asset is read with `withQualityGateDetails=true`.
11738
+ */
11739
+ export interface QualityGate {
11740
+ /**
11741
+ * ISO-8601 timestamp of when scoring ran
11742
+ */
11743
+ computedAt: string;
11744
+
11745
+ /**
11746
+ * Whether scoring succeeded or errored
11747
+ */
11748
+ status: 'error' | 'scored';
11749
+
11750
+ /**
11751
+ * Rubric/model version that produced this result
11752
+ */
11753
+ version: string;
11754
+
11755
+ /**
11756
+ * Generic AI-quality sub-score
11757
+ */
11758
+ aiQualityScore?: number;
11759
+
11760
+ /**
11761
+ * Ids of briefs that contributed
11762
+ */
11763
+ appliedBriefIds?: Array<string>;
11764
+
11765
+ /**
11766
+ * Brief-compliance sub-score (omitted when no brief applied)
11767
+ */
11768
+ briefComplianceScore?: number;
11769
+
11770
+ /**
11771
+ * Per-dimension reasons and suggestions, as produced by the detector.
11772
+ *
11773
+ * Returned only when the asset is read with `withQualityGateDetails=true` by the
11774
+ * project that owns it — the brief-compliance text paraphrases that project's
11775
+ * brief, so a cross-project read of a public asset gets the summary alone. Also
11776
+ * omitted when the archived verdict is unavailable (asset scored by an older
11777
+ * version, or an unreadable archive).
11778
+ */
11779
+ details?: QualityGate.Details;
11780
+
11781
+ /**
11782
+ * Error message when status is 'error' (truncated)
11783
+ */
11784
+ error?: string;
11785
+
11786
+ /**
11787
+ * 0–100 composite score (present when status is 'scored')
11788
+ */
11789
+ overallScore?: number;
11790
+
11791
+ /**
11792
+ * Sensitivity used for the verdict
11793
+ */
11794
+ sensitivity?: 'high' | 'low' | 'medium';
11795
+
11796
+ /**
11797
+ * pass / warn / fail (present when status is 'scored')
11798
+ */
11799
+ verdict?: 'fail' | 'pass' | 'warn';
11800
+ }
11801
+
11802
+ export namespace QualityGate {
11803
+ /**
11804
+ * Per-dimension reasons and suggestions, as produced by the detector.
11805
+ *
11806
+ * Returned only when the asset is read with `withQualityGateDetails=true` by the
11807
+ * project that owns it — the brief-compliance text paraphrases that project's
11808
+ * brief, so a cross-project read of a public asset gets the summary alone. Also
11809
+ * omitted when the archived verdict is unavailable (asset scored by an older
11810
+ * version, or an unreadable archive).
11811
+ */
11812
+ export interface Details {
11813
+ /**
11814
+ * Always-on generic AI-quality dimension
11815
+ */
11816
+ aiQuality: Details.AIQuality;
11817
+
11818
+ /**
11819
+ * Brief-compliance dimension; omitted when no brief applied
11820
+ */
11821
+ briefCompliance?: Details.BriefCompliance;
11822
+ }
11823
+
11824
+ export namespace Details {
11825
+ /**
11826
+ * Always-on generic AI-quality dimension
11827
+ */
11828
+ export interface AIQuality {
11829
+ /**
11830
+ * Why the image scored as it did
11831
+ */
11832
+ reasons: Array<string>;
11833
+
11834
+ /**
11835
+ * 0–100; higher is better (more compliant / less AI-looking)
11836
+ */
11837
+ score: number;
11838
+
11839
+ /**
11840
+ * Actionable suggestions to improve the score
11841
+ */
11842
+ suggestions: Array<string>;
11843
+ }
11844
+
11845
+ /**
11846
+ * Brief-compliance dimension; omitted when no brief applied
11847
+ */
11848
+ export interface BriefCompliance {
11849
+ /**
11850
+ * Why the image scored as it did
11851
+ */
11852
+ reasons: Array<string>;
11853
+
11854
+ /**
11855
+ * 0–100; higher is better (more compliant / less AI-looking)
11856
+ */
11857
+ score: number;
11858
+
11859
+ /**
11860
+ * Actionable suggestions to improve the score
11861
+ */
11862
+ suggestions: Array<string>;
11863
+ }
11864
+ }
11865
+ }
11866
+
11867
+ /**
11868
+ * The asset's thumbnail.
11869
+ *
11870
+ * Contains the assetId and the url of the thumbnail.
11871
+ */
11872
+ export interface Thumbnail {
11873
+ assetId: string;
11874
+
11875
+ url: string;
11876
+ }
11877
+ }
11878
+
11879
+ /**
11880
+ * Brief-compliance dimension; omitted when no brief applied
11881
+ */
11882
+ export interface BriefCompliance {
11883
+ /**
11884
+ * Why the image scored as it did
11885
+ */
11886
+ reasons: Array<string>;
11887
+
11888
+ /**
11889
+ * 0–100; higher is better (more compliant / less AI-looking)
11890
+ */
11891
+ score: number;
11892
+
11893
+ /**
11894
+ * Actionable suggestions to improve the score
11895
+ */
11896
+ suggestions: Array<string>;
11897
+ }
11898
+
11899
+ /**
11900
+ * Compute Units cost per billing action for this request, after discount. Values
11901
+ * sum to `creativeUnitsCost`. Only Compute-Units-consuming actions with a non-zero
11902
+ * charge appear. Lets clients split the total (e.g. generation vs `quality-gate`)
11903
+ * — including on dryRun estimates.
11904
+ */
11905
+ export interface CostDetails {
11906
+ 'assistant-message'?: number;
11907
+
11908
+ caption?: number;
11909
+
11910
+ 'custom-generation'?: number;
11911
+
11912
+ 'describe-style'?: number;
11913
+
11914
+ detection?: number;
11915
+
11916
+ embed?: number;
11917
+
11918
+ 'image-prompt-editing'?: number;
11919
+
11920
+ 'inference-images'?: number;
11921
+
11922
+ 'ip-detection'?: number;
11923
+
11924
+ pixelate?: number;
11925
+
11926
+ prompt?: number;
11927
+
11928
+ 'quality-gate'?: number;
11929
+
11930
+ 'remove-background'?: number;
11931
+
11932
+ repaint?: number;
11933
+
11934
+ restyle?: number;
11935
+
11936
+ segmentation?: number;
11937
+
11938
+ 'skybox-base-360'?: number;
11939
+
11940
+ 'skybox-upscale-360'?: number;
11941
+
11942
+ texture?: number;
11943
+
11944
+ 'train-model'?: number;
11945
+
11946
+ translate?: number;
11947
+
11948
+ upscale?: number;
11949
+
11950
+ vectorization?: number;
11951
+ }
11952
+
11953
+ /**
11954
+ * IP detection findings, when detection ran for this request.
11955
+ */
11956
+ export interface IPDetection {
11957
+ /**
11958
+ * Whether and how detection affected the request.
11959
+ */
11960
+ action: 'allowed' | 'blocked' | 'flagged';
11961
+
11962
+ /**
11963
+ * Number of images the detectors actually analyzed — a video counts as each of its
11964
+ * extracted frames, and an image that could not be read is excluded (and not
11965
+ * billed). Each of them is priced once per enabled filter.
11966
+ */
11967
+ analyzedImagesCount: number;
11968
+
11969
+ /**
11970
+ * IP-detection CU fee, separate from creativeUnitsCost: it follows the provider
11971
+ * tokens the run sends — the prompt plus every analyzed image, once per enabled
11972
+ * filter — with a 1 CU minimum per run.
11973
+ */
11974
+ creativeUnitsCharged: number;
11975
+
11976
+ /**
11977
+ * Number of enabled filters evaluated for this request.
11978
+ */
11979
+ evaluatedFilters: number;
11980
+
11981
+ /**
11982
+ * Per-filter verdicts gathered for this request.
11983
+ */
11984
+ findings: Array<IPDetection.Finding>;
11985
+
11986
+ /**
11987
+ * Whether a filter considered the inputs an IP risk. Independent of `action`: a
11988
+ * request blocked because a detector errored is `blocked` and NOT flagged.
11989
+ */
11990
+ flagged: boolean;
11991
+
11992
+ /**
11993
+ * True if one or more detectors errored while evaluating this request.
11994
+ */
11995
+ hasDetectorError?: boolean;
11996
+ }
11997
+
11998
+ export namespace IPDetection {
11999
+ /**
12000
+ * A single filter's verdict.
12001
+ */
12002
+ export interface Finding {
12003
+ /**
12004
+ * Category of the filter that produced this verdict.
12005
+ */
12006
+ category: 'artist-style' | 'brand-trademark' | 'celebrity-likeness' | 'custom' | 'fictional-character';
12007
+
12008
+ /**
12009
+ * Confidence score from 0 (low) to 1 (high).
12010
+ */
12011
+ confidence: number;
12012
+
12013
+ /**
12014
+ * Identifier of the filter that produced this verdict.
12015
+ */
12016
+ filterId: string;
12017
+
12018
+ /**
12019
+ * Display name of the filter that produced this verdict.
12020
+ */
12021
+ filterName: string;
12022
+
12023
+ /**
12024
+ * Whether this filter considered the request an IP risk.
12025
+ */
12026
+ flagged: boolean;
12027
+
12028
+ /**
12029
+ * Short, user-facing explanation of the verdict.
12030
+ */
12031
+ reason: string;
12032
+
12033
+ /**
12034
+ * Named entities the filter recognized (e.g. characters, brands, people).
12035
+ */
12036
+ entities?: Array<string>;
12037
+ }
12038
+ }
12039
+ }
12040
+
12041
+ export interface GenerateRunModelResponse {
12042
+ job: GenerateRunModelResponse.Job;
10009
12043
 
10010
12044
  /**
10011
12045
  * Compute Units cost per billing action for this request, after discount. Values
@@ -10216,6 +12250,7 @@ export namespace GenerateRunModelResponse {
10216
12250
  | 'remove-background'
10217
12251
  | 'transform'
10218
12252
  | 'user-approval'
12253
+ | 'user-selection'
10219
12254
  | 'workflow';
10220
12255
 
10221
12256
  /**
@@ -10246,14 +12281,15 @@ export namespace GenerateRunModelResponse {
10246
12281
  includeOutputsInWorkflowJob?: true;
10247
12282
 
10248
12283
  /**
10249
- * The inputs of the node.
12284
+ * The inputs of the node. For a user-selection node, the array input's `min`/`max`
12285
+ * bound how many items the user may pick (defaults: 1 and 100); conditional
12286
+ * connections may be present as additional inputs.
10250
12287
  */
10251
12288
  inputs?: Array<Flow.Input>;
10252
12289
 
10253
12290
  /**
10254
- * Statically-configured items for a List node. The node outputs this array as-is
10255
- * when executed. Only available for List nodes. The values can be strings,
10256
- * numbers, or asset IDs.
12291
+ * Statically-configured items for a List node, or the frozen candidate list of a
12292
+ * UserSelection node. The values can be strings, numbers, or asset IDs.
10257
12293
  */
10258
12294
  items?: Array<string>;
10259
12295
 
@@ -10533,8 +12569,7 @@ export namespace GenerateRunModelResponse {
10533
12569
  * - \`ifNotDefined\`: Input is required when another specified input is not
10534
12570
  * defined
10535
12571
  * - \`ifDefined\`: Input is required when another specified input is defined
10536
- * - \`conditionalValues\`: Input is required when another input has a specific
10537
- * value
12572
+ * - \`conditional\`: Input is required when other inputs have specific values
10538
12573
  *
10539
12574
  * By default, the input is not required.
10540
12575
  */
@@ -10764,8 +12799,7 @@ export namespace GenerateRunModelResponse {
10764
12799
  * - \`ifNotDefined\`: Input is required when another specified input is not
10765
12800
  * defined
10766
12801
  * - \`ifDefined\`: Input is required when another specified input is defined
10767
- * - \`conditionalValues\`: Input is required when another input has a specific
10768
- * value
12802
+ * - \`conditional\`: Input is required when other inputs have specific values
10769
12803
  *
10770
12804
  * By default, the input is not required.
10771
12805
  */
@@ -10822,8 +12856,7 @@ export namespace GenerateRunModelResponse {
10822
12856
  * - \`ifNotDefined\`: Input is required when another specified input is not
10823
12857
  * defined
10824
12858
  * - \`ifDefined\`: Input is required when another specified input is defined
10825
- * - \`conditionalValues\`: Input is required when another input has a specific
10826
- * value
12859
+ * - \`conditional\`: Input is required when other inputs have specific values
10827
12860
  *
10828
12861
  * By default, the input is not required.
10829
12862
  */
@@ -10834,12 +12867,9 @@ export namespace GenerateRunModelResponse {
10834
12867
  always?: boolean;
10835
12868
 
10836
12869
  /**
10837
- * Makes this input required when another input has a specific value:
10838
- *
10839
- * - Key: name of the input to check
10840
- * - Value: operation and allowed values that trigger the requirement
12870
+ * Makes this input required when other inputs have one of the listed values
10841
12871
  */
10842
- conditionalValues?: unknown;
12872
+ conditional?: Required.Conditional;
10843
12873
 
10844
12874
  /**
10845
12875
  * Makes this input required when another input is defined:
@@ -10857,6 +12887,26 @@ export namespace GenerateRunModelResponse {
10857
12887
  */
10858
12888
  ifNotDefined?: unknown;
10859
12889
  }
12890
+
12891
+ export namespace Required {
12892
+ /**
12893
+ * Makes this input required when other inputs have one of the listed values
12894
+ */
12895
+ export interface Conditional {
12896
+ /**
12897
+ * The conditions to check:
12898
+ *
12899
+ * - Key: name of the input to check
12900
+ * - Value: values of that input that satisfy the condition
12901
+ */
12902
+ values: unknown;
12903
+
12904
+ /**
12905
+ * How the conditions combine: \`and\` (all must match) or \`or\` (any must match)
12906
+ */
12907
+ operator?: 'and' | 'or';
12908
+ }
12909
+ }
10860
12910
  }
10861
12911
 
10862
12912
  /**
@@ -10897,8 +12947,7 @@ export namespace GenerateRunModelResponse {
10897
12947
  * - \`ifNotDefined\`: Input is required when another specified input is not
10898
12948
  * defined
10899
12949
  * - \`ifDefined\`: Input is required when another specified input is defined
10900
- * - \`conditionalValues\`: Input is required when another input has a specific
10901
- * value
12950
+ * - \`conditional\`: Input is required when other inputs have specific values
10902
12951
  *
10903
12952
  * By default, the input is not required.
10904
12953
  */
@@ -10909,12 +12958,9 @@ export namespace GenerateRunModelResponse {
10909
12958
  always?: boolean;
10910
12959
 
10911
12960
  /**
10912
- * Makes this input required when another input has a specific value:
10913
- *
10914
- * - Key: name of the input to check
10915
- * - Value: operation and allowed values that trigger the requirement
12961
+ * Makes this input required when other inputs have one of the listed values
10916
12962
  */
10917
- conditionalValues?: unknown;
12963
+ conditional?: Required.Conditional;
10918
12964
 
10919
12965
  /**
10920
12966
  * Makes this input required when another input is defined:
@@ -10932,6 +12978,26 @@ export namespace GenerateRunModelResponse {
10932
12978
  */
10933
12979
  ifNotDefined?: unknown;
10934
12980
  }
12981
+
12982
+ export namespace Required {
12983
+ /**
12984
+ * Makes this input required when other inputs have one of the listed values
12985
+ */
12986
+ export interface Conditional {
12987
+ /**
12988
+ * The conditions to check:
12989
+ *
12990
+ * - Key: name of the input to check
12991
+ * - Value: values of that input that satisfy the condition
12992
+ */
12993
+ values: unknown;
12994
+
12995
+ /**
12996
+ * How the conditions combine: \`and\` (all must match) or \`or\` (any must match)
12997
+ */
12998
+ operator?: 'and' | 'or';
12999
+ }
13000
+ }
10935
13001
  }
10936
13002
 
10937
13003
  /**
@@ -11408,6 +13474,7 @@ export namespace GenerateTranslateResponse {
11408
13474
  | 'remove-background'
11409
13475
  | 'transform'
11410
13476
  | 'user-approval'
13477
+ | 'user-selection'
11411
13478
  | 'workflow';
11412
13479
 
11413
13480
  /**
@@ -11438,14 +13505,15 @@ export namespace GenerateTranslateResponse {
11438
13505
  includeOutputsInWorkflowJob?: true;
11439
13506
 
11440
13507
  /**
11441
- * The inputs of the node.
13508
+ * The inputs of the node. For a user-selection node, the array input's `min`/`max`
13509
+ * bound how many items the user may pick (defaults: 1 and 100); conditional
13510
+ * connections may be present as additional inputs.
11442
13511
  */
11443
13512
  inputs?: Array<Flow.Input>;
11444
13513
 
11445
13514
  /**
11446
- * Statically-configured items for a List node. The node outputs this array as-is
11447
- * when executed. Only available for List nodes. The values can be strings,
11448
- * numbers, or asset IDs.
13515
+ * Statically-configured items for a List node, or the frozen candidate list of a
13516
+ * UserSelection node. The values can be strings, numbers, or asset IDs.
11449
13517
  */
11450
13518
  items?: Array<string>;
11451
13519
 
@@ -11725,8 +13793,7 @@ export namespace GenerateTranslateResponse {
11725
13793
  * - \`ifNotDefined\`: Input is required when another specified input is not
11726
13794
  * defined
11727
13795
  * - \`ifDefined\`: Input is required when another specified input is defined
11728
- * - \`conditionalValues\`: Input is required when another input has a specific
11729
- * value
13796
+ * - \`conditional\`: Input is required when other inputs have specific values
11730
13797
  *
11731
13798
  * By default, the input is not required.
11732
13799
  */
@@ -11956,8 +14023,7 @@ export namespace GenerateTranslateResponse {
11956
14023
  * - \`ifNotDefined\`: Input is required when another specified input is not
11957
14024
  * defined
11958
14025
  * - \`ifDefined\`: Input is required when another specified input is defined
11959
- * - \`conditionalValues\`: Input is required when another input has a specific
11960
- * value
14026
+ * - \`conditional\`: Input is required when other inputs have specific values
11961
14027
  *
11962
14028
  * By default, the input is not required.
11963
14029
  */
@@ -12014,8 +14080,7 @@ export namespace GenerateTranslateResponse {
12014
14080
  * - \`ifNotDefined\`: Input is required when another specified input is not
12015
14081
  * defined
12016
14082
  * - \`ifDefined\`: Input is required when another specified input is defined
12017
- * - \`conditionalValues\`: Input is required when another input has a specific
12018
- * value
14083
+ * - \`conditional\`: Input is required when other inputs have specific values
12019
14084
  *
12020
14085
  * By default, the input is not required.
12021
14086
  */
@@ -12026,12 +14091,9 @@ export namespace GenerateTranslateResponse {
12026
14091
  always?: boolean;
12027
14092
 
12028
14093
  /**
12029
- * Makes this input required when another input has a specific value:
12030
- *
12031
- * - Key: name of the input to check
12032
- * - Value: operation and allowed values that trigger the requirement
14094
+ * Makes this input required when other inputs have one of the listed values
12033
14095
  */
12034
- conditionalValues?: unknown;
14096
+ conditional?: Required.Conditional;
12035
14097
 
12036
14098
  /**
12037
14099
  * Makes this input required when another input is defined:
@@ -12049,6 +14111,26 @@ export namespace GenerateTranslateResponse {
12049
14111
  */
12050
14112
  ifNotDefined?: unknown;
12051
14113
  }
14114
+
14115
+ export namespace Required {
14116
+ /**
14117
+ * Makes this input required when other inputs have one of the listed values
14118
+ */
14119
+ export interface Conditional {
14120
+ /**
14121
+ * The conditions to check:
14122
+ *
14123
+ * - Key: name of the input to check
14124
+ * - Value: values of that input that satisfy the condition
14125
+ */
14126
+ values: unknown;
14127
+
14128
+ /**
14129
+ * How the conditions combine: \`and\` (all must match) or \`or\` (any must match)
14130
+ */
14131
+ operator?: 'and' | 'or';
14132
+ }
14133
+ }
12052
14134
  }
12053
14135
 
12054
14136
  /**
@@ -12089,8 +14171,7 @@ export namespace GenerateTranslateResponse {
12089
14171
  * - \`ifNotDefined\`: Input is required when another specified input is not
12090
14172
  * defined
12091
14173
  * - \`ifDefined\`: Input is required when another specified input is defined
12092
- * - \`conditionalValues\`: Input is required when another input has a specific
12093
- * value
14174
+ * - \`conditional\`: Input is required when other inputs have specific values
12094
14175
  *
12095
14176
  * By default, the input is not required.
12096
14177
  */
@@ -12101,12 +14182,9 @@ export namespace GenerateTranslateResponse {
12101
14182
  always?: boolean;
12102
14183
 
12103
14184
  /**
12104
- * Makes this input required when another input has a specific value:
12105
- *
12106
- * - Key: name of the input to check
12107
- * - Value: operation and allowed values that trigger the requirement
14185
+ * Makes this input required when other inputs have one of the listed values
12108
14186
  */
12109
- conditionalValues?: unknown;
14187
+ conditional?: Required.Conditional;
12110
14188
 
12111
14189
  /**
12112
14190
  * Makes this input required when another input is defined:
@@ -12124,6 +14202,26 @@ export namespace GenerateTranslateResponse {
12124
14202
  */
12125
14203
  ifNotDefined?: unknown;
12126
14204
  }
14205
+
14206
+ export namespace Required {
14207
+ /**
14208
+ * Makes this input required when other inputs have one of the listed values
14209
+ */
14210
+ export interface Conditional {
14211
+ /**
14212
+ * The conditions to check:
14213
+ *
14214
+ * - Key: name of the input to check
14215
+ * - Value: values of that input that satisfy the condition
14216
+ */
14217
+ values: unknown;
14218
+
14219
+ /**
14220
+ * How the conditions combine: \`and\` (all must match) or \`or\` (any must match)
14221
+ */
14222
+ operator?: 'and' | 'or';
14223
+ }
14224
+ }
12127
14225
  }
12128
14226
 
12129
14227
  /**
@@ -12653,6 +14751,34 @@ export interface GenerateEmbedParams {
12653
14751
  projectId?: string;
12654
14752
  }
12655
14753
 
14754
+ export interface GenerateIPDetectionParams {
14755
+ /**
14756
+ * Query param: Estimate the operation instead of running it: the call returns a
14757
+ * 269 response carrying the creative units cost. `api` estimates at the API tier.
14758
+ */
14759
+ dryRun?: 'true' | 'api';
14760
+
14761
+ /**
14762
+ * Query param: The projectId used for ownership resource management. Either to
14763
+ * assert ownership or to set the owner of the resource(s)
14764
+ */
14765
+ projectId?: string;
14766
+
14767
+ /**
14768
+ * Body param: Asset ids to check. Videos are analyzed through their extracted
14769
+ * first/last frames; audio and 3d assets are not analyzed and come back in
14770
+ * `skippedAssetIds`.
14771
+ */
14772
+ assetIds?: Array<string>;
14773
+
14774
+ /**
14775
+ * Body param: Prompts to check, analyzed as one text of 250 000 characters in
14776
+ * total at most — as much as the longest prompt any model accepts. At least one
14777
+ * prompt or one analyzable asset id is required.
14778
+ */
14779
+ prompts?: Array<string>;
14780
+ }
14781
+
12656
14782
  export interface GeneratePatchParams {
12657
14783
  /**
12658
14784
  * Body param: The input image as a data URL (example:
@@ -12870,6 +14996,40 @@ export interface GeneratePromptParams {
12870
14996
  topP?: number;
12871
14997
  }
12872
14998
 
14999
+ export interface GenerateQualityGateParams {
15000
+ /**
15001
+ * Body param: Image to verify: an asset id ("asset\_...") or a data URL. A data
15002
+ * URL is uploaded into the project as an asset (deduplicated on content, so the
15003
+ * same bytes always resolve to the same asset), and the verdict is stored on that
15004
+ * asset — re-verifying an already-scored asset replaces its result.
15005
+ */
15006
+ image: string;
15007
+
15008
+ /**
15009
+ * Query param: Estimate the operation instead of running it: the call returns a
15010
+ * 269 response carrying the creative units cost. `api` estimates at the API tier.
15011
+ */
15012
+ dryRun?: 'true' | 'api';
15013
+
15014
+ /**
15015
+ * Query param: If set to true, returns the original asset without transformation
15016
+ */
15017
+ originalAssets?: boolean;
15018
+
15019
+ /**
15020
+ * Query param: The projectId used for ownership resource management. Either to
15021
+ * assert ownership or to set the owner of the resource(s)
15022
+ */
15023
+ projectId?: string;
15024
+
15025
+ /**
15026
+ * Body param: Threshold strictness for this call. Overrides the scope's stored
15027
+ * sensitivity when set; otherwise the resolved scope setting (or "medium") is
15028
+ * used.
15029
+ */
15030
+ sensitivity?: 'high' | 'low' | 'medium';
15031
+ }
15032
+
12873
15033
  export interface GenerateRunModelParams {
12874
15034
  /**
12875
15035
  * Body param: The request body for the custom generation must be retrieve from GET
@@ -12971,16 +15131,20 @@ export declare namespace Generate {
12971
15131
  type GenerateDescribeStyleResponse as GenerateDescribeStyleResponse,
12972
15132
  type GenerateDetectResponse as GenerateDetectResponse,
12973
15133
  type GenerateEmbedResponse as GenerateEmbedResponse,
15134
+ type GenerateIPDetectionResponse as GenerateIPDetectionResponse,
12974
15135
  type GeneratePatchResponse as GeneratePatchResponse,
12975
15136
  type GeneratePromptResponse as GeneratePromptResponse,
15137
+ type GenerateQualityGateResponse as GenerateQualityGateResponse,
12976
15138
  type GenerateRunModelResponse as GenerateRunModelResponse,
12977
15139
  type GenerateTranslateResponse as GenerateTranslateResponse,
12978
15140
  type GenerateCaptionParams as GenerateCaptionParams,
12979
15141
  type GenerateDescribeStyleParams as GenerateDescribeStyleParams,
12980
15142
  type GenerateDetectParams as GenerateDetectParams,
12981
15143
  type GenerateEmbedParams as GenerateEmbedParams,
15144
+ type GenerateIPDetectionParams as GenerateIPDetectionParams,
12982
15145
  type GeneratePatchParams as GeneratePatchParams,
12983
15146
  type GeneratePromptParams as GeneratePromptParams,
15147
+ type GenerateQualityGateParams as GenerateQualityGateParams,
12984
15148
  type GenerateRunModelParams as GenerateRunModelParams,
12985
15149
  type GenerateTranslateParams as GenerateTranslateParams,
12986
15150
  };