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