modal 1.1.1.dev17__py3-none-any.whl → 1.1.1.dev18__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

modal/client.pyi CHANGED
@@ -33,7 +33,7 @@ class _Client:
33
33
  server_url: str,
34
34
  client_type: int,
35
35
  credentials: typing.Optional[tuple[str, str]],
36
- version: str = "1.1.1.dev17",
36
+ version: str = "1.1.1.dev18",
37
37
  ):
38
38
  """mdmd:hidden
39
39
  The Modal client object is not intended to be instantiated directly by users.
@@ -164,7 +164,7 @@ class Client:
164
164
  server_url: str,
165
165
  client_type: int,
166
166
  credentials: typing.Optional[tuple[str, str]],
167
- version: str = "1.1.1.dev17",
167
+ version: str = "1.1.1.dev18",
168
168
  ):
169
169
  """mdmd:hidden
170
170
  The Modal client object is not intended to be instantiated directly by users.
modal/functions.pyi CHANGED
@@ -428,7 +428,7 @@ class Function(
428
428
 
429
429
  _call_generator: ___call_generator_spec[typing_extensions.Self]
430
430
 
431
- class __remote_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
431
+ class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
432
432
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER:
433
433
  """Calls the function remotely, executing it with the given arguments and returning the execution's result."""
434
434
  ...
@@ -437,7 +437,7 @@ class Function(
437
437
  """Calls the function remotely, executing it with the given arguments and returning the execution's result."""
438
438
  ...
439
439
 
440
- remote: __remote_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
440
+ remote: __remote_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
441
441
 
442
442
  class __remote_gen_spec(typing_extensions.Protocol[SUPERSELF]):
443
443
  def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]:
@@ -464,7 +464,7 @@ class Function(
464
464
  """
465
465
  ...
466
466
 
467
- class ___experimental_spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
467
+ class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
468
468
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
469
469
  """[Experimental] Calls the function with the given arguments, without waiting for the results.
470
470
 
@@ -488,7 +488,7 @@ class Function(
488
488
  ...
489
489
 
490
490
  _experimental_spawn: ___experimental_spawn_spec[
491
- modal._functions.P, modal._functions.ReturnType, typing_extensions.Self
491
+ modal._functions.ReturnType, modal._functions.P, typing_extensions.Self
492
492
  ]
493
493
 
494
494
  class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER, SUPERSELF]):
@@ -497,7 +497,7 @@ class Function(
497
497
 
498
498
  _spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P, typing_extensions.Self]
499
499
 
500
- class __spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
500
+ class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
501
501
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
502
502
  """Calls the function with the given arguments, without waiting for the results.
503
503
 
@@ -518,7 +518,7 @@ class Function(
518
518
  """
519
519
  ...
520
520
 
521
- spawn: __spawn_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
521
+ spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
522
522
 
523
523
  def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]:
524
524
  """Return the inner Python object wrapped by this Modal Function."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.1.dev17
3
+ Version: 1.1.1.dev18
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -22,7 +22,7 @@ modal/app.py,sha256=BBR2NmGzZbFGfhKAmtzllD0o4TbVDBbOEs0O2ysSdQo,48277
22
22
  modal/app.pyi,sha256=h6JtBA6a7wobdZAuS3QuXrWCUZqfyKPuGV3XdjCqT3k,43753
23
23
  modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
24
24
  modal/client.py,sha256=kyAIVB3Ay-XKJizQ_1ufUFB__EagV0MLmHJpyYyJ7J0,18636
25
- modal/client.pyi,sha256=XD43Q4KM3hWylx3pTjw1U7DLKLaWgGxQAmfCh8mPm90,15831
25
+ modal/client.pyi,sha256=9JRiPD1SpvKkNx4zbQafP7MoEr_696pP20yqmLs6j00,15831
26
26
  modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
27
27
  modal/cloud_bucket_mount.pyi,sha256=-qSfYAQvIoO_l2wsCCGTG5ZUwQieNKXdAO00yP1-LYU,7394
28
28
  modal/cls.py,sha256=7A0xGnugQzm8dOfnKMjLjtqekRlRtQ0jPFRYgq6xdUM,40018
@@ -39,7 +39,7 @@ modal/file_io.py,sha256=BVqAJ0sgPUfN8QsYztWiGB4j56he60TncM02KsylnCw,21449
39
39
  modal/file_io.pyi,sha256=cPT_hsplE5iLCXhYOLn1Sp9eDdk7DxdFmicQHanJZyg,15918
40
40
  modal/file_pattern_matcher.py,sha256=urAue8es8jxqX94k9EYoZxxhtfgOlsEES8lbFHOorzc,7734
41
41
  modal/functions.py,sha256=kcNHvqeGBxPI7Cgd57NIBBghkfbeFJzXO44WW0jSmao,325
42
- modal/functions.pyi,sha256=sht8252nY3f7y20vURdjz4R-NU0_EvHjHVl97PQ1t_4,34823
42
+ modal/functions.pyi,sha256=0P4f8ew79lf0lWXObYmNFxKoUPbWmoT0CD5IqGNKFhE,34823
43
43
  modal/gpu.py,sha256=Fe5ORvVPDIstSq1xjmM6OoNgLYFWvogP9r5BgmD3hYg,6769
44
44
  modal/image.py,sha256=zwaQixosWShXR--O8uimZZFyiLj4Xkry8s4CVwlbgz8,102697
45
45
  modal/image.pyi,sha256=s_AQaFoWmjLzffJGmiedFf9K1qQkedVIlsC6vRtlKS8,68161
@@ -151,7 +151,7 @@ modal/requirements/2025.06.txt,sha256=KxDaVTOwatHvboDo4lorlgJ7-n-MfAwbPwxJ0zcJqr
151
151
  modal/requirements/PREVIEW.txt,sha256=KxDaVTOwatHvboDo4lorlgJ7-n-MfAwbPwxJ0zcJqrs,312
152
152
  modal/requirements/README.md,sha256=9tK76KP0Uph7O0M5oUgsSwEZDj5y-dcUPsnpR0Sc-Ik,854
153
153
  modal/requirements/base-images.json,sha256=JYSDAgHTl-WrV_TZW5icY-IJEnbe2eQ4CZ_KN6EOZKU,1304
154
- modal-1.1.1.dev17.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
154
+ modal-1.1.1.dev18.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
155
155
  modal_docs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
156
156
  modal_docs/gen_cli_docs.py,sha256=c1yfBS_x--gL5bs0N4ihMwqwX8l3IBWSkBAKNNIi6bQ,3801
157
157
  modal_docs/gen_reference_docs.py,sha256=d_CQUGQ0rfw28u75I2mov9AlS773z9rG40-yq5o7g2U,6359
@@ -159,10 +159,10 @@ modal_docs/mdmd/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,2
159
159
  modal_docs/mdmd/mdmd.py,sha256=eW5MzrEl7mSclDo4Uv64sQ1-4IyLggldbgUJdBVLDdI,6449
160
160
  modal_docs/mdmd/signatures.py,sha256=XJaZrK7Mdepk5fdX51A8uENiLFNil85Ud0d4MH8H5f0,3218
161
161
  modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
162
- modal_proto/api.proto,sha256=WY3YnVkAZ8ECqxoFLMDCdbuE9GkT5ZvD210MXrsmf1A,102211
162
+ modal_proto/api.proto,sha256=5j2a64upHl9Xf0OcyoiH-6t1eyQTdDpS7nNocYVYqVk,102442
163
163
  modal_proto/api_grpc.py,sha256=AL8Z1zlvrsqrxXYEv_mKroJArPV7_8eQ2bMvvswDlTQ,123880
164
- modal_proto/api_pb2.py,sha256=Jm47YCDrgyECTveReHWh7Iy4x7y16XV2uK-vIjk1j0s,358170
165
- modal_proto/api_pb2.pyi,sha256=Fpq_1Wq4n2tN0tG4HYX4F8p8NguFyXUFCFBfSe0_9j8,492016
164
+ modal_proto/api_pb2.py,sha256=73p7vlYoCyB_5SIHQ5vZr4jy8LAdayp-ba5DLiTJdIU,358885
165
+ modal_proto/api_pb2.pyi,sha256=7nghkZyfXJvaN7b9byqNwHxD6n1jtvjJAVN93CPRVp0,493332
166
166
  modal_proto/api_pb2_grpc.py,sha256=QmhsoHLD9BBXVl3ZpIb-0_sZzpQ1Q9OLBU7ONHHojG4,267607
167
167
  modal_proto/api_pb2_grpc.pyi,sha256=Wy6NAO-o06jbQHxvZiMAi08QQT8VHUJcSAmlRRL0p1M,62762
168
168
  modal_proto/modal_api_grpc.py,sha256=A622btdK6V3CFaZfXK63ocCUlulKYJsgM-rcEPEFv24,18703
@@ -174,10 +174,10 @@ modal_proto/options_pb2.pyi,sha256=l7DBrbLO7q3Ir-XDkWsajm0d0TQqqrfuX54i4BMpdQg,1
174
174
  modal_proto/options_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
175
175
  modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0yJSI,247
176
176
  modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
177
- modal_version/__init__.py,sha256=BnFFVMQedwR4f3YgD3Ojg8YWDj5eY1QiPuRcnal9v1o,121
177
+ modal_version/__init__.py,sha256=3xrphd0fMXrGt-Xu74onNsNLzncvzfMuebAoJjDqW90,121
178
178
  modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
179
- modal-1.1.1.dev17.dist-info/METADATA,sha256=Bn2WbF9FHlFlz0uTYFU9Mf2SWRvLi9_Az-9qiscoW7k,2462
180
- modal-1.1.1.dev17.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
181
- modal-1.1.1.dev17.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
182
- modal-1.1.1.dev17.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
183
- modal-1.1.1.dev17.dist-info/RECORD,,
179
+ modal-1.1.1.dev18.dist-info/METADATA,sha256=pC2CJg1xV_-J6-Ji4ZutQ77ROscU0LzEVTs_6DTxI6c,2462
180
+ modal-1.1.1.dev18.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
181
+ modal-1.1.1.dev18.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
182
+ modal-1.1.1.dev18.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
183
+ modal-1.1.1.dev18.dist-info/RECORD,,
modal_proto/api.proto CHANGED
@@ -240,6 +240,13 @@ enum SystemErrorCode {
240
240
  SYSTEM_ERROR_CODE_NOSPC = 28; // ENOSPC: No space left on device
241
241
  }
242
242
 
243
+ enum TaskSnapshotBehavior {
244
+ TASK_SNAPSHOT_BEHAVIOR_UNSPECIFIED = 0;
245
+ TASK_SNAPSHOT_BEHAVIOR_SNAPSHOT = 1;
246
+ TASK_SNAPSHOT_BEHAVIOR_RESTORE = 2;
247
+ TASK_SNAPSHOT_BEHAVIOR_NONE = 3;
248
+ }
249
+
243
250
  enum TaskState {
244
251
  TASK_STATE_UNSPECIFIED = 0;
245
252
  TASK_STATE_CREATED = 6;
@@ -2961,6 +2968,7 @@ message TaskInfo {
2961
2968
  double enqueued_at = 5;
2962
2969
  string gpu_type = 6;
2963
2970
  string sandbox_id = 7;
2971
+ TaskSnapshotBehavior snapshot_behavior = 8;
2964
2972
  }
2965
2973
 
2966
2974
  message TaskListRequest {
modal_proto/api_pb2.py CHANGED
@@ -19,7 +19,7 @@ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
19
19
  from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
20
20
 
21
21
 
22
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15modal_proto/api.proto\x12\x0cmodal.client\x1a\x19modal_proto/options.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/wrappers.proto\"r\n\x1a\x41ppClientDisconnectRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x31\n\x06reason\x18\x02 \x01(\x0e\x32!.modal.client.AppDisconnectReason\x12\x11\n\texception\x18\x03 \x01(\t\"\x85\x01\n\x10\x41ppCreateRequest\x12\x17\n\tclient_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x05 \x01(\t\x12)\n\tapp_state\x18\x06 \x01(\x0e\x32\x16.modal.client.AppState\"O\n\x11\x41ppCreateResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x14\n\x0c\x61pp_page_url\x18\x02 \x01(\t\x12\x14\n\x0c\x61pp_logs_url\x18\x03 \x01(\t\"\x97\x01\n\x10\x41ppDeployRequest\x12\x14\n\x06\x61pp_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x15\n\robject_entity\x18\x04 \x01(\t\x12\x35\n\nvisibility\x18\x05 \x01(\x0e\x32!.modal.client.AppDeployVisibility\x12\x0b\n\x03tag\x18\x06 \x01(\tJ\x04\x08\x02\x10\x03\" \n\x11\x41ppDeployResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\"\x9e\x02\n\x14\x41ppDeploymentHistory\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\r\x12\x16\n\x0e\x63lient_version\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65ployed_at\x18\x04 \x01(\x01\x12\x13\n\x0b\x64\x65ployed_by\x18\x05 \x01(\t\x12\x1e\n\x16\x64\x65ployed_by_avatar_url\x18\t \x01(\t\x12\x0b\n\x03tag\x18\x06 \x01(\t\x12\x18\n\x10rollback_version\x18\x07 \x01(\r\x12\x18\n\x10rollback_allowed\x18\x08 \x01(\x08\x12\x32\n\x0b\x63ommit_info\x18\n \x01(\x0b\x32\x18.modal.client.CommitInfoH\x00\x88\x01\x01\x42\x0e\n\x0c_commit_info\"-\n\x1b\x41ppDeploymentHistoryRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\"d\n\x1c\x41ppDeploymentHistoryResponse\x12\x44\n\x18\x61pp_deployment_histories\x18\x01 \x03(\x0b\x32\".modal.client.AppDeploymentHistory\"M\n\x1d\x41ppGetByDeploymentNameRequest\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\tJ\x04\x08\x01\x10\x02\"0\n\x1e\x41ppGetByDeploymentNameResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\"%\n\x13\x41ppGetLayoutRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\"C\n\x14\x41ppGetLayoutResponse\x12+\n\napp_layout\x18\x01 \x01(\x0b\x32\x17.modal.client.AppLayout\"\xe8\x01\n\x11\x41ppGetLogsRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\x12\x15\n\rlast_entry_id\x18\x04 \x01(\t\x12\x13\n\x0b\x66unction_id\x18\x05 \x01(\t\x12\x10\n\x08input_id\x18\x06 \x01(\t\x12\x0f\n\x07task_id\x18\x07 \x01(\t\x12\x18\n\x10\x66unction_call_id\x18\t \x01(\t\x12\x35\n\x0f\x66ile_descriptor\x18\x08 \x01(\x0e\x32\x1c.modal.client.FileDescriptor\x12\x12\n\nsandbox_id\x18\n \x01(\t\"F\n\x11\x41ppGetObjectsItem\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12$\n\x06object\x18\x06 \x01(\x0b\x32\x14.modal.client.Object\"^\n\x14\x41ppGetObjectsRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x19\n\x11include_unindexed\x18\x02 \x01(\x08\x12\x1b\n\x13only_class_function\x18\x03 \x01(\x08\"G\n\x15\x41ppGetObjectsResponse\x12.\n\x05items\x18\x02 \x03(\x0b\x32\x1f.modal.client.AppGetObjectsItem\"\x83\x01\n\x15\x41ppGetOrCreateRequest\x12\x10\n\x08\x61pp_name\x18\x01 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x02 \x01(\t\x12>\n\x14object_creation_type\x18\x03 \x01(\x0e\x32 .modal.client.ObjectCreationType\"(\n\x16\x41ppGetOrCreateResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\"%\n\x13\x41ppHeartbeatRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\"\x91\x02\n\tAppLayout\x12%\n\x07objects\x18\x01 \x03(\x0b\x32\x14.modal.client.Object\x12>\n\x0c\x66unction_ids\x18\x02 \x03(\x0b\x32(.modal.client.AppLayout.FunctionIdsEntry\x12\x38\n\tclass_ids\x18\x03 \x03(\x0b\x32%.modal.client.AppLayout.ClassIdsEntry\x1a\x32\n\x10\x46unctionIdsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rClassIdsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"*\n\x0e\x41ppListRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\"\xf5\x01\n\x0f\x41ppListResponse\x12\x37\n\x04\x61pps\x18\x01 \x03(\x0b\x32).modal.client.AppListResponse.AppListItem\x1a\xa8\x01\n\x0b\x41ppListItem\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12%\n\x05state\x18\x04 \x01(\x0e\x32\x16.modal.client.AppState\x12\x12\n\ncreated_at\x18\x05 \x01(\x01\x12\x12\n\nstopped_at\x18\x06 \x01(\x01\x12\x17\n\x0fn_running_tasks\x18\x08 \x01(\x05\x12\x0c\n\x04name\x18\n \x01(\t\">\n\x10\x41ppLookupRequest\x12\x10\n\x08\x61pp_name\x18\x02 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\"#\n\x11\x41ppLookupResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\"\xcc\x04\n\x11\x41ppPublishRequest\x12\x14\n\x06\x61pp_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x16\n\x0e\x64\x65ployment_tag\x18\x03 \x01(\t\x12)\n\tapp_state\x18\x04 \x01(\x0e\x32\x16.modal.client.AppState\x12\x46\n\x0c\x66unction_ids\x18\x05 \x03(\x0b\x32\x30.modal.client.AppPublishRequest.FunctionIdsEntry\x12@\n\tclass_ids\x18\x06 \x03(\x0b\x32-.modal.client.AppPublishRequest.ClassIdsEntry\x12J\n\x0e\x64\x65\x66inition_ids\x18\x07 \x03(\x0b\x32\x32.modal.client.AppPublishRequest.DefinitionIdsEntry\x12\x18\n\x10rollback_version\x18\x08 \x01(\r\x12\x16\n\x0e\x63lient_version\x18\t \x01(\t\x12-\n\x0b\x63ommit_info\x18\n \x01(\x0b\x32\x18.modal.client.CommitInfo\x1a\x32\n\x10\x46unctionIdsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rClassIdsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x34\n\x12\x44\x65\x66initionIdsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"Q\n\x12\x41ppPublishResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\x12.\n\x0fserver_warnings\x18\x03 \x03(\x0b\x32\x15.modal.client.Warning\"5\n\x12\x41ppRollbackRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\x05\"\x9b\x02\n\x14\x41ppSetObjectsRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12T\n\x12indexed_object_ids\x18\x02 \x03(\x0b\x32\x38.modal.client.AppSetObjectsRequest.IndexedObjectIdsEntry\x12\x11\n\tclient_id\x18\x03 \x01(\t\x12\x1c\n\x14unindexed_object_ids\x18\x04 \x03(\t\x12-\n\rnew_app_state\x18\x05 \x01(\x0e\x32\x16.modal.client.AppState\x1a\x37\n\x15IndexedObjectIdsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01J\x04\x08\x06\x10\x07\"S\n\x0e\x41ppStopRequest\x12\x14\n\x06\x61pp_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12+\n\x06source\x18\x02 \x01(\x0e\x32\x1b.modal.client.AppStopSource\"\xa3\x0e\n\x04\x41sgi\x12\'\n\x04http\x18\x01 \x01(\x0b\x32\x17.modal.client.Asgi.HttpH\x00\x12\x36\n\x0chttp_request\x18\x02 \x01(\x0b\x32\x1e.modal.client.Asgi.HttpRequestH\x00\x12\x43\n\x13http_response_start\x18\x03 \x01(\x0b\x32$.modal.client.Asgi.HttpResponseStartH\x00\x12\x41\n\x12http_response_body\x18\x04 \x01(\x0b\x32#.modal.client.Asgi.HttpResponseBodyH\x00\x12I\n\x16http_response_trailers\x18\x05 \x01(\x0b\x32\'.modal.client.Asgi.HttpResponseTrailersH\x00\x12<\n\x0fhttp_disconnect\x18\x06 \x01(\x0b\x32!.modal.client.Asgi.HttpDisconnectH\x00\x12\x31\n\twebsocket\x18\x07 \x01(\x0b\x32\x1c.modal.client.Asgi.WebsocketH\x00\x12@\n\x11websocket_connect\x18\x08 \x01(\x0b\x32#.modal.client.Asgi.WebsocketConnectH\x00\x12>\n\x10websocket_accept\x18\t \x01(\x0b\x32\".modal.client.Asgi.WebsocketAcceptH\x00\x12@\n\x11websocket_receive\x18\n \x01(\x0b\x32#.modal.client.Asgi.WebsocketReceiveH\x00\x12:\n\x0ewebsocket_send\x18\x0b \x01(\x0b\x32 .modal.client.Asgi.WebsocketSendH\x00\x12\x46\n\x14websocket_disconnect\x18\x0c \x01(\x0b\x32&.modal.client.Asgi.WebsocketDisconnectH\x00\x12<\n\x0fwebsocket_close\x18\r \x01(\x0b\x32!.modal.client.Asgi.WebsocketCloseH\x00\x1a\xc5\x01\n\x04Http\x12\x14\n\x0chttp_version\x18\x01 \x01(\t\x12\x0e\n\x06method\x18\x02 \x01(\t\x12\x0e\n\x06scheme\x18\x03 \x01(\t\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\x14\n\x0cquery_string\x18\x05 \x01(\x0c\x12\x0f\n\x07headers\x18\x06 \x03(\x0c\x12\x18\n\x0b\x63lient_host\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x63lient_port\x18\x08 \x01(\rH\x01\x88\x01\x01\x42\x0e\n\x0c_client_hostB\x0e\n\x0c_client_port\x1a.\n\x0bHttpRequest\x12\x0c\n\x04\x62ody\x18\x01 \x01(\x0c\x12\x11\n\tmore_body\x18\x02 \x01(\x08\x1a\x46\n\x11HttpResponseStart\x12\x0e\n\x06status\x18\x01 \x01(\r\x12\x0f\n\x07headers\x18\x02 \x03(\x0c\x12\x10\n\x08trailers\x18\x03 \x01(\x08\x1a\x33\n\x10HttpResponseBody\x12\x0c\n\x04\x62ody\x18\x01 \x01(\x0c\x12\x11\n\tmore_body\x18\x02 \x01(\x08\x1a>\n\x14HttpResponseTrailers\x12\x0f\n\x07headers\x18\x01 \x03(\x0c\x12\x15\n\rmore_trailers\x18\x02 \x01(\x08\x1a\x10\n\x0eHttpDisconnect\x1a\xd0\x01\n\tWebsocket\x12\x14\n\x0chttp_version\x18\x01 \x01(\t\x12\x0e\n\x06scheme\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\x14\n\x0cquery_string\x18\x04 \x01(\x0c\x12\x0f\n\x07headers\x18\x05 \x03(\x0c\x12\x18\n\x0b\x63lient_host\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x63lient_port\x18\x07 \x01(\rH\x01\x88\x01\x01\x12\x14\n\x0csubprotocols\x18\x08 \x03(\tB\x0e\n\x0c_client_hostB\x0e\n\x0c_client_port\x1a\x12\n\x10WebsocketConnect\x1aL\n\x0fWebsocketAccept\x12\x18\n\x0bsubprotocol\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07headers\x18\x02 \x03(\x0c\x42\x0e\n\x0c_subprotocol\x1a>\n\x10WebsocketReceive\x12\x0f\n\x05\x62ytes\x18\x01 \x01(\x0cH\x00\x12\x0e\n\x04text\x18\x02 \x01(\tH\x00\x42\t\n\x07\x63ontent\x1a;\n\rWebsocketSend\x12\x0f\n\x05\x62ytes\x18\x01 \x01(\x0cH\x00\x12\x0e\n\x04text\x18\x02 \x01(\tH\x00\x42\t\n\x07\x63ontent\x1a\x31\n\x13WebsocketDisconnect\x12\x11\n\x04\x63ode\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x07\n\x05_code\x1a<\n\x0eWebsocketClose\x12\x11\n\x04\x63ode\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x0e\n\x06reason\x18\x02 \x01(\tB\x07\n\x05_codeB\x06\n\x04type\"X\n\x13\x41ttemptAwaitRequest\x12\x15\n\rattempt_token\x18\x01 \x01(\t\x12\x14\n\x0crequested_at\x18\x02 \x01(\x01\x12\x14\n\x0ctimeout_secs\x18\x03 \x01(\x02\"\\\n\x14\x41ttemptAwaitResponse\x12\x39\n\x06output\x18\x01 \x01(\x0b\x32$.modal.client.FunctionGetOutputsItemH\x00\x88\x01\x01\x42\t\n\x07_output\"\x8e\x01\n\x13\x41ttemptRetryRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x17\n\x0fparent_input_id\x18\x02 \x01(\t\x12\x32\n\x05input\x18\x03 \x01(\x0b\x32#.modal.client.FunctionPutInputsItem\x12\x15\n\rattempt_token\x18\x04 \x01(\t\"-\n\x14\x41ttemptRetryResponse\x12\x15\n\rattempt_token\x18\x01 \x01(\t\"w\n\x13\x41ttemptStartRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x17\n\x0fparent_input_id\x18\x02 \x01(\t\x12\x32\n\x05input\x18\x03 \x01(\x0b\x32#.modal.client.FunctionPutInputsItem\"f\n\x14\x41ttemptStartResponse\x12\x15\n\rattempt_token\x18\x01 \x01(\t\x12\x37\n\x0cretry_policy\x18\x02 \x01(\x0b\x32!.modal.client.FunctionRetryPolicy\"\x15\n\x13\x41uthTokenGetRequest\"%\n\x14\x41uthTokenGetResponse\x12\r\n\x05token\x18\x01 \x01(\t\"\x8e\x02\n\x12\x41utoscalerSettings\x12\x1b\n\x0emin_containers\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0emax_containers\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x11\x62uffer_containers\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1b\n\x0escaleup_window\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10scaledown_window\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x11\n\x0f_min_containersB\x11\n\x0f_max_containersB\x14\n\x12_buffer_containersB\x11\n\x0f_scaleup_windowB\x13\n\x11_scaledown_window\"7\n\tBaseImage\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12\x12\n\ndocker_tag\x18\x02 \x01(\tJ\x04\x08\x04\x10\x05\"_\n\x11\x42lobCreateRequest\x12\x13\n\x0b\x63ontent_md5\x18\x01 \x01(\t\x12\x1d\n\x15\x63ontent_sha256_base64\x18\x02 \x01(\t\x12\x16\n\x0e\x63ontent_length\x18\x03 \x01(\x03\"\x99\x02\n\x12\x42lobCreateResponse\x12\x0f\n\x07\x62lob_id\x18\x02 \x01(\t\x12\x14\n\nupload_url\x18\x01 \x01(\tH\x00\x12\x32\n\tmultipart\x18\x03 \x01(\x0b\x32\x1d.modal.client.MultiPartUploadH\x00\x12\x10\n\x08\x62lob_ids\x18\x04 \x03(\t\x12\x32\n\x0bupload_urls\x18\x05 \x01(\x0b\x32\x1b.modal.client.UploadUrlListH\x01\x12\x37\n\nmultiparts\x18\x06 \x01(\x0b\x32!.modal.client.MultiPartUploadListH\x01\x42\x13\n\x11upload_type_oneofB\x14\n\x12upload_types_oneof\"!\n\x0e\x42lobGetRequest\x12\x0f\n\x07\x62lob_id\x18\x01 \x01(\t\"\'\n\x0f\x42lobGetResponse\x12\x14\n\x0c\x64ownload_url\x18\x01 \x01(\t\"`\n\rBuildFunction\x12\x12\n\ndefinition\x18\x01 \x01(\t\x12\x0f\n\x07globals\x18\x02 \x01(\x0c\x12*\n\x05input\x18\x03 \x01(\x0b\x32\x1b.modal.client.FunctionInput\"C\n\x10\x43\x61ncelInputEvent\x12\x11\n\tinput_ids\x18\x01 \x03(\t\x12\x1c\n\x14terminate_containers\x18\x02 \x01(\x08\"\xf3\x01\n\x0e\x43heckpointInfo\x12\x10\n\x08\x63hecksum\x18\x01 \x01(\t\x12.\n\x06status\x18\x02 \x01(\x0e\x32\x1e.modal.client.CheckpointStatus\x12\x15\n\rcheckpoint_id\x18\x03 \x01(\t\x12\x1b\n\x13runtime_fingerprint\x18\x04 \x01(\t\x12\x0c\n\x04size\x18\x05 \x01(\x03\x12\x1e\n\x16\x63hecksum_is_file_index\x18\x06 \x01(\x08\x12\x18\n\x10original_task_id\x18\x07 \x01(\t\x12\x1d\n\x15runsc_runtime_version\x18\t \x01(\tJ\x04\x08\x08\x10\t\"\x94\x01\n\x12\x43lassCreateRequest\x12\x14\n\x06\x61pp_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x19\n\x11\x65xisting_class_id\x18\x02 \x01(\t\x12*\n\x07methods\x18\x03 \x03(\x0b\x32\x19.modal.client.ClassMethod\x12\x1b\n\x13only_class_function\x18\x05 \x01(\x08J\x04\x08\x04\x10\x05\"c\n\x13\x43lassCreateResponse\x12\x10\n\x08\x63lass_id\x18\x01 \x01(\t\x12:\n\x0fhandle_metadata\x18\x02 \x01(\x0b\x32!.modal.client.ClassHandleMetadata\"\x80\x01\n\x0f\x43lassGetRequest\x12\x10\n\x08\x61pp_name\x18\x01 \x01(\t\x12\x12\n\nobject_tag\x18\x02 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\t\x12\x1b\n\x13only_class_function\x18\n \x01(\x08J\x04\x08\x03\x10\x04J\x04\x08\x08\x10\tJ\x04\x08\t\x10\n\"\x90\x01\n\x10\x43lassGetResponse\x12\x10\n\x08\x63lass_id\x18\x01 \x01(\t\x12:\n\x0fhandle_metadata\x18\x02 \x01(\x0b\x32!.modal.client.ClassHandleMetadata\x12.\n\x0fserver_warnings\x18\x03 \x03(\x0b\x32\x15.modal.client.Warning\"\xa3\x01\n\x13\x43lassHandleMetadata\x12*\n\x07methods\x18\x01 \x03(\x0b\x32\x19.modal.client.ClassMethod\x12\x19\n\x11\x63lass_function_id\x18\x02 \x01(\t\x12\x45\n\x17\x63lass_function_metadata\x18\x03 \x01(\x0b\x32$.modal.client.FunctionHandleMetadata\"\x81\x01\n\x0b\x43lassMethod\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x13\n\x0b\x66unction_id\x18\x02 \x01(\t\x12\x46\n\x18\x66unction_handle_metadata\x18\x03 \x01(\x0b\x32$.modal.client.FunctionHandleMetadata\"\xaf\x02\n\x12\x43lassParameterInfo\x12M\n\x06\x66ormat\x18\x01 \x01(\x0e\x32=.modal.client.ClassParameterInfo.ParameterSerializationFormat\x12\x30\n\x06schema\x18\x02 \x03(\x0b\x32 .modal.client.ClassParameterSpec\"\x97\x01\n\x1cParameterSerializationFormat\x12*\n&PARAM_SERIALIZATION_FORMAT_UNSPECIFIED\x10\x00\x12%\n!PARAM_SERIALIZATION_FORMAT_PICKLE\x10\x01\x12$\n PARAM_SERIALIZATION_FORMAT_PROTO\x10\x02\"J\n\x11\x43lassParameterSet\x12\x35\n\nparameters\x18\x01 \x03(\x0b\x32!.modal.client.ClassParameterValue\"\xa4\x02\n\x12\x43lassParameterSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12)\n\x04type\x18\x02 \x01(\x0e\x32\x1b.modal.client.ParameterType\x12\x13\n\x0bhas_default\x18\x03 \x01(\x08\x12\x18\n\x0estring_default\x18\x04 \x01(\tH\x00\x12\x15\n\x0bint_default\x18\x05 \x01(\x03H\x00\x12\x18\n\x0epickle_default\x18\x06 \x01(\x0cH\x00\x12\x17\n\rbytes_default\x18\x07 \x01(\x0cH\x00\x12\x16\n\x0c\x62ool_default\x18\t \x01(\x08H\x00\x12\x33\n\tfull_type\x18\x08 \x01(\x0b\x32 .modal.client.GenericPayloadTypeB\x0f\n\rdefault_oneof\"\xcf\x01\n\x13\x43lassParameterValue\x12\x0c\n\x04name\x18\x01 \x01(\t\x12)\n\x04type\x18\x02 \x01(\x0e\x32\x1b.modal.client.ParameterType\x12\x16\n\x0cstring_value\x18\x03 \x01(\tH\x00\x12\x13\n\tint_value\x18\x04 \x01(\x03H\x00\x12\x16\n\x0cpickle_value\x18\x05 \x01(\x0cH\x00\x12\x15\n\x0b\x62ytes_value\x18\x06 \x01(\x0cH\x00\x12\x14\n\nbool_value\x18\x07 \x01(\x08H\x00\x42\r\n\x0bvalue_oneof\"u\n\x13\x43lientHelloResponse\x12\x0f\n\x07warning\x18\x01 \x01(\t\x12\x1d\n\x15image_builder_version\x18\x02 \x01(\t\x12.\n\x0fserver_warnings\x18\x04 \x03(\x0b\x32\x15.modal.client.Warning\"\x97\x03\n\x10\x43loudBucketMount\x12\x13\n\x0b\x62ucket_name\x18\x01 \x01(\t\x12\x12\n\nmount_path\x18\x02 \x01(\t\x12\x1d\n\x15\x63redentials_secret_id\x18\x03 \x01(\t\x12\x11\n\tread_only\x18\x04 \x01(\x08\x12>\n\x0b\x62ucket_type\x18\x05 \x01(\x0e\x32).modal.client.CloudBucketMount.BucketType\x12\x16\n\x0erequester_pays\x18\x06 \x01(\x08\x12 \n\x13\x62ucket_endpoint_url\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nkey_prefix\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12oidc_auth_role_arn\x18\t \x01(\tH\x02\x88\x01\x01\"6\n\nBucketType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x06\n\x02S3\x10\x01\x12\x06\n\x02R2\x10\x02\x12\x07\n\x03GCP\x10\x03\x42\x16\n\x14_bucket_endpoint_urlB\r\n\x0b_key_prefixB\x15\n\x13_oidc_auth_role_arn\"\'\n\x11\x43lusterGetRequest\x12\x12\n\ncluster_id\x18\x01 \x01(\t\"A\n\x12\x43lusterGetResponse\x12+\n\x07\x63luster\x18\x01 \x01(\x0b\x32\x1a.modal.client.ClusterStats\".\n\x12\x43lusterListRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\"C\n\x13\x43lusterListResponse\x12,\n\x08\x63lusters\x18\x01 \x03(\x0b\x32\x1a.modal.client.ClusterStats\"X\n\x0c\x43lusterStats\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x10\n\x08task_ids\x18\x02 \x03(\t\x12\x12\n\ncluster_id\x18\x03 \x01(\t\x12\x12\n\nstarted_at\x18\x04 \x01(\x01\"\xa4\x01\n\nCommitInfo\x12\x0b\n\x03vcs\x18\x01 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x02 \x01(\t\x12\x13\n\x0b\x63ommit_hash\x18\x03 \x01(\t\x12\x18\n\x10\x63ommit_timestamp\x18\x04 \x01(\x03\x12\r\n\x05\x64irty\x18\x05 \x01(\x08\x12\x13\n\x0b\x61uthor_name\x18\x06 \x01(\t\x12\x14\n\x0c\x61uthor_email\x18\x07 \x01(\t\x12\x10\n\x08repo_url\x18\x08 \x01(\t\"\xcc\x03\n\x12\x43ontainerArguments\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x13\n\x0b\x66unction_id\x18\x02 \x01(\t\x12\x0e\n\x06\x61pp_id\x18\x04 \x01(\t\x12,\n\x0c\x66unction_def\x18\x07 \x01(\x0b\x32\x16.modal.client.Function\x12+\n\nproxy_info\x18\x08 \x01(\x0b\x32\x17.modal.client.ProxyInfo\x12M\n\x0ftracing_context\x18\t \x03(\x0b\x32\x34.modal.client.ContainerArguments.TracingContextEntry\x12\x19\n\x11serialized_params\x18\n \x01(\x0c\x12\x0f\n\x07runtime\x18\x0b \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\r \x01(\t\x12\x1a\n\rcheckpoint_id\x18\x0e \x01(\tH\x00\x88\x01\x01\x12+\n\napp_layout\x18\x0f \x01(\x0b\x32\x17.modal.client.AppLayout\x1a\x35\n\x13TracingContextEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x10\n\x0e_checkpoint_id\"3\n\x1a\x43ontainerCheckpointRequest\x12\x15\n\rcheckpoint_id\x18\x01 \x01(\t\"\xa9\x01\n\x1d\x43ontainerExecGetOutputRequest\x12\x0f\n\x07\x65xec_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\x12\x18\n\x10last_batch_index\x18\x03 \x01(\x04\x12\x35\n\x0f\x66ile_descriptor\x18\x04 \x01(\x0e\x32\x1c.modal.client.FileDescriptor\x12\x15\n\rget_raw_bytes\x18\x05 \x01(\x08\"a\n\x1c\x43ontainerExecPutInputRequest\x12\x0f\n\x07\x65xec_id\x18\x01 \x01(\t\x12\x30\n\x05input\x18\x02 \x01(\x0b\x32!.modal.client.RuntimeInputMessage\"\xed\x02\n\x14\x43ontainerExecRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x02 \x03(\t\x12,\n\x08pty_info\x18\x03 \x01(\x0b\x32\x15.modal.client.PTYInfoH\x00\x88\x01\x01\x12\'\n\x1bterminate_container_on_exit\x18\x04 \x01(\x08\x42\x02\x18\x01\x12\x15\n\rruntime_debug\x18\x05 \x01(\x08\x12\x35\n\rstdout_output\x18\x06 \x01(\x0e\x32\x1e.modal.client.ExecOutputOption\x12\x35\n\rstderr_output\x18\x07 \x01(\x0e\x32\x1e.modal.client.ExecOutputOption\x12\x14\n\x0ctimeout_secs\x18\x08 \x01(\r\x12\x14\n\x07workdir\x18\t \x01(\tH\x01\x88\x01\x01\x12\x12\n\nsecret_ids\x18\n \x03(\tB\x0b\n\t_pty_infoB\n\n\x08_workdir\"(\n\x15\x43ontainerExecResponse\x12\x0f\n\x07\x65xec_id\x18\x01 \x01(\t\"<\n\x18\x43ontainerExecWaitRequest\x12\x0f\n\x07\x65xec_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\"T\n\x19\x43ontainerExecWaitResponse\x12\x16\n\texit_code\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\tcompleted\x18\x02 \x01(\x08\x42\x0c\n\n_exit_code\"4\n\x19\x43ontainerFileCloseRequest\x12\x17\n\x0f\x66ile_descriptor\x18\x01 \x01(\t\"\x9a\x01\n\x1f\x43ontainerFileDeleteBytesRequest\x12\x17\n\x0f\x66ile_descriptor\x18\x01 \x01(\t\x12\x1c\n\x0fstart_inclusive\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1a\n\rend_exclusive\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_start_inclusiveB\x10\n\x0e_end_exclusive\"4\n\x19\x43ontainerFileFlushRequest\x12\x17\n\x0f\x66ile_descriptor\x18\x01 \x01(\t\"&\n\x16\x43ontainerFileLsRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\"?\n\x19\x43ontainerFileMkdirRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x14\n\x0cmake_parents\x18\x02 \x01(\x08\"h\n\x18\x43ontainerFileOpenRequest\x12\x1c\n\x0f\x66ile_descriptor\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x0c\n\x04mode\x18\x03 \x01(\tB\x12\n\x10_file_descriptor\"7\n\x1c\x43ontainerFileReadLineRequest\x12\x17\n\x0f\x66ile_descriptor\x18\x01 \x01(\t\"I\n\x18\x43ontainerFileReadRequest\x12\x17\n\x0f\x66ile_descriptor\x18\x01 \x01(\t\x12\x0e\n\x01n\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x04\n\x02_n\"9\n\x16\x43ontainerFileRmRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x11\n\trecursive\x18\x02 \x01(\x08\"m\n\x18\x43ontainerFileSeekRequest\x12\x17\n\x0f\x66ile_descriptor\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\x05\x12(\n\x06whence\x18\x03 \x01(\x0e\x32\x18.modal.client.SeekWhence\"h\n\x19\x43ontainerFileWatchRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x11\n\trecursive\x18\x02 \x01(\x08\x12\x19\n\x0ctimeout_secs\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x0f\n\r_timeout_secs\"\xae\x01\n%ContainerFileWriteReplaceBytesRequest\x12\x17\n\x0f\x66ile_descriptor\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x1c\n\x0fstart_inclusive\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x1a\n\rend_exclusive\x18\x04 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_start_inclusiveB\x10\n\x0e_end_exclusive\"B\n\x19\x43ontainerFileWriteRequest\x12\x17\n\x0f\x66ile_descriptor\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"K\n\'ContainerFilesystemExecGetOutputRequest\x12\x0f\n\x07\x65xec_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\"\x83\x08\n\x1e\x43ontainerFilesystemExecRequest\x12\x43\n\x11\x66ile_open_request\x18\x01 \x01(\x0b\x32&.modal.client.ContainerFileOpenRequestH\x00\x12\x45\n\x12\x66ile_write_request\x18\x02 \x01(\x0b\x32\'.modal.client.ContainerFileWriteRequestH\x00\x12\x43\n\x11\x66ile_read_request\x18\x03 \x01(\x0b\x32&.modal.client.ContainerFileReadRequestH\x00\x12\x45\n\x12\x66ile_flush_request\x18\x04 \x01(\x0b\x32\'.modal.client.ContainerFileFlushRequestH\x00\x12L\n\x16\x66ile_read_line_request\x18\x05 \x01(\x0b\x32*.modal.client.ContainerFileReadLineRequestH\x00\x12\x43\n\x11\x66ile_seek_request\x18\x06 \x01(\x0b\x32&.modal.client.ContainerFileSeekRequestH\x00\x12R\n\x19\x66ile_delete_bytes_request\x18\x07 \x01(\x0b\x32-.modal.client.ContainerFileDeleteBytesRequestH\x00\x12_\n file_write_replace_bytes_request\x18\x08 \x01(\x0b\x32\x33.modal.client.ContainerFileWriteReplaceBytesRequestH\x00\x12\x45\n\x12\x66ile_close_request\x18\t \x01(\x0b\x32\'.modal.client.ContainerFileCloseRequestH\x00\x12?\n\x0f\x66ile_ls_request\x18\x0b \x01(\x0b\x32$.modal.client.ContainerFileLsRequestH\x00\x12\x45\n\x12\x66ile_mkdir_request\x18\x0c \x01(\x0b\x32\'.modal.client.ContainerFileMkdirRequestH\x00\x12?\n\x0f\x66ile_rm_request\x18\r \x01(\x0b\x32$.modal.client.ContainerFileRmRequestH\x00\x12\x45\n\x12\x66ile_watch_request\x18\x0e \x01(\x0b\x32\'.modal.client.ContainerFileWatchRequestH\x00\x12\x0f\n\x07task_id\x18\n \x01(\tB\x19\n\x17\x66ile_exec_request_oneof\"d\n\x1f\x43ontainerFilesystemExecResponse\x12\x0f\n\x07\x65xec_id\x18\x01 \x01(\t\x12\x1c\n\x0f\x66ile_descriptor\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_file_descriptor\"\x80\x01\n\x19\x43ontainerHeartbeatRequest\x12&\n\x1e\x63\x61nceled_inputs_return_outputs\x18\x04 \x01(\x08\x12)\n!canceled_inputs_return_outputs_v2\x18\x05 \x01(\x08J\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04\"t\n\x1a\x43ontainerHeartbeatResponse\x12?\n\x12\x63\x61ncel_input_event\x18\x01 \x01(\x0b\x32\x1e.modal.client.CancelInputEventH\x00\x88\x01\x01\x42\x15\n\x13_cancel_input_event\";\n\x13\x43ontainerLogRequest\x12$\n\x04logs\x18\x03 \x03(\x0b\x32\x16.modal.client.TaskLogs\"0\n\x1d\x43ontainerReloadVolumesRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\" \n\x1e\x43ontainerReloadVolumesResponse\"-\n\x14\x43ontainerStopRequest\x12\x15\n\x07task_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"\x17\n\x15\x43ontainerStopResponse\"6\n\x0c\x43reationInfo\x12\x12\n\ncreated_at\x18\x01 \x01(\x01\x12\x12\n\ncreated_by\x18\x02 \x01(\t\"\"\n\x12\x43ustomDomainConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x1f\n\x10\x43ustomDomainInfo\x12\x0b\n\x03url\x18\x01 \x01(\t\"S\n\tDNSRecord\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.modal.client.DNSRecordType\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\"\x7f\n\tDataChunk\x12-\n\x0b\x64\x61ta_format\x18\x01 \x01(\x0e\x32\x18.modal.client.DataFormat\x12\x0e\n\x04\x64\x61ta\x18\x02 \x01(\x0cH\x00\x12\x16\n\x0c\x64\x61ta_blob_id\x18\x03 \x01(\tH\x00\x12\r\n\x05index\x18\x04 \x01(\x04\x42\x0c\n\ndata_oneof\"#\n\x10\x44ictClearRequest\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\"3\n\x13\x44ictContainsRequest\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\x0c\"%\n\x14\x44ictContainsResponse\x12\r\n\x05\x66ound\x18\x01 \x01(\x08\"D\n\x13\x44ictContentsRequest\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\x12\x0c\n\x04keys\x18\x02 \x01(\x08\x12\x0e\n\x06values\x18\x03 \x01(\x08\"$\n\x11\x44ictDeleteRequest\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\"\'\n\tDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x0c\x12\r\n\x05value\x18\x02 \x01(\x0c\"\xbe\x01\n\x16\x44ictGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12>\n\x14object_creation_type\x18\x04 \x01(\x0e\x32 .modal.client.ObjectCreationType\x12%\n\x04\x64\x61ta\x18\x05 \x03(\x0b\x32\x17.modal.client.DictEntryJ\x04\x08\x02\x10\x03\"X\n\x17\x44ictGetOrCreateResponse\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\x12,\n\x08metadata\x18\x02 \x01(\x0b\x32\x1a.modal.client.DictMetadata\".\n\x0e\x44ictGetRequest\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\x0c\">\n\x0f\x44ictGetResponse\x12\r\n\x05\x66ound\x18\x01 \x01(\x08\x12\x12\n\x05value\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x08\n\x06_value\"\'\n\x14\x44ictHeartbeatRequest\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\"!\n\x0e\x44ictLenRequest\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\"\x1e\n\x0f\x44ictLenResponse\x12\x0b\n\x03len\x18\x01 \x01(\x05\"+\n\x0f\x44ictListRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\"x\n\x10\x44ictListResponse\x12\x36\n\x05\x64icts\x18\x01 \x03(\x0b\x32\'.modal.client.DictListResponse.DictInfo\x1a,\n\x08\x44ictInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\ncreated_at\x18\x02 \x01(\x01\"O\n\x0c\x44ictMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x31\n\rcreation_info\x18\x02 \x01(\x0b\x32\x1a.modal.client.CreationInfo\".\n\x0e\x44ictPopRequest\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\x0c\">\n\x0f\x44ictPopResponse\x12\r\n\x05\x66ound\x18\x01 \x01(\x08\x12\x12\n\x05value\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x08\n\x06_value\"k\n\x11\x44ictUpdateRequest\x12\x15\n\x07\x64ict_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12(\n\x07updates\x18\x02 \x03(\x0b\x32\x17.modal.client.DictEntry\x12\x15\n\rif_not_exists\x18\x03 \x01(\x08\"%\n\x12\x44ictUpdateResponse\x12\x0f\n\x07\x63reated\x18\x01 \x01(\x08\"\xaf\x01\n\x06\x44omain\x12\x11\n\tdomain_id\x18\x01 \x01(\t\x12\x13\n\x0b\x64omain_name\x18\x02 \x01(\t\x12\x12\n\ncreated_at\x18\x03 \x01(\x01\x12;\n\x12\x63\x65rtificate_status\x18\x04 \x01(\x0e\x32\x1f.modal.client.CertificateStatus\x12,\n\x0b\x64ns_records\x18\x05 \x03(\x0b\x32\x17.modal.client.DNSRecord\"3\n\x1e\x44omainCertificateVerifyRequest\x12\x11\n\tdomain_id\x18\x01 \x01(\t\"G\n\x1f\x44omainCertificateVerifyResponse\x12$\n\x06\x64omain\x18\x01 \x01(\x0b\x32\x14.modal.client.Domain\"0\n\x13\x44omainCreateRequest\x12\x19\n\x0b\x64omain_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"W\n\x14\x44omainCreateResponse\x12\x11\n\tdomain_id\x18\x01 \x01(\t\x12,\n\x0b\x64ns_records\x18\x02 \x03(\x0b\x32\x17.modal.client.DNSRecord\"\x13\n\x11\x44omainListRequest\";\n\x12\x44omainListResponse\x12%\n\x07\x64omains\x18\x01 \x03(\x0b\x32\x14.modal.client.Domain\".\n\x18\x45nvironmentCreateRequest\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\".\n\x18\x45nvironmentDeleteRequest\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"~\n\x1d\x45nvironmentGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12>\n\x14object_creation_type\x18\x02 \x01(\x0e\x32 .modal.client.ObjectCreationType\"m\n\x1e\x45nvironmentGetOrCreateResponse\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x01(\t\x12\x33\n\x08metadata\x18\x02 \x01(\x0b\x32!.modal.client.EnvironmentMetadata\"`\n\x13\x45nvironmentListItem\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x0ewebhook_suffix\x18\x02 \x01(\t\x12\x12\n\ncreated_at\x18\x03 \x01(\x01\x12\x0f\n\x07\x64\x65\x66\x61ult\x18\x04 \x01(\x08\"K\n\x17\x45nvironmentListResponse\x12\x30\n\x05items\x18\x02 \x03(\x0b\x32!.modal.client.EnvironmentListItem\"X\n\x13\x45nvironmentMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x33\n\x08settings\x18\x02 \x01(\x0b\x32!.modal.client.EnvironmentSettings\"L\n\x13\x45nvironmentSettings\x12\x1d\n\x15image_builder_version\x18\x01 \x01(\t\x12\x16\n\x0ewebhook_suffix\x18\x02 \x01(\t\"\x94\x01\n\x18\x45nvironmentUpdateRequest\x12\x1a\n\x0c\x63urrent_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12*\n\x04name\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\nweb_suffix\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xbf\x01\n\tFileEntry\x12\x0c\n\x04path\x18\x01 \x01(\t\x12.\n\x04type\x18\x02 \x01(\x0e\x32 .modal.client.FileEntry.FileType\x12\r\n\x05mtime\x18\x03 \x01(\x04\x12\x0c\n\x04size\x18\x04 \x01(\x04\"W\n\x08\x46ileType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x08\n\x04\x46ILE\x10\x01\x12\r\n\tDIRECTORY\x10\x02\x12\x0b\n\x07SYMLINK\x10\x03\x12\x08\n\x04\x46IFO\x10\x04\x12\n\n\x06SOCKET\x10\x05\"\x90\x01\n\x1c\x46ilesystemRuntimeOutputBatch\x12\x0e\n\x06output\x18\x01 \x03(\x0c\x12\x34\n\x05\x65rror\x18\x02 \x01(\x0b\x32 .modal.client.SystemErrorMessageH\x00\x88\x01\x01\x12\x13\n\x0b\x62\x61tch_index\x18\x03 \x01(\x04\x12\x0b\n\x03\x65of\x18\x04 \x01(\x08\x42\x08\n\x06_error\"7\n\x1f\x46lashContainerDeregisterRequest\x12\x14\n\x0cservice_name\x18\x01 \x01(\t\"0\n\x19\x46lashContainerListRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\"\x9e\x01\n\x1a\x46lashContainerListResponse\x12\x46\n\ncontainers\x18\x01 \x03(\x0b\x32\x32.modal.client.FlashContainerListResponse.Container\x1a\x38\n\tContainer\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\"s\n\x1d\x46lashContainerRegisterRequest\x12\x14\n\x0cservice_name\x18\x01 \x01(\t\x12\x10\n\x08priority\x18\x02 \x01(\r\x12\x0e\n\x06weight\x18\x03 \x01(\r\x12\x0c\n\x04host\x18\x04 \x01(\t\x12\x0c\n\x04port\x18\x05 \x01(\r\"-\n\x1e\x46lashContainerRegisterResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\"\xe4\x18\n\x08\x46unction\x12\x13\n\x0bmodule_name\x18\x01 \x01(\t\x12\x15\n\rfunction_name\x18\x02 \x01(\t\x12\x11\n\tmount_ids\x18\x03 \x03(\t\x12\x10\n\x08image_id\x18\x04 \x01(\t\x12\x1b\n\x13\x66unction_serialized\x18\x06 \x01(\x0c\x12>\n\x0f\x64\x65\x66inition_type\x18\x07 \x01(\x0e\x32%.modal.client.Function.DefinitionType\x12:\n\rfunction_type\x18\x08 \x01(\x0e\x32#.modal.client.Function.FunctionType\x12*\n\tresources\x18\t \x01(\x0b\x32\x17.modal.client.Resources\x12\x12\n\nsecret_ids\x18\n \x03(\t\x12+\n\nrate_limit\x18\x0b \x01(\x0b\x32\x17.modal.client.RateLimit\x12\x33\n\x0ewebhook_config\x18\x0f \x01(\x0b\x32\x1b.modal.client.WebhookConfig\x12=\n\x14shared_volume_mounts\x18\x10 \x03(\x0b\x32\x1f.modal.client.SharedVolumeMount\x12\x15\n\x08proxy_id\x18\x11 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x0cretry_policy\x18\x12 \x01(\x0b\x32!.modal.client.FunctionRetryPolicy\x12\x19\n\x11\x63oncurrency_limit\x18\x13 \x01(\r\x12\x14\n\x0ctimeout_secs\x18\x15 \x01(\r\x12\'\n\x08pty_info\x18\x16 \x01(\x0b\x32\x15.modal.client.PTYInfo\x12\x18\n\x10\x63lass_serialized\x18\x17 \x01(\x0c\x12\x1e\n\x16task_idle_timeout_secs\x18\x19 \x01(\r\x12\x38\n\x0e\x63loud_provider\x18\x1a \x01(\x0e\x32\x1b.modal.client.CloudProviderH\x01\x88\x01\x01\x12\x16\n\x0ewarm_pool_size\x18\x1b \x01(\r\x12\x0f\n\x07web_url\x18\x1c \x01(\t\x12.\n\x0cweb_url_info\x18\x1d \x01(\x0b\x32\x18.modal.client.WebUrlInfo\x12\x0f\n\x07runtime\x18\x1e \x01(\t\x12\x10\n\x08\x61pp_name\x18\x1f \x01(\t\x12\x30\n\rvolume_mounts\x18! \x03(\x0b\x32\x19.modal.client.VolumeMount\x12\x1d\n\x15max_concurrent_inputs\x18\" \x01(\r\x12:\n\x12\x63ustom_domain_info\x18# \x03(\x0b\x32\x1e.modal.client.CustomDomainInfo\x12\x11\n\tworker_id\x18$ \x01(\t\x12\x15\n\rruntime_debug\x18% \x01(\x08\x12\x1b\n\x13is_builder_function\x18 \x01(\x08\x12\x18\n\x10is_auto_snapshot\x18& \x01(\x08\x12\x11\n\tis_method\x18\' \x01(\x08\x12!\n\x19is_checkpointing_function\x18( \x01(\x08\x12\x1d\n\x15\x63heckpointing_enabled\x18) \x01(\x08\x12\x30\n\ncheckpoint\x18* \x01(\x0b\x32\x1c.modal.client.CheckpointInfo\x12;\n\x13object_dependencies\x18+ \x03(\x0b\x32\x1e.modal.client.ObjectDependency\x12\x15\n\rblock_network\x18, \x01(\x08\x12\x12\n\nmax_inputs\x18. \x01(\r\x12(\n\ts3_mounts\x18/ \x03(\x0b\x32\x15.modal.client.S3Mount\x12;\n\x13\x63loud_bucket_mounts\x18\x33 \x03(\x0b\x32\x1e.modal.client.CloudBucketMount\x12\x42\n\x13scheduler_placement\x18\x32 \x01(\x0b\x32 .modal.client.SchedulerPlacementH\x02\x88\x01\x01\x12\x10\n\x08is_class\x18\x35 \x01(\x08\x12\x17\n\x0fuse_function_id\x18\x36 \x01(\t\x12\x17\n\x0fuse_method_name\x18\x37 \x01(\t\x12>\n\x14\x63lass_parameter_info\x18\x38 \x01(\x0b\x32 .modal.client.ClassParameterInfo\x12\x16\n\x0e\x62\x61tch_max_size\x18< \x01(\r\x12\x17\n\x0f\x62\x61tch_linger_ms\x18= \x01(\x04\x12\x14\n\x0ci6pn_enabled\x18> \x01(\x08\x12.\n&_experimental_concurrent_cancellations\x18? \x01(\x08\x12 \n\x18target_concurrent_inputs\x18@ \x01(\r\x12,\n$_experimental_task_templates_enabled\x18\x41 \x01(\x08\x12@\n\x1c_experimental_task_templates\x18\x42 \x03(\x0b\x32\x1a.modal.client.TaskTemplate\x12 \n\x18_experimental_group_size\x18\x43 \x01(\r\x12\x11\n\tuntrusted\x18\x44 \x01(\x08\x12\'\n\x1f_experimental_buffer_containers\x18\x45 \x01(\r\x12#\n\x16_experimental_proxy_ip\x18\x46 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x13runtime_perf_record\x18G \x01(\x08\x12(\n\x08schedule\x18H \x01(\x0b\x32\x16.modal.client.Schedule\x12\x16\n\x0esnapshot_debug\x18I \x01(\x08\x12I\n\x12method_definitions\x18J \x03(\x0b\x32-.modal.client.Function.MethodDefinitionsEntry\x12\x1e\n\x16method_definitions_set\x18K \x01(\x08\x12$\n\x1c_experimental_custom_scaling\x18L \x01(\x08\x12\x1a\n\x12\x63loud_provider_str\x18M \x01(\t\x12)\n!_experimental_enable_gpu_snapshot\x18N \x01(\x08\x12=\n\x13\x61utoscaler_settings\x18O \x01(\x0b\x32 .modal.client.AutoscalerSettings\x12\x35\n\x0f\x66unction_schema\x18P \x01(\x0b\x32\x1c.modal.client.FunctionSchema\x12M\n\x14\x65xperimental_options\x18Q \x03(\x0b\x32/.modal.client.Function.ExperimentalOptionsEntry\x12!\n\x19mount_client_dependencies\x18R \x01(\x08\x12\x1a\n\x12\x66lash_service_urls\x18S \x03(\t\x12\x1b\n\x13\x66lash_service_label\x18T \x01(\t\x12\x1b\n\x13\x65nable_gpu_snapshot\x18U \x01(\x08\x1aX\n\x16MethodDefinitionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.modal.client.MethodDefinition:\x02\x38\x01\x1a:\n\x18\x45xperimentalOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"k\n\x0e\x44\x65\x66initionType\x12\x1f\n\x1b\x44\x45\x46INITION_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x44\x45\x46INITION_TYPE_SERIALIZED\x10\x01\x12\x18\n\x14\x44\x45\x46INITION_TYPE_FILE\x10\x02\"f\n\x0c\x46unctionType\x12\x1d\n\x19\x46UNCTION_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x46UNCTION_TYPE_GENERATOR\x10\x01\x12\x1a\n\x16\x46UNCTION_TYPE_FUNCTION\x10\x02\x42\x0b\n\t_proxy_idB\x11\n\x0f_cloud_providerB\x16\n\x14_scheduler_placementB\x19\n\x17X_experimental_proxy_ipJ\x04\x08\x14\x10\x15J\x04\x08\x30\x10\x31J\x04\x08\x31\x10\x32J\x04\x08\x34\x10\x35J\x04\x08\x39\x10:J\x04\x08:\x10;J\x04\x08;\x10<\"v\n\x1a\x46unctionAsyncInvokeRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x17\n\x0fparent_input_id\x18\x02 \x01(\t\x12*\n\x05input\x18\x03 \x01(\x0b\x32\x1b.modal.client.FunctionInput\"W\n\x1b\x46unctionAsyncInvokeResponse\x12\x1e\n\x16retry_with_blob_upload\x18\x01 \x01(\x08\x12\x18\n\x10\x66unction_call_id\x18\x02 \x01(\t\"\x9e\x01\n\x19\x46unctionBindParamsRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x19\n\x11serialized_params\x18\x02 \x01(\x0c\x12\x37\n\x10\x66unction_options\x18\x03 \x01(\x0b\x32\x1d.modal.client.FunctionOptions\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\t\"v\n\x1a\x46unctionBindParamsResponse\x12\x19\n\x11\x62ound_function_id\x18\x01 \x01(\t\x12=\n\x0fhandle_metadata\x18\x02 \x01(\x0b\x32$.modal.client.FunctionHandleMetadata\"z\n\x19\x46unctionCallCallGraphInfo\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x17\n\x0fparent_input_id\x18\x02 \x01(\t\x12\x15\n\rfunction_name\x18\x03 \x01(\t\x12\x13\n\x0bmodule_name\x18\x04 \x01(\t\"}\n\x19\x46unctionCallCancelRequest\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x1c\n\x14terminate_containers\x18\x02 \x01(\x08\x12\x18\n\x0b\x66unction_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_function_id\"x\n\x1a\x46unctionCallGetDataRequest\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x12\n\nlast_index\x18\x02 \x01(\x04\x12\x1a\n\rattempt_token\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_attempt_token\"\xc3\x03\n\x10\x46unctionCallInfo\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x0b\n\x03idx\x18\x02 \x01(\x05\x12\x12\n\ncreated_at\x18\x06 \x01(\x01\x12\x14\n\x0cscheduled_at\x18\x07 \x01(\x01\x12\x37\n\x0epending_inputs\x18\x0c \x01(\x0b\x32\x1f.modal.client.InputCategoryInfo\x12\x36\n\rfailed_inputs\x18\r \x01(\x0b\x32\x1f.modal.client.InputCategoryInfo\x12\x39\n\x10succeeded_inputs\x18\x0e \x01(\x0b\x32\x1f.modal.client.InputCategoryInfo\x12\x37\n\x0etimeout_inputs\x18\x0f \x01(\x0b\x32\x1f.modal.client.InputCategoryInfo\x12\x39\n\x10\x63\x61ncelled_inputs\x18\x10 \x01(\x0b\x32\x1f.modal.client.InputCategoryInfo\x12\x14\n\x0ctotal_inputs\x18\x11 \x01(\x05J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x08\x10\tJ\x04\x08\t\x10\nJ\x04\x08\n\x10\x0bJ\x04\x08\x0b\x10\x0c\".\n\x17\x46unctionCallListRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\"R\n\x18\x46unctionCallListResponse\x12\x36\n\x0e\x66unction_calls\x18\x01 \x03(\x0b\x32\x1e.modal.client.FunctionCallInfo\"j\n\x1a\x46unctionCallPutDataRequest\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12,\n\x0b\x64\x61ta_chunks\x18\x02 \x03(\x0b\x32\x17.modal.client.DataChunkJ\x04\x08\x03\x10\x04\"\xdc\x01\n\x15\x46unctionCreateRequest\x12(\n\x08\x66unction\x18\x01 \x01(\x0b\x32\x16.modal.client.Function\x12\x14\n\x06\x61pp_id\x18\x02 \x01(\tB\x04\x80\xb5\x18\x01\x12,\n\x08schedule\x18\x06 \x01(\x0b\x32\x16.modal.client.ScheduleB\x02\x18\x01\x12\x1c\n\x14\x65xisting_function_id\x18\x07 \x01(\t\x12\x31\n\rfunction_data\x18\t \x01(\x0b\x32\x1a.modal.client.FunctionDataJ\x04\x08\x08\x10\t\"\xe8\x01\n\x16\x46unctionCreateResponse\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12 \n\x14__deprecated_web_url\x18\x02 \x01(\tB\x02\x18\x01\x12(\n\x08\x66unction\x18\x04 \x01(\x0b\x32\x16.modal.client.Function\x12=\n\x0fhandle_metadata\x18\x05 \x01(\x0b\x32$.modal.client.FunctionHandleMetadata\x12.\n\x0fserver_warnings\x18\x06 \x03(\x0b\x32\x15.modal.client.Warning\"\xa5\x0c\n\x0c\x46unctionData\x12\x13\n\x0bmodule_name\x18\x01 \x01(\t\x12\x15\n\rfunction_name\x18\x02 \x01(\t\x12:\n\rfunction_type\x18\x03 \x01(\x0e\x32#.modal.client.Function.FunctionType\x12\x16\n\x0ewarm_pool_size\x18\x04 \x01(\r\x12\x19\n\x11\x63oncurrency_limit\x18\x05 \x01(\r\x12\x1e\n\x16task_idle_timeout_secs\x18\x06 \x01(\r\x12 \n\x18_experimental_group_size\x18\x13 \x01(\r\x12\'\n\x1f_experimental_buffer_containers\x18\x16 \x01(\r\x12$\n\x1c_experimental_custom_scaling\x18\x17 \x01(\x08\x12)\n!_experimental_enable_gpu_snapshot\x18\x1e \x01(\x08\x12\x11\n\tworker_id\x18\x07 \x01(\t\x12\x14\n\x0ctimeout_secs\x18\x08 \x01(\r\x12\x0f\n\x07web_url\x18\t \x01(\t\x12.\n\x0cweb_url_info\x18\n \x01(\x0b\x32\x18.modal.client.WebUrlInfo\x12\x33\n\x0ewebhook_config\x18\x0b \x01(\x0b\x32\x1b.modal.client.WebhookConfig\x12:\n\x12\x63ustom_domain_info\x18\x0c \x03(\x0b\x32\x1e.modal.client.CustomDomainInfo\x12#\n\x16_experimental_proxy_ip\x18\x18 \x01(\tH\x00\x88\x01\x01\x12M\n\x12method_definitions\x18\x19 \x03(\x0b\x32\x31.modal.client.FunctionData.MethodDefinitionsEntry\x12\x1e\n\x16method_definitions_set\x18\x1a \x01(\x08\x12\x10\n\x08is_class\x18\r \x01(\x08\x12>\n\x14\x63lass_parameter_info\x18\x0e \x01(\x0b\x32 .modal.client.ClassParameterInfo\x12\x11\n\tis_method\x18\x0f \x01(\x08\x12\x17\n\x0fuse_function_id\x18\x10 \x01(\t\x12\x17\n\x0fuse_method_name\x18\x11 \x01(\t\x12\x43\n\x10ranked_functions\x18\x12 \x03(\x0b\x32).modal.client.FunctionData.RankedFunction\x12(\n\x08schedule\x18\x14 \x01(\x0b\x32\x16.modal.client.Schedule\x12\x11\n\tuntrusted\x18\x1b \x01(\x08\x12\x16\n\x0esnapshot_debug\x18\x1c \x01(\x08\x12\x1b\n\x13runtime_perf_record\x18\x1d \x01(\x08\x12=\n\x13\x61utoscaler_settings\x18\x1f \x01(\x0b\x32 .modal.client.AutoscalerSettings\x12\x35\n\x0f\x66unction_schema\x18 \x01(\x0b\x32\x1c.modal.client.FunctionSchema\x12Q\n\x14\x65xperimental_options\x18! \x03(\x0b\x32\x33.modal.client.FunctionData.ExperimentalOptionsEntry\x12\x1a\n\x12\x66lash_service_urls\x18\" \x03(\t\x12\x1b\n\x13\x66lash_service_label\x18# \x01(\t\x1aX\n\x16MethodDefinitionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.modal.client.MethodDefinition:\x02\x38\x01\x1aH\n\x0eRankedFunction\x12\x0c\n\x04rank\x18\x01 \x01(\r\x12(\n\x08\x66unction\x18\x02 \x01(\x0b\x32\x16.modal.client.Function\x1a:\n\x18\x45xperimentalOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x19\n\x17X_experimental_proxy_ipJ\x04\x08\x15\x10\x16\"\xab\x01\n\x10\x46unctionExtended\x12\x17\n\x0ftype_identifier\x18\x01 \x01(\r\x12\x34\n\x12\x66unction_singleton\x18\x02 \x01(\x0b\x32\x16.modal.client.FunctionH\x00\x12\x33\n\rfunction_data\x18\x03 \x01(\x0b\x32\x1a.modal.client.FunctionDataH\x00\x42\x13\n\x11\x66unction_extended\"7\n\x1b\x46unctionGetCallGraphRequest\x12\x18\n\x10\x66unction_call_id\x18\x02 \x01(\t\"\x91\x01\n\x1c\x46unctionGetCallGraphResponse\x12\x30\n\x06inputs\x18\x01 \x03(\x0b\x32 .modal.client.InputCallGraphInfo\x12?\n\x0e\x66unction_calls\x18\x02 \x03(\x0b\x32\'.modal.client.FunctionCallCallGraphInfo\"5\n\x1e\x46unctionGetCurrentStatsRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\"p\n$FunctionGetDynamicConcurrencyRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x1a\n\x12target_concurrency\x18\x02 \x01(\r\x12\x17\n\x0fmax_concurrency\x18\x03 \x01(\r\"<\n%FunctionGetDynamicConcurrencyResponse\x12\x13\n\x0b\x63oncurrency\x18\x01 \x01(\r\"\xa4\x02\n\x15\x46unctionGetInputsItem\x12\x10\n\x08input_id\x18\x01 \x01(\t\x12*\n\x05input\x18\x02 \x01(\x0b\x32\x1b.modal.client.FunctionInput\x12\x13\n\x0bkill_switch\x18\x03 \x01(\x08\x12\x18\n\x10\x66unction_call_id\x18\x05 \x01(\t\x12O\n\x1d\x66unction_call_invocation_type\x18\x06 \x01(\x0e\x32(.modal.client.FunctionCallInvocationType\x12\x13\n\x0bretry_count\x18\x07 \x01(\r\x12\x1d\n\x10\x66unction_map_idx\x18\x08 \x01(\x05H\x00\x88\x01\x01\x42\x13\n\x11_function_map_idxJ\x04\x08\x04\x10\x05\"\xb6\x01\n\x18\x46unctionGetInputsRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x12\n\nmax_values\x18\x03 \x01(\x05\x12\x19\n\x11\x61verage_call_time\x18\x05 \x01(\x02\x12\x19\n\x11input_concurrency\x18\x06 \x01(\x05\x12\x16\n\x0e\x62\x61tch_max_size\x18\x0b \x01(\r\x12\x17\n\x0f\x62\x61tch_linger_ms\x18\x0c \x01(\x04J\x04\x08\t\x10\nJ\x04\x08\n\x10\x0b\"s\n\x19\x46unctionGetInputsResponse\x12\x33\n\x06inputs\x18\x03 \x03(\x0b\x32#.modal.client.FunctionGetInputsItem\x12!\n\x19rate_limit_sleep_duration\x18\x04 \x01(\x02\"\x84\x02\n\x16\x46unctionGetOutputsItem\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\x12\x0b\n\x03idx\x18\x02 \x01(\x05\x12\x10\n\x08input_id\x18\x03 \x01(\t\x12-\n\x0b\x64\x61ta_format\x18\x05 \x01(\x0e\x32\x18.modal.client.DataFormat\x12\x0f\n\x07task_id\x18\x06 \x01(\t\x12\x18\n\x10input_started_at\x18\x07 \x01(\x01\x12\x19\n\x11output_created_at\x18\x08 \x01(\x01\x12\x13\n\x0bretry_count\x18\t \x01(\r\x12\x14\n\x0c\x66\x63_trace_tag\x18\n \x01(\t\"\xdb\x01\n\x19\x46unctionGetOutputsRequest\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x12\n\nmax_values\x18\x02 \x01(\x05\x12\x0f\n\x07timeout\x18\x03 \x01(\x02\x12\x15\n\rlast_entry_id\x18\x06 \x01(\t\x12\x18\n\x10\x63lear_on_success\x18\x07 \x01(\x08\x12\x14\n\x0crequested_at\x18\x08 \x01(\x01\x12\x12\n\ninput_jwts\x18\t \x03(\t\x12\x16\n\tstart_idx\x18\n \x01(\x05H\x00\x88\x01\x01\x42\x0c\n\n_start_idx\"\x97\x01\n\x1a\x46unctionGetOutputsResponse\x12\x0c\n\x04idxs\x18\x03 \x03(\x05\x12\x35\n\x07outputs\x18\x04 \x03(\x0b\x32$.modal.client.FunctionGetOutputsItem\x12\x15\n\rlast_entry_id\x18\x05 \x01(\t\x12\x1d\n\x15num_unfinished_inputs\x18\x06 \x01(\x05\"Z\n\x12\x46unctionGetRequest\x12\x10\n\x08\x61pp_name\x18\x01 \x01(\t\x12\x12\n\nobject_tag\x18\x02 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\tJ\x04\x08\x03\x10\x04\"\x99\x01\n\x13\x46unctionGetResponse\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12=\n\x0fhandle_metadata\x18\x02 \x01(\x0b\x32$.modal.client.FunctionHandleMetadata\x12.\n\x0fserver_warnings\x18\x04 \x03(\x0b\x32\x15.modal.client.Warning\"3\n\x1c\x46unctionGetSerializedRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\"V\n\x1d\x46unctionGetSerializedResponse\x12\x1b\n\x13\x66unction_serialized\x18\x01 \x01(\x0c\x12\x18\n\x10\x63lass_serialized\x18\x02 \x01(\x0c\"\xba\x05\n\x16\x46unctionHandleMetadata\x12\x15\n\rfunction_name\x18\x02 \x01(\t\x12:\n\rfunction_type\x18\x08 \x01(\x0e\x32#.modal.client.Function.FunctionType\x12\x0f\n\x07web_url\x18\x1c \x01(\t\x12\x11\n\tis_method\x18\' \x01(\x08\x12\x17\n\x0fuse_function_id\x18( \x01(\t\x12\x17\n\x0fuse_method_name\x18) \x01(\t\x12\x15\n\rdefinition_id\x18* \x01(\t\x12>\n\x14\x63lass_parameter_info\x18+ \x01(\x0b\x32 .modal.client.ClassParameterInfo\x12^\n\x16method_handle_metadata\x18, \x03(\x0b\x32>.modal.client.FunctionHandleMetadata.MethodHandleMetadataEntry\x12\x35\n\x0f\x66unction_schema\x18- \x01(\x0b\x32\x1c.modal.client.FunctionSchema\x12\x1c\n\x0finput_plane_url\x18. \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12input_plane_region\x18/ \x01(\tH\x01\x88\x01\x01\x12\"\n\x15max_object_size_bytes\x18\x30 \x01(\x04H\x02\x88\x01\x01\x1a\x61\n\x19MethodHandleMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x33\n\x05value\x18\x02 \x01(\x0b\x32$.modal.client.FunctionHandleMetadata:\x02\x38\x01\x42\x12\n\x10_input_plane_urlB\x15\n\x13_input_plane_regionB\x18\n\x16_max_object_size_bytes\"\xb3\x01\n\rFunctionInput\x12\x0e\n\x04\x61rgs\x18\x01 \x01(\x0cH\x00\x12\x16\n\x0c\x61rgs_blob_id\x18\x07 \x01(\tH\x00\x12\x13\n\x0b\x66inal_input\x18\t \x01(\x08\x12-\n\x0b\x64\x61ta_format\x18\n \x01(\x0e\x32\x18.modal.client.DataFormat\x12\x18\n\x0bmethod_name\x18\x0b \x01(\tH\x01\x88\x01\x01\x42\x0c\n\nargs_oneofB\x0e\n\x0c_method_name\"\xc1\x02\n\x12\x46unctionMapRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x17\n\x0fparent_input_id\x18\x02 \x01(\t\x12\x19\n\x11return_exceptions\x18\x03 \x01(\x08\x12:\n\x12\x66unction_call_type\x18\x04 \x01(\x0e\x32\x1e.modal.client.FunctionCallType\x12=\n\x10pipelined_inputs\x18\x05 \x03(\x0b\x32#.modal.client.FunctionPutInputsItem\x12O\n\x1d\x66unction_call_invocation_type\x18\x06 \x01(\x0e\x32(.modal.client.FunctionCallInvocationType\x12\x16\n\x0e\x66rom_spawn_map\x18\x07 \x01(\x08\"\x8f\x02\n\x13\x46unctionMapResponse\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x45\n\x10pipelined_inputs\x18\x02 \x03(\x0b\x32+.modal.client.FunctionPutInputsResponseItem\x12\x37\n\x0cretry_policy\x18\x03 \x01(\x0b\x32!.modal.client.FunctionRetryPolicy\x12\x19\n\x11\x66unction_call_jwt\x18\x04 \x01(\t\x12#\n\x1bsync_client_retries_enabled\x18\x05 \x01(\x08\x12\x1e\n\x16max_inputs_outstanding\x18\x06 \x01(\r\"\x9f\x06\n\x0f\x46unctionOptions\x12\x12\n\nsecret_ids\x18\x01 \x03(\t\x12\x11\n\tmount_ids\x18\x02 \x03(\t\x12/\n\tresources\x18\x03 \x01(\x0b\x32\x17.modal.client.ResourcesH\x00\x88\x01\x01\x12<\n\x0cretry_policy\x18\x04 \x01(\x0b\x32!.modal.client.FunctionRetryPolicyH\x01\x88\x01\x01\x12\x1e\n\x11\x63oncurrency_limit\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0ctimeout_secs\x18\x06 \x01(\rH\x03\x88\x01\x01\x12#\n\x16task_idle_timeout_secs\x18\x07 \x01(\rH\x04\x88\x01\x01\x12\x1b\n\x0ewarm_pool_size\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x30\n\rvolume_mounts\x18\t \x03(\x0b\x32\x19.modal.client.VolumeMount\x12%\n\x18target_concurrent_inputs\x18\n \x01(\rH\x06\x88\x01\x01\x12\x1d\n\x15replace_volume_mounts\x18\x0b \x01(\x08\x12\x1a\n\x12replace_secret_ids\x18\x0c \x01(\x08\x12\x1e\n\x11\x62uffer_containers\x18\r \x01(\rH\x07\x88\x01\x01\x12\"\n\x15max_concurrent_inputs\x18\x0e \x01(\rH\x08\x88\x01\x01\x12\x1b\n\x0e\x62\x61tch_max_size\x18\x0f \x01(\rH\t\x88\x01\x01\x12\x1c\n\x0f\x62\x61tch_linger_ms\x18\x10 \x01(\x04H\n\x88\x01\x01\x42\x0c\n\n_resourcesB\x0f\n\r_retry_policyB\x14\n\x12_concurrency_limitB\x0f\n\r_timeout_secsB\x19\n\x17_task_idle_timeout_secsB\x11\n\x0f_warm_pool_sizeB\x1b\n\x19_target_concurrent_inputsB\x14\n\x12_buffer_containersB\x18\n\x16_max_concurrent_inputsB\x11\n\x0f_batch_max_sizeB\x12\n\x10_batch_linger_ms\"\xf4\x03\n\x18\x46unctionPrecreateRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x1b\n\rfunction_name\x18\x02 \x01(\tB\x04\x80\xb5\x18\x01\x12\x1c\n\x14\x65xisting_function_id\x18\x03 \x01(\t\x12:\n\rfunction_type\x18\x04 \x01(\x0e\x32#.modal.client.Function.FunctionType\x12\x33\n\x0ewebhook_config\x18\x05 \x01(\x0b\x32\x1b.modal.client.WebhookConfig\x12\x17\n\x0fuse_function_id\x18\x06 \x01(\t\x12\x17\n\x0fuse_method_name\x18\x07 \x01(\t\x12Y\n\x12method_definitions\x18\x08 \x03(\x0b\x32=.modal.client.FunctionPrecreateRequest.MethodDefinitionsEntry\x12\x35\n\x0f\x66unction_schema\x18\t \x01(\x0b\x32\x1c.modal.client.FunctionSchema\x1aX\n\x16MethodDefinitionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.modal.client.MethodDefinition:\x02\x38\x01\"o\n\x19\x46unctionPrecreateResponse\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12=\n\x0fhandle_metadata\x18\x02 \x01(\x0b\x32$.modal.client.FunctionHandleMetadata\"\x88\x01\n\x15\x46unctionPutInputsItem\x12\x0b\n\x03idx\x18\x01 \x01(\x05\x12*\n\x05input\x18\x02 \x01(\x0b\x32\x1b.modal.client.FunctionInput\x12\x11\n\tr2_failed\x18\x03 \x01(\x08\x12\x1d\n\x15r2_throughput_bytes_s\x18\x05 \x01(\x04J\x04\x08\x04\x10\x05\"~\n\x18\x46unctionPutInputsRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x18\n\x10\x66unction_call_id\x18\x03 \x01(\t\x12\x33\n\x06inputs\x18\x04 \x03(\x0b\x32#.modal.client.FunctionPutInputsItem\"X\n\x19\x46unctionPutInputsResponse\x12;\n\x06inputs\x18\x01 \x03(\x0b\x32+.modal.client.FunctionPutInputsResponseItem\"Q\n\x1d\x46unctionPutInputsResponseItem\x12\x0b\n\x03idx\x18\x01 \x01(\x05\x12\x10\n\x08input_id\x18\x02 \x01(\t\x12\x11\n\tinput_jwt\x18\x03 \x01(\t\"\x9e\x02\n\x16\x46unctionPutOutputsItem\x12\x10\n\x08input_id\x18\x01 \x01(\t\x12+\n\x06result\x18\x02 \x01(\x0b\x32\x1b.modal.client.GenericResult\x12\x18\n\x10input_started_at\x18\x03 \x01(\x01\x12\x19\n\x11output_created_at\x18\x04 \x01(\x01\x12-\n\x0b\x64\x61ta_format\x18\x07 \x01(\x0e\x32\x18.modal.client.DataFormat\x12\x13\n\x0bretry_count\x18\x08 \x01(\r\x12\x18\n\x10\x66unction_call_id\x18\t \x01(\t\x12\x1d\n\x10\x66unction_map_idx\x18\n \x01(\x05H\x00\x88\x01\x01\x42\x13\n\x11_function_map_idx\"h\n\x19\x46unctionPutOutputsRequest\x12\x35\n\x07outputs\x18\x04 \x03(\x0b\x32$.modal.client.FunctionPutOutputsItem\x12\x14\n\x0crequested_at\x18\x05 \x01(\x01\"m\n\x17\x46unctionRetryInputsItem\x12\x11\n\tinput_jwt\x18\x01 \x01(\t\x12*\n\x05input\x18\x02 \x01(\x0b\x32\x1b.modal.client.FunctionInput\x12\x13\n\x0bretry_count\x18\x03 \x01(\r\"n\n\x1a\x46unctionRetryInputsRequest\x12\x19\n\x11\x66unction_call_jwt\x18\x01 \x01(\t\x12\x35\n\x06inputs\x18\x02 \x03(\x0b\x32%.modal.client.FunctionRetryInputsItem\"1\n\x1b\x46unctionRetryInputsResponse\x12\x12\n\ninput_jwts\x18\x01 \x03(\t\"s\n\x13\x46unctionRetryPolicy\x12\x1b\n\x13\x62\x61\x63koff_coefficient\x18\x01 \x01(\x02\x12\x18\n\x10initial_delay_ms\x18\x02 \x01(\r\x12\x14\n\x0cmax_delay_ms\x18\x03 \x01(\r\x12\x0f\n\x07retries\x18\x12 \x01(\r\"\x91\x02\n\x0e\x46unctionSchema\x12\x44\n\x0bschema_type\x18\x01 \x01(\x0e\x32/.modal.client.FunctionSchema.FunctionSchemaType\x12\x33\n\targuments\x18\x02 \x03(\x0b\x32 .modal.client.ClassParameterSpec\x12\x35\n\x0breturn_type\x18\x03 \x01(\x0b\x32 .modal.client.GenericPayloadType\"M\n\x12\x46unctionSchemaType\x12\x1f\n\x1b\x46UNCTION_SCHEMA_UNSPECIFIED\x10\x00\x12\x16\n\x12\x46UNCTION_SCHEMA_V1\x10\x01\"9\n\rFunctionStats\x12\x0f\n\x07\x62\x61\x63klog\x18\x01 \x01(\r\x12\x17\n\x0fnum_total_tasks\x18\x03 \x01(\r\"\x91\x01\n%FunctionUpdateSchedulingParamsRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x1f\n\x17warm_pool_size_override\x18\x02 \x01(\r\x12\x32\n\x08settings\x18\x03 \x01(\x0b\x32 .modal.client.AutoscalerSettings\"(\n&FunctionUpdateSchedulingParamsResponse\"Q\n\tGPUConfig\x12#\n\x04type\x18\x01 \x01(\x0e\x32\x15.modal.client.GPUType\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x12\x10\n\x08gpu_type\x18\x04 \x01(\t\"$\n\rGeneratorDone\x12\x13\n\x0bitems_total\x18\x01 \x01(\x04\"y\n\x12GenericPayloadType\x12.\n\tbase_type\x18\x01 \x01(\x0e\x32\x1b.modal.client.ParameterType\x12\x33\n\tsub_types\x18\x02 \x03(\x0b\x32 .modal.client.GenericPayloadType\"\xed\x03\n\rGenericResult\x12\x39\n\x06status\x18\x01 \x01(\x0e\x32).modal.client.GenericResult.GenericStatus\x12\x11\n\texception\x18\x02 \x01(\t\x12\x10\n\x08\x65xitcode\x18\x03 \x01(\x05\x12\x11\n\ttraceback\x18\x04 \x01(\t\x12\x15\n\rserialized_tb\x18\x0b \x01(\x0c\x12\x15\n\rtb_line_cache\x18\x0c \x01(\x0c\x12\x0e\n\x04\x64\x61ta\x18\x05 \x01(\x0cH\x00\x12\x16\n\x0c\x64\x61ta_blob_id\x18\n \x01(\tH\x00\x12\x1a\n\x12propagation_reason\x18\r \x01(\t\"\xe8\x01\n\rGenericStatus\x12\x1e\n\x1aGENERIC_STATUS_UNSPECIFIED\x10\x00\x12\x1a\n\x16GENERIC_STATUS_SUCCESS\x10\x01\x12\x1a\n\x16GENERIC_STATUS_FAILURE\x10\x02\x12\x1d\n\x19GENERIC_STATUS_TERMINATED\x10\x03\x12\x1a\n\x16GENERIC_STATUS_TIMEOUT\x10\x04\x12\x1f\n\x1bGENERIC_STATUS_INIT_FAILURE\x10\x05\x12#\n\x1fGENERIC_STATUS_INTERNAL_FAILURE\x10\x06\x42\x0c\n\ndata_oneof\"\xba\x04\n\x05Image\x12,\n\x0b\x62\x61se_images\x18\x05 \x03(\x0b\x32\x17.modal.client.BaseImage\x12\x1b\n\x13\x64ockerfile_commands\x18\x06 \x03(\t\x12\x35\n\rcontext_files\x18\x07 \x03(\x0b\x32\x1e.modal.client.ImageContextFile\x12\x0f\n\x07version\x18\x0b \x01(\t\x12\x12\n\nsecret_ids\x18\x0c \x03(\t\x12\x18\n\x10\x63ontext_mount_id\x18\x0f \x01(\t\x12+\n\ngpu_config\x18\x10 \x01(\x0b\x32\x17.modal.client.GPUConfig\x12@\n\x15image_registry_config\x18\x11 \x01(\x0b\x32!.modal.client.ImageRegistryConfig\x12\x1a\n\x12\x62uild_function_def\x18\x0e \x01(\t\x12\x1e\n\x16\x62uild_function_globals\x18\x12 \x01(\x0c\x12\x0f\n\x07runtime\x18\x13 \x01(\t\x12\x15\n\rruntime_debug\x18\x14 \x01(\x08\x12\x33\n\x0e\x62uild_function\x18\x15 \x01(\x0b\x32\x1b.modal.client.BuildFunction\x12\x36\n\nbuild_args\x18\x16 \x03(\x0b\x32\".modal.client.Image.BuildArgsEntry\x1a\x30\n\x0e\x42uildArgsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"2\n\x10ImageContextFile\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"&\n\x12ImageFromIdRequest\x12\x10\n\x08image_id\x18\x01 \x01(\t\"V\n\x13ImageFromIdResponse\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12-\n\x08metadata\x18\x02 \x01(\x0b\x32\x1b.modal.client.ImageMetadata\"\xa4\x02\n\x17ImageGetOrCreateRequest\x12\"\n\x05image\x18\x02 \x01(\x0b\x32\x13.modal.client.Image\x12\x14\n\x06\x61pp_id\x18\x04 \x01(\tB\x04\x80\xb5\x18\x01\x12\x19\n\x11\x65xisting_image_id\x18\x05 \x01(\t\x12\x19\n\x11\x62uild_function_id\x18\x06 \x01(\t\x12\x13\n\x0b\x66orce_build\x18\x07 \x01(\x08\x12\x34\n\tnamespace\x18\x08 \x01(\x0e\x32!.modal.client.DeploymentNamespace\x12\x17\n\x0f\x62uilder_version\x18\t \x01(\t\x12\x1f\n\x17\x61llow_global_deployment\x18\n \x01(\x08\x12\x14\n\x0cignore_cache\x18\x0b \x01(\x08\"\x88\x01\n\x18ImageGetOrCreateResponse\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12+\n\x06result\x18\x02 \x01(\x0b\x32\x1b.modal.client.GenericResult\x12-\n\x08metadata\x18\x03 \x01(\x0b\x32\x1b.modal.client.ImageMetadata\"x\n\x19ImageJoinStreamingRequest\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\x12\x15\n\rlast_entry_id\x18\x03 \x01(\t\x12!\n\x19include_logs_for_finished\x18\x04 \x01(\x08\"\xc2\x01\n\x1aImageJoinStreamingResponse\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\x12)\n\ttask_logs\x18\x02 \x03(\x0b\x32\x16.modal.client.TaskLogs\x12\x10\n\x08\x65ntry_id\x18\x03 \x01(\t\x12\x0b\n\x03\x65of\x18\x04 \x01(\x08\x12-\n\x08metadata\x18\x05 \x01(\x0b\x32\x1b.modal.client.ImageMetadata\"\xe0\x02\n\rImageMetadata\x12 \n\x13python_version_info\x18\x01 \x01(\tH\x00\x88\x01\x01\x12H\n\x0fpython_packages\x18\x02 \x03(\x0b\x32/.modal.client.ImageMetadata.PythonPackagesEntry\x12\x14\n\x07workdir\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x11libc_version_info\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15image_builder_version\x18\x05 \x01(\tH\x03\x88\x01\x01\x1a\x35\n\x13PythonPackagesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x16\n\x14_python_version_infoB\n\n\x08_workdirB\x14\n\x12_libc_version_infoB\x18\n\x16_image_builder_version\"d\n\x13ImageRegistryConfig\x12:\n\x12registry_auth_type\x18\x01 \x01(\x0e\x32\x1e.modal.client.RegistryAuthType\x12\x11\n\tsecret_id\x18\x02 \x01(\t\"\x8c\x01\n\x12InputCallGraphInfo\x12\x10\n\x08input_id\x18\x01 \x01(\t\x12\x39\n\x06status\x18\x02 \x01(\x0e\x32).modal.client.GenericResult.GenericStatus\x12\x18\n\x10\x66unction_call_id\x18\x03 \x01(\t\x12\x0f\n\x07task_id\x18\x04 \x01(\t\"K\n\x11InputCategoryInfo\x12\r\n\x05total\x18\x01 \x01(\x05\x12\'\n\x06latest\x18\x02 \x03(\x0b\x32\x17.modal.client.InputInfo\"\x99\x01\n\tInputInfo\x12\x10\n\x08input_id\x18\x01 \x01(\t\x12\x0b\n\x03idx\x18\x02 \x01(\x05\x12\x0f\n\x07task_id\x18\x03 \x01(\t\x12\x12\n\nstarted_at\x18\x04 \x01(\x01\x12\x13\n\x0b\x66inished_at\x18\x05 \x01(\x01\x12\x19\n\x11task_startup_time\x18\x06 \x01(\x01\x12\x18\n\x10task_first_input\x18\x07 \x01(\x08\"i\n\x0fMapAwaitRequest\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x15\n\rlast_entry_id\x18\x02 \x01(\t\x12\x14\n\x0crequested_at\x18\x03 \x01(\x01\x12\x0f\n\x07timeout\x18\x04 \x01(\x02\"`\n\x10MapAwaitResponse\x12\x35\n\x07outputs\x18\x01 \x03(\x0b\x32$.modal.client.FunctionGetOutputsItem\x12\x15\n\rlast_entry_id\x18\x02 \x01(\t\"z\n\x16MapStartOrContinueItem\x12\x32\n\x05input\x18\x01 \x01(\x0b\x32#.modal.client.FunctionPutInputsItem\x12\x1a\n\rattempt_token\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_attempt_token\"\xb2\x01\n\x19MapStartOrContinueRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x17\n\x0fparent_input_id\x18\x02 \x01(\t\x12\x1d\n\x10\x66unction_call_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x33\n\x05items\x18\x04 \x03(\x0b\x32$.modal.client.MapStartOrContinueItemB\x13\n\x11_function_call_id\"\xbc\x01\n\x1aMapStartOrContinueResponse\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x18\n\x10\x66unction_call_id\x18\x02 \x01(\t\x12\x1e\n\x16max_inputs_outstanding\x18\x03 \x01(\r\x12\x16\n\x0e\x61ttempt_tokens\x18\x04 \x03(\t\x12\x37\n\x0cretry_policy\x18\x05 \x01(\x0b\x32!.modal.client.FunctionRetryPolicy\"\xce\x02\n\x10MethodDefinition\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12:\n\rfunction_type\x18\x02 \x01(\x0e\x32#.modal.client.Function.FunctionType\x12\x33\n\x0ewebhook_config\x18\x03 \x01(\x0b\x32\x1b.modal.client.WebhookConfig\x12\x0f\n\x07web_url\x18\x04 \x01(\t\x12.\n\x0cweb_url_info\x18\x05 \x01(\x0b\x32\x18.modal.client.WebUrlInfo\x12:\n\x12\x63ustom_domain_info\x18\x06 \x03(\x0b\x32\x1e.modal.client.CustomDomainInfo\x12\x35\n\x0f\x66unction_schema\x18\x07 \x01(\x0b\x32\x1c.modal.client.FunctionSchema\"i\n\tMountFile\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x12\n\nsha256_hex\x18\x03 \x01(\t\x12\x11\n\x04size\x18\x04 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\x04mode\x18\x05 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_sizeB\x07\n\x05_mode\"\xfa\x01\n\x17MountGetOrCreateRequest\x12\x17\n\x0f\x64\x65ployment_name\x18\x01 \x01(\t\x12\x34\n\tnamespace\x18\x02 \x01(\x0e\x32!.modal.client.DeploymentNamespace\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12>\n\x14object_creation_type\x18\x04 \x01(\x0e\x32 .modal.client.ObjectCreationType\x12&\n\x05\x66iles\x18\x05 \x03(\x0b\x32\x17.modal.client.MountFile\x12\x0e\n\x06\x61pp_id\x18\x06 \x01(\t\"h\n\x18MountGetOrCreateResponse\x12\x10\n\x08mount_id\x18\x01 \x01(\t\x12:\n\x0fhandle_metadata\x18\x02 \x01(\x0b\x32!.modal.client.MountHandleMetadata\":\n\x13MountHandleMetadata\x12#\n\x1b\x63ontent_checksum_sha256_hex\x18\x01 \x01(\t\"_\n\x13MountPutFileRequest\x12\x12\n\nsha256_hex\x18\x02 \x01(\t\x12\x0e\n\x04\x64\x61ta\x18\x03 \x01(\x0cH\x00\x12\x16\n\x0c\x64\x61ta_blob_id\x18\x05 \x01(\tH\x00\x42\x0c\n\ndata_oneof\"&\n\x14MountPutFileResponse\x12\x0e\n\x06\x65xists\x18\x02 \x01(\x08\"S\n\x0fMultiPartUpload\x12\x13\n\x0bpart_length\x18\x01 \x01(\x03\x12\x13\n\x0bupload_urls\x18\x02 \x03(\t\x12\x16\n\x0e\x63ompletion_url\x18\x03 \x01(\t\"C\n\x13MultiPartUploadList\x12,\n\x05items\x18\x01 \x03(\x0b\x32\x1d.modal.client.MultiPartUpload\"\xbe\x01\n\rNetworkAccess\x12J\n\x13network_access_type\x18\x01 \x01(\x0e\x32-.modal.client.NetworkAccess.NetworkAccessType\x12\x15\n\rallowed_cidrs\x18\x02 \x03(\t\"J\n\x11NetworkAccessType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x08\n\x04OPEN\x10\x01\x12\x0b\n\x07\x42LOCKED\x10\x02\x12\r\n\tALLOWLIST\x10\x03\"\xa4\x03\n#NotebookKernelPublishResultsRequest\x12\x13\n\x0bnotebook_id\x18\x01 \x01(\t\x12M\n\x07results\x18\x02 \x03(\x0b\x32<.modal.client.NotebookKernelPublishResultsRequest.CellResult\x1aI\n\x0c\x45xecuteReply\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x17\n\x0f\x65xecution_count\x18\x02 \x01(\r\x12\x10\n\x08\x64uration\x18\x03 \x01(\x01\x1a\xcd\x01\n\nCellResult\x12\x0f\n\x07\x63\x65ll_id\x18\x01 \x01(\t\x12.\n\x06output\x18\x02 \x01(\x0b\x32\x1c.modal.client.NotebookOutputH\x00\x12\x16\n\x0c\x63lear_output\x18\x03 \x01(\x08H\x00\x12W\n\rexecute_reply\x18\x04 \x01(\x0b\x32>.modal.client.NotebookKernelPublishResultsRequest.ExecuteReplyH\x00\x42\r\n\x0bresult_type\"\x8e\x05\n\x0eNotebookOutput\x12\x44\n\x0e\x65xecute_result\x18\x01 \x01(\x0b\x32*.modal.client.NotebookOutput.ExecuteResultH\x00\x12@\n\x0c\x64isplay_data\x18\x02 \x01(\x0b\x32(.modal.client.NotebookOutput.DisplayDataH\x00\x12\x35\n\x06stream\x18\x03 \x01(\x0b\x32#.modal.client.NotebookOutput.StreamH\x00\x12\x33\n\x05\x65rror\x18\x04 \x01(\x0b\x32\".modal.client.NotebookOutput.ErrorH\x00\x1az\n\rExecuteResult\x12\x17\n\x0f\x65xecution_count\x18\x01 \x01(\r\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12)\n\x08metadata\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x1a\x9b\x01\n\x0b\x44isplayData\x12%\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x17.google.protobuf.Struct\x12)\n\x08metadata\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12!\n\x14transient_display_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x17\n\x15_transient_display_id\x1a$\n\x06Stream\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x1a\x39\n\x05\x45rror\x12\r\n\x05\x65name\x18\x01 \x01(\t\x12\x0e\n\x06\x65value\x18\x02 \x01(\t\x12\x11\n\ttraceback\x18\x03 \x03(\tB\r\n\x0boutput_type\"\x87\x03\n\x06Object\x12\x11\n\tobject_id\x18\x01 \x01(\t\x12H\n\x18\x66unction_handle_metadata\x18\x03 \x01(\x0b\x32$.modal.client.FunctionHandleMetadataH\x00\x12\x42\n\x15mount_handle_metadata\x18\x04 \x01(\x0b\x32!.modal.client.MountHandleMetadataH\x00\x12\x42\n\x15\x63lass_handle_metadata\x18\x05 \x01(\x0b\x32!.modal.client.ClassHandleMetadataH\x00\x12\x46\n\x17sandbox_handle_metadata\x18\x06 \x01(\x0b\x32#.modal.client.SandboxHandleMetadataH\x00\x12\x37\n\x0fvolume_metadata\x18\x07 \x01(\x0b\x32\x1c.modal.client.VolumeMetadataH\x00\x42\x17\n\x15handle_metadata_oneof\"%\n\x10ObjectDependency\x12\x11\n\tobject_id\x18\x01 \x01(\t\"\x86\x02\n\x07PTYInfo\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x12\n\nwinsz_rows\x18\x02 \x01(\r\x12\x12\n\nwinsz_cols\x18\x03 \x01(\r\x12\x10\n\x08\x65nv_term\x18\x04 \x01(\t\x12\x15\n\renv_colorterm\x18\x05 \x01(\t\x12\x18\n\x10\x65nv_term_program\x18\x06 \x01(\t\x12/\n\x08pty_type\x18\x07 \x01(\x0e\x32\x1d.modal.client.PTYInfo.PTYType\"N\n\x07PTYType\x12\x18\n\x14PTY_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11PTY_TYPE_FUNCTION\x10\x01\x12\x12\n\x0ePTY_TYPE_SHELL\x10\x02\"q\n\x08PortSpec\x12\x0c\n\x04port\x18\x01 \x01(\r\x12\x13\n\x0bunencrypted\x18\x02 \x01(\x08\x12\x32\n\x0btunnel_type\x18\x03 \x01(\x0e\x32\x18.modal.client.TunnelTypeH\x00\x88\x01\x01\x42\x0e\n\x0c_tunnel_type\"2\n\tPortSpecs\x12%\n\x05ports\x18\x01 \x03(\x0b\x32\x16.modal.client.PortSpec\"\x7f\n\x05Proxy\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\ncreated_at\x18\x02 \x01(\x01\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12\x10\n\x08proxy_id\x18\x05 \x01(\t\x12(\n\tproxy_ips\x18\x04 \x03(\x0b\x32\x15.modal.client.ProxyIp\"+\n\x11ProxyAddIpRequest\x12\x16\n\x08proxy_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"=\n\x12ProxyAddIpResponse\x12\'\n\x08proxy_ip\x18\x01 \x01(\x0b\x32\x15.modal.client.ProxyIp\"B\n\x12ProxyCreateRequest\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x18\n\x10\x65nvironment_name\x18\x02 \x01(\t\"9\n\x13ProxyCreateResponse\x12\"\n\x05proxy\x18\x01 \x01(\x0b\x32\x13.modal.client.Proxy\",\n\x12ProxyDeleteRequest\x12\x16\n\x08proxy_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"\x98\x01\n\x17ProxyGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12>\n\x14object_creation_type\x18\x04 \x01(\x0e\x32 .modal.client.ObjectCreationTypeJ\x04\x08\x02\x10\x03\",\n\x18ProxyGetOrCreateResponse\x12\x10\n\x08proxy_id\x18\x01 \x01(\t\"?\n\x0fProxyGetRequest\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x18\n\x10\x65nvironment_name\x18\x02 \x01(\t\"6\n\x10ProxyGetResponse\x12\"\n\x05proxy\x18\x01 \x01(\x0b\x32\x13.modal.client.Proxy\"\x89\x01\n\tProxyInfo\x12\x12\n\nelastic_ip\x18\x01 \x01(\t\x12\x11\n\tproxy_key\x18\x02 \x01(\t\x12\x13\n\x0bremote_addr\x18\x03 \x01(\t\x12\x13\n\x0bremote_port\x18\x04 \x01(\x05\x12+\n\nproxy_type\x18\x05 \x01(\x0e\x32\x17.modal.client.ProxyType\"v\n\x07ProxyIp\x12\x10\n\x08proxy_ip\x18\x01 \x01(\t\x12+\n\x06status\x18\x02 \x01(\x0e\x32\x1b.modal.client.ProxyIpStatus\x12\x12\n\ncreated_at\x18\x03 \x01(\x01\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\t\"9\n\x11ProxyListResponse\x12$\n\x07proxies\x18\x01 \x03(\x0b\x32\x13.modal.client.Proxy\".\n\x14ProxyRemoveIpRequest\x12\x16\n\x08proxy_ip\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"T\n\x11QueueClearRequest\x12\x10\n\x08queue_id\x18\x01 \x01(\t\x12\x15\n\rpartition_key\x18\x02 \x01(\x0c\x12\x16\n\x0e\x61ll_partitions\x18\x03 \x01(\x08\",\n\x12QueueDeleteRequest\x12\x16\n\x08queue_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"\x92\x01\n\x17QueueGetOrCreateRequest\x12\x17\n\x0f\x64\x65ployment_name\x18\x01 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12>\n\x14object_creation_type\x18\x04 \x01(\x0e\x32 .modal.client.ObjectCreationTypeJ\x04\x08\x02\x10\x03\"[\n\x18QueueGetOrCreateResponse\x12\x10\n\x08queue_id\x18\x01 \x01(\t\x12-\n\x08metadata\x18\x02 \x01(\x0b\x32\x1b.modal.client.QueueMetadata\"]\n\x0fQueueGetRequest\x12\x10\n\x08queue_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x03 \x01(\x02\x12\x10\n\x08n_values\x18\x04 \x01(\x05\x12\x15\n\rpartition_key\x18\x05 \x01(\x0c\"\"\n\x10QueueGetResponse\x12\x0e\n\x06values\x18\x02 \x03(\x0c\")\n\x15QueueHeartbeatRequest\x12\x10\n\x08queue_id\x18\x01 \x01(\t\",\n\tQueueItem\x12\r\n\x05value\x18\x01 \x01(\x0c\x12\x10\n\x08\x65ntry_id\x18\x02 \x01(\t\"I\n\x0fQueueLenRequest\x12\x10\n\x08queue_id\x18\x01 \x01(\t\x12\x15\n\rpartition_key\x18\x02 \x01(\x0c\x12\r\n\x05total\x18\x03 \x01(\x08\"\x1f\n\x10QueueLenResponse\x12\x0b\n\x03len\x18\x01 \x01(\x05\"F\n\x10QueueListRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\x12\x18\n\x10total_size_limit\x18\x02 \x01(\x05\"\xa9\x01\n\x11QueueListResponse\x12\x39\n\x06queues\x18\x01 \x03(\x0b\x32).modal.client.QueueListResponse.QueueInfo\x1aY\n\tQueueInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\ncreated_at\x18\x02 \x01(\x01\x12\x16\n\x0enum_partitions\x18\x03 \x01(\x05\x12\x12\n\ntotal_size\x18\x04 \x01(\x05\"P\n\rQueueMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x31\n\rcreation_info\x18\x02 \x01(\x0b\x32\x1a.modal.client.CreationInfo\"r\n\x15QueueNextItemsRequest\x12\x10\n\x08queue_id\x18\x01 \x01(\t\x12\x15\n\rpartition_key\x18\x02 \x01(\x0c\x12\x15\n\rlast_entry_id\x18\x03 \x01(\t\x12\x19\n\x11item_poll_timeout\x18\x04 \x01(\x02\"@\n\x16QueueNextItemsResponse\x12&\n\x05items\x18\x01 \x03(\x0b\x32\x17.modal.client.QueueItem\"i\n\x0fQueuePutRequest\x12\x10\n\x08queue_id\x18\x01 \x01(\t\x12\x0e\n\x06values\x18\x04 \x03(\x0c\x12\x15\n\rpartition_key\x18\x05 \x01(\x0c\x12\x1d\n\x15partition_ttl_seconds\x18\x06 \x01(\x05\"M\n\tRateLimit\x12\r\n\x05limit\x18\x01 \x01(\x05\x12\x31\n\x08interval\x18\x02 \x01(\x0e\x32\x1f.modal.client.RateLimitInterval\"\xb5\x01\n\tResources\x12\x11\n\tmemory_mb\x18\x02 \x01(\r\x12\x11\n\tmilli_cpu\x18\x03 \x01(\r\x12+\n\ngpu_config\x18\x04 \x01(\x0b\x32\x17.modal.client.GPUConfig\x12\x15\n\rmemory_mb_max\x18\x05 \x01(\r\x12\x19\n\x11\x65phemeral_disk_mb\x18\x06 \x01(\r\x12\x15\n\rmilli_cpu_max\x18\x07 \x01(\r\x12\x0c\n\x04rdma\x18\x08 \x01(\x08\"J\n\x13RuntimeInputMessage\x12\x0f\n\x07message\x18\x01 \x01(\x0c\x12\x15\n\rmessage_index\x18\x02 \x01(\x04\x12\x0b\n\x03\x65of\x18\x03 \x01(\x08\"\x9c\x02\n\x12RuntimeOutputBatch\x12\x31\n\x05items\x18\x01 \x03(\x0b\x32\".modal.client.RuntimeOutputMessage\x12\x13\n\x0b\x62\x61tch_index\x18\x02 \x01(\x04\x12\x16\n\texit_code\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12\x32\n\x06stdout\x18\x04 \x03(\x0b\x32\".modal.client.RuntimeOutputMessage\x12\x32\n\x06stderr\x18\x05 \x03(\x0b\x32\".modal.client.RuntimeOutputMessage\x12\x30\n\x04info\x18\x06 \x03(\x0b\x32\".modal.client.RuntimeOutputMessageB\x0c\n\n_exit_code\"u\n\x14RuntimeOutputMessage\x12\x35\n\x0f\x66ile_descriptor\x18\x01 \x01(\x0e\x32\x1c.modal.client.FileDescriptor\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x15\n\rmessage_bytes\x18\x03 \x01(\x0c\"d\n\x07S3Mount\x12\x13\n\x0b\x62ucket_name\x18\x01 \x01(\t\x12\x12\n\nmount_path\x18\x02 \x01(\t\x12\x1d\n\x15\x63redentials_secret_id\x18\x03 \x01(\t\x12\x11\n\tread_only\x18\x04 \x01(\x08\"\xc6\t\n\x07Sandbox\x12\x17\n\x0f\x65ntrypoint_args\x18\x01 \x03(\t\x12\x11\n\tmount_ids\x18\x02 \x03(\t\x12\x10\n\x08image_id\x18\x03 \x01(\t\x12\x12\n\nsecret_ids\x18\x04 \x03(\t\x12*\n\tresources\x18\x05 \x01(\x0b\x32\x17.modal.client.Resources\x12\x33\n\x0e\x63loud_provider\x18\x06 \x01(\x0e\x32\x1b.modal.client.CloudProvider\x12\x14\n\x0ctimeout_secs\x18\x07 \x01(\r\x12\x14\n\x07workdir\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x33\n\nnfs_mounts\x18\t \x03(\x0b\x32\x1f.modal.client.SharedVolumeMount\x12\x15\n\rruntime_debug\x18\n \x01(\x08\x12\x15\n\rblock_network\x18\x0b \x01(\x08\x12(\n\ts3_mounts\x18\x0c \x03(\x0b\x32\x15.modal.client.S3Mount\x12;\n\x13\x63loud_bucket_mounts\x18\x0e \x03(\x0b\x32\x1e.modal.client.CloudBucketMount\x12\x30\n\rvolume_mounts\x18\r \x03(\x0b\x32\x19.modal.client.VolumeMount\x12\'\n\x08pty_info\x18\x0f \x01(\x0b\x32\x15.modal.client.PTYInfo\x12\x42\n\x13scheduler_placement\x18\x11 \x01(\x0b\x32 .modal.client.SchedulerPlacementH\x02\x88\x01\x01\x12\x11\n\tworker_id\x18\x13 \x01(\t\x12-\n\nopen_ports\x18\x14 \x01(\x0b\x32\x17.modal.client.PortSpecsH\x00\x12\x14\n\x0ci6pn_enabled\x18\x15 \x01(\x08\x12\x33\n\x0enetwork_access\x18\x16 \x01(\x0b\x32\x1b.modal.client.NetworkAccess\x12\x15\n\x08proxy_id\x18\x17 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0f\x65nable_snapshot\x18\x18 \x01(\x08\x12\x1d\n\x10snapshot_version\x18\x19 \x01(\rH\x04\x88\x01\x01\x12\x1a\n\x12\x63loud_provider_str\x18\x1a \x01(\t\x12\"\n\x15runsc_runtime_version\x18\x1b \x01(\tH\x05\x88\x01\x01\x12\x14\n\x07runtime\x18\x1c \x01(\tH\x06\x88\x01\x01\x12\x0f\n\x07verbose\x18\x1d \x01(\x08\x12\x11\n\x04name\x18\x1e \x01(\tH\x07\x88\x01\x01\x12L\n\x14\x65xperimental_options\x18\x1f \x03(\x0b\x32..modal.client.Sandbox.ExperimentalOptionsEntry\x1a:\n\x18\x45xperimentalOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x42\x12\n\x10open_ports_oneofB\n\n\x08_workdirB\x16\n\x14_scheduler_placementB\x0b\n\t_proxy_idB\x13\n\x11_snapshot_versionB\x18\n\x16_runsc_runtime_versionB\n\n\x08_runtimeB\x07\n\x05_nameJ\x04\x08\x10\x10\x11J\x04\x08\x12\x10\x13\"q\n\x14SandboxCreateRequest\x12\x14\n\x06\x61pp_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12)\n\ndefinition\x18\x02 \x01(\x0b\x32\x15.modal.client.Sandbox\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\"+\n\x15SandboxCreateResponse\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\"]\n\x19SandboxGetFromNameRequest\x12\x14\n\x0csandbox_name\x18\x01 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x02 \x01(\t\x12\x10\n\x08\x61pp_name\x18\x03 \x01(\t\"0\n\x1aSandboxGetFromNameResponse\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\"\x8a\x01\n\x15SandboxGetLogsRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\x12\x35\n\x0f\x66ile_descriptor\x18\x02 \x01(\x0e\x32\x1c.modal.client.FileDescriptor\x12\x0f\n\x07timeout\x18\x03 \x01(\x02\x12\x15\n\rlast_entry_id\x18\x04 \x01(\t\"4\n\x1eSandboxGetResourceUsageRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\"\x90\x01\n\x1fSandboxGetResourceUsageResponse\x12\x19\n\x11\x63pu_core_nanosecs\x18\x01 \x01(\x04\x12\x18\n\x10mem_gib_nanosecs\x18\x02 \x01(\x04\x12\x14\n\x0cgpu_nanosecs\x18\x03 \x01(\x04\x12\x15\n\x08gpu_type\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_gpu_type\"i\n\x17SandboxGetTaskIdRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\x12\x14\n\x07timeout\x18\x02 \x01(\x02H\x00\x88\x01\x01\x12\x18\n\x10wait_until_ready\x18\x03 \x01(\x08\x42\n\n\x08_timeout\"\x83\x01\n\x18SandboxGetTaskIdResponse\x12\x14\n\x07task_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x35\n\x0btask_result\x18\x02 \x01(\x0b\x32\x1b.modal.client.GenericResultH\x01\x88\x01\x01\x42\n\n\x08_task_idB\x0e\n\x0c_task_result\"?\n\x18SandboxGetTunnelsRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\"s\n\x19SandboxGetTunnelsResponse\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\x12)\n\x07tunnels\x18\x02 \x03(\x0b\x32\x18.modal.client.TunnelData\"D\n\x15SandboxHandleMetadata\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\"\xa4\x01\n\x0bSandboxInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\ncreated_at\x18\x03 \x01(\x01\x12)\n\ttask_info\x18\x04 \x01(\x0b\x32\x16.modal.client.TaskInfo\x12\x0e\n\x06\x61pp_id\x18\x05 \x01(\t\x12&\n\x04tags\x18\x06 \x03(\x0b\x32\x18.modal.client.SandboxTag\x12\x0c\n\x04name\x18\x07 \x01(\tJ\x04\x08\x02\x10\x03\"\x9a\x01\n\x12SandboxListRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x18\n\x10\x62\x65\x66ore_timestamp\x18\x02 \x01(\x01\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12\x18\n\x10include_finished\x18\x04 \x01(\x08\x12&\n\x04tags\x18\x05 \x03(\x0b\x32\x18.modal.client.SandboxTag\"C\n\x13SandboxListResponse\x12,\n\tsandboxes\x18\x01 \x03(\x0b\x32\x19.modal.client.SandboxInfo\"\xc0\x02\n\x15SandboxRestoreRequest\x12\x13\n\x0bsnapshot_id\x18\x01 \x01(\t\x12\x1d\n\x15sandbox_name_override\x18\x02 \x01(\t\x12_\n\x1asandbox_name_override_type\x18\x03 \x01(\x0e\x32;.modal.client.SandboxRestoreRequest.SandboxNameOverrideType\"\x91\x01\n\x17SandboxNameOverrideType\x12*\n&SANDBOX_NAME_OVERRIDE_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1fSANDBOX_NAME_OVERRIDE_TYPE_NONE\x10\x01\x12%\n!SANDBOX_NAME_OVERRIDE_TYPE_STRING\x10\x02\",\n\x16SandboxRestoreResponse\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\"?\n\x18SandboxSnapshotFsRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\"\x8f\x01\n\x19SandboxSnapshotFsResponse\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12+\n\x06result\x18\x02 \x01(\x0b\x32\x1b.modal.client.GenericResult\x12\x33\n\x0eimage_metadata\x18\x03 \x01(\x0b\x32\x1b.modal.client.ImageMetadata\"0\n\x19SandboxSnapshotGetRequest\x12\x13\n\x0bsnapshot_id\x18\x01 \x01(\t\"1\n\x1aSandboxSnapshotGetResponse\x12\x13\n\x0bsnapshot_id\x18\x01 \x01(\t\",\n\x16SandboxSnapshotRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\".\n\x17SandboxSnapshotResponse\x12\x13\n\x0bsnapshot_id\x18\x01 \x01(\t\"B\n\x1aSandboxSnapshotWaitRequest\x12\x13\n\x0bsnapshot_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\"J\n\x1bSandboxSnapshotWaitResponse\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\"Y\n\x18SandboxStdinWriteRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\x12\r\n\x05input\x18\x02 \x01(\x0c\x12\r\n\x05index\x18\x03 \x01(\r\x12\x0b\n\x03\x65of\x18\x04 \x01(\x08\"\x1b\n\x19SandboxStdinWriteResponse\"1\n\nSandboxTag\x12\x10\n\x08tag_name\x18\x01 \x01(\t\x12\x11\n\ttag_value\x18\x02 \x01(\t\"m\n\x15SandboxTagsSetRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\x12\x12\n\nsandbox_id\x18\x02 \x01(\t\x12&\n\x04tags\x18\x03 \x03(\x0b\x32\x18.modal.client.SandboxTag\"-\n\x17SandboxTerminateRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\"P\n\x18SandboxTerminateResponse\x12\x34\n\x0f\x65xisting_result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\"9\n\x12SandboxWaitRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\"B\n\x13SandboxWaitResponse\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\"\xa0\x02\n\x08Schedule\x12+\n\x04\x63ron\x18\x01 \x01(\x0b\x32\x1b.modal.client.Schedule.CronH\x00\x12/\n\x06period\x18\x02 \x01(\x0b\x32\x1d.modal.client.Schedule.PeriodH\x00\x1a-\n\x04\x43ron\x12\x13\n\x0b\x63ron_string\x18\x01 \x01(\t\x12\x10\n\x08timezone\x18\x02 \x01(\t\x1au\n\x06Period\x12\r\n\x05years\x18\x01 \x01(\x05\x12\x0e\n\x06months\x18\x02 \x01(\x05\x12\r\n\x05weeks\x18\x03 \x01(\x05\x12\x0c\n\x04\x64\x61ys\x18\x04 \x01(\x05\x12\r\n\x05hours\x18\x05 \x01(\x05\x12\x0f\n\x07minutes\x18\x06 \x01(\x05\x12\x0f\n\x07seconds\x18\x07 \x01(\x02\x42\x10\n\x0eschedule_oneof\"\x8a\x01\n\x12SchedulerPlacement\x12\x0f\n\x07regions\x18\x04 \x03(\t\x12\x12\n\x05_zone\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x17\n\n_lifecycle\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x17\n\x0f_instance_types\x18\x05 \x03(\tB\x08\n\x06X_zoneB\r\n\x0bX_lifecycleJ\x04\x08\x01\x10\x02\"\xd0\x01\n\x13SecretCreateRequest\x12@\n\x08\x65nv_dict\x18\x01 \x03(\x0b\x32..modal.client.SecretCreateRequest.EnvDictEntry\x12\x14\n\x06\x61pp_id\x18\x02 \x01(\tB\x04\x80\xb5\x18\x01\x12\x15\n\rtemplate_type\x18\x03 \x01(\t\x12\x1a\n\x12\x65xisting_secret_id\x18\x04 \x01(\t\x1a.\n\x0c\x45nvDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\")\n\x14SecretCreateResponse\x12\x11\n\tsecret_id\x18\x01 \x01(\t\"(\n\x13SecretDeleteRequest\x12\x11\n\tsecret_id\x18\x01 \x01(\t\"\xb7\x02\n\x18SecretGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12>\n\x14object_creation_type\x18\x04 \x01(\x0e\x32 .modal.client.ObjectCreationType\x12\x45\n\x08\x65nv_dict\x18\x05 \x03(\x0b\x32\x33.modal.client.SecretGetOrCreateRequest.EnvDictEntry\x12\x0e\n\x06\x61pp_id\x18\x06 \x01(\t\x12\x15\n\rrequired_keys\x18\x07 \x03(\t\x1a.\n\x0c\x45nvDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01J\x04\x08\x02\x10\x03\"^\n\x19SecretGetOrCreateResponse\x12\x11\n\tsecret_id\x18\x01 \x01(\t\x12.\n\x08metadata\x18\x02 \x01(\x0b\x32\x1c.modal.client.SecretMetadata\"v\n\x0eSecretListItem\x12\r\n\x05label\x18\x01 \x01(\t\x12\x12\n\ncreated_at\x18\x02 \x01(\x01\x12\x14\n\x0clast_used_at\x18\x03 \x01(\x01\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\t\x12\x11\n\tsecret_id\x18\x05 \x01(\t\"-\n\x11SecretListRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\"[\n\x12SecretListResponse\x12+\n\x05items\x18\x01 \x03(\x0b\x32\x1c.modal.client.SecretListItem\x12\x18\n\x10\x65nvironment_name\x18\x02 \x01(\t\"Q\n\x0eSecretMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x31\n\rcreation_info\x18\x02 \x01(\x0b\x32\x1a.modal.client.CreationInfo\"5\n\x19SharedVolumeDeleteRequest\x12\x18\n\x10shared_volume_id\x18\x01 \x01(\t\"D\n\x1aSharedVolumeGetFileRequest\x12\x18\n\x10shared_volume_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"S\n\x1bSharedVolumeGetFileResponse\x12\x0e\n\x04\x64\x61ta\x18\x01 \x01(\x0cH\x00\x12\x16\n\x0c\x64\x61ta_blob_id\x18\x02 \x01(\tH\x00\x42\x0c\n\ndata_oneof\"\xaf\x01\n\x1eSharedVolumeGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12>\n\x14object_creation_type\x18\x04 \x01(\x0e\x32 .modal.client.ObjectCreationType\x12\x0e\n\x06\x61pp_id\x18\x05 \x01(\tJ\x04\x08\x02\x10\x03\";\n\x1fSharedVolumeGetOrCreateResponse\x12\x18\n\x10shared_volume_id\x18\x01 \x01(\t\"8\n\x1cSharedVolumeHeartbeatRequest\x12\x18\n\x10shared_volume_id\x18\x01 \x01(\t\"F\n\x1cSharedVolumeListFilesRequest\x12\x18\n\x10shared_volume_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"I\n\x1dSharedVolumeListFilesResponse\x12(\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x17.modal.client.FileEntry\"\x88\x01\n\x14SharedVolumeListItem\x12\r\n\x05label\x18\x01 \x01(\t\x12\x18\n\x10shared_volume_id\x18\x02 \x01(\t\x12\x12\n\ncreated_at\x18\x03 \x01(\x01\x12\x33\n\x0e\x63loud_provider\x18\x04 \x01(\x0e\x32\x1b.modal.client.CloudProvider\"3\n\x17SharedVolumeListRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\"g\n\x18SharedVolumeListResponse\x12\x31\n\x05items\x18\x01 \x03(\x0b\x32\".modal.client.SharedVolumeListItem\x12\x18\n\x10\x65nvironment_name\x18\x02 \x01(\t\"\x92\x01\n\x11SharedVolumeMount\x12\x12\n\nmount_path\x18\x01 \x01(\t\x12\x18\n\x10shared_volume_id\x18\x02 \x01(\t\x12\x33\n\x0e\x63loud_provider\x18\x03 \x01(\x0e\x32\x1b.modal.client.CloudProvider\x12\x1a\n\x12\x61llow_cross_region\x18\x04 \x01(\x08\"\xa7\x01\n\x1aSharedVolumePutFileRequest\x12\x1e\n\x10shared_volume_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x12\n\nsha256_hex\x18\x03 \x01(\t\x12\x0e\n\x04\x64\x61ta\x18\x04 \x01(\x0cH\x00\x12\x16\n\x0c\x64\x61ta_blob_id\x18\x05 \x01(\tH\x00\x12\x11\n\tresumable\x18\x06 \x01(\x08\x42\x0c\n\ndata_oneof\"-\n\x1bSharedVolumePutFileResponse\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"`\n\x1dSharedVolumeRemoveFileRequest\x12\x1e\n\x10shared_volume_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x11\n\trecursive\x18\x03 \x01(\x08\"^\n\x12SystemErrorMessage\x12\x31\n\nerror_code\x18\x01 \x01(\x0e\x32\x1d.modal.client.SystemErrorCode\x12\x15\n\rerror_message\x18\x02 \x01(\t\"@\n\x17TaskClusterHelloRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x14\n\x0c\x63ontainer_ip\x18\x02 \x01(\t\"w\n\x18TaskClusterHelloResponse\x12\x12\n\ncluster_id\x18\x01 \x01(\t\x12\x14\n\x0c\x63luster_rank\x18\x02 \x01(\r\x12\x15\n\rcontainer_ips\x18\x03 \x03(\t\x12\x1a\n\x12\x63ontainer_ipv4_ips\x18\x04 \x03(\t\".\n\x19TaskCurrentInputsResponse\x12\x11\n\tinput_ids\x18\x01 \x03(\t\"\xa7\x01\n\x08TaskInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nstarted_at\x18\x02 \x01(\x01\x12\x13\n\x0b\x66inished_at\x18\x03 \x01(\x01\x12+\n\x06result\x18\x04 \x01(\x0b\x32\x1b.modal.client.GenericResult\x12\x13\n\x0b\x65nqueued_at\x18\x05 \x01(\x01\x12\x10\n\x08gpu_type\x18\x06 \x01(\t\x12\x12\n\nsandbox_id\x18\x07 \x01(\t\"+\n\x0fTaskListRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\":\n\x10TaskListResponse\x12&\n\x05tasks\x18\x01 \x03(\x0b\x32\x17.modal.client.TaskStats\"\x84\x02\n\x08TaskLogs\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\t\x12+\n\ntask_state\x18\x06 \x01(\x0e\x32\x17.modal.client.TaskState\x12\x11\n\ttimestamp\x18\x07 \x01(\x01\x12\x35\n\x0f\x66ile_descriptor\x18\x08 \x01(\x0e\x32\x1c.modal.client.FileDescriptor\x12\x31\n\rtask_progress\x18\t \x01(\x0b\x32\x1a.modal.client.TaskProgress\x12\x18\n\x10\x66unction_call_id\x18\n \x01(\t\x12\x10\n\x08input_id\x18\x0b \x01(\t\x12\x14\n\x0ctimestamp_ns\x18\x0c \x01(\x04\"\xe0\x01\n\rTaskLogsBatch\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12%\n\x05items\x18\x02 \x03(\x0b\x32\x16.modal.client.TaskLogs\x12\x10\n\x08\x65ntry_id\x18\x05 \x01(\t\x12\x10\n\x08\x61pp_done\x18\n \x01(\x08\x12\x13\n\x0b\x66unction_id\x18\x0b \x01(\t\x12\x10\n\x08input_id\x18\x0c \x01(\t\x12\x10\n\x08image_id\x18\r \x01(\t\x12\x0b\n\x03\x65of\x18\x0e \x01(\x08\x12\x13\n\x0bpty_exec_id\x18\x0f \x01(\t\x12\x18\n\x10root_function_id\x18\x10 \x01(\t\"p\n\x0cTaskProgress\x12\x0b\n\x03len\x18\x01 \x01(\x04\x12\x0b\n\x03pos\x18\x02 \x01(\x04\x12\x31\n\rprogress_type\x18\x03 \x01(\x0e\x32\x1a.modal.client.ProgressType\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\"@\n\x11TaskResultRequest\x12+\n\x06result\x18\x02 \x01(\x0b\x32\x1b.modal.client.GenericResult\"Y\n\tTaskStats\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\t\x12\x17\n\x0f\x61pp_description\x18\x03 \x01(\t\x12\x12\n\nstarted_at\x18\x04 \x01(\x01\"\x98\x01\n\x0cTaskTemplate\x12\x0c\n\x04rank\x18\x01 \x01(\r\x12*\n\tresources\x18\x02 \x01(\x0b\x32\x17.modal.client.Resources\x12 \n\x18target_concurrent_inputs\x18\x03 \x01(\r\x12\x1d\n\x15max_concurrent_inputs\x18\x04 \x01(\r\x12\r\n\x05index\x18\x05 \x01(\r\"V\n\x16TokenFlowCreateRequest\x12\x12\n\nutm_source\x18\x03 \x01(\t\x12\x16\n\x0elocalhost_port\x18\x04 \x01(\x05\x12\x10\n\x08next_url\x18\x05 \x01(\t\"d\n\x17TokenFlowCreateResponse\x12\x15\n\rtoken_flow_id\x18\x01 \x01(\t\x12\x0f\n\x07web_url\x18\x02 \x01(\t\x12\x0c\n\x04\x63ode\x18\x03 \x01(\t\x12\x13\n\x0bwait_secret\x18\x04 \x01(\t\"S\n\x14TokenFlowWaitRequest\x12\x0f\n\x07timeout\x18\x01 \x01(\x02\x12\x15\n\rtoken_flow_id\x18\x02 \x01(\t\x12\x13\n\x0bwait_secret\x18\x03 \x01(\t\"l\n\x15TokenFlowWaitResponse\x12\x10\n\x08token_id\x18\x01 \x01(\t\x12\x14\n\x0ctoken_secret\x18\x02 \x01(\t\x12\x0f\n\x07timeout\x18\x03 \x01(\x08\x12\x1a\n\x12workspace_username\x18\x04 \x01(\t\"\xa8\x01\n\nTunnelData\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x1d\n\x10unencrypted_host\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x10unencrypted_port\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x16\n\x0e\x63ontainer_port\x18\x05 \x01(\rB\x13\n\x11_unencrypted_hostB\x13\n\x11_unencrypted_port\"{\n\x12TunnelStartRequest\x12\x0c\n\x04port\x18\x01 \x01(\r\x12\x13\n\x0bunencrypted\x18\x02 \x01(\x08\x12\x32\n\x0btunnel_type\x18\x03 \x01(\x0e\x32\x18.modal.client.TunnelTypeH\x00\x88\x01\x01\x42\x0e\n\x0c_tunnel_type\"\x99\x01\n\x13TunnelStartResponse\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x1d\n\x10unencrypted_host\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x10unencrypted_port\x18\x04 \x01(\rH\x01\x88\x01\x01\x42\x13\n\x11_unencrypted_hostB\x13\n\x11_unencrypted_port\"!\n\x11TunnelStopRequest\x12\x0c\n\x04port\x18\x01 \x01(\r\"$\n\x12TunnelStopResponse\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"\x1e\n\rUploadUrlList\x12\r\n\x05items\x18\x01 \x03(\t\".\n\x13VolumeCommitRequest\x12\x17\n\tvolume_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"+\n\x14VolumeCommitResponse\x12\x13\n\x0bskip_reload\x18\x01 \x01(\x08\"d\n\x17VolumeCopyFiles2Request\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x11\n\tsrc_paths\x18\x02 \x03(\t\x12\x10\n\x08\x64st_path\x18\x03 \x01(\t\x12\x11\n\trecursive\x18\x04 \x01(\x08\"c\n\x16VolumeCopyFilesRequest\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x11\n\tsrc_paths\x18\x02 \x03(\t\x12\x10\n\x08\x64st_path\x18\x03 \x01(\t\x12\x11\n\trecursive\x18\x04 \x01(\x08\"F\n\x13VolumeDeleteRequest\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x1c\n\x10\x65nvironment_name\x18\x02 \x01(\tB\x02\x18\x01\"T\n\x15VolumeGetFile2Request\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\r\n\x05start\x18\x03 \x01(\x04\x12\x0b\n\x03len\x18\x04 \x01(\x04\"T\n\x16VolumeGetFile2Response\x12\x10\n\x08get_urls\x18\x01 \x03(\t\x12\x0c\n\x04size\x18\x02 \x01(\x04\x12\r\n\x05start\x18\x03 \x01(\x04\x12\x0b\n\x03len\x18\x04 \x01(\x04\"S\n\x14VolumeGetFileRequest\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\r\n\x05start\x18\x03 \x01(\x04\x12\x0b\n\x03len\x18\x04 \x01(\x04\"w\n\x15VolumeGetFileResponse\x12\x0e\n\x04\x64\x61ta\x18\x01 \x01(\x0cH\x00\x12\x16\n\x0c\x64\x61ta_blob_id\x18\x02 \x01(\tH\x00\x12\x0c\n\x04size\x18\x03 \x01(\x04\x12\r\n\x05start\x18\x04 \x01(\x04\x12\x0b\n\x03len\x18\x05 \x01(\x04\x42\x0c\n\ndata_oneof\"\xd9\x01\n\x18VolumeGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12>\n\x14object_creation_type\x18\x04 \x01(\x0e\x32 .modal.client.ObjectCreationType\x12\x0e\n\x06\x61pp_id\x18\x05 \x01(\t\x12.\n\x07version\x18\x06 \x01(\x0e\x32\x1d.modal.client.VolumeFsVersionJ\x04\x08\x02\x10\x03\"\x8e\x01\n\x19VolumeGetOrCreateResponse\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12.\n\x07version\x18\x02 \x01(\x0e\x32\x1d.modal.client.VolumeFsVersion\x12.\n\x08metadata\x18\x03 \x01(\x0b\x32\x1c.modal.client.VolumeMetadata\"+\n\x16VolumeHeartbeatRequest\x12\x11\n\tvolume_id\x18\x01 \x01(\t\"w\n\x17VolumeListFiles2Request\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x11\n\trecursive\x18\x04 \x01(\x08\x12\x18\n\x0bmax_entries\x18\x03 \x01(\rH\x00\x88\x01\x01\x42\x0e\n\x0c_max_entries\"D\n\x18VolumeListFiles2Response\x12(\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x17.modal.client.FileEntry\"v\n\x16VolumeListFilesRequest\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x11\n\trecursive\x18\x04 \x01(\x08\x12\x18\n\x0bmax_entries\x18\x03 \x01(\rH\x00\x88\x01\x01\x42\x0e\n\x0c_max_entries\"C\n\x17VolumeListFilesResponse\x12(\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x17.modal.client.FileEntry\"F\n\x0eVolumeListItem\x12\r\n\x05label\x18\x01 \x01(\t\x12\x11\n\tvolume_id\x18\x02 \x01(\t\x12\x12\n\ncreated_at\x18\x03 \x01(\x01\"-\n\x11VolumeListRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\"[\n\x12VolumeListResponse\x12+\n\x05items\x18\x01 \x03(\x0b\x32\x1c.modal.client.VolumeListItem\x12\x18\n\x10\x65nvironment_name\x18\x02 \x01(\t\"\x81\x01\n\x0eVolumeMetadata\x12.\n\x07version\x18\x01 \x01(\x0e\x32\x1d.modal.client.VolumeFsVersion\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x31\n\rcreation_info\x18\x03 \x01(\x0b\x32\x1a.modal.client.CreationInfo\"i\n\x0bVolumeMount\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x12\n\nmount_path\x18\x02 \x01(\t\x12 \n\x18\x61llow_background_commits\x18\x03 \x01(\x08\x12\x11\n\tread_only\x18\x04 \x01(\x08\"\xda\x02\n\x16VolumePutFiles2Request\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x38\n\x05\x66iles\x18\x02 \x03(\x0b\x32).modal.client.VolumePutFiles2Request.File\x12)\n!disallow_overwrite_existing_files\x18\x03 \x01(\x08\x1az\n\x04\x46ile\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\x04\x12:\n\x06\x62locks\x18\x03 \x03(\x0b\x32*.modal.client.VolumePutFiles2Request.Block\x12\x11\n\x04mode\x18\x04 \x01(\rH\x00\x88\x01\x01\x42\x07\n\x05_mode\x1aL\n\x05\x42lock\x12\x17\n\x0f\x63ontents_sha256\x18\x01 \x01(\x0c\x12\x19\n\x0cput_response\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0f\n\r_put_response\"\xaf\x01\n\x17VolumePutFiles2Response\x12J\n\x0emissing_blocks\x18\x01 \x03(\x0b\x32\x32.modal.client.VolumePutFiles2Response.MissingBlock\x1aH\n\x0cMissingBlock\x12\x12\n\nfile_index\x18\x01 \x01(\x04\x12\x13\n\x0b\x62lock_index\x18\x02 \x01(\x04\x12\x0f\n\x07put_url\x18\x03 \x01(\t\"}\n\x15VolumePutFilesRequest\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12&\n\x05\x66iles\x18\x02 \x03(\x0b\x32\x17.modal.client.MountFile\x12)\n!disallow_overwrite_existing_files\x18\x03 \x01(\x08\"(\n\x13VolumeReloadRequest\x12\x11\n\tvolume_id\x18\x01 \x01(\t\"T\n\x18VolumeRemoveFile2Request\x12\x17\n\tvolume_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x11\n\trecursive\x18\x03 \x01(\x08\"S\n\x17VolumeRemoveFileRequest\x12\x17\n\tvolume_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x11\n\trecursive\x18\x03 \x01(\x08\"<\n\x13VolumeRenameRequest\x12\x17\n\tvolume_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\"\xe8\x01\n\x07Warning\x12/\n\x04type\x18\x01 \x01(\x0e\x32!.modal.client.Warning.WarningType\x12\x0f\n\x07message\x18\x02 \x01(\t\"\x9a\x01\n\x0bWarningType\x12\x1c\n\x18WARNING_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1fWARNING_TYPE_CLIENT_DEPRECATION\x10\x01\x12\x1f\n\x1bWARNING_TYPE_RESOURCE_LIMIT\x10\x02\x12\'\n#WARNING_TYPE_FUNCTION_CONFIGURATION\x10\x03\"R\n\nWebUrlInfo\x12\x11\n\ttruncated\x18\x01 \x01(\x08\x12\x1b\n\x0fhas_unique_hash\x18\x02 \x01(\x08\x42\x02\x18\x01\x12\x14\n\x0clabel_stolen\x18\x03 \x01(\x08\"\xc5\x02\n\rWebhookConfig\x12\'\n\x04type\x18\x01 \x01(\x0e\x32\x19.modal.client.WebhookType\x12\x0e\n\x06method\x18\x02 \x01(\t\x12\x18\n\x10requested_suffix\x18\x04 \x01(\t\x12\x32\n\nasync_mode\x18\x05 \x01(\x0e\x32\x1e.modal.client.WebhookAsyncMode\x12\x38\n\x0e\x63ustom_domains\x18\x06 \x03(\x0b\x32 .modal.client.CustomDomainConfig\x12\x17\n\x0fweb_server_port\x18\x07 \x01(\r\x12\"\n\x1aweb_server_startup_timeout\x18\x08 \x01(\x02\x12\x19\n\x11web_endpoint_docs\x18\t \x01(\x08\x12\x1b\n\x13requires_proxy_auth\x18\n \x01(\x08\"K\n\x1bWorkspaceNameLookupResponse\x12\x1a\n\x0eworkspace_name\x18\x01 \x01(\tB\x02\x18\x01\x12\x10\n\x08username\x18\x02 \x01(\t*\x83\x01\n\x13\x41ppDeployVisibility\x12%\n!APP_DEPLOY_VISIBILITY_UNSPECIFIED\x10\x00\x12#\n\x1f\x41PP_DEPLOY_VISIBILITY_WORKSPACE\x10\x01\x12 \n\x1c\x41PP_DEPLOY_VISIBILITY_PUBLIC\x10\x02*\xa1\x02\n\x13\x41ppDisconnectReason\x12%\n!APP_DISCONNECT_REASON_UNSPECIFIED\x10\x00\x12)\n%APP_DISCONNECT_REASON_LOCAL_EXCEPTION\x10\x01\x12,\n(APP_DISCONNECT_REASON_KEYBOARD_INTERRUPT\x10\x02\x12.\n*APP_DISCONNECT_REASON_ENTRYPOINT_COMPLETED\x10\x03\x12.\n*APP_DISCONNECT_REASON_DEPLOYMENT_EXCEPTION\x10\x04\x12*\n&APP_DISCONNECT_REASON_REMOTE_EXCEPTION\x10\x05*\x91\x02\n\x08\x41ppState\x12\x19\n\x15\x41PP_STATE_UNSPECIFIED\x10\x00\x12\x17\n\x13\x41PP_STATE_EPHEMERAL\x10\x01\x12\x16\n\x12\x41PP_STATE_DETACHED\x10\x02\x12\x16\n\x12\x41PP_STATE_DEPLOYED\x10\x03\x12\x16\n\x12\x41PP_STATE_STOPPING\x10\x04\x12\x15\n\x11\x41PP_STATE_STOPPED\x10\x05\x12\x1a\n\x16\x41PP_STATE_INITIALIZING\x10\x06\x12\x16\n\x12\x41PP_STATE_DISABLED\x10\x07\x12#\n\x1f\x41PP_STATE_DETACHED_DISCONNECTED\x10\x08\x12\x19\n\x11\x41PP_STATE_DERIVED\x10\t\x1a\x02\x08\x01*\x85\x01\n\rAppStopSource\x12\x1f\n\x1b\x41PP_STOP_SOURCE_UNSPECIFIED\x10\x00\x12\x17\n\x13\x41PP_STOP_SOURCE_CLI\x10\x01\x12!\n\x1d\x41PP_STOP_SOURCE_PYTHON_CLIENT\x10\x02\x12\x17\n\x13\x41PP_STOP_SOURCE_WEB\x10\x03*\x91\x01\n\x11\x43\x65rtificateStatus\x12\x1e\n\x1a\x43\x45RTIFICATE_STATUS_PENDING\x10\x00\x12\x1d\n\x19\x43\x45RTIFICATE_STATUS_ISSUED\x10\x01\x12\x1d\n\x19\x43\x45RTIFICATE_STATUS_FAILED\x10\x02\x12\x1e\n\x1a\x43\x45RTIFICATE_STATUS_REVOKED\x10\x03*\xb1\x01\n\x10\x43heckpointStatus\x12!\n\x1d\x43HECKPOINT_STATUS_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x43HECKPOINT_STATUS_PENDING\x10\x01\x12 \n\x1c\x43HECKPOINT_STATUS_PROCESSING\x10\x02\x12\x1b\n\x17\x43HECKPOINT_STATUS_READY\x10\x03\x12\x1c\n\x18\x43HECKPOINT_STATUS_FAILED\x10\x04*\x85\x02\n\nClientType\x12\x1b\n\x17\x43LIENT_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12\x43LIENT_TYPE_CLIENT\x10\x01\x12\x16\n\x12\x43LIENT_TYPE_WORKER\x10\x02\x12\x19\n\x15\x43LIENT_TYPE_CONTAINER\x10\x03\x12\x1a\n\x16\x43LIENT_TYPE_WEB_SERVER\x10\x05\x12\x1f\n\x1b\x43LIENT_TYPE_NOTEBOOK_KERNEL\x10\x06\x12\x18\n\x14\x43LIENT_TYPE_LIBMODAL\x10\x07\x12\x1b\n\x17\x43LIENT_TYPE_LIBMODAL_JS\x10\x08\x12\x1b\n\x17\x43LIENT_TYPE_LIBMODAL_GO\x10\t*\xa8\x01\n\rCloudProvider\x12\x1e\n\x1a\x43LOUD_PROVIDER_UNSPECIFIED\x10\x00\x12\x16\n\x12\x43LOUD_PROVIDER_AWS\x10\x01\x12\x16\n\x12\x43LOUD_PROVIDER_GCP\x10\x02\x12\x17\n\x13\x43LOUD_PROVIDER_AUTO\x10\x03\x12\x16\n\x12\x43LOUD_PROVIDER_OCI\x10\x04\"\x04\x08\x05\x10\x05\"\x04\x08\x06\x10\x06\"\x04\x08\x07\x10\x07\"\x04\x08\x08\x10\x08*Z\n\rDNSRecordType\x12\x15\n\x11\x44NS_RECORD_TYPE_A\x10\x00\x12\x17\n\x13\x44NS_RECORD_TYPE_TXT\x10\x01\x12\x19\n\x15\x44NS_RECORD_TYPE_CNAME\x10\x02*w\n\nDataFormat\x12\x1b\n\x17\x44\x41TA_FORMAT_UNSPECIFIED\x10\x00\x12\x16\n\x12\x44\x41TA_FORMAT_PICKLE\x10\x01\x12\x14\n\x10\x44\x41TA_FORMAT_ASGI\x10\x02\x12\x1e\n\x1a\x44\x41TA_FORMAT_GENERATOR_DONE\x10\x03*\x80\x01\n\x13\x44\x65ploymentNamespace\x12$\n DEPLOYMENT_NAMESPACE_UNSPECIFIED\x10\x00\x12\"\n\x1e\x44\x45PLOYMENT_NAMESPACE_WORKSPACE\x10\x01\x12\x1f\n\x1b\x44\x45PLOYMENT_NAMESPACE_GLOBAL\x10\x03*\x92\x01\n\x10\x45xecOutputOption\x12\"\n\x1e\x45XEC_OUTPUT_OPTION_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x45XEC_OUTPUT_OPTION_DEVNULL\x10\x01\x12\x1b\n\x17\x45XEC_OUTPUT_OPTION_PIPE\x10\x02\x12\x1d\n\x19\x45XEC_OUTPUT_OPTION_STDOUT\x10\x03*\x83\x01\n\x0e\x46ileDescriptor\x12\x1f\n\x1b\x46ILE_DESCRIPTOR_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x46ILE_DESCRIPTOR_STDOUT\x10\x01\x12\x1a\n\x16\x46ILE_DESCRIPTOR_STDERR\x10\x02\x12\x18\n\x14\x46ILE_DESCRIPTOR_INFO\x10\x03*\xfb\x01\n\x1a\x46unctionCallInvocationType\x12-\n)FUNCTION_CALL_INVOCATION_TYPE_UNSPECIFIED\x10\x00\x12-\n)FUNCTION_CALL_INVOCATION_TYPE_SYNC_LEGACY\x10\x01\x12.\n*FUNCTION_CALL_INVOCATION_TYPE_ASYNC_LEGACY\x10\x02\x12\'\n#FUNCTION_CALL_INVOCATION_TYPE_ASYNC\x10\x03\x12&\n\"FUNCTION_CALL_INVOCATION_TYPE_SYNC\x10\x04*p\n\x10\x46unctionCallType\x12\"\n\x1e\x46UNCTION_CALL_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x46UNCTION_CALL_TYPE_UNARY\x10\x01\x12\x1a\n\x16\x46UNCTION_CALL_TYPE_MAP\x10\x02*\xce\x01\n\x07GPUType\x12\x18\n\x14GPU_TYPE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bGPU_TYPE_T4\x10\x01\x12\x11\n\rGPU_TYPE_A100\x10\x02\x12\x11\n\rGPU_TYPE_A10G\x10\x03\x12\x10\n\x0cGPU_TYPE_ANY\x10\x04\x12\x16\n\x12GPU_TYPE_A100_80GB\x10\x08\x12\x0f\n\x0bGPU_TYPE_L4\x10\t\x12\x11\n\rGPU_TYPE_H100\x10\n\x12\x11\n\rGPU_TYPE_L40S\x10\x0b\x12\x11\n\rGPU_TYPE_H200\x10\x0c*\xa0\x02\n\x12ObjectCreationType\x12$\n OBJECT_CREATION_TYPE_UNSPECIFIED\x10\x00\x12*\n&OBJECT_CREATION_TYPE_CREATE_IF_MISSING\x10\x01\x12.\n*OBJECT_CREATION_TYPE_CREATE_FAIL_IF_EXISTS\x10\x02\x12\x33\n/OBJECT_CREATION_TYPE_CREATE_OVERWRITE_IF_EXISTS\x10\x03\x12/\n+OBJECT_CREATION_TYPE_ANONYMOUS_OWNED_BY_APP\x10\x04\x12\"\n\x1eOBJECT_CREATION_TYPE_EPHEMERAL\x10\x05*\xef\x01\n\rParameterType\x12\x1a\n\x16PARAM_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11PARAM_TYPE_STRING\x10\x01\x12\x12\n\x0ePARAM_TYPE_INT\x10\x02\x12\x15\n\x11PARAM_TYPE_PICKLE\x10\x03\x12\x14\n\x10PARAM_TYPE_BYTES\x10\x04\x12\x16\n\x12PARAM_TYPE_UNKNOWN\x10\x05\x12\x13\n\x0fPARAM_TYPE_LIST\x10\x06\x12\x13\n\x0fPARAM_TYPE_DICT\x10\x07\x12\x13\n\x0fPARAM_TYPE_NONE\x10\x08\x12\x13\n\x0fPARAM_TYPE_BOOL\x10\t*>\n\x0cProgressType\x12\x19\n\x15IMAGE_SNAPSHOT_UPLOAD\x10\x00\x12\x13\n\x0f\x46UNCTION_QUEUED\x10\x01*\xa9\x01\n\rProxyIpStatus\x12\x1f\n\x1bPROXY_IP_STATUS_UNSPECIFIED\x10\x00\x12\x1c\n\x18PROXY_IP_STATUS_CREATING\x10\x01\x12\x1a\n\x16PROXY_IP_STATUS_ONLINE\x10\x02\x12\x1e\n\x1aPROXY_IP_STATUS_TERMINATED\x10\x03\x12\x1d\n\x19PROXY_IP_STATUS_UNHEALTHY\x10\x04*T\n\tProxyType\x12\x1a\n\x16PROXY_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11PROXY_TYPE_LEGACY\x10\x01\x12\x14\n\x10PROXY_TYPE_VPROX\x10\x02*x\n\x11RateLimitInterval\x12#\n\x1fRATE_LIMIT_INTERVAL_UNSPECIFIED\x10\x00\x12\x1e\n\x1aRATE_LIMIT_INTERVAL_SECOND\x10\x01\x12\x1e\n\x1aRATE_LIMIT_INTERVAL_MINUTE\x10\x02*\xb2\x01\n\x10RegistryAuthType\x12\"\n\x1eREGISTRY_AUTH_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n\x16REGISTRY_AUTH_TYPE_AWS\x10\x01\x12\x1a\n\x16REGISTRY_AUTH_TYPE_GCP\x10\x02\x12\x1d\n\x19REGISTRY_AUTH_TYPE_PUBLIC\x10\x03\x12#\n\x1fREGISTRY_AUTH_TYPE_STATIC_CREDS\x10\x04*6\n\nSeekWhence\x12\x0c\n\x08SEEK_SET\x10\x00\x12\x0c\n\x08SEEK_CUR\x10\x01\x12\x0c\n\x08SEEK_END\x10\x02*\xa8\x03\n\x0fSystemErrorCode\x12!\n\x1dSYSTEM_ERROR_CODE_UNSPECIFIED\x10\x00\x12\x1a\n\x16SYSTEM_ERROR_CODE_PERM\x10\x01\x12\x1b\n\x17SYSTEM_ERROR_CODE_NOENT\x10\x02\x12\x18\n\x14SYSTEM_ERROR_CODE_IO\x10\x05\x12\x1a\n\x16SYSTEM_ERROR_CODE_NXIO\x10\x06\x12\x1b\n\x17SYSTEM_ERROR_CODE_NOMEM\x10\x0c\x12\x1b\n\x17SYSTEM_ERROR_CODE_ACCES\x10\r\x12\x1b\n\x17SYSTEM_ERROR_CODE_EXIST\x10\x11\x12\x1c\n\x18SYSTEM_ERROR_CODE_NOTDIR\x10\x14\x12\x1b\n\x17SYSTEM_ERROR_CODE_ISDIR\x10\x15\x12\x1b\n\x17SYSTEM_ERROR_CODE_INVAL\x10\x16\x12\x1b\n\x17SYSTEM_ERROR_CODE_MFILE\x10\x18\x12\x1a\n\x16SYSTEM_ERROR_CODE_FBIG\x10\x1b\x12\x1b\n\x17SYSTEM_ERROR_CODE_NOSPC\x10\x1c*\xdc\x02\n\tTaskState\x12\x1a\n\x16TASK_STATE_UNSPECIFIED\x10\x00\x12\x16\n\x12TASK_STATE_CREATED\x10\x06\x12\x15\n\x11TASK_STATE_QUEUED\x10\x01\x12\x1e\n\x1aTASK_STATE_WORKER_ASSIGNED\x10\x02\x12\x1c\n\x18TASK_STATE_LOADING_IMAGE\x10\x03\x12\x15\n\x11TASK_STATE_ACTIVE\x10\x04\x12\x18\n\x14TASK_STATE_COMPLETED\x10\x05\x12!\n\x1dTASK_STATE_CREATING_CONTAINER\x10\x07\x12\x13\n\x0fTASK_STATE_IDLE\x10\x08\x12\x1a\n\x16TASK_STATE_PREEMPTIBLE\x10\t\x12\x18\n\x14TASK_STATE_PREEMPTED\x10\n\x12\'\n#TASK_STATE_LOADING_CHECKPOINT_IMAGE\x10\x0b*=\n\nTunnelType\x12\x1b\n\x17TUNNEL_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0eTUNNEL_TYPE_H2\x10\x01*h\n\x0fVolumeFsVersion\x12!\n\x1dVOLUME_FS_VERSION_UNSPECIFIED\x10\x00\x12\x18\n\x14VOLUME_FS_VERSION_V1\x10\x01\x12\x18\n\x14VOLUME_FS_VERSION_V2\x10\x02*\x9a\x01\n\x10WebhookAsyncMode\x12\"\n\x1eWEBHOOK_ASYNC_MODE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bWEBHOOK_ASYNC_MODE_DISABLED\x10\x02\x12\x1e\n\x1aWEBHOOK_ASYNC_MODE_TRIGGER\x10\x03\x12\x1b\n\x17WEBHOOK_ASYNC_MODE_AUTO\x10\x04\"\x04\x08\x01\x10\x01*\x99\x01\n\x0bWebhookType\x12\x1c\n\x18WEBHOOK_TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15WEBHOOK_TYPE_ASGI_APP\x10\x01\x12\x19\n\x15WEBHOOK_TYPE_FUNCTION\x10\x02\x12\x19\n\x15WEBHOOK_TYPE_WSGI_APP\x10\x03\x12\x1b\n\x17WEBHOOK_TYPE_WEB_SERVER\x10\x04\x32\xa1r\n\x0bModalClient\x12W\n\x13\x41ppClientDisconnect\x12(.modal.client.AppClientDisconnectRequest\x1a\x16.google.protobuf.Empty\x12L\n\tAppCreate\x12\x1e.modal.client.AppCreateRequest\x1a\x1f.modal.client.AppCreateResponse\x12L\n\tAppDeploy\x12\x1e.modal.client.AppDeployRequest\x1a\x1f.modal.client.AppDeployResponse\x12m\n\x14\x41ppDeploymentHistory\x12).modal.client.AppDeploymentHistoryRequest\x1a*.modal.client.AppDeploymentHistoryResponse\x12s\n\x16\x41ppGetByDeploymentName\x12+.modal.client.AppGetByDeploymentNameRequest\x1a,.modal.client.AppGetByDeploymentNameResponse\x12U\n\x0c\x41ppGetLayout\x12!.modal.client.AppGetLayoutRequest\x1a\".modal.client.AppGetLayoutResponse\x12L\n\nAppGetLogs\x12\x1f.modal.client.AppGetLogsRequest\x1a\x1b.modal.client.TaskLogsBatch0\x01\x12X\n\rAppGetObjects\x12\".modal.client.AppGetObjectsRequest\x1a#.modal.client.AppGetObjectsResponse\x12[\n\x0e\x41ppGetOrCreate\x12#.modal.client.AppGetOrCreateRequest\x1a$.modal.client.AppGetOrCreateResponse\x12I\n\x0c\x41ppHeartbeat\x12!.modal.client.AppHeartbeatRequest\x1a\x16.google.protobuf.Empty\x12\x46\n\x07\x41ppList\x12\x1c.modal.client.AppListRequest\x1a\x1d.modal.client.AppListResponse\x12L\n\tAppLookup\x12\x1e.modal.client.AppLookupRequest\x1a\x1f.modal.client.AppLookupResponse\x12O\n\nAppPublish\x12\x1f.modal.client.AppPublishRequest\x1a .modal.client.AppPublishResponse\x12G\n\x0b\x41ppRollback\x12 .modal.client.AppRollbackRequest\x1a\x16.google.protobuf.Empty\x12K\n\rAppSetObjects\x12\".modal.client.AppSetObjectsRequest\x1a\x16.google.protobuf.Empty\x12?\n\x07\x41ppStop\x12\x1c.modal.client.AppStopRequest\x1a\x16.google.protobuf.Empty\x12U\n\x0c\x41ttemptAwait\x12!.modal.client.AttemptAwaitRequest\x1a\".modal.client.AttemptAwaitResponse\x12U\n\x0c\x41ttemptRetry\x12!.modal.client.AttemptRetryRequest\x1a\".modal.client.AttemptRetryResponse\x12U\n\x0c\x41ttemptStart\x12!.modal.client.AttemptStartRequest\x1a\".modal.client.AttemptStartResponse\x12U\n\x0c\x41uthTokenGet\x12!.modal.client.AuthTokenGetRequest\x1a\".modal.client.AuthTokenGetResponse\x12O\n\nBlobCreate\x12\x1f.modal.client.BlobCreateRequest\x1a .modal.client.BlobCreateResponse\x12\x46\n\x07\x42lobGet\x12\x1c.modal.client.BlobGetRequest\x1a\x1d.modal.client.BlobGetResponse\x12R\n\x0b\x43lassCreate\x12 .modal.client.ClassCreateRequest\x1a!.modal.client.ClassCreateResponse\x12I\n\x08\x43lassGet\x12\x1d.modal.client.ClassGetRequest\x1a\x1e.modal.client.ClassGetResponse\x12H\n\x0b\x43lientHello\x12\x16.google.protobuf.Empty\x1a!.modal.client.ClientHelloResponse\x12O\n\nClusterGet\x12\x1f.modal.client.ClusterGetRequest\x1a .modal.client.ClusterGetResponse\x12R\n\x0b\x43lusterList\x12 .modal.client.ClusterListRequest\x1a!.modal.client.ClusterListResponse\x12W\n\x13\x43ontainerCheckpoint\x12(.modal.client.ContainerCheckpointRequest\x1a\x16.google.protobuf.Empty\x12X\n\rContainerExec\x12\".modal.client.ContainerExecRequest\x1a#.modal.client.ContainerExecResponse\x12i\n\x16\x43ontainerExecGetOutput\x12+.modal.client.ContainerExecGetOutputRequest\x1a .modal.client.RuntimeOutputBatch0\x01\x12[\n\x15\x43ontainerExecPutInput\x12*.modal.client.ContainerExecPutInputRequest\x1a\x16.google.protobuf.Empty\x12\x64\n\x11\x43ontainerExecWait\x12&.modal.client.ContainerExecWaitRequest\x1a\'.modal.client.ContainerExecWaitResponse\x12v\n\x17\x43ontainerFilesystemExec\x12,.modal.client.ContainerFilesystemExecRequest\x1a-.modal.client.ContainerFilesystemExecResponse\x12\x87\x01\n ContainerFilesystemExecGetOutput\x12\x35.modal.client.ContainerFilesystemExecGetOutputRequest\x1a*.modal.client.FilesystemRuntimeOutputBatch0\x01\x12g\n\x12\x43ontainerHeartbeat\x12\'.modal.client.ContainerHeartbeatRequest\x1a(.modal.client.ContainerHeartbeatResponse\x12@\n\x0e\x43ontainerHello\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\x12I\n\x0c\x43ontainerLog\x12!.modal.client.ContainerLogRequest\x1a\x16.google.protobuf.Empty\x12s\n\x16\x43ontainerReloadVolumes\x12+.modal.client.ContainerReloadVolumesRequest\x1a,.modal.client.ContainerReloadVolumesResponse\x12X\n\rContainerStop\x12\".modal.client.ContainerStopRequest\x1a#.modal.client.ContainerStopResponse\x12\x43\n\tDictClear\x12\x1e.modal.client.DictClearRequest\x1a\x16.google.protobuf.Empty\x12U\n\x0c\x44ictContains\x12!.modal.client.DictContainsRequest\x1a\".modal.client.DictContainsResponse\x12L\n\x0c\x44ictContents\x12!.modal.client.DictContentsRequest\x1a\x17.modal.client.DictEntry0\x01\x12\x45\n\nDictDelete\x12\x1f.modal.client.DictDeleteRequest\x1a\x16.google.protobuf.Empty\x12\x46\n\x07\x44ictGet\x12\x1c.modal.client.DictGetRequest\x1a\x1d.modal.client.DictGetResponse\x12^\n\x0f\x44ictGetOrCreate\x12$.modal.client.DictGetOrCreateRequest\x1a%.modal.client.DictGetOrCreateResponse\x12K\n\rDictHeartbeat\x12\".modal.client.DictHeartbeatRequest\x1a\x16.google.protobuf.Empty\x12\x46\n\x07\x44ictLen\x12\x1c.modal.client.DictLenRequest\x1a\x1d.modal.client.DictLenResponse\x12I\n\x08\x44ictList\x12\x1d.modal.client.DictListRequest\x1a\x1e.modal.client.DictListResponse\x12\x46\n\x07\x44ictPop\x12\x1c.modal.client.DictPopRequest\x1a\x1d.modal.client.DictPopResponse\x12O\n\nDictUpdate\x12\x1f.modal.client.DictUpdateRequest\x1a .modal.client.DictUpdateResponse\x12v\n\x17\x44omainCertificateVerify\x12,.modal.client.DomainCertificateVerifyRequest\x1a-.modal.client.DomainCertificateVerifyResponse\x12U\n\x0c\x44omainCreate\x12!.modal.client.DomainCreateRequest\x1a\".modal.client.DomainCreateResponse\x12O\n\nDomainList\x12\x1f.modal.client.DomainListRequest\x1a .modal.client.DomainListResponse\x12S\n\x11\x45nvironmentCreate\x12&.modal.client.EnvironmentCreateRequest\x1a\x16.google.protobuf.Empty\x12S\n\x11\x45nvironmentDelete\x12&.modal.client.EnvironmentDeleteRequest\x1a\x16.google.protobuf.Empty\x12s\n\x16\x45nvironmentGetOrCreate\x12+.modal.client.EnvironmentGetOrCreateRequest\x1a,.modal.client.EnvironmentGetOrCreateResponse\x12P\n\x0f\x45nvironmentList\x12\x16.google.protobuf.Empty\x1a%.modal.client.EnvironmentListResponse\x12^\n\x11\x45nvironmentUpdate\x12&.modal.client.EnvironmentUpdateRequest\x1a!.modal.client.EnvironmentListItem\x12\x61\n\x18\x46lashContainerDeregister\x12-.modal.client.FlashContainerDeregisterRequest\x1a\x16.google.protobuf.Empty\x12g\n\x12\x46lashContainerList\x12\'.modal.client.FlashContainerListRequest\x1a(.modal.client.FlashContainerListResponse\x12s\n\x16\x46lashContainerRegister\x12+.modal.client.FlashContainerRegisterRequest\x1a,.modal.client.FlashContainerRegisterResponse\x12j\n\x13\x46unctionAsyncInvoke\x12(.modal.client.FunctionAsyncInvokeRequest\x1a).modal.client.FunctionAsyncInvokeResponse\x12g\n\x12\x46unctionBindParams\x12\'.modal.client.FunctionBindParamsRequest\x1a(.modal.client.FunctionBindParamsResponse\x12U\n\x12\x46unctionCallCancel\x12\'.modal.client.FunctionCallCancelRequest\x1a\x16.google.protobuf.Empty\x12\\\n\x15\x46unctionCallGetDataIn\x12(.modal.client.FunctionCallGetDataRequest\x1a\x17.modal.client.DataChunk0\x01\x12]\n\x16\x46unctionCallGetDataOut\x12(.modal.client.FunctionCallGetDataRequest\x1a\x17.modal.client.DataChunk0\x01\x12\x61\n\x10\x46unctionCallList\x12%.modal.client.FunctionCallListRequest\x1a&.modal.client.FunctionCallListResponse\x12Z\n\x16\x46unctionCallPutDataOut\x12(.modal.client.FunctionCallPutDataRequest\x1a\x16.google.protobuf.Empty\x12[\n\x0e\x46unctionCreate\x12#.modal.client.FunctionCreateRequest\x1a$.modal.client.FunctionCreateResponse\x12R\n\x0b\x46unctionGet\x12 .modal.client.FunctionGetRequest\x1a!.modal.client.FunctionGetResponse\x12m\n\x14\x46unctionGetCallGraph\x12).modal.client.FunctionGetCallGraphRequest\x1a*.modal.client.FunctionGetCallGraphResponse\x12\x64\n\x17\x46unctionGetCurrentStats\x12,.modal.client.FunctionGetCurrentStatsRequest\x1a\x1b.modal.client.FunctionStats\x12\x88\x01\n\x1d\x46unctionGetDynamicConcurrency\x12\x32.modal.client.FunctionGetDynamicConcurrencyRequest\x1a\x33.modal.client.FunctionGetDynamicConcurrencyResponse\x12\x64\n\x11\x46unctionGetInputs\x12&.modal.client.FunctionGetInputsRequest\x1a\'.modal.client.FunctionGetInputsResponse\x12g\n\x12\x46unctionGetOutputs\x12\'.modal.client.FunctionGetOutputsRequest\x1a(.modal.client.FunctionGetOutputsResponse\x12p\n\x15\x46unctionGetSerialized\x12*.modal.client.FunctionGetSerializedRequest\x1a+.modal.client.FunctionGetSerializedResponse\x12R\n\x0b\x46unctionMap\x12 .modal.client.FunctionMapRequest\x1a!.modal.client.FunctionMapResponse\x12\x64\n\x11\x46unctionPrecreate\x12&.modal.client.FunctionPrecreateRequest\x1a\'.modal.client.FunctionPrecreateResponse\x12\x64\n\x11\x46unctionPutInputs\x12&.modal.client.FunctionPutInputsRequest\x1a\'.modal.client.FunctionPutInputsResponse\x12U\n\x12\x46unctionPutOutputs\x12\'.modal.client.FunctionPutOutputsRequest\x1a\x16.google.protobuf.Empty\x12j\n\x13\x46unctionRetryInputs\x12(.modal.client.FunctionRetryInputsRequest\x1a).modal.client.FunctionRetryInputsResponse\x12G\n\x15\x46unctionStartPtyShell\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\x12\x8b\x01\n\x1e\x46unctionUpdateSchedulingParams\x12\x33.modal.client.FunctionUpdateSchedulingParamsRequest\x1a\x34.modal.client.FunctionUpdateSchedulingParamsResponse\x12R\n\x0bImageFromId\x12 .modal.client.ImageFromIdRequest\x1a!.modal.client.ImageFromIdResponse\x12\x61\n\x10ImageGetOrCreate\x12%.modal.client.ImageGetOrCreateRequest\x1a&.modal.client.ImageGetOrCreateResponse\x12i\n\x12ImageJoinStreaming\x12\'.modal.client.ImageJoinStreamingRequest\x1a(.modal.client.ImageJoinStreamingResponse0\x01\x12I\n\x08MapAwait\x12\x1d.modal.client.MapAwaitRequest\x1a\x1e.modal.client.MapAwaitResponse\x12g\n\x12MapStartOrContinue\x12\'.modal.client.MapStartOrContinueRequest\x1a(.modal.client.MapStartOrContinueResponse\x12\x61\n\x10MountGetOrCreate\x12%.modal.client.MountGetOrCreateRequest\x1a&.modal.client.MountGetOrCreateResponse\x12U\n\x0cMountPutFile\x12!.modal.client.MountPutFileRequest\x1a\".modal.client.MountPutFileResponse\x12i\n\x1cNotebookKernelPublishResults\x12\x31.modal.client.NotebookKernelPublishResultsRequest\x1a\x16.google.protobuf.Empty\x12O\n\nProxyAddIp\x12\x1f.modal.client.ProxyAddIpRequest\x1a .modal.client.ProxyAddIpResponse\x12R\n\x0bProxyCreate\x12 .modal.client.ProxyCreateRequest\x1a!.modal.client.ProxyCreateResponse\x12G\n\x0bProxyDelete\x12 .modal.client.ProxyDeleteRequest\x1a\x16.google.protobuf.Empty\x12I\n\x08ProxyGet\x12\x1d.modal.client.ProxyGetRequest\x1a\x1e.modal.client.ProxyGetResponse\x12\x61\n\x10ProxyGetOrCreate\x12%.modal.client.ProxyGetOrCreateRequest\x1a&.modal.client.ProxyGetOrCreateResponse\x12\x44\n\tProxyList\x12\x16.google.protobuf.Empty\x1a\x1f.modal.client.ProxyListResponse\x12K\n\rProxyRemoveIp\x12\".modal.client.ProxyRemoveIpRequest\x1a\x16.google.protobuf.Empty\x12\x45\n\nQueueClear\x12\x1f.modal.client.QueueClearRequest\x1a\x16.google.protobuf.Empty\x12G\n\x0bQueueDelete\x12 .modal.client.QueueDeleteRequest\x1a\x16.google.protobuf.Empty\x12I\n\x08QueueGet\x12\x1d.modal.client.QueueGetRequest\x1a\x1e.modal.client.QueueGetResponse\x12\x61\n\x10QueueGetOrCreate\x12%.modal.client.QueueGetOrCreateRequest\x1a&.modal.client.QueueGetOrCreateResponse\x12M\n\x0eQueueHeartbeat\x12#.modal.client.QueueHeartbeatRequest\x1a\x16.google.protobuf.Empty\x12I\n\x08QueueLen\x12\x1d.modal.client.QueueLenRequest\x1a\x1e.modal.client.QueueLenResponse\x12L\n\tQueueList\x12\x1e.modal.client.QueueListRequest\x1a\x1f.modal.client.QueueListResponse\x12[\n\x0eQueueNextItems\x12#.modal.client.QueueNextItemsRequest\x1a$.modal.client.QueueNextItemsResponse\x12\x41\n\x08QueuePut\x12\x1d.modal.client.QueuePutRequest\x1a\x16.google.protobuf.Empty\x12X\n\rSandboxCreate\x12\".modal.client.SandboxCreateRequest\x1a#.modal.client.SandboxCreateResponse\x12g\n\x12SandboxGetFromName\x12\'.modal.client.SandboxGetFromNameRequest\x1a(.modal.client.SandboxGetFromNameResponse\x12T\n\x0eSandboxGetLogs\x12#.modal.client.SandboxGetLogsRequest\x1a\x1b.modal.client.TaskLogsBatch0\x01\x12v\n\x17SandboxGetResourceUsage\x12,.modal.client.SandboxGetResourceUsageRequest\x1a-.modal.client.SandboxGetResourceUsageResponse\x12\x61\n\x10SandboxGetTaskId\x12%.modal.client.SandboxGetTaskIdRequest\x1a&.modal.client.SandboxGetTaskIdResponse\x12\x64\n\x11SandboxGetTunnels\x12&.modal.client.SandboxGetTunnelsRequest\x1a\'.modal.client.SandboxGetTunnelsResponse\x12R\n\x0bSandboxList\x12 .modal.client.SandboxListRequest\x1a!.modal.client.SandboxListResponse\x12[\n\x0eSandboxRestore\x12#.modal.client.SandboxRestoreRequest\x1a$.modal.client.SandboxRestoreResponse\x12^\n\x0fSandboxSnapshot\x12$.modal.client.SandboxSnapshotRequest\x1a%.modal.client.SandboxSnapshotResponse\x12\x64\n\x11SandboxSnapshotFs\x12&.modal.client.SandboxSnapshotFsRequest\x1a\'.modal.client.SandboxSnapshotFsResponse\x12g\n\x12SandboxSnapshotGet\x12\'.modal.client.SandboxSnapshotGetRequest\x1a(.modal.client.SandboxSnapshotGetResponse\x12j\n\x13SandboxSnapshotWait\x12(.modal.client.SandboxSnapshotWaitRequest\x1a).modal.client.SandboxSnapshotWaitResponse\x12\x64\n\x11SandboxStdinWrite\x12&.modal.client.SandboxStdinWriteRequest\x1a\'.modal.client.SandboxStdinWriteResponse\x12M\n\x0eSandboxTagsSet\x12#.modal.client.SandboxTagsSetRequest\x1a\x16.google.protobuf.Empty\x12\x61\n\x10SandboxTerminate\x12%.modal.client.SandboxTerminateRequest\x1a&.modal.client.SandboxTerminateResponse\x12R\n\x0bSandboxWait\x12 .modal.client.SandboxWaitRequest\x1a!.modal.client.SandboxWaitResponse\x12I\n\x0cSecretDelete\x12!.modal.client.SecretDeleteRequest\x1a\x16.google.protobuf.Empty\x12\x64\n\x11SecretGetOrCreate\x12&.modal.client.SecretGetOrCreateRequest\x1a\'.modal.client.SecretGetOrCreateResponse\x12O\n\nSecretList\x12\x1f.modal.client.SecretListRequest\x1a .modal.client.SecretListResponse\x12U\n\x12SharedVolumeDelete\x12\'.modal.client.SharedVolumeDeleteRequest\x1a\x16.google.protobuf.Empty\x12j\n\x13SharedVolumeGetFile\x12(.modal.client.SharedVolumeGetFileRequest\x1a).modal.client.SharedVolumeGetFileResponse\x12v\n\x17SharedVolumeGetOrCreate\x12,.modal.client.SharedVolumeGetOrCreateRequest\x1a-.modal.client.SharedVolumeGetOrCreateResponse\x12[\n\x15SharedVolumeHeartbeat\x12*.modal.client.SharedVolumeHeartbeatRequest\x1a\x16.google.protobuf.Empty\x12\x61\n\x10SharedVolumeList\x12%.modal.client.SharedVolumeListRequest\x1a&.modal.client.SharedVolumeListResponse\x12p\n\x15SharedVolumeListFiles\x12*.modal.client.SharedVolumeListFilesRequest\x1a+.modal.client.SharedVolumeListFilesResponse\x12x\n\x1bSharedVolumeListFilesStream\x12*.modal.client.SharedVolumeListFilesRequest\x1a+.modal.client.SharedVolumeListFilesResponse0\x01\x12j\n\x13SharedVolumePutFile\x12(.modal.client.SharedVolumePutFileRequest\x1a).modal.client.SharedVolumePutFileResponse\x12]\n\x16SharedVolumeRemoveFile\x12+.modal.client.SharedVolumeRemoveFileRequest\x1a\x16.google.protobuf.Empty\x12\x61\n\x10TaskClusterHello\x12%.modal.client.TaskClusterHelloRequest\x1a&.modal.client.TaskClusterHelloResponse\x12T\n\x11TaskCurrentInputs\x12\x16.google.protobuf.Empty\x1a\'.modal.client.TaskCurrentInputsResponse\x12I\n\x08TaskList\x12\x1d.modal.client.TaskListRequest\x1a\x1e.modal.client.TaskListResponse\x12\x45\n\nTaskResult\x12\x1f.modal.client.TaskResultRequest\x1a\x16.google.protobuf.Empty\x12^\n\x0fTokenFlowCreate\x12$.modal.client.TokenFlowCreateRequest\x1a%.modal.client.TokenFlowCreateResponse\x12X\n\rTokenFlowWait\x12\".modal.client.TokenFlowWaitRequest\x1a#.modal.client.TokenFlowWaitResponse\x12R\n\x0bTunnelStart\x12 .modal.client.TunnelStartRequest\x1a!.modal.client.TunnelStartResponse\x12O\n\nTunnelStop\x12\x1f.modal.client.TunnelStopRequest\x1a .modal.client.TunnelStopResponse\x12U\n\x0cVolumeCommit\x12!.modal.client.VolumeCommitRequest\x1a\".modal.client.VolumeCommitResponse\x12O\n\x0fVolumeCopyFiles\x12$.modal.client.VolumeCopyFilesRequest\x1a\x16.google.protobuf.Empty\x12Q\n\x10VolumeCopyFiles2\x12%.modal.client.VolumeCopyFiles2Request\x1a\x16.google.protobuf.Empty\x12I\n\x0cVolumeDelete\x12!.modal.client.VolumeDeleteRequest\x1a\x16.google.protobuf.Empty\x12X\n\rVolumeGetFile\x12\".modal.client.VolumeGetFileRequest\x1a#.modal.client.VolumeGetFileResponse\x12[\n\x0eVolumeGetFile2\x12#.modal.client.VolumeGetFile2Request\x1a$.modal.client.VolumeGetFile2Response\x12\x64\n\x11VolumeGetOrCreate\x12&.modal.client.VolumeGetOrCreateRequest\x1a\'.modal.client.VolumeGetOrCreateResponse\x12O\n\x0fVolumeHeartbeat\x12$.modal.client.VolumeHeartbeatRequest\x1a\x16.google.protobuf.Empty\x12O\n\nVolumeList\x12\x1f.modal.client.VolumeListRequest\x1a .modal.client.VolumeListResponse\x12`\n\x0fVolumeListFiles\x12$.modal.client.VolumeListFilesRequest\x1a%.modal.client.VolumeListFilesResponse0\x01\x12\x63\n\x10VolumeListFiles2\x12%.modal.client.VolumeListFiles2Request\x1a&.modal.client.VolumeListFiles2Response0\x01\x12M\n\x0eVolumePutFiles\x12#.modal.client.VolumePutFilesRequest\x1a\x16.google.protobuf.Empty\x12^\n\x0fVolumePutFiles2\x12$.modal.client.VolumePutFiles2Request\x1a%.modal.client.VolumePutFiles2Response\x12I\n\x0cVolumeReload\x12!.modal.client.VolumeReloadRequest\x1a\x16.google.protobuf.Empty\x12Q\n\x10VolumeRemoveFile\x12%.modal.client.VolumeRemoveFileRequest\x1a\x16.google.protobuf.Empty\x12S\n\x11VolumeRemoveFile2\x12&.modal.client.VolumeRemoveFile2Request\x1a\x16.google.protobuf.Empty\x12I\n\x0cVolumeRename\x12!.modal.client.VolumeRenameRequest\x1a\x16.google.protobuf.Empty\x12X\n\x13WorkspaceNameLookup\x12\x16.google.protobuf.Empty\x1a).modal.client.WorkspaceNameLookupResponseB&Z$github.com/modal-labs/modal/go/protob\x06proto3')
22
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15modal_proto/api.proto\x12\x0cmodal.client\x1a\x19modal_proto/options.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/wrappers.proto\"r\n\x1a\x41ppClientDisconnectRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x31\n\x06reason\x18\x02 \x01(\x0e\x32!.modal.client.AppDisconnectReason\x12\x11\n\texception\x18\x03 \x01(\t\"\x85\x01\n\x10\x41ppCreateRequest\x12\x17\n\tclient_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x05 \x01(\t\x12)\n\tapp_state\x18\x06 \x01(\x0e\x32\x16.modal.client.AppState\"O\n\x11\x41ppCreateResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x14\n\x0c\x61pp_page_url\x18\x02 \x01(\t\x12\x14\n\x0c\x61pp_logs_url\x18\x03 \x01(\t\"\x97\x01\n\x10\x41ppDeployRequest\x12\x14\n\x06\x61pp_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x15\n\robject_entity\x18\x04 \x01(\t\x12\x35\n\nvisibility\x18\x05 \x01(\x0e\x32!.modal.client.AppDeployVisibility\x12\x0b\n\x03tag\x18\x06 \x01(\tJ\x04\x08\x02\x10\x03\" \n\x11\x41ppDeployResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\"\x9e\x02\n\x14\x41ppDeploymentHistory\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\r\x12\x16\n\x0e\x63lient_version\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65ployed_at\x18\x04 \x01(\x01\x12\x13\n\x0b\x64\x65ployed_by\x18\x05 \x01(\t\x12\x1e\n\x16\x64\x65ployed_by_avatar_url\x18\t \x01(\t\x12\x0b\n\x03tag\x18\x06 \x01(\t\x12\x18\n\x10rollback_version\x18\x07 \x01(\r\x12\x18\n\x10rollback_allowed\x18\x08 \x01(\x08\x12\x32\n\x0b\x63ommit_info\x18\n \x01(\x0b\x32\x18.modal.client.CommitInfoH\x00\x88\x01\x01\x42\x0e\n\x0c_commit_info\"-\n\x1b\x41ppDeploymentHistoryRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\"d\n\x1c\x41ppDeploymentHistoryResponse\x12\x44\n\x18\x61pp_deployment_histories\x18\x01 \x03(\x0b\x32\".modal.client.AppDeploymentHistory\"M\n\x1d\x41ppGetByDeploymentNameRequest\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\tJ\x04\x08\x01\x10\x02\"0\n\x1e\x41ppGetByDeploymentNameResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\"%\n\x13\x41ppGetLayoutRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\"C\n\x14\x41ppGetLayoutResponse\x12+\n\napp_layout\x18\x01 \x01(\x0b\x32\x17.modal.client.AppLayout\"\xe8\x01\n\x11\x41ppGetLogsRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\x12\x15\n\rlast_entry_id\x18\x04 \x01(\t\x12\x13\n\x0b\x66unction_id\x18\x05 \x01(\t\x12\x10\n\x08input_id\x18\x06 \x01(\t\x12\x0f\n\x07task_id\x18\x07 \x01(\t\x12\x18\n\x10\x66unction_call_id\x18\t \x01(\t\x12\x35\n\x0f\x66ile_descriptor\x18\x08 \x01(\x0e\x32\x1c.modal.client.FileDescriptor\x12\x12\n\nsandbox_id\x18\n \x01(\t\"F\n\x11\x41ppGetObjectsItem\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12$\n\x06object\x18\x06 \x01(\x0b\x32\x14.modal.client.Object\"^\n\x14\x41ppGetObjectsRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x19\n\x11include_unindexed\x18\x02 \x01(\x08\x12\x1b\n\x13only_class_function\x18\x03 \x01(\x08\"G\n\x15\x41ppGetObjectsResponse\x12.\n\x05items\x18\x02 \x03(\x0b\x32\x1f.modal.client.AppGetObjectsItem\"\x83\x01\n\x15\x41ppGetOrCreateRequest\x12\x10\n\x08\x61pp_name\x18\x01 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x02 \x01(\t\x12>\n\x14object_creation_type\x18\x03 \x01(\x0e\x32 .modal.client.ObjectCreationType\"(\n\x16\x41ppGetOrCreateResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\"%\n\x13\x41ppHeartbeatRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\"\x91\x02\n\tAppLayout\x12%\n\x07objects\x18\x01 \x03(\x0b\x32\x14.modal.client.Object\x12>\n\x0c\x66unction_ids\x18\x02 \x03(\x0b\x32(.modal.client.AppLayout.FunctionIdsEntry\x12\x38\n\tclass_ids\x18\x03 \x03(\x0b\x32%.modal.client.AppLayout.ClassIdsEntry\x1a\x32\n\x10\x46unctionIdsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rClassIdsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"*\n\x0e\x41ppListRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\"\xf5\x01\n\x0f\x41ppListResponse\x12\x37\n\x04\x61pps\x18\x01 \x03(\x0b\x32).modal.client.AppListResponse.AppListItem\x1a\xa8\x01\n\x0b\x41ppListItem\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12%\n\x05state\x18\x04 \x01(\x0e\x32\x16.modal.client.AppState\x12\x12\n\ncreated_at\x18\x05 \x01(\x01\x12\x12\n\nstopped_at\x18\x06 \x01(\x01\x12\x17\n\x0fn_running_tasks\x18\x08 \x01(\x05\x12\x0c\n\x04name\x18\n \x01(\t\">\n\x10\x41ppLookupRequest\x12\x10\n\x08\x61pp_name\x18\x02 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\"#\n\x11\x41ppLookupResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\"\xcc\x04\n\x11\x41ppPublishRequest\x12\x14\n\x06\x61pp_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x16\n\x0e\x64\x65ployment_tag\x18\x03 \x01(\t\x12)\n\tapp_state\x18\x04 \x01(\x0e\x32\x16.modal.client.AppState\x12\x46\n\x0c\x66unction_ids\x18\x05 \x03(\x0b\x32\x30.modal.client.AppPublishRequest.FunctionIdsEntry\x12@\n\tclass_ids\x18\x06 \x03(\x0b\x32-.modal.client.AppPublishRequest.ClassIdsEntry\x12J\n\x0e\x64\x65\x66inition_ids\x18\x07 \x03(\x0b\x32\x32.modal.client.AppPublishRequest.DefinitionIdsEntry\x12\x18\n\x10rollback_version\x18\x08 \x01(\r\x12\x16\n\x0e\x63lient_version\x18\t \x01(\t\x12-\n\x0b\x63ommit_info\x18\n \x01(\x0b\x32\x18.modal.client.CommitInfo\x1a\x32\n\x10\x46unctionIdsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rClassIdsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x34\n\x12\x44\x65\x66initionIdsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"Q\n\x12\x41ppPublishResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\x12.\n\x0fserver_warnings\x18\x03 \x03(\x0b\x32\x15.modal.client.Warning\"5\n\x12\x41ppRollbackRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\x05\"\x9b\x02\n\x14\x41ppSetObjectsRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12T\n\x12indexed_object_ids\x18\x02 \x03(\x0b\x32\x38.modal.client.AppSetObjectsRequest.IndexedObjectIdsEntry\x12\x11\n\tclient_id\x18\x03 \x01(\t\x12\x1c\n\x14unindexed_object_ids\x18\x04 \x03(\t\x12-\n\rnew_app_state\x18\x05 \x01(\x0e\x32\x16.modal.client.AppState\x1a\x37\n\x15IndexedObjectIdsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01J\x04\x08\x06\x10\x07\"S\n\x0e\x41ppStopRequest\x12\x14\n\x06\x61pp_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12+\n\x06source\x18\x02 \x01(\x0e\x32\x1b.modal.client.AppStopSource\"\xa3\x0e\n\x04\x41sgi\x12\'\n\x04http\x18\x01 \x01(\x0b\x32\x17.modal.client.Asgi.HttpH\x00\x12\x36\n\x0chttp_request\x18\x02 \x01(\x0b\x32\x1e.modal.client.Asgi.HttpRequestH\x00\x12\x43\n\x13http_response_start\x18\x03 \x01(\x0b\x32$.modal.client.Asgi.HttpResponseStartH\x00\x12\x41\n\x12http_response_body\x18\x04 \x01(\x0b\x32#.modal.client.Asgi.HttpResponseBodyH\x00\x12I\n\x16http_response_trailers\x18\x05 \x01(\x0b\x32\'.modal.client.Asgi.HttpResponseTrailersH\x00\x12<\n\x0fhttp_disconnect\x18\x06 \x01(\x0b\x32!.modal.client.Asgi.HttpDisconnectH\x00\x12\x31\n\twebsocket\x18\x07 \x01(\x0b\x32\x1c.modal.client.Asgi.WebsocketH\x00\x12@\n\x11websocket_connect\x18\x08 \x01(\x0b\x32#.modal.client.Asgi.WebsocketConnectH\x00\x12>\n\x10websocket_accept\x18\t \x01(\x0b\x32\".modal.client.Asgi.WebsocketAcceptH\x00\x12@\n\x11websocket_receive\x18\n \x01(\x0b\x32#.modal.client.Asgi.WebsocketReceiveH\x00\x12:\n\x0ewebsocket_send\x18\x0b \x01(\x0b\x32 .modal.client.Asgi.WebsocketSendH\x00\x12\x46\n\x14websocket_disconnect\x18\x0c \x01(\x0b\x32&.modal.client.Asgi.WebsocketDisconnectH\x00\x12<\n\x0fwebsocket_close\x18\r \x01(\x0b\x32!.modal.client.Asgi.WebsocketCloseH\x00\x1a\xc5\x01\n\x04Http\x12\x14\n\x0chttp_version\x18\x01 \x01(\t\x12\x0e\n\x06method\x18\x02 \x01(\t\x12\x0e\n\x06scheme\x18\x03 \x01(\t\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\x14\n\x0cquery_string\x18\x05 \x01(\x0c\x12\x0f\n\x07headers\x18\x06 \x03(\x0c\x12\x18\n\x0b\x63lient_host\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x63lient_port\x18\x08 \x01(\rH\x01\x88\x01\x01\x42\x0e\n\x0c_client_hostB\x0e\n\x0c_client_port\x1a.\n\x0bHttpRequest\x12\x0c\n\x04\x62ody\x18\x01 \x01(\x0c\x12\x11\n\tmore_body\x18\x02 \x01(\x08\x1a\x46\n\x11HttpResponseStart\x12\x0e\n\x06status\x18\x01 \x01(\r\x12\x0f\n\x07headers\x18\x02 \x03(\x0c\x12\x10\n\x08trailers\x18\x03 \x01(\x08\x1a\x33\n\x10HttpResponseBody\x12\x0c\n\x04\x62ody\x18\x01 \x01(\x0c\x12\x11\n\tmore_body\x18\x02 \x01(\x08\x1a>\n\x14HttpResponseTrailers\x12\x0f\n\x07headers\x18\x01 \x03(\x0c\x12\x15\n\rmore_trailers\x18\x02 \x01(\x08\x1a\x10\n\x0eHttpDisconnect\x1a\xd0\x01\n\tWebsocket\x12\x14\n\x0chttp_version\x18\x01 \x01(\t\x12\x0e\n\x06scheme\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\x14\n\x0cquery_string\x18\x04 \x01(\x0c\x12\x0f\n\x07headers\x18\x05 \x03(\x0c\x12\x18\n\x0b\x63lient_host\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x63lient_port\x18\x07 \x01(\rH\x01\x88\x01\x01\x12\x14\n\x0csubprotocols\x18\x08 \x03(\tB\x0e\n\x0c_client_hostB\x0e\n\x0c_client_port\x1a\x12\n\x10WebsocketConnect\x1aL\n\x0fWebsocketAccept\x12\x18\n\x0bsubprotocol\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07headers\x18\x02 \x03(\x0c\x42\x0e\n\x0c_subprotocol\x1a>\n\x10WebsocketReceive\x12\x0f\n\x05\x62ytes\x18\x01 \x01(\x0cH\x00\x12\x0e\n\x04text\x18\x02 \x01(\tH\x00\x42\t\n\x07\x63ontent\x1a;\n\rWebsocketSend\x12\x0f\n\x05\x62ytes\x18\x01 \x01(\x0cH\x00\x12\x0e\n\x04text\x18\x02 \x01(\tH\x00\x42\t\n\x07\x63ontent\x1a\x31\n\x13WebsocketDisconnect\x12\x11\n\x04\x63ode\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x07\n\x05_code\x1a<\n\x0eWebsocketClose\x12\x11\n\x04\x63ode\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x0e\n\x06reason\x18\x02 \x01(\tB\x07\n\x05_codeB\x06\n\x04type\"X\n\x13\x41ttemptAwaitRequest\x12\x15\n\rattempt_token\x18\x01 \x01(\t\x12\x14\n\x0crequested_at\x18\x02 \x01(\x01\x12\x14\n\x0ctimeout_secs\x18\x03 \x01(\x02\"\\\n\x14\x41ttemptAwaitResponse\x12\x39\n\x06output\x18\x01 \x01(\x0b\x32$.modal.client.FunctionGetOutputsItemH\x00\x88\x01\x01\x42\t\n\x07_output\"\x8e\x01\n\x13\x41ttemptRetryRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x17\n\x0fparent_input_id\x18\x02 \x01(\t\x12\x32\n\x05input\x18\x03 \x01(\x0b\x32#.modal.client.FunctionPutInputsItem\x12\x15\n\rattempt_token\x18\x04 \x01(\t\"-\n\x14\x41ttemptRetryResponse\x12\x15\n\rattempt_token\x18\x01 \x01(\t\"w\n\x13\x41ttemptStartRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x17\n\x0fparent_input_id\x18\x02 \x01(\t\x12\x32\n\x05input\x18\x03 \x01(\x0b\x32#.modal.client.FunctionPutInputsItem\"f\n\x14\x41ttemptStartResponse\x12\x15\n\rattempt_token\x18\x01 \x01(\t\x12\x37\n\x0cretry_policy\x18\x02 \x01(\x0b\x32!.modal.client.FunctionRetryPolicy\"\x15\n\x13\x41uthTokenGetRequest\"%\n\x14\x41uthTokenGetResponse\x12\r\n\x05token\x18\x01 \x01(\t\"\x8e\x02\n\x12\x41utoscalerSettings\x12\x1b\n\x0emin_containers\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0emax_containers\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x11\x62uffer_containers\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1b\n\x0escaleup_window\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10scaledown_window\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x11\n\x0f_min_containersB\x11\n\x0f_max_containersB\x14\n\x12_buffer_containersB\x11\n\x0f_scaleup_windowB\x13\n\x11_scaledown_window\"7\n\tBaseImage\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12\x12\n\ndocker_tag\x18\x02 \x01(\tJ\x04\x08\x04\x10\x05\"_\n\x11\x42lobCreateRequest\x12\x13\n\x0b\x63ontent_md5\x18\x01 \x01(\t\x12\x1d\n\x15\x63ontent_sha256_base64\x18\x02 \x01(\t\x12\x16\n\x0e\x63ontent_length\x18\x03 \x01(\x03\"\x99\x02\n\x12\x42lobCreateResponse\x12\x0f\n\x07\x62lob_id\x18\x02 \x01(\t\x12\x14\n\nupload_url\x18\x01 \x01(\tH\x00\x12\x32\n\tmultipart\x18\x03 \x01(\x0b\x32\x1d.modal.client.MultiPartUploadH\x00\x12\x10\n\x08\x62lob_ids\x18\x04 \x03(\t\x12\x32\n\x0bupload_urls\x18\x05 \x01(\x0b\x32\x1b.modal.client.UploadUrlListH\x01\x12\x37\n\nmultiparts\x18\x06 \x01(\x0b\x32!.modal.client.MultiPartUploadListH\x01\x42\x13\n\x11upload_type_oneofB\x14\n\x12upload_types_oneof\"!\n\x0e\x42lobGetRequest\x12\x0f\n\x07\x62lob_id\x18\x01 \x01(\t\"\'\n\x0f\x42lobGetResponse\x12\x14\n\x0c\x64ownload_url\x18\x01 \x01(\t\"`\n\rBuildFunction\x12\x12\n\ndefinition\x18\x01 \x01(\t\x12\x0f\n\x07globals\x18\x02 \x01(\x0c\x12*\n\x05input\x18\x03 \x01(\x0b\x32\x1b.modal.client.FunctionInput\"C\n\x10\x43\x61ncelInputEvent\x12\x11\n\tinput_ids\x18\x01 \x03(\t\x12\x1c\n\x14terminate_containers\x18\x02 \x01(\x08\"\xf3\x01\n\x0e\x43heckpointInfo\x12\x10\n\x08\x63hecksum\x18\x01 \x01(\t\x12.\n\x06status\x18\x02 \x01(\x0e\x32\x1e.modal.client.CheckpointStatus\x12\x15\n\rcheckpoint_id\x18\x03 \x01(\t\x12\x1b\n\x13runtime_fingerprint\x18\x04 \x01(\t\x12\x0c\n\x04size\x18\x05 \x01(\x03\x12\x1e\n\x16\x63hecksum_is_file_index\x18\x06 \x01(\x08\x12\x18\n\x10original_task_id\x18\x07 \x01(\t\x12\x1d\n\x15runsc_runtime_version\x18\t \x01(\tJ\x04\x08\x08\x10\t\"\x94\x01\n\x12\x43lassCreateRequest\x12\x14\n\x06\x61pp_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x19\n\x11\x65xisting_class_id\x18\x02 \x01(\t\x12*\n\x07methods\x18\x03 \x03(\x0b\x32\x19.modal.client.ClassMethod\x12\x1b\n\x13only_class_function\x18\x05 \x01(\x08J\x04\x08\x04\x10\x05\"c\n\x13\x43lassCreateResponse\x12\x10\n\x08\x63lass_id\x18\x01 \x01(\t\x12:\n\x0fhandle_metadata\x18\x02 \x01(\x0b\x32!.modal.client.ClassHandleMetadata\"\x80\x01\n\x0f\x43lassGetRequest\x12\x10\n\x08\x61pp_name\x18\x01 \x01(\t\x12\x12\n\nobject_tag\x18\x02 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\t\x12\x1b\n\x13only_class_function\x18\n \x01(\x08J\x04\x08\x03\x10\x04J\x04\x08\x08\x10\tJ\x04\x08\t\x10\n\"\x90\x01\n\x10\x43lassGetResponse\x12\x10\n\x08\x63lass_id\x18\x01 \x01(\t\x12:\n\x0fhandle_metadata\x18\x02 \x01(\x0b\x32!.modal.client.ClassHandleMetadata\x12.\n\x0fserver_warnings\x18\x03 \x03(\x0b\x32\x15.modal.client.Warning\"\xa3\x01\n\x13\x43lassHandleMetadata\x12*\n\x07methods\x18\x01 \x03(\x0b\x32\x19.modal.client.ClassMethod\x12\x19\n\x11\x63lass_function_id\x18\x02 \x01(\t\x12\x45\n\x17\x63lass_function_metadata\x18\x03 \x01(\x0b\x32$.modal.client.FunctionHandleMetadata\"\x81\x01\n\x0b\x43lassMethod\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x13\n\x0b\x66unction_id\x18\x02 \x01(\t\x12\x46\n\x18\x66unction_handle_metadata\x18\x03 \x01(\x0b\x32$.modal.client.FunctionHandleMetadata\"\xaf\x02\n\x12\x43lassParameterInfo\x12M\n\x06\x66ormat\x18\x01 \x01(\x0e\x32=.modal.client.ClassParameterInfo.ParameterSerializationFormat\x12\x30\n\x06schema\x18\x02 \x03(\x0b\x32 .modal.client.ClassParameterSpec\"\x97\x01\n\x1cParameterSerializationFormat\x12*\n&PARAM_SERIALIZATION_FORMAT_UNSPECIFIED\x10\x00\x12%\n!PARAM_SERIALIZATION_FORMAT_PICKLE\x10\x01\x12$\n PARAM_SERIALIZATION_FORMAT_PROTO\x10\x02\"J\n\x11\x43lassParameterSet\x12\x35\n\nparameters\x18\x01 \x03(\x0b\x32!.modal.client.ClassParameterValue\"\xa4\x02\n\x12\x43lassParameterSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12)\n\x04type\x18\x02 \x01(\x0e\x32\x1b.modal.client.ParameterType\x12\x13\n\x0bhas_default\x18\x03 \x01(\x08\x12\x18\n\x0estring_default\x18\x04 \x01(\tH\x00\x12\x15\n\x0bint_default\x18\x05 \x01(\x03H\x00\x12\x18\n\x0epickle_default\x18\x06 \x01(\x0cH\x00\x12\x17\n\rbytes_default\x18\x07 \x01(\x0cH\x00\x12\x16\n\x0c\x62ool_default\x18\t \x01(\x08H\x00\x12\x33\n\tfull_type\x18\x08 \x01(\x0b\x32 .modal.client.GenericPayloadTypeB\x0f\n\rdefault_oneof\"\xcf\x01\n\x13\x43lassParameterValue\x12\x0c\n\x04name\x18\x01 \x01(\t\x12)\n\x04type\x18\x02 \x01(\x0e\x32\x1b.modal.client.ParameterType\x12\x16\n\x0cstring_value\x18\x03 \x01(\tH\x00\x12\x13\n\tint_value\x18\x04 \x01(\x03H\x00\x12\x16\n\x0cpickle_value\x18\x05 \x01(\x0cH\x00\x12\x15\n\x0b\x62ytes_value\x18\x06 \x01(\x0cH\x00\x12\x14\n\nbool_value\x18\x07 \x01(\x08H\x00\x42\r\n\x0bvalue_oneof\"u\n\x13\x43lientHelloResponse\x12\x0f\n\x07warning\x18\x01 \x01(\t\x12\x1d\n\x15image_builder_version\x18\x02 \x01(\t\x12.\n\x0fserver_warnings\x18\x04 \x03(\x0b\x32\x15.modal.client.Warning\"\x97\x03\n\x10\x43loudBucketMount\x12\x13\n\x0b\x62ucket_name\x18\x01 \x01(\t\x12\x12\n\nmount_path\x18\x02 \x01(\t\x12\x1d\n\x15\x63redentials_secret_id\x18\x03 \x01(\t\x12\x11\n\tread_only\x18\x04 \x01(\x08\x12>\n\x0b\x62ucket_type\x18\x05 \x01(\x0e\x32).modal.client.CloudBucketMount.BucketType\x12\x16\n\x0erequester_pays\x18\x06 \x01(\x08\x12 \n\x13\x62ucket_endpoint_url\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nkey_prefix\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12oidc_auth_role_arn\x18\t \x01(\tH\x02\x88\x01\x01\"6\n\nBucketType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x06\n\x02S3\x10\x01\x12\x06\n\x02R2\x10\x02\x12\x07\n\x03GCP\x10\x03\x42\x16\n\x14_bucket_endpoint_urlB\r\n\x0b_key_prefixB\x15\n\x13_oidc_auth_role_arn\"\'\n\x11\x43lusterGetRequest\x12\x12\n\ncluster_id\x18\x01 \x01(\t\"A\n\x12\x43lusterGetResponse\x12+\n\x07\x63luster\x18\x01 \x01(\x0b\x32\x1a.modal.client.ClusterStats\".\n\x12\x43lusterListRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\"C\n\x13\x43lusterListResponse\x12,\n\x08\x63lusters\x18\x01 \x03(\x0b\x32\x1a.modal.client.ClusterStats\"X\n\x0c\x43lusterStats\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x10\n\x08task_ids\x18\x02 \x03(\t\x12\x12\n\ncluster_id\x18\x03 \x01(\t\x12\x12\n\nstarted_at\x18\x04 \x01(\x01\"\xa4\x01\n\nCommitInfo\x12\x0b\n\x03vcs\x18\x01 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x02 \x01(\t\x12\x13\n\x0b\x63ommit_hash\x18\x03 \x01(\t\x12\x18\n\x10\x63ommit_timestamp\x18\x04 \x01(\x03\x12\r\n\x05\x64irty\x18\x05 \x01(\x08\x12\x13\n\x0b\x61uthor_name\x18\x06 \x01(\t\x12\x14\n\x0c\x61uthor_email\x18\x07 \x01(\t\x12\x10\n\x08repo_url\x18\x08 \x01(\t\"\xcc\x03\n\x12\x43ontainerArguments\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x13\n\x0b\x66unction_id\x18\x02 \x01(\t\x12\x0e\n\x06\x61pp_id\x18\x04 \x01(\t\x12,\n\x0c\x66unction_def\x18\x07 \x01(\x0b\x32\x16.modal.client.Function\x12+\n\nproxy_info\x18\x08 \x01(\x0b\x32\x17.modal.client.ProxyInfo\x12M\n\x0ftracing_context\x18\t \x03(\x0b\x32\x34.modal.client.ContainerArguments.TracingContextEntry\x12\x19\n\x11serialized_params\x18\n \x01(\x0c\x12\x0f\n\x07runtime\x18\x0b \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\r \x01(\t\x12\x1a\n\rcheckpoint_id\x18\x0e \x01(\tH\x00\x88\x01\x01\x12+\n\napp_layout\x18\x0f \x01(\x0b\x32\x17.modal.client.AppLayout\x1a\x35\n\x13TracingContextEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x10\n\x0e_checkpoint_id\"3\n\x1a\x43ontainerCheckpointRequest\x12\x15\n\rcheckpoint_id\x18\x01 \x01(\t\"\xa9\x01\n\x1d\x43ontainerExecGetOutputRequest\x12\x0f\n\x07\x65xec_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\x12\x18\n\x10last_batch_index\x18\x03 \x01(\x04\x12\x35\n\x0f\x66ile_descriptor\x18\x04 \x01(\x0e\x32\x1c.modal.client.FileDescriptor\x12\x15\n\rget_raw_bytes\x18\x05 \x01(\x08\"a\n\x1c\x43ontainerExecPutInputRequest\x12\x0f\n\x07\x65xec_id\x18\x01 \x01(\t\x12\x30\n\x05input\x18\x02 \x01(\x0b\x32!.modal.client.RuntimeInputMessage\"\xed\x02\n\x14\x43ontainerExecRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x02 \x03(\t\x12,\n\x08pty_info\x18\x03 \x01(\x0b\x32\x15.modal.client.PTYInfoH\x00\x88\x01\x01\x12\'\n\x1bterminate_container_on_exit\x18\x04 \x01(\x08\x42\x02\x18\x01\x12\x15\n\rruntime_debug\x18\x05 \x01(\x08\x12\x35\n\rstdout_output\x18\x06 \x01(\x0e\x32\x1e.modal.client.ExecOutputOption\x12\x35\n\rstderr_output\x18\x07 \x01(\x0e\x32\x1e.modal.client.ExecOutputOption\x12\x14\n\x0ctimeout_secs\x18\x08 \x01(\r\x12\x14\n\x07workdir\x18\t \x01(\tH\x01\x88\x01\x01\x12\x12\n\nsecret_ids\x18\n \x03(\tB\x0b\n\t_pty_infoB\n\n\x08_workdir\"(\n\x15\x43ontainerExecResponse\x12\x0f\n\x07\x65xec_id\x18\x01 \x01(\t\"<\n\x18\x43ontainerExecWaitRequest\x12\x0f\n\x07\x65xec_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\"T\n\x19\x43ontainerExecWaitResponse\x12\x16\n\texit_code\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\tcompleted\x18\x02 \x01(\x08\x42\x0c\n\n_exit_code\"4\n\x19\x43ontainerFileCloseRequest\x12\x17\n\x0f\x66ile_descriptor\x18\x01 \x01(\t\"\x9a\x01\n\x1f\x43ontainerFileDeleteBytesRequest\x12\x17\n\x0f\x66ile_descriptor\x18\x01 \x01(\t\x12\x1c\n\x0fstart_inclusive\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1a\n\rend_exclusive\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_start_inclusiveB\x10\n\x0e_end_exclusive\"4\n\x19\x43ontainerFileFlushRequest\x12\x17\n\x0f\x66ile_descriptor\x18\x01 \x01(\t\"&\n\x16\x43ontainerFileLsRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\"?\n\x19\x43ontainerFileMkdirRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x14\n\x0cmake_parents\x18\x02 \x01(\x08\"h\n\x18\x43ontainerFileOpenRequest\x12\x1c\n\x0f\x66ile_descriptor\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x0c\n\x04mode\x18\x03 \x01(\tB\x12\n\x10_file_descriptor\"7\n\x1c\x43ontainerFileReadLineRequest\x12\x17\n\x0f\x66ile_descriptor\x18\x01 \x01(\t\"I\n\x18\x43ontainerFileReadRequest\x12\x17\n\x0f\x66ile_descriptor\x18\x01 \x01(\t\x12\x0e\n\x01n\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x04\n\x02_n\"9\n\x16\x43ontainerFileRmRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x11\n\trecursive\x18\x02 \x01(\x08\"m\n\x18\x43ontainerFileSeekRequest\x12\x17\n\x0f\x66ile_descriptor\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\x05\x12(\n\x06whence\x18\x03 \x01(\x0e\x32\x18.modal.client.SeekWhence\"h\n\x19\x43ontainerFileWatchRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x11\n\trecursive\x18\x02 \x01(\x08\x12\x19\n\x0ctimeout_secs\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x0f\n\r_timeout_secs\"\xae\x01\n%ContainerFileWriteReplaceBytesRequest\x12\x17\n\x0f\x66ile_descriptor\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x1c\n\x0fstart_inclusive\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x1a\n\rend_exclusive\x18\x04 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_start_inclusiveB\x10\n\x0e_end_exclusive\"B\n\x19\x43ontainerFileWriteRequest\x12\x17\n\x0f\x66ile_descriptor\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"K\n\'ContainerFilesystemExecGetOutputRequest\x12\x0f\n\x07\x65xec_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\"\x83\x08\n\x1e\x43ontainerFilesystemExecRequest\x12\x43\n\x11\x66ile_open_request\x18\x01 \x01(\x0b\x32&.modal.client.ContainerFileOpenRequestH\x00\x12\x45\n\x12\x66ile_write_request\x18\x02 \x01(\x0b\x32\'.modal.client.ContainerFileWriteRequestH\x00\x12\x43\n\x11\x66ile_read_request\x18\x03 \x01(\x0b\x32&.modal.client.ContainerFileReadRequestH\x00\x12\x45\n\x12\x66ile_flush_request\x18\x04 \x01(\x0b\x32\'.modal.client.ContainerFileFlushRequestH\x00\x12L\n\x16\x66ile_read_line_request\x18\x05 \x01(\x0b\x32*.modal.client.ContainerFileReadLineRequestH\x00\x12\x43\n\x11\x66ile_seek_request\x18\x06 \x01(\x0b\x32&.modal.client.ContainerFileSeekRequestH\x00\x12R\n\x19\x66ile_delete_bytes_request\x18\x07 \x01(\x0b\x32-.modal.client.ContainerFileDeleteBytesRequestH\x00\x12_\n file_write_replace_bytes_request\x18\x08 \x01(\x0b\x32\x33.modal.client.ContainerFileWriteReplaceBytesRequestH\x00\x12\x45\n\x12\x66ile_close_request\x18\t \x01(\x0b\x32\'.modal.client.ContainerFileCloseRequestH\x00\x12?\n\x0f\x66ile_ls_request\x18\x0b \x01(\x0b\x32$.modal.client.ContainerFileLsRequestH\x00\x12\x45\n\x12\x66ile_mkdir_request\x18\x0c \x01(\x0b\x32\'.modal.client.ContainerFileMkdirRequestH\x00\x12?\n\x0f\x66ile_rm_request\x18\r \x01(\x0b\x32$.modal.client.ContainerFileRmRequestH\x00\x12\x45\n\x12\x66ile_watch_request\x18\x0e \x01(\x0b\x32\'.modal.client.ContainerFileWatchRequestH\x00\x12\x0f\n\x07task_id\x18\n \x01(\tB\x19\n\x17\x66ile_exec_request_oneof\"d\n\x1f\x43ontainerFilesystemExecResponse\x12\x0f\n\x07\x65xec_id\x18\x01 \x01(\t\x12\x1c\n\x0f\x66ile_descriptor\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_file_descriptor\"\x80\x01\n\x19\x43ontainerHeartbeatRequest\x12&\n\x1e\x63\x61nceled_inputs_return_outputs\x18\x04 \x01(\x08\x12)\n!canceled_inputs_return_outputs_v2\x18\x05 \x01(\x08J\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04\"t\n\x1a\x43ontainerHeartbeatResponse\x12?\n\x12\x63\x61ncel_input_event\x18\x01 \x01(\x0b\x32\x1e.modal.client.CancelInputEventH\x00\x88\x01\x01\x42\x15\n\x13_cancel_input_event\";\n\x13\x43ontainerLogRequest\x12$\n\x04logs\x18\x03 \x03(\x0b\x32\x16.modal.client.TaskLogs\"0\n\x1d\x43ontainerReloadVolumesRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\" \n\x1e\x43ontainerReloadVolumesResponse\"-\n\x14\x43ontainerStopRequest\x12\x15\n\x07task_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"\x17\n\x15\x43ontainerStopResponse\"6\n\x0c\x43reationInfo\x12\x12\n\ncreated_at\x18\x01 \x01(\x01\x12\x12\n\ncreated_by\x18\x02 \x01(\t\"\"\n\x12\x43ustomDomainConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x1f\n\x10\x43ustomDomainInfo\x12\x0b\n\x03url\x18\x01 \x01(\t\"S\n\tDNSRecord\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.modal.client.DNSRecordType\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\"\x7f\n\tDataChunk\x12-\n\x0b\x64\x61ta_format\x18\x01 \x01(\x0e\x32\x18.modal.client.DataFormat\x12\x0e\n\x04\x64\x61ta\x18\x02 \x01(\x0cH\x00\x12\x16\n\x0c\x64\x61ta_blob_id\x18\x03 \x01(\tH\x00\x12\r\n\x05index\x18\x04 \x01(\x04\x42\x0c\n\ndata_oneof\"#\n\x10\x44ictClearRequest\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\"3\n\x13\x44ictContainsRequest\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\x0c\"%\n\x14\x44ictContainsResponse\x12\r\n\x05\x66ound\x18\x01 \x01(\x08\"D\n\x13\x44ictContentsRequest\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\x12\x0c\n\x04keys\x18\x02 \x01(\x08\x12\x0e\n\x06values\x18\x03 \x01(\x08\"$\n\x11\x44ictDeleteRequest\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\"\'\n\tDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x0c\x12\r\n\x05value\x18\x02 \x01(\x0c\"\xbe\x01\n\x16\x44ictGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12>\n\x14object_creation_type\x18\x04 \x01(\x0e\x32 .modal.client.ObjectCreationType\x12%\n\x04\x64\x61ta\x18\x05 \x03(\x0b\x32\x17.modal.client.DictEntryJ\x04\x08\x02\x10\x03\"X\n\x17\x44ictGetOrCreateResponse\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\x12,\n\x08metadata\x18\x02 \x01(\x0b\x32\x1a.modal.client.DictMetadata\".\n\x0e\x44ictGetRequest\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\x0c\">\n\x0f\x44ictGetResponse\x12\r\n\x05\x66ound\x18\x01 \x01(\x08\x12\x12\n\x05value\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x08\n\x06_value\"\'\n\x14\x44ictHeartbeatRequest\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\"!\n\x0e\x44ictLenRequest\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\"\x1e\n\x0f\x44ictLenResponse\x12\x0b\n\x03len\x18\x01 \x01(\x05\"+\n\x0f\x44ictListRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\"x\n\x10\x44ictListResponse\x12\x36\n\x05\x64icts\x18\x01 \x03(\x0b\x32\'.modal.client.DictListResponse.DictInfo\x1a,\n\x08\x44ictInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\ncreated_at\x18\x02 \x01(\x01\"O\n\x0c\x44ictMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x31\n\rcreation_info\x18\x02 \x01(\x0b\x32\x1a.modal.client.CreationInfo\".\n\x0e\x44ictPopRequest\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\x0c\">\n\x0f\x44ictPopResponse\x12\r\n\x05\x66ound\x18\x01 \x01(\x08\x12\x12\n\x05value\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x08\n\x06_value\"k\n\x11\x44ictUpdateRequest\x12\x15\n\x07\x64ict_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12(\n\x07updates\x18\x02 \x03(\x0b\x32\x17.modal.client.DictEntry\x12\x15\n\rif_not_exists\x18\x03 \x01(\x08\"%\n\x12\x44ictUpdateResponse\x12\x0f\n\x07\x63reated\x18\x01 \x01(\x08\"\xaf\x01\n\x06\x44omain\x12\x11\n\tdomain_id\x18\x01 \x01(\t\x12\x13\n\x0b\x64omain_name\x18\x02 \x01(\t\x12\x12\n\ncreated_at\x18\x03 \x01(\x01\x12;\n\x12\x63\x65rtificate_status\x18\x04 \x01(\x0e\x32\x1f.modal.client.CertificateStatus\x12,\n\x0b\x64ns_records\x18\x05 \x03(\x0b\x32\x17.modal.client.DNSRecord\"3\n\x1e\x44omainCertificateVerifyRequest\x12\x11\n\tdomain_id\x18\x01 \x01(\t\"G\n\x1f\x44omainCertificateVerifyResponse\x12$\n\x06\x64omain\x18\x01 \x01(\x0b\x32\x14.modal.client.Domain\"0\n\x13\x44omainCreateRequest\x12\x19\n\x0b\x64omain_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"W\n\x14\x44omainCreateResponse\x12\x11\n\tdomain_id\x18\x01 \x01(\t\x12,\n\x0b\x64ns_records\x18\x02 \x03(\x0b\x32\x17.modal.client.DNSRecord\"\x13\n\x11\x44omainListRequest\";\n\x12\x44omainListResponse\x12%\n\x07\x64omains\x18\x01 \x03(\x0b\x32\x14.modal.client.Domain\".\n\x18\x45nvironmentCreateRequest\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\".\n\x18\x45nvironmentDeleteRequest\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"~\n\x1d\x45nvironmentGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12>\n\x14object_creation_type\x18\x02 \x01(\x0e\x32 .modal.client.ObjectCreationType\"m\n\x1e\x45nvironmentGetOrCreateResponse\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x01(\t\x12\x33\n\x08metadata\x18\x02 \x01(\x0b\x32!.modal.client.EnvironmentMetadata\"`\n\x13\x45nvironmentListItem\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x0ewebhook_suffix\x18\x02 \x01(\t\x12\x12\n\ncreated_at\x18\x03 \x01(\x01\x12\x0f\n\x07\x64\x65\x66\x61ult\x18\x04 \x01(\x08\"K\n\x17\x45nvironmentListResponse\x12\x30\n\x05items\x18\x02 \x03(\x0b\x32!.modal.client.EnvironmentListItem\"X\n\x13\x45nvironmentMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x33\n\x08settings\x18\x02 \x01(\x0b\x32!.modal.client.EnvironmentSettings\"L\n\x13\x45nvironmentSettings\x12\x1d\n\x15image_builder_version\x18\x01 \x01(\t\x12\x16\n\x0ewebhook_suffix\x18\x02 \x01(\t\"\x94\x01\n\x18\x45nvironmentUpdateRequest\x12\x1a\n\x0c\x63urrent_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12*\n\x04name\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\nweb_suffix\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xbf\x01\n\tFileEntry\x12\x0c\n\x04path\x18\x01 \x01(\t\x12.\n\x04type\x18\x02 \x01(\x0e\x32 .modal.client.FileEntry.FileType\x12\r\n\x05mtime\x18\x03 \x01(\x04\x12\x0c\n\x04size\x18\x04 \x01(\x04\"W\n\x08\x46ileType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x08\n\x04\x46ILE\x10\x01\x12\r\n\tDIRECTORY\x10\x02\x12\x0b\n\x07SYMLINK\x10\x03\x12\x08\n\x04\x46IFO\x10\x04\x12\n\n\x06SOCKET\x10\x05\"\x90\x01\n\x1c\x46ilesystemRuntimeOutputBatch\x12\x0e\n\x06output\x18\x01 \x03(\x0c\x12\x34\n\x05\x65rror\x18\x02 \x01(\x0b\x32 .modal.client.SystemErrorMessageH\x00\x88\x01\x01\x12\x13\n\x0b\x62\x61tch_index\x18\x03 \x01(\x04\x12\x0b\n\x03\x65of\x18\x04 \x01(\x08\x42\x08\n\x06_error\"7\n\x1f\x46lashContainerDeregisterRequest\x12\x14\n\x0cservice_name\x18\x01 \x01(\t\"0\n\x19\x46lashContainerListRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\"\x9e\x01\n\x1a\x46lashContainerListResponse\x12\x46\n\ncontainers\x18\x01 \x03(\x0b\x32\x32.modal.client.FlashContainerListResponse.Container\x1a\x38\n\tContainer\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\"s\n\x1d\x46lashContainerRegisterRequest\x12\x14\n\x0cservice_name\x18\x01 \x01(\t\x12\x10\n\x08priority\x18\x02 \x01(\r\x12\x0e\n\x06weight\x18\x03 \x01(\r\x12\x0c\n\x04host\x18\x04 \x01(\t\x12\x0c\n\x04port\x18\x05 \x01(\r\"-\n\x1e\x46lashContainerRegisterResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\"\xe4\x18\n\x08\x46unction\x12\x13\n\x0bmodule_name\x18\x01 \x01(\t\x12\x15\n\rfunction_name\x18\x02 \x01(\t\x12\x11\n\tmount_ids\x18\x03 \x03(\t\x12\x10\n\x08image_id\x18\x04 \x01(\t\x12\x1b\n\x13\x66unction_serialized\x18\x06 \x01(\x0c\x12>\n\x0f\x64\x65\x66inition_type\x18\x07 \x01(\x0e\x32%.modal.client.Function.DefinitionType\x12:\n\rfunction_type\x18\x08 \x01(\x0e\x32#.modal.client.Function.FunctionType\x12*\n\tresources\x18\t \x01(\x0b\x32\x17.modal.client.Resources\x12\x12\n\nsecret_ids\x18\n \x03(\t\x12+\n\nrate_limit\x18\x0b \x01(\x0b\x32\x17.modal.client.RateLimit\x12\x33\n\x0ewebhook_config\x18\x0f \x01(\x0b\x32\x1b.modal.client.WebhookConfig\x12=\n\x14shared_volume_mounts\x18\x10 \x03(\x0b\x32\x1f.modal.client.SharedVolumeMount\x12\x15\n\x08proxy_id\x18\x11 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x0cretry_policy\x18\x12 \x01(\x0b\x32!.modal.client.FunctionRetryPolicy\x12\x19\n\x11\x63oncurrency_limit\x18\x13 \x01(\r\x12\x14\n\x0ctimeout_secs\x18\x15 \x01(\r\x12\'\n\x08pty_info\x18\x16 \x01(\x0b\x32\x15.modal.client.PTYInfo\x12\x18\n\x10\x63lass_serialized\x18\x17 \x01(\x0c\x12\x1e\n\x16task_idle_timeout_secs\x18\x19 \x01(\r\x12\x38\n\x0e\x63loud_provider\x18\x1a \x01(\x0e\x32\x1b.modal.client.CloudProviderH\x01\x88\x01\x01\x12\x16\n\x0ewarm_pool_size\x18\x1b \x01(\r\x12\x0f\n\x07web_url\x18\x1c \x01(\t\x12.\n\x0cweb_url_info\x18\x1d \x01(\x0b\x32\x18.modal.client.WebUrlInfo\x12\x0f\n\x07runtime\x18\x1e \x01(\t\x12\x10\n\x08\x61pp_name\x18\x1f \x01(\t\x12\x30\n\rvolume_mounts\x18! \x03(\x0b\x32\x19.modal.client.VolumeMount\x12\x1d\n\x15max_concurrent_inputs\x18\" \x01(\r\x12:\n\x12\x63ustom_domain_info\x18# \x03(\x0b\x32\x1e.modal.client.CustomDomainInfo\x12\x11\n\tworker_id\x18$ \x01(\t\x12\x15\n\rruntime_debug\x18% \x01(\x08\x12\x1b\n\x13is_builder_function\x18 \x01(\x08\x12\x18\n\x10is_auto_snapshot\x18& \x01(\x08\x12\x11\n\tis_method\x18\' \x01(\x08\x12!\n\x19is_checkpointing_function\x18( \x01(\x08\x12\x1d\n\x15\x63heckpointing_enabled\x18) \x01(\x08\x12\x30\n\ncheckpoint\x18* \x01(\x0b\x32\x1c.modal.client.CheckpointInfo\x12;\n\x13object_dependencies\x18+ \x03(\x0b\x32\x1e.modal.client.ObjectDependency\x12\x15\n\rblock_network\x18, \x01(\x08\x12\x12\n\nmax_inputs\x18. \x01(\r\x12(\n\ts3_mounts\x18/ \x03(\x0b\x32\x15.modal.client.S3Mount\x12;\n\x13\x63loud_bucket_mounts\x18\x33 \x03(\x0b\x32\x1e.modal.client.CloudBucketMount\x12\x42\n\x13scheduler_placement\x18\x32 \x01(\x0b\x32 .modal.client.SchedulerPlacementH\x02\x88\x01\x01\x12\x10\n\x08is_class\x18\x35 \x01(\x08\x12\x17\n\x0fuse_function_id\x18\x36 \x01(\t\x12\x17\n\x0fuse_method_name\x18\x37 \x01(\t\x12>\n\x14\x63lass_parameter_info\x18\x38 \x01(\x0b\x32 .modal.client.ClassParameterInfo\x12\x16\n\x0e\x62\x61tch_max_size\x18< \x01(\r\x12\x17\n\x0f\x62\x61tch_linger_ms\x18= \x01(\x04\x12\x14\n\x0ci6pn_enabled\x18> \x01(\x08\x12.\n&_experimental_concurrent_cancellations\x18? \x01(\x08\x12 \n\x18target_concurrent_inputs\x18@ \x01(\r\x12,\n$_experimental_task_templates_enabled\x18\x41 \x01(\x08\x12@\n\x1c_experimental_task_templates\x18\x42 \x03(\x0b\x32\x1a.modal.client.TaskTemplate\x12 \n\x18_experimental_group_size\x18\x43 \x01(\r\x12\x11\n\tuntrusted\x18\x44 \x01(\x08\x12\'\n\x1f_experimental_buffer_containers\x18\x45 \x01(\r\x12#\n\x16_experimental_proxy_ip\x18\x46 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x13runtime_perf_record\x18G \x01(\x08\x12(\n\x08schedule\x18H \x01(\x0b\x32\x16.modal.client.Schedule\x12\x16\n\x0esnapshot_debug\x18I \x01(\x08\x12I\n\x12method_definitions\x18J \x03(\x0b\x32-.modal.client.Function.MethodDefinitionsEntry\x12\x1e\n\x16method_definitions_set\x18K \x01(\x08\x12$\n\x1c_experimental_custom_scaling\x18L \x01(\x08\x12\x1a\n\x12\x63loud_provider_str\x18M \x01(\t\x12)\n!_experimental_enable_gpu_snapshot\x18N \x01(\x08\x12=\n\x13\x61utoscaler_settings\x18O \x01(\x0b\x32 .modal.client.AutoscalerSettings\x12\x35\n\x0f\x66unction_schema\x18P \x01(\x0b\x32\x1c.modal.client.FunctionSchema\x12M\n\x14\x65xperimental_options\x18Q \x03(\x0b\x32/.modal.client.Function.ExperimentalOptionsEntry\x12!\n\x19mount_client_dependencies\x18R \x01(\x08\x12\x1a\n\x12\x66lash_service_urls\x18S \x03(\t\x12\x1b\n\x13\x66lash_service_label\x18T \x01(\t\x12\x1b\n\x13\x65nable_gpu_snapshot\x18U \x01(\x08\x1aX\n\x16MethodDefinitionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.modal.client.MethodDefinition:\x02\x38\x01\x1a:\n\x18\x45xperimentalOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"k\n\x0e\x44\x65\x66initionType\x12\x1f\n\x1b\x44\x45\x46INITION_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x44\x45\x46INITION_TYPE_SERIALIZED\x10\x01\x12\x18\n\x14\x44\x45\x46INITION_TYPE_FILE\x10\x02\"f\n\x0c\x46unctionType\x12\x1d\n\x19\x46UNCTION_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x46UNCTION_TYPE_GENERATOR\x10\x01\x12\x1a\n\x16\x46UNCTION_TYPE_FUNCTION\x10\x02\x42\x0b\n\t_proxy_idB\x11\n\x0f_cloud_providerB\x16\n\x14_scheduler_placementB\x19\n\x17X_experimental_proxy_ipJ\x04\x08\x14\x10\x15J\x04\x08\x30\x10\x31J\x04\x08\x31\x10\x32J\x04\x08\x34\x10\x35J\x04\x08\x39\x10:J\x04\x08:\x10;J\x04\x08;\x10<\"v\n\x1a\x46unctionAsyncInvokeRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x17\n\x0fparent_input_id\x18\x02 \x01(\t\x12*\n\x05input\x18\x03 \x01(\x0b\x32\x1b.modal.client.FunctionInput\"W\n\x1b\x46unctionAsyncInvokeResponse\x12\x1e\n\x16retry_with_blob_upload\x18\x01 \x01(\x08\x12\x18\n\x10\x66unction_call_id\x18\x02 \x01(\t\"\x9e\x01\n\x19\x46unctionBindParamsRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x19\n\x11serialized_params\x18\x02 \x01(\x0c\x12\x37\n\x10\x66unction_options\x18\x03 \x01(\x0b\x32\x1d.modal.client.FunctionOptions\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\t\"v\n\x1a\x46unctionBindParamsResponse\x12\x19\n\x11\x62ound_function_id\x18\x01 \x01(\t\x12=\n\x0fhandle_metadata\x18\x02 \x01(\x0b\x32$.modal.client.FunctionHandleMetadata\"z\n\x19\x46unctionCallCallGraphInfo\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x17\n\x0fparent_input_id\x18\x02 \x01(\t\x12\x15\n\rfunction_name\x18\x03 \x01(\t\x12\x13\n\x0bmodule_name\x18\x04 \x01(\t\"}\n\x19\x46unctionCallCancelRequest\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x1c\n\x14terminate_containers\x18\x02 \x01(\x08\x12\x18\n\x0b\x66unction_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_function_id\"x\n\x1a\x46unctionCallGetDataRequest\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x12\n\nlast_index\x18\x02 \x01(\x04\x12\x1a\n\rattempt_token\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_attempt_token\"\xc3\x03\n\x10\x46unctionCallInfo\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x0b\n\x03idx\x18\x02 \x01(\x05\x12\x12\n\ncreated_at\x18\x06 \x01(\x01\x12\x14\n\x0cscheduled_at\x18\x07 \x01(\x01\x12\x37\n\x0epending_inputs\x18\x0c \x01(\x0b\x32\x1f.modal.client.InputCategoryInfo\x12\x36\n\rfailed_inputs\x18\r \x01(\x0b\x32\x1f.modal.client.InputCategoryInfo\x12\x39\n\x10succeeded_inputs\x18\x0e \x01(\x0b\x32\x1f.modal.client.InputCategoryInfo\x12\x37\n\x0etimeout_inputs\x18\x0f \x01(\x0b\x32\x1f.modal.client.InputCategoryInfo\x12\x39\n\x10\x63\x61ncelled_inputs\x18\x10 \x01(\x0b\x32\x1f.modal.client.InputCategoryInfo\x12\x14\n\x0ctotal_inputs\x18\x11 \x01(\x05J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x08\x10\tJ\x04\x08\t\x10\nJ\x04\x08\n\x10\x0bJ\x04\x08\x0b\x10\x0c\".\n\x17\x46unctionCallListRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\"R\n\x18\x46unctionCallListResponse\x12\x36\n\x0e\x66unction_calls\x18\x01 \x03(\x0b\x32\x1e.modal.client.FunctionCallInfo\"j\n\x1a\x46unctionCallPutDataRequest\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12,\n\x0b\x64\x61ta_chunks\x18\x02 \x03(\x0b\x32\x17.modal.client.DataChunkJ\x04\x08\x03\x10\x04\"\xdc\x01\n\x15\x46unctionCreateRequest\x12(\n\x08\x66unction\x18\x01 \x01(\x0b\x32\x16.modal.client.Function\x12\x14\n\x06\x61pp_id\x18\x02 \x01(\tB\x04\x80\xb5\x18\x01\x12,\n\x08schedule\x18\x06 \x01(\x0b\x32\x16.modal.client.ScheduleB\x02\x18\x01\x12\x1c\n\x14\x65xisting_function_id\x18\x07 \x01(\t\x12\x31\n\rfunction_data\x18\t \x01(\x0b\x32\x1a.modal.client.FunctionDataJ\x04\x08\x08\x10\t\"\xe8\x01\n\x16\x46unctionCreateResponse\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12 \n\x14__deprecated_web_url\x18\x02 \x01(\tB\x02\x18\x01\x12(\n\x08\x66unction\x18\x04 \x01(\x0b\x32\x16.modal.client.Function\x12=\n\x0fhandle_metadata\x18\x05 \x01(\x0b\x32$.modal.client.FunctionHandleMetadata\x12.\n\x0fserver_warnings\x18\x06 \x03(\x0b\x32\x15.modal.client.Warning\"\xa5\x0c\n\x0c\x46unctionData\x12\x13\n\x0bmodule_name\x18\x01 \x01(\t\x12\x15\n\rfunction_name\x18\x02 \x01(\t\x12:\n\rfunction_type\x18\x03 \x01(\x0e\x32#.modal.client.Function.FunctionType\x12\x16\n\x0ewarm_pool_size\x18\x04 \x01(\r\x12\x19\n\x11\x63oncurrency_limit\x18\x05 \x01(\r\x12\x1e\n\x16task_idle_timeout_secs\x18\x06 \x01(\r\x12 \n\x18_experimental_group_size\x18\x13 \x01(\r\x12\'\n\x1f_experimental_buffer_containers\x18\x16 \x01(\r\x12$\n\x1c_experimental_custom_scaling\x18\x17 \x01(\x08\x12)\n!_experimental_enable_gpu_snapshot\x18\x1e \x01(\x08\x12\x11\n\tworker_id\x18\x07 \x01(\t\x12\x14\n\x0ctimeout_secs\x18\x08 \x01(\r\x12\x0f\n\x07web_url\x18\t \x01(\t\x12.\n\x0cweb_url_info\x18\n \x01(\x0b\x32\x18.modal.client.WebUrlInfo\x12\x33\n\x0ewebhook_config\x18\x0b \x01(\x0b\x32\x1b.modal.client.WebhookConfig\x12:\n\x12\x63ustom_domain_info\x18\x0c \x03(\x0b\x32\x1e.modal.client.CustomDomainInfo\x12#\n\x16_experimental_proxy_ip\x18\x18 \x01(\tH\x00\x88\x01\x01\x12M\n\x12method_definitions\x18\x19 \x03(\x0b\x32\x31.modal.client.FunctionData.MethodDefinitionsEntry\x12\x1e\n\x16method_definitions_set\x18\x1a \x01(\x08\x12\x10\n\x08is_class\x18\r \x01(\x08\x12>\n\x14\x63lass_parameter_info\x18\x0e \x01(\x0b\x32 .modal.client.ClassParameterInfo\x12\x11\n\tis_method\x18\x0f \x01(\x08\x12\x17\n\x0fuse_function_id\x18\x10 \x01(\t\x12\x17\n\x0fuse_method_name\x18\x11 \x01(\t\x12\x43\n\x10ranked_functions\x18\x12 \x03(\x0b\x32).modal.client.FunctionData.RankedFunction\x12(\n\x08schedule\x18\x14 \x01(\x0b\x32\x16.modal.client.Schedule\x12\x11\n\tuntrusted\x18\x1b \x01(\x08\x12\x16\n\x0esnapshot_debug\x18\x1c \x01(\x08\x12\x1b\n\x13runtime_perf_record\x18\x1d \x01(\x08\x12=\n\x13\x61utoscaler_settings\x18\x1f \x01(\x0b\x32 .modal.client.AutoscalerSettings\x12\x35\n\x0f\x66unction_schema\x18 \x01(\x0b\x32\x1c.modal.client.FunctionSchema\x12Q\n\x14\x65xperimental_options\x18! \x03(\x0b\x32\x33.modal.client.FunctionData.ExperimentalOptionsEntry\x12\x1a\n\x12\x66lash_service_urls\x18\" \x03(\t\x12\x1b\n\x13\x66lash_service_label\x18# \x01(\t\x1aX\n\x16MethodDefinitionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.modal.client.MethodDefinition:\x02\x38\x01\x1aH\n\x0eRankedFunction\x12\x0c\n\x04rank\x18\x01 \x01(\r\x12(\n\x08\x66unction\x18\x02 \x01(\x0b\x32\x16.modal.client.Function\x1a:\n\x18\x45xperimentalOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x19\n\x17X_experimental_proxy_ipJ\x04\x08\x15\x10\x16\"\xab\x01\n\x10\x46unctionExtended\x12\x17\n\x0ftype_identifier\x18\x01 \x01(\r\x12\x34\n\x12\x66unction_singleton\x18\x02 \x01(\x0b\x32\x16.modal.client.FunctionH\x00\x12\x33\n\rfunction_data\x18\x03 \x01(\x0b\x32\x1a.modal.client.FunctionDataH\x00\x42\x13\n\x11\x66unction_extended\"7\n\x1b\x46unctionGetCallGraphRequest\x12\x18\n\x10\x66unction_call_id\x18\x02 \x01(\t\"\x91\x01\n\x1c\x46unctionGetCallGraphResponse\x12\x30\n\x06inputs\x18\x01 \x03(\x0b\x32 .modal.client.InputCallGraphInfo\x12?\n\x0e\x66unction_calls\x18\x02 \x03(\x0b\x32\'.modal.client.FunctionCallCallGraphInfo\"5\n\x1e\x46unctionGetCurrentStatsRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\"p\n$FunctionGetDynamicConcurrencyRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x1a\n\x12target_concurrency\x18\x02 \x01(\r\x12\x17\n\x0fmax_concurrency\x18\x03 \x01(\r\"<\n%FunctionGetDynamicConcurrencyResponse\x12\x13\n\x0b\x63oncurrency\x18\x01 \x01(\r\"\xa4\x02\n\x15\x46unctionGetInputsItem\x12\x10\n\x08input_id\x18\x01 \x01(\t\x12*\n\x05input\x18\x02 \x01(\x0b\x32\x1b.modal.client.FunctionInput\x12\x13\n\x0bkill_switch\x18\x03 \x01(\x08\x12\x18\n\x10\x66unction_call_id\x18\x05 \x01(\t\x12O\n\x1d\x66unction_call_invocation_type\x18\x06 \x01(\x0e\x32(.modal.client.FunctionCallInvocationType\x12\x13\n\x0bretry_count\x18\x07 \x01(\r\x12\x1d\n\x10\x66unction_map_idx\x18\x08 \x01(\x05H\x00\x88\x01\x01\x42\x13\n\x11_function_map_idxJ\x04\x08\x04\x10\x05\"\xb6\x01\n\x18\x46unctionGetInputsRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x12\n\nmax_values\x18\x03 \x01(\x05\x12\x19\n\x11\x61verage_call_time\x18\x05 \x01(\x02\x12\x19\n\x11input_concurrency\x18\x06 \x01(\x05\x12\x16\n\x0e\x62\x61tch_max_size\x18\x0b \x01(\r\x12\x17\n\x0f\x62\x61tch_linger_ms\x18\x0c \x01(\x04J\x04\x08\t\x10\nJ\x04\x08\n\x10\x0b\"s\n\x19\x46unctionGetInputsResponse\x12\x33\n\x06inputs\x18\x03 \x03(\x0b\x32#.modal.client.FunctionGetInputsItem\x12!\n\x19rate_limit_sleep_duration\x18\x04 \x01(\x02\"\x84\x02\n\x16\x46unctionGetOutputsItem\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\x12\x0b\n\x03idx\x18\x02 \x01(\x05\x12\x10\n\x08input_id\x18\x03 \x01(\t\x12-\n\x0b\x64\x61ta_format\x18\x05 \x01(\x0e\x32\x18.modal.client.DataFormat\x12\x0f\n\x07task_id\x18\x06 \x01(\t\x12\x18\n\x10input_started_at\x18\x07 \x01(\x01\x12\x19\n\x11output_created_at\x18\x08 \x01(\x01\x12\x13\n\x0bretry_count\x18\t \x01(\r\x12\x14\n\x0c\x66\x63_trace_tag\x18\n \x01(\t\"\xdb\x01\n\x19\x46unctionGetOutputsRequest\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x12\n\nmax_values\x18\x02 \x01(\x05\x12\x0f\n\x07timeout\x18\x03 \x01(\x02\x12\x15\n\rlast_entry_id\x18\x06 \x01(\t\x12\x18\n\x10\x63lear_on_success\x18\x07 \x01(\x08\x12\x14\n\x0crequested_at\x18\x08 \x01(\x01\x12\x12\n\ninput_jwts\x18\t \x03(\t\x12\x16\n\tstart_idx\x18\n \x01(\x05H\x00\x88\x01\x01\x42\x0c\n\n_start_idx\"\x97\x01\n\x1a\x46unctionGetOutputsResponse\x12\x0c\n\x04idxs\x18\x03 \x03(\x05\x12\x35\n\x07outputs\x18\x04 \x03(\x0b\x32$.modal.client.FunctionGetOutputsItem\x12\x15\n\rlast_entry_id\x18\x05 \x01(\t\x12\x1d\n\x15num_unfinished_inputs\x18\x06 \x01(\x05\"Z\n\x12\x46unctionGetRequest\x12\x10\n\x08\x61pp_name\x18\x01 \x01(\t\x12\x12\n\nobject_tag\x18\x02 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\tJ\x04\x08\x03\x10\x04\"\x99\x01\n\x13\x46unctionGetResponse\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12=\n\x0fhandle_metadata\x18\x02 \x01(\x0b\x32$.modal.client.FunctionHandleMetadata\x12.\n\x0fserver_warnings\x18\x04 \x03(\x0b\x32\x15.modal.client.Warning\"3\n\x1c\x46unctionGetSerializedRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\"V\n\x1d\x46unctionGetSerializedResponse\x12\x1b\n\x13\x66unction_serialized\x18\x01 \x01(\x0c\x12\x18\n\x10\x63lass_serialized\x18\x02 \x01(\x0c\"\xba\x05\n\x16\x46unctionHandleMetadata\x12\x15\n\rfunction_name\x18\x02 \x01(\t\x12:\n\rfunction_type\x18\x08 \x01(\x0e\x32#.modal.client.Function.FunctionType\x12\x0f\n\x07web_url\x18\x1c \x01(\t\x12\x11\n\tis_method\x18\' \x01(\x08\x12\x17\n\x0fuse_function_id\x18( \x01(\t\x12\x17\n\x0fuse_method_name\x18) \x01(\t\x12\x15\n\rdefinition_id\x18* \x01(\t\x12>\n\x14\x63lass_parameter_info\x18+ \x01(\x0b\x32 .modal.client.ClassParameterInfo\x12^\n\x16method_handle_metadata\x18, \x03(\x0b\x32>.modal.client.FunctionHandleMetadata.MethodHandleMetadataEntry\x12\x35\n\x0f\x66unction_schema\x18- \x01(\x0b\x32\x1c.modal.client.FunctionSchema\x12\x1c\n\x0finput_plane_url\x18. \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12input_plane_region\x18/ \x01(\tH\x01\x88\x01\x01\x12\"\n\x15max_object_size_bytes\x18\x30 \x01(\x04H\x02\x88\x01\x01\x1a\x61\n\x19MethodHandleMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x33\n\x05value\x18\x02 \x01(\x0b\x32$.modal.client.FunctionHandleMetadata:\x02\x38\x01\x42\x12\n\x10_input_plane_urlB\x15\n\x13_input_plane_regionB\x18\n\x16_max_object_size_bytes\"\xb3\x01\n\rFunctionInput\x12\x0e\n\x04\x61rgs\x18\x01 \x01(\x0cH\x00\x12\x16\n\x0c\x61rgs_blob_id\x18\x07 \x01(\tH\x00\x12\x13\n\x0b\x66inal_input\x18\t \x01(\x08\x12-\n\x0b\x64\x61ta_format\x18\n \x01(\x0e\x32\x18.modal.client.DataFormat\x12\x18\n\x0bmethod_name\x18\x0b \x01(\tH\x01\x88\x01\x01\x42\x0c\n\nargs_oneofB\x0e\n\x0c_method_name\"\xc1\x02\n\x12\x46unctionMapRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x17\n\x0fparent_input_id\x18\x02 \x01(\t\x12\x19\n\x11return_exceptions\x18\x03 \x01(\x08\x12:\n\x12\x66unction_call_type\x18\x04 \x01(\x0e\x32\x1e.modal.client.FunctionCallType\x12=\n\x10pipelined_inputs\x18\x05 \x03(\x0b\x32#.modal.client.FunctionPutInputsItem\x12O\n\x1d\x66unction_call_invocation_type\x18\x06 \x01(\x0e\x32(.modal.client.FunctionCallInvocationType\x12\x16\n\x0e\x66rom_spawn_map\x18\x07 \x01(\x08\"\x8f\x02\n\x13\x46unctionMapResponse\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x45\n\x10pipelined_inputs\x18\x02 \x03(\x0b\x32+.modal.client.FunctionPutInputsResponseItem\x12\x37\n\x0cretry_policy\x18\x03 \x01(\x0b\x32!.modal.client.FunctionRetryPolicy\x12\x19\n\x11\x66unction_call_jwt\x18\x04 \x01(\t\x12#\n\x1bsync_client_retries_enabled\x18\x05 \x01(\x08\x12\x1e\n\x16max_inputs_outstanding\x18\x06 \x01(\r\"\x9f\x06\n\x0f\x46unctionOptions\x12\x12\n\nsecret_ids\x18\x01 \x03(\t\x12\x11\n\tmount_ids\x18\x02 \x03(\t\x12/\n\tresources\x18\x03 \x01(\x0b\x32\x17.modal.client.ResourcesH\x00\x88\x01\x01\x12<\n\x0cretry_policy\x18\x04 \x01(\x0b\x32!.modal.client.FunctionRetryPolicyH\x01\x88\x01\x01\x12\x1e\n\x11\x63oncurrency_limit\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0ctimeout_secs\x18\x06 \x01(\rH\x03\x88\x01\x01\x12#\n\x16task_idle_timeout_secs\x18\x07 \x01(\rH\x04\x88\x01\x01\x12\x1b\n\x0ewarm_pool_size\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x30\n\rvolume_mounts\x18\t \x03(\x0b\x32\x19.modal.client.VolumeMount\x12%\n\x18target_concurrent_inputs\x18\n \x01(\rH\x06\x88\x01\x01\x12\x1d\n\x15replace_volume_mounts\x18\x0b \x01(\x08\x12\x1a\n\x12replace_secret_ids\x18\x0c \x01(\x08\x12\x1e\n\x11\x62uffer_containers\x18\r \x01(\rH\x07\x88\x01\x01\x12\"\n\x15max_concurrent_inputs\x18\x0e \x01(\rH\x08\x88\x01\x01\x12\x1b\n\x0e\x62\x61tch_max_size\x18\x0f \x01(\rH\t\x88\x01\x01\x12\x1c\n\x0f\x62\x61tch_linger_ms\x18\x10 \x01(\x04H\n\x88\x01\x01\x42\x0c\n\n_resourcesB\x0f\n\r_retry_policyB\x14\n\x12_concurrency_limitB\x0f\n\r_timeout_secsB\x19\n\x17_task_idle_timeout_secsB\x11\n\x0f_warm_pool_sizeB\x1b\n\x19_target_concurrent_inputsB\x14\n\x12_buffer_containersB\x18\n\x16_max_concurrent_inputsB\x11\n\x0f_batch_max_sizeB\x12\n\x10_batch_linger_ms\"\xf4\x03\n\x18\x46unctionPrecreateRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x1b\n\rfunction_name\x18\x02 \x01(\tB\x04\x80\xb5\x18\x01\x12\x1c\n\x14\x65xisting_function_id\x18\x03 \x01(\t\x12:\n\rfunction_type\x18\x04 \x01(\x0e\x32#.modal.client.Function.FunctionType\x12\x33\n\x0ewebhook_config\x18\x05 \x01(\x0b\x32\x1b.modal.client.WebhookConfig\x12\x17\n\x0fuse_function_id\x18\x06 \x01(\t\x12\x17\n\x0fuse_method_name\x18\x07 \x01(\t\x12Y\n\x12method_definitions\x18\x08 \x03(\x0b\x32=.modal.client.FunctionPrecreateRequest.MethodDefinitionsEntry\x12\x35\n\x0f\x66unction_schema\x18\t \x01(\x0b\x32\x1c.modal.client.FunctionSchema\x1aX\n\x16MethodDefinitionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.modal.client.MethodDefinition:\x02\x38\x01\"o\n\x19\x46unctionPrecreateResponse\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12=\n\x0fhandle_metadata\x18\x02 \x01(\x0b\x32$.modal.client.FunctionHandleMetadata\"\x88\x01\n\x15\x46unctionPutInputsItem\x12\x0b\n\x03idx\x18\x01 \x01(\x05\x12*\n\x05input\x18\x02 \x01(\x0b\x32\x1b.modal.client.FunctionInput\x12\x11\n\tr2_failed\x18\x03 \x01(\x08\x12\x1d\n\x15r2_throughput_bytes_s\x18\x05 \x01(\x04J\x04\x08\x04\x10\x05\"~\n\x18\x46unctionPutInputsRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x18\n\x10\x66unction_call_id\x18\x03 \x01(\t\x12\x33\n\x06inputs\x18\x04 \x03(\x0b\x32#.modal.client.FunctionPutInputsItem\"X\n\x19\x46unctionPutInputsResponse\x12;\n\x06inputs\x18\x01 \x03(\x0b\x32+.modal.client.FunctionPutInputsResponseItem\"Q\n\x1d\x46unctionPutInputsResponseItem\x12\x0b\n\x03idx\x18\x01 \x01(\x05\x12\x10\n\x08input_id\x18\x02 \x01(\t\x12\x11\n\tinput_jwt\x18\x03 \x01(\t\"\x9e\x02\n\x16\x46unctionPutOutputsItem\x12\x10\n\x08input_id\x18\x01 \x01(\t\x12+\n\x06result\x18\x02 \x01(\x0b\x32\x1b.modal.client.GenericResult\x12\x18\n\x10input_started_at\x18\x03 \x01(\x01\x12\x19\n\x11output_created_at\x18\x04 \x01(\x01\x12-\n\x0b\x64\x61ta_format\x18\x07 \x01(\x0e\x32\x18.modal.client.DataFormat\x12\x13\n\x0bretry_count\x18\x08 \x01(\r\x12\x18\n\x10\x66unction_call_id\x18\t \x01(\t\x12\x1d\n\x10\x66unction_map_idx\x18\n \x01(\x05H\x00\x88\x01\x01\x42\x13\n\x11_function_map_idx\"h\n\x19\x46unctionPutOutputsRequest\x12\x35\n\x07outputs\x18\x04 \x03(\x0b\x32$.modal.client.FunctionPutOutputsItem\x12\x14\n\x0crequested_at\x18\x05 \x01(\x01\"m\n\x17\x46unctionRetryInputsItem\x12\x11\n\tinput_jwt\x18\x01 \x01(\t\x12*\n\x05input\x18\x02 \x01(\x0b\x32\x1b.modal.client.FunctionInput\x12\x13\n\x0bretry_count\x18\x03 \x01(\r\"n\n\x1a\x46unctionRetryInputsRequest\x12\x19\n\x11\x66unction_call_jwt\x18\x01 \x01(\t\x12\x35\n\x06inputs\x18\x02 \x03(\x0b\x32%.modal.client.FunctionRetryInputsItem\"1\n\x1b\x46unctionRetryInputsResponse\x12\x12\n\ninput_jwts\x18\x01 \x03(\t\"s\n\x13\x46unctionRetryPolicy\x12\x1b\n\x13\x62\x61\x63koff_coefficient\x18\x01 \x01(\x02\x12\x18\n\x10initial_delay_ms\x18\x02 \x01(\r\x12\x14\n\x0cmax_delay_ms\x18\x03 \x01(\r\x12\x0f\n\x07retries\x18\x12 \x01(\r\"\x91\x02\n\x0e\x46unctionSchema\x12\x44\n\x0bschema_type\x18\x01 \x01(\x0e\x32/.modal.client.FunctionSchema.FunctionSchemaType\x12\x33\n\targuments\x18\x02 \x03(\x0b\x32 .modal.client.ClassParameterSpec\x12\x35\n\x0breturn_type\x18\x03 \x01(\x0b\x32 .modal.client.GenericPayloadType\"M\n\x12\x46unctionSchemaType\x12\x1f\n\x1b\x46UNCTION_SCHEMA_UNSPECIFIED\x10\x00\x12\x16\n\x12\x46UNCTION_SCHEMA_V1\x10\x01\"9\n\rFunctionStats\x12\x0f\n\x07\x62\x61\x63klog\x18\x01 \x01(\r\x12\x17\n\x0fnum_total_tasks\x18\x03 \x01(\r\"\x91\x01\n%FunctionUpdateSchedulingParamsRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x1f\n\x17warm_pool_size_override\x18\x02 \x01(\r\x12\x32\n\x08settings\x18\x03 \x01(\x0b\x32 .modal.client.AutoscalerSettings\"(\n&FunctionUpdateSchedulingParamsResponse\"Q\n\tGPUConfig\x12#\n\x04type\x18\x01 \x01(\x0e\x32\x15.modal.client.GPUType\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x12\x10\n\x08gpu_type\x18\x04 \x01(\t\"$\n\rGeneratorDone\x12\x13\n\x0bitems_total\x18\x01 \x01(\x04\"y\n\x12GenericPayloadType\x12.\n\tbase_type\x18\x01 \x01(\x0e\x32\x1b.modal.client.ParameterType\x12\x33\n\tsub_types\x18\x02 \x03(\x0b\x32 .modal.client.GenericPayloadType\"\xed\x03\n\rGenericResult\x12\x39\n\x06status\x18\x01 \x01(\x0e\x32).modal.client.GenericResult.GenericStatus\x12\x11\n\texception\x18\x02 \x01(\t\x12\x10\n\x08\x65xitcode\x18\x03 \x01(\x05\x12\x11\n\ttraceback\x18\x04 \x01(\t\x12\x15\n\rserialized_tb\x18\x0b \x01(\x0c\x12\x15\n\rtb_line_cache\x18\x0c \x01(\x0c\x12\x0e\n\x04\x64\x61ta\x18\x05 \x01(\x0cH\x00\x12\x16\n\x0c\x64\x61ta_blob_id\x18\n \x01(\tH\x00\x12\x1a\n\x12propagation_reason\x18\r \x01(\t\"\xe8\x01\n\rGenericStatus\x12\x1e\n\x1aGENERIC_STATUS_UNSPECIFIED\x10\x00\x12\x1a\n\x16GENERIC_STATUS_SUCCESS\x10\x01\x12\x1a\n\x16GENERIC_STATUS_FAILURE\x10\x02\x12\x1d\n\x19GENERIC_STATUS_TERMINATED\x10\x03\x12\x1a\n\x16GENERIC_STATUS_TIMEOUT\x10\x04\x12\x1f\n\x1bGENERIC_STATUS_INIT_FAILURE\x10\x05\x12#\n\x1fGENERIC_STATUS_INTERNAL_FAILURE\x10\x06\x42\x0c\n\ndata_oneof\"\xba\x04\n\x05Image\x12,\n\x0b\x62\x61se_images\x18\x05 \x03(\x0b\x32\x17.modal.client.BaseImage\x12\x1b\n\x13\x64ockerfile_commands\x18\x06 \x03(\t\x12\x35\n\rcontext_files\x18\x07 \x03(\x0b\x32\x1e.modal.client.ImageContextFile\x12\x0f\n\x07version\x18\x0b \x01(\t\x12\x12\n\nsecret_ids\x18\x0c \x03(\t\x12\x18\n\x10\x63ontext_mount_id\x18\x0f \x01(\t\x12+\n\ngpu_config\x18\x10 \x01(\x0b\x32\x17.modal.client.GPUConfig\x12@\n\x15image_registry_config\x18\x11 \x01(\x0b\x32!.modal.client.ImageRegistryConfig\x12\x1a\n\x12\x62uild_function_def\x18\x0e \x01(\t\x12\x1e\n\x16\x62uild_function_globals\x18\x12 \x01(\x0c\x12\x0f\n\x07runtime\x18\x13 \x01(\t\x12\x15\n\rruntime_debug\x18\x14 \x01(\x08\x12\x33\n\x0e\x62uild_function\x18\x15 \x01(\x0b\x32\x1b.modal.client.BuildFunction\x12\x36\n\nbuild_args\x18\x16 \x03(\x0b\x32\".modal.client.Image.BuildArgsEntry\x1a\x30\n\x0e\x42uildArgsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"2\n\x10ImageContextFile\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"&\n\x12ImageFromIdRequest\x12\x10\n\x08image_id\x18\x01 \x01(\t\"V\n\x13ImageFromIdResponse\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12-\n\x08metadata\x18\x02 \x01(\x0b\x32\x1b.modal.client.ImageMetadata\"\xa4\x02\n\x17ImageGetOrCreateRequest\x12\"\n\x05image\x18\x02 \x01(\x0b\x32\x13.modal.client.Image\x12\x14\n\x06\x61pp_id\x18\x04 \x01(\tB\x04\x80\xb5\x18\x01\x12\x19\n\x11\x65xisting_image_id\x18\x05 \x01(\t\x12\x19\n\x11\x62uild_function_id\x18\x06 \x01(\t\x12\x13\n\x0b\x66orce_build\x18\x07 \x01(\x08\x12\x34\n\tnamespace\x18\x08 \x01(\x0e\x32!.modal.client.DeploymentNamespace\x12\x17\n\x0f\x62uilder_version\x18\t \x01(\t\x12\x1f\n\x17\x61llow_global_deployment\x18\n \x01(\x08\x12\x14\n\x0cignore_cache\x18\x0b \x01(\x08\"\x88\x01\n\x18ImageGetOrCreateResponse\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12+\n\x06result\x18\x02 \x01(\x0b\x32\x1b.modal.client.GenericResult\x12-\n\x08metadata\x18\x03 \x01(\x0b\x32\x1b.modal.client.ImageMetadata\"x\n\x19ImageJoinStreamingRequest\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\x12\x15\n\rlast_entry_id\x18\x03 \x01(\t\x12!\n\x19include_logs_for_finished\x18\x04 \x01(\x08\"\xc2\x01\n\x1aImageJoinStreamingResponse\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\x12)\n\ttask_logs\x18\x02 \x03(\x0b\x32\x16.modal.client.TaskLogs\x12\x10\n\x08\x65ntry_id\x18\x03 \x01(\t\x12\x0b\n\x03\x65of\x18\x04 \x01(\x08\x12-\n\x08metadata\x18\x05 \x01(\x0b\x32\x1b.modal.client.ImageMetadata\"\xe0\x02\n\rImageMetadata\x12 \n\x13python_version_info\x18\x01 \x01(\tH\x00\x88\x01\x01\x12H\n\x0fpython_packages\x18\x02 \x03(\x0b\x32/.modal.client.ImageMetadata.PythonPackagesEntry\x12\x14\n\x07workdir\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x11libc_version_info\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15image_builder_version\x18\x05 \x01(\tH\x03\x88\x01\x01\x1a\x35\n\x13PythonPackagesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x16\n\x14_python_version_infoB\n\n\x08_workdirB\x14\n\x12_libc_version_infoB\x18\n\x16_image_builder_version\"d\n\x13ImageRegistryConfig\x12:\n\x12registry_auth_type\x18\x01 \x01(\x0e\x32\x1e.modal.client.RegistryAuthType\x12\x11\n\tsecret_id\x18\x02 \x01(\t\"\x8c\x01\n\x12InputCallGraphInfo\x12\x10\n\x08input_id\x18\x01 \x01(\t\x12\x39\n\x06status\x18\x02 \x01(\x0e\x32).modal.client.GenericResult.GenericStatus\x12\x18\n\x10\x66unction_call_id\x18\x03 \x01(\t\x12\x0f\n\x07task_id\x18\x04 \x01(\t\"K\n\x11InputCategoryInfo\x12\r\n\x05total\x18\x01 \x01(\x05\x12\'\n\x06latest\x18\x02 \x03(\x0b\x32\x17.modal.client.InputInfo\"\x99\x01\n\tInputInfo\x12\x10\n\x08input_id\x18\x01 \x01(\t\x12\x0b\n\x03idx\x18\x02 \x01(\x05\x12\x0f\n\x07task_id\x18\x03 \x01(\t\x12\x12\n\nstarted_at\x18\x04 \x01(\x01\x12\x13\n\x0b\x66inished_at\x18\x05 \x01(\x01\x12\x19\n\x11task_startup_time\x18\x06 \x01(\x01\x12\x18\n\x10task_first_input\x18\x07 \x01(\x08\"i\n\x0fMapAwaitRequest\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x15\n\rlast_entry_id\x18\x02 \x01(\t\x12\x14\n\x0crequested_at\x18\x03 \x01(\x01\x12\x0f\n\x07timeout\x18\x04 \x01(\x02\"`\n\x10MapAwaitResponse\x12\x35\n\x07outputs\x18\x01 \x03(\x0b\x32$.modal.client.FunctionGetOutputsItem\x12\x15\n\rlast_entry_id\x18\x02 \x01(\t\"z\n\x16MapStartOrContinueItem\x12\x32\n\x05input\x18\x01 \x01(\x0b\x32#.modal.client.FunctionPutInputsItem\x12\x1a\n\rattempt_token\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_attempt_token\"\xb2\x01\n\x19MapStartOrContinueRequest\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x17\n\x0fparent_input_id\x18\x02 \x01(\t\x12\x1d\n\x10\x66unction_call_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x33\n\x05items\x18\x04 \x03(\x0b\x32$.modal.client.MapStartOrContinueItemB\x13\n\x11_function_call_id\"\xbc\x01\n\x1aMapStartOrContinueResponse\x12\x13\n\x0b\x66unction_id\x18\x01 \x01(\t\x12\x18\n\x10\x66unction_call_id\x18\x02 \x01(\t\x12\x1e\n\x16max_inputs_outstanding\x18\x03 \x01(\r\x12\x16\n\x0e\x61ttempt_tokens\x18\x04 \x03(\t\x12\x37\n\x0cretry_policy\x18\x05 \x01(\x0b\x32!.modal.client.FunctionRetryPolicy\"\xce\x02\n\x10MethodDefinition\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12:\n\rfunction_type\x18\x02 \x01(\x0e\x32#.modal.client.Function.FunctionType\x12\x33\n\x0ewebhook_config\x18\x03 \x01(\x0b\x32\x1b.modal.client.WebhookConfig\x12\x0f\n\x07web_url\x18\x04 \x01(\t\x12.\n\x0cweb_url_info\x18\x05 \x01(\x0b\x32\x18.modal.client.WebUrlInfo\x12:\n\x12\x63ustom_domain_info\x18\x06 \x03(\x0b\x32\x1e.modal.client.CustomDomainInfo\x12\x35\n\x0f\x66unction_schema\x18\x07 \x01(\x0b\x32\x1c.modal.client.FunctionSchema\"i\n\tMountFile\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x12\n\nsha256_hex\x18\x03 \x01(\t\x12\x11\n\x04size\x18\x04 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\x04mode\x18\x05 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_sizeB\x07\n\x05_mode\"\xfa\x01\n\x17MountGetOrCreateRequest\x12\x17\n\x0f\x64\x65ployment_name\x18\x01 \x01(\t\x12\x34\n\tnamespace\x18\x02 \x01(\x0e\x32!.modal.client.DeploymentNamespace\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12>\n\x14object_creation_type\x18\x04 \x01(\x0e\x32 .modal.client.ObjectCreationType\x12&\n\x05\x66iles\x18\x05 \x03(\x0b\x32\x17.modal.client.MountFile\x12\x0e\n\x06\x61pp_id\x18\x06 \x01(\t\"h\n\x18MountGetOrCreateResponse\x12\x10\n\x08mount_id\x18\x01 \x01(\t\x12:\n\x0fhandle_metadata\x18\x02 \x01(\x0b\x32!.modal.client.MountHandleMetadata\":\n\x13MountHandleMetadata\x12#\n\x1b\x63ontent_checksum_sha256_hex\x18\x01 \x01(\t\"_\n\x13MountPutFileRequest\x12\x12\n\nsha256_hex\x18\x02 \x01(\t\x12\x0e\n\x04\x64\x61ta\x18\x03 \x01(\x0cH\x00\x12\x16\n\x0c\x64\x61ta_blob_id\x18\x05 \x01(\tH\x00\x42\x0c\n\ndata_oneof\"&\n\x14MountPutFileResponse\x12\x0e\n\x06\x65xists\x18\x02 \x01(\x08\"S\n\x0fMultiPartUpload\x12\x13\n\x0bpart_length\x18\x01 \x01(\x03\x12\x13\n\x0bupload_urls\x18\x02 \x03(\t\x12\x16\n\x0e\x63ompletion_url\x18\x03 \x01(\t\"C\n\x13MultiPartUploadList\x12,\n\x05items\x18\x01 \x03(\x0b\x32\x1d.modal.client.MultiPartUpload\"\xbe\x01\n\rNetworkAccess\x12J\n\x13network_access_type\x18\x01 \x01(\x0e\x32-.modal.client.NetworkAccess.NetworkAccessType\x12\x15\n\rallowed_cidrs\x18\x02 \x03(\t\"J\n\x11NetworkAccessType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x08\n\x04OPEN\x10\x01\x12\x0b\n\x07\x42LOCKED\x10\x02\x12\r\n\tALLOWLIST\x10\x03\"\xa4\x03\n#NotebookKernelPublishResultsRequest\x12\x13\n\x0bnotebook_id\x18\x01 \x01(\t\x12M\n\x07results\x18\x02 \x03(\x0b\x32<.modal.client.NotebookKernelPublishResultsRequest.CellResult\x1aI\n\x0c\x45xecuteReply\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x17\n\x0f\x65xecution_count\x18\x02 \x01(\r\x12\x10\n\x08\x64uration\x18\x03 \x01(\x01\x1a\xcd\x01\n\nCellResult\x12\x0f\n\x07\x63\x65ll_id\x18\x01 \x01(\t\x12.\n\x06output\x18\x02 \x01(\x0b\x32\x1c.modal.client.NotebookOutputH\x00\x12\x16\n\x0c\x63lear_output\x18\x03 \x01(\x08H\x00\x12W\n\rexecute_reply\x18\x04 \x01(\x0b\x32>.modal.client.NotebookKernelPublishResultsRequest.ExecuteReplyH\x00\x42\r\n\x0bresult_type\"\x8e\x05\n\x0eNotebookOutput\x12\x44\n\x0e\x65xecute_result\x18\x01 \x01(\x0b\x32*.modal.client.NotebookOutput.ExecuteResultH\x00\x12@\n\x0c\x64isplay_data\x18\x02 \x01(\x0b\x32(.modal.client.NotebookOutput.DisplayDataH\x00\x12\x35\n\x06stream\x18\x03 \x01(\x0b\x32#.modal.client.NotebookOutput.StreamH\x00\x12\x33\n\x05\x65rror\x18\x04 \x01(\x0b\x32\".modal.client.NotebookOutput.ErrorH\x00\x1az\n\rExecuteResult\x12\x17\n\x0f\x65xecution_count\x18\x01 \x01(\r\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12)\n\x08metadata\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x1a\x9b\x01\n\x0b\x44isplayData\x12%\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x17.google.protobuf.Struct\x12)\n\x08metadata\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12!\n\x14transient_display_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x17\n\x15_transient_display_id\x1a$\n\x06Stream\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x1a\x39\n\x05\x45rror\x12\r\n\x05\x65name\x18\x01 \x01(\t\x12\x0e\n\x06\x65value\x18\x02 \x01(\t\x12\x11\n\ttraceback\x18\x03 \x03(\tB\r\n\x0boutput_type\"\x87\x03\n\x06Object\x12\x11\n\tobject_id\x18\x01 \x01(\t\x12H\n\x18\x66unction_handle_metadata\x18\x03 \x01(\x0b\x32$.modal.client.FunctionHandleMetadataH\x00\x12\x42\n\x15mount_handle_metadata\x18\x04 \x01(\x0b\x32!.modal.client.MountHandleMetadataH\x00\x12\x42\n\x15\x63lass_handle_metadata\x18\x05 \x01(\x0b\x32!.modal.client.ClassHandleMetadataH\x00\x12\x46\n\x17sandbox_handle_metadata\x18\x06 \x01(\x0b\x32#.modal.client.SandboxHandleMetadataH\x00\x12\x37\n\x0fvolume_metadata\x18\x07 \x01(\x0b\x32\x1c.modal.client.VolumeMetadataH\x00\x42\x17\n\x15handle_metadata_oneof\"%\n\x10ObjectDependency\x12\x11\n\tobject_id\x18\x01 \x01(\t\"\x86\x02\n\x07PTYInfo\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x12\n\nwinsz_rows\x18\x02 \x01(\r\x12\x12\n\nwinsz_cols\x18\x03 \x01(\r\x12\x10\n\x08\x65nv_term\x18\x04 \x01(\t\x12\x15\n\renv_colorterm\x18\x05 \x01(\t\x12\x18\n\x10\x65nv_term_program\x18\x06 \x01(\t\x12/\n\x08pty_type\x18\x07 \x01(\x0e\x32\x1d.modal.client.PTYInfo.PTYType\"N\n\x07PTYType\x12\x18\n\x14PTY_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11PTY_TYPE_FUNCTION\x10\x01\x12\x12\n\x0ePTY_TYPE_SHELL\x10\x02\"q\n\x08PortSpec\x12\x0c\n\x04port\x18\x01 \x01(\r\x12\x13\n\x0bunencrypted\x18\x02 \x01(\x08\x12\x32\n\x0btunnel_type\x18\x03 \x01(\x0e\x32\x18.modal.client.TunnelTypeH\x00\x88\x01\x01\x42\x0e\n\x0c_tunnel_type\"2\n\tPortSpecs\x12%\n\x05ports\x18\x01 \x03(\x0b\x32\x16.modal.client.PortSpec\"\x7f\n\x05Proxy\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\ncreated_at\x18\x02 \x01(\x01\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12\x10\n\x08proxy_id\x18\x05 \x01(\t\x12(\n\tproxy_ips\x18\x04 \x03(\x0b\x32\x15.modal.client.ProxyIp\"+\n\x11ProxyAddIpRequest\x12\x16\n\x08proxy_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"=\n\x12ProxyAddIpResponse\x12\'\n\x08proxy_ip\x18\x01 \x01(\x0b\x32\x15.modal.client.ProxyIp\"B\n\x12ProxyCreateRequest\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x18\n\x10\x65nvironment_name\x18\x02 \x01(\t\"9\n\x13ProxyCreateResponse\x12\"\n\x05proxy\x18\x01 \x01(\x0b\x32\x13.modal.client.Proxy\",\n\x12ProxyDeleteRequest\x12\x16\n\x08proxy_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"\x98\x01\n\x17ProxyGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12>\n\x14object_creation_type\x18\x04 \x01(\x0e\x32 .modal.client.ObjectCreationTypeJ\x04\x08\x02\x10\x03\",\n\x18ProxyGetOrCreateResponse\x12\x10\n\x08proxy_id\x18\x01 \x01(\t\"?\n\x0fProxyGetRequest\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x18\n\x10\x65nvironment_name\x18\x02 \x01(\t\"6\n\x10ProxyGetResponse\x12\"\n\x05proxy\x18\x01 \x01(\x0b\x32\x13.modal.client.Proxy\"\x89\x01\n\tProxyInfo\x12\x12\n\nelastic_ip\x18\x01 \x01(\t\x12\x11\n\tproxy_key\x18\x02 \x01(\t\x12\x13\n\x0bremote_addr\x18\x03 \x01(\t\x12\x13\n\x0bremote_port\x18\x04 \x01(\x05\x12+\n\nproxy_type\x18\x05 \x01(\x0e\x32\x17.modal.client.ProxyType\"v\n\x07ProxyIp\x12\x10\n\x08proxy_ip\x18\x01 \x01(\t\x12+\n\x06status\x18\x02 \x01(\x0e\x32\x1b.modal.client.ProxyIpStatus\x12\x12\n\ncreated_at\x18\x03 \x01(\x01\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\t\"9\n\x11ProxyListResponse\x12$\n\x07proxies\x18\x01 \x03(\x0b\x32\x13.modal.client.Proxy\".\n\x14ProxyRemoveIpRequest\x12\x16\n\x08proxy_ip\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"T\n\x11QueueClearRequest\x12\x10\n\x08queue_id\x18\x01 \x01(\t\x12\x15\n\rpartition_key\x18\x02 \x01(\x0c\x12\x16\n\x0e\x61ll_partitions\x18\x03 \x01(\x08\",\n\x12QueueDeleteRequest\x12\x16\n\x08queue_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"\x92\x01\n\x17QueueGetOrCreateRequest\x12\x17\n\x0f\x64\x65ployment_name\x18\x01 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12>\n\x14object_creation_type\x18\x04 \x01(\x0e\x32 .modal.client.ObjectCreationTypeJ\x04\x08\x02\x10\x03\"[\n\x18QueueGetOrCreateResponse\x12\x10\n\x08queue_id\x18\x01 \x01(\t\x12-\n\x08metadata\x18\x02 \x01(\x0b\x32\x1b.modal.client.QueueMetadata\"]\n\x0fQueueGetRequest\x12\x10\n\x08queue_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x03 \x01(\x02\x12\x10\n\x08n_values\x18\x04 \x01(\x05\x12\x15\n\rpartition_key\x18\x05 \x01(\x0c\"\"\n\x10QueueGetResponse\x12\x0e\n\x06values\x18\x02 \x03(\x0c\")\n\x15QueueHeartbeatRequest\x12\x10\n\x08queue_id\x18\x01 \x01(\t\",\n\tQueueItem\x12\r\n\x05value\x18\x01 \x01(\x0c\x12\x10\n\x08\x65ntry_id\x18\x02 \x01(\t\"I\n\x0fQueueLenRequest\x12\x10\n\x08queue_id\x18\x01 \x01(\t\x12\x15\n\rpartition_key\x18\x02 \x01(\x0c\x12\r\n\x05total\x18\x03 \x01(\x08\"\x1f\n\x10QueueLenResponse\x12\x0b\n\x03len\x18\x01 \x01(\x05\"F\n\x10QueueListRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\x12\x18\n\x10total_size_limit\x18\x02 \x01(\x05\"\xa9\x01\n\x11QueueListResponse\x12\x39\n\x06queues\x18\x01 \x03(\x0b\x32).modal.client.QueueListResponse.QueueInfo\x1aY\n\tQueueInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\ncreated_at\x18\x02 \x01(\x01\x12\x16\n\x0enum_partitions\x18\x03 \x01(\x05\x12\x12\n\ntotal_size\x18\x04 \x01(\x05\"P\n\rQueueMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x31\n\rcreation_info\x18\x02 \x01(\x0b\x32\x1a.modal.client.CreationInfo\"r\n\x15QueueNextItemsRequest\x12\x10\n\x08queue_id\x18\x01 \x01(\t\x12\x15\n\rpartition_key\x18\x02 \x01(\x0c\x12\x15\n\rlast_entry_id\x18\x03 \x01(\t\x12\x19\n\x11item_poll_timeout\x18\x04 \x01(\x02\"@\n\x16QueueNextItemsResponse\x12&\n\x05items\x18\x01 \x03(\x0b\x32\x17.modal.client.QueueItem\"i\n\x0fQueuePutRequest\x12\x10\n\x08queue_id\x18\x01 \x01(\t\x12\x0e\n\x06values\x18\x04 \x03(\x0c\x12\x15\n\rpartition_key\x18\x05 \x01(\x0c\x12\x1d\n\x15partition_ttl_seconds\x18\x06 \x01(\x05\"M\n\tRateLimit\x12\r\n\x05limit\x18\x01 \x01(\x05\x12\x31\n\x08interval\x18\x02 \x01(\x0e\x32\x1f.modal.client.RateLimitInterval\"\xb5\x01\n\tResources\x12\x11\n\tmemory_mb\x18\x02 \x01(\r\x12\x11\n\tmilli_cpu\x18\x03 \x01(\r\x12+\n\ngpu_config\x18\x04 \x01(\x0b\x32\x17.modal.client.GPUConfig\x12\x15\n\rmemory_mb_max\x18\x05 \x01(\r\x12\x19\n\x11\x65phemeral_disk_mb\x18\x06 \x01(\r\x12\x15\n\rmilli_cpu_max\x18\x07 \x01(\r\x12\x0c\n\x04rdma\x18\x08 \x01(\x08\"J\n\x13RuntimeInputMessage\x12\x0f\n\x07message\x18\x01 \x01(\x0c\x12\x15\n\rmessage_index\x18\x02 \x01(\x04\x12\x0b\n\x03\x65of\x18\x03 \x01(\x08\"\x9c\x02\n\x12RuntimeOutputBatch\x12\x31\n\x05items\x18\x01 \x03(\x0b\x32\".modal.client.RuntimeOutputMessage\x12\x13\n\x0b\x62\x61tch_index\x18\x02 \x01(\x04\x12\x16\n\texit_code\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12\x32\n\x06stdout\x18\x04 \x03(\x0b\x32\".modal.client.RuntimeOutputMessage\x12\x32\n\x06stderr\x18\x05 \x03(\x0b\x32\".modal.client.RuntimeOutputMessage\x12\x30\n\x04info\x18\x06 \x03(\x0b\x32\".modal.client.RuntimeOutputMessageB\x0c\n\n_exit_code\"u\n\x14RuntimeOutputMessage\x12\x35\n\x0f\x66ile_descriptor\x18\x01 \x01(\x0e\x32\x1c.modal.client.FileDescriptor\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x15\n\rmessage_bytes\x18\x03 \x01(\x0c\"d\n\x07S3Mount\x12\x13\n\x0b\x62ucket_name\x18\x01 \x01(\t\x12\x12\n\nmount_path\x18\x02 \x01(\t\x12\x1d\n\x15\x63redentials_secret_id\x18\x03 \x01(\t\x12\x11\n\tread_only\x18\x04 \x01(\x08\"\xc6\t\n\x07Sandbox\x12\x17\n\x0f\x65ntrypoint_args\x18\x01 \x03(\t\x12\x11\n\tmount_ids\x18\x02 \x03(\t\x12\x10\n\x08image_id\x18\x03 \x01(\t\x12\x12\n\nsecret_ids\x18\x04 \x03(\t\x12*\n\tresources\x18\x05 \x01(\x0b\x32\x17.modal.client.Resources\x12\x33\n\x0e\x63loud_provider\x18\x06 \x01(\x0e\x32\x1b.modal.client.CloudProvider\x12\x14\n\x0ctimeout_secs\x18\x07 \x01(\r\x12\x14\n\x07workdir\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x33\n\nnfs_mounts\x18\t \x03(\x0b\x32\x1f.modal.client.SharedVolumeMount\x12\x15\n\rruntime_debug\x18\n \x01(\x08\x12\x15\n\rblock_network\x18\x0b \x01(\x08\x12(\n\ts3_mounts\x18\x0c \x03(\x0b\x32\x15.modal.client.S3Mount\x12;\n\x13\x63loud_bucket_mounts\x18\x0e \x03(\x0b\x32\x1e.modal.client.CloudBucketMount\x12\x30\n\rvolume_mounts\x18\r \x03(\x0b\x32\x19.modal.client.VolumeMount\x12\'\n\x08pty_info\x18\x0f \x01(\x0b\x32\x15.modal.client.PTYInfo\x12\x42\n\x13scheduler_placement\x18\x11 \x01(\x0b\x32 .modal.client.SchedulerPlacementH\x02\x88\x01\x01\x12\x11\n\tworker_id\x18\x13 \x01(\t\x12-\n\nopen_ports\x18\x14 \x01(\x0b\x32\x17.modal.client.PortSpecsH\x00\x12\x14\n\x0ci6pn_enabled\x18\x15 \x01(\x08\x12\x33\n\x0enetwork_access\x18\x16 \x01(\x0b\x32\x1b.modal.client.NetworkAccess\x12\x15\n\x08proxy_id\x18\x17 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0f\x65nable_snapshot\x18\x18 \x01(\x08\x12\x1d\n\x10snapshot_version\x18\x19 \x01(\rH\x04\x88\x01\x01\x12\x1a\n\x12\x63loud_provider_str\x18\x1a \x01(\t\x12\"\n\x15runsc_runtime_version\x18\x1b \x01(\tH\x05\x88\x01\x01\x12\x14\n\x07runtime\x18\x1c \x01(\tH\x06\x88\x01\x01\x12\x0f\n\x07verbose\x18\x1d \x01(\x08\x12\x11\n\x04name\x18\x1e \x01(\tH\x07\x88\x01\x01\x12L\n\x14\x65xperimental_options\x18\x1f \x03(\x0b\x32..modal.client.Sandbox.ExperimentalOptionsEntry\x1a:\n\x18\x45xperimentalOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x42\x12\n\x10open_ports_oneofB\n\n\x08_workdirB\x16\n\x14_scheduler_placementB\x0b\n\t_proxy_idB\x13\n\x11_snapshot_versionB\x18\n\x16_runsc_runtime_versionB\n\n\x08_runtimeB\x07\n\x05_nameJ\x04\x08\x10\x10\x11J\x04\x08\x12\x10\x13\"q\n\x14SandboxCreateRequest\x12\x14\n\x06\x61pp_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12)\n\ndefinition\x18\x02 \x01(\x0b\x32\x15.modal.client.Sandbox\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\"+\n\x15SandboxCreateResponse\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\"]\n\x19SandboxGetFromNameRequest\x12\x14\n\x0csandbox_name\x18\x01 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x02 \x01(\t\x12\x10\n\x08\x61pp_name\x18\x03 \x01(\t\"0\n\x1aSandboxGetFromNameResponse\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\"\x8a\x01\n\x15SandboxGetLogsRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\x12\x35\n\x0f\x66ile_descriptor\x18\x02 \x01(\x0e\x32\x1c.modal.client.FileDescriptor\x12\x0f\n\x07timeout\x18\x03 \x01(\x02\x12\x15\n\rlast_entry_id\x18\x04 \x01(\t\"4\n\x1eSandboxGetResourceUsageRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\"\x90\x01\n\x1fSandboxGetResourceUsageResponse\x12\x19\n\x11\x63pu_core_nanosecs\x18\x01 \x01(\x04\x12\x18\n\x10mem_gib_nanosecs\x18\x02 \x01(\x04\x12\x14\n\x0cgpu_nanosecs\x18\x03 \x01(\x04\x12\x15\n\x08gpu_type\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_gpu_type\"i\n\x17SandboxGetTaskIdRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\x12\x14\n\x07timeout\x18\x02 \x01(\x02H\x00\x88\x01\x01\x12\x18\n\x10wait_until_ready\x18\x03 \x01(\x08\x42\n\n\x08_timeout\"\x83\x01\n\x18SandboxGetTaskIdResponse\x12\x14\n\x07task_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x35\n\x0btask_result\x18\x02 \x01(\x0b\x32\x1b.modal.client.GenericResultH\x01\x88\x01\x01\x42\n\n\x08_task_idB\x0e\n\x0c_task_result\"?\n\x18SandboxGetTunnelsRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\"s\n\x19SandboxGetTunnelsResponse\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\x12)\n\x07tunnels\x18\x02 \x03(\x0b\x32\x18.modal.client.TunnelData\"D\n\x15SandboxHandleMetadata\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\"\xa4\x01\n\x0bSandboxInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\ncreated_at\x18\x03 \x01(\x01\x12)\n\ttask_info\x18\x04 \x01(\x0b\x32\x16.modal.client.TaskInfo\x12\x0e\n\x06\x61pp_id\x18\x05 \x01(\t\x12&\n\x04tags\x18\x06 \x03(\x0b\x32\x18.modal.client.SandboxTag\x12\x0c\n\x04name\x18\x07 \x01(\tJ\x04\x08\x02\x10\x03\"\x9a\x01\n\x12SandboxListRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\t\x12\x18\n\x10\x62\x65\x66ore_timestamp\x18\x02 \x01(\x01\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12\x18\n\x10include_finished\x18\x04 \x01(\x08\x12&\n\x04tags\x18\x05 \x03(\x0b\x32\x18.modal.client.SandboxTag\"C\n\x13SandboxListResponse\x12,\n\tsandboxes\x18\x01 \x03(\x0b\x32\x19.modal.client.SandboxInfo\"\xc0\x02\n\x15SandboxRestoreRequest\x12\x13\n\x0bsnapshot_id\x18\x01 \x01(\t\x12\x1d\n\x15sandbox_name_override\x18\x02 \x01(\t\x12_\n\x1asandbox_name_override_type\x18\x03 \x01(\x0e\x32;.modal.client.SandboxRestoreRequest.SandboxNameOverrideType\"\x91\x01\n\x17SandboxNameOverrideType\x12*\n&SANDBOX_NAME_OVERRIDE_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1fSANDBOX_NAME_OVERRIDE_TYPE_NONE\x10\x01\x12%\n!SANDBOX_NAME_OVERRIDE_TYPE_STRING\x10\x02\",\n\x16SandboxRestoreResponse\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\"?\n\x18SandboxSnapshotFsRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\"\x8f\x01\n\x19SandboxSnapshotFsResponse\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12+\n\x06result\x18\x02 \x01(\x0b\x32\x1b.modal.client.GenericResult\x12\x33\n\x0eimage_metadata\x18\x03 \x01(\x0b\x32\x1b.modal.client.ImageMetadata\"0\n\x19SandboxSnapshotGetRequest\x12\x13\n\x0bsnapshot_id\x18\x01 \x01(\t\"1\n\x1aSandboxSnapshotGetResponse\x12\x13\n\x0bsnapshot_id\x18\x01 \x01(\t\",\n\x16SandboxSnapshotRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\".\n\x17SandboxSnapshotResponse\x12\x13\n\x0bsnapshot_id\x18\x01 \x01(\t\"B\n\x1aSandboxSnapshotWaitRequest\x12\x13\n\x0bsnapshot_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\"J\n\x1bSandboxSnapshotWaitResponse\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\"Y\n\x18SandboxStdinWriteRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\x12\r\n\x05input\x18\x02 \x01(\x0c\x12\r\n\x05index\x18\x03 \x01(\r\x12\x0b\n\x03\x65of\x18\x04 \x01(\x08\"\x1b\n\x19SandboxStdinWriteResponse\"1\n\nSandboxTag\x12\x10\n\x08tag_name\x18\x01 \x01(\t\x12\x11\n\ttag_value\x18\x02 \x01(\t\"m\n\x15SandboxTagsSetRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\x12\x12\n\nsandbox_id\x18\x02 \x01(\t\x12&\n\x04tags\x18\x03 \x03(\x0b\x32\x18.modal.client.SandboxTag\"-\n\x17SandboxTerminateRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\"P\n\x18SandboxTerminateResponse\x12\x34\n\x0f\x65xisting_result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\"9\n\x12SandboxWaitRequest\x12\x12\n\nsandbox_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\"B\n\x13SandboxWaitResponse\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\"\xa0\x02\n\x08Schedule\x12+\n\x04\x63ron\x18\x01 \x01(\x0b\x32\x1b.modal.client.Schedule.CronH\x00\x12/\n\x06period\x18\x02 \x01(\x0b\x32\x1d.modal.client.Schedule.PeriodH\x00\x1a-\n\x04\x43ron\x12\x13\n\x0b\x63ron_string\x18\x01 \x01(\t\x12\x10\n\x08timezone\x18\x02 \x01(\t\x1au\n\x06Period\x12\r\n\x05years\x18\x01 \x01(\x05\x12\x0e\n\x06months\x18\x02 \x01(\x05\x12\r\n\x05weeks\x18\x03 \x01(\x05\x12\x0c\n\x04\x64\x61ys\x18\x04 \x01(\x05\x12\r\n\x05hours\x18\x05 \x01(\x05\x12\x0f\n\x07minutes\x18\x06 \x01(\x05\x12\x0f\n\x07seconds\x18\x07 \x01(\x02\x42\x10\n\x0eschedule_oneof\"\x8a\x01\n\x12SchedulerPlacement\x12\x0f\n\x07regions\x18\x04 \x03(\t\x12\x12\n\x05_zone\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x17\n\n_lifecycle\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x17\n\x0f_instance_types\x18\x05 \x03(\tB\x08\n\x06X_zoneB\r\n\x0bX_lifecycleJ\x04\x08\x01\x10\x02\"\xd0\x01\n\x13SecretCreateRequest\x12@\n\x08\x65nv_dict\x18\x01 \x03(\x0b\x32..modal.client.SecretCreateRequest.EnvDictEntry\x12\x14\n\x06\x61pp_id\x18\x02 \x01(\tB\x04\x80\xb5\x18\x01\x12\x15\n\rtemplate_type\x18\x03 \x01(\t\x12\x1a\n\x12\x65xisting_secret_id\x18\x04 \x01(\t\x1a.\n\x0c\x45nvDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\")\n\x14SecretCreateResponse\x12\x11\n\tsecret_id\x18\x01 \x01(\t\"(\n\x13SecretDeleteRequest\x12\x11\n\tsecret_id\x18\x01 \x01(\t\"\xb7\x02\n\x18SecretGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12>\n\x14object_creation_type\x18\x04 \x01(\x0e\x32 .modal.client.ObjectCreationType\x12\x45\n\x08\x65nv_dict\x18\x05 \x03(\x0b\x32\x33.modal.client.SecretGetOrCreateRequest.EnvDictEntry\x12\x0e\n\x06\x61pp_id\x18\x06 \x01(\t\x12\x15\n\rrequired_keys\x18\x07 \x03(\t\x1a.\n\x0c\x45nvDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01J\x04\x08\x02\x10\x03\"^\n\x19SecretGetOrCreateResponse\x12\x11\n\tsecret_id\x18\x01 \x01(\t\x12.\n\x08metadata\x18\x02 \x01(\x0b\x32\x1c.modal.client.SecretMetadata\"v\n\x0eSecretListItem\x12\r\n\x05label\x18\x01 \x01(\t\x12\x12\n\ncreated_at\x18\x02 \x01(\x01\x12\x14\n\x0clast_used_at\x18\x03 \x01(\x01\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\t\x12\x11\n\tsecret_id\x18\x05 \x01(\t\"-\n\x11SecretListRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\"[\n\x12SecretListResponse\x12+\n\x05items\x18\x01 \x03(\x0b\x32\x1c.modal.client.SecretListItem\x12\x18\n\x10\x65nvironment_name\x18\x02 \x01(\t\"Q\n\x0eSecretMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x31\n\rcreation_info\x18\x02 \x01(\x0b\x32\x1a.modal.client.CreationInfo\"5\n\x19SharedVolumeDeleteRequest\x12\x18\n\x10shared_volume_id\x18\x01 \x01(\t\"D\n\x1aSharedVolumeGetFileRequest\x12\x18\n\x10shared_volume_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"S\n\x1bSharedVolumeGetFileResponse\x12\x0e\n\x04\x64\x61ta\x18\x01 \x01(\x0cH\x00\x12\x16\n\x0c\x64\x61ta_blob_id\x18\x02 \x01(\tH\x00\x42\x0c\n\ndata_oneof\"\xaf\x01\n\x1eSharedVolumeGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12>\n\x14object_creation_type\x18\x04 \x01(\x0e\x32 .modal.client.ObjectCreationType\x12\x0e\n\x06\x61pp_id\x18\x05 \x01(\tJ\x04\x08\x02\x10\x03\";\n\x1fSharedVolumeGetOrCreateResponse\x12\x18\n\x10shared_volume_id\x18\x01 \x01(\t\"8\n\x1cSharedVolumeHeartbeatRequest\x12\x18\n\x10shared_volume_id\x18\x01 \x01(\t\"F\n\x1cSharedVolumeListFilesRequest\x12\x18\n\x10shared_volume_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"I\n\x1dSharedVolumeListFilesResponse\x12(\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x17.modal.client.FileEntry\"\x88\x01\n\x14SharedVolumeListItem\x12\r\n\x05label\x18\x01 \x01(\t\x12\x18\n\x10shared_volume_id\x18\x02 \x01(\t\x12\x12\n\ncreated_at\x18\x03 \x01(\x01\x12\x33\n\x0e\x63loud_provider\x18\x04 \x01(\x0e\x32\x1b.modal.client.CloudProvider\"3\n\x17SharedVolumeListRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\"g\n\x18SharedVolumeListResponse\x12\x31\n\x05items\x18\x01 \x03(\x0b\x32\".modal.client.SharedVolumeListItem\x12\x18\n\x10\x65nvironment_name\x18\x02 \x01(\t\"\x92\x01\n\x11SharedVolumeMount\x12\x12\n\nmount_path\x18\x01 \x01(\t\x12\x18\n\x10shared_volume_id\x18\x02 \x01(\t\x12\x33\n\x0e\x63loud_provider\x18\x03 \x01(\x0e\x32\x1b.modal.client.CloudProvider\x12\x1a\n\x12\x61llow_cross_region\x18\x04 \x01(\x08\"\xa7\x01\n\x1aSharedVolumePutFileRequest\x12\x1e\n\x10shared_volume_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x12\n\nsha256_hex\x18\x03 \x01(\t\x12\x0e\n\x04\x64\x61ta\x18\x04 \x01(\x0cH\x00\x12\x16\n\x0c\x64\x61ta_blob_id\x18\x05 \x01(\tH\x00\x12\x11\n\tresumable\x18\x06 \x01(\x08\x42\x0c\n\ndata_oneof\"-\n\x1bSharedVolumePutFileResponse\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"`\n\x1dSharedVolumeRemoveFileRequest\x12\x1e\n\x10shared_volume_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x11\n\trecursive\x18\x03 \x01(\x08\"^\n\x12SystemErrorMessage\x12\x31\n\nerror_code\x18\x01 \x01(\x0e\x32\x1d.modal.client.SystemErrorCode\x12\x15\n\rerror_message\x18\x02 \x01(\t\"@\n\x17TaskClusterHelloRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x14\n\x0c\x63ontainer_ip\x18\x02 \x01(\t\"w\n\x18TaskClusterHelloResponse\x12\x12\n\ncluster_id\x18\x01 \x01(\t\x12\x14\n\x0c\x63luster_rank\x18\x02 \x01(\r\x12\x15\n\rcontainer_ips\x18\x03 \x03(\t\x12\x1a\n\x12\x63ontainer_ipv4_ips\x18\x04 \x03(\t\".\n\x19TaskCurrentInputsResponse\x12\x11\n\tinput_ids\x18\x01 \x03(\t\"\xe6\x01\n\x08TaskInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nstarted_at\x18\x02 \x01(\x01\x12\x13\n\x0b\x66inished_at\x18\x03 \x01(\x01\x12+\n\x06result\x18\x04 \x01(\x0b\x32\x1b.modal.client.GenericResult\x12\x13\n\x0b\x65nqueued_at\x18\x05 \x01(\x01\x12\x10\n\x08gpu_type\x18\x06 \x01(\t\x12\x12\n\nsandbox_id\x18\x07 \x01(\t\x12=\n\x11snapshot_behavior\x18\x08 \x01(\x0e\x32\".modal.client.TaskSnapshotBehavior\"+\n\x0fTaskListRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\":\n\x10TaskListResponse\x12&\n\x05tasks\x18\x01 \x03(\x0b\x32\x17.modal.client.TaskStats\"\x84\x02\n\x08TaskLogs\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\t\x12+\n\ntask_state\x18\x06 \x01(\x0e\x32\x17.modal.client.TaskState\x12\x11\n\ttimestamp\x18\x07 \x01(\x01\x12\x35\n\x0f\x66ile_descriptor\x18\x08 \x01(\x0e\x32\x1c.modal.client.FileDescriptor\x12\x31\n\rtask_progress\x18\t \x01(\x0b\x32\x1a.modal.client.TaskProgress\x12\x18\n\x10\x66unction_call_id\x18\n \x01(\t\x12\x10\n\x08input_id\x18\x0b \x01(\t\x12\x14\n\x0ctimestamp_ns\x18\x0c \x01(\x04\"\xe0\x01\n\rTaskLogsBatch\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12%\n\x05items\x18\x02 \x03(\x0b\x32\x16.modal.client.TaskLogs\x12\x10\n\x08\x65ntry_id\x18\x05 \x01(\t\x12\x10\n\x08\x61pp_done\x18\n \x01(\x08\x12\x13\n\x0b\x66unction_id\x18\x0b \x01(\t\x12\x10\n\x08input_id\x18\x0c \x01(\t\x12\x10\n\x08image_id\x18\r \x01(\t\x12\x0b\n\x03\x65of\x18\x0e \x01(\x08\x12\x13\n\x0bpty_exec_id\x18\x0f \x01(\t\x12\x18\n\x10root_function_id\x18\x10 \x01(\t\"p\n\x0cTaskProgress\x12\x0b\n\x03len\x18\x01 \x01(\x04\x12\x0b\n\x03pos\x18\x02 \x01(\x04\x12\x31\n\rprogress_type\x18\x03 \x01(\x0e\x32\x1a.modal.client.ProgressType\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\"@\n\x11TaskResultRequest\x12+\n\x06result\x18\x02 \x01(\x0b\x32\x1b.modal.client.GenericResult\"Y\n\tTaskStats\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\t\x12\x17\n\x0f\x61pp_description\x18\x03 \x01(\t\x12\x12\n\nstarted_at\x18\x04 \x01(\x01\"\x98\x01\n\x0cTaskTemplate\x12\x0c\n\x04rank\x18\x01 \x01(\r\x12*\n\tresources\x18\x02 \x01(\x0b\x32\x17.modal.client.Resources\x12 \n\x18target_concurrent_inputs\x18\x03 \x01(\r\x12\x1d\n\x15max_concurrent_inputs\x18\x04 \x01(\r\x12\r\n\x05index\x18\x05 \x01(\r\"V\n\x16TokenFlowCreateRequest\x12\x12\n\nutm_source\x18\x03 \x01(\t\x12\x16\n\x0elocalhost_port\x18\x04 \x01(\x05\x12\x10\n\x08next_url\x18\x05 \x01(\t\"d\n\x17TokenFlowCreateResponse\x12\x15\n\rtoken_flow_id\x18\x01 \x01(\t\x12\x0f\n\x07web_url\x18\x02 \x01(\t\x12\x0c\n\x04\x63ode\x18\x03 \x01(\t\x12\x13\n\x0bwait_secret\x18\x04 \x01(\t\"S\n\x14TokenFlowWaitRequest\x12\x0f\n\x07timeout\x18\x01 \x01(\x02\x12\x15\n\rtoken_flow_id\x18\x02 \x01(\t\x12\x13\n\x0bwait_secret\x18\x03 \x01(\t\"l\n\x15TokenFlowWaitResponse\x12\x10\n\x08token_id\x18\x01 \x01(\t\x12\x14\n\x0ctoken_secret\x18\x02 \x01(\t\x12\x0f\n\x07timeout\x18\x03 \x01(\x08\x12\x1a\n\x12workspace_username\x18\x04 \x01(\t\"\xa8\x01\n\nTunnelData\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x1d\n\x10unencrypted_host\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x10unencrypted_port\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x16\n\x0e\x63ontainer_port\x18\x05 \x01(\rB\x13\n\x11_unencrypted_hostB\x13\n\x11_unencrypted_port\"{\n\x12TunnelStartRequest\x12\x0c\n\x04port\x18\x01 \x01(\r\x12\x13\n\x0bunencrypted\x18\x02 \x01(\x08\x12\x32\n\x0btunnel_type\x18\x03 \x01(\x0e\x32\x18.modal.client.TunnelTypeH\x00\x88\x01\x01\x42\x0e\n\x0c_tunnel_type\"\x99\x01\n\x13TunnelStartResponse\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x1d\n\x10unencrypted_host\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x10unencrypted_port\x18\x04 \x01(\rH\x01\x88\x01\x01\x42\x13\n\x11_unencrypted_hostB\x13\n\x11_unencrypted_port\"!\n\x11TunnelStopRequest\x12\x0c\n\x04port\x18\x01 \x01(\r\"$\n\x12TunnelStopResponse\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"\x1e\n\rUploadUrlList\x12\r\n\x05items\x18\x01 \x03(\t\".\n\x13VolumeCommitRequest\x12\x17\n\tvolume_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"+\n\x14VolumeCommitResponse\x12\x13\n\x0bskip_reload\x18\x01 \x01(\x08\"d\n\x17VolumeCopyFiles2Request\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x11\n\tsrc_paths\x18\x02 \x03(\t\x12\x10\n\x08\x64st_path\x18\x03 \x01(\t\x12\x11\n\trecursive\x18\x04 \x01(\x08\"c\n\x16VolumeCopyFilesRequest\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x11\n\tsrc_paths\x18\x02 \x03(\t\x12\x10\n\x08\x64st_path\x18\x03 \x01(\t\x12\x11\n\trecursive\x18\x04 \x01(\x08\"F\n\x13VolumeDeleteRequest\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x1c\n\x10\x65nvironment_name\x18\x02 \x01(\tB\x02\x18\x01\"T\n\x15VolumeGetFile2Request\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\r\n\x05start\x18\x03 \x01(\x04\x12\x0b\n\x03len\x18\x04 \x01(\x04\"T\n\x16VolumeGetFile2Response\x12\x10\n\x08get_urls\x18\x01 \x03(\t\x12\x0c\n\x04size\x18\x02 \x01(\x04\x12\r\n\x05start\x18\x03 \x01(\x04\x12\x0b\n\x03len\x18\x04 \x01(\x04\"S\n\x14VolumeGetFileRequest\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\r\n\x05start\x18\x03 \x01(\x04\x12\x0b\n\x03len\x18\x04 \x01(\x04\"w\n\x15VolumeGetFileResponse\x12\x0e\n\x04\x64\x61ta\x18\x01 \x01(\x0cH\x00\x12\x16\n\x0c\x64\x61ta_blob_id\x18\x02 \x01(\tH\x00\x12\x0c\n\x04size\x18\x03 \x01(\x04\x12\r\n\x05start\x18\x04 \x01(\x04\x12\x0b\n\x03len\x18\x05 \x01(\x04\x42\x0c\n\ndata_oneof\"\xd9\x01\n\x18VolumeGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x18\n\x10\x65nvironment_name\x18\x03 \x01(\t\x12>\n\x14object_creation_type\x18\x04 \x01(\x0e\x32 .modal.client.ObjectCreationType\x12\x0e\n\x06\x61pp_id\x18\x05 \x01(\t\x12.\n\x07version\x18\x06 \x01(\x0e\x32\x1d.modal.client.VolumeFsVersionJ\x04\x08\x02\x10\x03\"\x8e\x01\n\x19VolumeGetOrCreateResponse\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12.\n\x07version\x18\x02 \x01(\x0e\x32\x1d.modal.client.VolumeFsVersion\x12.\n\x08metadata\x18\x03 \x01(\x0b\x32\x1c.modal.client.VolumeMetadata\"+\n\x16VolumeHeartbeatRequest\x12\x11\n\tvolume_id\x18\x01 \x01(\t\"w\n\x17VolumeListFiles2Request\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x11\n\trecursive\x18\x04 \x01(\x08\x12\x18\n\x0bmax_entries\x18\x03 \x01(\rH\x00\x88\x01\x01\x42\x0e\n\x0c_max_entries\"D\n\x18VolumeListFiles2Response\x12(\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x17.modal.client.FileEntry\"v\n\x16VolumeListFilesRequest\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x11\n\trecursive\x18\x04 \x01(\x08\x12\x18\n\x0bmax_entries\x18\x03 \x01(\rH\x00\x88\x01\x01\x42\x0e\n\x0c_max_entries\"C\n\x17VolumeListFilesResponse\x12(\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x17.modal.client.FileEntry\"F\n\x0eVolumeListItem\x12\r\n\x05label\x18\x01 \x01(\t\x12\x11\n\tvolume_id\x18\x02 \x01(\t\x12\x12\n\ncreated_at\x18\x03 \x01(\x01\"-\n\x11VolumeListRequest\x12\x18\n\x10\x65nvironment_name\x18\x01 \x01(\t\"[\n\x12VolumeListResponse\x12+\n\x05items\x18\x01 \x03(\x0b\x32\x1c.modal.client.VolumeListItem\x12\x18\n\x10\x65nvironment_name\x18\x02 \x01(\t\"\x81\x01\n\x0eVolumeMetadata\x12.\n\x07version\x18\x01 \x01(\x0e\x32\x1d.modal.client.VolumeFsVersion\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x31\n\rcreation_info\x18\x03 \x01(\x0b\x32\x1a.modal.client.CreationInfo\"i\n\x0bVolumeMount\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x12\n\nmount_path\x18\x02 \x01(\t\x12 \n\x18\x61llow_background_commits\x18\x03 \x01(\x08\x12\x11\n\tread_only\x18\x04 \x01(\x08\"\xda\x02\n\x16VolumePutFiles2Request\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12\x38\n\x05\x66iles\x18\x02 \x03(\x0b\x32).modal.client.VolumePutFiles2Request.File\x12)\n!disallow_overwrite_existing_files\x18\x03 \x01(\x08\x1az\n\x04\x46ile\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\x04\x12:\n\x06\x62locks\x18\x03 \x03(\x0b\x32*.modal.client.VolumePutFiles2Request.Block\x12\x11\n\x04mode\x18\x04 \x01(\rH\x00\x88\x01\x01\x42\x07\n\x05_mode\x1aL\n\x05\x42lock\x12\x17\n\x0f\x63ontents_sha256\x18\x01 \x01(\x0c\x12\x19\n\x0cput_response\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0f\n\r_put_response\"\xaf\x01\n\x17VolumePutFiles2Response\x12J\n\x0emissing_blocks\x18\x01 \x03(\x0b\x32\x32.modal.client.VolumePutFiles2Response.MissingBlock\x1aH\n\x0cMissingBlock\x12\x12\n\nfile_index\x18\x01 \x01(\x04\x12\x13\n\x0b\x62lock_index\x18\x02 \x01(\x04\x12\x0f\n\x07put_url\x18\x03 \x01(\t\"}\n\x15VolumePutFilesRequest\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12&\n\x05\x66iles\x18\x02 \x03(\x0b\x32\x17.modal.client.MountFile\x12)\n!disallow_overwrite_existing_files\x18\x03 \x01(\x08\"(\n\x13VolumeReloadRequest\x12\x11\n\tvolume_id\x18\x01 \x01(\t\"T\n\x18VolumeRemoveFile2Request\x12\x17\n\tvolume_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x11\n\trecursive\x18\x03 \x01(\x08\"S\n\x17VolumeRemoveFileRequest\x12\x17\n\tvolume_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x11\n\trecursive\x18\x03 \x01(\x08\"<\n\x13VolumeRenameRequest\x12\x17\n\tvolume_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\"\xe8\x01\n\x07Warning\x12/\n\x04type\x18\x01 \x01(\x0e\x32!.modal.client.Warning.WarningType\x12\x0f\n\x07message\x18\x02 \x01(\t\"\x9a\x01\n\x0bWarningType\x12\x1c\n\x18WARNING_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1fWARNING_TYPE_CLIENT_DEPRECATION\x10\x01\x12\x1f\n\x1bWARNING_TYPE_RESOURCE_LIMIT\x10\x02\x12\'\n#WARNING_TYPE_FUNCTION_CONFIGURATION\x10\x03\"R\n\nWebUrlInfo\x12\x11\n\ttruncated\x18\x01 \x01(\x08\x12\x1b\n\x0fhas_unique_hash\x18\x02 \x01(\x08\x42\x02\x18\x01\x12\x14\n\x0clabel_stolen\x18\x03 \x01(\x08\"\xc5\x02\n\rWebhookConfig\x12\'\n\x04type\x18\x01 \x01(\x0e\x32\x19.modal.client.WebhookType\x12\x0e\n\x06method\x18\x02 \x01(\t\x12\x18\n\x10requested_suffix\x18\x04 \x01(\t\x12\x32\n\nasync_mode\x18\x05 \x01(\x0e\x32\x1e.modal.client.WebhookAsyncMode\x12\x38\n\x0e\x63ustom_domains\x18\x06 \x03(\x0b\x32 .modal.client.CustomDomainConfig\x12\x17\n\x0fweb_server_port\x18\x07 \x01(\r\x12\"\n\x1aweb_server_startup_timeout\x18\x08 \x01(\x02\x12\x19\n\x11web_endpoint_docs\x18\t \x01(\x08\x12\x1b\n\x13requires_proxy_auth\x18\n \x01(\x08\"K\n\x1bWorkspaceNameLookupResponse\x12\x1a\n\x0eworkspace_name\x18\x01 \x01(\tB\x02\x18\x01\x12\x10\n\x08username\x18\x02 \x01(\t*\x83\x01\n\x13\x41ppDeployVisibility\x12%\n!APP_DEPLOY_VISIBILITY_UNSPECIFIED\x10\x00\x12#\n\x1f\x41PP_DEPLOY_VISIBILITY_WORKSPACE\x10\x01\x12 \n\x1c\x41PP_DEPLOY_VISIBILITY_PUBLIC\x10\x02*\xa1\x02\n\x13\x41ppDisconnectReason\x12%\n!APP_DISCONNECT_REASON_UNSPECIFIED\x10\x00\x12)\n%APP_DISCONNECT_REASON_LOCAL_EXCEPTION\x10\x01\x12,\n(APP_DISCONNECT_REASON_KEYBOARD_INTERRUPT\x10\x02\x12.\n*APP_DISCONNECT_REASON_ENTRYPOINT_COMPLETED\x10\x03\x12.\n*APP_DISCONNECT_REASON_DEPLOYMENT_EXCEPTION\x10\x04\x12*\n&APP_DISCONNECT_REASON_REMOTE_EXCEPTION\x10\x05*\x91\x02\n\x08\x41ppState\x12\x19\n\x15\x41PP_STATE_UNSPECIFIED\x10\x00\x12\x17\n\x13\x41PP_STATE_EPHEMERAL\x10\x01\x12\x16\n\x12\x41PP_STATE_DETACHED\x10\x02\x12\x16\n\x12\x41PP_STATE_DEPLOYED\x10\x03\x12\x16\n\x12\x41PP_STATE_STOPPING\x10\x04\x12\x15\n\x11\x41PP_STATE_STOPPED\x10\x05\x12\x1a\n\x16\x41PP_STATE_INITIALIZING\x10\x06\x12\x16\n\x12\x41PP_STATE_DISABLED\x10\x07\x12#\n\x1f\x41PP_STATE_DETACHED_DISCONNECTED\x10\x08\x12\x19\n\x11\x41PP_STATE_DERIVED\x10\t\x1a\x02\x08\x01*\x85\x01\n\rAppStopSource\x12\x1f\n\x1b\x41PP_STOP_SOURCE_UNSPECIFIED\x10\x00\x12\x17\n\x13\x41PP_STOP_SOURCE_CLI\x10\x01\x12!\n\x1d\x41PP_STOP_SOURCE_PYTHON_CLIENT\x10\x02\x12\x17\n\x13\x41PP_STOP_SOURCE_WEB\x10\x03*\x91\x01\n\x11\x43\x65rtificateStatus\x12\x1e\n\x1a\x43\x45RTIFICATE_STATUS_PENDING\x10\x00\x12\x1d\n\x19\x43\x45RTIFICATE_STATUS_ISSUED\x10\x01\x12\x1d\n\x19\x43\x45RTIFICATE_STATUS_FAILED\x10\x02\x12\x1e\n\x1a\x43\x45RTIFICATE_STATUS_REVOKED\x10\x03*\xb1\x01\n\x10\x43heckpointStatus\x12!\n\x1d\x43HECKPOINT_STATUS_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x43HECKPOINT_STATUS_PENDING\x10\x01\x12 \n\x1c\x43HECKPOINT_STATUS_PROCESSING\x10\x02\x12\x1b\n\x17\x43HECKPOINT_STATUS_READY\x10\x03\x12\x1c\n\x18\x43HECKPOINT_STATUS_FAILED\x10\x04*\x85\x02\n\nClientType\x12\x1b\n\x17\x43LIENT_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12\x43LIENT_TYPE_CLIENT\x10\x01\x12\x16\n\x12\x43LIENT_TYPE_WORKER\x10\x02\x12\x19\n\x15\x43LIENT_TYPE_CONTAINER\x10\x03\x12\x1a\n\x16\x43LIENT_TYPE_WEB_SERVER\x10\x05\x12\x1f\n\x1b\x43LIENT_TYPE_NOTEBOOK_KERNEL\x10\x06\x12\x18\n\x14\x43LIENT_TYPE_LIBMODAL\x10\x07\x12\x1b\n\x17\x43LIENT_TYPE_LIBMODAL_JS\x10\x08\x12\x1b\n\x17\x43LIENT_TYPE_LIBMODAL_GO\x10\t*\xa8\x01\n\rCloudProvider\x12\x1e\n\x1a\x43LOUD_PROVIDER_UNSPECIFIED\x10\x00\x12\x16\n\x12\x43LOUD_PROVIDER_AWS\x10\x01\x12\x16\n\x12\x43LOUD_PROVIDER_GCP\x10\x02\x12\x17\n\x13\x43LOUD_PROVIDER_AUTO\x10\x03\x12\x16\n\x12\x43LOUD_PROVIDER_OCI\x10\x04\"\x04\x08\x05\x10\x05\"\x04\x08\x06\x10\x06\"\x04\x08\x07\x10\x07\"\x04\x08\x08\x10\x08*Z\n\rDNSRecordType\x12\x15\n\x11\x44NS_RECORD_TYPE_A\x10\x00\x12\x17\n\x13\x44NS_RECORD_TYPE_TXT\x10\x01\x12\x19\n\x15\x44NS_RECORD_TYPE_CNAME\x10\x02*w\n\nDataFormat\x12\x1b\n\x17\x44\x41TA_FORMAT_UNSPECIFIED\x10\x00\x12\x16\n\x12\x44\x41TA_FORMAT_PICKLE\x10\x01\x12\x14\n\x10\x44\x41TA_FORMAT_ASGI\x10\x02\x12\x1e\n\x1a\x44\x41TA_FORMAT_GENERATOR_DONE\x10\x03*\x80\x01\n\x13\x44\x65ploymentNamespace\x12$\n DEPLOYMENT_NAMESPACE_UNSPECIFIED\x10\x00\x12\"\n\x1e\x44\x45PLOYMENT_NAMESPACE_WORKSPACE\x10\x01\x12\x1f\n\x1b\x44\x45PLOYMENT_NAMESPACE_GLOBAL\x10\x03*\x92\x01\n\x10\x45xecOutputOption\x12\"\n\x1e\x45XEC_OUTPUT_OPTION_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x45XEC_OUTPUT_OPTION_DEVNULL\x10\x01\x12\x1b\n\x17\x45XEC_OUTPUT_OPTION_PIPE\x10\x02\x12\x1d\n\x19\x45XEC_OUTPUT_OPTION_STDOUT\x10\x03*\x83\x01\n\x0e\x46ileDescriptor\x12\x1f\n\x1b\x46ILE_DESCRIPTOR_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x46ILE_DESCRIPTOR_STDOUT\x10\x01\x12\x1a\n\x16\x46ILE_DESCRIPTOR_STDERR\x10\x02\x12\x18\n\x14\x46ILE_DESCRIPTOR_INFO\x10\x03*\xfb\x01\n\x1a\x46unctionCallInvocationType\x12-\n)FUNCTION_CALL_INVOCATION_TYPE_UNSPECIFIED\x10\x00\x12-\n)FUNCTION_CALL_INVOCATION_TYPE_SYNC_LEGACY\x10\x01\x12.\n*FUNCTION_CALL_INVOCATION_TYPE_ASYNC_LEGACY\x10\x02\x12\'\n#FUNCTION_CALL_INVOCATION_TYPE_ASYNC\x10\x03\x12&\n\"FUNCTION_CALL_INVOCATION_TYPE_SYNC\x10\x04*p\n\x10\x46unctionCallType\x12\"\n\x1e\x46UNCTION_CALL_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x46UNCTION_CALL_TYPE_UNARY\x10\x01\x12\x1a\n\x16\x46UNCTION_CALL_TYPE_MAP\x10\x02*\xce\x01\n\x07GPUType\x12\x18\n\x14GPU_TYPE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bGPU_TYPE_T4\x10\x01\x12\x11\n\rGPU_TYPE_A100\x10\x02\x12\x11\n\rGPU_TYPE_A10G\x10\x03\x12\x10\n\x0cGPU_TYPE_ANY\x10\x04\x12\x16\n\x12GPU_TYPE_A100_80GB\x10\x08\x12\x0f\n\x0bGPU_TYPE_L4\x10\t\x12\x11\n\rGPU_TYPE_H100\x10\n\x12\x11\n\rGPU_TYPE_L40S\x10\x0b\x12\x11\n\rGPU_TYPE_H200\x10\x0c*\xa0\x02\n\x12ObjectCreationType\x12$\n OBJECT_CREATION_TYPE_UNSPECIFIED\x10\x00\x12*\n&OBJECT_CREATION_TYPE_CREATE_IF_MISSING\x10\x01\x12.\n*OBJECT_CREATION_TYPE_CREATE_FAIL_IF_EXISTS\x10\x02\x12\x33\n/OBJECT_CREATION_TYPE_CREATE_OVERWRITE_IF_EXISTS\x10\x03\x12/\n+OBJECT_CREATION_TYPE_ANONYMOUS_OWNED_BY_APP\x10\x04\x12\"\n\x1eOBJECT_CREATION_TYPE_EPHEMERAL\x10\x05*\xef\x01\n\rParameterType\x12\x1a\n\x16PARAM_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11PARAM_TYPE_STRING\x10\x01\x12\x12\n\x0ePARAM_TYPE_INT\x10\x02\x12\x15\n\x11PARAM_TYPE_PICKLE\x10\x03\x12\x14\n\x10PARAM_TYPE_BYTES\x10\x04\x12\x16\n\x12PARAM_TYPE_UNKNOWN\x10\x05\x12\x13\n\x0fPARAM_TYPE_LIST\x10\x06\x12\x13\n\x0fPARAM_TYPE_DICT\x10\x07\x12\x13\n\x0fPARAM_TYPE_NONE\x10\x08\x12\x13\n\x0fPARAM_TYPE_BOOL\x10\t*>\n\x0cProgressType\x12\x19\n\x15IMAGE_SNAPSHOT_UPLOAD\x10\x00\x12\x13\n\x0f\x46UNCTION_QUEUED\x10\x01*\xa9\x01\n\rProxyIpStatus\x12\x1f\n\x1bPROXY_IP_STATUS_UNSPECIFIED\x10\x00\x12\x1c\n\x18PROXY_IP_STATUS_CREATING\x10\x01\x12\x1a\n\x16PROXY_IP_STATUS_ONLINE\x10\x02\x12\x1e\n\x1aPROXY_IP_STATUS_TERMINATED\x10\x03\x12\x1d\n\x19PROXY_IP_STATUS_UNHEALTHY\x10\x04*T\n\tProxyType\x12\x1a\n\x16PROXY_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11PROXY_TYPE_LEGACY\x10\x01\x12\x14\n\x10PROXY_TYPE_VPROX\x10\x02*x\n\x11RateLimitInterval\x12#\n\x1fRATE_LIMIT_INTERVAL_UNSPECIFIED\x10\x00\x12\x1e\n\x1aRATE_LIMIT_INTERVAL_SECOND\x10\x01\x12\x1e\n\x1aRATE_LIMIT_INTERVAL_MINUTE\x10\x02*\xb2\x01\n\x10RegistryAuthType\x12\"\n\x1eREGISTRY_AUTH_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n\x16REGISTRY_AUTH_TYPE_AWS\x10\x01\x12\x1a\n\x16REGISTRY_AUTH_TYPE_GCP\x10\x02\x12\x1d\n\x19REGISTRY_AUTH_TYPE_PUBLIC\x10\x03\x12#\n\x1fREGISTRY_AUTH_TYPE_STATIC_CREDS\x10\x04*6\n\nSeekWhence\x12\x0c\n\x08SEEK_SET\x10\x00\x12\x0c\n\x08SEEK_CUR\x10\x01\x12\x0c\n\x08SEEK_END\x10\x02*\xa8\x03\n\x0fSystemErrorCode\x12!\n\x1dSYSTEM_ERROR_CODE_UNSPECIFIED\x10\x00\x12\x1a\n\x16SYSTEM_ERROR_CODE_PERM\x10\x01\x12\x1b\n\x17SYSTEM_ERROR_CODE_NOENT\x10\x02\x12\x18\n\x14SYSTEM_ERROR_CODE_IO\x10\x05\x12\x1a\n\x16SYSTEM_ERROR_CODE_NXIO\x10\x06\x12\x1b\n\x17SYSTEM_ERROR_CODE_NOMEM\x10\x0c\x12\x1b\n\x17SYSTEM_ERROR_CODE_ACCES\x10\r\x12\x1b\n\x17SYSTEM_ERROR_CODE_EXIST\x10\x11\x12\x1c\n\x18SYSTEM_ERROR_CODE_NOTDIR\x10\x14\x12\x1b\n\x17SYSTEM_ERROR_CODE_ISDIR\x10\x15\x12\x1b\n\x17SYSTEM_ERROR_CODE_INVAL\x10\x16\x12\x1b\n\x17SYSTEM_ERROR_CODE_MFILE\x10\x18\x12\x1a\n\x16SYSTEM_ERROR_CODE_FBIG\x10\x1b\x12\x1b\n\x17SYSTEM_ERROR_CODE_NOSPC\x10\x1c*\xa8\x01\n\x14TaskSnapshotBehavior\x12&\n\"TASK_SNAPSHOT_BEHAVIOR_UNSPECIFIED\x10\x00\x12#\n\x1fTASK_SNAPSHOT_BEHAVIOR_SNAPSHOT\x10\x01\x12\"\n\x1eTASK_SNAPSHOT_BEHAVIOR_RESTORE\x10\x02\x12\x1f\n\x1bTASK_SNAPSHOT_BEHAVIOR_NONE\x10\x03*\xdc\x02\n\tTaskState\x12\x1a\n\x16TASK_STATE_UNSPECIFIED\x10\x00\x12\x16\n\x12TASK_STATE_CREATED\x10\x06\x12\x15\n\x11TASK_STATE_QUEUED\x10\x01\x12\x1e\n\x1aTASK_STATE_WORKER_ASSIGNED\x10\x02\x12\x1c\n\x18TASK_STATE_LOADING_IMAGE\x10\x03\x12\x15\n\x11TASK_STATE_ACTIVE\x10\x04\x12\x18\n\x14TASK_STATE_COMPLETED\x10\x05\x12!\n\x1dTASK_STATE_CREATING_CONTAINER\x10\x07\x12\x13\n\x0fTASK_STATE_IDLE\x10\x08\x12\x1a\n\x16TASK_STATE_PREEMPTIBLE\x10\t\x12\x18\n\x14TASK_STATE_PREEMPTED\x10\n\x12\'\n#TASK_STATE_LOADING_CHECKPOINT_IMAGE\x10\x0b*=\n\nTunnelType\x12\x1b\n\x17TUNNEL_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0eTUNNEL_TYPE_H2\x10\x01*h\n\x0fVolumeFsVersion\x12!\n\x1dVOLUME_FS_VERSION_UNSPECIFIED\x10\x00\x12\x18\n\x14VOLUME_FS_VERSION_V1\x10\x01\x12\x18\n\x14VOLUME_FS_VERSION_V2\x10\x02*\x9a\x01\n\x10WebhookAsyncMode\x12\"\n\x1eWEBHOOK_ASYNC_MODE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bWEBHOOK_ASYNC_MODE_DISABLED\x10\x02\x12\x1e\n\x1aWEBHOOK_ASYNC_MODE_TRIGGER\x10\x03\x12\x1b\n\x17WEBHOOK_ASYNC_MODE_AUTO\x10\x04\"\x04\x08\x01\x10\x01*\x99\x01\n\x0bWebhookType\x12\x1c\n\x18WEBHOOK_TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15WEBHOOK_TYPE_ASGI_APP\x10\x01\x12\x19\n\x15WEBHOOK_TYPE_FUNCTION\x10\x02\x12\x19\n\x15WEBHOOK_TYPE_WSGI_APP\x10\x03\x12\x1b\n\x17WEBHOOK_TYPE_WEB_SERVER\x10\x04\x32\xa1r\n\x0bModalClient\x12W\n\x13\x41ppClientDisconnect\x12(.modal.client.AppClientDisconnectRequest\x1a\x16.google.protobuf.Empty\x12L\n\tAppCreate\x12\x1e.modal.client.AppCreateRequest\x1a\x1f.modal.client.AppCreateResponse\x12L\n\tAppDeploy\x12\x1e.modal.client.AppDeployRequest\x1a\x1f.modal.client.AppDeployResponse\x12m\n\x14\x41ppDeploymentHistory\x12).modal.client.AppDeploymentHistoryRequest\x1a*.modal.client.AppDeploymentHistoryResponse\x12s\n\x16\x41ppGetByDeploymentName\x12+.modal.client.AppGetByDeploymentNameRequest\x1a,.modal.client.AppGetByDeploymentNameResponse\x12U\n\x0c\x41ppGetLayout\x12!.modal.client.AppGetLayoutRequest\x1a\".modal.client.AppGetLayoutResponse\x12L\n\nAppGetLogs\x12\x1f.modal.client.AppGetLogsRequest\x1a\x1b.modal.client.TaskLogsBatch0\x01\x12X\n\rAppGetObjects\x12\".modal.client.AppGetObjectsRequest\x1a#.modal.client.AppGetObjectsResponse\x12[\n\x0e\x41ppGetOrCreate\x12#.modal.client.AppGetOrCreateRequest\x1a$.modal.client.AppGetOrCreateResponse\x12I\n\x0c\x41ppHeartbeat\x12!.modal.client.AppHeartbeatRequest\x1a\x16.google.protobuf.Empty\x12\x46\n\x07\x41ppList\x12\x1c.modal.client.AppListRequest\x1a\x1d.modal.client.AppListResponse\x12L\n\tAppLookup\x12\x1e.modal.client.AppLookupRequest\x1a\x1f.modal.client.AppLookupResponse\x12O\n\nAppPublish\x12\x1f.modal.client.AppPublishRequest\x1a .modal.client.AppPublishResponse\x12G\n\x0b\x41ppRollback\x12 .modal.client.AppRollbackRequest\x1a\x16.google.protobuf.Empty\x12K\n\rAppSetObjects\x12\".modal.client.AppSetObjectsRequest\x1a\x16.google.protobuf.Empty\x12?\n\x07\x41ppStop\x12\x1c.modal.client.AppStopRequest\x1a\x16.google.protobuf.Empty\x12U\n\x0c\x41ttemptAwait\x12!.modal.client.AttemptAwaitRequest\x1a\".modal.client.AttemptAwaitResponse\x12U\n\x0c\x41ttemptRetry\x12!.modal.client.AttemptRetryRequest\x1a\".modal.client.AttemptRetryResponse\x12U\n\x0c\x41ttemptStart\x12!.modal.client.AttemptStartRequest\x1a\".modal.client.AttemptStartResponse\x12U\n\x0c\x41uthTokenGet\x12!.modal.client.AuthTokenGetRequest\x1a\".modal.client.AuthTokenGetResponse\x12O\n\nBlobCreate\x12\x1f.modal.client.BlobCreateRequest\x1a .modal.client.BlobCreateResponse\x12\x46\n\x07\x42lobGet\x12\x1c.modal.client.BlobGetRequest\x1a\x1d.modal.client.BlobGetResponse\x12R\n\x0b\x43lassCreate\x12 .modal.client.ClassCreateRequest\x1a!.modal.client.ClassCreateResponse\x12I\n\x08\x43lassGet\x12\x1d.modal.client.ClassGetRequest\x1a\x1e.modal.client.ClassGetResponse\x12H\n\x0b\x43lientHello\x12\x16.google.protobuf.Empty\x1a!.modal.client.ClientHelloResponse\x12O\n\nClusterGet\x12\x1f.modal.client.ClusterGetRequest\x1a .modal.client.ClusterGetResponse\x12R\n\x0b\x43lusterList\x12 .modal.client.ClusterListRequest\x1a!.modal.client.ClusterListResponse\x12W\n\x13\x43ontainerCheckpoint\x12(.modal.client.ContainerCheckpointRequest\x1a\x16.google.protobuf.Empty\x12X\n\rContainerExec\x12\".modal.client.ContainerExecRequest\x1a#.modal.client.ContainerExecResponse\x12i\n\x16\x43ontainerExecGetOutput\x12+.modal.client.ContainerExecGetOutputRequest\x1a .modal.client.RuntimeOutputBatch0\x01\x12[\n\x15\x43ontainerExecPutInput\x12*.modal.client.ContainerExecPutInputRequest\x1a\x16.google.protobuf.Empty\x12\x64\n\x11\x43ontainerExecWait\x12&.modal.client.ContainerExecWaitRequest\x1a\'.modal.client.ContainerExecWaitResponse\x12v\n\x17\x43ontainerFilesystemExec\x12,.modal.client.ContainerFilesystemExecRequest\x1a-.modal.client.ContainerFilesystemExecResponse\x12\x87\x01\n ContainerFilesystemExecGetOutput\x12\x35.modal.client.ContainerFilesystemExecGetOutputRequest\x1a*.modal.client.FilesystemRuntimeOutputBatch0\x01\x12g\n\x12\x43ontainerHeartbeat\x12\'.modal.client.ContainerHeartbeatRequest\x1a(.modal.client.ContainerHeartbeatResponse\x12@\n\x0e\x43ontainerHello\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\x12I\n\x0c\x43ontainerLog\x12!.modal.client.ContainerLogRequest\x1a\x16.google.protobuf.Empty\x12s\n\x16\x43ontainerReloadVolumes\x12+.modal.client.ContainerReloadVolumesRequest\x1a,.modal.client.ContainerReloadVolumesResponse\x12X\n\rContainerStop\x12\".modal.client.ContainerStopRequest\x1a#.modal.client.ContainerStopResponse\x12\x43\n\tDictClear\x12\x1e.modal.client.DictClearRequest\x1a\x16.google.protobuf.Empty\x12U\n\x0c\x44ictContains\x12!.modal.client.DictContainsRequest\x1a\".modal.client.DictContainsResponse\x12L\n\x0c\x44ictContents\x12!.modal.client.DictContentsRequest\x1a\x17.modal.client.DictEntry0\x01\x12\x45\n\nDictDelete\x12\x1f.modal.client.DictDeleteRequest\x1a\x16.google.protobuf.Empty\x12\x46\n\x07\x44ictGet\x12\x1c.modal.client.DictGetRequest\x1a\x1d.modal.client.DictGetResponse\x12^\n\x0f\x44ictGetOrCreate\x12$.modal.client.DictGetOrCreateRequest\x1a%.modal.client.DictGetOrCreateResponse\x12K\n\rDictHeartbeat\x12\".modal.client.DictHeartbeatRequest\x1a\x16.google.protobuf.Empty\x12\x46\n\x07\x44ictLen\x12\x1c.modal.client.DictLenRequest\x1a\x1d.modal.client.DictLenResponse\x12I\n\x08\x44ictList\x12\x1d.modal.client.DictListRequest\x1a\x1e.modal.client.DictListResponse\x12\x46\n\x07\x44ictPop\x12\x1c.modal.client.DictPopRequest\x1a\x1d.modal.client.DictPopResponse\x12O\n\nDictUpdate\x12\x1f.modal.client.DictUpdateRequest\x1a .modal.client.DictUpdateResponse\x12v\n\x17\x44omainCertificateVerify\x12,.modal.client.DomainCertificateVerifyRequest\x1a-.modal.client.DomainCertificateVerifyResponse\x12U\n\x0c\x44omainCreate\x12!.modal.client.DomainCreateRequest\x1a\".modal.client.DomainCreateResponse\x12O\n\nDomainList\x12\x1f.modal.client.DomainListRequest\x1a .modal.client.DomainListResponse\x12S\n\x11\x45nvironmentCreate\x12&.modal.client.EnvironmentCreateRequest\x1a\x16.google.protobuf.Empty\x12S\n\x11\x45nvironmentDelete\x12&.modal.client.EnvironmentDeleteRequest\x1a\x16.google.protobuf.Empty\x12s\n\x16\x45nvironmentGetOrCreate\x12+.modal.client.EnvironmentGetOrCreateRequest\x1a,.modal.client.EnvironmentGetOrCreateResponse\x12P\n\x0f\x45nvironmentList\x12\x16.google.protobuf.Empty\x1a%.modal.client.EnvironmentListResponse\x12^\n\x11\x45nvironmentUpdate\x12&.modal.client.EnvironmentUpdateRequest\x1a!.modal.client.EnvironmentListItem\x12\x61\n\x18\x46lashContainerDeregister\x12-.modal.client.FlashContainerDeregisterRequest\x1a\x16.google.protobuf.Empty\x12g\n\x12\x46lashContainerList\x12\'.modal.client.FlashContainerListRequest\x1a(.modal.client.FlashContainerListResponse\x12s\n\x16\x46lashContainerRegister\x12+.modal.client.FlashContainerRegisterRequest\x1a,.modal.client.FlashContainerRegisterResponse\x12j\n\x13\x46unctionAsyncInvoke\x12(.modal.client.FunctionAsyncInvokeRequest\x1a).modal.client.FunctionAsyncInvokeResponse\x12g\n\x12\x46unctionBindParams\x12\'.modal.client.FunctionBindParamsRequest\x1a(.modal.client.FunctionBindParamsResponse\x12U\n\x12\x46unctionCallCancel\x12\'.modal.client.FunctionCallCancelRequest\x1a\x16.google.protobuf.Empty\x12\\\n\x15\x46unctionCallGetDataIn\x12(.modal.client.FunctionCallGetDataRequest\x1a\x17.modal.client.DataChunk0\x01\x12]\n\x16\x46unctionCallGetDataOut\x12(.modal.client.FunctionCallGetDataRequest\x1a\x17.modal.client.DataChunk0\x01\x12\x61\n\x10\x46unctionCallList\x12%.modal.client.FunctionCallListRequest\x1a&.modal.client.FunctionCallListResponse\x12Z\n\x16\x46unctionCallPutDataOut\x12(.modal.client.FunctionCallPutDataRequest\x1a\x16.google.protobuf.Empty\x12[\n\x0e\x46unctionCreate\x12#.modal.client.FunctionCreateRequest\x1a$.modal.client.FunctionCreateResponse\x12R\n\x0b\x46unctionGet\x12 .modal.client.FunctionGetRequest\x1a!.modal.client.FunctionGetResponse\x12m\n\x14\x46unctionGetCallGraph\x12).modal.client.FunctionGetCallGraphRequest\x1a*.modal.client.FunctionGetCallGraphResponse\x12\x64\n\x17\x46unctionGetCurrentStats\x12,.modal.client.FunctionGetCurrentStatsRequest\x1a\x1b.modal.client.FunctionStats\x12\x88\x01\n\x1d\x46unctionGetDynamicConcurrency\x12\x32.modal.client.FunctionGetDynamicConcurrencyRequest\x1a\x33.modal.client.FunctionGetDynamicConcurrencyResponse\x12\x64\n\x11\x46unctionGetInputs\x12&.modal.client.FunctionGetInputsRequest\x1a\'.modal.client.FunctionGetInputsResponse\x12g\n\x12\x46unctionGetOutputs\x12\'.modal.client.FunctionGetOutputsRequest\x1a(.modal.client.FunctionGetOutputsResponse\x12p\n\x15\x46unctionGetSerialized\x12*.modal.client.FunctionGetSerializedRequest\x1a+.modal.client.FunctionGetSerializedResponse\x12R\n\x0b\x46unctionMap\x12 .modal.client.FunctionMapRequest\x1a!.modal.client.FunctionMapResponse\x12\x64\n\x11\x46unctionPrecreate\x12&.modal.client.FunctionPrecreateRequest\x1a\'.modal.client.FunctionPrecreateResponse\x12\x64\n\x11\x46unctionPutInputs\x12&.modal.client.FunctionPutInputsRequest\x1a\'.modal.client.FunctionPutInputsResponse\x12U\n\x12\x46unctionPutOutputs\x12\'.modal.client.FunctionPutOutputsRequest\x1a\x16.google.protobuf.Empty\x12j\n\x13\x46unctionRetryInputs\x12(.modal.client.FunctionRetryInputsRequest\x1a).modal.client.FunctionRetryInputsResponse\x12G\n\x15\x46unctionStartPtyShell\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\x12\x8b\x01\n\x1e\x46unctionUpdateSchedulingParams\x12\x33.modal.client.FunctionUpdateSchedulingParamsRequest\x1a\x34.modal.client.FunctionUpdateSchedulingParamsResponse\x12R\n\x0bImageFromId\x12 .modal.client.ImageFromIdRequest\x1a!.modal.client.ImageFromIdResponse\x12\x61\n\x10ImageGetOrCreate\x12%.modal.client.ImageGetOrCreateRequest\x1a&.modal.client.ImageGetOrCreateResponse\x12i\n\x12ImageJoinStreaming\x12\'.modal.client.ImageJoinStreamingRequest\x1a(.modal.client.ImageJoinStreamingResponse0\x01\x12I\n\x08MapAwait\x12\x1d.modal.client.MapAwaitRequest\x1a\x1e.modal.client.MapAwaitResponse\x12g\n\x12MapStartOrContinue\x12\'.modal.client.MapStartOrContinueRequest\x1a(.modal.client.MapStartOrContinueResponse\x12\x61\n\x10MountGetOrCreate\x12%.modal.client.MountGetOrCreateRequest\x1a&.modal.client.MountGetOrCreateResponse\x12U\n\x0cMountPutFile\x12!.modal.client.MountPutFileRequest\x1a\".modal.client.MountPutFileResponse\x12i\n\x1cNotebookKernelPublishResults\x12\x31.modal.client.NotebookKernelPublishResultsRequest\x1a\x16.google.protobuf.Empty\x12O\n\nProxyAddIp\x12\x1f.modal.client.ProxyAddIpRequest\x1a .modal.client.ProxyAddIpResponse\x12R\n\x0bProxyCreate\x12 .modal.client.ProxyCreateRequest\x1a!.modal.client.ProxyCreateResponse\x12G\n\x0bProxyDelete\x12 .modal.client.ProxyDeleteRequest\x1a\x16.google.protobuf.Empty\x12I\n\x08ProxyGet\x12\x1d.modal.client.ProxyGetRequest\x1a\x1e.modal.client.ProxyGetResponse\x12\x61\n\x10ProxyGetOrCreate\x12%.modal.client.ProxyGetOrCreateRequest\x1a&.modal.client.ProxyGetOrCreateResponse\x12\x44\n\tProxyList\x12\x16.google.protobuf.Empty\x1a\x1f.modal.client.ProxyListResponse\x12K\n\rProxyRemoveIp\x12\".modal.client.ProxyRemoveIpRequest\x1a\x16.google.protobuf.Empty\x12\x45\n\nQueueClear\x12\x1f.modal.client.QueueClearRequest\x1a\x16.google.protobuf.Empty\x12G\n\x0bQueueDelete\x12 .modal.client.QueueDeleteRequest\x1a\x16.google.protobuf.Empty\x12I\n\x08QueueGet\x12\x1d.modal.client.QueueGetRequest\x1a\x1e.modal.client.QueueGetResponse\x12\x61\n\x10QueueGetOrCreate\x12%.modal.client.QueueGetOrCreateRequest\x1a&.modal.client.QueueGetOrCreateResponse\x12M\n\x0eQueueHeartbeat\x12#.modal.client.QueueHeartbeatRequest\x1a\x16.google.protobuf.Empty\x12I\n\x08QueueLen\x12\x1d.modal.client.QueueLenRequest\x1a\x1e.modal.client.QueueLenResponse\x12L\n\tQueueList\x12\x1e.modal.client.QueueListRequest\x1a\x1f.modal.client.QueueListResponse\x12[\n\x0eQueueNextItems\x12#.modal.client.QueueNextItemsRequest\x1a$.modal.client.QueueNextItemsResponse\x12\x41\n\x08QueuePut\x12\x1d.modal.client.QueuePutRequest\x1a\x16.google.protobuf.Empty\x12X\n\rSandboxCreate\x12\".modal.client.SandboxCreateRequest\x1a#.modal.client.SandboxCreateResponse\x12g\n\x12SandboxGetFromName\x12\'.modal.client.SandboxGetFromNameRequest\x1a(.modal.client.SandboxGetFromNameResponse\x12T\n\x0eSandboxGetLogs\x12#.modal.client.SandboxGetLogsRequest\x1a\x1b.modal.client.TaskLogsBatch0\x01\x12v\n\x17SandboxGetResourceUsage\x12,.modal.client.SandboxGetResourceUsageRequest\x1a-.modal.client.SandboxGetResourceUsageResponse\x12\x61\n\x10SandboxGetTaskId\x12%.modal.client.SandboxGetTaskIdRequest\x1a&.modal.client.SandboxGetTaskIdResponse\x12\x64\n\x11SandboxGetTunnels\x12&.modal.client.SandboxGetTunnelsRequest\x1a\'.modal.client.SandboxGetTunnelsResponse\x12R\n\x0bSandboxList\x12 .modal.client.SandboxListRequest\x1a!.modal.client.SandboxListResponse\x12[\n\x0eSandboxRestore\x12#.modal.client.SandboxRestoreRequest\x1a$.modal.client.SandboxRestoreResponse\x12^\n\x0fSandboxSnapshot\x12$.modal.client.SandboxSnapshotRequest\x1a%.modal.client.SandboxSnapshotResponse\x12\x64\n\x11SandboxSnapshotFs\x12&.modal.client.SandboxSnapshotFsRequest\x1a\'.modal.client.SandboxSnapshotFsResponse\x12g\n\x12SandboxSnapshotGet\x12\'.modal.client.SandboxSnapshotGetRequest\x1a(.modal.client.SandboxSnapshotGetResponse\x12j\n\x13SandboxSnapshotWait\x12(.modal.client.SandboxSnapshotWaitRequest\x1a).modal.client.SandboxSnapshotWaitResponse\x12\x64\n\x11SandboxStdinWrite\x12&.modal.client.SandboxStdinWriteRequest\x1a\'.modal.client.SandboxStdinWriteResponse\x12M\n\x0eSandboxTagsSet\x12#.modal.client.SandboxTagsSetRequest\x1a\x16.google.protobuf.Empty\x12\x61\n\x10SandboxTerminate\x12%.modal.client.SandboxTerminateRequest\x1a&.modal.client.SandboxTerminateResponse\x12R\n\x0bSandboxWait\x12 .modal.client.SandboxWaitRequest\x1a!.modal.client.SandboxWaitResponse\x12I\n\x0cSecretDelete\x12!.modal.client.SecretDeleteRequest\x1a\x16.google.protobuf.Empty\x12\x64\n\x11SecretGetOrCreate\x12&.modal.client.SecretGetOrCreateRequest\x1a\'.modal.client.SecretGetOrCreateResponse\x12O\n\nSecretList\x12\x1f.modal.client.SecretListRequest\x1a .modal.client.SecretListResponse\x12U\n\x12SharedVolumeDelete\x12\'.modal.client.SharedVolumeDeleteRequest\x1a\x16.google.protobuf.Empty\x12j\n\x13SharedVolumeGetFile\x12(.modal.client.SharedVolumeGetFileRequest\x1a).modal.client.SharedVolumeGetFileResponse\x12v\n\x17SharedVolumeGetOrCreate\x12,.modal.client.SharedVolumeGetOrCreateRequest\x1a-.modal.client.SharedVolumeGetOrCreateResponse\x12[\n\x15SharedVolumeHeartbeat\x12*.modal.client.SharedVolumeHeartbeatRequest\x1a\x16.google.protobuf.Empty\x12\x61\n\x10SharedVolumeList\x12%.modal.client.SharedVolumeListRequest\x1a&.modal.client.SharedVolumeListResponse\x12p\n\x15SharedVolumeListFiles\x12*.modal.client.SharedVolumeListFilesRequest\x1a+.modal.client.SharedVolumeListFilesResponse\x12x\n\x1bSharedVolumeListFilesStream\x12*.modal.client.SharedVolumeListFilesRequest\x1a+.modal.client.SharedVolumeListFilesResponse0\x01\x12j\n\x13SharedVolumePutFile\x12(.modal.client.SharedVolumePutFileRequest\x1a).modal.client.SharedVolumePutFileResponse\x12]\n\x16SharedVolumeRemoveFile\x12+.modal.client.SharedVolumeRemoveFileRequest\x1a\x16.google.protobuf.Empty\x12\x61\n\x10TaskClusterHello\x12%.modal.client.TaskClusterHelloRequest\x1a&.modal.client.TaskClusterHelloResponse\x12T\n\x11TaskCurrentInputs\x12\x16.google.protobuf.Empty\x1a\'.modal.client.TaskCurrentInputsResponse\x12I\n\x08TaskList\x12\x1d.modal.client.TaskListRequest\x1a\x1e.modal.client.TaskListResponse\x12\x45\n\nTaskResult\x12\x1f.modal.client.TaskResultRequest\x1a\x16.google.protobuf.Empty\x12^\n\x0fTokenFlowCreate\x12$.modal.client.TokenFlowCreateRequest\x1a%.modal.client.TokenFlowCreateResponse\x12X\n\rTokenFlowWait\x12\".modal.client.TokenFlowWaitRequest\x1a#.modal.client.TokenFlowWaitResponse\x12R\n\x0bTunnelStart\x12 .modal.client.TunnelStartRequest\x1a!.modal.client.TunnelStartResponse\x12O\n\nTunnelStop\x12\x1f.modal.client.TunnelStopRequest\x1a .modal.client.TunnelStopResponse\x12U\n\x0cVolumeCommit\x12!.modal.client.VolumeCommitRequest\x1a\".modal.client.VolumeCommitResponse\x12O\n\x0fVolumeCopyFiles\x12$.modal.client.VolumeCopyFilesRequest\x1a\x16.google.protobuf.Empty\x12Q\n\x10VolumeCopyFiles2\x12%.modal.client.VolumeCopyFiles2Request\x1a\x16.google.protobuf.Empty\x12I\n\x0cVolumeDelete\x12!.modal.client.VolumeDeleteRequest\x1a\x16.google.protobuf.Empty\x12X\n\rVolumeGetFile\x12\".modal.client.VolumeGetFileRequest\x1a#.modal.client.VolumeGetFileResponse\x12[\n\x0eVolumeGetFile2\x12#.modal.client.VolumeGetFile2Request\x1a$.modal.client.VolumeGetFile2Response\x12\x64\n\x11VolumeGetOrCreate\x12&.modal.client.VolumeGetOrCreateRequest\x1a\'.modal.client.VolumeGetOrCreateResponse\x12O\n\x0fVolumeHeartbeat\x12$.modal.client.VolumeHeartbeatRequest\x1a\x16.google.protobuf.Empty\x12O\n\nVolumeList\x12\x1f.modal.client.VolumeListRequest\x1a .modal.client.VolumeListResponse\x12`\n\x0fVolumeListFiles\x12$.modal.client.VolumeListFilesRequest\x1a%.modal.client.VolumeListFilesResponse0\x01\x12\x63\n\x10VolumeListFiles2\x12%.modal.client.VolumeListFiles2Request\x1a&.modal.client.VolumeListFiles2Response0\x01\x12M\n\x0eVolumePutFiles\x12#.modal.client.VolumePutFilesRequest\x1a\x16.google.protobuf.Empty\x12^\n\x0fVolumePutFiles2\x12$.modal.client.VolumePutFiles2Request\x1a%.modal.client.VolumePutFiles2Response\x12I\n\x0cVolumeReload\x12!.modal.client.VolumeReloadRequest\x1a\x16.google.protobuf.Empty\x12Q\n\x10VolumeRemoveFile\x12%.modal.client.VolumeRemoveFileRequest\x1a\x16.google.protobuf.Empty\x12S\n\x11VolumeRemoveFile2\x12&.modal.client.VolumeRemoveFile2Request\x1a\x16.google.protobuf.Empty\x12I\n\x0cVolumeRename\x12!.modal.client.VolumeRenameRequest\x1a\x16.google.protobuf.Empty\x12X\n\x13WorkspaceNameLookup\x12\x16.google.protobuf.Empty\x1a).modal.client.WorkspaceNameLookupResponseB&Z$github.com/modal-labs/modal/go/protob\x06proto3')
23
23
 
24
24
  _APPDEPLOYVISIBILITY = DESCRIPTOR.enum_types_by_name['AppDeployVisibility']
25
25
  AppDeployVisibility = enum_type_wrapper.EnumTypeWrapper(_APPDEPLOYVISIBILITY)
@@ -71,6 +71,8 @@ _SEEKWHENCE = DESCRIPTOR.enum_types_by_name['SeekWhence']
71
71
  SeekWhence = enum_type_wrapper.EnumTypeWrapper(_SEEKWHENCE)
72
72
  _SYSTEMERRORCODE = DESCRIPTOR.enum_types_by_name['SystemErrorCode']
73
73
  SystemErrorCode = enum_type_wrapper.EnumTypeWrapper(_SYSTEMERRORCODE)
74
+ _TASKSNAPSHOTBEHAVIOR = DESCRIPTOR.enum_types_by_name['TaskSnapshotBehavior']
75
+ TaskSnapshotBehavior = enum_type_wrapper.EnumTypeWrapper(_TASKSNAPSHOTBEHAVIOR)
74
76
  _TASKSTATE = DESCRIPTOR.enum_types_by_name['TaskState']
75
77
  TaskState = enum_type_wrapper.EnumTypeWrapper(_TASKSTATE)
76
78
  _TUNNELTYPE = DESCRIPTOR.enum_types_by_name['TunnelType']
@@ -214,6 +216,10 @@ SYSTEM_ERROR_CODE_INVAL = 22
214
216
  SYSTEM_ERROR_CODE_MFILE = 24
215
217
  SYSTEM_ERROR_CODE_FBIG = 27
216
218
  SYSTEM_ERROR_CODE_NOSPC = 28
219
+ TASK_SNAPSHOT_BEHAVIOR_UNSPECIFIED = 0
220
+ TASK_SNAPSHOT_BEHAVIOR_SNAPSHOT = 1
221
+ TASK_SNAPSHOT_BEHAVIOR_RESTORE = 2
222
+ TASK_SNAPSHOT_BEHAVIOR_NONE = 3
217
223
  TASK_STATE_UNSPECIFIED = 0
218
224
  TASK_STATE_CREATED = 6
219
225
  TASK_STATE_QUEUED = 1
@@ -3887,66 +3893,68 @@ if _descriptor._USE_C_DESCRIPTORS == False:
3887
3893
  _WEBURLINFO.fields_by_name['has_unique_hash']._serialized_options = b'\030\001'
3888
3894
  _WORKSPACENAMELOOKUPRESPONSE.fields_by_name['workspace_name']._options = None
3889
3895
  _WORKSPACENAMELOOKUPRESPONSE.fields_by_name['workspace_name']._serialized_options = b'\030\001'
3890
- _APPDEPLOYVISIBILITY._serialized_start=55338
3891
- _APPDEPLOYVISIBILITY._serialized_end=55469
3892
- _APPDISCONNECTREASON._serialized_start=55472
3893
- _APPDISCONNECTREASON._serialized_end=55761
3894
- _APPSTATE._serialized_start=55764
3895
- _APPSTATE._serialized_end=56037
3896
- _APPSTOPSOURCE._serialized_start=56040
3897
- _APPSTOPSOURCE._serialized_end=56173
3898
- _CERTIFICATESTATUS._serialized_start=56176
3899
- _CERTIFICATESTATUS._serialized_end=56321
3900
- _CHECKPOINTSTATUS._serialized_start=56324
3901
- _CHECKPOINTSTATUS._serialized_end=56501
3902
- _CLIENTTYPE._serialized_start=56504
3903
- _CLIENTTYPE._serialized_end=56765
3904
- _CLOUDPROVIDER._serialized_start=56768
3905
- _CLOUDPROVIDER._serialized_end=56936
3906
- _DNSRECORDTYPE._serialized_start=56938
3907
- _DNSRECORDTYPE._serialized_end=57028
3908
- _DATAFORMAT._serialized_start=57030
3909
- _DATAFORMAT._serialized_end=57149
3910
- _DEPLOYMENTNAMESPACE._serialized_start=57152
3911
- _DEPLOYMENTNAMESPACE._serialized_end=57280
3912
- _EXECOUTPUTOPTION._serialized_start=57283
3913
- _EXECOUTPUTOPTION._serialized_end=57429
3914
- _FILEDESCRIPTOR._serialized_start=57432
3915
- _FILEDESCRIPTOR._serialized_end=57563
3916
- _FUNCTIONCALLINVOCATIONTYPE._serialized_start=57566
3917
- _FUNCTIONCALLINVOCATIONTYPE._serialized_end=57817
3918
- _FUNCTIONCALLTYPE._serialized_start=57819
3919
- _FUNCTIONCALLTYPE._serialized_end=57931
3920
- _GPUTYPE._serialized_start=57934
3921
- _GPUTYPE._serialized_end=58140
3922
- _OBJECTCREATIONTYPE._serialized_start=58143
3923
- _OBJECTCREATIONTYPE._serialized_end=58431
3924
- _PARAMETERTYPE._serialized_start=58434
3925
- _PARAMETERTYPE._serialized_end=58673
3926
- _PROGRESSTYPE._serialized_start=58675
3927
- _PROGRESSTYPE._serialized_end=58737
3928
- _PROXYIPSTATUS._serialized_start=58740
3929
- _PROXYIPSTATUS._serialized_end=58909
3930
- _PROXYTYPE._serialized_start=58911
3931
- _PROXYTYPE._serialized_end=58995
3932
- _RATELIMITINTERVAL._serialized_start=58997
3933
- _RATELIMITINTERVAL._serialized_end=59117
3934
- _REGISTRYAUTHTYPE._serialized_start=59120
3935
- _REGISTRYAUTHTYPE._serialized_end=59298
3936
- _SEEKWHENCE._serialized_start=59300
3937
- _SEEKWHENCE._serialized_end=59354
3938
- _SYSTEMERRORCODE._serialized_start=59357
3939
- _SYSTEMERRORCODE._serialized_end=59781
3940
- _TASKSTATE._serialized_start=59784
3941
- _TASKSTATE._serialized_end=60132
3942
- _TUNNELTYPE._serialized_start=60134
3943
- _TUNNELTYPE._serialized_end=60195
3944
- _VOLUMEFSVERSION._serialized_start=60197
3945
- _VOLUMEFSVERSION._serialized_end=60301
3946
- _WEBHOOKASYNCMODE._serialized_start=60304
3947
- _WEBHOOKASYNCMODE._serialized_end=60458
3948
- _WEBHOOKTYPE._serialized_start=60461
3949
- _WEBHOOKTYPE._serialized_end=60614
3896
+ _APPDEPLOYVISIBILITY._serialized_start=55401
3897
+ _APPDEPLOYVISIBILITY._serialized_end=55532
3898
+ _APPDISCONNECTREASON._serialized_start=55535
3899
+ _APPDISCONNECTREASON._serialized_end=55824
3900
+ _APPSTATE._serialized_start=55827
3901
+ _APPSTATE._serialized_end=56100
3902
+ _APPSTOPSOURCE._serialized_start=56103
3903
+ _APPSTOPSOURCE._serialized_end=56236
3904
+ _CERTIFICATESTATUS._serialized_start=56239
3905
+ _CERTIFICATESTATUS._serialized_end=56384
3906
+ _CHECKPOINTSTATUS._serialized_start=56387
3907
+ _CHECKPOINTSTATUS._serialized_end=56564
3908
+ _CLIENTTYPE._serialized_start=56567
3909
+ _CLIENTTYPE._serialized_end=56828
3910
+ _CLOUDPROVIDER._serialized_start=56831
3911
+ _CLOUDPROVIDER._serialized_end=56999
3912
+ _DNSRECORDTYPE._serialized_start=57001
3913
+ _DNSRECORDTYPE._serialized_end=57091
3914
+ _DATAFORMAT._serialized_start=57093
3915
+ _DATAFORMAT._serialized_end=57212
3916
+ _DEPLOYMENTNAMESPACE._serialized_start=57215
3917
+ _DEPLOYMENTNAMESPACE._serialized_end=57343
3918
+ _EXECOUTPUTOPTION._serialized_start=57346
3919
+ _EXECOUTPUTOPTION._serialized_end=57492
3920
+ _FILEDESCRIPTOR._serialized_start=57495
3921
+ _FILEDESCRIPTOR._serialized_end=57626
3922
+ _FUNCTIONCALLINVOCATIONTYPE._serialized_start=57629
3923
+ _FUNCTIONCALLINVOCATIONTYPE._serialized_end=57880
3924
+ _FUNCTIONCALLTYPE._serialized_start=57882
3925
+ _FUNCTIONCALLTYPE._serialized_end=57994
3926
+ _GPUTYPE._serialized_start=57997
3927
+ _GPUTYPE._serialized_end=58203
3928
+ _OBJECTCREATIONTYPE._serialized_start=58206
3929
+ _OBJECTCREATIONTYPE._serialized_end=58494
3930
+ _PARAMETERTYPE._serialized_start=58497
3931
+ _PARAMETERTYPE._serialized_end=58736
3932
+ _PROGRESSTYPE._serialized_start=58738
3933
+ _PROGRESSTYPE._serialized_end=58800
3934
+ _PROXYIPSTATUS._serialized_start=58803
3935
+ _PROXYIPSTATUS._serialized_end=58972
3936
+ _PROXYTYPE._serialized_start=58974
3937
+ _PROXYTYPE._serialized_end=59058
3938
+ _RATELIMITINTERVAL._serialized_start=59060
3939
+ _RATELIMITINTERVAL._serialized_end=59180
3940
+ _REGISTRYAUTHTYPE._serialized_start=59183
3941
+ _REGISTRYAUTHTYPE._serialized_end=59361
3942
+ _SEEKWHENCE._serialized_start=59363
3943
+ _SEEKWHENCE._serialized_end=59417
3944
+ _SYSTEMERRORCODE._serialized_start=59420
3945
+ _SYSTEMERRORCODE._serialized_end=59844
3946
+ _TASKSNAPSHOTBEHAVIOR._serialized_start=59847
3947
+ _TASKSNAPSHOTBEHAVIOR._serialized_end=60015
3948
+ _TASKSTATE._serialized_start=60018
3949
+ _TASKSTATE._serialized_end=60366
3950
+ _TUNNELTYPE._serialized_start=60368
3951
+ _TUNNELTYPE._serialized_end=60429
3952
+ _VOLUMEFSVERSION._serialized_start=60431
3953
+ _VOLUMEFSVERSION._serialized_end=60535
3954
+ _WEBHOOKASYNCMODE._serialized_start=60538
3955
+ _WEBHOOKASYNCMODE._serialized_end=60692
3956
+ _WEBHOOKTYPE._serialized_start=60695
3957
+ _WEBHOOKTYPE._serialized_end=60848
3950
3958
  _APPCLIENTDISCONNECTREQUEST._serialized_start=157
3951
3959
  _APPCLIENTDISCONNECTREQUEST._serialized_end=271
3952
3960
  _APPCREATEREQUEST._serialized_start=274
@@ -4726,115 +4734,115 @@ if _descriptor._USE_C_DESCRIPTORS == False:
4726
4734
  _TASKCURRENTINPUTSRESPONSE._serialized_start=49516
4727
4735
  _TASKCURRENTINPUTSRESPONSE._serialized_end=49562
4728
4736
  _TASKINFO._serialized_start=49565
4729
- _TASKINFO._serialized_end=49732
4730
- _TASKLISTREQUEST._serialized_start=49734
4731
- _TASKLISTREQUEST._serialized_end=49777
4732
- _TASKLISTRESPONSE._serialized_start=49779
4733
- _TASKLISTRESPONSE._serialized_end=49837
4734
- _TASKLOGS._serialized_start=49840
4735
- _TASKLOGS._serialized_end=50100
4736
- _TASKLOGSBATCH._serialized_start=50103
4737
- _TASKLOGSBATCH._serialized_end=50327
4738
- _TASKPROGRESS._serialized_start=50329
4739
- _TASKPROGRESS._serialized_end=50441
4740
- _TASKRESULTREQUEST._serialized_start=50443
4741
- _TASKRESULTREQUEST._serialized_end=50507
4742
- _TASKSTATS._serialized_start=50509
4743
- _TASKSTATS._serialized_end=50598
4744
- _TASKTEMPLATE._serialized_start=50601
4745
- _TASKTEMPLATE._serialized_end=50753
4746
- _TOKENFLOWCREATEREQUEST._serialized_start=50755
4747
- _TOKENFLOWCREATEREQUEST._serialized_end=50841
4748
- _TOKENFLOWCREATERESPONSE._serialized_start=50843
4749
- _TOKENFLOWCREATERESPONSE._serialized_end=50943
4750
- _TOKENFLOWWAITREQUEST._serialized_start=50945
4751
- _TOKENFLOWWAITREQUEST._serialized_end=51028
4752
- _TOKENFLOWWAITRESPONSE._serialized_start=51030
4753
- _TOKENFLOWWAITRESPONSE._serialized_end=51138
4754
- _TUNNELDATA._serialized_start=51141
4755
- _TUNNELDATA._serialized_end=51309
4756
- _TUNNELSTARTREQUEST._serialized_start=51311
4757
- _TUNNELSTARTREQUEST._serialized_end=51434
4758
- _TUNNELSTARTRESPONSE._serialized_start=51437
4759
- _TUNNELSTARTRESPONSE._serialized_end=51590
4760
- _TUNNELSTOPREQUEST._serialized_start=51592
4761
- _TUNNELSTOPREQUEST._serialized_end=51625
4762
- _TUNNELSTOPRESPONSE._serialized_start=51627
4763
- _TUNNELSTOPRESPONSE._serialized_end=51663
4764
- _UPLOADURLLIST._serialized_start=51665
4765
- _UPLOADURLLIST._serialized_end=51695
4766
- _VOLUMECOMMITREQUEST._serialized_start=51697
4767
- _VOLUMECOMMITREQUEST._serialized_end=51743
4768
- _VOLUMECOMMITRESPONSE._serialized_start=51745
4769
- _VOLUMECOMMITRESPONSE._serialized_end=51788
4770
- _VOLUMECOPYFILES2REQUEST._serialized_start=51790
4771
- _VOLUMECOPYFILES2REQUEST._serialized_end=51890
4772
- _VOLUMECOPYFILESREQUEST._serialized_start=51892
4773
- _VOLUMECOPYFILESREQUEST._serialized_end=51991
4774
- _VOLUMEDELETEREQUEST._serialized_start=51993
4775
- _VOLUMEDELETEREQUEST._serialized_end=52063
4776
- _VOLUMEGETFILE2REQUEST._serialized_start=52065
4777
- _VOLUMEGETFILE2REQUEST._serialized_end=52149
4778
- _VOLUMEGETFILE2RESPONSE._serialized_start=52151
4779
- _VOLUMEGETFILE2RESPONSE._serialized_end=52235
4780
- _VOLUMEGETFILEREQUEST._serialized_start=52237
4781
- _VOLUMEGETFILEREQUEST._serialized_end=52320
4782
- _VOLUMEGETFILERESPONSE._serialized_start=52322
4783
- _VOLUMEGETFILERESPONSE._serialized_end=52441
4784
- _VOLUMEGETORCREATEREQUEST._serialized_start=52444
4785
- _VOLUMEGETORCREATEREQUEST._serialized_end=52661
4786
- _VOLUMEGETORCREATERESPONSE._serialized_start=52664
4787
- _VOLUMEGETORCREATERESPONSE._serialized_end=52806
4788
- _VOLUMEHEARTBEATREQUEST._serialized_start=52808
4789
- _VOLUMEHEARTBEATREQUEST._serialized_end=52851
4790
- _VOLUMELISTFILES2REQUEST._serialized_start=52853
4791
- _VOLUMELISTFILES2REQUEST._serialized_end=52972
4792
- _VOLUMELISTFILES2RESPONSE._serialized_start=52974
4793
- _VOLUMELISTFILES2RESPONSE._serialized_end=53042
4794
- _VOLUMELISTFILESREQUEST._serialized_start=53044
4795
- _VOLUMELISTFILESREQUEST._serialized_end=53162
4796
- _VOLUMELISTFILESRESPONSE._serialized_start=53164
4797
- _VOLUMELISTFILESRESPONSE._serialized_end=53231
4798
- _VOLUMELISTITEM._serialized_start=53233
4799
- _VOLUMELISTITEM._serialized_end=53303
4800
- _VOLUMELISTREQUEST._serialized_start=53305
4801
- _VOLUMELISTREQUEST._serialized_end=53350
4802
- _VOLUMELISTRESPONSE._serialized_start=53352
4803
- _VOLUMELISTRESPONSE._serialized_end=53443
4804
- _VOLUMEMETADATA._serialized_start=53446
4805
- _VOLUMEMETADATA._serialized_end=53575
4806
- _VOLUMEMOUNT._serialized_start=53577
4807
- _VOLUMEMOUNT._serialized_end=53682
4808
- _VOLUMEPUTFILES2REQUEST._serialized_start=53685
4809
- _VOLUMEPUTFILES2REQUEST._serialized_end=54031
4810
- _VOLUMEPUTFILES2REQUEST_FILE._serialized_start=53831
4811
- _VOLUMEPUTFILES2REQUEST_FILE._serialized_end=53953
4812
- _VOLUMEPUTFILES2REQUEST_BLOCK._serialized_start=53955
4813
- _VOLUMEPUTFILES2REQUEST_BLOCK._serialized_end=54031
4814
- _VOLUMEPUTFILES2RESPONSE._serialized_start=54034
4815
- _VOLUMEPUTFILES2RESPONSE._serialized_end=54209
4816
- _VOLUMEPUTFILES2RESPONSE_MISSINGBLOCK._serialized_start=54137
4817
- _VOLUMEPUTFILES2RESPONSE_MISSINGBLOCK._serialized_end=54209
4818
- _VOLUMEPUTFILESREQUEST._serialized_start=54211
4819
- _VOLUMEPUTFILESREQUEST._serialized_end=54336
4820
- _VOLUMERELOADREQUEST._serialized_start=54338
4821
- _VOLUMERELOADREQUEST._serialized_end=54378
4822
- _VOLUMEREMOVEFILE2REQUEST._serialized_start=54380
4823
- _VOLUMEREMOVEFILE2REQUEST._serialized_end=54464
4824
- _VOLUMEREMOVEFILEREQUEST._serialized_start=54466
4825
- _VOLUMEREMOVEFILEREQUEST._serialized_end=54549
4826
- _VOLUMERENAMEREQUEST._serialized_start=54551
4827
- _VOLUMERENAMEREQUEST._serialized_end=54611
4828
- _WARNING._serialized_start=54614
4829
- _WARNING._serialized_end=54846
4830
- _WARNING_WARNINGTYPE._serialized_start=54692
4831
- _WARNING_WARNINGTYPE._serialized_end=54846
4832
- _WEBURLINFO._serialized_start=54848
4833
- _WEBURLINFO._serialized_end=54930
4834
- _WEBHOOKCONFIG._serialized_start=54933
4835
- _WEBHOOKCONFIG._serialized_end=55258
4836
- _WORKSPACENAMELOOKUPRESPONSE._serialized_start=55260
4837
- _WORKSPACENAMELOOKUPRESPONSE._serialized_end=55335
4838
- _MODALCLIENT._serialized_start=60617
4839
- _MODALCLIENT._serialized_end=75242
4737
+ _TASKINFO._serialized_end=49795
4738
+ _TASKLISTREQUEST._serialized_start=49797
4739
+ _TASKLISTREQUEST._serialized_end=49840
4740
+ _TASKLISTRESPONSE._serialized_start=49842
4741
+ _TASKLISTRESPONSE._serialized_end=49900
4742
+ _TASKLOGS._serialized_start=49903
4743
+ _TASKLOGS._serialized_end=50163
4744
+ _TASKLOGSBATCH._serialized_start=50166
4745
+ _TASKLOGSBATCH._serialized_end=50390
4746
+ _TASKPROGRESS._serialized_start=50392
4747
+ _TASKPROGRESS._serialized_end=50504
4748
+ _TASKRESULTREQUEST._serialized_start=50506
4749
+ _TASKRESULTREQUEST._serialized_end=50570
4750
+ _TASKSTATS._serialized_start=50572
4751
+ _TASKSTATS._serialized_end=50661
4752
+ _TASKTEMPLATE._serialized_start=50664
4753
+ _TASKTEMPLATE._serialized_end=50816
4754
+ _TOKENFLOWCREATEREQUEST._serialized_start=50818
4755
+ _TOKENFLOWCREATEREQUEST._serialized_end=50904
4756
+ _TOKENFLOWCREATERESPONSE._serialized_start=50906
4757
+ _TOKENFLOWCREATERESPONSE._serialized_end=51006
4758
+ _TOKENFLOWWAITREQUEST._serialized_start=51008
4759
+ _TOKENFLOWWAITREQUEST._serialized_end=51091
4760
+ _TOKENFLOWWAITRESPONSE._serialized_start=51093
4761
+ _TOKENFLOWWAITRESPONSE._serialized_end=51201
4762
+ _TUNNELDATA._serialized_start=51204
4763
+ _TUNNELDATA._serialized_end=51372
4764
+ _TUNNELSTARTREQUEST._serialized_start=51374
4765
+ _TUNNELSTARTREQUEST._serialized_end=51497
4766
+ _TUNNELSTARTRESPONSE._serialized_start=51500
4767
+ _TUNNELSTARTRESPONSE._serialized_end=51653
4768
+ _TUNNELSTOPREQUEST._serialized_start=51655
4769
+ _TUNNELSTOPREQUEST._serialized_end=51688
4770
+ _TUNNELSTOPRESPONSE._serialized_start=51690
4771
+ _TUNNELSTOPRESPONSE._serialized_end=51726
4772
+ _UPLOADURLLIST._serialized_start=51728
4773
+ _UPLOADURLLIST._serialized_end=51758
4774
+ _VOLUMECOMMITREQUEST._serialized_start=51760
4775
+ _VOLUMECOMMITREQUEST._serialized_end=51806
4776
+ _VOLUMECOMMITRESPONSE._serialized_start=51808
4777
+ _VOLUMECOMMITRESPONSE._serialized_end=51851
4778
+ _VOLUMECOPYFILES2REQUEST._serialized_start=51853
4779
+ _VOLUMECOPYFILES2REQUEST._serialized_end=51953
4780
+ _VOLUMECOPYFILESREQUEST._serialized_start=51955
4781
+ _VOLUMECOPYFILESREQUEST._serialized_end=52054
4782
+ _VOLUMEDELETEREQUEST._serialized_start=52056
4783
+ _VOLUMEDELETEREQUEST._serialized_end=52126
4784
+ _VOLUMEGETFILE2REQUEST._serialized_start=52128
4785
+ _VOLUMEGETFILE2REQUEST._serialized_end=52212
4786
+ _VOLUMEGETFILE2RESPONSE._serialized_start=52214
4787
+ _VOLUMEGETFILE2RESPONSE._serialized_end=52298
4788
+ _VOLUMEGETFILEREQUEST._serialized_start=52300
4789
+ _VOLUMEGETFILEREQUEST._serialized_end=52383
4790
+ _VOLUMEGETFILERESPONSE._serialized_start=52385
4791
+ _VOLUMEGETFILERESPONSE._serialized_end=52504
4792
+ _VOLUMEGETORCREATEREQUEST._serialized_start=52507
4793
+ _VOLUMEGETORCREATEREQUEST._serialized_end=52724
4794
+ _VOLUMEGETORCREATERESPONSE._serialized_start=52727
4795
+ _VOLUMEGETORCREATERESPONSE._serialized_end=52869
4796
+ _VOLUMEHEARTBEATREQUEST._serialized_start=52871
4797
+ _VOLUMEHEARTBEATREQUEST._serialized_end=52914
4798
+ _VOLUMELISTFILES2REQUEST._serialized_start=52916
4799
+ _VOLUMELISTFILES2REQUEST._serialized_end=53035
4800
+ _VOLUMELISTFILES2RESPONSE._serialized_start=53037
4801
+ _VOLUMELISTFILES2RESPONSE._serialized_end=53105
4802
+ _VOLUMELISTFILESREQUEST._serialized_start=53107
4803
+ _VOLUMELISTFILESREQUEST._serialized_end=53225
4804
+ _VOLUMELISTFILESRESPONSE._serialized_start=53227
4805
+ _VOLUMELISTFILESRESPONSE._serialized_end=53294
4806
+ _VOLUMELISTITEM._serialized_start=53296
4807
+ _VOLUMELISTITEM._serialized_end=53366
4808
+ _VOLUMELISTREQUEST._serialized_start=53368
4809
+ _VOLUMELISTREQUEST._serialized_end=53413
4810
+ _VOLUMELISTRESPONSE._serialized_start=53415
4811
+ _VOLUMELISTRESPONSE._serialized_end=53506
4812
+ _VOLUMEMETADATA._serialized_start=53509
4813
+ _VOLUMEMETADATA._serialized_end=53638
4814
+ _VOLUMEMOUNT._serialized_start=53640
4815
+ _VOLUMEMOUNT._serialized_end=53745
4816
+ _VOLUMEPUTFILES2REQUEST._serialized_start=53748
4817
+ _VOLUMEPUTFILES2REQUEST._serialized_end=54094
4818
+ _VOLUMEPUTFILES2REQUEST_FILE._serialized_start=53894
4819
+ _VOLUMEPUTFILES2REQUEST_FILE._serialized_end=54016
4820
+ _VOLUMEPUTFILES2REQUEST_BLOCK._serialized_start=54018
4821
+ _VOLUMEPUTFILES2REQUEST_BLOCK._serialized_end=54094
4822
+ _VOLUMEPUTFILES2RESPONSE._serialized_start=54097
4823
+ _VOLUMEPUTFILES2RESPONSE._serialized_end=54272
4824
+ _VOLUMEPUTFILES2RESPONSE_MISSINGBLOCK._serialized_start=54200
4825
+ _VOLUMEPUTFILES2RESPONSE_MISSINGBLOCK._serialized_end=54272
4826
+ _VOLUMEPUTFILESREQUEST._serialized_start=54274
4827
+ _VOLUMEPUTFILESREQUEST._serialized_end=54399
4828
+ _VOLUMERELOADREQUEST._serialized_start=54401
4829
+ _VOLUMERELOADREQUEST._serialized_end=54441
4830
+ _VOLUMEREMOVEFILE2REQUEST._serialized_start=54443
4831
+ _VOLUMEREMOVEFILE2REQUEST._serialized_end=54527
4832
+ _VOLUMEREMOVEFILEREQUEST._serialized_start=54529
4833
+ _VOLUMEREMOVEFILEREQUEST._serialized_end=54612
4834
+ _VOLUMERENAMEREQUEST._serialized_start=54614
4835
+ _VOLUMERENAMEREQUEST._serialized_end=54674
4836
+ _WARNING._serialized_start=54677
4837
+ _WARNING._serialized_end=54909
4838
+ _WARNING_WARNINGTYPE._serialized_start=54755
4839
+ _WARNING_WARNINGTYPE._serialized_end=54909
4840
+ _WEBURLINFO._serialized_start=54911
4841
+ _WEBURLINFO._serialized_end=54993
4842
+ _WEBHOOKCONFIG._serialized_start=54996
4843
+ _WEBHOOKCONFIG._serialized_end=55321
4844
+ _WORKSPACENAMELOOKUPRESPONSE._serialized_start=55323
4845
+ _WORKSPACENAMELOOKUPRESPONSE._serialized_end=55398
4846
+ _MODALCLIENT._serialized_start=60851
4847
+ _MODALCLIENT._serialized_end=75476
4840
4848
  # @@protoc_insertion_point(module_scope)
modal_proto/api_pb2.pyi CHANGED
@@ -649,6 +649,25 @@ SYSTEM_ERROR_CODE_NOSPC: SystemErrorCode.ValueType # 28
649
649
  """ENOSPC: No space left on device"""
650
650
  global___SystemErrorCode = SystemErrorCode
651
651
 
652
+ class _TaskSnapshotBehavior:
653
+ ValueType = typing.NewType("ValueType", builtins.int)
654
+ V: typing_extensions.TypeAlias = ValueType
655
+
656
+ class _TaskSnapshotBehaviorEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TaskSnapshotBehavior.ValueType], builtins.type): # noqa: F821
657
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
658
+ TASK_SNAPSHOT_BEHAVIOR_UNSPECIFIED: _TaskSnapshotBehavior.ValueType # 0
659
+ TASK_SNAPSHOT_BEHAVIOR_SNAPSHOT: _TaskSnapshotBehavior.ValueType # 1
660
+ TASK_SNAPSHOT_BEHAVIOR_RESTORE: _TaskSnapshotBehavior.ValueType # 2
661
+ TASK_SNAPSHOT_BEHAVIOR_NONE: _TaskSnapshotBehavior.ValueType # 3
662
+
663
+ class TaskSnapshotBehavior(_TaskSnapshotBehavior, metaclass=_TaskSnapshotBehaviorEnumTypeWrapper): ...
664
+
665
+ TASK_SNAPSHOT_BEHAVIOR_UNSPECIFIED: TaskSnapshotBehavior.ValueType # 0
666
+ TASK_SNAPSHOT_BEHAVIOR_SNAPSHOT: TaskSnapshotBehavior.ValueType # 1
667
+ TASK_SNAPSHOT_BEHAVIOR_RESTORE: TaskSnapshotBehavior.ValueType # 2
668
+ TASK_SNAPSHOT_BEHAVIOR_NONE: TaskSnapshotBehavior.ValueType # 3
669
+ global___TaskSnapshotBehavior = TaskSnapshotBehavior
670
+
652
671
  class _TaskState:
653
672
  ValueType = typing.NewType("ValueType", builtins.int)
654
673
  V: typing_extensions.TypeAlias = ValueType
@@ -9619,6 +9638,7 @@ class TaskInfo(google.protobuf.message.Message):
9619
9638
  ENQUEUED_AT_FIELD_NUMBER: builtins.int
9620
9639
  GPU_TYPE_FIELD_NUMBER: builtins.int
9621
9640
  SANDBOX_ID_FIELD_NUMBER: builtins.int
9641
+ SNAPSHOT_BEHAVIOR_FIELD_NUMBER: builtins.int
9622
9642
  id: builtins.str
9623
9643
  started_at: builtins.float
9624
9644
  finished_at: builtins.float
@@ -9627,6 +9647,7 @@ class TaskInfo(google.protobuf.message.Message):
9627
9647
  enqueued_at: builtins.float
9628
9648
  gpu_type: builtins.str
9629
9649
  sandbox_id: builtins.str
9650
+ snapshot_behavior: global___TaskSnapshotBehavior.ValueType
9630
9651
  def __init__(
9631
9652
  self,
9632
9653
  *,
@@ -9637,9 +9658,10 @@ class TaskInfo(google.protobuf.message.Message):
9637
9658
  enqueued_at: builtins.float = ...,
9638
9659
  gpu_type: builtins.str = ...,
9639
9660
  sandbox_id: builtins.str = ...,
9661
+ snapshot_behavior: global___TaskSnapshotBehavior.ValueType = ...,
9640
9662
  ) -> None: ...
9641
9663
  def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ...
9642
- def ClearField(self, field_name: typing_extensions.Literal["enqueued_at", b"enqueued_at", "finished_at", b"finished_at", "gpu_type", b"gpu_type", "id", b"id", "result", b"result", "sandbox_id", b"sandbox_id", "started_at", b"started_at"]) -> None: ...
9664
+ def ClearField(self, field_name: typing_extensions.Literal["enqueued_at", b"enqueued_at", "finished_at", b"finished_at", "gpu_type", b"gpu_type", "id", b"id", "result", b"result", "sandbox_id", b"sandbox_id", "snapshot_behavior", b"snapshot_behavior", "started_at", b"started_at"]) -> None: ...
9643
9665
 
9644
9666
  global___TaskInfo = TaskInfo
9645
9667
 
modal_version/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2025
2
2
  """Supplies the current version of the modal client library."""
3
3
 
4
- __version__ = "1.1.1.dev17"
4
+ __version__ = "1.1.1.dev18"