@archildata/api-types 0.0.41 → 0.0.43

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 +34 -3
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -664,7 +664,8 @@ export interface paths {
664
664
  * was paused, its memory snapshot is consumed and discarded before the
665
665
  * new VM runs; disk state remains. Starting a running sandbox or a pending
666
666
  * cold start is idempotent. A sandbox that is stopping, pausing, or
667
- * pending a resume returns 409.
667
+ * pending a resume returns 409. An optional body replaces the sandbox's
668
+ * disk mounts for this and later sessions.
668
669
  */
669
670
  post: operations["startSandbox"];
670
671
  delete?: never;
@@ -754,13 +755,15 @@ export interface components {
754
755
  SandboxState: "pending" | "running" | "pausing" | "paused" | "stopping" | "stopped" | "exited" | "failed" | "deleting" | "deleted";
755
756
  /** @enum {string} */
756
757
  SandboxNetworkAction: "allow" | "deny";
757
- /** @description Deny targets take precedence when an address or domain matches both lists. When domain rules are present, TCP ports 80 and 443 are restricted to HTTP/1.1 or HTTP/2. Plaintext HTTP authority is enforced on port 80, but requests matching a transformation rule are rejected unless the rule also forwards. Port 443 is TLS-terminated; both TLS SNI and HTTP authority are evaluated, and the HTTP authority selects the upstream, any request transformations, and any request forwarding. DNS to the sandbox's configured resolvers is allowed and UDP port 443 is denied. */
758
+ /** @description Deny targets take precedence when an address or domain matches both lists. When domain rules or drain selectors are present, TCP ports 80 and 443 are restricted to HTTP/1.1 or HTTP/2. Plaintext HTTP authority is enforced on port 80, but requests matching a transformation rule are rejected unless the rule also forwards. Port 443 is TLS-terminated; both TLS SNI and HTTP authority are evaluated, and the HTTP authority selects the upstream, any request transformations, and any request forwarding. DNS to the sandbox's configured resolvers is allowed and UDP port 443 is denied. */
758
759
  SandboxEgressPolicy: {
759
760
  default: components["schemas"]["SandboxNetworkAction"];
760
761
  /** @description Allowed IPv4 addresses, CIDR ranges, exact domains, wildcard domains beginning with `*.`, or target objects with optional outbound HTTPS request transformations. A wildcard matches subdomains but not the apex domain, including when applying transformations. */
761
762
  allow?: (string | components["schemas"]["SandboxEgressRule"])[];
762
763
  /** @description Denied IPv4 addresses, CIDR ranges, exact domains, or wildcard domains beginning with `*.`. A wildcard matches subdomains but not the apex domain. */
763
764
  deny?: string[];
765
+ /** @description Optional hosts whose HTTP(S) requests should finish before pausing, regardless of URL path. Pausing gates new matching requests and waits up to ten minutes by default for active responses, including streams, before taking a snapshot. Errors stop counting, and expiry proceeds with the snapshot. This does not limit requests during normal operation. Selectors do not grant network access. Matching uses the original request host before transformations or forwarding. Only TCP ports 80 and 443 are supported. Connections may need to be retried after resume. */
766
+ drain_on_pause?: string[];
764
767
  };
765
768
  SandboxEgressRule: {
766
769
  /** @description Target allowed by this rule. Effective transformations and forwarding require an exact or wildcard lowercase domain. */
@@ -821,6 +824,7 @@ export interface components {
821
824
  * @default false
822
825
  */
823
826
  enable_service_ingress: boolean;
827
+ mounts?: components["schemas"]["SandboxMount"][];
824
828
  /** Format: date-time */
825
829
  created_at: string;
826
830
  /** Format: date-time */
@@ -838,6 +842,22 @@ export interface components {
838
842
  */
839
843
  checkpoint?: string;
840
844
  };
845
+ SandboxMount: {
846
+ disk_id: string;
847
+ /** @description Absolute guest directory to mount at. Required when more than one disk is mounted; a sole mount defaults to /mnt/archil. Guest system directories (/usr, /etc, /var, /opt, ...) are reserved, and a disk can be mounted once per sandbox. */
848
+ path?: string;
849
+ /** @description Relative subdirectory of the disk to expose instead of its root. */
850
+ subdirectory?: string;
851
+ /** @default false */
852
+ read_only: boolean;
853
+ /**
854
+ * @description Send mutating operations directly to the server without a delegation checkout, allowing concurrent writers.
855
+ * @default false
856
+ */
857
+ conditional: boolean;
858
+ /** @description Milliseconds to wait for the disk's exclusive root delegation before the mount fails. Not allowed with read_only or conditional. */
859
+ queue_ms?: number;
860
+ };
841
861
  SandboxEndpoint: {
842
862
  port: number;
843
863
  hostname: string;
@@ -951,6 +971,8 @@ export interface components {
951
971
  [key: string]: string;
952
972
  };
953
973
  network?: components["schemas"]["SandboxNetwork"];
974
+ /** @description Archil disks mounted inside the guest for the first session; `start` can replace them for later sessions. Inherited by forks. A sandbox with mounts must be stopped before it can be forked. */
975
+ mounts?: components["schemas"]["SandboxMount"][];
954
976
  /**
955
977
  * @description Lifetime budget applied independently to each powered-on session. Expiry pauses the sandbox, preserving memory and processes for resume.
956
978
  * @default 86400
@@ -961,6 +983,10 @@ export interface components {
961
983
  /** @description Maximum number of concurrently attached process sessions. Detached processes and one-shot process controls do not count. */
962
984
  max_concurrent_execs?: number;
963
985
  };
986
+ StartSandboxRequest: {
987
+ /** @description Replace the sandbox's disk mounts for this and later sessions. Omit to keep the current ones. Not accepted by resume, and 409 while the sandbox is running or pending. */
988
+ mounts?: components["schemas"]["SandboxMount"][];
989
+ };
964
990
  ForkSandboxRequest: {
965
991
  /** @description Name for the fork. A random word-list name is generated when omitted. */
966
992
  name?: string;
@@ -2513,6 +2539,7 @@ export interface operations {
2513
2539
  };
2514
2540
  400: components["responses"]["ValidationError"];
2515
2541
  401: components["responses"]["Unauthorized"];
2542
+ 404: components["responses"]["NotFound"];
2516
2543
  /** @description The requested sandbox name already exists in the account */
2517
2544
  409: {
2518
2545
  headers: {
@@ -3102,7 +3129,11 @@ export interface operations {
3102
3129
  };
3103
3130
  cookie?: never;
3104
3131
  };
3105
- requestBody?: never;
3132
+ requestBody?: {
3133
+ content: {
3134
+ "application/json": components["schemas"]["StartSandboxRequest"];
3135
+ };
3136
+ };
3106
3137
  responses: {
3107
3138
  /** @description The sandbox was already running */
3108
3139
  200: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@archildata/api-types",
3
- "version": "0.0.41",
3
+ "version": "0.0.43",
4
4
  "description": "API types for the Archil control plane",
5
5
  "type": "module",
6
6
  "types": "index.d.ts",