modal 0.73.128__py3-none-any.whl → 0.73.130__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
modal/__init__.py CHANGED
@@ -27,7 +27,6 @@ try:
27
27
  asgi_app,
28
28
  batched,
29
29
  build,
30
- concurrent,
31
30
  enter,
32
31
  exit,
33
32
  fastapi_endpoint,
@@ -83,7 +82,6 @@ __all__ = [
83
82
  "asgi_app",
84
83
  "batched",
85
84
  "build",
86
- "concurrent",
87
85
  "current_function_call_id",
88
86
  "current_input_id",
89
87
  "enable_output",
modal/_functions.py CHANGED
@@ -435,8 +435,7 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
435
435
  max_containers: Optional[int] = None,
436
436
  buffer_containers: Optional[int] = None,
437
437
  scaledown_window: Optional[int] = None,
438
- max_concurrent_inputs: Optional[int] = None,
439
- target_concurrent_inputs: Optional[int] = None,
438
+ allow_concurrent_inputs: Optional[int] = None,
440
439
  batch_max_size: Optional[int] = None,
441
440
  batch_wait_ms: Optional[int] = None,
442
441
  cloud: Optional[str] = None,
@@ -787,8 +786,7 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
787
786
  runtime_perf_record=config.get("runtime_perf_record"),
788
787
  app_name=app_name,
789
788
  is_builder_function=is_builder_function,
790
- max_concurrent_inputs=max_concurrent_inputs or 0,
791
- target_concurrent_inputs=target_concurrent_inputs or 0,
789
+ target_concurrent_inputs=allow_concurrent_inputs or 0,
792
790
  batch_max_size=batch_max_size or 0,
793
791
  batch_linger_ms=batch_wait_ms or 0,
794
792
  worker_id=config.get("worker_id"),
@@ -59,8 +59,6 @@ class _PartialFunction(typing.Generic[P, ReturnType, OriginalReturnType]):
59
59
  force_build: bool
60
60
  cluster_size: Optional[int] # Experimental: Clustered functions
61
61
  build_timeout: Optional[int]
62
- max_concurrent_inputs: Optional[int]
63
- target_concurrent_inputs: Optional[int]
64
62
 
65
63
  def __init__(
66
64
  self,
@@ -74,8 +72,6 @@ class _PartialFunction(typing.Generic[P, ReturnType, OriginalReturnType]):
74
72
  cluster_size: Optional[int] = None, # Experimental: Clustered functions
75
73
  force_build: bool = False,
76
74
  build_timeout: Optional[int] = None,
77
- max_concurrent_inputs: Optional[int] = None,
78
- target_concurrent_inputs: Optional[int] = None,
79
75
  ):
80
76
  self.raw_f = raw_f
81
77
  self.flags = flags
@@ -93,8 +89,6 @@ class _PartialFunction(typing.Generic[P, ReturnType, OriginalReturnType]):
93
89
  self.cluster_size = cluster_size # Experimental: Clustered functions
94
90
  self.force_build = force_build
95
91
  self.build_timeout = build_timeout
96
- self.max_concurrent_inputs = max_concurrent_inputs
97
- self.target_concurrent_inputs = target_concurrent_inputs
98
92
 
99
93
  def _get_raw_f(self) -> Callable[P, ReturnType]:
100
94
  return self.raw_f
@@ -149,8 +143,6 @@ class _PartialFunction(typing.Generic[P, ReturnType, OriginalReturnType]):
149
143
  batch_wait_ms=self.batch_wait_ms,
150
144
  force_build=self.force_build,
151
145
  build_timeout=self.build_timeout,
152
- max_concurrent_inputs=self.max_concurrent_inputs,
153
- target_concurrent_inputs=self.target_concurrent_inputs,
154
146
  )
155
147
 
156
148
 
@@ -730,49 +722,3 @@ def _batched(
730
722
  )
731
723
 
732
724
  return wrapper
733
-
734
-
735
- def _concurrent(
736
- _warn_parentheses_missing=None,
737
- *,
738
- max_inputs: int, # Hard limit on each container's input concurrency
739
- target_inputs: Optional[int] = None, # Input concurrency that Modal's autoscaler should target
740
- ) -> Callable[[Union[Callable[..., Any], _PartialFunction]], _PartialFunction]:
741
- """Decorator that allows individual containers to handle multiple inputs concurrently.
742
-
743
- The concurrency mechanism depends on whether the function is async or not:
744
- - Async functions will run inputs on a single thread as asyncio tasks.
745
- - Synchronous functions will use multi-threading. The code must be thread-safe.
746
-
747
- Input concurrency will be most useful for workflows that are IO-bound
748
- (e.g., making network requests) or when running an inference server that supports
749
- dynamic batching.
750
-
751
- When `target_inputs` is set, Modal's autoscaler will try to provision resources such
752
- that each container is running that many inputs concurrently. Containers may burst up to
753
- up to `max_inputs` if resources are insufficient to remain at the target concurrency.
754
- """
755
- if _warn_parentheses_missing is not None:
756
- raise InvalidError(
757
- "Positional arguments are not allowed. Did you forget parentheses? Suggestion: `@modal.concurrent()`."
758
- )
759
-
760
- if target_inputs and target_inputs > max_inputs:
761
- raise InvalidError("`target_inputs` parameter cannot be greater than `max_inputs`.")
762
-
763
- def wrapper(obj: Union[Callable[..., Any], _PartialFunction]) -> _PartialFunction:
764
- if isinstance(obj, _PartialFunction):
765
- # Risky that we need to mutate the parameters here; should make this safer
766
- obj.max_concurrent_inputs = max_inputs
767
- obj.target_concurrent_inputs = target_inputs
768
- obj.add_flags(_PartialFunctionFlags.FUNCTION)
769
- return obj
770
-
771
- return _PartialFunction(
772
- obj,
773
- _PartialFunctionFlags.FUNCTION,
774
- max_concurrent_inputs=max_inputs,
775
- target_concurrent_inputs=target_inputs,
776
- )
777
-
778
- return wrapper
modal/app.py CHANGED
@@ -678,12 +678,6 @@ class _App:
678
678
  is_generator = f.is_generator
679
679
  batch_max_size = f.batch_max_size
680
680
  batch_wait_ms = f.batch_wait_ms
681
- if f.max_concurrent_inputs: # Using @modal.concurrent()
682
- max_concurrent_inputs = f.max_concurrent_inputs
683
- target_concurrent_inputs = f.target_concurrent_inputs
684
- else:
685
- max_concurrent_inputs = allow_concurrent_inputs
686
- target_concurrent_inputs = None
687
681
  else:
688
682
  if not is_global_object(f.__qualname__) and not serialized:
689
683
  raise InvalidError(
@@ -715,12 +709,10 @@ class _App:
715
709
  )
716
710
 
717
711
  info = FunctionInfo(f, serialized=serialized, name_override=name)
718
- raw_f = f
719
712
  webhook_config = None
720
713
  batch_max_size = None
721
714
  batch_wait_ms = None
722
- max_concurrent_inputs = allow_concurrent_inputs
723
- target_concurrent_inputs = None
715
+ raw_f = f
724
716
 
725
717
  cluster_size = None # Experimental: Clustered functions
726
718
  i6pn_enabled = i6pn
@@ -761,8 +753,7 @@ class _App:
761
753
  max_containers=max_containers,
762
754
  buffer_containers=buffer_containers,
763
755
  scaledown_window=scaledown_window,
764
- max_concurrent_inputs=max_concurrent_inputs,
765
- target_concurrent_inputs=target_concurrent_inputs,
756
+ allow_concurrent_inputs=allow_concurrent_inputs,
766
757
  batch_max_size=batch_max_size,
767
758
  batch_wait_ms=batch_wait_ms,
768
759
  timeout=timeout,
@@ -841,7 +832,7 @@ class _App:
841
832
  concurrency_limit: Optional[int] = None, # Replaced with `max_containers`
842
833
  container_idle_timeout: Optional[int] = None, # Replaced with `scaledown_window`
843
834
  _experimental_buffer_containers: Optional[int] = None, # Now stable API with `buffer_containers`
844
- ) -> Callable[[Union[CLS_T, _PartialFunction]], CLS_T]:
835
+ ) -> Callable[[CLS_T], CLS_T]:
845
836
  """
846
837
  Decorator to register a new Modal [Cls](/docs/reference/modal.Cls) with this App.
847
838
  """
@@ -854,21 +845,8 @@ class _App:
854
845
  raise InvalidError("`region` and `_experimental_scheduler_placement` cannot be used together")
855
846
  scheduler_placement = SchedulerPlacement(region=region)
856
847
 
857
- def wrapper(wrapped_cls: Union[CLS_T, _PartialFunction]) -> CLS_T:
848
+ def wrapper(user_cls: CLS_T) -> CLS_T:
858
849
  # Check if the decorated object is a class
859
- if isinstance(wrapped_cls, _PartialFunction):
860
- wrapped_cls.wrapped = True
861
- user_cls = wrapped_cls.raw_f
862
- if wrapped_cls.max_concurrent_inputs: # Using @modal.concurrent()
863
- max_concurrent_inputs = wrapped_cls.max_concurrent_inputs
864
- target_concurrent_inputs = wrapped_cls.target_concurrent_inputs
865
- else:
866
- max_concurrent_inputs = allow_concurrent_inputs
867
- target_concurrent_inputs = None
868
- else:
869
- user_cls = wrapped_cls
870
- max_concurrent_inputs = allow_concurrent_inputs
871
- target_concurrent_inputs = None
872
850
  if not inspect.isclass(user_cls):
873
851
  raise TypeError("The @app.cls decorator must be used on a class.")
874
852
 
@@ -893,12 +871,6 @@ class _App:
893
871
  ):
894
872
  raise InvalidError("A class must have `enable_memory_snapshot=True` to use `snap=True` on its methods.")
895
873
 
896
- for method in _find_partial_methods_for_user_cls(user_cls, _PartialFunctionFlags.FUNCTION).values():
897
- if method.max_concurrent_inputs:
898
- raise InvalidError(
899
- "The `@modal.concurrent` decorator cannot be used on methods; decorate the class instead."
900
- )
901
-
902
874
  info = FunctionInfo(None, serialized=serialized, user_cls=user_cls)
903
875
 
904
876
  cls_func = _Function.from_local(
@@ -920,8 +892,7 @@ class _App:
920
892
  scaledown_window=scaledown_window,
921
893
  proxy=proxy,
922
894
  retries=retries,
923
- max_concurrent_inputs=max_concurrent_inputs,
924
- target_concurrent_inputs=target_concurrent_inputs,
895
+ allow_concurrent_inputs=allow_concurrent_inputs,
925
896
  batch_max_size=batch_max_size,
926
897
  batch_wait_ms=batch_wait_ms,
927
898
  timeout=timeout,
modal/app.pyi CHANGED
@@ -1,7 +1,6 @@
1
1
  import collections.abc
2
2
  import modal._functions
3
3
  import modal._object
4
- import modal._partial_function
5
4
  import modal._utils.function_utils
6
5
  import modal.client
7
6
  import modal.cloud_bucket_mount
@@ -248,7 +247,7 @@ class _App:
248
247
  concurrency_limit: typing.Optional[int] = None,
249
248
  container_idle_timeout: typing.Optional[int] = None,
250
249
  _experimental_buffer_containers: typing.Optional[int] = None,
251
- ) -> collections.abc.Callable[[typing.Union[CLS_T, modal._partial_function._PartialFunction]], CLS_T]: ...
250
+ ) -> collections.abc.Callable[[CLS_T], CLS_T]: ...
252
251
  async def spawn_sandbox(
253
252
  self,
254
253
  *entrypoint_args: str,
@@ -488,7 +487,7 @@ class App:
488
487
  concurrency_limit: typing.Optional[int] = None,
489
488
  container_idle_timeout: typing.Optional[int] = None,
490
489
  _experimental_buffer_containers: typing.Optional[int] = None,
491
- ) -> collections.abc.Callable[[typing.Union[CLS_T, modal.partial_function.PartialFunction]], CLS_T]: ...
490
+ ) -> collections.abc.Callable[[CLS_T], CLS_T]: ...
492
491
 
493
492
  class __spawn_sandbox_spec(typing_extensions.Protocol[SUPERSELF]):
494
493
  def __call__(
modal/client.pyi CHANGED
@@ -31,7 +31,7 @@ class _Client:
31
31
  server_url: str,
32
32
  client_type: int,
33
33
  credentials: typing.Optional[tuple[str, str]],
34
- version: str = "0.73.128",
34
+ version: str = "0.73.130",
35
35
  ): ...
36
36
  def is_closed(self) -> bool: ...
37
37
  @property
@@ -93,7 +93,7 @@ class Client:
93
93
  server_url: str,
94
94
  client_type: int,
95
95
  credentials: typing.Optional[tuple[str, str]],
96
- version: str = "0.73.128",
96
+ version: str = "0.73.130",
97
97
  ): ...
98
98
  def is_closed(self) -> bool: ...
99
99
  @property
modal/functions.pyi CHANGED
@@ -82,8 +82,7 @@ class Function(
82
82
  max_containers: typing.Optional[int] = None,
83
83
  buffer_containers: typing.Optional[int] = None,
84
84
  scaledown_window: typing.Optional[int] = None,
85
- max_concurrent_inputs: typing.Optional[int] = None,
86
- target_concurrent_inputs: typing.Optional[int] = None,
85
+ allow_concurrent_inputs: typing.Optional[int] = None,
87
86
  batch_max_size: typing.Optional[int] = None,
88
87
  batch_wait_ms: typing.Optional[int] = None,
89
88
  cloud: typing.Optional[str] = None,
modal/partial_function.py CHANGED
@@ -5,7 +5,6 @@ from ._partial_function import (
5
5
  _asgi_app,
6
6
  _batched,
7
7
  _build,
8
- _concurrent,
9
8
  _enter,
10
9
  _exit,
11
10
  _fastapi_endpoint,
@@ -29,4 +28,3 @@ build = synchronize_api(_build, target_module=__name__)
29
28
  enter = synchronize_api(_enter, target_module=__name__)
30
29
  exit = synchronize_api(_exit, target_module=__name__)
31
30
  batched = synchronize_api(_batched, target_module=__name__)
32
- concurrent = synchronize_api(_concurrent, target_module=__name__)
@@ -18,8 +18,6 @@ class PartialFunction(
18
18
  force_build: bool
19
19
  cluster_size: typing.Optional[int]
20
20
  build_timeout: typing.Optional[int]
21
- max_concurrent_inputs: typing.Optional[int]
22
- target_concurrent_inputs: typing.Optional[int]
23
21
 
24
22
  def __init__(
25
23
  self,
@@ -33,8 +31,6 @@ class PartialFunction(
33
31
  cluster_size: typing.Optional[int] = None,
34
32
  force_build: bool = False,
35
33
  build_timeout: typing.Optional[int] = None,
36
- max_concurrent_inputs: typing.Optional[int] = None,
37
- target_concurrent_inputs: typing.Optional[int] = None,
38
34
  ): ...
39
35
  def _get_raw_f(self) -> collections.abc.Callable[modal._partial_function.P, modal._partial_function.ReturnType]: ...
40
36
  def _is_web_endpoint(self) -> bool: ...
@@ -122,8 +118,3 @@ def exit(
122
118
  def batched(
123
119
  _warn_parentheses_missing=None, *, max_batch_size: int, wait_ms: int
124
120
  ) -> collections.abc.Callable[[collections.abc.Callable[..., typing.Any]], PartialFunction]: ...
125
- def concurrent(
126
- _warn_parentheses_missing=None, *, max_inputs: int, target_inputs: typing.Optional[int] = None
127
- ) -> collections.abc.Callable[
128
- [typing.Union[collections.abc.Callable[..., typing.Any], PartialFunction]], PartialFunction
129
- ]: ...
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: modal
3
- Version: 0.73.128
3
+ Version: 0.73.130
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -1,14 +1,14 @@
1
- modal/__init__.py,sha256=7wz1AT_bpWJJEzXsAo3QMb7i87y7UGXwfneb0bGDhRg,2502
1
+ modal/__init__.py,sha256=KcoVQVCfwuHmIJ74OxQPn66MHfiJcWi8V5srBW12jTA,2464
2
2
  modal/__main__.py,sha256=CgIjP8m1xJjjd4AXc-delmR6LdBCZclw2A_V38CFIio,2870
3
3
  modal/_clustered_functions.py,sha256=kTf-9YBXY88NutC1akI-gCbvf01RhMPCw-zoOI_YIUE,2700
4
4
  modal/_clustered_functions.pyi,sha256=vllkegc99A0jrUOWa8mdlSbdp6uz36TsHhGxysAOpaQ,771
5
5
  modal/_container_entrypoint.py,sha256=arhkIoF8nQNfa4iwYGSoqN3QMDg5M38QNAODXC8TlKc,29301
6
- modal/_functions.py,sha256=L-8wuokczWuD3xRqZKT4NkgO4tqKV3Cze_9KITgHdmc,73441
6
+ modal/_functions.py,sha256=csh7ZeCfUSTcJv_dWjq0D94Eq5ivb31D-xJYD5LBrbg,73316
7
7
  modal/_ipython.py,sha256=TW1fkVOmZL3YYqdS2YlM1hqpf654Yf8ZyybHdBnlhSw,301
8
8
  modal/_location.py,sha256=joiX-0ZeutEUDTrrqLF1GHXCdVLF-rHzstocbMcd_-k,366
9
9
  modal/_object.py,sha256=JBIECWdfpRKCaCxVWZbC3Q1kF5Whk_EKvY9f4Y6AFyg,11446
10
10
  modal/_output.py,sha256=Z0nngPh2mKHMQc4MQ92YjVPc3ewOLa3I4dFBlL9nvQY,25656
11
- modal/_partial_function.py,sha256=Qr4smy6ndZUDwEHpe_T9KJZ-z8DpoH_Ipj9PqAIifx8,33044
11
+ modal/_partial_function.py,sha256=ytUhfUEVPMccVD3wMekr2JRo5R0YylaE0LgPsSA05aQ,30508
12
12
  modal/_proxy_tunnel.py,sha256=gnKyCfmVB7x2d1A6c-JDysNIP3kEFxmXzhcXhPrzPn0,1906
13
13
  modal/_pty.py,sha256=JZfPDDpzqICZqtyPI_oMJf_9w-p_lLNuzHhwhodUXio,1329
14
14
  modal/_resolver.py,sha256=RtoXoYzSllPlFu0D1vel_FWiEmDO7RyToiC2bxeN8ZY,6917
@@ -18,11 +18,11 @@ modal/_traceback.py,sha256=IZQzB3fVlUfMHOSyKUgw0H6qv4yHnpyq-XVCNZKfUdA,5023
18
18
  modal/_tunnel.py,sha256=zTBxBiuH1O22tS1OliAJdIsSmaZS8PlnifS_6S5z-mk,6320
19
19
  modal/_tunnel.pyi,sha256=JmmDYAy9F1FpgJ_hWx0xkom2nTOFQjn4mTPYlU3PFo4,1245
20
20
  modal/_watcher.py,sha256=K6LYnlmSGQB4tWWI9JADv-tvSvQ1j522FwT71B51CX8,3584
21
- modal/app.py,sha256=NKH7Cw1M6eyyrMXFbhWfdo3uRd28-8kv0Pcw56kPiPU,47312
22
- modal/app.pyi,sha256=pUEqciyGZ446sc_QoG8XcQ_oc6oU-U4dqjkxjhgOX98,26968
21
+ modal/app.py,sha256=ojhuLZuNZAQ1OsbDH0k6G4pm1W7bOIvZfXbaKlvQ-Ao,45622
22
+ modal/app.pyi,sha256=tZFbcsu20SuvfB2puxCyuXLFNJ9bQulzag55rVpgZmc,26827
23
23
  modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
24
24
  modal/client.py,sha256=j9D3hNis1lfhnz9lVFGgJgowbH3PaGUzNKgHPWYG778,15372
25
- modal/client.pyi,sha256=nZCWs5u7jbU0Bnr2FXjfkhvNtNbJ7gKRdbe6gH2tT3g,7661
25
+ modal/client.pyi,sha256=dbSH0DQ27HHpWjOt2dVU0s648ALNceSKlycYnjlOC9E,7661
26
26
  modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
27
27
  modal/cloud_bucket_mount.pyi,sha256=30T3K1a89l6wzmEJ_J9iWv9SknoGqaZDx59Xs-ZQcmk,1607
28
28
  modal/cls.py,sha256=PWXqCcBVOuYnp0Q5GY-bEldVyv_AnelApMyPiESYwrU,31410
@@ -41,7 +41,7 @@ modal/file_io.py,sha256=lcMs_E9Xfm0YX1t9U2wNIBPnqHRxmImqjLW1GHqVmyg,20945
41
41
  modal/file_io.pyi,sha256=NTRft1tbPSWf9TlWVeZmTlgB5AZ_Zhu2srWIrWr7brk,9445
42
42
  modal/file_pattern_matcher.py,sha256=trosX-Bp7dOubudN1bLLhRAoidWy1TcoaR4Pv8CedWw,6497
43
43
  modal/functions.py,sha256=kcNHvqeGBxPI7Cgd57NIBBghkfbeFJzXO44WW0jSmao,325
44
- modal/functions.pyi,sha256=PqApQjvICj11NIMEVCmaUIUyJUfEIuY_KkEzCZ4t6iI,14438
44
+ modal/functions.pyi,sha256=ujc6eIYyNmMn__4dpxEy85-vZmAniZv56D2A4uBgs6U,14377
45
45
  modal/gpu.py,sha256=Kbhs_u49FaC2Zi0TjCdrpstpRtT5eZgecynmQi5IZVE,6752
46
46
  modal/image.py,sha256=6hDizLZvRIjRy2cMWGT06Kj1uqW_L5B9GR6x3AKr4v4,92341
47
47
  modal/image.pyi,sha256=DQ4DLOCPr6_yV7z4LS0bTY0rOyvQP9-dQOrzaW7pPG8,25260
@@ -56,8 +56,8 @@ modal/object.pyi,sha256=kyJkRQcVv3ct7zSAxvvXcuhBVeH914v80uSlqeS7cA4,5632
56
56
  modal/output.py,sha256=q4T9uHduunj4NwY-YSwkHGgjZlCXMuJbfQ5UFaAGRAc,1968
57
57
  modal/parallel_map.py,sha256=AB4YH4ZBGmCOe-X_1kB3hm-kNoRnOxCMzpkTUim4tT8,33586
58
58
  modal/parallel_map.pyi,sha256=-D_z-K1GOpQcMSUMVHRVLr2rgEA5CXlX6dU5P6msa58,5671
59
- modal/partial_function.py,sha256=y0h-EvlPnfvZr7nlJLOFk7NB-K-ZO41XJnsGtQTesAI,1200
60
- modal/partial_function.pyi,sha256=-xWrvFMhLT6ulx9B82u1g8kL69vt3nYAvp8pV0d__uw,5407
59
+ modal/partial_function.py,sha256=uu8zvIV0Big0jiTlC4-VPL16dOScNB5jhfPeqxvvCrI,1117
60
+ modal/partial_function.pyi,sha256=-MAK61qJRi6Wjym-Measz5_9moJurYrJfdi7uSQZa5M,4936
61
61
  modal/proxy.py,sha256=NrOevrWxG3G7-zlyRzG6BcIvop7AWLeyahZxitbBaOk,1418
62
62
  modal/proxy.pyi,sha256=1OEKIVUyC-xb7fHMzngakQso0nTsK60TVhXtlcMj6Wk,390
63
63
  modal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -154,10 +154,10 @@ modal_docs/mdmd/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,2
154
154
  modal_docs/mdmd/mdmd.py,sha256=Irx49MCCTlBOP4FBdLR--JrpA3-WhsVeriq0LGgsRic,6232
155
155
  modal_docs/mdmd/signatures.py,sha256=XJaZrK7Mdepk5fdX51A8uENiLFNil85Ud0d4MH8H5f0,3218
156
156
  modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
157
- modal_proto/api.proto,sha256=94F7C-OQg0Xj_By2XztAGkQD4zRus5o7gy26viQADFo,87786
157
+ modal_proto/api.proto,sha256=6xhnFkmsqP8cThFDUNcAPQgYmAaukqjMVjRKAdmapVA,87786
158
158
  modal_proto/api_grpc.py,sha256=SJOfs3Y1cOzzF_ZcDj-UNnOWz59sfU8a4JISp4Y_1Kw,109923
159
- modal_proto/api_pb2.py,sha256=UzgHEmSdZwWJxsoho67clTWH8uXlpICe7p_jtaHPRrA,315544
160
- modal_proto/api_pb2.pyi,sha256=WBRQRWufW08Nw8r9qlRZFiBgWsDMI5PN7gNXZKS7D08,426646
159
+ modal_proto/api_pb2.py,sha256=rbdtVZY39LuPezotOMsOUbMqvoPIhZblevLqDy0r2dA,315544
160
+ modal_proto/api_pb2.pyi,sha256=sIbeFpkte0acPdDUQ26Nz6at9VWTzkeHuMBwk_CuzKM,426646
161
161
  modal_proto/api_pb2_grpc.py,sha256=0XeCIL2B6UGLBh1MEGPFPz1k8qLWNyp-yj_cJrK3NE8,237541
162
162
  modal_proto/api_pb2_grpc.pyi,sha256=BsnRBinG0KC9Cp70UkdxuzgZA9KLCTl7T5ze0RK-Mmk,55323
163
163
  modal_proto/modal_api_grpc.py,sha256=i9HTreJ5FpBvtz9NwuTC52fZTWZO_M_DWdIYT2lOjs8,14666
@@ -171,10 +171,10 @@ modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0y
171
171
  modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
172
  modal_version/__init__.py,sha256=wiJQ53c-OMs0Xf1UeXOxQ7FwlV1VzIjnX6o-pRYZ_Pk,470
173
173
  modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
174
- modal_version/_version_generated.py,sha256=UV2vFNSRCipcz3159A83mk2Cakl8UFhOaMaL-i9YTPY,150
175
- modal-0.73.128.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
176
- modal-0.73.128.dist-info/METADATA,sha256=5Xr1wyl6HVCsIC2KYo1Kmb93AF0F0Fzfbza3EEGIHro,2453
177
- modal-0.73.128.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
178
- modal-0.73.128.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
179
- modal-0.73.128.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
180
- modal-0.73.128.dist-info/RECORD,,
174
+ modal_version/_version_generated.py,sha256=wwvlA5fz7-6D2oM-r33PUpbLGTU3pMgzNvLna1P_vhQ,150
175
+ modal-0.73.130.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
176
+ modal-0.73.130.dist-info/METADATA,sha256=GydKCGFoYKQOP33YDcz_B0Y6hddR216B3kW0wDR8bZ8,2453
177
+ modal-0.73.130.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
178
+ modal-0.73.130.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
179
+ modal-0.73.130.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
180
+ modal-0.73.130.dist-info/RECORD,,
modal_proto/api.proto CHANGED
@@ -1216,7 +1216,7 @@ message Function {
1216
1216
 
1217
1217
  repeated VolumeMount volume_mounts = 33;
1218
1218
 
1219
- uint32 max_concurrent_inputs = 34;
1219
+ uint32 target_concurrent_inputs = 34;
1220
1220
 
1221
1221
  repeated CustomDomainInfo custom_domain_info = 35;
1222
1222
 
@@ -1266,7 +1266,7 @@ message Function {
1266
1266
  uint64 batch_linger_ms = 61; // Miliseconds to block before a response is needed
1267
1267
  bool i6pn_enabled = 62;
1268
1268
  bool _experimental_concurrent_cancellations = 63;
1269
- uint32 target_concurrent_inputs = 64;
1269
+ uint32 max_concurrent_inputs = 64;
1270
1270
 
1271
1271
  // TODO(irfansharif): Remove, once https://github.com/modal-labs/modal/pull/15645 lands.
1272
1272
  bool _experimental_task_templates_enabled = 65; // forces going through the new gpu-fallbacks integration path, even if no fallback options are specified
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\"\xc7\x01\n\x10\x41ppDeployRequest\x12\x14\n\x06\x61pp_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x34\n\tnamespace\x18\x02 \x01(\x0e\x32!.modal.client.DeploymentNamespace\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(\t\" \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\"}\n\x1d\x41ppGetByDeploymentNameRequest\x12\x34\n\tnamespace\x18\x01 \x01(\x0e\x32!.modal.client.DeploymentNamespace\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\t\"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\"\xd4\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\"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\"\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\"\x84\x01\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\x42\x13\n\x11upload_type_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\"\xc4\x01\n\x0f\x43lassGetRequest\x12\x10\n\x08\x61pp_name\x18\x01 \x01(\t\x12\x12\n\nobject_tag\x18\x02 \x01(\t\x12\x34\n\tnamespace\x18\x03 \x01(\x0e\x32!.modal.client.DeploymentNamespace\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\t\x12\x18\n\x10lookup_published\x18\x08 \x01(\x08\x12\x1b\n\x13only_class_function\x18\n \x01(\x08J\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\"\xd7\x01\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\x42\x0f\n\rdefault_oneof\"\xb9\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\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\"\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\"\xd7\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.PTYInfo\x12#\n\x1bterminate_container_on_exit\x18\x04 \x01(\x08\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\x00\x88\x01\x01\x12\x12\n\nsecret_ids\x18\n \x03(\tB\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\"-\n\x14\x43ontainerStopRequest\x12\x15\n\x07task_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"\x17\n\x15\x43ontainerStopResponse\"\"\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\"\xee\x01\n\x16\x44ictGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\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\x04\x64\x61ta\x18\x05 \x03(\x0b\x32\x17.modal.client.DictEntry\"*\n\x17\x44ictGetOrCreateResponse\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\".\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\".\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\"T\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\"\x14\n\x12\x44ictUpdateResponse\"\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\"\xa9\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\"A\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\"\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\"\xa9\x16\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\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\"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\"S\n\x19\x46unctionCallCancelRequest\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x1c\n\x14terminate_containers\x18\x02 \x01(\x08\"J\n\x1a\x46unctionCallGetDataRequest\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x12\n\nlast_index\x18\x02 \x01(\x04\"\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\"d\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.DataChunk\"\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\"\xb8\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\"\xa6\n\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\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.FunctionB\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\"\xf0\x01\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(\rJ\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\"\xb5\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\"\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\"\x8a\x01\n\x12\x46unctionGetRequest\x12\x10\n\x08\x61pp_name\x18\x01 \x01(\t\x12\x12\n\nobject_tag\x18\x02 \x01(\t\x12\x34\n\tnamespace\x18\x03 \x01(\x0e\x32!.modal.client.DeploymentNamespace\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\t\"\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\"\xdb\x03\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\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\"\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\"\xa9\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\"\xef\x01\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\"\xc9\x04\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\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_inputs\"\xbd\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\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\"P\n\x15\x46unctionPutInputsItem\x12\x0b\n\x03idx\x18\x01 \x01(\x05\x12*\n\x05input\x18\x02 \x01(\x0b\x32\x1b.modal.client.FunctionInput\"~\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\"\xd0\x01\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\"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\"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\"\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\"\xd0\x03\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\"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\"\xec\x01\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\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_workdir\"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\"\x97\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\"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\"\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\"\xce\x02\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\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\"-\n\x08PortSpec\x12\x0c\n\x04port\x18\x01 \x01(\r\x12\x13\n\x0bunencrypted\x18\x02 \x01(\x08\"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\"\xc8\x01\n\x17ProxyGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\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\",\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\"\xc2\x01\n\x17QueueGetOrCreateRequest\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\",\n\x18QueueGetOrCreateResponse\x12\x10\n\x08queue_id\x18\x01 \x01(\t\"]\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\"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\"\xa7\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\"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\"\x8f\x08\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\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_runtimeJ\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\"\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\"n\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(\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\",\n\x15SandboxRestoreRequest\x12\x13\n\x0bsnapshot_id\x18\x01 \x01(\t\",\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\"\x8e\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\x1b\n\x04\x43ron\x12\x13\n\x0b\x63ron_string\x18\x01 \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\"\xe7\x02\n\x18SecretGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\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\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\x01\".\n\x19SecretGetOrCreateResponse\x12\x11\n\tsecret_id\x18\x01 \x01(\t\"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\"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\"\xdf\x01\n\x1eSharedVolumeGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\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\x0e\n\x06\x61pp_id\x18\x05 \x01(\t\";\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\"[\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\".\n\x19TaskCurrentInputsResponse\x12\x11\n\tinput_ids\x18\x01 \x03(\t\"\x93\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\"+\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\"\xee\x01\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\"\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\"7\n\x12TunnelStartRequest\x12\x0c\n\x04port\x18\x01 \x01(\r\x12\x13\n\x0bunencrypted\x18\x02 \x01(\x08\"\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\".\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\"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\"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\"\x89\x02\n\x18VolumeGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\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\x0e\n\x06\x61pp_id\x18\x05 \x01(\t\x12.\n\x07version\x18\x06 \x01(\x0e\x32\x1d.modal.client.VolumeFsVersion\"^\n\x19VolumeGetOrCreateResponse\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12.\n\x07version\x18\x02 \x01(\x0e\x32\x1d.modal.client.VolumeFsVersion\"+\n\x16VolumeHeartbeatRequest\x12\x11\n\tvolume_id\x18\x01 \x01(\t\"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\"V\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\"}\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\"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\"\xbe\x01\n\x07Warning\x12/\n\x04type\x18\x01 \x01(\x0e\x32!.modal.client.Warning.WarningType\x12\x0f\n\x07message\x18\x02 \x01(\t\"q\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\"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*\xb1\x01\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*\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*\x9b\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*>\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*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\x83\x65\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\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\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\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\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\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\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\x12I\n\x0cVolumeDelete\x12!.modal.client.VolumeDeleteRequest\x1a\x16.google.protobuf.Empty\x12X\n\rVolumeGetFile\x12\".modal.client.VolumeGetFileRequest\x1a#.modal.client.VolumeGetFileResponse\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\x12M\n\x0eVolumePutFiles\x12#.modal.client.VolumePutFilesRequest\x1a\x16.google.protobuf.Empty\x12I\n\x0cVolumeReload\x12!.modal.client.VolumeReloadRequest\x1a\x16.google.protobuf.Empty\x12Q\n\x10VolumeRemoveFile\x12%.modal.client.VolumeRemoveFileRequest\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\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\"\xc7\x01\n\x10\x41ppDeployRequest\x12\x14\n\x06\x61pp_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\x12\x34\n\tnamespace\x18\x02 \x01(\x0e\x32!.modal.client.DeploymentNamespace\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(\t\" \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\"}\n\x1d\x41ppGetByDeploymentNameRequest\x12\x34\n\tnamespace\x18\x01 \x01(\x0e\x32!.modal.client.DeploymentNamespace\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\t\"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\"\xd4\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\"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\"\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\"\x84\x01\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\x42\x13\n\x11upload_type_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\"\xc4\x01\n\x0f\x43lassGetRequest\x12\x10\n\x08\x61pp_name\x18\x01 \x01(\t\x12\x12\n\nobject_tag\x18\x02 \x01(\t\x12\x34\n\tnamespace\x18\x03 \x01(\x0e\x32!.modal.client.DeploymentNamespace\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\t\x12\x18\n\x10lookup_published\x18\x08 \x01(\x08\x12\x1b\n\x13only_class_function\x18\n \x01(\x08J\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\"\xd7\x01\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\x42\x0f\n\rdefault_oneof\"\xb9\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\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\"\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\"\xd7\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.PTYInfo\x12#\n\x1bterminate_container_on_exit\x18\x04 \x01(\x08\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\x00\x88\x01\x01\x12\x12\n\nsecret_ids\x18\n \x03(\tB\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\"-\n\x14\x43ontainerStopRequest\x12\x15\n\x07task_id\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\"\x17\n\x15\x43ontainerStopResponse\"\"\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\"\xee\x01\n\x16\x44ictGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\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\x04\x64\x61ta\x18\x05 \x03(\x0b\x32\x17.modal.client.DictEntry\"*\n\x17\x44ictGetOrCreateResponse\x12\x0f\n\x07\x64ict_id\x18\x01 \x01(\t\".\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\".\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\"T\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\"\x14\n\x12\x44ictUpdateResponse\"\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\"\xa9\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\"A\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\"\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\"\xa9\x16\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 \n\x18target_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\x1d\n\x15max_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\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\"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\"S\n\x19\x46unctionCallCancelRequest\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x1c\n\x14terminate_containers\x18\x02 \x01(\x08\"J\n\x1a\x46unctionCallGetDataRequest\x12\x18\n\x10\x66unction_call_id\x18\x01 \x01(\t\x12\x12\n\nlast_index\x18\x02 \x01(\x04\"\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\"d\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.DataChunk\"\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\"\xb8\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\"\xa6\n\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\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.FunctionB\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\"\xf0\x01\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(\rJ\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\"\xb5\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\"\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\"\x8a\x01\n\x12\x46unctionGetRequest\x12\x10\n\x08\x61pp_name\x18\x01 \x01(\t\x12\x12\n\nobject_tag\x18\x02 \x01(\t\x12\x34\n\tnamespace\x18\x03 \x01(\x0e\x32!.modal.client.DeploymentNamespace\x12\x18\n\x10\x65nvironment_name\x18\x04 \x01(\t\"\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\"\xdb\x03\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\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\"\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\"\xa9\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\"\xef\x01\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\"\xc9\x04\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\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_inputs\"\xbd\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\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\"P\n\x15\x46unctionPutInputsItem\x12\x0b\n\x03idx\x18\x01 \x01(\x05\x12*\n\x05input\x18\x02 \x01(\x0b\x32\x1b.modal.client.FunctionInput\"~\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\"\xd0\x01\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\"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\"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\"\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\"\xd0\x03\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\"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\"\xec\x01\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\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_workdir\"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\"\x97\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\"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\"\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\"\xce\x02\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\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\"-\n\x08PortSpec\x12\x0c\n\x04port\x18\x01 \x01(\r\x12\x13\n\x0bunencrypted\x18\x02 \x01(\x08\"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\"\xc8\x01\n\x17ProxyGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\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\",\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\"\xc2\x01\n\x17QueueGetOrCreateRequest\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\",\n\x18QueueGetOrCreateResponse\x12\x10\n\x08queue_id\x18\x01 \x01(\t\"]\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\"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\"\xa7\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\"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\"\x8f\x08\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\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_runtimeJ\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\"\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\"n\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(\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\",\n\x15SandboxRestoreRequest\x12\x13\n\x0bsnapshot_id\x18\x01 \x01(\t\",\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\"\x8e\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\x1b\n\x04\x43ron\x12\x13\n\x0b\x63ron_string\x18\x01 \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\"\xe7\x02\n\x18SecretGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\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\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\x01\".\n\x19SecretGetOrCreateResponse\x12\x11\n\tsecret_id\x18\x01 \x01(\t\"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\"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\"\xdf\x01\n\x1eSharedVolumeGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\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\x0e\n\x06\x61pp_id\x18\x05 \x01(\t\";\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\"[\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\".\n\x19TaskCurrentInputsResponse\x12\x11\n\tinput_ids\x18\x01 \x03(\t\"\x93\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\"+\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\"\xee\x01\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\"\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\"7\n\x12TunnelStartRequest\x12\x0c\n\x04port\x18\x01 \x01(\r\x12\x13\n\x0bunencrypted\x18\x02 \x01(\x08\"\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\".\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\"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\"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\"\x89\x02\n\x18VolumeGetOrCreateRequest\x12\x1d\n\x0f\x64\x65ployment_name\x18\x01 \x01(\tB\x04\x80\xb5\x18\x01\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\x0e\n\x06\x61pp_id\x18\x05 \x01(\t\x12.\n\x07version\x18\x06 \x01(\x0e\x32\x1d.modal.client.VolumeFsVersion\"^\n\x19VolumeGetOrCreateResponse\x12\x11\n\tvolume_id\x18\x01 \x01(\t\x12.\n\x07version\x18\x02 \x01(\x0e\x32\x1d.modal.client.VolumeFsVersion\"+\n\x16VolumeHeartbeatRequest\x12\x11\n\tvolume_id\x18\x01 \x01(\t\"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\"V\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\"}\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\"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\"\xbe\x01\n\x07Warning\x12/\n\x04type\x18\x01 \x01(\x0e\x32!.modal.client.Warning.WarningType\x12\x0f\n\x07message\x18\x02 \x01(\t\"q\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\"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*\xb1\x01\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*\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*\x9b\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*>\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*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\x83\x65\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\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\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\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\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\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\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\x12I\n\x0cVolumeDelete\x12!.modal.client.VolumeDeleteRequest\x1a\x16.google.protobuf.Empty\x12X\n\rVolumeGetFile\x12\".modal.client.VolumeGetFileRequest\x1a#.modal.client.VolumeGetFileResponse\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\x12M\n\x0eVolumePutFiles\x12#.modal.client.VolumePutFilesRequest\x1a\x16.google.protobuf.Empty\x12I\n\x0cVolumeReload\x12!.modal.client.VolumeReloadRequest\x1a\x16.google.protobuf.Empty\x12Q\n\x10VolumeRemoveFile\x12%.modal.client.VolumeRemoveFileRequest\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\x06proto3')
23
23
 
24
24
  _APPDEPLOYVISIBILITY = DESCRIPTOR.enum_types_by_name['AppDeployVisibility']
25
25
  AppDeployVisibility = enum_type_wrapper.EnumTypeWrapper(_APPDEPLOYVISIBILITY)
modal_proto/api_pb2.pyi CHANGED
@@ -3862,7 +3862,7 @@ class Function(google.protobuf.message.Message):
3862
3862
  RUNTIME_FIELD_NUMBER: builtins.int
3863
3863
  APP_NAME_FIELD_NUMBER: builtins.int
3864
3864
  VOLUME_MOUNTS_FIELD_NUMBER: builtins.int
3865
- MAX_CONCURRENT_INPUTS_FIELD_NUMBER: builtins.int
3865
+ TARGET_CONCURRENT_INPUTS_FIELD_NUMBER: builtins.int
3866
3866
  CUSTOM_DOMAIN_INFO_FIELD_NUMBER: builtins.int
3867
3867
  WORKER_ID_FIELD_NUMBER: builtins.int
3868
3868
  RUNTIME_DEBUG_FIELD_NUMBER: builtins.int
@@ -3886,7 +3886,7 @@ class Function(google.protobuf.message.Message):
3886
3886
  BATCH_LINGER_MS_FIELD_NUMBER: builtins.int
3887
3887
  I6PN_ENABLED_FIELD_NUMBER: builtins.int
3888
3888
  _EXPERIMENTAL_CONCURRENT_CANCELLATIONS_FIELD_NUMBER: builtins.int
3889
- TARGET_CONCURRENT_INPUTS_FIELD_NUMBER: builtins.int
3889
+ MAX_CONCURRENT_INPUTS_FIELD_NUMBER: builtins.int
3890
3890
  _EXPERIMENTAL_TASK_TEMPLATES_ENABLED_FIELD_NUMBER: builtins.int
3891
3891
  _EXPERIMENTAL_TASK_TEMPLATES_FIELD_NUMBER: builtins.int
3892
3892
  _EXPERIMENTAL_GROUP_SIZE_FIELD_NUMBER: builtins.int
@@ -3944,7 +3944,7 @@ class Function(google.protobuf.message.Message):
3944
3944
  """Formerly stub_name"""
3945
3945
  @property
3946
3946
  def volume_mounts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VolumeMount]: ...
3947
- max_concurrent_inputs: builtins.int
3947
+ target_concurrent_inputs: builtins.int
3948
3948
  @property
3949
3949
  def custom_domain_info(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CustomDomainInfo]: ...
3950
3950
  worker_id: builtins.str
@@ -3984,7 +3984,7 @@ class Function(google.protobuf.message.Message):
3984
3984
  """Miliseconds to block before a response is needed"""
3985
3985
  i6pn_enabled: builtins.bool
3986
3986
  _experimental_concurrent_cancellations: builtins.bool
3987
- target_concurrent_inputs: builtins.int
3987
+ max_concurrent_inputs: builtins.int
3988
3988
  _experimental_task_templates_enabled: builtins.bool
3989
3989
  """TODO(irfansharif): Remove, once https://github.com/modal-labs/modal/pull/15645 lands.
3990
3990
  forces going through the new gpu-fallbacks integration path, even if no fallback options are specified
@@ -4051,7 +4051,7 @@ class Function(google.protobuf.message.Message):
4051
4051
  runtime: builtins.str = ...,
4052
4052
  app_name: builtins.str = ...,
4053
4053
  volume_mounts: collections.abc.Iterable[global___VolumeMount] | None = ...,
4054
- max_concurrent_inputs: builtins.int = ...,
4054
+ target_concurrent_inputs: builtins.int = ...,
4055
4055
  custom_domain_info: collections.abc.Iterable[global___CustomDomainInfo] | None = ...,
4056
4056
  worker_id: builtins.str = ...,
4057
4057
  runtime_debug: builtins.bool = ...,
@@ -4075,7 +4075,7 @@ class Function(google.protobuf.message.Message):
4075
4075
  batch_linger_ms: builtins.int = ...,
4076
4076
  i6pn_enabled: builtins.bool = ...,
4077
4077
  _experimental_concurrent_cancellations: builtins.bool = ...,
4078
- target_concurrent_inputs: builtins.int = ...,
4078
+ max_concurrent_inputs: builtins.int = ...,
4079
4079
  _experimental_task_templates_enabled: builtins.bool = ...,
4080
4080
  _experimental_task_templates: collections.abc.Iterable[global___TaskTemplate] | None = ...,
4081
4081
  _experimental_group_size: builtins.int = ...,
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2025
2
2
 
3
3
  # Note: Reset this value to -1 whenever you make a minor `0.X` release of the client.
4
- build_number = 128 # git: 9be3cf6
4
+ build_number = 130 # git: a66ebf4