unitycatalog_client/codegen/schemas/
resource.rs1#![allow(unused_imports)]
3use super::builders::*;
4use super::client::SchemaServiceClient;
5use unitycatalog_common::models::agent_skills::v0alpha1::*;
6use unitycatalog_common::models::agents::v0alpha1::*;
7use unitycatalog_common::models::functions::v1::*;
8use unitycatalog_common::models::schemas::v1::*;
9use unitycatalog_common::models::tables::v1::*;
10use unitycatalog_common::models::volumes::v1::*;
11#[derive(Clone)]
13pub struct SchemaClient {
14 pub(crate) catalog_name: String,
15 pub(crate) schema_name: String,
16 pub(crate) client: SchemaServiceClient,
17}
18impl SchemaClient {
19 pub fn new(
21 catalog_name: impl Into<String>,
22 schema_name: impl Into<String>,
23 client: SchemaServiceClient,
24 ) -> Self {
25 Self {
26 catalog_name: catalog_name.into(),
27 schema_name: schema_name.into(),
28 client,
29 }
30 }
31 pub fn from_full_name(full_name: impl Into<String>, client: SchemaServiceClient) -> Self {
33 let full_name = full_name.into();
34 let mut parts = full_name.splitn(2usize, '.');
35 let catalog_name = parts.next().unwrap_or_default();
36 let schema_name = parts.next().unwrap_or_default();
37 Self::new(catalog_name, schema_name, client)
38 }
39 pub fn catalog_name(&self) -> &str {
41 &self.catalog_name
42 }
43 pub fn name(&self) -> &str {
45 &self.schema_name
46 }
47 pub fn full_name(&self) -> String {
49 format!("{}.{}", self.catalog_name, self.schema_name)
50 }
51 pub fn get(&self) -> GetSchemaBuilder {
55 GetSchemaBuilder::new(
56 self.client.clone(),
57 format!("{}.{}", self.catalog_name, self.schema_name),
58 )
59 }
60 pub fn update(&self) -> UpdateSchemaBuilder {
65 UpdateSchemaBuilder::new(
66 self.client.clone(),
67 format!("{}.{}", self.catalog_name, self.schema_name),
68 )
69 }
70 pub fn delete(&self) -> DeleteSchemaBuilder {
73 DeleteSchemaBuilder::new(
74 self.client.clone(),
75 format!("{}.{}", self.catalog_name, self.schema_name),
76 )
77 }
78 pub fn agent(&self, agent_name: impl Into<String>) -> crate::codegen::agents::AgentClient {
80 crate::codegen::agents::AgentClient::new(
81 &self.catalog_name,
82 &self.schema_name,
83 agent_name,
84 crate::codegen::agents::AgentServiceClient::new(
85 self.client.client.clone(),
86 self.client.base_url.clone(),
87 ),
88 )
89 }
90 pub fn create_agent(
92 &self,
93 name: impl Into<String>,
94 invocation_protocol: InvocationProtocol,
95 endpoint: impl Into<String>,
96 ) -> crate::codegen::agents::CreateAgentBuilder {
97 crate::codegen::agents::CreateAgentBuilder::new(
98 crate::codegen::agents::AgentServiceClient::new(
99 self.client.client.clone(),
100 self.client.base_url.clone(),
101 ),
102 &self.catalog_name,
103 &self.schema_name,
104 name,
105 invocation_protocol,
106 endpoint,
107 )
108 }
109 pub fn list_agents(&self) -> crate::codegen::agents::ListAgentsBuilder {
111 crate::codegen::agents::ListAgentsBuilder::new(
112 crate::codegen::agents::AgentServiceClient::new(
113 self.client.client.clone(),
114 self.client.base_url.clone(),
115 ),
116 &self.catalog_name,
117 &self.schema_name,
118 )
119 }
120 pub fn agent_skill(
122 &self,
123 agent_skill_name: impl Into<String>,
124 ) -> crate::codegen::agent_skills::AgentSkillClient {
125 crate::codegen::agent_skills::AgentSkillClient::new(
126 &self.catalog_name,
127 &self.schema_name,
128 agent_skill_name,
129 crate::codegen::agent_skills::AgentSkillServiceClient::new(
130 self.client.client.clone(),
131 self.client.base_url.clone(),
132 ),
133 )
134 }
135 pub fn create_agent_skill(
137 &self,
138 name: impl Into<String>,
139 agent_skill_type: AgentSkillType,
140 ) -> crate::codegen::agent_skills::CreateAgentSkillBuilder {
141 crate::codegen::agent_skills::CreateAgentSkillBuilder::new(
142 crate::codegen::agent_skills::AgentSkillServiceClient::new(
143 self.client.client.clone(),
144 self.client.base_url.clone(),
145 ),
146 &self.catalog_name,
147 &self.schema_name,
148 name,
149 agent_skill_type,
150 )
151 }
152 pub fn list_agent_skills(&self) -> crate::codegen::agent_skills::ListAgentSkillsBuilder {
154 crate::codegen::agent_skills::ListAgentSkillsBuilder::new(
155 crate::codegen::agent_skills::AgentSkillServiceClient::new(
156 self.client.client.clone(),
157 self.client.base_url.clone(),
158 ),
159 &self.catalog_name,
160 &self.schema_name,
161 )
162 }
163 pub fn function(
165 &self,
166 function_name: impl Into<String>,
167 ) -> crate::codegen::functions::FunctionClient {
168 crate::codegen::functions::FunctionClient::new(
169 &self.catalog_name,
170 &self.schema_name,
171 function_name,
172 crate::codegen::functions::FunctionServiceClient::new(
173 self.client.client.clone(),
174 self.client.base_url.clone(),
175 ),
176 )
177 }
178 pub fn create_function(
180 &self,
181 name: impl Into<String>,
182 data_type: impl Into<String>,
183 full_data_type: impl Into<String>,
184 parameter_style: ParameterStyle,
185 is_deterministic: bool,
186 sql_data_access: SqlDataAccess,
187 is_null_call: bool,
188 security_type: SecurityType,
189 routine_body: RoutineBody,
190 ) -> crate::codegen::functions::CreateFunctionBuilder {
191 crate::codegen::functions::CreateFunctionBuilder::new(
192 crate::codegen::functions::FunctionServiceClient::new(
193 self.client.client.clone(),
194 self.client.base_url.clone(),
195 ),
196 name,
197 &self.catalog_name,
198 &self.schema_name,
199 data_type,
200 full_data_type,
201 parameter_style,
202 is_deterministic,
203 sql_data_access,
204 is_null_call,
205 security_type,
206 routine_body,
207 )
208 }
209 pub fn list_functions(&self) -> crate::codegen::functions::ListFunctionsBuilder {
211 crate::codegen::functions::ListFunctionsBuilder::new(
212 crate::codegen::functions::FunctionServiceClient::new(
213 self.client.client.clone(),
214 self.client.base_url.clone(),
215 ),
216 &self.catalog_name,
217 &self.schema_name,
218 )
219 }
220 pub fn table(&self, table_name: impl Into<String>) -> crate::codegen::tables::TableClient {
222 crate::codegen::tables::TableClient::new(
223 &self.catalog_name,
224 &self.schema_name,
225 table_name,
226 crate::codegen::tables::TableServiceClient::new(
227 self.client.client.clone(),
228 self.client.base_url.clone(),
229 ),
230 )
231 }
232 pub fn create_table(
234 &self,
235 name: impl Into<String>,
236 table_type: TableType,
237 data_source_format: DataSourceFormat,
238 ) -> crate::codegen::tables::CreateTableBuilder {
239 crate::codegen::tables::CreateTableBuilder::new(
240 crate::codegen::tables::TableServiceClient::new(
241 self.client.client.clone(),
242 self.client.base_url.clone(),
243 ),
244 name,
245 &self.schema_name,
246 &self.catalog_name,
247 table_type,
248 data_source_format,
249 )
250 }
251 pub fn list_tables(&self) -> crate::codegen::tables::ListTablesBuilder {
253 crate::codegen::tables::ListTablesBuilder::new(
254 crate::codegen::tables::TableServiceClient::new(
255 self.client.client.clone(),
256 self.client.base_url.clone(),
257 ),
258 &self.catalog_name,
259 &self.schema_name,
260 )
261 }
262 pub fn volume(&self, volume_name: impl Into<String>) -> crate::codegen::volumes::VolumeClient {
264 crate::codegen::volumes::VolumeClient::new(
265 &self.catalog_name,
266 &self.schema_name,
267 volume_name,
268 crate::codegen::volumes::VolumeServiceClient::new(
269 self.client.client.clone(),
270 self.client.base_url.clone(),
271 ),
272 )
273 }
274 pub fn create_volume(
276 &self,
277 name: impl Into<String>,
278 volume_type: VolumeType,
279 ) -> crate::codegen::volumes::CreateVolumeBuilder {
280 crate::codegen::volumes::CreateVolumeBuilder::new(
281 crate::codegen::volumes::VolumeServiceClient::new(
282 self.client.client.clone(),
283 self.client.base_url.clone(),
284 ),
285 &self.catalog_name,
286 &self.schema_name,
287 name,
288 volume_type,
289 )
290 }
291 pub fn list_volumes(&self) -> crate::codegen::volumes::ListVolumesBuilder {
293 crate::codegen::volumes::ListVolumesBuilder::new(
294 crate::codegen::volumes::VolumeServiceClient::new(
295 self.client.client.clone(),
296 self.client.base_url.clone(),
297 ),
298 &self.catalog_name,
299 &self.schema_name,
300 )
301 }
302}