modal 1.0.6.dev58__py3-none-any.whl → 1.2.3.dev7__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.

Potentially problematic release.


This version of modal might be problematic. Click here for more details.

Files changed (147) hide show
  1. modal/__main__.py +3 -4
  2. modal/_billing.py +80 -0
  3. modal/_clustered_functions.py +7 -3
  4. modal/_clustered_functions.pyi +4 -2
  5. modal/_container_entrypoint.py +41 -49
  6. modal/_functions.py +424 -195
  7. modal/_grpc_client.py +171 -0
  8. modal/_load_context.py +105 -0
  9. modal/_object.py +68 -20
  10. modal/_output.py +58 -45
  11. modal/_partial_function.py +36 -11
  12. modal/_pty.py +7 -3
  13. modal/_resolver.py +21 -35
  14. modal/_runtime/asgi.py +4 -3
  15. modal/_runtime/container_io_manager.py +301 -186
  16. modal/_runtime/container_io_manager.pyi +70 -61
  17. modal/_runtime/execution_context.py +18 -2
  18. modal/_runtime/execution_context.pyi +4 -1
  19. modal/_runtime/gpu_memory_snapshot.py +170 -63
  20. modal/_runtime/user_code_imports.py +28 -58
  21. modal/_serialization.py +57 -1
  22. modal/_utils/async_utils.py +33 -12
  23. modal/_utils/auth_token_manager.py +2 -5
  24. modal/_utils/blob_utils.py +110 -53
  25. modal/_utils/function_utils.py +49 -42
  26. modal/_utils/grpc_utils.py +80 -50
  27. modal/_utils/mount_utils.py +26 -1
  28. modal/_utils/name_utils.py +17 -3
  29. modal/_utils/task_command_router_client.py +536 -0
  30. modal/_utils/time_utils.py +34 -6
  31. modal/app.py +219 -83
  32. modal/app.pyi +229 -56
  33. modal/billing.py +5 -0
  34. modal/{requirements → builder}/2025.06.txt +1 -0
  35. modal/{requirements → builder}/PREVIEW.txt +1 -0
  36. modal/cli/_download.py +19 -3
  37. modal/cli/_traceback.py +3 -2
  38. modal/cli/app.py +4 -4
  39. modal/cli/cluster.py +15 -7
  40. modal/cli/config.py +5 -3
  41. modal/cli/container.py +7 -6
  42. modal/cli/dict.py +22 -16
  43. modal/cli/entry_point.py +12 -5
  44. modal/cli/environment.py +5 -4
  45. modal/cli/import_refs.py +3 -3
  46. modal/cli/launch.py +102 -5
  47. modal/cli/network_file_system.py +9 -13
  48. modal/cli/profile.py +3 -2
  49. modal/cli/programs/launch_instance_ssh.py +94 -0
  50. modal/cli/programs/run_jupyter.py +1 -1
  51. modal/cli/programs/run_marimo.py +95 -0
  52. modal/cli/programs/vscode.py +1 -1
  53. modal/cli/queues.py +57 -26
  54. modal/cli/run.py +58 -16
  55. modal/cli/secret.py +48 -22
  56. modal/cli/utils.py +3 -4
  57. modal/cli/volume.py +28 -25
  58. modal/client.py +13 -116
  59. modal/client.pyi +9 -91
  60. modal/cloud_bucket_mount.py +5 -3
  61. modal/cloud_bucket_mount.pyi +5 -1
  62. modal/cls.py +130 -102
  63. modal/cls.pyi +45 -85
  64. modal/config.py +29 -10
  65. modal/container_process.py +291 -13
  66. modal/container_process.pyi +95 -32
  67. modal/dict.py +282 -63
  68. modal/dict.pyi +423 -73
  69. modal/environments.py +15 -27
  70. modal/environments.pyi +5 -15
  71. modal/exception.py +8 -0
  72. modal/experimental/__init__.py +143 -38
  73. modal/experimental/flash.py +247 -78
  74. modal/experimental/flash.pyi +137 -9
  75. modal/file_io.py +14 -28
  76. modal/file_io.pyi +2 -2
  77. modal/file_pattern_matcher.py +25 -16
  78. modal/functions.pyi +134 -61
  79. modal/image.py +255 -86
  80. modal/image.pyi +300 -62
  81. modal/io_streams.py +436 -126
  82. modal/io_streams.pyi +236 -171
  83. modal/mount.py +62 -157
  84. modal/mount.pyi +45 -172
  85. modal/network_file_system.py +30 -53
  86. modal/network_file_system.pyi +16 -76
  87. modal/object.pyi +42 -8
  88. modal/parallel_map.py +821 -113
  89. modal/parallel_map.pyi +134 -0
  90. modal/partial_function.pyi +4 -1
  91. modal/proxy.py +16 -7
  92. modal/proxy.pyi +10 -2
  93. modal/queue.py +263 -61
  94. modal/queue.pyi +409 -66
  95. modal/runner.py +112 -92
  96. modal/runner.pyi +45 -27
  97. modal/sandbox.py +451 -124
  98. modal/sandbox.pyi +513 -67
  99. modal/secret.py +291 -67
  100. modal/secret.pyi +425 -19
  101. modal/serving.py +7 -11
  102. modal/serving.pyi +7 -8
  103. modal/snapshot.py +11 -8
  104. modal/token_flow.py +4 -4
  105. modal/volume.py +344 -98
  106. modal/volume.pyi +464 -68
  107. {modal-1.0.6.dev58.dist-info → modal-1.2.3.dev7.dist-info}/METADATA +9 -8
  108. modal-1.2.3.dev7.dist-info/RECORD +195 -0
  109. modal_docs/mdmd/mdmd.py +11 -1
  110. modal_proto/api.proto +399 -67
  111. modal_proto/api_grpc.py +241 -1
  112. modal_proto/api_pb2.py +1395 -1000
  113. modal_proto/api_pb2.pyi +1239 -79
  114. modal_proto/api_pb2_grpc.py +499 -4
  115. modal_proto/api_pb2_grpc.pyi +162 -14
  116. modal_proto/modal_api_grpc.py +175 -160
  117. modal_proto/sandbox_router.proto +145 -0
  118. modal_proto/sandbox_router_grpc.py +105 -0
  119. modal_proto/sandbox_router_pb2.py +149 -0
  120. modal_proto/sandbox_router_pb2.pyi +333 -0
  121. modal_proto/sandbox_router_pb2_grpc.py +203 -0
  122. modal_proto/sandbox_router_pb2_grpc.pyi +75 -0
  123. modal_proto/task_command_router.proto +144 -0
  124. modal_proto/task_command_router_grpc.py +105 -0
  125. modal_proto/task_command_router_pb2.py +149 -0
  126. modal_proto/task_command_router_pb2.pyi +333 -0
  127. modal_proto/task_command_router_pb2_grpc.py +203 -0
  128. modal_proto/task_command_router_pb2_grpc.pyi +75 -0
  129. modal_version/__init__.py +1 -1
  130. modal-1.0.6.dev58.dist-info/RECORD +0 -183
  131. modal_proto/modal_options_grpc.py +0 -3
  132. modal_proto/options.proto +0 -19
  133. modal_proto/options_grpc.py +0 -3
  134. modal_proto/options_pb2.py +0 -35
  135. modal_proto/options_pb2.pyi +0 -20
  136. modal_proto/options_pb2_grpc.py +0 -4
  137. modal_proto/options_pb2_grpc.pyi +0 -7
  138. /modal/{requirements → builder}/2023.12.312.txt +0 -0
  139. /modal/{requirements → builder}/2023.12.txt +0 -0
  140. /modal/{requirements → builder}/2024.04.txt +0 -0
  141. /modal/{requirements → builder}/2024.10.txt +0 -0
  142. /modal/{requirements → builder}/README.md +0 -0
  143. /modal/{requirements → builder}/base-images.json +0 -0
  144. {modal-1.0.6.dev58.dist-info → modal-1.2.3.dev7.dist-info}/WHEEL +0 -0
  145. {modal-1.0.6.dev58.dist-info → modal-1.2.3.dev7.dist-info}/entry_points.txt +0 -0
  146. {modal-1.0.6.dev58.dist-info → modal-1.2.3.dev7.dist-info}/licenses/LICENSE +0 -0
  147. {modal-1.0.6.dev58.dist-info → modal-1.2.3.dev7.dist-info}/top_level.txt +0 -0
@@ -60,6 +60,11 @@ class ModalClientStub(object):
60
60
  request_serializer=modal__proto_dot_api__pb2.AppGetOrCreateRequest.SerializeToString,
61
61
  response_deserializer=modal__proto_dot_api__pb2.AppGetOrCreateResponse.FromString,
62
62
  )
63
+ self.AppGetTags = channel.unary_unary(
64
+ '/modal.client.ModalClient/AppGetTags',
65
+ request_serializer=modal__proto_dot_api__pb2.AppGetTagsRequest.SerializeToString,
66
+ response_deserializer=modal__proto_dot_api__pb2.AppGetTagsResponse.FromString,
67
+ )
63
68
  self.AppHeartbeat = channel.unary_unary(
64
69
  '/modal.client.ModalClient/AppHeartbeat',
65
70
  request_serializer=modal__proto_dot_api__pb2.AppHeartbeatRequest.SerializeToString,
@@ -90,6 +95,11 @@ class ModalClientStub(object):
90
95
  request_serializer=modal__proto_dot_api__pb2.AppSetObjectsRequest.SerializeToString,
91
96
  response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
92
97
  )
98
+ self.AppSetTags = channel.unary_unary(
99
+ '/modal.client.ModalClient/AppSetTags',
100
+ request_serializer=modal__proto_dot_api__pb2.AppSetTagsRequest.SerializeToString,
101
+ response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
102
+ )
93
103
  self.AppStop = channel.unary_unary(
94
104
  '/modal.client.ModalClient/AppStop',
95
105
  request_serializer=modal__proto_dot_api__pb2.AppStopRequest.SerializeToString,
@@ -320,6 +330,11 @@ class ModalClientStub(object):
320
330
  request_serializer=modal__proto_dot_api__pb2.FlashContainerRegisterRequest.SerializeToString,
321
331
  response_deserializer=modal__proto_dot_api__pb2.FlashContainerRegisterResponse.FromString,
322
332
  )
333
+ self.FlashSetTargetSlotsMetrics = channel.unary_unary(
334
+ '/modal.client.ModalClient/FlashSetTargetSlotsMetrics',
335
+ request_serializer=modal__proto_dot_api__pb2.FlashSetTargetSlotsMetricsRequest.SerializeToString,
336
+ response_deserializer=modal__proto_dot_api__pb2.FlashSetTargetSlotsMetricsResponse.FromString,
337
+ )
323
338
  self.FunctionAsyncInvoke = channel.unary_unary(
324
339
  '/modal.client.ModalClient/FunctionAsyncInvoke',
325
340
  request_serializer=modal__proto_dot_api__pb2.FunctionAsyncInvokeRequest.SerializeToString,
@@ -335,6 +350,11 @@ class ModalClientStub(object):
335
350
  request_serializer=modal__proto_dot_api__pb2.FunctionCallCancelRequest.SerializeToString,
336
351
  response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
337
352
  )
353
+ self.FunctionCallFromId = channel.unary_unary(
354
+ '/modal.client.ModalClient/FunctionCallFromId',
355
+ request_serializer=modal__proto_dot_api__pb2.FunctionCallFromIdRequest.SerializeToString,
356
+ response_deserializer=modal__proto_dot_api__pb2.FunctionCallFromIdResponse.FromString,
357
+ )
338
358
  self.FunctionCallGetDataIn = channel.unary_stream(
339
359
  '/modal.client.ModalClient/FunctionCallGetDataIn',
340
360
  request_serializer=modal__proto_dot_api__pb2.FunctionCallGetDataRequest.SerializeToString,
@@ -360,6 +380,11 @@ class ModalClientStub(object):
360
380
  request_serializer=modal__proto_dot_api__pb2.FunctionCreateRequest.SerializeToString,
361
381
  response_deserializer=modal__proto_dot_api__pb2.FunctionCreateResponse.FromString,
362
382
  )
383
+ self.FunctionFinishInputs = channel.unary_unary(
384
+ '/modal.client.ModalClient/FunctionFinishInputs',
385
+ request_serializer=modal__proto_dot_api__pb2.FunctionFinishInputsRequest.SerializeToString,
386
+ response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
387
+ )
363
388
  self.FunctionGet = channel.unary_unary(
364
389
  '/modal.client.ModalClient/FunctionGet',
365
390
  request_serializer=modal__proto_dot_api__pb2.FunctionGetRequest.SerializeToString,
@@ -430,6 +455,11 @@ class ModalClientStub(object):
430
455
  request_serializer=modal__proto_dot_api__pb2.FunctionUpdateSchedulingParamsRequest.SerializeToString,
431
456
  response_deserializer=modal__proto_dot_api__pb2.FunctionUpdateSchedulingParamsResponse.FromString,
432
457
  )
458
+ self.ImageDelete = channel.unary_unary(
459
+ '/modal.client.ModalClient/ImageDelete',
460
+ request_serializer=modal__proto_dot_api__pb2.ImageDeleteRequest.SerializeToString,
461
+ response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
462
+ )
433
463
  self.ImageFromId = channel.unary_unary(
434
464
  '/modal.client.ModalClient/ImageFromId',
435
465
  request_serializer=modal__proto_dot_api__pb2.ImageFromIdRequest.SerializeToString,
@@ -445,6 +475,21 @@ class ModalClientStub(object):
445
475
  request_serializer=modal__proto_dot_api__pb2.ImageJoinStreamingRequest.SerializeToString,
446
476
  response_deserializer=modal__proto_dot_api__pb2.ImageJoinStreamingResponse.FromString,
447
477
  )
478
+ self.MapAwait = channel.unary_unary(
479
+ '/modal.client.ModalClient/MapAwait',
480
+ request_serializer=modal__proto_dot_api__pb2.MapAwaitRequest.SerializeToString,
481
+ response_deserializer=modal__proto_dot_api__pb2.MapAwaitResponse.FromString,
482
+ )
483
+ self.MapCheckInputs = channel.unary_unary(
484
+ '/modal.client.ModalClient/MapCheckInputs',
485
+ request_serializer=modal__proto_dot_api__pb2.MapCheckInputsRequest.SerializeToString,
486
+ response_deserializer=modal__proto_dot_api__pb2.MapCheckInputsResponse.FromString,
487
+ )
488
+ self.MapStartOrContinue = channel.unary_unary(
489
+ '/modal.client.ModalClient/MapStartOrContinue',
490
+ request_serializer=modal__proto_dot_api__pb2.MapStartOrContinueRequest.SerializeToString,
491
+ response_deserializer=modal__proto_dot_api__pb2.MapStartOrContinueResponse.FromString,
492
+ )
448
493
  self.MountGetOrCreate = channel.unary_unary(
449
494
  '/modal.client.ModalClient/MountGetOrCreate',
450
495
  request_serializer=modal__proto_dot_api__pb2.MountGetOrCreateRequest.SerializeToString,
@@ -545,6 +590,11 @@ class ModalClientStub(object):
545
590
  request_serializer=modal__proto_dot_api__pb2.SandboxCreateRequest.SerializeToString,
546
591
  response_deserializer=modal__proto_dot_api__pb2.SandboxCreateResponse.FromString,
547
592
  )
593
+ self.SandboxCreateConnectToken = channel.unary_unary(
594
+ '/modal.client.ModalClient/SandboxCreateConnectToken',
595
+ request_serializer=modal__proto_dot_api__pb2.SandboxCreateConnectTokenRequest.SerializeToString,
596
+ response_deserializer=modal__proto_dot_api__pb2.SandboxCreateConnectTokenResponse.FromString,
597
+ )
548
598
  self.SandboxGetFromName = channel.unary_unary(
549
599
  '/modal.client.ModalClient/SandboxGetFromName',
550
600
  request_serializer=modal__proto_dot_api__pb2.SandboxGetFromNameRequest.SerializeToString,
@@ -590,6 +640,16 @@ class ModalClientStub(object):
590
640
  request_serializer=modal__proto_dot_api__pb2.SandboxSnapshotFsRequest.SerializeToString,
591
641
  response_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotFsResponse.FromString,
592
642
  )
643
+ self.SandboxSnapshotFsAsync = channel.unary_unary(
644
+ '/modal.client.ModalClient/SandboxSnapshotFsAsync',
645
+ request_serializer=modal__proto_dot_api__pb2.SandboxSnapshotFsAsyncRequest.SerializeToString,
646
+ response_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotFsAsyncResponse.FromString,
647
+ )
648
+ self.SandboxSnapshotFsAsyncGet = channel.unary_unary(
649
+ '/modal.client.ModalClient/SandboxSnapshotFsAsyncGet',
650
+ request_serializer=modal__proto_dot_api__pb2.SandboxSnapshotFsAsyncGetRequest.SerializeToString,
651
+ response_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotFsResponse.FromString,
652
+ )
593
653
  self.SandboxSnapshotGet = channel.unary_unary(
594
654
  '/modal.client.ModalClient/SandboxSnapshotGet',
595
655
  request_serializer=modal__proto_dot_api__pb2.SandboxSnapshotGetRequest.SerializeToString,
@@ -605,6 +665,11 @@ class ModalClientStub(object):
605
665
  request_serializer=modal__proto_dot_api__pb2.SandboxStdinWriteRequest.SerializeToString,
606
666
  response_deserializer=modal__proto_dot_api__pb2.SandboxStdinWriteResponse.FromString,
607
667
  )
668
+ self.SandboxTagsGet = channel.unary_unary(
669
+ '/modal.client.ModalClient/SandboxTagsGet',
670
+ request_serializer=modal__proto_dot_api__pb2.SandboxTagsGetRequest.SerializeToString,
671
+ response_deserializer=modal__proto_dot_api__pb2.SandboxTagsGetResponse.FromString,
672
+ )
608
673
  self.SandboxTagsSet = channel.unary_unary(
609
674
  '/modal.client.ModalClient/SandboxTagsSet',
610
675
  request_serializer=modal__proto_dot_api__pb2.SandboxTagsSetRequest.SerializeToString,
@@ -690,6 +755,11 @@ class ModalClientStub(object):
690
755
  request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
691
756
  response_deserializer=modal__proto_dot_api__pb2.TaskCurrentInputsResponse.FromString,
692
757
  )
758
+ self.TaskGetCommandRouterAccess = channel.unary_unary(
759
+ '/modal.client.ModalClient/TaskGetCommandRouterAccess',
760
+ request_serializer=modal__proto_dot_api__pb2.TaskGetCommandRouterAccessRequest.SerializeToString,
761
+ response_deserializer=modal__proto_dot_api__pb2.TaskGetCommandRouterAccessResponse.FromString,
762
+ )
693
763
  self.TaskList = channel.unary_unary(
694
764
  '/modal.client.ModalClient/TaskList',
695
765
  request_serializer=modal__proto_dot_api__pb2.TaskListRequest.SerializeToString,
@@ -805,6 +875,11 @@ class ModalClientStub(object):
805
875
  request_serializer=modal__proto_dot_api__pb2.VolumeRenameRequest.SerializeToString,
806
876
  response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
807
877
  )
878
+ self.WorkspaceBillingReport = channel.unary_stream(
879
+ '/modal.client.ModalClient/WorkspaceBillingReport',
880
+ request_serializer=modal__proto_dot_api__pb2.WorkspaceBillingReportRequest.SerializeToString,
881
+ response_deserializer=modal__proto_dot_api__pb2.WorkspaceBillingReportItem.FromString,
882
+ )
808
883
  self.WorkspaceNameLookup = channel.unary_unary(
809
884
  '/modal.client.ModalClient/WorkspaceNameLookup',
810
885
  request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
@@ -870,6 +945,12 @@ class ModalClientServicer(object):
870
945
  context.set_details('Method not implemented!')
871
946
  raise NotImplementedError('Method not implemented!')
872
947
 
948
+ def AppGetTags(self, request, context):
949
+ """Missing associated documentation comment in .proto file."""
950
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
951
+ context.set_details('Method not implemented!')
952
+ raise NotImplementedError('Method not implemented!')
953
+
873
954
  def AppHeartbeat(self, request, context):
874
955
  """Missing associated documentation comment in .proto file."""
875
956
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -906,6 +987,12 @@ class ModalClientServicer(object):
906
987
  context.set_details('Method not implemented!')
907
988
  raise NotImplementedError('Method not implemented!')
908
989
 
990
+ def AppSetTags(self, request, context):
991
+ """Missing associated documentation comment in .proto file."""
992
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
993
+ context.set_details('Method not implemented!')
994
+ raise NotImplementedError('Method not implemented!')
995
+
909
996
  def AppStop(self, request, context):
910
997
  """Missing associated documentation comment in .proto file."""
911
998
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -914,8 +1001,6 @@ class ModalClientServicer(object):
914
1001
 
915
1002
  def AttemptAwait(self, request, context):
916
1003
  """Input Plane
917
- These RPCs are experimental, not deployed to production, and can be changed / removed
918
- without needing to worry about backwards compatibility.
919
1004
  """
920
1005
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
921
1006
  context.set_details('Method not implemented!')
@@ -1195,6 +1280,12 @@ class ModalClientServicer(object):
1195
1280
  context.set_details('Method not implemented!')
1196
1281
  raise NotImplementedError('Method not implemented!')
1197
1282
 
1283
+ def FlashSetTargetSlotsMetrics(self, request, context):
1284
+ """Missing associated documentation comment in .proto file."""
1285
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1286
+ context.set_details('Method not implemented!')
1287
+ raise NotImplementedError('Method not implemented!')
1288
+
1198
1289
  def FunctionAsyncInvoke(self, request, context):
1199
1290
  """Functions
1200
1291
  """
@@ -1214,6 +1305,12 @@ class ModalClientServicer(object):
1214
1305
  context.set_details('Method not implemented!')
1215
1306
  raise NotImplementedError('Method not implemented!')
1216
1307
 
1308
+ def FunctionCallFromId(self, request, context):
1309
+ """Missing associated documentation comment in .proto file."""
1310
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1311
+ context.set_details('Method not implemented!')
1312
+ raise NotImplementedError('Method not implemented!')
1313
+
1217
1314
  def FunctionCallGetDataIn(self, request, context):
1218
1315
  """Missing associated documentation comment in .proto file."""
1219
1316
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1244,6 +1341,13 @@ class ModalClientServicer(object):
1244
1341
  context.set_details('Method not implemented!')
1245
1342
  raise NotImplementedError('Method not implemented!')
1246
1343
 
1344
+ def FunctionFinishInputs(self, request, context):
1345
+ """For map RPCs, to signal that all inputs have been sent
1346
+ """
1347
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1348
+ context.set_details('Method not implemented!')
1349
+ raise NotImplementedError('Method not implemented!')
1350
+
1247
1351
  def FunctionGet(self, request, context):
1248
1352
  """Missing associated documentation comment in .proto file."""
1249
1353
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1331,13 +1435,19 @@ class ModalClientServicer(object):
1331
1435
  context.set_details('Method not implemented!')
1332
1436
  raise NotImplementedError('Method not implemented!')
1333
1437
 
1334
- def ImageFromId(self, request, context):
1438
+ def ImageDelete(self, request, context):
1335
1439
  """Images
1336
1440
  """
1337
1441
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1338
1442
  context.set_details('Method not implemented!')
1339
1443
  raise NotImplementedError('Method not implemented!')
1340
1444
 
1445
+ def ImageFromId(self, request, context):
1446
+ """Missing associated documentation comment in .proto file."""
1447
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1448
+ context.set_details('Method not implemented!')
1449
+ raise NotImplementedError('Method not implemented!')
1450
+
1341
1451
  def ImageGetOrCreate(self, request, context):
1342
1452
  """Missing associated documentation comment in .proto file."""
1343
1453
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1350,6 +1460,25 @@ class ModalClientServicer(object):
1350
1460
  context.set_details('Method not implemented!')
1351
1461
  raise NotImplementedError('Method not implemented!')
1352
1462
 
1463
+ def MapAwait(self, request, context):
1464
+ """Input Plane Map
1465
+ """
1466
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1467
+ context.set_details('Method not implemented!')
1468
+ raise NotImplementedError('Method not implemented!')
1469
+
1470
+ def MapCheckInputs(self, request, context):
1471
+ """Missing associated documentation comment in .proto file."""
1472
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1473
+ context.set_details('Method not implemented!')
1474
+ raise NotImplementedError('Method not implemented!')
1475
+
1476
+ def MapStartOrContinue(self, request, context):
1477
+ """Missing associated documentation comment in .proto file."""
1478
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1479
+ context.set_details('Method not implemented!')
1480
+ raise NotImplementedError('Method not implemented!')
1481
+
1353
1482
  def MountGetOrCreate(self, request, context):
1354
1483
  """Mounts
1355
1484
  """
@@ -1475,6 +1604,12 @@ class ModalClientServicer(object):
1475
1604
  context.set_details('Method not implemented!')
1476
1605
  raise NotImplementedError('Method not implemented!')
1477
1606
 
1607
+ def SandboxCreateConnectToken(self, request, context):
1608
+ """Missing associated documentation comment in .proto file."""
1609
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1610
+ context.set_details('Method not implemented!')
1611
+ raise NotImplementedError('Method not implemented!')
1612
+
1478
1613
  def SandboxGetFromName(self, request, context):
1479
1614
  """Missing associated documentation comment in .proto file."""
1480
1615
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1530,6 +1665,18 @@ class ModalClientServicer(object):
1530
1665
  context.set_details('Method not implemented!')
1531
1666
  raise NotImplementedError('Method not implemented!')
1532
1667
 
1668
+ def SandboxSnapshotFsAsync(self, request, context):
1669
+ """Missing associated documentation comment in .proto file."""
1670
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1671
+ context.set_details('Method not implemented!')
1672
+ raise NotImplementedError('Method not implemented!')
1673
+
1674
+ def SandboxSnapshotFsAsyncGet(self, request, context):
1675
+ """Missing associated documentation comment in .proto file."""
1676
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1677
+ context.set_details('Method not implemented!')
1678
+ raise NotImplementedError('Method not implemented!')
1679
+
1533
1680
  def SandboxSnapshotGet(self, request, context):
1534
1681
  """Missing associated documentation comment in .proto file."""
1535
1682
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1548,6 +1695,12 @@ class ModalClientServicer(object):
1548
1695
  context.set_details('Method not implemented!')
1549
1696
  raise NotImplementedError('Method not implemented!')
1550
1697
 
1698
+ def SandboxTagsGet(self, request, context):
1699
+ """Missing associated documentation comment in .proto file."""
1700
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1701
+ context.set_details('Method not implemented!')
1702
+ raise NotImplementedError('Method not implemented!')
1703
+
1551
1704
  def SandboxTagsSet(self, request, context):
1552
1705
  """Missing associated documentation comment in .proto file."""
1553
1706
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1653,6 +1806,12 @@ class ModalClientServicer(object):
1653
1806
  context.set_details('Method not implemented!')
1654
1807
  raise NotImplementedError('Method not implemented!')
1655
1808
 
1809
+ def TaskGetCommandRouterAccess(self, request, context):
1810
+ """Missing associated documentation comment in .proto file."""
1811
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1812
+ context.set_details('Method not implemented!')
1813
+ raise NotImplementedError('Method not implemented!')
1814
+
1656
1815
  def TaskList(self, request, context):
1657
1816
  """Missing associated documentation comment in .proto file."""
1658
1817
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1794,13 +1953,19 @@ class ModalClientServicer(object):
1794
1953
  context.set_details('Method not implemented!')
1795
1954
  raise NotImplementedError('Method not implemented!')
1796
1955
 
1797
- def WorkspaceNameLookup(self, request, context):
1956
+ def WorkspaceBillingReport(self, request, context):
1798
1957
  """Workspaces
1799
1958
  """
1800
1959
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1801
1960
  context.set_details('Method not implemented!')
1802
1961
  raise NotImplementedError('Method not implemented!')
1803
1962
 
1963
+ def WorkspaceNameLookup(self, request, context):
1964
+ """Missing associated documentation comment in .proto file."""
1965
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1966
+ context.set_details('Method not implemented!')
1967
+ raise NotImplementedError('Method not implemented!')
1968
+
1804
1969
 
1805
1970
  def add_ModalClientServicer_to_server(servicer, server):
1806
1971
  rpc_method_handlers = {
@@ -1849,6 +2014,11 @@ def add_ModalClientServicer_to_server(servicer, server):
1849
2014
  request_deserializer=modal__proto_dot_api__pb2.AppGetOrCreateRequest.FromString,
1850
2015
  response_serializer=modal__proto_dot_api__pb2.AppGetOrCreateResponse.SerializeToString,
1851
2016
  ),
2017
+ 'AppGetTags': grpc.unary_unary_rpc_method_handler(
2018
+ servicer.AppGetTags,
2019
+ request_deserializer=modal__proto_dot_api__pb2.AppGetTagsRequest.FromString,
2020
+ response_serializer=modal__proto_dot_api__pb2.AppGetTagsResponse.SerializeToString,
2021
+ ),
1852
2022
  'AppHeartbeat': grpc.unary_unary_rpc_method_handler(
1853
2023
  servicer.AppHeartbeat,
1854
2024
  request_deserializer=modal__proto_dot_api__pb2.AppHeartbeatRequest.FromString,
@@ -1879,6 +2049,11 @@ def add_ModalClientServicer_to_server(servicer, server):
1879
2049
  request_deserializer=modal__proto_dot_api__pb2.AppSetObjectsRequest.FromString,
1880
2050
  response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
1881
2051
  ),
2052
+ 'AppSetTags': grpc.unary_unary_rpc_method_handler(
2053
+ servicer.AppSetTags,
2054
+ request_deserializer=modal__proto_dot_api__pb2.AppSetTagsRequest.FromString,
2055
+ response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
2056
+ ),
1882
2057
  'AppStop': grpc.unary_unary_rpc_method_handler(
1883
2058
  servicer.AppStop,
1884
2059
  request_deserializer=modal__proto_dot_api__pb2.AppStopRequest.FromString,
@@ -2109,6 +2284,11 @@ def add_ModalClientServicer_to_server(servicer, server):
2109
2284
  request_deserializer=modal__proto_dot_api__pb2.FlashContainerRegisterRequest.FromString,
2110
2285
  response_serializer=modal__proto_dot_api__pb2.FlashContainerRegisterResponse.SerializeToString,
2111
2286
  ),
2287
+ 'FlashSetTargetSlotsMetrics': grpc.unary_unary_rpc_method_handler(
2288
+ servicer.FlashSetTargetSlotsMetrics,
2289
+ request_deserializer=modal__proto_dot_api__pb2.FlashSetTargetSlotsMetricsRequest.FromString,
2290
+ response_serializer=modal__proto_dot_api__pb2.FlashSetTargetSlotsMetricsResponse.SerializeToString,
2291
+ ),
2112
2292
  'FunctionAsyncInvoke': grpc.unary_unary_rpc_method_handler(
2113
2293
  servicer.FunctionAsyncInvoke,
2114
2294
  request_deserializer=modal__proto_dot_api__pb2.FunctionAsyncInvokeRequest.FromString,
@@ -2124,6 +2304,11 @@ def add_ModalClientServicer_to_server(servicer, server):
2124
2304
  request_deserializer=modal__proto_dot_api__pb2.FunctionCallCancelRequest.FromString,
2125
2305
  response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
2126
2306
  ),
2307
+ 'FunctionCallFromId': grpc.unary_unary_rpc_method_handler(
2308
+ servicer.FunctionCallFromId,
2309
+ request_deserializer=modal__proto_dot_api__pb2.FunctionCallFromIdRequest.FromString,
2310
+ response_serializer=modal__proto_dot_api__pb2.FunctionCallFromIdResponse.SerializeToString,
2311
+ ),
2127
2312
  'FunctionCallGetDataIn': grpc.unary_stream_rpc_method_handler(
2128
2313
  servicer.FunctionCallGetDataIn,
2129
2314
  request_deserializer=modal__proto_dot_api__pb2.FunctionCallGetDataRequest.FromString,
@@ -2149,6 +2334,11 @@ def add_ModalClientServicer_to_server(servicer, server):
2149
2334
  request_deserializer=modal__proto_dot_api__pb2.FunctionCreateRequest.FromString,
2150
2335
  response_serializer=modal__proto_dot_api__pb2.FunctionCreateResponse.SerializeToString,
2151
2336
  ),
2337
+ 'FunctionFinishInputs': grpc.unary_unary_rpc_method_handler(
2338
+ servicer.FunctionFinishInputs,
2339
+ request_deserializer=modal__proto_dot_api__pb2.FunctionFinishInputsRequest.FromString,
2340
+ response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
2341
+ ),
2152
2342
  'FunctionGet': grpc.unary_unary_rpc_method_handler(
2153
2343
  servicer.FunctionGet,
2154
2344
  request_deserializer=modal__proto_dot_api__pb2.FunctionGetRequest.FromString,
@@ -2219,6 +2409,11 @@ def add_ModalClientServicer_to_server(servicer, server):
2219
2409
  request_deserializer=modal__proto_dot_api__pb2.FunctionUpdateSchedulingParamsRequest.FromString,
2220
2410
  response_serializer=modal__proto_dot_api__pb2.FunctionUpdateSchedulingParamsResponse.SerializeToString,
2221
2411
  ),
2412
+ 'ImageDelete': grpc.unary_unary_rpc_method_handler(
2413
+ servicer.ImageDelete,
2414
+ request_deserializer=modal__proto_dot_api__pb2.ImageDeleteRequest.FromString,
2415
+ response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
2416
+ ),
2222
2417
  'ImageFromId': grpc.unary_unary_rpc_method_handler(
2223
2418
  servicer.ImageFromId,
2224
2419
  request_deserializer=modal__proto_dot_api__pb2.ImageFromIdRequest.FromString,
@@ -2234,6 +2429,21 @@ def add_ModalClientServicer_to_server(servicer, server):
2234
2429
  request_deserializer=modal__proto_dot_api__pb2.ImageJoinStreamingRequest.FromString,
2235
2430
  response_serializer=modal__proto_dot_api__pb2.ImageJoinStreamingResponse.SerializeToString,
2236
2431
  ),
2432
+ 'MapAwait': grpc.unary_unary_rpc_method_handler(
2433
+ servicer.MapAwait,
2434
+ request_deserializer=modal__proto_dot_api__pb2.MapAwaitRequest.FromString,
2435
+ response_serializer=modal__proto_dot_api__pb2.MapAwaitResponse.SerializeToString,
2436
+ ),
2437
+ 'MapCheckInputs': grpc.unary_unary_rpc_method_handler(
2438
+ servicer.MapCheckInputs,
2439
+ request_deserializer=modal__proto_dot_api__pb2.MapCheckInputsRequest.FromString,
2440
+ response_serializer=modal__proto_dot_api__pb2.MapCheckInputsResponse.SerializeToString,
2441
+ ),
2442
+ 'MapStartOrContinue': grpc.unary_unary_rpc_method_handler(
2443
+ servicer.MapStartOrContinue,
2444
+ request_deserializer=modal__proto_dot_api__pb2.MapStartOrContinueRequest.FromString,
2445
+ response_serializer=modal__proto_dot_api__pb2.MapStartOrContinueResponse.SerializeToString,
2446
+ ),
2237
2447
  'MountGetOrCreate': grpc.unary_unary_rpc_method_handler(
2238
2448
  servicer.MountGetOrCreate,
2239
2449
  request_deserializer=modal__proto_dot_api__pb2.MountGetOrCreateRequest.FromString,
@@ -2334,6 +2544,11 @@ def add_ModalClientServicer_to_server(servicer, server):
2334
2544
  request_deserializer=modal__proto_dot_api__pb2.SandboxCreateRequest.FromString,
2335
2545
  response_serializer=modal__proto_dot_api__pb2.SandboxCreateResponse.SerializeToString,
2336
2546
  ),
2547
+ 'SandboxCreateConnectToken': grpc.unary_unary_rpc_method_handler(
2548
+ servicer.SandboxCreateConnectToken,
2549
+ request_deserializer=modal__proto_dot_api__pb2.SandboxCreateConnectTokenRequest.FromString,
2550
+ response_serializer=modal__proto_dot_api__pb2.SandboxCreateConnectTokenResponse.SerializeToString,
2551
+ ),
2337
2552
  'SandboxGetFromName': grpc.unary_unary_rpc_method_handler(
2338
2553
  servicer.SandboxGetFromName,
2339
2554
  request_deserializer=modal__proto_dot_api__pb2.SandboxGetFromNameRequest.FromString,
@@ -2379,6 +2594,16 @@ def add_ModalClientServicer_to_server(servicer, server):
2379
2594
  request_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotFsRequest.FromString,
2380
2595
  response_serializer=modal__proto_dot_api__pb2.SandboxSnapshotFsResponse.SerializeToString,
2381
2596
  ),
2597
+ 'SandboxSnapshotFsAsync': grpc.unary_unary_rpc_method_handler(
2598
+ servicer.SandboxSnapshotFsAsync,
2599
+ request_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotFsAsyncRequest.FromString,
2600
+ response_serializer=modal__proto_dot_api__pb2.SandboxSnapshotFsAsyncResponse.SerializeToString,
2601
+ ),
2602
+ 'SandboxSnapshotFsAsyncGet': grpc.unary_unary_rpc_method_handler(
2603
+ servicer.SandboxSnapshotFsAsyncGet,
2604
+ request_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotFsAsyncGetRequest.FromString,
2605
+ response_serializer=modal__proto_dot_api__pb2.SandboxSnapshotFsResponse.SerializeToString,
2606
+ ),
2382
2607
  'SandboxSnapshotGet': grpc.unary_unary_rpc_method_handler(
2383
2608
  servicer.SandboxSnapshotGet,
2384
2609
  request_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotGetRequest.FromString,
@@ -2394,6 +2619,11 @@ def add_ModalClientServicer_to_server(servicer, server):
2394
2619
  request_deserializer=modal__proto_dot_api__pb2.SandboxStdinWriteRequest.FromString,
2395
2620
  response_serializer=modal__proto_dot_api__pb2.SandboxStdinWriteResponse.SerializeToString,
2396
2621
  ),
2622
+ 'SandboxTagsGet': grpc.unary_unary_rpc_method_handler(
2623
+ servicer.SandboxTagsGet,
2624
+ request_deserializer=modal__proto_dot_api__pb2.SandboxTagsGetRequest.FromString,
2625
+ response_serializer=modal__proto_dot_api__pb2.SandboxTagsGetResponse.SerializeToString,
2626
+ ),
2397
2627
  'SandboxTagsSet': grpc.unary_unary_rpc_method_handler(
2398
2628
  servicer.SandboxTagsSet,
2399
2629
  request_deserializer=modal__proto_dot_api__pb2.SandboxTagsSetRequest.FromString,
@@ -2479,6 +2709,11 @@ def add_ModalClientServicer_to_server(servicer, server):
2479
2709
  request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
2480
2710
  response_serializer=modal__proto_dot_api__pb2.TaskCurrentInputsResponse.SerializeToString,
2481
2711
  ),
2712
+ 'TaskGetCommandRouterAccess': grpc.unary_unary_rpc_method_handler(
2713
+ servicer.TaskGetCommandRouterAccess,
2714
+ request_deserializer=modal__proto_dot_api__pb2.TaskGetCommandRouterAccessRequest.FromString,
2715
+ response_serializer=modal__proto_dot_api__pb2.TaskGetCommandRouterAccessResponse.SerializeToString,
2716
+ ),
2482
2717
  'TaskList': grpc.unary_unary_rpc_method_handler(
2483
2718
  servicer.TaskList,
2484
2719
  request_deserializer=modal__proto_dot_api__pb2.TaskListRequest.FromString,
@@ -2594,6 +2829,11 @@ def add_ModalClientServicer_to_server(servicer, server):
2594
2829
  request_deserializer=modal__proto_dot_api__pb2.VolumeRenameRequest.FromString,
2595
2830
  response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
2596
2831
  ),
2832
+ 'WorkspaceBillingReport': grpc.unary_stream_rpc_method_handler(
2833
+ servicer.WorkspaceBillingReport,
2834
+ request_deserializer=modal__proto_dot_api__pb2.WorkspaceBillingReportRequest.FromString,
2835
+ response_serializer=modal__proto_dot_api__pb2.WorkspaceBillingReportItem.SerializeToString,
2836
+ ),
2597
2837
  'WorkspaceNameLookup': grpc.unary_unary_rpc_method_handler(
2598
2838
  servicer.WorkspaceNameLookup,
2599
2839
  request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
@@ -2762,6 +3002,23 @@ class ModalClient(object):
2762
3002
  options, channel_credentials,
2763
3003
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
2764
3004
 
3005
+ @staticmethod
3006
+ def AppGetTags(request,
3007
+ target,
3008
+ options=(),
3009
+ channel_credentials=None,
3010
+ call_credentials=None,
3011
+ insecure=False,
3012
+ compression=None,
3013
+ wait_for_ready=None,
3014
+ timeout=None,
3015
+ metadata=None):
3016
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/AppGetTags',
3017
+ modal__proto_dot_api__pb2.AppGetTagsRequest.SerializeToString,
3018
+ modal__proto_dot_api__pb2.AppGetTagsResponse.FromString,
3019
+ options, channel_credentials,
3020
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3021
+
2765
3022
  @staticmethod
2766
3023
  def AppHeartbeat(request,
2767
3024
  target,
@@ -2864,6 +3121,23 @@ class ModalClient(object):
2864
3121
  options, channel_credentials,
2865
3122
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
2866
3123
 
3124
+ @staticmethod
3125
+ def AppSetTags(request,
3126
+ target,
3127
+ options=(),
3128
+ channel_credentials=None,
3129
+ call_credentials=None,
3130
+ insecure=False,
3131
+ compression=None,
3132
+ wait_for_ready=None,
3133
+ timeout=None,
3134
+ metadata=None):
3135
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/AppSetTags',
3136
+ modal__proto_dot_api__pb2.AppSetTagsRequest.SerializeToString,
3137
+ google_dot_protobuf_dot_empty__pb2.Empty.FromString,
3138
+ options, channel_credentials,
3139
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3140
+
2867
3141
  @staticmethod
2868
3142
  def AppStop(request,
2869
3143
  target,
@@ -3646,6 +3920,23 @@ class ModalClient(object):
3646
3920
  options, channel_credentials,
3647
3921
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3648
3922
 
3923
+ @staticmethod
3924
+ def FlashSetTargetSlotsMetrics(request,
3925
+ target,
3926
+ options=(),
3927
+ channel_credentials=None,
3928
+ call_credentials=None,
3929
+ insecure=False,
3930
+ compression=None,
3931
+ wait_for_ready=None,
3932
+ timeout=None,
3933
+ metadata=None):
3934
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/FlashSetTargetSlotsMetrics',
3935
+ modal__proto_dot_api__pb2.FlashSetTargetSlotsMetricsRequest.SerializeToString,
3936
+ modal__proto_dot_api__pb2.FlashSetTargetSlotsMetricsResponse.FromString,
3937
+ options, channel_credentials,
3938
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3939
+
3649
3940
  @staticmethod
3650
3941
  def FunctionAsyncInvoke(request,
3651
3942
  target,
@@ -3697,6 +3988,23 @@ class ModalClient(object):
3697
3988
  options, channel_credentials,
3698
3989
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3699
3990
 
3991
+ @staticmethod
3992
+ def FunctionCallFromId(request,
3993
+ target,
3994
+ options=(),
3995
+ channel_credentials=None,
3996
+ call_credentials=None,
3997
+ insecure=False,
3998
+ compression=None,
3999
+ wait_for_ready=None,
4000
+ timeout=None,
4001
+ metadata=None):
4002
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/FunctionCallFromId',
4003
+ modal__proto_dot_api__pb2.FunctionCallFromIdRequest.SerializeToString,
4004
+ modal__proto_dot_api__pb2.FunctionCallFromIdResponse.FromString,
4005
+ options, channel_credentials,
4006
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4007
+
3700
4008
  @staticmethod
3701
4009
  def FunctionCallGetDataIn(request,
3702
4010
  target,
@@ -3782,6 +4090,23 @@ class ModalClient(object):
3782
4090
  options, channel_credentials,
3783
4091
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3784
4092
 
4093
+ @staticmethod
4094
+ def FunctionFinishInputs(request,
4095
+ target,
4096
+ options=(),
4097
+ channel_credentials=None,
4098
+ call_credentials=None,
4099
+ insecure=False,
4100
+ compression=None,
4101
+ wait_for_ready=None,
4102
+ timeout=None,
4103
+ metadata=None):
4104
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/FunctionFinishInputs',
4105
+ modal__proto_dot_api__pb2.FunctionFinishInputsRequest.SerializeToString,
4106
+ google_dot_protobuf_dot_empty__pb2.Empty.FromString,
4107
+ options, channel_credentials,
4108
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4109
+
3785
4110
  @staticmethod
3786
4111
  def FunctionGet(request,
3787
4112
  target,
@@ -4020,6 +4345,23 @@ class ModalClient(object):
4020
4345
  options, channel_credentials,
4021
4346
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4022
4347
 
4348
+ @staticmethod
4349
+ def ImageDelete(request,
4350
+ target,
4351
+ options=(),
4352
+ channel_credentials=None,
4353
+ call_credentials=None,
4354
+ insecure=False,
4355
+ compression=None,
4356
+ wait_for_ready=None,
4357
+ timeout=None,
4358
+ metadata=None):
4359
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/ImageDelete',
4360
+ modal__proto_dot_api__pb2.ImageDeleteRequest.SerializeToString,
4361
+ google_dot_protobuf_dot_empty__pb2.Empty.FromString,
4362
+ options, channel_credentials,
4363
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4364
+
4023
4365
  @staticmethod
4024
4366
  def ImageFromId(request,
4025
4367
  target,
@@ -4071,6 +4413,57 @@ class ModalClient(object):
4071
4413
  options, channel_credentials,
4072
4414
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4073
4415
 
4416
+ @staticmethod
4417
+ def MapAwait(request,
4418
+ target,
4419
+ options=(),
4420
+ channel_credentials=None,
4421
+ call_credentials=None,
4422
+ insecure=False,
4423
+ compression=None,
4424
+ wait_for_ready=None,
4425
+ timeout=None,
4426
+ metadata=None):
4427
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/MapAwait',
4428
+ modal__proto_dot_api__pb2.MapAwaitRequest.SerializeToString,
4429
+ modal__proto_dot_api__pb2.MapAwaitResponse.FromString,
4430
+ options, channel_credentials,
4431
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4432
+
4433
+ @staticmethod
4434
+ def MapCheckInputs(request,
4435
+ target,
4436
+ options=(),
4437
+ channel_credentials=None,
4438
+ call_credentials=None,
4439
+ insecure=False,
4440
+ compression=None,
4441
+ wait_for_ready=None,
4442
+ timeout=None,
4443
+ metadata=None):
4444
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/MapCheckInputs',
4445
+ modal__proto_dot_api__pb2.MapCheckInputsRequest.SerializeToString,
4446
+ modal__proto_dot_api__pb2.MapCheckInputsResponse.FromString,
4447
+ options, channel_credentials,
4448
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4449
+
4450
+ @staticmethod
4451
+ def MapStartOrContinue(request,
4452
+ target,
4453
+ options=(),
4454
+ channel_credentials=None,
4455
+ call_credentials=None,
4456
+ insecure=False,
4457
+ compression=None,
4458
+ wait_for_ready=None,
4459
+ timeout=None,
4460
+ metadata=None):
4461
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/MapStartOrContinue',
4462
+ modal__proto_dot_api__pb2.MapStartOrContinueRequest.SerializeToString,
4463
+ modal__proto_dot_api__pb2.MapStartOrContinueResponse.FromString,
4464
+ options, channel_credentials,
4465
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4466
+
4074
4467
  @staticmethod
4075
4468
  def MountGetOrCreate(request,
4076
4469
  target,
@@ -4411,6 +4804,23 @@ class ModalClient(object):
4411
4804
  options, channel_credentials,
4412
4805
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4413
4806
 
4807
+ @staticmethod
4808
+ def SandboxCreateConnectToken(request,
4809
+ target,
4810
+ options=(),
4811
+ channel_credentials=None,
4812
+ call_credentials=None,
4813
+ insecure=False,
4814
+ compression=None,
4815
+ wait_for_ready=None,
4816
+ timeout=None,
4817
+ metadata=None):
4818
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/SandboxCreateConnectToken',
4819
+ modal__proto_dot_api__pb2.SandboxCreateConnectTokenRequest.SerializeToString,
4820
+ modal__proto_dot_api__pb2.SandboxCreateConnectTokenResponse.FromString,
4821
+ options, channel_credentials,
4822
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4823
+
4414
4824
  @staticmethod
4415
4825
  def SandboxGetFromName(request,
4416
4826
  target,
@@ -4564,6 +4974,40 @@ class ModalClient(object):
4564
4974
  options, channel_credentials,
4565
4975
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4566
4976
 
4977
+ @staticmethod
4978
+ def SandboxSnapshotFsAsync(request,
4979
+ target,
4980
+ options=(),
4981
+ channel_credentials=None,
4982
+ call_credentials=None,
4983
+ insecure=False,
4984
+ compression=None,
4985
+ wait_for_ready=None,
4986
+ timeout=None,
4987
+ metadata=None):
4988
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/SandboxSnapshotFsAsync',
4989
+ modal__proto_dot_api__pb2.SandboxSnapshotFsAsyncRequest.SerializeToString,
4990
+ modal__proto_dot_api__pb2.SandboxSnapshotFsAsyncResponse.FromString,
4991
+ options, channel_credentials,
4992
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4993
+
4994
+ @staticmethod
4995
+ def SandboxSnapshotFsAsyncGet(request,
4996
+ target,
4997
+ options=(),
4998
+ channel_credentials=None,
4999
+ call_credentials=None,
5000
+ insecure=False,
5001
+ compression=None,
5002
+ wait_for_ready=None,
5003
+ timeout=None,
5004
+ metadata=None):
5005
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/SandboxSnapshotFsAsyncGet',
5006
+ modal__proto_dot_api__pb2.SandboxSnapshotFsAsyncGetRequest.SerializeToString,
5007
+ modal__proto_dot_api__pb2.SandboxSnapshotFsResponse.FromString,
5008
+ options, channel_credentials,
5009
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
5010
+
4567
5011
  @staticmethod
4568
5012
  def SandboxSnapshotGet(request,
4569
5013
  target,
@@ -4615,6 +5059,23 @@ class ModalClient(object):
4615
5059
  options, channel_credentials,
4616
5060
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4617
5061
 
5062
+ @staticmethod
5063
+ def SandboxTagsGet(request,
5064
+ target,
5065
+ options=(),
5066
+ channel_credentials=None,
5067
+ call_credentials=None,
5068
+ insecure=False,
5069
+ compression=None,
5070
+ wait_for_ready=None,
5071
+ timeout=None,
5072
+ metadata=None):
5073
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/SandboxTagsGet',
5074
+ modal__proto_dot_api__pb2.SandboxTagsGetRequest.SerializeToString,
5075
+ modal__proto_dot_api__pb2.SandboxTagsGetResponse.FromString,
5076
+ options, channel_credentials,
5077
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
5078
+
4618
5079
  @staticmethod
4619
5080
  def SandboxTagsSet(request,
4620
5081
  target,
@@ -4904,6 +5365,23 @@ class ModalClient(object):
4904
5365
  options, channel_credentials,
4905
5366
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4906
5367
 
5368
+ @staticmethod
5369
+ def TaskGetCommandRouterAccess(request,
5370
+ target,
5371
+ options=(),
5372
+ channel_credentials=None,
5373
+ call_credentials=None,
5374
+ insecure=False,
5375
+ compression=None,
5376
+ wait_for_ready=None,
5377
+ timeout=None,
5378
+ metadata=None):
5379
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/TaskGetCommandRouterAccess',
5380
+ modal__proto_dot_api__pb2.TaskGetCommandRouterAccessRequest.SerializeToString,
5381
+ modal__proto_dot_api__pb2.TaskGetCommandRouterAccessResponse.FromString,
5382
+ options, channel_credentials,
5383
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
5384
+
4907
5385
  @staticmethod
4908
5386
  def TaskList(request,
4909
5387
  target,
@@ -5295,6 +5773,23 @@ class ModalClient(object):
5295
5773
  options, channel_credentials,
5296
5774
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
5297
5775
 
5776
+ @staticmethod
5777
+ def WorkspaceBillingReport(request,
5778
+ target,
5779
+ options=(),
5780
+ channel_credentials=None,
5781
+ call_credentials=None,
5782
+ insecure=False,
5783
+ compression=None,
5784
+ wait_for_ready=None,
5785
+ timeout=None,
5786
+ metadata=None):
5787
+ return grpc.experimental.unary_stream(request, target, '/modal.client.ModalClient/WorkspaceBillingReport',
5788
+ modal__proto_dot_api__pb2.WorkspaceBillingReportRequest.SerializeToString,
5789
+ modal__proto_dot_api__pb2.WorkspaceBillingReportItem.FromString,
5790
+ options, channel_credentials,
5791
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
5792
+
5298
5793
  @staticmethod
5299
5794
  def WorkspaceNameLookup(request,
5300
5795
  target,