unitycatalog_client/codegen/model_versions/
client.rs1#![allow(unused_imports)]
3use crate::Result;
4#[cfg(not(target_arch = "wasm32"))]
5use ::olai_http::CloudClient as Transport;
6#[cfg(target_arch = "wasm32")]
7use ::olai_http_wasm::WasmClient as Transport;
8use unitycatalog_common::models::model_versions::v1::*;
9use url::Url;
10#[derive(Clone)]
12pub struct ModelVersionServiceClient {
13 pub(crate) client: Transport,
14 pub(crate) base_url: Url,
15}
16impl ModelVersionServiceClient {
17 pub fn new(client: Transport, mut base_url: Url) -> Self {
19 if !base_url.path().ends_with('/') {
20 base_url.set_path(&format!("{}/", base_url.path()));
21 }
22 Self { client, base_url }
23 }
24 pub async fn list_model_versions(
30 &self,
31 request: &ListModelVersionsRequest,
32 ) -> Result<ListModelVersionsResponse> {
33 let formatted_path = format!("models/{}/versions", request.full_name);
34 let mut url = self.base_url.join(&formatted_path)?;
35 if let Some(ref value) = request.max_results {
36 url.query_pairs_mut()
37 .append_pair("max_results", &value.to_string());
38 }
39 if let Some(ref value) = request.page_token {
40 url.query_pairs_mut()
41 .append_pair("page_token", &value.to_string());
42 }
43 if let Some(ref value) = request.include_browse {
44 url.query_pairs_mut()
45 .append_pair("include_browse", &value.to_string());
46 }
47 let response = self.client.get(url).send().await?;
48 if !response.status().is_success() {
49 return Err(crate::error::parse_error_response(response).await);
50 }
51 let result = response.bytes().await?;
52 Ok(serde_json::from_slice(&result)?)
53 }
54 pub async fn create_model_version(
60 &self,
61 request: &CreateModelVersionRequest,
62 ) -> Result<ModelVersion> {
63 let url = self.base_url.join("models/versions")?;
64 let response = self.client.post(url).json(request).send().await?;
65 if !response.status().is_success() {
66 return Err(crate::error::parse_error_response(response).await);
67 }
68 let result = response.bytes().await?;
69 Ok(serde_json::from_slice(&result)?)
70 }
71 pub async fn get_model_version(
75 &self,
76 request: &GetModelVersionRequest,
77 ) -> Result<ModelVersion> {
78 let formatted_path = format!("models/{}/versions/{}", request.full_name, request.version);
79 let mut url = self.base_url.join(&formatted_path)?;
80 if let Some(ref value) = request.include_browse {
81 url.query_pairs_mut()
82 .append_pair("include_browse", &value.to_string());
83 }
84 let response = self.client.get(url).send().await?;
85 if !response.status().is_success() {
86 return Err(crate::error::parse_error_response(response).await);
87 }
88 let result = response.bytes().await?;
89 Ok(serde_json::from_slice(&result)?)
90 }
91 pub async fn update_model_version(
95 &self,
96 request: &UpdateModelVersionRequest,
97 ) -> Result<ModelVersion> {
98 let formatted_path = format!("models/{}/versions/{}", request.full_name, request.version);
99 let url = self.base_url.join(&formatted_path)?;
100 let response = self.client.patch(url).json(request).send().await?;
101 if !response.status().is_success() {
102 return Err(crate::error::parse_error_response(response).await);
103 }
104 let result = response.bytes().await?;
105 Ok(serde_json::from_slice(&result)?)
106 }
107 pub async fn delete_model_version(&self, request: &DeleteModelVersionRequest) -> Result<()> {
113 let formatted_path = format!("models/{}/versions/{}", request.full_name, request.version);
114 let url = self.base_url.join(&formatted_path)?;
115 let response = self.client.delete(url).send().await?;
116 if !response.status().is_success() {
117 return Err(crate::error::parse_error_response(response).await);
118 }
119 Ok(())
120 }
121 pub async fn finalize_model_version(
126 &self,
127 request: &FinalizeModelVersionRequest,
128 ) -> Result<ModelVersion> {
129 let formatted_path = format!(
130 "models/{}/versions/{}/finalize",
131 request.full_name, request.version
132 );
133 let url = self.base_url.join(&formatted_path)?;
134 let response = self.client.patch(url).json(request).send().await?;
135 if !response.status().is_success() {
136 return Err(crate::error::parse_error_response(response).await);
137 }
138 let result = response.bytes().await?;
139 Ok(serde_json::from_slice(&result)?)
140 }
141}