modal 1.0.3.dev10__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 (160) hide show
  1. modal/__init__.py +0 -2
  2. modal/__main__.py +3 -4
  3. modal/_billing.py +80 -0
  4. modal/_clustered_functions.py +7 -3
  5. modal/_clustered_functions.pyi +15 -3
  6. modal/_container_entrypoint.py +51 -69
  7. modal/_functions.py +508 -240
  8. modal/_grpc_client.py +171 -0
  9. modal/_load_context.py +105 -0
  10. modal/_object.py +81 -21
  11. modal/_output.py +58 -45
  12. modal/_partial_function.py +48 -73
  13. modal/_pty.py +7 -3
  14. modal/_resolver.py +26 -46
  15. modal/_runtime/asgi.py +4 -3
  16. modal/_runtime/container_io_manager.py +358 -220
  17. modal/_runtime/container_io_manager.pyi +296 -101
  18. modal/_runtime/execution_context.py +18 -2
  19. modal/_runtime/execution_context.pyi +64 -7
  20. modal/_runtime/gpu_memory_snapshot.py +262 -57
  21. modal/_runtime/user_code_imports.py +28 -58
  22. modal/_serialization.py +90 -6
  23. modal/_traceback.py +42 -1
  24. modal/_tunnel.pyi +380 -12
  25. modal/_utils/async_utils.py +84 -29
  26. modal/_utils/auth_token_manager.py +111 -0
  27. modal/_utils/blob_utils.py +181 -58
  28. modal/_utils/deprecation.py +19 -0
  29. modal/_utils/function_utils.py +91 -47
  30. modal/_utils/grpc_utils.py +89 -66
  31. modal/_utils/mount_utils.py +26 -1
  32. modal/_utils/name_utils.py +17 -3
  33. modal/_utils/task_command_router_client.py +536 -0
  34. modal/_utils/time_utils.py +34 -6
  35. modal/app.py +256 -88
  36. modal/app.pyi +909 -92
  37. modal/billing.py +5 -0
  38. modal/builder/2025.06.txt +18 -0
  39. modal/builder/PREVIEW.txt +18 -0
  40. modal/builder/base-images.json +58 -0
  41. modal/cli/_download.py +19 -3
  42. modal/cli/_traceback.py +3 -2
  43. modal/cli/app.py +4 -4
  44. modal/cli/cluster.py +15 -7
  45. modal/cli/config.py +5 -3
  46. modal/cli/container.py +7 -6
  47. modal/cli/dict.py +22 -16
  48. modal/cli/entry_point.py +12 -5
  49. modal/cli/environment.py +5 -4
  50. modal/cli/import_refs.py +3 -3
  51. modal/cli/launch.py +102 -5
  52. modal/cli/network_file_system.py +11 -12
  53. modal/cli/profile.py +3 -2
  54. modal/cli/programs/launch_instance_ssh.py +94 -0
  55. modal/cli/programs/run_jupyter.py +1 -1
  56. modal/cli/programs/run_marimo.py +95 -0
  57. modal/cli/programs/vscode.py +1 -1
  58. modal/cli/queues.py +57 -26
  59. modal/cli/run.py +91 -23
  60. modal/cli/secret.py +48 -22
  61. modal/cli/token.py +7 -8
  62. modal/cli/utils.py +4 -7
  63. modal/cli/volume.py +31 -25
  64. modal/client.py +15 -85
  65. modal/client.pyi +183 -62
  66. modal/cloud_bucket_mount.py +5 -3
  67. modal/cloud_bucket_mount.pyi +197 -5
  68. modal/cls.py +200 -126
  69. modal/cls.pyi +446 -68
  70. modal/config.py +29 -11
  71. modal/container_process.py +319 -19
  72. modal/container_process.pyi +190 -20
  73. modal/dict.py +290 -71
  74. modal/dict.pyi +835 -83
  75. modal/environments.py +15 -27
  76. modal/environments.pyi +46 -24
  77. modal/exception.py +14 -2
  78. modal/experimental/__init__.py +194 -40
  79. modal/experimental/flash.py +618 -0
  80. modal/experimental/flash.pyi +380 -0
  81. modal/experimental/ipython.py +11 -7
  82. modal/file_io.py +29 -36
  83. modal/file_io.pyi +251 -53
  84. modal/file_pattern_matcher.py +56 -16
  85. modal/functions.pyi +673 -92
  86. modal/gpu.py +1 -1
  87. modal/image.py +528 -176
  88. modal/image.pyi +1572 -145
  89. modal/io_streams.py +458 -128
  90. modal/io_streams.pyi +433 -52
  91. modal/mount.py +216 -151
  92. modal/mount.pyi +225 -78
  93. modal/network_file_system.py +45 -62
  94. modal/network_file_system.pyi +277 -56
  95. modal/object.pyi +93 -17
  96. modal/parallel_map.py +942 -129
  97. modal/parallel_map.pyi +294 -15
  98. modal/partial_function.py +0 -2
  99. modal/partial_function.pyi +234 -19
  100. modal/proxy.py +17 -8
  101. modal/proxy.pyi +36 -3
  102. modal/queue.py +270 -65
  103. modal/queue.pyi +817 -57
  104. modal/runner.py +115 -101
  105. modal/runner.pyi +205 -49
  106. modal/sandbox.py +512 -136
  107. modal/sandbox.pyi +845 -111
  108. modal/schedule.py +1 -1
  109. modal/secret.py +300 -70
  110. modal/secret.pyi +589 -34
  111. modal/serving.py +7 -11
  112. modal/serving.pyi +7 -8
  113. modal/snapshot.py +11 -8
  114. modal/snapshot.pyi +25 -4
  115. modal/token_flow.py +4 -4
  116. modal/token_flow.pyi +28 -8
  117. modal/volume.py +416 -158
  118. modal/volume.pyi +1117 -121
  119. {modal-1.0.3.dev10.dist-info → modal-1.2.3.dev7.dist-info}/METADATA +10 -9
  120. modal-1.2.3.dev7.dist-info/RECORD +195 -0
  121. modal_docs/mdmd/mdmd.py +17 -4
  122. modal_proto/api.proto +534 -79
  123. modal_proto/api_grpc.py +337 -1
  124. modal_proto/api_pb2.py +1522 -968
  125. modal_proto/api_pb2.pyi +1619 -134
  126. modal_proto/api_pb2_grpc.py +699 -4
  127. modal_proto/api_pb2_grpc.pyi +226 -14
  128. modal_proto/modal_api_grpc.py +175 -154
  129. modal_proto/sandbox_router.proto +145 -0
  130. modal_proto/sandbox_router_grpc.py +105 -0
  131. modal_proto/sandbox_router_pb2.py +149 -0
  132. modal_proto/sandbox_router_pb2.pyi +333 -0
  133. modal_proto/sandbox_router_pb2_grpc.py +203 -0
  134. modal_proto/sandbox_router_pb2_grpc.pyi +75 -0
  135. modal_proto/task_command_router.proto +144 -0
  136. modal_proto/task_command_router_grpc.py +105 -0
  137. modal_proto/task_command_router_pb2.py +149 -0
  138. modal_proto/task_command_router_pb2.pyi +333 -0
  139. modal_proto/task_command_router_pb2_grpc.py +203 -0
  140. modal_proto/task_command_router_pb2_grpc.pyi +75 -0
  141. modal_version/__init__.py +1 -1
  142. modal/requirements/PREVIEW.txt +0 -16
  143. modal/requirements/base-images.json +0 -26
  144. modal-1.0.3.dev10.dist-info/RECORD +0 -179
  145. modal_proto/modal_options_grpc.py +0 -3
  146. modal_proto/options.proto +0 -19
  147. modal_proto/options_grpc.py +0 -3
  148. modal_proto/options_pb2.py +0 -35
  149. modal_proto/options_pb2.pyi +0 -20
  150. modal_proto/options_pb2_grpc.py +0 -4
  151. modal_proto/options_pb2_grpc.pyi +0 -7
  152. /modal/{requirements → builder}/2023.12.312.txt +0 -0
  153. /modal/{requirements → builder}/2023.12.txt +0 -0
  154. /modal/{requirements → builder}/2024.04.txt +0 -0
  155. /modal/{requirements → builder}/2024.10.txt +0 -0
  156. /modal/{requirements → builder}/README.md +0 -0
  157. {modal-1.0.3.dev10.dist-info → modal-1.2.3.dev7.dist-info}/WHEEL +0 -0
  158. {modal-1.0.3.dev10.dist-info → modal-1.2.3.dev7.dist-info}/entry_points.txt +0 -0
  159. {modal-1.0.3.dev10.dist-info → modal-1.2.3.dev7.dist-info}/licenses/LICENSE +0 -0
  160. {modal-1.0.3.dev10.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,
@@ -110,6 +120,11 @@ class ModalClientStub(object):
110
120
  request_serializer=modal__proto_dot_api__pb2.AttemptStartRequest.SerializeToString,
111
121
  response_deserializer=modal__proto_dot_api__pb2.AttemptStartResponse.FromString,
112
122
  )
123
+ self.AuthTokenGet = channel.unary_unary(
124
+ '/modal.client.ModalClient/AuthTokenGet',
125
+ request_serializer=modal__proto_dot_api__pb2.AuthTokenGetRequest.SerializeToString,
126
+ response_deserializer=modal__proto_dot_api__pb2.AuthTokenGetResponse.FromString,
127
+ )
113
128
  self.BlobCreate = channel.unary_unary(
114
129
  '/modal.client.ModalClient/BlobCreate',
115
130
  request_serializer=modal__proto_dot_api__pb2.BlobCreateRequest.SerializeToString,
@@ -195,6 +210,11 @@ class ModalClientStub(object):
195
210
  request_serializer=modal__proto_dot_api__pb2.ContainerLogRequest.SerializeToString,
196
211
  response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
197
212
  )
213
+ self.ContainerReloadVolumes = channel.unary_unary(
214
+ '/modal.client.ModalClient/ContainerReloadVolumes',
215
+ request_serializer=modal__proto_dot_api__pb2.ContainerReloadVolumesRequest.SerializeToString,
216
+ response_deserializer=modal__proto_dot_api__pb2.ContainerReloadVolumesResponse.FromString,
217
+ )
198
218
  self.ContainerStop = channel.unary_unary(
199
219
  '/modal.client.ModalClient/ContainerStop',
200
220
  request_serializer=modal__proto_dot_api__pb2.ContainerStopRequest.SerializeToString,
@@ -295,6 +315,26 @@ class ModalClientStub(object):
295
315
  request_serializer=modal__proto_dot_api__pb2.EnvironmentUpdateRequest.SerializeToString,
296
316
  response_deserializer=modal__proto_dot_api__pb2.EnvironmentListItem.FromString,
297
317
  )
318
+ self.FlashContainerDeregister = channel.unary_unary(
319
+ '/modal.client.ModalClient/FlashContainerDeregister',
320
+ request_serializer=modal__proto_dot_api__pb2.FlashContainerDeregisterRequest.SerializeToString,
321
+ response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
322
+ )
323
+ self.FlashContainerList = channel.unary_unary(
324
+ '/modal.client.ModalClient/FlashContainerList',
325
+ request_serializer=modal__proto_dot_api__pb2.FlashContainerListRequest.SerializeToString,
326
+ response_deserializer=modal__proto_dot_api__pb2.FlashContainerListResponse.FromString,
327
+ )
328
+ self.FlashContainerRegister = channel.unary_unary(
329
+ '/modal.client.ModalClient/FlashContainerRegister',
330
+ request_serializer=modal__proto_dot_api__pb2.FlashContainerRegisterRequest.SerializeToString,
331
+ response_deserializer=modal__proto_dot_api__pb2.FlashContainerRegisterResponse.FromString,
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
+ )
298
338
  self.FunctionAsyncInvoke = channel.unary_unary(
299
339
  '/modal.client.ModalClient/FunctionAsyncInvoke',
300
340
  request_serializer=modal__proto_dot_api__pb2.FunctionAsyncInvokeRequest.SerializeToString,
@@ -310,6 +350,11 @@ class ModalClientStub(object):
310
350
  request_serializer=modal__proto_dot_api__pb2.FunctionCallCancelRequest.SerializeToString,
311
351
  response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
312
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
+ )
313
358
  self.FunctionCallGetDataIn = channel.unary_stream(
314
359
  '/modal.client.ModalClient/FunctionCallGetDataIn',
315
360
  request_serializer=modal__proto_dot_api__pb2.FunctionCallGetDataRequest.SerializeToString,
@@ -335,6 +380,11 @@ class ModalClientStub(object):
335
380
  request_serializer=modal__proto_dot_api__pb2.FunctionCreateRequest.SerializeToString,
336
381
  response_deserializer=modal__proto_dot_api__pb2.FunctionCreateResponse.FromString,
337
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
+ )
338
388
  self.FunctionGet = channel.unary_unary(
339
389
  '/modal.client.ModalClient/FunctionGet',
340
390
  request_serializer=modal__proto_dot_api__pb2.FunctionGetRequest.SerializeToString,
@@ -405,6 +455,11 @@ class ModalClientStub(object):
405
455
  request_serializer=modal__proto_dot_api__pb2.FunctionUpdateSchedulingParamsRequest.SerializeToString,
406
456
  response_deserializer=modal__proto_dot_api__pb2.FunctionUpdateSchedulingParamsResponse.FromString,
407
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
+ )
408
463
  self.ImageFromId = channel.unary_unary(
409
464
  '/modal.client.ModalClient/ImageFromId',
410
465
  request_serializer=modal__proto_dot_api__pb2.ImageFromIdRequest.SerializeToString,
@@ -420,6 +475,21 @@ class ModalClientStub(object):
420
475
  request_serializer=modal__proto_dot_api__pb2.ImageJoinStreamingRequest.SerializeToString,
421
476
  response_deserializer=modal__proto_dot_api__pb2.ImageJoinStreamingResponse.FromString,
422
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
+ )
423
493
  self.MountGetOrCreate = channel.unary_unary(
424
494
  '/modal.client.ModalClient/MountGetOrCreate',
425
495
  request_serializer=modal__proto_dot_api__pb2.MountGetOrCreateRequest.SerializeToString,
@@ -520,6 +590,16 @@ class ModalClientStub(object):
520
590
  request_serializer=modal__proto_dot_api__pb2.SandboxCreateRequest.SerializeToString,
521
591
  response_deserializer=modal__proto_dot_api__pb2.SandboxCreateResponse.FromString,
522
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
+ )
598
+ self.SandboxGetFromName = channel.unary_unary(
599
+ '/modal.client.ModalClient/SandboxGetFromName',
600
+ request_serializer=modal__proto_dot_api__pb2.SandboxGetFromNameRequest.SerializeToString,
601
+ response_deserializer=modal__proto_dot_api__pb2.SandboxGetFromNameResponse.FromString,
602
+ )
523
603
  self.SandboxGetLogs = channel.unary_stream(
524
604
  '/modal.client.ModalClient/SandboxGetLogs',
525
605
  request_serializer=modal__proto_dot_api__pb2.SandboxGetLogsRequest.SerializeToString,
@@ -560,6 +640,16 @@ class ModalClientStub(object):
560
640
  request_serializer=modal__proto_dot_api__pb2.SandboxSnapshotFsRequest.SerializeToString,
561
641
  response_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotFsResponse.FromString,
562
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
+ )
563
653
  self.SandboxSnapshotGet = channel.unary_unary(
564
654
  '/modal.client.ModalClient/SandboxSnapshotGet',
565
655
  request_serializer=modal__proto_dot_api__pb2.SandboxSnapshotGetRequest.SerializeToString,
@@ -575,6 +665,11 @@ class ModalClientStub(object):
575
665
  request_serializer=modal__proto_dot_api__pb2.SandboxStdinWriteRequest.SerializeToString,
576
666
  response_deserializer=modal__proto_dot_api__pb2.SandboxStdinWriteResponse.FromString,
577
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
+ )
578
673
  self.SandboxTagsSet = channel.unary_unary(
579
674
  '/modal.client.ModalClient/SandboxTagsSet',
580
675
  request_serializer=modal__proto_dot_api__pb2.SandboxTagsSetRequest.SerializeToString,
@@ -660,6 +755,11 @@ class ModalClientStub(object):
660
755
  request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
661
756
  response_deserializer=modal__proto_dot_api__pb2.TaskCurrentInputsResponse.FromString,
662
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
+ )
663
763
  self.TaskList = channel.unary_unary(
664
764
  '/modal.client.ModalClient/TaskList',
665
765
  request_serializer=modal__proto_dot_api__pb2.TaskListRequest.SerializeToString,
@@ -775,6 +875,11 @@ class ModalClientStub(object):
775
875
  request_serializer=modal__proto_dot_api__pb2.VolumeRenameRequest.SerializeToString,
776
876
  response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
777
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
+ )
778
883
  self.WorkspaceNameLookup = channel.unary_unary(
779
884
  '/modal.client.ModalClient/WorkspaceNameLookup',
780
885
  request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
@@ -840,6 +945,12 @@ class ModalClientServicer(object):
840
945
  context.set_details('Method not implemented!')
841
946
  raise NotImplementedError('Method not implemented!')
842
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
+
843
954
  def AppHeartbeat(self, request, context):
844
955
  """Missing associated documentation comment in .proto file."""
845
956
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -876,6 +987,12 @@ class ModalClientServicer(object):
876
987
  context.set_details('Method not implemented!')
877
988
  raise NotImplementedError('Method not implemented!')
878
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
+
879
996
  def AppStop(self, request, context):
880
997
  """Missing associated documentation comment in .proto file."""
881
998
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -884,8 +1001,6 @@ class ModalClientServicer(object):
884
1001
 
885
1002
  def AttemptAwait(self, request, context):
886
1003
  """Input Plane
887
- These RPCs are experimental, not deployed to production, and can be changed / removed
888
- without needing to worry about backwards compatibility.
889
1004
  """
890
1005
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
891
1006
  context.set_details('Method not implemented!')
@@ -903,6 +1018,13 @@ class ModalClientServicer(object):
903
1018
  context.set_details('Method not implemented!')
904
1019
  raise NotImplementedError('Method not implemented!')
905
1020
 
1021
+ def AuthTokenGet(self, request, context):
1022
+ """Auth Token
1023
+ """
1024
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1025
+ context.set_details('Method not implemented!')
1026
+ raise NotImplementedError('Method not implemented!')
1027
+
906
1028
  def BlobCreate(self, request, context):
907
1029
  """Blobs
908
1030
  """
@@ -1010,6 +1132,12 @@ class ModalClientServicer(object):
1010
1132
  context.set_details('Method not implemented!')
1011
1133
  raise NotImplementedError('Method not implemented!')
1012
1134
 
1135
+ def ContainerReloadVolumes(self, request, context):
1136
+ """Missing associated documentation comment in .proto file."""
1137
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1138
+ context.set_details('Method not implemented!')
1139
+ raise NotImplementedError('Method not implemented!')
1140
+
1013
1141
  def ContainerStop(self, request, context):
1014
1142
  """Missing associated documentation comment in .proto file."""
1015
1143
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1133,6 +1261,31 @@ class ModalClientServicer(object):
1133
1261
  context.set_details('Method not implemented!')
1134
1262
  raise NotImplementedError('Method not implemented!')
1135
1263
 
1264
+ def FlashContainerDeregister(self, request, context):
1265
+ """Modal Flash (experimental)
1266
+ """
1267
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1268
+ context.set_details('Method not implemented!')
1269
+ raise NotImplementedError('Method not implemented!')
1270
+
1271
+ def FlashContainerList(self, request, context):
1272
+ """Missing associated documentation comment in .proto file."""
1273
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1274
+ context.set_details('Method not implemented!')
1275
+ raise NotImplementedError('Method not implemented!')
1276
+
1277
+ def FlashContainerRegister(self, request, context):
1278
+ """Missing associated documentation comment in .proto file."""
1279
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1280
+ context.set_details('Method not implemented!')
1281
+ raise NotImplementedError('Method not implemented!')
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
+
1136
1289
  def FunctionAsyncInvoke(self, request, context):
1137
1290
  """Functions
1138
1291
  """
@@ -1152,6 +1305,12 @@ class ModalClientServicer(object):
1152
1305
  context.set_details('Method not implemented!')
1153
1306
  raise NotImplementedError('Method not implemented!')
1154
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
+
1155
1314
  def FunctionCallGetDataIn(self, request, context):
1156
1315
  """Missing associated documentation comment in .proto file."""
1157
1316
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1182,6 +1341,13 @@ class ModalClientServicer(object):
1182
1341
  context.set_details('Method not implemented!')
1183
1342
  raise NotImplementedError('Method not implemented!')
1184
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
+
1185
1351
  def FunctionGet(self, request, context):
1186
1352
  """Missing associated documentation comment in .proto file."""
1187
1353
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1269,13 +1435,19 @@ class ModalClientServicer(object):
1269
1435
  context.set_details('Method not implemented!')
1270
1436
  raise NotImplementedError('Method not implemented!')
1271
1437
 
1272
- def ImageFromId(self, request, context):
1438
+ def ImageDelete(self, request, context):
1273
1439
  """Images
1274
1440
  """
1275
1441
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1276
1442
  context.set_details('Method not implemented!')
1277
1443
  raise NotImplementedError('Method not implemented!')
1278
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
+
1279
1451
  def ImageGetOrCreate(self, request, context):
1280
1452
  """Missing associated documentation comment in .proto file."""
1281
1453
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1288,6 +1460,25 @@ class ModalClientServicer(object):
1288
1460
  context.set_details('Method not implemented!')
1289
1461
  raise NotImplementedError('Method not implemented!')
1290
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
+
1291
1482
  def MountGetOrCreate(self, request, context):
1292
1483
  """Mounts
1293
1484
  """
@@ -1413,6 +1604,18 @@ class ModalClientServicer(object):
1413
1604
  context.set_details('Method not implemented!')
1414
1605
  raise NotImplementedError('Method not implemented!')
1415
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
+
1613
+ def SandboxGetFromName(self, request, context):
1614
+ """Missing associated documentation comment in .proto file."""
1615
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1616
+ context.set_details('Method not implemented!')
1617
+ raise NotImplementedError('Method not implemented!')
1618
+
1416
1619
  def SandboxGetLogs(self, request, context):
1417
1620
  """Missing associated documentation comment in .proto file."""
1418
1621
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1462,6 +1665,18 @@ class ModalClientServicer(object):
1462
1665
  context.set_details('Method not implemented!')
1463
1666
  raise NotImplementedError('Method not implemented!')
1464
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
+
1465
1680
  def SandboxSnapshotGet(self, request, context):
1466
1681
  """Missing associated documentation comment in .proto file."""
1467
1682
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1480,6 +1695,12 @@ class ModalClientServicer(object):
1480
1695
  context.set_details('Method not implemented!')
1481
1696
  raise NotImplementedError('Method not implemented!')
1482
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
+
1483
1704
  def SandboxTagsSet(self, request, context):
1484
1705
  """Missing associated documentation comment in .proto file."""
1485
1706
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1585,6 +1806,12 @@ class ModalClientServicer(object):
1585
1806
  context.set_details('Method not implemented!')
1586
1807
  raise NotImplementedError('Method not implemented!')
1587
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
+
1588
1815
  def TaskList(self, request, context):
1589
1816
  """Missing associated documentation comment in .proto file."""
1590
1817
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1726,13 +1953,19 @@ class ModalClientServicer(object):
1726
1953
  context.set_details('Method not implemented!')
1727
1954
  raise NotImplementedError('Method not implemented!')
1728
1955
 
1729
- def WorkspaceNameLookup(self, request, context):
1956
+ def WorkspaceBillingReport(self, request, context):
1730
1957
  """Workspaces
1731
1958
  """
1732
1959
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1733
1960
  context.set_details('Method not implemented!')
1734
1961
  raise NotImplementedError('Method not implemented!')
1735
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
+
1736
1969
 
1737
1970
  def add_ModalClientServicer_to_server(servicer, server):
1738
1971
  rpc_method_handlers = {
@@ -1781,6 +2014,11 @@ def add_ModalClientServicer_to_server(servicer, server):
1781
2014
  request_deserializer=modal__proto_dot_api__pb2.AppGetOrCreateRequest.FromString,
1782
2015
  response_serializer=modal__proto_dot_api__pb2.AppGetOrCreateResponse.SerializeToString,
1783
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
+ ),
1784
2022
  'AppHeartbeat': grpc.unary_unary_rpc_method_handler(
1785
2023
  servicer.AppHeartbeat,
1786
2024
  request_deserializer=modal__proto_dot_api__pb2.AppHeartbeatRequest.FromString,
@@ -1811,6 +2049,11 @@ def add_ModalClientServicer_to_server(servicer, server):
1811
2049
  request_deserializer=modal__proto_dot_api__pb2.AppSetObjectsRequest.FromString,
1812
2050
  response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
1813
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
+ ),
1814
2057
  'AppStop': grpc.unary_unary_rpc_method_handler(
1815
2058
  servicer.AppStop,
1816
2059
  request_deserializer=modal__proto_dot_api__pb2.AppStopRequest.FromString,
@@ -1831,6 +2074,11 @@ def add_ModalClientServicer_to_server(servicer, server):
1831
2074
  request_deserializer=modal__proto_dot_api__pb2.AttemptStartRequest.FromString,
1832
2075
  response_serializer=modal__proto_dot_api__pb2.AttemptStartResponse.SerializeToString,
1833
2076
  ),
2077
+ 'AuthTokenGet': grpc.unary_unary_rpc_method_handler(
2078
+ servicer.AuthTokenGet,
2079
+ request_deserializer=modal__proto_dot_api__pb2.AuthTokenGetRequest.FromString,
2080
+ response_serializer=modal__proto_dot_api__pb2.AuthTokenGetResponse.SerializeToString,
2081
+ ),
1834
2082
  'BlobCreate': grpc.unary_unary_rpc_method_handler(
1835
2083
  servicer.BlobCreate,
1836
2084
  request_deserializer=modal__proto_dot_api__pb2.BlobCreateRequest.FromString,
@@ -1916,6 +2164,11 @@ def add_ModalClientServicer_to_server(servicer, server):
1916
2164
  request_deserializer=modal__proto_dot_api__pb2.ContainerLogRequest.FromString,
1917
2165
  response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
1918
2166
  ),
2167
+ 'ContainerReloadVolumes': grpc.unary_unary_rpc_method_handler(
2168
+ servicer.ContainerReloadVolumes,
2169
+ request_deserializer=modal__proto_dot_api__pb2.ContainerReloadVolumesRequest.FromString,
2170
+ response_serializer=modal__proto_dot_api__pb2.ContainerReloadVolumesResponse.SerializeToString,
2171
+ ),
1919
2172
  'ContainerStop': grpc.unary_unary_rpc_method_handler(
1920
2173
  servicer.ContainerStop,
1921
2174
  request_deserializer=modal__proto_dot_api__pb2.ContainerStopRequest.FromString,
@@ -2016,6 +2269,26 @@ def add_ModalClientServicer_to_server(servicer, server):
2016
2269
  request_deserializer=modal__proto_dot_api__pb2.EnvironmentUpdateRequest.FromString,
2017
2270
  response_serializer=modal__proto_dot_api__pb2.EnvironmentListItem.SerializeToString,
2018
2271
  ),
2272
+ 'FlashContainerDeregister': grpc.unary_unary_rpc_method_handler(
2273
+ servicer.FlashContainerDeregister,
2274
+ request_deserializer=modal__proto_dot_api__pb2.FlashContainerDeregisterRequest.FromString,
2275
+ response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
2276
+ ),
2277
+ 'FlashContainerList': grpc.unary_unary_rpc_method_handler(
2278
+ servicer.FlashContainerList,
2279
+ request_deserializer=modal__proto_dot_api__pb2.FlashContainerListRequest.FromString,
2280
+ response_serializer=modal__proto_dot_api__pb2.FlashContainerListResponse.SerializeToString,
2281
+ ),
2282
+ 'FlashContainerRegister': grpc.unary_unary_rpc_method_handler(
2283
+ servicer.FlashContainerRegister,
2284
+ request_deserializer=modal__proto_dot_api__pb2.FlashContainerRegisterRequest.FromString,
2285
+ response_serializer=modal__proto_dot_api__pb2.FlashContainerRegisterResponse.SerializeToString,
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
+ ),
2019
2292
  'FunctionAsyncInvoke': grpc.unary_unary_rpc_method_handler(
2020
2293
  servicer.FunctionAsyncInvoke,
2021
2294
  request_deserializer=modal__proto_dot_api__pb2.FunctionAsyncInvokeRequest.FromString,
@@ -2031,6 +2304,11 @@ def add_ModalClientServicer_to_server(servicer, server):
2031
2304
  request_deserializer=modal__proto_dot_api__pb2.FunctionCallCancelRequest.FromString,
2032
2305
  response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
2033
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
+ ),
2034
2312
  'FunctionCallGetDataIn': grpc.unary_stream_rpc_method_handler(
2035
2313
  servicer.FunctionCallGetDataIn,
2036
2314
  request_deserializer=modal__proto_dot_api__pb2.FunctionCallGetDataRequest.FromString,
@@ -2056,6 +2334,11 @@ def add_ModalClientServicer_to_server(servicer, server):
2056
2334
  request_deserializer=modal__proto_dot_api__pb2.FunctionCreateRequest.FromString,
2057
2335
  response_serializer=modal__proto_dot_api__pb2.FunctionCreateResponse.SerializeToString,
2058
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
+ ),
2059
2342
  'FunctionGet': grpc.unary_unary_rpc_method_handler(
2060
2343
  servicer.FunctionGet,
2061
2344
  request_deserializer=modal__proto_dot_api__pb2.FunctionGetRequest.FromString,
@@ -2126,6 +2409,11 @@ def add_ModalClientServicer_to_server(servicer, server):
2126
2409
  request_deserializer=modal__proto_dot_api__pb2.FunctionUpdateSchedulingParamsRequest.FromString,
2127
2410
  response_serializer=modal__proto_dot_api__pb2.FunctionUpdateSchedulingParamsResponse.SerializeToString,
2128
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
+ ),
2129
2417
  'ImageFromId': grpc.unary_unary_rpc_method_handler(
2130
2418
  servicer.ImageFromId,
2131
2419
  request_deserializer=modal__proto_dot_api__pb2.ImageFromIdRequest.FromString,
@@ -2141,6 +2429,21 @@ def add_ModalClientServicer_to_server(servicer, server):
2141
2429
  request_deserializer=modal__proto_dot_api__pb2.ImageJoinStreamingRequest.FromString,
2142
2430
  response_serializer=modal__proto_dot_api__pb2.ImageJoinStreamingResponse.SerializeToString,
2143
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
+ ),
2144
2447
  'MountGetOrCreate': grpc.unary_unary_rpc_method_handler(
2145
2448
  servicer.MountGetOrCreate,
2146
2449
  request_deserializer=modal__proto_dot_api__pb2.MountGetOrCreateRequest.FromString,
@@ -2241,6 +2544,16 @@ def add_ModalClientServicer_to_server(servicer, server):
2241
2544
  request_deserializer=modal__proto_dot_api__pb2.SandboxCreateRequest.FromString,
2242
2545
  response_serializer=modal__proto_dot_api__pb2.SandboxCreateResponse.SerializeToString,
2243
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
+ ),
2552
+ 'SandboxGetFromName': grpc.unary_unary_rpc_method_handler(
2553
+ servicer.SandboxGetFromName,
2554
+ request_deserializer=modal__proto_dot_api__pb2.SandboxGetFromNameRequest.FromString,
2555
+ response_serializer=modal__proto_dot_api__pb2.SandboxGetFromNameResponse.SerializeToString,
2556
+ ),
2244
2557
  'SandboxGetLogs': grpc.unary_stream_rpc_method_handler(
2245
2558
  servicer.SandboxGetLogs,
2246
2559
  request_deserializer=modal__proto_dot_api__pb2.SandboxGetLogsRequest.FromString,
@@ -2281,6 +2594,16 @@ def add_ModalClientServicer_to_server(servicer, server):
2281
2594
  request_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotFsRequest.FromString,
2282
2595
  response_serializer=modal__proto_dot_api__pb2.SandboxSnapshotFsResponse.SerializeToString,
2283
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
+ ),
2284
2607
  'SandboxSnapshotGet': grpc.unary_unary_rpc_method_handler(
2285
2608
  servicer.SandboxSnapshotGet,
2286
2609
  request_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotGetRequest.FromString,
@@ -2296,6 +2619,11 @@ def add_ModalClientServicer_to_server(servicer, server):
2296
2619
  request_deserializer=modal__proto_dot_api__pb2.SandboxStdinWriteRequest.FromString,
2297
2620
  response_serializer=modal__proto_dot_api__pb2.SandboxStdinWriteResponse.SerializeToString,
2298
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
+ ),
2299
2627
  'SandboxTagsSet': grpc.unary_unary_rpc_method_handler(
2300
2628
  servicer.SandboxTagsSet,
2301
2629
  request_deserializer=modal__proto_dot_api__pb2.SandboxTagsSetRequest.FromString,
@@ -2381,6 +2709,11 @@ def add_ModalClientServicer_to_server(servicer, server):
2381
2709
  request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
2382
2710
  response_serializer=modal__proto_dot_api__pb2.TaskCurrentInputsResponse.SerializeToString,
2383
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
+ ),
2384
2717
  'TaskList': grpc.unary_unary_rpc_method_handler(
2385
2718
  servicer.TaskList,
2386
2719
  request_deserializer=modal__proto_dot_api__pb2.TaskListRequest.FromString,
@@ -2496,6 +2829,11 @@ def add_ModalClientServicer_to_server(servicer, server):
2496
2829
  request_deserializer=modal__proto_dot_api__pb2.VolumeRenameRequest.FromString,
2497
2830
  response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
2498
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
+ ),
2499
2837
  'WorkspaceNameLookup': grpc.unary_unary_rpc_method_handler(
2500
2838
  servicer.WorkspaceNameLookup,
2501
2839
  request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
@@ -2664,6 +3002,23 @@ class ModalClient(object):
2664
3002
  options, channel_credentials,
2665
3003
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
2666
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
+
2667
3022
  @staticmethod
2668
3023
  def AppHeartbeat(request,
2669
3024
  target,
@@ -2766,6 +3121,23 @@ class ModalClient(object):
2766
3121
  options, channel_credentials,
2767
3122
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
2768
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
+
2769
3141
  @staticmethod
2770
3142
  def AppStop(request,
2771
3143
  target,
@@ -2834,6 +3206,23 @@ class ModalClient(object):
2834
3206
  options, channel_credentials,
2835
3207
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
2836
3208
 
3209
+ @staticmethod
3210
+ def AuthTokenGet(request,
3211
+ target,
3212
+ options=(),
3213
+ channel_credentials=None,
3214
+ call_credentials=None,
3215
+ insecure=False,
3216
+ compression=None,
3217
+ wait_for_ready=None,
3218
+ timeout=None,
3219
+ metadata=None):
3220
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/AuthTokenGet',
3221
+ modal__proto_dot_api__pb2.AuthTokenGetRequest.SerializeToString,
3222
+ modal__proto_dot_api__pb2.AuthTokenGetResponse.FromString,
3223
+ options, channel_credentials,
3224
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3225
+
2837
3226
  @staticmethod
2838
3227
  def BlobCreate(request,
2839
3228
  target,
@@ -3123,6 +3512,23 @@ class ModalClient(object):
3123
3512
  options, channel_credentials,
3124
3513
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3125
3514
 
3515
+ @staticmethod
3516
+ def ContainerReloadVolumes(request,
3517
+ target,
3518
+ options=(),
3519
+ channel_credentials=None,
3520
+ call_credentials=None,
3521
+ insecure=False,
3522
+ compression=None,
3523
+ wait_for_ready=None,
3524
+ timeout=None,
3525
+ metadata=None):
3526
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/ContainerReloadVolumes',
3527
+ modal__proto_dot_api__pb2.ContainerReloadVolumesRequest.SerializeToString,
3528
+ modal__proto_dot_api__pb2.ContainerReloadVolumesResponse.FromString,
3529
+ options, channel_credentials,
3530
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3531
+
3126
3532
  @staticmethod
3127
3533
  def ContainerStop(request,
3128
3534
  target,
@@ -3463,6 +3869,74 @@ class ModalClient(object):
3463
3869
  options, channel_credentials,
3464
3870
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3465
3871
 
3872
+ @staticmethod
3873
+ def FlashContainerDeregister(request,
3874
+ target,
3875
+ options=(),
3876
+ channel_credentials=None,
3877
+ call_credentials=None,
3878
+ insecure=False,
3879
+ compression=None,
3880
+ wait_for_ready=None,
3881
+ timeout=None,
3882
+ metadata=None):
3883
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/FlashContainerDeregister',
3884
+ modal__proto_dot_api__pb2.FlashContainerDeregisterRequest.SerializeToString,
3885
+ google_dot_protobuf_dot_empty__pb2.Empty.FromString,
3886
+ options, channel_credentials,
3887
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3888
+
3889
+ @staticmethod
3890
+ def FlashContainerList(request,
3891
+ target,
3892
+ options=(),
3893
+ channel_credentials=None,
3894
+ call_credentials=None,
3895
+ insecure=False,
3896
+ compression=None,
3897
+ wait_for_ready=None,
3898
+ timeout=None,
3899
+ metadata=None):
3900
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/FlashContainerList',
3901
+ modal__proto_dot_api__pb2.FlashContainerListRequest.SerializeToString,
3902
+ modal__proto_dot_api__pb2.FlashContainerListResponse.FromString,
3903
+ options, channel_credentials,
3904
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3905
+
3906
+ @staticmethod
3907
+ def FlashContainerRegister(request,
3908
+ target,
3909
+ options=(),
3910
+ channel_credentials=None,
3911
+ call_credentials=None,
3912
+ insecure=False,
3913
+ compression=None,
3914
+ wait_for_ready=None,
3915
+ timeout=None,
3916
+ metadata=None):
3917
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/FlashContainerRegister',
3918
+ modal__proto_dot_api__pb2.FlashContainerRegisterRequest.SerializeToString,
3919
+ modal__proto_dot_api__pb2.FlashContainerRegisterResponse.FromString,
3920
+ options, channel_credentials,
3921
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
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
+
3466
3940
  @staticmethod
3467
3941
  def FunctionAsyncInvoke(request,
3468
3942
  target,
@@ -3514,6 +3988,23 @@ class ModalClient(object):
3514
3988
  options, channel_credentials,
3515
3989
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3516
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
+
3517
4008
  @staticmethod
3518
4009
  def FunctionCallGetDataIn(request,
3519
4010
  target,
@@ -3599,6 +4090,23 @@ class ModalClient(object):
3599
4090
  options, channel_credentials,
3600
4091
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3601
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
+
3602
4110
  @staticmethod
3603
4111
  def FunctionGet(request,
3604
4112
  target,
@@ -3837,6 +4345,23 @@ class ModalClient(object):
3837
4345
  options, channel_credentials,
3838
4346
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3839
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
+
3840
4365
  @staticmethod
3841
4366
  def ImageFromId(request,
3842
4367
  target,
@@ -3888,6 +4413,57 @@ class ModalClient(object):
3888
4413
  options, channel_credentials,
3889
4414
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3890
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
+
3891
4467
  @staticmethod
3892
4468
  def MountGetOrCreate(request,
3893
4469
  target,
@@ -4228,6 +4804,40 @@ class ModalClient(object):
4228
4804
  options, channel_credentials,
4229
4805
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4230
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
+
4824
+ @staticmethod
4825
+ def SandboxGetFromName(request,
4826
+ target,
4827
+ options=(),
4828
+ channel_credentials=None,
4829
+ call_credentials=None,
4830
+ insecure=False,
4831
+ compression=None,
4832
+ wait_for_ready=None,
4833
+ timeout=None,
4834
+ metadata=None):
4835
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/SandboxGetFromName',
4836
+ modal__proto_dot_api__pb2.SandboxGetFromNameRequest.SerializeToString,
4837
+ modal__proto_dot_api__pb2.SandboxGetFromNameResponse.FromString,
4838
+ options, channel_credentials,
4839
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4840
+
4231
4841
  @staticmethod
4232
4842
  def SandboxGetLogs(request,
4233
4843
  target,
@@ -4364,6 +4974,40 @@ class ModalClient(object):
4364
4974
  options, channel_credentials,
4365
4975
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4366
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
+
4367
5011
  @staticmethod
4368
5012
  def SandboxSnapshotGet(request,
4369
5013
  target,
@@ -4415,6 +5059,23 @@ class ModalClient(object):
4415
5059
  options, channel_credentials,
4416
5060
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4417
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
+
4418
5079
  @staticmethod
4419
5080
  def SandboxTagsSet(request,
4420
5081
  target,
@@ -4704,6 +5365,23 @@ class ModalClient(object):
4704
5365
  options, channel_credentials,
4705
5366
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4706
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
+
4707
5385
  @staticmethod
4708
5386
  def TaskList(request,
4709
5387
  target,
@@ -5095,6 +5773,23 @@ class ModalClient(object):
5095
5773
  options, channel_credentials,
5096
5774
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
5097
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
+
5098
5793
  @staticmethod
5099
5794
  def WorkspaceNameLookup(request,
5100
5795
  target,