@archildata/api-types 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.d.ts +821 -4
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -4,6 +4,26 @@
4
4
  */
5
5
 
6
6
  export interface paths {
7
+ "/api/activity": {
8
+ parameters: {
9
+ query?: never;
10
+ header?: never;
11
+ path?: never;
12
+ cookie?: never;
13
+ };
14
+ /**
15
+ * List activity events
16
+ * @description Returns the authenticated account's activity events (disk lifecycle and exec events), newest first. Omitting `limit` returns up to 50 events; pass the response's `nextCursor` back as `cursor` to fetch the next page.
17
+ */
18
+ get: operations["listActivity"];
19
+ put?: never;
20
+ post?: never;
21
+ delete?: never;
22
+ options?: never;
23
+ head?: never;
24
+ patch?: never;
25
+ trace?: never;
26
+ };
7
27
  "/api/disks": {
8
28
  parameters: {
9
29
  query?: never;
@@ -124,6 +144,46 @@ export interface paths {
124
144
  patch?: never;
125
145
  trace?: never;
126
146
  };
147
+ "/api/disks/{id}/delegations": {
148
+ parameters: {
149
+ query?: never;
150
+ header?: never;
151
+ path?: never;
152
+ cookie?: never;
153
+ };
154
+ /**
155
+ * List delegations
156
+ * @description Lists all delegations currently held on a disk. A delegation grants a client exclusive write access to an inode and is identified by the (clientId, inodeId) pair. Orphaned entries are held by clients that disconnected without checking their delegations in. Paths are resolved best-effort and may be omitted.
157
+ */
158
+ get: operations["listDelegations"];
159
+ put?: never;
160
+ post?: never;
161
+ delete?: never;
162
+ options?: never;
163
+ head?: never;
164
+ patch?: never;
165
+ trace?: never;
166
+ };
167
+ "/api/disks/{id}/revoke-delegation": {
168
+ parameters: {
169
+ query?: never;
170
+ header?: never;
171
+ path?: never;
172
+ cookie?: never;
173
+ };
174
+ get?: never;
175
+ put?: never;
176
+ /**
177
+ * Revoke a delegation
178
+ * @description Forcibly revokes the delegation a client holds on an inode. Use this to reclaim write access from a client that is unreachable or crashed without checking its delegations in.
179
+ */
180
+ post: operations["revokeDelegation"];
181
+ delete?: never;
182
+ options?: never;
183
+ head?: never;
184
+ patch?: never;
185
+ trace?: never;
186
+ };
127
187
  "/api/disks/{id}/exec": {
128
188
  parameters: {
129
189
  query?: never;
@@ -260,6 +320,159 @@ export interface paths {
260
320
  patch?: never;
261
321
  trace?: never;
262
322
  };
323
+ "/api/sandboxes": {
324
+ parameters: {
325
+ query?: never;
326
+ header?: never;
327
+ path?: never;
328
+ cookie?: never;
329
+ };
330
+ /**
331
+ * List sandboxes
332
+ * @description All the account's sandboxes, oldest first.
333
+ */
334
+ get: operations["listSandboxes"];
335
+ put?: never;
336
+ /**
337
+ * Create a sandbox
338
+ * @description Provisions a sandbox VM with the requested shape and Archil disks
339
+ * mounted. By default the response reports `pending` after the runtime
340
+ * accepts the start. Set `wait=true` to hold for `running`; if the wait
341
+ * budget expires, the response remains `pending` and startup continues.
342
+ */
343
+ post: operations["createSandbox"];
344
+ delete?: never;
345
+ options?: never;
346
+ head?: never;
347
+ patch?: never;
348
+ trace?: never;
349
+ };
350
+ "/api/sandboxes/{sid}": {
351
+ parameters: {
352
+ query?: never;
353
+ header?: never;
354
+ path?: never;
355
+ cookie?: never;
356
+ };
357
+ /** Get a sandbox */
358
+ get: operations["getSandbox"];
359
+ put?: never;
360
+ post?: never;
361
+ delete?: never;
362
+ options?: never;
363
+ head?: never;
364
+ patch?: never;
365
+ trace?: never;
366
+ };
367
+ "/api/sandboxes/{sid}/execs": {
368
+ parameters: {
369
+ query?: never;
370
+ header?: never;
371
+ path?: never;
372
+ cookie?: never;
373
+ };
374
+ /**
375
+ * List recent execs
376
+ * @description The sandbox's most recent execs, newest first.
377
+ */
378
+ get: operations["listSandboxExecs"];
379
+ put?: never;
380
+ /**
381
+ * Run a command in a sandbox
382
+ * @description Submits a shell command to a running sandbox. By default the response
383
+ * reports `running` after the runtime accepts it. Set `wait=true` to hold
384
+ * for a terminal result; if the wait budget expires, the response remains
385
+ * `running` and the result is available from getSandboxExec. Only
386
+ * `running` sandboxes accept execs (409 otherwise).
387
+ */
388
+ post: operations["execInSandbox"];
389
+ delete?: never;
390
+ options?: never;
391
+ head?: never;
392
+ patch?: never;
393
+ trace?: never;
394
+ };
395
+ "/api/sandboxes/{sid}/execs/{eid}": {
396
+ parameters: {
397
+ query?: never;
398
+ header?: never;
399
+ path?: never;
400
+ cookie?: never;
401
+ };
402
+ /** Get an exec's status and result */
403
+ get: operations["getSandboxExec"];
404
+ put?: never;
405
+ post?: never;
406
+ delete?: never;
407
+ options?: never;
408
+ head?: never;
409
+ patch?: never;
410
+ trace?: never;
411
+ };
412
+ "/api/sandboxes/{sid}/execs/{eid}/cancel": {
413
+ parameters: {
414
+ query?: never;
415
+ header?: never;
416
+ path?: never;
417
+ cookie?: never;
418
+ };
419
+ get?: never;
420
+ put?: never;
421
+ /**
422
+ * Cancel a running exec
423
+ * @description Aborts a running exec. Idempotent; cancelling an exec that already
424
+ * finished returns its terminal result unchanged.
425
+ */
426
+ post: operations["cancelSandboxExec"];
427
+ delete?: never;
428
+ options?: never;
429
+ head?: never;
430
+ patch?: never;
431
+ trace?: never;
432
+ };
433
+ "/api/sandboxes/{sid}/start": {
434
+ parameters: {
435
+ query?: never;
436
+ header?: never;
437
+ path?: never;
438
+ cookie?: never;
439
+ };
440
+ get?: never;
441
+ put?: never;
442
+ /**
443
+ * Start or restart a sandbox
444
+ * @description Cold-boots the sandbox from its persisted configuration and disks. RAM
445
+ * and process state are not restored. Starting a pending or running
446
+ * sandbox is idempotent; a sandbox that is still stopping returns 409.
447
+ */
448
+ post: operations["startSandbox"];
449
+ delete?: never;
450
+ options?: never;
451
+ head?: never;
452
+ patch?: never;
453
+ trace?: never;
454
+ };
455
+ "/api/sandboxes/{sid}/stop": {
456
+ parameters: {
457
+ query?: never;
458
+ header?: never;
459
+ path?: never;
460
+ cookie?: never;
461
+ };
462
+ get?: never;
463
+ put?: never;
464
+ /**
465
+ * Stop a sandbox
466
+ * @description Shuts down the sandbox VM without taking a memory snapshot. The sandbox
467
+ * identity, configuration, and disks remain available for a later start.
468
+ */
469
+ post: operations["stopSandbox"];
470
+ delete?: never;
471
+ options?: never;
472
+ head?: never;
473
+ patch?: never;
474
+ trace?: never;
475
+ };
263
476
  }
264
477
  export type webhooks = Record<string, never>;
265
478
  export interface components {
@@ -270,6 +483,37 @@ export interface components {
270
483
  /** @example Invalid request parameters */
271
484
  error: string;
272
485
  };
486
+ ActivityEvent: {
487
+ accountId: string;
488
+ /**
489
+ * Format: uuid
490
+ * @description Unique, time-ordered event id.
491
+ */
492
+ eventId: string;
493
+ /** @example dsk-0123456789abcdef */
494
+ diskId: string;
495
+ /** @example disk.created */
496
+ eventType: string;
497
+ /**
498
+ * @description Event severity.
499
+ * @example error
500
+ * @enum {string}
501
+ */
502
+ level: "info" | "warning" | "error";
503
+ /** Format: date-time */
504
+ createdAt: string;
505
+ /** @description Event-specific attributes (e.g. diskName on disk.created; containerId, outcome, exitCode, failureClass on disk.exec). */
506
+ details: {
507
+ [key: string]: string;
508
+ };
509
+ };
510
+ ApiResponse_ActivityList: {
511
+ /** @example true */
512
+ success: boolean;
513
+ data: components["schemas"]["ActivityEvent"][];
514
+ /** @description Set when more events remain beyond this page. Pass it back as the `cursor` query parameter to fetch the next page. Absent on the last page. */
515
+ nextCursor?: string;
516
+ };
273
517
  ApiResponse_Empty: {
274
518
  /** @example true */
275
519
  success: boolean;
@@ -281,6 +525,124 @@ export interface components {
281
525
  message?: string;
282
526
  };
283
527
  };
528
+ /** @enum {string} */
529
+ SandboxState: "pending" | "running" | "stopping" | "stopped" | "exited" | "failed";
530
+ Sandbox: {
531
+ /** Format: uuid */
532
+ sandbox_id: string;
533
+ status: components["schemas"]["SandboxState"];
534
+ vcpu_count: number;
535
+ mem_size_mib: number;
536
+ /** @description Full lifetime budget applied independently to each powered-on session. */
537
+ max_ttl_seconds: number;
538
+ max_concurrent_execs: number;
539
+ port_mappings?: components["schemas"]["SandboxPortMapping"][];
540
+ /** Format: date-time */
541
+ created_at: string;
542
+ /** Format: date-time */
543
+ running_at?: string;
544
+ /** Format: date-time */
545
+ finished_at?: string;
546
+ /** Format: date-time */
547
+ last_active_at: string;
548
+ /**
549
+ * Format: date-time
550
+ * @description Current powered-on session deadline; absent while inactive.
551
+ */
552
+ expires_at?: string;
553
+ exit_reason?: string;
554
+ };
555
+ SandboxPortMapping: {
556
+ container_port: number;
557
+ /** @enum {string} */
558
+ protocol: "tcp" | "udp";
559
+ };
560
+ ApiResponse_Sandbox: {
561
+ /** @example true */
562
+ success: boolean;
563
+ data: components["schemas"]["Sandbox"];
564
+ };
565
+ /** @enum {string} */
566
+ SandboxExecState: "running" | "completed" | "failed" | "cancelled" | "timed_out";
567
+ SandboxExec: {
568
+ /** Format: uuid */
569
+ sandbox_id: string;
570
+ /** Format: uuid */
571
+ exec_id: string;
572
+ command: string;
573
+ status: components["schemas"]["SandboxExecState"];
574
+ exit_code?: number;
575
+ stdout?: string;
576
+ stderr?: string;
577
+ exit_reason?: string;
578
+ /** Format: int64 */
579
+ execute_time_ms?: number;
580
+ /** Format: date-time */
581
+ started_at: string;
582
+ /** Format: date-time */
583
+ finished_at?: string;
584
+ };
585
+ SandboxMount: {
586
+ disk_id: string;
587
+ /** @description Mount point relative to the sandbox's archil root. May be omitted when the sandbox mounts a single disk. */
588
+ relative_path?: string;
589
+ /** @description Expose this subdirectory of the disk instead of its root */
590
+ subdirectory?: string;
591
+ /** @description Writes against the mountpoint fail with EROFS */
592
+ read_only?: boolean;
593
+ /** @description Mount in shared mode, allowing concurrent writers on other clients. Defaults to true. */
594
+ shared?: boolean;
595
+ region?: string;
596
+ };
597
+ CreateSandboxRequest: {
598
+ vcpu_count?: number;
599
+ mem_size_mib?: number;
600
+ kernel?: string;
601
+ base_image?: string;
602
+ archil_mounts?: components["schemas"]["SandboxMount"][];
603
+ port_mappings?: components["schemas"]["SandboxPortMapping"][];
604
+ /** @description Environment variables applied to every exec */
605
+ env?: {
606
+ [key: string]: string;
607
+ };
608
+ /** @description Lifetime budget applied independently to each powered-on session */
609
+ max_ttl_seconds?: number;
610
+ max_concurrent_execs?: number;
611
+ };
612
+ SandboxExecRequest: {
613
+ /** @description Shell command, run via `/bin/sh -c` */
614
+ command: string;
615
+ /** @description Allocate a TTY for the command */
616
+ command_tty?: boolean;
617
+ /** @description Extra environment variables for this command */
618
+ env?: {
619
+ [key: string]: string;
620
+ };
621
+ /**
622
+ * Format: int64
623
+ * @description Server-side execution deadline; the exec reports timed_out past it
624
+ */
625
+ timeout_seconds?: number;
626
+ };
627
+ ApiResponse_SandboxList: {
628
+ /** @example true */
629
+ success: boolean;
630
+ data: {
631
+ sandboxes?: components["schemas"]["Sandbox"][];
632
+ };
633
+ };
634
+ ApiResponse_SandboxExec: {
635
+ /** @example true */
636
+ success: boolean;
637
+ data: components["schemas"]["SandboxExec"];
638
+ };
639
+ ApiResponse_SandboxExecList: {
640
+ /** @example true */
641
+ success: boolean;
642
+ data: {
643
+ execs?: components["schemas"]["SandboxExec"][];
644
+ };
645
+ };
284
646
  CreateDiskRequest: {
285
647
  /**
286
648
  * @description Disk name (alphanumeric, dashes, underscores)
@@ -514,6 +876,8 @@ export interface components {
514
876
  expiresAt?: string;
515
877
  /** @description When true, the token can only be used for a single mount authentication. After the first successful mount, subsequent attempts are rejected. Consumed tokens remain visible in the disk's authorized users list. */
516
878
  oneUse?: boolean;
879
+ /** @description When true, the token grants read-only access. Mounts authenticated with this token reject writes with EROFS. */
880
+ readOnly?: boolean;
517
881
  };
518
882
  AwsStsUser: {
519
883
  /**
@@ -532,6 +896,8 @@ export interface components {
532
896
  expiresAt?: string;
533
897
  /** @description When true, the credential can only be used for a single mount authentication. */
534
898
  oneUse?: boolean;
899
+ /** @description When true, the credential grants read-only access. Mounts authenticated with this credential reject writes with EROFS. */
900
+ readOnly?: boolean;
535
901
  };
536
902
  DiskUser: components["schemas"]["TokenUser"] | components["schemas"]["AwsStsUser"];
537
903
  DiskResponse: {
@@ -682,6 +1048,8 @@ export interface components {
682
1048
  * @description When the one-use token was consumed (first successful mount auth). Absent if the token has not been consumed or is not one-use.
683
1049
  */
684
1050
  consumedAt?: string;
1051
+ /** @description Whether this token grants read-only access. */
1052
+ readOnly?: boolean;
685
1053
  /**
686
1054
  * @description Current lifecycle status of the token.
687
1055
  * @enum {string}
@@ -693,6 +1061,8 @@ export interface components {
693
1061
  /** @example true */
694
1062
  success: boolean;
695
1063
  data: components["schemas"]["DiskResponse"][];
1064
+ /** @description Set when more disks remain beyond this page. Pass it back as the `cursor` query parameter to fetch the next page. Absent on the last page. */
1065
+ nextCursor?: string;
696
1066
  };
697
1067
  ApiResponse_Disk: {
698
1068
  /** @example true */
@@ -726,6 +1096,46 @@ export interface components {
726
1096
  allowedIps: string[];
727
1097
  };
728
1098
  };
1099
+ DelegationEntry: {
1100
+ /**
1101
+ * @description ID of the client holding the delegation.
1102
+ * @example 12345
1103
+ */
1104
+ clientId: string;
1105
+ /**
1106
+ * Format: int64
1107
+ * @description Inode the delegation covers.
1108
+ */
1109
+ inodeId: number;
1110
+ /**
1111
+ * @description Absolute path of the inode, resolved best-effort. Omitted when the server could not resolve it.
1112
+ * @example workspace/data.db
1113
+ */
1114
+ path?: string;
1115
+ /** @description True while the delegation checkout is still in flight. */
1116
+ isPending: boolean;
1117
+ /** @description True when the holding client is no longer connected to the disk. */
1118
+ isOrphaned: boolean;
1119
+ };
1120
+ ApiResponse_Delegations: {
1121
+ /** @example true */
1122
+ success: boolean;
1123
+ data: {
1124
+ delegations: components["schemas"]["DelegationEntry"][];
1125
+ };
1126
+ };
1127
+ RevokeDelegationRequest: {
1128
+ /**
1129
+ * Format: int64
1130
+ * @description Inode the delegation covers.
1131
+ */
1132
+ inodeId: number;
1133
+ /**
1134
+ * @description ID of the client holding the delegation.
1135
+ * @example 12345
1136
+ */
1137
+ clientId: string;
1138
+ };
729
1139
  CreateApiTokenRequest: {
730
1140
  /** @description Token name */
731
1141
  name: string;
@@ -1034,7 +1444,13 @@ export interface components {
1034
1444
  parameters: {
1035
1445
  /** @description Disk ID (format `dsk-{16 hex chars}`) */
1036
1446
  DiskId: string;
1037
- /** @description Maximum number of items to return */
1447
+ /** @description Sandbox UUID */
1448
+ SandboxId: string;
1449
+ /** @description Exec UUID */
1450
+ ExecId: string;
1451
+ /** @description Hold the request for a completed start or exec result */
1452
+ Wait: boolean;
1453
+ /** @description Maximum number of items to return. Omit to return all items in a single unpaginated response; when set, the response may include a nextCursor to fetch the next page. */
1038
1454
  Limit: number;
1039
1455
  /** @description Pagination cursor from a previous response */
1040
1456
  Cursor: string;
@@ -1045,10 +1461,45 @@ export interface components {
1045
1461
  }
1046
1462
  export type $defs = Record<string, never>;
1047
1463
  export interface operations {
1464
+ listActivity: {
1465
+ parameters: {
1466
+ query?: {
1467
+ /** @description Maximum events to return per page (default 50). */
1468
+ limit?: number;
1469
+ /** @description Pagination cursor from a previous response */
1470
+ cursor?: components["parameters"]["Cursor"];
1471
+ /** @description Restrict to a single disk owned by the account. */
1472
+ diskId?: string;
1473
+ /** @description Restrict to the given event types (`disk.created`, `disk.deleted`, `disk.user_added`, `disk.user_removed`, `disk.exec`). Repeat the parameter to select multiple types. */
1474
+ eventType?: string[];
1475
+ /** @description Restrict to the given severity levels. Repeat the parameter to select multiple levels. */
1476
+ level?: ("info" | "warning" | "error")[];
1477
+ };
1478
+ header?: never;
1479
+ path?: never;
1480
+ cookie?: never;
1481
+ };
1482
+ requestBody?: never;
1483
+ responses: {
1484
+ /** @description Page of activity events */
1485
+ 200: {
1486
+ headers: {
1487
+ [name: string]: unknown;
1488
+ };
1489
+ content: {
1490
+ "application/json": components["schemas"]["ApiResponse_ActivityList"];
1491
+ };
1492
+ };
1493
+ 400: components["responses"]["ValidationError"];
1494
+ 401: components["responses"]["Unauthorized"];
1495
+ 404: components["responses"]["NotFound"];
1496
+ 500: components["responses"]["InternalError"];
1497
+ };
1498
+ };
1048
1499
  listDisks: {
1049
1500
  parameters: {
1050
1501
  query?: {
1051
- /** @description Maximum number of items to return */
1502
+ /** @description Maximum number of items to return. Omit to return all items in a single unpaginated response; when set, the response may include a nextCursor to fetch the next page. */
1052
1503
  limit?: components["parameters"]["Limit"];
1053
1504
  /** @description Pagination cursor from a previous response */
1054
1505
  cursor?: components["parameters"]["Cursor"];
@@ -1314,7 +1765,64 @@ export interface operations {
1314
1765
  500: components["responses"]["InternalError"];
1315
1766
  };
1316
1767
  };
1317
- execDisk: {
1768
+ listDelegations: {
1769
+ parameters: {
1770
+ query?: never;
1771
+ header?: never;
1772
+ path: {
1773
+ /** @description Disk ID (format `dsk-{16 hex chars}`) */
1774
+ id: components["parameters"]["DiskId"];
1775
+ };
1776
+ cookie?: never;
1777
+ };
1778
+ requestBody?: never;
1779
+ responses: {
1780
+ /** @description Delegations currently held on the disk */
1781
+ 200: {
1782
+ headers: {
1783
+ [name: string]: unknown;
1784
+ };
1785
+ content: {
1786
+ "application/json": components["schemas"]["ApiResponse_Delegations"];
1787
+ };
1788
+ };
1789
+ 401: components["responses"]["Unauthorized"];
1790
+ 404: components["responses"]["NotFound"];
1791
+ 500: components["responses"]["InternalError"];
1792
+ };
1793
+ };
1794
+ revokeDelegation: {
1795
+ parameters: {
1796
+ query?: never;
1797
+ header?: never;
1798
+ path: {
1799
+ /** @description Disk ID (format `dsk-{16 hex chars}`) */
1800
+ id: components["parameters"]["DiskId"];
1801
+ };
1802
+ cookie?: never;
1803
+ };
1804
+ requestBody: {
1805
+ content: {
1806
+ "application/json": components["schemas"]["RevokeDelegationRequest"];
1807
+ };
1808
+ };
1809
+ responses: {
1810
+ /** @description Delegation revoked */
1811
+ 200: {
1812
+ headers: {
1813
+ [name: string]: unknown;
1814
+ };
1815
+ content: {
1816
+ "application/json": components["schemas"]["ApiResponse_Message"];
1817
+ };
1818
+ };
1819
+ 400: components["responses"]["ValidationError"];
1820
+ 401: components["responses"]["Unauthorized"];
1821
+ 404: components["responses"]["NotFound"];
1822
+ 500: components["responses"]["InternalError"];
1823
+ };
1824
+ };
1825
+ execDisk: {
1318
1826
  parameters: {
1319
1827
  query?: never;
1320
1828
  header?: never;
@@ -1425,7 +1933,7 @@ export interface operations {
1425
1933
  listApiTokens: {
1426
1934
  parameters: {
1427
1935
  query?: {
1428
- /** @description Maximum number of items to return */
1936
+ /** @description Maximum number of items to return. Omit to return all items in a single unpaginated response; when set, the response may include a nextCursor to fetch the next page. */
1429
1937
  limit?: components["parameters"]["Limit"];
1430
1938
  /** @description Pagination cursor from a previous response */
1431
1939
  cursor?: components["parameters"]["Cursor"];
@@ -1502,4 +2010,313 @@ export interface operations {
1502
2010
  500: components["responses"]["InternalError"];
1503
2011
  };
1504
2012
  };
2013
+ listSandboxes: {
2014
+ parameters: {
2015
+ query?: {
2016
+ /** @description Only sandboxes that mount this disk */
2017
+ filesystem?: string;
2018
+ };
2019
+ header?: never;
2020
+ path?: never;
2021
+ cookie?: never;
2022
+ };
2023
+ requestBody?: never;
2024
+ responses: {
2025
+ /** @description Sandboxes for the account */
2026
+ 200: {
2027
+ headers: {
2028
+ [name: string]: unknown;
2029
+ };
2030
+ content: {
2031
+ "application/json": components["schemas"]["ApiResponse_SandboxList"];
2032
+ };
2033
+ };
2034
+ 400: components["responses"]["ValidationError"];
2035
+ 401: components["responses"]["Unauthorized"];
2036
+ 500: components["responses"]["InternalError"];
2037
+ };
2038
+ };
2039
+ createSandbox: {
2040
+ parameters: {
2041
+ query?: {
2042
+ /** @description Hold the request for a completed start or exec result */
2043
+ wait?: components["parameters"]["Wait"];
2044
+ };
2045
+ header?: never;
2046
+ path?: never;
2047
+ cookie?: never;
2048
+ };
2049
+ requestBody: {
2050
+ content: {
2051
+ "application/json": components["schemas"]["CreateSandboxRequest"];
2052
+ };
2053
+ };
2054
+ responses: {
2055
+ /** @description The sandbox was created */
2056
+ 202: {
2057
+ headers: {
2058
+ [name: string]: unknown;
2059
+ };
2060
+ content: {
2061
+ "application/json": components["schemas"]["ApiResponse_Sandbox"];
2062
+ };
2063
+ };
2064
+ 400: components["responses"]["ValidationError"];
2065
+ 401: components["responses"]["Unauthorized"];
2066
+ /** @description Sandbox capacity reached */
2067
+ 429: {
2068
+ headers: {
2069
+ [name: string]: unknown;
2070
+ };
2071
+ content: {
2072
+ "application/json": components["schemas"]["ErrorResponse"];
2073
+ };
2074
+ };
2075
+ 500: components["responses"]["InternalError"];
2076
+ };
2077
+ };
2078
+ getSandbox: {
2079
+ parameters: {
2080
+ query?: never;
2081
+ header?: never;
2082
+ path: {
2083
+ /** @description Sandbox UUID */
2084
+ sid: components["parameters"]["SandboxId"];
2085
+ };
2086
+ cookie?: never;
2087
+ };
2088
+ requestBody?: never;
2089
+ responses: {
2090
+ /** @description The sandbox */
2091
+ 200: {
2092
+ headers: {
2093
+ [name: string]: unknown;
2094
+ };
2095
+ content: {
2096
+ "application/json": components["schemas"]["ApiResponse_Sandbox"];
2097
+ };
2098
+ };
2099
+ 401: components["responses"]["Unauthorized"];
2100
+ 404: components["responses"]["NotFound"];
2101
+ 500: components["responses"]["InternalError"];
2102
+ };
2103
+ };
2104
+ listSandboxExecs: {
2105
+ parameters: {
2106
+ query?: never;
2107
+ header?: never;
2108
+ path: {
2109
+ /** @description Sandbox UUID */
2110
+ sid: components["parameters"]["SandboxId"];
2111
+ };
2112
+ cookie?: never;
2113
+ };
2114
+ requestBody?: never;
2115
+ responses: {
2116
+ /** @description Recent execs */
2117
+ 200: {
2118
+ headers: {
2119
+ [name: string]: unknown;
2120
+ };
2121
+ content: {
2122
+ "application/json": components["schemas"]["ApiResponse_SandboxExecList"];
2123
+ };
2124
+ };
2125
+ 401: components["responses"]["Unauthorized"];
2126
+ 404: components["responses"]["NotFound"];
2127
+ 500: components["responses"]["InternalError"];
2128
+ };
2129
+ };
2130
+ execInSandbox: {
2131
+ parameters: {
2132
+ query?: {
2133
+ /** @description Hold the request for a completed start or exec result */
2134
+ wait?: components["parameters"]["Wait"];
2135
+ };
2136
+ header?: never;
2137
+ path: {
2138
+ /** @description Sandbox UUID */
2139
+ sid: components["parameters"]["SandboxId"];
2140
+ };
2141
+ cookie?: never;
2142
+ };
2143
+ requestBody: {
2144
+ content: {
2145
+ "application/json": components["schemas"]["SandboxExecRequest"];
2146
+ };
2147
+ };
2148
+ responses: {
2149
+ /** @description The exec, terminal (result fields set) or still running */
2150
+ 202: {
2151
+ headers: {
2152
+ [name: string]: unknown;
2153
+ };
2154
+ content: {
2155
+ "application/json": components["schemas"]["ApiResponse_SandboxExec"];
2156
+ };
2157
+ };
2158
+ 400: components["responses"]["ValidationError"];
2159
+ 401: components["responses"]["Unauthorized"];
2160
+ 404: components["responses"]["NotFound"];
2161
+ /** @description The sandbox is not running */
2162
+ 409: {
2163
+ headers: {
2164
+ [name: string]: unknown;
2165
+ };
2166
+ content: {
2167
+ "application/json": components["schemas"]["ErrorResponse"];
2168
+ };
2169
+ };
2170
+ /** @description The sandbox's max_concurrent_execs cap is reached */
2171
+ 429: {
2172
+ headers: {
2173
+ [name: string]: unknown;
2174
+ };
2175
+ content: {
2176
+ "application/json": components["schemas"]["ErrorResponse"];
2177
+ };
2178
+ };
2179
+ 500: components["responses"]["InternalError"];
2180
+ };
2181
+ };
2182
+ getSandboxExec: {
2183
+ parameters: {
2184
+ query?: never;
2185
+ header?: never;
2186
+ path: {
2187
+ /** @description Sandbox UUID */
2188
+ sid: components["parameters"]["SandboxId"];
2189
+ /** @description Exec UUID */
2190
+ eid: components["parameters"]["ExecId"];
2191
+ };
2192
+ cookie?: never;
2193
+ };
2194
+ requestBody?: never;
2195
+ responses: {
2196
+ /** @description The exec; result fields are set once terminal */
2197
+ 200: {
2198
+ headers: {
2199
+ [name: string]: unknown;
2200
+ };
2201
+ content: {
2202
+ "application/json": components["schemas"]["ApiResponse_SandboxExec"];
2203
+ };
2204
+ };
2205
+ 401: components["responses"]["Unauthorized"];
2206
+ 404: components["responses"]["NotFound"];
2207
+ 500: components["responses"]["InternalError"];
2208
+ };
2209
+ };
2210
+ cancelSandboxExec: {
2211
+ parameters: {
2212
+ query?: never;
2213
+ header?: never;
2214
+ path: {
2215
+ /** @description Sandbox UUID */
2216
+ sid: components["parameters"]["SandboxId"];
2217
+ /** @description Exec UUID */
2218
+ eid: components["parameters"]["ExecId"];
2219
+ };
2220
+ cookie?: never;
2221
+ };
2222
+ requestBody?: never;
2223
+ responses: {
2224
+ /** @description The exec after the cancel */
2225
+ 200: {
2226
+ headers: {
2227
+ [name: string]: unknown;
2228
+ };
2229
+ content: {
2230
+ "application/json": components["schemas"]["ApiResponse_SandboxExec"];
2231
+ };
2232
+ };
2233
+ 401: components["responses"]["Unauthorized"];
2234
+ 404: components["responses"]["NotFound"];
2235
+ 500: components["responses"]["InternalError"];
2236
+ };
2237
+ };
2238
+ startSandbox: {
2239
+ parameters: {
2240
+ query?: {
2241
+ /** @description Hold the request for a completed start or exec result */
2242
+ wait?: components["parameters"]["Wait"];
2243
+ };
2244
+ header?: never;
2245
+ path: {
2246
+ /** @description Sandbox UUID */
2247
+ sid: components["parameters"]["SandboxId"];
2248
+ };
2249
+ cookie?: never;
2250
+ };
2251
+ requestBody?: never;
2252
+ responses: {
2253
+ /** @description The sandbox was already running */
2254
+ 200: {
2255
+ headers: {
2256
+ [name: string]: unknown;
2257
+ };
2258
+ content: {
2259
+ "application/json": components["schemas"]["ApiResponse_Sandbox"];
2260
+ };
2261
+ };
2262
+ /** @description The sandbox start is pending */
2263
+ 202: {
2264
+ headers: {
2265
+ [name: string]: unknown;
2266
+ };
2267
+ content: {
2268
+ "application/json": components["schemas"]["ApiResponse_Sandbox"];
2269
+ };
2270
+ };
2271
+ 400: components["responses"]["ValidationError"];
2272
+ 401: components["responses"]["Unauthorized"];
2273
+ 404: components["responses"]["NotFound"];
2274
+ /** @description The previous VM is still stopping */
2275
+ 409: {
2276
+ headers: {
2277
+ [name: string]: unknown;
2278
+ };
2279
+ content: {
2280
+ "application/json": components["schemas"]["ErrorResponse"];
2281
+ };
2282
+ };
2283
+ 500: components["responses"]["InternalError"];
2284
+ };
2285
+ };
2286
+ stopSandbox: {
2287
+ parameters: {
2288
+ query?: never;
2289
+ header?: never;
2290
+ path: {
2291
+ /** @description Sandbox UUID */
2292
+ sid: components["parameters"]["SandboxId"];
2293
+ };
2294
+ cookie?: never;
2295
+ };
2296
+ requestBody?: never;
2297
+ responses: {
2298
+ /** @description The sandbox was already inactive */
2299
+ 200: {
2300
+ headers: {
2301
+ [name: string]: unknown;
2302
+ };
2303
+ content: {
2304
+ "application/json": components["schemas"]["ApiResponse_Sandbox"];
2305
+ };
2306
+ };
2307
+ /** @description The sandbox stop is in progress */
2308
+ 202: {
2309
+ headers: {
2310
+ [name: string]: unknown;
2311
+ };
2312
+ content: {
2313
+ "application/json": components["schemas"]["ApiResponse_Sandbox"];
2314
+ };
2315
+ };
2316
+ 400: components["responses"]["ValidationError"];
2317
+ 401: components["responses"]["Unauthorized"];
2318
+ 404: components["responses"]["NotFound"];
2319
+ 500: components["responses"]["InternalError"];
2320
+ };
2321
+ };
1505
2322
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@archildata/api-types",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "API types for the Archil control plane",
5
5
  "type": "module",
6
6
  "types": "index.d.ts",