modal 0.74.60__tar.gz → 0.74.62__tar.gz
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-0.74.60 → modal-0.74.62}/PKG-INFO +1 -1
- {modal-0.74.60 → modal-0.74.62}/modal/client.pyi +2 -2
- {modal-0.74.60 → modal-0.74.62}/modal/dict.py +13 -2
- {modal-0.74.60 → modal-0.74.62}/modal/functions.pyi +6 -6
- {modal-0.74.60 → modal-0.74.62}/modal.egg-info/PKG-INFO +1 -1
- {modal-0.74.60 → modal-0.74.62}/modal_proto/api.proto +2 -0
- {modal-0.74.60 → modal-0.74.62}/modal_proto/api_pb2.py +614 -614
- {modal-0.74.60 → modal-0.74.62}/modal_proto/api_pb2.pyi +9 -1
- {modal-0.74.60 → modal-0.74.62}/modal_version/_version_generated.py +1 -1
- {modal-0.74.60 → modal-0.74.62}/LICENSE +0 -0
- {modal-0.74.60 → modal-0.74.62}/README.md +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/__init__.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/__main__.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_clustered_functions.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_clustered_functions.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_container_entrypoint.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_functions.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_ipython.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_location.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_object.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_output.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_partial_function.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_pty.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_resolver.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_resources.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_runtime/__init__.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_runtime/asgi.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_runtime/container_io_manager.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_runtime/execution_context.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_runtime/execution_context.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_runtime/telemetry.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_runtime/user_code_imports.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_serialization.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_traceback.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_tunnel.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_tunnel.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_type_manager.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/__init__.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/app_utils.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/async_utils.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/blob_utils.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/deprecation.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/docker_utils.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/function_utils.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/git_utils.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/grpc_testing.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/grpc_utils.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/hash_utils.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/http_utils.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/jwt_utils.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/logger.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/mount_utils.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/name_utils.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/package_utils.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/pattern_utils.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_utils/shell_utils.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_vendor/__init__.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_vendor/cloudpickle.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_vendor/tblib.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/_watcher.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/app.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/app.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/call_graph.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/__init__.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/_download.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/_traceback.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/app.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/cluster.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/config.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/container.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/dict.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/entry_point.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/environment.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/import_refs.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/launch.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/network_file_system.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/profile.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/programs/__init__.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/programs/vscode.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/queues.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/run.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/secret.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/token.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/utils.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cli/volume.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/client.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cloud_bucket_mount.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cls.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/cls.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/config.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/container_process.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/container_process.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/dict.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/environments.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/environments.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/exception.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/experimental/__init__.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/experimental/ipython.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/file_io.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/file_io.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/file_pattern_matcher.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/functions.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/gpu.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/image.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/image.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/io_streams.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/io_streams.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/mount.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/mount.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/network_file_system.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/network_file_system.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/object.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/object.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/output.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/parallel_map.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/parallel_map.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/partial_function.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/partial_function.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/proxy.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/proxy.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/py.typed +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/queue.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/queue.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/requirements/2023.12.312.txt +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/requirements/2023.12.txt +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/requirements/2024.04.txt +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/requirements/2024.10.txt +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/requirements/PREVIEW.txt +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/requirements/README.md +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/requirements/base-images.json +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/retries.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/runner.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/runner.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/running_app.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/sandbox.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/sandbox.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/schedule.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/scheduler_placement.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/secret.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/secret.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/serving.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/serving.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/snapshot.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/snapshot.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/stream_type.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/token_flow.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/token_flow.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/volume.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal/volume.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal.egg-info/SOURCES.txt +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal.egg-info/dependency_links.txt +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal.egg-info/entry_points.txt +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal.egg-info/requires.txt +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal.egg-info/top_level.txt +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_docs/__init__.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_docs/gen_cli_docs.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_docs/gen_reference_docs.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_docs/mdmd/__init__.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_docs/mdmd/signatures.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_proto/__init__.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_proto/api_grpc.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_proto/modal_api_grpc.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_proto/modal_options_grpc.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_proto/options.proto +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_proto/options_grpc.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_proto/options_pb2.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_proto/options_pb2.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_proto/options_pb2_grpc.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_proto/options_pb2_grpc.pyi +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_proto/py.typed +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_version/__init__.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/modal_version/__main__.py +0 -0
- {modal-0.74.60 → modal-0.74.62}/pyproject.toml +0 -0
- {modal-0.74.60 → modal-0.74.62}/setup.cfg +0 -0
@@ -27,7 +27,7 @@ class _Client:
|
|
27
27
|
_snapshotted: bool
|
28
28
|
|
29
29
|
def __init__(
|
30
|
-
self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.74.
|
30
|
+
self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.74.62"
|
31
31
|
): ...
|
32
32
|
def is_closed(self) -> bool: ...
|
33
33
|
@property
|
@@ -86,7 +86,7 @@ class Client:
|
|
86
86
|
_snapshotted: bool
|
87
87
|
|
88
88
|
def __init__(
|
89
|
-
self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.74.
|
89
|
+
self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.74.62"
|
90
90
|
): ...
|
91
91
|
def is_closed(self) -> bool: ...
|
92
92
|
@property
|
@@ -73,7 +73,7 @@ class _Dict(_Object, type_prefix="di"):
|
|
73
73
|
@asynccontextmanager
|
74
74
|
async def ephemeral(
|
75
75
|
cls: type["_Dict"],
|
76
|
-
data: Optional[dict] = None,
|
76
|
+
data: Optional[dict] = None, # DEPRECATED
|
77
77
|
client: Optional[_Client] = None,
|
78
78
|
environment_name: Optional[str] = None,
|
79
79
|
_heartbeat_sleep: float = EPHEMERAL_OBJECT_HEARTBEAT_SLEEP,
|
@@ -95,6 +95,11 @@ class _Dict(_Object, type_prefix="di"):
|
|
95
95
|
"""
|
96
96
|
if client is None:
|
97
97
|
client = await _Client.from_env()
|
98
|
+
if data:
|
99
|
+
deprecation_warning(
|
100
|
+
(2025, 5, 6),
|
101
|
+
"Passing data to `modal.Dict.ephemeral` is deprecated and will stop working in a future release.",
|
102
|
+
)
|
98
103
|
serialized = _serialize_dict(data if data is not None else {})
|
99
104
|
request = api_pb2.DictGetOrCreateRequest(
|
100
105
|
object_creation_type=api_pb2.OBJECT_CREATION_TYPE_EPHEMERAL,
|
@@ -111,7 +116,7 @@ class _Dict(_Object, type_prefix="di"):
|
|
111
116
|
@renamed_parameter((2024, 12, 18), "label", "name")
|
112
117
|
def from_name(
|
113
118
|
name: str,
|
114
|
-
data: Optional[dict] = None,
|
119
|
+
data: Optional[dict] = None, # DEPRECATED
|
115
120
|
*,
|
116
121
|
namespace=api_pb2.DEPLOYMENT_NAMESPACE_WORKSPACE,
|
117
122
|
environment_name: Optional[str] = None,
|
@@ -130,6 +135,12 @@ class _Dict(_Object, type_prefix="di"):
|
|
130
135
|
"""
|
131
136
|
check_object_name(name, "Dict")
|
132
137
|
|
138
|
+
if data:
|
139
|
+
deprecation_warning(
|
140
|
+
(2025, 5, 6),
|
141
|
+
"Passing data to `modal.Dict.from_name` is deprecated and will stop working in a future release.",
|
142
|
+
)
|
143
|
+
|
133
144
|
async def _load(self: _Dict, resolver: Resolver, existing_object_id: Optional[str]):
|
134
145
|
serialized = _serialize_dict(data if data is not None else {})
|
135
146
|
req = api_pb2.DictGetOrCreateRequest(
|
@@ -227,11 +227,11 @@ class Function(
|
|
227
227
|
|
228
228
|
_call_generator_nowait: ___call_generator_nowait_spec[typing_extensions.Self]
|
229
229
|
|
230
|
-
class __remote_spec(typing_extensions.Protocol[
|
230
|
+
class __remote_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
|
231
231
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER: ...
|
232
232
|
async def aio(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER: ...
|
233
233
|
|
234
|
-
remote: __remote_spec[modal._functions.
|
234
|
+
remote: __remote_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
|
235
235
|
|
236
236
|
class __remote_gen_spec(typing_extensions.Protocol[SUPERSELF]):
|
237
237
|
def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]: ...
|
@@ -246,12 +246,12 @@ class Function(
|
|
246
246
|
self, *args: modal._functions.P.args, **kwargs: modal._functions.P.kwargs
|
247
247
|
) -> modal._functions.OriginalReturnType: ...
|
248
248
|
|
249
|
-
class ___experimental_spawn_spec(typing_extensions.Protocol[
|
249
|
+
class ___experimental_spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
|
250
250
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
|
251
251
|
async def aio(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
|
252
252
|
|
253
253
|
_experimental_spawn: ___experimental_spawn_spec[
|
254
|
-
modal._functions.
|
254
|
+
modal._functions.P, modal._functions.ReturnType, typing_extensions.Self
|
255
255
|
]
|
256
256
|
|
257
257
|
class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER, SUPERSELF]):
|
@@ -260,11 +260,11 @@ class Function(
|
|
260
260
|
|
261
261
|
_spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P, typing_extensions.Self]
|
262
262
|
|
263
|
-
class __spawn_spec(typing_extensions.Protocol[
|
263
|
+
class __spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
|
264
264
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
|
265
265
|
async def aio(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
|
266
266
|
|
267
|
-
spawn: __spawn_spec[modal._functions.
|
267
|
+
spawn: __spawn_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
|
268
268
|
|
269
269
|
def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]: ...
|
270
270
|
|
@@ -1112,9 +1112,11 @@ message DictPopResponse {
|
|
1112
1112
|
message DictUpdateRequest {
|
1113
1113
|
string dict_id = 1 [ (modal.options.audit_target_attr) = true ];
|
1114
1114
|
repeated DictEntry updates = 2;
|
1115
|
+
bool if_not_exists = 3;
|
1115
1116
|
}
|
1116
1117
|
|
1117
1118
|
message DictUpdateResponse {
|
1119
|
+
bool created = 1;
|
1118
1120
|
}
|
1119
1121
|
|
1120
1122
|
message Domain {
|