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.
Files changed (26) hide show
  1. _qwak_proto/qwak/administration/cluster/v2/cluster_service_pb2.py +52 -0
  2. _qwak_proto/qwak/administration/cluster/v2/cluster_service_pb2.pyi +198 -0
  3. _qwak_proto/qwak/administration/cluster/v2/cluster_service_pb2_grpc.py +237 -0
  4. _qwak_proto/qwak/administration/v1/environments/environment_pb2.py +29 -0
  5. _qwak_proto/qwak/administration/v1/environments/environment_pb2.pyi +38 -0
  6. _qwak_proto/qwak/administration/v1/environments/environment_pb2_grpc.py +4 -0
  7. _qwak_proto/qwak/administration/v1/environments/environment_service_pb2.py +33 -0
  8. _qwak_proto/qwak/administration/v1/environments/environment_service_pb2.pyi +59 -0
  9. _qwak_proto/qwak/administration/v1/environments/environment_service_pb2_grpc.py +67 -0
  10. _qwak_proto/qwak/models/models_pb2.py +81 -79
  11. _qwak_proto/qwak/models/models_pb2.pyi +21 -0
  12. _qwak_proto/qwak/models/models_pb2_grpc.py +34 -0
  13. qwak/__init__.py +1 -1
  14. qwak/clients/administration/cluster_v2/__init__.py +1 -0
  15. qwak/clients/administration/cluster_v2/client.py +122 -0
  16. qwak/clients/administration/environment/client.py +28 -0
  17. qwak/clients/administration/environment_v1/__init__.py +1 -0
  18. qwak/clients/administration/environment_v1/client.py +53 -0
  19. {qwak_core-0.6.5.dist-info → qwak_core-0.6.7.dist-info}/METADATA +1 -1
  20. {qwak_core-0.6.5.dist-info → qwak_core-0.6.7.dist-info}/RECORD +26 -10
  21. qwak_services_mock/mocks/cluster_v2_service.py +146 -0
  22. qwak_services_mock/mocks/environment_v0_service.py +175 -0
  23. qwak_services_mock/mocks/environment_v1_service.py +37 -0
  24. qwak_services_mock/mocks/qwak_mocks.py +6 -0
  25. qwak_services_mock/services_mock.py +38 -1
  26. {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=5370
49
- _globals['_DEPLOYMENTMODELSTATUS']._serialized_end=5449
50
- _globals['_MODELSTATUS']._serialized_start=5451
51
- _globals['_MODELSTATUS']._serialized_end=5518
52
- _globals['_MEMORYUNIT']._serialized_start=5520
53
- _globals['_MEMORYUNIT']._serialized_end=5575
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['_DELETEMODELREQUEST']._serialized_start=1111
71
- _globals['_DELETEMODELREQUEST']._serialized_end=1169
72
- _globals['_DELETEMODELRESPONSE']._serialized_start=1171
73
- _globals['_DELETEMODELRESPONSE']._serialized_end=1192
74
- _globals['_UPDATEMODELREQUEST']._serialized_start=1194
75
- _globals['_UPDATEMODELREQUEST']._serialized_end=1307
76
- _globals['_UPDATEMODELRESPONSE']._serialized_start=1309
77
- _globals['_UPDATEMODELRESPONSE']._serialized_end=1385
78
- _globals['_CREATEBRANCHREQUEST']._serialized_start=1387
79
- _globals['_CREATEBRANCHREQUEST']._serialized_end=1447
80
- _globals['_CREATEBRANCHRESPONSE']._serialized_start=1449
81
- _globals['_CREATEBRANCHRESPONSE']._serialized_end=1490
82
- _globals['_DELETEBRANCHREQUEST']._serialized_start=1492
83
- _globals['_DELETEBRANCHREQUEST']._serialized_end=1532
84
- _globals['_DELETEBRANCHRESPONSE']._serialized_start=1534
85
- _globals['_DELETEBRANCHRESPONSE']._serialized_end=1556
86
- _globals['_ISMODELEXISTSREQUEST']._serialized_start=1558
87
- _globals['_ISMODELEXISTSREQUEST']._serialized_end=1636
88
- _globals['_ISMODELEXISTSRESPONSE']._serialized_start=1638
89
- _globals['_ISMODELEXISTSRESPONSE']._serialized_end=1677
90
- _globals['_MODELSPEC']._serialized_start=1680
91
- _globals['_MODELSPEC']._serialized_end=1898
92
- _globals['_MODELBRIEF']._serialized_start=1901
93
- _globals['_MODELBRIEF']._serialized_end=2228
94
- _globals['_MODELSPECCONFIGURATION']._serialized_start=2230
95
- _globals['_MODELSPECCONFIGURATION']._serialized_end=2281
96
- _globals['_MODEL']._serialized_start=2284
97
- _globals['_MODEL']._serialized_end=2912
98
- _globals['_MODELBUILDTYPE']._serialized_start=2915
99
- _globals['_MODELBUILDTYPE']._serialized_end=3065
100
- _globals['_SOURCE']._serialized_start=3067
101
- _globals['_SOURCE']._serialized_end=3075
102
- _globals['_MODELREGISTRYIMAGE']._serialized_start=3077
103
- _globals['_MODELREGISTRYIMAGE']._serialized_end=3128
104
- _globals['_BRANCH']._serialized_start=3131
105
- _globals['_BRANCH']._serialized_end=3366
106
- _globals['_BRANCH_BRANCHSTATUS']._serialized_start=3298
107
- _globals['_BRANCH_BRANCHSTATUS']._serialized_end=3366
108
- _globals['_GETDEPLOYMENTDETAILSREQUEST']._serialized_start=3368
109
- _globals['_GETDEPLOYMENTDETAILSREQUEST']._serialized_end=3434
110
- _globals['_GETDEPLOYMENTDETAILSRESPONSE']._serialized_start=3436
111
- _globals['_GETDEPLOYMENTDETAILSRESPONSE']._serialized_end=3537
112
- _globals['_DEPLOYMENTDETAILS']._serialized_start=3540
113
- _globals['_DEPLOYMENTDETAILS']._serialized_end=3815
114
- _globals['_LISTMODELSMETADATAREQUEST']._serialized_start=3817
115
- _globals['_LISTMODELSMETADATAREQUEST']._serialized_end=3864
116
- _globals['_LISTMODELSMETADATARESPONSE']._serialized_start=3866
117
- _globals['_LISTMODELSMETADATARESPONSE']._serialized_end=3957
118
- _globals['_GETMODELMETADATAREQUEST']._serialized_start=3959
119
- _globals['_GETMODELMETADATAREQUEST']._serialized_end=4002
120
- _globals['_GETMODELMETADATARESPONSE']._serialized_start=4004
121
- _globals['_GETMODELMETADATARESPONSE']._serialized_end=4093
122
- _globals['_ENVIRONMENTROUTES']._serialized_start=4095
123
- _globals['_ENVIRONMENTROUTES']._serialized_end=4199
124
- _globals['_MODELMETADATA']._serialized_start=4202
125
- _globals['_MODELMETADATA']._serialized_end=4898
126
- _globals['_MODELMETADATA_AUDIENCEROUTESBYENVIRONMENTENTRY']._serialized_start=4675
127
- _globals['_MODELMETADATA_AUDIENCEROUTESBYENVIRONMENTENTRY']._serialized_end=4780
128
- _globals['_MODELMETADATA_AUDIENCEROUTESGROUPEDBYENVIRONMENTENTRY']._serialized_start=4782
129
- _globals['_MODELMETADATA_AUDIENCEROUTESGROUPEDBYENVIRONMENTENTRY']._serialized_end=4898
130
- _globals['_CHECKMODELCREATIONALLOWEDREQUEST']._serialized_start=4900
131
- _globals['_CHECKMODELCREATIONALLOWEDREQUEST']._serialized_end=5005
132
- _globals['_CHECKMODELCREATIONALLOWEDRESPONSE']._serialized_start=5008
133
- _globals['_CHECKMODELCREATIONALLOWEDRESPONSE']._serialized_end=5291
134
- _globals['_MODELEXISTS']._serialized_start=5293
135
- _globals['_MODELEXISTS']._serialized_end=5306
136
- _globals['_MODELNOTEXISTS']._serialized_start=5308
137
- _globals['_MODELNOTEXISTS']._serialized_end=5324
138
- _globals['_MODELEXISTSWITHMISMATCH']._serialized_start=5326
139
- _globals['_MODELEXISTSWITHMISMATCH']._serialized_end=5368
140
- _globals['_MODELSMANAGEMENTSERVICE']._serialized_start=5578
141
- _globals['_MODELSMANAGEMENTSERVICE']._serialized_end=7101
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
@@ -1,7 +1,7 @@
1
1
  """Top-level package for qwak-core."""
2
2
 
3
3
  __author__ = "Qwak.ai"
4
- __version__ = "0.6.5"
4
+ __version__ = "0.6.7"
5
5
 
6
6
  from qwak.inner.di_configuration import wire_dependencies
7
7
  from qwak.model.experiment_tracking import log_metric, log_param
@@ -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)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: qwak-core
3
- Version: 0.6.5
3
+ Version: 0.6.7
4
4
  Summary: Qwak Core contains the necessary objects and communication tools for using the Qwak Platform
5
5
  License: Apache-2.0
6
6
  Keywords: mlops,ml,deployment,serving,model