use crate::Result;
use async_trait::async_trait;
use unitycatalog_common::models::model_versions::v1::*;
#[async_trait]
pub trait ModelVersionHandler<Cx = crate::api::RequestContext>: Send + Sync + 'static {
async fn list_model_versions(
&self,
request: ListModelVersionsRequest,
context: Cx,
) -> Result<ListModelVersionsResponse>;
async fn create_model_version(
&self,
request: CreateModelVersionRequest,
context: Cx,
) -> Result<ModelVersion>;
async fn get_model_version(
&self,
request: GetModelVersionRequest,
context: Cx,
) -> Result<ModelVersion>;
async fn update_model_version(
&self,
request: UpdateModelVersionRequest,
context: Cx,
) -> Result<ModelVersion>;
async fn delete_model_version(
&self,
request: DeleteModelVersionRequest,
context: Cx,
) -> Result<()>;
async fn finalize_model_version(
&self,
request: FinalizeModelVersionRequest,
context: Cx,
) -> Result<ModelVersion>;
}