Skip to main content

unitycatalog_client/codegen/registered_models/
resource.rs

1// @generated — do not edit by hand.
2#![allow(unused_imports)]
3use super::builders::*;
4use super::client::RegisteredModelServiceClient;
5use unitycatalog_common::models::registered_models::v1::*;
6/// A client scoped to a single `registered_model`.
7#[derive(Clone)]
8pub struct RegisteredModelClient {
9    pub(crate) catalog_name: String,
10    pub(crate) schema_name: String,
11    pub(crate) registered_model_name: String,
12    pub(crate) client: RegisteredModelServiceClient,
13}
14impl RegisteredModelClient {
15    /// Create a client bound to the resource's name components.
16    pub fn new(
17        catalog_name: impl Into<String>,
18        schema_name: impl Into<String>,
19        registered_model_name: impl Into<String>,
20        client: RegisteredModelServiceClient,
21    ) -> Self {
22        Self {
23            catalog_name: catalog_name.into(),
24            schema_name: schema_name.into(),
25            registered_model_name: registered_model_name.into(),
26            client,
27        }
28    }
29    /// Create a `registered_model` client from its dot-joined full name (e.g. `"catalog_name.schema_name.registered_model_name"`).
30    pub fn from_full_name(
31        full_name: impl Into<String>,
32        client: RegisteredModelServiceClient,
33    ) -> Self {
34        let full_name = full_name.into();
35        let mut parts = full_name.splitn(3usize, '.');
36        let catalog_name = parts.next().unwrap_or_default();
37        let schema_name = parts.next().unwrap_or_default();
38        let registered_model_name = parts.next().unwrap_or_default();
39        Self::new(catalog_name, schema_name, registered_model_name, client)
40    }
41    /// The `catalog_name` component of this resource's name.
42    pub fn catalog_name(&self) -> &str {
43        &self.catalog_name
44    }
45    /// The `schema_name` component of this resource's name.
46    pub fn schema_name(&self) -> &str {
47        &self.schema_name
48    }
49    /// This resource's own name (the leaf component).
50    pub fn name(&self) -> &str {
51        &self.registered_model_name
52    }
53    /// The fully-qualified name of this resource (its dot-joined name components).
54    pub fn full_name(&self) -> String {
55        format!(
56            "{}.{}.{}",
57            self.catalog_name, self.schema_name, self.registered_model_name
58        )
59    }
60    /// Get a registered model
61    ///
62    /// Gets a registered model from within a parent catalog and schema. For the
63    /// fetch to succeed, the caller must be a metastore admin, the owner of the
64    /// registered model, or have a privilege on the registered model.
65    pub fn get(&self) -> GetRegisteredModelBuilder {
66        GetRegisteredModelBuilder::new(
67            self.client.clone(),
68            format!(
69                "{}.{}.{}",
70                self.catalog_name, self.schema_name, self.registered_model_name
71            ),
72        )
73    }
74    /// Update a registered model
75    ///
76    /// Updates the registered model that matches the supplied name.
77    pub fn update(&self) -> UpdateRegisteredModelBuilder {
78        UpdateRegisteredModelBuilder::new(
79            self.client.clone(),
80            format!(
81                "{}.{}.{}",
82                self.catalog_name, self.schema_name, self.registered_model_name
83            ),
84        )
85    }
86    /// Delete a registered model
87    ///
88    /// Deletes the registered model that matches the supplied name. For the deletion
89    /// to succeed, the caller must be the owner of the registered model.
90    pub fn delete(&self) -> DeleteRegisteredModelBuilder {
91        DeleteRegisteredModelBuilder::new(
92            self.client.clone(),
93            format!(
94                "{}.{}.{}",
95                self.catalog_name, self.schema_name, self.registered_model_name
96            ),
97        )
98    }
99}