1#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
5#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6pub struct FunctionParameterInfo {
7 #[prost(string, tag="1")]
9 pub name: ::prost::alloc::string::String,
10 #[prost(string, tag="2")]
12 pub type_text: ::prost::alloc::string::String,
13 #[prost(string, optional, tag="3")]
15 pub type_json: ::core::option::Option<::prost::alloc::string::String>,
16 #[prost(enumeration="super::super::tables::v1::ColumnTypeName", tag="4")]
18 pub type_name: i32,
19 #[prost(int32, optional, tag="5")]
21 pub type_precision: ::core::option::Option<i32>,
22 #[prost(int32, optional, tag="6")]
24 pub type_scale: ::core::option::Option<i32>,
25 #[prost(string, optional, tag="7")]
27 pub type_interval_type: ::core::option::Option<::prost::alloc::string::String>,
28 #[prost(int32, optional, tag="8")]
30 pub position: ::core::option::Option<i32>,
31 #[prost(enumeration="ParameterMode", tag="9")]
33 pub parameter_mode: i32,
34 #[prost(enumeration="FunctionParameterType", tag="10")]
36 pub parameter_type: i32,
37 #[prost(string, optional, tag="11")]
39 pub parameter_default: ::core::option::Option<::prost::alloc::string::String>,
40 #[prost(string, optional, tag="12")]
42 pub comment: ::core::option::Option<::prost::alloc::string::String>,
43}
44#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
46#[derive(Clone, PartialEq, ::prost::Message)]
47pub struct FunctionParameterInfos {
48 #[prost(message, repeated, tag="1")]
50 pub parameters: ::prost::alloc::vec::Vec<FunctionParameterInfo>,
51}
52#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
54#[derive(Clone, PartialEq, ::prost::Message)]
55pub struct Function {
56 #[prost(string, tag="1")]
58 pub name: ::prost::alloc::string::String,
59 #[prost(string, tag="2")]
61 pub catalog_name: ::prost::alloc::string::String,
62 #[prost(string, tag="3")]
64 pub schema_name: ::prost::alloc::string::String,
65 #[prost(string, tag="4")]
69 pub full_name: ::prost::alloc::string::String,
70 #[prost(string, tag="5")]
72 pub data_type: ::prost::alloc::string::String,
73 #[prost(string, tag="6")]
75 pub full_data_type: ::prost::alloc::string::String,
76 #[prost(message, optional, tag="7")]
78 pub input_params: ::core::option::Option<FunctionParameterInfos>,
79 #[prost(string, optional, tag="8")]
81 pub return_params: ::core::option::Option<::prost::alloc::string::String>,
82 #[prost(string, optional, tag="9")]
84 pub routine_body_language: ::core::option::Option<::prost::alloc::string::String>,
85 #[prost(string, optional, tag="10")]
87 pub routine_definition: ::core::option::Option<::prost::alloc::string::String>,
88 #[prost(string, optional, tag="11")]
90 pub routine_dependencies: ::core::option::Option<::prost::alloc::string::String>,
91 #[prost(enumeration="ParameterStyle", tag="12")]
93 pub parameter_style: i32,
94 #[prost(bool, tag="13")]
96 pub is_deterministic: bool,
97 #[prost(enumeration="SqlDataAccess", tag="14")]
99 pub sql_data_access: i32,
100 #[prost(bool, tag="15")]
102 pub is_null_call: bool,
103 #[prost(enumeration="SecurityType", tag="16")]
105 pub security_type: i32,
106 #[prost(string, optional, tag="17")]
108 pub specific_name: ::core::option::Option<::prost::alloc::string::String>,
109 #[prost(enumeration="RoutineBody", tag="18")]
111 pub routine_body: i32,
112 #[prost(string, optional, tag="19")]
114 pub comment: ::core::option::Option<::prost::alloc::string::String>,
115 #[prost(map="string, string", tag="20")]
117 pub properties: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
118 #[prost(string, optional, tag="21")]
120 pub owner: ::core::option::Option<::prost::alloc::string::String>,
121 #[prost(string, optional, tag="22")]
123 pub function_id: ::core::option::Option<::prost::alloc::string::String>,
124 #[prost(int64, optional, tag="1000")]
126 pub created_at: ::core::option::Option<i64>,
127 #[prost(string, optional, tag="1001")]
129 pub created_by: ::core::option::Option<::prost::alloc::string::String>,
130 #[prost(int64, optional, tag="1002")]
132 pub updated_at: ::core::option::Option<i64>,
133 #[prost(string, optional, tag="1003")]
135 pub updated_by: ::core::option::Option<::prost::alloc::string::String>,
136}
137#[cfg_attr(feature = "python", ::pyo3::pyclass)]
139#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
140#[repr(i32)]
141pub enum RoutineBody {
142 Unspecified = 0,
143 Sql = 1,
145 External = 2,
147}
148impl RoutineBody {
149 pub fn as_str_name(&self) -> &'static str {
154 match self {
155 Self::Unspecified => "ROUTINE_BODY_UNSPECIFIED",
156 Self::Sql => "SQL",
157 Self::External => "EXTERNAL",
158 }
159 }
160 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
162 match value {
163 "ROUTINE_BODY_UNSPECIFIED" => Some(Self::Unspecified),
164 "SQL" => Some(Self::Sql),
165 "EXTERNAL" => Some(Self::External),
166 _ => None,
167 }
168 }
169}
170#[cfg_attr(feature = "python", ::pyo3::pyclass)]
172#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
173#[repr(i32)]
174pub enum ParameterStyle {
175 Unspecified = 0,
176 S = 1,
178}
179impl ParameterStyle {
180 pub fn as_str_name(&self) -> &'static str {
185 match self {
186 Self::Unspecified => "PARAMETER_STYLE_UNSPECIFIED",
187 Self::S => "S",
188 }
189 }
190 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
192 match value {
193 "PARAMETER_STYLE_UNSPECIFIED" => Some(Self::Unspecified),
194 "S" => Some(Self::S),
195 _ => None,
196 }
197 }
198}
199#[cfg_attr(feature = "python", ::pyo3::pyclass)]
201#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
202#[repr(i32)]
203pub enum SecurityType {
204 Unspecified = 0,
205 Definer = 1,
207}
208impl SecurityType {
209 pub fn as_str_name(&self) -> &'static str {
214 match self {
215 Self::Unspecified => "SECURITY_TYPE_UNSPECIFIED",
216 Self::Definer => "DEFINER",
217 }
218 }
219 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
221 match value {
222 "SECURITY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
223 "DEFINER" => Some(Self::Definer),
224 _ => None,
225 }
226 }
227}
228#[cfg_attr(feature = "python", ::pyo3::pyclass)]
230#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
231#[repr(i32)]
232pub enum SqlDataAccess {
233 Unspecified = 0,
234 ContainsSql = 1,
236 ReadsSqlData = 2,
238 NoSql = 3,
240}
241impl SqlDataAccess {
242 pub fn as_str_name(&self) -> &'static str {
247 match self {
248 Self::Unspecified => "SQL_DATA_ACCESS_UNSPECIFIED",
249 Self::ContainsSql => "CONTAINS_SQL",
250 Self::ReadsSqlData => "READS_SQL_DATA",
251 Self::NoSql => "NO_SQL",
252 }
253 }
254 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
256 match value {
257 "SQL_DATA_ACCESS_UNSPECIFIED" => Some(Self::Unspecified),
258 "CONTAINS_SQL" => Some(Self::ContainsSql),
259 "READS_SQL_DATA" => Some(Self::ReadsSqlData),
260 "NO_SQL" => Some(Self::NoSql),
261 _ => None,
262 }
263 }
264}
265#[cfg_attr(feature = "python", ::pyo3::pyclass)]
267#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
268#[repr(i32)]
269pub enum ParameterMode {
270 Unspecified = 0,
271 In = 1,
273}
274impl ParameterMode {
275 pub fn as_str_name(&self) -> &'static str {
280 match self {
281 Self::Unspecified => "PARAMETER_MODE_UNSPECIFIED",
282 Self::In => "IN",
283 }
284 }
285 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
287 match value {
288 "PARAMETER_MODE_UNSPECIFIED" => Some(Self::Unspecified),
289 "IN" => Some(Self::In),
290 _ => None,
291 }
292 }
293}
294#[cfg_attr(feature = "python", ::pyo3::pyclass)]
296#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
297#[repr(i32)]
298pub enum FunctionParameterType {
299 Unspecified = 0,
300 Column = 1,
302 Param = 2,
304}
305impl FunctionParameterType {
306 pub fn as_str_name(&self) -> &'static str {
311 match self {
312 Self::Unspecified => "FUNCTION_PARAMETER_TYPE_UNSPECIFIED",
313 Self::Column => "COLUMN",
314 Self::Param => "PARAM",
315 }
316 }
317 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
319 match value {
320 "FUNCTION_PARAMETER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
321 "COLUMN" => Some(Self::Column),
322 "PARAM" => Some(Self::Param),
323 _ => None,
324 }
325 }
326}
327#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
329#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
330pub struct ListFunctionsRequest {
331 #[prost(string, tag="1")]
333 pub catalog_name: ::prost::alloc::string::String,
334 #[prost(string, tag="2")]
336 pub schema_name: ::prost::alloc::string::String,
337 #[prost(int32, optional, tag="3")]
339 pub max_results: ::core::option::Option<i32>,
340 #[prost(string, optional, tag="4")]
342 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
343 #[prost(bool, optional, tag="5")]
345 pub include_browse: ::core::option::Option<bool>,
346}
347#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
349#[derive(Clone, PartialEq, ::prost::Message)]
350pub struct ListFunctionsResponse {
351 #[prost(message, repeated, tag="1")]
353 pub functions: ::prost::alloc::vec::Vec<Function>,
354 #[prost(string, optional, tag="2")]
356 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
357}
358#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
360#[derive(Clone, PartialEq, ::prost::Message)]
361pub struct CreateFunctionRequest {
362 #[prost(string, tag="1")]
364 pub name: ::prost::alloc::string::String,
365 #[prost(string, tag="2")]
367 pub catalog_name: ::prost::alloc::string::String,
368 #[prost(string, tag="3")]
370 pub schema_name: ::prost::alloc::string::String,
371 #[prost(string, tag="4")]
373 pub data_type: ::prost::alloc::string::String,
374 #[prost(string, tag="5")]
376 pub full_data_type: ::prost::alloc::string::String,
377 #[prost(message, optional, tag="6")]
379 pub input_params: ::core::option::Option<FunctionParameterInfos>,
380 #[prost(enumeration="ParameterStyle", tag="7")]
382 pub parameter_style: i32,
383 #[prost(bool, tag="8")]
385 pub is_deterministic: bool,
386 #[prost(enumeration="SqlDataAccess", tag="9")]
388 pub sql_data_access: i32,
389 #[prost(bool, tag="10")]
391 pub is_null_call: bool,
392 #[prost(enumeration="SecurityType", tag="11")]
394 pub security_type: i32,
395 #[prost(enumeration="RoutineBody", tag="12")]
397 pub routine_body: i32,
398 #[prost(string, optional, tag="13")]
400 pub routine_definition: ::core::option::Option<::prost::alloc::string::String>,
401 #[prost(string, optional, tag="14")]
403 pub routine_body_language: ::core::option::Option<::prost::alloc::string::String>,
404 #[prost(string, optional, tag="15")]
406 pub comment: ::core::option::Option<::prost::alloc::string::String>,
407 #[prost(map="string, string", tag="16")]
409 pub properties: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
410}
411#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
413#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
414pub struct GetFunctionRequest {
415 #[prost(string, tag="1")]
417 pub name: ::prost::alloc::string::String,
418}
419#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
421#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
422pub struct UpdateFunctionRequest {
423 #[prost(string, tag="1")]
425 pub name: ::prost::alloc::string::String,
426 #[prost(string, optional, tag="2")]
428 pub owner: ::core::option::Option<::prost::alloc::string::String>,
429}
430#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
432#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
433pub struct DeleteFunctionRequest {
434 #[prost(string, tag="1")]
436 pub name: ::prost::alloc::string::String,
437 #[prost(bool, optional, tag="2")]
439 pub force: ::core::option::Option<bool>,
440}
441include!("unitycatalog.functions.v1.serde.rs");
442