modal 0.9.0 → 0.10.0

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.
package/dist/index.d.ts CHANGED
@@ -28,6 +28,13 @@ interface MessageFns$2<T> {
28
28
  fromPartial(object: DeepPartial$2<T>): T;
29
29
  }
30
30
 
31
+ /**
32
+ * gRPC protos for Modal's public API surface.
33
+ * Warning: direct usage of Modal's gRPC API is discouraged,
34
+ * and no support or compatibility guarantees are provided.
35
+ * Message fields or entire RPCs may be changed or removed
36
+ * without notice. We recommend using official SDKs instead.
37
+ */
31
38
  declare enum AppDeployVisibility {
32
39
  APP_DEPLOY_VISIBILITY_UNSPECIFIED = 0,
33
40
  APP_DEPLOY_VISIBILITY_WORKSPACE = 1,
@@ -126,6 +133,15 @@ declare enum DeploymentNamespace {
126
133
  DEPLOYMENT_NAMESPACE_GLOBAL = 3,
127
134
  UNRECOGNIZED = -1
128
135
  }
136
+ declare enum DeploymentType {
137
+ DEPLOYMENT_TYPE_UNSPECIFIED = 0,
138
+ DEPLOYMENT_TYPE_STANDARD = 1,
139
+ DEPLOYMENT_TYPE_ROLLBACK = 2,
140
+ DEPLOYMENT_TYPE_ROLLOVER = 3,
141
+ DEPLOYMENT_TYPE_PROMOTION = 4,
142
+ DEPLOYMENT_TYPE_STAGED = 5,
143
+ UNRECOGNIZED = -1
144
+ }
129
145
  declare enum EndpointApiSurface {
130
146
  ENDPOINT_API_SURFACE_UNSPECIFIED = 0,
131
147
  ENDPOINT_API_SURFACE_OPENAI_CHAT_COMPLETIONS = 1,
@@ -156,6 +172,12 @@ declare enum EndpointProvisioningStatus {
156
172
  ENDPOINT_PROVISIONING_STATUS_CANCELLED = 6,
157
173
  UNRECOGNIZED = -1
158
174
  }
175
+ declare enum EndpointServingMode {
176
+ ENDPOINT_SERVING_MODE_UNSPECIFIED = 0,
177
+ ENDPOINT_SERVING_MODE_DEDICATED = 1,
178
+ ENDPOINT_SERVING_MODE_SHARED = 2,
179
+ UNRECOGNIZED = -1
180
+ }
159
181
  declare enum EndpointStopSource {
160
182
  ENDPOINT_STOP_SOURCE_UNSPECIFIED = 0,
161
183
  ENDPOINT_STOP_SOURCE_CLI = 1,
@@ -166,6 +188,7 @@ declare enum EnvironmentRole {
166
188
  ENVIRONMENT_ROLE_UNSPECIFIED = 0,
167
189
  ENVIRONMENT_ROLE_VIEWER = 1,
168
190
  ENVIRONMENT_ROLE_CONTRIBUTOR = 2,
191
+ ENVIRONMENT_ROLE_NO_ACCESS = 3,
169
192
  UNRECOGNIZED = -1
170
193
  }
171
194
  /**
@@ -443,6 +466,11 @@ declare enum GenericResult_GenericStatus {
443
466
  GENERIC_STATUS_INTERNAL_FAILURE = 6,
444
467
  /** GENERIC_STATUS_IDLE_TIMEOUT - Used when sandboxes are terminated due to idle_timeout */
445
468
  GENERIC_STATUS_IDLE_TIMEOUT = 7,
469
+ /**
470
+ * GENERIC_STATUS_MEMORY_MANAGER_EVICTION - Used when a task was killed because it was evicted by the memory manager when the worker was
471
+ * under memory pressure.
472
+ */
473
+ GENERIC_STATUS_MEMORY_MANAGER_EVICTION = 8,
446
474
  UNRECOGNIZED = -1
447
475
  }
448
476
  declare enum NetworkAccess_NetworkAccessType {
@@ -461,6 +489,12 @@ declare enum PTYInfo_PTYType {
461
489
  PTY_TYPE_SHELL = 2,
462
490
  UNRECOGNIZED = -1
463
491
  }
492
+ declare enum SandboxGetExitSnapshotResponse_ErrorCode {
493
+ ERROR_CODE_UNSPECIFIED = 0,
494
+ ERROR_CODE_TIMEOUT = 1,
495
+ ERROR_CODE_INTERNAL = 2,
496
+ UNRECOGNIZED = -1
497
+ }
464
498
  declare enum SandboxRestoreRequest_SandboxNameOverrideType {
465
499
  SANDBOX_NAME_OVERRIDE_TYPE_UNSPECIFIED = 0,
466
500
  SANDBOX_NAME_OVERRIDE_TYPE_NONE = 1,
@@ -546,6 +580,7 @@ interface AppDeploymentHistory {
546
580
  rollbackVersion: number;
547
581
  rollbackAllowed: boolean;
548
582
  commitInfo?: CommitInfo | undefined;
583
+ deploymentType: DeploymentType;
549
584
  }
550
585
  declare const AppDeploymentHistory: MessageFns$1<AppDeploymentHistory>;
551
586
  interface AppDeploymentHistoryRequest {
@@ -554,6 +589,7 @@ interface AppDeploymentHistoryRequest {
554
589
  declare const AppDeploymentHistoryRequest: MessageFns$1<AppDeploymentHistoryRequest>;
555
590
  interface AppDeploymentHistoryResponse {
556
591
  appDeploymentHistories: AppDeploymentHistory[];
592
+ productionAppVersion: number;
557
593
  }
558
594
  declare const AppDeploymentHistoryResponse: MessageFns$1<AppDeploymentHistoryResponse>;
559
595
  interface AppFetchLogsRequest {
@@ -715,6 +751,17 @@ interface AppLookupResponse {
715
751
  appId: string;
716
752
  }
717
753
  declare const AppLookupResponse: MessageFns$1<AppLookupResponse>;
754
+ interface AppPromoteRequest {
755
+ appId: string;
756
+ version: number;
757
+ }
758
+ declare const AppPromoteRequest: MessageFns$1<AppPromoteRequest>;
759
+ interface AppPromoteResponse {
760
+ url: string;
761
+ serverWarnings: Warning[];
762
+ deployedAt: number;
763
+ }
764
+ declare const AppPromoteResponse: MessageFns$1<AppPromoteResponse>;
718
765
  interface AppPublishRequest {
719
766
  appId: string;
720
767
  name: string;
@@ -744,6 +791,12 @@ interface AppPublishRequest {
744
791
  tags: {
745
792
  [key: string]: string;
746
793
  };
794
+ /**
795
+ * If true, create a version pinned deployment but don't update the production deployment
796
+ * definition on publish
797
+ */
798
+ staged: boolean;
799
+ deploymentType: DeploymentType;
747
800
  }
748
801
  declare const AppPublishRequest: MessageFns$1<AppPublishRequest>;
749
802
  interface AppPublishResponse {
@@ -823,6 +876,7 @@ interface AttemptStartRequest {
823
876
  functionId: string;
824
877
  parentInputId: string;
825
878
  input: FunctionPutInputsItem | undefined;
879
+ proxied: boolean;
826
880
  }
827
881
  declare const AttemptStartRequest: MessageFns$1<AttemptStartRequest>;
828
882
  interface AttemptStartResponse {
@@ -852,10 +906,15 @@ interface AutoscalerSettings {
852
906
  scaleupWindow?: number | undefined;
853
907
  /** Maximum amount of time a container can be idle before being scaled down, in seconds; pka "container_idle_timeout" */
854
908
  scaledownWindow?: number | undefined;
855
- /** Target concurrent inputs per replica for Flash autoscaling. */
909
+ /**
910
+ * Integer-valued target concurrent requests per replica for Flash autoscaling.
911
+ * Superseded by `target_concurrency_float`, which allows non-integer targets.
912
+ */
856
913
  targetConcurrency?: number | undefined;
857
914
  /** Maximum number of containers that can be scaled down per minute for Flash autoscaling. */
858
915
  scaledownRateLimit?: number | undefined;
916
+ /** Target concurrent requests per replica for Flash autoscaling; may be fractional. */
917
+ targetConcurrencyFloat?: number | undefined;
859
918
  }
860
919
  declare const AutoscalerSettings: MessageFns$1<AutoscalerSettings>;
861
920
  interface BaseImage {
@@ -1022,6 +1081,11 @@ interface ClusterStats {
1022
1081
  startedAt: number;
1023
1082
  }
1024
1083
  declare const ClusterStats: MessageFns$1<ClusterStats>;
1084
+ interface CommandRouterAccess$1 {
1085
+ jwt: string;
1086
+ url: string;
1087
+ }
1088
+ declare const CommandRouterAccess$1: MessageFns$1<CommandRouterAccess$1>;
1025
1089
  interface CommitInfo {
1026
1090
  /** Only git is supported for now */
1027
1091
  vcs: string;
@@ -1432,6 +1496,7 @@ interface EndpointCreateRequest {
1432
1496
  inputModalities: EndpointInputModality[];
1433
1497
  environmentName: string;
1434
1498
  unauthenticated: boolean;
1499
+ servingMode: EndpointServingMode;
1435
1500
  }
1436
1501
  declare const EndpointCreateRequest: MessageFns$1<EndpointCreateRequest>;
1437
1502
  interface EndpointCreateResponse {
@@ -1494,6 +1559,7 @@ interface EndpointListItem {
1494
1559
  createdByAvatarUrl: string;
1495
1560
  provisioningStatus: EndpointProvisioningStatus;
1496
1561
  status: string;
1562
+ servingMode: EndpointServingMode;
1497
1563
  }
1498
1564
  declare const EndpointListItem: MessageFns$1<EndpointListItem>;
1499
1565
  interface EndpointListRequest {
@@ -1530,8 +1596,8 @@ interface EndpointStopResponse {
1530
1596
  }
1531
1597
  declare const EndpointStopResponse: MessageFns$1<EndpointStopResponse>;
1532
1598
  interface EnvironmentBillingSummaryRequest {
1599
+ /** all query intervals are implicitly one month long (to line up with billing cycles) */
1533
1600
  startTimestamp: Date | undefined;
1534
- endTimestamp: Date | undefined;
1535
1601
  environmentId: string;
1536
1602
  }
1537
1603
  declare const EnvironmentBillingSummaryRequest: MessageFns$1<EnvironmentBillingSummaryRequest>;
@@ -1554,6 +1620,9 @@ interface EnvironmentCreateRequest {
1554
1620
  isManaged: boolean;
1555
1621
  settings: EnvironmentSettings | undefined;
1556
1622
  environmentType: EnvironmentType;
1623
+ defaultMemberRole?: EnvironmentRole | undefined;
1624
+ /** String representation; parsed when the enum is unspecified. */
1625
+ defaultMemberRoleStr: string;
1557
1626
  }
1558
1627
  declare const EnvironmentCreateRequest: MessageFns$1<EnvironmentCreateRequest>;
1559
1628
  interface EnvironmentDeleteRequest {
@@ -1604,6 +1673,33 @@ interface EnvironmentGetOrCreateResponse {
1604
1673
  metadata: EnvironmentMetadata | undefined;
1605
1674
  }
1606
1675
  declare const EnvironmentGetOrCreateResponse: MessageFns$1<EnvironmentGetOrCreateResponse>;
1676
+ interface EnvironmentGetRolesRequest {
1677
+ environmentId: string;
1678
+ }
1679
+ declare const EnvironmentGetRolesRequest: MessageFns$1<EnvironmentGetRolesRequest>;
1680
+ interface EnvironmentGetRolesResponse {
1681
+ name: string;
1682
+ createdAt: number;
1683
+ principalRoles: EnvironmentGetRolesResponse_Principal[];
1684
+ defaultMemberRole?: EnvironmentRole | undefined;
1685
+ }
1686
+ declare const EnvironmentGetRolesResponse: MessageFns$1<EnvironmentGetRolesResponse>;
1687
+ interface EnvironmentGetRolesResponse_Principal {
1688
+ userId: string;
1689
+ serviceUserId: string;
1690
+ email: string;
1691
+ avatarUrl: string;
1692
+ userName: string;
1693
+ serviceUserName: string;
1694
+ role: EnvironmentRole;
1695
+ /** String representation for the CLI */
1696
+ roleStr: string;
1697
+ choosableRoles: EnvironmentRole[];
1698
+ memberRole: MemberRole;
1699
+ inheritsDefaultMemberRole?: boolean | undefined;
1700
+ hasRoleAssignment?: boolean | undefined;
1701
+ }
1702
+ declare const EnvironmentGetRolesResponse_Principal: MessageFns$1<EnvironmentGetRolesResponse_Principal>;
1607
1703
  interface EnvironmentListItem {
1608
1704
  name: string;
1609
1705
  webhookSuffix: string;
@@ -1621,6 +1717,7 @@ interface EnvironmentListItem {
1621
1717
  currentCycleUsage: number;
1622
1718
  spendLimitReached: boolean;
1623
1719
  environmentType: EnvironmentType;
1720
+ defaultMemberRole?: EnvironmentRole | undefined;
1624
1721
  }
1625
1722
  declare const EnvironmentListItem: MessageFns$1<EnvironmentListItem>;
1626
1723
  interface EnvironmentListResponse {
@@ -1638,6 +1735,8 @@ interface EnvironmentRoleSetRequest {
1638
1735
  userId: string;
1639
1736
  serviceUserId: string;
1640
1737
  role: EnvironmentRole;
1738
+ /** String representation from the CLI; parsed when role is unspecified */
1739
+ roleStr: string;
1641
1740
  }
1642
1741
  declare const EnvironmentRoleSetRequest: MessageFns$1<EnvironmentRoleSetRequest>;
1643
1742
  interface EnvironmentSetBudgetRequest {
@@ -1646,9 +1745,15 @@ interface EnvironmentSetBudgetRequest {
1646
1745
  clearBudget: boolean;
1647
1746
  }
1648
1747
  declare const EnvironmentSetBudgetRequest: MessageFns$1<EnvironmentSetBudgetRequest>;
1748
+ interface EnvironmentSetDefaultMemberRoleRequest {
1749
+ environmentId: string;
1750
+ defaultMemberRole: EnvironmentRole;
1751
+ }
1752
+ declare const EnvironmentSetDefaultMemberRoleRequest: MessageFns$1<EnvironmentSetDefaultMemberRoleRequest>;
1649
1753
  interface EnvironmentSetManagedRequest {
1650
1754
  environmentId: string;
1651
1755
  managed: boolean;
1756
+ defaultMemberRole?: EnvironmentRole | undefined;
1652
1757
  }
1653
1758
  declare const EnvironmentSetManagedRequest: MessageFns$1<EnvironmentSetManagedRequest>;
1654
1759
  /**
@@ -1805,6 +1910,11 @@ interface FunctionMessage {
1805
1910
  * to schedule in tandem.
1806
1911
  */
1807
1912
  ExperimentalGroupSize: number;
1913
+ /**
1914
+ * When set on a "grouped" function, constrains placement across GPU-memory
1915
+ * fabrics: the cluster is placed in co-fabric blocks of this size.
1916
+ */
1917
+ ExperimentalFabricSize: number;
1808
1918
  /** If set, the function will be run in an untrusted environment. */
1809
1919
  untrusted: boolean;
1810
1920
  /** To be replaced by autoscaler_settings.buffer_containers */
@@ -1868,6 +1978,8 @@ interface FunctionMessage {
1868
1978
  isServer: boolean;
1869
1979
  /** Where inputs to a function should be routed through. */
1870
1980
  routingRegion: string;
1981
+ /** True when the function is a Sessioned Server. Only valid together with is_server. */
1982
+ isSessioned: boolean;
1871
1983
  }
1872
1984
  declare const FunctionMessage: MessageFns$1<FunctionMessage>;
1873
1985
  interface FunctionAsyncInvokeRequest {
@@ -1926,6 +2038,15 @@ interface FunctionCallGetDataRequest {
1926
2038
  lastIndex: number;
1927
2039
  }
1928
2040
  declare const FunctionCallGetDataRequest: MessageFns$1<FunctionCallGetDataRequest>;
2041
+ interface FunctionCallGetInfoRequest {
2042
+ functionId: string;
2043
+ functionCallId: string;
2044
+ }
2045
+ declare const FunctionCallGetInfoRequest: MessageFns$1<FunctionCallGetInfoRequest>;
2046
+ interface FunctionCallGetInfoResponse {
2047
+ info: FunctionCallInfo | undefined;
2048
+ }
2049
+ declare const FunctionCallGetInfoResponse: MessageFns$1<FunctionCallGetInfoResponse>;
1929
2050
  interface FunctionCallHandleMetadata {
1930
2051
  appId: string;
1931
2052
  functionId: string;
@@ -1982,9 +2103,11 @@ interface FunctionCreateResponse {
1982
2103
  * @deprecated
1983
2104
  */
1984
2105
  DeprecatedWebUrl: string;
2106
+ /** deprecated soon */
1985
2107
  function: FunctionMessage | undefined;
1986
2108
  handleMetadata: FunctionHandleMetadata | undefined;
1987
2109
  serverWarnings: Warning[];
2110
+ functionData: FunctionData | undefined;
1988
2111
  }
1989
2112
  declare const FunctionCreateResponse: MessageFns$1<FunctionCreateResponse>;
1990
2113
  /**
@@ -2010,6 +2133,7 @@ interface FunctionData {
2010
2133
  * to schedule in tandem.
2011
2134
  */
2012
2135
  ExperimentalGroupSize: number;
2136
+ ExperimentalFabricSize: number;
2013
2137
  ExperimentalBufferContainers: number;
2014
2138
  ExperimentalCustomScaling: boolean;
2015
2139
  ExperimentalEnableGpuSnapshot: boolean;
@@ -2069,6 +2193,8 @@ interface FunctionData {
2069
2193
  isServer: boolean;
2070
2194
  /** Where inputs to a function should be routed through. */
2071
2195
  routingRegion: string;
2196
+ /** True when the function is a Sessioned Server. Only valid together with is_server. */
2197
+ isSessioned: boolean;
2072
2198
  }
2073
2199
  declare const FunctionData: MessageFns$1<FunctionData>;
2074
2200
  interface FunctionData_RankedFunction {
@@ -2120,8 +2246,6 @@ interface FunctionGetInputsItem {
2120
2246
  declare const FunctionGetInputsItem: MessageFns$1<FunctionGetInputsItem>;
2121
2247
  interface FunctionGetInputsRequest {
2122
2248
  functionId: string;
2123
- maxValues: number;
2124
- averageCallTime: number;
2125
2249
  /** Container aims to fetch multiple inputs at the same time */
2126
2250
  inputConcurrency: number;
2127
2251
  /** Maximum number of inputs to fetch at once */
@@ -2185,6 +2309,7 @@ interface FunctionGetResponse {
2185
2309
  functionId: string;
2186
2310
  handleMetadata: FunctionHandleMetadata | undefined;
2187
2311
  serverWarnings: Warning[];
2312
+ function: FunctionData | undefined;
2188
2313
  }
2189
2314
  declare const FunctionGetResponse: MessageFns$1<FunctionGetResponse>;
2190
2315
  interface FunctionGetSerializedRequest {
@@ -2196,6 +2321,54 @@ interface FunctionGetSerializedResponse {
2196
2321
  classSerialized: Uint8Array;
2197
2322
  }
2198
2323
  declare const FunctionGetSerializedResponse: MessageFns$1<FunctionGetSerializedResponse>;
2324
+ interface FunctionGetTimeRangeStatsRequest {
2325
+ functionId: string;
2326
+ /** Inclusive. */
2327
+ since: Date | undefined;
2328
+ /** Exclusive. */
2329
+ until: Date | undefined;
2330
+ /** Aggregate the root Function pool and its non-version-pinned variant pools. */
2331
+ rollup: boolean;
2332
+ }
2333
+ declare const FunctionGetTimeRangeStatsRequest: MessageFns$1<FunctionGetTimeRangeStatsRequest>;
2334
+ interface FunctionGetTimeRangeStatsResponse {
2335
+ /** Inclusive. */
2336
+ since: Date | undefined;
2337
+ /** Exclusive. */
2338
+ until: Date | undefined;
2339
+ /**
2340
+ * Per-input latency distributions.
2341
+ * Execution time derived from inputs that finish in the window
2342
+ */
2343
+ executionTimeSeconds: FunctionStatsPercentiles | undefined;
2344
+ /**
2345
+ * Purposely omitted for now since it can't be computed
2346
+ * from the desired tables without caveats that are confusing
2347
+ * to explain to users
2348
+ */
2349
+ queueTimeSeconds: FunctionStatsPercentiles | undefined;
2350
+ endToEndLatencySeconds: FunctionStatsPercentiles | undefined;
2351
+ /** Container startup is measured from enqueue to start. */
2352
+ containerStartupTimeSeconds: FunctionStatsPercentiles | undefined;
2353
+ /** Counts of inputs that finish in the requested time range. */
2354
+ inputSuccessCount: number;
2355
+ inputFailureCount: number;
2356
+ inputTimeoutCount: number;
2357
+ /**
2358
+ * Resource distributions are computed from normalized container heartbeat
2359
+ * observations and expressed as fractions, where 1.0 represents 100% utilization.
2360
+ * A missing message indicates that no observations were available.
2361
+ */
2362
+ cpuUtilization: FunctionStatsPercentiles | undefined;
2363
+ memoryUtilization: FunctionStatsPercentiles | undefined;
2364
+ gpuUtilization: FunctionStatsPercentiles | undefined;
2365
+ /**
2366
+ * Number of direct non-version-pinned variants included in the roll-up.
2367
+ * Zero when roll-up is disabled or the base Function has no variants.
2368
+ */
2369
+ variantCount: number;
2370
+ }
2371
+ declare const FunctionGetTimeRangeStatsResponse: MessageFns$1<FunctionGetTimeRangeStatsResponse>;
2199
2372
  /**
2200
2373
  * contains all the info about a function that is needed to trigger the right
2201
2374
  * behaviour when using a FunctionHandler. Notably excludes things purely
@@ -2222,6 +2395,7 @@ interface FunctionHandleMetadata {
2222
2395
  inputPlaneRegion?: string | undefined;
2223
2396
  /** Use optional to ensure unset values default to None instead of 0 */
2224
2397
  maxObjectSizeBytes?: number | undefined;
2398
+ maxAsyncObjectSizeBytes?: number | undefined;
2225
2399
  /** (Optional) urls for flash services */
2226
2400
  ExperimentalFlashUrls: string[];
2227
2401
  supportedInputFormats: DataFormat[];
@@ -2391,6 +2565,11 @@ interface FunctionStats$1 {
2391
2565
  inputHeadroom: number;
2392
2566
  }
2393
2567
  declare const FunctionStats$1: MessageFns$1<FunctionStats$1>;
2568
+ interface FunctionStatsPercentiles {
2569
+ p50: number;
2570
+ p90: number;
2571
+ }
2572
+ declare const FunctionStatsPercentiles: MessageFns$1<FunctionStatsPercentiles>;
2394
2573
  interface FunctionUpdateSchedulingParamsRequest {
2395
2574
  functionId: string;
2396
2575
  warmPoolSizeOverride: number;
@@ -2398,6 +2577,7 @@ interface FunctionUpdateSchedulingParamsRequest {
2398
2577
  }
2399
2578
  declare const FunctionUpdateSchedulingParamsRequest: MessageFns$1<FunctionUpdateSchedulingParamsRequest>;
2400
2579
  interface FunctionUpdateSchedulingParamsResponse {
2580
+ currentSettings: AutoscalerSettings | undefined;
2401
2581
  }
2402
2582
  declare const FunctionUpdateSchedulingParamsResponse: MessageFns$1<FunctionUpdateSchedulingParamsResponse>;
2403
2583
  interface GPUConfig {
@@ -2475,6 +2655,22 @@ interface Image$1 {
2475
2655
  volumeMounts: VolumeMount[];
2476
2656
  }
2477
2657
  declare const Image$1: MessageFns$1<Image$1>;
2658
+ interface ImageBuildChainGetRequest {
2659
+ imageId: string;
2660
+ }
2661
+ declare const ImageBuildChainGetRequest: MessageFns$1<ImageBuildChainGetRequest>;
2662
+ interface ImageBuildChainGetResponse {
2663
+ buildSteps: ImageBuildStep[];
2664
+ }
2665
+ declare const ImageBuildChainGetResponse: MessageFns$1<ImageBuildChainGetResponse>;
2666
+ interface ImageBuildStep {
2667
+ imageId: string;
2668
+ startedAt: Date | undefined;
2669
+ finishedAt: Date | undefined;
2670
+ builderAppId: string;
2671
+ builderTaskId: string;
2672
+ }
2673
+ declare const ImageBuildStep: MessageFns$1<ImageBuildStep>;
2478
2674
  interface ImageContextFile {
2479
2675
  filename: string;
2480
2676
  data: Uint8Array;
@@ -2494,8 +2690,15 @@ interface ImageFromIdResponse {
2494
2690
  }
2495
2691
  declare const ImageFromIdResponse: MessageFns$1<ImageFromIdResponse>;
2496
2692
  interface ImageGetByTagRequest {
2497
- /** Full "name:tag" string. Must be non-empty. */
2693
+ /**
2694
+ * Named image reference: "[[workspace/]environment/]name[:tag]".
2695
+ * The tag suffix defaults to "latest" when omitted.
2696
+ */
2498
2697
  tag: string;
2698
+ /**
2699
+ * New clients should send environment name as a /-separated prefix of the `tag` field.
2700
+ * environment_name only accepted when tag has no environment or workspace prefix.
2701
+ */
2499
2702
  environmentName: string;
2500
2703
  }
2501
2704
  declare const ImageGetByTagRequest: MessageFns$1<ImageGetByTagRequest>;
@@ -2592,8 +2795,15 @@ interface ImageMetadata {
2592
2795
  declare const ImageMetadata: MessageFns$1<ImageMetadata>;
2593
2796
  interface ImagePublishRequest {
2594
2797
  imageId: string;
2595
- /** Full "name:tag" string. Must be non-empty. */
2798
+ /**
2799
+ * Named image reference: "[[workspace/]environment/]name[:tag]".
2800
+ * The tag suffix defaults to "latest" when omitted.
2801
+ */
2596
2802
  tag: string;
2803
+ /**
2804
+ * New clients should send environment name as a /-separated prefix of the `tag` field.
2805
+ * environment_name only accepted when tag has no environment or workspace prefix.
2806
+ */
2597
2807
  environmentName: string;
2598
2808
  /** Explicit opt-in required when publishing to a public environment. */
2599
2809
  allowPublic: boolean;
@@ -2617,8 +2827,15 @@ interface ImageTagRevisionsItem {
2617
2827
  }
2618
2828
  declare const ImageTagRevisionsItem: MessageFns$1<ImageTagRevisionsItem>;
2619
2829
  interface ImageTagRevisionsRequest {
2620
- /** Full "name:tag" string. Must be non-empty. */
2830
+ /**
2831
+ * Named image reference: "[[workspace/]environment/]name[:tag]".
2832
+ * The tag suffix defaults to "latest" when omitted.
2833
+ */
2621
2834
  tag: string;
2835
+ /**
2836
+ * New clients should send environment name as a /-separated prefix of the `tag` field.
2837
+ * environment_name only accepted when tag has no environment or workspace prefix.
2838
+ */
2622
2839
  environmentName: string;
2623
2840
  /** Defaults to 100. Values above 100 are rejected by the server. */
2624
2841
  maxObjects: number;
@@ -2695,6 +2912,7 @@ interface MapStartOrContinueRequest {
2695
2912
  functionCallId?: string | undefined;
2696
2913
  mapToken?: string | undefined;
2697
2914
  items: MapStartOrContinueItem[];
2915
+ proxied: boolean;
2698
2916
  }
2699
2917
  declare const MapStartOrContinueRequest: MessageFns$1<MapStartOrContinueRequest>;
2700
2918
  interface MapStartOrContinueResponse {
@@ -3273,6 +3491,7 @@ interface SandboxCreateRequest {
3273
3491
  declare const SandboxCreateRequest: MessageFns$1<SandboxCreateRequest>;
3274
3492
  interface SandboxCreateResponse {
3275
3493
  sandboxId: string;
3494
+ metadata: SandboxHandleMetadata | undefined;
3276
3495
  }
3277
3496
  declare const SandboxCreateResponse: MessageFns$1<SandboxCreateResponse>;
3278
3497
  interface SandboxCreateV2Request {
@@ -3280,12 +3499,17 @@ interface SandboxCreateV2Request {
3280
3499
  definition: Sandbox$1 | undefined;
3281
3500
  ephemeralSecrets: StringMap | undefined;
3282
3501
  tags: SandboxTag[];
3502
+ cloudBucketMountCredentials: {
3503
+ [key: string]: StringMap;
3504
+ };
3283
3505
  }
3284
3506
  declare const SandboxCreateV2Request: MessageFns$1<SandboxCreateV2Request>;
3285
3507
  interface SandboxCreateV2Response {
3286
3508
  sandboxId: string;
3287
3509
  tunnels: TunnelData[];
3288
3510
  taskId: string;
3511
+ metadata: SandboxHandleMetadata | undefined;
3512
+ commandRouterAccess: CommandRouterAccess$1 | undefined;
3289
3513
  }
3290
3514
  declare const SandboxCreateV2Response: MessageFns$1<SandboxCreateV2Response>;
3291
3515
  /**
@@ -3308,6 +3532,29 @@ interface SandboxGetCommandRouterAccessResponse {
3308
3532
  workerIpv4Address: string;
3309
3533
  }
3310
3534
  declare const SandboxGetCommandRouterAccessResponse: MessageFns$1<SandboxGetCommandRouterAccessResponse>;
3535
+ interface SandboxGetExitSnapshotRequest {
3536
+ sandboxId: string;
3537
+ timeout: number;
3538
+ }
3539
+ declare const SandboxGetExitSnapshotRequest: MessageFns$1<SandboxGetExitSnapshotRequest>;
3540
+ interface SandboxGetExitSnapshotResponse {
3541
+ success?: SandboxGetExitSnapshotResponse_Success | undefined;
3542
+ pending?: SandboxGetExitSnapshotResponse_Pending | undefined;
3543
+ error?: SandboxGetExitSnapshotResponse_Error | undefined;
3544
+ }
3545
+ declare const SandboxGetExitSnapshotResponse: MessageFns$1<SandboxGetExitSnapshotResponse>;
3546
+ interface SandboxGetExitSnapshotResponse_Success {
3547
+ imageId: string;
3548
+ }
3549
+ declare const SandboxGetExitSnapshotResponse_Success: MessageFns$1<SandboxGetExitSnapshotResponse_Success>;
3550
+ interface SandboxGetExitSnapshotResponse_Pending {
3551
+ }
3552
+ declare const SandboxGetExitSnapshotResponse_Pending: MessageFns$1<SandboxGetExitSnapshotResponse_Pending>;
3553
+ interface SandboxGetExitSnapshotResponse_Error {
3554
+ errorCode: SandboxGetExitSnapshotResponse_ErrorCode;
3555
+ message: string;
3556
+ }
3557
+ declare const SandboxGetExitSnapshotResponse_Error: MessageFns$1<SandboxGetExitSnapshotResponse_Error>;
3311
3558
  interface SandboxGetFromNameRequest {
3312
3559
  sandboxName: string;
3313
3560
  environmentName: string;
@@ -3316,6 +3563,7 @@ interface SandboxGetFromNameRequest {
3316
3563
  declare const SandboxGetFromNameRequest: MessageFns$1<SandboxGetFromNameRequest>;
3317
3564
  interface SandboxGetFromNameResponse {
3318
3565
  sandboxId: string;
3566
+ metadata: SandboxHandleMetadata | undefined;
3319
3567
  }
3320
3568
  declare const SandboxGetFromNameResponse: MessageFns$1<SandboxGetFromNameResponse>;
3321
3569
  interface SandboxGetLogsRequest {
@@ -3363,6 +3611,7 @@ interface SandboxGetTunnelsResponse {
3363
3611
  declare const SandboxGetTunnelsResponse: MessageFns$1<SandboxGetTunnelsResponse>;
3364
3612
  interface SandboxHandleMetadata {
3365
3613
  result: GenericResult | undefined;
3614
+ appId: string;
3366
3615
  }
3367
3616
  declare const SandboxHandleMetadata: MessageFns$1<SandboxHandleMetadata>;
3368
3617
  interface SandboxInfo {
@@ -3381,6 +3630,7 @@ interface SandboxInfo {
3381
3630
  readyAt?: number | undefined;
3382
3631
  readinessProbe?: Probe$1 | undefined;
3383
3632
  tunnels: TunnelData[];
3633
+ metadata: SandboxHandleMetadata | undefined;
3384
3634
  }
3385
3635
  declare const SandboxInfo: MessageFns$1<SandboxInfo>;
3386
3636
  interface SandboxListRequest {
@@ -3409,6 +3659,30 @@ interface SandboxRestoreResponse {
3409
3659
  sandboxId: string;
3410
3660
  }
3411
3661
  declare const SandboxRestoreResponse: MessageFns$1<SandboxRestoreResponse>;
3662
+ interface SandboxRestoreV2Request {
3663
+ snapshotId: string;
3664
+ sandboxNameOverride: string;
3665
+ sandboxNameOverrideType: SandboxRestoreRequest_SandboxNameOverrideType;
3666
+ /** For internal debugging use only. */
3667
+ workerId: string;
3668
+ }
3669
+ declare const SandboxRestoreV2Request: MessageFns$1<SandboxRestoreV2Request>;
3670
+ interface SandboxRestoreV2Response {
3671
+ sandboxId: string;
3672
+ tunnels: TunnelData[];
3673
+ taskId: string;
3674
+ metadata: SandboxHandleMetadata | undefined;
3675
+ commandRouterAccess: CommandRouterAccess$1 | undefined;
3676
+ }
3677
+ declare const SandboxRestoreV2Response: MessageFns$1<SandboxRestoreV2Response>;
3678
+ interface SandboxSetNameRequest {
3679
+ sandboxId: string;
3680
+ name: string;
3681
+ }
3682
+ declare const SandboxSetNameRequest: MessageFns$1<SandboxSetNameRequest>;
3683
+ interface SandboxSetNameResponse {
3684
+ }
3685
+ declare const SandboxSetNameResponse: MessageFns$1<SandboxSetNameResponse>;
3412
3686
  interface SandboxSnapshotFsAsyncGetRequest {
3413
3687
  imageId: string;
3414
3688
  timeout: number;
@@ -3440,8 +3714,13 @@ interface SandboxSnapshotGetRequest {
3440
3714
  declare const SandboxSnapshotGetRequest: MessageFns$1<SandboxSnapshotGetRequest>;
3441
3715
  interface SandboxSnapshotGetResponse {
3442
3716
  snapshotId: string;
3717
+ handleMetadata: SandboxSnapshotHandleMetadata | undefined;
3443
3718
  }
3444
3719
  declare const SandboxSnapshotGetResponse: MessageFns$1<SandboxSnapshotGetResponse>;
3720
+ interface SandboxSnapshotHandleMetadata {
3721
+ isV2: boolean;
3722
+ }
3723
+ declare const SandboxSnapshotHandleMetadata: MessageFns$1<SandboxSnapshotHandleMetadata>;
3445
3724
  interface SandboxSnapshotRequest {
3446
3725
  sandboxId: string;
3447
3726
  }
@@ -3503,6 +3782,7 @@ interface SandboxWaitRequest {
3503
3782
  declare const SandboxWaitRequest: MessageFns$1<SandboxWaitRequest>;
3504
3783
  interface SandboxWaitResponse {
3505
3784
  result: GenericResult | undefined;
3785
+ metadata: SandboxHandleMetadata | undefined;
3506
3786
  }
3507
3787
  declare const SandboxWaitResponse: MessageFns$1<SandboxWaitResponse>;
3508
3788
  interface SandboxWaitUntilReadyRequest {
@@ -3723,7 +4003,6 @@ interface TaskClusterHelloRequest {
3723
4003
  taskId: string;
3724
4004
  containerIp: string;
3725
4005
  imexHostIp: string;
3726
- imexFabricId: string;
3727
4006
  }
3728
4007
  declare const TaskClusterHelloRequest: MessageFns$1<TaskClusterHelloRequest>;
3729
4008
  interface TaskClusterHelloResponse {
@@ -3737,6 +4016,8 @@ interface TaskClusterHelloResponse {
3737
4016
  * and otherwise absent on non-NVL72 systems
3738
4017
  */
3739
4018
  imexPeerIps: string[];
4019
+ /** GPU-memory-fabric labels, ordered by cluster rank */
4020
+ fabricIds: string[];
3740
4021
  }
3741
4022
  declare const TaskClusterHelloResponse: MessageFns$1<TaskClusterHelloResponse>;
3742
4023
  interface TaskCurrentInputsResponse {
@@ -3796,7 +4077,7 @@ interface TaskLogs {
3796
4077
  taskProgress: TaskProgress | undefined;
3797
4078
  functionCallId: string;
3798
4079
  inputId: string;
3799
- timestampNs: number;
4080
+ timestampNs: string;
3800
4081
  containerId: string;
3801
4082
  containerName: string;
3802
4083
  }
@@ -3944,6 +4225,12 @@ interface UploadUrlList {
3944
4225
  items: string[];
3945
4226
  }
3946
4227
  declare const UploadUrlList: MessageFns$1<UploadUrlList>;
4228
+ interface UserGroupEnvironmentSetRequest {
4229
+ environmentId: string;
4230
+ userGroupId: string;
4231
+ role: EnvironmentRole;
4232
+ }
4233
+ declare const UserGroupEnvironmentSetRequest: MessageFns$1<UserGroupEnvironmentSetRequest>;
3947
4234
  interface UserIdentity {
3948
4235
  userId: string;
3949
4236
  username: string;
@@ -4286,6 +4573,23 @@ interface WebhookTokenListResponse {
4286
4573
  tokens: WebhookToken[];
4287
4574
  }
4288
4575
  declare const WebhookTokenListResponse: MessageFns$1<WebhookTokenListResponse>;
4576
+ interface WorkspaceBillingRatesRequest {
4577
+ }
4578
+ declare const WorkspaceBillingRatesRequest: MessageFns$1<WorkspaceBillingRatesRequest>;
4579
+ interface WorkspaceBillingRatesResponse {
4580
+ /** compute rates are per unit per hour, storage rate is per GiB-month */
4581
+ rates: {
4582
+ [key: string]: string;
4583
+ };
4584
+ deprecationWarnings: {
4585
+ [key: string]: string;
4586
+ };
4587
+ deprecationErrors: {
4588
+ [key: string]: string;
4589
+ };
4590
+ formatted: string;
4591
+ }
4592
+ declare const WorkspaceBillingRatesResponse: MessageFns$1<WorkspaceBillingRatesResponse>;
4289
4593
  interface WorkspaceBillingReportItem {
4290
4594
  objectId: string;
4291
4595
  description: string;
@@ -4312,23 +4616,23 @@ interface WorkspaceBillingReportRequest {
4312
4616
  }
4313
4617
  declare const WorkspaceBillingReportRequest: MessageFns$1<WorkspaceBillingReportRequest>;
4314
4618
  interface WorkspaceBillingSummaryRequest {
4619
+ /** all query intervals are implicitly one month long (to line up with billing cycles) */
4315
4620
  startTimestamp: Date | undefined;
4316
- endTimestamp: Date | undefined;
4317
4621
  }
4318
4622
  declare const WorkspaceBillingSummaryRequest: MessageFns$1<WorkspaceBillingSummaryRequest>;
4319
4623
  interface WorkspaceBillingSummaryResponse {
4320
4624
  startTimestamp: Date | undefined;
4321
4625
  endTimestamp: Date | undefined;
4322
4626
  meteredCost: string;
4323
- planCost: string;
4324
- creditsApplied: string;
4325
- reservationsDiscount: string;
4326
- volumesDiscount: string;
4327
4627
  billedCost: string;
4328
- /** keyed by deployed, ephemeral, volume, notebook */
4628
+ /** keyed by deployed, ephemeral, volume, notebook, tokens */
4329
4629
  meteredCostBreakdown: {
4330
4630
  [key: string]: string;
4331
4631
  };
4632
+ /** keyed by plan, credits, reservations, storage */
4633
+ adjustments: {
4634
+ [key: string]: string;
4635
+ };
4332
4636
  }
4333
4637
  declare const WorkspaceBillingSummaryResponse: MessageFns$1<WorkspaceBillingSummaryResponse>;
4334
4638
  interface WorkspaceDashboardUrlRequest {
@@ -4514,6 +4818,14 @@ declare const ModalClientDefinition: {
4514
4818
  readonly responseStream: false;
4515
4819
  readonly options: {};
4516
4820
  };
4821
+ readonly appPromote: {
4822
+ readonly name: "AppPromote";
4823
+ readonly requestType: MessageFns$1<AppPromoteRequest>;
4824
+ readonly requestStream: false;
4825
+ readonly responseType: MessageFns$1<AppPromoteResponse>;
4826
+ readonly responseStream: false;
4827
+ readonly options: {};
4828
+ };
4517
4829
  readonly appPublish: {
4518
4830
  readonly name: "AppPublish";
4519
4831
  readonly requestType: MessageFns$1<AppPublishRequest>;
@@ -4982,6 +5294,14 @@ declare const ModalClientDefinition: {
4982
5294
  readonly responseStream: false;
4983
5295
  readonly options: {};
4984
5296
  };
5297
+ readonly environmentGetRoles: {
5298
+ readonly name: "EnvironmentGetRoles";
5299
+ readonly requestType: MessageFns$1<EnvironmentGetRolesRequest>;
5300
+ readonly requestStream: false;
5301
+ readonly responseType: MessageFns$1<EnvironmentGetRolesResponse>;
5302
+ readonly responseStream: false;
5303
+ readonly options: {};
5304
+ };
4985
5305
  readonly environmentList: {
4986
5306
  readonly name: "EnvironmentList";
4987
5307
  readonly requestType: MessageFns$2<Empty>;
@@ -5006,6 +5326,14 @@ declare const ModalClientDefinition: {
5006
5326
  readonly responseStream: false;
5007
5327
  readonly options: {};
5008
5328
  };
5329
+ readonly environmentSetDefaultMemberRole: {
5330
+ readonly name: "EnvironmentSetDefaultMemberRole";
5331
+ readonly requestType: MessageFns$1<EnvironmentSetDefaultMemberRoleRequest>;
5332
+ readonly requestStream: false;
5333
+ readonly responseType: MessageFns$2<Empty>;
5334
+ readonly responseStream: false;
5335
+ readonly options: {};
5336
+ };
5009
5337
  readonly environmentSetManaged: {
5010
5338
  readonly name: "EnvironmentSetManaged";
5011
5339
  readonly requestType: MessageFns$1<EnvironmentSetManagedRequest>;
@@ -5104,6 +5432,14 @@ declare const ModalClientDefinition: {
5104
5432
  readonly responseStream: true;
5105
5433
  readonly options: {};
5106
5434
  };
5435
+ readonly functionCallGetInfo: {
5436
+ readonly name: "FunctionCallGetInfo";
5437
+ readonly requestType: MessageFns$1<FunctionCallGetInfoRequest>;
5438
+ readonly requestStream: false;
5439
+ readonly responseType: MessageFns$1<FunctionCallGetInfoResponse>;
5440
+ readonly responseStream: false;
5441
+ readonly options: {};
5442
+ };
5107
5443
  readonly functionCallList: {
5108
5444
  readonly name: "FunctionCallList";
5109
5445
  readonly requestType: MessageFns$1<FunctionCallListRequest>;
@@ -5195,6 +5531,14 @@ declare const ModalClientDefinition: {
5195
5531
  readonly responseStream: false;
5196
5532
  readonly options: {};
5197
5533
  };
5534
+ readonly functionGetTimeRangeStats: {
5535
+ readonly name: "FunctionGetTimeRangeStats";
5536
+ readonly requestType: MessageFns$1<FunctionGetTimeRangeStatsRequest>;
5537
+ readonly requestStream: false;
5538
+ readonly responseType: MessageFns$1<FunctionGetTimeRangeStatsResponse>;
5539
+ readonly responseStream: false;
5540
+ readonly options: {};
5541
+ };
5198
5542
  readonly functionMap: {
5199
5543
  readonly name: "FunctionMap";
5200
5544
  readonly requestType: MessageFns$1<FunctionMapRequest>;
@@ -5253,6 +5597,14 @@ declare const ModalClientDefinition: {
5253
5597
  readonly options: {};
5254
5598
  };
5255
5599
  /** Images */
5600
+ readonly imageBuildChainGet: {
5601
+ readonly name: "ImageBuildChainGet";
5602
+ readonly requestType: MessageFns$1<ImageBuildChainGetRequest>;
5603
+ readonly requestStream: false;
5604
+ readonly responseType: MessageFns$1<ImageBuildChainGetResponse>;
5605
+ readonly responseStream: false;
5606
+ readonly options: {};
5607
+ };
5256
5608
  readonly imageDelete: {
5257
5609
  readonly name: "ImageDelete";
5258
5610
  readonly requestType: MessageFns$1<ImageDeleteRequest>;
@@ -5531,6 +5883,14 @@ declare const ModalClientDefinition: {
5531
5883
  readonly responseStream: false;
5532
5884
  readonly options: {};
5533
5885
  };
5886
+ readonly sandboxCreateConnectTokenV2: {
5887
+ readonly name: "SandboxCreateConnectTokenV2";
5888
+ readonly requestType: MessageFns$1<SandboxCreateConnectTokenRequest>;
5889
+ readonly requestStream: false;
5890
+ readonly responseType: MessageFns$1<SandboxCreateConnectTokenResponse>;
5891
+ readonly responseStream: false;
5892
+ readonly options: {};
5893
+ };
5534
5894
  readonly sandboxCreateV2: {
5535
5895
  readonly name: "SandboxCreateV2";
5536
5896
  readonly requestType: MessageFns$1<SandboxCreateV2Request>;
@@ -5547,6 +5907,22 @@ declare const ModalClientDefinition: {
5547
5907
  readonly responseStream: false;
5548
5908
  readonly options: {};
5549
5909
  };
5910
+ readonly sandboxGetExitSnapshot: {
5911
+ readonly name: "SandboxGetExitSnapshot";
5912
+ readonly requestType: MessageFns$1<SandboxGetExitSnapshotRequest>;
5913
+ readonly requestStream: false;
5914
+ readonly responseType: MessageFns$1<SandboxGetExitSnapshotResponse>;
5915
+ readonly responseStream: false;
5916
+ readonly options: {};
5917
+ };
5918
+ readonly sandboxGetExitSnapshotV2: {
5919
+ readonly name: "SandboxGetExitSnapshotV2";
5920
+ readonly requestType: MessageFns$1<SandboxGetExitSnapshotRequest>;
5921
+ readonly requestStream: false;
5922
+ readonly responseType: MessageFns$1<SandboxGetExitSnapshotResponse>;
5923
+ readonly responseStream: false;
5924
+ readonly options: {};
5925
+ };
5550
5926
  readonly sandboxGetFromName: {
5551
5927
  readonly name: "SandboxGetFromName";
5552
5928
  readonly requestType: MessageFns$1<SandboxGetFromNameRequest>;
@@ -5636,6 +6012,22 @@ declare const ModalClientDefinition: {
5636
6012
  readonly responseStream: false;
5637
6013
  readonly options: {};
5638
6014
  };
6015
+ readonly sandboxRestoreV2: {
6016
+ readonly name: "SandboxRestoreV2";
6017
+ readonly requestType: MessageFns$1<SandboxRestoreV2Request>;
6018
+ readonly requestStream: false;
6019
+ readonly responseType: MessageFns$1<SandboxRestoreV2Response>;
6020
+ readonly responseStream: false;
6021
+ readonly options: {};
6022
+ };
6023
+ readonly sandboxSetName: {
6024
+ readonly name: "SandboxSetName";
6025
+ readonly requestType: MessageFns$1<SandboxSetNameRequest>;
6026
+ readonly requestStream: false;
6027
+ readonly responseType: MessageFns$1<SandboxSetNameResponse>;
6028
+ readonly responseStream: false;
6029
+ readonly options: {};
6030
+ };
5639
6031
  readonly sandboxSnapshot: {
5640
6032
  readonly name: "SandboxSnapshot";
5641
6033
  readonly requestType: MessageFns$1<SandboxSnapshotRequest>;
@@ -5979,6 +6371,15 @@ declare const ModalClientDefinition: {
5979
6371
  readonly responseStream: false;
5980
6372
  readonly options: {};
5981
6373
  };
6374
+ /** User groups */
6375
+ readonly userGroupEnvironmentSet: {
6376
+ readonly name: "UserGroupEnvironmentSet";
6377
+ readonly requestType: MessageFns$1<UserGroupEnvironmentSetRequest>;
6378
+ readonly requestStream: false;
6379
+ readonly responseType: MessageFns$2<Empty>;
6380
+ readonly responseStream: false;
6381
+ readonly options: {};
6382
+ };
5982
6383
  /** Volumes */
5983
6384
  readonly volumeCommit: {
5984
6385
  readonly name: "VolumeCommit";
@@ -6182,6 +6583,14 @@ declare const ModalClientDefinition: {
6182
6583
  readonly options: {};
6183
6584
  };
6184
6585
  /** Workspaces */
6586
+ readonly workspaceBillingRates: {
6587
+ readonly name: "WorkspaceBillingRates";
6588
+ readonly requestType: MessageFns$1<WorkspaceBillingRatesRequest>;
6589
+ readonly requestStream: false;
6590
+ readonly responseType: MessageFns$1<WorkspaceBillingRatesResponse>;
6591
+ readonly responseStream: false;
6592
+ readonly options: {};
6593
+ };
6185
6594
  readonly workspaceBillingReport: {
6186
6595
  readonly name: "WorkspaceBillingReport";
6187
6596
  readonly requestType: MessageFns$1<WorkspaceBillingReportRequest>;
@@ -6373,6 +6782,227 @@ declare class CloudBucketMount {
6373
6782
  toProto(mountPath: string): CloudBucketMount$1;
6374
6783
  }
6375
6784
 
6785
+ type LogSource = "system" | "stdout" | "stderr";
6786
+ interface LogEntry {
6787
+ readonly message: string;
6788
+ readonly source: LogSource;
6789
+ readonly timestamp: Date;
6790
+ readonly objectId: string;
6791
+ readonly contextIds: string[];
6792
+ }
6793
+ interface FunctionLogFetchParams {
6794
+ /** Start of the UTC time range. */
6795
+ since: Date;
6796
+ /** End of the UTC time range. Defaults to the current time. */
6797
+ until?: Date;
6798
+ /** Filter by source: `stdout`, `stderr`, or `system`. */
6799
+ source?: LogSource;
6800
+ /** Filter by text contained in the log message. */
6801
+ searchText?: string;
6802
+ }
6803
+ interface FunctionLogTailParams {
6804
+ /** Number of log entries to return. Defaults to 100. */
6805
+ entries?: number;
6806
+ /** Filter by source: `stdout`, `stderr`, or `system`. */
6807
+ source?: LogSource;
6808
+ }
6809
+ interface FunctionCallLogTailParams {
6810
+ /** Number of log entries to return. Defaults to 100. */
6811
+ entries?: number;
6812
+ /** Filter by source: `stdout`, `stderr`, or `system`. */
6813
+ source?: LogSource;
6814
+ }
6815
+ type LogTailParams = FunctionCallLogTailParams | FunctionLogTailParams;
6816
+ interface FunctionLogStreamParams {
6817
+ /**
6818
+ * Number of milliseconds to wait between log entries before ending the
6819
+ * stream. By default, the stream blocks until it is interrupted.
6820
+ */
6821
+ timeoutMs?: number;
6822
+ }
6823
+ interface FunctionCallLogStreamParams {
6824
+ /**
6825
+ * Number of milliseconds to wait between log entries before ending the
6826
+ * stream. By default, the stream blocks until it is interrupted.
6827
+ */
6828
+ timeoutMs?: number;
6829
+ }
6830
+ type LogStreamParams = FunctionCallLogStreamParams | FunctionLogStreamParams;
6831
+ interface FunctionCallLogFetchParams {
6832
+ /**
6833
+ * Start of the UTC time range. Defaults to the start of the FunctionCall.
6834
+ */
6835
+ since?: Date;
6836
+ /** End of the UTC time range. Defaults to the current time. */
6837
+ until?: Date;
6838
+ /** Filter by source: `stdout`, `stderr`, or `system`. */
6839
+ source?: LogSource;
6840
+ /** Filter by text contained in the log message. */
6841
+ searchText?: string;
6842
+ }
6843
+ interface FunctionLogs {
6844
+ fetch(params: FunctionLogFetchParams): AsyncIterable<LogEntry>;
6845
+ tail(params?: FunctionLogTailParams): AsyncIterable<LogEntry>;
6846
+ stream(params?: FunctionLogStreamParams): AsyncIterable<LogEntry>;
6847
+ }
6848
+ interface FunctionCallLogs extends Omit<FunctionLogs, "fetch"> {
6849
+ fetch(params?: FunctionCallLogFetchParams): AsyncIterable<LogEntry>;
6850
+ tail(params?: FunctionCallLogTailParams): AsyncIterable<LogEntry>;
6851
+ stream(params?: FunctionCallLogStreamParams): AsyncIterable<LogEntry>;
6852
+ }
6853
+ interface LogQueryParams {
6854
+ client: ModalClient;
6855
+ objectId: string;
6856
+ appId: string;
6857
+ functionId: string;
6858
+ functionCallId: string;
6859
+ }
6860
+ declare class LogsManager {
6861
+ protected readonly params: LogQueryParams;
6862
+ constructor(params: LogQueryParams);
6863
+ fetch(params: FunctionLogFetchParams): AsyncIterable<LogEntry>;
6864
+ tail(params?: LogTailParams): AsyncIterable<LogEntry>;
6865
+ stream(params?: LogStreamParams): AsyncIterable<LogEntry>;
6866
+ }
6867
+ /** Namespace for Function log APIs. */
6868
+ declare class FunctionLogsManager extends LogsManager implements FunctionLogs {
6869
+ /** @ignore */
6870
+ constructor(client: ModalClient, objectId: string, appId: string);
6871
+ /**
6872
+ * Fetch Function logs corresponding to a UTC time range and optional
6873
+ * filters.
6874
+ *
6875
+ * Entries are returned in chronological order.
6876
+ *
6877
+ * @returns An async iterable of {@link LogEntry} objects.
6878
+ *
6879
+ * @example
6880
+ * ```typescript
6881
+ * import { ModalClient } from "modal";
6882
+ *
6883
+ * const modal = new ModalClient();
6884
+ * const function_ = await modal.functions.fromName("my-app", "train");
6885
+ *
6886
+ * for await (const entry of function_.logs.fetch({
6887
+ * since: new Date(Date.now() - 4 * 60 * 60 * 1_000),
6888
+ * source: "stdout",
6889
+ * })) {
6890
+ * process.stdout.write(entry.message);
6891
+ * }
6892
+ * ```
6893
+ */
6894
+ fetch(params: FunctionLogFetchParams): AsyncIterable<LogEntry>;
6895
+ /**
6896
+ * Fetch the most recent Function logs.
6897
+ *
6898
+ * Entries are returned in chronological order.
6899
+ *
6900
+ * @returns An async iterable of {@link LogEntry} objects.
6901
+ *
6902
+ * @example
6903
+ * ```typescript
6904
+ * import { ModalClient } from "modal";
6905
+ *
6906
+ * const modal = new ModalClient();
6907
+ * const function_ = await modal.functions.fromName("my-app", "train");
6908
+ *
6909
+ * for await (const entry of function_.logs.tail({ entries: 20 })) {
6910
+ * process.stdout.write(entry.message);
6911
+ * }
6912
+ * ```
6913
+ */
6914
+ tail(params?: FunctionLogTailParams): AsyncIterable<LogEntry>;
6915
+ /**
6916
+ * Stream new Function logs until the timeout is reached.
6917
+ *
6918
+ * @returns An async iterable of {@link LogEntry} objects as they arrive.
6919
+ *
6920
+ * @example
6921
+ * ```typescript
6922
+ * import { ModalClient } from "modal";
6923
+ *
6924
+ * const modal = new ModalClient();
6925
+ * const function_ = await modal.functions.fromName("my-app", "train");
6926
+ *
6927
+ * for await (const entry of function_.logs.stream({ timeoutMs: 60_000 })) {
6928
+ * process.stdout.write(entry.message);
6929
+ * }
6930
+ * ```
6931
+ */
6932
+ stream(params?: FunctionLogStreamParams): AsyncIterable<LogEntry>;
6933
+ }
6934
+ /** Namespace for FunctionCall log APIs. */
6935
+ declare class FunctionCallLogsManager extends LogsManager implements FunctionCallLogs {
6936
+ constructor(client: ModalClient, objectId: string, appId: string, functionId: string);
6937
+ /**
6938
+ * Fetch logs associated with this FunctionCall corresponding to a UTC time
6939
+ * range and optional filters.
6940
+ *
6941
+ * When `since` is omitted, logs are fetched from the start of the
6942
+ * FunctionCall. Entries are returned in chronological order.
6943
+ *
6944
+ * @returns An async iterable of {@link LogEntry} objects.
6945
+ *
6946
+ * @example
6947
+ * ```typescript
6948
+ * import { ModalClient } from "modal";
6949
+ *
6950
+ * const modal = new ModalClient();
6951
+ * const function_ = await modal.functions.fromName("my-app", "train");
6952
+ * const call = await function_.spawn([]);
6953
+ *
6954
+ * for await (const entry of call.logs.fetch()) {
6955
+ * console.log(entry.timestamp, entry.message);
6956
+ * }
6957
+ * ```
6958
+ */
6959
+ fetch(params?: FunctionCallLogFetchParams): AsyncIterable<LogEntry>;
6960
+ /**
6961
+ * Fetch the most recent FunctionCall logs.
6962
+ *
6963
+ * Entries are returned in chronological order.
6964
+ *
6965
+ * @returns An async iterable of {@link LogEntry} objects.
6966
+ *
6967
+ * @example
6968
+ * ```typescript
6969
+ * import { ModalClient } from "modal";
6970
+ *
6971
+ * const modal = new ModalClient();
6972
+ * const function_ = await modal.functions.fromName("my-app", "train");
6973
+ * const call = await function_.spawn([]);
6974
+ *
6975
+ * for await (const entry of call.logs.tail({ entries: 10 })) {
6976
+ * console.log(entry.timestamp, entry.message);
6977
+ * }
6978
+ * ```
6979
+ */
6980
+ tail(params?: FunctionCallLogTailParams): AsyncIterable<LogEntry>;
6981
+ /**
6982
+ * Stream new FunctionCall logs until the timeout is reached or the
6983
+ * FunctionCall is observed to have completed.
6984
+ *
6985
+ * The completion check is best-effort. If completion cannot be determined,
6986
+ * the stream continues until the timeout is reached.
6987
+ *
6988
+ * @returns An async iterable of {@link LogEntry} objects as they arrive.
6989
+ *
6990
+ * @example
6991
+ * ```typescript
6992
+ * import { ModalClient } from "modal";
6993
+ *
6994
+ * const modal = new ModalClient();
6995
+ * const function_ = await modal.functions.fromName("my-app", "train");
6996
+ * const call = await function_.spawn([]);
6997
+ *
6998
+ * for await (const entry of call.logs.stream()) {
6999
+ * process.stdout.write(entry.message);
7000
+ * }
7001
+ * ```
7002
+ */
7003
+ stream(params?: FunctionCallLogStreamParams): AsyncIterable<LogEntry>;
7004
+ }
7005
+
6376
7006
  /**
6377
7007
  * Service for managing {@link FunctionCall}s.
6378
7008
  *
@@ -6408,11 +7038,23 @@ declare class FunctionCall {
6408
7038
  #private;
6409
7039
  readonly functionCallId: string;
6410
7040
  /** @ignore */
6411
- constructor(client: ModalClient, functionCallId: string);
7041
+ constructor(client: ModalClient, functionCallId: string, appId: string, functionId: string);
6412
7042
  /** Get the result of a FunctionCall, optionally waiting with a timeout. */
6413
7043
  get(params?: FunctionCallGetParams): Promise<any>;
6414
7044
  /** Cancel a running FunctionCall. */
6415
7045
  cancel(params?: FunctionCallCancelParams): Promise<void>;
7046
+ /**
7047
+ * Access logs for this FunctionCall.
7048
+ *
7049
+ * Use {@link FunctionCallLogsManager#fetch fetch()} to read logs from a UTC
7050
+ * time range, {@link FunctionCallLogsManager#tail tail()} to read the most
7051
+ * recent logs, and {@link FunctionCallLogsManager#stream stream()} to follow
7052
+ * new logs as they arrive.
7053
+ *
7054
+ * See also: [`modal app logs`](https://modal.com/docs/cli/latest/app#modal-app-logs)
7055
+ * for CLI access to logs for an App.
7056
+ */
7057
+ get logs(): FunctionCallLogsManager;
6416
7058
  }
6417
7059
 
6418
7060
  type HeartbeatFunction = () => Promise<any>;
@@ -6549,6 +7191,12 @@ interface FunctionUpdateAutoscalerParams {
6549
7191
  bufferContainers?: number;
6550
7192
  scaledownWindowMs?: number;
6551
7193
  }
7194
+ type FunctionAutoscalerSettings = {
7195
+ minContainers?: number;
7196
+ maxContainers?: number;
7197
+ bufferContainers?: number;
7198
+ scaledownWindowMs?: number;
7199
+ };
6552
7200
  /** Configuration options for {@link Function_#withOptions Function_.withOptions()}. */
6553
7201
  type FunctionWithOptionsParams = {
6554
7202
  cpu?: number;
@@ -6590,6 +7238,18 @@ declare class Function_ {
6590
7238
  readonly methodName?: string;
6591
7239
  /** @ignore */
6592
7240
  constructor(client: ModalClient, functionId: string, methodName?: string, functionHandleMetadata?: FunctionHandleMetadata, options?: FunctionOptions);
7241
+ /**
7242
+ * Access logs for this Function.
7243
+ *
7244
+ * Use {@link FunctionLogsManager#fetch fetch()} to read logs from a UTC time
7245
+ * range, {@link FunctionLogsManager#tail tail()} to read the most recent
7246
+ * logs, and {@link FunctionLogsManager#stream stream()} to follow new logs as
7247
+ * they arrive.
7248
+ *
7249
+ * See also: [`modal app logs`](https://modal.com/docs/cli/latest/app#modal-app-logs)
7250
+ * for CLI access to logs for an App.
7251
+ */
7252
+ get logs(): FunctionLogsManager;
6593
7253
  /** Override the static Function configuration at runtime. */
6594
7254
  withOptions(options: FunctionWithOptionsParams): Function_;
6595
7255
  /** Override the static Function concurrency configuration at runtime. */
@@ -6603,7 +7263,7 @@ declare class Function_ {
6603
7263
  remote(args?: any[], kwargs?: Record<string, any>): Promise<any>;
6604
7264
  spawn(args?: any[], kwargs?: Record<string, any>): Promise<FunctionCall>;
6605
7265
  getCurrentStats(): Promise<FunctionStats>;
6606
- updateAutoscaler(params: FunctionUpdateAutoscalerParams): Promise<void>;
7266
+ updateAutoscaler(params: FunctionUpdateAutoscalerParams): Promise<FunctionAutoscalerSettings>;
6607
7267
  /**
6608
7268
  * URL for addressing the Web Function via HTTP.
6609
7269
  * @returns The web URL, or undefined if this is not a Web Function
@@ -6990,6 +7650,14 @@ interface TaskContainerCreateRequest {
6990
7650
  secretIds: string[];
6991
7651
  /** Volumes to mount into the container. */
6992
7652
  volumeMounts: VolumeMount[];
7653
+ /**
7654
+ * Outbound network policy for the sidecar, independent of the main
7655
+ * container. When unset, defaults to open network access. BLOCKED is not
7656
+ * accepted: a blocked sidecar has no IP and cannot reach the main container.
7657
+ */
7658
+ networkAccess?: NetworkAccess | undefined;
7659
+ /** Optional PTY info for sidecar. */
7660
+ ptyInfo?: PTYInfo | undefined;
6993
7661
  }
6994
7662
  declare const TaskContainerCreateRequest: MessageFns<TaskContainerCreateRequest>;
6995
7663
  interface TaskContainerCreateResponse {
@@ -7095,6 +7763,17 @@ declare const TaskExecStartRequest: MessageFns<TaskExecStartRequest>;
7095
7763
  interface TaskExecStartResponse {
7096
7764
  }
7097
7765
  declare const TaskExecStartResponse: MessageFns<TaskExecStartResponse>;
7766
+ interface TaskExecStdinStatusResponse {
7767
+ /**
7768
+ * Number of bytes the server has accepted for this exec so far.
7769
+ * A streaming client that lost its connection should resume sending at this
7770
+ * offset.
7771
+ */
7772
+ numBytesWritten: number;
7773
+ /** True if stdin has already been closed (EOF sent) for this exec. */
7774
+ closed: boolean;
7775
+ }
7776
+ declare const TaskExecStdinStatusResponse: MessageFns<TaskExecStdinStatusResponse>;
7098
7777
  interface TaskExecStdinWriteResponse {
7099
7778
  }
7100
7779
  declare const TaskExecStdinWriteResponse: MessageFns<TaskExecStdinWriteResponse>;
@@ -7119,10 +7798,14 @@ interface TaskMountDirectoryRequest {
7119
7798
  * This key is not persisted by Modal.
7120
7799
  */
7121
7800
  customerSuppliedEncryptionKey?: Uint8Array | undefined;
7801
+ /** Fully qualified target container ID. Empty targets the main container. */
7802
+ containerId: string;
7122
7803
  }
7123
7804
  declare const TaskMountDirectoryRequest: MessageFns<TaskMountDirectoryRequest>;
7124
7805
  interface TaskReloadVolumesRequest {
7125
7806
  taskId: string;
7807
+ /** Fully qualified target container ID. Empty targets the main container. */
7808
+ containerId: string;
7126
7809
  }
7127
7810
  declare const TaskReloadVolumesRequest: MessageFns<TaskReloadVolumesRequest>;
7128
7811
  interface TaskSetNetworkAccessRequest {
@@ -7158,6 +7841,8 @@ interface TaskSnapshotDirectoryRequest {
7158
7841
  * metadata keys. This key is not persisted by Modal.
7159
7842
  */
7160
7843
  customerSuppliedEncryptionKey?: Uint8Array | undefined;
7844
+ /** Fully qualified target container ID. Empty targets the main container. */
7845
+ containerId: string;
7161
7846
  }
7162
7847
  declare const TaskSnapshotDirectoryRequest: MessageFns<TaskSnapshotDirectoryRequest>;
7163
7848
  interface TaskSnapshotDirectoryResponse {
@@ -7183,15 +7868,28 @@ interface TaskSnapshotFilesystemRequest {
7183
7868
  * metadata keys. This key is not persisted by Modal.
7184
7869
  */
7185
7870
  customerSuppliedEncryptionKey?: Uint8Array | undefined;
7871
+ /** Fully qualified target container ID. Empty targets the main container. */
7872
+ containerId: string;
7186
7873
  }
7187
7874
  declare const TaskSnapshotFilesystemRequest: MessageFns<TaskSnapshotFilesystemRequest>;
7188
7875
  interface TaskSnapshotFilesystemResponse {
7189
7876
  imageId: string;
7190
7877
  }
7191
7878
  declare const TaskSnapshotFilesystemResponse: MessageFns<TaskSnapshotFilesystemResponse>;
7879
+ interface TaskSnapshotMemoryRequest {
7880
+ taskId: string;
7881
+ idempotencyKey: string;
7882
+ }
7883
+ declare const TaskSnapshotMemoryRequest: MessageFns<TaskSnapshotMemoryRequest>;
7884
+ interface TaskSnapshotMemoryResponse {
7885
+ snapshotId: string;
7886
+ }
7887
+ declare const TaskSnapshotMemoryResponse: MessageFns<TaskSnapshotMemoryResponse>;
7192
7888
  interface TaskUnmountDirectoryRequest {
7193
7889
  taskId: string;
7194
7890
  path: Uint8Array;
7891
+ /** Fully qualified target container ID. Empty targets the main container. */
7892
+ containerId: string;
7195
7893
  }
7196
7894
  declare const TaskUnmountDirectoryRequest: MessageFns<TaskUnmountDirectoryRequest>;
7197
7895
  type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
@@ -7227,6 +7925,27 @@ interface Profile {
7227
7925
  maxThrottleWaitSecs?: number;
7228
7926
  }
7229
7927
 
7928
+ /**
7929
+ * @internal
7930
+ * @hidden
7931
+ */
7932
+ type CommandRouterAccess = {
7933
+ url: string;
7934
+ jwt: string;
7935
+ };
7936
+ /**
7937
+ * Seekable byte source for streaming stdin uploads.
7938
+ *
7939
+ * @internal
7940
+ * @hidden
7941
+ */
7942
+ interface StdinSource {
7943
+ /**
7944
+ * Return a fresh iterable over the source's bytes starting at `offset`,
7945
+ * so an upload can resume mid-stream after a transient failure.
7946
+ */
7947
+ readFrom(offset: number): AsyncIterable<Uint8Array>;
7948
+ }
7230
7949
  /** @ignore */
7231
7950
  declare class TaskCommandRouterClientImpl {
7232
7951
  private stub;
@@ -7241,7 +7960,12 @@ declare class TaskCommandRouterClientImpl {
7241
7960
  private jwtRefreshLock;
7242
7961
  private logger;
7243
7962
  private closed;
7244
- static tryInit(serverClient: ModalGrpcClient, taskId: string, sandboxId: string, isV2: boolean, logger: Logger, profile: Profile): Promise<TaskCommandRouterClientImpl | null>;
7963
+ /**
7964
+ * `access` is the router access returned by SandboxCreateV2, which lets a
7965
+ * freshly created sandbox connect without a round-trip. Pass undefined to look
7966
+ * it up — a re-attached sandbox, or the server could not mint a token.
7967
+ */
7968
+ static tryInit(serverClient: ModalGrpcClient, taskId: string, sandboxId: string, isV2: boolean, access: CommandRouterAccess | undefined, logger: Logger, profile: Profile): Promise<TaskCommandRouterClientImpl | null>;
7245
7969
  private constructor();
7246
7970
  close(): void;
7247
7971
  /** Run a unary RPC against the command router with the default retry policy. */
@@ -7254,11 +7978,29 @@ declare class TaskCommandRouterClientImpl {
7254
7978
  containerWait(request: TaskContainerWaitRequest): Promise<TaskContainerWaitResponse>;
7255
7979
  execStdioRead(taskId: string, execId: string, fileDescriptor: FileDescriptor, deadline?: number | null): AsyncGenerator<TaskExecStdioReadResponse>;
7256
7980
  execStdinWrite(taskId: string, execId: string, offset: number, data: Uint8Array, eof: boolean): Promise<TaskExecStdinWriteResponse>;
7981
+ /**
7982
+ * Read the current stdin write status for an exec'd command.
7983
+ *
7984
+ * Used by streaming clients to find the resume offset after a stream
7985
+ * failure. Evicts any in-flight stdin stream for the exec.
7986
+ */
7987
+ execStdinStatus(taskId: string, execId: string): Promise<TaskExecStdinStatusResponse>;
7988
+ /**
7989
+ * Stream `source` into the exec's stdin, with bounded resume on transient
7990
+ * failures.
7991
+ *
7992
+ * Streams the full contents of `source` in one client-streaming RPC and
7993
+ * closes stdin (EOF) on success. On a resumable error, queries
7994
+ * `execStdinStatus` for the server's offset and reopens the
7995
+ * stream from that point. Returns the total bytes streamed.
7996
+ */
7997
+ execStdinWriteStream(taskId: string, execId: string, source: StdinSource, chunkSize?: number, maxResumeAttempts?: number): Promise<number>;
7257
7998
  execPoll(taskId: string, execId: string, deadline?: number | null): Promise<TaskExecPollResponse>;
7258
7999
  execWait(taskId: string, execId: string, deadline?: number | null): Promise<TaskExecWaitResponse>;
7259
8000
  mountDirectory(request: TaskMountDirectoryRequest): Promise<void>;
7260
8001
  snapshotDirectory(request: TaskSnapshotDirectoryRequest, options?: TimeoutOptions): Promise<TaskSnapshotDirectoryResponse>;
7261
8002
  snapshotFilesystem(request: TaskSnapshotFilesystemRequest, options?: TimeoutOptions): Promise<TaskSnapshotFilesystemResponse>;
8003
+ snapshotMemory(request: TaskSnapshotMemoryRequest, options?: TimeoutOptions): Promise<TaskSnapshotMemoryResponse>;
7262
8004
  unmountDirectory(request: TaskUnmountDirectoryRequest): Promise<void>;
7263
8005
  setNetworkAccess(request: TaskSetNetworkAccessRequest): Promise<void>;
7264
8006
  /**
@@ -7306,6 +8048,7 @@ interface FileWatchEvent {
7306
8048
  }
7307
8049
  /** Namespace for Sandbox filesystem APIs. */
7308
8050
  declare class SandboxFilesystem {
8051
+ #private;
7309
8052
  private readonly exec;
7310
8053
  /** @ignore */
7311
8054
  constructor(exec: (command: string[], params?: SandboxExecParams) => Promise<ContainerProcess>);
@@ -7490,6 +8233,7 @@ type SandboxSidecarAccess = {
7490
8233
  client: ModalClient;
7491
8234
  exec(command: string[], params: SandboxExecParams | undefined, containerId: string): Promise<ContainerProcess>;
7492
8235
  commandRouter(): Promise<[string, SandboxSidecarCommandRouter]>;
8236
+ reloadVolumes(containerId: string, params: SidecarReloadVolumesParams | undefined): Promise<void>;
7493
8237
  };
7494
8238
  /** Options for {@link SidecarService#create SidecarService.create()}. */
7495
8239
  type SidecarCreateParams = {
@@ -7501,6 +8245,19 @@ type SidecarCreateParams = {
7501
8245
  secrets?: Secret[];
7502
8246
  /** Working directory of the sidecar container. */
7503
8247
  workdir?: string;
8248
+ /**
8249
+ * List of CIDRs the sidecar is allowed to access. Independent of the main
8250
+ * container; if not set, all CIDRs are allowed. An empty list blocks all
8251
+ * external egress while preserving connectivity to the main container.
8252
+ */
8253
+ outboundCidrAllowlist?: string[];
8254
+ /**
8255
+ * List of domain names the sidecar is allowed to access. Supports wildcard
8256
+ * prefixes (`*.example.com`). Independent of the main container.
8257
+ */
8258
+ outboundDomainAllowlist?: string[];
8259
+ /** Enable a PTY for the sidecar. */
8260
+ pty?: boolean;
7504
8261
  };
7505
8262
  /** Options for {@link SidecarService#get SidecarService.get()}. */
7506
8263
  type SidecarGetParams = {
@@ -7519,6 +8276,11 @@ type SidecarTerminateParams = {
7519
8276
  /** If true, wait for the sidecar container to terminate. */
7520
8277
  wait?: boolean;
7521
8278
  };
8279
+ /** Optional parameters for {@link SidecarContainer#reloadVolumes SidecarContainer.reloadVolumes()}. */
8280
+ type SidecarReloadVolumesParams = {
8281
+ /** Overall budget in milliseconds. Defaults to 55000. */
8282
+ timeoutMs?: number;
8283
+ };
7522
8284
  /**
7523
8285
  * Creates and manages sidecar containers inside a Sandbox.
7524
8286
  *
@@ -7572,6 +8334,13 @@ declare class SidecarContainer {
7572
8334
  terminate(params: {
7573
8335
  wait: true;
7574
8336
  }): Promise<number>;
8337
+ /**
8338
+ * Reload all Volumes mounted in this sidecar container.
8339
+ *
8340
+ * Blocks until the reload completes, or throws a `TimeoutError` on timeout
8341
+ * (the reload may still complete in the background).
8342
+ */
8343
+ reloadVolumes(params?: SidecarReloadVolumesParams): Promise<void>;
7575
8344
  }
7576
8345
 
7577
8346
  /**
@@ -7611,6 +8380,48 @@ interface ModalWriteStream<R = any> extends WritableStream<R> {
7611
8380
  writeBytes(bytes: Uint8Array): Promise<void>;
7612
8381
  }
7613
8382
 
8383
+ /**
8384
+ * > Sandbox memory snapshots are in **early preview**.
8385
+ *
8386
+ * A `SandboxSnapshot` object lets you interact with a stored Sandbox snapshot that was created by calling
8387
+ * {@link Sandbox#experimentalSnapshot} on a Sandbox instance. This includes both the filesystem and memory state of
8388
+ * the original Sandbox at the time the snapshot was taken.
8389
+ */
8390
+ declare class SandboxSnapshot {
8391
+ #private;
8392
+ readonly snapshotId: string;
8393
+ /** @ignore */
8394
+ constructor(client: ModalClient, snapshotId: string, params?: {
8395
+ isV2?: boolean;
8396
+ });
8397
+ /**
8398
+ * @internal
8399
+ * Whether the snapshot came from a V2 sandbox. `undefined` until hydrated.
8400
+ */
8401
+ get _isV2(): boolean | undefined;
8402
+ /** @internal */
8403
+ _hydrate(): Promise<void>;
8404
+ }
8405
+ /**
8406
+ * Service for managing {@link SandboxSnapshot}s.
8407
+ *
8408
+ * Normally only ever accessed via the client as:
8409
+ * ```typescript
8410
+ * const modal = new ModalClient();
8411
+ * const snapshot = await modal.sandboxSnapshots.fromId(snapshotId);
8412
+ * ```
8413
+ */
8414
+ declare class SandboxSnapshotService {
8415
+ #private;
8416
+ constructor(client: ModalClient);
8417
+ /**
8418
+ * Construct a {@link SandboxSnapshot} for an existing snapshot ID.
8419
+ *
8420
+ * @param snapshotId - Snapshot ID returned when the snapshot was created.
8421
+ */
8422
+ fromId(snapshotId: string): Promise<SandboxSnapshot>;
8423
+ }
8424
+
7614
8425
  /**
7615
8426
  * Stdin is always present, but this option allow you to drop stdout or stderr
7616
8427
  * if you don't need them. The default is "pipe", matching Node.js behavior.
@@ -7711,6 +8522,8 @@ type SandboxCreateParams = {
7711
8522
  customDomain?: string;
7712
8523
  /** If true, the sandbox will receive a MODAL_IDENTITY_TOKEN env var for OIDC-based auth (e.g. to AWS, GCP). */
7713
8524
  includeOidcIdentityToken?: boolean;
8525
+ /** Enable memory snapshots. */
8526
+ experimentalEnableSnapshot?: boolean;
7714
8527
  };
7715
8528
  /**
7716
8529
  * Service for managing {@link Sandbox}es.
@@ -7734,10 +8547,14 @@ declare class SandboxService {
7734
8547
  * Supported features include exec, encrypted tunnels, wait/poll/terminate,
7735
8548
  * CPU and memory configuration, region placement, volumes, cloud bucket
7736
8549
  * mounts (with static credentials via {@link Secret} or `oidcAuthRoleArn`),
7737
- * OIDC identity tokens, {@link Proxy proxies}, and filesystem snapshots.
8550
+ * OIDC identity tokens, {@link Proxy proxies}, filesystem snapshots, and
8551
+ * custom domains (`customDomain` allows connections to the Sandbox via a
8552
+ * subdomain of that parent domain rather than a default Modal domain;
8553
+ * requires prior setup by Modal).
7738
8554
  *
7739
- * Features like tags, memory snapshots, GPUs, and custom domains are not
7740
- * supported.
8555
+ * Pass `experimentalEnableSnapshot: true` to create a sandbox that can be
8556
+ * snapshotted with {@link Sandbox#experimentalSnapshot}. Features like network
8557
+ * file systems and GPUs are not supported.
7741
8558
  *
7742
8559
  * V2 sandboxes created with this method are not currently returned by
7743
8560
  * {@link SandboxService#list client.sandboxes.list()}. A named Sandbox can be
@@ -7777,25 +8594,33 @@ declare class SandboxService {
7777
8594
  * @returns Promise that resolves to a Sandbox
7778
8595
  */
7779
8596
  experimentalFromName(appName: string, name: string, params?: SandboxExperimentalFromNameParams): Promise<Sandbox>;
8597
+ /**
8598
+ * Restore a {@link Sandbox} from a memory snapshot.
8599
+ *
8600
+ * The restore targets the same backend the snapshot was taken from. A V1
8601
+ * snapshot restores as a V1 sandbox, a V2 snapshot as a V2 sandbox.
8602
+ *
8603
+ * EXPERIMENTAL: the API is subject to change.
8604
+ */
8605
+ experimentalFromSnapshot(snapshot: SandboxSnapshot, params?: SandboxExperimentalFromSnapshotParams): Promise<Sandbox>;
7780
8606
  /**
7781
8607
  * List all {@link Sandbox}es for the current Environment or App ID (if specified).
7782
8608
  * If tags are specified, only Sandboxes that have at least those tags are returned.
7783
8609
  */
7784
8610
  list(params?: SandboxListParams): AsyncGenerator<Sandbox, void, unknown>;
7785
8611
  /**
7786
- * List the V2 {@link Sandbox}es in an {@link App}.
8612
+ * List V2 {@link Sandbox}es.
7787
8613
  *
7788
- * This lists V2 Sandboxes, i.e. Sandboxes created via
7789
- * {@link SandboxService#experimentalCreate client.sandboxes.experimentalCreate()}.
7790
- * Such Sandboxes are not returned by
7791
- * {@link SandboxService#list client.sandboxes.list()}. If tags are specified,
8614
+ * This lists all Sandboxes (both v1 and v2).
8615
+ * Pass `appId` to scope to an App; omit it to list across the current
8616
+ * environment (deprecated prefer scoping by `appId`). If tags are specified,
7792
8617
  * only Sandboxes that have at least those tags are returned.
7793
8618
  *
7794
- * Yields {@link Sandbox} objects that are currently running in the App.
8619
+ * Yields {@link Sandbox} objects that are currently running.
7795
8620
  *
7796
8621
  * EXPERIMENTAL: the API is subject to change.
7797
8622
  */
7798
- experimentalList(params: SandboxExperimentalListParams): AsyncGenerator<Sandbox, void, unknown>;
8623
+ experimentalList(params?: SandboxExperimentalListParams): AsyncGenerator<Sandbox, void, unknown>;
7799
8624
  }
7800
8625
  /** Optional parameters for {@link SandboxService#list client.sandboxes.list()}. */
7801
8626
  type SandboxListParams = {
@@ -7808,10 +8633,12 @@ type SandboxListParams = {
7808
8633
  };
7809
8634
  /** Parameters for {@link SandboxService#experimentalList client.sandboxes.experimentalList()}. */
7810
8635
  type SandboxExperimentalListParams = {
7811
- /** The App to list Sandboxes under. */
7812
- appId: string;
8636
+ /** The App to list Sandboxes under. Omit to list across the environment (deprecated). */
8637
+ appId?: string;
7813
8638
  /** Only return Sandboxes that include all specified tags. */
7814
8639
  tags?: Record<string, string>;
8640
+ /** Override environment for the request; defaults to current profile. */
8641
+ environment?: string;
7815
8642
  };
7816
8643
  /** Optional parameters for {@link SandboxService#fromName client.sandboxes.fromName()}. */
7817
8644
  type SandboxFromNameParams = {
@@ -7821,6 +8648,14 @@ type SandboxFromNameParams = {
7821
8648
  type SandboxExperimentalFromNameParams = {
7822
8649
  environment?: string;
7823
8650
  };
8651
+ /** Optional parameters for {@link SandboxService#experimentalFromSnapshot client.sandboxes.experimentalFromSnapshot()}. */
8652
+ type SandboxExperimentalFromSnapshotParams = {
8653
+ /**
8654
+ * Name for the restored Sandbox. Omit to reuse the original Sandbox's name,
8655
+ * pass `null` to leave it unnamed, or pass a string to override it.
8656
+ */
8657
+ name?: string | null;
8658
+ };
7824
8659
  /** Optional parameters for {@link Sandbox#exec Sandbox.exec()}. */
7825
8660
  type SandboxExecParams = {
7826
8661
  /** Specifies text or binary encoding for input and output streams. */
@@ -7861,16 +8696,21 @@ type SandboxSnapshotFilesystemParams = {
7861
8696
  */
7862
8697
  ttlMs?: number | null;
7863
8698
  };
7864
- /** Optional parameters for {@link Sandbox#reloadVolumes Sandbox.reloadVolumes()}. */
7865
- type SandboxReloadVolumesParams = {
8699
+ /** Optional parameters for Sandbox.experimentalGetExitSnapshot(). */
8700
+ type SandboxExperimentalGetExitSnapshotParams = {
7866
8701
  /**
7867
- * Overall budget for the reload call, in milliseconds. Defaults to 55000.
7868
- * If the reload does not complete within this window, the call is cancelled
7869
- * and a `TimeoutError` is thrown; note that the reload may still complete in
7870
- * the background.
8702
+ * Total time to wait in milliseconds, spread across repeated long polls of
8703
+ * at most `EXIT_SNAPSHOT_LONG_POLL_TIMEOUT` seconds each. `undefined` (the
8704
+ * default) waits until the snapshot reaches a terminal state. `0` performs
8705
+ * an immediate check without waiting.
7871
8706
  */
7872
8707
  timeoutMs?: number;
7873
8708
  };
8709
+ /** Optional parameters for {@link Sandbox#reloadVolumes Sandbox.reloadVolumes()}. */
8710
+ type SandboxReloadVolumesParams = {
8711
+ /** Overall budget in milliseconds. Defaults to 55000. */
8712
+ timeoutMs?: number;
8713
+ };
7874
8714
  /** Optional parameters for {@link Sandbox#snapshotDirectory Sandbox.snapshotDirectory()}. */
7875
8715
  type SandboxSnapshotDirectoryParams = {
7876
8716
  /**
@@ -7946,11 +8786,16 @@ declare class Tunnel {
7946
8786
  declare class Sandbox {
7947
8787
  #private;
7948
8788
  readonly sandboxId: string;
7949
- /** @ignore */
8789
+ /**
8790
+ * Creates a Sandbox handle for a server-returned ID, deducing the backend
8791
+ * version from the ID shape.
8792
+ *
8793
+ * @ignore
8794
+ */
7950
8795
  constructor(client: ModalClient, sandboxId: string, params?: {
7951
- isV2?: boolean;
7952
8796
  taskId?: string;
7953
8797
  tunnels?: Record<number, Tunnel>;
8798
+ initCommandRouterAccess?: CommandRouterAccess;
7954
8799
  });
7955
8800
  get stdin(): ModalWriteStream<string>;
7956
8801
  get stdout(): ModalReadStream<string>;
@@ -7963,10 +8808,31 @@ declare class Sandbox {
7963
8808
  * EXPERIMENTAL: the API is subject to change.
7964
8809
  */
7965
8810
  get experimentalSidecars(): SidecarService;
7966
- /** Set tags (key-value pairs) on the Sandbox. Tags can be used to filter results in {@link SandboxService#list client.sandboxes.list}. */
8811
+ /**
8812
+ * Set tags (key-value pairs) on the Sandbox. Tags can be used to filter results in {@link SandboxService#list client.sandboxes.list}.
8813
+ *
8814
+ * Setting tags replaces the Sandbox's entire tag set; passing an empty object clears all tags.
8815
+ */
7967
8816
  setTags(tags: Record<string, string>): Promise<void>;
7968
8817
  /** Get tags (key-value pairs) currently attached to this Sandbox from the server. */
7969
8818
  getTags(): Promise<Record<string, string>>;
8819
+ /**
8820
+ * Assign a name to a running V2 {@link Sandbox} that was created without one.
8821
+ *
8822
+ * This is only supported for V2 Sandboxes, i.e. Sandboxes created via
8823
+ * {@link SandboxService#experimentalCreate client.sandboxes.experimentalCreate()}.
8824
+ * A name may only be set once, and only on a Sandbox that has never had one;
8825
+ * afterwards the Sandbox can be looked up with
8826
+ * {@link SandboxService#experimentalFromName client.sandboxes.experimentalFromName()}.
8827
+ *
8828
+ * EXPERIMENTAL: the API is subject to change.
8829
+ *
8830
+ * @param name - Name to assign to the Sandbox. Must be unique within the App.
8831
+ * @throws {AlreadyExistsError} If another running Sandbox in the App already holds the name.
8832
+ * @throws {InvalidError} If the server rejects the name as invalid.
8833
+ * @throws {ConflictError} If the Sandbox already has a name or is no longer running.
8834
+ */
8835
+ experimentalSetName(name: string): Promise<void>;
7970
8836
  exec(command: string[], params?: SandboxExecParams & {
7971
8837
  mode?: "text";
7972
8838
  }): Promise<ContainerProcess<string>>;
@@ -8018,6 +8884,29 @@ declare class Sandbox {
8018
8884
  * @returns Promise that resolves to an {@link Image}
8019
8885
  */
8020
8886
  snapshotFilesystem(params?: SandboxSnapshotFilesystemParams): Promise<Image>;
8887
+ /**
8888
+ * Get the exit filesystem snapshot image.
8889
+ *
8890
+ * EXPERIMENTAL: the API is subject to change.
8891
+ *
8892
+ * @param params - Optional parameters; see SandboxExperimentalGetExitSnapshotParams.
8893
+ * @returns The exit snapshot Image.
8894
+ * @throws {TimeoutError} If `timeoutMs` elapses before the snapshot
8895
+ * reaches a terminal state. This includes `timeoutMs = 0` when the
8896
+ * snapshot is still pending.
8897
+ */
8898
+ experimentalGetExitSnapshot(params?: SandboxExperimentalGetExitSnapshotParams): Promise<Image>;
8899
+ /**
8900
+ * Snapshot the filesystem and memory of the Sandbox.
8901
+ *
8902
+ * Returns a {@link SandboxSnapshot} which can be restored into a new Sandbox
8903
+ * with {@link SandboxService#experimentalFromSnapshot client.sandboxes.experimentalFromSnapshot()}.
8904
+ *
8905
+ * The Sandbox must have been created with `experimentalEnableSnapshot: true`.
8906
+ *
8907
+ * EXPERIMENTAL: the API is subject to change.
8908
+ */
8909
+ experimentalSnapshot(): Promise<SandboxSnapshot>;
8021
8910
  /**
8022
8911
  * Mount an {@link Image} at a path in the Sandbox filesystem.
8023
8912
  *
@@ -8043,10 +8932,8 @@ declare class Sandbox {
8043
8932
  /**
8044
8933
  * Reload all Volumes mounted in the Sandbox.
8045
8934
  *
8046
- * Blocks until the Volumes have been reloaded, bounded by `timeoutMs` (55000
8047
- * by default). If the reload does not complete within that window, a
8048
- * `TimeoutError` is thrown; note that the reload may still complete in the
8049
- * background.
8935
+ * Blocks until the reload completes, or throws a `TimeoutError` on timeout
8936
+ * (the reload may still complete in the background).
8050
8937
  *
8051
8938
  * @param params - Optional parameters; see {@link SandboxReloadVolumesParams}.
8052
8939
  */
@@ -8088,6 +8975,23 @@ declare class ContainerProcess<R extends string | Uint8Array = any> {
8088
8975
  * Useful for when an stdin write has failed.
8089
8976
  */
8090
8977
  closeStdin(): Promise<void>;
8978
+ /**
8979
+ * @internal
8980
+ * @hidden
8981
+ * Stream `source` into the process's stdin and close it (EOF) on success.
8982
+ *
8983
+ * Returns the total bytes streamed.
8984
+ */
8985
+ _stdinWriteStream(source: StdinSource): Promise<number>;
8986
+ /**
8987
+ * @internal
8988
+ * @hidden
8989
+ * Check if the container process has finished running.
8990
+ *
8991
+ * Returns `null` if the process is still running, else returns the exit
8992
+ * code.
8993
+ */
8994
+ _poll(): Promise<number | null>;
8091
8995
  /** Wait for process completion and return the exit code. */
8092
8996
  wait(): Promise<number>;
8093
8997
  }
@@ -8121,7 +9025,7 @@ type ModalGrpcClient = Client<typeof ModalClientDefinition, TimeoutOptions & Ret
8121
9025
  *
8122
9026
  * ModalClient provides access to all Modal services through service properties.
8123
9027
  * Create a client instance and use its service properties to manage {@link App}s,
8124
- * {@link Function_ Function}s, * {@link Sandbox}es, and other Modal resources.
9028
+ * {@link Function_ Function}s, {@link Sandbox}es, and other Modal resources.
8125
9029
  *
8126
9030
  * @example
8127
9031
  * ```typescript
@@ -8144,6 +9048,7 @@ declare class ModalClient {
8144
9048
  readonly proxies: ProxyService;
8145
9049
  readonly queues: QueueService;
8146
9050
  readonly sandboxes: SandboxService;
9051
+ readonly sandboxSnapshots: SandboxSnapshotService;
8147
9052
  readonly secrets: SecretService;
8148
9053
  readonly volumes: VolumeService;
8149
9054
  /** @ignore */
@@ -8234,6 +9139,10 @@ declare class FunctionTimeoutError extends Error {
8234
9139
  declare class RemoteError extends Error {
8235
9140
  constructor(message: string);
8236
9141
  }
9142
+ /** Something unexpected happened during runtime. */
9143
+ declare class ExecutionError extends Error {
9144
+ constructor(message: string);
9145
+ }
8237
9146
  /** A retryable internal error from Modal. */
8238
9147
  declare class InternalFailure extends Error {
8239
9148
  constructor(message: string);
@@ -8246,6 +9155,10 @@ declare class NotFoundError extends Error {
8246
9155
  declare class AlreadyExistsError extends Error {
8247
9156
  constructor(message: string);
8248
9157
  }
9158
+ /** The current state of a resource conflicts with the requested operation. */
9159
+ declare class ConflictError extends Error {
9160
+ constructor(message: string);
9161
+ }
8249
9162
  /** A request or other operation was invalid. */
8250
9163
  declare class InvalidError extends Error {
8251
9164
  constructor(message: string);
@@ -8294,6 +9207,10 @@ declare class SandboxFilesystemPermissionError extends SandboxFilesystemError {
8294
9207
  declare class SandboxTimeoutError extends Error {
8295
9208
  constructor(message?: string);
8296
9209
  }
9210
+ /** No snapshot image will be produced for a Sandbox. */
9211
+ declare class SnapshotCreationError extends Error {
9212
+ constructor(message: string);
9213
+ }
8297
9214
  /** Thrown when attempting operations on a detached Sandbox. */
8298
9215
  declare class ClientClosedError extends Error {
8299
9216
  constructor(message?: string);
@@ -8301,4 +9218,4 @@ declare class ClientClosedError extends Error {
8301
9218
 
8302
9219
  declare function checkForRenamedParams(params: any, renames: Record<string, string>): void;
8303
9220
 
8304
- export { AlreadyExistsError, App, type AppFromNameParams, AppService, ClientClosedError, CloudBucketMount, CloudBucketMountService, Cls, type ClsFromNameParams, ClsInstance, ClsService, type ClsWithBatchingParams, type ClsWithConcurrencyParams, type ClsWithOptionsParams, ContainerProcess, type FileInfo, type FileType, type FileWatchEvent, type FileWatchEventType, FunctionCall, type FunctionCallCancelParams, type FunctionCallGetParams, FunctionCallService, type FunctionFromNameParams, FunctionService, type FunctionStats, FunctionTimeoutError, type FunctionUpdateAutoscalerParams, type FunctionWithBatchingParams, type FunctionWithConcurrencyParams, type FunctionWithOptionsParams, Function_, Image, type ImageDeleteParams, type ImageDockerfileCommandsParams, type ImageFromNameParams, type ImagePublishParams, ImageService, InternalFailure, InvalidError, type LogLevel, type Logger, ModalClient, type ModalClientParams, type ModalReadStream, type ModalWriteStream, NotFoundError, Probe, type ProbeParams, type Profile, Proxy, type ProxyFromNameParams, ProxyService, Queue, type QueueClearParams, type QueueDeleteParams, QueueEmptyError, type QueueEphemeralParams, type QueueFromNameParams, QueueFullError, type QueueGetParams, type QueueIterateParams, type QueueLenParams, type QueuePutParams, QueueService, RemoteError, Retries, Sandbox, type SandboxCreateConnectCredentials, type SandboxCreateConnectTokenParams, type SandboxCreateParams, type SandboxExecParams, type SandboxExperimentalFromNameParams, type SandboxExperimentalListParams, SandboxFilesystem, SandboxFilesystemDirectoryNotEmptyError, SandboxFilesystemError, SandboxFilesystemFileTooLargeError, SandboxFilesystemIsADirectoryError, SandboxFilesystemNotADirectoryError, SandboxFilesystemNotFoundError, SandboxFilesystemPathAlreadyExistsError, SandboxFilesystemPermissionError, type SandboxFromNameParams, type SandboxListParams, type SandboxMountImageParams, type SandboxReloadVolumesParams, SandboxService, type SandboxSnapshotDirectoryParams, type SandboxSnapshotFilesystemParams, type SandboxTerminateParams, SandboxTimeoutError, type SandboxUpdateNetworkPolicyParams, Secret, type SecretDeleteParams, type SecretFromNameParams, type SecretFromObjectParams, SecretService, SidecarContainer, type SidecarCreateParams, type SidecarExecParams, type SidecarGetParams, type SidecarListParams, SidecarService, type SidecarTerminateParams, type StdioBehavior, type StreamMode, TimeoutError, Tunnel, Volume, type VolumeDeleteParams, type VolumeEphemeralParams, type VolumeFromNameParams, type VolumeMountOptionsParams, VolumeService, checkForRenamedParams };
9221
+ export { AlreadyExistsError, App, type AppFromNameParams, AppService, ClientClosedError, CloudBucketMount, CloudBucketMountService, Cls, type ClsFromNameParams, ClsInstance, ClsService, type ClsWithBatchingParams, type ClsWithConcurrencyParams, type ClsWithOptionsParams, ConflictError, ContainerProcess, ExecutionError, type FileInfo, type FileType, type FileWatchEvent, type FileWatchEventType, type FunctionAutoscalerSettings, FunctionCall, type FunctionCallCancelParams, type FunctionCallGetParams, type FunctionCallLogFetchParams, type FunctionCallLogStreamParams, type FunctionCallLogTailParams, FunctionCallLogsManager, FunctionCallService, type FunctionFromNameParams, type FunctionLogFetchParams, type FunctionLogStreamParams, type FunctionLogTailParams, FunctionLogsManager, FunctionService, type FunctionStats, FunctionTimeoutError, type FunctionUpdateAutoscalerParams, type FunctionWithBatchingParams, type FunctionWithConcurrencyParams, type FunctionWithOptionsParams, Function_, Image, type ImageDeleteParams, type ImageDockerfileCommandsParams, type ImageFromNameParams, type ImagePublishParams, ImageService, InternalFailure, InvalidError, type LogEntry, type FunctionLogFetchParams as LogFetchParams, type LogLevel, type LogSource, type Logger, ModalClient, type ModalClientParams, type ModalReadStream, type ModalWriteStream, NotFoundError, Probe, type ProbeParams, type Profile, Proxy, type ProxyFromNameParams, ProxyService, Queue, type QueueClearParams, type QueueDeleteParams, QueueEmptyError, type QueueEphemeralParams, type QueueFromNameParams, QueueFullError, type QueueGetParams, type QueueIterateParams, type QueueLenParams, type QueuePutParams, QueueService, RemoteError, Retries, Sandbox, type SandboxCreateConnectCredentials, type SandboxCreateConnectTokenParams, type SandboxCreateParams, type SandboxExecParams, type SandboxExperimentalFromNameParams, type SandboxExperimentalFromSnapshotParams, type SandboxExperimentalGetExitSnapshotParams, type SandboxExperimentalListParams, SandboxFilesystem, SandboxFilesystemDirectoryNotEmptyError, SandboxFilesystemError, SandboxFilesystemFileTooLargeError, SandboxFilesystemIsADirectoryError, SandboxFilesystemNotADirectoryError, SandboxFilesystemNotFoundError, SandboxFilesystemPathAlreadyExistsError, SandboxFilesystemPermissionError, type SandboxFromNameParams, type SandboxListParams, type SandboxMountImageParams, type SandboxReloadVolumesParams, SandboxService, SandboxSnapshot, type SandboxSnapshotDirectoryParams, type SandboxSnapshotFilesystemParams, SandboxSnapshotService, type SandboxTerminateParams, SandboxTimeoutError, type SandboxUpdateNetworkPolicyParams, Secret, type SecretDeleteParams, type SecretFromNameParams, type SecretFromObjectParams, SecretService, SidecarContainer, type SidecarCreateParams, type SidecarExecParams, type SidecarGetParams, type SidecarListParams, SidecarService, type SidecarTerminateParams, SnapshotCreationError, type StdioBehavior, type StreamMode, TimeoutError, Tunnel, Volume, type VolumeDeleteParams, type VolumeEphemeralParams, type VolumeFromNameParams, type VolumeMountOptionsParams, VolumeService, checkForRenamedParams };