#![allow(unused_imports)]
use super::builders::*;
use super::client::CatalogServiceClient;
use unitycatalog_common::models::catalogs::v1::*;
use unitycatalog_common::models::schemas::v1::*;
#[derive(Clone)]
pub struct CatalogClient {
pub(crate) catalog_name: String,
pub(crate) client: CatalogServiceClient,
}
impl CatalogClient {
pub fn new(catalog_name: impl Into<String>, client: CatalogServiceClient) -> Self {
Self {
catalog_name: catalog_name.into(),
client,
}
}
pub fn name(&self) -> &str {
&self.catalog_name
}
pub fn full_name(&self) -> String {
self.catalog_name.clone()
}
pub fn get(&self) -> GetCatalogBuilder {
GetCatalogBuilder::new(self.client.clone(), &self.catalog_name)
}
pub fn update(&self) -> UpdateCatalogBuilder {
UpdateCatalogBuilder::new(self.client.clone(), &self.catalog_name)
}
pub fn delete(&self) -> DeleteCatalogBuilder {
DeleteCatalogBuilder::new(self.client.clone(), &self.catalog_name)
}
pub fn schema(&self, schema_name: impl Into<String>) -> crate::codegen::schemas::SchemaClient {
crate::codegen::schemas::SchemaClient::new(
&self.catalog_name,
schema_name,
crate::codegen::schemas::SchemaServiceClient::new(
self.client.client.clone(),
self.client.base_url.clone(),
),
)
}
pub fn create_schema(
&self,
name: impl Into<String>,
) -> crate::codegen::schemas::CreateSchemaBuilder {
crate::codegen::schemas::CreateSchemaBuilder::new(
crate::codegen::schemas::SchemaServiceClient::new(
self.client.client.clone(),
self.client.base_url.clone(),
),
name,
&self.catalog_name,
)
}
pub fn list_schemas(&self) -> crate::codegen::schemas::ListSchemasBuilder {
crate::codegen::schemas::ListSchemasBuilder::new(
crate::codegen::schemas::SchemaServiceClient::new(
self.client.client.clone(),
self.client.base_url.clone(),
),
&self.catalog_name,
)
}
}