frogml 1.2.38__py3-none-any.whl → 1.2.47__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- frogml/__init__.py +1 -1
- frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2.py +43 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2.pyi +218 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_pb2.py +53 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_pb2.pyi +258 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_service_pb2.py +58 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_service_pb2.pyi +224 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_service_pb2_grpc.py +206 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/environment_variables_configuration_pb2.py +33 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/environment_variables_configuration_pb2.pyi +99 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/environment_variables_configuration_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_artifact_identifier_pb2.py +31 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_artifact_identifier_pb2.pyi +99 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_artifact_identifier_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_brief_pb2.py +30 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_brief_pb2.pyi +55 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_brief_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_filter_pb2.py +42 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_filter_pb2.pyi +204 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_filter_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/probes_configuration_pb2.py +29 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/probes_configuration_pb2.pyi +60 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/probes_configuration_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/realtime_deployment_pb2.py +28 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/realtime_deployment_pb2.pyi +47 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/realtime_deployment_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/resource_configuration_pb2.py +27 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/resource_configuration_pb2.pyi +29 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/resource_configuration_pb2_grpc.py +4 -0
- frogml/_proto/qwak/administration/cluster/v2/cluster_service_pb2.py +52 -0
- frogml/_proto/qwak/administration/cluster/v2/cluster_service_pb2.pyi +208 -0
- frogml/_proto/qwak/administration/cluster/v2/cluster_service_pb2_grpc.py +237 -0
- frogml/_proto/qwak/administration/v1/environments/environment_pb2.py +29 -0
- frogml/_proto/qwak/administration/v1/environments/environment_pb2.pyi +35 -0
- frogml/_proto/qwak/administration/v1/environments/environment_pb2_grpc.py +4 -0
- frogml/_proto/qwak/administration/v1/environments/environment_service_pb2.py +33 -0
- frogml/_proto/qwak/administration/v1/environments/environment_service_pb2.pyi +59 -0
- frogml/_proto/qwak/administration/v1/environments/environment_service_pb2_grpc.py +67 -0
- frogml/_proto/qwak/admiral/secret/v0/account_secret_pb2.py +33 -0
- frogml/_proto/qwak/admiral/secret/v0/account_secret_pb2.pyi +76 -0
- frogml/_proto/qwak/admiral/secret/v0/account_secret_pb2_grpc.py +4 -0
- frogml/_proto/qwak/admiral/secret/v0/system_secret_service_pb2.py +28 -15
- frogml/_proto/qwak/admiral/secret/v0/system_secret_service_pb2.pyi +89 -0
- frogml/_proto/qwak/admiral/secret/v0/system_secret_service_pb2_grpc.py +102 -0
- frogml/_proto/qwak/models/models_pb2.py +81 -79
- frogml/_proto/qwak/models/models_pb2.pyi +24 -0
- frogml/_proto/qwak/models/models_pb2_grpc.py +34 -0
- frogml/core/clients/administration/cluster_v2/__init__.py +1 -0
- frogml/core/clients/administration/cluster_v2/client.py +122 -0
- frogml/core/clients/administration/environment/client.py +28 -0
- frogml/core/clients/administration/environment_v1/__init__.py +1 -0
- frogml/core/clients/administration/environment_v1/client.py +53 -0
- frogml/core/clients/model_deployment_manager/__init__.py +1 -0
- frogml/core/clients/model_deployment_manager/client.py +103 -0
- frogml/core/inner/di_configuration/dependency_wiring.py +18 -16
- {frogml-1.2.38.dist-info → frogml-1.2.47.dist-info}/METADATA +1 -1
- {frogml-1.2.38.dist-info → frogml-1.2.47.dist-info}/RECORD +66 -14
- frogml_services_mock/mocks/cluster_v2_service.py +146 -0
- frogml_services_mock/mocks/environment_v0_service.py +175 -0
- frogml_services_mock/mocks/environment_v1_service.py +37 -0
- frogml_services_mock/mocks/frogml_mocks.py +17 -3
- frogml_services_mock/mocks/model_deployment_manager_service_mock.py +255 -0
- frogml_services_mock/services_mock.py +51 -2
- {frogml-1.2.38.dist-info → frogml-1.2.47.dist-info}/WHEEL +0 -0
|
@@ -21,7 +21,7 @@ from frogml._proto.qwak.deployment import deployment_pb2 as qwak_dot_deployment_
|
|
|
21
21
|
from frogml._proto.qwak.build.v1 import build_pb2 as qwak_dot_build_dot_v1_dot_build__pb2
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
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')
|
|
24
|
+
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')
|
|
25
25
|
|
|
26
26
|
_globals = globals()
|
|
27
27
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -45,12 +45,12 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
45
45
|
_globals['_MODELSMANAGEMENTSERVICE'].methods_by_name['DeleteBranch']._serialized_options = b'\210\002\001'
|
|
46
46
|
_globals['_MODELSMANAGEMENTSERVICE'].methods_by_name['GetDeploymentDetails']._options = None
|
|
47
47
|
_globals['_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)
|
|
@@ -260,6 +260,30 @@ class GetModelResponse(google.protobuf.message.Message):
|
|
|
260
260
|
|
|
261
261
|
global___GetModelResponse = GetModelResponse
|
|
262
262
|
|
|
263
|
+
@typing.final
|
|
264
|
+
class ListModelsByModelIdsRequest(google.protobuf.message.Message):
|
|
265
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
266
|
+
|
|
267
|
+
MODEL_IDS_FIELD_NUMBER: builtins.int
|
|
268
|
+
MODEL_UUIDS_FIELD_NUMBER: builtins.int
|
|
269
|
+
@property
|
|
270
|
+
def model_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
|
|
271
|
+
"""The model ids"""
|
|
272
|
+
|
|
273
|
+
@property
|
|
274
|
+
def model_uuids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
|
|
275
|
+
"""The model uuids"""
|
|
276
|
+
|
|
277
|
+
def __init__(
|
|
278
|
+
self,
|
|
279
|
+
*,
|
|
280
|
+
model_ids: collections.abc.Iterable[builtins.str] | None = ...,
|
|
281
|
+
model_uuids: collections.abc.Iterable[builtins.str] | None = ...,
|
|
282
|
+
) -> None: ...
|
|
283
|
+
def ClearField(self, field_name: typing.Literal["model_ids", b"model_ids", "model_uuids", b"model_uuids"]) -> None: ...
|
|
284
|
+
|
|
285
|
+
global___ListModelsByModelIdsRequest = ListModelsByModelIdsRequest
|
|
286
|
+
|
|
263
287
|
@typing.final
|
|
264
288
|
class DeleteModelRequest(google.protobuf.message.Message):
|
|
265
289
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
@@ -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,
|
|
@@ -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 frogml._proto.qwak.administration.cluster.v2.cluster_pb2 import (
|
|
7
|
+
ClusterSpec,
|
|
8
|
+
)
|
|
9
|
+
from frogml._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 frogml._proto.qwak.administration.cluster.v2.cluster_service_pb2_grpc import (
|
|
24
|
+
ClusterServiceStub,
|
|
25
|
+
)
|
|
26
|
+
from dependency_injector.wiring import Provide
|
|
27
|
+
from frogml.core.inner.di_configuration import FrogmlContainer
|
|
28
|
+
from frogml.core.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[FrogmlContainer.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)
|
|
@@ -4,17 +4,23 @@ from dependency_injector.wiring import Provide
|
|
|
4
4
|
from frogml._proto.qwak.administration.v0.environments.environment_pb2 import (
|
|
5
5
|
QwakEnvironmentStatus,
|
|
6
6
|
)
|
|
7
|
+
from frogml._proto.qwak.administration.v0.environments.configuration_pb2 import (
|
|
8
|
+
QwakEnvironmentConfiguration,
|
|
9
|
+
)
|
|
7
10
|
from frogml._proto.qwak.administration.v0.environments.environment_service_pb2 import (
|
|
8
11
|
GetEnvironmentApplicationUserCredentialsRequest,
|
|
9
12
|
GetEnvironmentApplicationUserCredentialsResponse,
|
|
10
13
|
ListEnvironmentsRequest,
|
|
11
14
|
ListEnvironmentsResponse,
|
|
15
|
+
UpdateEnvironmentConfigurationRequest,
|
|
16
|
+
UpdateEnvironmentConfigurationResponse,
|
|
12
17
|
)
|
|
13
18
|
from frogml._proto.qwak.administration.v0.environments.environment_service_pb2_grpc import (
|
|
14
19
|
EnvironmentServiceStub,
|
|
15
20
|
)
|
|
16
21
|
from frogml.core.exceptions import FrogmlException
|
|
17
22
|
from frogml.core.inner.di_configuration import FrogmlContainer
|
|
23
|
+
from frogml.core.inner.tool.grpc.grpc_try_wrapping import grpc_try_catch_wrapper
|
|
18
24
|
|
|
19
25
|
|
|
20
26
|
class EnvironmentClient:
|
|
@@ -75,3 +81,25 @@ class EnvironmentClient:
|
|
|
75
81
|
raise FrogmlException(
|
|
76
82
|
f"Failed to get application user, error is {e.details()}"
|
|
77
83
|
)
|
|
84
|
+
|
|
85
|
+
@grpc_try_catch_wrapper(
|
|
86
|
+
"Failed to update environment configuration for {environment_id}"
|
|
87
|
+
)
|
|
88
|
+
def update_environment_configuration(
|
|
89
|
+
self, environment_id: str, configuration: QwakEnvironmentConfiguration
|
|
90
|
+
) -> UpdateEnvironmentConfigurationResponse:
|
|
91
|
+
"""
|
|
92
|
+
Update environment configuration.
|
|
93
|
+
|
|
94
|
+
Args:
|
|
95
|
+
environment_id: The environment ID to update.
|
|
96
|
+
configuration: The new environment configuration.
|
|
97
|
+
|
|
98
|
+
Returns:
|
|
99
|
+
UpdateEnvironmentConfigurationResponse
|
|
100
|
+
"""
|
|
101
|
+
request = UpdateEnvironmentConfigurationRequest(
|
|
102
|
+
environment_id=environment_id,
|
|
103
|
+
configuration=configuration,
|
|
104
|
+
)
|
|
105
|
+
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 frogml._proto.qwak.administration.v1.environments.environment_pb2 import (
|
|
7
|
+
EnvironmentRuntimeConfigSpec,
|
|
8
|
+
)
|
|
9
|
+
from frogml._proto.qwak.administration.v1.environments.environment_service_pb2 import (
|
|
10
|
+
CreateEnvironmentRequest,
|
|
11
|
+
CreateEnvironmentResponse,
|
|
12
|
+
)
|
|
13
|
+
from frogml._proto.qwak.administration.v1.environments.environment_service_pb2_grpc import (
|
|
14
|
+
EnvironmentServiceStub,
|
|
15
|
+
)
|
|
16
|
+
from dependency_injector.wiring import Provide
|
|
17
|
+
from frogml.core.inner.di_configuration import FrogmlContainer
|
|
18
|
+
from frogml.core.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[FrogmlContainer.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)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .client import ModelDeploymentManagerClient
|