@printhive/api 0.2.0 → 0.4.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.
package/dist/index.d.cts CHANGED
@@ -143,6 +143,120 @@ interface paths {
143
143
  patch?: never;
144
144
  trace?: never;
145
145
  };
146
+ "/v1/printers/search": {
147
+ parameters: {
148
+ query?: never;
149
+ header?: never;
150
+ path?: never;
151
+ cookie?: never;
152
+ };
153
+ /** Search organization printers with the web palette matcher */
154
+ get: {
155
+ parameters: {
156
+ query: {
157
+ q: string;
158
+ limit?: number;
159
+ offset?: number;
160
+ };
161
+ header?: never;
162
+ path?: never;
163
+ cookie?: never;
164
+ };
165
+ requestBody?: never;
166
+ responses: {
167
+ /** @description Default Response */
168
+ 200: {
169
+ headers: {
170
+ [name: string]: unknown;
171
+ };
172
+ content: {
173
+ "application/json": {
174
+ printers: {
175
+ id: string;
176
+ name: string;
177
+ model: string;
178
+ serial_number: string;
179
+ status: string;
180
+ location_text: string;
181
+ score: number;
182
+ /** @enum {string} */
183
+ match: "text" | "typo" | "server";
184
+ }[];
185
+ total: number;
186
+ query: string;
187
+ };
188
+ };
189
+ };
190
+ };
191
+ };
192
+ put?: never;
193
+ post?: never;
194
+ delete?: never;
195
+ options?: never;
196
+ head?: never;
197
+ patch?: never;
198
+ trace?: never;
199
+ };
200
+ "/v1/filaments/search": {
201
+ parameters: {
202
+ query?: never;
203
+ header?: never;
204
+ path?: never;
205
+ cookie?: never;
206
+ };
207
+ /** Search available catalog filaments with the web picker */
208
+ get: {
209
+ parameters: {
210
+ query: {
211
+ q: string;
212
+ limit?: number;
213
+ offset?: number;
214
+ };
215
+ header?: never;
216
+ path?: never;
217
+ cookie?: never;
218
+ };
219
+ requestBody?: never;
220
+ responses: {
221
+ /** @description Default Response */
222
+ 200: {
223
+ headers: {
224
+ [name: string]: unknown;
225
+ };
226
+ content: {
227
+ "application/json": {
228
+ filaments: {
229
+ id: string;
230
+ filamentId: string;
231
+ acceptedByCreate: boolean;
232
+ name: string;
233
+ brand: null | string;
234
+ material_type: string;
235
+ color: null | string;
236
+ diameter: null | number;
237
+ /** @enum {string} */
238
+ category: "filament";
239
+ sku?: null | string;
240
+ organization_id: null | string;
241
+ }[];
242
+ total: number;
243
+ hasMore: boolean;
244
+ /** @enum {string} */
245
+ matchMode: "strict" | "broadened";
246
+ originalQuery: null | string;
247
+ };
248
+ };
249
+ };
250
+ };
251
+ };
252
+ put?: never;
253
+ post?: never;
254
+ delete?: never;
255
+ options?: never;
256
+ head?: never;
257
+ patch?: never;
258
+ trace?: never;
259
+ };
146
260
  "/v1/partner-production/uploads": {
147
261
  parameters: {
148
262
  query?: never;
@@ -283,6 +397,16 @@ interface paths {
283
397
  status: "missing";
284
398
  };
285
399
  printerModel?: string;
400
+ machine?: {
401
+ sourceMachine: {
402
+ preset: string;
403
+ model: string;
404
+ nozzleDiameterMm: number;
405
+ };
406
+ compatibleMachines: string[];
407
+ materials: string[];
408
+ bed: string;
409
+ };
286
410
  };
287
411
  } | {
288
412
  /** Format: uuid */
@@ -364,6 +488,16 @@ interface paths {
364
488
  status: "missing";
365
489
  };
366
490
  printerModel?: string;
491
+ machine?: {
492
+ sourceMachine: {
493
+ preset: string;
494
+ model: string;
495
+ nozzleDiameterMm: number;
496
+ };
497
+ compatibleMachines: string[];
498
+ materials: string[];
499
+ bed: string;
500
+ };
367
501
  } | null;
368
502
  error: {
369
503
  /** @enum {string} */
@@ -491,6 +625,16 @@ interface paths {
491
625
  status: "missing";
492
626
  };
493
627
  printerModel?: string;
628
+ machine?: {
629
+ sourceMachine: {
630
+ preset: string;
631
+ model: string;
632
+ nozzleDiameterMm: number;
633
+ };
634
+ compatibleMachines: string[];
635
+ materials: string[];
636
+ bed: string;
637
+ };
494
638
  };
495
639
  } | {
496
640
  /** Format: uuid */
@@ -572,6 +716,16 @@ interface paths {
572
716
  status: "missing";
573
717
  };
574
718
  printerModel?: string;
719
+ machine?: {
720
+ sourceMachine: {
721
+ preset: string;
722
+ model: string;
723
+ nozzleDiameterMm: number;
724
+ };
725
+ compatibleMachines: string[];
726
+ materials: string[];
727
+ bed: string;
728
+ };
575
729
  } | null;
576
730
  error: {
577
731
  /** @enum {string} */
@@ -916,6 +1070,16 @@ interface paths {
916
1070
  status: "missing";
917
1071
  };
918
1072
  printerModel?: string;
1073
+ machine?: {
1074
+ sourceMachine: {
1075
+ preset: string;
1076
+ model: string;
1077
+ nozzleDiameterMm: number;
1078
+ };
1079
+ compatibleMachines: string[];
1080
+ materials: string[];
1081
+ bed: string;
1082
+ };
919
1083
  };
920
1084
  } | {
921
1085
  /** Format: uuid */
@@ -997,6 +1161,16 @@ interface paths {
997
1161
  status: "missing";
998
1162
  };
999
1163
  printerModel?: string;
1164
+ machine?: {
1165
+ sourceMachine: {
1166
+ preset: string;
1167
+ model: string;
1168
+ nozzleDiameterMm: number;
1169
+ };
1170
+ compatibleMachines: string[];
1171
+ materials: string[];
1172
+ bed: string;
1173
+ };
1000
1174
  } | null;
1001
1175
  error: {
1002
1176
  /** @enum {string} */
@@ -1219,6 +1393,16 @@ interface paths {
1219
1393
  status: "missing";
1220
1394
  };
1221
1395
  printerModel?: string;
1396
+ machine?: {
1397
+ sourceMachine: {
1398
+ preset: string;
1399
+ model: string;
1400
+ nozzleDiameterMm: number;
1401
+ };
1402
+ compatibleMachines: string[];
1403
+ materials: string[];
1404
+ bed: string;
1405
+ };
1222
1406
  };
1223
1407
  } | {
1224
1408
  /** Format: uuid */
@@ -1300,6 +1484,16 @@ interface paths {
1300
1484
  status: "missing";
1301
1485
  };
1302
1486
  printerModel?: string;
1487
+ machine?: {
1488
+ sourceMachine: {
1489
+ preset: string;
1490
+ model: string;
1491
+ nozzleDiameterMm: number;
1492
+ };
1493
+ compatibleMachines: string[];
1494
+ materials: string[];
1495
+ bed: string;
1496
+ };
1303
1497
  } | null;
1304
1498
  error: {
1305
1499
  /** @enum {string} */
@@ -1541,6 +1735,16 @@ interface paths {
1541
1735
  status: "missing";
1542
1736
  };
1543
1737
  printerModel?: string;
1738
+ machine?: {
1739
+ sourceMachine: {
1740
+ preset: string;
1741
+ model: string;
1742
+ nozzleDiameterMm: number;
1743
+ };
1744
+ compatibleMachines: string[];
1745
+ materials: string[];
1746
+ bed: string;
1747
+ };
1544
1748
  };
1545
1749
  } | {
1546
1750
  /** Format: uuid */
@@ -1622,6 +1826,16 @@ interface paths {
1622
1826
  status: "missing";
1623
1827
  };
1624
1828
  printerModel?: string;
1829
+ machine?: {
1830
+ sourceMachine: {
1831
+ preset: string;
1832
+ model: string;
1833
+ nozzleDiameterMm: number;
1834
+ };
1835
+ compatibleMachines: string[];
1836
+ materials: string[];
1837
+ bed: string;
1838
+ };
1625
1839
  } | null;
1626
1840
  error: {
1627
1841
  /** @enum {string} */
@@ -1753,6 +1967,8 @@ interface paths {
1753
1967
  "application/json": {
1754
1968
  name: string;
1755
1969
  externalId?: string;
1970
+ /** @default false */
1971
+ acceptEngineSettingUpdates?: boolean;
1756
1972
  model_file_id: string;
1757
1973
  organization_id?: string;
1758
1974
  /** @description Organization ID (optional, defaults to user's primary organization) */
@@ -1762,16 +1978,21 @@ interface paths {
1762
1978
  /** @description One-based plate number in the project archive */
1763
1979
  plate?: number;
1764
1980
  /** @description Complete filament requirements for the selected plate. Cannot be combined with raw AMS mappings. Matched using Smart Queue material and color proximity rules. */
1765
- filaments?: {
1981
+ filaments?: ({
1766
1982
  /** @description Zero-based project filament index */
1767
1983
  sourceSlot: number;
1768
- material: string;
1769
- color: string;
1984
+ /**
1985
+ * Format: uuid
1986
+ * @description Organization catalog filament ID. Derives material and color; explicit values must agree.
1987
+ */
1988
+ filamentId?: string;
1989
+ material?: string;
1990
+ color?: string;
1770
1991
  targetSlot?: {
1771
1992
  ams_id: number;
1772
1993
  slot_id: number;
1773
1994
  };
1774
- }[];
1995
+ } | unknown | unknown)[];
1775
1996
  /**
1776
1997
  * @description Create assigned jobs waiting for filament, or reject mismatches with 422
1777
1998
  * @default wait
@@ -1801,16 +2022,21 @@ interface paths {
1801
2022
  /** @description One-based plate number in the project archive */
1802
2023
  plate: number;
1803
2024
  /** @description Complete filament requirements for the selected plate. Cannot be combined with raw AMS mappings. Matched using Smart Queue material and color proximity rules. */
1804
- filaments: {
2025
+ filaments: ({
1805
2026
  /** @description Zero-based project filament index */
1806
2027
  sourceSlot: number;
1807
- material: string;
1808
- color: string;
2028
+ /**
2029
+ * Format: uuid
2030
+ * @description Organization catalog filament ID. Derives material and color; explicit values must agree.
2031
+ */
2032
+ filamentId?: string;
2033
+ material?: string;
2034
+ color?: string;
1809
2035
  targetSlot?: {
1810
2036
  ams_id: number;
1811
2037
  slot_id: number;
1812
2038
  };
1813
- }[];
2039
+ } | unknown | unknown)[];
1814
2040
  /** Format: uuid */
1815
2041
  printer_id?: string;
1816
2042
  /**
@@ -1820,6 +2046,8 @@ interface paths {
1820
2046
  */
1821
2047
  on_filament_mismatch?: "wait" | "reject";
1822
2048
  externalId?: string;
2049
+ /** @default false */
2050
+ acceptEngineSettingUpdates?: boolean;
1823
2051
  /**
1824
2052
  * @default automatic
1825
2053
  * @enum {string}
@@ -1846,9 +2074,32 @@ interface paths {
1846
2074
  model_file_id?: string | null;
1847
2075
  printer_id?: string | null;
1848
2076
  organization_id?: string;
1849
- print_options?: {
2077
+ print_options?: ({
2078
+ /** @enum {string} */
2079
+ filament_route_state?: "waiting" | "resolved";
2080
+ /** @description Assigned job is waiting for a complete material route; rechecked before claim */
2081
+ filament_waiting_reasons?: {
2082
+ /** @enum {string} */
2083
+ code: "filament_not_loaded" | "material_route_changed";
2084
+ /** @enum {string} */
2085
+ cause?: "slot_empty" | "missing_material" | "color_distance" | "slot_conflict";
2086
+ /** Format: uuid */
2087
+ filamentId?: string;
2088
+ brand?: string | null;
2089
+ name?: string;
2090
+ colorName?: string | null;
2091
+ colorHex?: string;
2092
+ sourceSlot?: number;
2093
+ material?: string;
2094
+ color?: string;
2095
+ suggestedTargetSlot?: {
2096
+ ams_id?: number;
2097
+ slot_id?: number;
2098
+ };
2099
+ }[];
2100
+ } & {
1850
2101
  [key: string]: unknown;
1851
- } | null;
2102
+ }) | null;
1852
2103
  } & {
1853
2104
  [key: string]: unknown;
1854
2105
  };
@@ -1901,15 +2152,97 @@ interface paths {
1901
2152
  model_file_id: string | null;
1902
2153
  /** Format: uuid */
1903
2154
  printer_id: string | null;
1904
- print_options: {
2155
+ print_options: ({
2156
+ /** @enum {string} */
2157
+ filament_route_state?: "waiting" | "resolved";
2158
+ filament_waiting_reasons?: {
2159
+ /** Format: uuid */
2160
+ filamentId?: string;
2161
+ brand?: string | null;
2162
+ name?: string;
2163
+ colorName?: string | null;
2164
+ material?: string;
2165
+ colorHex?: string;
2166
+ /** @enum {string} */
2167
+ code: "filament_not_loaded" | "material_route_changed";
2168
+ sourceSlot?: number;
2169
+ color?: string;
2170
+ /** @enum {string} */
2171
+ cause?: "slot_empty" | "missing_material" | "color_distance" | "slot_conflict";
2172
+ suggestedTargetSlot?: {
2173
+ ams_id: number;
2174
+ slot_id: number;
2175
+ };
2176
+ }[];
2177
+ } & {
1905
2178
  [key: string]: unknown;
1906
- } | null;
2179
+ }) | null;
1907
2180
  } & {
1908
2181
  [key: string]: unknown;
1909
2182
  }) | null;
1910
- requiredActions: {
2183
+ requiredActions: (({
2184
+ item: number;
2185
+ plateNumber: number;
2186
+ hold: {
2187
+ /** @enum {string} */
2188
+ code: "material_change_requires_qualification";
2189
+ slots: number[];
2190
+ } | {
2191
+ /** @enum {string} */
2192
+ code: "inspection_review_required";
2193
+ reason: string;
2194
+ } | {
2195
+ /** @enum {string} */
2196
+ code: "unmapped_used_slot";
2197
+ slots: number[];
2198
+ } | {
2199
+ /** @enum {string} */
2200
+ code: "project_source_too_large";
2201
+ limit: {
2202
+ /** @enum {string} */
2203
+ name: "projectSourceBytes";
2204
+ max: number;
2205
+ observed: number;
2206
+ };
2207
+ } | {
2208
+ /** @enum {string} */
2209
+ code: "project_review_required";
2210
+ detail: string;
2211
+ changes?: {
2212
+ key: string;
2213
+ sourceValue: (string | null) | string[] | number | boolean;
2214
+ engineValue: (string | null) | string[] | number | boolean;
2215
+ slots: number[];
2216
+ }[];
2217
+ sourceRelease?: string | null;
2218
+ engineRelease?: string;
2219
+ } | {
2220
+ /** @enum {string} */
2221
+ code: "preview_mismatch_after_remap";
2222
+ detail: string;
2223
+ };
2224
+ } & {
1911
2225
  [key: string]: unknown;
1912
- }[];
2226
+ }) | ({
2227
+ code: string;
2228
+ } & {
2229
+ [key: string]: unknown;
2230
+ }))[];
2231
+ /** @default [] */
2232
+ warnings: ({
2233
+ /** @enum {string} */
2234
+ code: "custom_instructions_kept";
2235
+ keys: string[];
2236
+ } | {
2237
+ /** @enum {string} */
2238
+ code: "custom_instructions_replaced";
2239
+ keys: string[];
2240
+ } | {
2241
+ /** @enum {string} */
2242
+ code: "preview_stale_after_remap";
2243
+ slots: number[];
2244
+ bedChanged: boolean;
2245
+ })[];
1913
2246
  error: {
1914
2247
  [key: string]: unknown;
1915
2248
  } | null;
@@ -1952,12 +2285,12 @@ interface paths {
1952
2285
  content: {
1953
2286
  "application/json": {
1954
2287
  /** @enum {string} */
1955
- error?: "filament_requirements_unsatisfied" | "printer_model_incompatible" | "hardware:nozzle_diameter_mismatch" | "target_slot_unavailable" | "insufficient_filament_routes";
2288
+ error?: "filament_catalog_conflict" | "catalog_filament_not_found" | "invalid_catalog_filament" | "filament_requirements_unsatisfied" | "printer_model_incompatible" | "hardware:nozzle_diameter_mismatch" | "target_slot_unavailable" | "insufficient_filament_routes";
1956
2289
  message?: string;
1957
2290
  filaments?: {
1958
2291
  sourceSlot?: number;
1959
2292
  /** @enum {string} */
1960
- reason?: "missing_material" | "color_distance" | "slot_empty" | "slot_conflict";
2293
+ reason?: "filament_catalog_conflict" | "catalog_filament_not_found" | "invalid_catalog_filament" | "missing_material" | "color_distance" | "slot_empty" | "slot_conflict";
1961
2294
  }[];
1962
2295
  };
1963
2296
  };
@@ -1982,20 +2315,20 @@ interface paths {
1982
2315
  patch?: never;
1983
2316
  trace?: never;
1984
2317
  };
1985
- "/v1/print-jobs/create-requests/{requestId}": {
2318
+ "/v1/print-jobs/{id}": {
1986
2319
  parameters: {
1987
2320
  query?: never;
1988
2321
  header?: never;
1989
2322
  path?: never;
1990
2323
  cookie?: never;
1991
2324
  };
1992
- /** Poll one asynchronous single-plate creation request */
2325
+ /** @description Organization-scoped job snapshot for polling. Stored lifecycle and recovery facts are separate from quality acceptance, printer release, accepted-unit counts, and shipping readiness. Null values remain unknown. A terminal status or print_completed_at is not proof of successful output. */
1993
2326
  get: {
1994
2327
  parameters: {
1995
2328
  query?: never;
1996
2329
  header?: never;
1997
2330
  path: {
1998
- requestId: string;
2331
+ id: number;
1999
2332
  };
2000
2333
  cookie?: never;
2001
2334
  };
@@ -2008,42 +2341,65 @@ interface paths {
2008
2341
  };
2009
2342
  content: {
2010
2343
  "application/json": {
2011
- /** Format: uuid */
2012
- requestId: string;
2013
- /** @enum {string} */
2014
- status: "preparing" | "held" | "created" | "failed" | "cancelled";
2015
- externalId: string | null;
2016
- createdAt: string;
2017
- job: ({
2018
- id: number;
2019
- status: string;
2020
- /** Format: uuid */
2021
- model_file_id: string | null;
2022
- /** Format: uuid */
2023
- printer_id: string | null;
2024
- print_options: {
2025
- [key: string]: unknown;
2344
+ job?: {
2345
+ id?: number;
2346
+ name?: string;
2347
+ organization_id?: string;
2348
+ printer_id?: string | null;
2349
+ model_file_id?: string | null;
2350
+ task_id?: string | null;
2351
+ status?: string;
2352
+ /** @description Stored job status version, not a Farm Event cursor or a version of every field. */
2353
+ status_version?: number;
2354
+ progress?: number | null;
2355
+ print_started_at?: string | null;
2356
+ print_completed_at?: string | null;
2357
+ verified_at?: string | null;
2358
+ outcome_resolution_required?: boolean;
2359
+ outcome_resolution_source?: string | null;
2360
+ outcome_resolved_at?: string | null;
2361
+ retry_count?: number | null;
2362
+ max_retries?: number | null;
2363
+ recovery_count?: number | null;
2364
+ next_eligible_at?: string | null;
2365
+ error_code?: string | null;
2366
+ updated_at?: string | null;
2367
+ printer?: {
2368
+ id?: string;
2369
+ name?: string;
2370
+ model?: string;
2026
2371
  } | null;
2027
- } & {
2028
- [key: string]: unknown;
2029
- }) | null;
2030
- requiredActions: {
2031
- [key: string]: unknown;
2032
- }[];
2033
- error: {
2034
- [key: string]: unknown;
2035
- } | null;
2036
- };
2037
- };
2038
- };
2039
- /** @description Default Response */
2040
- 404: {
2041
- headers: {
2042
- [name: string]: unknown;
2043
- };
2044
- content: {
2045
- "application/json": {
2046
- error?: string;
2372
+ model_file?: {
2373
+ id?: string;
2374
+ filename?: string;
2375
+ file_type?: string;
2376
+ file_size?: number | null;
2377
+ } | null;
2378
+ print_options?: ({
2379
+ /** @description Assigned job is waiting for a complete material route; rechecked before claim */
2380
+ filament_waiting_reasons?: {
2381
+ /** @enum {string} */
2382
+ code: "filament_not_loaded" | "material_route_changed";
2383
+ /** @enum {string} */
2384
+ cause?: "slot_empty" | "missing_material" | "color_distance" | "slot_conflict";
2385
+ /** Format: uuid */
2386
+ filamentId?: string;
2387
+ brand?: string | null;
2388
+ name?: string;
2389
+ colorName?: string | null;
2390
+ colorHex?: string;
2391
+ sourceSlot?: number;
2392
+ material?: string;
2393
+ color?: string;
2394
+ suggestedTargetSlot?: {
2395
+ ams_id?: number;
2396
+ slot_id?: number;
2397
+ };
2398
+ }[];
2399
+ } & {
2400
+ [key: string]: unknown;
2401
+ }) | null;
2402
+ };
2047
2403
  };
2048
2404
  };
2049
2405
  };
@@ -2051,46 +2407,33 @@ interface paths {
2051
2407
  };
2052
2408
  put?: never;
2053
2409
  post?: never;
2054
- delete?: never;
2055
- options?: never;
2056
- head?: never;
2057
- patch?: never;
2058
- trace?: never;
2059
- };
2060
- "/v1/print-jobs/create-requests/{requestId}/release": {
2061
- parameters: {
2062
- query?: never;
2063
- header?: never;
2064
- path?: never;
2065
- cookie?: never;
2066
- };
2067
- get?: never;
2068
- put?: never;
2069
- /** Authorize admission of a manually held creation request */
2070
- post: {
2410
+ delete: {
2071
2411
  parameters: {
2072
- query?: never;
2412
+ query?: {
2413
+ organizationId?: string;
2414
+ };
2073
2415
  header?: never;
2074
2416
  path: {
2075
- requestId: string;
2417
+ id: string;
2076
2418
  };
2077
2419
  cookie?: never;
2078
2420
  };
2079
2421
  requestBody?: never;
2080
2422
  responses: {
2081
2423
  /** @description Default Response */
2082
- 202: {
2424
+ 200: {
2083
2425
  headers: {
2084
2426
  [name: string]: unknown;
2085
2427
  };
2086
2428
  content: {
2087
2429
  "application/json": {
2088
- authorized: boolean;
2430
+ success?: boolean;
2431
+ message?: string;
2089
2432
  };
2090
2433
  };
2091
2434
  };
2092
- /** @description Authentication required */
2093
- 401: {
2435
+ /** @description Cannot delete job - invalid status */
2436
+ 400: {
2094
2437
  headers: {
2095
2438
  [name: string]: unknown;
2096
2439
  };
@@ -2098,14 +2441,11 @@ interface paths {
2098
2441
  "application/json": {
2099
2442
  error?: string;
2100
2443
  message?: string;
2101
- requestId?: string;
2102
- code?: string;
2103
- statusCode?: number;
2104
2444
  };
2105
2445
  };
2106
2446
  };
2107
- /** @description API key requires control scope */
2108
- 403: {
2447
+ /** @description Default Response */
2448
+ 401: {
2109
2449
  headers: {
2110
2450
  [name: string]: unknown;
2111
2451
  };
@@ -2113,13 +2453,10 @@ interface paths {
2113
2453
  "application/json": {
2114
2454
  error?: string;
2115
2455
  message?: string;
2116
- requestId?: string;
2117
- code?: string;
2118
- statusCode?: number;
2119
2456
  };
2120
2457
  };
2121
2458
  };
2122
- /** @description Creation request not found */
2459
+ /** @description Default Response */
2123
2460
  404: {
2124
2461
  headers: {
2125
2462
  [name: string]: unknown;
@@ -2128,12 +2465,11 @@ interface paths {
2128
2465
  "application/json": {
2129
2466
  error?: string;
2130
2467
  message?: string;
2131
- requestId?: string;
2132
2468
  };
2133
2469
  };
2134
2470
  };
2135
- /** @description Creation request no longer supports this action */
2136
- 409: {
2471
+ /** @description Default Response */
2472
+ 500: {
2137
2473
  headers: {
2138
2474
  [name: string]: unknown;
2139
2475
  };
@@ -2141,28 +2477,296 @@ interface paths {
2141
2477
  "application/json": {
2142
2478
  error?: string;
2143
2479
  message?: string;
2144
- requestId?: string;
2145
2480
  };
2146
2481
  };
2147
2482
  };
2148
2483
  };
2149
2484
  };
2150
- delete?: never;
2151
2485
  options?: never;
2152
2486
  head?: never;
2153
- patch?: never;
2154
- trace?: never;
2155
- };
2156
- "/v1/print-jobs/create-requests/{requestId}/cancel": {
2157
- parameters: {
2158
- query?: never;
2159
- header?: never;
2487
+ /**
2488
+ * Update print job
2489
+ * @description Update a queued print job's printer assignment and/or print options. Only QUEUED jobs can be updated.
2490
+ */
2491
+ patch: {
2492
+ parameters: {
2493
+ query?: {
2494
+ /** @description Organization ID (optional, defaults to user's primary organization) */
2495
+ organizationId?: string;
2496
+ };
2497
+ header?: never;
2498
+ path: {
2499
+ /** @description Print job ID */
2500
+ id: string;
2501
+ };
2502
+ cookie?: never;
2503
+ };
2504
+ requestBody: {
2505
+ content: {
2506
+ "application/json": {
2507
+ /** @description Printer ID to assign. Set to null to un-assign and enable auto-assign. */
2508
+ printer_id?: string | null;
2509
+ /** @description Print options including AMS mapping */
2510
+ print_options?: {
2511
+ enable_ams?: boolean;
2512
+ enable_bed_leveling?: boolean;
2513
+ start_immediately?: boolean;
2514
+ /** @description Deprecated compatibility alias for start_immediately */
2515
+ set_printer_ready?: boolean;
2516
+ enable_filament_backup?: boolean;
2517
+ auto_assign?: boolean;
2518
+ ams_mapping?: number[];
2519
+ ams_mapping2?: (number | {
2520
+ ams_id: number;
2521
+ slot_id: number;
2522
+ })[];
2523
+ ams_mapping_info?: {
2524
+ sourceColor?: string;
2525
+ targetColor?: string;
2526
+ filamentType?: string;
2527
+ }[];
2528
+ } & {
2529
+ [key: string]: unknown;
2530
+ };
2531
+ /** @description Organization ID (optional, defaults to user's primary organization) */
2532
+ organizationId?: string;
2533
+ };
2534
+ };
2535
+ };
2536
+ responses: {
2537
+ /** @description Job updated successfully */
2538
+ 200: {
2539
+ headers: {
2540
+ [name: string]: unknown;
2541
+ };
2542
+ content: {
2543
+ "application/json": {
2544
+ success?: boolean;
2545
+ /** @description Updated print job */
2546
+ job?: Record<string, never>;
2547
+ };
2548
+ };
2549
+ };
2550
+ /** @description Bad request - job not in QUEUED status */
2551
+ 400: {
2552
+ headers: {
2553
+ [name: string]: unknown;
2554
+ };
2555
+ content: {
2556
+ "application/json": {
2557
+ error?: string;
2558
+ message?: string;
2559
+ };
2560
+ };
2561
+ };
2562
+ /** @description Forbidden - not authorized to update this job */
2563
+ 403: {
2564
+ headers: {
2565
+ [name: string]: unknown;
2566
+ };
2567
+ content: {
2568
+ "application/json": {
2569
+ error?: string;
2570
+ code?: string;
2571
+ message?: string;
2572
+ };
2573
+ };
2574
+ };
2575
+ /** @description Job not found */
2576
+ 404: {
2577
+ headers: {
2578
+ [name: string]: unknown;
2579
+ };
2580
+ content: {
2581
+ "application/json": {
2582
+ error?: string;
2583
+ message?: string;
2584
+ };
2585
+ };
2586
+ };
2587
+ /** @description Internal server error */
2588
+ 500: {
2589
+ headers: {
2590
+ [name: string]: unknown;
2591
+ };
2592
+ content: {
2593
+ "application/json": {
2594
+ error?: string;
2595
+ message?: string;
2596
+ };
2597
+ };
2598
+ };
2599
+ };
2600
+ };
2601
+ trace?: never;
2602
+ };
2603
+ "/v1/print-jobs/create-requests/{requestId}": {
2604
+ parameters: {
2605
+ query?: never;
2606
+ header?: never;
2607
+ path?: never;
2608
+ cookie?: never;
2609
+ };
2610
+ /** Poll one asynchronous single-plate creation request */
2611
+ get: {
2612
+ parameters: {
2613
+ query?: never;
2614
+ header?: never;
2615
+ path: {
2616
+ requestId: string;
2617
+ };
2618
+ cookie?: never;
2619
+ };
2620
+ requestBody?: never;
2621
+ responses: {
2622
+ /** @description Default Response */
2623
+ 200: {
2624
+ headers: {
2625
+ [name: string]: unknown;
2626
+ };
2627
+ content: {
2628
+ "application/json": {
2629
+ /** Format: uuid */
2630
+ requestId: string;
2631
+ /** @enum {string} */
2632
+ status: "preparing" | "held" | "created" | "failed" | "cancelled";
2633
+ externalId: string | null;
2634
+ createdAt: string;
2635
+ job: ({
2636
+ id: number;
2637
+ status: string;
2638
+ /** Format: uuid */
2639
+ model_file_id: string | null;
2640
+ /** Format: uuid */
2641
+ printer_id: string | null;
2642
+ print_options: ({
2643
+ /** @enum {string} */
2644
+ filament_route_state?: "waiting" | "resolved";
2645
+ filament_waiting_reasons?: {
2646
+ /** Format: uuid */
2647
+ filamentId?: string;
2648
+ brand?: string | null;
2649
+ name?: string;
2650
+ colorName?: string | null;
2651
+ material?: string;
2652
+ colorHex?: string;
2653
+ /** @enum {string} */
2654
+ code: "filament_not_loaded" | "material_route_changed";
2655
+ sourceSlot?: number;
2656
+ color?: string;
2657
+ /** @enum {string} */
2658
+ cause?: "slot_empty" | "missing_material" | "color_distance" | "slot_conflict";
2659
+ suggestedTargetSlot?: {
2660
+ ams_id: number;
2661
+ slot_id: number;
2662
+ };
2663
+ }[];
2664
+ } & {
2665
+ [key: string]: unknown;
2666
+ }) | null;
2667
+ } & {
2668
+ [key: string]: unknown;
2669
+ }) | null;
2670
+ requiredActions: (({
2671
+ item: number;
2672
+ plateNumber: number;
2673
+ hold: {
2674
+ /** @enum {string} */
2675
+ code: "material_change_requires_qualification";
2676
+ slots: number[];
2677
+ } | {
2678
+ /** @enum {string} */
2679
+ code: "inspection_review_required";
2680
+ reason: string;
2681
+ } | {
2682
+ /** @enum {string} */
2683
+ code: "unmapped_used_slot";
2684
+ slots: number[];
2685
+ } | {
2686
+ /** @enum {string} */
2687
+ code: "project_source_too_large";
2688
+ limit: {
2689
+ /** @enum {string} */
2690
+ name: "projectSourceBytes";
2691
+ max: number;
2692
+ observed: number;
2693
+ };
2694
+ } | {
2695
+ /** @enum {string} */
2696
+ code: "project_review_required";
2697
+ detail: string;
2698
+ changes?: {
2699
+ key: string;
2700
+ sourceValue: (string | null) | string[] | number | boolean;
2701
+ engineValue: (string | null) | string[] | number | boolean;
2702
+ slots: number[];
2703
+ }[];
2704
+ sourceRelease?: string | null;
2705
+ engineRelease?: string;
2706
+ } | {
2707
+ /** @enum {string} */
2708
+ code: "preview_mismatch_after_remap";
2709
+ detail: string;
2710
+ };
2711
+ } & {
2712
+ [key: string]: unknown;
2713
+ }) | ({
2714
+ code: string;
2715
+ } & {
2716
+ [key: string]: unknown;
2717
+ }))[];
2718
+ /** @default [] */
2719
+ warnings: ({
2720
+ /** @enum {string} */
2721
+ code: "custom_instructions_kept";
2722
+ keys: string[];
2723
+ } | {
2724
+ /** @enum {string} */
2725
+ code: "custom_instructions_replaced";
2726
+ keys: string[];
2727
+ } | {
2728
+ /** @enum {string} */
2729
+ code: "preview_stale_after_remap";
2730
+ slots: number[];
2731
+ bedChanged: boolean;
2732
+ })[];
2733
+ error: {
2734
+ [key: string]: unknown;
2735
+ } | null;
2736
+ };
2737
+ };
2738
+ };
2739
+ /** @description Default Response */
2740
+ 404: {
2741
+ headers: {
2742
+ [name: string]: unknown;
2743
+ };
2744
+ content: {
2745
+ "application/json": {
2746
+ error?: string;
2747
+ };
2748
+ };
2749
+ };
2750
+ };
2751
+ };
2752
+ put?: never;
2753
+ post?: never;
2754
+ delete?: never;
2755
+ options?: never;
2756
+ head?: never;
2757
+ patch?: never;
2758
+ trace?: never;
2759
+ };
2760
+ "/v1/print-jobs/create-requests/{requestId}/release": {
2761
+ parameters: {
2762
+ query?: never;
2763
+ header?: never;
2160
2764
  path?: never;
2161
2765
  cookie?: never;
2162
2766
  };
2163
2767
  get?: never;
2164
2768
  put?: never;
2165
- /** Cancel a creation request before job admission */
2769
+ /** Authorize admission of a manually held creation request */
2166
2770
  post: {
2167
2771
  parameters: {
2168
2772
  query?: never;
@@ -2170,79 +2774,1872 @@ interface paths {
2170
2774
  path: {
2171
2775
  requestId: string;
2172
2776
  };
2173
- cookie?: never;
2174
- };
2175
- requestBody?: never;
2176
- responses: {
2777
+ cookie?: never;
2778
+ };
2779
+ requestBody?: never;
2780
+ responses: {
2781
+ /** @description Default Response */
2782
+ 202: {
2783
+ headers: {
2784
+ [name: string]: unknown;
2785
+ };
2786
+ content: {
2787
+ "application/json": {
2788
+ authorized: boolean;
2789
+ };
2790
+ };
2791
+ };
2792
+ /** @description Authentication required */
2793
+ 401: {
2794
+ headers: {
2795
+ [name: string]: unknown;
2796
+ };
2797
+ content: {
2798
+ "application/json": {
2799
+ error?: string;
2800
+ message?: string;
2801
+ requestId?: string;
2802
+ code?: string;
2803
+ statusCode?: number;
2804
+ };
2805
+ };
2806
+ };
2807
+ /** @description API key requires control scope */
2808
+ 403: {
2809
+ headers: {
2810
+ [name: string]: unknown;
2811
+ };
2812
+ content: {
2813
+ "application/json": {
2814
+ error?: string;
2815
+ message?: string;
2816
+ requestId?: string;
2817
+ code?: string;
2818
+ statusCode?: number;
2819
+ };
2820
+ };
2821
+ };
2822
+ /** @description Creation request not found */
2823
+ 404: {
2824
+ headers: {
2825
+ [name: string]: unknown;
2826
+ };
2827
+ content: {
2828
+ "application/json": {
2829
+ error?: string;
2830
+ message?: string;
2831
+ requestId?: string;
2832
+ };
2833
+ };
2834
+ };
2835
+ /** @description Creation request no longer supports this action */
2836
+ 409: {
2837
+ headers: {
2838
+ [name: string]: unknown;
2839
+ };
2840
+ content: {
2841
+ "application/json": {
2842
+ error?: string;
2843
+ message?: string;
2844
+ requestId?: string;
2845
+ };
2846
+ };
2847
+ };
2848
+ };
2849
+ };
2850
+ delete?: never;
2851
+ options?: never;
2852
+ head?: never;
2853
+ patch?: never;
2854
+ trace?: never;
2855
+ };
2856
+ "/v1/print-jobs/create-requests/{requestId}/approve-review": {
2857
+ parameters: {
2858
+ query?: never;
2859
+ header?: never;
2860
+ path?: never;
2861
+ cookie?: never;
2862
+ };
2863
+ get?: never;
2864
+ put?: never;
2865
+ /** Approve exactly the reported engine setting changes and re-slice */
2866
+ post: {
2867
+ parameters: {
2868
+ query?: never;
2869
+ header?: never;
2870
+ path: {
2871
+ requestId: string;
2872
+ };
2873
+ cookie?: never;
2874
+ };
2875
+ requestBody: {
2876
+ content: {
2877
+ "application/json": {
2878
+ changes: {
2879
+ key: string;
2880
+ sourceValue: (string | null) | string[] | number | boolean;
2881
+ engineValue: (string | null) | string[] | number | boolean;
2882
+ slots: number[];
2883
+ }[];
2884
+ sourceRelease: string | null;
2885
+ engineRelease: string;
2886
+ };
2887
+ };
2888
+ };
2889
+ responses: {
2890
+ /** @description Default Response */
2891
+ 202: {
2892
+ headers: {
2893
+ [name: string]: unknown;
2894
+ };
2895
+ content: {
2896
+ "application/json": {
2897
+ approved: boolean;
2898
+ };
2899
+ };
2900
+ };
2901
+ /** @description Default Response */
2902
+ 400: {
2903
+ headers: {
2904
+ [name: string]: unknown;
2905
+ };
2906
+ content: {
2907
+ "application/json": {
2908
+ error?: string;
2909
+ message?: string;
2910
+ requestId?: string;
2911
+ };
2912
+ };
2913
+ };
2914
+ /** @description Authentication required */
2915
+ 401: {
2916
+ headers: {
2917
+ [name: string]: unknown;
2918
+ };
2919
+ content: {
2920
+ "application/json": {
2921
+ error?: string;
2922
+ message?: string;
2923
+ requestId?: string;
2924
+ code?: string;
2925
+ statusCode?: number;
2926
+ };
2927
+ };
2928
+ };
2929
+ /** @description API key requires control scope */
2930
+ 403: {
2931
+ headers: {
2932
+ [name: string]: unknown;
2933
+ };
2934
+ content: {
2935
+ "application/json": {
2936
+ error?: string;
2937
+ message?: string;
2938
+ requestId?: string;
2939
+ code?: string;
2940
+ statusCode?: number;
2941
+ };
2942
+ };
2943
+ };
2944
+ /** @description Creation request not found */
2945
+ 404: {
2946
+ headers: {
2947
+ [name: string]: unknown;
2948
+ };
2949
+ content: {
2950
+ "application/json": {
2951
+ error?: string;
2952
+ message?: string;
2953
+ requestId?: string;
2954
+ };
2955
+ };
2956
+ };
2957
+ /** @description Creation request no longer supports this action */
2958
+ 409: {
2959
+ headers: {
2960
+ [name: string]: unknown;
2961
+ };
2962
+ content: {
2963
+ "application/json": {
2964
+ error?: string;
2965
+ message?: string;
2966
+ requestId?: string;
2967
+ };
2968
+ };
2969
+ };
2970
+ };
2971
+ };
2972
+ delete?: never;
2973
+ options?: never;
2974
+ head?: never;
2975
+ patch?: never;
2976
+ trace?: never;
2977
+ };
2978
+ "/v1/print-jobs/create-requests/{requestId}/cancel": {
2979
+ parameters: {
2980
+ query?: never;
2981
+ header?: never;
2982
+ path?: never;
2983
+ cookie?: never;
2984
+ };
2985
+ get?: never;
2986
+ put?: never;
2987
+ /** Cancel a creation request before job admission */
2988
+ post: {
2989
+ parameters: {
2990
+ query?: never;
2991
+ header?: never;
2992
+ path: {
2993
+ requestId: string;
2994
+ };
2995
+ cookie?: never;
2996
+ };
2997
+ requestBody?: never;
2998
+ responses: {
2999
+ /** @description Default Response */
3000
+ 202: {
3001
+ headers: {
3002
+ [name: string]: unknown;
3003
+ };
3004
+ content: {
3005
+ "application/json": {
3006
+ cancelled: boolean;
3007
+ };
3008
+ };
3009
+ };
3010
+ /** @description Authentication required */
3011
+ 401: {
3012
+ headers: {
3013
+ [name: string]: unknown;
3014
+ };
3015
+ content: {
3016
+ "application/json": {
3017
+ error?: string;
3018
+ message?: string;
3019
+ requestId?: string;
3020
+ code?: string;
3021
+ statusCode?: number;
3022
+ };
3023
+ };
3024
+ };
3025
+ /** @description API key requires control scope */
3026
+ 403: {
3027
+ headers: {
3028
+ [name: string]: unknown;
3029
+ };
3030
+ content: {
3031
+ "application/json": {
3032
+ error?: string;
3033
+ message?: string;
3034
+ requestId?: string;
3035
+ code?: string;
3036
+ statusCode?: number;
3037
+ };
3038
+ };
3039
+ };
3040
+ /** @description Creation request not found */
3041
+ 404: {
3042
+ headers: {
3043
+ [name: string]: unknown;
3044
+ };
3045
+ content: {
3046
+ "application/json": {
3047
+ error?: string;
3048
+ message?: string;
3049
+ requestId?: string;
3050
+ };
3051
+ };
3052
+ };
3053
+ /** @description Creation request no longer supports this action */
3054
+ 409: {
3055
+ headers: {
3056
+ [name: string]: unknown;
3057
+ };
3058
+ content: {
3059
+ "application/json": {
3060
+ error?: string;
3061
+ message?: string;
3062
+ requestId?: string;
3063
+ };
3064
+ };
3065
+ };
3066
+ };
3067
+ };
3068
+ delete?: never;
3069
+ options?: never;
3070
+ head?: never;
3071
+ patch?: never;
3072
+ trace?: never;
3073
+ };
3074
+ "/v1/partner-production/preparations": {
3075
+ parameters: {
3076
+ query?: never;
3077
+ header?: never;
3078
+ path?: never;
3079
+ cookie?: never;
3080
+ };
3081
+ get?: never;
3082
+ put?: never;
3083
+ /**
3084
+ * Prepare plates of partner sources for an exact printer
3085
+ * @description Creates a durable asynchronous preparation request. Each item names a source version or a partner externalId, plates ("all" or a list), a plate-run quantity, optional material mappings and guidance, and an exact qualified printer. Requires Idempotency-Key. Creates no print job.
3086
+ */
3087
+ post: {
3088
+ parameters: {
3089
+ query?: never;
3090
+ header: {
3091
+ "idempotency-key": string;
3092
+ };
3093
+ path?: never;
3094
+ cookie?: never;
3095
+ };
3096
+ requestBody: {
3097
+ content: {
3098
+ "application/json": {
3099
+ items: ({
3100
+ /** Format: uuid */
3101
+ sourceVersionId: string;
3102
+ plates: "all" | number[];
3103
+ quantity: number;
3104
+ materialMappings?: {
3105
+ sourceSlot: number;
3106
+ material: string;
3107
+ color: string;
3108
+ }[];
3109
+ guidance?: {
3110
+ allowedMaterials?: string[];
3111
+ preferredFilaments?: {
3112
+ sourceSlot?: number;
3113
+ material: string;
3114
+ color?: string;
3115
+ brand?: string;
3116
+ name?: string;
3117
+ }[];
3118
+ };
3119
+ target: {
3120
+ /** Format: uuid */
3121
+ printerId: string;
3122
+ };
3123
+ } | {
3124
+ externalId: string;
3125
+ plates: "all" | number[];
3126
+ quantity: number;
3127
+ materialMappings?: {
3128
+ sourceSlot: number;
3129
+ material: string;
3130
+ color: string;
3131
+ }[];
3132
+ guidance?: {
3133
+ allowedMaterials?: string[];
3134
+ preferredFilaments?: {
3135
+ sourceSlot?: number;
3136
+ material: string;
3137
+ color?: string;
3138
+ brand?: string;
3139
+ name?: string;
3140
+ }[];
3141
+ };
3142
+ target: {
3143
+ /** Format: uuid */
3144
+ printerId: string;
3145
+ };
3146
+ })[];
3147
+ };
3148
+ };
3149
+ };
3150
+ responses: {
3151
+ /** @description Default Response */
3152
+ 200: {
3153
+ headers: {
3154
+ [name: string]: unknown;
3155
+ };
3156
+ content: {
3157
+ "application/json": {
3158
+ /** Format: uuid */
3159
+ preparationId: string;
3160
+ /** @enum {string} */
3161
+ status: "waiting_for_source" | "preparing" | "held" | "ready" | "failed";
3162
+ /** Format: date-time */
3163
+ createdAt: string;
3164
+ holds: {
3165
+ item: number;
3166
+ plateNumber: number;
3167
+ hold: {
3168
+ /** @enum {string} */
3169
+ code: "material_change_requires_qualification";
3170
+ slots: number[];
3171
+ } | {
3172
+ /** @enum {string} */
3173
+ code: "inspection_review_required";
3174
+ reason: string;
3175
+ } | {
3176
+ /** @enum {string} */
3177
+ code: "unmapped_used_slot";
3178
+ slots: number[];
3179
+ } | {
3180
+ /** @enum {string} */
3181
+ code: "project_source_too_large";
3182
+ limit: {
3183
+ /** @enum {string} */
3184
+ name: "projectSourceBytes";
3185
+ max: number;
3186
+ observed: number;
3187
+ };
3188
+ } | {
3189
+ /** @enum {string} */
3190
+ code: "project_review_required";
3191
+ detail: string;
3192
+ changes?: {
3193
+ key: string;
3194
+ sourceValue: (string | null) | string[] | number | boolean;
3195
+ engineValue: (string | null) | string[] | number | boolean;
3196
+ slots: number[];
3197
+ }[];
3198
+ sourceRelease?: string | null;
3199
+ engineRelease?: string;
3200
+ } | {
3201
+ /** @enum {string} */
3202
+ code: "preview_mismatch_after_remap";
3203
+ detail: string;
3204
+ };
3205
+ }[];
3206
+ items: {
3207
+ index: number;
3208
+ /** @enum {string} */
3209
+ status: "waiting_for_source" | "preparing" | "held" | "ready" | "failed";
3210
+ source: {
3211
+ /** Format: uuid */
3212
+ sourceVersionId: string;
3213
+ externalId: string | null;
3214
+ /** @enum {string} */
3215
+ status: "queued" | "inspecting" | "ready" | "failed";
3216
+ };
3217
+ plates: "all" | number[];
3218
+ resolvedPlates: number[] | null;
3219
+ quantity: number;
3220
+ materialMappings: {
3221
+ sourceSlot: number;
3222
+ material: string;
3223
+ color: string;
3224
+ }[];
3225
+ guidance: {
3226
+ allowedMaterials: string[] | null;
3227
+ preferredFilaments: {
3228
+ sourceSlot?: number;
3229
+ material: string;
3230
+ color?: string;
3231
+ brand?: string;
3232
+ name?: string;
3233
+ }[] | null;
3234
+ };
3235
+ target: {
3236
+ /** Format: uuid */
3237
+ printerId: string;
3238
+ printerName: string;
3239
+ /** @enum {string} */
3240
+ qualification?: "bambu-p1s-0.4-standard-petg-v1";
3241
+ /** @enum {string} */
3242
+ path?: "native" | "qualified";
3243
+ targetMachine?: {
3244
+ preset: string;
3245
+ model: string;
3246
+ nozzleDiameterMm: number;
3247
+ };
3248
+ printerModel: string;
3249
+ nozzleDiameterMm: number;
3250
+ /** @enum {string} */
3251
+ nozzleFlow: "standard";
3252
+ buildSurface: string;
3253
+ profiles?: {
3254
+ printer: {
3255
+ /** Format: uuid */
3256
+ catalogId: string;
3257
+ name: string;
3258
+ };
3259
+ process: {
3260
+ /** Format: uuid */
3261
+ catalogId: string;
3262
+ name: string;
3263
+ };
3264
+ filament: {
3265
+ /** Format: uuid */
3266
+ catalogId: string;
3267
+ name: string;
3268
+ };
3269
+ };
3270
+ };
3271
+ failure: {
3272
+ /** @enum {string} */
3273
+ code: "source_failed" | "plate_not_found" | "no_plates" | "mapping_slot_not_found" | "inspection_unreadable";
3274
+ sourceError?: {
3275
+ /** @enum {string} */
3276
+ code: "invalid_archive" | "unsafe_path" | "unsafe_xml" | "resource_limit" | "invalid_project" | "toolpath_only" | "processing_timeout" | "storage_object_changed" | "inspection_interrupted" | "upload_interrupted";
3277
+ message: string;
3278
+ limit?: {
3279
+ /** @enum {string} */
3280
+ name: "uploadBytes" | "concurrentUploads" | "concurrentUploadsPerOrganization" | "uploadIdleTimeoutMs" | "uploadTimeoutMs" | "entries" | "compressionRatio" | "modelPartExpandedBytes" | "expandedBytes" | "parserBytesPerDocument" | "parserBytesPerArchive" | "xmlDepth" | "xmlElementsPerDocument" | "objects" | "plates" | "materialSlots" | "inspectionTimeoutMs" | "inspectorHeapMb";
3281
+ max: number;
3282
+ observed?: number;
3283
+ };
3284
+ };
3285
+ plates?: number[];
3286
+ slots?: number[];
3287
+ } | null;
3288
+ preparedPlates: {
3289
+ /** Format: uuid */
3290
+ plateId: string;
3291
+ plateNumber: number;
3292
+ runs: number;
3293
+ /** @enum {string} */
3294
+ status: "preparing" | "held" | "ready" | "failed";
3295
+ usedSlots: number[];
3296
+ materialMappings: {
3297
+ sourceSlot: number;
3298
+ material: string;
3299
+ color: string;
3300
+ /** @enum {string} */
3301
+ origin: "partner" | "inspection" | "placeholder";
3302
+ }[];
3303
+ holds: ({
3304
+ /** @enum {string} */
3305
+ code: "material_change_requires_qualification";
3306
+ slots: number[];
3307
+ } | {
3308
+ /** @enum {string} */
3309
+ code: "inspection_review_required";
3310
+ reason: string;
3311
+ } | {
3312
+ /** @enum {string} */
3313
+ code: "unmapped_used_slot";
3314
+ slots: number[];
3315
+ } | {
3316
+ /** @enum {string} */
3317
+ code: "project_source_too_large";
3318
+ limit: {
3319
+ /** @enum {string} */
3320
+ name: "projectSourceBytes";
3321
+ max: number;
3322
+ observed: number;
3323
+ };
3324
+ } | {
3325
+ /** @enum {string} */
3326
+ code: "project_review_required";
3327
+ detail: string;
3328
+ changes?: {
3329
+ key: string;
3330
+ sourceValue: (string | null) | string[] | number | boolean;
3331
+ engineValue: (string | null) | string[] | number | boolean;
3332
+ slots: number[];
3333
+ }[];
3334
+ sourceRelease?: string | null;
3335
+ engineRelease?: string;
3336
+ } | {
3337
+ /** @enum {string} */
3338
+ code: "preview_mismatch_after_remap";
3339
+ detail: string;
3340
+ })[];
3341
+ failure: {
3342
+ /** @enum {string} */
3343
+ code: "slice_failed";
3344
+ sliceCode: string;
3345
+ message: string;
3346
+ retryable: boolean;
3347
+ attempts: number;
3348
+ } | null;
3349
+ output: {
3350
+ /** Format: uuid */
3351
+ outputFileId: string;
3352
+ filename: string;
3353
+ bytes: number;
3354
+ sha256: string;
3355
+ } | null;
3356
+ lineage: {
3357
+ /** Format: uuid */
3358
+ sourceVersionId: string;
3359
+ sourceSha256: string;
3360
+ plateNumber: number;
3361
+ /** @enum {string} */
3362
+ qualification?: "bambu-p1s-0.4-standard-petg-v1";
3363
+ /** @enum {string} */
3364
+ path?: "native" | "qualified";
3365
+ sourceMachine?: {
3366
+ preset: string;
3367
+ model: string;
3368
+ nozzleDiameterMm: number;
3369
+ };
3370
+ materialQualifications?: {
3371
+ sourceSlot: number;
3372
+ /** @enum {string} */
3373
+ qualification: "bambu-p1s-0.4-standard-petg-v1";
3374
+ }[];
3375
+ targetMachine?: {
3376
+ preset: string;
3377
+ model: string;
3378
+ nozzleDiameterMm: number;
3379
+ };
3380
+ buildSurface: string;
3381
+ materialMappings: {
3382
+ sourceSlot: number;
3383
+ material: string;
3384
+ color: string;
3385
+ }[];
3386
+ engineSha256: string;
3387
+ resolvedProfilesSha256: string;
3388
+ derivedInputSha256: string;
3389
+ qualifiedProfileSourceHashes: {
3390
+ [key: string]: string;
3391
+ };
3392
+ replacedSettings: {
3393
+ key: string;
3394
+ source: string | string[] | number | boolean;
3395
+ target?: string | string[] | number | boolean;
3396
+ }[];
3397
+ omittedSettings: string[];
3398
+ settingFilterPolicy: {
3399
+ hold: string[];
3400
+ omit: string[];
3401
+ };
3402
+ ignoredSettings: string[];
3403
+ warnings: ({
3404
+ /** @enum {string} */
3405
+ code: "custom_instructions_kept";
3406
+ keys: string[];
3407
+ } | {
3408
+ /** @enum {string} */
3409
+ code: "custom_instructions_replaced";
3410
+ keys: string[];
3411
+ } | {
3412
+ /** @enum {string} */
3413
+ code: "preview_stale_after_remap";
3414
+ slots: number[];
3415
+ bedChanged: boolean;
3416
+ })[];
3417
+ engineFallback: {
3418
+ authoringVersion: string | null;
3419
+ selectedVersion: string;
3420
+ } | null;
3421
+ acceptedEngineSettingChanges?: {
3422
+ changes: {
3423
+ key: string;
3424
+ sourceValue: (string | null) | string[] | number | boolean;
3425
+ engineValue: (string | null) | string[] | number | boolean;
3426
+ slots: number[];
3427
+ }[];
3428
+ sourceRelease: string | null;
3429
+ engineRelease: string;
3430
+ };
3431
+ /** @enum {string} */
3432
+ preview: "source" | "engine" | "none";
3433
+ previewFile: string | null;
3434
+ finalArtifactSha256: string;
3435
+ } | null;
3436
+ }[];
3437
+ }[];
3438
+ };
3439
+ };
3440
+ };
3441
+ /** @description Default Response */
3442
+ 202: {
3443
+ headers: {
3444
+ [name: string]: unknown;
3445
+ };
3446
+ content: {
3447
+ "application/json": {
3448
+ /** Format: uuid */
3449
+ preparationId: string;
3450
+ /** @enum {string} */
3451
+ status: "waiting_for_source" | "preparing" | "held" | "ready" | "failed";
3452
+ /** Format: date-time */
3453
+ createdAt: string;
3454
+ holds: {
3455
+ item: number;
3456
+ plateNumber: number;
3457
+ hold: {
3458
+ /** @enum {string} */
3459
+ code: "material_change_requires_qualification";
3460
+ slots: number[];
3461
+ } | {
3462
+ /** @enum {string} */
3463
+ code: "inspection_review_required";
3464
+ reason: string;
3465
+ } | {
3466
+ /** @enum {string} */
3467
+ code: "unmapped_used_slot";
3468
+ slots: number[];
3469
+ } | {
3470
+ /** @enum {string} */
3471
+ code: "project_source_too_large";
3472
+ limit: {
3473
+ /** @enum {string} */
3474
+ name: "projectSourceBytes";
3475
+ max: number;
3476
+ observed: number;
3477
+ };
3478
+ } | {
3479
+ /** @enum {string} */
3480
+ code: "project_review_required";
3481
+ detail: string;
3482
+ changes?: {
3483
+ key: string;
3484
+ sourceValue: (string | null) | string[] | number | boolean;
3485
+ engineValue: (string | null) | string[] | number | boolean;
3486
+ slots: number[];
3487
+ }[];
3488
+ sourceRelease?: string | null;
3489
+ engineRelease?: string;
3490
+ } | {
3491
+ /** @enum {string} */
3492
+ code: "preview_mismatch_after_remap";
3493
+ detail: string;
3494
+ };
3495
+ }[];
3496
+ items: {
3497
+ index: number;
3498
+ /** @enum {string} */
3499
+ status: "waiting_for_source" | "preparing" | "held" | "ready" | "failed";
3500
+ source: {
3501
+ /** Format: uuid */
3502
+ sourceVersionId: string;
3503
+ externalId: string | null;
3504
+ /** @enum {string} */
3505
+ status: "queued" | "inspecting" | "ready" | "failed";
3506
+ };
3507
+ plates: "all" | number[];
3508
+ resolvedPlates: number[] | null;
3509
+ quantity: number;
3510
+ materialMappings: {
3511
+ sourceSlot: number;
3512
+ material: string;
3513
+ color: string;
3514
+ }[];
3515
+ guidance: {
3516
+ allowedMaterials: string[] | null;
3517
+ preferredFilaments: {
3518
+ sourceSlot?: number;
3519
+ material: string;
3520
+ color?: string;
3521
+ brand?: string;
3522
+ name?: string;
3523
+ }[] | null;
3524
+ };
3525
+ target: {
3526
+ /** Format: uuid */
3527
+ printerId: string;
3528
+ printerName: string;
3529
+ /** @enum {string} */
3530
+ qualification?: "bambu-p1s-0.4-standard-petg-v1";
3531
+ /** @enum {string} */
3532
+ path?: "native" | "qualified";
3533
+ targetMachine?: {
3534
+ preset: string;
3535
+ model: string;
3536
+ nozzleDiameterMm: number;
3537
+ };
3538
+ printerModel: string;
3539
+ nozzleDiameterMm: number;
3540
+ /** @enum {string} */
3541
+ nozzleFlow: "standard";
3542
+ buildSurface: string;
3543
+ profiles?: {
3544
+ printer: {
3545
+ /** Format: uuid */
3546
+ catalogId: string;
3547
+ name: string;
3548
+ };
3549
+ process: {
3550
+ /** Format: uuid */
3551
+ catalogId: string;
3552
+ name: string;
3553
+ };
3554
+ filament: {
3555
+ /** Format: uuid */
3556
+ catalogId: string;
3557
+ name: string;
3558
+ };
3559
+ };
3560
+ };
3561
+ failure: {
3562
+ /** @enum {string} */
3563
+ code: "source_failed" | "plate_not_found" | "no_plates" | "mapping_slot_not_found" | "inspection_unreadable";
3564
+ sourceError?: {
3565
+ /** @enum {string} */
3566
+ code: "invalid_archive" | "unsafe_path" | "unsafe_xml" | "resource_limit" | "invalid_project" | "toolpath_only" | "processing_timeout" | "storage_object_changed" | "inspection_interrupted" | "upload_interrupted";
3567
+ message: string;
3568
+ limit?: {
3569
+ /** @enum {string} */
3570
+ name: "uploadBytes" | "concurrentUploads" | "concurrentUploadsPerOrganization" | "uploadIdleTimeoutMs" | "uploadTimeoutMs" | "entries" | "compressionRatio" | "modelPartExpandedBytes" | "expandedBytes" | "parserBytesPerDocument" | "parserBytesPerArchive" | "xmlDepth" | "xmlElementsPerDocument" | "objects" | "plates" | "materialSlots" | "inspectionTimeoutMs" | "inspectorHeapMb";
3571
+ max: number;
3572
+ observed?: number;
3573
+ };
3574
+ };
3575
+ plates?: number[];
3576
+ slots?: number[];
3577
+ } | null;
3578
+ preparedPlates: {
3579
+ /** Format: uuid */
3580
+ plateId: string;
3581
+ plateNumber: number;
3582
+ runs: number;
3583
+ /** @enum {string} */
3584
+ status: "preparing" | "held" | "ready" | "failed";
3585
+ usedSlots: number[];
3586
+ materialMappings: {
3587
+ sourceSlot: number;
3588
+ material: string;
3589
+ color: string;
3590
+ /** @enum {string} */
3591
+ origin: "partner" | "inspection" | "placeholder";
3592
+ }[];
3593
+ holds: ({
3594
+ /** @enum {string} */
3595
+ code: "material_change_requires_qualification";
3596
+ slots: number[];
3597
+ } | {
3598
+ /** @enum {string} */
3599
+ code: "inspection_review_required";
3600
+ reason: string;
3601
+ } | {
3602
+ /** @enum {string} */
3603
+ code: "unmapped_used_slot";
3604
+ slots: number[];
3605
+ } | {
3606
+ /** @enum {string} */
3607
+ code: "project_source_too_large";
3608
+ limit: {
3609
+ /** @enum {string} */
3610
+ name: "projectSourceBytes";
3611
+ max: number;
3612
+ observed: number;
3613
+ };
3614
+ } | {
3615
+ /** @enum {string} */
3616
+ code: "project_review_required";
3617
+ detail: string;
3618
+ changes?: {
3619
+ key: string;
3620
+ sourceValue: (string | null) | string[] | number | boolean;
3621
+ engineValue: (string | null) | string[] | number | boolean;
3622
+ slots: number[];
3623
+ }[];
3624
+ sourceRelease?: string | null;
3625
+ engineRelease?: string;
3626
+ } | {
3627
+ /** @enum {string} */
3628
+ code: "preview_mismatch_after_remap";
3629
+ detail: string;
3630
+ })[];
3631
+ failure: {
3632
+ /** @enum {string} */
3633
+ code: "slice_failed";
3634
+ sliceCode: string;
3635
+ message: string;
3636
+ retryable: boolean;
3637
+ attempts: number;
3638
+ } | null;
3639
+ output: {
3640
+ /** Format: uuid */
3641
+ outputFileId: string;
3642
+ filename: string;
3643
+ bytes: number;
3644
+ sha256: string;
3645
+ } | null;
3646
+ lineage: {
3647
+ /** Format: uuid */
3648
+ sourceVersionId: string;
3649
+ sourceSha256: string;
3650
+ plateNumber: number;
3651
+ /** @enum {string} */
3652
+ qualification?: "bambu-p1s-0.4-standard-petg-v1";
3653
+ /** @enum {string} */
3654
+ path?: "native" | "qualified";
3655
+ sourceMachine?: {
3656
+ preset: string;
3657
+ model: string;
3658
+ nozzleDiameterMm: number;
3659
+ };
3660
+ materialQualifications?: {
3661
+ sourceSlot: number;
3662
+ /** @enum {string} */
3663
+ qualification: "bambu-p1s-0.4-standard-petg-v1";
3664
+ }[];
3665
+ targetMachine?: {
3666
+ preset: string;
3667
+ model: string;
3668
+ nozzleDiameterMm: number;
3669
+ };
3670
+ buildSurface: string;
3671
+ materialMappings: {
3672
+ sourceSlot: number;
3673
+ material: string;
3674
+ color: string;
3675
+ }[];
3676
+ engineSha256: string;
3677
+ resolvedProfilesSha256: string;
3678
+ derivedInputSha256: string;
3679
+ qualifiedProfileSourceHashes: {
3680
+ [key: string]: string;
3681
+ };
3682
+ replacedSettings: {
3683
+ key: string;
3684
+ source: string | string[] | number | boolean;
3685
+ target?: string | string[] | number | boolean;
3686
+ }[];
3687
+ omittedSettings: string[];
3688
+ settingFilterPolicy: {
3689
+ hold: string[];
3690
+ omit: string[];
3691
+ };
3692
+ ignoredSettings: string[];
3693
+ warnings: ({
3694
+ /** @enum {string} */
3695
+ code: "custom_instructions_kept";
3696
+ keys: string[];
3697
+ } | {
3698
+ /** @enum {string} */
3699
+ code: "custom_instructions_replaced";
3700
+ keys: string[];
3701
+ } | {
3702
+ /** @enum {string} */
3703
+ code: "preview_stale_after_remap";
3704
+ slots: number[];
3705
+ bedChanged: boolean;
3706
+ })[];
3707
+ engineFallback: {
3708
+ authoringVersion: string | null;
3709
+ selectedVersion: string;
3710
+ } | null;
3711
+ acceptedEngineSettingChanges?: {
3712
+ changes: {
3713
+ key: string;
3714
+ sourceValue: (string | null) | string[] | number | boolean;
3715
+ engineValue: (string | null) | string[] | number | boolean;
3716
+ slots: number[];
3717
+ }[];
3718
+ sourceRelease: string | null;
3719
+ engineRelease: string;
3720
+ };
3721
+ /** @enum {string} */
3722
+ preview: "source" | "engine" | "none";
3723
+ previewFile: string | null;
3724
+ finalArtifactSha256: string;
3725
+ } | null;
3726
+ }[];
3727
+ }[];
3728
+ };
3729
+ };
3730
+ };
3731
+ /** @description Default Response */
3732
+ 400: {
3733
+ headers: {
3734
+ [name: string]: unknown;
3735
+ };
3736
+ content: {
3737
+ "application/json": {
3738
+ /** @enum {string} */
3739
+ error: "invalid_request" | "unauthorized" | "not_found" | "idempotency_conflict" | "output_not_ready" | "output_unavailable" | "request_too_large" | "source_not_found" | "target_not_found" | "target_not_qualified" | "material_not_qualified" | "preparation_disabled" | "preparation_unavailable";
3740
+ item?: number;
3741
+ limit?: {
3742
+ /** @enum {string} */
3743
+ name: "items";
3744
+ max: number;
3745
+ observed: number;
3746
+ };
3747
+ /** @description Present on target_not_qualified: one entry for each refused item. */
3748
+ reasons?: {
3749
+ /** @description Index of the request item that names this printer. */
3750
+ item: number;
3751
+ /** @enum {string} */
3752
+ code: "printer_brand_not_qualified" | "printer_model_not_qualified" | "nozzle_diameter_not_qualified" | "nozzle_diameter_unknown";
3753
+ /** Format: uuid */
3754
+ printerId: string;
3755
+ printerName: string;
3756
+ /**
3757
+ * @description The printer setting that an operator must correct.
3758
+ * @enum {string}
3759
+ */
3760
+ field: "printer_brand" | "model" | "nozzle_diameter";
3761
+ /** @description The value the qualification needs, such as 0.4 for nozzle_diameter. */
3762
+ required: string | number;
3763
+ }[];
3764
+ };
3765
+ };
3766
+ };
3767
+ /** @description Default Response */
3768
+ 401: {
3769
+ headers: {
3770
+ [name: string]: unknown;
3771
+ };
3772
+ content: {
3773
+ "application/json": {
3774
+ error?: string;
3775
+ message?: string;
3776
+ requestId?: string;
3777
+ };
3778
+ };
3779
+ };
3780
+ /** @description Default Response */
3781
+ 403: {
3782
+ headers: {
3783
+ [name: string]: unknown;
3784
+ };
3785
+ content: {
3786
+ "application/json": {
3787
+ error?: string;
3788
+ message?: string;
3789
+ requestId?: string;
3790
+ };
3791
+ };
3792
+ };
3793
+ /** @description Default Response */
3794
+ 409: {
3795
+ headers: {
3796
+ [name: string]: unknown;
3797
+ };
3798
+ content: {
3799
+ "application/json": {
3800
+ /** @enum {string} */
3801
+ error: "invalid_request" | "unauthorized" | "not_found" | "idempotency_conflict" | "output_not_ready" | "output_unavailable" | "request_too_large" | "source_not_found" | "target_not_found" | "target_not_qualified" | "material_not_qualified" | "preparation_disabled" | "preparation_unavailable";
3802
+ item?: number;
3803
+ limit?: {
3804
+ /** @enum {string} */
3805
+ name: "items";
3806
+ max: number;
3807
+ observed: number;
3808
+ };
3809
+ /** @description Present on target_not_qualified: one entry for each refused item. */
3810
+ reasons?: {
3811
+ /** @description Index of the request item that names this printer. */
3812
+ item: number;
3813
+ /** @enum {string} */
3814
+ code: "printer_brand_not_qualified" | "printer_model_not_qualified" | "nozzle_diameter_not_qualified" | "nozzle_diameter_unknown";
3815
+ /** Format: uuid */
3816
+ printerId: string;
3817
+ printerName: string;
3818
+ /**
3819
+ * @description The printer setting that an operator must correct.
3820
+ * @enum {string}
3821
+ */
3822
+ field: "printer_brand" | "model" | "nozzle_diameter";
3823
+ /** @description The value the qualification needs, such as 0.4 for nozzle_diameter. */
3824
+ required: string | number;
3825
+ }[];
3826
+ };
3827
+ };
3828
+ };
3829
+ /** @description Default Response */
3830
+ 422: {
3831
+ headers: {
3832
+ [name: string]: unknown;
3833
+ };
3834
+ content: {
3835
+ "application/json": {
3836
+ /** @enum {string} */
3837
+ error: "invalid_request" | "unauthorized" | "not_found" | "idempotency_conflict" | "output_not_ready" | "output_unavailable" | "request_too_large" | "source_not_found" | "target_not_found" | "target_not_qualified" | "material_not_qualified" | "preparation_disabled" | "preparation_unavailable";
3838
+ item?: number;
3839
+ limit?: {
3840
+ /** @enum {string} */
3841
+ name: "items";
3842
+ max: number;
3843
+ observed: number;
3844
+ };
3845
+ /** @description Present on target_not_qualified: one entry for each refused item. */
3846
+ reasons?: {
3847
+ /** @description Index of the request item that names this printer. */
3848
+ item: number;
3849
+ /** @enum {string} */
3850
+ code: "printer_brand_not_qualified" | "printer_model_not_qualified" | "nozzle_diameter_not_qualified" | "nozzle_diameter_unknown";
3851
+ /** Format: uuid */
3852
+ printerId: string;
3853
+ printerName: string;
3854
+ /**
3855
+ * @description The printer setting that an operator must correct.
3856
+ * @enum {string}
3857
+ */
3858
+ field: "printer_brand" | "model" | "nozzle_diameter";
3859
+ /** @description The value the qualification needs, such as 0.4 for nozzle_diameter. */
3860
+ required: string | number;
3861
+ }[];
3862
+ };
3863
+ };
3864
+ };
3865
+ /** @description Default Response */
3866
+ 503: {
3867
+ headers: {
3868
+ [name: string]: unknown;
3869
+ };
3870
+ content: {
3871
+ "application/json": {
3872
+ /** @enum {string} */
3873
+ error: "invalid_request" | "unauthorized" | "not_found" | "idempotency_conflict" | "output_not_ready" | "output_unavailable" | "request_too_large" | "source_not_found" | "target_not_found" | "target_not_qualified" | "material_not_qualified" | "preparation_disabled" | "preparation_unavailable";
3874
+ item?: number;
3875
+ limit?: {
3876
+ /** @enum {string} */
3877
+ name: "items";
3878
+ max: number;
3879
+ observed: number;
3880
+ };
3881
+ /** @description Present on target_not_qualified: one entry for each refused item. */
3882
+ reasons?: {
3883
+ /** @description Index of the request item that names this printer. */
3884
+ item: number;
3885
+ /** @enum {string} */
3886
+ code: "printer_brand_not_qualified" | "printer_model_not_qualified" | "nozzle_diameter_not_qualified" | "nozzle_diameter_unknown";
3887
+ /** Format: uuid */
3888
+ printerId: string;
3889
+ printerName: string;
3890
+ /**
3891
+ * @description The printer setting that an operator must correct.
3892
+ * @enum {string}
3893
+ */
3894
+ field: "printer_brand" | "model" | "nozzle_diameter";
3895
+ /** @description The value the qualification needs, such as 0.4 for nozzle_diameter. */
3896
+ required: string | number;
3897
+ }[];
3898
+ };
3899
+ };
3900
+ };
3901
+ };
3902
+ };
3903
+ delete?: never;
3904
+ options?: never;
3905
+ head?: never;
3906
+ patch?: never;
3907
+ trace?: never;
3908
+ };
3909
+ "/v1/partner-production/preparations/{preparationId}": {
3910
+ parameters: {
3911
+ query?: never;
3912
+ header?: never;
3913
+ path?: never;
3914
+ cookie?: never;
3915
+ };
3916
+ /** Poll a partner preparation request */
3917
+ get: {
3918
+ parameters: {
3919
+ query?: never;
3920
+ header?: never;
3921
+ path: {
3922
+ preparationId: string;
3923
+ };
3924
+ cookie?: never;
3925
+ };
3926
+ requestBody?: never;
3927
+ responses: {
3928
+ /** @description Default Response */
3929
+ 200: {
3930
+ headers: {
3931
+ [name: string]: unknown;
3932
+ };
3933
+ content: {
3934
+ "application/json": {
3935
+ /** Format: uuid */
3936
+ preparationId: string;
3937
+ /** @enum {string} */
3938
+ status: "waiting_for_source" | "preparing" | "held" | "ready" | "failed";
3939
+ /** Format: date-time */
3940
+ createdAt: string;
3941
+ holds: {
3942
+ item: number;
3943
+ plateNumber: number;
3944
+ hold: {
3945
+ /** @enum {string} */
3946
+ code: "material_change_requires_qualification";
3947
+ slots: number[];
3948
+ } | {
3949
+ /** @enum {string} */
3950
+ code: "inspection_review_required";
3951
+ reason: string;
3952
+ } | {
3953
+ /** @enum {string} */
3954
+ code: "unmapped_used_slot";
3955
+ slots: number[];
3956
+ } | {
3957
+ /** @enum {string} */
3958
+ code: "project_source_too_large";
3959
+ limit: {
3960
+ /** @enum {string} */
3961
+ name: "projectSourceBytes";
3962
+ max: number;
3963
+ observed: number;
3964
+ };
3965
+ } | {
3966
+ /** @enum {string} */
3967
+ code: "project_review_required";
3968
+ detail: string;
3969
+ changes?: {
3970
+ key: string;
3971
+ sourceValue: (string | null) | string[] | number | boolean;
3972
+ engineValue: (string | null) | string[] | number | boolean;
3973
+ slots: number[];
3974
+ }[];
3975
+ sourceRelease?: string | null;
3976
+ engineRelease?: string;
3977
+ } | {
3978
+ /** @enum {string} */
3979
+ code: "preview_mismatch_after_remap";
3980
+ detail: string;
3981
+ };
3982
+ }[];
3983
+ items: {
3984
+ index: number;
3985
+ /** @enum {string} */
3986
+ status: "waiting_for_source" | "preparing" | "held" | "ready" | "failed";
3987
+ source: {
3988
+ /** Format: uuid */
3989
+ sourceVersionId: string;
3990
+ externalId: string | null;
3991
+ /** @enum {string} */
3992
+ status: "queued" | "inspecting" | "ready" | "failed";
3993
+ };
3994
+ plates: "all" | number[];
3995
+ resolvedPlates: number[] | null;
3996
+ quantity: number;
3997
+ materialMappings: {
3998
+ sourceSlot: number;
3999
+ material: string;
4000
+ color: string;
4001
+ }[];
4002
+ guidance: {
4003
+ allowedMaterials: string[] | null;
4004
+ preferredFilaments: {
4005
+ sourceSlot?: number;
4006
+ material: string;
4007
+ color?: string;
4008
+ brand?: string;
4009
+ name?: string;
4010
+ }[] | null;
4011
+ };
4012
+ target: {
4013
+ /** Format: uuid */
4014
+ printerId: string;
4015
+ printerName: string;
4016
+ /** @enum {string} */
4017
+ qualification?: "bambu-p1s-0.4-standard-petg-v1";
4018
+ /** @enum {string} */
4019
+ path?: "native" | "qualified";
4020
+ targetMachine?: {
4021
+ preset: string;
4022
+ model: string;
4023
+ nozzleDiameterMm: number;
4024
+ };
4025
+ printerModel: string;
4026
+ nozzleDiameterMm: number;
4027
+ /** @enum {string} */
4028
+ nozzleFlow: "standard";
4029
+ buildSurface: string;
4030
+ profiles?: {
4031
+ printer: {
4032
+ /** Format: uuid */
4033
+ catalogId: string;
4034
+ name: string;
4035
+ };
4036
+ process: {
4037
+ /** Format: uuid */
4038
+ catalogId: string;
4039
+ name: string;
4040
+ };
4041
+ filament: {
4042
+ /** Format: uuid */
4043
+ catalogId: string;
4044
+ name: string;
4045
+ };
4046
+ };
4047
+ };
4048
+ failure: {
4049
+ /** @enum {string} */
4050
+ code: "source_failed" | "plate_not_found" | "no_plates" | "mapping_slot_not_found" | "inspection_unreadable";
4051
+ sourceError?: {
4052
+ /** @enum {string} */
4053
+ code: "invalid_archive" | "unsafe_path" | "unsafe_xml" | "resource_limit" | "invalid_project" | "toolpath_only" | "processing_timeout" | "storage_object_changed" | "inspection_interrupted" | "upload_interrupted";
4054
+ message: string;
4055
+ limit?: {
4056
+ /** @enum {string} */
4057
+ name: "uploadBytes" | "concurrentUploads" | "concurrentUploadsPerOrganization" | "uploadIdleTimeoutMs" | "uploadTimeoutMs" | "entries" | "compressionRatio" | "modelPartExpandedBytes" | "expandedBytes" | "parserBytesPerDocument" | "parserBytesPerArchive" | "xmlDepth" | "xmlElementsPerDocument" | "objects" | "plates" | "materialSlots" | "inspectionTimeoutMs" | "inspectorHeapMb";
4058
+ max: number;
4059
+ observed?: number;
4060
+ };
4061
+ };
4062
+ plates?: number[];
4063
+ slots?: number[];
4064
+ } | null;
4065
+ preparedPlates: {
4066
+ /** Format: uuid */
4067
+ plateId: string;
4068
+ plateNumber: number;
4069
+ runs: number;
4070
+ /** @enum {string} */
4071
+ status: "preparing" | "held" | "ready" | "failed";
4072
+ usedSlots: number[];
4073
+ materialMappings: {
4074
+ sourceSlot: number;
4075
+ material: string;
4076
+ color: string;
4077
+ /** @enum {string} */
4078
+ origin: "partner" | "inspection" | "placeholder";
4079
+ }[];
4080
+ holds: ({
4081
+ /** @enum {string} */
4082
+ code: "material_change_requires_qualification";
4083
+ slots: number[];
4084
+ } | {
4085
+ /** @enum {string} */
4086
+ code: "inspection_review_required";
4087
+ reason: string;
4088
+ } | {
4089
+ /** @enum {string} */
4090
+ code: "unmapped_used_slot";
4091
+ slots: number[];
4092
+ } | {
4093
+ /** @enum {string} */
4094
+ code: "project_source_too_large";
4095
+ limit: {
4096
+ /** @enum {string} */
4097
+ name: "projectSourceBytes";
4098
+ max: number;
4099
+ observed: number;
4100
+ };
4101
+ } | {
4102
+ /** @enum {string} */
4103
+ code: "project_review_required";
4104
+ detail: string;
4105
+ changes?: {
4106
+ key: string;
4107
+ sourceValue: (string | null) | string[] | number | boolean;
4108
+ engineValue: (string | null) | string[] | number | boolean;
4109
+ slots: number[];
4110
+ }[];
4111
+ sourceRelease?: string | null;
4112
+ engineRelease?: string;
4113
+ } | {
4114
+ /** @enum {string} */
4115
+ code: "preview_mismatch_after_remap";
4116
+ detail: string;
4117
+ })[];
4118
+ failure: {
4119
+ /** @enum {string} */
4120
+ code: "slice_failed";
4121
+ sliceCode: string;
4122
+ message: string;
4123
+ retryable: boolean;
4124
+ attempts: number;
4125
+ } | null;
4126
+ output: {
4127
+ /** Format: uuid */
4128
+ outputFileId: string;
4129
+ filename: string;
4130
+ bytes: number;
4131
+ sha256: string;
4132
+ } | null;
4133
+ lineage: {
4134
+ /** Format: uuid */
4135
+ sourceVersionId: string;
4136
+ sourceSha256: string;
4137
+ plateNumber: number;
4138
+ /** @enum {string} */
4139
+ qualification?: "bambu-p1s-0.4-standard-petg-v1";
4140
+ /** @enum {string} */
4141
+ path?: "native" | "qualified";
4142
+ sourceMachine?: {
4143
+ preset: string;
4144
+ model: string;
4145
+ nozzleDiameterMm: number;
4146
+ };
4147
+ materialQualifications?: {
4148
+ sourceSlot: number;
4149
+ /** @enum {string} */
4150
+ qualification: "bambu-p1s-0.4-standard-petg-v1";
4151
+ }[];
4152
+ targetMachine?: {
4153
+ preset: string;
4154
+ model: string;
4155
+ nozzleDiameterMm: number;
4156
+ };
4157
+ buildSurface: string;
4158
+ materialMappings: {
4159
+ sourceSlot: number;
4160
+ material: string;
4161
+ color: string;
4162
+ }[];
4163
+ engineSha256: string;
4164
+ resolvedProfilesSha256: string;
4165
+ derivedInputSha256: string;
4166
+ qualifiedProfileSourceHashes: {
4167
+ [key: string]: string;
4168
+ };
4169
+ replacedSettings: {
4170
+ key: string;
4171
+ source: string | string[] | number | boolean;
4172
+ target?: string | string[] | number | boolean;
4173
+ }[];
4174
+ omittedSettings: string[];
4175
+ settingFilterPolicy: {
4176
+ hold: string[];
4177
+ omit: string[];
4178
+ };
4179
+ ignoredSettings: string[];
4180
+ warnings: ({
4181
+ /** @enum {string} */
4182
+ code: "custom_instructions_kept";
4183
+ keys: string[];
4184
+ } | {
4185
+ /** @enum {string} */
4186
+ code: "custom_instructions_replaced";
4187
+ keys: string[];
4188
+ } | {
4189
+ /** @enum {string} */
4190
+ code: "preview_stale_after_remap";
4191
+ slots: number[];
4192
+ bedChanged: boolean;
4193
+ })[];
4194
+ engineFallback: {
4195
+ authoringVersion: string | null;
4196
+ selectedVersion: string;
4197
+ } | null;
4198
+ acceptedEngineSettingChanges?: {
4199
+ changes: {
4200
+ key: string;
4201
+ sourceValue: (string | null) | string[] | number | boolean;
4202
+ engineValue: (string | null) | string[] | number | boolean;
4203
+ slots: number[];
4204
+ }[];
4205
+ sourceRelease: string | null;
4206
+ engineRelease: string;
4207
+ };
4208
+ /** @enum {string} */
4209
+ preview: "source" | "engine" | "none";
4210
+ previewFile: string | null;
4211
+ finalArtifactSha256: string;
4212
+ } | null;
4213
+ }[];
4214
+ }[];
4215
+ };
4216
+ };
4217
+ };
4218
+ /** @description Default Response */
4219
+ 401: {
4220
+ headers: {
4221
+ [name: string]: unknown;
4222
+ };
4223
+ content: {
4224
+ "application/json": {
4225
+ error?: string;
4226
+ message?: string;
4227
+ requestId?: string;
4228
+ };
4229
+ };
4230
+ };
4231
+ /** @description Default Response */
4232
+ 403: {
4233
+ headers: {
4234
+ [name: string]: unknown;
4235
+ };
4236
+ content: {
4237
+ "application/json": {
4238
+ error?: string;
4239
+ message?: string;
4240
+ requestId?: string;
4241
+ };
4242
+ };
4243
+ };
4244
+ /** @description Default Response */
4245
+ 404: {
4246
+ headers: {
4247
+ [name: string]: unknown;
4248
+ };
4249
+ content: {
4250
+ "application/json": {
4251
+ /** @enum {string} */
4252
+ error: "invalid_request" | "unauthorized" | "not_found" | "idempotency_conflict" | "output_not_ready" | "output_unavailable" | "request_too_large" | "source_not_found" | "target_not_found" | "target_not_qualified" | "material_not_qualified" | "preparation_disabled" | "preparation_unavailable";
4253
+ item?: number;
4254
+ limit?: {
4255
+ /** @enum {string} */
4256
+ name: "items";
4257
+ max: number;
4258
+ observed: number;
4259
+ };
4260
+ /** @description Present on target_not_qualified: one entry for each refused item. */
4261
+ reasons?: {
4262
+ /** @description Index of the request item that names this printer. */
4263
+ item: number;
4264
+ /** @enum {string} */
4265
+ code: "printer_brand_not_qualified" | "printer_model_not_qualified" | "nozzle_diameter_not_qualified" | "nozzle_diameter_unknown";
4266
+ /** Format: uuid */
4267
+ printerId: string;
4268
+ printerName: string;
4269
+ /**
4270
+ * @description The printer setting that an operator must correct.
4271
+ * @enum {string}
4272
+ */
4273
+ field: "printer_brand" | "model" | "nozzle_diameter";
4274
+ /** @description The value the qualification needs, such as 0.4 for nozzle_diameter. */
4275
+ required: string | number;
4276
+ }[];
4277
+ };
4278
+ };
4279
+ };
4280
+ /** @description Default Response */
4281
+ 503: {
4282
+ headers: {
4283
+ [name: string]: unknown;
4284
+ };
4285
+ content: {
4286
+ "application/json": {
4287
+ /** @enum {string} */
4288
+ error: "invalid_request" | "unauthorized" | "not_found" | "idempotency_conflict" | "output_not_ready" | "output_unavailable" | "request_too_large" | "source_not_found" | "target_not_found" | "target_not_qualified" | "material_not_qualified" | "preparation_disabled" | "preparation_unavailable";
4289
+ item?: number;
4290
+ limit?: {
4291
+ /** @enum {string} */
4292
+ name: "items";
4293
+ max: number;
4294
+ observed: number;
4295
+ };
4296
+ /** @description Present on target_not_qualified: one entry for each refused item. */
4297
+ reasons?: {
4298
+ /** @description Index of the request item that names this printer. */
4299
+ item: number;
4300
+ /** @enum {string} */
4301
+ code: "printer_brand_not_qualified" | "printer_model_not_qualified" | "nozzle_diameter_not_qualified" | "nozzle_diameter_unknown";
4302
+ /** Format: uuid */
4303
+ printerId: string;
4304
+ printerName: string;
4305
+ /**
4306
+ * @description The printer setting that an operator must correct.
4307
+ * @enum {string}
4308
+ */
4309
+ field: "printer_brand" | "model" | "nozzle_diameter";
4310
+ /** @description The value the qualification needs, such as 0.4 for nozzle_diameter. */
4311
+ required: string | number;
4312
+ }[];
4313
+ };
4314
+ };
4315
+ };
4316
+ };
4317
+ };
4318
+ put?: never;
4319
+ post?: never;
4320
+ delete?: never;
4321
+ options?: never;
4322
+ head?: never;
4323
+ patch?: never;
4324
+ trace?: never;
4325
+ };
4326
+ "/v1/partner-production/preparations/{preparationId}/plates/{plateId}/download": {
4327
+ parameters: {
4328
+ query?: never;
4329
+ header?: never;
4330
+ path?: never;
4331
+ cookie?: never;
4332
+ };
4333
+ /** Get a short-lived download URL for a prepared plate */
4334
+ get: {
4335
+ parameters: {
4336
+ query?: never;
4337
+ header?: never;
4338
+ path: {
4339
+ preparationId: string;
4340
+ plateId: string;
4341
+ };
4342
+ cookie?: never;
4343
+ };
4344
+ requestBody?: never;
4345
+ responses: {
4346
+ /** @description Default Response */
4347
+ 200: {
4348
+ headers: {
4349
+ [name: string]: unknown;
4350
+ };
4351
+ content: {
4352
+ "application/json": {
4353
+ /** Format: uri */
4354
+ url: string;
4355
+ /** Format: date-time */
4356
+ expiresAt: string;
4357
+ filename: string;
4358
+ bytes: number;
4359
+ sha256: string;
4360
+ };
4361
+ };
4362
+ };
4363
+ /** @description Default Response */
4364
+ 401: {
4365
+ headers: {
4366
+ [name: string]: unknown;
4367
+ };
4368
+ content: {
4369
+ "application/json": {
4370
+ error?: string;
4371
+ message?: string;
4372
+ requestId?: string;
4373
+ };
4374
+ };
4375
+ };
4376
+ /** @description Default Response */
4377
+ 403: {
4378
+ headers: {
4379
+ [name: string]: unknown;
4380
+ };
4381
+ content: {
4382
+ "application/json": {
4383
+ error?: string;
4384
+ message?: string;
4385
+ requestId?: string;
4386
+ };
4387
+ };
4388
+ };
4389
+ /** @description Default Response */
4390
+ 404: {
4391
+ headers: {
4392
+ [name: string]: unknown;
4393
+ };
4394
+ content: {
4395
+ "application/json": {
4396
+ /** @enum {string} */
4397
+ error: "invalid_request" | "unauthorized" | "not_found" | "idempotency_conflict" | "output_not_ready" | "output_unavailable" | "request_too_large" | "source_not_found" | "target_not_found" | "target_not_qualified" | "material_not_qualified" | "preparation_disabled" | "preparation_unavailable";
4398
+ item?: number;
4399
+ limit?: {
4400
+ /** @enum {string} */
4401
+ name: "items";
4402
+ max: number;
4403
+ observed: number;
4404
+ };
4405
+ /** @description Present on target_not_qualified: one entry for each refused item. */
4406
+ reasons?: {
4407
+ /** @description Index of the request item that names this printer. */
4408
+ item: number;
4409
+ /** @enum {string} */
4410
+ code: "printer_brand_not_qualified" | "printer_model_not_qualified" | "nozzle_diameter_not_qualified" | "nozzle_diameter_unknown";
4411
+ /** Format: uuid */
4412
+ printerId: string;
4413
+ printerName: string;
4414
+ /**
4415
+ * @description The printer setting that an operator must correct.
4416
+ * @enum {string}
4417
+ */
4418
+ field: "printer_brand" | "model" | "nozzle_diameter";
4419
+ /** @description The value the qualification needs, such as 0.4 for nozzle_diameter. */
4420
+ required: string | number;
4421
+ }[];
4422
+ };
4423
+ };
4424
+ };
2177
4425
  /** @description Default Response */
2178
- 202: {
4426
+ 409: {
2179
4427
  headers: {
2180
4428
  [name: string]: unknown;
2181
4429
  };
2182
4430
  content: {
2183
4431
  "application/json": {
2184
- cancelled: boolean;
4432
+ /** @enum {string} */
4433
+ error: "invalid_request" | "unauthorized" | "not_found" | "idempotency_conflict" | "output_not_ready" | "output_unavailable" | "request_too_large" | "source_not_found" | "target_not_found" | "target_not_qualified" | "material_not_qualified" | "preparation_disabled" | "preparation_unavailable";
4434
+ item?: number;
4435
+ limit?: {
4436
+ /** @enum {string} */
4437
+ name: "items";
4438
+ max: number;
4439
+ observed: number;
4440
+ };
4441
+ /** @description Present on target_not_qualified: one entry for each refused item. */
4442
+ reasons?: {
4443
+ /** @description Index of the request item that names this printer. */
4444
+ item: number;
4445
+ /** @enum {string} */
4446
+ code: "printer_brand_not_qualified" | "printer_model_not_qualified" | "nozzle_diameter_not_qualified" | "nozzle_diameter_unknown";
4447
+ /** Format: uuid */
4448
+ printerId: string;
4449
+ printerName: string;
4450
+ /**
4451
+ * @description The printer setting that an operator must correct.
4452
+ * @enum {string}
4453
+ */
4454
+ field: "printer_brand" | "model" | "nozzle_diameter";
4455
+ /** @description The value the qualification needs, such as 0.4 for nozzle_diameter. */
4456
+ required: string | number;
4457
+ }[];
2185
4458
  };
2186
4459
  };
2187
4460
  };
2188
- /** @description Authentication required */
2189
- 401: {
4461
+ /** @description Default Response */
4462
+ 410: {
2190
4463
  headers: {
2191
4464
  [name: string]: unknown;
2192
4465
  };
2193
4466
  content: {
2194
4467
  "application/json": {
2195
- error?: string;
2196
- message?: string;
2197
- requestId?: string;
2198
- code?: string;
2199
- statusCode?: number;
4468
+ /** @enum {string} */
4469
+ error: "invalid_request" | "unauthorized" | "not_found" | "idempotency_conflict" | "output_not_ready" | "output_unavailable" | "request_too_large" | "source_not_found" | "target_not_found" | "target_not_qualified" | "material_not_qualified" | "preparation_disabled" | "preparation_unavailable";
4470
+ item?: number;
4471
+ limit?: {
4472
+ /** @enum {string} */
4473
+ name: "items";
4474
+ max: number;
4475
+ observed: number;
4476
+ };
4477
+ /** @description Present on target_not_qualified: one entry for each refused item. */
4478
+ reasons?: {
4479
+ /** @description Index of the request item that names this printer. */
4480
+ item: number;
4481
+ /** @enum {string} */
4482
+ code: "printer_brand_not_qualified" | "printer_model_not_qualified" | "nozzle_diameter_not_qualified" | "nozzle_diameter_unknown";
4483
+ /** Format: uuid */
4484
+ printerId: string;
4485
+ printerName: string;
4486
+ /**
4487
+ * @description The printer setting that an operator must correct.
4488
+ * @enum {string}
4489
+ */
4490
+ field: "printer_brand" | "model" | "nozzle_diameter";
4491
+ /** @description The value the qualification needs, such as 0.4 for nozzle_diameter. */
4492
+ required: string | number;
4493
+ }[];
2200
4494
  };
2201
4495
  };
2202
4496
  };
2203
- /** @description API key requires control scope */
2204
- 403: {
4497
+ /** @description Default Response */
4498
+ 503: {
2205
4499
  headers: {
2206
4500
  [name: string]: unknown;
2207
4501
  };
2208
4502
  content: {
2209
4503
  "application/json": {
2210
- error?: string;
2211
- message?: string;
2212
- requestId?: string;
2213
- code?: string;
2214
- statusCode?: number;
4504
+ /** @enum {string} */
4505
+ error: "invalid_request" | "unauthorized" | "not_found" | "idempotency_conflict" | "output_not_ready" | "output_unavailable" | "request_too_large" | "source_not_found" | "target_not_found" | "target_not_qualified" | "material_not_qualified" | "preparation_disabled" | "preparation_unavailable";
4506
+ item?: number;
4507
+ limit?: {
4508
+ /** @enum {string} */
4509
+ name: "items";
4510
+ max: number;
4511
+ observed: number;
4512
+ };
4513
+ /** @description Present on target_not_qualified: one entry for each refused item. */
4514
+ reasons?: {
4515
+ /** @description Index of the request item that names this printer. */
4516
+ item: number;
4517
+ /** @enum {string} */
4518
+ code: "printer_brand_not_qualified" | "printer_model_not_qualified" | "nozzle_diameter_not_qualified" | "nozzle_diameter_unknown";
4519
+ /** Format: uuid */
4520
+ printerId: string;
4521
+ printerName: string;
4522
+ /**
4523
+ * @description The printer setting that an operator must correct.
4524
+ * @enum {string}
4525
+ */
4526
+ field: "printer_brand" | "model" | "nozzle_diameter";
4527
+ /** @description The value the qualification needs, such as 0.4 for nozzle_diameter. */
4528
+ required: string | number;
4529
+ }[];
2215
4530
  };
2216
4531
  };
2217
4532
  };
2218
- /** @description Creation request not found */
2219
- 404: {
4533
+ };
4534
+ };
4535
+ put?: never;
4536
+ post?: never;
4537
+ delete?: never;
4538
+ options?: never;
4539
+ head?: never;
4540
+ patch?: never;
4541
+ trace?: never;
4542
+ };
4543
+ "/v1/filament-catalog": {
4544
+ parameters: {
4545
+ query?: never;
4546
+ header?: never;
4547
+ path?: never;
4548
+ cookie?: never;
4549
+ };
4550
+ /** List organization catalog filaments */
4551
+ get: {
4552
+ parameters: {
4553
+ query?: {
4554
+ externalId?: string;
4555
+ sku?: string;
4556
+ limit?: number;
4557
+ offset?: number;
4558
+ };
4559
+ header?: never;
4560
+ path?: never;
4561
+ cookie?: never;
4562
+ };
4563
+ requestBody?: never;
4564
+ responses: {
4565
+ /** @description Default Response */
4566
+ 200: {
2220
4567
  headers: {
2221
4568
  [name: string]: unknown;
2222
4569
  };
2223
- content: {
2224
- "application/json": {
2225
- error?: string;
2226
- message?: string;
2227
- requestId?: string;
2228
- };
4570
+ content?: never;
4571
+ };
4572
+ };
4573
+ };
4574
+ put?: never;
4575
+ /** Upsert an organization catalog filament by partner external id */
4576
+ post: {
4577
+ parameters: {
4578
+ query?: never;
4579
+ header?: never;
4580
+ path?: never;
4581
+ cookie?: never;
4582
+ };
4583
+ requestBody: {
4584
+ content: {
4585
+ "application/json": {
4586
+ externalId: string;
4587
+ brand: string;
4588
+ material: string;
4589
+ colorName: string;
4590
+ colorHex?: string;
4591
+ hex?: string;
4592
+ sku: string;
4593
+ replacementFilamentId?: string | null;
2229
4594
  };
2230
4595
  };
2231
- /** @description Creation request no longer supports this action */
2232
- 409: {
4596
+ };
4597
+ responses: {
4598
+ /** @description Default Response */
4599
+ 200: {
2233
4600
  headers: {
2234
4601
  [name: string]: unknown;
2235
4602
  };
2236
- content: {
2237
- "application/json": {
2238
- error?: string;
2239
- message?: string;
2240
- requestId?: string;
2241
- };
4603
+ content?: never;
4604
+ };
4605
+ };
4606
+ };
4607
+ delete?: never;
4608
+ options?: never;
4609
+ head?: never;
4610
+ patch?: never;
4611
+ trace?: never;
4612
+ };
4613
+ "/v1/filament-catalog/{id}": {
4614
+ parameters: {
4615
+ query?: never;
4616
+ header?: never;
4617
+ path?: never;
4618
+ cookie?: never;
4619
+ };
4620
+ /** Read an organization catalog filament */
4621
+ get: {
4622
+ parameters: {
4623
+ query?: never;
4624
+ header?: never;
4625
+ path: {
4626
+ id: string;
4627
+ };
4628
+ cookie?: never;
4629
+ };
4630
+ requestBody?: never;
4631
+ responses: {
4632
+ /** @description Default Response */
4633
+ 200: {
4634
+ headers: {
4635
+ [name: string]: unknown;
2242
4636
  };
4637
+ content?: never;
2243
4638
  };
2244
4639
  };
2245
4640
  };
4641
+ put?: never;
4642
+ post?: never;
2246
4643
  delete?: never;
2247
4644
  options?: never;
2248
4645
  head?: never;
@@ -2279,9 +4676,69 @@ declare class Transport {
2279
4676
  request<T>(request: Request<T>): Promise<T>;
2280
4677
  }
2281
4678
 
4679
+ type PrinterSearchResponse = paths["/v1/printers/search"]["get"]["responses"][200]["content"]["application/json"];
4680
+ type FilamentSearchResponse = paths["/v1/filaments/search"]["get"]["responses"][200]["content"]["application/json"];
4681
+ type PrinterSearchPage = PrinterSearchResponse;
4682
+ type PrinterSearchResult = PrinterSearchPage["printers"][number];
4683
+ type FilamentSearchPage = FilamentSearchResponse;
4684
+ type FilamentSearchResult = FilamentSearchPage["filaments"][number];
4685
+ type SearchOptions = {
4686
+ query: string;
4687
+ limit?: number;
4688
+ offset?: number;
4689
+ signal?: AbortSignal;
4690
+ };
4691
+
4692
+ type CatalogFilamentInput = {
4693
+ externalId: string;
4694
+ brand: string;
4695
+ material: string;
4696
+ colorName: string;
4697
+ sku: string;
4698
+ replacementFilamentId?: string | null;
4699
+ } & ({
4700
+ colorHex: string;
4701
+ hex?: string;
4702
+ } | {
4703
+ hex: string;
4704
+ colorHex?: string;
4705
+ });
4706
+ type CatalogFilament = {
4707
+ id: string;
4708
+ sku: string;
4709
+ organization_id: string;
4710
+ material_type: string;
4711
+ color: string;
4712
+ metadata: {
4713
+ externalId: string;
4714
+ colorName: string;
4715
+ replacementFilamentId: string | null;
4716
+ };
4717
+ };
4718
+ declare class FilamentCatalog {
4719
+ private readonly transport;
4720
+ constructor(transport: Transport);
4721
+ upsert(input: CatalogFilamentInput): Promise<CatalogFilament>;
4722
+ list(input?: {
4723
+ externalId?: string;
4724
+ sku?: string;
4725
+ limit?: number;
4726
+ offset?: number;
4727
+ }): Promise<{
4728
+ materials: CatalogFilament[];
4729
+ total: number;
4730
+ }>;
4731
+ get(id: string): Promise<CatalogFilament>;
4732
+ }
4733
+
2282
4734
  type CreateOperation = paths["/v1/print-jobs/create"]["post"];
2283
4735
  type CreatedPrintJob = CreateOperation["responses"][201]["content"]["application/json"];
4736
+ type FilamentWaitingReason = NonNullable<NonNullable<NonNullable<CreatedPrintJob["job"]>["print_options"]>["filament_waiting_reasons"]>[number];
4737
+ type JobReadResponse = paths["/v1/print-jobs/{id}"]["get"]["responses"][200]["content"]["application/json"];
4738
+ type JobFields = NonNullable<JobReadResponse["job"]>;
4739
+ type PrintJob = JobFields & Required<Pick<JobFields, "id" | "status">>;
2284
4740
  type PrintJobCreateRequest = paths["/v1/print-jobs/create-requests/{requestId}"]["get"]["responses"][200]["content"]["application/json"];
4741
+ type EngineSettingReviewApproval = paths["/v1/print-jobs/create-requests/{requestId}/approve-review"]["post"]["requestBody"]["content"]["application/json"];
2285
4742
  type JsonPrintJobInput = CreateOperation["requestBody"]["content"]["application/json"] & {
2286
4743
  idempotencyKey?: string;
2287
4744
  };
@@ -2297,6 +4754,7 @@ declare class PrintJobCreateStoppedError extends Error {
2297
4754
  declare class PrintJobs {
2298
4755
  private readonly transport;
2299
4756
  constructor(transport: Transport);
4757
+ get(id: number, signal?: AbortSignal): Promise<PrintJob>;
2300
4758
  create(input: UploadedPrintJobInput): Promise<PrintJobCreateRequest & {
2301
4759
  idempotencyKey: string;
2302
4760
  }>;
@@ -2304,6 +4762,9 @@ declare class PrintJobs {
2304
4762
  idempotencyKey: string;
2305
4763
  }>;
2306
4764
  getCreateRequest(requestId: string, signal?: AbortSignal): Promise<PrintJobCreateRequest>;
4765
+ approveReview(requestId: string, review: EngineSettingReviewApproval, signal?: AbortSignal): Promise<{
4766
+ approved: boolean;
4767
+ }>;
2307
4768
  waitUntilCreated(requestId: string, options?: WaitOptions): Promise<{
2308
4769
  requestId: string;
2309
4770
  status: "preparing" | "held" | "created" | "failed" | "cancelled";
@@ -2314,15 +4775,82 @@ declare class PrintJobs {
2314
4775
  status: string;
2315
4776
  model_file_id: string | null;
2316
4777
  printer_id: string | null;
2317
- print_options: {
4778
+ print_options: ({
4779
+ filament_route_state?: "waiting" | "resolved";
4780
+ filament_waiting_reasons?: {
4781
+ filamentId?: string;
4782
+ brand?: string | null;
4783
+ name?: string;
4784
+ colorName?: string | null;
4785
+ material?: string;
4786
+ colorHex?: string;
4787
+ code: "filament_not_loaded" | "material_route_changed";
4788
+ sourceSlot?: number;
4789
+ color?: string;
4790
+ cause?: "slot_empty" | "missing_material" | "color_distance" | "slot_conflict";
4791
+ suggestedTargetSlot?: {
4792
+ ams_id: number;
4793
+ slot_id: number;
4794
+ };
4795
+ }[];
4796
+ } & {
2318
4797
  [key: string]: unknown;
2319
- } | null;
4798
+ }) | null;
2320
4799
  } & {
2321
4800
  [key: string]: unknown;
2322
4801
  }) | null;
2323
- requiredActions: {
4802
+ requiredActions: (({
4803
+ item: number;
4804
+ plateNumber: number;
4805
+ hold: {
4806
+ code: "material_change_requires_qualification";
4807
+ slots: number[];
4808
+ } | {
4809
+ code: "inspection_review_required";
4810
+ reason: string;
4811
+ } | {
4812
+ code: "unmapped_used_slot";
4813
+ slots: number[];
4814
+ } | {
4815
+ code: "project_source_too_large";
4816
+ limit: {
4817
+ name: "projectSourceBytes";
4818
+ max: number;
4819
+ observed: number;
4820
+ };
4821
+ } | {
4822
+ code: "project_review_required";
4823
+ detail: string;
4824
+ changes?: {
4825
+ key: string;
4826
+ sourceValue: (string | null) | string[] | number | boolean;
4827
+ engineValue: (string | null) | string[] | number | boolean;
4828
+ slots: number[];
4829
+ }[];
4830
+ sourceRelease?: string | null;
4831
+ engineRelease?: string;
4832
+ } | {
4833
+ code: "preview_mismatch_after_remap";
4834
+ detail: string;
4835
+ };
4836
+ } & {
4837
+ [key: string]: unknown;
4838
+ }) | ({
4839
+ code: string;
4840
+ } & {
2324
4841
  [key: string]: unknown;
2325
- }[];
4842
+ }))[];
4843
+ warnings: ({
4844
+ code: "custom_instructions_kept";
4845
+ keys: string[];
4846
+ } | {
4847
+ code: "custom_instructions_replaced";
4848
+ keys: string[];
4849
+ } | {
4850
+ code: "preview_stale_after_remap";
4851
+ slots: number[];
4852
+ bedChanged: boolean;
4853
+ })[];
2326
4854
  error: {
2327
4855
  [key: string]: unknown;
2328
4856
  } | null;
@@ -2352,6 +4880,7 @@ declare class PrintHiveApiError extends Error {
2352
4880
  readonly body?: ApiErrorBody | undefined;
2353
4881
  readonly name = "PrintHiveApiError";
2354
4882
  constructor(status: number, code: string, limit?: ApiLimit | undefined, retryAfterMs?: number | undefined, requestId?: string | undefined, body?: ApiErrorBody | undefined);
4883
+ get reasons(): readonly PartnerPreparationTargetReason[];
2355
4884
  }
2356
4885
  declare class PrintHiveNetworkError extends Error {
2357
4886
  readonly reason: "network" | "timeout" | "aborted";
@@ -2361,6 +4890,21 @@ declare class PrintHiveNetworkError extends Error {
2361
4890
 
2362
4891
  type PartnerSource = paths["/v1/partner-production/uploads/{sourceId}"]["get"]["responses"][200]["content"]["application/json"];
2363
4892
  type PartnerModel = paths["/v1/partner-production/models"]["get"]["responses"][200]["content"]["application/json"];
4893
+ type PartnerPreparation = paths["/v1/partner-production/preparations/{preparationId}"]["get"]["responses"][200]["content"]["application/json"];
4894
+ type PartnerPreparationCreateBody = paths["/v1/partner-production/preparations"]["post"]["requestBody"]["content"]["application/json"];
4895
+ type PartnerPreparationItemInput = PartnerPreparationCreateBody["items"][number];
4896
+ type PartnerMaterialMapping = NonNullable<PartnerPreparationItemInput["materialMappings"]>[number];
4897
+ type PartnerPreparedPlate = PartnerPreparation["items"][number]["preparedPlates"][number];
4898
+ type PartnerPreparationDownload = paths["/v1/partner-production/preparations/{preparationId}/plates/{plateId}/download"]["get"]["responses"][200]["content"]["application/json"];
4899
+ type PartnerPreparationErrorBody = paths["/v1/partner-production/preparations"]["post"]["responses"][422]["content"]["application/json"];
4900
+ type PartnerPreparationTargetReason = NonNullable<PartnerPreparationErrorBody["reasons"]>[number];
4901
+ type PreparationCreateOptions = PartnerPreparationCreateBody & {
4902
+ idempotencyKey?: string;
4903
+ signal?: AbortSignal;
4904
+ };
4905
+ type SettledPreparation = PartnerPreparation & {
4906
+ status: "ready" | "held" | "failed";
4907
+ };
2364
4908
  type UploadOptions = {
2365
4909
  filename: string;
2366
4910
  externalId?: string;
@@ -2463,6 +5007,16 @@ declare class PrintHive {
2463
5007
  status: "missing";
2464
5008
  };
2465
5009
  printerModel?: string;
5010
+ machine?: {
5011
+ sourceMachine: {
5012
+ preset: string;
5013
+ model: string;
5014
+ nozzleDiameterMm: number;
5015
+ };
5016
+ compatibleMachines: string[];
5017
+ materials: string[];
5018
+ bed: string;
5019
+ };
2466
5020
  };
2467
5021
  } | {
2468
5022
  sourceVersionId: string;
@@ -2529,6 +5083,16 @@ declare class PrintHive {
2529
5083
  status: "missing";
2530
5084
  };
2531
5085
  printerModel?: string;
5086
+ machine?: {
5087
+ sourceMachine: {
5088
+ preset: string;
5089
+ model: string;
5090
+ nozzleDiameterMm: number;
5091
+ };
5092
+ compatibleMachines: string[];
5093
+ materials: string[];
5094
+ bed: string;
5095
+ };
2532
5096
  } | null;
2533
5097
  error: {
2534
5098
  code: "invalid_archive" | "unsafe_path" | "unsafe_xml" | "resource_limit" | "invalid_project" | "toolpath_only" | "processing_timeout" | "storage_object_changed" | "inspection_interrupted" | "upload_interrupted";
@@ -2634,6 +5198,16 @@ declare class PrintHive {
2634
5198
  status: "missing";
2635
5199
  };
2636
5200
  printerModel?: string;
5201
+ machine?: {
5202
+ sourceMachine: {
5203
+ preset: string;
5204
+ model: string;
5205
+ nozzleDiameterMm: number;
5206
+ };
5207
+ compatibleMachines: string[];
5208
+ materials: string[];
5209
+ bed: string;
5210
+ };
2637
5211
  };
2638
5212
  } | {
2639
5213
  sourceVersionId: string;
@@ -2700,6 +5274,16 @@ declare class PrintHive {
2700
5274
  status: "missing";
2701
5275
  };
2702
5276
  printerModel?: string;
5277
+ machine?: {
5278
+ sourceMachine: {
5279
+ preset: string;
5280
+ model: string;
5281
+ nozzleDiameterMm: number;
5282
+ };
5283
+ compatibleMachines: string[];
5284
+ materials: string[];
5285
+ bed: string;
5286
+ };
2703
5287
  } | null;
2704
5288
  error: {
2705
5289
  code: "invalid_archive" | "unsafe_path" | "unsafe_xml" | "resource_limit" | "invalid_project" | "toolpath_only" | "processing_timeout" | "storage_object_changed" | "inspection_interrupted" | "upload_interrupted";
@@ -2715,6 +5299,20 @@ declare class PrintHive {
2715
5299
  listSourceFiles(modelId: string): AsyncGenerator<PartnerSource>;
2716
5300
  };
2717
5301
  readonly printers: {
5302
+ search: (input: SearchOptions) => Promise<{
5303
+ printers: {
5304
+ id: string;
5305
+ name: string;
5306
+ model: string;
5307
+ serial_number: string;
5308
+ status: string;
5309
+ location_text: string;
5310
+ score: number;
5311
+ match: "text" | "typo" | "server";
5312
+ }[];
5313
+ total: number;
5314
+ query: string;
5315
+ }>;
2718
5316
  list: (input?: {
2719
5317
  limit?: number;
2720
5318
  cursor?: string;
@@ -2722,7 +5320,281 @@ declare class PrintHive {
2722
5320
  get: (id: string) => Promise<unknown>;
2723
5321
  };
2724
5322
  readonly printJobs: PrintJobs;
5323
+ readonly filamentCatalog: FilamentCatalog;
5324
+ readonly filaments: {
5325
+ search: (input: SearchOptions) => Promise<{
5326
+ filaments: {
5327
+ id: string;
5328
+ filamentId: string;
5329
+ acceptedByCreate: boolean;
5330
+ name: string;
5331
+ brand: null | string;
5332
+ material_type: string;
5333
+ color: null | string;
5334
+ diameter: null | number;
5335
+ category: "filament";
5336
+ sku?: null | string;
5337
+ organization_id: null | string;
5338
+ }[];
5339
+ total: number;
5340
+ hasMore: boolean;
5341
+ matchMode: "strict" | "broadened";
5342
+ originalQuery: null | string;
5343
+ }>;
5344
+ };
5345
+ readonly preparations: {
5346
+ get: (id: string, signal?: AbortSignal) => Promise<{
5347
+ preparationId: string;
5348
+ status: "waiting_for_source" | "preparing" | "held" | "ready" | "failed";
5349
+ createdAt: string;
5350
+ holds: {
5351
+ item: number;
5352
+ plateNumber: number;
5353
+ hold: {
5354
+ code: "material_change_requires_qualification";
5355
+ slots: number[];
5356
+ } | {
5357
+ code: "inspection_review_required";
5358
+ reason: string;
5359
+ } | {
5360
+ code: "unmapped_used_slot";
5361
+ slots: number[];
5362
+ } | {
5363
+ code: "project_source_too_large";
5364
+ limit: {
5365
+ name: "projectSourceBytes";
5366
+ max: number;
5367
+ observed: number;
5368
+ };
5369
+ } | {
5370
+ code: "project_review_required";
5371
+ detail: string;
5372
+ changes?: {
5373
+ key: string;
5374
+ sourceValue: (string | null) | string[] | number | boolean;
5375
+ engineValue: (string | null) | string[] | number | boolean;
5376
+ slots: number[];
5377
+ }[];
5378
+ sourceRelease?: string | null;
5379
+ engineRelease?: string;
5380
+ } | {
5381
+ code: "preview_mismatch_after_remap";
5382
+ detail: string;
5383
+ };
5384
+ }[];
5385
+ items: {
5386
+ index: number;
5387
+ status: "waiting_for_source" | "preparing" | "held" | "ready" | "failed";
5388
+ source: {
5389
+ sourceVersionId: string;
5390
+ externalId: string | null;
5391
+ status: "queued" | "inspecting" | "ready" | "failed";
5392
+ };
5393
+ plates: "all" | number[];
5394
+ resolvedPlates: number[] | null;
5395
+ quantity: number;
5396
+ materialMappings: {
5397
+ sourceSlot: number;
5398
+ material: string;
5399
+ color: string;
5400
+ }[];
5401
+ guidance: {
5402
+ allowedMaterials: string[] | null;
5403
+ preferredFilaments: {
5404
+ sourceSlot?: number;
5405
+ material: string;
5406
+ color?: string;
5407
+ brand?: string;
5408
+ name?: string;
5409
+ }[] | null;
5410
+ };
5411
+ target: {
5412
+ printerId: string;
5413
+ printerName: string;
5414
+ qualification?: "bambu-p1s-0.4-standard-petg-v1";
5415
+ path?: "native" | "qualified";
5416
+ targetMachine?: {
5417
+ preset: string;
5418
+ model: string;
5419
+ nozzleDiameterMm: number;
5420
+ };
5421
+ printerModel: string;
5422
+ nozzleDiameterMm: number;
5423
+ nozzleFlow: "standard";
5424
+ buildSurface: string;
5425
+ profiles?: {
5426
+ printer: {
5427
+ catalogId: string;
5428
+ name: string;
5429
+ };
5430
+ process: {
5431
+ catalogId: string;
5432
+ name: string;
5433
+ };
5434
+ filament: {
5435
+ catalogId: string;
5436
+ name: string;
5437
+ };
5438
+ };
5439
+ };
5440
+ failure: {
5441
+ code: "source_failed" | "plate_not_found" | "no_plates" | "mapping_slot_not_found" | "inspection_unreadable";
5442
+ sourceError?: {
5443
+ code: "invalid_archive" | "unsafe_path" | "unsafe_xml" | "resource_limit" | "invalid_project" | "toolpath_only" | "processing_timeout" | "storage_object_changed" | "inspection_interrupted" | "upload_interrupted";
5444
+ message: string;
5445
+ limit?: {
5446
+ name: "uploadBytes" | "concurrentUploads" | "concurrentUploadsPerOrganization" | "uploadIdleTimeoutMs" | "uploadTimeoutMs" | "entries" | "compressionRatio" | "modelPartExpandedBytes" | "expandedBytes" | "parserBytesPerDocument" | "parserBytesPerArchive" | "xmlDepth" | "xmlElementsPerDocument" | "objects" | "plates" | "materialSlots" | "inspectionTimeoutMs" | "inspectorHeapMb";
5447
+ max: number;
5448
+ observed?: number;
5449
+ };
5450
+ };
5451
+ plates?: number[];
5452
+ slots?: number[];
5453
+ } | null;
5454
+ preparedPlates: {
5455
+ plateId: string;
5456
+ plateNumber: number;
5457
+ runs: number;
5458
+ status: "preparing" | "held" | "ready" | "failed";
5459
+ usedSlots: number[];
5460
+ materialMappings: {
5461
+ sourceSlot: number;
5462
+ material: string;
5463
+ color: string;
5464
+ origin: "partner" | "inspection" | "placeholder";
5465
+ }[];
5466
+ holds: ({
5467
+ code: "material_change_requires_qualification";
5468
+ slots: number[];
5469
+ } | {
5470
+ code: "inspection_review_required";
5471
+ reason: string;
5472
+ } | {
5473
+ code: "unmapped_used_slot";
5474
+ slots: number[];
5475
+ } | {
5476
+ code: "project_source_too_large";
5477
+ limit: {
5478
+ name: "projectSourceBytes";
5479
+ max: number;
5480
+ observed: number;
5481
+ };
5482
+ } | {
5483
+ code: "project_review_required";
5484
+ detail: string;
5485
+ changes?: {
5486
+ key: string;
5487
+ sourceValue: (string | null) | string[] | number | boolean;
5488
+ engineValue: (string | null) | string[] | number | boolean;
5489
+ slots: number[];
5490
+ }[];
5491
+ sourceRelease?: string | null;
5492
+ engineRelease?: string;
5493
+ } | {
5494
+ code: "preview_mismatch_after_remap";
5495
+ detail: string;
5496
+ })[];
5497
+ failure: {
5498
+ code: "slice_failed";
5499
+ sliceCode: string;
5500
+ message: string;
5501
+ retryable: boolean;
5502
+ attempts: number;
5503
+ } | null;
5504
+ output: {
5505
+ outputFileId: string;
5506
+ filename: string;
5507
+ bytes: number;
5508
+ sha256: string;
5509
+ } | null;
5510
+ lineage: {
5511
+ sourceVersionId: string;
5512
+ sourceSha256: string;
5513
+ plateNumber: number;
5514
+ qualification?: "bambu-p1s-0.4-standard-petg-v1";
5515
+ path?: "native" | "qualified";
5516
+ sourceMachine?: {
5517
+ preset: string;
5518
+ model: string;
5519
+ nozzleDiameterMm: number;
5520
+ };
5521
+ materialQualifications?: {
5522
+ sourceSlot: number;
5523
+ qualification: "bambu-p1s-0.4-standard-petg-v1";
5524
+ }[];
5525
+ targetMachine?: {
5526
+ preset: string;
5527
+ model: string;
5528
+ nozzleDiameterMm: number;
5529
+ };
5530
+ buildSurface: string;
5531
+ materialMappings: {
5532
+ sourceSlot: number;
5533
+ material: string;
5534
+ color: string;
5535
+ }[];
5536
+ engineSha256: string;
5537
+ resolvedProfilesSha256: string;
5538
+ derivedInputSha256: string;
5539
+ qualifiedProfileSourceHashes: {
5540
+ [key: string]: string;
5541
+ };
5542
+ replacedSettings: {
5543
+ key: string;
5544
+ source: string | string[] | number | boolean;
5545
+ target?: string | string[] | number | boolean;
5546
+ }[];
5547
+ omittedSettings: string[];
5548
+ settingFilterPolicy: {
5549
+ hold: string[];
5550
+ omit: string[];
5551
+ };
5552
+ ignoredSettings: string[];
5553
+ warnings: ({
5554
+ code: "custom_instructions_kept";
5555
+ keys: string[];
5556
+ } | {
5557
+ code: "custom_instructions_replaced";
5558
+ keys: string[];
5559
+ } | {
5560
+ code: "preview_stale_after_remap";
5561
+ slots: number[];
5562
+ bedChanged: boolean;
5563
+ })[];
5564
+ engineFallback: {
5565
+ authoringVersion: string | null;
5566
+ selectedVersion: string;
5567
+ } | null;
5568
+ acceptedEngineSettingChanges?: {
5569
+ changes: {
5570
+ key: string;
5571
+ sourceValue: (string | null) | string[] | number | boolean;
5572
+ engineValue: (string | null) | string[] | number | boolean;
5573
+ slots: number[];
5574
+ }[];
5575
+ sourceRelease: string | null;
5576
+ engineRelease: string;
5577
+ };
5578
+ preview: "source" | "engine" | "none";
5579
+ previewFile: string | null;
5580
+ finalArtifactSha256: string;
5581
+ } | null;
5582
+ }[];
5583
+ }[];
5584
+ }>;
5585
+ create(input: PreparationCreateOptions): Promise<PartnerPreparation & {
5586
+ idempotencyKey: string;
5587
+ }>;
5588
+ waitUntilSettled(id: string, options?: WaitOptions): Promise<SettledPreparation>;
5589
+ downloadInfo: (id: string, plateId: string, signal?: AbortSignal) => Promise<{
5590
+ url: string;
5591
+ expiresAt: string;
5592
+ filename: string;
5593
+ bytes: number;
5594
+ sha256: string;
5595
+ }>;
5596
+ };
2725
5597
  constructor(options: PrintHiveOptions);
2726
5598
  }
2727
5599
 
2728
- export { type ApiErrorBody, type ApiLimit, type CreatedPrintJob, type JsonPrintJobInput, type PartnerModel, type PartnerSource, PrintHive, PrintHiveApiError, PrintHiveNetworkError, type PrintHiveOptions, type PrintJobCreateRequest, PrintJobCreateStoppedError, type UploadOptions, type UploadedPrintJobInput, type WaitOptions, type paths };
5600
+ export { type ApiErrorBody, type ApiLimit, type CatalogFilament, type CatalogFilamentInput, type CreatedPrintJob, type EngineSettingReviewApproval, type FilamentSearchPage, type FilamentSearchResult, type FilamentWaitingReason, type JsonPrintJobInput, type PartnerMaterialMapping, type PartnerModel, type PartnerPreparation, type PartnerPreparationCreateBody, type PartnerPreparationDownload, type PartnerPreparationErrorBody, type PartnerPreparationItemInput, type PartnerPreparationTargetReason, type PartnerPreparedPlate, type PartnerSource, type PreparationCreateOptions, PrintHive, PrintHiveApiError, PrintHiveNetworkError, type PrintHiveOptions, type PrintJob, type PrintJobCreateRequest, PrintJobCreateStoppedError, type PrinterSearchPage, type PrinterSearchResult, type SearchOptions, type SettledPreparation, type UploadOptions, type UploadedPrintJobInput, type WaitOptions, type paths };