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.
Files changed (66) hide show
  1. frogml/__init__.py +1 -1
  2. frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2.py +43 -0
  3. frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2.pyi +218 -0
  4. frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2_grpc.py +4 -0
  5. frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_pb2.py +53 -0
  6. frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_pb2.pyi +258 -0
  7. frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_pb2_grpc.py +4 -0
  8. frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_service_pb2.py +58 -0
  9. frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_service_pb2.pyi +224 -0
  10. frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_service_pb2_grpc.py +206 -0
  11. frogml/_proto/com/jfrog/ml/model/deployment/v1/environment_variables_configuration_pb2.py +33 -0
  12. frogml/_proto/com/jfrog/ml/model/deployment/v1/environment_variables_configuration_pb2.pyi +99 -0
  13. frogml/_proto/com/jfrog/ml/model/deployment/v1/environment_variables_configuration_pb2_grpc.py +4 -0
  14. frogml/_proto/com/jfrog/ml/model/deployment/v1/model_artifact_identifier_pb2.py +31 -0
  15. frogml/_proto/com/jfrog/ml/model/deployment/v1/model_artifact_identifier_pb2.pyi +99 -0
  16. frogml/_proto/com/jfrog/ml/model/deployment/v1/model_artifact_identifier_pb2_grpc.py +4 -0
  17. frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_brief_pb2.py +30 -0
  18. frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_brief_pb2.pyi +55 -0
  19. frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_brief_pb2_grpc.py +4 -0
  20. frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_filter_pb2.py +42 -0
  21. frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_filter_pb2.pyi +204 -0
  22. frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_filter_pb2_grpc.py +4 -0
  23. frogml/_proto/com/jfrog/ml/model/deployment/v1/probes_configuration_pb2.py +29 -0
  24. frogml/_proto/com/jfrog/ml/model/deployment/v1/probes_configuration_pb2.pyi +60 -0
  25. frogml/_proto/com/jfrog/ml/model/deployment/v1/probes_configuration_pb2_grpc.py +4 -0
  26. frogml/_proto/com/jfrog/ml/model/deployment/v1/realtime_deployment_pb2.py +28 -0
  27. frogml/_proto/com/jfrog/ml/model/deployment/v1/realtime_deployment_pb2.pyi +47 -0
  28. frogml/_proto/com/jfrog/ml/model/deployment/v1/realtime_deployment_pb2_grpc.py +4 -0
  29. frogml/_proto/com/jfrog/ml/model/deployment/v1/resource_configuration_pb2.py +27 -0
  30. frogml/_proto/com/jfrog/ml/model/deployment/v1/resource_configuration_pb2.pyi +29 -0
  31. frogml/_proto/com/jfrog/ml/model/deployment/v1/resource_configuration_pb2_grpc.py +4 -0
  32. frogml/_proto/qwak/administration/cluster/v2/cluster_service_pb2.py +52 -0
  33. frogml/_proto/qwak/administration/cluster/v2/cluster_service_pb2.pyi +208 -0
  34. frogml/_proto/qwak/administration/cluster/v2/cluster_service_pb2_grpc.py +237 -0
  35. frogml/_proto/qwak/administration/v1/environments/environment_pb2.py +29 -0
  36. frogml/_proto/qwak/administration/v1/environments/environment_pb2.pyi +35 -0
  37. frogml/_proto/qwak/administration/v1/environments/environment_pb2_grpc.py +4 -0
  38. frogml/_proto/qwak/administration/v1/environments/environment_service_pb2.py +33 -0
  39. frogml/_proto/qwak/administration/v1/environments/environment_service_pb2.pyi +59 -0
  40. frogml/_proto/qwak/administration/v1/environments/environment_service_pb2_grpc.py +67 -0
  41. frogml/_proto/qwak/admiral/secret/v0/account_secret_pb2.py +33 -0
  42. frogml/_proto/qwak/admiral/secret/v0/account_secret_pb2.pyi +76 -0
  43. frogml/_proto/qwak/admiral/secret/v0/account_secret_pb2_grpc.py +4 -0
  44. frogml/_proto/qwak/admiral/secret/v0/system_secret_service_pb2.py +28 -15
  45. frogml/_proto/qwak/admiral/secret/v0/system_secret_service_pb2.pyi +89 -0
  46. frogml/_proto/qwak/admiral/secret/v0/system_secret_service_pb2_grpc.py +102 -0
  47. frogml/_proto/qwak/models/models_pb2.py +81 -79
  48. frogml/_proto/qwak/models/models_pb2.pyi +24 -0
  49. frogml/_proto/qwak/models/models_pb2_grpc.py +34 -0
  50. frogml/core/clients/administration/cluster_v2/__init__.py +1 -0
  51. frogml/core/clients/administration/cluster_v2/client.py +122 -0
  52. frogml/core/clients/administration/environment/client.py +28 -0
  53. frogml/core/clients/administration/environment_v1/__init__.py +1 -0
  54. frogml/core/clients/administration/environment_v1/client.py +53 -0
  55. frogml/core/clients/model_deployment_manager/__init__.py +1 -0
  56. frogml/core/clients/model_deployment_manager/client.py +103 -0
  57. frogml/core/inner/di_configuration/dependency_wiring.py +18 -16
  58. {frogml-1.2.38.dist-info → frogml-1.2.47.dist-info}/METADATA +1 -1
  59. {frogml-1.2.38.dist-info → frogml-1.2.47.dist-info}/RECORD +66 -14
  60. frogml_services_mock/mocks/cluster_v2_service.py +146 -0
  61. frogml_services_mock/mocks/environment_v0_service.py +175 -0
  62. frogml_services_mock/mocks/environment_v1_service.py +37 -0
  63. frogml_services_mock/mocks/frogml_mocks.py +17 -3
  64. frogml_services_mock/mocks/model_deployment_manager_service_mock.py +255 -0
  65. frogml_services_mock/services_mock.py +51 -2
  66. {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=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)
@@ -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