frogml 1.2.35__py3-none-any.whl → 1.2.41__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.
- frogml/__init__.py +1 -1
- frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2.py +43 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2.pyi +218 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_pb2.py +53 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_pb2.pyi +258 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_service_pb2.py +58 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_service_pb2.pyi +224 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_service_pb2_grpc.py +206 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/environment_variables_configuration_pb2.py +33 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/environment_variables_configuration_pb2.pyi +99 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/environment_variables_configuration_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_artifact_identifier_pb2.py +31 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_artifact_identifier_pb2.pyi +99 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_artifact_identifier_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_brief_pb2.py +30 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_brief_pb2.pyi +55 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_brief_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_filter_pb2.py +42 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_filter_pb2.pyi +204 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_filter_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/probes_configuration_pb2.py +29 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/probes_configuration_pb2.pyi +60 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/probes_configuration_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/realtime_deployment_pb2.py +28 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/realtime_deployment_pb2.pyi +47 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/realtime_deployment_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/resource_configuration_pb2.py +27 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/resource_configuration_pb2.pyi +29 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/resource_configuration_pb2_grpc.py +4 -0
- frogml/_proto/qwak/logging/log_source_pb2.py +31 -25
- frogml/_proto/qwak/logging/log_source_pb2.pyi +28 -14
- frogml/_proto/qwak/models/models_pb2.py +81 -79
- frogml/_proto/qwak/models/models_pb2.pyi +24 -0
- frogml/_proto/qwak/models/models_pb2_grpc.py +34 -0
- frogml/core/clients/batch_job_management/client.py +14 -6
- frogml/core/clients/logging_client/client.py +118 -33
- frogml/core/clients/model_deployment_manager/__init__.py +1 -0
- frogml/core/clients/model_deployment_manager/client.py +103 -0
- {frogml-1.2.35.dist-info → frogml-1.2.41.dist-info}/METADATA +1 -1
- {frogml-1.2.35.dist-info → frogml-1.2.41.dist-info}/RECORD +46 -13
- frogml_services_mock/mocks/frogml_mocks.py +11 -3
- frogml_services_mock/mocks/model_deployment_manager_service_mock.py +255 -0
- frogml_services_mock/services_mock.py +18 -2
- {frogml-1.2.35.dist-info → frogml-1.2.41.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import builtins
|
|
7
|
+
import google.protobuf.descriptor
|
|
8
|
+
import google.protobuf.message
|
|
9
|
+
import typing
|
|
10
|
+
|
|
11
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
12
|
+
|
|
13
|
+
@typing.final
|
|
14
|
+
class ModelArtifactIdentifier(google.protobuf.message.Message):
|
|
15
|
+
"""Identifier for the Model Group, Model and image to deploy."""
|
|
16
|
+
|
|
17
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
18
|
+
|
|
19
|
+
MODEL_BASED_ARTIFACT_ID_FIELD_NUMBER: builtins.int
|
|
20
|
+
CUSTOM_MODEL_ARTIFACT_ID_FIELD_NUMBER: builtins.int
|
|
21
|
+
@property
|
|
22
|
+
def model_based_artifact_id(self) -> global___ModelBasedArtifactIdentifier:
|
|
23
|
+
"""A Model based identifier, which contains the Model Group ID, Model ID and image path."""
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def custom_model_artifact_id(self) -> global___CustomModelArtifactIdentifier:
|
|
27
|
+
"""A Custom Model based identifier, which contains the Model Group ID, Model ID and Build ID."""
|
|
28
|
+
|
|
29
|
+
def __init__(
|
|
30
|
+
self,
|
|
31
|
+
*,
|
|
32
|
+
model_based_artifact_id: global___ModelBasedArtifactIdentifier | None = ...,
|
|
33
|
+
custom_model_artifact_id: global___CustomModelArtifactIdentifier | None = ...,
|
|
34
|
+
) -> None: ...
|
|
35
|
+
def HasField(self, field_name: typing.Literal["custom_model_artifact_id", b"custom_model_artifact_id", "identifier_type", b"identifier_type", "model_based_artifact_id", b"model_based_artifact_id"]) -> builtins.bool: ...
|
|
36
|
+
def ClearField(self, field_name: typing.Literal["custom_model_artifact_id", b"custom_model_artifact_id", "identifier_type", b"identifier_type", "model_based_artifact_id", b"model_based_artifact_id"]) -> None: ...
|
|
37
|
+
def WhichOneof(self, oneof_group: typing.Literal["identifier_type", b"identifier_type"]) -> typing.Literal["model_based_artifact_id", "custom_model_artifact_id"] | None: ...
|
|
38
|
+
|
|
39
|
+
global___ModelArtifactIdentifier = ModelArtifactIdentifier
|
|
40
|
+
|
|
41
|
+
@typing.final
|
|
42
|
+
class ModelBasedArtifactIdentifier(google.protobuf.message.Message):
|
|
43
|
+
"""An identifier based on Large Language Models"""
|
|
44
|
+
|
|
45
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
46
|
+
|
|
47
|
+
MODEL_GROUP_ID_FIELD_NUMBER: builtins.int
|
|
48
|
+
MODEL_ID_FIELD_NUMBER: builtins.int
|
|
49
|
+
IMAGE_PATH_FIELD_NUMBER: builtins.int
|
|
50
|
+
JFROG_PROJECT_KEY_FIELD_NUMBER: builtins.int
|
|
51
|
+
model_group_id: builtins.str
|
|
52
|
+
"""The model group ID, used for permission checking and for organisation e.g. "my-model-group" """
|
|
53
|
+
model_id: builtins.str
|
|
54
|
+
"""The model ID, which will be used as a routing key for the model e.g. "credit_risk" """
|
|
55
|
+
image_path: builtins.str
|
|
56
|
+
"""The image path to deploy, without the registry, model group and model prefixes."""
|
|
57
|
+
jfrog_project_key: builtins.str
|
|
58
|
+
"""The JFrog Project Key where the model image is stored e.g. "my-jfrog-project" """
|
|
59
|
+
def __init__(
|
|
60
|
+
self,
|
|
61
|
+
*,
|
|
62
|
+
model_group_id: builtins.str = ...,
|
|
63
|
+
model_id: builtins.str = ...,
|
|
64
|
+
image_path: builtins.str = ...,
|
|
65
|
+
jfrog_project_key: builtins.str = ...,
|
|
66
|
+
) -> None: ...
|
|
67
|
+
def ClearField(self, field_name: typing.Literal["image_path", b"image_path", "jfrog_project_key", b"jfrog_project_key", "model_group_id", b"model_group_id", "model_id", b"model_id"]) -> None: ...
|
|
68
|
+
|
|
69
|
+
global___ModelBasedArtifactIdentifier = ModelBasedArtifactIdentifier
|
|
70
|
+
|
|
71
|
+
@typing.final
|
|
72
|
+
class CustomModelArtifactIdentifier(google.protobuf.message.Message):
|
|
73
|
+
"""An identifier based on Custom Models"""
|
|
74
|
+
|
|
75
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
76
|
+
|
|
77
|
+
MODEL_GROUP_ID_FIELD_NUMBER: builtins.int
|
|
78
|
+
MODEL_ID_FIELD_NUMBER: builtins.int
|
|
79
|
+
BUILD_ID_FIELD_NUMBER: builtins.int
|
|
80
|
+
JFROG_PROJECT_KEY_FIELD_NUMBER: builtins.int
|
|
81
|
+
model_group_id: builtins.str
|
|
82
|
+
"""The model group ID, used for permission checking and for organisation e.g. "my-model-group" """
|
|
83
|
+
model_id: builtins.str
|
|
84
|
+
"""The model ID, which will be used as a routing key for the model e.g. "credit_risk" """
|
|
85
|
+
build_id: builtins.str
|
|
86
|
+
"""The build ID to deploy."""
|
|
87
|
+
jfrog_project_key: builtins.str
|
|
88
|
+
"""The JFrog Project Key where the model image is stored e.g. "my-jfrog-project" """
|
|
89
|
+
def __init__(
|
|
90
|
+
self,
|
|
91
|
+
*,
|
|
92
|
+
model_group_id: builtins.str = ...,
|
|
93
|
+
model_id: builtins.str = ...,
|
|
94
|
+
build_id: builtins.str = ...,
|
|
95
|
+
jfrog_project_key: builtins.str = ...,
|
|
96
|
+
) -> None: ...
|
|
97
|
+
def ClearField(self, field_name: typing.Literal["build_id", b"build_id", "jfrog_project_key", b"jfrog_project_key", "model_group_id", b"model_group_id", "model_id", b"model_id"]) -> None: ...
|
|
98
|
+
|
|
99
|
+
global___CustomModelArtifactIdentifier = CustomModelArtifactIdentifier
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: com/jfrog/ml/model/deployment/v1/model_deployment_brief.proto
|
|
4
|
+
# Protobuf Python Version: 4.25.1
|
|
5
|
+
"""Generated protocol buffer code."""
|
|
6
|
+
from google.protobuf import descriptor as _descriptor
|
|
7
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
8
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
9
|
+
from google.protobuf.internal import builder as _builder
|
|
10
|
+
# @@protoc_insertion_point(imports)
|
|
11
|
+
|
|
12
|
+
_sym_db = _symbol_database.Default()
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
|
16
|
+
from frogml._proto.com.jfrog.ml.model.deployment.v1 import deployment_pb2 as com_dot_jfrog_dot_ml_dot_model_dot_deployment_dot_v1_dot_deployment__pb2
|
|
17
|
+
from frogml._proto.com.jfrog.ml.model.deployment.v1 import model_artifact_identifier_pb2 as com_dot_jfrog_dot_ml_dot_model_dot_deployment_dot_v1_dot_model__artifact__identifier__pb2
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n=com/jfrog/ml/model/deployment/v1/model_deployment_brief.proto\x12 com.jfrog.ml.model.deployment.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x31\x63om/jfrog/ml/model/deployment/v1/deployment.proto\x1a@com/jfrog/ml/model/deployment/v1/model_artifact_identifier.proto\"\x99\x02\n\x14ModelDeploymentBrief\x12G\n\x06status\x18\x01 \x01(\x0b\x32\x37.com.jfrog.ml.model.deployment.v1.ModelDeploymentStatus\x12\x13\n\x0b\x65nvironment\x18\x02 \x01(\t\x12.\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\rdeployment_id\x18\x04 \x01(\t\x12\\\n\x19model_artifact_identifier\x18\x05 \x01(\x0b\x32\x39.com.jfrog.ml.model.deployment.v1.ModelArtifactIdentifierB(\n$com.jfrog.ml.model.deployment.v1.apiP\x01\x62\x06proto3')
|
|
21
|
+
|
|
22
|
+
_globals = globals()
|
|
23
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
24
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'com.jfrog.ml.model.deployment.v1.model_deployment_brief_pb2', _globals)
|
|
25
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
26
|
+
_globals['DESCRIPTOR']._options = None
|
|
27
|
+
_globals['DESCRIPTOR']._serialized_options = b'\n$com.jfrog.ml.model.deployment.v1.apiP\001'
|
|
28
|
+
_globals['_MODELDEPLOYMENTBRIEF']._serialized_start=250
|
|
29
|
+
_globals['_MODELDEPLOYMENTBRIEF']._serialized_end=531
|
|
30
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import builtins
|
|
7
|
+
import frogml._proto.com.jfrog.ml.model.deployment.v1.deployment_pb2
|
|
8
|
+
import frogml._proto.com.jfrog.ml.model.deployment.v1.model_artifact_identifier_pb2
|
|
9
|
+
import google.protobuf.descriptor
|
|
10
|
+
import google.protobuf.message
|
|
11
|
+
import google.protobuf.timestamp_pb2
|
|
12
|
+
import typing
|
|
13
|
+
|
|
14
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
15
|
+
|
|
16
|
+
@typing.final
|
|
17
|
+
class ModelDeploymentBrief(google.protobuf.message.Message):
|
|
18
|
+
"""Represents a **brief** overview of a model deployment containing only essential information at a glance."""
|
|
19
|
+
|
|
20
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
21
|
+
|
|
22
|
+
STATUS_FIELD_NUMBER: builtins.int
|
|
23
|
+
ENVIRONMENT_FIELD_NUMBER: builtins.int
|
|
24
|
+
CREATED_AT_FIELD_NUMBER: builtins.int
|
|
25
|
+
DEPLOYMENT_ID_FIELD_NUMBER: builtins.int
|
|
26
|
+
MODEL_ARTIFACT_IDENTIFIER_FIELD_NUMBER: builtins.int
|
|
27
|
+
environment: builtins.str
|
|
28
|
+
"""The environment where the deployment is located."""
|
|
29
|
+
deployment_id: builtins.str
|
|
30
|
+
"""The unique UUID of the deployment."""
|
|
31
|
+
@property
|
|
32
|
+
def status(self) -> frogml._proto.com.jfrog.ml.model.deployment.v1.deployment_pb2.ModelDeploymentStatus:
|
|
33
|
+
"""The status of the deployment."""
|
|
34
|
+
|
|
35
|
+
@property
|
|
36
|
+
def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
|
|
37
|
+
"""The timestamp of the deployment."""
|
|
38
|
+
|
|
39
|
+
@property
|
|
40
|
+
def model_artifact_identifier(self) -> frogml._proto.com.jfrog.ml.model.deployment.v1.model_artifact_identifier_pb2.ModelArtifactIdentifier:
|
|
41
|
+
"""The model artifact identifier associated with this deployment, containing the model group ID, model ID, and either image path or build ID."""
|
|
42
|
+
|
|
43
|
+
def __init__(
|
|
44
|
+
self,
|
|
45
|
+
*,
|
|
46
|
+
status: frogml._proto.com.jfrog.ml.model.deployment.v1.deployment_pb2.ModelDeploymentStatus | None = ...,
|
|
47
|
+
environment: builtins.str = ...,
|
|
48
|
+
created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
|
|
49
|
+
deployment_id: builtins.str = ...,
|
|
50
|
+
model_artifact_identifier: frogml._proto.com.jfrog.ml.model.deployment.v1.model_artifact_identifier_pb2.ModelArtifactIdentifier | None = ...,
|
|
51
|
+
) -> None: ...
|
|
52
|
+
def HasField(self, field_name: typing.Literal["created_at", b"created_at", "model_artifact_identifier", b"model_artifact_identifier", "status", b"status"]) -> builtins.bool: ...
|
|
53
|
+
def ClearField(self, field_name: typing.Literal["created_at", b"created_at", "deployment_id", b"deployment_id", "environment", b"environment", "model_artifact_identifier", b"model_artifact_identifier", "status", b"status"]) -> None: ...
|
|
54
|
+
|
|
55
|
+
global___ModelDeploymentBrief = ModelDeploymentBrief
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: com/jfrog/ml/model/deployment/v1/model_deployment_filter.proto
|
|
4
|
+
# Protobuf Python Version: 4.25.1
|
|
5
|
+
"""Generated protocol buffer code."""
|
|
6
|
+
from google.protobuf import descriptor as _descriptor
|
|
7
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
8
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
9
|
+
from google.protobuf.internal import builder as _builder
|
|
10
|
+
# @@protoc_insertion_point(imports)
|
|
11
|
+
|
|
12
|
+
_sym_db = _symbol_database.Default()
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from frogml._proto.com.jfrog.ml.model.deployment.v1 import deployment_pb2 as com_dot_jfrog_dot_ml_dot_model_dot_deployment_dot_v1_dot_deployment__pb2
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n>com/jfrog/ml/model/deployment/v1/model_deployment_filter.proto\x12 com.jfrog.ml.model.deployment.v1\x1a\x31\x63om/jfrog/ml/model/deployment/v1/deployment.proto\"\x9b\x01\n\x15ModelDeploymentFilter\x12g\n\x1esimple_model_deployment_filter\x18\x01 \x01(\x0b\x32=.com.jfrog.ml.model.deployment.v1.SimpleModelDeploymentFilterH\x00\x42\x19\n\x17model_deployment_filter\"\xb8\x04\n\x1bSimpleModelDeploymentFilter\x12Z\n\x17model_identifier_filter\x18\x01 \x01(\x0b\x32\x37.com.jfrog.ml.model.deployment.v1.ModelIdentifierFilterH\x00\x12J\n\x0fmodel_group_ids\x18\x02 \x01(\x0b\x32/.com.jfrog.ml.model.deployment.v1.ModelGroupIdsH\x01\x12?\n\tmodel_ids\x18\x03 \x01(\x0b\x32*.com.jfrog.ml.model.deployment.v1.ModelIdsH\x02\x12^\n\x19model_deployment_statuses\x18\x04 \x01(\x0b\x32\x39.com.jfrog.ml.model.deployment.v1.ModelDeploymentStatusesH\x03\x12K\n\x0f\x65nvironment_ids\x18\x05 \x01(\x0b\x32\x30.com.jfrog.ml.model.deployment.v1.EnvironmentIdsH\x04\x42\x1d\n\x1bmodel_identifier_filter_optB\x1b\n\x19model_group_id_filter_optB\x15\n\x13model_id_filter_optB\x13\n\x11status_filter_optB\x1b\n\x19\x65nvironment_id_filter_opt\"w\n\x1bModelDeploymentStatusFilter\x12X\n\x17model_deployment_status\x18\x01 \x03(\x0b\x32\x37.com.jfrog.ml.model.deployment.v1.ModelDeploymentStatus\"A\n\x15ModelIdentifierFilter\x12\x16\n\x0emodel_group_id\x18\x01 \x01(\t\x12\x10\n\x08model_id\x18\x02 \x01(\t\"\'\n\rModelGroupIds\x12\x16\n\x0emodel_group_id\x18\x01 \x03(\t\"\x1c\n\x08ModelIds\x12\x10\n\x08model_id\x18\x01 \x03(\t\"s\n\x17ModelDeploymentStatuses\x12X\n\x17model_deployment_status\x18\x01 \x03(\x0b\x32\x37.com.jfrog.ml.model.deployment.v1.ModelDeploymentStatus\"(\n\x0e\x45nvironmentIds\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x03(\tB(\n$com.jfrog.ml.model.deployment.v1.apiP\x01\x62\x06proto3')
|
|
19
|
+
|
|
20
|
+
_globals = globals()
|
|
21
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
22
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'com.jfrog.ml.model.deployment.v1.model_deployment_filter_pb2', _globals)
|
|
23
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
24
|
+
_globals['DESCRIPTOR']._options = None
|
|
25
|
+
_globals['DESCRIPTOR']._serialized_options = b'\n$com.jfrog.ml.model.deployment.v1.apiP\001'
|
|
26
|
+
_globals['_MODELDEPLOYMENTFILTER']._serialized_start=152
|
|
27
|
+
_globals['_MODELDEPLOYMENTFILTER']._serialized_end=307
|
|
28
|
+
_globals['_SIMPLEMODELDEPLOYMENTFILTER']._serialized_start=310
|
|
29
|
+
_globals['_SIMPLEMODELDEPLOYMENTFILTER']._serialized_end=878
|
|
30
|
+
_globals['_MODELDEPLOYMENTSTATUSFILTER']._serialized_start=880
|
|
31
|
+
_globals['_MODELDEPLOYMENTSTATUSFILTER']._serialized_end=999
|
|
32
|
+
_globals['_MODELIDENTIFIERFILTER']._serialized_start=1001
|
|
33
|
+
_globals['_MODELIDENTIFIERFILTER']._serialized_end=1066
|
|
34
|
+
_globals['_MODELGROUPIDS']._serialized_start=1068
|
|
35
|
+
_globals['_MODELGROUPIDS']._serialized_end=1107
|
|
36
|
+
_globals['_MODELIDS']._serialized_start=1109
|
|
37
|
+
_globals['_MODELIDS']._serialized_end=1137
|
|
38
|
+
_globals['_MODELDEPLOYMENTSTATUSES']._serialized_start=1139
|
|
39
|
+
_globals['_MODELDEPLOYMENTSTATUSES']._serialized_end=1254
|
|
40
|
+
_globals['_ENVIRONMENTIDS']._serialized_start=1256
|
|
41
|
+
_globals['_ENVIRONMENTIDS']._serialized_end=1296
|
|
42
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import builtins
|
|
7
|
+
import collections.abc
|
|
8
|
+
import frogml._proto.com.jfrog.ml.model.deployment.v1.deployment_pb2
|
|
9
|
+
import google.protobuf.descriptor
|
|
10
|
+
import google.protobuf.internal.containers
|
|
11
|
+
import google.protobuf.message
|
|
12
|
+
import typing
|
|
13
|
+
|
|
14
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
15
|
+
|
|
16
|
+
@typing.final
|
|
17
|
+
class ModelDeploymentFilter(google.protobuf.message.Message):
|
|
18
|
+
"""A filter to apply on Model Deployment lists. Currently only a simple filter is supported that doesnt allow for
|
|
19
|
+
complex filter expressions. Such a filter may be added here in the future.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
23
|
+
|
|
24
|
+
SIMPLE_MODEL_DEPLOYMENT_FILTER_FIELD_NUMBER: builtins.int
|
|
25
|
+
@property
|
|
26
|
+
def simple_model_deployment_filter(self) -> global___SimpleModelDeploymentFilter:
|
|
27
|
+
"""A simple filter to apply on Model Deployment lists."""
|
|
28
|
+
|
|
29
|
+
def __init__(
|
|
30
|
+
self,
|
|
31
|
+
*,
|
|
32
|
+
simple_model_deployment_filter: global___SimpleModelDeploymentFilter | None = ...,
|
|
33
|
+
) -> None: ...
|
|
34
|
+
def HasField(self, field_name: typing.Literal["model_deployment_filter", b"model_deployment_filter", "simple_model_deployment_filter", b"simple_model_deployment_filter"]) -> builtins.bool: ...
|
|
35
|
+
def ClearField(self, field_name: typing.Literal["model_deployment_filter", b"model_deployment_filter", "simple_model_deployment_filter", b"simple_model_deployment_filter"]) -> None: ...
|
|
36
|
+
def WhichOneof(self, oneof_group: typing.Literal["model_deployment_filter", b"model_deployment_filter"]) -> typing.Literal["simple_model_deployment_filter"] | None: ...
|
|
37
|
+
|
|
38
|
+
global___ModelDeploymentFilter = ModelDeploymentFilter
|
|
39
|
+
|
|
40
|
+
@typing.final
|
|
41
|
+
class SimpleModelDeploymentFilter(google.protobuf.message.Message):
|
|
42
|
+
"""A filter to apply on Model Deployment lists.
|
|
43
|
+
The relationship between each filter element is an "AND". i.e. all filters must match for a given Deployment to be
|
|
44
|
+
included by the filter.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
48
|
+
|
|
49
|
+
MODEL_IDENTIFIER_FILTER_FIELD_NUMBER: builtins.int
|
|
50
|
+
MODEL_GROUP_IDS_FIELD_NUMBER: builtins.int
|
|
51
|
+
MODEL_IDS_FIELD_NUMBER: builtins.int
|
|
52
|
+
MODEL_DEPLOYMENT_STATUSES_FIELD_NUMBER: builtins.int
|
|
53
|
+
ENVIRONMENT_IDS_FIELD_NUMBER: builtins.int
|
|
54
|
+
@property
|
|
55
|
+
def model_identifier_filter(self) -> global___ModelIdentifierFilter: ...
|
|
56
|
+
@property
|
|
57
|
+
def model_group_ids(self) -> global___ModelGroupIds: ...
|
|
58
|
+
@property
|
|
59
|
+
def model_ids(self) -> global___ModelIds: ...
|
|
60
|
+
@property
|
|
61
|
+
def model_deployment_statuses(self) -> global___ModelDeploymentStatuses: ...
|
|
62
|
+
@property
|
|
63
|
+
def environment_ids(self) -> global___EnvironmentIds: ...
|
|
64
|
+
def __init__(
|
|
65
|
+
self,
|
|
66
|
+
*,
|
|
67
|
+
model_identifier_filter: global___ModelIdentifierFilter | None = ...,
|
|
68
|
+
model_group_ids: global___ModelGroupIds | None = ...,
|
|
69
|
+
model_ids: global___ModelIds | None = ...,
|
|
70
|
+
model_deployment_statuses: global___ModelDeploymentStatuses | None = ...,
|
|
71
|
+
environment_ids: global___EnvironmentIds | None = ...,
|
|
72
|
+
) -> None: ...
|
|
73
|
+
def HasField(self, field_name: typing.Literal["environment_id_filter_opt", b"environment_id_filter_opt", "environment_ids", b"environment_ids", "model_deployment_statuses", b"model_deployment_statuses", "model_group_id_filter_opt", b"model_group_id_filter_opt", "model_group_ids", b"model_group_ids", "model_id_filter_opt", b"model_id_filter_opt", "model_identifier_filter", b"model_identifier_filter", "model_identifier_filter_opt", b"model_identifier_filter_opt", "model_ids", b"model_ids", "status_filter_opt", b"status_filter_opt"]) -> builtins.bool: ...
|
|
74
|
+
def ClearField(self, field_name: typing.Literal["environment_id_filter_opt", b"environment_id_filter_opt", "environment_ids", b"environment_ids", "model_deployment_statuses", b"model_deployment_statuses", "model_group_id_filter_opt", b"model_group_id_filter_opt", "model_group_ids", b"model_group_ids", "model_id_filter_opt", b"model_id_filter_opt", "model_identifier_filter", b"model_identifier_filter", "model_identifier_filter_opt", b"model_identifier_filter_opt", "model_ids", b"model_ids", "status_filter_opt", b"status_filter_opt"]) -> None: ...
|
|
75
|
+
@typing.overload
|
|
76
|
+
def WhichOneof(self, oneof_group: typing.Literal["environment_id_filter_opt", b"environment_id_filter_opt"]) -> typing.Literal["environment_ids"] | None: ...
|
|
77
|
+
@typing.overload
|
|
78
|
+
def WhichOneof(self, oneof_group: typing.Literal["model_group_id_filter_opt", b"model_group_id_filter_opt"]) -> typing.Literal["model_group_ids"] | None: ...
|
|
79
|
+
@typing.overload
|
|
80
|
+
def WhichOneof(self, oneof_group: typing.Literal["model_id_filter_opt", b"model_id_filter_opt"]) -> typing.Literal["model_ids"] | None: ...
|
|
81
|
+
@typing.overload
|
|
82
|
+
def WhichOneof(self, oneof_group: typing.Literal["model_identifier_filter_opt", b"model_identifier_filter_opt"]) -> typing.Literal["model_identifier_filter"] | None: ...
|
|
83
|
+
@typing.overload
|
|
84
|
+
def WhichOneof(self, oneof_group: typing.Literal["status_filter_opt", b"status_filter_opt"]) -> typing.Literal["model_deployment_statuses"] | None: ...
|
|
85
|
+
|
|
86
|
+
global___SimpleModelDeploymentFilter = SimpleModelDeploymentFilter
|
|
87
|
+
|
|
88
|
+
@typing.final
|
|
89
|
+
class ModelDeploymentStatusFilter(google.protobuf.message.Message):
|
|
90
|
+
"""A filter that can match a specific Model Deployment status.
|
|
91
|
+
Any deployment whose status matches one of the given statuses will be included (logical OR between statuses).
|
|
92
|
+
"""
|
|
93
|
+
|
|
94
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
95
|
+
|
|
96
|
+
MODEL_DEPLOYMENT_STATUS_FIELD_NUMBER: builtins.int
|
|
97
|
+
@property
|
|
98
|
+
def model_deployment_status(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[com.jfrog.ml.model.deployment.v1.deployment_pb2.ModelDeploymentStatus]:
|
|
99
|
+
"""The Model Deployment statuses to include in the filter.
|
|
100
|
+
Only Deployments with any of the given statuses will be included.
|
|
101
|
+
"""
|
|
102
|
+
|
|
103
|
+
def __init__(
|
|
104
|
+
self,
|
|
105
|
+
*,
|
|
106
|
+
model_deployment_status: collections.abc.Iterable[com.jfrog.ml.model.deployment.v1.deployment_pb2.ModelDeploymentStatus] | None = ...,
|
|
107
|
+
) -> None: ...
|
|
108
|
+
def ClearField(self, field_name: typing.Literal["model_deployment_status", b"model_deployment_status"]) -> None: ...
|
|
109
|
+
|
|
110
|
+
global___ModelDeploymentStatusFilter = ModelDeploymentStatusFilter
|
|
111
|
+
|
|
112
|
+
@typing.final
|
|
113
|
+
class ModelIdentifierFilter(google.protobuf.message.Message):
|
|
114
|
+
"""A filter that can match a specific Model group and Model ID."""
|
|
115
|
+
|
|
116
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
117
|
+
|
|
118
|
+
MODEL_GROUP_ID_FIELD_NUMBER: builtins.int
|
|
119
|
+
MODEL_ID_FIELD_NUMBER: builtins.int
|
|
120
|
+
model_group_id: builtins.str
|
|
121
|
+
"""The Model group ID to include in the filter e.g. "my-Model-group" """
|
|
122
|
+
model_id: builtins.str
|
|
123
|
+
"""The Model ID to include in the filter by e.g. "credit_risk" """
|
|
124
|
+
def __init__(
|
|
125
|
+
self,
|
|
126
|
+
*,
|
|
127
|
+
model_group_id: builtins.str = ...,
|
|
128
|
+
model_id: builtins.str = ...,
|
|
129
|
+
) -> None: ...
|
|
130
|
+
def ClearField(self, field_name: typing.Literal["model_group_id", b"model_group_id", "model_id", b"model_id"]) -> None: ...
|
|
131
|
+
|
|
132
|
+
global___ModelIdentifierFilter = ModelIdentifierFilter
|
|
133
|
+
|
|
134
|
+
@typing.final
|
|
135
|
+
class ModelGroupIds(google.protobuf.message.Message):
|
|
136
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
137
|
+
|
|
138
|
+
MODEL_GROUP_ID_FIELD_NUMBER: builtins.int
|
|
139
|
+
@property
|
|
140
|
+
def model_group_id(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
|
|
141
|
+
"""List of model group IDs to filter by."""
|
|
142
|
+
|
|
143
|
+
def __init__(
|
|
144
|
+
self,
|
|
145
|
+
*,
|
|
146
|
+
model_group_id: collections.abc.Iterable[builtins.str] | None = ...,
|
|
147
|
+
) -> None: ...
|
|
148
|
+
def ClearField(self, field_name: typing.Literal["model_group_id", b"model_group_id"]) -> None: ...
|
|
149
|
+
|
|
150
|
+
global___ModelGroupIds = ModelGroupIds
|
|
151
|
+
|
|
152
|
+
@typing.final
|
|
153
|
+
class ModelIds(google.protobuf.message.Message):
|
|
154
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
155
|
+
|
|
156
|
+
MODEL_ID_FIELD_NUMBER: builtins.int
|
|
157
|
+
@property
|
|
158
|
+
def model_id(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
|
|
159
|
+
"""List of model IDs to filter by."""
|
|
160
|
+
|
|
161
|
+
def __init__(
|
|
162
|
+
self,
|
|
163
|
+
*,
|
|
164
|
+
model_id: collections.abc.Iterable[builtins.str] | None = ...,
|
|
165
|
+
) -> None: ...
|
|
166
|
+
def ClearField(self, field_name: typing.Literal["model_id", b"model_id"]) -> None: ...
|
|
167
|
+
|
|
168
|
+
global___ModelIds = ModelIds
|
|
169
|
+
|
|
170
|
+
@typing.final
|
|
171
|
+
class ModelDeploymentStatuses(google.protobuf.message.Message):
|
|
172
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
173
|
+
|
|
174
|
+
MODEL_DEPLOYMENT_STATUS_FIELD_NUMBER: builtins.int
|
|
175
|
+
@property
|
|
176
|
+
def model_deployment_status(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[com.jfrog.ml.model.deployment.v1.deployment_pb2.ModelDeploymentStatus]:
|
|
177
|
+
"""List of deployment statuses to filter by."""
|
|
178
|
+
|
|
179
|
+
def __init__(
|
|
180
|
+
self,
|
|
181
|
+
*,
|
|
182
|
+
model_deployment_status: collections.abc.Iterable[com.jfrog.ml.model.deployment.v1.deployment_pb2.ModelDeploymentStatus] | None = ...,
|
|
183
|
+
) -> None: ...
|
|
184
|
+
def ClearField(self, field_name: typing.Literal["model_deployment_status", b"model_deployment_status"]) -> None: ...
|
|
185
|
+
|
|
186
|
+
global___ModelDeploymentStatuses = ModelDeploymentStatuses
|
|
187
|
+
|
|
188
|
+
@typing.final
|
|
189
|
+
class EnvironmentIds(google.protobuf.message.Message):
|
|
190
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
191
|
+
|
|
192
|
+
ENVIRONMENT_ID_FIELD_NUMBER: builtins.int
|
|
193
|
+
@property
|
|
194
|
+
def environment_id(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
|
|
195
|
+
"""List of environment IDs to filter by."""
|
|
196
|
+
|
|
197
|
+
def __init__(
|
|
198
|
+
self,
|
|
199
|
+
*,
|
|
200
|
+
environment_id: collections.abc.Iterable[builtins.str] | None = ...,
|
|
201
|
+
) -> None: ...
|
|
202
|
+
def ClearField(self, field_name: typing.Literal["environment_id", b"environment_id"]) -> None: ...
|
|
203
|
+
|
|
204
|
+
global___EnvironmentIds = EnvironmentIds
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: com/jfrog/ml/model/deployment/v1/probes_configuration.proto
|
|
4
|
+
# Protobuf Python Version: 4.25.1
|
|
5
|
+
"""Generated protocol buffer code."""
|
|
6
|
+
from google.protobuf import descriptor as _descriptor
|
|
7
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
8
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
9
|
+
from google.protobuf.internal import builder as _builder
|
|
10
|
+
# @@protoc_insertion_point(imports)
|
|
11
|
+
|
|
12
|
+
_sym_db = _symbol_database.Default()
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n;com/jfrog/ml/model/deployment/v1/probes_configuration.proto\x12 com.jfrog.ml.model.deployment.v1\"\xdf\x01\n\x13ProbesConfiguration\x12M\n\rstartup_probe\x18\x01 \x01(\x0b\x32\x34.com.jfrog.ml.model.deployment.v1.ProbeConfigurationH\x00\x12N\n\x0eliveness_probe\x18\x02 \x01(\x0b\x32\x34.com.jfrog.ml.model.deployment.v1.ProbeConfigurationH\x01\x42\x13\n\x11startup_probe_optB\x14\n\x12liveness_probe_opt\"A\n\x12ProbeConfiguration\x12\x17\n\x0ftimeout_seconds\x18\x01 \x01(\x05\x12\x12\n\nprobe_path\x18\x02 \x01(\tB(\n$com.jfrog.ml.model.deployment.v1.apiP\x01\x62\x06proto3')
|
|
18
|
+
|
|
19
|
+
_globals = globals()
|
|
20
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
21
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'com.jfrog.ml.model.deployment.v1.probes_configuration_pb2', _globals)
|
|
22
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
23
|
+
_globals['DESCRIPTOR']._options = None
|
|
24
|
+
_globals['DESCRIPTOR']._serialized_options = b'\n$com.jfrog.ml.model.deployment.v1.apiP\001'
|
|
25
|
+
_globals['_PROBESCONFIGURATION']._serialized_start=98
|
|
26
|
+
_globals['_PROBESCONFIGURATION']._serialized_end=321
|
|
27
|
+
_globals['_PROBECONFIGURATION']._serialized_start=323
|
|
28
|
+
_globals['_PROBECONFIGURATION']._serialized_end=388
|
|
29
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import builtins
|
|
7
|
+
import google.protobuf.descriptor
|
|
8
|
+
import google.protobuf.message
|
|
9
|
+
import typing
|
|
10
|
+
|
|
11
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
12
|
+
|
|
13
|
+
@typing.final
|
|
14
|
+
class ProbesConfiguration(google.protobuf.message.Message):
|
|
15
|
+
"""Configuration of probes for monitoring and (for attempting) to restore health of containers"""
|
|
16
|
+
|
|
17
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
18
|
+
|
|
19
|
+
STARTUP_PROBE_FIELD_NUMBER: builtins.int
|
|
20
|
+
LIVENESS_PROBE_FIELD_NUMBER: builtins.int
|
|
21
|
+
@property
|
|
22
|
+
def startup_probe(self) -> global___ProbeConfiguration: ...
|
|
23
|
+
@property
|
|
24
|
+
def liveness_probe(self) -> global___ProbeConfiguration: ...
|
|
25
|
+
def __init__(
|
|
26
|
+
self,
|
|
27
|
+
*,
|
|
28
|
+
startup_probe: global___ProbeConfiguration | None = ...,
|
|
29
|
+
liveness_probe: global___ProbeConfiguration | None = ...,
|
|
30
|
+
) -> None: ...
|
|
31
|
+
def HasField(self, field_name: typing.Literal["liveness_probe", b"liveness_probe", "liveness_probe_opt", b"liveness_probe_opt", "startup_probe", b"startup_probe", "startup_probe_opt", b"startup_probe_opt"]) -> builtins.bool: ...
|
|
32
|
+
def ClearField(self, field_name: typing.Literal["liveness_probe", b"liveness_probe", "liveness_probe_opt", b"liveness_probe_opt", "startup_probe", b"startup_probe", "startup_probe_opt", b"startup_probe_opt"]) -> None: ...
|
|
33
|
+
@typing.overload
|
|
34
|
+
def WhichOneof(self, oneof_group: typing.Literal["liveness_probe_opt", b"liveness_probe_opt"]) -> typing.Literal["liveness_probe"] | None: ...
|
|
35
|
+
@typing.overload
|
|
36
|
+
def WhichOneof(self, oneof_group: typing.Literal["startup_probe_opt", b"startup_probe_opt"]) -> typing.Literal["startup_probe"] | None: ...
|
|
37
|
+
|
|
38
|
+
global___ProbesConfiguration = ProbesConfiguration
|
|
39
|
+
|
|
40
|
+
@typing.final
|
|
41
|
+
class ProbeConfiguration(google.protobuf.message.Message):
|
|
42
|
+
"""Configuration of a specific probe."""
|
|
43
|
+
|
|
44
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
45
|
+
|
|
46
|
+
TIMEOUT_SECONDS_FIELD_NUMBER: builtins.int
|
|
47
|
+
PROBE_PATH_FIELD_NUMBER: builtins.int
|
|
48
|
+
timeout_seconds: builtins.int
|
|
49
|
+
"""Timeout in seconds after which a failing probe should trigger a failure."""
|
|
50
|
+
probe_path: builtins.str
|
|
51
|
+
"""The probe path, such as /health, to be used as an http endpoint in the container."""
|
|
52
|
+
def __init__(
|
|
53
|
+
self,
|
|
54
|
+
*,
|
|
55
|
+
timeout_seconds: builtins.int = ...,
|
|
56
|
+
probe_path: builtins.str = ...,
|
|
57
|
+
) -> None: ...
|
|
58
|
+
def ClearField(self, field_name: typing.Literal["probe_path", b"probe_path", "timeout_seconds", b"timeout_seconds"]) -> None: ...
|
|
59
|
+
|
|
60
|
+
global___ProbeConfiguration = ProbeConfiguration
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: com/jfrog/ml/model/deployment/v1/realtime_deployment.proto
|
|
4
|
+
# Protobuf Python Version: 4.25.1
|
|
5
|
+
"""Generated protocol buffer code."""
|
|
6
|
+
from google.protobuf import descriptor as _descriptor
|
|
7
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
8
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
9
|
+
from google.protobuf.internal import builder as _builder
|
|
10
|
+
# @@protoc_insertion_point(imports)
|
|
11
|
+
|
|
12
|
+
_sym_db = _symbol_database.Default()
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from frogml._proto.com.jfrog.ml.model.deployment.v1 import auto_scaling_pb2 as com_dot_jfrog_dot_ml_dot_model_dot_deployment_dot_v1_dot_auto__scaling__pb2
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n:com/jfrog/ml/model/deployment/v1/realtime_deployment.proto\x12 com.jfrog.ml.model.deployment.v1\x1a\x33\x63om/jfrog/ml/model/deployment/v1/auto_scaling.proto\"\xb6\x01\n\x12RealtimeDeployment\x12\x18\n\x10\x65xposed_api_path\x18\x01 \x01(\t\x12\x17\n\rreplica_count\x18\x02 \x01(\x05H\x00\x12R\n\x13\x61uto_scaling_config\x18\x03 \x01(\x0b\x32\x33.com.jfrog.ml.model.deployment.v1.AutoScalingConfigH\x00\x42\x19\n\x17horizontal_scaling_typeB(\n$com.jfrog.ml.model.deployment.v1.apiP\x01\x62\x06proto3')
|
|
19
|
+
|
|
20
|
+
_globals = globals()
|
|
21
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
22
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'com.jfrog.ml.model.deployment.v1.realtime_deployment_pb2', _globals)
|
|
23
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
24
|
+
_globals['DESCRIPTOR']._options = None
|
|
25
|
+
_globals['DESCRIPTOR']._serialized_options = b'\n$com.jfrog.ml.model.deployment.v1.apiP\001'
|
|
26
|
+
_globals['_REALTIMEDEPLOYMENT']._serialized_start=150
|
|
27
|
+
_globals['_REALTIMEDEPLOYMENT']._serialized_end=332
|
|
28
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import builtins
|
|
7
|
+
import frogml._proto.com.jfrog.ml.model.deployment.v1.auto_scaling_pb2
|
|
8
|
+
import google.protobuf.descriptor
|
|
9
|
+
import google.protobuf.message
|
|
10
|
+
import typing
|
|
11
|
+
|
|
12
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
13
|
+
|
|
14
|
+
@typing.final
|
|
15
|
+
class RealtimeDeployment(google.protobuf.message.Message):
|
|
16
|
+
"""A Realtime Deployment is exposing the model as a real-time service, which can be used to serve predictions using
|
|
17
|
+
REST requests.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
21
|
+
|
|
22
|
+
EXPOSED_API_PATH_FIELD_NUMBER: builtins.int
|
|
23
|
+
REPLICA_COUNT_FIELD_NUMBER: builtins.int
|
|
24
|
+
AUTO_SCALING_CONFIG_FIELD_NUMBER: builtins.int
|
|
25
|
+
exposed_api_path: builtins.str
|
|
26
|
+
"""A single specific API endpoint e.g. `/predict` for Custom Models, and `/v1/chat/completions` for vLLM.
|
|
27
|
+
This API endpoint is the only one that will be exposed.
|
|
28
|
+
This May be deprecated when AI Gateway is developed.
|
|
29
|
+
"""
|
|
30
|
+
replica_count: builtins.int
|
|
31
|
+
"""Fixed number of replicas"""
|
|
32
|
+
@property
|
|
33
|
+
def auto_scaling_config(self) -> frogml._proto.com.jfrog.ml.model.deployment.v1.auto_scaling_pb2.AutoScalingConfig:
|
|
34
|
+
"""Automatic horizontal scaling based on the auto scaling configuration."""
|
|
35
|
+
|
|
36
|
+
def __init__(
|
|
37
|
+
self,
|
|
38
|
+
*,
|
|
39
|
+
exposed_api_path: builtins.str = ...,
|
|
40
|
+
replica_count: builtins.int = ...,
|
|
41
|
+
auto_scaling_config: frogml._proto.com.jfrog.ml.model.deployment.v1.auto_scaling_pb2.AutoScalingConfig | None = ...,
|
|
42
|
+
) -> None: ...
|
|
43
|
+
def HasField(self, field_name: typing.Literal["auto_scaling_config", b"auto_scaling_config", "horizontal_scaling_type", b"horizontal_scaling_type", "replica_count", b"replica_count"]) -> builtins.bool: ...
|
|
44
|
+
def ClearField(self, field_name: typing.Literal["auto_scaling_config", b"auto_scaling_config", "exposed_api_path", b"exposed_api_path", "horizontal_scaling_type", b"horizontal_scaling_type", "replica_count", b"replica_count"]) -> None: ...
|
|
45
|
+
def WhichOneof(self, oneof_group: typing.Literal["horizontal_scaling_type", b"horizontal_scaling_type"]) -> typing.Literal["replica_count", "auto_scaling_config"] | None: ...
|
|
46
|
+
|
|
47
|
+
global___RealtimeDeployment = RealtimeDeployment
|