unitycatalog_client/codegen/registered_models/
client.rs1#![allow(unused_imports)]
3use crate::Result;
4use olai_http::CloudClient;
5use unitycatalog_common::models::registered_models::v1::*;
6use url::Url;
7#[derive(Clone)]
9pub struct RegisteredModelServiceClient {
10 pub(crate) client: CloudClient,
11 pub(crate) base_url: Url,
12}
13impl RegisteredModelServiceClient {
14 pub fn new(client: CloudClient, mut base_url: Url) -> Self {
16 if !base_url.path().ends_with('/') {
17 base_url.set_path(&format!("{}/", base_url.path()));
18 }
19 Self { client, base_url }
20 }
21 pub async fn list_registered_models(
29 &self,
30 request: &ListRegisteredModelsRequest,
31 ) -> Result<ListRegisteredModelsResponse> {
32 let mut url = self.base_url.join("models")?;
33 if let Some(ref value) = request.catalog_name {
34 url.query_pairs_mut()
35 .append_pair("catalog_name", &value.to_string());
36 }
37 if let Some(ref value) = request.schema_name {
38 url.query_pairs_mut()
39 .append_pair("schema_name", &value.to_string());
40 }
41 if let Some(ref value) = request.max_results {
42 url.query_pairs_mut()
43 .append_pair("max_results", &value.to_string());
44 }
45 if let Some(ref value) = request.page_token {
46 url.query_pairs_mut()
47 .append_pair("page_token", &value.to_string());
48 }
49 if let Some(ref value) = request.include_browse {
50 url.query_pairs_mut()
51 .append_pair("include_browse", &value.to_string());
52 }
53 let response = self.client.get(url).send().await?;
54 if !response.status().is_success() {
55 return Err(crate::error::parse_error_response(response).await);
56 }
57 let result = response.bytes().await?;
58 Ok(serde_json::from_slice(&result)?)
59 }
60 pub async fn create_registered_model(
65 &self,
66 request: &CreateRegisteredModelRequest,
67 ) -> Result<RegisteredModel> {
68 let url = self.base_url.join("models")?;
69 let response = self.client.post(url).json(request).send().await?;
70 if !response.status().is_success() {
71 return Err(crate::error::parse_error_response(response).await);
72 }
73 let result = response.bytes().await?;
74 Ok(serde_json::from_slice(&result)?)
75 }
76 pub async fn get_registered_model(
82 &self,
83 request: &GetRegisteredModelRequest,
84 ) -> Result<RegisteredModel> {
85 let formatted_path = format!("models/{}", request.full_name);
86 let mut url = self.base_url.join(&formatted_path)?;
87 if let Some(ref value) = request.include_browse {
88 url.query_pairs_mut()
89 .append_pair("include_browse", &value.to_string());
90 }
91 let response = self.client.get(url).send().await?;
92 if !response.status().is_success() {
93 return Err(crate::error::parse_error_response(response).await);
94 }
95 let result = response.bytes().await?;
96 Ok(serde_json::from_slice(&result)?)
97 }
98 pub async fn update_registered_model(
102 &self,
103 request: &UpdateRegisteredModelRequest,
104 ) -> Result<RegisteredModel> {
105 let formatted_path = format!("models/{}", request.full_name);
106 let url = self.base_url.join(&formatted_path)?;
107 let response = self.client.patch(url).json(request).send().await?;
108 if !response.status().is_success() {
109 return Err(crate::error::parse_error_response(response).await);
110 }
111 let result = response.bytes().await?;
112 Ok(serde_json::from_slice(&result)?)
113 }
114 pub async fn delete_registered_model(
119 &self,
120 request: &DeleteRegisteredModelRequest,
121 ) -> Result<()> {
122 let formatted_path = format!("models/{}", request.full_name);
123 let mut url = self.base_url.join(&formatted_path)?;
124 if let Some(ref value) = request.force {
125 url.query_pairs_mut()
126 .append_pair("force", &value.to_string());
127 }
128 let response = self.client.delete(url).send().await?;
129 if !response.status().is_success() {
130 return Err(crate::error::parse_error_response(response).await);
131 }
132 Ok(())
133 }
134}