qwak-core 0.6.5__py3-none-any.whl → 0.6.7__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.
- _qwak_proto/qwak/administration/cluster/v2/cluster_service_pb2.py +52 -0
- _qwak_proto/qwak/administration/cluster/v2/cluster_service_pb2.pyi +198 -0
- _qwak_proto/qwak/administration/cluster/v2/cluster_service_pb2_grpc.py +237 -0
- _qwak_proto/qwak/administration/v1/environments/environment_pb2.py +29 -0
- _qwak_proto/qwak/administration/v1/environments/environment_pb2.pyi +38 -0
- _qwak_proto/qwak/administration/v1/environments/environment_pb2_grpc.py +4 -0
- _qwak_proto/qwak/administration/v1/environments/environment_service_pb2.py +33 -0
- _qwak_proto/qwak/administration/v1/environments/environment_service_pb2.pyi +59 -0
- _qwak_proto/qwak/administration/v1/environments/environment_service_pb2_grpc.py +67 -0
- _qwak_proto/qwak/models/models_pb2.py +81 -79
- _qwak_proto/qwak/models/models_pb2.pyi +21 -0
- _qwak_proto/qwak/models/models_pb2_grpc.py +34 -0
- qwak/__init__.py +1 -1
- qwak/clients/administration/cluster_v2/__init__.py +1 -0
- qwak/clients/administration/cluster_v2/client.py +122 -0
- qwak/clients/administration/environment/client.py +28 -0
- qwak/clients/administration/environment_v1/__init__.py +1 -0
- qwak/clients/administration/environment_v1/client.py +53 -0
- {qwak_core-0.6.5.dist-info → qwak_core-0.6.7.dist-info}/METADATA +1 -1
- {qwak_core-0.6.5.dist-info → qwak_core-0.6.7.dist-info}/RECORD +26 -10
- qwak_services_mock/mocks/cluster_v2_service.py +146 -0
- qwak_services_mock/mocks/environment_v0_service.py +175 -0
- qwak_services_mock/mocks/environment_v1_service.py +37 -0
- qwak_services_mock/mocks/qwak_mocks.py +6 -0
- qwak_services_mock/services_mock.py +38 -1
- {qwak_core-0.6.5.dist-info → qwak_core-0.6.7.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
|
2
|
+
"""Client and server classes corresponding to protobuf-defined services."""
|
|
3
|
+
import grpc
|
|
4
|
+
|
|
5
|
+
from _qwak_proto.qwak.administration.v1.environments import environment_service_pb2 as qwak_dot_administration_dot_v1_dot_environments_dot_environment__service__pb2
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class EnvironmentServiceStub(object):
|
|
9
|
+
"""Missing associated documentation comment in .proto file."""
|
|
10
|
+
|
|
11
|
+
def __init__(self, channel):
|
|
12
|
+
"""Constructor.
|
|
13
|
+
|
|
14
|
+
Args:
|
|
15
|
+
channel: A grpc.Channel.
|
|
16
|
+
"""
|
|
17
|
+
self.CreateEnvironment = channel.unary_unary(
|
|
18
|
+
'/qwak.administration.v1.environment.EnvironmentService/CreateEnvironment',
|
|
19
|
+
request_serializer=qwak_dot_administration_dot_v1_dot_environments_dot_environment__service__pb2.CreateEnvironmentRequest.SerializeToString,
|
|
20
|
+
response_deserializer=qwak_dot_administration_dot_v1_dot_environments_dot_environment__service__pb2.CreateEnvironmentResponse.FromString,
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class EnvironmentServiceServicer(object):
|
|
25
|
+
"""Missing associated documentation comment in .proto file."""
|
|
26
|
+
|
|
27
|
+
def CreateEnvironment(self, request, context):
|
|
28
|
+
"""Create an environment
|
|
29
|
+
"""
|
|
30
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
31
|
+
context.set_details('Method not implemented!')
|
|
32
|
+
raise NotImplementedError('Method not implemented!')
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def add_EnvironmentServiceServicer_to_server(servicer, server):
|
|
36
|
+
rpc_method_handlers = {
|
|
37
|
+
'CreateEnvironment': grpc.unary_unary_rpc_method_handler(
|
|
38
|
+
servicer.CreateEnvironment,
|
|
39
|
+
request_deserializer=qwak_dot_administration_dot_v1_dot_environments_dot_environment__service__pb2.CreateEnvironmentRequest.FromString,
|
|
40
|
+
response_serializer=qwak_dot_administration_dot_v1_dot_environments_dot_environment__service__pb2.CreateEnvironmentResponse.SerializeToString,
|
|
41
|
+
),
|
|
42
|
+
}
|
|
43
|
+
generic_handler = grpc.method_handlers_generic_handler(
|
|
44
|
+
'qwak.administration.v1.environment.EnvironmentService', rpc_method_handlers)
|
|
45
|
+
server.add_generic_rpc_handlers((generic_handler,))
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
# This class is part of an EXPERIMENTAL API.
|
|
49
|
+
class EnvironmentService(object):
|
|
50
|
+
"""Missing associated documentation comment in .proto file."""
|
|
51
|
+
|
|
52
|
+
@staticmethod
|
|
53
|
+
def CreateEnvironment(request,
|
|
54
|
+
target,
|
|
55
|
+
options=(),
|
|
56
|
+
channel_credentials=None,
|
|
57
|
+
call_credentials=None,
|
|
58
|
+
insecure=False,
|
|
59
|
+
compression=None,
|
|
60
|
+
wait_for_ready=None,
|
|
61
|
+
timeout=None,
|
|
62
|
+
metadata=None):
|
|
63
|
+
return grpc.experimental.unary_unary(request, target, '/qwak.administration.v1.environment.EnvironmentService/CreateEnvironment',
|
|
64
|
+
qwak_dot_administration_dot_v1_dot_environments_dot_environment__service__pb2.CreateEnvironmentRequest.SerializeToString,
|
|
65
|
+
qwak_dot_administration_dot_v1_dot_environments_dot_environment__service__pb2.CreateEnvironmentResponse.FromString,
|
|
66
|
+
options, channel_credentials,
|
|
67
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
@@ -20,7 +20,7 @@ from _qwak_proto.qwak.deployment import deployment_pb2 as qwak_dot_deployment_do
|
|
|
20
20
|
from _qwak_proto.qwak.build.v1 import build_pb2 as qwak_dot_build_dot_v1_dot_build__pb2
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18qwak/models/models.proto\x12\x16qwak.models.management\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x18qwak/builds/builds.proto\x1a&qwak/projects/jfrog_project_spec.proto\x1a\x1eqwak/models/models_query.proto\x1a\x1fqwak/audience/v1/audience.proto\x1a qwak/deployment/deployment.proto\x1a\x19qwak/build/v1/build.proto\"\x9b\x01\n\x12\x43reateModelRequest\x12\x35\n\nmodel_spec\x18\x01 \x01(\x0b\x32!.qwak.models.management.ModelSpec\x12N\n\x12jfrog_project_spec\x18\x02 \x01(\x0b\x32\x32.qwak.projects.management.ModelRepositoryJFrogSpec\"\'\n\x13\x43reateModelResponse\x12\x10\n\x08model_id\x18\x01 \x01(\t\"\'\n\x11ListModelsRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\"C\n\x12ListModelsResponse\x12-\n\x06models\x18\x01 \x03(\x0b\x32\x1d.qwak.models.management.Model\"\xf0\x01\n\x1aListModelsPaginatedRequest\x12\x13\n\tpage_size\x18\x01 \x01(\x05H\x00\x12\x10\n\x06\x63ursor\x18\x02 \x01(\tH\x01\x12\x39\n\x0bsort_models\x18\x03 \x01(\x0b\x32\".qwak.models.management.SortModelsH\x02\x12\x30\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x1e.qwak.models.management.FilterH\x03\x42\x0f\n\rpage_size_optB\x0c\n\ncursor_optB\x11\n\x0fsort_models_optB\x0c\n\nfilter_opt\"\x8a\x01\n\x1bListModelsPaginatedResponse\x12-\n\x06models\x18\x01 \x03(\x0b\x32\x1d.qwak.models.management.Model\x12<\n\x08metadata\x18\x02 \x01(\x0b\x32*.qwak.models.management.PaginationMetadata\"I\n\x0fGetModelRequest\x12\x12\n\x08model_id\x18\x01 \x01(\tH\x00\x12\x14\n\nmodel_uuid\x18\x02 \x01(\tH\x00\x42\x0c\n\nidentifier\"@\n\x10GetModelResponse\x12,\n\x05model\x18\x01 \x01(\x0b\x32\x1d.qwak.models.management.Model\":\n\x12\x44\x65leteModelRequest\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\t\"\x15\n\x13\x44\x65leteModelResponse\"q\n\x12UpdateModelRequest\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12I\n\x11model_spec_config\x18\x02 \x01(\x0b\x32..qwak.models.management.ModelSpecConfiguration\"L\n\x13UpdateModelResponse\x12\x35\n\nmodel_spec\x18\x01 \x01(\x0b\x32!.qwak.models.management.ModelSpec\"<\n\x13\x43reateBranchRequest\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x13\n\x0b\x62ranch_name\x18\x02 \x01(\t\")\n\x14\x43reateBranchResponse\x12\x11\n\tbranch_id\x18\x01 \x01(\t\"(\n\x13\x44\x65leteBranchRequest\x12\x11\n\tbranch_id\x18\x01 \x01(\t\"\x16\n\x14\x44\x65leteBranchResponse\"N\n\x14IsModelExistsRequest\x12\x12\n\x08model_id\x18\x01 \x01(\tH\x00\x12\x14\n\nmodel_uuid\x18\x02 \x01(\tH\x00\x42\x0c\n\nidentifier\"\'\n\x15IsModelExistsResponse\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"\xda\x01\n\tModelSpec\x12\x16\n\x0emodel_named_id\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x14\n\nproject_id\x18\x03 \x01(\tH\x00\x12\x16\n\x0cproject_name\x18\x06 \x01(\tH\x00\x12\x19\n\x11model_description\x18\x04 \x01(\t\x12@\n\x10model_build_type\x18\x05 \x01(\x0b\x32&.qwak.models.management.ModelBuildTypeB\x14\n\x12project_identifier\"\xc7\x02\n\nModelBrief\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12.\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x10last_modified_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x10last_modified_by\x18\x05 \x01(\t\x12\x12\n\ncreated_by\x18\x06 \x01(\t\x12\x19\n\x11model_description\x18\x08 \x01(\t\x12\x12\n\nproject_id\x18\t \x01(\t\x12N\n\x17\x64\x65ployment_model_status\x18\n \x01(\x0e\x32-.qwak.models.management.DeploymentModelStatus\"3\n\x16ModelSpecConfiguration\x12\x19\n\x11model_description\x18\x04 \x01(\t\"\xf4\x04\n\x05Model\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12.\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x10last_modified_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x10last_modified_by\x18\x05 \x01(\t\x12\x12\n\ncreated_by\x18\x06 \x01(\t\x12\x39\n\x0cmodel_status\x18\x07 \x01(\x0e\x32#.qwak.models.management.ModelStatus\x12\x19\n\x11model_description\x18\x08 \x01(\t\x12\x12\n\nproject_id\x18\t \x01(\t\x12\x30\n\x08\x62ranches\x18\n \x03(\x0b\x32\x1e.qwak.models.management.Branch\x12N\n\x17\x64\x65ployment_model_status\x18\x0b \x01(\x0e\x32-.qwak.models.management.DeploymentModelStatus\x12\x0c\n\x04uuid\x18\x0c \x01(\t\x12\x42\n\nmodel_type\x18\r \x01(\x0e\x32..qwak.deployment.management.KubeDeploymentType\x12\x14\n\x0cproject_name\x18\x0e \x01(\t\x12@\n\x10model_build_type\x18\x0f \x01(\x0b\x32&.qwak.models.management.ModelBuildType\x12\x19\n\x11jfrog_project_key\x18\x10 \x01(\t\"\x96\x01\n\x0eModelBuildType\x12\x30\n\x06source\x18\x01 \x01(\x0b\x32\x1e.qwak.models.management.SourceH\x00\x12J\n\x14model_registry_image\x18\x02 \x01(\x0b\x32*.qwak.models.management.ModelRegistryImageH\x00\x42\x06\n\x04type\"\x08\n\x06Source\"3\n\x12ModelRegistryImage\x12\x1d\n\x15last_image_identifier\x18\x01 \x01(\t\"\xeb\x01\n\x06\x42ranch\x12\x11\n\tbranch_id\x18\x01 \x01(\t\x12\x13\n\x0b\x62ranch_name\x18\x02 \x01(\t\x12\x42\n\rbranch_status\x18\x04 \x01(\x0e\x32+.qwak.models.management.Branch.BranchStatus\x12\x10\n\x08model_id\x18\x05 \x01(\t\x12\x1d\n\x11\x64\x65ployed_build_id\x18\x06 \x01(\tB\x02\x18\x01\"D\n\x0c\x42ranchStatus\x12\x0b\n\x07INVALID\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x03\x12\r\n\tSUSPENDED\x10\x02\x12\x0c\n\x08\x44ISABLED\x10\x01\"B\n\x1bGetDeploymentDetailsRequest\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x11\n\tbranch_id\x18\x02 \x01(\t\"e\n\x1cGetDeploymentDetailsResponse\x12\x45\n\x12\x64\x65ployment_details\x18\x01 \x01(\x0b\x32).qwak.models.management.DeploymentDetails\"\x93\x02\n\x11\x44\x65ploymentDetails\x12\x31\n\rlast_deployed\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08\x62uild_id\x18\x02 \x01(\t\x12\x16\n\x0enumber_of_pods\x18\x03 \x01(\x05\x12\x14\n\x0c\x63pu_fraction\x18\x04 \x01(\x02\x12\x15\n\rmemory_amount\x18\x05 \x01(\x05\x12\x38\n\x0cmemory_units\x18\x06 \x01(\x0e\x32\".qwak.models.management.MemoryUnit\x12\x19\n\x11number_of_workers\x18\x07 \x01(\x05\x12\x1f\n\x17http_request_timeout_ms\x18\x08 \x01(\x05\"/\n\x19ListModelsMetadataRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\"[\n\x1aListModelsMetadataResponse\x12=\n\x0emodel_metadata\x18\x01 \x03(\x0b\x32%.qwak.models.management.ModelMetadata\"+\n\x17GetModelMetadataRequest\x12\x10\n\x08model_id\x18\x01 \x01(\t\"Y\n\x18GetModelMetadataResponse\x12=\n\x0emodel_metadata\x18\x01 \x01(\x0b\x32%.qwak.models.management.ModelMetadata\"h\n\x11\x45nvironmentRoutes\x12\x13\n\x0b\x65nvironment\x18\x01 \x01(\t\x12>\n\x0f\x61udience_routes\x18\x02 \x03(\x0b\x32%.qwak.audience.v1.AudienceRoutesEntry\"\xb8\x05\n\rModelMetadata\x12,\n\x05model\x18\x01 \x01(\x0b\x32\x1d.qwak.models.management.Model\x12I\n\x12\x64\x65ployment_details\x18\x02 \x03(\x0b\x32-.qwak.deployment.management.DeploymentDetails\x12r\n\x1e\x61udience_routes_by_environment\x18\x03 \x03(\x0b\x32\x46.qwak.models.management.ModelMetadata.AudienceRoutesByEnvironmentEntryB\x02\x18\x01\x12\x30\n\x05\x62uild\x18\x04 \x03(\x0b\x32\x1d.qwak.builds.management.BuildB\x02\x18\x01\x12}\n&audience_routes_grouped_by_environment\x18\x05 \x03(\x0b\x32M.qwak.models.management.ModelMetadata.AudienceRoutesGroupedByEnvironmentEntry\x12(\n\x06\x62uilds\x18\x06 \x03(\x0b\x32\x18.com.qwak.build.v1.Build\x1ai\n AudienceRoutesByEnvironmentEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.qwak.audience.v1.AudienceRoutesEntry:\x02\x38\x01\x1at\n\'AudienceRoutesGroupedByEnvironmentEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).qwak.models.management.EnvironmentRoutes:\x02\x38\x01\"i\n CheckModelCreationAllowedRequest\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x18\n\x10model_group_name\x18\x02 \x01(\t\x12\x19\n\x11jfrog_project_key\x18\x03 \x01(\t\"\x9b\x02\n!CheckModelCreationAllowedResponse\x12\x14\n\x0cis_creatable\x18\x01 \x01(\x08\x12;\n\x0cmodel_exists\x18\x02 \x01(\x0b\x32#.qwak.models.management.ModelExistsH\x00\x12\x42\n\x10model_not_exists\x18\x03 \x01(\x0b\x32&.qwak.models.management.ModelNotExistsH\x00\x12U\n\x1amodel_exists_with_mismatch\x18\x04 \x01(\x0b\x32/.qwak.models.management.ModelExistsWithMismatchH\x00\x42\x08\n\x06status\"\r\n\x0bModelExists\"\x10\n\x0eModelNotExists\"*\n\x17ModelExistsWithMismatch\x12\x0f\n\x07\x64\x65tails\x18\x01 \x03(\t*O\n\x15\x44\x65ploymentModelStatus\x12\x1d\n\x19\x44\x45PLOYMENT_STATUS_INVALID\x10\x00\x12\n\n\x06ONLINE\x10\x01\x12\x0b\n\x07OFFLINE\x10\x02*C\n\x0bModelStatus\x12\x0b\n\x07INVALID\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x03\x12\r\n\tSUSPENDED\x10\x02\x12\x0c\n\x08\x44ISABLED\x10\x01*7\n\nMemoryUnit\x12\x17\n\x13MEMORY_UNIT_UNKNOWN\x10\x00\x12\x07\n\x03MIB\x10\x01\x12\x07\n\x03GIB\x10\x02\x32\xf3\x0b\n\x17ModelsManagementService\x12\x66\n\x0b\x43reateModel\x12*.qwak.models.management.CreateModelRequest\x1a+.qwak.models.management.CreateModelResponse\x12\x63\n\nListModels\x12).qwak.models.management.ListModelsRequest\x1a*.qwak.models.management.ListModelsResponse\x12~\n\x13ListModelsPaginated\x12\x32.qwak.models.management.ListModelsPaginatedRequest\x1a\x33.qwak.models.management.ListModelsPaginatedResponse\x12]\n\x08GetModel\x12\'.qwak.models.management.GetModelRequest\x1a(.qwak.models.management.GetModelResponse\x12\x66\n\x0b\x44\x65leteModel\x12*.qwak.models.management.DeleteModelRequest\x1a+.qwak.models.management.DeleteModelResponse\x12\x66\n\x0bUpdateModel\x12*.qwak.models.management.UpdateModelRequest\x1a+.qwak.models.management.UpdateModelResponse\x12n\n\x0c\x43reateBranch\x12+.qwak.models.management.CreateBranchRequest\x1a,.qwak.models.management.CreateBranchResponse\"\x03\x88\x02\x01\x12n\n\x0c\x44\x65leteBranch\x12+.qwak.models.management.DeleteBranchRequest\x1a,.qwak.models.management.DeleteBranchResponse\"\x03\x88\x02\x01\x12\x86\x01\n\x14GetDeploymentDetails\x12\x33.qwak.models.management.GetDeploymentDetailsRequest\x1a\x34.qwak.models.management.GetDeploymentDetailsResponse\"\x03\x88\x02\x01\x12l\n\rIsModelExists\x12,.qwak.models.management.IsModelExistsRequest\x1a-.qwak.models.management.IsModelExistsResponse\x12{\n\x12ListModelsMetadata\x12\x31.qwak.models.management.ListModelsMetadataRequest\x1a\x32.qwak.models.management.ListModelsMetadataResponse\x12u\n\x10GetModelMetadata\x12/.qwak.models.management.GetModelMetadataRequest\x1a\x30.qwak.models.management.GetModelMetadataResponse\x12\x90\x01\n\x19\x43heckModelCreationAllowed\x12\x38.qwak.models.management.CheckModelCreationAllowedRequest\x1a\x39.qwak.models.management.CheckModelCreationAllowedResponseB%\n!com.qwak.ai.management.models.apiP\x01\x62\x06proto3')
|
|
23
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18qwak/models/models.proto\x12\x16qwak.models.management\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x18qwak/builds/builds.proto\x1a&qwak/projects/jfrog_project_spec.proto\x1a\x1eqwak/models/models_query.proto\x1a\x1fqwak/audience/v1/audience.proto\x1a qwak/deployment/deployment.proto\x1a\x19qwak/build/v1/build.proto\"\x9b\x01\n\x12\x43reateModelRequest\x12\x35\n\nmodel_spec\x18\x01 \x01(\x0b\x32!.qwak.models.management.ModelSpec\x12N\n\x12jfrog_project_spec\x18\x02 \x01(\x0b\x32\x32.qwak.projects.management.ModelRepositoryJFrogSpec\"\'\n\x13\x43reateModelResponse\x12\x10\n\x08model_id\x18\x01 \x01(\t\"\'\n\x11ListModelsRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\"C\n\x12ListModelsResponse\x12-\n\x06models\x18\x01 \x03(\x0b\x32\x1d.qwak.models.management.Model\"\xf0\x01\n\x1aListModelsPaginatedRequest\x12\x13\n\tpage_size\x18\x01 \x01(\x05H\x00\x12\x10\n\x06\x63ursor\x18\x02 \x01(\tH\x01\x12\x39\n\x0bsort_models\x18\x03 \x01(\x0b\x32\".qwak.models.management.SortModelsH\x02\x12\x30\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x1e.qwak.models.management.FilterH\x03\x42\x0f\n\rpage_size_optB\x0c\n\ncursor_optB\x11\n\x0fsort_models_optB\x0c\n\nfilter_opt\"\x8a\x01\n\x1bListModelsPaginatedResponse\x12-\n\x06models\x18\x01 \x03(\x0b\x32\x1d.qwak.models.management.Model\x12<\n\x08metadata\x18\x02 \x01(\x0b\x32*.qwak.models.management.PaginationMetadata\"I\n\x0fGetModelRequest\x12\x12\n\x08model_id\x18\x01 \x01(\tH\x00\x12\x14\n\nmodel_uuid\x18\x02 \x01(\tH\x00\x42\x0c\n\nidentifier\"@\n\x10GetModelResponse\x12,\n\x05model\x18\x01 \x01(\x0b\x32\x1d.qwak.models.management.Model\"E\n\x1bListModelsByModelIdsRequest\x12\x11\n\tmodel_ids\x18\x01 \x03(\t\x12\x13\n\x0bmodel_uuids\x18\x02 \x03(\t\":\n\x12\x44\x65leteModelRequest\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\t\"\x15\n\x13\x44\x65leteModelResponse\"q\n\x12UpdateModelRequest\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12I\n\x11model_spec_config\x18\x02 \x01(\x0b\x32..qwak.models.management.ModelSpecConfiguration\"L\n\x13UpdateModelResponse\x12\x35\n\nmodel_spec\x18\x01 \x01(\x0b\x32!.qwak.models.management.ModelSpec\"<\n\x13\x43reateBranchRequest\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x13\n\x0b\x62ranch_name\x18\x02 \x01(\t\")\n\x14\x43reateBranchResponse\x12\x11\n\tbranch_id\x18\x01 \x01(\t\"(\n\x13\x44\x65leteBranchRequest\x12\x11\n\tbranch_id\x18\x01 \x01(\t\"\x16\n\x14\x44\x65leteBranchResponse\"N\n\x14IsModelExistsRequest\x12\x12\n\x08model_id\x18\x01 \x01(\tH\x00\x12\x14\n\nmodel_uuid\x18\x02 \x01(\tH\x00\x42\x0c\n\nidentifier\"\'\n\x15IsModelExistsResponse\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"\xda\x01\n\tModelSpec\x12\x16\n\x0emodel_named_id\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x14\n\nproject_id\x18\x03 \x01(\tH\x00\x12\x16\n\x0cproject_name\x18\x06 \x01(\tH\x00\x12\x19\n\x11model_description\x18\x04 \x01(\t\x12@\n\x10model_build_type\x18\x05 \x01(\x0b\x32&.qwak.models.management.ModelBuildTypeB\x14\n\x12project_identifier\"\xc7\x02\n\nModelBrief\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12.\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x10last_modified_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x10last_modified_by\x18\x05 \x01(\t\x12\x12\n\ncreated_by\x18\x06 \x01(\t\x12\x19\n\x11model_description\x18\x08 \x01(\t\x12\x12\n\nproject_id\x18\t \x01(\t\x12N\n\x17\x64\x65ployment_model_status\x18\n \x01(\x0e\x32-.qwak.models.management.DeploymentModelStatus\"3\n\x16ModelSpecConfiguration\x12\x19\n\x11model_description\x18\x04 \x01(\t\"\xf4\x04\n\x05Model\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12.\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x10last_modified_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x10last_modified_by\x18\x05 \x01(\t\x12\x12\n\ncreated_by\x18\x06 \x01(\t\x12\x39\n\x0cmodel_status\x18\x07 \x01(\x0e\x32#.qwak.models.management.ModelStatus\x12\x19\n\x11model_description\x18\x08 \x01(\t\x12\x12\n\nproject_id\x18\t \x01(\t\x12\x30\n\x08\x62ranches\x18\n \x03(\x0b\x32\x1e.qwak.models.management.Branch\x12N\n\x17\x64\x65ployment_model_status\x18\x0b \x01(\x0e\x32-.qwak.models.management.DeploymentModelStatus\x12\x0c\n\x04uuid\x18\x0c \x01(\t\x12\x42\n\nmodel_type\x18\r \x01(\x0e\x32..qwak.deployment.management.KubeDeploymentType\x12\x14\n\x0cproject_name\x18\x0e \x01(\t\x12@\n\x10model_build_type\x18\x0f \x01(\x0b\x32&.qwak.models.management.ModelBuildType\x12\x19\n\x11jfrog_project_key\x18\x10 \x01(\t\"\x96\x01\n\x0eModelBuildType\x12\x30\n\x06source\x18\x01 \x01(\x0b\x32\x1e.qwak.models.management.SourceH\x00\x12J\n\x14model_registry_image\x18\x02 \x01(\x0b\x32*.qwak.models.management.ModelRegistryImageH\x00\x42\x06\n\x04type\"\x08\n\x06Source\"3\n\x12ModelRegistryImage\x12\x1d\n\x15last_image_identifier\x18\x01 \x01(\t\"\xeb\x01\n\x06\x42ranch\x12\x11\n\tbranch_id\x18\x01 \x01(\t\x12\x13\n\x0b\x62ranch_name\x18\x02 \x01(\t\x12\x42\n\rbranch_status\x18\x04 \x01(\x0e\x32+.qwak.models.management.Branch.BranchStatus\x12\x10\n\x08model_id\x18\x05 \x01(\t\x12\x1d\n\x11\x64\x65ployed_build_id\x18\x06 \x01(\tB\x02\x18\x01\"D\n\x0c\x42ranchStatus\x12\x0b\n\x07INVALID\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x03\x12\r\n\tSUSPENDED\x10\x02\x12\x0c\n\x08\x44ISABLED\x10\x01\"B\n\x1bGetDeploymentDetailsRequest\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x11\n\tbranch_id\x18\x02 \x01(\t\"e\n\x1cGetDeploymentDetailsResponse\x12\x45\n\x12\x64\x65ployment_details\x18\x01 \x01(\x0b\x32).qwak.models.management.DeploymentDetails\"\x93\x02\n\x11\x44\x65ploymentDetails\x12\x31\n\rlast_deployed\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08\x62uild_id\x18\x02 \x01(\t\x12\x16\n\x0enumber_of_pods\x18\x03 \x01(\x05\x12\x14\n\x0c\x63pu_fraction\x18\x04 \x01(\x02\x12\x15\n\rmemory_amount\x18\x05 \x01(\x05\x12\x38\n\x0cmemory_units\x18\x06 \x01(\x0e\x32\".qwak.models.management.MemoryUnit\x12\x19\n\x11number_of_workers\x18\x07 \x01(\x05\x12\x1f\n\x17http_request_timeout_ms\x18\x08 \x01(\x05\"/\n\x19ListModelsMetadataRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\"[\n\x1aListModelsMetadataResponse\x12=\n\x0emodel_metadata\x18\x01 \x03(\x0b\x32%.qwak.models.management.ModelMetadata\"+\n\x17GetModelMetadataRequest\x12\x10\n\x08model_id\x18\x01 \x01(\t\"Y\n\x18GetModelMetadataResponse\x12=\n\x0emodel_metadata\x18\x01 \x01(\x0b\x32%.qwak.models.management.ModelMetadata\"h\n\x11\x45nvironmentRoutes\x12\x13\n\x0b\x65nvironment\x18\x01 \x01(\t\x12>\n\x0f\x61udience_routes\x18\x02 \x03(\x0b\x32%.qwak.audience.v1.AudienceRoutesEntry\"\xb8\x05\n\rModelMetadata\x12,\n\x05model\x18\x01 \x01(\x0b\x32\x1d.qwak.models.management.Model\x12I\n\x12\x64\x65ployment_details\x18\x02 \x03(\x0b\x32-.qwak.deployment.management.DeploymentDetails\x12r\n\x1e\x61udience_routes_by_environment\x18\x03 \x03(\x0b\x32\x46.qwak.models.management.ModelMetadata.AudienceRoutesByEnvironmentEntryB\x02\x18\x01\x12\x30\n\x05\x62uild\x18\x04 \x03(\x0b\x32\x1d.qwak.builds.management.BuildB\x02\x18\x01\x12}\n&audience_routes_grouped_by_environment\x18\x05 \x03(\x0b\x32M.qwak.models.management.ModelMetadata.AudienceRoutesGroupedByEnvironmentEntry\x12(\n\x06\x62uilds\x18\x06 \x03(\x0b\x32\x18.com.qwak.build.v1.Build\x1ai\n AudienceRoutesByEnvironmentEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.qwak.audience.v1.AudienceRoutesEntry:\x02\x38\x01\x1at\n\'AudienceRoutesGroupedByEnvironmentEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).qwak.models.management.EnvironmentRoutes:\x02\x38\x01\"i\n CheckModelCreationAllowedRequest\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x18\n\x10model_group_name\x18\x02 \x01(\t\x12\x19\n\x11jfrog_project_key\x18\x03 \x01(\t\"\x9b\x02\n!CheckModelCreationAllowedResponse\x12\x14\n\x0cis_creatable\x18\x01 \x01(\x08\x12;\n\x0cmodel_exists\x18\x02 \x01(\x0b\x32#.qwak.models.management.ModelExistsH\x00\x12\x42\n\x10model_not_exists\x18\x03 \x01(\x0b\x32&.qwak.models.management.ModelNotExistsH\x00\x12U\n\x1amodel_exists_with_mismatch\x18\x04 \x01(\x0b\x32/.qwak.models.management.ModelExistsWithMismatchH\x00\x42\x08\n\x06status\"\r\n\x0bModelExists\"\x10\n\x0eModelNotExists\"*\n\x17ModelExistsWithMismatch\x12\x0f\n\x07\x64\x65tails\x18\x01 \x03(\t*O\n\x15\x44\x65ploymentModelStatus\x12\x1d\n\x19\x44\x45PLOYMENT_STATUS_INVALID\x10\x00\x12\n\n\x06ONLINE\x10\x01\x12\x0b\n\x07OFFLINE\x10\x02*C\n\x0bModelStatus\x12\x0b\n\x07INVALID\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x03\x12\r\n\tSUSPENDED\x10\x02\x12\x0c\n\x08\x44ISABLED\x10\x01*7\n\nMemoryUnit\x12\x17\n\x13MEMORY_UNIT_UNKNOWN\x10\x00\x12\x07\n\x03MIB\x10\x01\x12\x07\n\x03GIB\x10\x02\x32\xec\x0c\n\x17ModelsManagementService\x12\x66\n\x0b\x43reateModel\x12*.qwak.models.management.CreateModelRequest\x1a+.qwak.models.management.CreateModelResponse\x12\x63\n\nListModels\x12).qwak.models.management.ListModelsRequest\x1a*.qwak.models.management.ListModelsResponse\x12~\n\x13ListModelsPaginated\x12\x32.qwak.models.management.ListModelsPaginatedRequest\x1a\x33.qwak.models.management.ListModelsPaginatedResponse\x12]\n\x08GetModel\x12\'.qwak.models.management.GetModelRequest\x1a(.qwak.models.management.GetModelResponse\x12w\n\x14ListModelsByModelIds\x12\x33.qwak.models.management.ListModelsByModelIdsRequest\x1a*.qwak.models.management.ListModelsResponse\x12\x66\n\x0b\x44\x65leteModel\x12*.qwak.models.management.DeleteModelRequest\x1a+.qwak.models.management.DeleteModelResponse\x12\x66\n\x0bUpdateModel\x12*.qwak.models.management.UpdateModelRequest\x1a+.qwak.models.management.UpdateModelResponse\x12n\n\x0c\x43reateBranch\x12+.qwak.models.management.CreateBranchRequest\x1a,.qwak.models.management.CreateBranchResponse\"\x03\x88\x02\x01\x12n\n\x0c\x44\x65leteBranch\x12+.qwak.models.management.DeleteBranchRequest\x1a,.qwak.models.management.DeleteBranchResponse\"\x03\x88\x02\x01\x12\x86\x01\n\x14GetDeploymentDetails\x12\x33.qwak.models.management.GetDeploymentDetailsRequest\x1a\x34.qwak.models.management.GetDeploymentDetailsResponse\"\x03\x88\x02\x01\x12l\n\rIsModelExists\x12,.qwak.models.management.IsModelExistsRequest\x1a-.qwak.models.management.IsModelExistsResponse\x12{\n\x12ListModelsMetadata\x12\x31.qwak.models.management.ListModelsMetadataRequest\x1a\x32.qwak.models.management.ListModelsMetadataResponse\x12u\n\x10GetModelMetadata\x12/.qwak.models.management.GetModelMetadataRequest\x1a\x30.qwak.models.management.GetModelMetadataResponse\x12\x90\x01\n\x19\x43heckModelCreationAllowed\x12\x38.qwak.models.management.CheckModelCreationAllowedRequest\x1a\x39.qwak.models.management.CheckModelCreationAllowedResponseB%\n!com.qwak.ai.management.models.apiP\x01\x62\x06proto3')
|
|
24
24
|
|
|
25
25
|
_globals = globals()
|
|
26
26
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -45,12 +45,12 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
45
45
|
_MODELSMANAGEMENTSERVICE.methods_by_name['DeleteBranch']._serialized_options = b'\210\002\001'
|
|
46
46
|
_MODELSMANAGEMENTSERVICE.methods_by_name['GetDeploymentDetails']._options = None
|
|
47
47
|
_MODELSMANAGEMENTSERVICE.methods_by_name['GetDeploymentDetails']._serialized_options = b'\210\002\001'
|
|
48
|
-
_globals['_DEPLOYMENTMODELSTATUS']._serialized_start=
|
|
49
|
-
_globals['_DEPLOYMENTMODELSTATUS']._serialized_end=
|
|
50
|
-
_globals['_MODELSTATUS']._serialized_start=
|
|
51
|
-
_globals['_MODELSTATUS']._serialized_end=
|
|
52
|
-
_globals['_MEMORYUNIT']._serialized_start=
|
|
53
|
-
_globals['_MEMORYUNIT']._serialized_end=
|
|
48
|
+
_globals['_DEPLOYMENTMODELSTATUS']._serialized_start=5441
|
|
49
|
+
_globals['_DEPLOYMENTMODELSTATUS']._serialized_end=5520
|
|
50
|
+
_globals['_MODELSTATUS']._serialized_start=5522
|
|
51
|
+
_globals['_MODELSTATUS']._serialized_end=5589
|
|
52
|
+
_globals['_MEMORYUNIT']._serialized_start=5591
|
|
53
|
+
_globals['_MEMORYUNIT']._serialized_end=5646
|
|
54
54
|
_globals['_CREATEMODELREQUEST']._serialized_start=278
|
|
55
55
|
_globals['_CREATEMODELREQUEST']._serialized_end=433
|
|
56
56
|
_globals['_CREATEMODELRESPONSE']._serialized_start=435
|
|
@@ -67,76 +67,78 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
67
67
|
_globals['_GETMODELREQUEST']._serialized_end=1043
|
|
68
68
|
_globals['_GETMODELRESPONSE']._serialized_start=1045
|
|
69
69
|
_globals['_GETMODELRESPONSE']._serialized_end=1109
|
|
70
|
-
_globals['
|
|
71
|
-
_globals['
|
|
72
|
-
_globals['
|
|
73
|
-
_globals['
|
|
74
|
-
_globals['
|
|
75
|
-
_globals['
|
|
76
|
-
_globals['
|
|
77
|
-
_globals['
|
|
78
|
-
_globals['
|
|
79
|
-
_globals['
|
|
80
|
-
_globals['
|
|
81
|
-
_globals['
|
|
82
|
-
_globals['
|
|
83
|
-
_globals['
|
|
84
|
-
_globals['
|
|
85
|
-
_globals['
|
|
86
|
-
_globals['
|
|
87
|
-
_globals['
|
|
88
|
-
_globals['
|
|
89
|
-
_globals['
|
|
90
|
-
_globals['
|
|
91
|
-
_globals['
|
|
92
|
-
_globals['
|
|
93
|
-
_globals['
|
|
94
|
-
_globals['
|
|
95
|
-
_globals['
|
|
96
|
-
_globals['
|
|
97
|
-
_globals['
|
|
98
|
-
_globals['
|
|
99
|
-
_globals['
|
|
100
|
-
_globals['
|
|
101
|
-
_globals['
|
|
102
|
-
_globals['
|
|
103
|
-
_globals['
|
|
104
|
-
_globals['
|
|
105
|
-
_globals['
|
|
106
|
-
_globals['
|
|
107
|
-
_globals['
|
|
108
|
-
_globals['
|
|
109
|
-
_globals['
|
|
110
|
-
_globals['
|
|
111
|
-
_globals['
|
|
112
|
-
_globals['
|
|
113
|
-
_globals['
|
|
114
|
-
_globals['
|
|
115
|
-
_globals['
|
|
116
|
-
_globals['
|
|
117
|
-
_globals['
|
|
118
|
-
_globals['
|
|
119
|
-
_globals['
|
|
120
|
-
_globals['
|
|
121
|
-
_globals['
|
|
122
|
-
_globals['
|
|
123
|
-
_globals['
|
|
124
|
-
_globals['
|
|
125
|
-
_globals['
|
|
126
|
-
_globals['
|
|
127
|
-
_globals['
|
|
128
|
-
_globals['
|
|
129
|
-
_globals['
|
|
130
|
-
_globals['
|
|
131
|
-
_globals['
|
|
132
|
-
_globals['
|
|
133
|
-
_globals['
|
|
134
|
-
_globals['
|
|
135
|
-
_globals['
|
|
136
|
-
_globals['
|
|
137
|
-
_globals['
|
|
138
|
-
_globals['
|
|
139
|
-
_globals['
|
|
140
|
-
_globals['
|
|
141
|
-
_globals['
|
|
70
|
+
_globals['_LISTMODELSBYMODELIDSREQUEST']._serialized_start=1111
|
|
71
|
+
_globals['_LISTMODELSBYMODELIDSREQUEST']._serialized_end=1180
|
|
72
|
+
_globals['_DELETEMODELREQUEST']._serialized_start=1182
|
|
73
|
+
_globals['_DELETEMODELREQUEST']._serialized_end=1240
|
|
74
|
+
_globals['_DELETEMODELRESPONSE']._serialized_start=1242
|
|
75
|
+
_globals['_DELETEMODELRESPONSE']._serialized_end=1263
|
|
76
|
+
_globals['_UPDATEMODELREQUEST']._serialized_start=1265
|
|
77
|
+
_globals['_UPDATEMODELREQUEST']._serialized_end=1378
|
|
78
|
+
_globals['_UPDATEMODELRESPONSE']._serialized_start=1380
|
|
79
|
+
_globals['_UPDATEMODELRESPONSE']._serialized_end=1456
|
|
80
|
+
_globals['_CREATEBRANCHREQUEST']._serialized_start=1458
|
|
81
|
+
_globals['_CREATEBRANCHREQUEST']._serialized_end=1518
|
|
82
|
+
_globals['_CREATEBRANCHRESPONSE']._serialized_start=1520
|
|
83
|
+
_globals['_CREATEBRANCHRESPONSE']._serialized_end=1561
|
|
84
|
+
_globals['_DELETEBRANCHREQUEST']._serialized_start=1563
|
|
85
|
+
_globals['_DELETEBRANCHREQUEST']._serialized_end=1603
|
|
86
|
+
_globals['_DELETEBRANCHRESPONSE']._serialized_start=1605
|
|
87
|
+
_globals['_DELETEBRANCHRESPONSE']._serialized_end=1627
|
|
88
|
+
_globals['_ISMODELEXISTSREQUEST']._serialized_start=1629
|
|
89
|
+
_globals['_ISMODELEXISTSREQUEST']._serialized_end=1707
|
|
90
|
+
_globals['_ISMODELEXISTSRESPONSE']._serialized_start=1709
|
|
91
|
+
_globals['_ISMODELEXISTSRESPONSE']._serialized_end=1748
|
|
92
|
+
_globals['_MODELSPEC']._serialized_start=1751
|
|
93
|
+
_globals['_MODELSPEC']._serialized_end=1969
|
|
94
|
+
_globals['_MODELBRIEF']._serialized_start=1972
|
|
95
|
+
_globals['_MODELBRIEF']._serialized_end=2299
|
|
96
|
+
_globals['_MODELSPECCONFIGURATION']._serialized_start=2301
|
|
97
|
+
_globals['_MODELSPECCONFIGURATION']._serialized_end=2352
|
|
98
|
+
_globals['_MODEL']._serialized_start=2355
|
|
99
|
+
_globals['_MODEL']._serialized_end=2983
|
|
100
|
+
_globals['_MODELBUILDTYPE']._serialized_start=2986
|
|
101
|
+
_globals['_MODELBUILDTYPE']._serialized_end=3136
|
|
102
|
+
_globals['_SOURCE']._serialized_start=3138
|
|
103
|
+
_globals['_SOURCE']._serialized_end=3146
|
|
104
|
+
_globals['_MODELREGISTRYIMAGE']._serialized_start=3148
|
|
105
|
+
_globals['_MODELREGISTRYIMAGE']._serialized_end=3199
|
|
106
|
+
_globals['_BRANCH']._serialized_start=3202
|
|
107
|
+
_globals['_BRANCH']._serialized_end=3437
|
|
108
|
+
_globals['_BRANCH_BRANCHSTATUS']._serialized_start=3369
|
|
109
|
+
_globals['_BRANCH_BRANCHSTATUS']._serialized_end=3437
|
|
110
|
+
_globals['_GETDEPLOYMENTDETAILSREQUEST']._serialized_start=3439
|
|
111
|
+
_globals['_GETDEPLOYMENTDETAILSREQUEST']._serialized_end=3505
|
|
112
|
+
_globals['_GETDEPLOYMENTDETAILSRESPONSE']._serialized_start=3507
|
|
113
|
+
_globals['_GETDEPLOYMENTDETAILSRESPONSE']._serialized_end=3608
|
|
114
|
+
_globals['_DEPLOYMENTDETAILS']._serialized_start=3611
|
|
115
|
+
_globals['_DEPLOYMENTDETAILS']._serialized_end=3886
|
|
116
|
+
_globals['_LISTMODELSMETADATAREQUEST']._serialized_start=3888
|
|
117
|
+
_globals['_LISTMODELSMETADATAREQUEST']._serialized_end=3935
|
|
118
|
+
_globals['_LISTMODELSMETADATARESPONSE']._serialized_start=3937
|
|
119
|
+
_globals['_LISTMODELSMETADATARESPONSE']._serialized_end=4028
|
|
120
|
+
_globals['_GETMODELMETADATAREQUEST']._serialized_start=4030
|
|
121
|
+
_globals['_GETMODELMETADATAREQUEST']._serialized_end=4073
|
|
122
|
+
_globals['_GETMODELMETADATARESPONSE']._serialized_start=4075
|
|
123
|
+
_globals['_GETMODELMETADATARESPONSE']._serialized_end=4164
|
|
124
|
+
_globals['_ENVIRONMENTROUTES']._serialized_start=4166
|
|
125
|
+
_globals['_ENVIRONMENTROUTES']._serialized_end=4270
|
|
126
|
+
_globals['_MODELMETADATA']._serialized_start=4273
|
|
127
|
+
_globals['_MODELMETADATA']._serialized_end=4969
|
|
128
|
+
_globals['_MODELMETADATA_AUDIENCEROUTESBYENVIRONMENTENTRY']._serialized_start=4746
|
|
129
|
+
_globals['_MODELMETADATA_AUDIENCEROUTESBYENVIRONMENTENTRY']._serialized_end=4851
|
|
130
|
+
_globals['_MODELMETADATA_AUDIENCEROUTESGROUPEDBYENVIRONMENTENTRY']._serialized_start=4853
|
|
131
|
+
_globals['_MODELMETADATA_AUDIENCEROUTESGROUPEDBYENVIRONMENTENTRY']._serialized_end=4969
|
|
132
|
+
_globals['_CHECKMODELCREATIONALLOWEDREQUEST']._serialized_start=4971
|
|
133
|
+
_globals['_CHECKMODELCREATIONALLOWEDREQUEST']._serialized_end=5076
|
|
134
|
+
_globals['_CHECKMODELCREATIONALLOWEDRESPONSE']._serialized_start=5079
|
|
135
|
+
_globals['_CHECKMODELCREATIONALLOWEDRESPONSE']._serialized_end=5362
|
|
136
|
+
_globals['_MODELEXISTS']._serialized_start=5364
|
|
137
|
+
_globals['_MODELEXISTS']._serialized_end=5377
|
|
138
|
+
_globals['_MODELNOTEXISTS']._serialized_start=5379
|
|
139
|
+
_globals['_MODELNOTEXISTS']._serialized_end=5395
|
|
140
|
+
_globals['_MODELEXISTSWITHMISMATCH']._serialized_start=5397
|
|
141
|
+
_globals['_MODELEXISTSWITHMISMATCH']._serialized_end=5439
|
|
142
|
+
_globals['_MODELSMANAGEMENTSERVICE']._serialized_start=5649
|
|
143
|
+
_globals['_MODELSMANAGEMENTSERVICE']._serialized_end=7293
|
|
142
144
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -245,6 +245,27 @@ class GetModelResponse(google.protobuf.message.Message):
|
|
|
245
245
|
|
|
246
246
|
global___GetModelResponse = GetModelResponse
|
|
247
247
|
|
|
248
|
+
class ListModelsByModelIdsRequest(google.protobuf.message.Message):
|
|
249
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
250
|
+
|
|
251
|
+
MODEL_IDS_FIELD_NUMBER: builtins.int
|
|
252
|
+
MODEL_UUIDS_FIELD_NUMBER: builtins.int
|
|
253
|
+
@property
|
|
254
|
+
def model_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
|
|
255
|
+
"""The model ids"""
|
|
256
|
+
@property
|
|
257
|
+
def model_uuids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
|
|
258
|
+
"""The model uuids"""
|
|
259
|
+
def __init__(
|
|
260
|
+
self,
|
|
261
|
+
*,
|
|
262
|
+
model_ids: collections.abc.Iterable[builtins.str] | None = ...,
|
|
263
|
+
model_uuids: collections.abc.Iterable[builtins.str] | None = ...,
|
|
264
|
+
) -> None: ...
|
|
265
|
+
def ClearField(self, field_name: typing_extensions.Literal["model_ids", b"model_ids", "model_uuids", b"model_uuids"]) -> None: ...
|
|
266
|
+
|
|
267
|
+
global___ListModelsByModelIdsRequest = ListModelsByModelIdsRequest
|
|
268
|
+
|
|
248
269
|
class DeleteModelRequest(google.protobuf.message.Message):
|
|
249
270
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
250
271
|
|
|
@@ -34,6 +34,11 @@ class ModelsManagementServiceStub(object):
|
|
|
34
34
|
request_serializer=qwak_dot_models_dot_models__pb2.GetModelRequest.SerializeToString,
|
|
35
35
|
response_deserializer=qwak_dot_models_dot_models__pb2.GetModelResponse.FromString,
|
|
36
36
|
)
|
|
37
|
+
self.ListModelsByModelIds = channel.unary_unary(
|
|
38
|
+
'/qwak.models.management.ModelsManagementService/ListModelsByModelIds',
|
|
39
|
+
request_serializer=qwak_dot_models_dot_models__pb2.ListModelsByModelIdsRequest.SerializeToString,
|
|
40
|
+
response_deserializer=qwak_dot_models_dot_models__pb2.ListModelsResponse.FromString,
|
|
41
|
+
)
|
|
37
42
|
self.DeleteModel = channel.unary_unary(
|
|
38
43
|
'/qwak.models.management.ModelsManagementService/DeleteModel',
|
|
39
44
|
request_serializer=qwak_dot_models_dot_models__pb2.DeleteModelRequest.SerializeToString,
|
|
@@ -112,6 +117,13 @@ class ModelsManagementServiceServicer(object):
|
|
|
112
117
|
context.set_details('Method not implemented!')
|
|
113
118
|
raise NotImplementedError('Method not implemented!')
|
|
114
119
|
|
|
120
|
+
def ListModelsByModelIds(self, request, context):
|
|
121
|
+
"""Get models by model IDs and model UUIDs
|
|
122
|
+
"""
|
|
123
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
124
|
+
context.set_details('Method not implemented!')
|
|
125
|
+
raise NotImplementedError('Method not implemented!')
|
|
126
|
+
|
|
115
127
|
def DeleteModel(self, request, context):
|
|
116
128
|
"""Delete model
|
|
117
129
|
"""
|
|
@@ -193,6 +205,11 @@ def add_ModelsManagementServiceServicer_to_server(servicer, server):
|
|
|
193
205
|
request_deserializer=qwak_dot_models_dot_models__pb2.GetModelRequest.FromString,
|
|
194
206
|
response_serializer=qwak_dot_models_dot_models__pb2.GetModelResponse.SerializeToString,
|
|
195
207
|
),
|
|
208
|
+
'ListModelsByModelIds': grpc.unary_unary_rpc_method_handler(
|
|
209
|
+
servicer.ListModelsByModelIds,
|
|
210
|
+
request_deserializer=qwak_dot_models_dot_models__pb2.ListModelsByModelIdsRequest.FromString,
|
|
211
|
+
response_serializer=qwak_dot_models_dot_models__pb2.ListModelsResponse.SerializeToString,
|
|
212
|
+
),
|
|
196
213
|
'DeleteModel': grpc.unary_unary_rpc_method_handler(
|
|
197
214
|
servicer.DeleteModel,
|
|
198
215
|
request_deserializer=qwak_dot_models_dot_models__pb2.DeleteModelRequest.FromString,
|
|
@@ -316,6 +333,23 @@ class ModelsManagementService(object):
|
|
|
316
333
|
options, channel_credentials,
|
|
317
334
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
318
335
|
|
|
336
|
+
@staticmethod
|
|
337
|
+
def ListModelsByModelIds(request,
|
|
338
|
+
target,
|
|
339
|
+
options=(),
|
|
340
|
+
channel_credentials=None,
|
|
341
|
+
call_credentials=None,
|
|
342
|
+
insecure=False,
|
|
343
|
+
compression=None,
|
|
344
|
+
wait_for_ready=None,
|
|
345
|
+
timeout=None,
|
|
346
|
+
metadata=None):
|
|
347
|
+
return grpc.experimental.unary_unary(request, target, '/qwak.models.management.ModelsManagementService/ListModelsByModelIds',
|
|
348
|
+
qwak_dot_models_dot_models__pb2.ListModelsByModelIdsRequest.SerializeToString,
|
|
349
|
+
qwak_dot_models_dot_models__pb2.ListModelsResponse.FromString,
|
|
350
|
+
options, channel_credentials,
|
|
351
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
352
|
+
|
|
319
353
|
@staticmethod
|
|
320
354
|
def DeleteModel(request,
|
|
321
355
|
target,
|
qwak/__init__.py
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .client import ClusterV2Client
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"""Cluster V2 API client.
|
|
2
|
+
|
|
3
|
+
Provides wrapper methods for the Cluster V2 gRPC service with proper error handling.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from _qwak_proto.qwak.administration.cluster.v2.cluster_pb2 import (
|
|
7
|
+
ClusterSpec,
|
|
8
|
+
)
|
|
9
|
+
from _qwak_proto.qwak.administration.cluster.v2.cluster_service_pb2 import (
|
|
10
|
+
CreateClusterCreationRequestRequest,
|
|
11
|
+
CreateClusterCreationRequestResponse,
|
|
12
|
+
DeleteClusterRequest,
|
|
13
|
+
DeleteClusterResponse,
|
|
14
|
+
GetClusterRequest,
|
|
15
|
+
GetClusterResponse,
|
|
16
|
+
GetClusterStateRequest,
|
|
17
|
+
GetClusterStateResponse,
|
|
18
|
+
ListClustersRequest,
|
|
19
|
+
ListClustersResponse,
|
|
20
|
+
UpdateClusterConfigurationRequest,
|
|
21
|
+
UpdateClusterConfigurationResponse,
|
|
22
|
+
)
|
|
23
|
+
from _qwak_proto.qwak.administration.cluster.v2.cluster_service_pb2_grpc import (
|
|
24
|
+
ClusterServiceStub,
|
|
25
|
+
)
|
|
26
|
+
from dependency_injector.wiring import Provide
|
|
27
|
+
from qwak.inner.di_configuration import QwakContainer
|
|
28
|
+
from qwak.inner.tool.grpc.grpc_try_wrapping import grpc_try_catch_wrapper
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class ClusterV2Client:
|
|
32
|
+
"""Client for interacting with the Cluster V2 API.
|
|
33
|
+
|
|
34
|
+
This client wraps the gRPC stub and provides methods with proper error handling
|
|
35
|
+
using the grpc_try_catch_wrapper decorator.
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
def __init__(self, grpc_channel=Provide[QwakContainer.core_grpc_channel]):
|
|
39
|
+
self.__cluster_service = ClusterServiceStub(grpc_channel)
|
|
40
|
+
|
|
41
|
+
@grpc_try_catch_wrapper("Failed to create cluster")
|
|
42
|
+
def create_cluster(
|
|
43
|
+
self, cluster_spec: ClusterSpec
|
|
44
|
+
) -> CreateClusterCreationRequestResponse:
|
|
45
|
+
"""Create a new cluster.
|
|
46
|
+
|
|
47
|
+
Args:
|
|
48
|
+
cluster_spec: The cluster specification.
|
|
49
|
+
|
|
50
|
+
Returns:
|
|
51
|
+
CreateClusterCreationRequestResponse with the request_id.
|
|
52
|
+
"""
|
|
53
|
+
request = CreateClusterCreationRequestRequest(cluster_spec=cluster_spec)
|
|
54
|
+
return self.__cluster_service.CreateClusterCreationRequest(request)
|
|
55
|
+
|
|
56
|
+
@grpc_try_catch_wrapper("Failed to get cluster state for request {request_id}")
|
|
57
|
+
def get_cluster_state(self, request_id: str) -> GetClusterStateResponse:
|
|
58
|
+
"""Get cluster state by request ID.
|
|
59
|
+
|
|
60
|
+
Args:
|
|
61
|
+
request_id: The request ID from create_cluster.
|
|
62
|
+
|
|
63
|
+
Returns:
|
|
64
|
+
GetClusterStateResponse with the cluster state.
|
|
65
|
+
"""
|
|
66
|
+
request = GetClusterStateRequest(request_id=request_id)
|
|
67
|
+
return self.__cluster_service.GetClusterState(request)
|
|
68
|
+
|
|
69
|
+
@grpc_try_catch_wrapper("Failed to get cluster {cluster_id}")
|
|
70
|
+
def get_cluster(self, cluster_id: str) -> GetClusterResponse:
|
|
71
|
+
"""Get cluster by ID.
|
|
72
|
+
|
|
73
|
+
Args:
|
|
74
|
+
cluster_id: The cluster ID.
|
|
75
|
+
|
|
76
|
+
Returns:
|
|
77
|
+
GetClusterResponse with the cluster state.
|
|
78
|
+
"""
|
|
79
|
+
request = GetClusterRequest(cluster_id=cluster_id)
|
|
80
|
+
return self.__cluster_service.GetCluster(request)
|
|
81
|
+
|
|
82
|
+
@grpc_try_catch_wrapper("Failed to list clusters")
|
|
83
|
+
def list_clusters(self) -> ListClustersResponse:
|
|
84
|
+
"""List all clusters.
|
|
85
|
+
|
|
86
|
+
Returns:
|
|
87
|
+
ListClustersResponse with list of clusters.
|
|
88
|
+
"""
|
|
89
|
+
request = ListClustersRequest()
|
|
90
|
+
return self.__cluster_service.ListClusters(request)
|
|
91
|
+
|
|
92
|
+
@grpc_try_catch_wrapper("Failed to update cluster {cluster_id}")
|
|
93
|
+
def update_cluster(
|
|
94
|
+
self, cluster_id: str, cluster_spec: ClusterSpec
|
|
95
|
+
) -> UpdateClusterConfigurationResponse:
|
|
96
|
+
"""Update cluster configuration.
|
|
97
|
+
|
|
98
|
+
Args:
|
|
99
|
+
cluster_id: The cluster ID to update.
|
|
100
|
+
cluster_spec: The updated cluster specification.
|
|
101
|
+
|
|
102
|
+
Returns:
|
|
103
|
+
UpdateClusterConfigurationResponse with the request_id.
|
|
104
|
+
"""
|
|
105
|
+
request = UpdateClusterConfigurationRequest(
|
|
106
|
+
cluster_id=cluster_id,
|
|
107
|
+
cluster_spec=cluster_spec,
|
|
108
|
+
)
|
|
109
|
+
return self.__cluster_service.UpdateClusterConfiguration(request)
|
|
110
|
+
|
|
111
|
+
@grpc_try_catch_wrapper("Failed to delete cluster {cluster_id}")
|
|
112
|
+
def delete_cluster(self, cluster_id: str) -> DeleteClusterResponse:
|
|
113
|
+
"""Delete cluster by ID.
|
|
114
|
+
|
|
115
|
+
Args:
|
|
116
|
+
cluster_id: The cluster ID to delete.
|
|
117
|
+
|
|
118
|
+
Returns:
|
|
119
|
+
DeleteClusterResponse with the request_id.
|
|
120
|
+
"""
|
|
121
|
+
request = DeleteClusterRequest(cluster_id=cluster_id)
|
|
122
|
+
return self.__cluster_service.DeleteCluster(request)
|
|
@@ -2,6 +2,9 @@ import grpc
|
|
|
2
2
|
from _qwak_proto.qwak.administration.v0.environments.environment_pb2 import (
|
|
3
3
|
QwakEnvironmentStatus,
|
|
4
4
|
)
|
|
5
|
+
from _qwak_proto.qwak.administration.v0.environments.configuration_pb2 import (
|
|
6
|
+
QwakEnvironmentConfiguration,
|
|
7
|
+
)
|
|
5
8
|
from _qwak_proto.qwak.administration.v0.environments.environment_service_pb2 import (
|
|
6
9
|
GetEnvironmentApplicationUserCredentialsRequest,
|
|
7
10
|
GetEnvironmentApplicationUserCredentialsResponse,
|
|
@@ -9,6 +12,8 @@ from _qwak_proto.qwak.administration.v0.environments.environment_service_pb2 imp
|
|
|
9
12
|
ListEnvironmentsResponse,
|
|
10
13
|
GetEnvironmentResponse,
|
|
11
14
|
GetEnvironmentRequest,
|
|
15
|
+
UpdateEnvironmentConfigurationRequest,
|
|
16
|
+
UpdateEnvironmentConfigurationResponse,
|
|
12
17
|
)
|
|
13
18
|
from _qwak_proto.qwak.administration.v0.environments.environment_service_pb2_grpc import (
|
|
14
19
|
EnvironmentServiceStub,
|
|
@@ -16,6 +21,7 @@ from _qwak_proto.qwak.administration.v0.environments.environment_service_pb2_grp
|
|
|
16
21
|
from dependency_injector.wiring import Provide
|
|
17
22
|
from qwak.exceptions import QwakException
|
|
18
23
|
from qwak.inner.di_configuration import QwakContainer
|
|
24
|
+
from qwak.inner.tool.grpc.grpc_try_wrapping import grpc_try_catch_wrapper
|
|
19
25
|
|
|
20
26
|
|
|
21
27
|
class EnvironmentClient:
|
|
@@ -90,3 +96,25 @@ class EnvironmentClient:
|
|
|
90
96
|
raise QwakException(
|
|
91
97
|
f"Failed to get environment {environment_id}, error is {e}"
|
|
92
98
|
)
|
|
99
|
+
|
|
100
|
+
@grpc_try_catch_wrapper(
|
|
101
|
+
"Failed to update environment configuration for {environment_id}"
|
|
102
|
+
)
|
|
103
|
+
def update_environment_configuration(
|
|
104
|
+
self, environment_id: str, configuration: QwakEnvironmentConfiguration
|
|
105
|
+
) -> UpdateEnvironmentConfigurationResponse:
|
|
106
|
+
"""
|
|
107
|
+
Update environment configuration.
|
|
108
|
+
|
|
109
|
+
Args:
|
|
110
|
+
environment_id: The environment ID to update.
|
|
111
|
+
configuration: The new environment configuration.
|
|
112
|
+
|
|
113
|
+
Returns:
|
|
114
|
+
UpdateEnvironmentConfigurationResponse
|
|
115
|
+
"""
|
|
116
|
+
request = UpdateEnvironmentConfigurationRequest(
|
|
117
|
+
environment_id=environment_id,
|
|
118
|
+
configuration=configuration,
|
|
119
|
+
)
|
|
120
|
+
return self._environment_service.UpdateEnvironmentConfiguration(request)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .client import EnvironmentV1Client
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"""Environment V1 API client.
|
|
2
|
+
|
|
3
|
+
Provides wrapper methods for the Environment V1 gRPC service with proper error handling.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from _qwak_proto.qwak.administration.v1.environments.environment_pb2 import (
|
|
7
|
+
EnvironmentRuntimeConfigSpec,
|
|
8
|
+
)
|
|
9
|
+
from _qwak_proto.qwak.administration.v1.environments.environment_service_pb2 import (
|
|
10
|
+
CreateEnvironmentRequest,
|
|
11
|
+
CreateEnvironmentResponse,
|
|
12
|
+
)
|
|
13
|
+
from _qwak_proto.qwak.administration.v1.environments.environment_service_pb2_grpc import (
|
|
14
|
+
EnvironmentServiceStub,
|
|
15
|
+
)
|
|
16
|
+
from dependency_injector.wiring import Provide
|
|
17
|
+
from qwak.inner.di_configuration import QwakContainer
|
|
18
|
+
from qwak.inner.tool.grpc.grpc_try_wrapping import grpc_try_catch_wrapper
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class EnvironmentV1Client:
|
|
22
|
+
"""Client for interacting with the Environment V1 API.
|
|
23
|
+
|
|
24
|
+
This client wraps the gRPC stub and provides methods with proper error handling
|
|
25
|
+
using the grpc_try_catch_wrapper decorator.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
def __init__(self, grpc_channel=Provide[QwakContainer.core_grpc_channel]):
|
|
29
|
+
self.__environment_service = EnvironmentServiceStub(grpc_channel)
|
|
30
|
+
|
|
31
|
+
@grpc_try_catch_wrapper("Failed to create environment {environment_name}")
|
|
32
|
+
def create_environment(
|
|
33
|
+
self,
|
|
34
|
+
environment_name: str,
|
|
35
|
+
cluster_id: str,
|
|
36
|
+
spec: EnvironmentRuntimeConfigSpec,
|
|
37
|
+
) -> CreateEnvironmentResponse:
|
|
38
|
+
"""Create a new environment.
|
|
39
|
+
|
|
40
|
+
Args:
|
|
41
|
+
environment_name: The name of the environment.
|
|
42
|
+
cluster_id: The cluster ID the environment belongs to.
|
|
43
|
+
spec: The environment runtime configuration specification.
|
|
44
|
+
|
|
45
|
+
Returns:
|
|
46
|
+
CreateEnvironmentResponse with the created environment.
|
|
47
|
+
"""
|
|
48
|
+
request = CreateEnvironmentRequest(
|
|
49
|
+
environment_name=environment_name,
|
|
50
|
+
cluster_id=cluster_id,
|
|
51
|
+
spec=spec,
|
|
52
|
+
)
|
|
53
|
+
return self.__environment_service.CreateEnvironment(request)
|