Skip to main content

unitycatalog_client/codegen/registered_models/
client.rs

1// @generated — do not edit by hand.
2#![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::registered_models::v1::*;
9use url::Url;
10/// HTTP client for service operations
11#[derive(Clone)]
12pub struct RegisteredModelServiceClient {
13    pub(crate) client: Transport,
14    pub(crate) base_url: Url,
15}
16impl RegisteredModelServiceClient {
17    /// Create a new client instance
18    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    /// List registered models
25    ///
26    /// List registered models within the specified parent catalog and schema. If
27    /// the caller is the metastore admin, all registered models are returned in the
28    /// response. Otherwise, the caller must have USE_CATALOG on the parent catalog
29    /// and USE_SCHEMA on the parent schema, and the model must either be owned by
30    /// the caller or the caller must have a privilege on the model.
31    pub async fn list_registered_models(
32        &self,
33        request: &ListRegisteredModelsRequest,
34    ) -> Result<ListRegisteredModelsResponse> {
35        let mut url = self.base_url.join("models")?;
36        if let Some(ref value) = request.catalog_name {
37            url.query_pairs_mut()
38                .append_pair("catalog_name", &value.to_string());
39        }
40        if let Some(ref value) = request.schema_name {
41            url.query_pairs_mut()
42                .append_pair("schema_name", &value.to_string());
43        }
44        if let Some(ref value) = request.max_results {
45            url.query_pairs_mut()
46                .append_pair("max_results", &value.to_string());
47        }
48        if let Some(ref value) = request.page_token {
49            url.query_pairs_mut()
50                .append_pair("page_token", &value.to_string());
51        }
52        if let Some(ref value) = request.include_browse {
53            url.query_pairs_mut()
54                .append_pair("include_browse", &value.to_string());
55        }
56        let response = self.client.get(url).send().await?;
57        if !response.status().is_success() {
58            return Err(crate::error::parse_error_response(response).await);
59        }
60        let result = response.bytes().await?;
61        Ok(serde_json::from_slice(&result)?)
62    }
63    /// Create a registered model
64    ///
65    /// Creates a new registered model. The caller must be a metastore admin or have
66    /// the CREATE_MODEL privilege on the parent catalog and schema.
67    pub async fn create_registered_model(
68        &self,
69        request: &CreateRegisteredModelRequest,
70    ) -> Result<RegisteredModel> {
71        let url = self.base_url.join("models")?;
72        let response = self.client.post(url).json(request).send().await?;
73        if !response.status().is_success() {
74            return Err(crate::error::parse_error_response(response).await);
75        }
76        let result = response.bytes().await?;
77        Ok(serde_json::from_slice(&result)?)
78    }
79    /// Get a registered model
80    ///
81    /// Gets a registered model from within a parent catalog and schema. For the
82    /// fetch to succeed, the caller must be a metastore admin, the owner of the
83    /// registered model, or have a privilege on the registered model.
84    pub async fn get_registered_model(
85        &self,
86        request: &GetRegisteredModelRequest,
87    ) -> Result<RegisteredModel> {
88        let formatted_path = format!("models/{}", request.full_name);
89        let mut url = self.base_url.join(&formatted_path)?;
90        if let Some(ref value) = request.include_browse {
91            url.query_pairs_mut()
92                .append_pair("include_browse", &value.to_string());
93        }
94        let response = self.client.get(url).send().await?;
95        if !response.status().is_success() {
96            return Err(crate::error::parse_error_response(response).await);
97        }
98        let result = response.bytes().await?;
99        Ok(serde_json::from_slice(&result)?)
100    }
101    /// Update a registered model
102    ///
103    /// Updates the registered model that matches the supplied name.
104    pub async fn update_registered_model(
105        &self,
106        request: &UpdateRegisteredModelRequest,
107    ) -> Result<RegisteredModel> {
108        let formatted_path = format!("models/{}", request.full_name);
109        let url = self.base_url.join(&formatted_path)?;
110        let response = self.client.patch(url).json(request).send().await?;
111        if !response.status().is_success() {
112            return Err(crate::error::parse_error_response(response).await);
113        }
114        let result = response.bytes().await?;
115        Ok(serde_json::from_slice(&result)?)
116    }
117    /// Delete a registered model
118    ///
119    /// Deletes the registered model that matches the supplied name. For the deletion
120    /// to succeed, the caller must be the owner of the registered model.
121    pub async fn delete_registered_model(
122        &self,
123        request: &DeleteRegisteredModelRequest,
124    ) -> Result<()> {
125        let formatted_path = format!("models/{}", request.full_name);
126        let mut url = self.base_url.join(&formatted_path)?;
127        if let Some(ref value) = request.force {
128            url.query_pairs_mut()
129                .append_pair("force", &value.to_string());
130        }
131        let response = self.client.delete(url).send().await?;
132        if !response.status().is_success() {
133            return Err(crate::error::parse_error_response(response).await);
134        }
135        Ok(())
136    }
137}