@scenario-labs/sdk 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/LICENSE +1 -1
  3. package/README.md +29 -29
  4. package/client.d.mts +35 -18
  5. package/client.d.mts.map +1 -1
  6. package/client.d.ts +35 -18
  7. package/client.d.ts.map +1 -1
  8. package/client.js +88 -50
  9. package/client.js.map +1 -1
  10. package/client.mjs +86 -48
  11. package/client.mjs.map +1 -1
  12. package/core/api-promise.d.mts +2 -2
  13. package/core/api-promise.d.mts.map +1 -1
  14. package/core/api-promise.d.ts +2 -2
  15. package/core/api-promise.d.ts.map +1 -1
  16. package/core/api-promise.js.map +1 -1
  17. package/core/api-promise.mjs.map +1 -1
  18. package/core/error.d.mts +2 -2
  19. package/core/error.d.mts.map +1 -1
  20. package/core/error.d.ts +2 -2
  21. package/core/error.d.ts.map +1 -1
  22. package/core/error.js +4 -4
  23. package/core/error.js.map +1 -1
  24. package/core/error.mjs +2 -2
  25. package/core/error.mjs.map +1 -1
  26. package/core/resource.d.mts +3 -3
  27. package/core/resource.d.mts.map +1 -1
  28. package/core/resource.d.ts +3 -3
  29. package/core/resource.d.ts.map +1 -1
  30. package/core/resource.js.map +1 -1
  31. package/core/resource.mjs.map +1 -1
  32. package/index.d.mts +8 -3
  33. package/index.d.mts.map +1 -1
  34. package/index.d.ts +8 -3
  35. package/index.d.ts.map +1 -1
  36. package/index.js +16 -6
  37. package/index.js.map +1 -1
  38. package/index.mjs +7 -3
  39. package/index.mjs.map +1 -1
  40. package/internal/parse.d.mts +2 -2
  41. package/internal/parse.d.mts.map +1 -1
  42. package/internal/parse.d.ts +2 -2
  43. package/internal/parse.d.ts.map +1 -1
  44. package/internal/parse.js.map +1 -1
  45. package/internal/parse.mjs.map +1 -1
  46. package/internal/request-options.d.mts +4 -0
  47. package/internal/request-options.d.mts.map +1 -1
  48. package/internal/request-options.d.ts +4 -0
  49. package/internal/request-options.d.ts.map +1 -1
  50. package/internal/request-options.js.map +1 -1
  51. package/internal/request-options.mjs.map +1 -1
  52. package/internal/shims.js +1 -1
  53. package/internal/shims.js.map +1 -1
  54. package/internal/shims.mjs +1 -1
  55. package/internal/shims.mjs.map +1 -1
  56. package/internal/uploads.d.mts +4 -4
  57. package/internal/uploads.d.mts.map +1 -1
  58. package/internal/uploads.d.ts +4 -4
  59. package/internal/uploads.d.ts.map +1 -1
  60. package/internal/uploads.js.map +1 -1
  61. package/internal/uploads.mjs.map +1 -1
  62. package/internal/utils/base64.js +2 -2
  63. package/internal/utils/base64.js.map +1 -1
  64. package/internal/utils/base64.mjs +3 -3
  65. package/internal/utils/base64.mjs.map +1 -1
  66. package/internal/utils/log.d.mts +3 -3
  67. package/internal/utils/log.d.mts.map +1 -1
  68. package/internal/utils/log.d.ts +3 -3
  69. package/internal/utils/log.d.ts.map +1 -1
  70. package/internal/utils/log.js.map +1 -1
  71. package/internal/utils/log.mjs.map +1 -1
  72. package/internal/utils/path.js +1 -1
  73. package/internal/utils/path.js.map +1 -1
  74. package/internal/utils/path.mjs +2 -2
  75. package/internal/utils/path.mjs.map +1 -1
  76. package/internal/utils/values.js +5 -5
  77. package/internal/utils/values.js.map +1 -1
  78. package/internal/utils/values.mjs +6 -6
  79. package/internal/utils/values.mjs.map +1 -1
  80. package/lib/generate.d.mts +19 -0
  81. package/lib/generate.d.mts.map +1 -0
  82. package/lib/generate.d.ts +19 -0
  83. package/lib/generate.d.ts.map +1 -0
  84. package/lib/generate.js +35 -0
  85. package/lib/generate.js.map +1 -0
  86. package/lib/generate.mjs +31 -0
  87. package/lib/generate.mjs.map +1 -0
  88. package/lib/job.d.mts +48 -0
  89. package/lib/job.d.mts.map +1 -0
  90. package/lib/job.d.ts +48 -0
  91. package/lib/job.d.ts.map +1 -0
  92. package/lib/job.js +50 -0
  93. package/lib/job.js.map +1 -0
  94. package/lib/job.mjs +45 -0
  95. package/lib/job.mjs.map +1 -0
  96. package/lib/models.d.mts +20 -0
  97. package/lib/models.d.mts.map +1 -0
  98. package/lib/models.d.ts +20 -0
  99. package/lib/models.d.ts.map +1 -0
  100. package/lib/models.js +28 -0
  101. package/lib/models.js.map +1 -0
  102. package/lib/models.mjs +23 -0
  103. package/lib/models.mjs.map +1 -0
  104. package/lib/scenario.d.mts +39 -0
  105. package/lib/scenario.d.mts.map +1 -0
  106. package/lib/scenario.d.ts +39 -0
  107. package/lib/scenario.d.ts.map +1 -0
  108. package/lib/scenario.js +46 -0
  109. package/lib/scenario.js.map +1 -0
  110. package/lib/scenario.mjs +42 -0
  111. package/lib/scenario.mjs.map +1 -0
  112. package/lib/workflow.d.mts +48 -0
  113. package/lib/workflow.d.mts.map +1 -0
  114. package/lib/workflow.d.ts +48 -0
  115. package/lib/workflow.d.ts.map +1 -0
  116. package/lib/workflow.js +59 -0
  117. package/lib/workflow.js.map +1 -0
  118. package/lib/workflow.mjs +54 -0
  119. package/lib/workflow.mjs.map +1 -0
  120. package/package.json +13 -3
  121. package/resources/assets/assets.d.mts +401 -96
  122. package/resources/assets/assets.d.mts.map +1 -1
  123. package/resources/assets/assets.d.ts +401 -96
  124. package/resources/assets/assets.d.ts.map +1 -1
  125. package/resources/assets/assets.js +2 -2
  126. package/resources/assets/assets.js.map +1 -1
  127. package/resources/assets/assets.mjs +2 -2
  128. package/resources/assets/assets.mjs.map +1 -1
  129. package/resources/assets/index.d.mts +1 -1
  130. package/resources/assets/index.d.mts.map +1 -1
  131. package/resources/assets/index.d.ts +1 -1
  132. package/resources/assets/index.d.ts.map +1 -1
  133. package/resources/assets/index.js.map +1 -1
  134. package/resources/assets/index.mjs.map +1 -1
  135. package/resources/assets/public.d.mts +30 -27
  136. package/resources/assets/public.d.mts.map +1 -1
  137. package/resources/assets/public.d.ts +30 -27
  138. package/resources/assets/public.d.ts.map +1 -1
  139. package/resources/assets/public.js +2 -2
  140. package/resources/assets/public.js.map +1 -1
  141. package/resources/assets/public.mjs +2 -2
  142. package/resources/assets/public.mjs.map +1 -1
  143. package/resources/collections/assets.d.mts +2 -8
  144. package/resources/collections/assets.d.mts.map +1 -1
  145. package/resources/collections/assets.d.ts +2 -8
  146. package/resources/collections/assets.d.ts.map +1 -1
  147. package/resources/collections/assets.js +2 -2
  148. package/resources/collections/assets.js.map +1 -1
  149. package/resources/collections/assets.mjs +2 -2
  150. package/resources/collections/assets.mjs.map +1 -1
  151. package/resources/collections/collections.d.mts +5 -5
  152. package/resources/collections/collections.d.mts.map +1 -1
  153. package/resources/collections/collections.d.ts +5 -5
  154. package/resources/collections/collections.d.ts.map +1 -1
  155. package/resources/collections/collections.js.map +1 -1
  156. package/resources/collections/collections.mjs.map +1 -1
  157. package/resources/collections/index.d.mts +2 -2
  158. package/resources/collections/index.d.mts.map +1 -1
  159. package/resources/collections/index.d.ts +2 -2
  160. package/resources/collections/index.d.ts.map +1 -1
  161. package/resources/collections/index.js.map +1 -1
  162. package/resources/collections/index.mjs +2 -2
  163. package/resources/collections/index.mjs.map +1 -1
  164. package/resources/collections/models.d.mts +2 -8
  165. package/resources/collections/models.d.mts.map +1 -1
  166. package/resources/collections/models.d.ts +2 -8
  167. package/resources/collections/models.d.ts.map +1 -1
  168. package/resources/collections/models.js +2 -2
  169. package/resources/collections/models.js.map +1 -1
  170. package/resources/collections/models.mjs +2 -2
  171. package/resources/collections/models.mjs.map +1 -1
  172. package/resources/generate.d.mts +4188 -1370
  173. package/resources/generate.d.mts.map +1 -1
  174. package/resources/generate.d.ts +4188 -1370
  175. package/resources/generate.d.ts.map +1 -1
  176. package/resources/index.d.mts +2 -2
  177. package/resources/index.d.mts.map +1 -1
  178. package/resources/index.d.ts +2 -2
  179. package/resources/index.d.ts.map +1 -1
  180. package/resources/index.js.map +1 -1
  181. package/resources/index.mjs.map +1 -1
  182. package/resources/jobs.d.mts +943 -33
  183. package/resources/jobs.d.mts.map +1 -1
  184. package/resources/jobs.d.ts +943 -33
  185. package/resources/jobs.d.ts.map +1 -1
  186. package/resources/jobs.js +3 -2
  187. package/resources/jobs.js.map +1 -1
  188. package/resources/jobs.mjs +3 -2
  189. package/resources/jobs.mjs.map +1 -1
  190. package/resources/models/description.d.mts +8 -8
  191. package/resources/models/description.d.mts.map +1 -1
  192. package/resources/models/description.d.ts +8 -8
  193. package/resources/models/description.d.ts.map +1 -1
  194. package/resources/models/examples.d.mts +640 -34
  195. package/resources/models/examples.d.mts.map +1 -1
  196. package/resources/models/examples.d.ts +640 -34
  197. package/resources/models/examples.d.ts.map +1 -1
  198. package/resources/models/models.d.mts +1323 -301
  199. package/resources/models/models.d.mts.map +1 -1
  200. package/resources/models/models.d.ts +1323 -301
  201. package/resources/models/models.d.ts.map +1 -1
  202. package/resources/models/models.js.map +1 -1
  203. package/resources/models/models.mjs.map +1 -1
  204. package/resources/models/train.d.mts +718 -90
  205. package/resources/models/train.d.mts.map +1 -1
  206. package/resources/models/train.d.ts +718 -90
  207. package/resources/models/train.d.ts.map +1 -1
  208. package/resources/models/train.js +9 -4
  209. package/resources/models/train.js.map +1 -1
  210. package/resources/models/train.mjs +9 -4
  211. package/resources/models/train.mjs.map +1 -1
  212. package/resources/models/training-images.d.mts +2 -2
  213. package/resources/models/training-images.d.mts.map +1 -1
  214. package/resources/models/training-images.d.ts +2 -2
  215. package/resources/models/training-images.d.ts.map +1 -1
  216. package/resources/search.d.mts +6 -31
  217. package/resources/search.d.mts.map +1 -1
  218. package/resources/search.d.ts +6 -31
  219. package/resources/search.d.ts.map +1 -1
  220. package/resources/search.js +6 -2
  221. package/resources/search.js.map +1 -1
  222. package/resources/search.mjs +6 -2
  223. package/resources/search.mjs.map +1 -1
  224. package/resources/tags.d.mts +1 -1
  225. package/resources/tags.d.ts +1 -1
  226. package/resources/usages.d.mts +401 -16
  227. package/resources/usages.d.mts.map +1 -1
  228. package/resources/usages.d.ts +401 -16
  229. package/resources/usages.d.ts.map +1 -1
  230. package/resources/workflows.d.mts +2738 -101
  231. package/resources/workflows.d.mts.map +1 -1
  232. package/resources/workflows.d.ts +2738 -101
  233. package/resources/workflows.d.ts.map +1 -1
  234. package/src/client.ts +102 -44
  235. package/src/core/api-promise.ts +4 -4
  236. package/src/core/error.ts +2 -2
  237. package/src/core/resource.ts +3 -3
  238. package/src/index.ts +8 -3
  239. package/src/internal/parse.ts +2 -2
  240. package/src/internal/request-options.ts +2 -0
  241. package/src/internal/shims.ts +1 -1
  242. package/src/internal/uploads.ts +5 -5
  243. package/src/internal/utils/base64.ts +3 -3
  244. package/src/internal/utils/log.ts +3 -3
  245. package/src/internal/utils/path.ts +2 -2
  246. package/src/internal/utils/values.ts +6 -6
  247. package/src/lib/generate.ts +77 -0
  248. package/src/lib/job.ts +78 -0
  249. package/src/lib/models.ts +27 -0
  250. package/src/lib/scenario.ts +39 -0
  251. package/src/lib/workflow.ts +90 -0
  252. package/src/resources/assets/assets.ts +742 -212
  253. package/src/resources/assets/index.ts +0 -1
  254. package/src/resources/assets/public.ts +151 -29
  255. package/src/resources/collections/assets.ts +2 -14
  256. package/src/resources/collections/collections.ts +3 -5
  257. package/src/resources/collections/index.ts +2 -14
  258. package/src/resources/collections/models.ts +2 -14
  259. package/src/resources/generate.ts +6254 -2217
  260. package/src/resources/index.ts +2 -3
  261. package/src/resources/jobs.ts +1355 -26
  262. package/src/resources/models/description.ts +50 -8
  263. package/src/resources/models/examples.ts +906 -56
  264. package/src/resources/models/models.ts +1867 -330
  265. package/src/resources/models/train.ts +976 -98
  266. package/src/resources/models/training-images.ts +2 -2
  267. package/src/resources/search.ts +13 -39
  268. package/src/resources/tags.ts +1 -1
  269. package/src/resources/usages.ts +544 -11
  270. package/src/resources/workflows.ts +4586 -914
  271. package/src/version.ts +1 -1
  272. package/version.d.mts +1 -1
  273. package/version.d.ts +1 -1
  274. package/version.js +1 -1
  275. package/version.mjs +1 -1
@@ -28,10 +28,11 @@ export class Jobs extends APIResource {
28
28
  */
29
29
  triggerAction(
30
30
  jobID: string,
31
- body: JobTriggerActionParams,
31
+ params: JobTriggerActionParams,
32
32
  options?: RequestOptions,
33
33
  ): APIPromise<JobTriggerActionResponse> {
34
- return this._client.post(path`/jobs/${jobID}/action`, { body, ...options });
34
+ const { originalAssets, ...body } = params;
35
+ return this._client.post(path`/jobs/${jobID}/action`, { query: { originalAssets }, body, ...options });
35
36
  }
36
37
  }
37
38
 
@@ -73,6 +74,7 @@ export namespace JobRetrieveResponse {
73
74
  | 'model-download'
74
75
  | 'model-import'
75
76
  | 'model-training'
77
+ | 'musubi-model-training'
76
78
  | 'openai-image-generation'
77
79
  | 'patch-image'
78
80
  | 'pixelate'
@@ -154,20 +156,37 @@ export namespace JobRetrieveResponse {
154
156
  */
155
157
  assetIds?: Array<string>;
156
158
 
159
+ /**
160
+ * Eventual error for the job
161
+ */
162
+ error?: string | null;
163
+
157
164
  /**
158
165
  * The flow of the job. Only available for workflow jobs.
159
166
  */
160
167
  flow?: Array<Metadata.Flow>;
161
168
 
169
+ /**
170
+ * Actionable hint for the user explaining what went wrong and how to resolve it.
171
+ */
172
+ hint?: string;
173
+
162
174
  /**
163
175
  * The inputs for the job
164
176
  */
165
- input?: unknown;
177
+ input?: { [key: string]: unknown };
178
+
179
+ /**
180
+ * May contain the output of the job for specific custom models jobs. Only
181
+ * available for custom models which generate non-assets outputs. Example: LLM text
182
+ * results.
183
+ */
184
+ output?: { [key: string]: unknown };
166
185
 
167
186
  /**
168
- * The output of the job
187
+ * For voice-clone jobs: the ID of the model being trained.
169
188
  */
170
- output?: unknown;
189
+ outputModelId?: string;
171
190
 
172
191
  /**
173
192
  * The workflow ID of the job if job is part of a workflow.
@@ -197,8 +216,11 @@ export namespace JobRetrieveResponse {
197
216
  */
198
217
  type:
199
218
  | 'custom-model'
219
+ | 'for-each'
200
220
  | 'generate-prompt'
221
+ | 'list'
201
222
  | 'logic'
223
+ | 'model'
202
224
  | 'remove-background'
203
225
  | 'transform'
204
226
  | 'user-approval'
@@ -209,17 +231,46 @@ export namespace JobRetrieveResponse {
209
231
  */
210
232
  assets?: Array<Flow.Asset>;
211
233
 
234
+ /**
235
+ * Fixed number of iterations for a ForEach node. When set, the loop runs exactly
236
+ * `count` times regardless of array input. When not set, the loop iterates over
237
+ * the resolved array input. Only available for ForEach nodes.
238
+ */
239
+ count?: number;
240
+
212
241
  /**
213
242
  * The nodes that this node depends on. Only available for nodes that have
214
243
  * dependencies. Mainly used for user approval nodes.
215
244
  */
216
245
  dependsOn?: Array<string>;
217
246
 
247
+ /**
248
+ * If true, the outputs of this node will be included in the workflow job's final
249
+ * output. Only applicable to producing nodes (custom-model, inference, etc.). By
250
+ * default, only last nodes (nodes not referenced by other nodes) contribute to
251
+ * outputs. Set this to true to also include intermediate nodes in the final
252
+ * output. Note: This should only be set to `true` or left undefined.
253
+ */
254
+ includeOutputsInWorkflowJob?: true;
255
+
218
256
  /**
219
257
  * The inputs of the node.
220
258
  */
221
259
  inputs?: Array<Flow.Input>;
222
260
 
261
+ /**
262
+ * Statically-configured items for a List node. The node outputs this array as-is
263
+ * when executed. Only available for List nodes. The values can be strings,
264
+ * numbers, or asset IDs.
265
+ */
266
+ items?: Array<string>;
267
+
268
+ /**
269
+ * Zero-based index of the iteration this node copy belongs to. Set on
270
+ * dynamically-created copies of loop body nodes.
271
+ */
272
+ iterationIndex?: number;
273
+
223
274
  /**
224
275
  * If the flow is part of a WorkflowJob, this is the jobId for the node. jobId is
225
276
  * only available for nodes started. A node "Pending" for a running workflow job is
@@ -237,11 +288,29 @@ export namespace JobRetrieveResponse {
237
288
  */
238
289
  logicType?: 'if-else';
239
290
 
291
+ /**
292
+ * IDs of the body template nodes that belong to this ForEach loop. At runtime
293
+ * these templates are cloned once per iteration and marked Skipped. Only available
294
+ * for ForEach nodes.
295
+ */
296
+ loopBodyNodeIds?: Array<string>;
297
+
298
+ /**
299
+ * ID of the ForEach node that spawned this iteration copy. Set on
300
+ * dynamically-created copies of loop body nodes.
301
+ */
302
+ loopNodeId?: string;
303
+
240
304
  /**
241
305
  * The model id for the node. Mainly used for custom model tasks.
242
306
  */
243
307
  modelId?: string;
244
308
 
309
+ /**
310
+ * The output of the node. Only available for logic nodes.
311
+ */
312
+ output?: unknown;
313
+
245
314
  /**
246
315
  * The workflow id for the node. Mainly used for workflow tasks.
247
316
  */
@@ -302,6 +371,11 @@ export namespace JobRetrieveResponse {
302
371
  */
303
372
  costImpact?: boolean;
304
373
 
374
+ /**
375
+ * The default value for the input
376
+ */
377
+ default?: unknown;
378
+
305
379
  /**
306
380
  * Help text displayed in the UI to provide additional information about the input
307
381
  */
@@ -323,11 +397,20 @@ export namespace JobRetrieveResponse {
323
397
  * the same as the current object. This is only available for type inputs_array
324
398
  * inputs.
325
399
  */
326
- inputs?: Array<unknown>;
400
+ inputs?: Array<{ [key: string]: unknown }>;
401
+
402
+ /**
403
+ * The configured items for inputs_array type inputs. Each item is an array of
404
+ * SubNodeInput that need ref/value resolution. Only available for inputs_array
405
+ * type.
406
+ */
407
+ items?: Array<Array<Input.Item>>;
327
408
 
328
409
  /**
329
410
  * The asset kind of the input. Only taken into account for \`file\` and
330
- * \`file_array\` input types.
411
+ * \`file_array\` input types. If model provides multiple kinds, the input will be
412
+ * not able to create the asset on the flight on API side with dataurl without
413
+ * data:kind, prefix
331
414
  */
332
415
  kind?: '3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'video';
333
416
 
@@ -353,6 +436,13 @@ export namespace JobRetrieveResponse {
353
436
  */
354
437
  maxLength?: number;
355
438
 
439
+ /**
440
+ * The maximum allowed file size in bytes. Only applies to \`file\` and
441
+ * \`file_array\` input types. Validated against \`asset.properties.size\` at job
442
+ * creation time.
443
+ */
444
+ maxSize?: number;
445
+
356
446
  /**
357
447
  * The minimum allowed value. Only available for \`number\` and array input types.
358
448
  */
@@ -370,6 +460,7 @@ export namespace JobRetrieveResponse {
370
460
  */
371
461
  modelTypes?: Array<
372
462
  | 'custom'
463
+ | 'elevenlabs-voice'
373
464
  | 'flux.1'
374
465
  | 'flux.1-composition'
375
466
  | 'flux.1-kontext-dev'
@@ -379,14 +470,32 @@ export namespace JobRetrieveResponse {
379
470
  | 'flux.1-lora'
380
471
  | 'flux.1-pro'
381
472
  | 'flux.1.1-pro-ultra'
473
+ | 'flux.2-dev-edit-lora'
474
+ | 'flux.2-dev-lora'
475
+ | 'flux.2-klein-4b-edit-lora'
476
+ | 'flux.2-klein-4b-lora'
477
+ | 'flux.2-klein-9b-edit-lora'
478
+ | 'flux.2-klein-9b-lora'
479
+ | 'flux.2-klein-base-4b-edit-lora'
480
+ | 'flux.2-klein-base-4b-lora'
481
+ | 'flux.2-klein-base-9b-edit-lora'
482
+ | 'flux.2-klein-base-9b-lora'
382
483
  | 'flux1.1-pro'
383
484
  | 'gpt-image-1'
485
+ | 'qwen-image-2512-lora'
486
+ | 'qwen-image-edit-2509-lora'
487
+ | 'qwen-image-edit-2511-lora'
488
+ | 'qwen-image-edit-lora'
489
+ | 'qwen-image-lora'
384
490
  | 'sd-1_5'
385
491
  | 'sd-1_5-composition'
386
492
  | 'sd-1_5-lora'
387
493
  | 'sd-xl'
388
494
  | 'sd-xl-composition'
389
495
  | 'sd-xl-lora'
496
+ | 'zimage-de-turbo-lora'
497
+ | 'zimage-lora'
498
+ | 'zimage-turbo-lora'
390
499
  >;
391
500
 
392
501
  /**
@@ -438,9 +547,316 @@ export namespace JobRetrieveResponse {
438
547
  * The step increment for numeric inputs. Only available for \`number\` input type.
439
548
  */
440
549
  step?: number;
550
+
551
+ /**
552
+ * The value of the input. This is the value of the input that will be used to run
553
+ * the node. Only available for flows managed by a WorkflowJob.
554
+ */
555
+ value?: unknown;
441
556
  }
442
557
 
443
558
  export namespace Input {
559
+ /**
560
+ * A sub-input within an inputs_array item. Same as NodeInput but without the
561
+ * recursive items field.
562
+ */
563
+ export interface Item {
564
+ /**
565
+ * The name that must be user to call the model through the API
566
+ */
567
+ name: string;
568
+
569
+ /**
570
+ * The data type of the input
571
+ */
572
+ type:
573
+ | 'boolean'
574
+ | 'file'
575
+ | 'file_array'
576
+ | 'inputs_array'
577
+ | 'model'
578
+ | 'model_array'
579
+ | 'number'
580
+ | 'number_array'
581
+ | 'string'
582
+ | 'string_array';
583
+
584
+ /**
585
+ * The allowed values for the input. For \`string\` or \`number\` types, creates a
586
+ * single-select dropdown. For \`string_array\` type, creates a multi-select
587
+ * dropdown.
588
+ */
589
+ allowedValues?: Array<unknown>;
590
+
591
+ /**
592
+ * Specifies the background behavior for the input. Only available for \`file\` and
593
+ * \`file_array\` input types with kind \`image\`.
594
+ */
595
+ backgroundBehavior?: 'opaque' | 'transparent';
596
+
597
+ /**
598
+ * Whether the input is a color or not. Only available for \`string\` input type.
599
+ */
600
+ color?: boolean;
601
+
602
+ /**
603
+ * Whether this input affects the model's cost calculation
604
+ */
605
+ costImpact?: boolean;
606
+
607
+ /**
608
+ * The default value for the input
609
+ */
610
+ default?: unknown;
611
+
612
+ /**
613
+ * Help text displayed in the UI to provide additional information about the input
614
+ */
615
+ description?: string;
616
+
617
+ /**
618
+ * Used to visually group inputs together in the UI. Inputs with the same group
619
+ * value appear consecutively in the UI.
620
+ */
621
+ group?: string;
622
+
623
+ /**
624
+ * Hint text displayed in the UI as a tooltip to guide the user
625
+ */
626
+ hint?: string;
627
+
628
+ /**
629
+ * The list of inputs which form an object within a container array. All inputs are
630
+ * the same as the current object. This is only available for type inputs_array
631
+ * inputs.
632
+ */
633
+ inputs?: Array<{ [key: string]: unknown }>;
634
+
635
+ /**
636
+ * The asset kind of the input. Only taken into account for \`file\` and
637
+ * \`file_array\` input types. If model provides multiple kinds, the input will be
638
+ * not able to create the asset on the flight on API side with dataurl without
639
+ * data:kind, prefix
640
+ */
641
+ kind?: '3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'video';
642
+
643
+ /**
644
+ * The label displayed in the UI for this input
645
+ */
646
+ label?: string;
647
+
648
+ /**
649
+ * The name of the file input field to use as the mask source
650
+ */
651
+ maskFrom?: string;
652
+
653
+ /**
654
+ * The maximum allowed value. Only available for \`number\` and \`array\` input
655
+ * types.
656
+ */
657
+ max?: number;
658
+
659
+ /**
660
+ * The maximum allowed length for \`string\` inputs. Also applies to each item in
661
+ * \`string_array\`.
662
+ */
663
+ maxLength?: number;
664
+
665
+ /**
666
+ * The maximum allowed file size in bytes. Only applies to \`file\` and
667
+ * \`file_array\` input types. Validated against \`asset.properties.size\` at job
668
+ * creation time.
669
+ */
670
+ maxSize?: number;
671
+
672
+ /**
673
+ * The minimum allowed value. Only available for \`number\` and array input types.
674
+ */
675
+ min?: number;
676
+
677
+ /**
678
+ * The minimum allowed length for string inputs. Also applies to each item in
679
+ * \`string_array\`.
680
+ */
681
+ minLength?: number;
682
+
683
+ /**
684
+ * The allowed model types for this input. Example: \`["flux.1-lora"]\`. Only
685
+ * available for \`model_array\` input type.
686
+ */
687
+ modelTypes?: Array<
688
+ | 'custom'
689
+ | 'elevenlabs-voice'
690
+ | 'flux.1'
691
+ | 'flux.1-composition'
692
+ | 'flux.1-kontext-dev'
693
+ | 'flux.1-kontext-lora'
694
+ | 'flux.1-krea-dev'
695
+ | 'flux.1-krea-lora'
696
+ | 'flux.1-lora'
697
+ | 'flux.1-pro'
698
+ | 'flux.1.1-pro-ultra'
699
+ | 'flux.2-dev-edit-lora'
700
+ | 'flux.2-dev-lora'
701
+ | 'flux.2-klein-4b-edit-lora'
702
+ | 'flux.2-klein-4b-lora'
703
+ | 'flux.2-klein-9b-edit-lora'
704
+ | 'flux.2-klein-9b-lora'
705
+ | 'flux.2-klein-base-4b-edit-lora'
706
+ | 'flux.2-klein-base-4b-lora'
707
+ | 'flux.2-klein-base-9b-edit-lora'
708
+ | 'flux.2-klein-base-9b-lora'
709
+ | 'flux1.1-pro'
710
+ | 'gpt-image-1'
711
+ | 'qwen-image-2512-lora'
712
+ | 'qwen-image-edit-2509-lora'
713
+ | 'qwen-image-edit-2511-lora'
714
+ | 'qwen-image-edit-lora'
715
+ | 'qwen-image-lora'
716
+ | 'sd-1_5'
717
+ | 'sd-1_5-composition'
718
+ | 'sd-1_5-lora'
719
+ | 'sd-xl'
720
+ | 'sd-xl-composition'
721
+ | 'sd-xl-lora'
722
+ | 'zimage-de-turbo-lora'
723
+ | 'zimage-lora'
724
+ | 'zimage-turbo-lora'
725
+ >;
726
+
727
+ /**
728
+ * Whether this input represents a parent asset to assign to the produced assets.
729
+ * Only available for \`file\` and \`file_array\` input types.
730
+ *
731
+ * For \`file_array\`, the parent asset is the first item in the array.
732
+ */
733
+ parent?: boolean;
734
+
735
+ /**
736
+ * Placeholder text for the input. Only available for 'string' input type.
737
+ */
738
+ placeholder?: string;
739
+
740
+ /**
741
+ * Whether the input is a prompt. When true, displays as a text area with prompt
742
+ * spark feature. Only available for \`string\` input type.
743
+ */
744
+ prompt?: boolean;
745
+
746
+ /**
747
+ * Whether the input is used with prompt spark. Only available for \`string\` input
748
+ * type.
749
+ */
750
+ promptSpark?: boolean;
751
+
752
+ /**
753
+ * The reference to another input or output of the same workflow. Must have at
754
+ * least one of node or conditional.
755
+ */
756
+ ref?: Item.Ref;
757
+
758
+ /**
759
+ * Set of rules that describes when this input is required:
760
+ *
761
+ * - \`always\`: Input is always required
762
+ * - \`ifNotDefined\`: Input is required when another specified input is not
763
+ * defined
764
+ * - \`ifDefined\`: Input is required when another specified input is defined
765
+ * - \`conditionalValues\`: Input is required when another input has a specific
766
+ * value
767
+ *
768
+ * By default, the input is not required.
769
+ */
770
+ required?: Item.Required;
771
+
772
+ /**
773
+ * The step increment for numeric inputs. Only available for \`number\` input type.
774
+ */
775
+ step?: number;
776
+
777
+ /**
778
+ * The value of the input. This is the value of the input that will be used to run
779
+ * the node. Only available for flows managed by a WorkflowJob.
780
+ */
781
+ value?: unknown;
782
+ }
783
+
784
+ export namespace Item {
785
+ /**
786
+ * The reference to another input or output of the same workflow. Must have at
787
+ * least one of node or conditional.
788
+ */
789
+ export interface Ref {
790
+ /**
791
+ * The conditional nodes to reference. If the conditional nodes are successful, the
792
+ * node will be successful. If the conditional nodes are skipped, the node will be
793
+ * skipped. Contains an array of node ids used to check the status of the nodes.
794
+ */
795
+ conditional?: Array<string>;
796
+
797
+ /**
798
+ * This is the desired node output value if ref is an if/else node.
799
+ */
800
+ equal?: string;
801
+
802
+ /**
803
+ * The name of the input or output to reference. If the type is 'workflow', the
804
+ * name is the name of the input of the workflow is required If the type is 'node',
805
+ * the name is not mandatory, except if you want all outputs of the node. To get
806
+ * all outputs of a node, you can use the name 'all'.
807
+ */
808
+ name?: string;
809
+
810
+ /**
811
+ * The node id or 'workflow' if the source is a workflow input.
812
+ */
813
+ node?: string;
814
+ }
815
+
816
+ /**
817
+ * Set of rules that describes when this input is required:
818
+ *
819
+ * - \`always\`: Input is always required
820
+ * - \`ifNotDefined\`: Input is required when another specified input is not
821
+ * defined
822
+ * - \`ifDefined\`: Input is required when another specified input is defined
823
+ * - \`conditionalValues\`: Input is required when another input has a specific
824
+ * value
825
+ *
826
+ * By default, the input is not required.
827
+ */
828
+ export interface Required {
829
+ /**
830
+ * Whether the input is always required
831
+ */
832
+ always?: boolean;
833
+
834
+ /**
835
+ * Makes this input required when another input has a specific value:
836
+ *
837
+ * - Key: name of the input to check
838
+ * - Value: operation and allowed values that trigger the requirement
839
+ */
840
+ conditionalValues?: unknown;
841
+
842
+ /**
843
+ * Makes this input required when another input is defined:
844
+ *
845
+ * - Key: name of the input that must be defined
846
+ * - Value: message to display when this input is required
847
+ */
848
+ ifDefined?: unknown;
849
+
850
+ /**
851
+ * Makes this input required when another input is not defined:
852
+ *
853
+ * - Key: name of the input that must be undefined
854
+ * - Value: message to display when this input is required
855
+ */
856
+ ifNotDefined?: unknown;
857
+ }
858
+ }
859
+
444
860
  /**
445
861
  * The reference to another input or output of the same workflow. Must have at
446
862
  * least one of node or conditional.
@@ -615,6 +1031,7 @@ export namespace JobListResponse {
615
1031
  | 'model-download'
616
1032
  | 'model-import'
617
1033
  | 'model-training'
1034
+ | 'musubi-model-training'
618
1035
  | 'openai-image-generation'
619
1036
  | 'patch-image'
620
1037
  | 'pixelate'
@@ -696,20 +1113,37 @@ export namespace JobListResponse {
696
1113
  */
697
1114
  assetIds?: Array<string>;
698
1115
 
1116
+ /**
1117
+ * Eventual error for the job
1118
+ */
1119
+ error?: string | null;
1120
+
699
1121
  /**
700
1122
  * The flow of the job. Only available for workflow jobs.
701
1123
  */
702
1124
  flow?: Array<Metadata.Flow>;
703
1125
 
1126
+ /**
1127
+ * Actionable hint for the user explaining what went wrong and how to resolve it.
1128
+ */
1129
+ hint?: string;
1130
+
704
1131
  /**
705
1132
  * The inputs for the job
706
1133
  */
707
- input?: unknown;
1134
+ input?: { [key: string]: unknown };
708
1135
 
709
1136
  /**
710
- * The output of the job
1137
+ * May contain the output of the job for specific custom models jobs. Only
1138
+ * available for custom models which generate non-assets outputs. Example: LLM text
1139
+ * results.
711
1140
  */
712
- output?: unknown;
1141
+ output?: { [key: string]: unknown };
1142
+
1143
+ /**
1144
+ * For voice-clone jobs: the ID of the model being trained.
1145
+ */
1146
+ outputModelId?: string;
713
1147
 
714
1148
  /**
715
1149
  * The workflow ID of the job if job is part of a workflow.
@@ -739,8 +1173,11 @@ export namespace JobListResponse {
739
1173
  */
740
1174
  type:
741
1175
  | 'custom-model'
1176
+ | 'for-each'
742
1177
  | 'generate-prompt'
1178
+ | 'list'
743
1179
  | 'logic'
1180
+ | 'model'
744
1181
  | 'remove-background'
745
1182
  | 'transform'
746
1183
  | 'user-approval'
@@ -751,17 +1188,46 @@ export namespace JobListResponse {
751
1188
  */
752
1189
  assets?: Array<Flow.Asset>;
753
1190
 
1191
+ /**
1192
+ * Fixed number of iterations for a ForEach node. When set, the loop runs exactly
1193
+ * `count` times regardless of array input. When not set, the loop iterates over
1194
+ * the resolved array input. Only available for ForEach nodes.
1195
+ */
1196
+ count?: number;
1197
+
754
1198
  /**
755
1199
  * The nodes that this node depends on. Only available for nodes that have
756
1200
  * dependencies. Mainly used for user approval nodes.
757
1201
  */
758
1202
  dependsOn?: Array<string>;
759
1203
 
1204
+ /**
1205
+ * If true, the outputs of this node will be included in the workflow job's final
1206
+ * output. Only applicable to producing nodes (custom-model, inference, etc.). By
1207
+ * default, only last nodes (nodes not referenced by other nodes) contribute to
1208
+ * outputs. Set this to true to also include intermediate nodes in the final
1209
+ * output. Note: This should only be set to `true` or left undefined.
1210
+ */
1211
+ includeOutputsInWorkflowJob?: true;
1212
+
760
1213
  /**
761
1214
  * The inputs of the node.
762
1215
  */
763
1216
  inputs?: Array<Flow.Input>;
764
1217
 
1218
+ /**
1219
+ * Statically-configured items for a List node. The node outputs this array as-is
1220
+ * when executed. Only available for List nodes. The values can be strings,
1221
+ * numbers, or asset IDs.
1222
+ */
1223
+ items?: Array<string>;
1224
+
1225
+ /**
1226
+ * Zero-based index of the iteration this node copy belongs to. Set on
1227
+ * dynamically-created copies of loop body nodes.
1228
+ */
1229
+ iterationIndex?: number;
1230
+
765
1231
  /**
766
1232
  * If the flow is part of a WorkflowJob, this is the jobId for the node. jobId is
767
1233
  * only available for nodes started. A node "Pending" for a running workflow job is
@@ -779,11 +1245,29 @@ export namespace JobListResponse {
779
1245
  */
780
1246
  logicType?: 'if-else';
781
1247
 
1248
+ /**
1249
+ * IDs of the body template nodes that belong to this ForEach loop. At runtime
1250
+ * these templates are cloned once per iteration and marked Skipped. Only available
1251
+ * for ForEach nodes.
1252
+ */
1253
+ loopBodyNodeIds?: Array<string>;
1254
+
1255
+ /**
1256
+ * ID of the ForEach node that spawned this iteration copy. Set on
1257
+ * dynamically-created copies of loop body nodes.
1258
+ */
1259
+ loopNodeId?: string;
1260
+
782
1261
  /**
783
1262
  * The model id for the node. Mainly used for custom model tasks.
784
1263
  */
785
1264
  modelId?: string;
786
1265
 
1266
+ /**
1267
+ * The output of the node. Only available for logic nodes.
1268
+ */
1269
+ output?: unknown;
1270
+
787
1271
  /**
788
1272
  * The workflow id for the node. Mainly used for workflow tasks.
789
1273
  */
@@ -844,6 +1328,11 @@ export namespace JobListResponse {
844
1328
  */
845
1329
  costImpact?: boolean;
846
1330
 
1331
+ /**
1332
+ * The default value for the input
1333
+ */
1334
+ default?: unknown;
1335
+
847
1336
  /**
848
1337
  * Help text displayed in the UI to provide additional information about the input
849
1338
  */
@@ -865,11 +1354,20 @@ export namespace JobListResponse {
865
1354
  * the same as the current object. This is only available for type inputs_array
866
1355
  * inputs.
867
1356
  */
868
- inputs?: Array<unknown>;
1357
+ inputs?: Array<{ [key: string]: unknown }>;
1358
+
1359
+ /**
1360
+ * The configured items for inputs_array type inputs. Each item is an array of
1361
+ * SubNodeInput that need ref/value resolution. Only available for inputs_array
1362
+ * type.
1363
+ */
1364
+ items?: Array<Array<Input.Item>>;
869
1365
 
870
1366
  /**
871
1367
  * The asset kind of the input. Only taken into account for \`file\` and
872
- * \`file_array\` input types.
1368
+ * \`file_array\` input types. If model provides multiple kinds, the input will be
1369
+ * not able to create the asset on the flight on API side with dataurl without
1370
+ * data:kind, prefix
873
1371
  */
874
1372
  kind?: '3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'video';
875
1373
 
@@ -895,6 +1393,13 @@ export namespace JobListResponse {
895
1393
  */
896
1394
  maxLength?: number;
897
1395
 
1396
+ /**
1397
+ * The maximum allowed file size in bytes. Only applies to \`file\` and
1398
+ * \`file_array\` input types. Validated against \`asset.properties.size\` at job
1399
+ * creation time.
1400
+ */
1401
+ maxSize?: number;
1402
+
898
1403
  /**
899
1404
  * The minimum allowed value. Only available for \`number\` and array input types.
900
1405
  */
@@ -912,6 +1417,7 @@ export namespace JobListResponse {
912
1417
  */
913
1418
  modelTypes?: Array<
914
1419
  | 'custom'
1420
+ | 'elevenlabs-voice'
915
1421
  | 'flux.1'
916
1422
  | 'flux.1-composition'
917
1423
  | 'flux.1-kontext-dev'
@@ -921,14 +1427,32 @@ export namespace JobListResponse {
921
1427
  | 'flux.1-lora'
922
1428
  | 'flux.1-pro'
923
1429
  | 'flux.1.1-pro-ultra'
1430
+ | 'flux.2-dev-edit-lora'
1431
+ | 'flux.2-dev-lora'
1432
+ | 'flux.2-klein-4b-edit-lora'
1433
+ | 'flux.2-klein-4b-lora'
1434
+ | 'flux.2-klein-9b-edit-lora'
1435
+ | 'flux.2-klein-9b-lora'
1436
+ | 'flux.2-klein-base-4b-edit-lora'
1437
+ | 'flux.2-klein-base-4b-lora'
1438
+ | 'flux.2-klein-base-9b-edit-lora'
1439
+ | 'flux.2-klein-base-9b-lora'
924
1440
  | 'flux1.1-pro'
925
1441
  | 'gpt-image-1'
1442
+ | 'qwen-image-2512-lora'
1443
+ | 'qwen-image-edit-2509-lora'
1444
+ | 'qwen-image-edit-2511-lora'
1445
+ | 'qwen-image-edit-lora'
1446
+ | 'qwen-image-lora'
926
1447
  | 'sd-1_5'
927
1448
  | 'sd-1_5-composition'
928
1449
  | 'sd-1_5-lora'
929
1450
  | 'sd-xl'
930
1451
  | 'sd-xl-composition'
931
1452
  | 'sd-xl-lora'
1453
+ | 'zimage-de-turbo-lora'
1454
+ | 'zimage-lora'
1455
+ | 'zimage-turbo-lora'
932
1456
  >;
933
1457
 
934
1458
  /**
@@ -980,9 +1504,316 @@ export namespace JobListResponse {
980
1504
  * The step increment for numeric inputs. Only available for \`number\` input type.
981
1505
  */
982
1506
  step?: number;
1507
+
1508
+ /**
1509
+ * The value of the input. This is the value of the input that will be used to run
1510
+ * the node. Only available for flows managed by a WorkflowJob.
1511
+ */
1512
+ value?: unknown;
983
1513
  }
984
1514
 
985
1515
  export namespace Input {
1516
+ /**
1517
+ * A sub-input within an inputs_array item. Same as NodeInput but without the
1518
+ * recursive items field.
1519
+ */
1520
+ export interface Item {
1521
+ /**
1522
+ * The name that must be user to call the model through the API
1523
+ */
1524
+ name: string;
1525
+
1526
+ /**
1527
+ * The data type of the input
1528
+ */
1529
+ type:
1530
+ | 'boolean'
1531
+ | 'file'
1532
+ | 'file_array'
1533
+ | 'inputs_array'
1534
+ | 'model'
1535
+ | 'model_array'
1536
+ | 'number'
1537
+ | 'number_array'
1538
+ | 'string'
1539
+ | 'string_array';
1540
+
1541
+ /**
1542
+ * The allowed values for the input. For \`string\` or \`number\` types, creates a
1543
+ * single-select dropdown. For \`string_array\` type, creates a multi-select
1544
+ * dropdown.
1545
+ */
1546
+ allowedValues?: Array<unknown>;
1547
+
1548
+ /**
1549
+ * Specifies the background behavior for the input. Only available for \`file\` and
1550
+ * \`file_array\` input types with kind \`image\`.
1551
+ */
1552
+ backgroundBehavior?: 'opaque' | 'transparent';
1553
+
1554
+ /**
1555
+ * Whether the input is a color or not. Only available for \`string\` input type.
1556
+ */
1557
+ color?: boolean;
1558
+
1559
+ /**
1560
+ * Whether this input affects the model's cost calculation
1561
+ */
1562
+ costImpact?: boolean;
1563
+
1564
+ /**
1565
+ * The default value for the input
1566
+ */
1567
+ default?: unknown;
1568
+
1569
+ /**
1570
+ * Help text displayed in the UI to provide additional information about the input
1571
+ */
1572
+ description?: string;
1573
+
1574
+ /**
1575
+ * Used to visually group inputs together in the UI. Inputs with the same group
1576
+ * value appear consecutively in the UI.
1577
+ */
1578
+ group?: string;
1579
+
1580
+ /**
1581
+ * Hint text displayed in the UI as a tooltip to guide the user
1582
+ */
1583
+ hint?: string;
1584
+
1585
+ /**
1586
+ * The list of inputs which form an object within a container array. All inputs are
1587
+ * the same as the current object. This is only available for type inputs_array
1588
+ * inputs.
1589
+ */
1590
+ inputs?: Array<{ [key: string]: unknown }>;
1591
+
1592
+ /**
1593
+ * The asset kind of the input. Only taken into account for \`file\` and
1594
+ * \`file_array\` input types. If model provides multiple kinds, the input will be
1595
+ * not able to create the asset on the flight on API side with dataurl without
1596
+ * data:kind, prefix
1597
+ */
1598
+ kind?: '3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'video';
1599
+
1600
+ /**
1601
+ * The label displayed in the UI for this input
1602
+ */
1603
+ label?: string;
1604
+
1605
+ /**
1606
+ * The name of the file input field to use as the mask source
1607
+ */
1608
+ maskFrom?: string;
1609
+
1610
+ /**
1611
+ * The maximum allowed value. Only available for \`number\` and \`array\` input
1612
+ * types.
1613
+ */
1614
+ max?: number;
1615
+
1616
+ /**
1617
+ * The maximum allowed length for \`string\` inputs. Also applies to each item in
1618
+ * \`string_array\`.
1619
+ */
1620
+ maxLength?: number;
1621
+
1622
+ /**
1623
+ * The maximum allowed file size in bytes. Only applies to \`file\` and
1624
+ * \`file_array\` input types. Validated against \`asset.properties.size\` at job
1625
+ * creation time.
1626
+ */
1627
+ maxSize?: number;
1628
+
1629
+ /**
1630
+ * The minimum allowed value. Only available for \`number\` and array input types.
1631
+ */
1632
+ min?: number;
1633
+
1634
+ /**
1635
+ * The minimum allowed length for string inputs. Also applies to each item in
1636
+ * \`string_array\`.
1637
+ */
1638
+ minLength?: number;
1639
+
1640
+ /**
1641
+ * The allowed model types for this input. Example: \`["flux.1-lora"]\`. Only
1642
+ * available for \`model_array\` input type.
1643
+ */
1644
+ modelTypes?: Array<
1645
+ | 'custom'
1646
+ | 'elevenlabs-voice'
1647
+ | 'flux.1'
1648
+ | 'flux.1-composition'
1649
+ | 'flux.1-kontext-dev'
1650
+ | 'flux.1-kontext-lora'
1651
+ | 'flux.1-krea-dev'
1652
+ | 'flux.1-krea-lora'
1653
+ | 'flux.1-lora'
1654
+ | 'flux.1-pro'
1655
+ | 'flux.1.1-pro-ultra'
1656
+ | 'flux.2-dev-edit-lora'
1657
+ | 'flux.2-dev-lora'
1658
+ | 'flux.2-klein-4b-edit-lora'
1659
+ | 'flux.2-klein-4b-lora'
1660
+ | 'flux.2-klein-9b-edit-lora'
1661
+ | 'flux.2-klein-9b-lora'
1662
+ | 'flux.2-klein-base-4b-edit-lora'
1663
+ | 'flux.2-klein-base-4b-lora'
1664
+ | 'flux.2-klein-base-9b-edit-lora'
1665
+ | 'flux.2-klein-base-9b-lora'
1666
+ | 'flux1.1-pro'
1667
+ | 'gpt-image-1'
1668
+ | 'qwen-image-2512-lora'
1669
+ | 'qwen-image-edit-2509-lora'
1670
+ | 'qwen-image-edit-2511-lora'
1671
+ | 'qwen-image-edit-lora'
1672
+ | 'qwen-image-lora'
1673
+ | 'sd-1_5'
1674
+ | 'sd-1_5-composition'
1675
+ | 'sd-1_5-lora'
1676
+ | 'sd-xl'
1677
+ | 'sd-xl-composition'
1678
+ | 'sd-xl-lora'
1679
+ | 'zimage-de-turbo-lora'
1680
+ | 'zimage-lora'
1681
+ | 'zimage-turbo-lora'
1682
+ >;
1683
+
1684
+ /**
1685
+ * Whether this input represents a parent asset to assign to the produced assets.
1686
+ * Only available for \`file\` and \`file_array\` input types.
1687
+ *
1688
+ * For \`file_array\`, the parent asset is the first item in the array.
1689
+ */
1690
+ parent?: boolean;
1691
+
1692
+ /**
1693
+ * Placeholder text for the input. Only available for 'string' input type.
1694
+ */
1695
+ placeholder?: string;
1696
+
1697
+ /**
1698
+ * Whether the input is a prompt. When true, displays as a text area with prompt
1699
+ * spark feature. Only available for \`string\` input type.
1700
+ */
1701
+ prompt?: boolean;
1702
+
1703
+ /**
1704
+ * Whether the input is used with prompt spark. Only available for \`string\` input
1705
+ * type.
1706
+ */
1707
+ promptSpark?: boolean;
1708
+
1709
+ /**
1710
+ * The reference to another input or output of the same workflow. Must have at
1711
+ * least one of node or conditional.
1712
+ */
1713
+ ref?: Item.Ref;
1714
+
1715
+ /**
1716
+ * Set of rules that describes when this input is required:
1717
+ *
1718
+ * - \`always\`: Input is always required
1719
+ * - \`ifNotDefined\`: Input is required when another specified input is not
1720
+ * defined
1721
+ * - \`ifDefined\`: Input is required when another specified input is defined
1722
+ * - \`conditionalValues\`: Input is required when another input has a specific
1723
+ * value
1724
+ *
1725
+ * By default, the input is not required.
1726
+ */
1727
+ required?: Item.Required;
1728
+
1729
+ /**
1730
+ * The step increment for numeric inputs. Only available for \`number\` input type.
1731
+ */
1732
+ step?: number;
1733
+
1734
+ /**
1735
+ * The value of the input. This is the value of the input that will be used to run
1736
+ * the node. Only available for flows managed by a WorkflowJob.
1737
+ */
1738
+ value?: unknown;
1739
+ }
1740
+
1741
+ export namespace Item {
1742
+ /**
1743
+ * The reference to another input or output of the same workflow. Must have at
1744
+ * least one of node or conditional.
1745
+ */
1746
+ export interface Ref {
1747
+ /**
1748
+ * The conditional nodes to reference. If the conditional nodes are successful, the
1749
+ * node will be successful. If the conditional nodes are skipped, the node will be
1750
+ * skipped. Contains an array of node ids used to check the status of the nodes.
1751
+ */
1752
+ conditional?: Array<string>;
1753
+
1754
+ /**
1755
+ * This is the desired node output value if ref is an if/else node.
1756
+ */
1757
+ equal?: string;
1758
+
1759
+ /**
1760
+ * The name of the input or output to reference. If the type is 'workflow', the
1761
+ * name is the name of the input of the workflow is required If the type is 'node',
1762
+ * the name is not mandatory, except if you want all outputs of the node. To get
1763
+ * all outputs of a node, you can use the name 'all'.
1764
+ */
1765
+ name?: string;
1766
+
1767
+ /**
1768
+ * The node id or 'workflow' if the source is a workflow input.
1769
+ */
1770
+ node?: string;
1771
+ }
1772
+
1773
+ /**
1774
+ * Set of rules that describes when this input is required:
1775
+ *
1776
+ * - \`always\`: Input is always required
1777
+ * - \`ifNotDefined\`: Input is required when another specified input is not
1778
+ * defined
1779
+ * - \`ifDefined\`: Input is required when another specified input is defined
1780
+ * - \`conditionalValues\`: Input is required when another input has a specific
1781
+ * value
1782
+ *
1783
+ * By default, the input is not required.
1784
+ */
1785
+ export interface Required {
1786
+ /**
1787
+ * Whether the input is always required
1788
+ */
1789
+ always?: boolean;
1790
+
1791
+ /**
1792
+ * Makes this input required when another input has a specific value:
1793
+ *
1794
+ * - Key: name of the input to check
1795
+ * - Value: operation and allowed values that trigger the requirement
1796
+ */
1797
+ conditionalValues?: unknown;
1798
+
1799
+ /**
1800
+ * Makes this input required when another input is defined:
1801
+ *
1802
+ * - Key: name of the input that must be defined
1803
+ * - Value: message to display when this input is required
1804
+ */
1805
+ ifDefined?: unknown;
1806
+
1807
+ /**
1808
+ * Makes this input required when another input is not defined:
1809
+ *
1810
+ * - Key: name of the input that must be undefined
1811
+ * - Value: message to display when this input is required
1812
+ */
1813
+ ifNotDefined?: unknown;
1814
+ }
1815
+ }
1816
+
986
1817
  /**
987
1818
  * The reference to another input or output of the same workflow. Must have at
988
1819
  * least one of node or conditional.
@@ -1152,6 +1983,7 @@ export namespace JobTriggerActionResponse {
1152
1983
  | 'model-download'
1153
1984
  | 'model-import'
1154
1985
  | 'model-training'
1986
+ | 'musubi-model-training'
1155
1987
  | 'openai-image-generation'
1156
1988
  | 'patch-image'
1157
1989
  | 'pixelate'
@@ -1233,20 +2065,37 @@ export namespace JobTriggerActionResponse {
1233
2065
  */
1234
2066
  assetIds?: Array<string>;
1235
2067
 
2068
+ /**
2069
+ * Eventual error for the job
2070
+ */
2071
+ error?: string | null;
2072
+
1236
2073
  /**
1237
2074
  * The flow of the job. Only available for workflow jobs.
1238
2075
  */
1239
2076
  flow?: Array<Metadata.Flow>;
1240
2077
 
2078
+ /**
2079
+ * Actionable hint for the user explaining what went wrong and how to resolve it.
2080
+ */
2081
+ hint?: string;
2082
+
1241
2083
  /**
1242
2084
  * The inputs for the job
1243
2085
  */
1244
- input?: unknown;
2086
+ input?: { [key: string]: unknown };
1245
2087
 
1246
2088
  /**
1247
- * The output of the job
2089
+ * May contain the output of the job for specific custom models jobs. Only
2090
+ * available for custom models which generate non-assets outputs. Example: LLM text
2091
+ * results.
1248
2092
  */
1249
- output?: unknown;
2093
+ output?: { [key: string]: unknown };
2094
+
2095
+ /**
2096
+ * For voice-clone jobs: the ID of the model being trained.
2097
+ */
2098
+ outputModelId?: string;
1250
2099
 
1251
2100
  /**
1252
2101
  * The workflow ID of the job if job is part of a workflow.
@@ -1276,8 +2125,11 @@ export namespace JobTriggerActionResponse {
1276
2125
  */
1277
2126
  type:
1278
2127
  | 'custom-model'
2128
+ | 'for-each'
1279
2129
  | 'generate-prompt'
2130
+ | 'list'
1280
2131
  | 'logic'
2132
+ | 'model'
1281
2133
  | 'remove-background'
1282
2134
  | 'transform'
1283
2135
  | 'user-approval'
@@ -1288,17 +2140,46 @@ export namespace JobTriggerActionResponse {
1288
2140
  */
1289
2141
  assets?: Array<Flow.Asset>;
1290
2142
 
2143
+ /**
2144
+ * Fixed number of iterations for a ForEach node. When set, the loop runs exactly
2145
+ * `count` times regardless of array input. When not set, the loop iterates over
2146
+ * the resolved array input. Only available for ForEach nodes.
2147
+ */
2148
+ count?: number;
2149
+
1291
2150
  /**
1292
2151
  * The nodes that this node depends on. Only available for nodes that have
1293
2152
  * dependencies. Mainly used for user approval nodes.
1294
2153
  */
1295
2154
  dependsOn?: Array<string>;
1296
2155
 
2156
+ /**
2157
+ * If true, the outputs of this node will be included in the workflow job's final
2158
+ * output. Only applicable to producing nodes (custom-model, inference, etc.). By
2159
+ * default, only last nodes (nodes not referenced by other nodes) contribute to
2160
+ * outputs. Set this to true to also include intermediate nodes in the final
2161
+ * output. Note: This should only be set to `true` or left undefined.
2162
+ */
2163
+ includeOutputsInWorkflowJob?: true;
2164
+
1297
2165
  /**
1298
2166
  * The inputs of the node.
1299
2167
  */
1300
2168
  inputs?: Array<Flow.Input>;
1301
2169
 
2170
+ /**
2171
+ * Statically-configured items for a List node. The node outputs this array as-is
2172
+ * when executed. Only available for List nodes. The values can be strings,
2173
+ * numbers, or asset IDs.
2174
+ */
2175
+ items?: Array<string>;
2176
+
2177
+ /**
2178
+ * Zero-based index of the iteration this node copy belongs to. Set on
2179
+ * dynamically-created copies of loop body nodes.
2180
+ */
2181
+ iterationIndex?: number;
2182
+
1302
2183
  /**
1303
2184
  * If the flow is part of a WorkflowJob, this is the jobId for the node. jobId is
1304
2185
  * only available for nodes started. A node "Pending" for a running workflow job is
@@ -1316,11 +2197,29 @@ export namespace JobTriggerActionResponse {
1316
2197
  */
1317
2198
  logicType?: 'if-else';
1318
2199
 
2200
+ /**
2201
+ * IDs of the body template nodes that belong to this ForEach loop. At runtime
2202
+ * these templates are cloned once per iteration and marked Skipped. Only available
2203
+ * for ForEach nodes.
2204
+ */
2205
+ loopBodyNodeIds?: Array<string>;
2206
+
2207
+ /**
2208
+ * ID of the ForEach node that spawned this iteration copy. Set on
2209
+ * dynamically-created copies of loop body nodes.
2210
+ */
2211
+ loopNodeId?: string;
2212
+
1319
2213
  /**
1320
2214
  * The model id for the node. Mainly used for custom model tasks.
1321
2215
  */
1322
2216
  modelId?: string;
1323
2217
 
2218
+ /**
2219
+ * The output of the node. Only available for logic nodes.
2220
+ */
2221
+ output?: unknown;
2222
+
1324
2223
  /**
1325
2224
  * The workflow id for the node. Mainly used for workflow tasks.
1326
2225
  */
@@ -1381,6 +2280,11 @@ export namespace JobTriggerActionResponse {
1381
2280
  */
1382
2281
  costImpact?: boolean;
1383
2282
 
2283
+ /**
2284
+ * The default value for the input
2285
+ */
2286
+ default?: unknown;
2287
+
1384
2288
  /**
1385
2289
  * Help text displayed in the UI to provide additional information about the input
1386
2290
  */
@@ -1402,11 +2306,20 @@ export namespace JobTriggerActionResponse {
1402
2306
  * the same as the current object. This is only available for type inputs_array
1403
2307
  * inputs.
1404
2308
  */
1405
- inputs?: Array<unknown>;
2309
+ inputs?: Array<{ [key: string]: unknown }>;
2310
+
2311
+ /**
2312
+ * The configured items for inputs_array type inputs. Each item is an array of
2313
+ * SubNodeInput that need ref/value resolution. Only available for inputs_array
2314
+ * type.
2315
+ */
2316
+ items?: Array<Array<Input.Item>>;
1406
2317
 
1407
2318
  /**
1408
2319
  * The asset kind of the input. Only taken into account for \`file\` and
1409
- * \`file_array\` input types.
2320
+ * \`file_array\` input types. If model provides multiple kinds, the input will be
2321
+ * not able to create the asset on the flight on API side with dataurl without
2322
+ * data:kind, prefix
1410
2323
  */
1411
2324
  kind?: '3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'video';
1412
2325
 
@@ -1432,6 +2345,13 @@ export namespace JobTriggerActionResponse {
1432
2345
  */
1433
2346
  maxLength?: number;
1434
2347
 
2348
+ /**
2349
+ * The maximum allowed file size in bytes. Only applies to \`file\` and
2350
+ * \`file_array\` input types. Validated against \`asset.properties.size\` at job
2351
+ * creation time.
2352
+ */
2353
+ maxSize?: number;
2354
+
1435
2355
  /**
1436
2356
  * The minimum allowed value. Only available for \`number\` and array input types.
1437
2357
  */
@@ -1449,6 +2369,7 @@ export namespace JobTriggerActionResponse {
1449
2369
  */
1450
2370
  modelTypes?: Array<
1451
2371
  | 'custom'
2372
+ | 'elevenlabs-voice'
1452
2373
  | 'flux.1'
1453
2374
  | 'flux.1-composition'
1454
2375
  | 'flux.1-kontext-dev'
@@ -1458,14 +2379,32 @@ export namespace JobTriggerActionResponse {
1458
2379
  | 'flux.1-lora'
1459
2380
  | 'flux.1-pro'
1460
2381
  | 'flux.1.1-pro-ultra'
2382
+ | 'flux.2-dev-edit-lora'
2383
+ | 'flux.2-dev-lora'
2384
+ | 'flux.2-klein-4b-edit-lora'
2385
+ | 'flux.2-klein-4b-lora'
2386
+ | 'flux.2-klein-9b-edit-lora'
2387
+ | 'flux.2-klein-9b-lora'
2388
+ | 'flux.2-klein-base-4b-edit-lora'
2389
+ | 'flux.2-klein-base-4b-lora'
2390
+ | 'flux.2-klein-base-9b-edit-lora'
2391
+ | 'flux.2-klein-base-9b-lora'
1461
2392
  | 'flux1.1-pro'
1462
2393
  | 'gpt-image-1'
2394
+ | 'qwen-image-2512-lora'
2395
+ | 'qwen-image-edit-2509-lora'
2396
+ | 'qwen-image-edit-2511-lora'
2397
+ | 'qwen-image-edit-lora'
2398
+ | 'qwen-image-lora'
1463
2399
  | 'sd-1_5'
1464
2400
  | 'sd-1_5-composition'
1465
2401
  | 'sd-1_5-lora'
1466
2402
  | 'sd-xl'
1467
2403
  | 'sd-xl-composition'
1468
2404
  | 'sd-xl-lora'
2405
+ | 'zimage-de-turbo-lora'
2406
+ | 'zimage-lora'
2407
+ | 'zimage-turbo-lora'
1469
2408
  >;
1470
2409
 
1471
2410
  /**
@@ -1517,9 +2456,316 @@ export namespace JobTriggerActionResponse {
1517
2456
  * The step increment for numeric inputs. Only available for \`number\` input type.
1518
2457
  */
1519
2458
  step?: number;
2459
+
2460
+ /**
2461
+ * The value of the input. This is the value of the input that will be used to run
2462
+ * the node. Only available for flows managed by a WorkflowJob.
2463
+ */
2464
+ value?: unknown;
1520
2465
  }
1521
2466
 
1522
2467
  export namespace Input {
2468
+ /**
2469
+ * A sub-input within an inputs_array item. Same as NodeInput but without the
2470
+ * recursive items field.
2471
+ */
2472
+ export interface Item {
2473
+ /**
2474
+ * The name that must be user to call the model through the API
2475
+ */
2476
+ name: string;
2477
+
2478
+ /**
2479
+ * The data type of the input
2480
+ */
2481
+ type:
2482
+ | 'boolean'
2483
+ | 'file'
2484
+ | 'file_array'
2485
+ | 'inputs_array'
2486
+ | 'model'
2487
+ | 'model_array'
2488
+ | 'number'
2489
+ | 'number_array'
2490
+ | 'string'
2491
+ | 'string_array';
2492
+
2493
+ /**
2494
+ * The allowed values for the input. For \`string\` or \`number\` types, creates a
2495
+ * single-select dropdown. For \`string_array\` type, creates a multi-select
2496
+ * dropdown.
2497
+ */
2498
+ allowedValues?: Array<unknown>;
2499
+
2500
+ /**
2501
+ * Specifies the background behavior for the input. Only available for \`file\` and
2502
+ * \`file_array\` input types with kind \`image\`.
2503
+ */
2504
+ backgroundBehavior?: 'opaque' | 'transparent';
2505
+
2506
+ /**
2507
+ * Whether the input is a color or not. Only available for \`string\` input type.
2508
+ */
2509
+ color?: boolean;
2510
+
2511
+ /**
2512
+ * Whether this input affects the model's cost calculation
2513
+ */
2514
+ costImpact?: boolean;
2515
+
2516
+ /**
2517
+ * The default value for the input
2518
+ */
2519
+ default?: unknown;
2520
+
2521
+ /**
2522
+ * Help text displayed in the UI to provide additional information about the input
2523
+ */
2524
+ description?: string;
2525
+
2526
+ /**
2527
+ * Used to visually group inputs together in the UI. Inputs with the same group
2528
+ * value appear consecutively in the UI.
2529
+ */
2530
+ group?: string;
2531
+
2532
+ /**
2533
+ * Hint text displayed in the UI as a tooltip to guide the user
2534
+ */
2535
+ hint?: string;
2536
+
2537
+ /**
2538
+ * The list of inputs which form an object within a container array. All inputs are
2539
+ * the same as the current object. This is only available for type inputs_array
2540
+ * inputs.
2541
+ */
2542
+ inputs?: Array<{ [key: string]: unknown }>;
2543
+
2544
+ /**
2545
+ * The asset kind of the input. Only taken into account for \`file\` and
2546
+ * \`file_array\` input types. If model provides multiple kinds, the input will be
2547
+ * not able to create the asset on the flight on API side with dataurl without
2548
+ * data:kind, prefix
2549
+ */
2550
+ kind?: '3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'video';
2551
+
2552
+ /**
2553
+ * The label displayed in the UI for this input
2554
+ */
2555
+ label?: string;
2556
+
2557
+ /**
2558
+ * The name of the file input field to use as the mask source
2559
+ */
2560
+ maskFrom?: string;
2561
+
2562
+ /**
2563
+ * The maximum allowed value. Only available for \`number\` and \`array\` input
2564
+ * types.
2565
+ */
2566
+ max?: number;
2567
+
2568
+ /**
2569
+ * The maximum allowed length for \`string\` inputs. Also applies to each item in
2570
+ * \`string_array\`.
2571
+ */
2572
+ maxLength?: number;
2573
+
2574
+ /**
2575
+ * The maximum allowed file size in bytes. Only applies to \`file\` and
2576
+ * \`file_array\` input types. Validated against \`asset.properties.size\` at job
2577
+ * creation time.
2578
+ */
2579
+ maxSize?: number;
2580
+
2581
+ /**
2582
+ * The minimum allowed value. Only available for \`number\` and array input types.
2583
+ */
2584
+ min?: number;
2585
+
2586
+ /**
2587
+ * The minimum allowed length for string inputs. Also applies to each item in
2588
+ * \`string_array\`.
2589
+ */
2590
+ minLength?: number;
2591
+
2592
+ /**
2593
+ * The allowed model types for this input. Example: \`["flux.1-lora"]\`. Only
2594
+ * available for \`model_array\` input type.
2595
+ */
2596
+ modelTypes?: Array<
2597
+ | 'custom'
2598
+ | 'elevenlabs-voice'
2599
+ | 'flux.1'
2600
+ | 'flux.1-composition'
2601
+ | 'flux.1-kontext-dev'
2602
+ | 'flux.1-kontext-lora'
2603
+ | 'flux.1-krea-dev'
2604
+ | 'flux.1-krea-lora'
2605
+ | 'flux.1-lora'
2606
+ | 'flux.1-pro'
2607
+ | 'flux.1.1-pro-ultra'
2608
+ | 'flux.2-dev-edit-lora'
2609
+ | 'flux.2-dev-lora'
2610
+ | 'flux.2-klein-4b-edit-lora'
2611
+ | 'flux.2-klein-4b-lora'
2612
+ | 'flux.2-klein-9b-edit-lora'
2613
+ | 'flux.2-klein-9b-lora'
2614
+ | 'flux.2-klein-base-4b-edit-lora'
2615
+ | 'flux.2-klein-base-4b-lora'
2616
+ | 'flux.2-klein-base-9b-edit-lora'
2617
+ | 'flux.2-klein-base-9b-lora'
2618
+ | 'flux1.1-pro'
2619
+ | 'gpt-image-1'
2620
+ | 'qwen-image-2512-lora'
2621
+ | 'qwen-image-edit-2509-lora'
2622
+ | 'qwen-image-edit-2511-lora'
2623
+ | 'qwen-image-edit-lora'
2624
+ | 'qwen-image-lora'
2625
+ | 'sd-1_5'
2626
+ | 'sd-1_5-composition'
2627
+ | 'sd-1_5-lora'
2628
+ | 'sd-xl'
2629
+ | 'sd-xl-composition'
2630
+ | 'sd-xl-lora'
2631
+ | 'zimage-de-turbo-lora'
2632
+ | 'zimage-lora'
2633
+ | 'zimage-turbo-lora'
2634
+ >;
2635
+
2636
+ /**
2637
+ * Whether this input represents a parent asset to assign to the produced assets.
2638
+ * Only available for \`file\` and \`file_array\` input types.
2639
+ *
2640
+ * For \`file_array\`, the parent asset is the first item in the array.
2641
+ */
2642
+ parent?: boolean;
2643
+
2644
+ /**
2645
+ * Placeholder text for the input. Only available for 'string' input type.
2646
+ */
2647
+ placeholder?: string;
2648
+
2649
+ /**
2650
+ * Whether the input is a prompt. When true, displays as a text area with prompt
2651
+ * spark feature. Only available for \`string\` input type.
2652
+ */
2653
+ prompt?: boolean;
2654
+
2655
+ /**
2656
+ * Whether the input is used with prompt spark. Only available for \`string\` input
2657
+ * type.
2658
+ */
2659
+ promptSpark?: boolean;
2660
+
2661
+ /**
2662
+ * The reference to another input or output of the same workflow. Must have at
2663
+ * least one of node or conditional.
2664
+ */
2665
+ ref?: Item.Ref;
2666
+
2667
+ /**
2668
+ * Set of rules that describes when this input is required:
2669
+ *
2670
+ * - \`always\`: Input is always required
2671
+ * - \`ifNotDefined\`: Input is required when another specified input is not
2672
+ * defined
2673
+ * - \`ifDefined\`: Input is required when another specified input is defined
2674
+ * - \`conditionalValues\`: Input is required when another input has a specific
2675
+ * value
2676
+ *
2677
+ * By default, the input is not required.
2678
+ */
2679
+ required?: Item.Required;
2680
+
2681
+ /**
2682
+ * The step increment for numeric inputs. Only available for \`number\` input type.
2683
+ */
2684
+ step?: number;
2685
+
2686
+ /**
2687
+ * The value of the input. This is the value of the input that will be used to run
2688
+ * the node. Only available for flows managed by a WorkflowJob.
2689
+ */
2690
+ value?: unknown;
2691
+ }
2692
+
2693
+ export namespace Item {
2694
+ /**
2695
+ * The reference to another input or output of the same workflow. Must have at
2696
+ * least one of node or conditional.
2697
+ */
2698
+ export interface Ref {
2699
+ /**
2700
+ * The conditional nodes to reference. If the conditional nodes are successful, the
2701
+ * node will be successful. If the conditional nodes are skipped, the node will be
2702
+ * skipped. Contains an array of node ids used to check the status of the nodes.
2703
+ */
2704
+ conditional?: Array<string>;
2705
+
2706
+ /**
2707
+ * This is the desired node output value if ref is an if/else node.
2708
+ */
2709
+ equal?: string;
2710
+
2711
+ /**
2712
+ * The name of the input or output to reference. If the type is 'workflow', the
2713
+ * name is the name of the input of the workflow is required If the type is 'node',
2714
+ * the name is not mandatory, except if you want all outputs of the node. To get
2715
+ * all outputs of a node, you can use the name 'all'.
2716
+ */
2717
+ name?: string;
2718
+
2719
+ /**
2720
+ * The node id or 'workflow' if the source is a workflow input.
2721
+ */
2722
+ node?: string;
2723
+ }
2724
+
2725
+ /**
2726
+ * Set of rules that describes when this input is required:
2727
+ *
2728
+ * - \`always\`: Input is always required
2729
+ * - \`ifNotDefined\`: Input is required when another specified input is not
2730
+ * defined
2731
+ * - \`ifDefined\`: Input is required when another specified input is defined
2732
+ * - \`conditionalValues\`: Input is required when another input has a specific
2733
+ * value
2734
+ *
2735
+ * By default, the input is not required.
2736
+ */
2737
+ export interface Required {
2738
+ /**
2739
+ * Whether the input is always required
2740
+ */
2741
+ always?: boolean;
2742
+
2743
+ /**
2744
+ * Makes this input required when another input has a specific value:
2745
+ *
2746
+ * - Key: name of the input to check
2747
+ * - Value: operation and allowed values that trigger the requirement
2748
+ */
2749
+ conditionalValues?: unknown;
2750
+
2751
+ /**
2752
+ * Makes this input required when another input is defined:
2753
+ *
2754
+ * - Key: name of the input that must be defined
2755
+ * - Value: message to display when this input is required
2756
+ */
2757
+ ifDefined?: unknown;
2758
+
2759
+ /**
2760
+ * Makes this input required when another input is not defined:
2761
+ *
2762
+ * - Key: name of the input that must be undefined
2763
+ * - Value: message to display when this input is required
2764
+ */
2765
+ ifNotDefined?: unknown;
2766
+ }
2767
+ }
2768
+
1523
2769
  /**
1524
2770
  * The reference to another input or output of the same workflow. Must have at
1525
2771
  * least one of node or conditional.
@@ -1660,13 +2906,13 @@ export interface JobListParams {
1660
2906
  /**
1661
2907
  * If false, jobs containing the hideResults param will be not returned. Optional.
1662
2908
  */
1663
- hideResults?: string;
2909
+ hideResults?: boolean;
1664
2910
 
1665
2911
  /**
1666
2912
  * The number of items to return in the response. The default value is 10, maximum
1667
2913
  * value is 200, minimum value is 1
1668
2914
  */
1669
- pageSize?: string;
2915
+ pageSize?: number;
1670
2916
 
1671
2917
  /**
1672
2918
  * A token you received in a previous request to query the next page of items
@@ -1676,27 +2922,110 @@ export interface JobListParams {
1676
2922
  /**
1677
2923
  * The status of the jobs to return. Optional.
1678
2924
  */
1679
- status?: string;
2925
+ status?:
2926
+ | 'pending'
2927
+ | 'queued'
2928
+ | 'warming-up'
2929
+ | 'in-progress'
2930
+ | 'success'
2931
+ | 'failure'
2932
+ | 'canceled'
2933
+ | 'finalizing';
1680
2934
 
1681
2935
  /**
1682
2936
  * The type of the jobs to return. If "types" is defined, "type" will be ignored.
1683
2937
  * Optional.
1684
2938
  */
1685
- type?: string;
2939
+ type?:
2940
+ | 'assets-download'
2941
+ | 'model-training'
2942
+ | 'flux-model-training'
2943
+ | 'musubi-model-training'
2944
+ | 'inference'
2945
+ | 'pixelate'
2946
+ | 'embed'
2947
+ | 'remove-background'
2948
+ | 'vectorize'
2949
+ | 'canvas-export'
2950
+ | 'image-generation'
2951
+ | 'image-prompt-editing'
2952
+ | 'caption'
2953
+ | 'generate-prompt'
2954
+ | 'describe-style'
2955
+ | 'translate'
2956
+ | 'detection'
2957
+ | 'restyle'
2958
+ | 'repaint'
2959
+ | 'reframe'
2960
+ | 'segment'
2961
+ | 'skybox-base-360'
2962
+ | 'skybox-upscale-360'
2963
+ | 'skybox-hdri'
2964
+ | 'skybox-3d'
2965
+ | 'texture'
2966
+ | 'upscale'
2967
+ | 'upscale-skybox'
2968
+ | 'upscale-texture'
2969
+ | 'flux'
2970
+ | 'openai-image-generation'
2971
+ | 'upload'
2972
+ | 'custom'
2973
+ | 'mesh-preview-rendering'
2974
+ | 'workflow';
1686
2975
 
1687
2976
  /**
1688
2977
  * The types of the jobs to return. If "types" is defined, "type" will be ignored.
1689
2978
  * Optional.
1690
2979
  */
1691
- types?: string;
1692
-
1693
- workflowId?: string;
2980
+ types?:
2981
+ | 'assets-download'
2982
+ | 'model-training'
2983
+ | 'flux-model-training'
2984
+ | 'musubi-model-training'
2985
+ | 'inference'
2986
+ | 'pixelate'
2987
+ | 'embed'
2988
+ | 'remove-background'
2989
+ | 'vectorize'
2990
+ | 'canvas-export'
2991
+ | 'image-generation'
2992
+ | 'image-prompt-editing'
2993
+ | 'caption'
2994
+ | 'generate-prompt'
2995
+ | 'describe-style'
2996
+ | 'translate'
2997
+ | 'detection'
2998
+ | 'restyle'
2999
+ | 'repaint'
3000
+ | 'reframe'
3001
+ | 'segment'
3002
+ | 'skybox-base-360'
3003
+ | 'skybox-upscale-360'
3004
+ | 'skybox-hdri'
3005
+ | 'skybox-3d'
3006
+ | 'texture'
3007
+ | 'upscale'
3008
+ | 'upscale-skybox'
3009
+ | 'upscale-texture'
3010
+ | 'flux'
3011
+ | 'openai-image-generation'
3012
+ | 'upload'
3013
+ | 'custom'
3014
+ | 'mesh-preview-rendering'
3015
+ | 'workflow';
3016
+
3017
+ workflowId?: unknown;
1694
3018
  }
1695
3019
 
1696
3020
  export interface JobTriggerActionParams {
1697
3021
  /**
1698
- * The action to execute on the job, such as canceling it. Today only cancel on
1699
- * inference jobs is supported.
3022
+ * Query param: If set to true, returns the original asset without transformation
3023
+ */
3024
+ originalAssets?: boolean;
3025
+
3026
+ /**
3027
+ * Body param: The action to execute on the job, such as canceling it. Today only
3028
+ * cancel on inference jobs is supported.
1700
3029
  */
1701
3030
  action?: 'cancel';
1702
3031
  }