1#[allow(clippy::derive_partial_eq_without_eq)]
4#[derive(Clone, Debug, PartialEq)]
5pub enum Resource {
6 Agent(super::agents::v0alpha1::Agent),
7 AgentSkill(super::agent_skills::v0alpha1::AgentSkill),
8 Catalog(super::catalogs::v1::Catalog),
9 Column(super::tables::v1::Column),
10 Credential(super::credentials::v1::Credential),
11 ExternalLocation(super::external_locations::v1::ExternalLocation),
12 Function(super::functions::v1::Function),
13 ModelVersion(super::model_versions::v1::ModelVersion),
14 PolicyInfo(super::policies::v1::PolicyInfo),
15 Provider(super::providers::v1::Provider),
16 Recipient(super::recipients::v1::Recipient),
17 RegisteredModel(super::registered_models::v1::RegisteredModel),
18 Schema(super::schemas::v1::Schema),
19 Share(super::shares::v1::Share),
20 StagingTable(super::staging_tables::v1::StagingTable),
21 Table(super::tables::v1::Table),
22 TagPolicy(super::tags::v1::TagPolicy),
23 Volume(super::volumes::v1::Volume),
24}
25#[derive(
27 ::strum::AsRefStr,
28 ::strum::Display,
29 ::strum::EnumIter,
30 ::strum::EnumString,
31 ::serde::Serialize,
32 ::serde::Deserialize,
33 Hash,
34 Clone,
35 Copy,
36 Debug,
37 PartialEq,
38 Eq,
39 PartialOrd,
40 Ord,
41)]
42#[strum(serialize_all = "snake_case", ascii_case_insensitive)]
43#[serde(rename_all = "snake_case")]
44#[cfg_attr(feature = "sqlx", derive(::sqlx::Type))]
45#[cfg_attr(
46 feature = "sqlx",
47 sqlx(type_name = "object_label", rename_all = "snake_case")
48)]
49pub enum ObjectLabel {
50 Agent,
51 AgentSkill,
52 Catalog,
53 Column,
54 Credential,
55 ExternalLocation,
56 Function,
57 ModelVersion,
58 PolicyInfo,
59 Provider,
60 Recipient,
61 RegisteredModel,
62 Schema,
63 Share,
64 StagingTable,
65 Table,
66 TagPolicy,
67 Volume,
68}
69impl Resource {
70 pub fn resource_label(&self) -> &ObjectLabel {
72 match self {
73 Resource::Agent(_) => &ObjectLabel::Agent,
74 Resource::AgentSkill(_) => &ObjectLabel::AgentSkill,
75 Resource::Catalog(_) => &ObjectLabel::Catalog,
76 Resource::Column(_) => &ObjectLabel::Column,
77 Resource::Credential(_) => &ObjectLabel::Credential,
78 Resource::ExternalLocation(_) => &ObjectLabel::ExternalLocation,
79 Resource::Function(_) => &ObjectLabel::Function,
80 Resource::ModelVersion(_) => &ObjectLabel::ModelVersion,
81 Resource::PolicyInfo(_) => &ObjectLabel::PolicyInfo,
82 Resource::Provider(_) => &ObjectLabel::Provider,
83 Resource::Recipient(_) => &ObjectLabel::Recipient,
84 Resource::RegisteredModel(_) => &ObjectLabel::RegisteredModel,
85 Resource::Schema(_) => &ObjectLabel::Schema,
86 Resource::Share(_) => &ObjectLabel::Share,
87 Resource::StagingTable(_) => &ObjectLabel::StagingTable,
88 Resource::Table(_) => &ObjectLabel::Table,
89 Resource::TagPolicy(_) => &ObjectLabel::TagPolicy,
90 Resource::Volume(_) => &ObjectLabel::Volume,
91 }
92 }
93}
94impl From<super::agents::v0alpha1::Agent> for Resource {
95 fn from(v: super::agents::v0alpha1::Agent) -> Self {
96 Resource::Agent(v)
97 }
98}
99impl TryFrom<Resource> for super::agents::v0alpha1::Agent {
100 type Error = crate::Error;
101 fn try_from(r: Resource) -> Result<Self, Self::Error> {
102 match r {
103 Resource::Agent(v) => Ok(v),
104 _ => Err(<crate::Error>::generic(concat!(
105 "Resource is not a ",
106 stringify!(Agent)
107 ))),
108 }
109 }
110}
111impl From<super::agent_skills::v0alpha1::AgentSkill> for Resource {
112 fn from(v: super::agent_skills::v0alpha1::AgentSkill) -> Self {
113 Resource::AgentSkill(v)
114 }
115}
116impl TryFrom<Resource> for super::agent_skills::v0alpha1::AgentSkill {
117 type Error = crate::Error;
118 fn try_from(r: Resource) -> Result<Self, Self::Error> {
119 match r {
120 Resource::AgentSkill(v) => Ok(v),
121 _ => Err(<crate::Error>::generic(concat!(
122 "Resource is not a ",
123 stringify!(AgentSkill)
124 ))),
125 }
126 }
127}
128impl From<super::catalogs::v1::Catalog> for Resource {
129 fn from(v: super::catalogs::v1::Catalog) -> Self {
130 Resource::Catalog(v)
131 }
132}
133impl TryFrom<Resource> for super::catalogs::v1::Catalog {
134 type Error = crate::Error;
135 fn try_from(r: Resource) -> Result<Self, Self::Error> {
136 match r {
137 Resource::Catalog(v) => Ok(v),
138 _ => Err(<crate::Error>::generic(concat!(
139 "Resource is not a ",
140 stringify!(Catalog)
141 ))),
142 }
143 }
144}
145impl From<super::tables::v1::Column> for Resource {
146 fn from(v: super::tables::v1::Column) -> Self {
147 Resource::Column(v)
148 }
149}
150impl TryFrom<Resource> for super::tables::v1::Column {
151 type Error = crate::Error;
152 fn try_from(r: Resource) -> Result<Self, Self::Error> {
153 match r {
154 Resource::Column(v) => Ok(v),
155 _ => Err(<crate::Error>::generic(concat!(
156 "Resource is not a ",
157 stringify!(Column)
158 ))),
159 }
160 }
161}
162impl From<super::credentials::v1::Credential> for Resource {
163 fn from(v: super::credentials::v1::Credential) -> Self {
164 Resource::Credential(v)
165 }
166}
167impl TryFrom<Resource> for super::credentials::v1::Credential {
168 type Error = crate::Error;
169 fn try_from(r: Resource) -> Result<Self, Self::Error> {
170 match r {
171 Resource::Credential(v) => Ok(v),
172 _ => Err(<crate::Error>::generic(concat!(
173 "Resource is not a ",
174 stringify!(Credential)
175 ))),
176 }
177 }
178}
179impl From<super::external_locations::v1::ExternalLocation> for Resource {
180 fn from(v: super::external_locations::v1::ExternalLocation) -> Self {
181 Resource::ExternalLocation(v)
182 }
183}
184impl TryFrom<Resource> for super::external_locations::v1::ExternalLocation {
185 type Error = crate::Error;
186 fn try_from(r: Resource) -> Result<Self, Self::Error> {
187 match r {
188 Resource::ExternalLocation(v) => Ok(v),
189 _ => Err(<crate::Error>::generic(concat!(
190 "Resource is not a ",
191 stringify!(ExternalLocation)
192 ))),
193 }
194 }
195}
196impl From<super::functions::v1::Function> for Resource {
197 fn from(v: super::functions::v1::Function) -> Self {
198 Resource::Function(v)
199 }
200}
201impl TryFrom<Resource> for super::functions::v1::Function {
202 type Error = crate::Error;
203 fn try_from(r: Resource) -> Result<Self, Self::Error> {
204 match r {
205 Resource::Function(v) => Ok(v),
206 _ => Err(<crate::Error>::generic(concat!(
207 "Resource is not a ",
208 stringify!(Function)
209 ))),
210 }
211 }
212}
213impl From<super::model_versions::v1::ModelVersion> for Resource {
214 fn from(v: super::model_versions::v1::ModelVersion) -> Self {
215 Resource::ModelVersion(v)
216 }
217}
218impl TryFrom<Resource> for super::model_versions::v1::ModelVersion {
219 type Error = crate::Error;
220 fn try_from(r: Resource) -> Result<Self, Self::Error> {
221 match r {
222 Resource::ModelVersion(v) => Ok(v),
223 _ => Err(<crate::Error>::generic(concat!(
224 "Resource is not a ",
225 stringify!(ModelVersion)
226 ))),
227 }
228 }
229}
230impl From<super::policies::v1::PolicyInfo> for Resource {
231 fn from(v: super::policies::v1::PolicyInfo) -> Self {
232 Resource::PolicyInfo(v)
233 }
234}
235impl TryFrom<Resource> for super::policies::v1::PolicyInfo {
236 type Error = crate::Error;
237 fn try_from(r: Resource) -> Result<Self, Self::Error> {
238 match r {
239 Resource::PolicyInfo(v) => Ok(v),
240 _ => Err(<crate::Error>::generic(concat!(
241 "Resource is not a ",
242 stringify!(PolicyInfo)
243 ))),
244 }
245 }
246}
247impl From<super::providers::v1::Provider> for Resource {
248 fn from(v: super::providers::v1::Provider) -> Self {
249 Resource::Provider(v)
250 }
251}
252impl TryFrom<Resource> for super::providers::v1::Provider {
253 type Error = crate::Error;
254 fn try_from(r: Resource) -> Result<Self, Self::Error> {
255 match r {
256 Resource::Provider(v) => Ok(v),
257 _ => Err(<crate::Error>::generic(concat!(
258 "Resource is not a ",
259 stringify!(Provider)
260 ))),
261 }
262 }
263}
264impl From<super::recipients::v1::Recipient> for Resource {
265 fn from(v: super::recipients::v1::Recipient) -> Self {
266 Resource::Recipient(v)
267 }
268}
269impl TryFrom<Resource> for super::recipients::v1::Recipient {
270 type Error = crate::Error;
271 fn try_from(r: Resource) -> Result<Self, Self::Error> {
272 match r {
273 Resource::Recipient(v) => Ok(v),
274 _ => Err(<crate::Error>::generic(concat!(
275 "Resource is not a ",
276 stringify!(Recipient)
277 ))),
278 }
279 }
280}
281impl From<super::registered_models::v1::RegisteredModel> for Resource {
282 fn from(v: super::registered_models::v1::RegisteredModel) -> Self {
283 Resource::RegisteredModel(v)
284 }
285}
286impl TryFrom<Resource> for super::registered_models::v1::RegisteredModel {
287 type Error = crate::Error;
288 fn try_from(r: Resource) -> Result<Self, Self::Error> {
289 match r {
290 Resource::RegisteredModel(v) => Ok(v),
291 _ => Err(<crate::Error>::generic(concat!(
292 "Resource is not a ",
293 stringify!(RegisteredModel)
294 ))),
295 }
296 }
297}
298impl From<super::schemas::v1::Schema> for Resource {
299 fn from(v: super::schemas::v1::Schema) -> Self {
300 Resource::Schema(v)
301 }
302}
303impl TryFrom<Resource> for super::schemas::v1::Schema {
304 type Error = crate::Error;
305 fn try_from(r: Resource) -> Result<Self, Self::Error> {
306 match r {
307 Resource::Schema(v) => Ok(v),
308 _ => Err(<crate::Error>::generic(concat!(
309 "Resource is not a ",
310 stringify!(Schema)
311 ))),
312 }
313 }
314}
315impl From<super::shares::v1::Share> for Resource {
316 fn from(v: super::shares::v1::Share) -> Self {
317 Resource::Share(v)
318 }
319}
320impl TryFrom<Resource> for super::shares::v1::Share {
321 type Error = crate::Error;
322 fn try_from(r: Resource) -> Result<Self, Self::Error> {
323 match r {
324 Resource::Share(v) => Ok(v),
325 _ => Err(<crate::Error>::generic(concat!(
326 "Resource is not a ",
327 stringify!(Share)
328 ))),
329 }
330 }
331}
332impl From<super::staging_tables::v1::StagingTable> for Resource {
333 fn from(v: super::staging_tables::v1::StagingTable) -> Self {
334 Resource::StagingTable(v)
335 }
336}
337impl TryFrom<Resource> for super::staging_tables::v1::StagingTable {
338 type Error = crate::Error;
339 fn try_from(r: Resource) -> Result<Self, Self::Error> {
340 match r {
341 Resource::StagingTable(v) => Ok(v),
342 _ => Err(<crate::Error>::generic(concat!(
343 "Resource is not a ",
344 stringify!(StagingTable)
345 ))),
346 }
347 }
348}
349impl From<super::tables::v1::Table> for Resource {
350 fn from(v: super::tables::v1::Table) -> Self {
351 Resource::Table(v)
352 }
353}
354impl TryFrom<Resource> for super::tables::v1::Table {
355 type Error = crate::Error;
356 fn try_from(r: Resource) -> Result<Self, Self::Error> {
357 match r {
358 Resource::Table(v) => Ok(v),
359 _ => Err(<crate::Error>::generic(concat!(
360 "Resource is not a ",
361 stringify!(Table)
362 ))),
363 }
364 }
365}
366impl From<super::tags::v1::TagPolicy> for Resource {
367 fn from(v: super::tags::v1::TagPolicy) -> Self {
368 Resource::TagPolicy(v)
369 }
370}
371impl TryFrom<Resource> for super::tags::v1::TagPolicy {
372 type Error = crate::Error;
373 fn try_from(r: Resource) -> Result<Self, Self::Error> {
374 match r {
375 Resource::TagPolicy(v) => Ok(v),
376 _ => Err(<crate::Error>::generic(concat!(
377 "Resource is not a ",
378 stringify!(TagPolicy)
379 ))),
380 }
381 }
382}
383impl From<super::volumes::v1::Volume> for Resource {
384 fn from(v: super::volumes::v1::Volume) -> Self {
385 Resource::Volume(v)
386 }
387}
388impl TryFrom<Resource> for super::volumes::v1::Volume {
389 type Error = crate::Error;
390 fn try_from(r: Resource) -> Result<Self, Self::Error> {
391 match r {
392 Resource::Volume(v) => Ok(v),
393 _ => Err(<crate::Error>::generic(concat!(
394 "Resource is not a ",
395 stringify!(Volume)
396 ))),
397 }
398 }
399}
400use crate::Error;
401use crate::models::object::Object;
402use crate::models::resources::{ResourceExt, ResourceIdent, ResourceName, ResourceRef};
403impl TryFrom<Object> for super::agents::v0alpha1::Agent {
404 type Error = Error;
405 fn try_from(object: Object) -> Result<Self, Self::Error> {
406 let props = object
407 .properties
408 .ok_or_else(|| Error::generic("expected properties"))?;
409 let mut res: super::agents::v0alpha1::Agent = ::serde_json::from_value(props)?;
410 res.agent_id = object.id.hyphenated().to_string();
411 res.full_name = res.qualified_name();
412 Ok(res)
413 }
414}
415impl TryFrom<super::agents::v0alpha1::Agent> for Object {
416 type Error = Error;
417 fn try_from(obj: super::agents::v0alpha1::Agent) -> Result<Self, Self::Error> {
418 let id = ::uuid::Uuid::parse_str(&obj.agent_id).unwrap_or_else(|_| ::uuid::Uuid::nil());
419 let name = obj.resource_name();
420 let mut properties = ::serde_json::to_value(obj)?;
421 if let ::serde_json::Value::Object(ref mut map) = properties {
422 map.remove("full_name");
423 }
424 Ok(Object {
425 id,
426 name,
427 label: ObjectLabel::Agent,
428 properties: Some(properties),
429 version: 0,
430 updated_at: None,
431 created_at: chrono::Utc::now(),
432 })
433 }
434}
435impl ResourceExt for super::agents::v0alpha1::Agent {
436 fn resource_name(&self) -> ResourceName {
437 ResourceName::new([&self.catalog_name, &self.schema_name, &self.name])
438 }
439 fn resource_ref(&self) -> ResourceRef {
440 ::uuid::Uuid::parse_str(&self.agent_id)
441 .ok()
442 .map(ResourceRef::Uuid)
443 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
444 }
445 fn resource_ident(&self) -> ResourceIdent {
446 (ObjectLabel::Agent).to_ident(self.resource_ref())
447 }
448}
449impl TryFrom<Object> for super::agent_skills::v0alpha1::AgentSkill {
450 type Error = Error;
451 fn try_from(object: Object) -> Result<Self, Self::Error> {
452 let props = object
453 .properties
454 .ok_or_else(|| Error::generic("expected properties"))?;
455 let mut res: super::agent_skills::v0alpha1::AgentSkill = ::serde_json::from_value(props)?;
456 res.agent_skill_id = object.id.hyphenated().to_string();
457 res.full_name = res.qualified_name();
458 Ok(res)
459 }
460}
461impl TryFrom<super::agent_skills::v0alpha1::AgentSkill> for Object {
462 type Error = Error;
463 fn try_from(obj: super::agent_skills::v0alpha1::AgentSkill) -> Result<Self, Self::Error> {
464 let id =
465 ::uuid::Uuid::parse_str(&obj.agent_skill_id).unwrap_or_else(|_| ::uuid::Uuid::nil());
466 let name = obj.resource_name();
467 let mut properties = ::serde_json::to_value(obj)?;
468 if let ::serde_json::Value::Object(ref mut map) = properties {
469 map.remove("full_name");
470 }
471 Ok(Object {
472 id,
473 name,
474 label: ObjectLabel::AgentSkill,
475 properties: Some(properties),
476 version: 0,
477 updated_at: None,
478 created_at: chrono::Utc::now(),
479 })
480 }
481}
482impl ResourceExt for super::agent_skills::v0alpha1::AgentSkill {
483 fn resource_name(&self) -> ResourceName {
484 ResourceName::new([&self.catalog_name, &self.schema_name, &self.name])
485 }
486 fn resource_ref(&self) -> ResourceRef {
487 ::uuid::Uuid::parse_str(&self.agent_skill_id)
488 .ok()
489 .map(ResourceRef::Uuid)
490 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
491 }
492 fn resource_ident(&self) -> ResourceIdent {
493 (ObjectLabel::AgentSkill).to_ident(self.resource_ref())
494 }
495}
496impl TryFrom<Object> for super::catalogs::v1::Catalog {
497 type Error = Error;
498 fn try_from(object: Object) -> Result<Self, Self::Error> {
499 let props = object
500 .properties
501 .ok_or_else(|| Error::generic("expected properties"))?;
502 let mut res: super::catalogs::v1::Catalog = ::serde_json::from_value(props)?;
503 res.id = Some(object.id.hyphenated().to_string());
504 Ok(res)
505 }
506}
507impl TryFrom<super::catalogs::v1::Catalog> for Object {
508 type Error = Error;
509 fn try_from(obj: super::catalogs::v1::Catalog) -> Result<Self, Self::Error> {
510 let id = obj
511 .id
512 .as_ref()
513 .map(|id| ::uuid::Uuid::parse_str(id))
514 .transpose()?
515 .unwrap_or_else(::uuid::Uuid::nil);
516 let name = obj.resource_name();
517 let properties = ::serde_json::to_value(obj)?;
518 Ok(Object {
519 id,
520 name,
521 label: ObjectLabel::Catalog,
522 properties: Some(properties),
523 version: 0,
524 updated_at: None,
525 created_at: chrono::Utc::now(),
526 })
527 }
528}
529impl ResourceExt for super::catalogs::v1::Catalog {
530 fn resource_name(&self) -> ResourceName {
531 ResourceName::new([&self.name])
532 }
533 fn resource_ref(&self) -> ResourceRef {
534 self.id
535 .as_ref()
536 .and_then(|id| ::uuid::Uuid::parse_str(id).ok())
537 .map(ResourceRef::Uuid)
538 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
539 }
540 fn resource_ident(&self) -> ResourceIdent {
541 (ObjectLabel::Catalog).to_ident(self.resource_ref())
542 }
543}
544impl TryFrom<Object> for super::tables::v1::Column {
545 type Error = Error;
546 fn try_from(object: Object) -> Result<Self, Self::Error> {
547 let props = object
548 .properties
549 .ok_or_else(|| Error::generic("expected properties"))?;
550 let mut res: super::tables::v1::Column = ::serde_json::from_value(props)?;
551 res.column_id = Some(object.id.hyphenated().to_string());
552 Ok(res)
553 }
554}
555impl TryFrom<super::tables::v1::Column> for Object {
556 type Error = Error;
557 fn try_from(obj: super::tables::v1::Column) -> Result<Self, Self::Error> {
558 let id = obj
559 .column_id
560 .as_ref()
561 .map(|id| ::uuid::Uuid::parse_str(id))
562 .transpose()?
563 .unwrap_or_else(::uuid::Uuid::nil);
564 let name = obj.resource_name();
565 let properties = ::serde_json::to_value(obj)?;
566 Ok(Object {
567 id,
568 name,
569 label: ObjectLabel::Column,
570 properties: Some(properties),
571 version: 0,
572 updated_at: None,
573 created_at: chrono::Utc::now(),
574 })
575 }
576}
577impl ResourceExt for super::tables::v1::Column {
578 fn resource_name(&self) -> ResourceName {
579 ResourceName::new([&self.name])
580 }
581 fn resource_ref(&self) -> ResourceRef {
582 self.column_id
583 .as_ref()
584 .and_then(|id| ::uuid::Uuid::parse_str(id).ok())
585 .map(ResourceRef::Uuid)
586 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
587 }
588 fn resource_ident(&self) -> ResourceIdent {
589 (ObjectLabel::Column).to_ident(self.resource_ref())
590 }
591}
592impl TryFrom<Object> for super::credentials::v1::Credential {
593 type Error = Error;
594 fn try_from(object: Object) -> Result<Self, Self::Error> {
595 let props = object
596 .properties
597 .ok_or_else(|| Error::generic("expected properties"))?;
598 let mut res: super::credentials::v1::Credential = ::serde_json::from_value(props)?;
599 res.id = Some(object.id.hyphenated().to_string());
600 res.full_name = res.qualified_name();
601 Ok(res)
602 }
603}
604impl TryFrom<super::credentials::v1::Credential> for Object {
605 type Error = Error;
606 fn try_from(obj: super::credentials::v1::Credential) -> Result<Self, Self::Error> {
607 let id = obj
608 .id
609 .as_ref()
610 .map(|id| ::uuid::Uuid::parse_str(id))
611 .transpose()?
612 .unwrap_or_else(::uuid::Uuid::nil);
613 let name = obj.resource_name();
614 let mut properties = ::serde_json::to_value(obj)?;
615 if let ::serde_json::Value::Object(ref mut map) = properties {
616 map.remove("full_name");
617 }
618 Ok(Object {
619 id,
620 name,
621 label: ObjectLabel::Credential,
622 properties: Some(properties),
623 version: 0,
624 updated_at: None,
625 created_at: chrono::Utc::now(),
626 })
627 }
628}
629impl ResourceExt for super::credentials::v1::Credential {
630 fn resource_name(&self) -> ResourceName {
631 ResourceName::new([&self.name])
632 }
633 fn resource_ref(&self) -> ResourceRef {
634 self.id
635 .as_ref()
636 .and_then(|id| ::uuid::Uuid::parse_str(id).ok())
637 .map(ResourceRef::Uuid)
638 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
639 }
640 fn resource_ident(&self) -> ResourceIdent {
641 (ObjectLabel::Credential).to_ident(self.resource_ref())
642 }
643}
644impl TryFrom<Object> for super::external_locations::v1::ExternalLocation {
645 type Error = Error;
646 fn try_from(object: Object) -> Result<Self, Self::Error> {
647 let props = object
648 .properties
649 .ok_or_else(|| Error::generic("expected properties"))?;
650 let mut res: super::external_locations::v1::ExternalLocation =
651 ::serde_json::from_value(props)?;
652 res.external_location_id = Some(object.id.hyphenated().to_string());
653 Ok(res)
654 }
655}
656impl TryFrom<super::external_locations::v1::ExternalLocation> for Object {
657 type Error = Error;
658 fn try_from(obj: super::external_locations::v1::ExternalLocation) -> Result<Self, Self::Error> {
659 let id = obj
660 .external_location_id
661 .as_ref()
662 .map(|id| ::uuid::Uuid::parse_str(id))
663 .transpose()?
664 .unwrap_or_else(::uuid::Uuid::nil);
665 let name = obj.resource_name();
666 let properties = ::serde_json::to_value(obj)?;
667 Ok(Object {
668 id,
669 name,
670 label: ObjectLabel::ExternalLocation,
671 properties: Some(properties),
672 version: 0,
673 updated_at: None,
674 created_at: chrono::Utc::now(),
675 })
676 }
677}
678impl ResourceExt for super::external_locations::v1::ExternalLocation {
679 fn resource_name(&self) -> ResourceName {
680 ResourceName::new([&self.name])
681 }
682 fn resource_ref(&self) -> ResourceRef {
683 self.external_location_id
684 .as_ref()
685 .and_then(|id| ::uuid::Uuid::parse_str(id).ok())
686 .map(ResourceRef::Uuid)
687 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
688 }
689 fn resource_ident(&self) -> ResourceIdent {
690 (ObjectLabel::ExternalLocation).to_ident(self.resource_ref())
691 }
692}
693impl TryFrom<Object> for super::functions::v1::Function {
694 type Error = Error;
695 fn try_from(object: Object) -> Result<Self, Self::Error> {
696 let props = object
697 .properties
698 .ok_or_else(|| Error::generic("expected properties"))?;
699 let mut res: super::functions::v1::Function = ::serde_json::from_value(props)?;
700 res.function_id = Some(object.id.hyphenated().to_string());
701 res.full_name = res.qualified_name();
702 Ok(res)
703 }
704}
705impl TryFrom<super::functions::v1::Function> for Object {
706 type Error = Error;
707 fn try_from(obj: super::functions::v1::Function) -> Result<Self, Self::Error> {
708 let id = obj
709 .function_id
710 .as_ref()
711 .map(|id| ::uuid::Uuid::parse_str(id))
712 .transpose()?
713 .unwrap_or_else(::uuid::Uuid::nil);
714 let name = obj.resource_name();
715 let mut properties = ::serde_json::to_value(obj)?;
716 if let ::serde_json::Value::Object(ref mut map) = properties {
717 map.remove("full_name");
718 }
719 Ok(Object {
720 id,
721 name,
722 label: ObjectLabel::Function,
723 properties: Some(properties),
724 version: 0,
725 updated_at: None,
726 created_at: chrono::Utc::now(),
727 })
728 }
729}
730impl ResourceExt for super::functions::v1::Function {
731 fn resource_name(&self) -> ResourceName {
732 ResourceName::new([&self.catalog_name, &self.schema_name, &self.name])
733 }
734 fn resource_ref(&self) -> ResourceRef {
735 self.function_id
736 .as_ref()
737 .and_then(|id| ::uuid::Uuid::parse_str(id).ok())
738 .map(ResourceRef::Uuid)
739 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
740 }
741 fn resource_ident(&self) -> ResourceIdent {
742 (ObjectLabel::Function).to_ident(self.resource_ref())
743 }
744}
745impl TryFrom<Object> for super::model_versions::v1::ModelVersion {
746 type Error = Error;
747 fn try_from(object: Object) -> Result<Self, Self::Error> {
748 let props = object
749 .properties
750 .ok_or_else(|| Error::generic("expected properties"))?;
751 let mut res: super::model_versions::v1::ModelVersion = ::serde_json::from_value(props)?;
752 res.id = Some(object.id.hyphenated().to_string());
753 Ok(res)
754 }
755}
756impl TryFrom<super::model_versions::v1::ModelVersion> for Object {
757 type Error = Error;
758 fn try_from(obj: super::model_versions::v1::ModelVersion) -> Result<Self, Self::Error> {
759 let id = obj
760 .id
761 .as_ref()
762 .map(|id| ::uuid::Uuid::parse_str(id))
763 .transpose()?
764 .unwrap_or_else(::uuid::Uuid::nil);
765 let name = obj.resource_name();
766 let properties = ::serde_json::to_value(obj)?;
767 Ok(Object {
768 id,
769 name,
770 label: ObjectLabel::ModelVersion,
771 properties: Some(properties),
772 version: 0,
773 updated_at: None,
774 created_at: chrono::Utc::now(),
775 })
776 }
777}
778impl ResourceExt for super::model_versions::v1::ModelVersion {
779 fn resource_name(&self) -> ResourceName {
780 ResourceName::new([
781 &self.catalog_name,
782 &self.schema_name,
783 &self.model_name,
784 &self.version.to_string(),
785 ])
786 }
787 fn resource_ref(&self) -> ResourceRef {
788 self.id
789 .as_ref()
790 .and_then(|id| ::uuid::Uuid::parse_str(id).ok())
791 .map(ResourceRef::Uuid)
792 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
793 }
794 fn resource_ident(&self) -> ResourceIdent {
795 (ObjectLabel::ModelVersion).to_ident(self.resource_ref())
796 }
797}
798impl TryFrom<Object> for super::policies::v1::PolicyInfo {
799 type Error = Error;
800 fn try_from(object: Object) -> Result<Self, Self::Error> {
801 let props = object
802 .properties
803 .ok_or_else(|| Error::generic("expected properties"))?;
804 let mut res: super::policies::v1::PolicyInfo = ::serde_json::from_value(props)?;
805 res.id = Some(object.id.hyphenated().to_string());
806 Ok(res)
807 }
808}
809impl TryFrom<super::policies::v1::PolicyInfo> for Object {
810 type Error = Error;
811 fn try_from(obj: super::policies::v1::PolicyInfo) -> Result<Self, Self::Error> {
812 let id = obj
813 .id
814 .as_ref()
815 .map(|id| ::uuid::Uuid::parse_str(id))
816 .transpose()?
817 .unwrap_or_else(::uuid::Uuid::nil);
818 let name = obj.resource_name();
819 let properties = ::serde_json::to_value(obj)?;
820 Ok(Object {
821 id,
822 name,
823 label: ObjectLabel::PolicyInfo,
824 properties: Some(properties),
825 version: 0,
826 updated_at: None,
827 created_at: chrono::Utc::now(),
828 })
829 }
830}
831impl ResourceExt for super::policies::v1::PolicyInfo {
832 fn resource_name(&self) -> ResourceName {
833 ResourceName::new([&self.name])
834 }
835 fn resource_ref(&self) -> ResourceRef {
836 self.id
837 .as_ref()
838 .and_then(|id| ::uuid::Uuid::parse_str(id).ok())
839 .map(ResourceRef::Uuid)
840 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
841 }
842 fn resource_ident(&self) -> ResourceIdent {
843 (ObjectLabel::PolicyInfo).to_ident(self.resource_ref())
844 }
845}
846impl TryFrom<Object> for super::providers::v1::Provider {
847 type Error = Error;
848 fn try_from(object: Object) -> Result<Self, Self::Error> {
849 let props = object
850 .properties
851 .ok_or_else(|| Error::generic("expected properties"))?;
852 let mut res: super::providers::v1::Provider = ::serde_json::from_value(props)?;
853 res.id = Some(object.id.hyphenated().to_string());
854 Ok(res)
855 }
856}
857impl TryFrom<super::providers::v1::Provider> for Object {
858 type Error = Error;
859 fn try_from(obj: super::providers::v1::Provider) -> Result<Self, Self::Error> {
860 let id = obj
861 .id
862 .as_ref()
863 .map(|id| ::uuid::Uuid::parse_str(id))
864 .transpose()?
865 .unwrap_or_else(::uuid::Uuid::nil);
866 let name = obj.resource_name();
867 let properties = ::serde_json::to_value(obj)?;
868 Ok(Object {
869 id,
870 name,
871 label: ObjectLabel::Provider,
872 properties: Some(properties),
873 version: 0,
874 updated_at: None,
875 created_at: chrono::Utc::now(),
876 })
877 }
878}
879impl ResourceExt for super::providers::v1::Provider {
880 fn resource_name(&self) -> ResourceName {
881 ResourceName::new([&self.name])
882 }
883 fn resource_ref(&self) -> ResourceRef {
884 self.id
885 .as_ref()
886 .and_then(|id| ::uuid::Uuid::parse_str(id).ok())
887 .map(ResourceRef::Uuid)
888 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
889 }
890 fn resource_ident(&self) -> ResourceIdent {
891 (ObjectLabel::Provider).to_ident(self.resource_ref())
892 }
893}
894impl TryFrom<Object> for super::recipients::v1::Recipient {
895 type Error = Error;
896 fn try_from(object: Object) -> Result<Self, Self::Error> {
897 let props = object
898 .properties
899 .ok_or_else(|| Error::generic("expected properties"))?;
900 let mut res: super::recipients::v1::Recipient = ::serde_json::from_value(props)?;
901 res.id = Some(object.id.hyphenated().to_string());
902 Ok(res)
903 }
904}
905impl TryFrom<super::recipients::v1::Recipient> for Object {
906 type Error = Error;
907 fn try_from(obj: super::recipients::v1::Recipient) -> Result<Self, Self::Error> {
908 let id = obj
909 .id
910 .as_ref()
911 .map(|id| ::uuid::Uuid::parse_str(id))
912 .transpose()?
913 .unwrap_or_else(::uuid::Uuid::nil);
914 let name = obj.resource_name();
915 let properties = ::serde_json::to_value(obj)?;
916 Ok(Object {
917 id,
918 name,
919 label: ObjectLabel::Recipient,
920 properties: Some(properties),
921 version: 0,
922 updated_at: None,
923 created_at: chrono::Utc::now(),
924 })
925 }
926}
927impl ResourceExt for super::recipients::v1::Recipient {
928 fn resource_name(&self) -> ResourceName {
929 ResourceName::new([&self.name])
930 }
931 fn resource_ref(&self) -> ResourceRef {
932 self.id
933 .as_ref()
934 .and_then(|id| ::uuid::Uuid::parse_str(id).ok())
935 .map(ResourceRef::Uuid)
936 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
937 }
938 fn resource_ident(&self) -> ResourceIdent {
939 (ObjectLabel::Recipient).to_ident(self.resource_ref())
940 }
941}
942impl TryFrom<Object> for super::registered_models::v1::RegisteredModel {
943 type Error = Error;
944 fn try_from(object: Object) -> Result<Self, Self::Error> {
945 let props = object
946 .properties
947 .ok_or_else(|| Error::generic("expected properties"))?;
948 let mut res: super::registered_models::v1::RegisteredModel =
949 ::serde_json::from_value(props)?;
950 res.id = Some(object.id.hyphenated().to_string());
951 res.full_name = res.qualified_name();
952 Ok(res)
953 }
954}
955impl TryFrom<super::registered_models::v1::RegisteredModel> for Object {
956 type Error = Error;
957 fn try_from(obj: super::registered_models::v1::RegisteredModel) -> Result<Self, Self::Error> {
958 let id = obj
959 .id
960 .as_ref()
961 .map(|id| ::uuid::Uuid::parse_str(id))
962 .transpose()?
963 .unwrap_or_else(::uuid::Uuid::nil);
964 let name = obj.resource_name();
965 let mut properties = ::serde_json::to_value(obj)?;
966 if let ::serde_json::Value::Object(ref mut map) = properties {
967 map.remove("full_name");
968 }
969 Ok(Object {
970 id,
971 name,
972 label: ObjectLabel::RegisteredModel,
973 properties: Some(properties),
974 version: 0,
975 updated_at: None,
976 created_at: chrono::Utc::now(),
977 })
978 }
979}
980impl ResourceExt for super::registered_models::v1::RegisteredModel {
981 fn resource_name(&self) -> ResourceName {
982 ResourceName::new([&self.catalog_name, &self.schema_name, &self.name])
983 }
984 fn resource_ref(&self) -> ResourceRef {
985 self.id
986 .as_ref()
987 .and_then(|id| ::uuid::Uuid::parse_str(id).ok())
988 .map(ResourceRef::Uuid)
989 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
990 }
991 fn resource_ident(&self) -> ResourceIdent {
992 (ObjectLabel::RegisteredModel).to_ident(self.resource_ref())
993 }
994}
995impl TryFrom<Object> for super::schemas::v1::Schema {
996 type Error = Error;
997 fn try_from(object: Object) -> Result<Self, Self::Error> {
998 let props = object
999 .properties
1000 .ok_or_else(|| Error::generic("expected properties"))?;
1001 let mut res: super::schemas::v1::Schema = ::serde_json::from_value(props)?;
1002 res.schema_id = Some(object.id.hyphenated().to_string());
1003 res.full_name = res.qualified_name();
1004 Ok(res)
1005 }
1006}
1007impl TryFrom<super::schemas::v1::Schema> for Object {
1008 type Error = Error;
1009 fn try_from(obj: super::schemas::v1::Schema) -> Result<Self, Self::Error> {
1010 let id = obj
1011 .schema_id
1012 .as_ref()
1013 .map(|id| ::uuid::Uuid::parse_str(id))
1014 .transpose()?
1015 .unwrap_or_else(::uuid::Uuid::nil);
1016 let name = obj.resource_name();
1017 let mut properties = ::serde_json::to_value(obj)?;
1018 if let ::serde_json::Value::Object(ref mut map) = properties {
1019 map.remove("full_name");
1020 }
1021 Ok(Object {
1022 id,
1023 name,
1024 label: ObjectLabel::Schema,
1025 properties: Some(properties),
1026 version: 0,
1027 updated_at: None,
1028 created_at: chrono::Utc::now(),
1029 })
1030 }
1031}
1032impl ResourceExt for super::schemas::v1::Schema {
1033 fn resource_name(&self) -> ResourceName {
1034 ResourceName::new([&self.catalog_name, &self.name])
1035 }
1036 fn resource_ref(&self) -> ResourceRef {
1037 self.schema_id
1038 .as_ref()
1039 .and_then(|id| ::uuid::Uuid::parse_str(id).ok())
1040 .map(ResourceRef::Uuid)
1041 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
1042 }
1043 fn resource_ident(&self) -> ResourceIdent {
1044 (ObjectLabel::Schema).to_ident(self.resource_ref())
1045 }
1046}
1047impl TryFrom<Object> for super::shares::v1::Share {
1048 type Error = Error;
1049 fn try_from(object: Object) -> Result<Self, Self::Error> {
1050 let props = object
1051 .properties
1052 .ok_or_else(|| Error::generic("expected properties"))?;
1053 let mut res: super::shares::v1::Share = ::serde_json::from_value(props)?;
1054 res.id = Some(object.id.hyphenated().to_string());
1055 Ok(res)
1056 }
1057}
1058impl TryFrom<super::shares::v1::Share> for Object {
1059 type Error = Error;
1060 fn try_from(obj: super::shares::v1::Share) -> Result<Self, Self::Error> {
1061 let id = obj
1062 .id
1063 .as_ref()
1064 .map(|id| ::uuid::Uuid::parse_str(id))
1065 .transpose()?
1066 .unwrap_or_else(::uuid::Uuid::nil);
1067 let name = obj.resource_name();
1068 let properties = ::serde_json::to_value(obj)?;
1069 Ok(Object {
1070 id,
1071 name,
1072 label: ObjectLabel::Share,
1073 properties: Some(properties),
1074 version: 0,
1075 updated_at: None,
1076 created_at: chrono::Utc::now(),
1077 })
1078 }
1079}
1080impl ResourceExt for super::shares::v1::Share {
1081 fn resource_name(&self) -> ResourceName {
1082 ResourceName::new([&self.name])
1083 }
1084 fn resource_ref(&self) -> ResourceRef {
1085 self.id
1086 .as_ref()
1087 .and_then(|id| ::uuid::Uuid::parse_str(id).ok())
1088 .map(ResourceRef::Uuid)
1089 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
1090 }
1091 fn resource_ident(&self) -> ResourceIdent {
1092 (ObjectLabel::Share).to_ident(self.resource_ref())
1093 }
1094}
1095impl TryFrom<Object> for super::staging_tables::v1::StagingTable {
1096 type Error = Error;
1097 fn try_from(object: Object) -> Result<Self, Self::Error> {
1098 let props = object
1099 .properties
1100 .ok_or_else(|| Error::generic("expected properties"))?;
1101 let mut res: super::staging_tables::v1::StagingTable = ::serde_json::from_value(props)?;
1102 res.id = object.id.hyphenated().to_string();
1103 Ok(res)
1104 }
1105}
1106impl TryFrom<super::staging_tables::v1::StagingTable> for Object {
1107 type Error = Error;
1108 fn try_from(obj: super::staging_tables::v1::StagingTable) -> Result<Self, Self::Error> {
1109 let id = ::uuid::Uuid::parse_str(&obj.id).unwrap_or_else(|_| ::uuid::Uuid::nil());
1110 let name = obj.resource_name();
1111 let properties = ::serde_json::to_value(obj)?;
1112 Ok(Object {
1113 id,
1114 name,
1115 label: ObjectLabel::StagingTable,
1116 properties: Some(properties),
1117 version: 0,
1118 updated_at: None,
1119 created_at: chrono::Utc::now(),
1120 })
1121 }
1122}
1123impl ResourceExt for super::staging_tables::v1::StagingTable {
1124 fn resource_name(&self) -> ResourceName {
1125 ResourceName::new([&self.name])
1126 }
1127 fn resource_ref(&self) -> ResourceRef {
1128 ::uuid::Uuid::parse_str(&self.id)
1129 .ok()
1130 .map(ResourceRef::Uuid)
1131 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
1132 }
1133 fn resource_ident(&self) -> ResourceIdent {
1134 (ObjectLabel::StagingTable).to_ident(self.resource_ref())
1135 }
1136}
1137impl TryFrom<Object> for super::tables::v1::Table {
1138 type Error = Error;
1139 fn try_from(object: Object) -> Result<Self, Self::Error> {
1140 let props = object
1141 .properties
1142 .ok_or_else(|| Error::generic("expected properties"))?;
1143 let mut res: super::tables::v1::Table = ::serde_json::from_value(props)?;
1144 res.table_id = Some(object.id.hyphenated().to_string());
1145 res.full_name = res.qualified_name();
1146 Ok(res)
1147 }
1148}
1149impl TryFrom<super::tables::v1::Table> for Object {
1150 type Error = Error;
1151 fn try_from(obj: super::tables::v1::Table) -> Result<Self, Self::Error> {
1152 let id = obj
1153 .table_id
1154 .as_ref()
1155 .map(|id| ::uuid::Uuid::parse_str(id))
1156 .transpose()?
1157 .unwrap_or_else(::uuid::Uuid::nil);
1158 let name = obj.resource_name();
1159 let mut properties = ::serde_json::to_value(obj)?;
1160 if let ::serde_json::Value::Object(ref mut map) = properties {
1161 map.remove("full_name");
1162 }
1163 Ok(Object {
1164 id,
1165 name,
1166 label: ObjectLabel::Table,
1167 properties: Some(properties),
1168 version: 0,
1169 updated_at: None,
1170 created_at: chrono::Utc::now(),
1171 })
1172 }
1173}
1174impl ResourceExt for super::tables::v1::Table {
1175 fn resource_name(&self) -> ResourceName {
1176 ResourceName::new([&self.catalog_name, &self.schema_name, &self.name])
1177 }
1178 fn resource_ref(&self) -> ResourceRef {
1179 self.table_id
1180 .as_ref()
1181 .and_then(|id| ::uuid::Uuid::parse_str(id).ok())
1182 .map(ResourceRef::Uuid)
1183 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
1184 }
1185 fn resource_ident(&self) -> ResourceIdent {
1186 (ObjectLabel::Table).to_ident(self.resource_ref())
1187 }
1188}
1189impl TryFrom<Object> for super::tags::v1::TagPolicy {
1190 type Error = Error;
1191 fn try_from(object: Object) -> Result<Self, Self::Error> {
1192 let props = object
1193 .properties
1194 .ok_or_else(|| Error::generic("expected properties"))?;
1195 let mut res: super::tags::v1::TagPolicy = ::serde_json::from_value(props)?;
1196 res.id = Some(object.id.hyphenated().to_string());
1197 Ok(res)
1198 }
1199}
1200impl TryFrom<super::tags::v1::TagPolicy> for Object {
1201 type Error = Error;
1202 fn try_from(obj: super::tags::v1::TagPolicy) -> Result<Self, Self::Error> {
1203 let id = obj
1204 .id
1205 .as_ref()
1206 .map(|id| ::uuid::Uuid::parse_str(id))
1207 .transpose()?
1208 .unwrap_or_else(::uuid::Uuid::nil);
1209 let name = obj.resource_name();
1210 let properties = ::serde_json::to_value(obj)?;
1211 Ok(Object {
1212 id,
1213 name,
1214 label: ObjectLabel::TagPolicy,
1215 properties: Some(properties),
1216 version: 0,
1217 updated_at: None,
1218 created_at: chrono::Utc::now(),
1219 })
1220 }
1221}
1222impl ResourceExt for super::tags::v1::TagPolicy {
1223 fn resource_name(&self) -> ResourceName {
1224 ResourceName::new([&self.tag_key])
1225 }
1226 fn resource_ref(&self) -> ResourceRef {
1227 self.id
1228 .as_ref()
1229 .and_then(|id| ::uuid::Uuid::parse_str(id).ok())
1230 .map(ResourceRef::Uuid)
1231 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
1232 }
1233 fn resource_ident(&self) -> ResourceIdent {
1234 (ObjectLabel::TagPolicy).to_ident(self.resource_ref())
1235 }
1236}
1237impl TryFrom<Object> for super::volumes::v1::Volume {
1238 type Error = Error;
1239 fn try_from(object: Object) -> Result<Self, Self::Error> {
1240 let props = object
1241 .properties
1242 .ok_or_else(|| Error::generic("expected properties"))?;
1243 let mut res: super::volumes::v1::Volume = ::serde_json::from_value(props)?;
1244 res.volume_id = object.id.hyphenated().to_string();
1245 res.full_name = res.qualified_name();
1246 Ok(res)
1247 }
1248}
1249impl TryFrom<super::volumes::v1::Volume> for Object {
1250 type Error = Error;
1251 fn try_from(obj: super::volumes::v1::Volume) -> Result<Self, Self::Error> {
1252 let id = ::uuid::Uuid::parse_str(&obj.volume_id).unwrap_or_else(|_| ::uuid::Uuid::nil());
1253 let name = obj.resource_name();
1254 let mut properties = ::serde_json::to_value(obj)?;
1255 if let ::serde_json::Value::Object(ref mut map) = properties {
1256 map.remove("full_name");
1257 }
1258 Ok(Object {
1259 id,
1260 name,
1261 label: ObjectLabel::Volume,
1262 properties: Some(properties),
1263 version: 0,
1264 updated_at: None,
1265 created_at: chrono::Utc::now(),
1266 })
1267 }
1268}
1269impl ResourceExt for super::volumes::v1::Volume {
1270 fn resource_name(&self) -> ResourceName {
1271 ResourceName::new([&self.catalog_name, &self.schema_name, &self.name])
1272 }
1273 fn resource_ref(&self) -> ResourceRef {
1274 ::uuid::Uuid::parse_str(&self.volume_id)
1275 .ok()
1276 .map(ResourceRef::Uuid)
1277 .unwrap_or_else(|| ResourceRef::Name(self.resource_name()))
1278 }
1279 fn resource_ident(&self) -> ResourceIdent {
1280 (ObjectLabel::Volume).to_ident(self.resource_ref())
1281 }
1282}
1283impl super::agents::v0alpha1::Agent {
1284 pub fn qualified_name(&self) -> String {
1286 format!("{}.{}.{}", self.catalog_name, self.schema_name, self.name)
1287 }
1288}
1289impl super::agent_skills::v0alpha1::AgentSkill {
1290 pub fn qualified_name(&self) -> String {
1292 format!("{}.{}.{}", self.catalog_name, self.schema_name, self.name)
1293 }
1294}
1295impl super::catalogs::v1::Catalog {
1296 pub fn qualified_name(&self) -> String {
1298 self.name.clone()
1299 }
1300}
1301impl super::tables::v1::Column {
1302 pub fn qualified_name(&self) -> String {
1304 self.name.clone()
1305 }
1306}
1307impl super::credentials::v1::Credential {
1308 pub fn qualified_name(&self) -> String {
1310 self.name.clone()
1311 }
1312}
1313impl super::external_locations::v1::ExternalLocation {
1314 pub fn qualified_name(&self) -> String {
1316 self.name.clone()
1317 }
1318}
1319impl super::functions::v1::Function {
1320 pub fn qualified_name(&self) -> String {
1322 format!("{}.{}.{}", self.catalog_name, self.schema_name, self.name)
1323 }
1324}
1325impl super::model_versions::v1::ModelVersion {
1326 pub fn qualified_name(&self) -> String {
1328 format!(
1329 "{}.{}.{}.{}",
1330 self.catalog_name, self.schema_name, self.model_name, self.version
1331 )
1332 }
1333}
1334impl super::policies::v1::PolicyInfo {
1335 pub fn qualified_name(&self) -> String {
1337 self.name.clone()
1338 }
1339}
1340impl super::providers::v1::Provider {
1341 pub fn qualified_name(&self) -> String {
1343 self.name.clone()
1344 }
1345}
1346impl super::recipients::v1::Recipient {
1347 pub fn qualified_name(&self) -> String {
1349 self.name.clone()
1350 }
1351}
1352impl super::registered_models::v1::RegisteredModel {
1353 pub fn qualified_name(&self) -> String {
1355 format!("{}.{}.{}", self.catalog_name, self.schema_name, self.name)
1356 }
1357}
1358impl super::schemas::v1::Schema {
1359 pub fn qualified_name(&self) -> String {
1361 format!("{}.{}", self.catalog_name, self.name)
1362 }
1363}
1364impl super::shares::v1::Share {
1365 pub fn qualified_name(&self) -> String {
1367 self.name.clone()
1368 }
1369}
1370impl super::staging_tables::v1::StagingTable {
1371 pub fn qualified_name(&self) -> String {
1373 self.name.clone()
1374 }
1375}
1376impl super::tables::v1::Table {
1377 pub fn qualified_name(&self) -> String {
1379 format!("{}.{}.{}", self.catalog_name, self.schema_name, self.name)
1380 }
1381}
1382impl super::tags::v1::TagPolicy {
1383 pub fn qualified_name(&self) -> String {
1385 self.tag_key.clone()
1386 }
1387}
1388impl super::volumes::v1::Volume {
1389 pub fn qualified_name(&self) -> String {
1391 format!("{}.{}.{}", self.catalog_name, self.schema_name, self.name)
1392 }
1393}
1394impl ::olai_store::Label for ObjectLabel {
1395 fn as_str(&self) -> &str {
1396 self.as_ref()
1397 }
1398}
1399pub static RESOURCE_DESCRIPTORS: &[::olai_store::ResourceTypeDescriptor<ObjectLabel>] = &[
1406 ::olai_store::ResourceTypeDescriptor {
1407 label: ObjectLabel::Agent,
1408 fields: &[
1409 ::olai_store::ResourceFieldDescriptor {
1410 name: "name",
1411 role: ::olai_store::FieldRole::Data,
1412 },
1413 ::olai_store::ResourceFieldDescriptor {
1414 name: "catalog_name",
1415 role: ::olai_store::FieldRole::Data,
1416 },
1417 ::olai_store::ResourceFieldDescriptor {
1418 name: "schema_name",
1419 role: ::olai_store::FieldRole::Data,
1420 },
1421 ::olai_store::ResourceFieldDescriptor {
1422 name: "full_name",
1423 role: ::olai_store::FieldRole::Data,
1424 },
1425 ::olai_store::ResourceFieldDescriptor {
1426 name: "agent_id",
1427 role: ::olai_store::FieldRole::Identifier,
1428 },
1429 ::olai_store::ResourceFieldDescriptor {
1430 name: "invocation_protocol",
1431 role: ::olai_store::FieldRole::Data,
1432 },
1433 ::olai_store::ResourceFieldDescriptor {
1434 name: "endpoint",
1435 role: ::olai_store::FieldRole::Data,
1436 },
1437 ::olai_store::ResourceFieldDescriptor {
1438 name: "description",
1439 role: ::olai_store::FieldRole::Data,
1440 },
1441 ::olai_store::ResourceFieldDescriptor {
1442 name: "capabilities",
1443 role: ::olai_store::FieldRole::Data,
1444 },
1445 ::olai_store::ResourceFieldDescriptor {
1446 name: "input_schema",
1447 role: ::olai_store::FieldRole::Data,
1448 },
1449 ::olai_store::ResourceFieldDescriptor {
1450 name: "owner",
1451 role: ::olai_store::FieldRole::Data,
1452 },
1453 ::olai_store::ResourceFieldDescriptor {
1454 name: "comment",
1455 role: ::olai_store::FieldRole::Data,
1456 },
1457 ::olai_store::ResourceFieldDescriptor {
1458 name: "created_at",
1459 role: ::olai_store::FieldRole::Managed,
1460 },
1461 ::olai_store::ResourceFieldDescriptor {
1462 name: "created_by",
1463 role: ::olai_store::FieldRole::Managed,
1464 },
1465 ::olai_store::ResourceFieldDescriptor {
1466 name: "updated_at",
1467 role: ::olai_store::FieldRole::Managed,
1468 },
1469 ::olai_store::ResourceFieldDescriptor {
1470 name: "updated_by",
1471 role: ::olai_store::FieldRole::Managed,
1472 },
1473 ::olai_store::ResourceFieldDescriptor {
1474 name: "metastore_id",
1475 role: ::olai_store::FieldRole::Data,
1476 },
1477 ],
1478 path_names: &["catalog_name", "schema_name", "name"],
1479 parent_label: Some(ObjectLabel::Catalog),
1480 },
1481 ::olai_store::ResourceTypeDescriptor {
1482 label: ObjectLabel::AgentSkill,
1483 fields: &[
1484 ::olai_store::ResourceFieldDescriptor {
1485 name: "name",
1486 role: ::olai_store::FieldRole::Data,
1487 },
1488 ::olai_store::ResourceFieldDescriptor {
1489 name: "catalog_name",
1490 role: ::olai_store::FieldRole::Data,
1491 },
1492 ::olai_store::ResourceFieldDescriptor {
1493 name: "schema_name",
1494 role: ::olai_store::FieldRole::Data,
1495 },
1496 ::olai_store::ResourceFieldDescriptor {
1497 name: "full_name",
1498 role: ::olai_store::FieldRole::Data,
1499 },
1500 ::olai_store::ResourceFieldDescriptor {
1501 name: "storage_location",
1502 role: ::olai_store::FieldRole::Data,
1503 },
1504 ::olai_store::ResourceFieldDescriptor {
1505 name: "agent_skill_id",
1506 role: ::olai_store::FieldRole::Identifier,
1507 },
1508 ::olai_store::ResourceFieldDescriptor {
1509 name: "agent_skill_type",
1510 role: ::olai_store::FieldRole::Data,
1511 },
1512 ::olai_store::ResourceFieldDescriptor {
1513 name: "description",
1514 role: ::olai_store::FieldRole::Data,
1515 },
1516 ::olai_store::ResourceFieldDescriptor {
1517 name: "license",
1518 role: ::olai_store::FieldRole::Data,
1519 },
1520 ::olai_store::ResourceFieldDescriptor {
1521 name: "allowed_tools",
1522 role: ::olai_store::FieldRole::Data,
1523 },
1524 ::olai_store::ResourceFieldDescriptor {
1525 name: "metadata",
1526 role: ::olai_store::FieldRole::Data,
1527 },
1528 ::olai_store::ResourceFieldDescriptor {
1529 name: "owner",
1530 role: ::olai_store::FieldRole::Data,
1531 },
1532 ::olai_store::ResourceFieldDescriptor {
1533 name: "comment",
1534 role: ::olai_store::FieldRole::Data,
1535 },
1536 ::olai_store::ResourceFieldDescriptor {
1537 name: "created_at",
1538 role: ::olai_store::FieldRole::Managed,
1539 },
1540 ::olai_store::ResourceFieldDescriptor {
1541 name: "created_by",
1542 role: ::olai_store::FieldRole::Managed,
1543 },
1544 ::olai_store::ResourceFieldDescriptor {
1545 name: "updated_at",
1546 role: ::olai_store::FieldRole::Managed,
1547 },
1548 ::olai_store::ResourceFieldDescriptor {
1549 name: "updated_by",
1550 role: ::olai_store::FieldRole::Managed,
1551 },
1552 ::olai_store::ResourceFieldDescriptor {
1553 name: "metastore_id",
1554 role: ::olai_store::FieldRole::Data,
1555 },
1556 ],
1557 path_names: &["catalog_name", "schema_name", "name"],
1558 parent_label: Some(ObjectLabel::Catalog),
1559 },
1560 ::olai_store::ResourceTypeDescriptor {
1561 label: ObjectLabel::Catalog,
1562 fields: &[
1563 ::olai_store::ResourceFieldDescriptor {
1564 name: "name",
1565 role: ::olai_store::FieldRole::Data,
1566 },
1567 ::olai_store::ResourceFieldDescriptor {
1568 name: "id",
1569 role: ::olai_store::FieldRole::Identifier,
1570 },
1571 ::olai_store::ResourceFieldDescriptor {
1572 name: "owner",
1573 role: ::olai_store::FieldRole::Data,
1574 },
1575 ::olai_store::ResourceFieldDescriptor {
1576 name: "comment",
1577 role: ::olai_store::FieldRole::Data,
1578 },
1579 ::olai_store::ResourceFieldDescriptor {
1580 name: "properties",
1581 role: ::olai_store::FieldRole::Data,
1582 },
1583 ::olai_store::ResourceFieldDescriptor {
1584 name: "storage_root",
1585 role: ::olai_store::FieldRole::Data,
1586 },
1587 ::olai_store::ResourceFieldDescriptor {
1588 name: "provider_name",
1589 role: ::olai_store::FieldRole::Data,
1590 },
1591 ::olai_store::ResourceFieldDescriptor {
1592 name: "share_name",
1593 role: ::olai_store::FieldRole::Data,
1594 },
1595 ::olai_store::ResourceFieldDescriptor {
1596 name: "catalog_type",
1597 role: ::olai_store::FieldRole::Data,
1598 },
1599 ::olai_store::ResourceFieldDescriptor {
1600 name: "storage_location",
1601 role: ::olai_store::FieldRole::Data,
1602 },
1603 ::olai_store::ResourceFieldDescriptor {
1604 name: "created_at",
1605 role: ::olai_store::FieldRole::Managed,
1606 },
1607 ::olai_store::ResourceFieldDescriptor {
1608 name: "created_by",
1609 role: ::olai_store::FieldRole::Managed,
1610 },
1611 ::olai_store::ResourceFieldDescriptor {
1612 name: "updated_at",
1613 role: ::olai_store::FieldRole::Managed,
1614 },
1615 ::olai_store::ResourceFieldDescriptor {
1616 name: "updated_by",
1617 role: ::olai_store::FieldRole::Managed,
1618 },
1619 ::olai_store::ResourceFieldDescriptor {
1620 name: "browse_only",
1621 role: ::olai_store::FieldRole::Data,
1622 },
1623 ],
1624 path_names: &["name"],
1625 parent_label: None,
1626 },
1627 ::olai_store::ResourceTypeDescriptor {
1628 label: ObjectLabel::Column,
1629 fields: &[
1630 ::olai_store::ResourceFieldDescriptor {
1631 name: "name",
1632 role: ::olai_store::FieldRole::Data,
1633 },
1634 ::olai_store::ResourceFieldDescriptor {
1635 name: "type_text",
1636 role: ::olai_store::FieldRole::Data,
1637 },
1638 ::olai_store::ResourceFieldDescriptor {
1639 name: "type_json",
1640 role: ::olai_store::FieldRole::Data,
1641 },
1642 ::olai_store::ResourceFieldDescriptor {
1643 name: "position",
1644 role: ::olai_store::FieldRole::Data,
1645 },
1646 ::olai_store::ResourceFieldDescriptor {
1647 name: "type_name",
1648 role: ::olai_store::FieldRole::Data,
1649 },
1650 ::olai_store::ResourceFieldDescriptor {
1651 name: "type_precision",
1652 role: ::olai_store::FieldRole::Data,
1653 },
1654 ::olai_store::ResourceFieldDescriptor {
1655 name: "type_scale",
1656 role: ::olai_store::FieldRole::Data,
1657 },
1658 ::olai_store::ResourceFieldDescriptor {
1659 name: "type_interval_type",
1660 role: ::olai_store::FieldRole::Data,
1661 },
1662 ::olai_store::ResourceFieldDescriptor {
1663 name: "comment",
1664 role: ::olai_store::FieldRole::Data,
1665 },
1666 ::olai_store::ResourceFieldDescriptor {
1667 name: "nullable",
1668 role: ::olai_store::FieldRole::Data,
1669 },
1670 ::olai_store::ResourceFieldDescriptor {
1671 name: "partition_index",
1672 role: ::olai_store::FieldRole::Data,
1673 },
1674 ::olai_store::ResourceFieldDescriptor {
1675 name: "column_id",
1676 role: ::olai_store::FieldRole::Identifier,
1677 },
1678 ],
1679 path_names: &["name"],
1680 parent_label: None,
1681 },
1682 ::olai_store::ResourceTypeDescriptor {
1683 label: ObjectLabel::Credential,
1684 fields: &[
1685 ::olai_store::ResourceFieldDescriptor {
1686 name: "name",
1687 role: ::olai_store::FieldRole::Data,
1688 },
1689 ::olai_store::ResourceFieldDescriptor {
1690 name: "id",
1691 role: ::olai_store::FieldRole::Identifier,
1692 },
1693 ::olai_store::ResourceFieldDescriptor {
1694 name: "purpose",
1695 role: ::olai_store::FieldRole::Data,
1696 },
1697 ::olai_store::ResourceFieldDescriptor {
1698 name: "read_only",
1699 role: ::olai_store::FieldRole::Data,
1700 },
1701 ::olai_store::ResourceFieldDescriptor {
1702 name: "comment",
1703 role: ::olai_store::FieldRole::Data,
1704 },
1705 ::olai_store::ResourceFieldDescriptor {
1706 name: "owner",
1707 role: ::olai_store::FieldRole::Data,
1708 },
1709 ::olai_store::ResourceFieldDescriptor {
1710 name: "created_at",
1711 role: ::olai_store::FieldRole::Managed,
1712 },
1713 ::olai_store::ResourceFieldDescriptor {
1714 name: "created_by",
1715 role: ::olai_store::FieldRole::Managed,
1716 },
1717 ::olai_store::ResourceFieldDescriptor {
1718 name: "updated_at",
1719 role: ::olai_store::FieldRole::Managed,
1720 },
1721 ::olai_store::ResourceFieldDescriptor {
1722 name: "updated_by",
1723 role: ::olai_store::FieldRole::Managed,
1724 },
1725 ::olai_store::ResourceFieldDescriptor {
1726 name: "used_for_managed_storage",
1727 role: ::olai_store::FieldRole::Data,
1728 },
1729 ::olai_store::ResourceFieldDescriptor {
1730 name: "full_name",
1731 role: ::olai_store::FieldRole::Data,
1732 },
1733 ::olai_store::ResourceFieldDescriptor {
1734 name: "azure_service_principal",
1735 role: ::olai_store::FieldRole::Sensitive,
1736 },
1737 ::olai_store::ResourceFieldDescriptor {
1738 name: "azure_managed_identity",
1739 role: ::olai_store::FieldRole::Sensitive,
1740 },
1741 ::olai_store::ResourceFieldDescriptor {
1742 name: "azure_storage_key",
1743 role: ::olai_store::FieldRole::Sensitive,
1744 },
1745 ::olai_store::ResourceFieldDescriptor {
1746 name: "aws_iam_role",
1747 role: ::olai_store::FieldRole::Sensitive,
1748 },
1749 ::olai_store::ResourceFieldDescriptor {
1750 name: "databricks_gcp_service_account",
1751 role: ::olai_store::FieldRole::Sensitive,
1752 },
1753 ],
1754 path_names: &["name"],
1755 parent_label: None,
1756 },
1757 ::olai_store::ResourceTypeDescriptor {
1758 label: ObjectLabel::ExternalLocation,
1759 fields: &[
1760 ::olai_store::ResourceFieldDescriptor {
1761 name: "name",
1762 role: ::olai_store::FieldRole::Data,
1763 },
1764 ::olai_store::ResourceFieldDescriptor {
1765 name: "url",
1766 role: ::olai_store::FieldRole::Data,
1767 },
1768 ::olai_store::ResourceFieldDescriptor {
1769 name: "credential_name",
1770 role: ::olai_store::FieldRole::Data,
1771 },
1772 ::olai_store::ResourceFieldDescriptor {
1773 name: "read_only",
1774 role: ::olai_store::FieldRole::Data,
1775 },
1776 ::olai_store::ResourceFieldDescriptor {
1777 name: "comment",
1778 role: ::olai_store::FieldRole::Data,
1779 },
1780 ::olai_store::ResourceFieldDescriptor {
1781 name: "owner",
1782 role: ::olai_store::FieldRole::Data,
1783 },
1784 ::olai_store::ResourceFieldDescriptor {
1785 name: "credential_id",
1786 role: ::olai_store::FieldRole::Data,
1787 },
1788 ::olai_store::ResourceFieldDescriptor {
1789 name: "created_at",
1790 role: ::olai_store::FieldRole::Managed,
1791 },
1792 ::olai_store::ResourceFieldDescriptor {
1793 name: "created_by",
1794 role: ::olai_store::FieldRole::Managed,
1795 },
1796 ::olai_store::ResourceFieldDescriptor {
1797 name: "updated_at",
1798 role: ::olai_store::FieldRole::Managed,
1799 },
1800 ::olai_store::ResourceFieldDescriptor {
1801 name: "updated_by",
1802 role: ::olai_store::FieldRole::Managed,
1803 },
1804 ::olai_store::ResourceFieldDescriptor {
1805 name: "browse_only",
1806 role: ::olai_store::FieldRole::Data,
1807 },
1808 ::olai_store::ResourceFieldDescriptor {
1809 name: "external_location_id",
1810 role: ::olai_store::FieldRole::Identifier,
1811 },
1812 ],
1813 path_names: &["name"],
1814 parent_label: None,
1815 },
1816 ::olai_store::ResourceTypeDescriptor {
1817 label: ObjectLabel::Function,
1818 fields: &[
1819 ::olai_store::ResourceFieldDescriptor {
1820 name: "name",
1821 role: ::olai_store::FieldRole::Data,
1822 },
1823 ::olai_store::ResourceFieldDescriptor {
1824 name: "catalog_name",
1825 role: ::olai_store::FieldRole::Data,
1826 },
1827 ::olai_store::ResourceFieldDescriptor {
1828 name: "schema_name",
1829 role: ::olai_store::FieldRole::Data,
1830 },
1831 ::olai_store::ResourceFieldDescriptor {
1832 name: "full_name",
1833 role: ::olai_store::FieldRole::Data,
1834 },
1835 ::olai_store::ResourceFieldDescriptor {
1836 name: "data_type",
1837 role: ::olai_store::FieldRole::Data,
1838 },
1839 ::olai_store::ResourceFieldDescriptor {
1840 name: "full_data_type",
1841 role: ::olai_store::FieldRole::Data,
1842 },
1843 ::olai_store::ResourceFieldDescriptor {
1844 name: "input_params",
1845 role: ::olai_store::FieldRole::Data,
1846 },
1847 ::olai_store::ResourceFieldDescriptor {
1848 name: "return_params",
1849 role: ::olai_store::FieldRole::Data,
1850 },
1851 ::olai_store::ResourceFieldDescriptor {
1852 name: "routine_body_language",
1853 role: ::olai_store::FieldRole::Data,
1854 },
1855 ::olai_store::ResourceFieldDescriptor {
1856 name: "routine_definition",
1857 role: ::olai_store::FieldRole::Data,
1858 },
1859 ::olai_store::ResourceFieldDescriptor {
1860 name: "routine_dependencies",
1861 role: ::olai_store::FieldRole::Data,
1862 },
1863 ::olai_store::ResourceFieldDescriptor {
1864 name: "parameter_style",
1865 role: ::olai_store::FieldRole::Data,
1866 },
1867 ::olai_store::ResourceFieldDescriptor {
1868 name: "is_deterministic",
1869 role: ::olai_store::FieldRole::Data,
1870 },
1871 ::olai_store::ResourceFieldDescriptor {
1872 name: "sql_data_access",
1873 role: ::olai_store::FieldRole::Data,
1874 },
1875 ::olai_store::ResourceFieldDescriptor {
1876 name: "is_null_call",
1877 role: ::olai_store::FieldRole::Data,
1878 },
1879 ::olai_store::ResourceFieldDescriptor {
1880 name: "security_type",
1881 role: ::olai_store::FieldRole::Data,
1882 },
1883 ::olai_store::ResourceFieldDescriptor {
1884 name: "specific_name",
1885 role: ::olai_store::FieldRole::Data,
1886 },
1887 ::olai_store::ResourceFieldDescriptor {
1888 name: "routine_body",
1889 role: ::olai_store::FieldRole::Data,
1890 },
1891 ::olai_store::ResourceFieldDescriptor {
1892 name: "comment",
1893 role: ::olai_store::FieldRole::Data,
1894 },
1895 ::olai_store::ResourceFieldDescriptor {
1896 name: "properties",
1897 role: ::olai_store::FieldRole::Data,
1898 },
1899 ::olai_store::ResourceFieldDescriptor {
1900 name: "owner",
1901 role: ::olai_store::FieldRole::Data,
1902 },
1903 ::olai_store::ResourceFieldDescriptor {
1904 name: "function_id",
1905 role: ::olai_store::FieldRole::Identifier,
1906 },
1907 ::olai_store::ResourceFieldDescriptor {
1908 name: "created_at",
1909 role: ::olai_store::FieldRole::Managed,
1910 },
1911 ::olai_store::ResourceFieldDescriptor {
1912 name: "created_by",
1913 role: ::olai_store::FieldRole::Managed,
1914 },
1915 ::olai_store::ResourceFieldDescriptor {
1916 name: "updated_at",
1917 role: ::olai_store::FieldRole::Managed,
1918 },
1919 ::olai_store::ResourceFieldDescriptor {
1920 name: "updated_by",
1921 role: ::olai_store::FieldRole::Managed,
1922 },
1923 ],
1924 path_names: &["catalog_name", "schema_name", "name"],
1925 parent_label: Some(ObjectLabel::Catalog),
1926 },
1927 ::olai_store::ResourceTypeDescriptor {
1928 label: ObjectLabel::ModelVersion,
1929 fields: &[
1930 ::olai_store::ResourceFieldDescriptor {
1931 name: "model_name",
1932 role: ::olai_store::FieldRole::Data,
1933 },
1934 ::olai_store::ResourceFieldDescriptor {
1935 name: "catalog_name",
1936 role: ::olai_store::FieldRole::Data,
1937 },
1938 ::olai_store::ResourceFieldDescriptor {
1939 name: "schema_name",
1940 role: ::olai_store::FieldRole::Data,
1941 },
1942 ::olai_store::ResourceFieldDescriptor {
1943 name: "version",
1944 role: ::olai_store::FieldRole::Data,
1945 },
1946 ::olai_store::ResourceFieldDescriptor {
1947 name: "source",
1948 role: ::olai_store::FieldRole::Data,
1949 },
1950 ::olai_store::ResourceFieldDescriptor {
1951 name: "run_id",
1952 role: ::olai_store::FieldRole::Data,
1953 },
1954 ::olai_store::ResourceFieldDescriptor {
1955 name: "status",
1956 role: ::olai_store::FieldRole::Data,
1957 },
1958 ::olai_store::ResourceFieldDescriptor {
1959 name: "storage_location",
1960 role: ::olai_store::FieldRole::Data,
1961 },
1962 ::olai_store::ResourceFieldDescriptor {
1963 name: "comment",
1964 role: ::olai_store::FieldRole::Data,
1965 },
1966 ::olai_store::ResourceFieldDescriptor {
1967 name: "id",
1968 role: ::olai_store::FieldRole::Identifier,
1969 },
1970 ::olai_store::ResourceFieldDescriptor {
1971 name: "created_at",
1972 role: ::olai_store::FieldRole::Managed,
1973 },
1974 ::olai_store::ResourceFieldDescriptor {
1975 name: "created_by",
1976 role: ::olai_store::FieldRole::Managed,
1977 },
1978 ::olai_store::ResourceFieldDescriptor {
1979 name: "updated_at",
1980 role: ::olai_store::FieldRole::Managed,
1981 },
1982 ::olai_store::ResourceFieldDescriptor {
1983 name: "updated_by",
1984 role: ::olai_store::FieldRole::Managed,
1985 },
1986 ::olai_store::ResourceFieldDescriptor {
1987 name: "metastore_id",
1988 role: ::olai_store::FieldRole::Data,
1989 },
1990 ::olai_store::ResourceFieldDescriptor {
1991 name: "browse_only",
1992 role: ::olai_store::FieldRole::Data,
1993 },
1994 ],
1995 path_names: &["catalog_name", "schema_name", "model_name", "version"],
1996 parent_label: None,
1997 },
1998 ::olai_store::ResourceTypeDescriptor {
1999 label: ObjectLabel::PolicyInfo,
2000 fields: &[
2001 ::olai_store::ResourceFieldDescriptor {
2002 name: "name",
2003 role: ::olai_store::FieldRole::Data,
2004 },
2005 ::olai_store::ResourceFieldDescriptor {
2006 name: "id",
2007 role: ::olai_store::FieldRole::Identifier,
2008 },
2009 ::olai_store::ResourceFieldDescriptor {
2010 name: "on_securable_type",
2011 role: ::olai_store::FieldRole::Data,
2012 },
2013 ::olai_store::ResourceFieldDescriptor {
2014 name: "on_securable_fullname",
2015 role: ::olai_store::FieldRole::Data,
2016 },
2017 ::olai_store::ResourceFieldDescriptor {
2018 name: "policy_type",
2019 role: ::olai_store::FieldRole::Data,
2020 },
2021 ::olai_store::ResourceFieldDescriptor {
2022 name: "to_principals",
2023 role: ::olai_store::FieldRole::Data,
2024 },
2025 ::olai_store::ResourceFieldDescriptor {
2026 name: "except_principals",
2027 role: ::olai_store::FieldRole::Data,
2028 },
2029 ::olai_store::ResourceFieldDescriptor {
2030 name: "when_condition",
2031 role: ::olai_store::FieldRole::Data,
2032 },
2033 ::olai_store::ResourceFieldDescriptor {
2034 name: "match_columns",
2035 role: ::olai_store::FieldRole::Data,
2036 },
2037 ::olai_store::ResourceFieldDescriptor {
2038 name: "comment",
2039 role: ::olai_store::FieldRole::Data,
2040 },
2041 ::olai_store::ResourceFieldDescriptor {
2042 name: "created_at",
2043 role: ::olai_store::FieldRole::Managed,
2044 },
2045 ::olai_store::ResourceFieldDescriptor {
2046 name: "updated_at",
2047 role: ::olai_store::FieldRole::Managed,
2048 },
2049 ::olai_store::ResourceFieldDescriptor {
2050 name: "function",
2051 role: ::olai_store::FieldRole::Data,
2052 },
2053 ],
2054 path_names: &["name"],
2055 parent_label: None,
2056 },
2057 ::olai_store::ResourceTypeDescriptor {
2058 label: ObjectLabel::Provider,
2059 fields: &[
2060 ::olai_store::ResourceFieldDescriptor {
2061 name: "id",
2062 role: ::olai_store::FieldRole::Identifier,
2063 },
2064 ::olai_store::ResourceFieldDescriptor {
2065 name: "name",
2066 role: ::olai_store::FieldRole::Data,
2067 },
2068 ::olai_store::ResourceFieldDescriptor {
2069 name: "authentication_type",
2070 role: ::olai_store::FieldRole::Data,
2071 },
2072 ::olai_store::ResourceFieldDescriptor {
2073 name: "owner",
2074 role: ::olai_store::FieldRole::Data,
2075 },
2076 ::olai_store::ResourceFieldDescriptor {
2077 name: "comment",
2078 role: ::olai_store::FieldRole::Data,
2079 },
2080 ::olai_store::ResourceFieldDescriptor {
2081 name: "recipient_profile_str",
2082 role: ::olai_store::FieldRole::Data,
2083 },
2084 ::olai_store::ResourceFieldDescriptor {
2085 name: "properties",
2086 role: ::olai_store::FieldRole::Data,
2087 },
2088 ::olai_store::ResourceFieldDescriptor {
2089 name: "created_at",
2090 role: ::olai_store::FieldRole::Managed,
2091 },
2092 ::olai_store::ResourceFieldDescriptor {
2093 name: "created_by",
2094 role: ::olai_store::FieldRole::Managed,
2095 },
2096 ::olai_store::ResourceFieldDescriptor {
2097 name: "updated_at",
2098 role: ::olai_store::FieldRole::Managed,
2099 },
2100 ::olai_store::ResourceFieldDescriptor {
2101 name: "updated_by",
2102 role: ::olai_store::FieldRole::Managed,
2103 },
2104 ],
2105 path_names: &["name"],
2106 parent_label: None,
2107 },
2108 ::olai_store::ResourceTypeDescriptor {
2109 label: ObjectLabel::Recipient,
2110 fields: &[
2111 ::olai_store::ResourceFieldDescriptor {
2112 name: "id",
2113 role: ::olai_store::FieldRole::Identifier,
2114 },
2115 ::olai_store::ResourceFieldDescriptor {
2116 name: "name",
2117 role: ::olai_store::FieldRole::Data,
2118 },
2119 ::olai_store::ResourceFieldDescriptor {
2120 name: "authentication_type",
2121 role: ::olai_store::FieldRole::Data,
2122 },
2123 ::olai_store::ResourceFieldDescriptor {
2124 name: "owner",
2125 role: ::olai_store::FieldRole::Data,
2126 },
2127 ::olai_store::ResourceFieldDescriptor {
2128 name: "comment",
2129 role: ::olai_store::FieldRole::Data,
2130 },
2131 ::olai_store::ResourceFieldDescriptor {
2132 name: "properties",
2133 role: ::olai_store::FieldRole::Data,
2134 },
2135 ::olai_store::ResourceFieldDescriptor {
2136 name: "created_at",
2137 role: ::olai_store::FieldRole::Managed,
2138 },
2139 ::olai_store::ResourceFieldDescriptor {
2140 name: "created_by",
2141 role: ::olai_store::FieldRole::Managed,
2142 },
2143 ::olai_store::ResourceFieldDescriptor {
2144 name: "tokens",
2145 role: ::olai_store::FieldRole::Data,
2146 },
2147 ::olai_store::ResourceFieldDescriptor {
2148 name: "updated_at",
2149 role: ::olai_store::FieldRole::Managed,
2150 },
2151 ::olai_store::ResourceFieldDescriptor {
2152 name: "updated_by",
2153 role: ::olai_store::FieldRole::Managed,
2154 },
2155 ],
2156 path_names: &["name"],
2157 parent_label: None,
2158 },
2159 ::olai_store::ResourceTypeDescriptor {
2160 label: ObjectLabel::RegisteredModel,
2161 fields: &[
2162 ::olai_store::ResourceFieldDescriptor {
2163 name: "name",
2164 role: ::olai_store::FieldRole::Data,
2165 },
2166 ::olai_store::ResourceFieldDescriptor {
2167 name: "catalog_name",
2168 role: ::olai_store::FieldRole::Data,
2169 },
2170 ::olai_store::ResourceFieldDescriptor {
2171 name: "schema_name",
2172 role: ::olai_store::FieldRole::Data,
2173 },
2174 ::olai_store::ResourceFieldDescriptor {
2175 name: "full_name",
2176 role: ::olai_store::FieldRole::Data,
2177 },
2178 ::olai_store::ResourceFieldDescriptor {
2179 name: "storage_location",
2180 role: ::olai_store::FieldRole::Data,
2181 },
2182 ::olai_store::ResourceFieldDescriptor {
2183 name: "owner",
2184 role: ::olai_store::FieldRole::Data,
2185 },
2186 ::olai_store::ResourceFieldDescriptor {
2187 name: "comment",
2188 role: ::olai_store::FieldRole::Data,
2189 },
2190 ::olai_store::ResourceFieldDescriptor {
2191 name: "id",
2192 role: ::olai_store::FieldRole::Identifier,
2193 },
2194 ::olai_store::ResourceFieldDescriptor {
2195 name: "created_at",
2196 role: ::olai_store::FieldRole::Managed,
2197 },
2198 ::olai_store::ResourceFieldDescriptor {
2199 name: "created_by",
2200 role: ::olai_store::FieldRole::Managed,
2201 },
2202 ::olai_store::ResourceFieldDescriptor {
2203 name: "updated_at",
2204 role: ::olai_store::FieldRole::Managed,
2205 },
2206 ::olai_store::ResourceFieldDescriptor {
2207 name: "updated_by",
2208 role: ::olai_store::FieldRole::Managed,
2209 },
2210 ::olai_store::ResourceFieldDescriptor {
2211 name: "metastore_id",
2212 role: ::olai_store::FieldRole::Data,
2213 },
2214 ::olai_store::ResourceFieldDescriptor {
2215 name: "browse_only",
2216 role: ::olai_store::FieldRole::Data,
2217 },
2218 ],
2219 path_names: &["catalog_name", "schema_name", "name"],
2220 parent_label: Some(ObjectLabel::Catalog),
2221 },
2222 ::olai_store::ResourceTypeDescriptor {
2223 label: ObjectLabel::Schema,
2224 fields: &[
2225 ::olai_store::ResourceFieldDescriptor {
2226 name: "name",
2227 role: ::olai_store::FieldRole::Data,
2228 },
2229 ::olai_store::ResourceFieldDescriptor {
2230 name: "catalog_name",
2231 role: ::olai_store::FieldRole::Data,
2232 },
2233 ::olai_store::ResourceFieldDescriptor {
2234 name: "full_name",
2235 role: ::olai_store::FieldRole::Data,
2236 },
2237 ::olai_store::ResourceFieldDescriptor {
2238 name: "comment",
2239 role: ::olai_store::FieldRole::Data,
2240 },
2241 ::olai_store::ResourceFieldDescriptor {
2242 name: "properties",
2243 role: ::olai_store::FieldRole::Data,
2244 },
2245 ::olai_store::ResourceFieldDescriptor {
2246 name: "owner",
2247 role: ::olai_store::FieldRole::Data,
2248 },
2249 ::olai_store::ResourceFieldDescriptor {
2250 name: "created_at",
2251 role: ::olai_store::FieldRole::Managed,
2252 },
2253 ::olai_store::ResourceFieldDescriptor {
2254 name: "created_by",
2255 role: ::olai_store::FieldRole::Managed,
2256 },
2257 ::olai_store::ResourceFieldDescriptor {
2258 name: "updated_at",
2259 role: ::olai_store::FieldRole::Managed,
2260 },
2261 ::olai_store::ResourceFieldDescriptor {
2262 name: "updated_by",
2263 role: ::olai_store::FieldRole::Managed,
2264 },
2265 ::olai_store::ResourceFieldDescriptor {
2266 name: "schema_id",
2267 role: ::olai_store::FieldRole::Identifier,
2268 },
2269 ::olai_store::ResourceFieldDescriptor {
2270 name: "storage_root",
2271 role: ::olai_store::FieldRole::Data,
2272 },
2273 ::olai_store::ResourceFieldDescriptor {
2274 name: "storage_location",
2275 role: ::olai_store::FieldRole::Data,
2276 },
2277 ],
2278 path_names: &["catalog_name", "name"],
2279 parent_label: Some(ObjectLabel::Catalog),
2280 },
2281 ::olai_store::ResourceTypeDescriptor {
2282 label: ObjectLabel::Share,
2283 fields: &[
2284 ::olai_store::ResourceFieldDescriptor {
2285 name: "id",
2286 role: ::olai_store::FieldRole::Identifier,
2287 },
2288 ::olai_store::ResourceFieldDescriptor {
2289 name: "name",
2290 role: ::olai_store::FieldRole::Data,
2291 },
2292 ::olai_store::ResourceFieldDescriptor {
2293 name: "objects",
2294 role: ::olai_store::FieldRole::Data,
2295 },
2296 ::olai_store::ResourceFieldDescriptor {
2297 name: "owner",
2298 role: ::olai_store::FieldRole::Data,
2299 },
2300 ::olai_store::ResourceFieldDescriptor {
2301 name: "comment",
2302 role: ::olai_store::FieldRole::Data,
2303 },
2304 ::olai_store::ResourceFieldDescriptor {
2305 name: "storage_location",
2306 role: ::olai_store::FieldRole::Data,
2307 },
2308 ::olai_store::ResourceFieldDescriptor {
2309 name: "storage_root",
2310 role: ::olai_store::FieldRole::Data,
2311 },
2312 ::olai_store::ResourceFieldDescriptor {
2313 name: "created_at",
2314 role: ::olai_store::FieldRole::Managed,
2315 },
2316 ::olai_store::ResourceFieldDescriptor {
2317 name: "created_by",
2318 role: ::olai_store::FieldRole::Managed,
2319 },
2320 ::olai_store::ResourceFieldDescriptor {
2321 name: "updated_at",
2322 role: ::olai_store::FieldRole::Managed,
2323 },
2324 ::olai_store::ResourceFieldDescriptor {
2325 name: "updated_by",
2326 role: ::olai_store::FieldRole::Managed,
2327 },
2328 ],
2329 path_names: &["name"],
2330 parent_label: None,
2331 },
2332 ::olai_store::ResourceTypeDescriptor {
2333 label: ObjectLabel::StagingTable,
2334 fields: &[
2335 ::olai_store::ResourceFieldDescriptor {
2336 name: "id",
2337 role: ::olai_store::FieldRole::Identifier,
2338 },
2339 ::olai_store::ResourceFieldDescriptor {
2340 name: "name",
2341 role: ::olai_store::FieldRole::Data,
2342 },
2343 ::olai_store::ResourceFieldDescriptor {
2344 name: "schema_name",
2345 role: ::olai_store::FieldRole::Data,
2346 },
2347 ::olai_store::ResourceFieldDescriptor {
2348 name: "catalog_name",
2349 role: ::olai_store::FieldRole::Data,
2350 },
2351 ::olai_store::ResourceFieldDescriptor {
2352 name: "staging_location",
2353 role: ::olai_store::FieldRole::Data,
2354 },
2355 ::olai_store::ResourceFieldDescriptor {
2356 name: "created_by",
2357 role: ::olai_store::FieldRole::Managed,
2358 },
2359 ::olai_store::ResourceFieldDescriptor {
2360 name: "stage_committed",
2361 role: ::olai_store::FieldRole::Data,
2362 },
2363 ::olai_store::ResourceFieldDescriptor {
2364 name: "created_at",
2365 role: ::olai_store::FieldRole::Managed,
2366 },
2367 ],
2368 path_names: &["name"],
2369 parent_label: None,
2370 },
2371 ::olai_store::ResourceTypeDescriptor {
2372 label: ObjectLabel::Table,
2373 fields: &[
2374 ::olai_store::ResourceFieldDescriptor {
2375 name: "name",
2376 role: ::olai_store::FieldRole::Data,
2377 },
2378 ::olai_store::ResourceFieldDescriptor {
2379 name: "catalog_name",
2380 role: ::olai_store::FieldRole::Data,
2381 },
2382 ::olai_store::ResourceFieldDescriptor {
2383 name: "schema_name",
2384 role: ::olai_store::FieldRole::Data,
2385 },
2386 ::olai_store::ResourceFieldDescriptor {
2387 name: "table_type",
2388 role: ::olai_store::FieldRole::Data,
2389 },
2390 ::olai_store::ResourceFieldDescriptor {
2391 name: "data_source_format",
2392 role: ::olai_store::FieldRole::Data,
2393 },
2394 ::olai_store::ResourceFieldDescriptor {
2395 name: "columns",
2396 role: ::olai_store::FieldRole::Data,
2397 },
2398 ::olai_store::ResourceFieldDescriptor {
2399 name: "storage_location",
2400 role: ::olai_store::FieldRole::Data,
2401 },
2402 ::olai_store::ResourceFieldDescriptor {
2403 name: "view_definition",
2404 role: ::olai_store::FieldRole::Data,
2405 },
2406 ::olai_store::ResourceFieldDescriptor {
2407 name: "view_dependencies",
2408 role: ::olai_store::FieldRole::Data,
2409 },
2410 ::olai_store::ResourceFieldDescriptor {
2411 name: "owner",
2412 role: ::olai_store::FieldRole::Data,
2413 },
2414 ::olai_store::ResourceFieldDescriptor {
2415 name: "comment",
2416 role: ::olai_store::FieldRole::Data,
2417 },
2418 ::olai_store::ResourceFieldDescriptor {
2419 name: "properties",
2420 role: ::olai_store::FieldRole::Data,
2421 },
2422 ::olai_store::ResourceFieldDescriptor {
2423 name: "storage_credential_name",
2424 role: ::olai_store::FieldRole::Data,
2425 },
2426 ::olai_store::ResourceFieldDescriptor {
2427 name: "full_name",
2428 role: ::olai_store::FieldRole::Data,
2429 },
2430 ::olai_store::ResourceFieldDescriptor {
2431 name: "created_at",
2432 role: ::olai_store::FieldRole::Managed,
2433 },
2434 ::olai_store::ResourceFieldDescriptor {
2435 name: "created_by",
2436 role: ::olai_store::FieldRole::Managed,
2437 },
2438 ::olai_store::ResourceFieldDescriptor {
2439 name: "updated_at",
2440 role: ::olai_store::FieldRole::Managed,
2441 },
2442 ::olai_store::ResourceFieldDescriptor {
2443 name: "updated_by",
2444 role: ::olai_store::FieldRole::Managed,
2445 },
2446 ::olai_store::ResourceFieldDescriptor {
2447 name: "deleted_at",
2448 role: ::olai_store::FieldRole::Data,
2449 },
2450 ::olai_store::ResourceFieldDescriptor {
2451 name: "table_id",
2452 role: ::olai_store::FieldRole::Identifier,
2453 },
2454 ],
2455 path_names: &["catalog_name", "schema_name", "name"],
2456 parent_label: Some(ObjectLabel::Catalog),
2457 },
2458 ::olai_store::ResourceTypeDescriptor {
2459 label: ObjectLabel::TagPolicy,
2460 fields: &[
2461 ::olai_store::ResourceFieldDescriptor {
2462 name: "tag_key",
2463 role: ::olai_store::FieldRole::Data,
2464 },
2465 ::olai_store::ResourceFieldDescriptor {
2466 name: "description",
2467 role: ::olai_store::FieldRole::Data,
2468 },
2469 ::olai_store::ResourceFieldDescriptor {
2470 name: "values",
2471 role: ::olai_store::FieldRole::Data,
2472 },
2473 ::olai_store::ResourceFieldDescriptor {
2474 name: "id",
2475 role: ::olai_store::FieldRole::Identifier,
2476 },
2477 ::olai_store::ResourceFieldDescriptor {
2478 name: "created_at",
2479 role: ::olai_store::FieldRole::Managed,
2480 },
2481 ::olai_store::ResourceFieldDescriptor {
2482 name: "updated_at",
2483 role: ::olai_store::FieldRole::Managed,
2484 },
2485 ],
2486 path_names: &["tag_key"],
2487 parent_label: None,
2488 },
2489 ::olai_store::ResourceTypeDescriptor {
2490 label: ObjectLabel::Volume,
2491 fields: &[
2492 ::olai_store::ResourceFieldDescriptor {
2493 name: "name",
2494 role: ::olai_store::FieldRole::Data,
2495 },
2496 ::olai_store::ResourceFieldDescriptor {
2497 name: "catalog_name",
2498 role: ::olai_store::FieldRole::Data,
2499 },
2500 ::olai_store::ResourceFieldDescriptor {
2501 name: "schema_name",
2502 role: ::olai_store::FieldRole::Data,
2503 },
2504 ::olai_store::ResourceFieldDescriptor {
2505 name: "full_name",
2506 role: ::olai_store::FieldRole::Data,
2507 },
2508 ::olai_store::ResourceFieldDescriptor {
2509 name: "storage_location",
2510 role: ::olai_store::FieldRole::Data,
2511 },
2512 ::olai_store::ResourceFieldDescriptor {
2513 name: "volume_id",
2514 role: ::olai_store::FieldRole::Identifier,
2515 },
2516 ::olai_store::ResourceFieldDescriptor {
2517 name: "volume_type",
2518 role: ::olai_store::FieldRole::Data,
2519 },
2520 ::olai_store::ResourceFieldDescriptor {
2521 name: "owner",
2522 role: ::olai_store::FieldRole::Data,
2523 },
2524 ::olai_store::ResourceFieldDescriptor {
2525 name: "comment",
2526 role: ::olai_store::FieldRole::Data,
2527 },
2528 ::olai_store::ResourceFieldDescriptor {
2529 name: "created_at",
2530 role: ::olai_store::FieldRole::Managed,
2531 },
2532 ::olai_store::ResourceFieldDescriptor {
2533 name: "created_by",
2534 role: ::olai_store::FieldRole::Managed,
2535 },
2536 ::olai_store::ResourceFieldDescriptor {
2537 name: "updated_at",
2538 role: ::olai_store::FieldRole::Managed,
2539 },
2540 ::olai_store::ResourceFieldDescriptor {
2541 name: "updated_by",
2542 role: ::olai_store::FieldRole::Managed,
2543 },
2544 ::olai_store::ResourceFieldDescriptor {
2545 name: "browse_only",
2546 role: ::olai_store::FieldRole::Data,
2547 },
2548 ::olai_store::ResourceFieldDescriptor {
2549 name: "metastore_id",
2550 role: ::olai_store::FieldRole::Data,
2551 },
2552 ],
2553 path_names: &["catalog_name", "schema_name", "name"],
2554 parent_label: Some(ObjectLabel::Catalog),
2555 },
2556];