@archildata/api-types 0.0.2 → 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 +856 -17
  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)
@@ -333,6 +695,11 @@ export interface components {
333
695
  * @example data/
334
696
  */
335
697
  bucketPrefix?: string;
698
+ /**
699
+ * @description Bucket region
700
+ * @example us-east-1
701
+ */
702
+ bucketRegion?: string;
336
703
  };
337
704
  /**
338
705
  * Google Cloud Storage
@@ -361,6 +728,11 @@ export interface components {
361
728
  * @example data/
362
729
  */
363
730
  bucketPrefix?: string;
731
+ /**
732
+ * @description Bucket region
733
+ * @example auto
734
+ */
735
+ bucketRegion?: string;
364
736
  };
365
737
  /**
366
738
  * Cloudflare R2
@@ -394,6 +766,11 @@ export interface components {
394
766
  * @example data/
395
767
  */
396
768
  bucketPrefix?: string;
769
+ /**
770
+ * @description Bucket region
771
+ * @example auto
772
+ */
773
+ bucketRegion?: string;
397
774
  };
398
775
  /**
399
776
  * S3-Compatible
@@ -427,6 +804,11 @@ export interface components {
427
804
  * @example data/
428
805
  */
429
806
  bucketPrefix?: string;
807
+ /**
808
+ * @description Bucket region
809
+ * @example auto
810
+ */
811
+ bucketRegion?: string;
430
812
  };
431
813
  /**
432
814
  * Azure Blob Storage
@@ -494,6 +876,8 @@ export interface components {
494
876
  expiresAt?: string;
495
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. */
496
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;
497
881
  };
498
882
  AwsStsUser: {
499
883
  /**
@@ -512,6 +896,8 @@ export interface components {
512
896
  expiresAt?: string;
513
897
  /** @description When true, the credential can only be used for a single mount authentication. */
514
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;
515
901
  };
516
902
  DiskUser: components["schemas"]["TokenUser"] | components["schemas"]["AwsStsUser"];
517
903
  DiskResponse: {
@@ -615,6 +1001,8 @@ export interface components {
615
1001
  bucketEndpoint?: string;
616
1002
  /** @description Prefix within the bucket */
617
1003
  bucketPrefix?: string;
1004
+ /** @description Bucket region */
1005
+ bucketRegion?: string;
618
1006
  /** @description Session identifier for IAM-authorized mounts */
619
1007
  sessionId?: string;
620
1008
  };
@@ -660,6 +1048,8 @@ export interface components {
660
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.
661
1049
  */
662
1050
  consumedAt?: string;
1051
+ /** @description Whether this token grants read-only access. */
1052
+ readOnly?: boolean;
663
1053
  /**
664
1054
  * @description Current lifecycle status of the token.
665
1055
  * @enum {string}
@@ -671,6 +1061,8 @@ export interface components {
671
1061
  /** @example true */
672
1062
  success: boolean;
673
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;
674
1066
  };
675
1067
  ApiResponse_Disk: {
676
1068
  /** @example true */
@@ -704,6 +1096,46 @@ export interface components {
704
1096
  allowedIps: string[];
705
1097
  };
706
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
+ };
707
1139
  CreateApiTokenRequest: {
708
1140
  /** @description Token name */
709
1141
  name: string;
@@ -1012,7 +1444,13 @@ export interface components {
1012
1444
  parameters: {
1013
1445
  /** @description Disk ID (format `dsk-{16 hex chars}`) */
1014
1446
  DiskId: string;
1015
- /** @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. */
1016
1454
  Limit: number;
1017
1455
  /** @description Pagination cursor from a previous response */
1018
1456
  Cursor: string;
@@ -1023,15 +1461,19 @@ export interface components {
1023
1461
  }
1024
1462
  export type $defs = Record<string, never>;
1025
1463
  export interface operations {
1026
- listDisks: {
1464
+ listActivity: {
1027
1465
  parameters: {
1028
1466
  query?: {
1029
- /** @description Maximum number of items to return */
1030
- limit?: components["parameters"]["Limit"];
1467
+ /** @description Maximum events to return per page (default 50). */
1468
+ limit?: number;
1031
1469
  /** @description Pagination cursor from a previous response */
1032
1470
  cursor?: components["parameters"]["Cursor"];
1033
- /** @description Filter disks by exact name match. */
1034
- name?: string;
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")[];
1035
1477
  };
1036
1478
  header?: never;
1037
1479
  path?: never;
@@ -1039,28 +1481,59 @@ export interface operations {
1039
1481
  };
1040
1482
  requestBody?: never;
1041
1483
  responses: {
1042
- /** @description List of disks */
1484
+ /** @description Page of activity events */
1043
1485
  200: {
1044
1486
  headers: {
1045
1487
  [name: string]: unknown;
1046
1488
  };
1047
1489
  content: {
1048
- "application/json": components["schemas"]["ApiResponse_DiskList"];
1490
+ "application/json": components["schemas"]["ApiResponse_ActivityList"];
1049
1491
  };
1050
1492
  };
1493
+ 400: components["responses"]["ValidationError"];
1051
1494
  401: components["responses"]["Unauthorized"];
1495
+ 404: components["responses"]["NotFound"];
1052
1496
  500: components["responses"]["InternalError"];
1053
1497
  };
1054
1498
  };
1055
- createDisk: {
1499
+ listDisks: {
1056
1500
  parameters: {
1057
- query?: never;
1058
- header?: never;
1059
- path?: never;
1060
- cookie?: never;
1061
- };
1062
- requestBody: {
1063
- content: {
1501
+ query?: {
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. */
1503
+ limit?: components["parameters"]["Limit"];
1504
+ /** @description Pagination cursor from a previous response */
1505
+ cursor?: components["parameters"]["Cursor"];
1506
+ /** @description Filter disks by exact name match. */
1507
+ name?: string;
1508
+ };
1509
+ header?: never;
1510
+ path?: never;
1511
+ cookie?: never;
1512
+ };
1513
+ requestBody?: never;
1514
+ responses: {
1515
+ /** @description List of disks */
1516
+ 200: {
1517
+ headers: {
1518
+ [name: string]: unknown;
1519
+ };
1520
+ content: {
1521
+ "application/json": components["schemas"]["ApiResponse_DiskList"];
1522
+ };
1523
+ };
1524
+ 401: components["responses"]["Unauthorized"];
1525
+ 500: components["responses"]["InternalError"];
1526
+ };
1527
+ };
1528
+ createDisk: {
1529
+ parameters: {
1530
+ query?: never;
1531
+ header?: never;
1532
+ path?: never;
1533
+ cookie?: never;
1534
+ };
1535
+ requestBody: {
1536
+ content: {
1064
1537
  "application/json": components["schemas"]["CreateDiskRequest"];
1065
1538
  };
1066
1539
  };
@@ -1292,6 +1765,63 @@ export interface operations {
1292
1765
  500: components["responses"]["InternalError"];
1293
1766
  };
1294
1767
  };
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
+ };
1295
1825
  execDisk: {
1296
1826
  parameters: {
1297
1827
  query?: never;
@@ -1403,7 +1933,7 @@ export interface operations {
1403
1933
  listApiTokens: {
1404
1934
  parameters: {
1405
1935
  query?: {
1406
- /** @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. */
1407
1937
  limit?: components["parameters"]["Limit"];
1408
1938
  /** @description Pagination cursor from a previous response */
1409
1939
  cursor?: components["parameters"]["Cursor"];
@@ -1480,4 +2010,313 @@ export interface operations {
1480
2010
  500: components["responses"]["InternalError"];
1481
2011
  };
1482
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
+ };
1483
2322
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@archildata/api-types",
3
- "version": "0.0.2",
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",