@archildata/api-types 0.0.28 → 0.0.30

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 +83 -5
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -514,6 +514,31 @@ export interface paths {
514
514
  patch?: never;
515
515
  trace?: never;
516
516
  };
517
+ "/api/sandboxes/{sid}/timeout": {
518
+ parameters: {
519
+ query?: never;
520
+ header?: never;
521
+ path?: never;
522
+ cookie?: never;
523
+ };
524
+ get?: never;
525
+ put?: never;
526
+ /**
527
+ * Set a sandbox's timeout
528
+ * @description Replaces the sandbox's lifetime budget and, while it is running, resets
529
+ * its expiration deadline to the requested number of seconds from now.
530
+ * The new budget is retained across later stops and starts. For an
531
+ * inactive sandbox, it applies to the next powered-on session. Sandboxes
532
+ * that are starting or shutting down, or whose timeout changes
533
+ * concurrently, return 409.
534
+ */
535
+ post: operations["setSandboxTimeout"];
536
+ delete?: never;
537
+ options?: never;
538
+ head?: never;
539
+ patch?: never;
540
+ trace?: never;
541
+ };
517
542
  "/api/sandboxes/{sid}/start": {
518
543
  parameters: {
519
544
  query?: never;
@@ -619,7 +644,7 @@ export interface components {
619
644
  SandboxState: "pending" | "running" | "pausing" | "paused" | "stopping" | "stopped" | "exited" | "failed" | "deleting" | "deleted";
620
645
  /** @enum {string} */
621
646
  SandboxNetworkAction: "allow" | "deny";
622
- /** @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. Port 443 is TLS-terminated; both TLS SNI and HTTP authority are evaluated, and the HTTP authority selects the upstream and any request transformations. DNS to the sandbox's configured resolvers is allowed and UDP port 443 is denied. */
647
+ /** @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. */
623
648
  SandboxEgressPolicy: {
624
649
  default: components["schemas"]["SandboxNetworkAction"];
625
650
  /** @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. */
@@ -628,9 +653,14 @@ export interface components {
628
653
  deny?: string[];
629
654
  };
630
655
  SandboxEgressRule: {
631
- /** @description Target allowed by this rule. Effective transformations require an exact or wildcard lowercase domain. */
656
+ /** @description Target allowed by this rule. Effective transformations and forwarding require an exact or wildcard lowercase domain. */
632
657
  target: string;
633
658
  transform?: components["schemas"]["SandboxEgressTransform"];
659
+ /**
660
+ * Format: uri
661
+ * @description Absolute public HTTPS URL that receives this rule's permitted HTTP and HTTPS requests instead of their original upstream. The original path is appended to this URL, and Archil overwrites the archil-forwarded-host, archil-forwarded-scheme, archil-forwarded-port, archil-forwarded-path, and archil-sandbox-id headers with request metadata. A transform on the same rule is applied before forwarding, so the forwarded request carries the transformed headers. URLs containing credentials, a query, or a fragment are rejected.
662
+ */
663
+ forward_url?: string;
634
664
  };
635
665
  /** @description Optional outbound HTTPS request transformations. An omitted or empty transform leaves the rule as an ordinary allow without request mutations. */
636
666
  SandboxEgressTransform: {
@@ -643,6 +673,10 @@ export interface components {
643
673
  SandboxNetwork: {
644
674
  egress?: components["schemas"]["SandboxEgressPolicy"];
645
675
  };
676
+ SandboxTimeoutRequest: {
677
+ /** @description Seconds from now until a running sandbox expires, and the lifetime budget for its next powered-on session. */
678
+ timeout: number;
679
+ };
646
680
  Sandbox: {
647
681
  /** Format: uuid */
648
682
  sandbox_id: string;
@@ -651,7 +685,7 @@ export interface components {
651
685
  status: components["schemas"]["SandboxState"];
652
686
  vcpu_count: number;
653
687
  mem_size_mib: number;
654
- /** @description Full lifetime budget applied independently to each powered-on session. */
688
+ /** @description Full lifetime budget applied independently to each powered-on session. Defaults to 24 hours and can be reset with the timeout endpoint. */
655
689
  max_ttl_seconds: number;
656
690
  /** @description Maximum number of concurrently attached process sessions. Detached processes and one-shot process controls do not count. */
657
691
  max_concurrent_execs: number;
@@ -726,8 +760,11 @@ export interface components {
726
760
  [key: string]: string;
727
761
  };
728
762
  network?: components["schemas"]["SandboxNetwork"];
729
- /** @description Lifetime budget applied independently to each powered-on session */
730
- max_ttl_seconds?: number;
763
+ /**
764
+ * @description Lifetime budget applied independently to each powered-on session
765
+ * @default 86400
766
+ */
767
+ max_ttl_seconds: number;
731
768
  /** @description Maximum number of concurrently attached process sessions. Detached processes and one-shot process controls do not count. */
732
769
  max_concurrent_execs?: number;
733
770
  };
@@ -2588,6 +2625,47 @@ export interface operations {
2588
2625
  503: components["responses"]["RetryableUnavailable"];
2589
2626
  };
2590
2627
  };
2628
+ setSandboxTimeout: {
2629
+ parameters: {
2630
+ query?: never;
2631
+ header?: never;
2632
+ path: {
2633
+ /** @description Sandbox UUID */
2634
+ sid: components["parameters"]["SandboxId"];
2635
+ };
2636
+ cookie?: never;
2637
+ };
2638
+ requestBody: {
2639
+ content: {
2640
+ "application/json": components["schemas"]["SandboxTimeoutRequest"];
2641
+ };
2642
+ };
2643
+ responses: {
2644
+ /** @description The sandbox timeout was set */
2645
+ 200: {
2646
+ headers: {
2647
+ [name: string]: unknown;
2648
+ };
2649
+ content: {
2650
+ "application/json": components["schemas"]["ApiResponse_Sandbox"];
2651
+ };
2652
+ };
2653
+ 400: components["responses"]["ValidationError"];
2654
+ 401: components["responses"]["Unauthorized"];
2655
+ 404: components["responses"]["NotFound"];
2656
+ /** @description The sandbox is transitioning or its timeout changed concurrently */
2657
+ 409: {
2658
+ headers: {
2659
+ [name: string]: unknown;
2660
+ };
2661
+ content: {
2662
+ "application/json": components["schemas"]["ErrorResponse"];
2663
+ };
2664
+ };
2665
+ 500: components["responses"]["InternalError"];
2666
+ 503: components["responses"]["RetryableUnavailable"];
2667
+ };
2668
+ };
2591
2669
  startSandbox: {
2592
2670
  parameters: {
2593
2671
  query?: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@archildata/api-types",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
4
4
  "description": "API types for the Archil control plane",
5
5
  "type": "module",
6
6
  "types": "index.d.ts",