Skip to main content

unitycatalog_client/codegen/temporary_credentials/
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::temporary_credentials::v1::*;
9use url::Url;
10/// HTTP client for service operations
11#[derive(Clone)]
12pub struct TemporaryCredentialClient {
13    pub(crate) client: Transport,
14    pub(crate) base_url: Url,
15}
16impl TemporaryCredentialClient {
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    /// Generate a new set of credentials for a table.
25    pub async fn generate_temporary_table_credentials(
26        &self,
27        request: &GenerateTemporaryTableCredentialsRequest,
28    ) -> Result<TemporaryCredential> {
29        let url = self.base_url.join("temporary-table-credentials")?;
30        let response = self.client.post(url).json(request).send().await?;
31        if !response.status().is_success() {
32            return Err(crate::error::parse_error_response(response).await);
33        }
34        let result = response.bytes().await?;
35        Ok(serde_json::from_slice(&result)?)
36    }
37    /// Generate a new set of credentials for a path.
38    pub async fn generate_temporary_path_credentials(
39        &self,
40        request: &GenerateTemporaryPathCredentialsRequest,
41    ) -> Result<TemporaryCredential> {
42        let url = self.base_url.join("temporary-path-credentials")?;
43        let response = self.client.post(url).json(request).send().await?;
44        if !response.status().is_success() {
45            return Err(crate::error::parse_error_response(response).await);
46        }
47        let result = response.bytes().await?;
48        Ok(serde_json::from_slice(&result)?)
49    }
50    /// Generate a new set of credentials for a volume.
51    ///
52    /// The metastore must have the `external_access_enabled` flag set to true
53    /// (default false). The caller must have the `EXTERNAL_USE_SCHEMA`
54    /// privilege on the parent schema (granted by a catalog owner).
55    pub async fn generate_temporary_volume_credentials(
56        &self,
57        request: &GenerateTemporaryVolumeCredentialsRequest,
58    ) -> Result<TemporaryCredential> {
59        let url = self.base_url.join("temporary-volume-credentials")?;
60        let response = self.client.post(url).json(request).send().await?;
61        if !response.status().is_success() {
62            return Err(crate::error::parse_error_response(response).await);
63        }
64        let result = response.bytes().await?;
65        Ok(serde_json::from_slice(&result)?)
66    }
67    /// Generate a new set of credentials for a model version.
68    ///
69    /// The metastore must have the `external_access_enabled` flag set to true
70    /// (default false). The caller must have the `EXTERNAL_USE_SCHEMA`
71    /// privilege on the parent schema (granted by a catalog owner).
72    pub async fn generate_temporary_model_version_credentials(
73        &self,
74        request: &GenerateTemporaryModelVersionCredentialsRequest,
75    ) -> Result<TemporaryCredential> {
76        let url = self.base_url.join("temporary-model-version-credentials")?;
77        let response = self.client.post(url).json(request).send().await?;
78        if !response.status().is_success() {
79            return Err(crate::error::parse_error_response(response).await);
80        }
81        let result = response.bytes().await?;
82        Ok(serde_json::from_slice(&result)?)
83    }
84}