@distilled.cloud/vercel 0.0.0 → 1.0.0-rc.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 (230) hide show
  1. package/lib/credentials.d.ts +21 -0
  2. package/lib/credentials.d.ts.map +1 -0
  3. package/lib/credentials.js +40 -0
  4. package/lib/credentials.js.map +1 -0
  5. package/lib/errors.d.ts +80 -0
  6. package/lib/errors.d.ts.map +1 -0
  7. package/lib/errors.js +50 -0
  8. package/lib/errors.js.map +1 -0
  9. package/lib/index.d.ts +15 -0
  10. package/lib/index.d.ts.map +1 -0
  11. package/lib/index.js +15 -0
  12. package/lib/index.js.map +1 -0
  13. package/lib/protocol.d.ts +18 -0
  14. package/lib/protocol.d.ts.map +1 -0
  15. package/lib/protocol.js +69 -0
  16. package/lib/protocol.js.map +1 -0
  17. package/lib/retry.d.ts +54 -0
  18. package/lib/retry.d.ts.map +1 -0
  19. package/lib/retry.js +47 -0
  20. package/lib/retry.js.map +1 -0
  21. package/lib/services/access_groups.d.ts +459 -0
  22. package/lib/services/access_groups.d.ts.map +1 -0
  23. package/lib/services/access_groups.js +453 -0
  24. package/lib/services/access_groups.js.map +1 -0
  25. package/lib/services/ai_gateway.d.ts +124 -0
  26. package/lib/services/ai_gateway.d.ts.map +1 -0
  27. package/lib/services/ai_gateway.js +126 -0
  28. package/lib/services/ai_gateway.js.map +1 -0
  29. package/lib/services/aliases.d.ts +591 -0
  30. package/lib/services/aliases.d.ts.map +1 -0
  31. package/lib/services/aliases.js +508 -0
  32. package/lib/services/aliases.js.map +1 -0
  33. package/lib/services/artifacts.d.ts +228 -0
  34. package/lib/services/artifacts.d.ts.map +1 -0
  35. package/lib/services/artifacts.js +216 -0
  36. package/lib/services/artifacts.js.map +1 -0
  37. package/lib/services/authentication.d.ts +373 -0
  38. package/lib/services/authentication.d.ts.map +1 -0
  39. package/lib/services/authentication.js +310 -0
  40. package/lib/services/authentication.js.map +1 -0
  41. package/lib/services/billing.d.ts +792 -0
  42. package/lib/services/billing.d.ts.map +1 -0
  43. package/lib/services/billing.js +616 -0
  44. package/lib/services/billing.js.map +1 -0
  45. package/lib/services/bulk_redirects.d.ts +308 -0
  46. package/lib/services/bulk_redirects.d.ts.map +1 -0
  47. package/lib/services/bulk_redirects.js +306 -0
  48. package/lib/services/bulk_redirects.js.map +1 -0
  49. package/lib/services/certs.d.ts +171 -0
  50. package/lib/services/certs.d.ts.map +1 -0
  51. package/lib/services/certs.js +165 -0
  52. package/lib/services/certs.js.map +1 -0
  53. package/lib/services/checks_v2.d.ts +1162 -0
  54. package/lib/services/checks_v2.d.ts.map +1 -0
  55. package/lib/services/checks_v2.js +1252 -0
  56. package/lib/services/checks_v2.js.map +1 -0
  57. package/lib/services/connect.d.ts +1034 -0
  58. package/lib/services/connect.d.ts.map +1 -0
  59. package/lib/services/connect.js +993 -0
  60. package/lib/services/connect.js.map +1 -0
  61. package/lib/services/deployments.d.ts +9111 -0
  62. package/lib/services/deployments.d.ts.map +1 -0
  63. package/lib/services/deployments.js +8664 -0
  64. package/lib/services/deployments.js.map +1 -0
  65. package/lib/services/dns.d.ts +279 -0
  66. package/lib/services/dns.d.ts.map +1 -0
  67. package/lib/services/dns.js +282 -0
  68. package/lib/services/dns.js.map +1 -0
  69. package/lib/services/domains.d.ts +539 -0
  70. package/lib/services/domains.d.ts.map +1 -0
  71. package/lib/services/domains.js +464 -0
  72. package/lib/services/domains.js.map +1 -0
  73. package/lib/services/domains_registrar.d.ts +798 -0
  74. package/lib/services/domains_registrar.d.ts.map +1 -0
  75. package/lib/services/domains_registrar.js +968 -0
  76. package/lib/services/domains_registrar.js.map +1 -0
  77. package/lib/services/drains.d.ts +2263 -0
  78. package/lib/services/drains.d.ts.map +1 -0
  79. package/lib/services/drains.js +2406 -0
  80. package/lib/services/drains.js.map +1 -0
  81. package/lib/services/edge_cache.d.ts +125 -0
  82. package/lib/services/edge_cache.d.ts.map +1 -0
  83. package/lib/services/edge_cache.js +140 -0
  84. package/lib/services/edge_cache.js.map +1 -0
  85. package/lib/services/environment.d.ts +1020 -0
  86. package/lib/services/environment.d.ts.map +1 -0
  87. package/lib/services/environment.js +842 -0
  88. package/lib/services/environment.js.map +1 -0
  89. package/lib/services/feature_flags.d.ts +3109 -0
  90. package/lib/services/feature_flags.d.ts.map +1 -0
  91. package/lib/services/feature_flags.js +3074 -0
  92. package/lib/services/feature_flags.js.map +1 -0
  93. package/lib/services/global_config.d.ts +618 -0
  94. package/lib/services/global_config.d.ts.map +1 -0
  95. package/lib/services/global_config.js +716 -0
  96. package/lib/services/global_config.js.map +1 -0
  97. package/lib/services/index.d.ts +39 -0
  98. package/lib/services/index.d.ts.map +1 -0
  99. package/lib/services/index.js +40 -0
  100. package/lib/services/index.js.map +1 -0
  101. package/lib/services/integrations.d.ts +2987 -0
  102. package/lib/services/integrations.d.ts.map +1 -0
  103. package/lib/services/integrations.js +2903 -0
  104. package/lib/services/integrations.js.map +1 -0
  105. package/lib/services/log_drains.d.ts +848 -0
  106. package/lib/services/log_drains.d.ts.map +1 -0
  107. package/lib/services/log_drains.js +866 -0
  108. package/lib/services/log_drains.js.map +1 -0
  109. package/lib/services/logs.d.ts +40 -0
  110. package/lib/services/logs.d.ts.map +1 -0
  111. package/lib/services/logs.js +43 -0
  112. package/lib/services/logs.js.map +1 -0
  113. package/lib/services/marketplace.d.ts +991 -0
  114. package/lib/services/marketplace.d.ts.map +1 -0
  115. package/lib/services/marketplace.js +1044 -0
  116. package/lib/services/marketplace.js.map +1 -0
  117. package/lib/services/microfrontends.d.ts +3210 -0
  118. package/lib/services/microfrontends.d.ts.map +1 -0
  119. package/lib/services/microfrontends.js +3300 -0
  120. package/lib/services/microfrontends.js.map +1 -0
  121. package/lib/services/networking.d.ts +239 -0
  122. package/lib/services/networking.d.ts.map +1 -0
  123. package/lib/services/networking.js +224 -0
  124. package/lib/services/networking.js.map +1 -0
  125. package/lib/services/observability.d.ts +168 -0
  126. package/lib/services/observability.d.ts.map +1 -0
  127. package/lib/services/observability.js +191 -0
  128. package/lib/services/observability.js.map +1 -0
  129. package/lib/services/project_members.d.ts +142 -0
  130. package/lib/services/project_members.d.ts.map +1 -0
  131. package/lib/services/project_members.js +139 -0
  132. package/lib/services/project_members.js.map +1 -0
  133. package/lib/services/project_routes.d.ts +1990 -0
  134. package/lib/services/project_routes.d.ts.map +1 -0
  135. package/lib/services/project_routes.js +2026 -0
  136. package/lib/services/project_routes.js.map +1 -0
  137. package/lib/services/projects.d.ts +23449 -0
  138. package/lib/services/projects.d.ts.map +1 -0
  139. package/lib/services/projects.js +23570 -0
  140. package/lib/services/projects.js.map +1 -0
  141. package/lib/services/rolling_release.d.ts +764 -0
  142. package/lib/services/rolling_release.d.ts.map +1 -0
  143. package/lib/services/rolling_release.js +630 -0
  144. package/lib/services/rolling_release.js.map +1 -0
  145. package/lib/services/sandboxes.d.ts +2183 -0
  146. package/lib/services/sandboxes.d.ts.map +1 -0
  147. package/lib/services/sandboxes.js +1756 -0
  148. package/lib/services/sandboxes.js.map +1 -0
  149. package/lib/services/security.d.ts +3932 -0
  150. package/lib/services/security.d.ts.map +1 -0
  151. package/lib/services/security.js +4411 -0
  152. package/lib/services/security.js.map +1 -0
  153. package/lib/services/storage.d.ts +251 -0
  154. package/lib/services/storage.d.ts.map +1 -0
  155. package/lib/services/storage.js +270 -0
  156. package/lib/services/storage.js.map +1 -0
  157. package/lib/services/teams.d.ts +1577 -0
  158. package/lib/services/teams.d.ts.map +1 -0
  159. package/lib/services/teams.js +1359 -0
  160. package/lib/services/teams.js.map +1 -0
  161. package/lib/services/user.d.ts +7972 -0
  162. package/lib/services/user.d.ts.map +1 -0
  163. package/lib/services/user.js +7093 -0
  164. package/lib/services/user.js.map +1 -0
  165. package/lib/services/vcr.d.ts +793 -0
  166. package/lib/services/vcr.d.ts.map +1 -0
  167. package/lib/services/vcr.js +882 -0
  168. package/lib/services/vcr.js.map +1 -0
  169. package/lib/services/web_analytics.d.ts +694 -0
  170. package/lib/services/web_analytics.d.ts.map +1 -0
  171. package/lib/services/web_analytics.js +695 -0
  172. package/lib/services/web_analytics.js.map +1 -0
  173. package/lib/services/webhooks.d.ts +207 -0
  174. package/lib/services/webhooks.d.ts.map +1 -0
  175. package/lib/services/webhooks.js +171 -0
  176. package/lib/services/webhooks.js.map +1 -0
  177. package/lib/traits.d.ts +10 -0
  178. package/lib/traits.d.ts.map +1 -0
  179. package/lib/traits.js +11 -0
  180. package/lib/traits.js.map +1 -0
  181. package/package.json +77 -7
  182. package/src/credentials.ts +70 -0
  183. package/src/errors.ts +93 -0
  184. package/src/index.ts +18 -0
  185. package/src/protocol.ts +98 -0
  186. package/src/retry.ts +78 -0
  187. package/src/services/access_groups.ts +1165 -0
  188. package/src/services/ai_gateway.ts +272 -0
  189. package/src/services/aliases.ts +1323 -0
  190. package/src/services/artifacts.ts +542 -0
  191. package/src/services/authentication.ts +829 -0
  192. package/src/services/billing.ts +1776 -0
  193. package/src/services/bulk_redirects.ts +748 -0
  194. package/src/services/certs.ts +377 -0
  195. package/src/services/checks_v2.ts +3136 -0
  196. package/src/services/connect.ts +2607 -0
  197. package/src/services/deployments.ts +23682 -0
  198. package/src/services/dns.ts +718 -0
  199. package/src/services/domains.ts +1209 -0
  200. package/src/services/domains_registrar.ts +2290 -0
  201. package/src/services/drains.ts +5989 -0
  202. package/src/services/edge_cache.ts +303 -0
  203. package/src/services/environment.ts +2388 -0
  204. package/src/services/feature_flags.ts +8302 -0
  205. package/src/services/global_config.ts +1668 -0
  206. package/src/services/index.ts +39 -0
  207. package/src/services/integrations.ts +8846 -0
  208. package/src/services/log_drains.ts +2413 -0
  209. package/src/services/logs.ts +78 -0
  210. package/src/services/marketplace.ts +2626 -0
  211. package/src/services/microfrontends.ts +9650 -0
  212. package/src/services/networking.ts +530 -0
  213. package/src/services/observability.ts +436 -0
  214. package/src/services/project_members.ts +328 -0
  215. package/src/services/project_routes.ts +5259 -0
  216. package/src/services/projects.ts +67377 -0
  217. package/src/services/rolling_release.ts +1869 -0
  218. package/src/services/sandboxes.ts +5259 -0
  219. package/src/services/security.ts +12408 -0
  220. package/src/services/storage.ts +849 -0
  221. package/src/services/teams.ts +3995 -0
  222. package/src/services/user.ts +21687 -0
  223. package/src/services/vcr.ts +2165 -0
  224. package/src/services/web_analytics.ts +1570 -0
  225. package/src/services/webhooks.ts +1073 -0
  226. package/src/traits.ts +44 -0
  227. package/README.md +0 -15
  228. package/bun.lock +0 -26
  229. package/index.ts +0 -1
  230. package/tsconfig.json +0 -29
@@ -0,0 +1,2183 @@
1
+ import * as S from "@distilled.cloud/core/schema";
2
+ import * as Redacted from "effect/Redacted";
3
+ import * as API from "@distilled.cloud/core/api";
4
+ import { type VercelOpError, type VercelOpContext } from "../protocol.ts";
5
+ export type { VercelOpError, VercelOpContext };
6
+ declare const BadRequest_base: S.Class<BadRequest, S.TaggedStruct<"BadRequest", {
7
+ readonly code: any;
8
+ readonly message: any;
9
+ }>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
10
+ "@distilled.cloud/error/categories": {
11
+ BadRequestError: true;
12
+ };
13
+ });
14
+ export declare class BadRequest extends /*@__PURE__*/ BadRequest_base {
15
+ }
16
+ declare const Conflict_base: S.Class<Conflict, S.TaggedStruct<"Conflict", {
17
+ readonly code: any;
18
+ readonly message: any;
19
+ }>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
20
+ "@distilled.cloud/error/categories": {
21
+ ConflictError: true;
22
+ };
23
+ });
24
+ export declare class Conflict extends /*@__PURE__*/ Conflict_base {
25
+ }
26
+ declare const Forbidden_base: S.Class<Forbidden, S.TaggedStruct<"Forbidden", {
27
+ readonly code: any;
28
+ readonly message: any;
29
+ }>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
30
+ "@distilled.cloud/error/categories": {
31
+ AuthError: true;
32
+ };
33
+ });
34
+ export declare class Forbidden extends /*@__PURE__*/ Forbidden_base {
35
+ }
36
+ declare const NotFound_base: S.Class<NotFound, S.TaggedStruct<"NotFound", {
37
+ readonly code: any;
38
+ readonly message: any;
39
+ }>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
40
+ "@distilled.cloud/error/categories": {
41
+ BadRequestError: true;
42
+ };
43
+ });
44
+ export declare class NotFound extends /*@__PURE__*/ NotFound_base {
45
+ }
46
+ declare const PaymentRequired_base: S.Class<PaymentRequired, S.TaggedStruct<"PaymentRequired", {
47
+ readonly code: any;
48
+ readonly message: any;
49
+ }>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
50
+ "@distilled.cloud/error/categories": {
51
+ QuotaError: true;
52
+ };
53
+ });
54
+ export declare class PaymentRequired extends /*@__PURE__*/ PaymentRequired_base {
55
+ }
56
+ declare const UnprocessableEntity_base: S.Class<UnprocessableEntity, S.TaggedStruct<"UnprocessableEntity", {
57
+ readonly code: any;
58
+ readonly message: any;
59
+ }>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
60
+ "@distilled.cloud/error/categories": {
61
+ BadRequestError: true;
62
+ };
63
+ });
64
+ export declare class UnprocessableEntity extends /*@__PURE__*/ UnprocessableEntity_base {
65
+ }
66
+ /** The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. */
67
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase0Mode = "allow-all" | "deny-all" | "custom" | "default-allow" | "default-deny";
68
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0Mode: any;
69
+ /** List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). */
70
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase0AllowedDomainsList = Array<string>;
71
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0AllowedDomainsList: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0AllowedDomainsList>;
72
+ /** List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. */
73
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase0AllowedCIDRsList = Array<string>;
74
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0AllowedCIDRsList: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0AllowedCIDRsList>;
75
+ /** List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. */
76
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase0DeniedCIDRsList = Array<string>;
77
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0DeniedCIDRsList: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0DeniedCIDRsList>;
78
+ /** HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. */
79
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemHeadersMap = {
80
+ [key: string]: string | undefined;
81
+ };
82
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemHeadersMap: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemHeadersMap>;
83
+ /** Match on the request path. Comparison is case-sensitive. */
84
+ export interface CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath {
85
+ /** Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. */
86
+ exact?: string;
87
+ /** Match values that start with the given prefix. */
88
+ startsWith?: string;
89
+ }
90
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
91
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
92
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchMethodList = Array<string>;
93
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchMethodList: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchMethodList>;
94
+ /** Matcher for the entry key (header name or query key). */
95
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
96
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
97
+ /** Matcher for the entry value. */
98
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
99
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
100
+ export interface CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem {
101
+ /** Matcher for the entry key (header name or query key). */
102
+ key?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
103
+ /** Matcher for the entry value. */
104
+ value?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
105
+ }
106
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
107
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
108
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
109
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringList: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringList>;
110
+ /** Matcher for the entry key (header name or query key). */
111
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
112
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
113
+ /** Matcher for the entry value. */
114
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
115
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
116
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
117
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
118
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
119
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
120
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersList: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersList>;
121
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
122
+ export interface CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatch {
123
+ /** Match on the request path. Comparison is case-sensitive. */
124
+ path?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
125
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
126
+ method?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchMethodList;
127
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
128
+ queryString?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringList;
129
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
130
+ headers?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersList;
131
+ }
132
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatch: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatch>;
133
+ export interface CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItem {
134
+ /** The domain (or pattern) of requests to add headers for. Supports wildcards like *.example.com. */
135
+ domain: string;
136
+ /** HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. */
137
+ headers: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemHeadersMap;
138
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
139
+ match?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatch;
140
+ }
141
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItem>;
142
+ /** HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. */
143
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItem>;
144
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesList: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesList>;
145
+ /** Network access policy for the sandbox.\n Controls which external hosts the sandbox can communicate with.\n Use \"allow-all\" mode to allow all traffic, \"deny-all\" to block all traffic or \"custom\" to provide specific rules. */
146
+ export interface CreateSandboxesByNameForkRequestNetworkPolicyCase0 {
147
+ /** The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. */
148
+ mode: CreateSandboxesByNameForkRequestNetworkPolicyCase0Mode | (string & {});
149
+ /** List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). */
150
+ allowedDomains?: CreateSandboxesByNameForkRequestNetworkPolicyCase0AllowedDomainsList;
151
+ /** List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. */
152
+ allowedCIDRs?: CreateSandboxesByNameForkRequestNetworkPolicyCase0AllowedCIDRsList;
153
+ /** List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. */
154
+ deniedCIDRs?: CreateSandboxesByNameForkRequestNetworkPolicyCase0DeniedCIDRsList;
155
+ /** HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. */
156
+ injectionRules?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesList;
157
+ }
158
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase0: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0>;
159
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase0List = Array<string>;
160
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase0List: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase0List>;
161
+ /** Match on the request path. Comparison is case-sensitive. */
162
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchPath = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
163
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchPath: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
164
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
165
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchMethodList = Array<string>;
166
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchMethodList: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchMethodList>;
167
+ /** Matcher for the entry key (header name or query key). */
168
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
169
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
170
+ /** Matcher for the entry value. */
171
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
172
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
173
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
174
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
175
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
176
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
177
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringList: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringList>;
178
+ /** Matcher for the entry key (header name or query key). */
179
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
180
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
181
+ /** Matcher for the entry value. */
182
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
183
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
184
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
185
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
186
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
187
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
188
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersList: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersList>;
189
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
190
+ export interface CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatch {
191
+ /** Match on the request path. Comparison is case-sensitive. */
192
+ path?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
193
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
194
+ method?: CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchMethodList;
195
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
196
+ queryString?: CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringList;
197
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
198
+ headers?: CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersList;
199
+ }
200
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatch: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatch>;
201
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemTransformItemHeadersMap = {
202
+ [key: string]: string | undefined;
203
+ };
204
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemTransformItemHeadersMap: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemTransformItemHeadersMap>;
205
+ export interface CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemTransformItem {
206
+ headers?: CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemTransformItemHeadersMap;
207
+ }
208
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemTransformItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemTransformItem>;
209
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemTransformList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemTransformItem>;
210
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemTransformList: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemTransformList>;
211
+ export interface CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItem {
212
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
213
+ match?: CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemMatch;
214
+ transform?: CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItemTransformList;
215
+ /** HTTP/1.1 proxy URL to forward traffic to. Must not include query string or fragment. */
216
+ forwardURL?: string;
217
+ }
218
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItem>;
219
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueItem>;
220
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueList: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueList>;
221
+ /** A rule applied to requests matching a domain in the network policy. Only one of `transform` or `forwardURL` can be specified per rule. */
222
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1Map = {
223
+ [key: string]: CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1ValueList | undefined;
224
+ };
225
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1Map: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1Map>;
226
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1Allow = CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase0List | CreateSandboxesByNameForkRequestNetworkPolicyCase1AllowCase1Map;
227
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1Allow: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase1Allow>;
228
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1SubnetsAllowList = Array<string>;
229
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1SubnetsAllowList: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase1SubnetsAllowList>;
230
+ export type CreateSandboxesByNameForkRequestNetworkPolicyCase1SubnetsDenyList = Array<string>;
231
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1SubnetsDenyList: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase1SubnetsDenyList>;
232
+ export interface CreateSandboxesByNameForkRequestNetworkPolicyCase1Subnets {
233
+ allow?: CreateSandboxesByNameForkRequestNetworkPolicyCase1SubnetsAllowList;
234
+ deny?: CreateSandboxesByNameForkRequestNetworkPolicyCase1SubnetsDenyList;
235
+ }
236
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1Subnets: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase1Subnets>;
237
+ export interface CreateSandboxesByNameForkRequestNetworkPolicyCase1 {
238
+ allow?: CreateSandboxesByNameForkRequestNetworkPolicyCase1Allow;
239
+ subnets?: CreateSandboxesByNameForkRequestNetworkPolicyCase1Subnets;
240
+ }
241
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicyCase1: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase1>;
242
+ export type CreateSandboxesByNameForkRequestNetworkPolicy = CreateSandboxesByNameForkRequestNetworkPolicyCase0 | CreateSandboxesByNameForkRequestNetworkPolicyCase1;
243
+ export declare const CreateSandboxesByNameForkRequestNetworkPolicy: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicy>;
244
+ /** Resources to define the VM */
245
+ export interface CreateSandboxesByNameForkRequestResources {
246
+ /** The number of virtual CPUs to allocate to the sandbox. Must be 1, or an even number. */
247
+ vcpus?: number;
248
+ /** The amount of memory in megabytes to allocate to the sandbox. Must equal vcpus * 2048. */
249
+ memory?: number;
250
+ }
251
+ export declare const CreateSandboxesByNameForkRequestResources: S.Schema<CreateSandboxesByNameForkRequestResources>;
252
+ /** List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed. */
253
+ export type CreateSandboxesByNameForkRequestPortsList = Array<number>;
254
+ export declare const CreateSandboxesByNameForkRequestPortsList: S.Schema<CreateSandboxesByNameForkRequestPortsList>;
255
+ /** Default environment variables for the sandbox. These are inherited by all commands unless overridden. */
256
+ export type CreateSandboxesByNameForkRequestEnvMap = {
257
+ [key: string]: string | undefined;
258
+ };
259
+ export declare const CreateSandboxesByNameForkRequestEnvMap: S.Schema<CreateSandboxesByNameForkRequestEnvMap>;
260
+ /** Mount the drive read-only or read-write. */
261
+ export type CreateSandboxesByNameForkRequestMountsValueMode = "read-only" | "read-write";
262
+ export declare const CreateSandboxesByNameForkRequestMountsValueMode: any;
263
+ export interface CreateSandboxesByNameForkRequestMountsValue {
264
+ /** Name of the drive to mount. The drive must already exist. */
265
+ drive: string;
266
+ /** Mount the drive read-only or read-write. */
267
+ mode?: CreateSandboxesByNameForkRequestMountsValueMode | (string & {});
268
+ }
269
+ export declare const CreateSandboxesByNameForkRequestMountsValue: S.Schema<CreateSandboxesByNameForkRequestMountsValue>;
270
+ /** List of drives to mount to the sandbox at the provided path. */
271
+ export type CreateSandboxesByNameForkRequestMountsMap = {
272
+ [key: string]: CreateSandboxesByNameForkRequestMountsValue | undefined;
273
+ };
274
+ export declare const CreateSandboxesByNameForkRequestMountsMap: S.Schema<CreateSandboxesByNameForkRequestMountsMap>;
275
+ /** Default snapshot expiration time in milliseconds. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox. */
276
+ export type CreateSandboxesByNameForkRequestSnapshotExpiration = unknown | number;
277
+ export declare const CreateSandboxesByNameForkRequestSnapshotExpiration: S.Schema<CreateSandboxesByNameForkRequestSnapshotExpiration>;
278
+ /** Expiration time in milliseconds for kept snapshots. Falls back to snapshotExpiration. */
279
+ export type CreateSandboxesByNameForkRequestKeepLastSnapshotsExpiration = unknown | number;
280
+ export declare const CreateSandboxesByNameForkRequestKeepLastSnapshotsExpiration: S.Schema<CreateSandboxesByNameForkRequestKeepLastSnapshotsExpiration>;
281
+ /** Protect the N most recent snapshots with different expiration/deletion behavior. */
282
+ export interface CreateSandboxesByNameForkRequestKeepLastSnapshots {
283
+ /** Number of most recent snapshots to keep. */
284
+ count: number;
285
+ /** Expiration time in milliseconds for kept snapshots. Falls back to snapshotExpiration. */
286
+ expiration?: CreateSandboxesByNameForkRequestKeepLastSnapshotsExpiration;
287
+ /** Whether to immediately delete evicted snapshots. Defaults to true. */
288
+ deleteEvicted?: boolean;
289
+ }
290
+ export declare const CreateSandboxesByNameForkRequestKeepLastSnapshots: S.Schema<CreateSandboxesByNameForkRequestKeepLastSnapshots>;
291
+ /** Key-value tags to associate with the sandbox. Maximum 5 tags. */
292
+ export type CreateSandboxesByNameForkRequestTagsMap = {
293
+ [key: string]: string | undefined;
294
+ };
295
+ export declare const CreateSandboxesByNameForkRequestTagsMap: S.Schema<CreateSandboxesByNameForkRequestTagsMap>;
296
+ export interface CreateSandboxesByNameForkRequest {
297
+ /** Name of the source sandbox to fork. */
298
+ name: string;
299
+ /** The ID of the project the source sandbox belongs to. Required unless authenticating with an OIDC token. */
300
+ projectId?: string;
301
+ /** The Team identifier to perform the request on behalf of. */
302
+ teamId?: string;
303
+ /** The Team slug to perform the request on behalf of. */
304
+ slug?: string;
305
+ networkPolicy?: CreateSandboxesByNameForkRequestNetworkPolicy;
306
+ /** Resources to define the VM */
307
+ resources?: CreateSandboxesByNameForkRequestResources;
308
+ /** List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed. */
309
+ ports?: CreateSandboxesByNameForkRequestPortsList;
310
+ /** Image to use for the sandbox. */
311
+ image?: string;
312
+ /** Maximum duration in milliseconds that the sandbox can run before being automatically stopped. */
313
+ timeout?: number;
314
+ /** Default environment variables for the sandbox. These are inherited by all commands unless overridden. */
315
+ env?: CreateSandboxesByNameForkRequestEnvMap;
316
+ /** List of drives to mount to the sandbox at the provided path. */
317
+ mounts?: CreateSandboxesByNameForkRequestMountsMap;
318
+ /** Whether the sandbox persists its state across restarts via automatic snapshots. Defaults to the source sandbox setting. */
319
+ persistent?: boolean;
320
+ /** Default snapshot expiration time in milliseconds. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox. */
321
+ snapshotExpiration?: CreateSandboxesByNameForkRequestSnapshotExpiration;
322
+ /** Protect the N most recent snapshots with different expiration/deletion behavior. */
323
+ keepLastSnapshots?: CreateSandboxesByNameForkRequestKeepLastSnapshots;
324
+ /** Key-value tags to associate with the sandbox. Maximum 5 tags. */
325
+ tags?: CreateSandboxesByNameForkRequestTagsMap;
326
+ }
327
+ export declare const CreateSandboxesByNameForkRequest: S.Schema<CreateSandboxesByNameForkRequest>;
328
+ /** The status of the current sandbox. */
329
+ export type NamedSandboxStatus = "running" | "stopped" | "stopping";
330
+ export declare const NamedSandboxStatus: any;
331
+ /** Keep-last snapshot configuration. */
332
+ export interface NamedSandboxKeepLastSnapshots {
333
+ /** Number of most recent snapshots to keep. */
334
+ count: number;
335
+ /** Expiration time in milliseconds for kept snapshots. */
336
+ expiration?: number;
337
+ /** Whether to immediately delete evicted snapshots. */
338
+ deleteEvicted: boolean;
339
+ }
340
+ export declare const NamedSandboxKeepLastSnapshots: S.Schema<NamedSandboxKeepLastSnapshots>;
341
+ export type NamedSandboxNetworkPolicyMode = "allow-all" | "custom" | "default-allow" | "default-deny" | "deny-all";
342
+ export declare const NamedSandboxNetworkPolicyMode: any;
343
+ export type NamedSandboxNetworkPolicyAllowedDomainsList = Array<string>;
344
+ export declare const NamedSandboxNetworkPolicyAllowedDomainsList: S.Schema<NamedSandboxNetworkPolicyAllowedDomainsList>;
345
+ export type NamedSandboxNetworkPolicyAllowedCIDRsList = Array<string>;
346
+ export declare const NamedSandboxNetworkPolicyAllowedCIDRsList: S.Schema<NamedSandboxNetworkPolicyAllowedCIDRsList>;
347
+ export type NamedSandboxNetworkPolicyDeniedCIDRsList = Array<string>;
348
+ export declare const NamedSandboxNetworkPolicyDeniedCIDRsList: S.Schema<NamedSandboxNetworkPolicyDeniedCIDRsList>;
349
+ /** Network policy configuration. */
350
+ export interface NamedSandboxNetworkPolicy {
351
+ mode: NamedSandboxNetworkPolicyMode;
352
+ allowedDomains?: NamedSandboxNetworkPolicyAllowedDomainsList;
353
+ allowedCIDRs?: NamedSandboxNetworkPolicyAllowedCIDRsList;
354
+ deniedCIDRs?: NamedSandboxNetworkPolicyDeniedCIDRsList;
355
+ }
356
+ export declare const NamedSandboxNetworkPolicy: S.Schema<NamedSandboxNetworkPolicy>;
357
+ /** Key-value tags attached to the named sandbox. */
358
+ export type NamedSandboxTagsMap = {
359
+ [key: string]: string | undefined;
360
+ };
361
+ export declare const NamedSandboxTagsMap: S.Schema<NamedSandboxTagsMap>;
362
+ export type NamedSandboxMountsValueMode = "read-only" | "read-write";
363
+ export declare const NamedSandboxMountsValueMode: any;
364
+ /** Key-value pairs of mount path and drive. */
365
+ export interface NamedSandboxMountsValue {
366
+ drive: string;
367
+ mode?: NamedSandboxMountsValueMode;
368
+ }
369
+ export declare const NamedSandboxMountsValue: S.Schema<NamedSandboxMountsValue>;
370
+ /** Key-value pairs of mount path and drive. */
371
+ export type NamedSandboxMountsMap = {
372
+ [key: string]: NamedSandboxMountsValue | undefined;
373
+ };
374
+ export declare const NamedSandboxMountsMap: S.Schema<NamedSandboxMountsMap>;
375
+ /** This object contains information related to a Vercel NamedSandbox. */
376
+ export interface NamedSandbox {
377
+ /** The unique identifier of the sandbox. */
378
+ name: string;
379
+ /** Current snapshot ID that the named sandbox is pointing to. */
380
+ currentSnapshotId?: string;
381
+ /** Current session ID the sandbox is pointing to. */
382
+ currentSessionId: string;
383
+ /** The status of the current sandbox. */
384
+ status: NamedSandboxStatus;
385
+ /** The time when the sandbox status was last updated, in milliseconds since the epoch. */
386
+ statusUpdatedAt: number;
387
+ /** Whether the sandbox persists its state across restarts via automatic snapshots. */
388
+ persistent: boolean;
389
+ /** The region the sandbox is configured to run in: the region set on the sandbox, otherwise the project-level default, then the platform default. Where a running session actually landed is reported by `session.region`. */
390
+ region?: string;
391
+ /** Number of virtual CPUs allocated. */
392
+ vcpus?: number;
393
+ /** Memory allocated in MB. */
394
+ memory?: number;
395
+ /** Runtime identifier. */
396
+ runtime?: string;
397
+ /** Digest-pinned reference of the container image the sandbox was created from, when it was created from an image ("{repository}@{manifestDigest}"). */
398
+ image?: string;
399
+ /** Timeout in milliseconds. */
400
+ timeout?: number;
401
+ /** Default snapshot expiration time in milliseconds. 0 means no expiration. */
402
+ snapshotExpiration?: number;
403
+ /** Keep-last snapshot configuration. */
404
+ keepLastSnapshots?: NamedSandboxKeepLastSnapshots;
405
+ /** Network policy configuration. */
406
+ networkPolicy?: NamedSandboxNetworkPolicy;
407
+ /** Cumulative egress bytes across all sandbox runs. */
408
+ totalEgressBytes?: number;
409
+ /** Cumulative ingress bytes across all sandbox runs. */
410
+ totalIngressBytes?: number;
411
+ /** Cumulative active CPU duration in milliseconds across all sandbox runs. */
412
+ totalActiveCpuDurationMs?: number;
413
+ /** Cumulative wall-clock duration in milliseconds across all sandbox runs. */
414
+ totalDurationMs?: number;
415
+ /** The working directory of the sandbox. */
416
+ cwd?: string;
417
+ /** Key-value tags attached to the named sandbox. */
418
+ tags?: NamedSandboxTagsMap;
419
+ /** Key-value pairs of mount path and drive. */
420
+ mounts?: NamedSandboxMountsMap;
421
+ /** The time when the named sandbox was created, in milliseconds since the epoch. */
422
+ createdAt: number;
423
+ /** The time when the named sandbox was last updated, in milliseconds since the epoch. */
424
+ updatedAt: number;
425
+ /** The time at which the currently running sandbox will time out, in milliseconds since the epoch. Only present while a session is running. */
426
+ expiresAt?: number;
427
+ }
428
+ export declare const NamedSandbox: S.Schema<NamedSandbox>;
429
+ /** The status of the sandbox. */
430
+ export type SessionStatus = "aborted" | "failed" | "pending" | "running" | "snapshotting" | "stopped" | "stopping";
431
+ export declare const SessionStatus: any;
432
+ /** The network policy mode. - 'allow-all': All traffic is allowed. - 'deny-all': All traffic is blocked. - 'custom': Traffic is controlled by explicit allow/deny rules. */
433
+ export type SandboxNetworkPolicyMode = "allow-all" | "custom" | "deny-all";
434
+ export declare const SandboxNetworkPolicyMode: any;
435
+ /** List of domain names the sandbox is allowed to connect to. Supports wildcard patterns (e.g., "*.vercel.com" matches all subdomains). */
436
+ export type SandboxNetworkPolicyAllowedDomainsList = Array<string>;
437
+ export declare const SandboxNetworkPolicyAllowedDomainsList: S.Schema<SandboxNetworkPolicyAllowedDomainsList>;
438
+ /** List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. */
439
+ export type SandboxNetworkPolicyAllowedCIDRsList = Array<string>;
440
+ export declare const SandboxNetworkPolicyAllowedCIDRsList: S.Schema<SandboxNetworkPolicyAllowedCIDRsList>;
441
+ /** List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. */
442
+ export type SandboxNetworkPolicyDeniedCIDRsList = Array<string>;
443
+ export declare const SandboxNetworkPolicyDeniedCIDRsList: S.Schema<SandboxNetworkPolicyDeniedCIDRsList>;
444
+ /** The names of HTTP headers that have value that will be injected for requests to this domain. */
445
+ export type SandboxInjectionRuleHeaderNamesList = Array<string>;
446
+ export declare const SandboxInjectionRuleHeaderNamesList: S.Schema<SandboxInjectionRuleHeaderNamesList>;
447
+ /** HTTP header injection rules for outgoing requests matching specific domains. */
448
+ export interface SandboxInjectionRule {
449
+ /** The domain (or pattern) that this injection rule applies to. Supports wildcards like *.vercel.com. */
450
+ domain: string;
451
+ /** The names of HTTP headers that have value that will be injected for requests to this domain. */
452
+ headerNames?: SandboxInjectionRuleHeaderNamesList;
453
+ }
454
+ export declare const SandboxInjectionRule: S.Schema<SandboxInjectionRule>;
455
+ /** HTTP header injection rules for outgoing requests matching specific domains. */
456
+ export type SandboxNetworkPolicyInjectionRulesList = Array<SandboxInjectionRule>;
457
+ export declare const SandboxNetworkPolicyInjectionRulesList: S.Schema<SandboxNetworkPolicyInjectionRulesList>;
458
+ /** The network policy applied to this sandbox, if any. */
459
+ export interface SandboxNetworkPolicy {
460
+ /** The network policy mode. - 'allow-all': All traffic is allowed. - 'deny-all': All traffic is blocked. - 'custom': Traffic is controlled by explicit allow/deny rules. */
461
+ mode: SandboxNetworkPolicyMode;
462
+ /** List of domain names the sandbox is allowed to connect to. Supports wildcard patterns (e.g., "*.vercel.com" matches all subdomains). */
463
+ allowedDomains?: SandboxNetworkPolicyAllowedDomainsList;
464
+ /** List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. */
465
+ allowedCIDRs?: SandboxNetworkPolicyAllowedCIDRsList;
466
+ /** List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. */
467
+ deniedCIDRs?: SandboxNetworkPolicyDeniedCIDRsList;
468
+ /** HTTP header injection rules for outgoing requests matching specific domains. */
469
+ injectionRules?: SandboxNetworkPolicyInjectionRulesList;
470
+ }
471
+ export declare const SandboxNetworkPolicy: S.Schema<SandboxNetworkPolicy>;
472
+ /** The quantity of data transfered to and from the sandbox, in bytes. This value is only available once the sandbox is stopped, and only if it stopped successfully. */
473
+ export interface SessionNetworkTransfer {
474
+ ingress: number;
475
+ egress: number;
476
+ }
477
+ export declare const SessionNetworkTransfer: S.Schema<SessionNetworkTransfer>;
478
+ /** This object contains information related to a Vercel Sandbox Session. v2 endpoints return "session" instead of "sandbox" as the response wrapper key. */
479
+ export interface Session {
480
+ /** The name of the source sandbox. */
481
+ sourceSandboxName: string;
482
+ /** The unique identifier of the project associated with this session. */
483
+ projectId: string;
484
+ /** The unique identifier of the sandbox. */
485
+ id: string;
486
+ /** Memory allocated to this sandbox in MB. */
487
+ memory: number;
488
+ /** Number of vCPUs allocated to this sandbox. */
489
+ vcpus: number;
490
+ /** The region where the sandbox is hosted. */
491
+ region: string;
492
+ /** The runtime of the sandbox. */
493
+ runtime: string;
494
+ /** The maximum amount of time the sandbox will run for in milliseconds. */
495
+ timeout: number;
496
+ /** The status of the sandbox. */
497
+ status: SessionStatus;
498
+ /** The time when the sandbox was requested, in milliseconds since the epoch. */
499
+ requestedAt: number;
500
+ /** The time when the sandbox was started, in milliseconds since the epoch. */
501
+ startedAt?: number;
502
+ /** The working directory of the sandbox. */
503
+ cwd: string;
504
+ /** The time when the sandbox was requested to stop, in milliseconds since the epoch. */
505
+ requestedStopAt?: number;
506
+ /** The time when the sandbox was stopped, in milliseconds since the epoch. */
507
+ stoppedAt?: number;
508
+ /** The time when the sandbox was aborted, in milliseconds since the epoch. */
509
+ abortedAt?: number;
510
+ /** The duration of the sandbox in milliseconds. */
511
+ duration?: number;
512
+ /** The unique identifier of the snapshot associated with this sandbox, if any. */
513
+ sourceSnapshotId?: string;
514
+ /** The time when a snapshot was requested, in milliseconds since the epoch. */
515
+ snapshottedAt?: number;
516
+ /** The time when the sandbox was created, in milliseconds since the epoch. */
517
+ createdAt: number;
518
+ /** The last time the sandbox was updated, in milliseconds since the epoch. */
519
+ updatedAt: number;
520
+ networkPolicy?: SandboxNetworkPolicy;
521
+ /** The amount of CPU time the sandbox consumed, if available, in milliseconds. This value is only available once the sandbox is stopped, and only if it stopped successfully. */
522
+ activeCpuDurationMs?: number;
523
+ /** The quantity of data transfered to and from the sandbox, in bytes. This value is only available once the sandbox is stopped, and only if it stopped successfully. */
524
+ networkTransfer?: SessionNetworkTransfer;
525
+ }
526
+ export declare const Session: S.Schema<Session>;
527
+ /** This object represents a public route in a Vercel Sandbox. */
528
+ export interface SandboxPublicRoute {
529
+ /** A public URL to access the corresponding port in the Sandbox. */
530
+ url: string;
531
+ /** The user port number that the route is mapped to. */
532
+ port: number;
533
+ /** The subdomain assigned to this route. */
534
+ subdomain: string;
535
+ /** Whether the route is reserved by the system (e.g. for internal use). */
536
+ system?: boolean;
537
+ }
538
+ export declare const SandboxPublicRoute: S.Schema<SandboxPublicRoute>;
539
+ export type CreateSandboxesByNameForkResponseRoutesList = Array<SandboxPublicRoute>;
540
+ export declare const CreateSandboxesByNameForkResponseRoutesList: S.Schema<CreateSandboxesByNameForkResponseRoutesList>;
541
+ export interface CreateSandboxesByNameForkResponse {
542
+ sandbox: NamedSandbox;
543
+ session: Session;
544
+ routes: CreateSandboxesByNameForkResponseRoutesList;
545
+ }
546
+ export declare const CreateSandboxesByNameForkResponse: S.Schema<CreateSandboxesByNameForkResponse>;
547
+ /** The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. */
548
+ export type CreateSandboxesV2RequestNetworkPolicyCase0Mode = "allow-all" | "deny-all" | "custom" | "default-allow" | "default-deny";
549
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0Mode: any;
550
+ /** List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). */
551
+ export type CreateSandboxesV2RequestNetworkPolicyCase0AllowedDomainsList = Array<string>;
552
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0AllowedDomainsList: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase0AllowedDomainsList>;
553
+ /** List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. */
554
+ export type CreateSandboxesV2RequestNetworkPolicyCase0AllowedCIDRsList = Array<string>;
555
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0AllowedCIDRsList: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase0AllowedCIDRsList>;
556
+ /** List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. */
557
+ export type CreateSandboxesV2RequestNetworkPolicyCase0DeniedCIDRsList = Array<string>;
558
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0DeniedCIDRsList: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase0DeniedCIDRsList>;
559
+ /** HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. */
560
+ export type CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemHeadersMap = {
561
+ [key: string]: string | undefined;
562
+ };
563
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemHeadersMap: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemHeadersMap>;
564
+ /** Match on the request path. Comparison is case-sensitive. */
565
+ export type CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchPath = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
566
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchPath: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
567
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
568
+ export type CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchMethodList = Array<string>;
569
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchMethodList: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchMethodList>;
570
+ /** Matcher for the entry key (header name or query key). */
571
+ export type CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
572
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
573
+ /** Matcher for the entry value. */
574
+ export type CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
575
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
576
+ export type CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
577
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
578
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
579
+ export type CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
580
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringList: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringList>;
581
+ /** Matcher for the entry key (header name or query key). */
582
+ export type CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
583
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
584
+ /** Matcher for the entry value. */
585
+ export type CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
586
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
587
+ export type CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
588
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
589
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
590
+ export type CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
591
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersList: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersList>;
592
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
593
+ export interface CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatch {
594
+ /** Match on the request path. Comparison is case-sensitive. */
595
+ path?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
596
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
597
+ method?: CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchMethodList;
598
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
599
+ queryString?: CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringList;
600
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
601
+ headers?: CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersList;
602
+ }
603
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatch: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatch>;
604
+ export interface CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItem {
605
+ /** The domain (or pattern) of requests to add headers for. Supports wildcards like *.example.com. */
606
+ domain: string;
607
+ /** HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. */
608
+ headers: CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemHeadersMap;
609
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
610
+ match?: CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItemMatch;
611
+ }
612
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItem: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItem>;
613
+ /** HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. */
614
+ export type CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesList = Array<CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesItem>;
615
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesList: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesList>;
616
+ /** Network access policy for the sandbox.\n Controls which external hosts the sandbox can communicate with.\n Use \"allow-all\" mode to allow all traffic, \"deny-all\" to block all traffic or \"custom\" to provide specific rules. */
617
+ export interface CreateSandboxesV2RequestNetworkPolicyCase0 {
618
+ /** The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. */
619
+ mode: CreateSandboxesV2RequestNetworkPolicyCase0Mode | (string & {});
620
+ /** List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). */
621
+ allowedDomains?: CreateSandboxesV2RequestNetworkPolicyCase0AllowedDomainsList;
622
+ /** List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. */
623
+ allowedCIDRs?: CreateSandboxesV2RequestNetworkPolicyCase0AllowedCIDRsList;
624
+ /** List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. */
625
+ deniedCIDRs?: CreateSandboxesV2RequestNetworkPolicyCase0DeniedCIDRsList;
626
+ /** HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. */
627
+ injectionRules?: CreateSandboxesV2RequestNetworkPolicyCase0InjectionRulesList;
628
+ }
629
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase0: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase0>;
630
+ export type CreateSandboxesV2RequestNetworkPolicyCase1AllowCase0List = Array<string>;
631
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase0List: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase1AllowCase0List>;
632
+ /** Match on the request path. Comparison is case-sensitive. */
633
+ export type CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchPath = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
634
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchPath: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
635
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
636
+ export type CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchMethodList = Array<string>;
637
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchMethodList: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchMethodList>;
638
+ /** Matcher for the entry key (header name or query key). */
639
+ export type CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
640
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
641
+ /** Matcher for the entry value. */
642
+ export type CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
643
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
644
+ export type CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
645
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
646
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
647
+ export type CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
648
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringList: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringList>;
649
+ /** Matcher for the entry key (header name or query key). */
650
+ export type CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
651
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
652
+ /** Matcher for the entry value. */
653
+ export type CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
654
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
655
+ export type CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
656
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
657
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
658
+ export type CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
659
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersList: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersList>;
660
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
661
+ export interface CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatch {
662
+ /** Match on the request path. Comparison is case-sensitive. */
663
+ path?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
664
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
665
+ method?: CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchMethodList;
666
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
667
+ queryString?: CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringList;
668
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
669
+ headers?: CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersList;
670
+ }
671
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatch: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatch>;
672
+ export type CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemTransformItemHeadersMap = {
673
+ [key: string]: string | undefined;
674
+ };
675
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemTransformItemHeadersMap: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemTransformItemHeadersMap>;
676
+ export interface CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemTransformItem {
677
+ headers?: CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemTransformItemHeadersMap;
678
+ }
679
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemTransformItem: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemTransformItem>;
680
+ export type CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemTransformList = Array<CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemTransformItem>;
681
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemTransformList: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemTransformList>;
682
+ export interface CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItem {
683
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
684
+ match?: CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemMatch;
685
+ transform?: CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItemTransformList;
686
+ /** HTTP/1.1 proxy URL to forward traffic to. Must not include query string or fragment. */
687
+ forwardURL?: string;
688
+ }
689
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItem: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItem>;
690
+ export type CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueList = Array<CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueItem>;
691
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueList: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueList>;
692
+ /** A rule applied to requests matching a domain in the network policy. Only one of `transform` or `forwardURL` can be specified per rule. */
693
+ export type CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1Map = {
694
+ [key: string]: CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1ValueList | undefined;
695
+ };
696
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1Map: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1Map>;
697
+ export type CreateSandboxesV2RequestNetworkPolicyCase1Allow = CreateSandboxesV2RequestNetworkPolicyCase1AllowCase0List | CreateSandboxesV2RequestNetworkPolicyCase1AllowCase1Map;
698
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1Allow: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase1Allow>;
699
+ export type CreateSandboxesV2RequestNetworkPolicyCase1SubnetsAllowList = Array<string>;
700
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1SubnetsAllowList: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase1SubnetsAllowList>;
701
+ export type CreateSandboxesV2RequestNetworkPolicyCase1SubnetsDenyList = Array<string>;
702
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1SubnetsDenyList: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase1SubnetsDenyList>;
703
+ export interface CreateSandboxesV2RequestNetworkPolicyCase1Subnets {
704
+ allow?: CreateSandboxesV2RequestNetworkPolicyCase1SubnetsAllowList;
705
+ deny?: CreateSandboxesV2RequestNetworkPolicyCase1SubnetsDenyList;
706
+ }
707
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1Subnets: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase1Subnets>;
708
+ export interface CreateSandboxesV2RequestNetworkPolicyCase1 {
709
+ allow?: CreateSandboxesV2RequestNetworkPolicyCase1Allow;
710
+ subnets?: CreateSandboxesV2RequestNetworkPolicyCase1Subnets;
711
+ }
712
+ export declare const CreateSandboxesV2RequestNetworkPolicyCase1: S.Schema<CreateSandboxesV2RequestNetworkPolicyCase1>;
713
+ export type CreateSandboxesV2RequestNetworkPolicy = CreateSandboxesV2RequestNetworkPolicyCase0 | CreateSandboxesV2RequestNetworkPolicyCase1;
714
+ export declare const CreateSandboxesV2RequestNetworkPolicy: S.Schema<CreateSandboxesV2RequestNetworkPolicy>;
715
+ /** The runtime environment for the sandbox. Determines the pre-installed language runtimes and tools available. */
716
+ export type CreateSandboxesV2RequestRuntime = "node22" | "node24" | "node26" | "python3.13";
717
+ export declare const CreateSandboxesV2RequestRuntime: any;
718
+ /** Resources to define the VM */
719
+ export type CreateSandboxesV2RequestResources = CreateSandboxesByNameForkRequestResources;
720
+ export declare const CreateSandboxesV2RequestResources: S.Schema<CreateSandboxesByNameForkRequestResources>;
721
+ /** Clone a Git repository into the sandbox. */
722
+ export interface CreateSandboxesV2RequestSourceCase0 {
723
+ /** Indicates the source is a Git repository. */
724
+ type: unknown;
725
+ /** The URL of the Git repository to clone. */
726
+ url: string;
727
+ /** Username for Git authentication. Required together with password for private repositories. */
728
+ username?: string;
729
+ /** Password or personal access token for Git authentication. Required together with username for private repositories. */
730
+ password?: string | Redacted.Redacted<string>;
731
+ /** Create a shallow clone with history truncated to the specified number of commits. Useful for faster cloning of large repositories. */
732
+ depth?: number;
733
+ /** The specific commit SHA, branch name, or tag to checkout after cloning. */
734
+ revision?: string;
735
+ }
736
+ export declare const CreateSandboxesV2RequestSourceCase0: S.Schema<CreateSandboxesV2RequestSourceCase0>;
737
+ /** Download and extract a gzipped tarball into the sandbox. */
738
+ export interface CreateSandboxesV2RequestSourceCase1 {
739
+ /** Indicates the source is a tarball. */
740
+ type: unknown;
741
+ /** URL of a gzipped tarball (.tar.gz) to download and extract. */
742
+ url: string;
743
+ }
744
+ export declare const CreateSandboxesV2RequestSourceCase1: S.Schema<CreateSandboxesV2RequestSourceCase1>;
745
+ /** Restore the sandbox filesystem from an existing snapshot. */
746
+ export interface CreateSandboxesV2RequestSourceCase2 {
747
+ /** Indicates the source is a snapshot. */
748
+ type: unknown;
749
+ /** The unique identifier of the snapshot to restore. */
750
+ snapshotId: string;
751
+ }
752
+ export declare const CreateSandboxesV2RequestSourceCase2: S.Schema<CreateSandboxesV2RequestSourceCase2>;
753
+ /** The source from which to initialize the sandbox filesystem. Can be a Git repository, a tarball URL, or an existing snapshot. */
754
+ export type CreateSandboxesV2RequestSource = CreateSandboxesV2RequestSourceCase0 | CreateSandboxesV2RequestSourceCase1 | CreateSandboxesV2RequestSourceCase2;
755
+ export declare const CreateSandboxesV2RequestSource: S.Schema<CreateSandboxesV2RequestSource>;
756
+ /** List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed. */
757
+ export type CreateSandboxesV2RequestPortsList = Array<number>;
758
+ export declare const CreateSandboxesV2RequestPortsList: S.Schema<CreateSandboxesV2RequestPortsList>;
759
+ /** Default environment variables for the sandbox. These are inherited by all commands unless overridden. */
760
+ export type CreateSandboxesV2RequestEnvMap = {
761
+ [key: string]: string | undefined;
762
+ };
763
+ export declare const CreateSandboxesV2RequestEnvMap: S.Schema<CreateSandboxesV2RequestEnvMap>;
764
+ /** Mount the drive read-only or read-write. */
765
+ export type CreateSandboxesV2RequestMountsValueMode = "read-only" | "read-write";
766
+ export declare const CreateSandboxesV2RequestMountsValueMode: any;
767
+ export interface CreateSandboxesV2RequestMountsValue {
768
+ /** Name of the drive to mount. The drive must already exist. */
769
+ drive: string;
770
+ /** Mount the drive read-only or read-write. */
771
+ mode?: CreateSandboxesV2RequestMountsValueMode | (string & {});
772
+ }
773
+ export declare const CreateSandboxesV2RequestMountsValue: S.Schema<CreateSandboxesV2RequestMountsValue>;
774
+ /** List of drives to mount to the sandbox at the provided path. */
775
+ export type CreateSandboxesV2RequestMountsMap = {
776
+ [key: string]: CreateSandboxesV2RequestMountsValue | undefined;
777
+ };
778
+ export declare const CreateSandboxesV2RequestMountsMap: S.Schema<CreateSandboxesV2RequestMountsMap>;
779
+ /** Default snapshot expiration time in milliseconds. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox. */
780
+ export type CreateSandboxesV2RequestSnapshotExpiration = unknown | number;
781
+ export declare const CreateSandboxesV2RequestSnapshotExpiration: S.Schema<CreateSandboxesV2RequestSnapshotExpiration>;
782
+ /** Expiration time in milliseconds for kept snapshots. Falls back to snapshotExpiration. */
783
+ export type CreateSandboxesV2RequestKeepLastSnapshotsExpiration = unknown | number;
784
+ export declare const CreateSandboxesV2RequestKeepLastSnapshotsExpiration: S.Schema<CreateSandboxesV2RequestKeepLastSnapshotsExpiration>;
785
+ /** Protect the N most recent snapshots with different expiration/deletion behavior. */
786
+ export interface CreateSandboxesV2RequestKeepLastSnapshots {
787
+ /** Number of most recent snapshots to keep. */
788
+ count: number;
789
+ /** Expiration time in milliseconds for kept snapshots. Falls back to snapshotExpiration. */
790
+ expiration?: CreateSandboxesV2RequestKeepLastSnapshotsExpiration;
791
+ /** Whether to immediately delete evicted snapshots. Defaults to true. */
792
+ deleteEvicted?: boolean;
793
+ }
794
+ export declare const CreateSandboxesV2RequestKeepLastSnapshots: S.Schema<CreateSandboxesV2RequestKeepLastSnapshots>;
795
+ /** Key-value tags to associate with the sandbox. Maximum 5 tags. */
796
+ export type CreateSandboxesV2RequestTagsMap = {
797
+ [key: string]: string | undefined;
798
+ };
799
+ export declare const CreateSandboxesV2RequestTagsMap: S.Schema<CreateSandboxesV2RequestTagsMap>;
800
+ export interface CreateSandboxesV2Request {
801
+ /** The Team identifier to perform the request on behalf of. */
802
+ teamId?: string;
803
+ /** The Team slug to perform the request on behalf of. */
804
+ slug?: string;
805
+ networkPolicy?: CreateSandboxesV2RequestNetworkPolicy;
806
+ /** The runtime environment for the sandbox. Determines the pre-installed language runtimes and tools available. */
807
+ runtime?: CreateSandboxesV2RequestRuntime | (string & {});
808
+ /** Resources to define the VM */
809
+ resources?: CreateSandboxesByNameForkRequestResources;
810
+ /** The source from which to initialize the sandbox filesystem. Can be a Git repository, a tarball URL, or an existing snapshot. */
811
+ source?: CreateSandboxesV2RequestSource;
812
+ /** The target project slug or ID in which the sandbox will be assigned to. */
813
+ projectId?: string;
814
+ /** List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed. */
815
+ ports?: CreateSandboxesV2RequestPortsList;
816
+ /** Image to use for the sandbox. */
817
+ image?: string;
818
+ /** Maximum duration in milliseconds that the sandbox can run before being automatically stopped. */
819
+ timeout?: number;
820
+ /** Default environment variables for the sandbox. These are inherited by all commands unless overridden. */
821
+ env?: CreateSandboxesV2RequestEnvMap;
822
+ /** List of drives to mount to the sandbox at the provided path. */
823
+ mounts?: CreateSandboxesV2RequestMountsMap;
824
+ /** Name for the sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). */
825
+ name?: string;
826
+ /** Whether the sandbox persists its state across restarts via automatic snapshots. Defaults to true. */
827
+ persistent?: boolean;
828
+ /** Default snapshot expiration time in milliseconds. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox. */
829
+ snapshotExpiration?: CreateSandboxesV2RequestSnapshotExpiration;
830
+ /** Protect the N most recent snapshots with different expiration/deletion behavior. */
831
+ keepLastSnapshots?: CreateSandboxesV2RequestKeepLastSnapshots;
832
+ /** Key-value tags to associate with the sandbox. Maximum 5 tags. */
833
+ tags?: CreateSandboxesV2RequestTagsMap;
834
+ }
835
+ export declare const CreateSandboxesV2Request: S.Schema<CreateSandboxesV2Request>;
836
+ export type CreateSandboxesV2ResponseRoutesList = Array<SandboxPublicRoute>;
837
+ export declare const CreateSandboxesV2ResponseRoutesList: S.Schema<CreateSandboxesV2ResponseRoutesList>;
838
+ export interface CreateSandboxesV2Response {
839
+ sandbox: NamedSandbox;
840
+ session: Session;
841
+ routes: CreateSandboxesV2ResponseRoutesList;
842
+ }
843
+ export declare const CreateSandboxesV2Response: S.Schema<CreateSandboxesV2Response>;
844
+ /** The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. */
845
+ export type CreateSandboxesV3RequestNetworkPolicyCase0Mode = "allow-all" | "deny-all" | "custom" | "default-allow" | "default-deny";
846
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0Mode: any;
847
+ /** List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). */
848
+ export type CreateSandboxesV3RequestNetworkPolicyCase0AllowedDomainsList = Array<string>;
849
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0AllowedDomainsList: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase0AllowedDomainsList>;
850
+ /** List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. */
851
+ export type CreateSandboxesV3RequestNetworkPolicyCase0AllowedCIDRsList = Array<string>;
852
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0AllowedCIDRsList: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase0AllowedCIDRsList>;
853
+ /** List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. */
854
+ export type CreateSandboxesV3RequestNetworkPolicyCase0DeniedCIDRsList = Array<string>;
855
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0DeniedCIDRsList: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase0DeniedCIDRsList>;
856
+ /** HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. */
857
+ export type CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemHeadersMap = {
858
+ [key: string]: string | undefined;
859
+ };
860
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemHeadersMap: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemHeadersMap>;
861
+ /** Match on the request path. Comparison is case-sensitive. */
862
+ export type CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchPath = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
863
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchPath: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
864
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
865
+ export type CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchMethodList = Array<string>;
866
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchMethodList: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchMethodList>;
867
+ /** Matcher for the entry key (header name or query key). */
868
+ export type CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
869
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
870
+ /** Matcher for the entry value. */
871
+ export type CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
872
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
873
+ export type CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
874
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
875
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
876
+ export type CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
877
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringList: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringList>;
878
+ /** Matcher for the entry key (header name or query key). */
879
+ export type CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
880
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
881
+ /** Matcher for the entry value. */
882
+ export type CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
883
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
884
+ export type CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
885
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
886
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
887
+ export type CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
888
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersList: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersList>;
889
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
890
+ export interface CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatch {
891
+ /** Match on the request path. Comparison is case-sensitive. */
892
+ path?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
893
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
894
+ method?: CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchMethodList;
895
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
896
+ queryString?: CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringList;
897
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
898
+ headers?: CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatchHeadersList;
899
+ }
900
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatch: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatch>;
901
+ export interface CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItem {
902
+ /** The domain (or pattern) of requests to add headers for. Supports wildcards like *.example.com. */
903
+ domain: string;
904
+ /** HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. */
905
+ headers: CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemHeadersMap;
906
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
907
+ match?: CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItemMatch;
908
+ }
909
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItem: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItem>;
910
+ /** HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. */
911
+ export type CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesList = Array<CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesItem>;
912
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesList: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesList>;
913
+ /** Network access policy for the sandbox.\n Controls which external hosts the sandbox can communicate with.\n Use \"allow-all\" mode to allow all traffic, \"deny-all\" to block all traffic or \"custom\" to provide specific rules. */
914
+ export interface CreateSandboxesV3RequestNetworkPolicyCase0 {
915
+ /** The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. */
916
+ mode: CreateSandboxesV3RequestNetworkPolicyCase0Mode | (string & {});
917
+ /** List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). */
918
+ allowedDomains?: CreateSandboxesV3RequestNetworkPolicyCase0AllowedDomainsList;
919
+ /** List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. */
920
+ allowedCIDRs?: CreateSandboxesV3RequestNetworkPolicyCase0AllowedCIDRsList;
921
+ /** List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. */
922
+ deniedCIDRs?: CreateSandboxesV3RequestNetworkPolicyCase0DeniedCIDRsList;
923
+ /** HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. */
924
+ injectionRules?: CreateSandboxesV3RequestNetworkPolicyCase0InjectionRulesList;
925
+ }
926
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase0: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase0>;
927
+ export type CreateSandboxesV3RequestNetworkPolicyCase1AllowCase0List = Array<string>;
928
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase0List: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase1AllowCase0List>;
929
+ /** Match on the request path. Comparison is case-sensitive. */
930
+ export type CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchPath = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
931
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchPath: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
932
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
933
+ export type CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchMethodList = Array<string>;
934
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchMethodList: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchMethodList>;
935
+ /** Matcher for the entry key (header name or query key). */
936
+ export type CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
937
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
938
+ /** Matcher for the entry value. */
939
+ export type CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
940
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
941
+ export type CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
942
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
943
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
944
+ export type CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
945
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringList: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringList>;
946
+ /** Matcher for the entry key (header name or query key). */
947
+ export type CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
948
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
949
+ /** Matcher for the entry value. */
950
+ export type CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
951
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
952
+ export type CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
953
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
954
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
955
+ export type CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
956
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersList: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersList>;
957
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
958
+ export interface CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatch {
959
+ /** Match on the request path. Comparison is case-sensitive. */
960
+ path?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
961
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
962
+ method?: CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchMethodList;
963
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
964
+ queryString?: CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringList;
965
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
966
+ headers?: CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersList;
967
+ }
968
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatch: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatch>;
969
+ export type CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemTransformItemHeadersMap = {
970
+ [key: string]: string | undefined;
971
+ };
972
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemTransformItemHeadersMap: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemTransformItemHeadersMap>;
973
+ export interface CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemTransformItem {
974
+ headers?: CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemTransformItemHeadersMap;
975
+ }
976
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemTransformItem: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemTransformItem>;
977
+ export type CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemTransformList = Array<CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemTransformItem>;
978
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemTransformList: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemTransformList>;
979
+ export interface CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItem {
980
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
981
+ match?: CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemMatch;
982
+ transform?: CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItemTransformList;
983
+ /** HTTP/1.1 proxy URL to forward traffic to. Must not include query string or fragment. */
984
+ forwardURL?: string;
985
+ }
986
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItem: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItem>;
987
+ export type CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueList = Array<CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueItem>;
988
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueList: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueList>;
989
+ /** A rule applied to requests matching a domain in the network policy. Only one of `transform` or `forwardURL` can be specified per rule. */
990
+ export type CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1Map = {
991
+ [key: string]: CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1ValueList | undefined;
992
+ };
993
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1Map: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1Map>;
994
+ export type CreateSandboxesV3RequestNetworkPolicyCase1Allow = CreateSandboxesV3RequestNetworkPolicyCase1AllowCase0List | CreateSandboxesV3RequestNetworkPolicyCase1AllowCase1Map;
995
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1Allow: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase1Allow>;
996
+ export type CreateSandboxesV3RequestNetworkPolicyCase1SubnetsAllowList = Array<string>;
997
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1SubnetsAllowList: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase1SubnetsAllowList>;
998
+ export type CreateSandboxesV3RequestNetworkPolicyCase1SubnetsDenyList = Array<string>;
999
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1SubnetsDenyList: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase1SubnetsDenyList>;
1000
+ export interface CreateSandboxesV3RequestNetworkPolicyCase1Subnets {
1001
+ allow?: CreateSandboxesV3RequestNetworkPolicyCase1SubnetsAllowList;
1002
+ deny?: CreateSandboxesV3RequestNetworkPolicyCase1SubnetsDenyList;
1003
+ }
1004
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1Subnets: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase1Subnets>;
1005
+ export interface CreateSandboxesV3RequestNetworkPolicyCase1 {
1006
+ allow?: CreateSandboxesV3RequestNetworkPolicyCase1Allow;
1007
+ subnets?: CreateSandboxesV3RequestNetworkPolicyCase1Subnets;
1008
+ }
1009
+ export declare const CreateSandboxesV3RequestNetworkPolicyCase1: S.Schema<CreateSandboxesV3RequestNetworkPolicyCase1>;
1010
+ export type CreateSandboxesV3RequestNetworkPolicy = CreateSandboxesV3RequestNetworkPolicyCase0 | CreateSandboxesV3RequestNetworkPolicyCase1;
1011
+ export declare const CreateSandboxesV3RequestNetworkPolicy: S.Schema<CreateSandboxesV3RequestNetworkPolicy>;
1012
+ /** Resources to define the VM */
1013
+ export type CreateSandboxesV3RequestResources = CreateSandboxesByNameForkRequestResources;
1014
+ export declare const CreateSandboxesV3RequestResources: S.Schema<CreateSandboxesByNameForkRequestResources>;
1015
+ /** Clone a Git repository into the sandbox. */
1016
+ export type CreateSandboxesV3RequestSourceCase0 = CreateSandboxesV2RequestSourceCase0;
1017
+ export declare const CreateSandboxesV3RequestSourceCase0: S.Schema<CreateSandboxesV2RequestSourceCase0>;
1018
+ /** Download and extract a gzipped tarball into the sandbox. */
1019
+ export type CreateSandboxesV3RequestSourceCase1 = CreateSandboxesV2RequestSourceCase1;
1020
+ export declare const CreateSandboxesV3RequestSourceCase1: S.Schema<CreateSandboxesV2RequestSourceCase1>;
1021
+ /** Restore the sandbox filesystem from an existing snapshot. */
1022
+ export type CreateSandboxesV3RequestSourceCase2 = CreateSandboxesV2RequestSourceCase2;
1023
+ export declare const CreateSandboxesV3RequestSourceCase2: S.Schema<CreateSandboxesV2RequestSourceCase2>;
1024
+ /** The source from which to initialize the sandbox filesystem. Can be a Git repository, a tarball URL, or an existing snapshot. */
1025
+ export type CreateSandboxesV3RequestSource = CreateSandboxesV2RequestSourceCase0 | CreateSandboxesV2RequestSourceCase1 | CreateSandboxesV2RequestSourceCase2;
1026
+ export declare const CreateSandboxesV3RequestSource: S.Schema<CreateSandboxesV3RequestSource>;
1027
+ /** List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed. */
1028
+ export type CreateSandboxesV3RequestPortsList = Array<number>;
1029
+ export declare const CreateSandboxesV3RequestPortsList: S.Schema<CreateSandboxesV3RequestPortsList>;
1030
+ /** Default environment variables for the sandbox. These are inherited by all commands unless overridden. */
1031
+ export type CreateSandboxesV3RequestEnvMap = {
1032
+ [key: string]: string | undefined;
1033
+ };
1034
+ export declare const CreateSandboxesV3RequestEnvMap: S.Schema<CreateSandboxesV3RequestEnvMap>;
1035
+ /** Mount the drive read-only or read-write. */
1036
+ export type CreateSandboxesV3RequestMountsValueMode = "read-only" | "read-write";
1037
+ export declare const CreateSandboxesV3RequestMountsValueMode: any;
1038
+ export interface CreateSandboxesV3RequestMountsValue {
1039
+ /** Name of the drive to mount. The drive must already exist. */
1040
+ drive: string;
1041
+ /** Mount the drive read-only or read-write. */
1042
+ mode?: CreateSandboxesV3RequestMountsValueMode | (string & {});
1043
+ }
1044
+ export declare const CreateSandboxesV3RequestMountsValue: S.Schema<CreateSandboxesV3RequestMountsValue>;
1045
+ /** List of drives to mount to the sandbox at the provided path. */
1046
+ export type CreateSandboxesV3RequestMountsMap = {
1047
+ [key: string]: CreateSandboxesV3RequestMountsValue | undefined;
1048
+ };
1049
+ export declare const CreateSandboxesV3RequestMountsMap: S.Schema<CreateSandboxesV3RequestMountsMap>;
1050
+ /** Default snapshot expiration time in milliseconds. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox. */
1051
+ export type CreateSandboxesV3RequestSnapshotExpiration = unknown | number;
1052
+ export declare const CreateSandboxesV3RequestSnapshotExpiration: S.Schema<CreateSandboxesV3RequestSnapshotExpiration>;
1053
+ /** Expiration time in milliseconds for kept snapshots. Falls back to snapshotExpiration. */
1054
+ export type CreateSandboxesV3RequestKeepLastSnapshotsExpiration = unknown | number;
1055
+ export declare const CreateSandboxesV3RequestKeepLastSnapshotsExpiration: S.Schema<CreateSandboxesV3RequestKeepLastSnapshotsExpiration>;
1056
+ /** Protect the N most recent snapshots with different expiration/deletion behavior. */
1057
+ export interface CreateSandboxesV3RequestKeepLastSnapshots {
1058
+ /** Number of most recent snapshots to keep. */
1059
+ count: number;
1060
+ /** Expiration time in milliseconds for kept snapshots. Falls back to snapshotExpiration. */
1061
+ expiration?: CreateSandboxesV3RequestKeepLastSnapshotsExpiration;
1062
+ /** Whether to immediately delete evicted snapshots. Defaults to true. */
1063
+ deleteEvicted?: boolean;
1064
+ }
1065
+ export declare const CreateSandboxesV3RequestKeepLastSnapshots: S.Schema<CreateSandboxesV3RequestKeepLastSnapshots>;
1066
+ /** Key-value tags to associate with the sandbox. Maximum 5 tags. */
1067
+ export type CreateSandboxesV3RequestTagsMap = {
1068
+ [key: string]: string | undefined;
1069
+ };
1070
+ export declare const CreateSandboxesV3RequestTagsMap: S.Schema<CreateSandboxesV3RequestTagsMap>;
1071
+ export interface CreateSandboxesV3Request {
1072
+ /** The Team identifier to perform the request on behalf of. */
1073
+ teamId?: string;
1074
+ /** The Team slug to perform the request on behalf of. */
1075
+ slug?: string;
1076
+ networkPolicy?: CreateSandboxesV3RequestNetworkPolicy;
1077
+ /** Resources to define the VM */
1078
+ resources?: CreateSandboxesByNameForkRequestResources;
1079
+ /** The source from which to initialize the sandbox filesystem. Can be a Git repository, a tarball URL, or an existing snapshot. */
1080
+ source?: CreateSandboxesV3RequestSource;
1081
+ /** The target project slug or ID in which the sandbox will be assigned to. */
1082
+ projectId?: string;
1083
+ /** List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed. */
1084
+ ports?: CreateSandboxesV3RequestPortsList;
1085
+ /** Image to use for the sandbox. */
1086
+ image?: string;
1087
+ /** Maximum duration in milliseconds that the sandbox can run before being automatically stopped. */
1088
+ timeout?: number;
1089
+ /** Default environment variables for the sandbox. These are inherited by all commands unless overridden. */
1090
+ env?: CreateSandboxesV3RequestEnvMap;
1091
+ /** List of drives to mount to the sandbox at the provided path. */
1092
+ mounts?: CreateSandboxesV3RequestMountsMap;
1093
+ /** Name for the sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). */
1094
+ name?: string;
1095
+ /** Whether the sandbox persists its state across restarts via automatic snapshots. Defaults to true. */
1096
+ persistent?: boolean;
1097
+ /** Default snapshot expiration time in milliseconds. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox. */
1098
+ snapshotExpiration?: CreateSandboxesV3RequestSnapshotExpiration;
1099
+ /** Protect the N most recent snapshots with different expiration/deletion behavior. */
1100
+ keepLastSnapshots?: CreateSandboxesV3RequestKeepLastSnapshots;
1101
+ /** Key-value tags to associate with the sandbox. Maximum 5 tags. */
1102
+ tags?: CreateSandboxesV3RequestTagsMap;
1103
+ }
1104
+ export declare const CreateSandboxesV3Request: S.Schema<CreateSandboxesV3Request>;
1105
+ export type CreateSandboxesV3ResponseRoutesList = Array<SandboxPublicRoute>;
1106
+ export declare const CreateSandboxesV3ResponseRoutesList: S.Schema<CreateSandboxesV3ResponseRoutesList>;
1107
+ export interface CreateSandboxesV3Response {
1108
+ sandbox: NamedSandbox;
1109
+ session: Session;
1110
+ routes: CreateSandboxesV3ResponseRoutesList;
1111
+ }
1112
+ export declare const CreateSandboxesV3Response: S.Schema<CreateSandboxesV3Response>;
1113
+ export interface CreateSessionDirectoryRequest {
1114
+ /** The unique identifier of the session to create the directory in. */
1115
+ sessionId: string;
1116
+ /** The Team identifier to perform the request on behalf of. */
1117
+ teamId?: string;
1118
+ /** The Team slug to perform the request on behalf of. */
1119
+ slug?: string;
1120
+ /** The base directory for resolving relative paths. If not specified, paths are resolved from the sandbox home directory. */
1121
+ cwd?: string;
1122
+ /** The path of the directory to create. Can be absolute or relative to the working directory. */
1123
+ path: string;
1124
+ /** If true, creates parent directories as needed (like `mkdir -p`). If false, fails if parent directories do not exist. */
1125
+ recursive?: boolean;
1126
+ }
1127
+ export declare const CreateSessionDirectoryRequest: S.Schema<CreateSessionDirectoryRequest>;
1128
+ export type CreateSessionDirectoryResponse = unknown;
1129
+ export declare const CreateSessionDirectoryResponse: S.Schema<CreateSessionDirectoryResponse>;
1130
+ /** The number of milliseconds after which the snapshot will expire and be deleted. Use 0 for no expiration. */
1131
+ export type CreateSessionSnapshotRequestExpiration = unknown | number;
1132
+ export declare const CreateSessionSnapshotRequestExpiration: S.Schema<CreateSessionSnapshotRequestExpiration>;
1133
+ export interface CreateSessionSnapshotRequest {
1134
+ /** The unique identifier of the session to snapshot. */
1135
+ sessionId: string;
1136
+ /** The Team identifier to perform the request on behalf of. */
1137
+ teamId?: string;
1138
+ /** The Team slug to perform the request on behalf of. */
1139
+ slug?: string;
1140
+ /** The number of milliseconds after which the snapshot will expire and be deleted. Use 0 for no expiration. */
1141
+ expiration?: CreateSessionSnapshotRequestExpiration;
1142
+ }
1143
+ export declare const CreateSessionSnapshotRequest: S.Schema<CreateSessionSnapshotRequest>;
1144
+ /** The status of the snapshot. */
1145
+ export type SnapshotStatus = "created" | "deleted" | "failed";
1146
+ export declare const SnapshotStatus: any;
1147
+ /** The method used to create the snapshot. */
1148
+ export type SnapshotCreationMethod = "automatic" | "manual";
1149
+ export declare const SnapshotCreationMethod: any;
1150
+ /** This object contains information related to a Snapshot of a Vercel Sandbox session (v2 API). */
1151
+ export interface Snapshot {
1152
+ /** The unique identifier of the snapshot. */
1153
+ id: string;
1154
+ /** The unique identifier of the session from which the snapshot was created. */
1155
+ sourceSessionId: string;
1156
+ /** The region where the snapshot is stored. */
1157
+ region?: string;
1158
+ /** The status of the snapshot. */
1159
+ status: SnapshotStatus;
1160
+ /** The size of the snapshot in bytes. */
1161
+ sizeBytes: number;
1162
+ /** The time when the snapshot will expire, in milliseconds since the epoch. If not set, the snapshot does not have any expiration. */
1163
+ expiresAt?: number;
1164
+ /** The time when the snapshot was created, in milliseconds since the epoch. */
1165
+ createdAt: number;
1166
+ /** The last time the snapshot was updated, in milliseconds since the epoch. */
1167
+ updatedAt: number;
1168
+ /** The last time the snapshot was used (e.g. to resume or create a sandbox), in milliseconds since the epoch. Falls back to `createdAt` for older snapshots that predate this field. */
1169
+ lastUsedAt: number;
1170
+ /** The method used to create the snapshot. */
1171
+ creationMethod?: SnapshotCreationMethod;
1172
+ /** The unique identifier of the parent snapshot, if this snapshot was created from another snapshot. */
1173
+ parentId?: string;
1174
+ }
1175
+ export declare const Snapshot: S.Schema<Snapshot>;
1176
+ export interface CreateSessionSnapshotResponse {
1177
+ snapshot: Snapshot;
1178
+ session: Session;
1179
+ }
1180
+ export declare const CreateSessionSnapshotResponse: S.Schema<CreateSessionSnapshotResponse>;
1181
+ export interface DeleteDriveRequest {
1182
+ /** Name for the drive. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). */
1183
+ name: string;
1184
+ /** The project ID or name associated with the drive. Required unless using a Vercel OIDC token scoped to a project. */
1185
+ projectId?: string;
1186
+ /** The Team identifier to perform the request on behalf of. */
1187
+ teamId?: string;
1188
+ /** The Team slug to perform the request on behalf of. */
1189
+ slug?: string;
1190
+ }
1191
+ export declare const DeleteDriveRequest: S.Schema<DeleteDriveRequest>;
1192
+ /** This object contains information related to a Vercel Sandbox Drive. */
1193
+ export interface Drive {
1194
+ /** The unique drive name within the project. */
1195
+ name: string;
1196
+ /** The project that owns the drive. */
1197
+ projectId: string;
1198
+ /** The maximum drive size in bytes. */
1199
+ maxSizeBytes: number;
1200
+ /** The region where the drive is stored. */
1201
+ region: string;
1202
+ /** Current session ID the drive is attached to, if any. */
1203
+ currentSessionId?: string;
1204
+ /** Current sandbox name the drive is attached to, if any. */
1205
+ currentSandboxName?: string;
1206
+ /** The time when the drive was created, in milliseconds since the epoch. */
1207
+ createdAt: number;
1208
+ /** The last time the drive was updated, in milliseconds since the epoch. */
1209
+ updatedAt: number;
1210
+ }
1211
+ export declare const Drive: S.Schema<Drive>;
1212
+ export interface DeleteDriveResponse {
1213
+ drive: Drive;
1214
+ }
1215
+ export declare const DeleteDriveResponse: S.Schema<DeleteDriveResponse>;
1216
+ export interface DeleteSandboxRequest {
1217
+ /** The sandbox name to delete. */
1218
+ name: string;
1219
+ /** The project ID that owns the named sandbox. When provided, takes precedence over OIDC project context. */
1220
+ projectId?: string;
1221
+ /** The Team identifier to perform the request on behalf of. */
1222
+ teamId?: string;
1223
+ /** The Team slug to perform the request on behalf of. */
1224
+ slug?: string;
1225
+ }
1226
+ export declare const DeleteSandboxRequest: S.Schema<DeleteSandboxRequest>;
1227
+ export interface DeleteSandboxResponse {
1228
+ sandbox: NamedSandbox;
1229
+ }
1230
+ export declare const DeleteSandboxResponse: S.Schema<DeleteSandboxResponse>;
1231
+ export interface DeleteSessionSnapshotRequest {
1232
+ /** The unique identifier of the snapshot to delete. */
1233
+ snapshotId: string;
1234
+ /** The Team identifier to perform the request on behalf of. */
1235
+ teamId?: string;
1236
+ /** The Team slug to perform the request on behalf of. */
1237
+ slug?: string;
1238
+ }
1239
+ export declare const DeleteSessionSnapshotRequest: S.Schema<DeleteSessionSnapshotRequest>;
1240
+ export interface DeleteSessionSnapshotResponse {
1241
+ snapshot: Snapshot;
1242
+ }
1243
+ export declare const DeleteSessionSnapshotResponse: S.Schema<DeleteSessionSnapshotResponse>;
1244
+ export interface ExtendSessionTimeoutRequest {
1245
+ /** The unique identifier of the session to extend the timeout for. */
1246
+ sessionId: string;
1247
+ /** The Team identifier to perform the request on behalf of. */
1248
+ teamId?: string;
1249
+ /** The Team slug to perform the request on behalf of. */
1250
+ slug?: string;
1251
+ /** The amount of time in milliseconds to add to the current timeout. Must be at least 1000ms (1 second). */
1252
+ duration: number;
1253
+ }
1254
+ export declare const ExtendSessionTimeoutRequest: S.Schema<ExtendSessionTimeoutRequest>;
1255
+ export interface ExtendSessionTimeoutResponse {
1256
+ session: Session;
1257
+ }
1258
+ export declare const ExtendSessionTimeoutResponse: S.Schema<ExtendSessionTimeoutResponse>;
1259
+ export interface GetNamedSandboxRequest {
1260
+ /** Name for the sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). */
1261
+ name: string;
1262
+ /** The project ID or name (required when not using OIDC token). */
1263
+ projectId?: string;
1264
+ /** Whether to automatically resume a stopped named sandbox by creating a new instance from its snapshot. Defaults to false. */
1265
+ resume?: boolean;
1266
+ /** The Team identifier to perform the request on behalf of. */
1267
+ teamId?: string;
1268
+ /** The Team slug to perform the request on behalf of. */
1269
+ slug?: string;
1270
+ }
1271
+ export declare const GetNamedSandboxRequest: S.Schema<GetNamedSandboxRequest>;
1272
+ export type GetNamedSandboxResponseRoutesList = Array<SandboxPublicRoute>;
1273
+ export declare const GetNamedSandboxResponseRoutesList: S.Schema<GetNamedSandboxResponseRoutesList>;
1274
+ export interface GetNamedSandboxResponse {
1275
+ sandbox: NamedSandbox;
1276
+ session: Session;
1277
+ routes: GetNamedSandboxResponseRoutesList;
1278
+ resumed: boolean;
1279
+ }
1280
+ export declare const GetNamedSandboxResponse: S.Schema<GetNamedSandboxResponse>;
1281
+ /** Region where the drive is stored. Defaults to iad1. */
1282
+ export type GetOrCreateDriveRequestRegion = "iad1" | "sfo1" | "cle1";
1283
+ export declare const GetOrCreateDriveRequestRegion: any;
1284
+ export interface GetOrCreateDriveRequest {
1285
+ /** Name for the drive. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). */
1286
+ name: string;
1287
+ /** The Team identifier to perform the request on behalf of. */
1288
+ teamId?: string;
1289
+ /** The Team slug to perform the request on behalf of. */
1290
+ slug?: string;
1291
+ /** The project ID or name to associate the drive with. Required unless using a Vercel OIDC token scoped to a project. */
1292
+ projectId?: string;
1293
+ /** Maximum drive size in bytes. Defaults to 100 GiB when omitted. */
1294
+ maxSizeBytes?: number;
1295
+ /** Region where the drive is stored. Defaults to iad1. */
1296
+ region?: GetOrCreateDriveRequestRegion | (string & {});
1297
+ }
1298
+ export declare const GetOrCreateDriveRequest: S.Schema<GetOrCreateDriveRequest>;
1299
+ export interface GetOrCreateDriveResponse {
1300
+ drive: Drive;
1301
+ }
1302
+ export declare const GetOrCreateDriveResponse: S.Schema<GetOrCreateDriveResponse>;
1303
+ export interface GetSessionRequest {
1304
+ /** The unique identifier of the session to retrieve. */
1305
+ sessionId: string;
1306
+ /** The Team identifier to perform the request on behalf of. */
1307
+ teamId?: string;
1308
+ /** The Team slug to perform the request on behalf of. */
1309
+ slug?: string;
1310
+ }
1311
+ export declare const GetSessionRequest: S.Schema<GetSessionRequest>;
1312
+ export type GetSessionResponseRoutesList = Array<SandboxPublicRoute>;
1313
+ export declare const GetSessionResponseRoutesList: S.Schema<GetSessionResponseRoutesList>;
1314
+ export interface GetSessionResponse {
1315
+ session: Session;
1316
+ routes: GetSessionResponseRoutesList;
1317
+ }
1318
+ export declare const GetSessionResponse: S.Schema<GetSessionResponse>;
1319
+ /** If set to "true", the request will block until the command finishes execution. Useful for synchronously waiting for command completion. */
1320
+ export type GetSessionCommandRequestWait = "true" | "false";
1321
+ export declare const GetSessionCommandRequestWait: any;
1322
+ export interface GetSessionCommandRequest {
1323
+ /** The unique identifier of the session containing the command. */
1324
+ sessionId: string;
1325
+ /** The unique identifier of the command to retrieve. */
1326
+ cmdId: string;
1327
+ /** If set to "true", the request will block until the command finishes execution. Useful for synchronously waiting for command completion. */
1328
+ wait?: GetSessionCommandRequestWait | (string & {});
1329
+ /** The Team identifier to perform the request on behalf of. */
1330
+ teamId?: string;
1331
+ /** The Team slug to perform the request on behalf of. */
1332
+ slug?: string;
1333
+ }
1334
+ export declare const GetSessionCommandRequest: S.Schema<GetSessionCommandRequest>;
1335
+ /** The arguments of the command. */
1336
+ export type SessionCommandArgsList = Array<string>;
1337
+ export declare const SessionCommandArgsList: S.Schema<SessionCommandArgsList>;
1338
+ /** This object represents a command run in a Vercel Sandbox session (v2 API). */
1339
+ export interface SessionCommand {
1340
+ /** The ID of the command. */
1341
+ id: string;
1342
+ /** The name of the command. */
1343
+ name: string;
1344
+ /** The arguments of the command. */
1345
+ args: SessionCommandArgsList;
1346
+ /** The current working directory of the command. */
1347
+ cwd: string;
1348
+ /** The ID of the session associated with the command. */
1349
+ sessionId: string;
1350
+ /** If the command did finish, the exit code. */
1351
+ exitCode: number | null;
1352
+ /** When the command was started, in milliseconds since the epoch. */
1353
+ startedAt: number;
1354
+ /** Duration of the command execution in milliseconds. */
1355
+ durationMs?: number;
1356
+ }
1357
+ export declare const SessionCommand: S.Schema<SessionCommand>;
1358
+ export interface GetSessionCommandResponse {
1359
+ command: SessionCommand;
1360
+ }
1361
+ export declare const GetSessionCommandResponse: S.Schema<GetSessionCommandResponse>;
1362
+ export interface GetSessionCommandLogsRequest {
1363
+ /** The unique identifier of the session containing the command. */
1364
+ sessionId: string;
1365
+ /** The unique identifier of the command to stream logs for. */
1366
+ cmdId: string;
1367
+ /** The Team identifier to perform the request on behalf of. */
1368
+ teamId?: string;
1369
+ /** The Team slug to perform the request on behalf of. */
1370
+ slug?: string;
1371
+ }
1372
+ export declare const GetSessionCommandLogsRequest: S.Schema<GetSessionCommandLogsRequest>;
1373
+ export interface GetSessionCommandLogsResponse {
1374
+ }
1375
+ export declare const GetSessionCommandLogsResponse: S.Schema<GetSessionCommandLogsResponse>;
1376
+ export interface GetSessionSnapshotRequest {
1377
+ /** The unique identifier of the snapshot to retrieve. */
1378
+ snapshotId: string;
1379
+ /** The Team identifier to perform the request on behalf of. */
1380
+ teamId?: string;
1381
+ /** The Team slug to perform the request on behalf of. */
1382
+ slug?: string;
1383
+ }
1384
+ export declare const GetSessionSnapshotRequest: S.Schema<GetSessionSnapshotRequest>;
1385
+ export interface GetSessionSnapshotResponse {
1386
+ snapshot: Snapshot;
1387
+ }
1388
+ export declare const GetSessionSnapshotResponse: S.Schema<GetSessionSnapshotResponse>;
1389
+ export interface KillSessionCommandRequest {
1390
+ /** The unique identifier of the session containing the command. */
1391
+ sessionId: string;
1392
+ /** The unique identifier of the command to terminate. */
1393
+ cmdId: string;
1394
+ /** The Team identifier to perform the request on behalf of. */
1395
+ teamId?: string;
1396
+ /** The Team slug to perform the request on behalf of. */
1397
+ slug?: string;
1398
+ /** The POSIX signal number to send to the process. Common values: 15 (SIGTERM) for graceful termination, 9 (SIGKILL) for forced termination. */
1399
+ signal: number;
1400
+ }
1401
+ export declare const KillSessionCommandRequest: S.Schema<KillSessionCommandRequest>;
1402
+ export interface KillSessionCommandResponse {
1403
+ command: SessionCommand;
1404
+ }
1405
+ export declare const KillSessionCommandResponse: S.Schema<KillSessionCommandResponse>;
1406
+ /** Field to sort drives by. */
1407
+ export type ListDrivesRequestSortBy = "createdAt" | "updatedAt" | "name";
1408
+ export declare const ListDrivesRequestSortBy: any;
1409
+ /** Sort direction for results. */
1410
+ export type ListDrivesRequestSortOrder = "asc" | "desc";
1411
+ export declare const ListDrivesRequestSortOrder: any;
1412
+ export interface ListDrivesRequest {
1413
+ /** The project ID or name associated with the drives. Required unless using a Vercel OIDC token scoped to a project. */
1414
+ projectId?: string;
1415
+ /** Maximum number of drives to return in the response. Used for pagination. */
1416
+ limit?: number;
1417
+ /** Opaque pagination cursor from a previous response. */
1418
+ cursor?: string;
1419
+ /** Field to sort drives by. */
1420
+ sortBy?: ListDrivesRequestSortBy | (string & {});
1421
+ /** Filter drives whose name starts with this prefix. Only valid when sortBy=name. */
1422
+ namePrefix?: string;
1423
+ /** Sort direction for results. */
1424
+ sortOrder?: ListDrivesRequestSortOrder | (string & {});
1425
+ /** The Team identifier to perform the request on behalf of. */
1426
+ teamId?: string;
1427
+ /** The Team slug to perform the request on behalf of. */
1428
+ slug?: string;
1429
+ }
1430
+ export declare const ListDrivesRequest: S.Schema<ListDrivesRequest>;
1431
+ export type ListDrivesResponseDrivesList = Array<Drive>;
1432
+ export declare const ListDrivesResponseDrivesList: S.Schema<ListDrivesResponseDrivesList>;
1433
+ export interface ListDrivesResponsePagination {
1434
+ count: number;
1435
+ next: string | null;
1436
+ }
1437
+ export declare const ListDrivesResponsePagination: S.Schema<ListDrivesResponsePagination>;
1438
+ export interface ListDrivesResponse {
1439
+ drives: ListDrivesResponseDrivesList;
1440
+ pagination: ListDrivesResponsePagination;
1441
+ }
1442
+ export declare const ListDrivesResponse: S.Schema<ListDrivesResponse>;
1443
+ /** Field to sort by. */
1444
+ export type ListSandboxesRequestSortBy = "createdAt" | "name" | "statusUpdatedAt" | "currentSnapshotId";
1445
+ export declare const ListSandboxesRequestSortBy: any;
1446
+ /** Sort direction. Defaults to desc. */
1447
+ export type ListSandboxesRequestSortOrder = "asc" | "desc";
1448
+ export declare const ListSandboxesRequestSortOrder: any;
1449
+ /** Filter named sandboxes by status. Only valid when sortBy is createdAt. */
1450
+ export type ListSandboxesRequestStatus = "running" | "stopping" | "stopped";
1451
+ export declare const ListSandboxesRequestStatus: any;
1452
+ export type ListSandboxesRequestTagsCase1List = Array<string>;
1453
+ export declare const ListSandboxesRequestTagsCase1List: S.Schema<ListSandboxesRequestTagsCase1List>;
1454
+ /** Filter sandboxes by tag. Format: \"key:value\". Only one tag filter is supported at a time. */
1455
+ export type ListSandboxesRequestTags = string | ListSandboxesRequestTagsCase1List;
1456
+ export declare const ListSandboxesRequestTags: S.Schema<ListSandboxesRequestTags>;
1457
+ export interface ListSandboxesRequest {
1458
+ /** The unique identifier or name of the project to list named sandboxes for. */
1459
+ project?: string;
1460
+ /** Maximum number of named sandboxes to return in the response. Used for pagination. */
1461
+ limit?: number;
1462
+ /** Field to sort by. */
1463
+ sortBy?: ListSandboxesRequestSortBy | (string & {});
1464
+ /** Filter named sandboxes whose name starts with this prefix. Only valid when sortBy=name. */
1465
+ namePrefix?: string;
1466
+ /** Opaque pagination cursor from a previous response. */
1467
+ cursor?: string;
1468
+ /** Sort direction. Defaults to desc. */
1469
+ sortOrder?: ListSandboxesRequestSortOrder | (string & {});
1470
+ /** Filter named sandboxes by status. Only valid when sortBy is createdAt. */
1471
+ status?: ListSandboxesRequestStatus | (string & {});
1472
+ /** Filter sandboxes by tag. Format: \"key:value\". Only one tag filter is supported at a time. */
1473
+ tags?: ListSandboxesRequestTags;
1474
+ /** The Team identifier to perform the request on behalf of. */
1475
+ teamId?: string;
1476
+ /** The Team slug to perform the request on behalf of. */
1477
+ slug?: string;
1478
+ }
1479
+ export declare const ListSandboxesRequest: S.Schema<ListSandboxesRequest>;
1480
+ export type ListSandboxesResponseSandboxesList = Array<NamedSandbox>;
1481
+ export declare const ListSandboxesResponseSandboxesList: S.Schema<ListSandboxesResponseSandboxesList>;
1482
+ export type ListSandboxesResponsePagination = ListDrivesResponsePagination;
1483
+ export declare const ListSandboxesResponsePagination: S.Schema<ListDrivesResponsePagination>;
1484
+ export interface ListSandboxesResponse {
1485
+ sandboxes: ListSandboxesResponseSandboxesList;
1486
+ pagination: ListDrivesResponsePagination;
1487
+ }
1488
+ export declare const ListSandboxesResponse: S.Schema<ListSandboxesResponse>;
1489
+ export interface ListSessionCommandsRequest {
1490
+ /** The unique identifier of the session to list commands for. */
1491
+ sessionId: string;
1492
+ /** The Team identifier to perform the request on behalf of. */
1493
+ teamId?: string;
1494
+ /** The Team slug to perform the request on behalf of. */
1495
+ slug?: string;
1496
+ }
1497
+ export declare const ListSessionCommandsRequest: S.Schema<ListSessionCommandsRequest>;
1498
+ export type ListSessionCommandsResponseCommandsList = Array<SessionCommand>;
1499
+ export declare const ListSessionCommandsResponseCommandsList: S.Schema<ListSessionCommandsResponseCommandsList>;
1500
+ export interface ListSessionCommandsResponse {
1501
+ commands: ListSessionCommandsResponseCommandsList;
1502
+ }
1503
+ export declare const ListSessionCommandsResponse: S.Schema<ListSessionCommandsResponse>;
1504
+ /** Sort direction for results by creation time. */
1505
+ export type ListSessionsRequestSortOrder = "asc" | "desc";
1506
+ export declare const ListSessionsRequestSortOrder: any;
1507
+ export interface ListSessionsRequest {
1508
+ /** The unique identifier or name of the project to list sessions for. */
1509
+ project?: string;
1510
+ /** Filter sessions by sandbox name. Only sessions belonging to the specified sandbox are returned. */
1511
+ name?: string;
1512
+ /** Maximum number of sessions to return in the response. Used for pagination. */
1513
+ limit?: number;
1514
+ /** Opaque pagination cursor from a previous response. */
1515
+ cursor?: string;
1516
+ /** Sort direction for results by creation time. */
1517
+ sortOrder?: ListSessionsRequestSortOrder | (string & {});
1518
+ /** The Team identifier to perform the request on behalf of. */
1519
+ teamId?: string;
1520
+ /** The Team slug to perform the request on behalf of. */
1521
+ slug?: string;
1522
+ }
1523
+ export declare const ListSessionsRequest: S.Schema<ListSessionsRequest>;
1524
+ export type ListSessionsResponseBodyCase1SessionsList = Array<Session>;
1525
+ export declare const ListSessionsResponseBodyCase1SessionsList: S.Schema<ListSessionsResponseBodyCase1SessionsList>;
1526
+ export type ListSessionsResponseBodyCase1Pagination = ListDrivesResponsePagination;
1527
+ export declare const ListSessionsResponseBodyCase1Pagination: S.Schema<ListDrivesResponsePagination>;
1528
+ export interface ListSessionsResponseBodyCase1 {
1529
+ sessions: ListSessionsResponseBodyCase1SessionsList;
1530
+ pagination: ListDrivesResponsePagination;
1531
+ }
1532
+ export declare const ListSessionsResponseBodyCase1: S.Schema<ListSessionsResponseBodyCase1>;
1533
+ export type ListSessionsResponseBody = unknown | ListSessionsResponseBodyCase1;
1534
+ export declare const ListSessionsResponseBody: S.Schema<ListSessionsResponseBody>;
1535
+ export type ListSessionsResponse = ListSessionsResponseBody;
1536
+ export declare const ListSessionsResponse: S.Schema<ListSessionsResponse>;
1537
+ /** Sort direction for results by creation time. */
1538
+ export type ListSessionSnapshotsRequestSortOrder = "asc" | "desc";
1539
+ export declare const ListSessionSnapshotsRequestSortOrder: any;
1540
+ export interface ListSessionSnapshotsRequest {
1541
+ /** The unique identifier or name of the project to list snapshots for. */
1542
+ project?: string;
1543
+ /** Name for the sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). */
1544
+ name?: string;
1545
+ /** Maximum number of snapshots to return in the response. Used for pagination. */
1546
+ limit?: number;
1547
+ /** Opaque pagination cursor from a previous response. */
1548
+ cursor?: string;
1549
+ /** Sort direction for results by creation time. */
1550
+ sortOrder?: ListSessionSnapshotsRequestSortOrder | (string & {});
1551
+ /** The Team identifier to perform the request on behalf of. */
1552
+ teamId?: string;
1553
+ /** The Team slug to perform the request on behalf of. */
1554
+ slug?: string;
1555
+ }
1556
+ export declare const ListSessionSnapshotsRequest: S.Schema<ListSessionSnapshotsRequest>;
1557
+ export type ListSessionSnapshotsResponseBodyCase1SnapshotsList = Array<Snapshot>;
1558
+ export declare const ListSessionSnapshotsResponseBodyCase1SnapshotsList: S.Schema<ListSessionSnapshotsResponseBodyCase1SnapshotsList>;
1559
+ export type ListSessionSnapshotsResponseBodyCase1Pagination = ListDrivesResponsePagination;
1560
+ export declare const ListSessionSnapshotsResponseBodyCase1Pagination: S.Schema<ListDrivesResponsePagination>;
1561
+ export interface ListSessionSnapshotsResponseBodyCase1 {
1562
+ snapshots: ListSessionSnapshotsResponseBodyCase1SnapshotsList;
1563
+ pagination: ListDrivesResponsePagination;
1564
+ }
1565
+ export declare const ListSessionSnapshotsResponseBodyCase1: S.Schema<ListSessionSnapshotsResponseBodyCase1>;
1566
+ export type ListSessionSnapshotsResponseBody = unknown | ListSessionSnapshotsResponseBodyCase1;
1567
+ export declare const ListSessionSnapshotsResponseBody: S.Schema<ListSessionSnapshotsResponseBody>;
1568
+ export type ListSessionSnapshotsResponse = ListSessionSnapshotsResponseBody;
1569
+ export declare const ListSessionSnapshotsResponse: S.Schema<ListSessionSnapshotsResponse>;
1570
+ export interface ReadSessionFileRequest {
1571
+ /** The unique identifier of the session to read the file from. */
1572
+ sessionId: string;
1573
+ /** The Team identifier to perform the request on behalf of. */
1574
+ teamId?: string;
1575
+ /** The Team slug to perform the request on behalf of. */
1576
+ slug?: string;
1577
+ /** The base directory for resolving relative paths. If not specified, paths are resolved from the sandbox home directory. */
1578
+ cwd?: string;
1579
+ /** The path of the file to read. Can be absolute or relative to the working directory. */
1580
+ path: string;
1581
+ }
1582
+ export declare const ReadSessionFileRequest: S.Schema<ReadSessionFileRequest>;
1583
+ export interface ReadSessionFileResponse {
1584
+ }
1585
+ export declare const ReadSessionFileResponse: S.Schema<ReadSessionFileResponse>;
1586
+ /** Arguments to pass to the command. Each argument should be a separate array element. */
1587
+ export type RunSessionCommandRequestArgsList = Array<string>;
1588
+ export declare const RunSessionCommandRequestArgsList: S.Schema<RunSessionCommandRequestArgsList>;
1589
+ /** Additional environment variables to set for this command. These are merged with the sandbox environment. */
1590
+ export type RunSessionCommandRequestEnvMap = {
1591
+ [key: string]: string | undefined;
1592
+ };
1593
+ export declare const RunSessionCommandRequestEnvMap: S.Schema<RunSessionCommandRequestEnvMap>;
1594
+ export interface RunSessionCommandRequest {
1595
+ /** The unique identifier of the session in which to execute the command. */
1596
+ sessionId: string;
1597
+ /** The unique identifier of the command to stream logs for. */
1598
+ cmdId: string;
1599
+ /** The Team identifier to perform the request on behalf of. */
1600
+ teamId?: string;
1601
+ /** The Team slug to perform the request on behalf of. */
1602
+ slug?: string;
1603
+ /** The executable or shell command to run. This is the program name without arguments. */
1604
+ command: string;
1605
+ /** Arguments to pass to the command. Each argument should be a separate array element. */
1606
+ args?: RunSessionCommandRequestArgsList;
1607
+ /** The working directory in which to execute the command. Defaults to the sandbox home directory if not specified. */
1608
+ cwd?: string;
1609
+ /** Additional environment variables to set for this command. These are merged with the sandbox environment. */
1610
+ env?: RunSessionCommandRequestEnvMap;
1611
+ /** Execute the command with root (superuser) privileges. */
1612
+ sudo?: boolean;
1613
+ /** If true, returns an ND-JSON stream that emits the command status when started and again when finished. Useful for synchronously waiting for command completion. */
1614
+ wait?: boolean;
1615
+ /** If true, stream the logs of the command execution in real-time via ND-JSON. This is only applicable if `wait` is also true. */
1616
+ logs?: boolean;
1617
+ /** Maximum duration in milliseconds the command may run before it is killed with SIGKILL. Enforced at exec time, independently of `wait`. */
1618
+ timeout?: number;
1619
+ }
1620
+ export declare const RunSessionCommandRequest: S.Schema<RunSessionCommandRequest>;
1621
+ export interface RunSessionCommandResponse {
1622
+ command: SessionCommand;
1623
+ }
1624
+ export declare const RunSessionCommandResponse: S.Schema<RunSessionCommandResponse>;
1625
+ export interface StopSessionRequest {
1626
+ /** The unique identifier of the session to stop. */
1627
+ sessionId: string;
1628
+ /** The Team identifier to perform the request on behalf of. */
1629
+ teamId?: string;
1630
+ /** The Team slug to perform the request on behalf of. */
1631
+ slug?: string;
1632
+ }
1633
+ export declare const StopSessionRequest: S.Schema<StopSessionRequest>;
1634
+ export interface StopSessionResponseBodyCase0 {
1635
+ session: Session;
1636
+ }
1637
+ export declare const StopSessionResponseBodyCase0: S.Schema<StopSessionResponseBodyCase0>;
1638
+ export interface StopSessionResponseBodyCase1 {
1639
+ snapshot: Snapshot;
1640
+ sandbox: NamedSandbox;
1641
+ session: Session;
1642
+ }
1643
+ export declare const StopSessionResponseBodyCase1: S.Schema<StopSessionResponseBodyCase1>;
1644
+ export type StopSessionResponseBody = StopSessionResponseBodyCase0 | StopSessionResponseBodyCase1;
1645
+ export declare const StopSessionResponseBody: S.Schema<StopSessionResponseBody>;
1646
+ export type StopSessionResponse = StopSessionResponseBody;
1647
+ export declare const StopSessionResponse: S.Schema<StopSessionResponse>;
1648
+ /** Resources to define the VM */
1649
+ export type UpdateSandboxRequestResources = CreateSandboxesByNameForkRequestResources;
1650
+ export declare const UpdateSandboxRequestResources: S.Schema<CreateSandboxesByNameForkRequestResources>;
1651
+ /** The runtime environment for the sandbox. Determines the pre-installed language runtimes and tools available. */
1652
+ export type UpdateSandboxRequestRuntime = "node22" | "node24" | "node26" | "python3.13";
1653
+ export declare const UpdateSandboxRequestRuntime: any;
1654
+ /** Default snapshot expiration time in milliseconds. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox. */
1655
+ export type UpdateSandboxRequestSnapshotExpiration = unknown | number;
1656
+ export declare const UpdateSandboxRequestSnapshotExpiration: S.Schema<UpdateSandboxRequestSnapshotExpiration>;
1657
+ /** Expiration time in milliseconds for kept snapshots. Falls back to snapshotExpiration. */
1658
+ export type UpdateSandboxRequestKeepLastSnapshotsCase1Expiration = unknown | number;
1659
+ export declare const UpdateSandboxRequestKeepLastSnapshotsCase1Expiration: S.Schema<UpdateSandboxRequestKeepLastSnapshotsCase1Expiration>;
1660
+ export interface UpdateSandboxRequestKeepLastSnapshotsCase1 {
1661
+ /** Number of most recent snapshots to keep. */
1662
+ count: number;
1663
+ /** Expiration time in milliseconds for kept snapshots. Falls back to snapshotExpiration. */
1664
+ expiration?: UpdateSandboxRequestKeepLastSnapshotsCase1Expiration;
1665
+ /** Whether to immediately delete evicted snapshots. Defaults to true. */
1666
+ deleteEvicted?: boolean;
1667
+ }
1668
+ export declare const UpdateSandboxRequestKeepLastSnapshotsCase1: S.Schema<UpdateSandboxRequestKeepLastSnapshotsCase1>;
1669
+ /** Protect the N most recent snapshots with different expiration/deletion behavior. Set to null to clear. */
1670
+ export type UpdateSandboxRequestKeepLastSnapshots = string | UpdateSandboxRequestKeepLastSnapshotsCase1;
1671
+ export declare const UpdateSandboxRequestKeepLastSnapshots: S.Schema<UpdateSandboxRequestKeepLastSnapshots>;
1672
+ /** The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. */
1673
+ export type UpdateSandboxRequestNetworkPolicyCase0Mode = "allow-all" | "deny-all" | "custom" | "default-allow" | "default-deny";
1674
+ export declare const UpdateSandboxRequestNetworkPolicyCase0Mode: any;
1675
+ /** List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). */
1676
+ export type UpdateSandboxRequestNetworkPolicyCase0AllowedDomainsList = Array<string>;
1677
+ export declare const UpdateSandboxRequestNetworkPolicyCase0AllowedDomainsList: S.Schema<UpdateSandboxRequestNetworkPolicyCase0AllowedDomainsList>;
1678
+ /** List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. */
1679
+ export type UpdateSandboxRequestNetworkPolicyCase0AllowedCIDRsList = Array<string>;
1680
+ export declare const UpdateSandboxRequestNetworkPolicyCase0AllowedCIDRsList: S.Schema<UpdateSandboxRequestNetworkPolicyCase0AllowedCIDRsList>;
1681
+ /** List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. */
1682
+ export type UpdateSandboxRequestNetworkPolicyCase0DeniedCIDRsList = Array<string>;
1683
+ export declare const UpdateSandboxRequestNetworkPolicyCase0DeniedCIDRsList: S.Schema<UpdateSandboxRequestNetworkPolicyCase0DeniedCIDRsList>;
1684
+ /** HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. */
1685
+ export type UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemHeadersMap = {
1686
+ [key: string]: string | undefined;
1687
+ };
1688
+ export declare const UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemHeadersMap: S.Schema<UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemHeadersMap>;
1689
+ /** Match on the request path. Comparison is case-sensitive. */
1690
+ export type UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchPath = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1691
+ export declare const UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchPath: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
1692
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
1693
+ export type UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchMethodList = Array<string>;
1694
+ export declare const UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchMethodList: S.Schema<UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchMethodList>;
1695
+ /** Matcher for the entry key (header name or query key). */
1696
+ export type UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1697
+ export declare const UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
1698
+ /** Matcher for the entry value. */
1699
+ export type UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1700
+ export declare const UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
1701
+ export type UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
1702
+ export declare const UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
1703
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
1704
+ export type UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
1705
+ export declare const UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringList: S.Schema<UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringList>;
1706
+ /** Matcher for the entry key (header name or query key). */
1707
+ export type UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1708
+ export declare const UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
1709
+ /** Matcher for the entry value. */
1710
+ export type UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1711
+ export declare const UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
1712
+ export type UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
1713
+ export declare const UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
1714
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
1715
+ export type UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
1716
+ export declare const UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersList: S.Schema<UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersList>;
1717
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
1718
+ export interface UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatch {
1719
+ /** Match on the request path. Comparison is case-sensitive. */
1720
+ path?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1721
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
1722
+ method?: UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchMethodList;
1723
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
1724
+ queryString?: UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringList;
1725
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
1726
+ headers?: UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatchHeadersList;
1727
+ }
1728
+ export declare const UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatch: S.Schema<UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatch>;
1729
+ export interface UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItem {
1730
+ /** The domain (or pattern) of requests to add headers for. Supports wildcards like *.example.com. */
1731
+ domain: string;
1732
+ /** HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. */
1733
+ headers: UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemHeadersMap;
1734
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
1735
+ match?: UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItemMatch;
1736
+ }
1737
+ export declare const UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItem: S.Schema<UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItem>;
1738
+ /** HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. */
1739
+ export type UpdateSandboxRequestNetworkPolicyCase0InjectionRulesList = Array<UpdateSandboxRequestNetworkPolicyCase0InjectionRulesItem>;
1740
+ export declare const UpdateSandboxRequestNetworkPolicyCase0InjectionRulesList: S.Schema<UpdateSandboxRequestNetworkPolicyCase0InjectionRulesList>;
1741
+ /** Network access policy for the sandbox.\n Controls which external hosts the sandbox can communicate with.\n Use \"allow-all\" mode to allow all traffic, \"deny-all\" to block all traffic or \"custom\" to provide specific rules. */
1742
+ export interface UpdateSandboxRequestNetworkPolicyCase0 {
1743
+ /** The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. */
1744
+ mode: UpdateSandboxRequestNetworkPolicyCase0Mode | (string & {});
1745
+ /** List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). */
1746
+ allowedDomains?: UpdateSandboxRequestNetworkPolicyCase0AllowedDomainsList;
1747
+ /** List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. */
1748
+ allowedCIDRs?: UpdateSandboxRequestNetworkPolicyCase0AllowedCIDRsList;
1749
+ /** List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. */
1750
+ deniedCIDRs?: UpdateSandboxRequestNetworkPolicyCase0DeniedCIDRsList;
1751
+ /** HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. */
1752
+ injectionRules?: UpdateSandboxRequestNetworkPolicyCase0InjectionRulesList;
1753
+ }
1754
+ export declare const UpdateSandboxRequestNetworkPolicyCase0: S.Schema<UpdateSandboxRequestNetworkPolicyCase0>;
1755
+ export type UpdateSandboxRequestNetworkPolicyCase1AllowCase0List = Array<string>;
1756
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase0List: S.Schema<UpdateSandboxRequestNetworkPolicyCase1AllowCase0List>;
1757
+ /** Match on the request path. Comparison is case-sensitive. */
1758
+ export type UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchPath = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1759
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchPath: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
1760
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
1761
+ export type UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchMethodList = Array<string>;
1762
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchMethodList: S.Schema<UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchMethodList>;
1763
+ /** Matcher for the entry key (header name or query key). */
1764
+ export type UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1765
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
1766
+ /** Matcher for the entry value. */
1767
+ export type UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1768
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
1769
+ export type UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
1770
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
1771
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
1772
+ export type UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
1773
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringList: S.Schema<UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringList>;
1774
+ /** Matcher for the entry key (header name or query key). */
1775
+ export type UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1776
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
1777
+ /** Matcher for the entry value. */
1778
+ export type UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1779
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
1780
+ export type UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
1781
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
1782
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
1783
+ export type UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
1784
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersList: S.Schema<UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersList>;
1785
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
1786
+ export interface UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatch {
1787
+ /** Match on the request path. Comparison is case-sensitive. */
1788
+ path?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1789
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
1790
+ method?: UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchMethodList;
1791
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
1792
+ queryString?: UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchQueryStringList;
1793
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
1794
+ headers?: UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatchHeadersList;
1795
+ }
1796
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatch: S.Schema<UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatch>;
1797
+ export type UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemTransformItemHeadersMap = {
1798
+ [key: string]: string | undefined;
1799
+ };
1800
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemTransformItemHeadersMap: S.Schema<UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemTransformItemHeadersMap>;
1801
+ export interface UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemTransformItem {
1802
+ headers?: UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemTransformItemHeadersMap;
1803
+ }
1804
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemTransformItem: S.Schema<UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemTransformItem>;
1805
+ export type UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemTransformList = Array<UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemTransformItem>;
1806
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemTransformList: S.Schema<UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemTransformList>;
1807
+ export interface UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItem {
1808
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
1809
+ match?: UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemMatch;
1810
+ transform?: UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItemTransformList;
1811
+ /** HTTP/1.1 proxy URL to forward traffic to. Must not include query string or fragment. */
1812
+ forwardURL?: string;
1813
+ }
1814
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItem: S.Schema<UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItem>;
1815
+ export type UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueList = Array<UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueItem>;
1816
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueList: S.Schema<UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueList>;
1817
+ /** A rule applied to requests matching a domain in the network policy. Only one of `transform` or `forwardURL` can be specified per rule. */
1818
+ export type UpdateSandboxRequestNetworkPolicyCase1AllowCase1Map = {
1819
+ [key: string]: UpdateSandboxRequestNetworkPolicyCase1AllowCase1ValueList | undefined;
1820
+ };
1821
+ export declare const UpdateSandboxRequestNetworkPolicyCase1AllowCase1Map: S.Schema<UpdateSandboxRequestNetworkPolicyCase1AllowCase1Map>;
1822
+ export type UpdateSandboxRequestNetworkPolicyCase1Allow = UpdateSandboxRequestNetworkPolicyCase1AllowCase0List | UpdateSandboxRequestNetworkPolicyCase1AllowCase1Map;
1823
+ export declare const UpdateSandboxRequestNetworkPolicyCase1Allow: S.Schema<UpdateSandboxRequestNetworkPolicyCase1Allow>;
1824
+ export type UpdateSandboxRequestNetworkPolicyCase1SubnetsAllowList = Array<string>;
1825
+ export declare const UpdateSandboxRequestNetworkPolicyCase1SubnetsAllowList: S.Schema<UpdateSandboxRequestNetworkPolicyCase1SubnetsAllowList>;
1826
+ export type UpdateSandboxRequestNetworkPolicyCase1SubnetsDenyList = Array<string>;
1827
+ export declare const UpdateSandboxRequestNetworkPolicyCase1SubnetsDenyList: S.Schema<UpdateSandboxRequestNetworkPolicyCase1SubnetsDenyList>;
1828
+ export interface UpdateSandboxRequestNetworkPolicyCase1Subnets {
1829
+ allow?: UpdateSandboxRequestNetworkPolicyCase1SubnetsAllowList;
1830
+ deny?: UpdateSandboxRequestNetworkPolicyCase1SubnetsDenyList;
1831
+ }
1832
+ export declare const UpdateSandboxRequestNetworkPolicyCase1Subnets: S.Schema<UpdateSandboxRequestNetworkPolicyCase1Subnets>;
1833
+ export interface UpdateSandboxRequestNetworkPolicyCase1 {
1834
+ allow?: UpdateSandboxRequestNetworkPolicyCase1Allow;
1835
+ subnets?: UpdateSandboxRequestNetworkPolicyCase1Subnets;
1836
+ }
1837
+ export declare const UpdateSandboxRequestNetworkPolicyCase1: S.Schema<UpdateSandboxRequestNetworkPolicyCase1>;
1838
+ export type UpdateSandboxRequestNetworkPolicy = UpdateSandboxRequestNetworkPolicyCase0 | UpdateSandboxRequestNetworkPolicyCase1;
1839
+ export declare const UpdateSandboxRequestNetworkPolicy: S.Schema<UpdateSandboxRequestNetworkPolicy>;
1840
+ /** Default environment variables for the sandbox. Set to empty object to clear. */
1841
+ export type UpdateSandboxRequestEnvMap = {
1842
+ [key: string]: string | undefined;
1843
+ };
1844
+ export declare const UpdateSandboxRequestEnvMap: S.Schema<UpdateSandboxRequestEnvMap>;
1845
+ /** List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed. */
1846
+ export type UpdateSandboxRequestPortsList = Array<number>;
1847
+ export declare const UpdateSandboxRequestPortsList: S.Schema<UpdateSandboxRequestPortsList>;
1848
+ /** Key-value tags to associate with the sandbox. Replaces existing tags. Set to empty object to clear. Maximum 5 tags. */
1849
+ export type UpdateSandboxRequestTagsMap = {
1850
+ [key: string]: string | undefined;
1851
+ };
1852
+ export declare const UpdateSandboxRequestTagsMap: S.Schema<UpdateSandboxRequestTagsMap>;
1853
+ export interface UpdateSandboxRequest {
1854
+ /** The sandbox to update. */
1855
+ name: string;
1856
+ /** The project ID that owns the named sandbox. When provided, takes precedence over OIDC project context. */
1857
+ projectId?: string;
1858
+ /** Whether to automatically resume a stopped named sandbox by creating a new instance from its snapshot. Defaults to false. */
1859
+ resume?: boolean;
1860
+ /** The Team identifier to perform the request on behalf of. */
1861
+ teamId?: string;
1862
+ /** The Team slug to perform the request on behalf of. */
1863
+ slug?: string;
1864
+ /** Resources to define the VM */
1865
+ resources?: CreateSandboxesByNameForkRequestResources;
1866
+ /** The runtime environment for the sandbox. Determines the pre-installed language runtimes and tools available. */
1867
+ runtime?: UpdateSandboxRequestRuntime | (string & {});
1868
+ /** Maximum duration in milliseconds that the sandbox can run before being automatically stopped. */
1869
+ timeout?: number;
1870
+ /** Whether the sandbox persists its state across restarts via automatic snapshots. */
1871
+ persistent?: boolean;
1872
+ /** Default snapshot expiration time in milliseconds. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox. */
1873
+ snapshotExpiration?: UpdateSandboxRequestSnapshotExpiration;
1874
+ /** Protect the N most recent snapshots with different expiration/deletion behavior. Set to null to clear. */
1875
+ keepLastSnapshots?: UpdateSandboxRequestKeepLastSnapshots;
1876
+ networkPolicy?: UpdateSandboxRequestNetworkPolicy;
1877
+ /** Default environment variables for the sandbox. Set to empty object to clear. */
1878
+ env?: UpdateSandboxRequestEnvMap;
1879
+ /** List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed. */
1880
+ ports?: UpdateSandboxRequestPortsList;
1881
+ /** The snapshot ID to set as the current snapshot. Must be active and belong to the same project. */
1882
+ currentSnapshotId?: string;
1883
+ /** Key-value tags to associate with the sandbox. Replaces existing tags. Set to empty object to clear. Maximum 5 tags. */
1884
+ tags?: UpdateSandboxRequestTagsMap;
1885
+ }
1886
+ export declare const UpdateSandboxRequest: S.Schema<UpdateSandboxRequest>;
1887
+ export type UpdateSandboxResponseBodyCase0RoutesList = Array<SandboxPublicRoute>;
1888
+ export declare const UpdateSandboxResponseBodyCase0RoutesList: S.Schema<UpdateSandboxResponseBodyCase0RoutesList>;
1889
+ export interface UpdateSandboxResponseBodyCase0 {
1890
+ routes: UpdateSandboxResponseBodyCase0RoutesList;
1891
+ sandbox: NamedSandbox;
1892
+ }
1893
+ export declare const UpdateSandboxResponseBodyCase0: S.Schema<UpdateSandboxResponseBodyCase0>;
1894
+ export type UpdateSandboxResponseBodyCase1RoutesList = Array<SandboxPublicRoute>;
1895
+ export declare const UpdateSandboxResponseBodyCase1RoutesList: S.Schema<UpdateSandboxResponseBodyCase1RoutesList>;
1896
+ export interface UpdateSandboxResponseBodyCase1 {
1897
+ sandbox: NamedSandbox;
1898
+ session: Session;
1899
+ routes: UpdateSandboxResponseBodyCase1RoutesList;
1900
+ resumed: boolean;
1901
+ }
1902
+ export declare const UpdateSandboxResponseBodyCase1: S.Schema<UpdateSandboxResponseBodyCase1>;
1903
+ export type UpdateSandboxResponseBody = UpdateSandboxResponseBodyCase0 | UpdateSandboxResponseBodyCase1;
1904
+ export declare const UpdateSandboxResponseBody: S.Schema<UpdateSandboxResponseBody>;
1905
+ export type UpdateSandboxResponse = UpdateSandboxResponseBody;
1906
+ export declare const UpdateSandboxResponse: S.Schema<UpdateSandboxResponse>;
1907
+ /** The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. */
1908
+ export type UpdateSessionNetworkPolicyRequestBodyCase0Mode = "allow-all" | "deny-all" | "custom" | "default-allow" | "default-deny";
1909
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0Mode: any;
1910
+ /** List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). */
1911
+ export type UpdateSessionNetworkPolicyRequestBodyCase0AllowedDomainsList = Array<string>;
1912
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0AllowedDomainsList: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase0AllowedDomainsList>;
1913
+ /** List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. */
1914
+ export type UpdateSessionNetworkPolicyRequestBodyCase0AllowedCIDRsList = Array<string>;
1915
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0AllowedCIDRsList: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase0AllowedCIDRsList>;
1916
+ /** List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. */
1917
+ export type UpdateSessionNetworkPolicyRequestBodyCase0DeniedCIDRsList = Array<string>;
1918
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0DeniedCIDRsList: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase0DeniedCIDRsList>;
1919
+ /** HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. */
1920
+ export type UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemHeadersMap = {
1921
+ [key: string]: string | undefined;
1922
+ };
1923
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemHeadersMap: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemHeadersMap>;
1924
+ /** Match on the request path. Comparison is case-sensitive. */
1925
+ export type UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchPath = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1926
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchPath: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
1927
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
1928
+ export type UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchMethodList = Array<string>;
1929
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchMethodList: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchMethodList>;
1930
+ /** Matcher for the entry key (header name or query key). */
1931
+ export type UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchQueryStringItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1932
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchQueryStringItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
1933
+ /** Matcher for the entry value. */
1934
+ export type UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchQueryStringItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1935
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchQueryStringItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
1936
+ export type UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchQueryStringItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
1937
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchQueryStringItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
1938
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
1939
+ export type UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchQueryStringList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
1940
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchQueryStringList: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchQueryStringList>;
1941
+ /** Matcher for the entry key (header name or query key). */
1942
+ export type UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchHeadersItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1943
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchHeadersItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
1944
+ /** Matcher for the entry value. */
1945
+ export type UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchHeadersItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1946
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchHeadersItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
1947
+ export type UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchHeadersItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
1948
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchHeadersItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
1949
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
1950
+ export type UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchHeadersList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
1951
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchHeadersList: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchHeadersList>;
1952
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
1953
+ export interface UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatch {
1954
+ /** Match on the request path. Comparison is case-sensitive. */
1955
+ path?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1956
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
1957
+ method?: UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchMethodList;
1958
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
1959
+ queryString?: UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchQueryStringList;
1960
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
1961
+ headers?: UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatchHeadersList;
1962
+ }
1963
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatch: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatch>;
1964
+ export interface UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItem {
1965
+ /** The domain (or pattern) of requests to add headers for. Supports wildcards like *.example.com. */
1966
+ domain: string;
1967
+ /** HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. */
1968
+ headers: UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemHeadersMap;
1969
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
1970
+ match?: UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItemMatch;
1971
+ }
1972
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItem: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItem>;
1973
+ /** HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. */
1974
+ export type UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesList = Array<UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesItem>;
1975
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesList: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesList>;
1976
+ /** Network access policy for the sandbox.\n Controls which external hosts the sandbox can communicate with.\n Use \"allow-all\" mode to allow all traffic, \"deny-all\" to block all traffic or \"custom\" to provide specific rules. */
1977
+ export interface UpdateSessionNetworkPolicyRequestBodyCase0 {
1978
+ /** The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. */
1979
+ mode: UpdateSessionNetworkPolicyRequestBodyCase0Mode | (string & {});
1980
+ /** List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). */
1981
+ allowedDomains?: UpdateSessionNetworkPolicyRequestBodyCase0AllowedDomainsList;
1982
+ /** List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. */
1983
+ allowedCIDRs?: UpdateSessionNetworkPolicyRequestBodyCase0AllowedCIDRsList;
1984
+ /** List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. */
1985
+ deniedCIDRs?: UpdateSessionNetworkPolicyRequestBodyCase0DeniedCIDRsList;
1986
+ /** HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. */
1987
+ injectionRules?: UpdateSessionNetworkPolicyRequestBodyCase0InjectionRulesList;
1988
+ }
1989
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase0: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase0>;
1990
+ export type UpdateSessionNetworkPolicyRequestBodyCase1AllowCase0List = Array<string>;
1991
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase0List: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase1AllowCase0List>;
1992
+ /** Match on the request path. Comparison is case-sensitive. */
1993
+ export type UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchPath = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
1994
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchPath: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
1995
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
1996
+ export type UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchMethodList = Array<string>;
1997
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchMethodList: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchMethodList>;
1998
+ /** Matcher for the entry key (header name or query key). */
1999
+ export type UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchQueryStringItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
2000
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchQueryStringItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
2001
+ /** Matcher for the entry value. */
2002
+ export type UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchQueryStringItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
2003
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchQueryStringItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
2004
+ export type UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchQueryStringItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
2005
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchQueryStringItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
2006
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
2007
+ export type UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchQueryStringList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
2008
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchQueryStringList: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchQueryStringList>;
2009
+ /** Matcher for the entry key (header name or query key). */
2010
+ export type UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchHeadersItemKey = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
2011
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchHeadersItemKey: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
2012
+ /** Matcher for the entry value. */
2013
+ export type UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchHeadersItemValue = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
2014
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchHeadersItemValue: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath>;
2015
+ export type UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchHeadersItem = CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem;
2016
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchHeadersItem: S.Schema<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
2017
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
2018
+ export type UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchHeadersList = Array<CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchQueryStringItem>;
2019
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchHeadersList: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchHeadersList>;
2020
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
2021
+ export interface UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatch {
2022
+ /** Match on the request path. Comparison is case-sensitive. */
2023
+ path?: CreateSandboxesByNameForkRequestNetworkPolicyCase0InjectionRulesItemMatchPath;
2024
+ /** HTTP methods to match. Any single match succeeds (OR semantics). */
2025
+ method?: UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchMethodList;
2026
+ /** Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. */
2027
+ queryString?: UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchQueryStringList;
2028
+ /** Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. */
2029
+ headers?: UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatchHeadersList;
2030
+ }
2031
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatch: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatch>;
2032
+ export type UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemTransformItemHeadersMap = {
2033
+ [key: string]: string | undefined;
2034
+ };
2035
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemTransformItemHeadersMap: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemTransformItemHeadersMap>;
2036
+ export interface UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemTransformItem {
2037
+ headers?: UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemTransformItemHeadersMap;
2038
+ }
2039
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemTransformItem: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemTransformItem>;
2040
+ export type UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemTransformList = Array<UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemTransformItem>;
2041
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemTransformList: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemTransformList>;
2042
+ export interface UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItem {
2043
+ /** Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. */
2044
+ match?: UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemMatch;
2045
+ transform?: UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItemTransformList;
2046
+ /** HTTP/1.1 proxy URL to forward traffic to. Must not include query string or fragment. */
2047
+ forwardURL?: string;
2048
+ }
2049
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItem: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItem>;
2050
+ export type UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueList = Array<UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueItem>;
2051
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueList: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueList>;
2052
+ /** A rule applied to requests matching a domain in the network policy. Only one of `transform` or `forwardURL` can be specified per rule. */
2053
+ export type UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1Map = {
2054
+ [key: string]: UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1ValueList | undefined;
2055
+ };
2056
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1Map: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1Map>;
2057
+ export type UpdateSessionNetworkPolicyRequestBodyCase1Allow = UpdateSessionNetworkPolicyRequestBodyCase1AllowCase0List | UpdateSessionNetworkPolicyRequestBodyCase1AllowCase1Map;
2058
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1Allow: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase1Allow>;
2059
+ export type UpdateSessionNetworkPolicyRequestBodyCase1SubnetsAllowList = Array<string>;
2060
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1SubnetsAllowList: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase1SubnetsAllowList>;
2061
+ export type UpdateSessionNetworkPolicyRequestBodyCase1SubnetsDenyList = Array<string>;
2062
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1SubnetsDenyList: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase1SubnetsDenyList>;
2063
+ export interface UpdateSessionNetworkPolicyRequestBodyCase1Subnets {
2064
+ allow?: UpdateSessionNetworkPolicyRequestBodyCase1SubnetsAllowList;
2065
+ deny?: UpdateSessionNetworkPolicyRequestBodyCase1SubnetsDenyList;
2066
+ }
2067
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1Subnets: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase1Subnets>;
2068
+ export interface UpdateSessionNetworkPolicyRequestBodyCase1 {
2069
+ allow?: UpdateSessionNetworkPolicyRequestBodyCase1Allow;
2070
+ subnets?: UpdateSessionNetworkPolicyRequestBodyCase1Subnets;
2071
+ }
2072
+ export declare const UpdateSessionNetworkPolicyRequestBodyCase1: S.Schema<UpdateSessionNetworkPolicyRequestBodyCase1>;
2073
+ export type UpdateSessionNetworkPolicyRequestBody = UpdateSessionNetworkPolicyRequestBodyCase0 | UpdateSessionNetworkPolicyRequestBodyCase1;
2074
+ export declare const UpdateSessionNetworkPolicyRequestBody: S.Schema<UpdateSessionNetworkPolicyRequestBody>;
2075
+ export interface UpdateSessionNetworkPolicyRequest {
2076
+ /** The unique identifier of the session to update the network policy for. */
2077
+ sessionId: string;
2078
+ /** The Team identifier to perform the request on behalf of. */
2079
+ teamId?: string;
2080
+ /** The Team slug to perform the request on behalf of. */
2081
+ slug?: string;
2082
+ body?: UpdateSessionNetworkPolicyRequestBody;
2083
+ }
2084
+ export declare const UpdateSessionNetworkPolicyRequest: S.Schema<UpdateSessionNetworkPolicyRequest>;
2085
+ export interface UpdateSessionNetworkPolicyResponse {
2086
+ session: Session;
2087
+ }
2088
+ export declare const UpdateSessionNetworkPolicyResponse: S.Schema<UpdateSessionNetworkPolicyResponse>;
2089
+ export interface WriteSessionFilesRequest {
2090
+ /** The unique identifier of the session to write files to. */
2091
+ sessionId: string;
2092
+ /** The Team identifier to perform the request on behalf of. */
2093
+ teamId?: string;
2094
+ /** The Team slug to perform the request on behalf of. */
2095
+ slug?: string;
2096
+ /** The target directory where the tarball contents will be extracted. If not specified, files are extracted to the sandbox home directory. */
2097
+ xCwd?: string;
2098
+ }
2099
+ export declare const WriteSessionFilesRequest: S.Schema<WriteSessionFilesRequest>;
2100
+ export type WriteSessionFilesResponse = unknown;
2101
+ export declare const WriteSessionFilesResponse: S.Schema<WriteSessionFilesResponse>;
2102
+ export type CreateSandboxesByNameForkError = BadRequest | PaymentRequired | Forbidden | NotFound | Conflict | UnprocessableEntity | VercelOpError;
2103
+ /** Fork a named sandbox Forks a named sandbox, creating a new named sandbox from the source's configuration. Resources, timeout, ports, tags, network policy, mounts, Connect network, image, persistence, snapshot settings and — unlike the SDK-side fork — environment variables are copied from the source automatically (`interactive` is not). When the source has a snapshot the fork starts from it; otherwise it starts from the source's runtime/image. Any field provided in the request body overrides the value copied from the source. */
2104
+ export declare const createSandboxesByNameFork: API.OperationMethod<CreateSandboxesByNameForkRequest, CreateSandboxesByNameForkResponse, CreateSandboxesByNameForkError, VercelOpContext>;
2105
+ export type CreateSandboxesV2Error = BadRequest | PaymentRequired | Forbidden | NotFound | Conflict | UnprocessableEntity | VercelOpError;
2106
+ /** Create a named sandbox Creates a named sandbox environment. Named sandboxes have a unique name within a project and support automatic snapshotting on shutdown. */
2107
+ export declare const createSandboxesV2: API.OperationMethod<CreateSandboxesV2Request, CreateSandboxesV2Response, CreateSandboxesV2Error, VercelOpContext>;
2108
+ export type CreateSandboxesV3Error = BadRequest | PaymentRequired | Forbidden | NotFound | Conflict | UnprocessableEntity | VercelOpError;
2109
+ /** Create a named sandbox Creates a named sandbox environment. Named sandboxes have a unique name within a project and support automatic snapshotting on shutdown. Unlike v2, this version has no `runtime` parameter: when no `image` is provided (and the sandbox is not restored from a snapshot), the sandbox is created from the default universal image. */
2110
+ export declare const createSandboxesV3: API.OperationMethod<CreateSandboxesV3Request, CreateSandboxesV3Response, CreateSandboxesV3Error, VercelOpContext>;
2111
+ export type CreateSessionDirectoryError = BadRequest | Forbidden | NotFound | UnprocessableEntity | VercelOpError;
2112
+ /** Create a directory Creates a new directory in a session's filesystem. By default, parent directories are created recursively if they don't exist (similar to `mkdir -p`). */
2113
+ export declare const createSessionDirectory: API.OperationMethod<CreateSessionDirectoryRequest, CreateSessionDirectoryResponse, CreateSessionDirectoryError, VercelOpContext>;
2114
+ export type CreateSessionSnapshotError = BadRequest | PaymentRequired | Forbidden | NotFound | UnprocessableEntity | VercelOpError;
2115
+ /** Create a snapshot Creates a point-in-time snapshot of a running session's filesystem. Snapshots can be used to quickly restore a session to a previous state or to create new sessions with pre-configured environments. The session must be running and able to accept commands for a snapshot to be created. The session will be terminated after the snapshot is created. */
2116
+ export declare const createSessionSnapshot: API.OperationMethod<CreateSessionSnapshotRequest, CreateSessionSnapshotResponse, CreateSessionSnapshotError, VercelOpContext>;
2117
+ export type DeleteDriveError = BadRequest | Forbidden | NotFound | Conflict | VercelOpError;
2118
+ /** Delete a drive Deletes a drive by project and name. Attached drives cannot be deleted. Stop or replace the session currently using the drive before retrying deletion. Drives are in private beta. Register your interest to get access: https://vercel.com/changelog/drives-for-vercel-sandbox-in-private-beta */
2119
+ export declare const deleteDrive: API.OperationMethod<DeleteDriveRequest, DeleteDriveResponse, DeleteDriveError, VercelOpContext>;
2120
+ export type DeleteSandboxError = BadRequest | Forbidden | NotFound | VercelOpError;
2121
+ /** Delete a sandbox Deletes a sandbox by name. If sandboxes are currently running, they will be stopped first. This operation deletes all sandbox entities with the given name and the named sandbox metadata. */
2122
+ export declare const deleteSandbox: API.OperationMethod<DeleteSandboxRequest, DeleteSandboxResponse, DeleteSandboxError, VercelOpContext>;
2123
+ export type DeleteSessionSnapshotError = BadRequest | Forbidden | NotFound | VercelOpError;
2124
+ /** Delete a snapshot Permanently deletes a snapshot and frees its associated storage. This action cannot be undone. After deletion, the snapshot can no longer be used to create new sessions. */
2125
+ export declare const deleteSessionSnapshot: API.OperationMethod<DeleteSessionSnapshotRequest, DeleteSessionSnapshotResponse, DeleteSessionSnapshotError, VercelOpContext>;
2126
+ export type ExtendSessionTimeoutError = BadRequest | Forbidden | NotFound | UnprocessableEntity | VercelOpError;
2127
+ /** Extend session timeout Extends the maximum execution time of a running session. The session must be active and able to accept commands. The total timeout cannot exceed the maximum allowed limit for your account. */
2128
+ export declare const extendSessionTimeout: API.OperationMethod<ExtendSessionTimeoutRequest, ExtendSessionTimeoutResponse, ExtendSessionTimeoutError, VercelOpContext>;
2129
+ export type GetNamedSandboxError = BadRequest | PaymentRequired | Forbidden | NotFound | Conflict | VercelOpError;
2130
+ /** Get a named sandbox Retrieves a named sandbox by name, including its current sandbox and routes. If the sandbox is stopped and resume is true, a new sandbox will be created from the most recent snapshot. */
2131
+ export declare const getNamedSandbox: API.OperationMethod<GetNamedSandboxRequest, GetNamedSandboxResponse, GetNamedSandboxError, VercelOpContext>;
2132
+ export type GetOrCreateDriveError = BadRequest | PaymentRequired | Forbidden | NotFound | Conflict | VercelOpError;
2133
+ /** Get or create a drive Gets an existing drive by project and name, or creates it when it does not exist. Drives are in private beta. Register your interest to get access: https://vercel.com/changelog/drives-for-vercel-sandbox-in-private-beta */
2134
+ export declare const getOrCreateDrive: API.OperationMethod<GetOrCreateDriveRequest, GetOrCreateDriveResponse, GetOrCreateDriveError, VercelOpContext>;
2135
+ export type GetSessionError = BadRequest | Forbidden | NotFound | VercelOpError;
2136
+ /** Get a session Retrieves detailed information about a specific session, including its current status, resource configuration, and exposed routes. */
2137
+ export declare const getSession: API.OperationMethod<GetSessionRequest, GetSessionResponse, GetSessionError, VercelOpContext>;
2138
+ export type GetSessionCommandError = BadRequest | Forbidden | NotFound | UnprocessableEntity | VercelOpError;
2139
+ /** Get a command Retrieves the current status and details of a command executed in a session. Use the `wait` parameter to block until the command finishes execution. */
2140
+ export declare const getSessionCommand: API.OperationMethod<GetSessionCommandRequest, GetSessionCommandResponse, GetSessionCommandError, VercelOpContext>;
2141
+ export type GetSessionCommandLogsError = BadRequest | Forbidden | NotFound | UnprocessableEntity | VercelOpError;
2142
+ /** Stream command logs Streams the output of a command in real-time using newline-delimited JSON (ND-JSON). Each entry includes the output data and stream type. Stream types include `stdout`, `stderr`, and `error` (for stream failures). */
2143
+ export declare const getSessionCommandLogs: API.OperationMethod<GetSessionCommandLogsRequest, GetSessionCommandLogsResponse, GetSessionCommandLogsError, VercelOpContext>;
2144
+ export type GetSessionSnapshotError = BadRequest | Forbidden | NotFound | VercelOpError;
2145
+ /** Get a snapshot Retrieves detailed information about a specific snapshot, including its creation time, size, expiration date, and the source session it was created from. */
2146
+ export declare const getSessionSnapshot: API.OperationMethod<GetSessionSnapshotRequest, GetSessionSnapshotResponse, GetSessionSnapshotError, VercelOpContext>;
2147
+ export type KillSessionCommandError = BadRequest | Forbidden | NotFound | UnprocessableEntity | VercelOpError;
2148
+ /** Kill a command Sends a signal to terminate a running command in a session. The signal can be used to gracefully stop (SIGTERM) or forcefully kill (SIGKILL) the process. The command must still be running for this operation to succeed. */
2149
+ export declare const killSessionCommand: API.OperationMethod<KillSessionCommandRequest, KillSessionCommandResponse, KillSessionCommandError, VercelOpContext>;
2150
+ export type ListDrivesError = BadRequest | Forbidden | NotFound | VercelOpError;
2151
+ /** List drives Retrieves a paginated list of drives belonging to a specific project. Drives are in private beta. Register your interest to get access: https://vercel.com/changelog/drives-for-vercel-sandbox-in-private-beta */
2152
+ export declare const listDrives: API.OperationMethod<ListDrivesRequest, ListDrivesResponse, ListDrivesError, VercelOpContext>;
2153
+ export type ListSandboxesError = BadRequest | Forbidden | NotFound | VercelOpError;
2154
+ /** List sandboxes Retrieves a paginated list of named sandboxes belonging to a specific project. Results can be sorted by creation time or name, and optionally filtered by name prefix or status. */
2155
+ export declare const listSandboxes: API.OperationMethod<ListSandboxesRequest, ListSandboxesResponse, ListSandboxesError, VercelOpContext>;
2156
+ export type ListSessionCommandsError = BadRequest | Forbidden | NotFound | VercelOpError;
2157
+ /** List commands Retrieves a list of all commands that have been executed in a session, including their current status, exit codes, and execution times, ordered from the most recent to the oldest. */
2158
+ export declare const listSessionCommands: API.OperationMethod<ListSessionCommandsRequest, ListSessionCommandsResponse, ListSessionCommandsError, VercelOpContext>;
2159
+ export type ListSessionsError = BadRequest | Forbidden | NotFound | VercelOpError;
2160
+ /** List sessions Retrieves a paginated list of sessions belonging to a specific sandbox. Results are sorted by creation time and paginated using an opaque cursor. */
2161
+ export declare const listSessions: API.OperationMethod<ListSessionsRequest, ListSessionsResponse, ListSessionsError, VercelOpContext>;
2162
+ export type ListSessionSnapshotsError = BadRequest | Forbidden | NotFound | VercelOpError;
2163
+ /** List snapshots Retrieves a paginated list of snapshots for a specific project. */
2164
+ export declare const listSessionSnapshots: API.OperationMethod<ListSessionSnapshotsRequest, ListSessionSnapshotsResponse, ListSessionSnapshotsError, VercelOpContext>;
2165
+ export type ReadSessionFileError = BadRequest | Forbidden | NotFound | UnprocessableEntity | VercelOpError;
2166
+ /** Read a file Downloads the contents of a file from a session's filesystem. The file content is returned as a binary stream with appropriate Content-Disposition headers for file download. */
2167
+ export declare const readSessionFile: API.OperationMethod<ReadSessionFileRequest, ReadSessionFileResponse, ReadSessionFileError, VercelOpContext>;
2168
+ export type RunSessionCommandError = BadRequest | Forbidden | NotFound | UnprocessableEntity | VercelOpError;
2169
+ /** Execute a command Executes a shell command inside a running session. The command runs asynchronously and returns immediately with a command ID that can be used to track its progress and retrieve its output. Optionally, use the `wait` parameter to stream the command status until completion. */
2170
+ export declare const runSessionCommand: API.OperationMethod<RunSessionCommandRequest, RunSessionCommandResponse, RunSessionCommandError, VercelOpContext>;
2171
+ export type StopSessionError = BadRequest | Forbidden | NotFound | UnprocessableEntity | VercelOpError;
2172
+ /** Stop a session Stops a running session and releases its allocated resources. All running processes within the session will be terminated. This action cannot be undone. A stopped session cannot be restarted. */
2173
+ export declare const stopSession: API.OperationMethod<StopSessionRequest, StopSessionResponse, StopSessionError, VercelOpContext>;
2174
+ export type UpdateSandboxError = BadRequest | PaymentRequired | Forbidden | NotFound | Conflict | UnprocessableEntity | VercelOpError;
2175
+ /** Update a sandbox Updates the configuration of a sandbox. Only the provided fields will be modified; omitted fields remain unchanged. */
2176
+ export declare const updateSandbox: API.OperationMethod<UpdateSandboxRequest, UpdateSandboxResponse, UpdateSandboxError, VercelOpContext>;
2177
+ export type UpdateSessionNetworkPolicyError = BadRequest | Forbidden | NotFound | UnprocessableEntity | VercelOpError;
2178
+ /** Update network policy Replaces the network access policy of a running session. Use this to control which external hosts the session can communicate with. This is a full replacement. Any previously configured network rules will be overwritten. */
2179
+ export declare const updateSessionNetworkPolicy: API.OperationMethod<UpdateSessionNetworkPolicyRequest, UpdateSessionNetworkPolicyResponse, UpdateSessionNetworkPolicyError, VercelOpContext>;
2180
+ export type WriteSessionFilesError = BadRequest | Forbidden | NotFound | UnprocessableEntity | VercelOpError;
2181
+ /** Write files Uploads and extracts files to a session's filesystem. Files must be uploaded as a gzipped tarball (`.tar.gz`) with the `Content-Type` header set to `application/gzip`. The tarball contents are extracted to the session's working directory, or to a custom directory specified via the `x-cwd` header. */
2182
+ export declare const writeSessionFiles: API.OperationMethod<WriteSessionFilesRequest, WriteSessionFilesResponse, WriteSessionFilesError, VercelOpContext>;
2183
+ //# sourceMappingURL=sandboxes.d.ts.map