modal 0.62.16__py3-none-any.whl → 0.72.11__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.
Files changed (220) hide show
  1. modal/__init__.py +17 -13
  2. modal/__main__.py +41 -3
  3. modal/_clustered_functions.py +80 -0
  4. modal/_clustered_functions.pyi +22 -0
  5. modal/_container_entrypoint.py +420 -937
  6. modal/_ipython.py +3 -13
  7. modal/_location.py +17 -10
  8. modal/_output.py +243 -99
  9. modal/_pty.py +2 -2
  10. modal/_resolver.py +55 -59
  11. modal/_resources.py +51 -0
  12. modal/_runtime/__init__.py +1 -0
  13. modal/_runtime/asgi.py +519 -0
  14. modal/_runtime/container_io_manager.py +1036 -0
  15. modal/_runtime/execution_context.py +89 -0
  16. modal/_runtime/telemetry.py +169 -0
  17. modal/_runtime/user_code_imports.py +356 -0
  18. modal/_serialization.py +134 -9
  19. modal/_traceback.py +47 -187
  20. modal/_tunnel.py +52 -16
  21. modal/_tunnel.pyi +19 -36
  22. modal/_utils/app_utils.py +3 -17
  23. modal/_utils/async_utils.py +479 -100
  24. modal/_utils/blob_utils.py +157 -186
  25. modal/_utils/bytes_io_segment_payload.py +97 -0
  26. modal/_utils/deprecation.py +89 -0
  27. modal/_utils/docker_utils.py +98 -0
  28. modal/_utils/function_utils.py +460 -171
  29. modal/_utils/grpc_testing.py +47 -31
  30. modal/_utils/grpc_utils.py +62 -109
  31. modal/_utils/hash_utils.py +61 -19
  32. modal/_utils/http_utils.py +39 -9
  33. modal/_utils/logger.py +2 -1
  34. modal/_utils/mount_utils.py +34 -16
  35. modal/_utils/name_utils.py +58 -0
  36. modal/_utils/package_utils.py +14 -1
  37. modal/_utils/pattern_utils.py +205 -0
  38. modal/_utils/rand_pb_testing.py +5 -7
  39. modal/_utils/shell_utils.py +15 -49
  40. modal/_vendor/a2wsgi_wsgi.py +62 -72
  41. modal/_vendor/cloudpickle.py +1 -1
  42. modal/_watcher.py +14 -12
  43. modal/app.py +1003 -314
  44. modal/app.pyi +540 -264
  45. modal/call_graph.py +7 -6
  46. modal/cli/_download.py +63 -53
  47. modal/cli/_traceback.py +200 -0
  48. modal/cli/app.py +205 -45
  49. modal/cli/config.py +12 -5
  50. modal/cli/container.py +62 -14
  51. modal/cli/dict.py +128 -0
  52. modal/cli/entry_point.py +26 -13
  53. modal/cli/environment.py +40 -9
  54. modal/cli/import_refs.py +64 -58
  55. modal/cli/launch.py +32 -18
  56. modal/cli/network_file_system.py +64 -83
  57. modal/cli/profile.py +1 -1
  58. modal/cli/programs/run_jupyter.py +35 -10
  59. modal/cli/programs/vscode.py +60 -10
  60. modal/cli/queues.py +131 -0
  61. modal/cli/run.py +234 -131
  62. modal/cli/secret.py +8 -7
  63. modal/cli/token.py +7 -2
  64. modal/cli/utils.py +79 -10
  65. modal/cli/volume.py +110 -109
  66. modal/client.py +250 -144
  67. modal/client.pyi +157 -118
  68. modal/cloud_bucket_mount.py +108 -34
  69. modal/cloud_bucket_mount.pyi +32 -38
  70. modal/cls.py +535 -148
  71. modal/cls.pyi +190 -146
  72. modal/config.py +41 -19
  73. modal/container_process.py +177 -0
  74. modal/container_process.pyi +82 -0
  75. modal/dict.py +111 -65
  76. modal/dict.pyi +136 -131
  77. modal/environments.py +106 -5
  78. modal/environments.pyi +77 -25
  79. modal/exception.py +34 -43
  80. modal/experimental.py +61 -2
  81. modal/extensions/ipython.py +5 -5
  82. modal/file_io.py +537 -0
  83. modal/file_io.pyi +235 -0
  84. modal/file_pattern_matcher.py +197 -0
  85. modal/functions.py +906 -911
  86. modal/functions.pyi +466 -430
  87. modal/gpu.py +57 -44
  88. modal/image.py +1089 -479
  89. modal/image.pyi +584 -228
  90. modal/io_streams.py +434 -0
  91. modal/io_streams.pyi +122 -0
  92. modal/mount.py +314 -101
  93. modal/mount.pyi +241 -235
  94. modal/network_file_system.py +92 -92
  95. modal/network_file_system.pyi +152 -110
  96. modal/object.py +67 -36
  97. modal/object.pyi +166 -143
  98. modal/output.py +63 -0
  99. modal/parallel_map.py +434 -0
  100. modal/parallel_map.pyi +75 -0
  101. modal/partial_function.py +282 -117
  102. modal/partial_function.pyi +222 -129
  103. modal/proxy.py +15 -12
  104. modal/proxy.pyi +3 -8
  105. modal/queue.py +182 -65
  106. modal/queue.pyi +218 -118
  107. modal/requirements/2024.04.txt +29 -0
  108. modal/requirements/2024.10.txt +16 -0
  109. modal/requirements/README.md +21 -0
  110. modal/requirements/base-images.json +22 -0
  111. modal/retries.py +48 -7
  112. modal/runner.py +459 -156
  113. modal/runner.pyi +135 -71
  114. modal/running_app.py +38 -0
  115. modal/sandbox.py +514 -236
  116. modal/sandbox.pyi +397 -169
  117. modal/schedule.py +4 -4
  118. modal/scheduler_placement.py +20 -3
  119. modal/secret.py +56 -31
  120. modal/secret.pyi +62 -42
  121. modal/serving.py +51 -56
  122. modal/serving.pyi +44 -36
  123. modal/stream_type.py +15 -0
  124. modal/token_flow.py +5 -3
  125. modal/token_flow.pyi +37 -32
  126. modal/volume.py +285 -157
  127. modal/volume.pyi +249 -184
  128. {modal-0.62.16.dist-info → modal-0.72.11.dist-info}/METADATA +7 -7
  129. modal-0.72.11.dist-info/RECORD +174 -0
  130. {modal-0.62.16.dist-info → modal-0.72.11.dist-info}/top_level.txt +0 -1
  131. modal_docs/gen_reference_docs.py +3 -1
  132. modal_docs/mdmd/mdmd.py +0 -1
  133. modal_docs/mdmd/signatures.py +5 -2
  134. modal_global_objects/images/base_images.py +28 -0
  135. modal_global_objects/mounts/python_standalone.py +2 -2
  136. modal_proto/__init__.py +1 -1
  137. modal_proto/api.proto +1288 -533
  138. modal_proto/api_grpc.py +856 -456
  139. modal_proto/api_pb2.py +2165 -1157
  140. modal_proto/api_pb2.pyi +8859 -0
  141. modal_proto/api_pb2_grpc.py +1674 -855
  142. modal_proto/api_pb2_grpc.pyi +1416 -0
  143. modal_proto/modal_api_grpc.py +149 -0
  144. modal_proto/modal_options_grpc.py +3 -0
  145. modal_proto/options_pb2.pyi +20 -0
  146. modal_proto/options_pb2_grpc.pyi +7 -0
  147. modal_proto/py.typed +0 -0
  148. modal_version/__init__.py +1 -1
  149. modal_version/_version_generated.py +2 -2
  150. modal/_asgi.py +0 -370
  151. modal/_container_entrypoint.pyi +0 -378
  152. modal/_container_exec.py +0 -128
  153. modal/_sandbox_shell.py +0 -49
  154. modal/shared_volume.py +0 -23
  155. modal/shared_volume.pyi +0 -24
  156. modal/stub.py +0 -783
  157. modal/stub.pyi +0 -332
  158. modal-0.62.16.dist-info/RECORD +0 -198
  159. modal_global_objects/images/conda.py +0 -15
  160. modal_global_objects/images/debian_slim.py +0 -15
  161. modal_global_objects/images/micromamba.py +0 -15
  162. test/__init__.py +0 -1
  163. test/aio_test.py +0 -12
  164. test/async_utils_test.py +0 -262
  165. test/blob_test.py +0 -67
  166. test/cli_imports_test.py +0 -149
  167. test/cli_test.py +0 -659
  168. test/client_test.py +0 -194
  169. test/cls_test.py +0 -630
  170. test/config_test.py +0 -137
  171. test/conftest.py +0 -1420
  172. test/container_app_test.py +0 -32
  173. test/container_test.py +0 -1389
  174. test/cpu_test.py +0 -23
  175. test/decorator_test.py +0 -85
  176. test/deprecation_test.py +0 -34
  177. test/dict_test.py +0 -33
  178. test/e2e_test.py +0 -68
  179. test/error_test.py +0 -7
  180. test/function_serialization_test.py +0 -32
  181. test/function_test.py +0 -653
  182. test/function_utils_test.py +0 -101
  183. test/gpu_test.py +0 -159
  184. test/grpc_utils_test.py +0 -141
  185. test/helpers.py +0 -42
  186. test/image_test.py +0 -669
  187. test/live_reload_test.py +0 -80
  188. test/lookup_test.py +0 -70
  189. test/mdmd_test.py +0 -329
  190. test/mount_test.py +0 -162
  191. test/mounted_files_test.py +0 -329
  192. test/network_file_system_test.py +0 -181
  193. test/notebook_test.py +0 -66
  194. test/object_test.py +0 -41
  195. test/package_utils_test.py +0 -25
  196. test/queue_test.py +0 -97
  197. test/resolver_test.py +0 -58
  198. test/retries_test.py +0 -67
  199. test/runner_test.py +0 -85
  200. test/sandbox_test.py +0 -191
  201. test/schedule_test.py +0 -15
  202. test/scheduler_placement_test.py +0 -29
  203. test/secret_test.py +0 -78
  204. test/serialization_test.py +0 -42
  205. test/stub_composition_test.py +0 -10
  206. test/stub_test.py +0 -360
  207. test/test_asgi_wrapper.py +0 -234
  208. test/token_flow_test.py +0 -18
  209. test/traceback_test.py +0 -135
  210. test/tunnel_test.py +0 -29
  211. test/utils_test.py +0 -88
  212. test/version_test.py +0 -14
  213. test/volume_test.py +0 -341
  214. test/watcher_test.py +0 -30
  215. test/webhook_test.py +0 -146
  216. /modal/{requirements.312.txt → requirements/2023.12.312.txt} +0 -0
  217. /modal/{requirements.txt → requirements/2023.12.txt} +0 -0
  218. {modal-0.62.16.dist-info → modal-0.72.11.dist-info}/LICENSE +0 -0
  219. {modal-0.62.16.dist-info → modal-0.72.11.dist-info}/WHEEL +0 -0
  220. {modal-0.62.16.dist-info → modal-0.72.11.dist-info}/entry_points.txt +0 -0
modal_proto/api_grpc.py CHANGED
@@ -17,20 +17,32 @@ import modal_proto.api_pb2
17
17
 
18
18
  class ModalClientBase(abc.ABC):
19
19
 
20
+ @abc.abstractmethod
21
+ async def AppClientDisconnect(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppClientDisconnectRequest, google.protobuf.empty_pb2.Empty]') -> None:
22
+ pass
23
+
20
24
  @abc.abstractmethod
21
25
  async def AppCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppCreateRequest, modal_proto.api_pb2.AppCreateResponse]') -> None:
22
26
  pass
23
27
 
24
28
  @abc.abstractmethod
25
- async def AppClientDisconnect(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppClientDisconnectRequest, google.protobuf.empty_pb2.Empty]') -> None:
29
+ async def AppDeploy(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppDeployRequest, modal_proto.api_pb2.AppDeployResponse]') -> None:
26
30
  pass
27
31
 
28
32
  @abc.abstractmethod
29
- async def AppGetLogs(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppGetLogsRequest, modal_proto.api_pb2.TaskLogsBatch]') -> None:
33
+ async def AppDeploymentHistory(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppDeploymentHistoryRequest, modal_proto.api_pb2.AppDeploymentHistoryResponse]') -> None:
30
34
  pass
31
35
 
32
36
  @abc.abstractmethod
33
- async def AppSetObjects(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppSetObjectsRequest, google.protobuf.empty_pb2.Empty]') -> None:
37
+ async def AppGetByDeploymentName(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppGetByDeploymentNameRequest, modal_proto.api_pb2.AppGetByDeploymentNameResponse]') -> None:
38
+ pass
39
+
40
+ @abc.abstractmethod
41
+ async def AppGetLayout(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppGetLayoutRequest, modal_proto.api_pb2.AppGetLayoutResponse]') -> None:
42
+ pass
43
+
44
+ @abc.abstractmethod
45
+ async def AppGetLogs(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppGetLogsRequest, modal_proto.api_pb2.TaskLogsBatch]') -> None:
34
46
  pass
35
47
 
36
48
  @abc.abstractmethod
@@ -38,31 +50,35 @@ class ModalClientBase(abc.ABC):
38
50
  pass
39
51
 
40
52
  @abc.abstractmethod
41
- async def AppList(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppListRequest, modal_proto.api_pb2.AppListResponse]') -> None:
53
+ async def AppGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppGetOrCreateRequest, modal_proto.api_pb2.AppGetOrCreateResponse]') -> None:
42
54
  pass
43
55
 
44
56
  @abc.abstractmethod
45
- async def AppLookupObject(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppLookupObjectRequest, modal_proto.api_pb2.AppLookupObjectResponse]') -> None:
57
+ async def AppHeartbeat(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppHeartbeatRequest, google.protobuf.empty_pb2.Empty]') -> None:
46
58
  pass
47
59
 
48
60
  @abc.abstractmethod
49
- async def AppDeploy(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppDeployRequest, modal_proto.api_pb2.AppDeployResponse]') -> None:
61
+ async def AppList(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppListRequest, modal_proto.api_pb2.AppListResponse]') -> None:
50
62
  pass
51
63
 
52
64
  @abc.abstractmethod
53
- async def AppDeploySingleObject(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppDeploySingleObjectRequest, modal_proto.api_pb2.AppDeploySingleObjectResponse]') -> None:
65
+ async def AppLookup(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppLookupRequest, modal_proto.api_pb2.AppLookupResponse]') -> None:
54
66
  pass
55
67
 
56
68
  @abc.abstractmethod
57
- async def AppGetByDeploymentName(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppGetByDeploymentNameRequest, modal_proto.api_pb2.AppGetByDeploymentNameResponse]') -> None:
69
+ async def AppPublish(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppPublishRequest, modal_proto.api_pb2.AppPublishResponse]') -> None:
58
70
  pass
59
71
 
60
72
  @abc.abstractmethod
61
- async def AppStop(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppStopRequest, google.protobuf.empty_pb2.Empty]') -> None:
73
+ async def AppRollback(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppRollbackRequest, google.protobuf.empty_pb2.Empty]') -> None:
62
74
  pass
63
75
 
64
76
  @abc.abstractmethod
65
- async def AppHeartbeat(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppHeartbeatRequest, google.protobuf.empty_pb2.Empty]') -> None:
77
+ async def AppSetObjects(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppSetObjectsRequest, google.protobuf.empty_pb2.Empty]') -> None:
78
+ pass
79
+
80
+ @abc.abstractmethod
81
+ async def AppStop(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppStopRequest, google.protobuf.empty_pb2.Empty]') -> None:
66
82
  pass
67
83
 
68
84
  @abc.abstractmethod
@@ -82,35 +98,51 @@ class ModalClientBase(abc.ABC):
82
98
  pass
83
99
 
84
100
  @abc.abstractmethod
85
- async def ClientCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ClientCreateRequest, modal_proto.api_pb2.ClientCreateResponse]') -> None:
101
+ async def ClientHello(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.ClientHelloResponse]') -> None:
86
102
  pass
87
103
 
88
104
  @abc.abstractmethod
89
- async def ClientHello(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.ClientHelloResponse]') -> None:
105
+ async def ContainerCheckpoint(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerCheckpointRequest, google.protobuf.empty_pb2.Empty]') -> None:
106
+ pass
107
+
108
+ @abc.abstractmethod
109
+ async def ContainerExec(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerExecRequest, modal_proto.api_pb2.ContainerExecResponse]') -> None:
90
110
  pass
91
111
 
92
112
  @abc.abstractmethod
93
- async def ClientHeartbeat(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ClientHeartbeatRequest, google.protobuf.empty_pb2.Empty]') -> None:
113
+ async def ContainerExecGetOutput(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerExecGetOutputRequest, modal_proto.api_pb2.RuntimeOutputBatch]') -> None:
94
114
  pass
95
115
 
96
116
  @abc.abstractmethod
97
- async def ContainerHeartbeat(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerHeartbeatRequest, modal_proto.api_pb2.ContainerHeartbeatResponse]') -> None:
117
+ async def ContainerExecPutInput(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerExecPutInputRequest, google.protobuf.empty_pb2.Empty]') -> None:
98
118
  pass
99
119
 
100
120
  @abc.abstractmethod
101
- async def ContainerExec(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerExecRequest, modal_proto.api_pb2.ContainerExecResponse]') -> None:
121
+ async def ContainerExecWait(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerExecWaitRequest, modal_proto.api_pb2.ContainerExecWaitResponse]') -> None:
102
122
  pass
103
123
 
104
124
  @abc.abstractmethod
105
- async def ContainerExecGetOutput(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerExecGetOutputRequest, modal_proto.api_pb2.RuntimeOutputBatch]') -> None:
125
+ async def ContainerFilesystemExec(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerFilesystemExecRequest, modal_proto.api_pb2.ContainerFilesystemExecResponse]') -> None:
106
126
  pass
107
127
 
108
128
  @abc.abstractmethod
109
- async def ContainerExecPutInput(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerExecPutInputRequest, google.protobuf.empty_pb2.Empty]') -> None:
129
+ async def ContainerFilesystemExecGetOutput(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerFilesystemExecGetOutputRequest, modal_proto.api_pb2.FilesystemRuntimeOutputBatch]') -> None:
110
130
  pass
111
131
 
112
132
  @abc.abstractmethod
113
- async def ContainerCheckpoint(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerCheckpointRequest, google.protobuf.empty_pb2.Empty]') -> None:
133
+ async def ContainerHeartbeat(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerHeartbeatRequest, modal_proto.api_pb2.ContainerHeartbeatResponse]') -> None:
134
+ pass
135
+
136
+ @abc.abstractmethod
137
+ async def ContainerHello(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, google.protobuf.empty_pb2.Empty]') -> None:
138
+ pass
139
+
140
+ @abc.abstractmethod
141
+ async def ContainerLog(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerLogRequest, google.protobuf.empty_pb2.Empty]') -> None:
142
+ pass
143
+
144
+ @abc.abstractmethod
145
+ async def ContainerStop(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerStopRequest, modal_proto.api_pb2.ContainerStopResponse]') -> None:
114
146
  pass
115
147
 
116
148
  @abc.abstractmethod
@@ -118,7 +150,19 @@ class ModalClientBase(abc.ABC):
118
150
  pass
119
151
 
120
152
  @abc.abstractmethod
121
- async def DictCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictCreateRequest, modal_proto.api_pb2.DictCreateResponse]') -> None:
153
+ async def DictContains(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictContainsRequest, modal_proto.api_pb2.DictContainsResponse]') -> None:
154
+ pass
155
+
156
+ @abc.abstractmethod
157
+ async def DictContents(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictContentsRequest, modal_proto.api_pb2.DictEntry]') -> None:
158
+ pass
159
+
160
+ @abc.abstractmethod
161
+ async def DictDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
162
+ pass
163
+
164
+ @abc.abstractmethod
165
+ async def DictGet(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictGetRequest, modal_proto.api_pb2.DictGetResponse]') -> None:
122
166
  pass
123
167
 
124
168
  @abc.abstractmethod
@@ -130,11 +174,11 @@ class ModalClientBase(abc.ABC):
130
174
  pass
131
175
 
132
176
  @abc.abstractmethod
133
- async def DictUpdate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictUpdateRequest, modal_proto.api_pb2.DictUpdateResponse]') -> None:
177
+ async def DictLen(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictLenRequest, modal_proto.api_pb2.DictLenResponse]') -> None:
134
178
  pass
135
179
 
136
180
  @abc.abstractmethod
137
- async def DictGet(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictGetRequest, modal_proto.api_pb2.DictGetResponse]') -> None:
181
+ async def DictList(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictListRequest, modal_proto.api_pb2.DictListResponse]') -> None:
138
182
  pass
139
183
 
140
184
  @abc.abstractmethod
@@ -142,11 +186,11 @@ class ModalClientBase(abc.ABC):
142
186
  pass
143
187
 
144
188
  @abc.abstractmethod
145
- async def DictContains(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictContainsRequest, modal_proto.api_pb2.DictContainsResponse]') -> None:
189
+ async def DictUpdate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictUpdateRequest, modal_proto.api_pb2.DictUpdateResponse]') -> None:
146
190
  pass
147
191
 
148
192
  @abc.abstractmethod
149
- async def DictLen(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictLenRequest, modal_proto.api_pb2.DictLenResponse]') -> None:
193
+ async def DomainCertificateVerify(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DomainCertificateVerifyRequest, modal_proto.api_pb2.DomainCertificateVerifyResponse]') -> None:
150
194
  pass
151
195
 
152
196
  @abc.abstractmethod
@@ -158,29 +202,53 @@ class ModalClientBase(abc.ABC):
158
202
  pass
159
203
 
160
204
  @abc.abstractmethod
161
- async def DomainCertificateVerify(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DomainCertificateVerifyRequest, modal_proto.api_pb2.DomainCertificateVerifyResponse]') -> None:
205
+ async def EnvironmentCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.EnvironmentCreateRequest, google.protobuf.empty_pb2.Empty]') -> None:
162
206
  pass
163
207
 
164
208
  @abc.abstractmethod
165
- async def EnvironmentCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.EnvironmentCreateRequest, google.protobuf.empty_pb2.Empty]') -> None:
209
+ async def EnvironmentDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.EnvironmentDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
166
210
  pass
167
211
 
168
212
  @abc.abstractmethod
169
- async def EnvironmentList(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.EnvironmentListResponse]') -> None:
213
+ async def EnvironmentGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.EnvironmentGetOrCreateRequest, modal_proto.api_pb2.EnvironmentGetOrCreateResponse]') -> None:
170
214
  pass
171
215
 
172
216
  @abc.abstractmethod
173
- async def EnvironmentDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.EnvironmentDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
217
+ async def EnvironmentList(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.EnvironmentListResponse]') -> None:
174
218
  pass
175
219
 
176
220
  @abc.abstractmethod
177
221
  async def EnvironmentUpdate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.EnvironmentUpdateRequest, modal_proto.api_pb2.EnvironmentListItem]') -> None:
178
222
  pass
179
223
 
224
+ @abc.abstractmethod
225
+ async def FunctionAsyncInvoke(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionAsyncInvokeRequest, modal_proto.api_pb2.FunctionAsyncInvokeResponse]') -> None:
226
+ pass
227
+
180
228
  @abc.abstractmethod
181
229
  async def FunctionBindParams(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionBindParamsRequest, modal_proto.api_pb2.FunctionBindParamsResponse]') -> None:
182
230
  pass
183
231
 
232
+ @abc.abstractmethod
233
+ async def FunctionCallCancel(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallCancelRequest, google.protobuf.empty_pb2.Empty]') -> None:
234
+ pass
235
+
236
+ @abc.abstractmethod
237
+ async def FunctionCallGetDataIn(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallGetDataRequest, modal_proto.api_pb2.DataChunk]') -> None:
238
+ pass
239
+
240
+ @abc.abstractmethod
241
+ async def FunctionCallGetDataOut(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallGetDataRequest, modal_proto.api_pb2.DataChunk]') -> None:
242
+ pass
243
+
244
+ @abc.abstractmethod
245
+ async def FunctionCallList(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallListRequest, modal_proto.api_pb2.FunctionCallListResponse]') -> None:
246
+ pass
247
+
248
+ @abc.abstractmethod
249
+ async def FunctionCallPutDataOut(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallPutDataRequest, google.protobuf.empty_pb2.Empty]') -> None:
250
+ pass
251
+
184
252
  @abc.abstractmethod
185
253
  async def FunctionCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCreateRequest, modal_proto.api_pb2.FunctionCreateResponse]') -> None:
186
254
  pass
@@ -197,6 +265,10 @@ class ModalClientBase(abc.ABC):
197
265
  async def FunctionGetCurrentStats(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionGetCurrentStatsRequest, modal_proto.api_pb2.FunctionStats]') -> None:
198
266
  pass
199
267
 
268
+ @abc.abstractmethod
269
+ async def FunctionGetDynamicConcurrency(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionGetDynamicConcurrencyRequest, modal_proto.api_pb2.FunctionGetDynamicConcurrencyResponse]') -> None:
270
+ pass
271
+
200
272
  @abc.abstractmethod
201
273
  async def FunctionGetInputs(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionGetInputsRequest, modal_proto.api_pb2.FunctionGetInputsResponse]') -> None:
202
274
  pass
@@ -226,63 +298,63 @@ class ModalClientBase(abc.ABC):
226
298
  pass
227
299
 
228
300
  @abc.abstractmethod
229
- async def FunctionUpdateSchedulingParams(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest, modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse]') -> None:
301
+ async def FunctionRetryInputs(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionRetryInputsRequest, modal_proto.api_pb2.FunctionRetryInputsResponse]') -> None:
230
302
  pass
231
303
 
232
304
  @abc.abstractmethod
233
- async def FunctionCallCancel(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallCancelRequest, google.protobuf.empty_pb2.Empty]') -> None:
305
+ async def FunctionStartPtyShell(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, google.protobuf.empty_pb2.Empty]') -> None:
234
306
  pass
235
307
 
236
308
  @abc.abstractmethod
237
- async def FunctionCallList(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallListRequest, modal_proto.api_pb2.FunctionCallListResponse]') -> None:
309
+ async def FunctionUpdateSchedulingParams(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest, modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse]') -> None:
238
310
  pass
239
311
 
240
312
  @abc.abstractmethod
241
- async def FunctionCallGetDataIn(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallGetDataRequest, modal_proto.api_pb2.DataChunk]') -> None:
313
+ async def ImageFromId(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ImageFromIdRequest, modal_proto.api_pb2.ImageFromIdResponse]') -> None:
242
314
  pass
243
315
 
244
316
  @abc.abstractmethod
245
- async def FunctionCallGetDataOut(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallGetDataRequest, modal_proto.api_pb2.DataChunk]') -> None:
317
+ async def ImageGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ImageGetOrCreateRequest, modal_proto.api_pb2.ImageGetOrCreateResponse]') -> None:
246
318
  pass
247
319
 
248
320
  @abc.abstractmethod
249
- async def FunctionCallPutDataOut(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallPutDataRequest, google.protobuf.empty_pb2.Empty]') -> None:
321
+ async def ImageJoinStreaming(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ImageJoinStreamingRequest, modal_proto.api_pb2.ImageJoinStreamingResponse]') -> None:
250
322
  pass
251
323
 
252
324
  @abc.abstractmethod
253
- async def FunctionStartPtyShell(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, google.protobuf.empty_pb2.Empty]') -> None:
325
+ async def MountGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.MountGetOrCreateRequest, modal_proto.api_pb2.MountGetOrCreateResponse]') -> None:
254
326
  pass
255
327
 
256
328
  @abc.abstractmethod
257
- async def ImageGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ImageGetOrCreateRequest, modal_proto.api_pb2.ImageGetOrCreateResponse]') -> None:
329
+ async def MountPutFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.MountPutFileRequest, modal_proto.api_pb2.MountPutFileResponse]') -> None:
258
330
  pass
259
331
 
260
332
  @abc.abstractmethod
261
- async def ImageJoinStreaming(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ImageJoinStreamingRequest, modal_proto.api_pb2.ImageJoinStreamingResponse]') -> None:
333
+ async def ProxyCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ProxyCreateRequest, modal_proto.api_pb2.ProxyCreateResponse]') -> None:
262
334
  pass
263
335
 
264
336
  @abc.abstractmethod
265
- async def MountPutFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.MountPutFileRequest, modal_proto.api_pb2.MountPutFileResponse]') -> None:
337
+ async def ProxyDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ProxyDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
266
338
  pass
267
339
 
268
340
  @abc.abstractmethod
269
- async def MountBuild(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.MountBuildRequest, modal_proto.api_pb2.MountBuildResponse]') -> None:
341
+ async def ProxyGet(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ProxyGetRequest, modal_proto.api_pb2.ProxyGetResponse]') -> None:
270
342
  pass
271
343
 
272
344
  @abc.abstractmethod
273
- async def MountGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.MountGetOrCreateRequest, modal_proto.api_pb2.MountGetOrCreateResponse]') -> None:
345
+ async def ProxyGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ProxyGetOrCreateRequest, modal_proto.api_pb2.ProxyGetOrCreateResponse]') -> None:
274
346
  pass
275
347
 
276
348
  @abc.abstractmethod
277
- async def ProxyGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ProxyGetOrCreateRequest, modal_proto.api_pb2.ProxyGetOrCreateResponse]') -> None:
349
+ async def ProxyList(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.ProxyListResponse]') -> None:
278
350
  pass
279
351
 
280
352
  @abc.abstractmethod
281
- async def QueueCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueCreateRequest, modal_proto.api_pb2.QueueCreateResponse]') -> None:
353
+ async def QueueClear(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueClearRequest, google.protobuf.empty_pb2.Empty]') -> None:
282
354
  pass
283
355
 
284
356
  @abc.abstractmethod
285
- async def QueueGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueGetOrCreateRequest, modal_proto.api_pb2.QueueGetOrCreateResponse]') -> None:
357
+ async def QueueDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
286
358
  pass
287
359
 
288
360
  @abc.abstractmethod
@@ -290,11 +362,11 @@ class ModalClientBase(abc.ABC):
290
362
  pass
291
363
 
292
364
  @abc.abstractmethod
293
- async def QueueHeartbeat(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueHeartbeatRequest, google.protobuf.empty_pb2.Empty]') -> None:
365
+ async def QueueGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueGetOrCreateRequest, modal_proto.api_pb2.QueueGetOrCreateResponse]') -> None:
294
366
  pass
295
367
 
296
368
  @abc.abstractmethod
297
- async def QueuePut(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueuePutRequest, google.protobuf.empty_pb2.Empty]') -> None:
369
+ async def QueueHeartbeat(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueHeartbeatRequest, google.protobuf.empty_pb2.Empty]') -> None:
298
370
  pass
299
371
 
300
372
  @abc.abstractmethod
@@ -302,11 +374,19 @@ class ModalClientBase(abc.ABC):
302
374
  pass
303
375
 
304
376
  @abc.abstractmethod
305
- async def SandboxCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxCreateRequest, modal_proto.api_pb2.SandboxCreateResponse]') -> None:
377
+ async def QueueList(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueListRequest, modal_proto.api_pb2.QueueListResponse]') -> None:
306
378
  pass
307
379
 
308
380
  @abc.abstractmethod
309
- async def SandboxGetTaskId(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxGetTaskIdRequest, modal_proto.api_pb2.SandboxGetTaskIdResponse]') -> None:
381
+ async def QueueNextItems(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueNextItemsRequest, modal_proto.api_pb2.QueueNextItemsResponse]') -> None:
382
+ pass
383
+
384
+ @abc.abstractmethod
385
+ async def QueuePut(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueuePutRequest, google.protobuf.empty_pb2.Empty]') -> None:
386
+ pass
387
+
388
+ @abc.abstractmethod
389
+ async def SandboxCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxCreateRequest, modal_proto.api_pb2.SandboxCreateResponse]') -> None:
310
390
  pass
311
391
 
312
392
  @abc.abstractmethod
@@ -314,7 +394,11 @@ class ModalClientBase(abc.ABC):
314
394
  pass
315
395
 
316
396
  @abc.abstractmethod
317
- async def SandboxWait(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxWaitRequest, modal_proto.api_pb2.SandboxWaitResponse]') -> None:
397
+ async def SandboxGetTaskId(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxGetTaskIdRequest, modal_proto.api_pb2.SandboxGetTaskIdResponse]') -> None:
398
+ pass
399
+
400
+ @abc.abstractmethod
401
+ async def SandboxGetTunnels(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxGetTunnelsRequest, modal_proto.api_pb2.SandboxGetTunnelsResponse]') -> None:
318
402
  pass
319
403
 
320
404
  @abc.abstractmethod
@@ -322,7 +406,7 @@ class ModalClientBase(abc.ABC):
322
406
  pass
323
407
 
324
408
  @abc.abstractmethod
325
- async def SandboxTerminate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxTerminateRequest, modal_proto.api_pb2.SandboxTerminateResponse]') -> None:
409
+ async def SandboxSnapshotFs(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxSnapshotFsRequest, modal_proto.api_pb2.SandboxSnapshotFsResponse]') -> None:
326
410
  pass
327
411
 
328
412
  @abc.abstractmethod
@@ -330,7 +414,19 @@ class ModalClientBase(abc.ABC):
330
414
  pass
331
415
 
332
416
  @abc.abstractmethod
333
- async def SecretCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SecretCreateRequest, modal_proto.api_pb2.SecretCreateResponse]') -> None:
417
+ async def SandboxTagsSet(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxTagsSetRequest, google.protobuf.empty_pb2.Empty]') -> None:
418
+ pass
419
+
420
+ @abc.abstractmethod
421
+ async def SandboxTerminate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxTerminateRequest, modal_proto.api_pb2.SandboxTerminateResponse]') -> None:
422
+ pass
423
+
424
+ @abc.abstractmethod
425
+ async def SandboxWait(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxWaitRequest, modal_proto.api_pb2.SandboxWaitResponse]') -> None:
426
+ pass
427
+
428
+ @abc.abstractmethod
429
+ async def SecretDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SecretDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
334
430
  pass
335
431
 
336
432
  @abc.abstractmethod
@@ -342,11 +438,15 @@ class ModalClientBase(abc.ABC):
342
438
  pass
343
439
 
344
440
  @abc.abstractmethod
345
- async def SharedVolumeGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SharedVolumeGetOrCreateRequest, modal_proto.api_pb2.SharedVolumeGetOrCreateResponse]') -> None:
441
+ async def SharedVolumeDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SharedVolumeDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
442
+ pass
443
+
444
+ @abc.abstractmethod
445
+ async def SharedVolumeGetFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SharedVolumeGetFileRequest, modal_proto.api_pb2.SharedVolumeGetFileResponse]') -> None:
346
446
  pass
347
447
 
348
448
  @abc.abstractmethod
349
- async def SharedVolumeCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SharedVolumeCreateRequest, modal_proto.api_pb2.SharedVolumeCreateResponse]') -> None:
449
+ async def SharedVolumeGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SharedVolumeGetOrCreateRequest, modal_proto.api_pb2.SharedVolumeGetOrCreateResponse]') -> None:
350
450
  pass
351
451
 
352
452
  @abc.abstractmethod
@@ -370,15 +470,15 @@ class ModalClientBase(abc.ABC):
370
470
  pass
371
471
 
372
472
  @abc.abstractmethod
373
- async def SharedVolumeGetFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SharedVolumeGetFileRequest, modal_proto.api_pb2.SharedVolumeGetFileResponse]') -> None:
473
+ async def SharedVolumeRemoveFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SharedVolumeRemoveFileRequest, google.protobuf.empty_pb2.Empty]') -> None:
374
474
  pass
375
475
 
376
476
  @abc.abstractmethod
377
- async def SharedVolumeRemoveFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SharedVolumeRemoveFileRequest, google.protobuf.empty_pb2.Empty]') -> None:
477
+ async def TaskClusterHello(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.TaskClusterHelloRequest, modal_proto.api_pb2.TaskClusterHelloResponse]') -> None:
378
478
  pass
379
479
 
380
480
  @abc.abstractmethod
381
- async def TaskResult(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.TaskResultRequest, google.protobuf.empty_pb2.Empty]') -> None:
481
+ async def TaskCurrentInputs(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.TaskCurrentInputsResponse]') -> None:
382
482
  pass
383
483
 
384
484
  @abc.abstractmethod
@@ -386,7 +486,7 @@ class ModalClientBase(abc.ABC):
386
486
  pass
387
487
 
388
488
  @abc.abstractmethod
389
- async def TaskCurrentInputs(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.TaskCurrentInputsResponse]') -> None:
489
+ async def TaskResult(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.TaskResultRequest, google.protobuf.empty_pb2.Empty]') -> None:
390
490
  pass
391
491
 
392
492
  @abc.abstractmethod
@@ -406,27 +506,27 @@ class ModalClientBase(abc.ABC):
406
506
  pass
407
507
 
408
508
  @abc.abstractmethod
409
- async def VolumeGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeGetOrCreateRequest, modal_proto.api_pb2.VolumeGetOrCreateResponse]') -> None:
509
+ async def VolumeCommit(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeCommitRequest, modal_proto.api_pb2.VolumeCommitResponse]') -> None:
410
510
  pass
411
511
 
412
512
  @abc.abstractmethod
413
- async def VolumeCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeCreateRequest, modal_proto.api_pb2.VolumeCreateResponse]') -> None:
513
+ async def VolumeCopyFiles(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeCopyFilesRequest, google.protobuf.empty_pb2.Empty]') -> None:
414
514
  pass
415
515
 
416
516
  @abc.abstractmethod
417
- async def VolumeHeartbeat(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeHeartbeatRequest, google.protobuf.empty_pb2.Empty]') -> None:
517
+ async def VolumeDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
418
518
  pass
419
519
 
420
520
  @abc.abstractmethod
421
- async def VolumeCommit(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeCommitRequest, modal_proto.api_pb2.VolumeCommitResponse]') -> None:
521
+ async def VolumeGetFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeGetFileRequest, modal_proto.api_pb2.VolumeGetFileResponse]') -> None:
422
522
  pass
423
523
 
424
524
  @abc.abstractmethod
425
- async def VolumeDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
525
+ async def VolumeGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeGetOrCreateRequest, modal_proto.api_pb2.VolumeGetOrCreateResponse]') -> None:
426
526
  pass
427
527
 
428
528
  @abc.abstractmethod
429
- async def VolumeGetFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeGetFileRequest, modal_proto.api_pb2.VolumeGetFileResponse]') -> None:
529
+ async def VolumeHeartbeat(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeHeartbeatRequest, google.protobuf.empty_pb2.Empty]') -> None:
430
530
  pass
431
531
 
432
532
  @abc.abstractmethod
@@ -450,7 +550,7 @@ class ModalClientBase(abc.ABC):
450
550
  pass
451
551
 
452
552
  @abc.abstractmethod
453
- async def VolumeCopyFiles(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeCopyFilesRequest, google.protobuf.empty_pb2.Empty]') -> None:
553
+ async def VolumeRename(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeRenameRequest, google.protobuf.empty_pb2.Empty]') -> None:
454
554
  pass
455
555
 
456
556
  @abc.abstractmethod
@@ -459,17 +559,41 @@ class ModalClientBase(abc.ABC):
459
559
 
460
560
  def __mapping__(self) -> typing.Dict[str, grpclib.const.Handler]:
461
561
  return {
562
+ '/modal.client.ModalClient/AppClientDisconnect': grpclib.const.Handler(
563
+ self.AppClientDisconnect,
564
+ grpclib.const.Cardinality.UNARY_UNARY,
565
+ modal_proto.api_pb2.AppClientDisconnectRequest,
566
+ google.protobuf.empty_pb2.Empty,
567
+ ),
462
568
  '/modal.client.ModalClient/AppCreate': grpclib.const.Handler(
463
569
  self.AppCreate,
464
570
  grpclib.const.Cardinality.UNARY_UNARY,
465
571
  modal_proto.api_pb2.AppCreateRequest,
466
572
  modal_proto.api_pb2.AppCreateResponse,
467
573
  ),
468
- '/modal.client.ModalClient/AppClientDisconnect': grpclib.const.Handler(
469
- self.AppClientDisconnect,
574
+ '/modal.client.ModalClient/AppDeploy': grpclib.const.Handler(
575
+ self.AppDeploy,
470
576
  grpclib.const.Cardinality.UNARY_UNARY,
471
- modal_proto.api_pb2.AppClientDisconnectRequest,
472
- google.protobuf.empty_pb2.Empty,
577
+ modal_proto.api_pb2.AppDeployRequest,
578
+ modal_proto.api_pb2.AppDeployResponse,
579
+ ),
580
+ '/modal.client.ModalClient/AppDeploymentHistory': grpclib.const.Handler(
581
+ self.AppDeploymentHistory,
582
+ grpclib.const.Cardinality.UNARY_UNARY,
583
+ modal_proto.api_pb2.AppDeploymentHistoryRequest,
584
+ modal_proto.api_pb2.AppDeploymentHistoryResponse,
585
+ ),
586
+ '/modal.client.ModalClient/AppGetByDeploymentName': grpclib.const.Handler(
587
+ self.AppGetByDeploymentName,
588
+ grpclib.const.Cardinality.UNARY_UNARY,
589
+ modal_proto.api_pb2.AppGetByDeploymentNameRequest,
590
+ modal_proto.api_pb2.AppGetByDeploymentNameResponse,
591
+ ),
592
+ '/modal.client.ModalClient/AppGetLayout': grpclib.const.Handler(
593
+ self.AppGetLayout,
594
+ grpclib.const.Cardinality.UNARY_UNARY,
595
+ modal_proto.api_pb2.AppGetLayoutRequest,
596
+ modal_proto.api_pb2.AppGetLayoutResponse,
473
597
  ),
474
598
  '/modal.client.ModalClient/AppGetLogs': grpclib.const.Handler(
475
599
  self.AppGetLogs,
@@ -477,47 +601,53 @@ class ModalClientBase(abc.ABC):
477
601
  modal_proto.api_pb2.AppGetLogsRequest,
478
602
  modal_proto.api_pb2.TaskLogsBatch,
479
603
  ),
480
- '/modal.client.ModalClient/AppSetObjects': grpclib.const.Handler(
481
- self.AppSetObjects,
482
- grpclib.const.Cardinality.UNARY_UNARY,
483
- modal_proto.api_pb2.AppSetObjectsRequest,
484
- google.protobuf.empty_pb2.Empty,
485
- ),
486
604
  '/modal.client.ModalClient/AppGetObjects': grpclib.const.Handler(
487
605
  self.AppGetObjects,
488
606
  grpclib.const.Cardinality.UNARY_UNARY,
489
607
  modal_proto.api_pb2.AppGetObjectsRequest,
490
608
  modal_proto.api_pb2.AppGetObjectsResponse,
491
609
  ),
610
+ '/modal.client.ModalClient/AppGetOrCreate': grpclib.const.Handler(
611
+ self.AppGetOrCreate,
612
+ grpclib.const.Cardinality.UNARY_UNARY,
613
+ modal_proto.api_pb2.AppGetOrCreateRequest,
614
+ modal_proto.api_pb2.AppGetOrCreateResponse,
615
+ ),
616
+ '/modal.client.ModalClient/AppHeartbeat': grpclib.const.Handler(
617
+ self.AppHeartbeat,
618
+ grpclib.const.Cardinality.UNARY_UNARY,
619
+ modal_proto.api_pb2.AppHeartbeatRequest,
620
+ google.protobuf.empty_pb2.Empty,
621
+ ),
492
622
  '/modal.client.ModalClient/AppList': grpclib.const.Handler(
493
623
  self.AppList,
494
624
  grpclib.const.Cardinality.UNARY_UNARY,
495
625
  modal_proto.api_pb2.AppListRequest,
496
626
  modal_proto.api_pb2.AppListResponse,
497
627
  ),
498
- '/modal.client.ModalClient/AppLookupObject': grpclib.const.Handler(
499
- self.AppLookupObject,
628
+ '/modal.client.ModalClient/AppLookup': grpclib.const.Handler(
629
+ self.AppLookup,
500
630
  grpclib.const.Cardinality.UNARY_UNARY,
501
- modal_proto.api_pb2.AppLookupObjectRequest,
502
- modal_proto.api_pb2.AppLookupObjectResponse,
631
+ modal_proto.api_pb2.AppLookupRequest,
632
+ modal_proto.api_pb2.AppLookupResponse,
503
633
  ),
504
- '/modal.client.ModalClient/AppDeploy': grpclib.const.Handler(
505
- self.AppDeploy,
634
+ '/modal.client.ModalClient/AppPublish': grpclib.const.Handler(
635
+ self.AppPublish,
506
636
  grpclib.const.Cardinality.UNARY_UNARY,
507
- modal_proto.api_pb2.AppDeployRequest,
508
- modal_proto.api_pb2.AppDeployResponse,
637
+ modal_proto.api_pb2.AppPublishRequest,
638
+ modal_proto.api_pb2.AppPublishResponse,
509
639
  ),
510
- '/modal.client.ModalClient/AppDeploySingleObject': grpclib.const.Handler(
511
- self.AppDeploySingleObject,
640
+ '/modal.client.ModalClient/AppRollback': grpclib.const.Handler(
641
+ self.AppRollback,
512
642
  grpclib.const.Cardinality.UNARY_UNARY,
513
- modal_proto.api_pb2.AppDeploySingleObjectRequest,
514
- modal_proto.api_pb2.AppDeploySingleObjectResponse,
643
+ modal_proto.api_pb2.AppRollbackRequest,
644
+ google.protobuf.empty_pb2.Empty,
515
645
  ),
516
- '/modal.client.ModalClient/AppGetByDeploymentName': grpclib.const.Handler(
517
- self.AppGetByDeploymentName,
646
+ '/modal.client.ModalClient/AppSetObjects': grpclib.const.Handler(
647
+ self.AppSetObjects,
518
648
  grpclib.const.Cardinality.UNARY_UNARY,
519
- modal_proto.api_pb2.AppGetByDeploymentNameRequest,
520
- modal_proto.api_pb2.AppGetByDeploymentNameResponse,
649
+ modal_proto.api_pb2.AppSetObjectsRequest,
650
+ google.protobuf.empty_pb2.Empty,
521
651
  ),
522
652
  '/modal.client.ModalClient/AppStop': grpclib.const.Handler(
523
653
  self.AppStop,
@@ -525,12 +655,6 @@ class ModalClientBase(abc.ABC):
525
655
  modal_proto.api_pb2.AppStopRequest,
526
656
  google.protobuf.empty_pb2.Empty,
527
657
  ),
528
- '/modal.client.ModalClient/AppHeartbeat': grpclib.const.Handler(
529
- self.AppHeartbeat,
530
- grpclib.const.Cardinality.UNARY_UNARY,
531
- modal_proto.api_pb2.AppHeartbeatRequest,
532
- google.protobuf.empty_pb2.Empty,
533
- ),
534
658
  '/modal.client.ModalClient/BlobCreate': grpclib.const.Handler(
535
659
  self.BlobCreate,
536
660
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -555,30 +679,18 @@ class ModalClientBase(abc.ABC):
555
679
  modal_proto.api_pb2.ClassGetRequest,
556
680
  modal_proto.api_pb2.ClassGetResponse,
557
681
  ),
558
- '/modal.client.ModalClient/ClientCreate': grpclib.const.Handler(
559
- self.ClientCreate,
560
- grpclib.const.Cardinality.UNARY_UNARY,
561
- modal_proto.api_pb2.ClientCreateRequest,
562
- modal_proto.api_pb2.ClientCreateResponse,
563
- ),
564
682
  '/modal.client.ModalClient/ClientHello': grpclib.const.Handler(
565
683
  self.ClientHello,
566
684
  grpclib.const.Cardinality.UNARY_UNARY,
567
685
  google.protobuf.empty_pb2.Empty,
568
686
  modal_proto.api_pb2.ClientHelloResponse,
569
687
  ),
570
- '/modal.client.ModalClient/ClientHeartbeat': grpclib.const.Handler(
571
- self.ClientHeartbeat,
688
+ '/modal.client.ModalClient/ContainerCheckpoint': grpclib.const.Handler(
689
+ self.ContainerCheckpoint,
572
690
  grpclib.const.Cardinality.UNARY_UNARY,
573
- modal_proto.api_pb2.ClientHeartbeatRequest,
691
+ modal_proto.api_pb2.ContainerCheckpointRequest,
574
692
  google.protobuf.empty_pb2.Empty,
575
693
  ),
576
- '/modal.client.ModalClient/ContainerHeartbeat': grpclib.const.Handler(
577
- self.ContainerHeartbeat,
578
- grpclib.const.Cardinality.UNARY_UNARY,
579
- modal_proto.api_pb2.ContainerHeartbeatRequest,
580
- modal_proto.api_pb2.ContainerHeartbeatResponse,
581
- ),
582
694
  '/modal.client.ModalClient/ContainerExec': grpclib.const.Handler(
583
695
  self.ContainerExec,
584
696
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -597,23 +709,77 @@ class ModalClientBase(abc.ABC):
597
709
  modal_proto.api_pb2.ContainerExecPutInputRequest,
598
710
  google.protobuf.empty_pb2.Empty,
599
711
  ),
600
- '/modal.client.ModalClient/ContainerCheckpoint': grpclib.const.Handler(
601
- self.ContainerCheckpoint,
712
+ '/modal.client.ModalClient/ContainerExecWait': grpclib.const.Handler(
713
+ self.ContainerExecWait,
602
714
  grpclib.const.Cardinality.UNARY_UNARY,
603
- modal_proto.api_pb2.ContainerCheckpointRequest,
604
- google.protobuf.empty_pb2.Empty,
715
+ modal_proto.api_pb2.ContainerExecWaitRequest,
716
+ modal_proto.api_pb2.ContainerExecWaitResponse,
605
717
  ),
606
- '/modal.client.ModalClient/DictClear': grpclib.const.Handler(
607
- self.DictClear,
718
+ '/modal.client.ModalClient/ContainerFilesystemExec': grpclib.const.Handler(
719
+ self.ContainerFilesystemExec,
608
720
  grpclib.const.Cardinality.UNARY_UNARY,
609
- modal_proto.api_pb2.DictClearRequest,
610
- google.protobuf.empty_pb2.Empty,
721
+ modal_proto.api_pb2.ContainerFilesystemExecRequest,
722
+ modal_proto.api_pb2.ContainerFilesystemExecResponse,
611
723
  ),
612
- '/modal.client.ModalClient/DictCreate': grpclib.const.Handler(
613
- self.DictCreate,
614
- grpclib.const.Cardinality.UNARY_UNARY,
615
- modal_proto.api_pb2.DictCreateRequest,
616
- modal_proto.api_pb2.DictCreateResponse,
724
+ '/modal.client.ModalClient/ContainerFilesystemExecGetOutput': grpclib.const.Handler(
725
+ self.ContainerFilesystemExecGetOutput,
726
+ grpclib.const.Cardinality.UNARY_STREAM,
727
+ modal_proto.api_pb2.ContainerFilesystemExecGetOutputRequest,
728
+ modal_proto.api_pb2.FilesystemRuntimeOutputBatch,
729
+ ),
730
+ '/modal.client.ModalClient/ContainerHeartbeat': grpclib.const.Handler(
731
+ self.ContainerHeartbeat,
732
+ grpclib.const.Cardinality.UNARY_UNARY,
733
+ modal_proto.api_pb2.ContainerHeartbeatRequest,
734
+ modal_proto.api_pb2.ContainerHeartbeatResponse,
735
+ ),
736
+ '/modal.client.ModalClient/ContainerHello': grpclib.const.Handler(
737
+ self.ContainerHello,
738
+ grpclib.const.Cardinality.UNARY_UNARY,
739
+ google.protobuf.empty_pb2.Empty,
740
+ google.protobuf.empty_pb2.Empty,
741
+ ),
742
+ '/modal.client.ModalClient/ContainerLog': grpclib.const.Handler(
743
+ self.ContainerLog,
744
+ grpclib.const.Cardinality.UNARY_UNARY,
745
+ modal_proto.api_pb2.ContainerLogRequest,
746
+ google.protobuf.empty_pb2.Empty,
747
+ ),
748
+ '/modal.client.ModalClient/ContainerStop': grpclib.const.Handler(
749
+ self.ContainerStop,
750
+ grpclib.const.Cardinality.UNARY_UNARY,
751
+ modal_proto.api_pb2.ContainerStopRequest,
752
+ modal_proto.api_pb2.ContainerStopResponse,
753
+ ),
754
+ '/modal.client.ModalClient/DictClear': grpclib.const.Handler(
755
+ self.DictClear,
756
+ grpclib.const.Cardinality.UNARY_UNARY,
757
+ modal_proto.api_pb2.DictClearRequest,
758
+ google.protobuf.empty_pb2.Empty,
759
+ ),
760
+ '/modal.client.ModalClient/DictContains': grpclib.const.Handler(
761
+ self.DictContains,
762
+ grpclib.const.Cardinality.UNARY_UNARY,
763
+ modal_proto.api_pb2.DictContainsRequest,
764
+ modal_proto.api_pb2.DictContainsResponse,
765
+ ),
766
+ '/modal.client.ModalClient/DictContents': grpclib.const.Handler(
767
+ self.DictContents,
768
+ grpclib.const.Cardinality.UNARY_STREAM,
769
+ modal_proto.api_pb2.DictContentsRequest,
770
+ modal_proto.api_pb2.DictEntry,
771
+ ),
772
+ '/modal.client.ModalClient/DictDelete': grpclib.const.Handler(
773
+ self.DictDelete,
774
+ grpclib.const.Cardinality.UNARY_UNARY,
775
+ modal_proto.api_pb2.DictDeleteRequest,
776
+ google.protobuf.empty_pb2.Empty,
777
+ ),
778
+ '/modal.client.ModalClient/DictGet': grpclib.const.Handler(
779
+ self.DictGet,
780
+ grpclib.const.Cardinality.UNARY_UNARY,
781
+ modal_proto.api_pb2.DictGetRequest,
782
+ modal_proto.api_pb2.DictGetResponse,
617
783
  ),
618
784
  '/modal.client.ModalClient/DictGetOrCreate': grpclib.const.Handler(
619
785
  self.DictGetOrCreate,
@@ -627,17 +793,17 @@ class ModalClientBase(abc.ABC):
627
793
  modal_proto.api_pb2.DictHeartbeatRequest,
628
794
  google.protobuf.empty_pb2.Empty,
629
795
  ),
630
- '/modal.client.ModalClient/DictUpdate': grpclib.const.Handler(
631
- self.DictUpdate,
796
+ '/modal.client.ModalClient/DictLen': grpclib.const.Handler(
797
+ self.DictLen,
632
798
  grpclib.const.Cardinality.UNARY_UNARY,
633
- modal_proto.api_pb2.DictUpdateRequest,
634
- modal_proto.api_pb2.DictUpdateResponse,
799
+ modal_proto.api_pb2.DictLenRequest,
800
+ modal_proto.api_pb2.DictLenResponse,
635
801
  ),
636
- '/modal.client.ModalClient/DictGet': grpclib.const.Handler(
637
- self.DictGet,
802
+ '/modal.client.ModalClient/DictList': grpclib.const.Handler(
803
+ self.DictList,
638
804
  grpclib.const.Cardinality.UNARY_UNARY,
639
- modal_proto.api_pb2.DictGetRequest,
640
- modal_proto.api_pb2.DictGetResponse,
805
+ modal_proto.api_pb2.DictListRequest,
806
+ modal_proto.api_pb2.DictListResponse,
641
807
  ),
642
808
  '/modal.client.ModalClient/DictPop': grpclib.const.Handler(
643
809
  self.DictPop,
@@ -645,17 +811,17 @@ class ModalClientBase(abc.ABC):
645
811
  modal_proto.api_pb2.DictPopRequest,
646
812
  modal_proto.api_pb2.DictPopResponse,
647
813
  ),
648
- '/modal.client.ModalClient/DictContains': grpclib.const.Handler(
649
- self.DictContains,
814
+ '/modal.client.ModalClient/DictUpdate': grpclib.const.Handler(
815
+ self.DictUpdate,
650
816
  grpclib.const.Cardinality.UNARY_UNARY,
651
- modal_proto.api_pb2.DictContainsRequest,
652
- modal_proto.api_pb2.DictContainsResponse,
817
+ modal_proto.api_pb2.DictUpdateRequest,
818
+ modal_proto.api_pb2.DictUpdateResponse,
653
819
  ),
654
- '/modal.client.ModalClient/DictLen': grpclib.const.Handler(
655
- self.DictLen,
820
+ '/modal.client.ModalClient/DomainCertificateVerify': grpclib.const.Handler(
821
+ self.DomainCertificateVerify,
656
822
  grpclib.const.Cardinality.UNARY_UNARY,
657
- modal_proto.api_pb2.DictLenRequest,
658
- modal_proto.api_pb2.DictLenResponse,
823
+ modal_proto.api_pb2.DomainCertificateVerifyRequest,
824
+ modal_proto.api_pb2.DomainCertificateVerifyResponse,
659
825
  ),
660
826
  '/modal.client.ModalClient/DomainCreate': grpclib.const.Handler(
661
827
  self.DomainCreate,
@@ -669,42 +835,78 @@ class ModalClientBase(abc.ABC):
669
835
  modal_proto.api_pb2.DomainListRequest,
670
836
  modal_proto.api_pb2.DomainListResponse,
671
837
  ),
672
- '/modal.client.ModalClient/DomainCertificateVerify': grpclib.const.Handler(
673
- self.DomainCertificateVerify,
674
- grpclib.const.Cardinality.UNARY_UNARY,
675
- modal_proto.api_pb2.DomainCertificateVerifyRequest,
676
- modal_proto.api_pb2.DomainCertificateVerifyResponse,
677
- ),
678
838
  '/modal.client.ModalClient/EnvironmentCreate': grpclib.const.Handler(
679
839
  self.EnvironmentCreate,
680
840
  grpclib.const.Cardinality.UNARY_UNARY,
681
841
  modal_proto.api_pb2.EnvironmentCreateRequest,
682
842
  google.protobuf.empty_pb2.Empty,
683
843
  ),
684
- '/modal.client.ModalClient/EnvironmentList': grpclib.const.Handler(
685
- self.EnvironmentList,
686
- grpclib.const.Cardinality.UNARY_UNARY,
687
- google.protobuf.empty_pb2.Empty,
688
- modal_proto.api_pb2.EnvironmentListResponse,
689
- ),
690
844
  '/modal.client.ModalClient/EnvironmentDelete': grpclib.const.Handler(
691
845
  self.EnvironmentDelete,
692
846
  grpclib.const.Cardinality.UNARY_UNARY,
693
847
  modal_proto.api_pb2.EnvironmentDeleteRequest,
694
848
  google.protobuf.empty_pb2.Empty,
695
849
  ),
850
+ '/modal.client.ModalClient/EnvironmentGetOrCreate': grpclib.const.Handler(
851
+ self.EnvironmentGetOrCreate,
852
+ grpclib.const.Cardinality.UNARY_UNARY,
853
+ modal_proto.api_pb2.EnvironmentGetOrCreateRequest,
854
+ modal_proto.api_pb2.EnvironmentGetOrCreateResponse,
855
+ ),
856
+ '/modal.client.ModalClient/EnvironmentList': grpclib.const.Handler(
857
+ self.EnvironmentList,
858
+ grpclib.const.Cardinality.UNARY_UNARY,
859
+ google.protobuf.empty_pb2.Empty,
860
+ modal_proto.api_pb2.EnvironmentListResponse,
861
+ ),
696
862
  '/modal.client.ModalClient/EnvironmentUpdate': grpclib.const.Handler(
697
863
  self.EnvironmentUpdate,
698
864
  grpclib.const.Cardinality.UNARY_UNARY,
699
865
  modal_proto.api_pb2.EnvironmentUpdateRequest,
700
866
  modal_proto.api_pb2.EnvironmentListItem,
701
867
  ),
868
+ '/modal.client.ModalClient/FunctionAsyncInvoke': grpclib.const.Handler(
869
+ self.FunctionAsyncInvoke,
870
+ grpclib.const.Cardinality.UNARY_UNARY,
871
+ modal_proto.api_pb2.FunctionAsyncInvokeRequest,
872
+ modal_proto.api_pb2.FunctionAsyncInvokeResponse,
873
+ ),
702
874
  '/modal.client.ModalClient/FunctionBindParams': grpclib.const.Handler(
703
875
  self.FunctionBindParams,
704
876
  grpclib.const.Cardinality.UNARY_UNARY,
705
877
  modal_proto.api_pb2.FunctionBindParamsRequest,
706
878
  modal_proto.api_pb2.FunctionBindParamsResponse,
707
879
  ),
880
+ '/modal.client.ModalClient/FunctionCallCancel': grpclib.const.Handler(
881
+ self.FunctionCallCancel,
882
+ grpclib.const.Cardinality.UNARY_UNARY,
883
+ modal_proto.api_pb2.FunctionCallCancelRequest,
884
+ google.protobuf.empty_pb2.Empty,
885
+ ),
886
+ '/modal.client.ModalClient/FunctionCallGetDataIn': grpclib.const.Handler(
887
+ self.FunctionCallGetDataIn,
888
+ grpclib.const.Cardinality.UNARY_STREAM,
889
+ modal_proto.api_pb2.FunctionCallGetDataRequest,
890
+ modal_proto.api_pb2.DataChunk,
891
+ ),
892
+ '/modal.client.ModalClient/FunctionCallGetDataOut': grpclib.const.Handler(
893
+ self.FunctionCallGetDataOut,
894
+ grpclib.const.Cardinality.UNARY_STREAM,
895
+ modal_proto.api_pb2.FunctionCallGetDataRequest,
896
+ modal_proto.api_pb2.DataChunk,
897
+ ),
898
+ '/modal.client.ModalClient/FunctionCallList': grpclib.const.Handler(
899
+ self.FunctionCallList,
900
+ grpclib.const.Cardinality.UNARY_UNARY,
901
+ modal_proto.api_pb2.FunctionCallListRequest,
902
+ modal_proto.api_pb2.FunctionCallListResponse,
903
+ ),
904
+ '/modal.client.ModalClient/FunctionCallPutDataOut': grpclib.const.Handler(
905
+ self.FunctionCallPutDataOut,
906
+ grpclib.const.Cardinality.UNARY_UNARY,
907
+ modal_proto.api_pb2.FunctionCallPutDataRequest,
908
+ google.protobuf.empty_pb2.Empty,
909
+ ),
708
910
  '/modal.client.ModalClient/FunctionCreate': grpclib.const.Handler(
709
911
  self.FunctionCreate,
710
912
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -729,6 +931,12 @@ class ModalClientBase(abc.ABC):
729
931
  modal_proto.api_pb2.FunctionGetCurrentStatsRequest,
730
932
  modal_proto.api_pb2.FunctionStats,
731
933
  ),
934
+ '/modal.client.ModalClient/FunctionGetDynamicConcurrency': grpclib.const.Handler(
935
+ self.FunctionGetDynamicConcurrency,
936
+ grpclib.const.Cardinality.UNARY_UNARY,
937
+ modal_proto.api_pb2.FunctionGetDynamicConcurrencyRequest,
938
+ modal_proto.api_pb2.FunctionGetDynamicConcurrencyResponse,
939
+ ),
732
940
  '/modal.client.ModalClient/FunctionGetInputs': grpclib.const.Handler(
733
941
  self.FunctionGetInputs,
734
942
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -771,47 +979,29 @@ class ModalClientBase(abc.ABC):
771
979
  modal_proto.api_pb2.FunctionPutOutputsRequest,
772
980
  google.protobuf.empty_pb2.Empty,
773
981
  ),
774
- '/modal.client.ModalClient/FunctionUpdateSchedulingParams': grpclib.const.Handler(
775
- self.FunctionUpdateSchedulingParams,
982
+ '/modal.client.ModalClient/FunctionRetryInputs': grpclib.const.Handler(
983
+ self.FunctionRetryInputs,
776
984
  grpclib.const.Cardinality.UNARY_UNARY,
777
- modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest,
778
- modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse,
985
+ modal_proto.api_pb2.FunctionRetryInputsRequest,
986
+ modal_proto.api_pb2.FunctionRetryInputsResponse,
779
987
  ),
780
- '/modal.client.ModalClient/FunctionCallCancel': grpclib.const.Handler(
781
- self.FunctionCallCancel,
988
+ '/modal.client.ModalClient/FunctionStartPtyShell': grpclib.const.Handler(
989
+ self.FunctionStartPtyShell,
782
990
  grpclib.const.Cardinality.UNARY_UNARY,
783
- modal_proto.api_pb2.FunctionCallCancelRequest,
991
+ google.protobuf.empty_pb2.Empty,
784
992
  google.protobuf.empty_pb2.Empty,
785
993
  ),
786
- '/modal.client.ModalClient/FunctionCallList': grpclib.const.Handler(
787
- self.FunctionCallList,
788
- grpclib.const.Cardinality.UNARY_UNARY,
789
- modal_proto.api_pb2.FunctionCallListRequest,
790
- modal_proto.api_pb2.FunctionCallListResponse,
791
- ),
792
- '/modal.client.ModalClient/FunctionCallGetDataIn': grpclib.const.Handler(
793
- self.FunctionCallGetDataIn,
794
- grpclib.const.Cardinality.UNARY_STREAM,
795
- modal_proto.api_pb2.FunctionCallGetDataRequest,
796
- modal_proto.api_pb2.DataChunk,
797
- ),
798
- '/modal.client.ModalClient/FunctionCallGetDataOut': grpclib.const.Handler(
799
- self.FunctionCallGetDataOut,
800
- grpclib.const.Cardinality.UNARY_STREAM,
801
- modal_proto.api_pb2.FunctionCallGetDataRequest,
802
- modal_proto.api_pb2.DataChunk,
803
- ),
804
- '/modal.client.ModalClient/FunctionCallPutDataOut': grpclib.const.Handler(
805
- self.FunctionCallPutDataOut,
994
+ '/modal.client.ModalClient/FunctionUpdateSchedulingParams': grpclib.const.Handler(
995
+ self.FunctionUpdateSchedulingParams,
806
996
  grpclib.const.Cardinality.UNARY_UNARY,
807
- modal_proto.api_pb2.FunctionCallPutDataRequest,
808
- google.protobuf.empty_pb2.Empty,
997
+ modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest,
998
+ modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse,
809
999
  ),
810
- '/modal.client.ModalClient/FunctionStartPtyShell': grpclib.const.Handler(
811
- self.FunctionStartPtyShell,
1000
+ '/modal.client.ModalClient/ImageFromId': grpclib.const.Handler(
1001
+ self.ImageFromId,
812
1002
  grpclib.const.Cardinality.UNARY_UNARY,
813
- google.protobuf.empty_pb2.Empty,
814
- google.protobuf.empty_pb2.Empty,
1003
+ modal_proto.api_pb2.ImageFromIdRequest,
1004
+ modal_proto.api_pb2.ImageFromIdResponse,
815
1005
  ),
816
1006
  '/modal.client.ModalClient/ImageGetOrCreate': grpclib.const.Handler(
817
1007
  self.ImageGetOrCreate,
@@ -825,23 +1015,35 @@ class ModalClientBase(abc.ABC):
825
1015
  modal_proto.api_pb2.ImageJoinStreamingRequest,
826
1016
  modal_proto.api_pb2.ImageJoinStreamingResponse,
827
1017
  ),
1018
+ '/modal.client.ModalClient/MountGetOrCreate': grpclib.const.Handler(
1019
+ self.MountGetOrCreate,
1020
+ grpclib.const.Cardinality.UNARY_UNARY,
1021
+ modal_proto.api_pb2.MountGetOrCreateRequest,
1022
+ modal_proto.api_pb2.MountGetOrCreateResponse,
1023
+ ),
828
1024
  '/modal.client.ModalClient/MountPutFile': grpclib.const.Handler(
829
1025
  self.MountPutFile,
830
1026
  grpclib.const.Cardinality.UNARY_UNARY,
831
1027
  modal_proto.api_pb2.MountPutFileRequest,
832
1028
  modal_proto.api_pb2.MountPutFileResponse,
833
1029
  ),
834
- '/modal.client.ModalClient/MountBuild': grpclib.const.Handler(
835
- self.MountBuild,
1030
+ '/modal.client.ModalClient/ProxyCreate': grpclib.const.Handler(
1031
+ self.ProxyCreate,
836
1032
  grpclib.const.Cardinality.UNARY_UNARY,
837
- modal_proto.api_pb2.MountBuildRequest,
838
- modal_proto.api_pb2.MountBuildResponse,
1033
+ modal_proto.api_pb2.ProxyCreateRequest,
1034
+ modal_proto.api_pb2.ProxyCreateResponse,
839
1035
  ),
840
- '/modal.client.ModalClient/MountGetOrCreate': grpclib.const.Handler(
841
- self.MountGetOrCreate,
1036
+ '/modal.client.ModalClient/ProxyDelete': grpclib.const.Handler(
1037
+ self.ProxyDelete,
842
1038
  grpclib.const.Cardinality.UNARY_UNARY,
843
- modal_proto.api_pb2.MountGetOrCreateRequest,
844
- modal_proto.api_pb2.MountGetOrCreateResponse,
1039
+ modal_proto.api_pb2.ProxyDeleteRequest,
1040
+ google.protobuf.empty_pb2.Empty,
1041
+ ),
1042
+ '/modal.client.ModalClient/ProxyGet': grpclib.const.Handler(
1043
+ self.ProxyGet,
1044
+ grpclib.const.Cardinality.UNARY_UNARY,
1045
+ modal_proto.api_pb2.ProxyGetRequest,
1046
+ modal_proto.api_pb2.ProxyGetResponse,
845
1047
  ),
846
1048
  '/modal.client.ModalClient/ProxyGetOrCreate': grpclib.const.Handler(
847
1049
  self.ProxyGetOrCreate,
@@ -849,17 +1051,23 @@ class ModalClientBase(abc.ABC):
849
1051
  modal_proto.api_pb2.ProxyGetOrCreateRequest,
850
1052
  modal_proto.api_pb2.ProxyGetOrCreateResponse,
851
1053
  ),
852
- '/modal.client.ModalClient/QueueCreate': grpclib.const.Handler(
853
- self.QueueCreate,
1054
+ '/modal.client.ModalClient/ProxyList': grpclib.const.Handler(
1055
+ self.ProxyList,
854
1056
  grpclib.const.Cardinality.UNARY_UNARY,
855
- modal_proto.api_pb2.QueueCreateRequest,
856
- modal_proto.api_pb2.QueueCreateResponse,
1057
+ google.protobuf.empty_pb2.Empty,
1058
+ modal_proto.api_pb2.ProxyListResponse,
857
1059
  ),
858
- '/modal.client.ModalClient/QueueGetOrCreate': grpclib.const.Handler(
859
- self.QueueGetOrCreate,
1060
+ '/modal.client.ModalClient/QueueClear': grpclib.const.Handler(
1061
+ self.QueueClear,
860
1062
  grpclib.const.Cardinality.UNARY_UNARY,
861
- modal_proto.api_pb2.QueueGetOrCreateRequest,
862
- modal_proto.api_pb2.QueueGetOrCreateResponse,
1063
+ modal_proto.api_pb2.QueueClearRequest,
1064
+ google.protobuf.empty_pb2.Empty,
1065
+ ),
1066
+ '/modal.client.ModalClient/QueueDelete': grpclib.const.Handler(
1067
+ self.QueueDelete,
1068
+ grpclib.const.Cardinality.UNARY_UNARY,
1069
+ modal_proto.api_pb2.QueueDeleteRequest,
1070
+ google.protobuf.empty_pb2.Empty,
863
1071
  ),
864
1072
  '/modal.client.ModalClient/QueueGet': grpclib.const.Handler(
865
1073
  self.QueueGet,
@@ -867,47 +1075,65 @@ class ModalClientBase(abc.ABC):
867
1075
  modal_proto.api_pb2.QueueGetRequest,
868
1076
  modal_proto.api_pb2.QueueGetResponse,
869
1077
  ),
1078
+ '/modal.client.ModalClient/QueueGetOrCreate': grpclib.const.Handler(
1079
+ self.QueueGetOrCreate,
1080
+ grpclib.const.Cardinality.UNARY_UNARY,
1081
+ modal_proto.api_pb2.QueueGetOrCreateRequest,
1082
+ modal_proto.api_pb2.QueueGetOrCreateResponse,
1083
+ ),
870
1084
  '/modal.client.ModalClient/QueueHeartbeat': grpclib.const.Handler(
871
1085
  self.QueueHeartbeat,
872
1086
  grpclib.const.Cardinality.UNARY_UNARY,
873
1087
  modal_proto.api_pb2.QueueHeartbeatRequest,
874
1088
  google.protobuf.empty_pb2.Empty,
875
1089
  ),
876
- '/modal.client.ModalClient/QueuePut': grpclib.const.Handler(
877
- self.QueuePut,
878
- grpclib.const.Cardinality.UNARY_UNARY,
879
- modal_proto.api_pb2.QueuePutRequest,
880
- google.protobuf.empty_pb2.Empty,
881
- ),
882
1090
  '/modal.client.ModalClient/QueueLen': grpclib.const.Handler(
883
1091
  self.QueueLen,
884
1092
  grpclib.const.Cardinality.UNARY_UNARY,
885
1093
  modal_proto.api_pb2.QueueLenRequest,
886
1094
  modal_proto.api_pb2.QueueLenResponse,
887
1095
  ),
1096
+ '/modal.client.ModalClient/QueueList': grpclib.const.Handler(
1097
+ self.QueueList,
1098
+ grpclib.const.Cardinality.UNARY_UNARY,
1099
+ modal_proto.api_pb2.QueueListRequest,
1100
+ modal_proto.api_pb2.QueueListResponse,
1101
+ ),
1102
+ '/modal.client.ModalClient/QueueNextItems': grpclib.const.Handler(
1103
+ self.QueueNextItems,
1104
+ grpclib.const.Cardinality.UNARY_UNARY,
1105
+ modal_proto.api_pb2.QueueNextItemsRequest,
1106
+ modal_proto.api_pb2.QueueNextItemsResponse,
1107
+ ),
1108
+ '/modal.client.ModalClient/QueuePut': grpclib.const.Handler(
1109
+ self.QueuePut,
1110
+ grpclib.const.Cardinality.UNARY_UNARY,
1111
+ modal_proto.api_pb2.QueuePutRequest,
1112
+ google.protobuf.empty_pb2.Empty,
1113
+ ),
888
1114
  '/modal.client.ModalClient/SandboxCreate': grpclib.const.Handler(
889
1115
  self.SandboxCreate,
890
1116
  grpclib.const.Cardinality.UNARY_UNARY,
891
1117
  modal_proto.api_pb2.SandboxCreateRequest,
892
1118
  modal_proto.api_pb2.SandboxCreateResponse,
893
1119
  ),
894
- '/modal.client.ModalClient/SandboxGetTaskId': grpclib.const.Handler(
895
- self.SandboxGetTaskId,
896
- grpclib.const.Cardinality.UNARY_UNARY,
897
- modal_proto.api_pb2.SandboxGetTaskIdRequest,
898
- modal_proto.api_pb2.SandboxGetTaskIdResponse,
899
- ),
900
1120
  '/modal.client.ModalClient/SandboxGetLogs': grpclib.const.Handler(
901
1121
  self.SandboxGetLogs,
902
1122
  grpclib.const.Cardinality.UNARY_STREAM,
903
1123
  modal_proto.api_pb2.SandboxGetLogsRequest,
904
1124
  modal_proto.api_pb2.TaskLogsBatch,
905
1125
  ),
906
- '/modal.client.ModalClient/SandboxWait': grpclib.const.Handler(
907
- self.SandboxWait,
1126
+ '/modal.client.ModalClient/SandboxGetTaskId': grpclib.const.Handler(
1127
+ self.SandboxGetTaskId,
908
1128
  grpclib.const.Cardinality.UNARY_UNARY,
909
- modal_proto.api_pb2.SandboxWaitRequest,
910
- modal_proto.api_pb2.SandboxWaitResponse,
1129
+ modal_proto.api_pb2.SandboxGetTaskIdRequest,
1130
+ modal_proto.api_pb2.SandboxGetTaskIdResponse,
1131
+ ),
1132
+ '/modal.client.ModalClient/SandboxGetTunnels': grpclib.const.Handler(
1133
+ self.SandboxGetTunnels,
1134
+ grpclib.const.Cardinality.UNARY_UNARY,
1135
+ modal_proto.api_pb2.SandboxGetTunnelsRequest,
1136
+ modal_proto.api_pb2.SandboxGetTunnelsResponse,
911
1137
  ),
912
1138
  '/modal.client.ModalClient/SandboxList': grpclib.const.Handler(
913
1139
  self.SandboxList,
@@ -915,11 +1141,11 @@ class ModalClientBase(abc.ABC):
915
1141
  modal_proto.api_pb2.SandboxListRequest,
916
1142
  modal_proto.api_pb2.SandboxListResponse,
917
1143
  ),
918
- '/modal.client.ModalClient/SandboxTerminate': grpclib.const.Handler(
919
- self.SandboxTerminate,
1144
+ '/modal.client.ModalClient/SandboxSnapshotFs': grpclib.const.Handler(
1145
+ self.SandboxSnapshotFs,
920
1146
  grpclib.const.Cardinality.UNARY_UNARY,
921
- modal_proto.api_pb2.SandboxTerminateRequest,
922
- modal_proto.api_pb2.SandboxTerminateResponse,
1147
+ modal_proto.api_pb2.SandboxSnapshotFsRequest,
1148
+ modal_proto.api_pb2.SandboxSnapshotFsResponse,
923
1149
  ),
924
1150
  '/modal.client.ModalClient/SandboxStdinWrite': grpclib.const.Handler(
925
1151
  self.SandboxStdinWrite,
@@ -927,11 +1153,29 @@ class ModalClientBase(abc.ABC):
927
1153
  modal_proto.api_pb2.SandboxStdinWriteRequest,
928
1154
  modal_proto.api_pb2.SandboxStdinWriteResponse,
929
1155
  ),
930
- '/modal.client.ModalClient/SecretCreate': grpclib.const.Handler(
931
- self.SecretCreate,
1156
+ '/modal.client.ModalClient/SandboxTagsSet': grpclib.const.Handler(
1157
+ self.SandboxTagsSet,
932
1158
  grpclib.const.Cardinality.UNARY_UNARY,
933
- modal_proto.api_pb2.SecretCreateRequest,
934
- modal_proto.api_pb2.SecretCreateResponse,
1159
+ modal_proto.api_pb2.SandboxTagsSetRequest,
1160
+ google.protobuf.empty_pb2.Empty,
1161
+ ),
1162
+ '/modal.client.ModalClient/SandboxTerminate': grpclib.const.Handler(
1163
+ self.SandboxTerminate,
1164
+ grpclib.const.Cardinality.UNARY_UNARY,
1165
+ modal_proto.api_pb2.SandboxTerminateRequest,
1166
+ modal_proto.api_pb2.SandboxTerminateResponse,
1167
+ ),
1168
+ '/modal.client.ModalClient/SandboxWait': grpclib.const.Handler(
1169
+ self.SandboxWait,
1170
+ grpclib.const.Cardinality.UNARY_UNARY,
1171
+ modal_proto.api_pb2.SandboxWaitRequest,
1172
+ modal_proto.api_pb2.SandboxWaitResponse,
1173
+ ),
1174
+ '/modal.client.ModalClient/SecretDelete': grpclib.const.Handler(
1175
+ self.SecretDelete,
1176
+ grpclib.const.Cardinality.UNARY_UNARY,
1177
+ modal_proto.api_pb2.SecretDeleteRequest,
1178
+ google.protobuf.empty_pb2.Empty,
935
1179
  ),
936
1180
  '/modal.client.ModalClient/SecretGetOrCreate': grpclib.const.Handler(
937
1181
  self.SecretGetOrCreate,
@@ -945,18 +1189,24 @@ class ModalClientBase(abc.ABC):
945
1189
  modal_proto.api_pb2.SecretListRequest,
946
1190
  modal_proto.api_pb2.SecretListResponse,
947
1191
  ),
1192
+ '/modal.client.ModalClient/SharedVolumeDelete': grpclib.const.Handler(
1193
+ self.SharedVolumeDelete,
1194
+ grpclib.const.Cardinality.UNARY_UNARY,
1195
+ modal_proto.api_pb2.SharedVolumeDeleteRequest,
1196
+ google.protobuf.empty_pb2.Empty,
1197
+ ),
1198
+ '/modal.client.ModalClient/SharedVolumeGetFile': grpclib.const.Handler(
1199
+ self.SharedVolumeGetFile,
1200
+ grpclib.const.Cardinality.UNARY_UNARY,
1201
+ modal_proto.api_pb2.SharedVolumeGetFileRequest,
1202
+ modal_proto.api_pb2.SharedVolumeGetFileResponse,
1203
+ ),
948
1204
  '/modal.client.ModalClient/SharedVolumeGetOrCreate': grpclib.const.Handler(
949
1205
  self.SharedVolumeGetOrCreate,
950
1206
  grpclib.const.Cardinality.UNARY_UNARY,
951
1207
  modal_proto.api_pb2.SharedVolumeGetOrCreateRequest,
952
1208
  modal_proto.api_pb2.SharedVolumeGetOrCreateResponse,
953
1209
  ),
954
- '/modal.client.ModalClient/SharedVolumeCreate': grpclib.const.Handler(
955
- self.SharedVolumeCreate,
956
- grpclib.const.Cardinality.UNARY_UNARY,
957
- modal_proto.api_pb2.SharedVolumeCreateRequest,
958
- modal_proto.api_pb2.SharedVolumeCreateResponse,
959
- ),
960
1210
  '/modal.client.ModalClient/SharedVolumeHeartbeat': grpclib.const.Handler(
961
1211
  self.SharedVolumeHeartbeat,
962
1212
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -987,23 +1237,23 @@ class ModalClientBase(abc.ABC):
987
1237
  modal_proto.api_pb2.SharedVolumePutFileRequest,
988
1238
  modal_proto.api_pb2.SharedVolumePutFileResponse,
989
1239
  ),
990
- '/modal.client.ModalClient/SharedVolumeGetFile': grpclib.const.Handler(
991
- self.SharedVolumeGetFile,
992
- grpclib.const.Cardinality.UNARY_UNARY,
993
- modal_proto.api_pb2.SharedVolumeGetFileRequest,
994
- modal_proto.api_pb2.SharedVolumeGetFileResponse,
995
- ),
996
1240
  '/modal.client.ModalClient/SharedVolumeRemoveFile': grpclib.const.Handler(
997
1241
  self.SharedVolumeRemoveFile,
998
1242
  grpclib.const.Cardinality.UNARY_UNARY,
999
1243
  modal_proto.api_pb2.SharedVolumeRemoveFileRequest,
1000
1244
  google.protobuf.empty_pb2.Empty,
1001
1245
  ),
1002
- '/modal.client.ModalClient/TaskResult': grpclib.const.Handler(
1003
- self.TaskResult,
1246
+ '/modal.client.ModalClient/TaskClusterHello': grpclib.const.Handler(
1247
+ self.TaskClusterHello,
1248
+ grpclib.const.Cardinality.UNARY_UNARY,
1249
+ modal_proto.api_pb2.TaskClusterHelloRequest,
1250
+ modal_proto.api_pb2.TaskClusterHelloResponse,
1251
+ ),
1252
+ '/modal.client.ModalClient/TaskCurrentInputs': grpclib.const.Handler(
1253
+ self.TaskCurrentInputs,
1004
1254
  grpclib.const.Cardinality.UNARY_UNARY,
1005
- modal_proto.api_pb2.TaskResultRequest,
1006
1255
  google.protobuf.empty_pb2.Empty,
1256
+ modal_proto.api_pb2.TaskCurrentInputsResponse,
1007
1257
  ),
1008
1258
  '/modal.client.ModalClient/TaskList': grpclib.const.Handler(
1009
1259
  self.TaskList,
@@ -1011,11 +1261,11 @@ class ModalClientBase(abc.ABC):
1011
1261
  modal_proto.api_pb2.TaskListRequest,
1012
1262
  modal_proto.api_pb2.TaskListResponse,
1013
1263
  ),
1014
- '/modal.client.ModalClient/TaskCurrentInputs': grpclib.const.Handler(
1015
- self.TaskCurrentInputs,
1264
+ '/modal.client.ModalClient/TaskResult': grpclib.const.Handler(
1265
+ self.TaskResult,
1016
1266
  grpclib.const.Cardinality.UNARY_UNARY,
1267
+ modal_proto.api_pb2.TaskResultRequest,
1017
1268
  google.protobuf.empty_pb2.Empty,
1018
- modal_proto.api_pb2.TaskCurrentInputsResponse,
1019
1269
  ),
1020
1270
  '/modal.client.ModalClient/TokenFlowCreate': grpclib.const.Handler(
1021
1271
  self.TokenFlowCreate,
@@ -1041,30 +1291,18 @@ class ModalClientBase(abc.ABC):
1041
1291
  modal_proto.api_pb2.TunnelStopRequest,
1042
1292
  modal_proto.api_pb2.TunnelStopResponse,
1043
1293
  ),
1044
- '/modal.client.ModalClient/VolumeGetOrCreate': grpclib.const.Handler(
1045
- self.VolumeGetOrCreate,
1046
- grpclib.const.Cardinality.UNARY_UNARY,
1047
- modal_proto.api_pb2.VolumeGetOrCreateRequest,
1048
- modal_proto.api_pb2.VolumeGetOrCreateResponse,
1049
- ),
1050
- '/modal.client.ModalClient/VolumeCreate': grpclib.const.Handler(
1051
- self.VolumeCreate,
1052
- grpclib.const.Cardinality.UNARY_UNARY,
1053
- modal_proto.api_pb2.VolumeCreateRequest,
1054
- modal_proto.api_pb2.VolumeCreateResponse,
1055
- ),
1056
- '/modal.client.ModalClient/VolumeHeartbeat': grpclib.const.Handler(
1057
- self.VolumeHeartbeat,
1058
- grpclib.const.Cardinality.UNARY_UNARY,
1059
- modal_proto.api_pb2.VolumeHeartbeatRequest,
1060
- google.protobuf.empty_pb2.Empty,
1061
- ),
1062
1294
  '/modal.client.ModalClient/VolumeCommit': grpclib.const.Handler(
1063
1295
  self.VolumeCommit,
1064
1296
  grpclib.const.Cardinality.UNARY_UNARY,
1065
1297
  modal_proto.api_pb2.VolumeCommitRequest,
1066
1298
  modal_proto.api_pb2.VolumeCommitResponse,
1067
1299
  ),
1300
+ '/modal.client.ModalClient/VolumeCopyFiles': grpclib.const.Handler(
1301
+ self.VolumeCopyFiles,
1302
+ grpclib.const.Cardinality.UNARY_UNARY,
1303
+ modal_proto.api_pb2.VolumeCopyFilesRequest,
1304
+ google.protobuf.empty_pb2.Empty,
1305
+ ),
1068
1306
  '/modal.client.ModalClient/VolumeDelete': grpclib.const.Handler(
1069
1307
  self.VolumeDelete,
1070
1308
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -1077,6 +1315,18 @@ class ModalClientBase(abc.ABC):
1077
1315
  modal_proto.api_pb2.VolumeGetFileRequest,
1078
1316
  modal_proto.api_pb2.VolumeGetFileResponse,
1079
1317
  ),
1318
+ '/modal.client.ModalClient/VolumeGetOrCreate': grpclib.const.Handler(
1319
+ self.VolumeGetOrCreate,
1320
+ grpclib.const.Cardinality.UNARY_UNARY,
1321
+ modal_proto.api_pb2.VolumeGetOrCreateRequest,
1322
+ modal_proto.api_pb2.VolumeGetOrCreateResponse,
1323
+ ),
1324
+ '/modal.client.ModalClient/VolumeHeartbeat': grpclib.const.Handler(
1325
+ self.VolumeHeartbeat,
1326
+ grpclib.const.Cardinality.UNARY_UNARY,
1327
+ modal_proto.api_pb2.VolumeHeartbeatRequest,
1328
+ google.protobuf.empty_pb2.Empty,
1329
+ ),
1080
1330
  '/modal.client.ModalClient/VolumeList': grpclib.const.Handler(
1081
1331
  self.VolumeList,
1082
1332
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -1107,10 +1357,10 @@ class ModalClientBase(abc.ABC):
1107
1357
  modal_proto.api_pb2.VolumeRemoveFileRequest,
1108
1358
  google.protobuf.empty_pb2.Empty,
1109
1359
  ),
1110
- '/modal.client.ModalClient/VolumeCopyFiles': grpclib.const.Handler(
1111
- self.VolumeCopyFiles,
1360
+ '/modal.client.ModalClient/VolumeRename': grpclib.const.Handler(
1361
+ self.VolumeRename,
1112
1362
  grpclib.const.Cardinality.UNARY_UNARY,
1113
- modal_proto.api_pb2.VolumeCopyFilesRequest,
1363
+ modal_proto.api_pb2.VolumeRenameRequest,
1114
1364
  google.protobuf.empty_pb2.Empty,
1115
1365
  ),
1116
1366
  '/modal.client.ModalClient/WorkspaceNameLookup': grpclib.const.Handler(
@@ -1125,17 +1375,41 @@ class ModalClientBase(abc.ABC):
1125
1375
  class ModalClientStub:
1126
1376
 
1127
1377
  def __init__(self, channel: grpclib.client.Channel) -> None:
1378
+ self.AppClientDisconnect = grpclib.client.UnaryUnaryMethod(
1379
+ channel,
1380
+ '/modal.client.ModalClient/AppClientDisconnect',
1381
+ modal_proto.api_pb2.AppClientDisconnectRequest,
1382
+ google.protobuf.empty_pb2.Empty,
1383
+ )
1128
1384
  self.AppCreate = grpclib.client.UnaryUnaryMethod(
1129
1385
  channel,
1130
1386
  '/modal.client.ModalClient/AppCreate',
1131
1387
  modal_proto.api_pb2.AppCreateRequest,
1132
1388
  modal_proto.api_pb2.AppCreateResponse,
1133
1389
  )
1134
- self.AppClientDisconnect = grpclib.client.UnaryUnaryMethod(
1390
+ self.AppDeploy = grpclib.client.UnaryUnaryMethod(
1135
1391
  channel,
1136
- '/modal.client.ModalClient/AppClientDisconnect',
1137
- modal_proto.api_pb2.AppClientDisconnectRequest,
1138
- google.protobuf.empty_pb2.Empty,
1392
+ '/modal.client.ModalClient/AppDeploy',
1393
+ modal_proto.api_pb2.AppDeployRequest,
1394
+ modal_proto.api_pb2.AppDeployResponse,
1395
+ )
1396
+ self.AppDeploymentHistory = grpclib.client.UnaryUnaryMethod(
1397
+ channel,
1398
+ '/modal.client.ModalClient/AppDeploymentHistory',
1399
+ modal_proto.api_pb2.AppDeploymentHistoryRequest,
1400
+ modal_proto.api_pb2.AppDeploymentHistoryResponse,
1401
+ )
1402
+ self.AppGetByDeploymentName = grpclib.client.UnaryUnaryMethod(
1403
+ channel,
1404
+ '/modal.client.ModalClient/AppGetByDeploymentName',
1405
+ modal_proto.api_pb2.AppGetByDeploymentNameRequest,
1406
+ modal_proto.api_pb2.AppGetByDeploymentNameResponse,
1407
+ )
1408
+ self.AppGetLayout = grpclib.client.UnaryUnaryMethod(
1409
+ channel,
1410
+ '/modal.client.ModalClient/AppGetLayout',
1411
+ modal_proto.api_pb2.AppGetLayoutRequest,
1412
+ modal_proto.api_pb2.AppGetLayoutResponse,
1139
1413
  )
1140
1414
  self.AppGetLogs = grpclib.client.UnaryStreamMethod(
1141
1415
  channel,
@@ -1143,47 +1417,53 @@ class ModalClientStub:
1143
1417
  modal_proto.api_pb2.AppGetLogsRequest,
1144
1418
  modal_proto.api_pb2.TaskLogsBatch,
1145
1419
  )
1146
- self.AppSetObjects = grpclib.client.UnaryUnaryMethod(
1147
- channel,
1148
- '/modal.client.ModalClient/AppSetObjects',
1149
- modal_proto.api_pb2.AppSetObjectsRequest,
1150
- google.protobuf.empty_pb2.Empty,
1151
- )
1152
1420
  self.AppGetObjects = grpclib.client.UnaryUnaryMethod(
1153
1421
  channel,
1154
1422
  '/modal.client.ModalClient/AppGetObjects',
1155
1423
  modal_proto.api_pb2.AppGetObjectsRequest,
1156
1424
  modal_proto.api_pb2.AppGetObjectsResponse,
1157
1425
  )
1426
+ self.AppGetOrCreate = grpclib.client.UnaryUnaryMethod(
1427
+ channel,
1428
+ '/modal.client.ModalClient/AppGetOrCreate',
1429
+ modal_proto.api_pb2.AppGetOrCreateRequest,
1430
+ modal_proto.api_pb2.AppGetOrCreateResponse,
1431
+ )
1432
+ self.AppHeartbeat = grpclib.client.UnaryUnaryMethod(
1433
+ channel,
1434
+ '/modal.client.ModalClient/AppHeartbeat',
1435
+ modal_proto.api_pb2.AppHeartbeatRequest,
1436
+ google.protobuf.empty_pb2.Empty,
1437
+ )
1158
1438
  self.AppList = grpclib.client.UnaryUnaryMethod(
1159
1439
  channel,
1160
1440
  '/modal.client.ModalClient/AppList',
1161
1441
  modal_proto.api_pb2.AppListRequest,
1162
1442
  modal_proto.api_pb2.AppListResponse,
1163
1443
  )
1164
- self.AppLookupObject = grpclib.client.UnaryUnaryMethod(
1444
+ self.AppLookup = grpclib.client.UnaryUnaryMethod(
1165
1445
  channel,
1166
- '/modal.client.ModalClient/AppLookupObject',
1167
- modal_proto.api_pb2.AppLookupObjectRequest,
1168
- modal_proto.api_pb2.AppLookupObjectResponse,
1446
+ '/modal.client.ModalClient/AppLookup',
1447
+ modal_proto.api_pb2.AppLookupRequest,
1448
+ modal_proto.api_pb2.AppLookupResponse,
1169
1449
  )
1170
- self.AppDeploy = grpclib.client.UnaryUnaryMethod(
1450
+ self.AppPublish = grpclib.client.UnaryUnaryMethod(
1171
1451
  channel,
1172
- '/modal.client.ModalClient/AppDeploy',
1173
- modal_proto.api_pb2.AppDeployRequest,
1174
- modal_proto.api_pb2.AppDeployResponse,
1452
+ '/modal.client.ModalClient/AppPublish',
1453
+ modal_proto.api_pb2.AppPublishRequest,
1454
+ modal_proto.api_pb2.AppPublishResponse,
1175
1455
  )
1176
- self.AppDeploySingleObject = grpclib.client.UnaryUnaryMethod(
1456
+ self.AppRollback = grpclib.client.UnaryUnaryMethod(
1177
1457
  channel,
1178
- '/modal.client.ModalClient/AppDeploySingleObject',
1179
- modal_proto.api_pb2.AppDeploySingleObjectRequest,
1180
- modal_proto.api_pb2.AppDeploySingleObjectResponse,
1458
+ '/modal.client.ModalClient/AppRollback',
1459
+ modal_proto.api_pb2.AppRollbackRequest,
1460
+ google.protobuf.empty_pb2.Empty,
1181
1461
  )
1182
- self.AppGetByDeploymentName = grpclib.client.UnaryUnaryMethod(
1462
+ self.AppSetObjects = grpclib.client.UnaryUnaryMethod(
1183
1463
  channel,
1184
- '/modal.client.ModalClient/AppGetByDeploymentName',
1185
- modal_proto.api_pb2.AppGetByDeploymentNameRequest,
1186
- modal_proto.api_pb2.AppGetByDeploymentNameResponse,
1464
+ '/modal.client.ModalClient/AppSetObjects',
1465
+ modal_proto.api_pb2.AppSetObjectsRequest,
1466
+ google.protobuf.empty_pb2.Empty,
1187
1467
  )
1188
1468
  self.AppStop = grpclib.client.UnaryUnaryMethod(
1189
1469
  channel,
@@ -1191,12 +1471,6 @@ class ModalClientStub:
1191
1471
  modal_proto.api_pb2.AppStopRequest,
1192
1472
  google.protobuf.empty_pb2.Empty,
1193
1473
  )
1194
- self.AppHeartbeat = grpclib.client.UnaryUnaryMethod(
1195
- channel,
1196
- '/modal.client.ModalClient/AppHeartbeat',
1197
- modal_proto.api_pb2.AppHeartbeatRequest,
1198
- google.protobuf.empty_pb2.Empty,
1199
- )
1200
1474
  self.BlobCreate = grpclib.client.UnaryUnaryMethod(
1201
1475
  channel,
1202
1476
  '/modal.client.ModalClient/BlobCreate',
@@ -1221,30 +1495,18 @@ class ModalClientStub:
1221
1495
  modal_proto.api_pb2.ClassGetRequest,
1222
1496
  modal_proto.api_pb2.ClassGetResponse,
1223
1497
  )
1224
- self.ClientCreate = grpclib.client.UnaryUnaryMethod(
1225
- channel,
1226
- '/modal.client.ModalClient/ClientCreate',
1227
- modal_proto.api_pb2.ClientCreateRequest,
1228
- modal_proto.api_pb2.ClientCreateResponse,
1229
- )
1230
1498
  self.ClientHello = grpclib.client.UnaryUnaryMethod(
1231
1499
  channel,
1232
1500
  '/modal.client.ModalClient/ClientHello',
1233
1501
  google.protobuf.empty_pb2.Empty,
1234
1502
  modal_proto.api_pb2.ClientHelloResponse,
1235
1503
  )
1236
- self.ClientHeartbeat = grpclib.client.UnaryUnaryMethod(
1504
+ self.ContainerCheckpoint = grpclib.client.UnaryUnaryMethod(
1237
1505
  channel,
1238
- '/modal.client.ModalClient/ClientHeartbeat',
1239
- modal_proto.api_pb2.ClientHeartbeatRequest,
1506
+ '/modal.client.ModalClient/ContainerCheckpoint',
1507
+ modal_proto.api_pb2.ContainerCheckpointRequest,
1240
1508
  google.protobuf.empty_pb2.Empty,
1241
1509
  )
1242
- self.ContainerHeartbeat = grpclib.client.UnaryUnaryMethod(
1243
- channel,
1244
- '/modal.client.ModalClient/ContainerHeartbeat',
1245
- modal_proto.api_pb2.ContainerHeartbeatRequest,
1246
- modal_proto.api_pb2.ContainerHeartbeatResponse,
1247
- )
1248
1510
  self.ContainerExec = grpclib.client.UnaryUnaryMethod(
1249
1511
  channel,
1250
1512
  '/modal.client.ModalClient/ContainerExec',
@@ -1263,23 +1525,77 @@ class ModalClientStub:
1263
1525
  modal_proto.api_pb2.ContainerExecPutInputRequest,
1264
1526
  google.protobuf.empty_pb2.Empty,
1265
1527
  )
1266
- self.ContainerCheckpoint = grpclib.client.UnaryUnaryMethod(
1528
+ self.ContainerExecWait = grpclib.client.UnaryUnaryMethod(
1267
1529
  channel,
1268
- '/modal.client.ModalClient/ContainerCheckpoint',
1269
- modal_proto.api_pb2.ContainerCheckpointRequest,
1530
+ '/modal.client.ModalClient/ContainerExecWait',
1531
+ modal_proto.api_pb2.ContainerExecWaitRequest,
1532
+ modal_proto.api_pb2.ContainerExecWaitResponse,
1533
+ )
1534
+ self.ContainerFilesystemExec = grpclib.client.UnaryUnaryMethod(
1535
+ channel,
1536
+ '/modal.client.ModalClient/ContainerFilesystemExec',
1537
+ modal_proto.api_pb2.ContainerFilesystemExecRequest,
1538
+ modal_proto.api_pb2.ContainerFilesystemExecResponse,
1539
+ )
1540
+ self.ContainerFilesystemExecGetOutput = grpclib.client.UnaryStreamMethod(
1541
+ channel,
1542
+ '/modal.client.ModalClient/ContainerFilesystemExecGetOutput',
1543
+ modal_proto.api_pb2.ContainerFilesystemExecGetOutputRequest,
1544
+ modal_proto.api_pb2.FilesystemRuntimeOutputBatch,
1545
+ )
1546
+ self.ContainerHeartbeat = grpclib.client.UnaryUnaryMethod(
1547
+ channel,
1548
+ '/modal.client.ModalClient/ContainerHeartbeat',
1549
+ modal_proto.api_pb2.ContainerHeartbeatRequest,
1550
+ modal_proto.api_pb2.ContainerHeartbeatResponse,
1551
+ )
1552
+ self.ContainerHello = grpclib.client.UnaryUnaryMethod(
1553
+ channel,
1554
+ '/modal.client.ModalClient/ContainerHello',
1555
+ google.protobuf.empty_pb2.Empty,
1270
1556
  google.protobuf.empty_pb2.Empty,
1271
1557
  )
1558
+ self.ContainerLog = grpclib.client.UnaryUnaryMethod(
1559
+ channel,
1560
+ '/modal.client.ModalClient/ContainerLog',
1561
+ modal_proto.api_pb2.ContainerLogRequest,
1562
+ google.protobuf.empty_pb2.Empty,
1563
+ )
1564
+ self.ContainerStop = grpclib.client.UnaryUnaryMethod(
1565
+ channel,
1566
+ '/modal.client.ModalClient/ContainerStop',
1567
+ modal_proto.api_pb2.ContainerStopRequest,
1568
+ modal_proto.api_pb2.ContainerStopResponse,
1569
+ )
1272
1570
  self.DictClear = grpclib.client.UnaryUnaryMethod(
1273
1571
  channel,
1274
1572
  '/modal.client.ModalClient/DictClear',
1275
1573
  modal_proto.api_pb2.DictClearRequest,
1276
1574
  google.protobuf.empty_pb2.Empty,
1277
1575
  )
1278
- self.DictCreate = grpclib.client.UnaryUnaryMethod(
1576
+ self.DictContains = grpclib.client.UnaryUnaryMethod(
1577
+ channel,
1578
+ '/modal.client.ModalClient/DictContains',
1579
+ modal_proto.api_pb2.DictContainsRequest,
1580
+ modal_proto.api_pb2.DictContainsResponse,
1581
+ )
1582
+ self.DictContents = grpclib.client.UnaryStreamMethod(
1583
+ channel,
1584
+ '/modal.client.ModalClient/DictContents',
1585
+ modal_proto.api_pb2.DictContentsRequest,
1586
+ modal_proto.api_pb2.DictEntry,
1587
+ )
1588
+ self.DictDelete = grpclib.client.UnaryUnaryMethod(
1589
+ channel,
1590
+ '/modal.client.ModalClient/DictDelete',
1591
+ modal_proto.api_pb2.DictDeleteRequest,
1592
+ google.protobuf.empty_pb2.Empty,
1593
+ )
1594
+ self.DictGet = grpclib.client.UnaryUnaryMethod(
1279
1595
  channel,
1280
- '/modal.client.ModalClient/DictCreate',
1281
- modal_proto.api_pb2.DictCreateRequest,
1282
- modal_proto.api_pb2.DictCreateResponse,
1596
+ '/modal.client.ModalClient/DictGet',
1597
+ modal_proto.api_pb2.DictGetRequest,
1598
+ modal_proto.api_pb2.DictGetResponse,
1283
1599
  )
1284
1600
  self.DictGetOrCreate = grpclib.client.UnaryUnaryMethod(
1285
1601
  channel,
@@ -1293,17 +1609,17 @@ class ModalClientStub:
1293
1609
  modal_proto.api_pb2.DictHeartbeatRequest,
1294
1610
  google.protobuf.empty_pb2.Empty,
1295
1611
  )
1296
- self.DictUpdate = grpclib.client.UnaryUnaryMethod(
1612
+ self.DictLen = grpclib.client.UnaryUnaryMethod(
1297
1613
  channel,
1298
- '/modal.client.ModalClient/DictUpdate',
1299
- modal_proto.api_pb2.DictUpdateRequest,
1300
- modal_proto.api_pb2.DictUpdateResponse,
1614
+ '/modal.client.ModalClient/DictLen',
1615
+ modal_proto.api_pb2.DictLenRequest,
1616
+ modal_proto.api_pb2.DictLenResponse,
1301
1617
  )
1302
- self.DictGet = grpclib.client.UnaryUnaryMethod(
1618
+ self.DictList = grpclib.client.UnaryUnaryMethod(
1303
1619
  channel,
1304
- '/modal.client.ModalClient/DictGet',
1305
- modal_proto.api_pb2.DictGetRequest,
1306
- modal_proto.api_pb2.DictGetResponse,
1620
+ '/modal.client.ModalClient/DictList',
1621
+ modal_proto.api_pb2.DictListRequest,
1622
+ modal_proto.api_pb2.DictListResponse,
1307
1623
  )
1308
1624
  self.DictPop = grpclib.client.UnaryUnaryMethod(
1309
1625
  channel,
@@ -1311,17 +1627,17 @@ class ModalClientStub:
1311
1627
  modal_proto.api_pb2.DictPopRequest,
1312
1628
  modal_proto.api_pb2.DictPopResponse,
1313
1629
  )
1314
- self.DictContains = grpclib.client.UnaryUnaryMethod(
1630
+ self.DictUpdate = grpclib.client.UnaryUnaryMethod(
1315
1631
  channel,
1316
- '/modal.client.ModalClient/DictContains',
1317
- modal_proto.api_pb2.DictContainsRequest,
1318
- modal_proto.api_pb2.DictContainsResponse,
1632
+ '/modal.client.ModalClient/DictUpdate',
1633
+ modal_proto.api_pb2.DictUpdateRequest,
1634
+ modal_proto.api_pb2.DictUpdateResponse,
1319
1635
  )
1320
- self.DictLen = grpclib.client.UnaryUnaryMethod(
1636
+ self.DomainCertificateVerify = grpclib.client.UnaryUnaryMethod(
1321
1637
  channel,
1322
- '/modal.client.ModalClient/DictLen',
1323
- modal_proto.api_pb2.DictLenRequest,
1324
- modal_proto.api_pb2.DictLenResponse,
1638
+ '/modal.client.ModalClient/DomainCertificateVerify',
1639
+ modal_proto.api_pb2.DomainCertificateVerifyRequest,
1640
+ modal_proto.api_pb2.DomainCertificateVerifyResponse,
1325
1641
  )
1326
1642
  self.DomainCreate = grpclib.client.UnaryUnaryMethod(
1327
1643
  channel,
@@ -1335,42 +1651,78 @@ class ModalClientStub:
1335
1651
  modal_proto.api_pb2.DomainListRequest,
1336
1652
  modal_proto.api_pb2.DomainListResponse,
1337
1653
  )
1338
- self.DomainCertificateVerify = grpclib.client.UnaryUnaryMethod(
1339
- channel,
1340
- '/modal.client.ModalClient/DomainCertificateVerify',
1341
- modal_proto.api_pb2.DomainCertificateVerifyRequest,
1342
- modal_proto.api_pb2.DomainCertificateVerifyResponse,
1343
- )
1344
1654
  self.EnvironmentCreate = grpclib.client.UnaryUnaryMethod(
1345
1655
  channel,
1346
1656
  '/modal.client.ModalClient/EnvironmentCreate',
1347
1657
  modal_proto.api_pb2.EnvironmentCreateRequest,
1348
1658
  google.protobuf.empty_pb2.Empty,
1349
1659
  )
1350
- self.EnvironmentList = grpclib.client.UnaryUnaryMethod(
1351
- channel,
1352
- '/modal.client.ModalClient/EnvironmentList',
1353
- google.protobuf.empty_pb2.Empty,
1354
- modal_proto.api_pb2.EnvironmentListResponse,
1355
- )
1356
1660
  self.EnvironmentDelete = grpclib.client.UnaryUnaryMethod(
1357
1661
  channel,
1358
1662
  '/modal.client.ModalClient/EnvironmentDelete',
1359
1663
  modal_proto.api_pb2.EnvironmentDeleteRequest,
1360
1664
  google.protobuf.empty_pb2.Empty,
1361
1665
  )
1666
+ self.EnvironmentGetOrCreate = grpclib.client.UnaryUnaryMethod(
1667
+ channel,
1668
+ '/modal.client.ModalClient/EnvironmentGetOrCreate',
1669
+ modal_proto.api_pb2.EnvironmentGetOrCreateRequest,
1670
+ modal_proto.api_pb2.EnvironmentGetOrCreateResponse,
1671
+ )
1672
+ self.EnvironmentList = grpclib.client.UnaryUnaryMethod(
1673
+ channel,
1674
+ '/modal.client.ModalClient/EnvironmentList',
1675
+ google.protobuf.empty_pb2.Empty,
1676
+ modal_proto.api_pb2.EnvironmentListResponse,
1677
+ )
1362
1678
  self.EnvironmentUpdate = grpclib.client.UnaryUnaryMethod(
1363
1679
  channel,
1364
1680
  '/modal.client.ModalClient/EnvironmentUpdate',
1365
1681
  modal_proto.api_pb2.EnvironmentUpdateRequest,
1366
1682
  modal_proto.api_pb2.EnvironmentListItem,
1367
1683
  )
1684
+ self.FunctionAsyncInvoke = grpclib.client.UnaryUnaryMethod(
1685
+ channel,
1686
+ '/modal.client.ModalClient/FunctionAsyncInvoke',
1687
+ modal_proto.api_pb2.FunctionAsyncInvokeRequest,
1688
+ modal_proto.api_pb2.FunctionAsyncInvokeResponse,
1689
+ )
1368
1690
  self.FunctionBindParams = grpclib.client.UnaryUnaryMethod(
1369
1691
  channel,
1370
1692
  '/modal.client.ModalClient/FunctionBindParams',
1371
1693
  modal_proto.api_pb2.FunctionBindParamsRequest,
1372
1694
  modal_proto.api_pb2.FunctionBindParamsResponse,
1373
1695
  )
1696
+ self.FunctionCallCancel = grpclib.client.UnaryUnaryMethod(
1697
+ channel,
1698
+ '/modal.client.ModalClient/FunctionCallCancel',
1699
+ modal_proto.api_pb2.FunctionCallCancelRequest,
1700
+ google.protobuf.empty_pb2.Empty,
1701
+ )
1702
+ self.FunctionCallGetDataIn = grpclib.client.UnaryStreamMethod(
1703
+ channel,
1704
+ '/modal.client.ModalClient/FunctionCallGetDataIn',
1705
+ modal_proto.api_pb2.FunctionCallGetDataRequest,
1706
+ modal_proto.api_pb2.DataChunk,
1707
+ )
1708
+ self.FunctionCallGetDataOut = grpclib.client.UnaryStreamMethod(
1709
+ channel,
1710
+ '/modal.client.ModalClient/FunctionCallGetDataOut',
1711
+ modal_proto.api_pb2.FunctionCallGetDataRequest,
1712
+ modal_proto.api_pb2.DataChunk,
1713
+ )
1714
+ self.FunctionCallList = grpclib.client.UnaryUnaryMethod(
1715
+ channel,
1716
+ '/modal.client.ModalClient/FunctionCallList',
1717
+ modal_proto.api_pb2.FunctionCallListRequest,
1718
+ modal_proto.api_pb2.FunctionCallListResponse,
1719
+ )
1720
+ self.FunctionCallPutDataOut = grpclib.client.UnaryUnaryMethod(
1721
+ channel,
1722
+ '/modal.client.ModalClient/FunctionCallPutDataOut',
1723
+ modal_proto.api_pb2.FunctionCallPutDataRequest,
1724
+ google.protobuf.empty_pb2.Empty,
1725
+ )
1374
1726
  self.FunctionCreate = grpclib.client.UnaryUnaryMethod(
1375
1727
  channel,
1376
1728
  '/modal.client.ModalClient/FunctionCreate',
@@ -1395,6 +1747,12 @@ class ModalClientStub:
1395
1747
  modal_proto.api_pb2.FunctionGetCurrentStatsRequest,
1396
1748
  modal_proto.api_pb2.FunctionStats,
1397
1749
  )
1750
+ self.FunctionGetDynamicConcurrency = grpclib.client.UnaryUnaryMethod(
1751
+ channel,
1752
+ '/modal.client.ModalClient/FunctionGetDynamicConcurrency',
1753
+ modal_proto.api_pb2.FunctionGetDynamicConcurrencyRequest,
1754
+ modal_proto.api_pb2.FunctionGetDynamicConcurrencyResponse,
1755
+ )
1398
1756
  self.FunctionGetInputs = grpclib.client.UnaryUnaryMethod(
1399
1757
  channel,
1400
1758
  '/modal.client.ModalClient/FunctionGetInputs',
@@ -1437,47 +1795,29 @@ class ModalClientStub:
1437
1795
  modal_proto.api_pb2.FunctionPutOutputsRequest,
1438
1796
  google.protobuf.empty_pb2.Empty,
1439
1797
  )
1440
- self.FunctionUpdateSchedulingParams = grpclib.client.UnaryUnaryMethod(
1798
+ self.FunctionRetryInputs = grpclib.client.UnaryUnaryMethod(
1441
1799
  channel,
1442
- '/modal.client.ModalClient/FunctionUpdateSchedulingParams',
1443
- modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest,
1444
- modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse,
1800
+ '/modal.client.ModalClient/FunctionRetryInputs',
1801
+ modal_proto.api_pb2.FunctionRetryInputsRequest,
1802
+ modal_proto.api_pb2.FunctionRetryInputsResponse,
1445
1803
  )
1446
- self.FunctionCallCancel = grpclib.client.UnaryUnaryMethod(
1804
+ self.FunctionStartPtyShell = grpclib.client.UnaryUnaryMethod(
1447
1805
  channel,
1448
- '/modal.client.ModalClient/FunctionCallCancel',
1449
- modal_proto.api_pb2.FunctionCallCancelRequest,
1806
+ '/modal.client.ModalClient/FunctionStartPtyShell',
1807
+ google.protobuf.empty_pb2.Empty,
1450
1808
  google.protobuf.empty_pb2.Empty,
1451
1809
  )
1452
- self.FunctionCallList = grpclib.client.UnaryUnaryMethod(
1453
- channel,
1454
- '/modal.client.ModalClient/FunctionCallList',
1455
- modal_proto.api_pb2.FunctionCallListRequest,
1456
- modal_proto.api_pb2.FunctionCallListResponse,
1457
- )
1458
- self.FunctionCallGetDataIn = grpclib.client.UnaryStreamMethod(
1459
- channel,
1460
- '/modal.client.ModalClient/FunctionCallGetDataIn',
1461
- modal_proto.api_pb2.FunctionCallGetDataRequest,
1462
- modal_proto.api_pb2.DataChunk,
1463
- )
1464
- self.FunctionCallGetDataOut = grpclib.client.UnaryStreamMethod(
1465
- channel,
1466
- '/modal.client.ModalClient/FunctionCallGetDataOut',
1467
- modal_proto.api_pb2.FunctionCallGetDataRequest,
1468
- modal_proto.api_pb2.DataChunk,
1469
- )
1470
- self.FunctionCallPutDataOut = grpclib.client.UnaryUnaryMethod(
1810
+ self.FunctionUpdateSchedulingParams = grpclib.client.UnaryUnaryMethod(
1471
1811
  channel,
1472
- '/modal.client.ModalClient/FunctionCallPutDataOut',
1473
- modal_proto.api_pb2.FunctionCallPutDataRequest,
1474
- google.protobuf.empty_pb2.Empty,
1812
+ '/modal.client.ModalClient/FunctionUpdateSchedulingParams',
1813
+ modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest,
1814
+ modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse,
1475
1815
  )
1476
- self.FunctionStartPtyShell = grpclib.client.UnaryUnaryMethod(
1816
+ self.ImageFromId = grpclib.client.UnaryUnaryMethod(
1477
1817
  channel,
1478
- '/modal.client.ModalClient/FunctionStartPtyShell',
1479
- google.protobuf.empty_pb2.Empty,
1480
- google.protobuf.empty_pb2.Empty,
1818
+ '/modal.client.ModalClient/ImageFromId',
1819
+ modal_proto.api_pb2.ImageFromIdRequest,
1820
+ modal_proto.api_pb2.ImageFromIdResponse,
1481
1821
  )
1482
1822
  self.ImageGetOrCreate = grpclib.client.UnaryUnaryMethod(
1483
1823
  channel,
@@ -1491,23 +1831,35 @@ class ModalClientStub:
1491
1831
  modal_proto.api_pb2.ImageJoinStreamingRequest,
1492
1832
  modal_proto.api_pb2.ImageJoinStreamingResponse,
1493
1833
  )
1834
+ self.MountGetOrCreate = grpclib.client.UnaryUnaryMethod(
1835
+ channel,
1836
+ '/modal.client.ModalClient/MountGetOrCreate',
1837
+ modal_proto.api_pb2.MountGetOrCreateRequest,
1838
+ modal_proto.api_pb2.MountGetOrCreateResponse,
1839
+ )
1494
1840
  self.MountPutFile = grpclib.client.UnaryUnaryMethod(
1495
1841
  channel,
1496
1842
  '/modal.client.ModalClient/MountPutFile',
1497
1843
  modal_proto.api_pb2.MountPutFileRequest,
1498
1844
  modal_proto.api_pb2.MountPutFileResponse,
1499
1845
  )
1500
- self.MountBuild = grpclib.client.UnaryUnaryMethod(
1846
+ self.ProxyCreate = grpclib.client.UnaryUnaryMethod(
1501
1847
  channel,
1502
- '/modal.client.ModalClient/MountBuild',
1503
- modal_proto.api_pb2.MountBuildRequest,
1504
- modal_proto.api_pb2.MountBuildResponse,
1848
+ '/modal.client.ModalClient/ProxyCreate',
1849
+ modal_proto.api_pb2.ProxyCreateRequest,
1850
+ modal_proto.api_pb2.ProxyCreateResponse,
1505
1851
  )
1506
- self.MountGetOrCreate = grpclib.client.UnaryUnaryMethod(
1852
+ self.ProxyDelete = grpclib.client.UnaryUnaryMethod(
1507
1853
  channel,
1508
- '/modal.client.ModalClient/MountGetOrCreate',
1509
- modal_proto.api_pb2.MountGetOrCreateRequest,
1510
- modal_proto.api_pb2.MountGetOrCreateResponse,
1854
+ '/modal.client.ModalClient/ProxyDelete',
1855
+ modal_proto.api_pb2.ProxyDeleteRequest,
1856
+ google.protobuf.empty_pb2.Empty,
1857
+ )
1858
+ self.ProxyGet = grpclib.client.UnaryUnaryMethod(
1859
+ channel,
1860
+ '/modal.client.ModalClient/ProxyGet',
1861
+ modal_proto.api_pb2.ProxyGetRequest,
1862
+ modal_proto.api_pb2.ProxyGetResponse,
1511
1863
  )
1512
1864
  self.ProxyGetOrCreate = grpclib.client.UnaryUnaryMethod(
1513
1865
  channel,
@@ -1515,17 +1867,23 @@ class ModalClientStub:
1515
1867
  modal_proto.api_pb2.ProxyGetOrCreateRequest,
1516
1868
  modal_proto.api_pb2.ProxyGetOrCreateResponse,
1517
1869
  )
1518
- self.QueueCreate = grpclib.client.UnaryUnaryMethod(
1870
+ self.ProxyList = grpclib.client.UnaryUnaryMethod(
1519
1871
  channel,
1520
- '/modal.client.ModalClient/QueueCreate',
1521
- modal_proto.api_pb2.QueueCreateRequest,
1522
- modal_proto.api_pb2.QueueCreateResponse,
1872
+ '/modal.client.ModalClient/ProxyList',
1873
+ google.protobuf.empty_pb2.Empty,
1874
+ modal_proto.api_pb2.ProxyListResponse,
1523
1875
  )
1524
- self.QueueGetOrCreate = grpclib.client.UnaryUnaryMethod(
1876
+ self.QueueClear = grpclib.client.UnaryUnaryMethod(
1525
1877
  channel,
1526
- '/modal.client.ModalClient/QueueGetOrCreate',
1527
- modal_proto.api_pb2.QueueGetOrCreateRequest,
1528
- modal_proto.api_pb2.QueueGetOrCreateResponse,
1878
+ '/modal.client.ModalClient/QueueClear',
1879
+ modal_proto.api_pb2.QueueClearRequest,
1880
+ google.protobuf.empty_pb2.Empty,
1881
+ )
1882
+ self.QueueDelete = grpclib.client.UnaryUnaryMethod(
1883
+ channel,
1884
+ '/modal.client.ModalClient/QueueDelete',
1885
+ modal_proto.api_pb2.QueueDeleteRequest,
1886
+ google.protobuf.empty_pb2.Empty,
1529
1887
  )
1530
1888
  self.QueueGet = grpclib.client.UnaryUnaryMethod(
1531
1889
  channel,
@@ -1533,47 +1891,65 @@ class ModalClientStub:
1533
1891
  modal_proto.api_pb2.QueueGetRequest,
1534
1892
  modal_proto.api_pb2.QueueGetResponse,
1535
1893
  )
1894
+ self.QueueGetOrCreate = grpclib.client.UnaryUnaryMethod(
1895
+ channel,
1896
+ '/modal.client.ModalClient/QueueGetOrCreate',
1897
+ modal_proto.api_pb2.QueueGetOrCreateRequest,
1898
+ modal_proto.api_pb2.QueueGetOrCreateResponse,
1899
+ )
1536
1900
  self.QueueHeartbeat = grpclib.client.UnaryUnaryMethod(
1537
1901
  channel,
1538
1902
  '/modal.client.ModalClient/QueueHeartbeat',
1539
1903
  modal_proto.api_pb2.QueueHeartbeatRequest,
1540
1904
  google.protobuf.empty_pb2.Empty,
1541
1905
  )
1542
- self.QueuePut = grpclib.client.UnaryUnaryMethod(
1543
- channel,
1544
- '/modal.client.ModalClient/QueuePut',
1545
- modal_proto.api_pb2.QueuePutRequest,
1546
- google.protobuf.empty_pb2.Empty,
1547
- )
1548
1906
  self.QueueLen = grpclib.client.UnaryUnaryMethod(
1549
1907
  channel,
1550
1908
  '/modal.client.ModalClient/QueueLen',
1551
1909
  modal_proto.api_pb2.QueueLenRequest,
1552
1910
  modal_proto.api_pb2.QueueLenResponse,
1553
1911
  )
1912
+ self.QueueList = grpclib.client.UnaryUnaryMethod(
1913
+ channel,
1914
+ '/modal.client.ModalClient/QueueList',
1915
+ modal_proto.api_pb2.QueueListRequest,
1916
+ modal_proto.api_pb2.QueueListResponse,
1917
+ )
1918
+ self.QueueNextItems = grpclib.client.UnaryUnaryMethod(
1919
+ channel,
1920
+ '/modal.client.ModalClient/QueueNextItems',
1921
+ modal_proto.api_pb2.QueueNextItemsRequest,
1922
+ modal_proto.api_pb2.QueueNextItemsResponse,
1923
+ )
1924
+ self.QueuePut = grpclib.client.UnaryUnaryMethod(
1925
+ channel,
1926
+ '/modal.client.ModalClient/QueuePut',
1927
+ modal_proto.api_pb2.QueuePutRequest,
1928
+ google.protobuf.empty_pb2.Empty,
1929
+ )
1554
1930
  self.SandboxCreate = grpclib.client.UnaryUnaryMethod(
1555
1931
  channel,
1556
1932
  '/modal.client.ModalClient/SandboxCreate',
1557
1933
  modal_proto.api_pb2.SandboxCreateRequest,
1558
1934
  modal_proto.api_pb2.SandboxCreateResponse,
1559
1935
  )
1560
- self.SandboxGetTaskId = grpclib.client.UnaryUnaryMethod(
1561
- channel,
1562
- '/modal.client.ModalClient/SandboxGetTaskId',
1563
- modal_proto.api_pb2.SandboxGetTaskIdRequest,
1564
- modal_proto.api_pb2.SandboxGetTaskIdResponse,
1565
- )
1566
1936
  self.SandboxGetLogs = grpclib.client.UnaryStreamMethod(
1567
1937
  channel,
1568
1938
  '/modal.client.ModalClient/SandboxGetLogs',
1569
1939
  modal_proto.api_pb2.SandboxGetLogsRequest,
1570
1940
  modal_proto.api_pb2.TaskLogsBatch,
1571
1941
  )
1572
- self.SandboxWait = grpclib.client.UnaryUnaryMethod(
1942
+ self.SandboxGetTaskId = grpclib.client.UnaryUnaryMethod(
1573
1943
  channel,
1574
- '/modal.client.ModalClient/SandboxWait',
1575
- modal_proto.api_pb2.SandboxWaitRequest,
1576
- modal_proto.api_pb2.SandboxWaitResponse,
1944
+ '/modal.client.ModalClient/SandboxGetTaskId',
1945
+ modal_proto.api_pb2.SandboxGetTaskIdRequest,
1946
+ modal_proto.api_pb2.SandboxGetTaskIdResponse,
1947
+ )
1948
+ self.SandboxGetTunnels = grpclib.client.UnaryUnaryMethod(
1949
+ channel,
1950
+ '/modal.client.ModalClient/SandboxGetTunnels',
1951
+ modal_proto.api_pb2.SandboxGetTunnelsRequest,
1952
+ modal_proto.api_pb2.SandboxGetTunnelsResponse,
1577
1953
  )
1578
1954
  self.SandboxList = grpclib.client.UnaryUnaryMethod(
1579
1955
  channel,
@@ -1581,11 +1957,11 @@ class ModalClientStub:
1581
1957
  modal_proto.api_pb2.SandboxListRequest,
1582
1958
  modal_proto.api_pb2.SandboxListResponse,
1583
1959
  )
1584
- self.SandboxTerminate = grpclib.client.UnaryUnaryMethod(
1960
+ self.SandboxSnapshotFs = grpclib.client.UnaryUnaryMethod(
1585
1961
  channel,
1586
- '/modal.client.ModalClient/SandboxTerminate',
1587
- modal_proto.api_pb2.SandboxTerminateRequest,
1588
- modal_proto.api_pb2.SandboxTerminateResponse,
1962
+ '/modal.client.ModalClient/SandboxSnapshotFs',
1963
+ modal_proto.api_pb2.SandboxSnapshotFsRequest,
1964
+ modal_proto.api_pb2.SandboxSnapshotFsResponse,
1589
1965
  )
1590
1966
  self.SandboxStdinWrite = grpclib.client.UnaryUnaryMethod(
1591
1967
  channel,
@@ -1593,11 +1969,29 @@ class ModalClientStub:
1593
1969
  modal_proto.api_pb2.SandboxStdinWriteRequest,
1594
1970
  modal_proto.api_pb2.SandboxStdinWriteResponse,
1595
1971
  )
1596
- self.SecretCreate = grpclib.client.UnaryUnaryMethod(
1972
+ self.SandboxTagsSet = grpclib.client.UnaryUnaryMethod(
1973
+ channel,
1974
+ '/modal.client.ModalClient/SandboxTagsSet',
1975
+ modal_proto.api_pb2.SandboxTagsSetRequest,
1976
+ google.protobuf.empty_pb2.Empty,
1977
+ )
1978
+ self.SandboxTerminate = grpclib.client.UnaryUnaryMethod(
1979
+ channel,
1980
+ '/modal.client.ModalClient/SandboxTerminate',
1981
+ modal_proto.api_pb2.SandboxTerminateRequest,
1982
+ modal_proto.api_pb2.SandboxTerminateResponse,
1983
+ )
1984
+ self.SandboxWait = grpclib.client.UnaryUnaryMethod(
1985
+ channel,
1986
+ '/modal.client.ModalClient/SandboxWait',
1987
+ modal_proto.api_pb2.SandboxWaitRequest,
1988
+ modal_proto.api_pb2.SandboxWaitResponse,
1989
+ )
1990
+ self.SecretDelete = grpclib.client.UnaryUnaryMethod(
1597
1991
  channel,
1598
- '/modal.client.ModalClient/SecretCreate',
1599
- modal_proto.api_pb2.SecretCreateRequest,
1600
- modal_proto.api_pb2.SecretCreateResponse,
1992
+ '/modal.client.ModalClient/SecretDelete',
1993
+ modal_proto.api_pb2.SecretDeleteRequest,
1994
+ google.protobuf.empty_pb2.Empty,
1601
1995
  )
1602
1996
  self.SecretGetOrCreate = grpclib.client.UnaryUnaryMethod(
1603
1997
  channel,
@@ -1611,18 +2005,24 @@ class ModalClientStub:
1611
2005
  modal_proto.api_pb2.SecretListRequest,
1612
2006
  modal_proto.api_pb2.SecretListResponse,
1613
2007
  )
2008
+ self.SharedVolumeDelete = grpclib.client.UnaryUnaryMethod(
2009
+ channel,
2010
+ '/modal.client.ModalClient/SharedVolumeDelete',
2011
+ modal_proto.api_pb2.SharedVolumeDeleteRequest,
2012
+ google.protobuf.empty_pb2.Empty,
2013
+ )
2014
+ self.SharedVolumeGetFile = grpclib.client.UnaryUnaryMethod(
2015
+ channel,
2016
+ '/modal.client.ModalClient/SharedVolumeGetFile',
2017
+ modal_proto.api_pb2.SharedVolumeGetFileRequest,
2018
+ modal_proto.api_pb2.SharedVolumeGetFileResponse,
2019
+ )
1614
2020
  self.SharedVolumeGetOrCreate = grpclib.client.UnaryUnaryMethod(
1615
2021
  channel,
1616
2022
  '/modal.client.ModalClient/SharedVolumeGetOrCreate',
1617
2023
  modal_proto.api_pb2.SharedVolumeGetOrCreateRequest,
1618
2024
  modal_proto.api_pb2.SharedVolumeGetOrCreateResponse,
1619
2025
  )
1620
- self.SharedVolumeCreate = grpclib.client.UnaryUnaryMethod(
1621
- channel,
1622
- '/modal.client.ModalClient/SharedVolumeCreate',
1623
- modal_proto.api_pb2.SharedVolumeCreateRequest,
1624
- modal_proto.api_pb2.SharedVolumeCreateResponse,
1625
- )
1626
2026
  self.SharedVolumeHeartbeat = grpclib.client.UnaryUnaryMethod(
1627
2027
  channel,
1628
2028
  '/modal.client.ModalClient/SharedVolumeHeartbeat',
@@ -1653,23 +2053,23 @@ class ModalClientStub:
1653
2053
  modal_proto.api_pb2.SharedVolumePutFileRequest,
1654
2054
  modal_proto.api_pb2.SharedVolumePutFileResponse,
1655
2055
  )
1656
- self.SharedVolumeGetFile = grpclib.client.UnaryUnaryMethod(
1657
- channel,
1658
- '/modal.client.ModalClient/SharedVolumeGetFile',
1659
- modal_proto.api_pb2.SharedVolumeGetFileRequest,
1660
- modal_proto.api_pb2.SharedVolumeGetFileResponse,
1661
- )
1662
2056
  self.SharedVolumeRemoveFile = grpclib.client.UnaryUnaryMethod(
1663
2057
  channel,
1664
2058
  '/modal.client.ModalClient/SharedVolumeRemoveFile',
1665
2059
  modal_proto.api_pb2.SharedVolumeRemoveFileRequest,
1666
2060
  google.protobuf.empty_pb2.Empty,
1667
2061
  )
1668
- self.TaskResult = grpclib.client.UnaryUnaryMethod(
2062
+ self.TaskClusterHello = grpclib.client.UnaryUnaryMethod(
1669
2063
  channel,
1670
- '/modal.client.ModalClient/TaskResult',
1671
- modal_proto.api_pb2.TaskResultRequest,
2064
+ '/modal.client.ModalClient/TaskClusterHello',
2065
+ modal_proto.api_pb2.TaskClusterHelloRequest,
2066
+ modal_proto.api_pb2.TaskClusterHelloResponse,
2067
+ )
2068
+ self.TaskCurrentInputs = grpclib.client.UnaryUnaryMethod(
2069
+ channel,
2070
+ '/modal.client.ModalClient/TaskCurrentInputs',
1672
2071
  google.protobuf.empty_pb2.Empty,
2072
+ modal_proto.api_pb2.TaskCurrentInputsResponse,
1673
2073
  )
1674
2074
  self.TaskList = grpclib.client.UnaryUnaryMethod(
1675
2075
  channel,
@@ -1677,11 +2077,11 @@ class ModalClientStub:
1677
2077
  modal_proto.api_pb2.TaskListRequest,
1678
2078
  modal_proto.api_pb2.TaskListResponse,
1679
2079
  )
1680
- self.TaskCurrentInputs = grpclib.client.UnaryUnaryMethod(
2080
+ self.TaskResult = grpclib.client.UnaryUnaryMethod(
1681
2081
  channel,
1682
- '/modal.client.ModalClient/TaskCurrentInputs',
2082
+ '/modal.client.ModalClient/TaskResult',
2083
+ modal_proto.api_pb2.TaskResultRequest,
1683
2084
  google.protobuf.empty_pb2.Empty,
1684
- modal_proto.api_pb2.TaskCurrentInputsResponse,
1685
2085
  )
1686
2086
  self.TokenFlowCreate = grpclib.client.UnaryUnaryMethod(
1687
2087
  channel,
@@ -1707,30 +2107,18 @@ class ModalClientStub:
1707
2107
  modal_proto.api_pb2.TunnelStopRequest,
1708
2108
  modal_proto.api_pb2.TunnelStopResponse,
1709
2109
  )
1710
- self.VolumeGetOrCreate = grpclib.client.UnaryUnaryMethod(
1711
- channel,
1712
- '/modal.client.ModalClient/VolumeGetOrCreate',
1713
- modal_proto.api_pb2.VolumeGetOrCreateRequest,
1714
- modal_proto.api_pb2.VolumeGetOrCreateResponse,
1715
- )
1716
- self.VolumeCreate = grpclib.client.UnaryUnaryMethod(
1717
- channel,
1718
- '/modal.client.ModalClient/VolumeCreate',
1719
- modal_proto.api_pb2.VolumeCreateRequest,
1720
- modal_proto.api_pb2.VolumeCreateResponse,
1721
- )
1722
- self.VolumeHeartbeat = grpclib.client.UnaryUnaryMethod(
1723
- channel,
1724
- '/modal.client.ModalClient/VolumeHeartbeat',
1725
- modal_proto.api_pb2.VolumeHeartbeatRequest,
1726
- google.protobuf.empty_pb2.Empty,
1727
- )
1728
2110
  self.VolumeCommit = grpclib.client.UnaryUnaryMethod(
1729
2111
  channel,
1730
2112
  '/modal.client.ModalClient/VolumeCommit',
1731
2113
  modal_proto.api_pb2.VolumeCommitRequest,
1732
2114
  modal_proto.api_pb2.VolumeCommitResponse,
1733
2115
  )
2116
+ self.VolumeCopyFiles = grpclib.client.UnaryUnaryMethod(
2117
+ channel,
2118
+ '/modal.client.ModalClient/VolumeCopyFiles',
2119
+ modal_proto.api_pb2.VolumeCopyFilesRequest,
2120
+ google.protobuf.empty_pb2.Empty,
2121
+ )
1734
2122
  self.VolumeDelete = grpclib.client.UnaryUnaryMethod(
1735
2123
  channel,
1736
2124
  '/modal.client.ModalClient/VolumeDelete',
@@ -1743,6 +2131,18 @@ class ModalClientStub:
1743
2131
  modal_proto.api_pb2.VolumeGetFileRequest,
1744
2132
  modal_proto.api_pb2.VolumeGetFileResponse,
1745
2133
  )
2134
+ self.VolumeGetOrCreate = grpclib.client.UnaryUnaryMethod(
2135
+ channel,
2136
+ '/modal.client.ModalClient/VolumeGetOrCreate',
2137
+ modal_proto.api_pb2.VolumeGetOrCreateRequest,
2138
+ modal_proto.api_pb2.VolumeGetOrCreateResponse,
2139
+ )
2140
+ self.VolumeHeartbeat = grpclib.client.UnaryUnaryMethod(
2141
+ channel,
2142
+ '/modal.client.ModalClient/VolumeHeartbeat',
2143
+ modal_proto.api_pb2.VolumeHeartbeatRequest,
2144
+ google.protobuf.empty_pb2.Empty,
2145
+ )
1746
2146
  self.VolumeList = grpclib.client.UnaryUnaryMethod(
1747
2147
  channel,
1748
2148
  '/modal.client.ModalClient/VolumeList',
@@ -1773,10 +2173,10 @@ class ModalClientStub:
1773
2173
  modal_proto.api_pb2.VolumeRemoveFileRequest,
1774
2174
  google.protobuf.empty_pb2.Empty,
1775
2175
  )
1776
- self.VolumeCopyFiles = grpclib.client.UnaryUnaryMethod(
2176
+ self.VolumeRename = grpclib.client.UnaryUnaryMethod(
1777
2177
  channel,
1778
- '/modal.client.ModalClient/VolumeCopyFiles',
1779
- modal_proto.api_pb2.VolumeCopyFilesRequest,
2178
+ '/modal.client.ModalClient/VolumeRename',
2179
+ modal_proto.api_pb2.VolumeRenameRequest,
1780
2180
  google.protobuf.empty_pb2.Empty,
1781
2181
  )
1782
2182
  self.WorkspaceNameLookup = grpclib.client.UnaryUnaryMethod(