qwak-core 0.4.278__py3-none-any.whl → 0.5.19__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.

Potentially problematic release.


This version of qwak-core might be problematic. Click here for more details.

Files changed (361) hide show
  1. _qwak_proto/jfml/hosting_gateway/v1/build_upload_url_pb2.py +8 -23
  2. _qwak_proto/jfml/hosting_gateway/v1/hosting_gateway_service_pb2.py +10 -27
  3. _qwak_proto/qwak/administration/account/v1/account_pb2.py +25 -88
  4. _qwak_proto/qwak/administration/account/v1/account_pb2.pyi +21 -2
  5. _qwak_proto/qwak/administration/account/v1/account_service_pb2.py +42 -187
  6. _qwak_proto/qwak/administration/account/v1/jfrog_tenant_details_pb2.py +26 -114
  7. _qwak_proto/qwak/administration/account/v1/personalization_pb2.py +8 -24
  8. _qwak_proto/qwak/administration/account/v1/preferences_pb2.py +6 -14
  9. _qwak_proto/qwak/administration/account/v1/terms_pb2.py +14 -54
  10. _qwak_proto/qwak/administration/authenticated_user/v1/authenticated_user_service_pb2.py +18 -67
  11. _qwak_proto/qwak/administration/authenticated_user/v1/credentials_pb2.py +8 -24
  12. _qwak_proto/qwak/administration/authenticated_user/v1/credentials_pb2.pyi +1 -1
  13. _qwak_proto/qwak/administration/authenticated_user/v1/details_pb2.py +14 -54
  14. _qwak_proto/qwak/administration/cluster/v2/cluster_pb2.py +38 -173
  15. _qwak_proto/qwak/administration/runtime_configuration/v0/container_registry_config_pb2.py +32 -0
  16. _qwak_proto/qwak/administration/runtime_configuration/v0/container_registry_config_pb2.pyi +65 -0
  17. _qwak_proto/qwak/administration/runtime_configuration/v0/container_registry_config_pb2_grpc.py +4 -0
  18. _qwak_proto/qwak/administration/runtime_configuration/v0/creds/auth_pb2.py +6 -14
  19. _qwak_proto/qwak/administration/runtime_configuration/v0/creds/secret_pb2.py +8 -24
  20. _qwak_proto/qwak/administration/runtime_configuration/v0/data_catalog_config_pb2.py +13 -35
  21. _qwak_proto/qwak/administration/runtime_configuration/v0/data_catalog_config_pb2.pyi +24 -3
  22. _qwak_proto/qwak/administration/runtime_configuration/v0/external/databricks/auth_pb2.py +34 -0
  23. _qwak_proto/qwak/administration/runtime_configuration/v0/external/databricks/auth_pb2.pyi +97 -0
  24. _qwak_proto/qwak/administration/runtime_configuration/v0/external/databricks/auth_pb2_grpc.py +4 -0
  25. _qwak_proto/qwak/administration/runtime_configuration/v0/external/elasticsearch_config_pb2.py +6 -14
  26. _qwak_proto/qwak/administration/runtime_configuration/v0/external/kafka_config_pb2.py +12 -44
  27. _qwak_proto/qwak/administration/runtime_configuration/v0/external/prometheus_config_pb2.py +9 -15
  28. _qwak_proto/qwak/administration/runtime_configuration/v0/external/prometheus_config_pb2.pyi +29 -0
  29. _qwak_proto/qwak/administration/runtime_configuration/v0/external/redis_config_pb2.py +6 -14
  30. _qwak_proto/qwak/administration/runtime_configuration/v0/external/victoriametrics_config_pb2.py +8 -15
  31. _qwak_proto/qwak/administration/runtime_configuration/v0/external/victoriametrics_config_pb2.pyi +16 -0
  32. _qwak_proto/qwak/administration/runtime_configuration/v0/feature_store_config_pb2.py +10 -34
  33. _qwak_proto/qwak/administration/runtime_configuration/v0/hosting/aws/auth_pb2.py +42 -0
  34. _qwak_proto/qwak/administration/runtime_configuration/v0/hosting/aws/auth_pb2.pyi +159 -0
  35. _qwak_proto/qwak/administration/runtime_configuration/v0/hosting/aws/auth_pb2_grpc.py +4 -0
  36. _qwak_proto/qwak/administration/runtime_configuration/v0/hosting/azure/auth_pb2.py +39 -0
  37. _qwak_proto/qwak/administration/runtime_configuration/v0/hosting/azure/auth_pb2.pyi +126 -0
  38. _qwak_proto/qwak/administration/runtime_configuration/v0/hosting/azure/auth_pb2_grpc.py +4 -0
  39. _qwak_proto/qwak/administration/runtime_configuration/v0/hosting_config_pb2.py +19 -55
  40. _qwak_proto/qwak/administration/runtime_configuration/v0/hosting_config_pb2.pyi +38 -6
  41. _qwak_proto/qwak/administration/runtime_configuration/v0/logs_storage_config_pb2.py +6 -14
  42. _qwak_proto/qwak/administration/runtime_configuration/v0/model_analytics_storage_config_pb2.py +6 -14
  43. _qwak_proto/qwak/administration/runtime_configuration/v0/network_config_pb2.py +14 -54
  44. _qwak_proto/qwak/administration/runtime_configuration/v0/object_storage_config_pb2.py +13 -35
  45. _qwak_proto/qwak/administration/runtime_configuration/v0/object_storage_config_pb2.pyi +26 -3
  46. _qwak_proto/qwak/administration/runtime_configuration/v0/observability_config_pb2.py +10 -34
  47. _qwak_proto/qwak/administration/runtime_configuration/v0/runtime_config_pb2.py +8 -15
  48. _qwak_proto/qwak/administration/runtime_configuration/v0/runtime_config_pb2.pyi +7 -2
  49. _qwak_proto/qwak/administration/runtime_configuration/v0/sql_engine_config_pb2.py +13 -35
  50. _qwak_proto/qwak/administration/runtime_configuration/v0/sql_engine_config_pb2.pyi +24 -3
  51. _qwak_proto/qwak/administration/v0/authentication/authentication_service_pb2.py +14 -47
  52. _qwak_proto/qwak/administration/v0/environments/configuration_pb2.py +20 -82
  53. _qwak_proto/qwak/administration/v0/environments/environment_pb2.py +12 -40
  54. _qwak_proto/qwak/administration/v0/environments/environment_service_pb2.py +36 -158
  55. _qwak_proto/qwak/administration/v0/environments/personalization_pb2.py +8 -24
  56. _qwak_proto/qwak/administration/v0/users/user_pb2.py +18 -71
  57. _qwak_proto/qwak/admiral/secret/v0/secret_pb2.py +29 -116
  58. _qwak_proto/qwak/admiral/secret/v0/secret_pb2.pyi +21 -2
  59. _qwak_proto/qwak/admiral/secret/v0/secret_service_pb2.py +18 -67
  60. _qwak_proto/qwak/admiral/secret/v0/system_secret_service_pb2.py +18 -67
  61. _qwak_proto/qwak/admiral/user_application_instance/v0/user_application_instance_pb2.py +38 -174
  62. _qwak_proto/qwak/admiral/user_application_instance/v0/user_application_instance_service_pb2.py +22 -87
  63. _qwak_proto/qwak/analytics/analytics_pb2.py +26 -121
  64. _qwak_proto/qwak/analytics/analytics_service_pb2.py +46 -207
  65. _qwak_proto/qwak/artifactory_settings/artifactory_settings_pb2.py +8 -24
  66. _qwak_proto/qwak/audience/v1/audience_api_pb2.py +30 -127
  67. _qwak_proto/qwak/audience/v1/audience_pb2.py +26 -113
  68. _qwak_proto/qwak/auto_scaling/v1/auto_scaling_pb2.py +18 -79
  69. _qwak_proto/qwak/auto_scaling/v1/auto_scaling_service_pb2.py +10 -27
  70. _qwak_proto/qwak/automation/v1/action_pb2.py +40 -180
  71. _qwak_proto/qwak/automation/v1/auto_scaling_pb2.py +18 -79
  72. _qwak_proto/qwak/automation/v1/automation_execution_pb2.py +12 -43
  73. _qwak_proto/qwak/automation/v1/automation_management_service_pb2.py +56 -258
  74. _qwak_proto/qwak/automation/v1/automation_pb2.py +11 -35
  75. _qwak_proto/qwak/automation/v1/automation_pb2.pyi +5 -1
  76. _qwak_proto/qwak/automation/v1/common_pb2.py +10 -35
  77. _qwak_proto/qwak/automation/v1/notification_pb2.py +16 -68
  78. _qwak_proto/qwak/automation/v1/trigger_pb2.py +14 -54
  79. _qwak_proto/qwak/batch_job/v1/batch_job_events_pb2.py +26 -116
  80. _qwak_proto/qwak/batch_job/v1/batch_job_resources_pb2.py +8 -26
  81. _qwak_proto/qwak/batch_job/v1/batch_job_service_pb2.py +119 -562
  82. _qwak_proto/qwak/batch_job/v1/batch_job_service_pb2.pyi +5 -1
  83. _qwak_proto/qwak/build/v1/build_api_pb2.py +86 -407
  84. _qwak_proto/qwak/build/v1/build_pb2.py +114 -549
  85. _qwak_proto/qwak/build_settings/build_settings_api_pb2.py +18 -67
  86. _qwak_proto/qwak/build_settings/build_settings_pb2.py +18 -74
  87. _qwak_proto/qwak/builds/build_pb2.py +46 -207
  88. _qwak_proto/qwak/builds/build_pb2.pyi +48 -3
  89. _qwak_proto/qwak/builds/build_url_pb2.py +26 -113
  90. _qwak_proto/qwak/builds/build_values_pb2.py +82 -0
  91. _qwak_proto/qwak/builds/build_values_pb2.pyi +559 -0
  92. _qwak_proto/qwak/builds/build_values_pb2_grpc.py +4 -0
  93. _qwak_proto/qwak/builds/builds_orchestrator_service_pb2.py +87 -270
  94. _qwak_proto/qwak/builds/builds_orchestrator_service_pb2.pyi +173 -0
  95. _qwak_proto/qwak/builds/builds_orchestrator_service_pb2_grpc.py +66 -0
  96. _qwak_proto/qwak/builds/builds_pb2.py +87 -528
  97. _qwak_proto/qwak/builds/builds_pb2.pyi +0 -191
  98. _qwak_proto/qwak/builds/builds_pb2_grpc.py +0 -233
  99. _qwak_proto/qwak/builds/internal_builds_orchestrator_service_pb2.py +12 -37
  100. _qwak_proto/qwak/data_versioning/data_versioning_pb2.py +8 -24
  101. _qwak_proto/qwak/data_versioning/data_versioning_service_pb2.py +14 -47
  102. _qwak_proto/qwak/deployment/alert_pb2.py +24 -108
  103. _qwak_proto/qwak/deployment/alert_service_pb2.py +30 -127
  104. _qwak_proto/qwak/deployment/deployment_messages_pb2.py +6 -14
  105. _qwak_proto/qwak/deployment/deployment_pb2.py +124 -588
  106. _qwak_proto/qwak/deployment/deployment_service_pb2.py +86 -419
  107. _qwak_proto/qwak/ecosystem/jfrog/v0/token_pb2.py +47 -165
  108. _qwak_proto/qwak/ecosystem/jfrog/v0/token_pb2.pyi +102 -3
  109. _qwak_proto/qwak/ecosystem/jfrog/v0/token_service_pb2.py +22 -87
  110. _qwak_proto/qwak/ecosystem/v0/auth_pb2.py +28 -0
  111. _qwak_proto/qwak/ecosystem/v0/auth_pb2.pyi +37 -0
  112. _qwak_proto/qwak/ecosystem/v0/auth_pb2_grpc.py +4 -0
  113. _qwak_proto/qwak/ecosystem/v0/azure_credentials_pb2.py +37 -0
  114. _qwak_proto/qwak/ecosystem/v0/azure_credentials_pb2.pyi +117 -0
  115. _qwak_proto/qwak/ecosystem/v0/azure_credentials_pb2_grpc.py +4 -0
  116. _qwak_proto/qwak/ecosystem/v0/credentials_pb2.py +12 -35
  117. _qwak_proto/qwak/ecosystem/v0/credentials_pb2.pyi +8 -3
  118. _qwak_proto/qwak/ecosystem/v0/ecosystem_pb2.py +30 -138
  119. _qwak_proto/qwak/ecosystem/v0/ecosystem_runtime_service_pb2.py +52 -237
  120. _qwak_proto/qwak/execution/v1/backfill_pb2.py +18 -74
  121. _qwak_proto/qwak/execution/v1/batch_pb2.py +10 -34
  122. _qwak_proto/qwak/execution/v1/deletion_pb2.py +12 -44
  123. _qwak_proto/qwak/execution/v1/execution_pb2.py +16 -69
  124. _qwak_proto/qwak/execution/v1/execution_service_pb2.py +64 -298
  125. _qwak_proto/qwak/execution/v1/internal/deployment/platform_details_pb2.py +6 -14
  126. _qwak_proto/qwak/execution/v1/jobs/job_pb2.py +18 -76
  127. _qwak_proto/qwak/execution/v1/jobs/job_service_pb2.py +54 -247
  128. _qwak_proto/qwak/execution/v1/jobs/reports/report_pb2.py +20 -84
  129. _qwak_proto/qwak/execution/v1/state/execution_state_pb2.py +6 -14
  130. _qwak_proto/qwak/execution/v1/state/execution_state_service_pb2.py +30 -127
  131. _qwak_proto/qwak/execution/v1/state/featureset_state_pb2.py +6 -14
  132. _qwak_proto/qwak/execution/v1/state/spark_execution_state_pb2.py +14 -68
  133. _qwak_proto/qwak/execution/v1/streaming_aggregation_pb2.py +22 -55
  134. _qwak_proto/qwak/execution/v1/streaming_aggregation_pb2.pyi +71 -1
  135. _qwak_proto/qwak/execution/v1/streaming_pb2.py +12 -44
  136. _qwak_proto/qwak/feature_store/entities/entity_pb2.py +16 -57
  137. _qwak_proto/qwak/feature_store/entities/entity_service_pb2.py +30 -127
  138. _qwak_proto/qwak/feature_store/features/aggregation_pb2.py +38 -175
  139. _qwak_proto/qwak/feature_store/features/deployment_pb2.py +36 -167
  140. _qwak_proto/qwak/feature_store/features/deployment_service_pb2.py +10 -27
  141. _qwak_proto/qwak/feature_store/features/execution_pb2.py +14 -56
  142. _qwak_proto/qwak/feature_store/features/feature_set_attribute_pb2.py +6 -14
  143. _qwak_proto/qwak/feature_store/features/feature_set_pb2.py +35 -156
  144. _qwak_proto/qwak/feature_store/features/feature_set_pb2.pyi +9 -1
  145. _qwak_proto/qwak/feature_store/features/feature_set_service_pb2.py +97 -440
  146. _qwak_proto/qwak/feature_store/features/feature_set_service_pb2.pyi +25 -0
  147. _qwak_proto/qwak/feature_store/features/feature_set_service_pb2_grpc.py +34 -0
  148. _qwak_proto/qwak/feature_store/features/feature_set_state_pb2.py +38 -181
  149. _qwak_proto/qwak/feature_store/features/feature_set_state_service_pb2.py +26 -107
  150. _qwak_proto/qwak/feature_store/features/feature_set_types_pb2.py +77 -347
  151. _qwak_proto/qwak/feature_store/features/feature_set_types_pb2.pyi +7 -2
  152. _qwak_proto/qwak/feature_store/features/monitoring_pb2.py +10 -34
  153. _qwak_proto/qwak/feature_store/features/real_time_feature_extractor_pb2.py +32 -143
  154. _qwak_proto/qwak/feature_store/jobs/job_pb2.py +12 -46
  155. _qwak_proto/qwak/feature_store/jobs/job_service_pb2.py +30 -127
  156. _qwak_proto/qwak/feature_store/jobs/v1/job_pb2.py +12 -45
  157. _qwak_proto/qwak/feature_store/jobs/v1/job_service_pb2.py +42 -187
  158. _qwak_proto/qwak/feature_store/platform/platform_details_pb2.py +8 -24
  159. _qwak_proto/qwak/feature_store/reports/report_pb2.py +14 -53
  160. _qwak_proto/qwak/feature_store/repository/common/platform_pb2.py +10 -34
  161. _qwak_proto/qwak/feature_store/serving/management_pb2.py +14 -47
  162. _qwak_proto/qwak/feature_store/serving/metadata_pb2.py +12 -44
  163. _qwak_proto/qwak/feature_store/serving/serving_pb2.py +50 -222
  164. _qwak_proto/qwak/feature_store/serving/v1/value_pb2.py +8 -24
  165. _qwak_proto/qwak/feature_store/sinks/sink_pb2.py +14 -54
  166. _qwak_proto/qwak/feature_store/sources/batch_pb2.py +79 -335
  167. _qwak_proto/qwak/feature_store/sources/batch_pb2.pyi +99 -7
  168. _qwak_proto/qwak/feature_store/sources/data_source_attribute_pb2.py +6 -14
  169. _qwak_proto/qwak/feature_store/sources/data_source_pb2.py +15 -55
  170. _qwak_proto/qwak/feature_store/sources/data_source_pb2.pyi +5 -1
  171. _qwak_proto/qwak/feature_store/sources/data_source_service_pb2.py +39 -148
  172. _qwak_proto/qwak/feature_store/sources/data_source_service_pb2.pyi +25 -0
  173. _qwak_proto/qwak/feature_store/sources/data_source_service_pb2_grpc.py +34 -0
  174. _qwak_proto/qwak/feature_store/sources/streaming_pb2.py +34 -146
  175. _qwak_proto/qwak/feature_store/v1/common/jfrog_artifact/jfrog_artifact_pb2.py +6 -14
  176. _qwak_proto/qwak/feature_store/v1/common/source_code/source_code_pb2.py +10 -34
  177. _qwak_proto/qwak/feature_store/v1/internal/data_source/data_source_service_pb2.py +16 -58
  178. _qwak_proto/qwak/feature_store/v1/internal/featureset/featureset_token_service_pb2.py +10 -27
  179. _qwak_proto/qwak/features_operator/v1/features_operator_pb2.py +14 -54
  180. _qwak_proto/qwak/features_operator/v1/features_operator_service_pb2.py +14 -47
  181. _qwak_proto/qwak/features_operator/v2/features_operator_pb2.py +16 -64
  182. _qwak_proto/qwak/features_operator/v2/features_operator_service_pb2.py +12 -37
  183. _qwak_proto/qwak/features_operator/v3/features_operator_async_service_pb2.py +26 -107
  184. _qwak_proto/qwak/features_operator/v3/features_operator_pb2.py +16 -64
  185. _qwak_proto/qwak/file_versioning/file_versioning_pb2.py +10 -33
  186. _qwak_proto/qwak/file_versioning/file_versioning_service_pb2.py +14 -47
  187. _qwak_proto/qwak/fitness_service/constructs_pb2.py +23 -100
  188. _qwak_proto/qwak/fitness_service/constructs_pb2.pyi +24 -0
  189. _qwak_proto/qwak/fitness_service/fitness_pb2.py +7 -34
  190. _qwak_proto/qwak/fitness_service/fitness_pb2.pyi +0 -93
  191. _qwak_proto/qwak/fitness_service/status_pb2.py +17 -108
  192. _qwak_proto/qwak/fitness_service/status_pb2.pyi +1 -121
  193. _qwak_proto/qwak/inference/feedback/feedback_pb2.py +28 -96
  194. _qwak_proto/qwak/instance_template/instance_template_pb2.py +13 -41
  195. _qwak_proto/qwak/instance_template/instance_template_pb2.pyi +4 -1
  196. _qwak_proto/qwak/instance_template/instance_template_service_pb2.py +14 -47
  197. _qwak_proto/qwak/integration/hugging_face_integration_pb2.py +16 -64
  198. _qwak_proto/qwak/integration/integration_pb2.py +28 -126
  199. _qwak_proto/qwak/integration/integration_service_pb2.py +34 -147
  200. _qwak_proto/qwak/integration/open_a_i_integration_pb2.py +16 -64
  201. _qwak_proto/qwak/integration/opsgenie_integration_pb2.py +20 -82
  202. _qwak_proto/qwak/integration/pagerduty_integration_pb2.py +24 -104
  203. _qwak_proto/qwak/integration/slack_app_integration_pb2.py +24 -104
  204. _qwak_proto/qwak/kube_deployment_captain/alert_pb2.py +22 -97
  205. _qwak_proto/qwak/kube_deployment_captain/alerting_pb2.py +12 -44
  206. _qwak_proto/qwak/kube_deployment_captain/batch_job_pb2.py +70 -323
  207. _qwak_proto/qwak/kube_deployment_captain/batch_job_pb2.pyi +20 -5
  208. _qwak_proto/qwak/kube_deployment_captain/deployment_pb2.py +44 -167
  209. _qwak_proto/qwak/kube_deployment_captain/feature_set_deployment_pb2.py +32 -144
  210. _qwak_proto/qwak/kube_deployment_captain/kube_deployment_captain_service_pb2.py +108 -519
  211. _qwak_proto/qwak/kube_deployment_captain/traffic_mapping_pb2.py +8 -24
  212. _qwak_proto/qwak/logging/log_filter_pb2.py +12 -44
  213. _qwak_proto/qwak/logging/log_line_pb2.py +8 -25
  214. _qwak_proto/qwak/logging/log_reader_service_pb2.py +10 -27
  215. _qwak_proto/qwak/logging/log_source_pb2.py +30 -134
  216. _qwak_proto/qwak/model_descriptor/open_ai_descriptor_pb2.py +18 -74
  217. _qwak_proto/qwak/model_group/model_group_pb2.py +25 -48
  218. _qwak_proto/qwak/model_group/model_group_pb2.pyi +88 -0
  219. _qwak_proto/qwak/model_group/model_group_pb2_grpc.py +70 -0
  220. _qwak_proto/qwak/model_group/model_group_repository_details_pb2.py +23 -75
  221. _qwak_proto/qwak/model_group/model_group_repository_details_pb2.pyi +44 -6
  222. _qwak_proto/qwak/models/models_pb2.py +99 -406
  223. _qwak_proto/qwak/models/models_pb2.pyi +86 -0
  224. _qwak_proto/qwak/models/models_pb2_grpc.py +34 -0
  225. _qwak_proto/qwak/models/models_query_pb2.py +16 -56
  226. _qwak_proto/qwak/models/models_query_pb2.pyi +4 -4
  227. _qwak_proto/qwak/monitoring/v0/alerting_channel_management_service_pb2.py +30 -127
  228. _qwak_proto/qwak/monitoring/v0/alerting_channel_pb2.py +34 -152
  229. _qwak_proto/qwak/monitoring/v0/alerting_channel_sync_service_pb2.py +14 -47
  230. _qwak_proto/qwak/offline/serving/v1/feature_values_pb2.py +6 -14
  231. _qwak_proto/qwak/offline/serving/v1/offline_serving_async_service_pb2.py +30 -123
  232. _qwak_proto/qwak/offline/serving/v1/options_pb2.py +6 -14
  233. _qwak_proto/qwak/offline/serving/v1/population_pb2.py +14 -54
  234. _qwak_proto/qwak/projects/jfrog_project_spec_pb2.py +6 -14
  235. _qwak_proto/qwak/projects/projects_pb2.py +50 -192
  236. _qwak_proto/qwak/projects/projects_pb2.pyi +35 -0
  237. _qwak_proto/qwak/prompt/v1/prompt/prompt_manager_service_pb2.py +54 -247
  238. _qwak_proto/qwak/prompt/v1/prompt/prompt_pb2.py +46 -214
  239. _qwak_proto/qwak/secret_service/secret_service_pb2.py +18 -67
  240. _qwak_proto/qwak/secret_service/secret_service_pb2.pyi +1 -1
  241. _qwak_proto/qwak/self_service/account/v0/account_membership_pb2.py +24 -106
  242. _qwak_proto/qwak/self_service/account/v0/account_membership_service_pb2.py +50 -227
  243. _qwak_proto/qwak/self_service/account/v0/account_status_pb2.py +16 -65
  244. _qwak_proto/qwak/self_service/account/v0/managing_account_pb2.py +37 -132
  245. _qwak_proto/qwak/self_service/account/v0/managing_account_pb2.pyi +40 -2
  246. _qwak_proto/qwak/self_service/account/v0/managing_account_service_pb2.py +22 -87
  247. _qwak_proto/qwak/self_service/user/v1/api_key_pb2.py +6 -14
  248. _qwak_proto/qwak/self_service/user/v1/user_pb2.py +6 -14
  249. _qwak_proto/qwak/self_service/user/v1/user_service_pb2.py +30 -121
  250. _qwak_proto/qwak/service_discovery/service_discovery_location_pb2.py +12 -44
  251. _qwak_proto/qwak/service_discovery/service_discovery_location_service_pb2.py +10 -27
  252. _qwak_proto/qwak/traffic/v1/traffic_api_pb2.py +22 -87
  253. _qwak_proto/qwak/traffic/v1/traffic_pb2.py +26 -113
  254. _qwak_proto/qwak/user_application/common/v0/resources_pb2.py +31 -139
  255. _qwak_proto/qwak/user_application/common/v0/resources_pb2.pyi +24 -0
  256. _qwak_proto/qwak/user_application/v0/user_application_pb2.py +11 -44
  257. _qwak_proto/qwak/user_application/v0/user_application_pb2.pyi +6 -0
  258. _qwak_proto/qwak/vectors/v1/collection/collection_pb2.py +24 -106
  259. _qwak_proto/qwak/vectors/v1/collection/collection_service_pb2.py +38 -167
  260. _qwak_proto/qwak/vectors/v1/collection/event/collection_event_pb2.py +6 -14
  261. _qwak_proto/qwak/vectors/v1/filters_pb2.py +30 -134
  262. _qwak_proto/qwak/vectors/v1/vector_pb2.py +14 -54
  263. _qwak_proto/qwak/vectors/v1/vector_service_pb2.py +26 -107
  264. _qwak_proto/qwak/workspace/workspace_pb2.py +22 -107
  265. _qwak_proto/qwak/workspace/workspace_service_pb2.py +62 -287
  266. qwak/__init__.py +1 -1
  267. qwak/automations/automations.py +3 -0
  268. qwak/clients/feature_store/execution_management_client.py +28 -0
  269. qwak/clients/feature_store/management_client.py +156 -206
  270. qwak/clients/feature_store/operator_client.py +19 -1
  271. qwak/clients/logging_client/client.py +13 -18
  272. qwak/clients/model_management/client.py +0 -5
  273. qwak/clients/project/client.py +0 -7
  274. qwak/exceptions/__init__.py +1 -0
  275. qwak/exceptions/qwak_grpc_address_exception.py +9 -0
  276. qwak/feature_store/_common/artifact_utils.py +10 -8
  277. qwak/feature_store/_common/packaging.py +39 -21
  278. qwak/feature_store/_common/source_code_spec.py +61 -11
  279. qwak/feature_store/_common/source_code_spec_factory.py +63 -10
  280. qwak/feature_store/data_sources/__init__.py +2 -0
  281. qwak/feature_store/data_sources/base.py +11 -7
  282. qwak/feature_store/data_sources/batch/snowflake.py +34 -8
  283. qwak/feature_store/data_sources/batch/unity_catalog.py +107 -0
  284. qwak/feature_store/execution/streaming_backfill.py +48 -0
  285. qwak/feature_store/feature_sets/base_feature_set.py +1 -0
  286. qwak/feature_store/feature_sets/streaming.py +84 -63
  287. qwak/feature_store/feature_sets/streaming_backfill.py +88 -124
  288. qwak/feature_store/online/client.py +20 -4
  289. qwak/feature_store/validations/validation_decorators.py +70 -0
  290. qwak/feature_store/validations/validation_response.py +3 -1
  291. qwak/feature_store/validations/validator.py +11 -3
  292. qwak/inner/build_logic/interface/context_interface.py +4 -0
  293. qwak/inner/build_logic/phases/phase_010_fetch_model/post_fetch_validation_step.py +1 -1
  294. qwak/inner/const.py +2 -6
  295. qwak/inner/di_configuration/__init__.py +1 -69
  296. qwak/inner/di_configuration/account.py +18 -63
  297. qwak/inner/di_configuration/containers.py +5 -1
  298. qwak/inner/di_configuration/dependency_wiring.py +98 -0
  299. qwak/inner/tool/auth.py +10 -80
  300. qwak/inner/tool/grpc/grpc_auth.py +0 -32
  301. qwak/inner/tool/grpc/grpc_tools.py +125 -11
  302. qwak/inner/tool/grpc/grpc_try_wrapping.py +140 -3
  303. qwak/llmops/generation/chat/openai/types/chat/chat_completion.py +24 -6
  304. qwak/llmops/generation/chat/openai/types/chat/chat_completion_chunk.py +44 -8
  305. qwak/llmops/generation/chat/openai/types/chat/chat_completion_message.py +6 -3
  306. qwak/qwak_client/client.py +2 -13
  307. qwak/vector_store/rest_helpers.py +4 -16
  308. qwak_core-0.5.19.dist-info/METADATA +48 -0
  309. {qwak_core-0.4.278.dist-info → qwak_core-0.5.19.dist-info}/RECORD +316 -334
  310. qwak_services_mock/mocks/execution_management_service.py +9 -1
  311. qwak_services_mock/mocks/feature_store_data_sources_manager_api.py +55 -13
  312. qwak_services_mock/mocks/feature_store_entities_manager_api.py +31 -29
  313. qwak_services_mock/mocks/features_operator_v3_service.py +20 -0
  314. qwak_services_mock/mocks/qwak_mocks.py +0 -2
  315. qwak_services_mock/services_mock.py +1 -11
  316. _qwak_proto/qwak/fitness_service/fitness_service_pb2.py +0 -110
  317. _qwak_proto/qwak/fitness_service/fitness_service_pb2.pyi +0 -121
  318. _qwak_proto/qwak/fitness_service/fitness_service_pb2_grpc.py +0 -169
  319. frogml_storage/__init__.py +0 -1
  320. frogml_storage/artifactory/__init__.py +0 -1
  321. frogml_storage/artifactory/_artifactory_api.py +0 -315
  322. frogml_storage/authentication/login/__init__.py +0 -1
  323. frogml_storage/authentication/login/_login_cli.py +0 -239
  324. frogml_storage/authentication/login/_login_command.py +0 -74
  325. frogml_storage/authentication/models/__init__.py +0 -3
  326. frogml_storage/authentication/models/_auth.py +0 -24
  327. frogml_storage/authentication/models/_auth_config.py +0 -70
  328. frogml_storage/authentication/models/_login.py +0 -22
  329. frogml_storage/authentication/utils/__init__.py +0 -17
  330. frogml_storage/authentication/utils/_authentication_utils.py +0 -281
  331. frogml_storage/authentication/utils/_login_checks_utils.py +0 -114
  332. frogml_storage/base_storage.py +0 -140
  333. frogml_storage/constants.py +0 -56
  334. frogml_storage/exceptions/checksum_verification_error.py +0 -3
  335. frogml_storage/exceptions/validation_error.py +0 -4
  336. frogml_storage/frog_ml.py +0 -668
  337. frogml_storage/http/__init__.py +0 -1
  338. frogml_storage/http/http_client.py +0 -83
  339. frogml_storage/logging/__init__.py +0 -1
  340. frogml_storage/logging/_log_config.py +0 -45
  341. frogml_storage/logging/log_utils.py +0 -21
  342. frogml_storage/models/__init__.py +0 -1
  343. frogml_storage/models/_download_context.py +0 -54
  344. frogml_storage/models/dataset_manifest.py +0 -13
  345. frogml_storage/models/entity_manifest.py +0 -93
  346. frogml_storage/models/frogml_dataset_version.py +0 -21
  347. frogml_storage/models/frogml_entity_type_info.py +0 -50
  348. frogml_storage/models/frogml_entity_version.py +0 -34
  349. frogml_storage/models/frogml_model_version.py +0 -21
  350. frogml_storage/models/model_manifest.py +0 -60
  351. frogml_storage/models/serialization_metadata.py +0 -15
  352. frogml_storage/utils/__init__.py +0 -12
  353. frogml_storage/utils/_environment.py +0 -21
  354. frogml_storage/utils/_input_checks_utility.py +0 -104
  355. frogml_storage/utils/_storage_utils.py +0 -15
  356. frogml_storage/utils/_url_utils.py +0 -27
  357. qwak/clients/build_management/__init__.py +0 -1
  358. qwak/clients/build_management/client.py +0 -114
  359. qwak_core-0.4.278.dist-info/METADATA +0 -415
  360. qwak_services_mock/mocks/build_management.py +0 -100
  361. {qwak_core-0.4.278.dist-info → qwak_core-0.5.19.dist-info}/WHEEL +0 -0
@@ -1,239 +0,0 @@
1
- from typing import List, Optional, Union
2
-
3
- import typer
4
-
5
- from frogml_storage.utils import assemble_artifact_url, join_url
6
- from frogml_storage.authentication.login._login_command import run as run_login
7
- from frogml_storage.authentication.models import AuthConfig, LoginArguments
8
- from frogml_storage.authentication.utils import (
9
- get_frogml_configuration,
10
- parse_cli_config_server,
11
- read_jfrog_cli_config,
12
- )
13
- from frogml_storage.authentication.utils import (
14
- get_list_of_servers_from_config,
15
- login_input_checks,
16
- is_login_without_params,
17
- )
18
- from frogml_storage.constants import CONFIG_FILE_PATH, JFROG_CLI_CONFIG_FILE_PATH
19
-
20
-
21
- def login(
22
- url: Optional[str],
23
- username: Optional[str],
24
- password: Optional[str],
25
- token: Optional[str],
26
- anonymous: Optional[bool],
27
- is_interactive: Optional[bool],
28
- ) -> bool:
29
- if anonymous is None:
30
- anonymous = False
31
- if is_login_without_params(url, username, password, token, anonymous):
32
- if not is_interactive:
33
- return __login_by_frogml_configuration_file_flow()
34
- else:
35
- return __interactive_flow()
36
- elif login_input_checks(url, username, password, token, anonymous):
37
- url = assemble_artifact_url(url)
38
- return __login_by_command_line_params(url, username, password, token, anonymous)
39
- else:
40
- typer.echo(
41
- f"{__get_failed_reason(url, username, password, token, anonymous)}Login failed"
42
- )
43
- return False
44
-
45
-
46
- def __get_failed_reason(
47
- url: Optional[str],
48
- username: Optional[str],
49
- password: Optional[str],
50
- token: Optional[str],
51
- anonymous: Optional[bool],
52
- ) -> str:
53
- details = ""
54
- if url is None:
55
- details += "Url is required.\n"
56
- if token is not None and (
57
- any(params is not None for params in [username, password])
58
- ):
59
- details += "Token is specified when username/password is specified.\n"
60
- if anonymous is True and any(
61
- params is not None for params in [username, password, token]
62
- ):
63
- details += "Anonymous is specified with authentication details.\n"
64
- if username is None and password is not None:
65
- details += "Username is required when password is specified.\n"
66
- elif username is not None and password is None:
67
- details += "Password is required when username is specified.\n"
68
- return details
69
-
70
-
71
- def __run_interactive_mode() -> Union[LoginArguments, None]:
72
- jfrog_cli_config = read_jfrog_cli_config()
73
-
74
- if jfrog_cli_config is not None:
75
- jfrog_cli_servers = get_list_of_servers_from_config(jfrog_cli_config)
76
- if jfrog_cli_servers is not None and len(jfrog_cli_servers) > 0:
77
- login_method_id = typer.prompt(
78
- f"Please select from the following options:\n" # nosec B608
79
- f"1.Login by jfrog-cli configuration file: {JFROG_CLI_CONFIG_FILE_PATH}\n"
80
- f"2.Connecting to a new server\n"
81
- )
82
-
83
- while (
84
- not login_method_id.isdigit()
85
- or int(login_method_id) > 2
86
- or int(login_method_id) <= 0
87
- ):
88
- login_method_id = typer.prompt(
89
- "Bad Input. Choose your preferred login option"
90
- )
91
-
92
- login_method_id = int(login_method_id)
93
- if login_method_id == 1:
94
- return __prompt_jfrog_cli_configuration_list(
95
- jfrog_cli_config, jfrog_cli_servers
96
- )
97
-
98
- return __prompt_manual_details()
99
-
100
- return None
101
-
102
-
103
- def __prompt_manual_details() -> Union[LoginArguments, None]:
104
- login_args = LoginArguments()
105
- login_args.artifactory_url = typer.prompt("Enter artifactory base url")
106
-
107
- if login_args.artifactory_url is not None:
108
- login_args.artifactory_url = join_url(login_args.artifactory_url, "artifactory")
109
-
110
- auth_options = ["Username and Password", "Access Token", "Anonymous Access"]
111
- authentication_types = ""
112
- for index, item in enumerate(auth_options):
113
- authentication_types += f"{index}: {item} \n"
114
- selected_auth_type = typer.prompt(
115
- f"Choose your preferred authentication option:\n{authentication_types}"
116
- )
117
- while (
118
- not selected_auth_type.isdigit()
119
- or int(selected_auth_type) >= len(auth_options)
120
- or int(selected_auth_type) < 0
121
- ):
122
- selected_auth_type = typer.prompt(
123
- "Bad Input. Choose your preferred authentication"
124
- )
125
- selected_auth_type = int(selected_auth_type)
126
- if selected_auth_type == 0:
127
- return __prompt_username_password(login_args)
128
- elif selected_auth_type == 1:
129
- return __prompt_access_token(login_args)
130
- elif selected_auth_type == 2:
131
- login_args.isAnonymous = True
132
- return login_args
133
- return None
134
-
135
-
136
- def __prompt_username_password(login_args: LoginArguments) -> LoginArguments:
137
- username = typer.prompt("Enter JFrog user name")
138
- password = typer.prompt("Enter JFrog password", hide_input=True)
139
- login_args.username = username
140
- login_args.password = password
141
- return login_args
142
-
143
-
144
- def __prompt_access_token(login_args: LoginArguments) -> LoginArguments:
145
- token = typer.prompt("Enter JFrog access token", hide_input=True)
146
- login_args.access_token = token
147
- return login_args
148
-
149
-
150
- def __prompt_jfrog_cli_configuration_list(
151
- jfrog_cli_config: dict, jfrog_cli_servers: List[str]
152
- ) -> Union[LoginArguments, None]:
153
- list_server_options = ""
154
- for index, item in enumerate(jfrog_cli_servers):
155
- list_server_options += f"{index}: {item}\n"
156
- server_index_cli_conf = typer.prompt(
157
- f"Found the following servers in your JFrog CLI configuration, "
158
- f"choose one of the following:\n{list_server_options}"
159
- )
160
- while (
161
- not server_index_cli_conf.isdigit()
162
- or int(server_index_cli_conf) < 0
163
- or int(server_index_cli_conf) >= len(jfrog_cli_servers)
164
- ):
165
- server_index_cli_conf = typer.prompt(
166
- "Invalid choice. Please choose a number from the list"
167
- )
168
- server_index_cli_conf = int(server_index_cli_conf)
169
- typer.echo(f"{jfrog_cli_servers[server_index_cli_conf]} was chosen")
170
- servers = jfrog_cli_config.get("servers")
171
- if servers is not None:
172
- return parse_cli_config_server(servers[server_index_cli_conf])
173
- else:
174
- raise ValueError("No servers found in the JFrog CLI configuration.")
175
-
176
-
177
- def __execute_login(auth_config: AuthConfig, anonymous: bool) -> bool:
178
- if run_login(auth_config, anonymous):
179
- success_message = "Logged in successfully"
180
- if auth_config.artifactory_url is not None:
181
- success_message += (
182
- f" to: {auth_config.artifactory_url.replace('/artifactory', '')}"
183
- )
184
- typer.echo(success_message)
185
- return True
186
- else:
187
- typer.echo("Failed to login, bad authentication")
188
- return False
189
-
190
-
191
- def __login_by_frogml_configuration_file_flow() -> bool:
192
- login_args = get_frogml_configuration()
193
- auth_config = None
194
- if login_args is not None:
195
- typer.echo(
196
- f"Using existing frogml authentication config file: {CONFIG_FILE_PATH}"
197
- )
198
- auth_config = AuthConfig(
199
- artifactory_url=login_args.artifactory_url,
200
- user=login_args.username,
201
- password=login_args.password,
202
- access_token=login_args.access_token,
203
- )
204
-
205
- if (
206
- auth_config is not None
207
- and login_args is not None
208
- and __execute_login(auth_config, login_args.isAnonymous)
209
- ):
210
- return True
211
-
212
- return __interactive_flow()
213
-
214
-
215
- def __interactive_flow() -> bool:
216
- login_args = __run_interactive_mode()
217
- if login_args is not None:
218
- auth_config = AuthConfig(
219
- artifactory_url=login_args.artifactory_url,
220
- user=login_args.username,
221
- password=login_args.password,
222
- access_token=login_args.access_token,
223
- )
224
- return __execute_login(auth_config, login_args.isAnonymous)
225
- return False
226
-
227
-
228
- def __login_by_command_line_params(
229
- url: str,
230
- username: Optional[str],
231
- password: Optional[str],
232
- token: Optional[str],
233
- anonymous: Optional[bool],
234
- ) -> bool:
235
- anonymous_value = anonymous if anonymous is not None else False
236
- auth_config = AuthConfig(
237
- artifactory_url=url, user=username, password=password, access_token=token
238
- )
239
- return __execute_login(auth_config, anonymous_value)
@@ -1,74 +0,0 @@
1
- import http
2
- from typing import Optional
3
-
4
- import requests
5
- from requests.auth import AuthBase, HTTPBasicAuth
6
-
7
- from frogml_storage.artifactory import ArtifactoryApi
8
- from frogml_storage.logging import logger
9
- from frogml_storage.authentication.models import BearerAuth, EmptyAuth
10
- from frogml_storage.authentication.utils import (
11
- get_encrypted_password,
12
- save_auth_config,
13
- )
14
- from frogml_storage.authentication.models import AuthConfig
15
- from frogml_storage.authentication.utils import (
16
- is_username_password_login,
17
- is_access_token_login,
18
- is_anonymous_login,
19
- )
20
-
21
-
22
- def run(auth_config: AuthConfig, anonymous: Optional[bool] = False) -> bool:
23
- if is_username_password_login(auth_config, anonymous):
24
- connection_validation_result = __login_by_username_password(auth_config)
25
- elif is_access_token_login(auth_config, anonymous):
26
- connection_validation_result = __validate_server_connection(
27
- auth_config, BearerAuth(auth_config.access_token)
28
- )
29
- elif is_anonymous_login(auth_config, anonymous):
30
- connection_validation_result = __validate_server_connection(
31
- auth_config, EmptyAuth()
32
- )
33
- else:
34
- connection_validation_result = False
35
-
36
- if connection_validation_result:
37
- save_auth_config(auth_config)
38
- return connection_validation_result
39
-
40
-
41
- def __login_by_username_password(auth_config: AuthConfig) -> bool:
42
- if auth_config.user is not None and auth_config.password is not None:
43
- auth_token = HTTPBasicAuth(auth_config.user, auth_config.password)
44
- connection_validation_result = __validate_server_connection(
45
- auth_config, auth_token
46
- )
47
- if connection_validation_result:
48
- encrypted_password = get_encrypted_password(auth_config, auth_token)
49
- if encrypted_password is not None:
50
- auth_config.password = encrypted_password
51
- return True
52
- return False
53
-
54
-
55
- def __validate_server_connection(auth_config: AuthConfig, auth_token: AuthBase) -> bool:
56
- success = False
57
- try:
58
- logger.debug("Attempting to ping artifactory")
59
- response = ArtifactoryApi(auth_config.artifactory_url, auth_token).ping()
60
- if response.status_code == http.HTTPStatus.OK:
61
- success = True
62
- else:
63
- logger.debug(
64
- f"Expected {http.HTTPStatus.OK} status but got {response.status_code} "
65
- f"when using url {auth_config.artifactory_url}"
66
- )
67
- except requests.exceptions.ConnectionError as e:
68
- logger.debug(f"Unable to connect to the provided url :{e}.")
69
- except requests.exceptions.MissingSchema as e:
70
- logger.debug(f"Invalid Artifactory URL provided: {e}.")
71
- except requests.exceptions.RequestException as e:
72
- logger.debug(f"Unexpected request exception: {e}.")
73
-
74
- return success
@@ -1,3 +0,0 @@
1
- from ._auth_config import AuthConfig
2
- from ._auth import BearerAuth, EmptyAuth
3
- from ._login import LoginArguments
@@ -1,24 +0,0 @@
1
- from typing import Any
2
-
3
- from requests import PreparedRequest
4
- from requests.auth import AuthBase
5
-
6
-
7
- class BearerAuth(AuthBase):
8
- def __init__(self, token: str):
9
- self.token: str = token
10
-
11
- def __call__(self, r: PreparedRequest) -> PreparedRequest:
12
- r.headers["Authorization"] = f"Bearer {self.token}"
13
- return r
14
-
15
- def __eq__(self, other: Any) -> bool:
16
- if not isinstance(other, BearerAuth):
17
- return False
18
-
19
- return self.token == other.token
20
-
21
-
22
- class EmptyAuth(AuthBase):
23
- def __call__(self, r: PreparedRequest) -> PreparedRequest:
24
- return r
@@ -1,70 +0,0 @@
1
- from typing import Optional
2
-
3
- from frogml_storage.constants import (
4
- FROG_ML_CONFIG_ACCESS_TOKEN,
5
- FROG_ML_CONFIG_ARTIFACTORY_URL,
6
- FROG_ML_CONFIG_PASSWORD,
7
- FROG_ML_CONFIG_USER,
8
- SERVER_ID,
9
- )
10
-
11
-
12
- class AuthConfig(object):
13
- def __init__(
14
- self,
15
- artifactory_url: Optional[str] = None,
16
- access_token: Optional[str] = None,
17
- user: Optional[str] = None,
18
- password: Optional[str] = None,
19
- server_id: Optional[str] = None,
20
- ) -> None:
21
- self.artifactory_url = artifactory_url
22
- self.user = user
23
- self.password = password
24
- self.access_token = access_token
25
- self.server_id = server_id
26
-
27
- def to_json(self):
28
- include_keys = [
29
- FROG_ML_CONFIG_ARTIFACTORY_URL,
30
- FROG_ML_CONFIG_USER,
31
- FROG_ML_CONFIG_PASSWORD,
32
- FROG_ML_CONFIG_ACCESS_TOKEN,
33
- SERVER_ID,
34
- ]
35
- return {
36
- key: getattr(self, key)
37
- for key in include_keys
38
- if getattr(self, key) is not None
39
- }
40
-
41
- @classmethod
42
- def by_access_token(cls, artifactory_url: str, access_token: str) -> "AuthConfig":
43
- return cls(
44
- artifactory_url=artifactory_url,
45
- access_token=access_token,
46
- )
47
-
48
- @classmethod
49
- def by_basic_auth(
50
- cls, artifactory_url: str, user: str, password: str
51
- ) -> "AuthConfig":
52
- return cls(
53
- artifactory_url=artifactory_url,
54
- user=user,
55
- password=password,
56
- )
57
-
58
- @classmethod
59
- def by_server_id(cls, server_id: str) -> "AuthConfig":
60
- return cls(server_id=server_id)
61
-
62
- @classmethod
63
- def from_dict(cls, data: dict) -> "AuthConfig":
64
- return cls(
65
- artifactory_url=data.get(FROG_ML_CONFIG_ARTIFACTORY_URL),
66
- access_token=data.get(FROG_ML_CONFIG_ACCESS_TOKEN),
67
- server_id=data.get(SERVER_ID),
68
- user=data.get(FROG_ML_CONFIG_USER),
69
- password=data.get(FROG_ML_CONFIG_PASSWORD),
70
- )
@@ -1,22 +0,0 @@
1
- from typing import Optional
2
-
3
-
4
- class LoginArguments(object):
5
- isAnonymous: bool = False
6
- server_id: Optional[str] = None
7
- username: Optional[str] = None
8
- password: Optional[str] = None
9
- access_token: Optional[str] = None
10
- artifactory_url: Optional[str] = None
11
-
12
- def __eq__(self, other):
13
- if not isinstance(other, LoginArguments):
14
- return False
15
- return (
16
- self.isAnonymous == other.isAnonymous
17
- and self.server_id == other.server_id
18
- and self.username == other.username
19
- and self.password == other.password
20
- and self.access_token == other.access_token
21
- and self.artifactory_url == other.artifactory_url
22
- )
@@ -1,17 +0,0 @@
1
- from ._authentication_utils import (
2
- get_credentials,
3
- get_frogml_configuration,
4
- parse_cli_config_server,
5
- read_jfrog_cli_config,
6
- get_encrypted_password,
7
- save_auth_config,
8
- get_list_of_servers_from_config,
9
- read_frogml_config,
10
- )
11
- from ._login_checks_utils import (
12
- login_input_checks,
13
- is_login_without_params,
14
- is_username_password_login,
15
- is_access_token_login,
16
- is_anonymous_login,
17
- )