modal 0.72.24__py3-none-any.whl → 0.72.26__py3-none-any.whl

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.
modal_proto/api_pb2.pyi CHANGED
@@ -1898,6 +1898,7 @@ class CheckpointInfo(google.protobuf.message.Message):
1898
1898
  SIZE_FIELD_NUMBER: builtins.int
1899
1899
  CHECKSUM_IS_FILE_INDEX_FIELD_NUMBER: builtins.int
1900
1900
  ORIGINAL_TASK_ID_FIELD_NUMBER: builtins.int
1901
+ SNAPSHOT_VERSION_FIELD_NUMBER: builtins.int
1901
1902
  checksum: builtins.str
1902
1903
  status: global___CheckpointStatus.ValueType
1903
1904
  checkpoint_id: builtins.str
@@ -1905,6 +1906,8 @@ class CheckpointInfo(google.protobuf.message.Message):
1905
1906
  size: builtins.int
1906
1907
  checksum_is_file_index: builtins.bool
1907
1908
  original_task_id: builtins.str
1909
+ snapshot_version: builtins.int
1910
+ """snapshot version used to take the checkpoint"""
1908
1911
  def __init__(
1909
1912
  self,
1910
1913
  *,
@@ -1915,8 +1918,9 @@ class CheckpointInfo(google.protobuf.message.Message):
1915
1918
  size: builtins.int = ...,
1916
1919
  checksum_is_file_index: builtins.bool = ...,
1917
1920
  original_task_id: builtins.str = ...,
1921
+ snapshot_version: builtins.int = ...,
1918
1922
  ) -> None: ...
1919
- def ClearField(self, field_name: typing_extensions.Literal["checkpoint_id", b"checkpoint_id", "checksum", b"checksum", "checksum_is_file_index", b"checksum_is_file_index", "original_task_id", b"original_task_id", "runtime_fingerprint", b"runtime_fingerprint", "size", b"size", "status", b"status"]) -> None: ...
1923
+ def ClearField(self, field_name: typing_extensions.Literal["checkpoint_id", b"checkpoint_id", "checksum", b"checksum", "checksum_is_file_index", b"checksum_is_file_index", "original_task_id", b"original_task_id", "runtime_fingerprint", b"runtime_fingerprint", "size", b"size", "snapshot_version", b"snapshot_version", "status", b"status"]) -> None: ...
1920
1924
 
1921
1925
  global___CheckpointInfo = CheckpointInfo
1922
1926
 
@@ -7036,6 +7040,8 @@ class Sandbox(google.protobuf.message.Message):
7036
7040
  I6PN_ENABLED_FIELD_NUMBER: builtins.int
7037
7041
  NETWORK_ACCESS_FIELD_NUMBER: builtins.int
7038
7042
  PROXY_ID_FIELD_NUMBER: builtins.int
7043
+ ENABLE_MEMORY_SNAPSHOT_FIELD_NUMBER: builtins.int
7044
+ SNAPSHOT_VERSION_FIELD_NUMBER: builtins.int
7039
7045
  @property
7040
7046
  def entrypoint_args(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
7041
7047
  @property
@@ -7072,6 +7078,12 @@ class Sandbox(google.protobuf.message.Message):
7072
7078
  def network_access(self) -> global___NetworkAccess:
7073
7079
  """Network access configuration beyond simple allow/block."""
7074
7080
  proxy_id: builtins.str
7081
+ enable_memory_snapshot: builtins.bool
7082
+ """Enable memory snapshots."""
7083
+ snapshot_version: builtins.int
7084
+ """Used to pin gVisor version for memory-snapshottable sandboxes.
7085
+ This field is set by the server, not the client.
7086
+ """
7075
7087
  def __init__(
7076
7088
  self,
7077
7089
  *,
@@ -7096,14 +7108,18 @@ class Sandbox(google.protobuf.message.Message):
7096
7108
  i6pn_enabled: builtins.bool = ...,
7097
7109
  network_access: global___NetworkAccess | None = ...,
7098
7110
  proxy_id: builtins.str | None = ...,
7111
+ enable_memory_snapshot: builtins.bool = ...,
7112
+ snapshot_version: builtins.int | None = ...,
7099
7113
  ) -> None: ...
7100
- def HasField(self, field_name: typing_extensions.Literal["_proxy_id", b"_proxy_id", "_scheduler_placement", b"_scheduler_placement", "_workdir", b"_workdir", "network_access", b"network_access", "open_ports", b"open_ports", "open_ports_oneof", b"open_ports_oneof", "proxy_id", b"proxy_id", "pty_info", b"pty_info", "resources", b"resources", "scheduler_placement", b"scheduler_placement", "workdir", b"workdir"]) -> builtins.bool: ...
7101
- def ClearField(self, field_name: typing_extensions.Literal["_proxy_id", b"_proxy_id", "_scheduler_placement", b"_scheduler_placement", "_workdir", b"_workdir", "block_network", b"block_network", "cloud_bucket_mounts", b"cloud_bucket_mounts", "cloud_provider", b"cloud_provider", "entrypoint_args", b"entrypoint_args", "i6pn_enabled", b"i6pn_enabled", "image_id", b"image_id", "mount_ids", b"mount_ids", "network_access", b"network_access", "nfs_mounts", b"nfs_mounts", "open_ports", b"open_ports", "open_ports_oneof", b"open_ports_oneof", "proxy_id", b"proxy_id", "pty_info", b"pty_info", "resources", b"resources", "runtime_debug", b"runtime_debug", "s3_mounts", b"s3_mounts", "scheduler_placement", b"scheduler_placement", "secret_ids", b"secret_ids", "timeout_secs", b"timeout_secs", "volume_mounts", b"volume_mounts", "workdir", b"workdir", "worker_id", b"worker_id"]) -> None: ...
7114
+ def HasField(self, field_name: typing_extensions.Literal["_proxy_id", b"_proxy_id", "_scheduler_placement", b"_scheduler_placement", "_snapshot_version", b"_snapshot_version", "_workdir", b"_workdir", "network_access", b"network_access", "open_ports", b"open_ports", "open_ports_oneof", b"open_ports_oneof", "proxy_id", b"proxy_id", "pty_info", b"pty_info", "resources", b"resources", "scheduler_placement", b"scheduler_placement", "snapshot_version", b"snapshot_version", "workdir", b"workdir"]) -> builtins.bool: ...
7115
+ def ClearField(self, field_name: typing_extensions.Literal["_proxy_id", b"_proxy_id", "_scheduler_placement", b"_scheduler_placement", "_snapshot_version", b"_snapshot_version", "_workdir", b"_workdir", "block_network", b"block_network", "cloud_bucket_mounts", b"cloud_bucket_mounts", "cloud_provider", b"cloud_provider", "enable_memory_snapshot", b"enable_memory_snapshot", "entrypoint_args", b"entrypoint_args", "i6pn_enabled", b"i6pn_enabled", "image_id", b"image_id", "mount_ids", b"mount_ids", "network_access", b"network_access", "nfs_mounts", b"nfs_mounts", "open_ports", b"open_ports", "open_ports_oneof", b"open_ports_oneof", "proxy_id", b"proxy_id", "pty_info", b"pty_info", "resources", b"resources", "runtime_debug", b"runtime_debug", "s3_mounts", b"s3_mounts", "scheduler_placement", b"scheduler_placement", "secret_ids", b"secret_ids", "snapshot_version", b"snapshot_version", "timeout_secs", b"timeout_secs", "volume_mounts", b"volume_mounts", "workdir", b"workdir", "worker_id", b"worker_id"]) -> None: ...
7102
7116
  @typing.overload
7103
7117
  def WhichOneof(self, oneof_group: typing_extensions.Literal["_proxy_id", b"_proxy_id"]) -> typing_extensions.Literal["proxy_id"] | None: ...
7104
7118
  @typing.overload
7105
7119
  def WhichOneof(self, oneof_group: typing_extensions.Literal["_scheduler_placement", b"_scheduler_placement"]) -> typing_extensions.Literal["scheduler_placement"] | None: ...
7106
7120
  @typing.overload
7121
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_snapshot_version", b"_snapshot_version"]) -> typing_extensions.Literal["snapshot_version"] | None: ...
7122
+ @typing.overload
7107
7123
  def WhichOneof(self, oneof_group: typing_extensions.Literal["_workdir", b"_workdir"]) -> typing_extensions.Literal["workdir"] | None: ...
7108
7124
  @typing.overload
7109
7125
  def WhichOneof(self, oneof_group: typing_extensions.Literal["open_ports_oneof", b"open_ports_oneof"]) -> typing_extensions.Literal["open_ports"] | None: ...
@@ -7335,6 +7351,40 @@ class SandboxListResponse(google.protobuf.message.Message):
7335
7351
 
7336
7352
  global___SandboxListResponse = SandboxListResponse
7337
7353
 
7354
+ class SandboxRestoreRequest(google.protobuf.message.Message):
7355
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
7356
+
7357
+ APP_ID_FIELD_NUMBER: builtins.int
7358
+ SNAPSHOT_ID_FIELD_NUMBER: builtins.int
7359
+ ENVIRONMENT_NAME_FIELD_NUMBER: builtins.int
7360
+ app_id: builtins.str
7361
+ snapshot_id: builtins.str
7362
+ environment_name: builtins.str
7363
+ def __init__(
7364
+ self,
7365
+ *,
7366
+ app_id: builtins.str = ...,
7367
+ snapshot_id: builtins.str = ...,
7368
+ environment_name: builtins.str = ...,
7369
+ ) -> None: ...
7370
+ def ClearField(self, field_name: typing_extensions.Literal["app_id", b"app_id", "environment_name", b"environment_name", "snapshot_id", b"snapshot_id"]) -> None: ...
7371
+
7372
+ global___SandboxRestoreRequest = SandboxRestoreRequest
7373
+
7374
+ class SandboxRestoreResponse(google.protobuf.message.Message):
7375
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
7376
+
7377
+ SANDBOX_ID_FIELD_NUMBER: builtins.int
7378
+ sandbox_id: builtins.str
7379
+ def __init__(
7380
+ self,
7381
+ *,
7382
+ sandbox_id: builtins.str = ...,
7383
+ ) -> None: ...
7384
+ def ClearField(self, field_name: typing_extensions.Literal["sandbox_id", b"sandbox_id"]) -> None: ...
7385
+
7386
+ global___SandboxRestoreResponse = SandboxRestoreResponse
7387
+
7338
7388
  class SandboxSnapshotFsRequest(google.protobuf.message.Message):
7339
7389
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
7340
7390
 
@@ -7376,6 +7426,67 @@ class SandboxSnapshotFsResponse(google.protobuf.message.Message):
7376
7426
 
7377
7427
  global___SandboxSnapshotFsResponse = SandboxSnapshotFsResponse
7378
7428
 
7429
+ class SandboxSnapshotRequest(google.protobuf.message.Message):
7430
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
7431
+
7432
+ SANDBOX_ID_FIELD_NUMBER: builtins.int
7433
+ sandbox_id: builtins.str
7434
+ def __init__(
7435
+ self,
7436
+ *,
7437
+ sandbox_id: builtins.str = ...,
7438
+ ) -> None: ...
7439
+ def ClearField(self, field_name: typing_extensions.Literal["sandbox_id", b"sandbox_id"]) -> None: ...
7440
+
7441
+ global___SandboxSnapshotRequest = SandboxSnapshotRequest
7442
+
7443
+ class SandboxSnapshotResponse(google.protobuf.message.Message):
7444
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
7445
+
7446
+ SNAPSHOT_ID_FIELD_NUMBER: builtins.int
7447
+ snapshot_id: builtins.str
7448
+ def __init__(
7449
+ self,
7450
+ *,
7451
+ snapshot_id: builtins.str = ...,
7452
+ ) -> None: ...
7453
+ def ClearField(self, field_name: typing_extensions.Literal["snapshot_id", b"snapshot_id"]) -> None: ...
7454
+
7455
+ global___SandboxSnapshotResponse = SandboxSnapshotResponse
7456
+
7457
+ class SandboxSnapshotWaitRequest(google.protobuf.message.Message):
7458
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
7459
+
7460
+ SNAPSHOT_ID_FIELD_NUMBER: builtins.int
7461
+ TIMEOUT_FIELD_NUMBER: builtins.int
7462
+ snapshot_id: builtins.str
7463
+ timeout: builtins.float
7464
+ def __init__(
7465
+ self,
7466
+ *,
7467
+ snapshot_id: builtins.str = ...,
7468
+ timeout: builtins.float = ...,
7469
+ ) -> None: ...
7470
+ def ClearField(self, field_name: typing_extensions.Literal["snapshot_id", b"snapshot_id", "timeout", b"timeout"]) -> None: ...
7471
+
7472
+ global___SandboxSnapshotWaitRequest = SandboxSnapshotWaitRequest
7473
+
7474
+ class SandboxSnapshotWaitResponse(google.protobuf.message.Message):
7475
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
7476
+
7477
+ RESULT_FIELD_NUMBER: builtins.int
7478
+ @property
7479
+ def result(self) -> global___GenericResult: ...
7480
+ def __init__(
7481
+ self,
7482
+ *,
7483
+ result: global___GenericResult | None = ...,
7484
+ ) -> None: ...
7485
+ def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ...
7486
+ def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ...
7487
+
7488
+ global___SandboxSnapshotWaitResponse = SandboxSnapshotWaitResponse
7489
+
7379
7490
  class SandboxStdinWriteRequest(google.protobuf.message.Message):
7380
7491
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
7381
7492
 
@@ -505,11 +505,26 @@ class ModalClientStub(object):
505
505
  request_serializer=modal__proto_dot_api__pb2.SandboxListRequest.SerializeToString,
506
506
  response_deserializer=modal__proto_dot_api__pb2.SandboxListResponse.FromString,
507
507
  )
508
+ self.SandboxRestore = channel.unary_unary(
509
+ '/modal.client.ModalClient/SandboxRestore',
510
+ request_serializer=modal__proto_dot_api__pb2.SandboxRestoreRequest.SerializeToString,
511
+ response_deserializer=modal__proto_dot_api__pb2.SandboxRestoreResponse.FromString,
512
+ )
513
+ self.SandboxSnapshot = channel.unary_unary(
514
+ '/modal.client.ModalClient/SandboxSnapshot',
515
+ request_serializer=modal__proto_dot_api__pb2.SandboxSnapshotRequest.SerializeToString,
516
+ response_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotResponse.FromString,
517
+ )
508
518
  self.SandboxSnapshotFs = channel.unary_unary(
509
519
  '/modal.client.ModalClient/SandboxSnapshotFs',
510
520
  request_serializer=modal__proto_dot_api__pb2.SandboxSnapshotFsRequest.SerializeToString,
511
521
  response_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotFsResponse.FromString,
512
522
  )
523
+ self.SandboxSnapshotWait = channel.unary_unary(
524
+ '/modal.client.ModalClient/SandboxSnapshotWait',
525
+ request_serializer=modal__proto_dot_api__pb2.SandboxSnapshotWaitRequest.SerializeToString,
526
+ response_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotWaitResponse.FromString,
527
+ )
513
528
  self.SandboxStdinWrite = channel.unary_unary(
514
529
  '/modal.client.ModalClient/SandboxStdinWrite',
515
530
  request_serializer=modal__proto_dot_api__pb2.SandboxStdinWriteRequest.SerializeToString,
@@ -1307,12 +1322,30 @@ class ModalClientServicer(object):
1307
1322
  context.set_details('Method not implemented!')
1308
1323
  raise NotImplementedError('Method not implemented!')
1309
1324
 
1325
+ def SandboxRestore(self, request, context):
1326
+ """Missing associated documentation comment in .proto file."""
1327
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1328
+ context.set_details('Method not implemented!')
1329
+ raise NotImplementedError('Method not implemented!')
1330
+
1331
+ def SandboxSnapshot(self, request, context):
1332
+ """Missing associated documentation comment in .proto file."""
1333
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1334
+ context.set_details('Method not implemented!')
1335
+ raise NotImplementedError('Method not implemented!')
1336
+
1310
1337
  def SandboxSnapshotFs(self, request, context):
1311
1338
  """Missing associated documentation comment in .proto file."""
1312
1339
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1313
1340
  context.set_details('Method not implemented!')
1314
1341
  raise NotImplementedError('Method not implemented!')
1315
1342
 
1343
+ def SandboxSnapshotWait(self, request, context):
1344
+ """Missing associated documentation comment in .proto file."""
1345
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1346
+ context.set_details('Method not implemented!')
1347
+ raise NotImplementedError('Method not implemented!')
1348
+
1316
1349
  def SandboxStdinWrite(self, request, context):
1317
1350
  """Missing associated documentation comment in .proto file."""
1318
1351
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -2035,11 +2068,26 @@ def add_ModalClientServicer_to_server(servicer, server):
2035
2068
  request_deserializer=modal__proto_dot_api__pb2.SandboxListRequest.FromString,
2036
2069
  response_serializer=modal__proto_dot_api__pb2.SandboxListResponse.SerializeToString,
2037
2070
  ),
2071
+ 'SandboxRestore': grpc.unary_unary_rpc_method_handler(
2072
+ servicer.SandboxRestore,
2073
+ request_deserializer=modal__proto_dot_api__pb2.SandboxRestoreRequest.FromString,
2074
+ response_serializer=modal__proto_dot_api__pb2.SandboxRestoreResponse.SerializeToString,
2075
+ ),
2076
+ 'SandboxSnapshot': grpc.unary_unary_rpc_method_handler(
2077
+ servicer.SandboxSnapshot,
2078
+ request_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotRequest.FromString,
2079
+ response_serializer=modal__proto_dot_api__pb2.SandboxSnapshotResponse.SerializeToString,
2080
+ ),
2038
2081
  'SandboxSnapshotFs': grpc.unary_unary_rpc_method_handler(
2039
2082
  servicer.SandboxSnapshotFs,
2040
2083
  request_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotFsRequest.FromString,
2041
2084
  response_serializer=modal__proto_dot_api__pb2.SandboxSnapshotFsResponse.SerializeToString,
2042
2085
  ),
2086
+ 'SandboxSnapshotWait': grpc.unary_unary_rpc_method_handler(
2087
+ servicer.SandboxSnapshotWait,
2088
+ request_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotWaitRequest.FromString,
2089
+ response_serializer=modal__proto_dot_api__pb2.SandboxSnapshotWaitResponse.SerializeToString,
2090
+ ),
2043
2091
  'SandboxStdinWrite': grpc.unary_unary_rpc_method_handler(
2044
2092
  servicer.SandboxStdinWrite,
2045
2093
  request_deserializer=modal__proto_dot_api__pb2.SandboxStdinWriteRequest.FromString,
@@ -3901,6 +3949,40 @@ class ModalClient(object):
3901
3949
  options, channel_credentials,
3902
3950
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3903
3951
 
3952
+ @staticmethod
3953
+ def SandboxRestore(request,
3954
+ target,
3955
+ options=(),
3956
+ channel_credentials=None,
3957
+ call_credentials=None,
3958
+ insecure=False,
3959
+ compression=None,
3960
+ wait_for_ready=None,
3961
+ timeout=None,
3962
+ metadata=None):
3963
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/SandboxRestore',
3964
+ modal__proto_dot_api__pb2.SandboxRestoreRequest.SerializeToString,
3965
+ modal__proto_dot_api__pb2.SandboxRestoreResponse.FromString,
3966
+ options, channel_credentials,
3967
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3968
+
3969
+ @staticmethod
3970
+ def SandboxSnapshot(request,
3971
+ target,
3972
+ options=(),
3973
+ channel_credentials=None,
3974
+ call_credentials=None,
3975
+ insecure=False,
3976
+ compression=None,
3977
+ wait_for_ready=None,
3978
+ timeout=None,
3979
+ metadata=None):
3980
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/SandboxSnapshot',
3981
+ modal__proto_dot_api__pb2.SandboxSnapshotRequest.SerializeToString,
3982
+ modal__proto_dot_api__pb2.SandboxSnapshotResponse.FromString,
3983
+ options, channel_credentials,
3984
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3985
+
3904
3986
  @staticmethod
3905
3987
  def SandboxSnapshotFs(request,
3906
3988
  target,
@@ -3918,6 +4000,23 @@ class ModalClient(object):
3918
4000
  options, channel_credentials,
3919
4001
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3920
4002
 
4003
+ @staticmethod
4004
+ def SandboxSnapshotWait(request,
4005
+ target,
4006
+ options=(),
4007
+ channel_credentials=None,
4008
+ call_credentials=None,
4009
+ insecure=False,
4010
+ compression=None,
4011
+ wait_for_ready=None,
4012
+ timeout=None,
4013
+ metadata=None):
4014
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/SandboxSnapshotWait',
4015
+ modal__proto_dot_api__pb2.SandboxSnapshotWaitRequest.SerializeToString,
4016
+ modal__proto_dot_api__pb2.SandboxSnapshotWaitResponse.FromString,
4017
+ options, channel_credentials,
4018
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4019
+
3921
4020
  @staticmethod
3922
4021
  def SandboxStdinWrite(request,
3923
4022
  target,
@@ -421,10 +421,22 @@ class ModalClientStub:
421
421
  modal_proto.api_pb2.SandboxListRequest,
422
422
  modal_proto.api_pb2.SandboxListResponse,
423
423
  ]
424
+ SandboxRestore: grpc.UnaryUnaryMultiCallable[
425
+ modal_proto.api_pb2.SandboxRestoreRequest,
426
+ modal_proto.api_pb2.SandboxRestoreResponse,
427
+ ]
428
+ SandboxSnapshot: grpc.UnaryUnaryMultiCallable[
429
+ modal_proto.api_pb2.SandboxSnapshotRequest,
430
+ modal_proto.api_pb2.SandboxSnapshotResponse,
431
+ ]
424
432
  SandboxSnapshotFs: grpc.UnaryUnaryMultiCallable[
425
433
  modal_proto.api_pb2.SandboxSnapshotFsRequest,
426
434
  modal_proto.api_pb2.SandboxSnapshotFsResponse,
427
435
  ]
436
+ SandboxSnapshotWait: grpc.UnaryUnaryMultiCallable[
437
+ modal_proto.api_pb2.SandboxSnapshotWaitRequest,
438
+ modal_proto.api_pb2.SandboxSnapshotWaitResponse,
439
+ ]
428
440
  SandboxStdinWrite: grpc.UnaryUnaryMultiCallable[
429
441
  modal_proto.api_pb2.SandboxStdinWriteRequest,
430
442
  modal_proto.api_pb2.SandboxStdinWriteResponse,
@@ -1190,12 +1202,30 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
1190
1202
  context: grpc.ServicerContext,
1191
1203
  ) -> modal_proto.api_pb2.SandboxListResponse: ...
1192
1204
  @abc.abstractmethod
1205
+ def SandboxRestore(
1206
+ self,
1207
+ request: modal_proto.api_pb2.SandboxRestoreRequest,
1208
+ context: grpc.ServicerContext,
1209
+ ) -> modal_proto.api_pb2.SandboxRestoreResponse: ...
1210
+ @abc.abstractmethod
1211
+ def SandboxSnapshot(
1212
+ self,
1213
+ request: modal_proto.api_pb2.SandboxSnapshotRequest,
1214
+ context: grpc.ServicerContext,
1215
+ ) -> modal_proto.api_pb2.SandboxSnapshotResponse: ...
1216
+ @abc.abstractmethod
1193
1217
  def SandboxSnapshotFs(
1194
1218
  self,
1195
1219
  request: modal_proto.api_pb2.SandboxSnapshotFsRequest,
1196
1220
  context: grpc.ServicerContext,
1197
1221
  ) -> modal_proto.api_pb2.SandboxSnapshotFsResponse: ...
1198
1222
  @abc.abstractmethod
1223
+ def SandboxSnapshotWait(
1224
+ self,
1225
+ request: modal_proto.api_pb2.SandboxSnapshotWaitRequest,
1226
+ context: grpc.ServicerContext,
1227
+ ) -> modal_proto.api_pb2.SandboxSnapshotWaitResponse: ...
1228
+ @abc.abstractmethod
1199
1229
  def SandboxStdinWrite(
1200
1230
  self,
1201
1231
  request: modal_proto.api_pb2.SandboxStdinWriteRequest,
@@ -110,7 +110,10 @@ class ModalClientModal:
110
110
  self.SandboxGetTaskId = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxGetTaskId, client)
111
111
  self.SandboxGetTunnels = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxGetTunnels, client)
112
112
  self.SandboxList = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxList, client)
113
+ self.SandboxRestore = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxRestore, client)
114
+ self.SandboxSnapshot = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxSnapshot, client)
113
115
  self.SandboxSnapshotFs = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxSnapshotFs, client)
116
+ self.SandboxSnapshotWait = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxSnapshotWait, client)
114
117
  self.SandboxStdinWrite = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxStdinWrite, client)
115
118
  self.SandboxTagsSet = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxTagsSet, client)
116
119
  self.SandboxTerminate = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxTerminate, client)
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2025
2
2
 
3
3
  # Note: Reset this value to -1 whenever you make a minor `0.X` release of the client.
4
- build_number = 24 # git: 8a549a2
4
+ build_number = 26 # git: 4ec7a05