mz_catalog_protos/
objects_v68.rs

1// Copyright Materialize, Inc. and contributors. All rights reserved.
2//
3// Use of this software is governed by the Business Source License
4// included in the LICENSE file.
5//
6// As of the Change Date specified in that file, in accordance with
7// the Business Source License, use of this software will be governed
8// by the Apache License, Version 2.0.
9
10use num_enum::{IntoPrimitive, TryFromPrimitive};
11use proptest_derive::Arbitrary;
12use serde::{Deserialize, Serialize};
13
14#[derive(
15    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
16)]
17pub struct ConfigKey {
18    pub key: String,
19}
20
21#[derive(
22    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
23)]
24pub struct ConfigValue {
25    pub value: u64,
26}
27
28#[derive(
29    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
30)]
31pub struct SettingKey {
32    pub name: String,
33}
34
35#[derive(
36    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
37)]
38pub struct SettingValue {
39    pub value: String,
40}
41
42#[derive(
43    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
44)]
45pub struct IdAllocKey {
46    pub name: String,
47}
48
49#[derive(
50    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
51)]
52pub struct IdAllocValue {
53    pub next_id: u64,
54}
55
56#[derive(
57    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
58)]
59pub struct GidMappingKey {
60    pub schema_name: String,
61    pub object_type: i32,
62    pub object_name: String,
63}
64
65#[derive(
66    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
67)]
68pub struct GidMappingValue {
69    pub id: u64,
70    pub fingerprint: String,
71    pub global_id: Option<SystemGlobalId>,
72}
73
74#[derive(
75    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
76)]
77pub struct ClusterKey {
78    pub id: Option<ClusterId>,
79}
80
81#[derive(
82    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
83)]
84pub struct ClusterValue {
85    pub name: String,
86    pub owner_id: Option<RoleId>,
87    pub privileges: Vec<MzAclItem>,
88    pub config: Option<ClusterConfig>,
89}
90
91#[derive(
92    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
93)]
94pub struct ClusterIntrospectionSourceIndexKey {
95    pub cluster_id: Option<ClusterId>,
96    pub name: String,
97}
98
99#[derive(
100    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
101)]
102pub struct ClusterIntrospectionSourceIndexValue {
103    pub index_id: u64,
104    pub oid: u32,
105    pub global_id: Option<SystemGlobalId>,
106}
107
108#[derive(
109    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
110)]
111pub struct ClusterReplicaKey {
112    pub id: Option<ReplicaId>,
113}
114
115#[derive(
116    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
117)]
118pub struct ClusterReplicaValue {
119    pub cluster_id: Option<ClusterId>,
120    pub name: String,
121    pub config: Option<ReplicaConfig>,
122    pub owner_id: Option<RoleId>,
123}
124
125#[derive(
126    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
127)]
128pub struct DatabaseKey {
129    pub id: Option<DatabaseId>,
130}
131
132#[derive(
133    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
134)]
135pub struct DatabaseValue {
136    pub name: String,
137    pub owner_id: Option<RoleId>,
138    pub privileges: Vec<MzAclItem>,
139    pub oid: u32,
140}
141
142#[derive(
143    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
144)]
145pub struct SchemaKey {
146    pub id: Option<SchemaId>,
147}
148
149#[derive(
150    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
151)]
152pub struct SchemaValue {
153    pub database_id: Option<DatabaseId>,
154    pub name: String,
155    pub owner_id: Option<RoleId>,
156    pub privileges: Vec<MzAclItem>,
157    pub oid: u32,
158}
159
160#[derive(
161    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
162)]
163pub struct ItemKey {
164    pub gid: Option<CatalogItemId>,
165}
166
167#[derive(
168    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
169)]
170pub struct ItemValue {
171    pub schema_id: Option<SchemaId>,
172    pub name: String,
173    pub definition: Option<CatalogItem>,
174    pub owner_id: Option<RoleId>,
175    pub privileges: Vec<MzAclItem>,
176    pub oid: u32,
177    pub global_id: Option<GlobalId>,
178    pub extra_versions: Vec<ItemVersion>,
179}
180
181#[derive(
182    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
183)]
184pub struct ItemVersion {
185    pub global_id: Option<GlobalId>,
186    pub version: Option<Version>,
187}
188
189#[derive(
190    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
191)]
192pub struct RoleKey {
193    pub id: Option<RoleId>,
194}
195
196#[derive(
197    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
198)]
199pub struct RoleValue {
200    pub name: String,
201    pub attributes: Option<RoleAttributes>,
202    pub membership: Option<RoleMembership>,
203    pub vars: Option<RoleVars>,
204    pub oid: u32,
205}
206
207#[derive(
208    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
209)]
210pub struct ServerConfigurationKey {
211    pub name: String,
212}
213
214#[derive(
215    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
216)]
217pub struct ServerConfigurationValue {
218    pub value: String,
219}
220
221#[derive(
222    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
223)]
224pub struct AuditLogKey {
225    pub event: Option<audit_log_key::Event>,
226}
227
228pub mod audit_log_key {
229    use super::*;
230
231    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
232    pub enum Event {
233        V1(AuditLogEventV1),
234    }
235}
236
237#[derive(
238    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
239)]
240pub struct CommentKey {
241    pub object: Option<comment_key::Object>,
242    pub sub_component: Option<comment_key::SubComponent>,
243}
244
245pub mod comment_key {
246    use super::*;
247
248    #[derive(
249        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
250    )]
251    pub enum Object {
252        Table(CatalogItemId),
253        View(CatalogItemId),
254        MaterializedView(CatalogItemId),
255        Source(CatalogItemId),
256        Sink(CatalogItemId),
257        Index(CatalogItemId),
258        Func(CatalogItemId),
259        Connection(CatalogItemId),
260        Type(CatalogItemId),
261        Secret(CatalogItemId),
262        ContinualTask(CatalogItemId),
263        Role(RoleId),
264        Database(DatabaseId),
265        Schema(ResolvedSchema),
266        Cluster(ClusterId),
267        ClusterReplica(ClusterReplicaId),
268    }
269
270    #[derive(
271        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
272    )]
273    pub enum SubComponent {
274        ColumnPos(u64),
275    }
276}
277
278#[derive(
279    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
280)]
281pub struct CommentValue {
282    pub comment: String,
283}
284
285#[derive(
286    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
287)]
288pub struct SourceReferencesKey {
289    pub source: Option<CatalogItemId>,
290}
291
292#[derive(
293    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
294)]
295pub struct SourceReferencesValue {
296    pub references: Vec<SourceReference>,
297    pub updated_at: Option<EpochMillis>,
298}
299
300#[derive(
301    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
302)]
303pub struct SourceReference {
304    pub name: String,
305    pub namespace: Option<String>,
306    pub columns: Vec<String>,
307}
308
309#[derive(
310    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
311)]
312pub struct StorageCollectionMetadataKey {
313    pub id: Option<GlobalId>,
314}
315
316#[derive(
317    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
318)]
319pub struct StorageCollectionMetadataValue {
320    pub shard: String,
321}
322
323#[derive(
324    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
325)]
326pub struct UnfinalizedShardKey {
327    pub shard: String,
328}
329
330#[derive(
331    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
332)]
333pub struct TxnWalShardValue {
334    pub shard: String,
335}
336
337#[derive(
338    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
339)]
340pub struct Empty {}
341
342#[derive(
343    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
344)]
345pub struct StringWrapper {
346    pub inner: String,
347}
348
349#[derive(
350    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
351)]
352pub struct Duration {
353    pub secs: u64,
354    pub nanos: u32,
355}
356
357#[derive(
358    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
359)]
360pub struct EpochMillis {
361    pub millis: u64,
362}
363
364#[derive(
365    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
366)]
367pub struct Timestamp {
368    pub internal: u64,
369}
370
371#[derive(
372    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
373)]
374pub struct Version {
375    pub value: u64,
376}
377
378#[derive(
379    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
380)]
381pub struct CatalogItem {
382    pub value: Option<catalog_item::Value>,
383}
384
385pub mod catalog_item {
386    use super::*;
387
388    #[derive(
389        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
390    )]
391    pub struct V1 {
392        pub create_sql: String,
393    }
394
395    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
396    pub enum Value {
397        V1(V1),
398    }
399}
400
401#[derive(
402    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
403)]
404pub struct CatalogItemId {
405    pub value: Option<catalog_item_id::Value>,
406}
407
408pub mod catalog_item_id {
409    use super::*;
410
411    #[derive(
412        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
413    )]
414    pub enum Value {
415        System(u64),
416        User(u64),
417        Transient(u64),
418    }
419}
420
421#[derive(
422    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
423)]
424pub struct SystemCatalogItemId {
425    pub value: u64,
426}
427
428#[derive(
429    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
430)]
431pub struct GlobalId {
432    pub value: Option<global_id::Value>,
433}
434
435pub mod global_id {
436    use super::*;
437
438    #[derive(
439        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
440    )]
441    pub enum Value {
442        System(u64),
443        User(u64),
444        Transient(u64),
445        Explain(Empty),
446    }
447}
448
449#[derive(
450    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
451)]
452pub struct SystemGlobalId {
453    pub value: u64,
454}
455
456#[derive(
457    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
458)]
459pub struct ClusterId {
460    pub value: Option<cluster_id::Value>,
461}
462
463pub mod cluster_id {
464    use super::*;
465
466    #[derive(
467        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
468    )]
469    pub enum Value {
470        System(u64),
471        User(u64),
472    }
473}
474
475#[derive(
476    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
477)]
478pub struct DatabaseId {
479    pub value: Option<database_id::Value>,
480}
481
482pub mod database_id {
483    use super::*;
484
485    #[derive(
486        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
487    )]
488    pub enum Value {
489        System(u64),
490        User(u64),
491    }
492}
493
494#[derive(
495    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
496)]
497pub struct ResolvedDatabaseSpecifier {
498    pub spec: Option<resolved_database_specifier::Spec>,
499}
500
501pub mod resolved_database_specifier {
502    use super::*;
503
504    #[derive(
505        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
506    )]
507    pub enum Spec {
508        Ambient(Empty),
509        Id(DatabaseId),
510    }
511}
512
513#[derive(
514    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
515)]
516pub struct SchemaId {
517    pub value: Option<schema_id::Value>,
518}
519
520pub mod schema_id {
521    use super::*;
522
523    #[derive(
524        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
525    )]
526    pub enum Value {
527        System(u64),
528        User(u64),
529    }
530}
531
532#[derive(
533    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
534)]
535pub struct SchemaSpecifier {
536    pub spec: Option<schema_specifier::Spec>,
537}
538
539pub mod schema_specifier {
540    use super::*;
541
542    #[derive(
543        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
544    )]
545    pub enum Spec {
546        Temporary(Empty),
547        Id(SchemaId),
548    }
549}
550
551#[derive(
552    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
553)]
554pub struct ResolvedSchema {
555    pub database: Option<ResolvedDatabaseSpecifier>,
556    pub schema: Option<SchemaSpecifier>,
557}
558
559#[derive(
560    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
561)]
562pub struct ReplicaId {
563    pub value: Option<replica_id::Value>,
564}
565
566pub mod replica_id {
567    use super::*;
568
569    #[derive(
570        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
571    )]
572    pub enum Value {
573        System(u64),
574        User(u64),
575    }
576}
577
578#[derive(
579    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
580)]
581pub struct ClusterReplicaId {
582    pub cluster_id: Option<ClusterId>,
583    pub replica_id: Option<ReplicaId>,
584}
585
586#[derive(
587    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
588)]
589pub struct ReplicaLogging {
590    pub log_logging: bool,
591    pub interval: Option<Duration>,
592}
593
594#[derive(
595    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
596)]
597pub struct OptimizerFeatureOverride {
598    pub name: String,
599    pub value: String,
600}
601
602#[derive(
603    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
604)]
605pub struct ClusterScheduleRefreshOptions {
606    pub rehydration_time_estimate: Option<Duration>,
607}
608
609#[derive(
610    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
611)]
612pub struct ClusterSchedule {
613    pub value: Option<cluster_schedule::Value>,
614}
615
616pub mod cluster_schedule {
617    use super::*;
618
619    #[derive(
620        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
621    )]
622    pub enum Value {
623        Manual(Empty),
624        Refresh(ClusterScheduleRefreshOptions),
625    }
626}
627
628#[derive(
629    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
630)]
631pub struct ClusterConfig {
632    pub workload_class: Option<String>,
633    pub variant: Option<cluster_config::Variant>,
634}
635
636pub mod cluster_config {
637    use super::*;
638
639    #[derive(
640        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
641    )]
642    pub struct ManagedCluster {
643        pub size: String,
644        pub replication_factor: u32,
645        pub availability_zones: Vec<String>,
646        pub logging: Option<ReplicaLogging>,
647        pub disk: bool,
648        pub optimizer_feature_overrides: Vec<OptimizerFeatureOverride>,
649        pub schedule: Option<ClusterSchedule>,
650    }
651
652    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
653    pub enum Variant {
654        Unmanaged(Empty),
655        Managed(ManagedCluster),
656    }
657}
658
659#[derive(
660    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
661)]
662pub struct ReplicaConfig {
663    pub logging: Option<ReplicaLogging>,
664    pub location: Option<replica_config::Location>,
665}
666
667pub mod replica_config {
668    use super::*;
669
670    #[derive(
671        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
672    )]
673    pub struct UnmanagedLocation {
674        pub storagectl_addrs: Vec<String>,
675        pub storage_addrs: Vec<String>,
676        pub computectl_addrs: Vec<String>,
677        pub compute_addrs: Vec<String>,
678        pub workers: u64,
679    }
680
681    #[derive(
682        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
683    )]
684    pub struct ManagedLocation {
685        pub size: String,
686        pub availability_zone: Option<String>,
687        pub disk: bool,
688        pub internal: bool,
689        pub billed_as: Option<String>,
690        pub pending: bool,
691    }
692
693    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
694    pub enum Location {
695        Unmanaged(UnmanagedLocation),
696        Managed(ManagedLocation),
697    }
698}
699
700#[derive(
701    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
702)]
703pub struct RoleId {
704    pub value: Option<role_id::Value>,
705}
706
707pub mod role_id {
708    use super::*;
709
710    #[derive(
711        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
712    )]
713    pub enum Value {
714        System(u64),
715        User(u64),
716        Public(Empty),
717        Predefined(u64),
718    }
719}
720
721#[derive(
722    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
723)]
724pub struct RoleAttributes {
725    pub inherit: bool,
726}
727
728#[derive(
729    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
730)]
731pub struct RoleMembership {
732    pub map: Vec<role_membership::Entry>,
733}
734
735pub mod role_membership {
736    use super::*;
737
738    #[derive(
739        Clone,
740        Copy,
741        Debug,
742        Default,
743        PartialEq,
744        Eq,
745        PartialOrd,
746        Ord,
747        Serialize,
748        Deserialize,
749        Arbitrary,
750    )]
751    pub struct Entry {
752        pub key: Option<RoleId>,
753        pub value: Option<RoleId>,
754    }
755}
756
757#[derive(
758    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
759)]
760pub struct RoleVars {
761    pub entries: Vec<role_vars::Entry>,
762}
763
764pub mod role_vars {
765    use super::*;
766
767    #[derive(
768        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
769    )]
770    pub struct SqlSet {
771        pub entries: Vec<String>,
772    }
773
774    #[derive(
775        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
776    )]
777    pub struct Entry {
778        pub key: String,
779        pub val: Option<entry::Val>,
780    }
781
782    pub mod entry {
783        use super::*;
784
785        #[derive(
786            Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
787        )]
788        pub enum Val {
789            Flat(String),
790            SqlSet(SqlSet),
791        }
792    }
793}
794
795#[derive(
796    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
797)]
798pub struct AclMode {
799    pub bitflags: u64,
800}
801
802#[derive(
803    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
804)]
805pub struct MzAclItem {
806    pub grantee: Option<RoleId>,
807    pub grantor: Option<RoleId>,
808    pub acl_mode: Option<AclMode>,
809}
810
811#[derive(
812    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
813)]
814pub struct DefaultPrivilegesKey {
815    pub role_id: Option<RoleId>,
816    pub database_id: Option<DatabaseId>,
817    pub schema_id: Option<SchemaId>,
818    pub object_type: i32,
819    pub grantee: Option<RoleId>,
820}
821
822#[derive(
823    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
824)]
825pub struct DefaultPrivilegesValue {
826    pub privileges: Option<AclMode>,
827}
828
829#[derive(
830    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
831)]
832pub struct SystemPrivilegesKey {
833    pub grantee: Option<RoleId>,
834    pub grantor: Option<RoleId>,
835}
836
837#[derive(
838    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
839)]
840pub struct SystemPrivilegesValue {
841    pub acl_mode: Option<AclMode>,
842}
843
844#[derive(
845    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
846)]
847pub struct AuditLogEventV1 {
848    pub id: u64,
849    pub event_type: i32,
850    pub object_type: i32,
851    pub user: Option<StringWrapper>,
852    pub occurred_at: Option<EpochMillis>,
853    pub details: Option<audit_log_event_v1::Details>,
854}
855
856pub mod audit_log_event_v1 {
857    use super::*;
858
859    #[derive(
860        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
861    )]
862    pub struct IdFullNameV1 {
863        pub id: String,
864        pub name: Option<FullNameV1>,
865    }
866
867    #[derive(
868        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
869    )]
870    pub struct FullNameV1 {
871        pub database: String,
872        pub schema: String,
873        pub item: String,
874    }
875
876    #[derive(
877        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
878    )]
879    pub struct IdNameV1 {
880        pub id: String,
881        pub name: String,
882    }
883
884    #[derive(
885        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
886    )]
887    pub struct RenameClusterV1 {
888        pub id: String,
889        pub old_name: String,
890        pub new_name: String,
891    }
892
893    #[derive(
894        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
895    )]
896    pub struct RenameClusterReplicaV1 {
897        pub cluster_id: String,
898        pub replica_id: String,
899        pub old_name: String,
900        pub new_name: String,
901    }
902
903    #[derive(
904        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
905    )]
906    pub struct RenameItemV1 {
907        pub id: String,
908        pub old_name: Option<FullNameV1>,
909        pub new_name: Option<FullNameV1>,
910    }
911
912    #[derive(
913        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
914    )]
915    pub struct CreateClusterReplicaV1 {
916        pub cluster_id: String,
917        pub cluster_name: String,
918        pub replica_id: Option<StringWrapper>,
919        pub replica_name: String,
920        pub logical_size: String,
921        pub disk: bool,
922        pub billed_as: Option<String>,
923        pub internal: bool,
924    }
925
926    #[derive(
927        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
928    )]
929    pub struct CreateClusterReplicaV2 {
930        pub cluster_id: String,
931        pub cluster_name: String,
932        pub replica_id: Option<StringWrapper>,
933        pub replica_name: String,
934        pub logical_size: String,
935        pub disk: bool,
936        pub billed_as: Option<String>,
937        pub internal: bool,
938        pub reason: Option<CreateOrDropClusterReplicaReasonV1>,
939        pub scheduling_policies: Option<SchedulingDecisionsWithReasonsV1>,
940    }
941
942    #[derive(
943        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
944    )]
945    pub struct DropClusterReplicaV1 {
946        pub cluster_id: String,
947        pub cluster_name: String,
948        pub replica_id: Option<StringWrapper>,
949        pub replica_name: String,
950    }
951
952    #[derive(
953        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
954    )]
955    pub struct DropClusterReplicaV2 {
956        pub cluster_id: String,
957        pub cluster_name: String,
958        pub replica_id: Option<StringWrapper>,
959        pub replica_name: String,
960        pub reason: Option<CreateOrDropClusterReplicaReasonV1>,
961        pub scheduling_policies: Option<SchedulingDecisionsWithReasonsV1>,
962    }
963
964    #[derive(
965        Clone,
966        Copy,
967        Debug,
968        Default,
969        PartialEq,
970        Eq,
971        PartialOrd,
972        Ord,
973        Serialize,
974        Deserialize,
975        Arbitrary,
976    )]
977    pub struct CreateOrDropClusterReplicaReasonV1 {
978        pub reason: Option<create_or_drop_cluster_replica_reason_v1::Reason>,
979    }
980
981    pub mod create_or_drop_cluster_replica_reason_v1 {
982        use super::*;
983
984        #[derive(
985            Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
986        )]
987        pub enum Reason {
988            Manual(Empty),
989            Schedule(Empty),
990            System(Empty),
991        }
992    }
993
994    #[derive(
995        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
996    )]
997    pub struct SchedulingDecisionsWithReasonsV1 {
998        pub on_refresh: Option<RefreshDecisionWithReasonV1>,
999    }
1000
1001    #[derive(
1002        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1003    )]
1004    pub struct RefreshDecisionWithReasonV1 {
1005        pub objects_needing_refresh: Vec<String>,
1006        pub rehydration_time_estimate: String,
1007        pub decision: Option<refresh_decision_with_reason_v1::Decision>,
1008    }
1009
1010    pub mod refresh_decision_with_reason_v1 {
1011        use super::*;
1012
1013        #[derive(
1014            Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1015        )]
1016        pub enum Decision {
1017            On(Empty),
1018            Off(Empty),
1019        }
1020    }
1021
1022    #[derive(
1023        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1024    )]
1025    pub struct CreateSourceSinkV1 {
1026        pub id: String,
1027        pub name: Option<FullNameV1>,
1028        pub size: Option<StringWrapper>,
1029    }
1030
1031    #[derive(
1032        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1033    )]
1034    pub struct CreateSourceSinkV2 {
1035        pub id: String,
1036        pub name: Option<FullNameV1>,
1037        pub size: Option<StringWrapper>,
1038        pub external_type: String,
1039    }
1040
1041    #[derive(
1042        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1043    )]
1044    pub struct CreateSourceSinkV3 {
1045        pub id: String,
1046        pub name: Option<FullNameV1>,
1047        pub external_type: String,
1048    }
1049
1050    #[derive(
1051        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1052    )]
1053    pub struct CreateSourceSinkV4 {
1054        pub id: String,
1055        pub cluster_id: Option<StringWrapper>,
1056        pub name: Option<FullNameV1>,
1057        pub external_type: String,
1058    }
1059
1060    #[derive(
1061        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1062    )]
1063    pub struct CreateIndexV1 {
1064        pub id: String,
1065        pub cluster_id: String,
1066        pub name: Option<FullNameV1>,
1067    }
1068
1069    #[derive(
1070        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1071    )]
1072    pub struct CreateMaterializedViewV1 {
1073        pub id: String,
1074        pub cluster_id: String,
1075        pub name: Option<FullNameV1>,
1076    }
1077
1078    #[derive(
1079        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1080    )]
1081    pub struct AlterSourceSinkV1 {
1082        pub id: String,
1083        pub name: Option<FullNameV1>,
1084        pub old_size: Option<StringWrapper>,
1085        pub new_size: Option<StringWrapper>,
1086    }
1087
1088    #[derive(
1089        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1090    )]
1091    pub struct AlterSetClusterV1 {
1092        pub id: String,
1093        pub name: Option<FullNameV1>,
1094        pub old_cluster: Option<StringWrapper>,
1095        pub new_cluster: Option<StringWrapper>,
1096    }
1097
1098    #[derive(
1099        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1100    )]
1101    pub struct GrantRoleV1 {
1102        pub role_id: String,
1103        pub member_id: String,
1104        pub grantor_id: String,
1105    }
1106
1107    #[derive(
1108        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1109    )]
1110    pub struct GrantRoleV2 {
1111        pub role_id: String,
1112        pub member_id: String,
1113        pub grantor_id: String,
1114        pub executed_by: String,
1115    }
1116
1117    #[derive(
1118        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1119    )]
1120    pub struct RevokeRoleV1 {
1121        pub role_id: String,
1122        pub member_id: String,
1123    }
1124
1125    #[derive(
1126        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1127    )]
1128    pub struct RevokeRoleV2 {
1129        pub role_id: String,
1130        pub member_id: String,
1131        pub grantor_id: String,
1132        pub executed_by: String,
1133    }
1134
1135    #[derive(
1136        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1137    )]
1138    pub struct UpdatePrivilegeV1 {
1139        pub object_id: String,
1140        pub grantee_id: String,
1141        pub grantor_id: String,
1142        pub privileges: String,
1143    }
1144
1145    #[derive(
1146        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1147    )]
1148    pub struct AlterDefaultPrivilegeV1 {
1149        pub role_id: String,
1150        pub database_id: Option<StringWrapper>,
1151        pub schema_id: Option<StringWrapper>,
1152        pub grantee_id: String,
1153        pub privileges: String,
1154    }
1155
1156    #[derive(
1157        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1158    )]
1159    pub struct UpdateOwnerV1 {
1160        pub object_id: String,
1161        pub old_owner_id: String,
1162        pub new_owner_id: String,
1163    }
1164
1165    #[derive(
1166        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1167    )]
1168    pub struct SchemaV1 {
1169        pub id: String,
1170        pub name: String,
1171        pub database_name: String,
1172    }
1173
1174    #[derive(
1175        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1176    )]
1177    pub struct SchemaV2 {
1178        pub id: String,
1179        pub name: String,
1180        pub database_name: Option<StringWrapper>,
1181    }
1182
1183    #[derive(
1184        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1185    )]
1186    pub struct RenameSchemaV1 {
1187        pub id: String,
1188        pub database_name: Option<String>,
1189        pub old_name: String,
1190        pub new_name: String,
1191    }
1192
1193    #[derive(
1194        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1195    )]
1196    pub struct UpdateItemV1 {
1197        pub id: String,
1198        pub name: Option<FullNameV1>,
1199    }
1200
1201    #[derive(
1202        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1203    )]
1204    pub struct AlterRetainHistoryV1 {
1205        pub id: String,
1206        pub old_history: Option<String>,
1207        pub new_history: Option<String>,
1208    }
1209
1210    #[derive(
1211        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1212    )]
1213    pub struct ToNewIdV1 {
1214        pub id: String,
1215        pub new_id: String,
1216    }
1217
1218    #[derive(
1219        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1220    )]
1221    pub struct FromPreviousIdV1 {
1222        pub id: String,
1223        pub previous_id: String,
1224    }
1225
1226    #[derive(
1227        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1228    )]
1229    pub struct SetV1 {
1230        pub name: String,
1231        pub value: Option<String>,
1232    }
1233
1234    #[derive(
1235        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1236    )]
1237    pub struct RotateKeysV1 {
1238        pub id: String,
1239        pub name: String,
1240    }
1241
1242    #[derive(
1243        Clone,
1244        Copy,
1245        Debug,
1246        PartialEq,
1247        Eq,
1248        Hash,
1249        PartialOrd,
1250        Ord,
1251        Arbitrary,
1252        IntoPrimitive,
1253        TryFromPrimitive,
1254    )]
1255    #[repr(i32)]
1256    pub enum EventType {
1257        Unknown = 0,
1258        Create = 1,
1259        Drop = 2,
1260        Alter = 3,
1261        Grant = 4,
1262        Revoke = 5,
1263        Comment = 6,
1264    }
1265
1266    #[derive(
1267        Clone,
1268        Copy,
1269        Debug,
1270        PartialEq,
1271        Eq,
1272        Hash,
1273        PartialOrd,
1274        Ord,
1275        Arbitrary,
1276        IntoPrimitive,
1277        TryFromPrimitive,
1278    )]
1279    #[repr(i32)]
1280    pub enum ObjectType {
1281        Unknown = 0,
1282        Cluster = 1,
1283        ClusterReplica = 2,
1284        Connection = 3,
1285        Database = 4,
1286        Func = 5,
1287        Index = 6,
1288        MaterializedView = 7,
1289        Role = 8,
1290        Secret = 9,
1291        Schema = 10,
1292        Sink = 11,
1293        Source = 12,
1294        Table = 13,
1295        Type = 14,
1296        View = 15,
1297        System = 16,
1298        ContinualTask = 17,
1299    }
1300
1301    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1302    pub enum Details {
1303        CreateClusterReplicaV1(CreateClusterReplicaV1),
1304        CreateClusterReplicaV2(CreateClusterReplicaV2),
1305        DropClusterReplicaV1(DropClusterReplicaV1),
1306        DropClusterReplicaV2(DropClusterReplicaV2),
1307        CreateSourceSinkV1(CreateSourceSinkV1),
1308        CreateSourceSinkV2(CreateSourceSinkV2),
1309        AlterSourceSinkV1(AlterSourceSinkV1),
1310        AlterSetClusterV1(AlterSetClusterV1),
1311        GrantRoleV1(GrantRoleV1),
1312        GrantRoleV2(GrantRoleV2),
1313        RevokeRoleV1(RevokeRoleV1),
1314        RevokeRoleV2(RevokeRoleV2),
1315        UpdatePrivilegeV1(UpdatePrivilegeV1),
1316        AlterDefaultPrivilegeV1(AlterDefaultPrivilegeV1),
1317        UpdateOwnerV1(UpdateOwnerV1),
1318        IdFullNameV1(IdFullNameV1),
1319        RenameClusterV1(RenameClusterV1),
1320        RenameClusterReplicaV1(RenameClusterReplicaV1),
1321        RenameItemV1(RenameItemV1),
1322        IdNameV1(IdNameV1),
1323        SchemaV1(SchemaV1),
1324        SchemaV2(SchemaV2),
1325        RenameSchemaV1(RenameSchemaV1),
1326        UpdateItemV1(UpdateItemV1),
1327        CreateSourceSinkV3(CreateSourceSinkV3),
1328        AlterRetainHistoryV1(AlterRetainHistoryV1),
1329        ToNewIdV1(ToNewIdV1),
1330        FromPreviousIdV1(FromPreviousIdV1),
1331        SetV1(SetV1),
1332        ResetAllV1(Empty),
1333        RotateKeysV1(RotateKeysV1),
1334        CreateSourceSinkV4(CreateSourceSinkV4),
1335        CreateIndexV1(CreateIndexV1),
1336        CreateMaterializedViewV1(CreateMaterializedViewV1),
1337    }
1338}
1339
1340#[derive(
1341    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1342)]
1343pub struct StateUpdateKind {
1344    pub kind: Option<state_update_kind::Kind>,
1345}
1346
1347pub mod state_update_kind {
1348    use super::*;
1349
1350    #[derive(
1351        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1352    )]
1353    pub struct AuditLog {
1354        pub key: Option<AuditLogKey>,
1355    }
1356
1357    #[derive(
1358        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1359    )]
1360    pub struct Cluster {
1361        pub key: Option<ClusterKey>,
1362        pub value: Option<ClusterValue>,
1363    }
1364
1365    #[derive(
1366        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1367    )]
1368    pub struct ClusterReplica {
1369        pub key: Option<ClusterReplicaKey>,
1370        pub value: Option<ClusterReplicaValue>,
1371    }
1372
1373    #[derive(
1374        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1375    )]
1376    pub struct Comment {
1377        pub key: Option<CommentKey>,
1378        pub value: Option<CommentValue>,
1379    }
1380
1381    #[derive(
1382        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1383    )]
1384    pub struct Config {
1385        pub key: Option<ConfigKey>,
1386        pub value: Option<ConfigValue>,
1387    }
1388
1389    #[derive(
1390        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1391    )]
1392    pub struct Database {
1393        pub key: Option<DatabaseKey>,
1394        pub value: Option<DatabaseValue>,
1395    }
1396
1397    #[derive(
1398        Clone,
1399        Copy,
1400        Debug,
1401        Default,
1402        PartialEq,
1403        Eq,
1404        PartialOrd,
1405        Ord,
1406        Serialize,
1407        Deserialize,
1408        Arbitrary,
1409    )]
1410    pub struct DefaultPrivileges {
1411        pub key: Option<DefaultPrivilegesKey>,
1412        pub value: Option<DefaultPrivilegesValue>,
1413    }
1414
1415    #[derive(
1416        Clone,
1417        Copy,
1418        Debug,
1419        Default,
1420        PartialEq,
1421        Eq,
1422        PartialOrd,
1423        Ord,
1424        Serialize,
1425        Deserialize,
1426        Arbitrary,
1427    )]
1428    pub struct FenceToken {
1429        pub deploy_generation: u64,
1430        pub epoch: i64,
1431    }
1432
1433    #[derive(
1434        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1435    )]
1436    pub struct IdAlloc {
1437        pub key: Option<IdAllocKey>,
1438        pub value: Option<IdAllocValue>,
1439    }
1440
1441    #[derive(
1442        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1443    )]
1444    pub struct ClusterIntrospectionSourceIndex {
1445        pub key: Option<ClusterIntrospectionSourceIndexKey>,
1446        pub value: Option<ClusterIntrospectionSourceIndexValue>,
1447    }
1448
1449    #[derive(
1450        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1451    )]
1452    pub struct Item {
1453        pub key: Option<ItemKey>,
1454        pub value: Option<ItemValue>,
1455    }
1456
1457    #[derive(
1458        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1459    )]
1460    pub struct Role {
1461        pub key: Option<RoleKey>,
1462        pub value: Option<RoleValue>,
1463    }
1464
1465    #[derive(
1466        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1467    )]
1468    pub struct Schema {
1469        pub key: Option<SchemaKey>,
1470        pub value: Option<SchemaValue>,
1471    }
1472
1473    #[derive(
1474        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1475    )]
1476    pub struct Setting {
1477        pub key: Option<SettingKey>,
1478        pub value: Option<SettingValue>,
1479    }
1480
1481    #[derive(
1482        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1483    )]
1484    pub struct ServerConfiguration {
1485        pub key: Option<ServerConfigurationKey>,
1486        pub value: Option<ServerConfigurationValue>,
1487    }
1488
1489    #[derive(
1490        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1491    )]
1492    pub struct SourceReferences {
1493        pub key: Option<SourceReferencesKey>,
1494        pub value: Option<SourceReferencesValue>,
1495    }
1496
1497    #[derive(
1498        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1499    )]
1500    pub struct GidMapping {
1501        pub key: Option<GidMappingKey>,
1502        pub value: Option<GidMappingValue>,
1503    }
1504
1505    #[derive(
1506        Clone,
1507        Copy,
1508        Debug,
1509        Default,
1510        PartialEq,
1511        Eq,
1512        PartialOrd,
1513        Ord,
1514        Serialize,
1515        Deserialize,
1516        Arbitrary,
1517    )]
1518    pub struct SystemPrivileges {
1519        pub key: Option<SystemPrivilegesKey>,
1520        pub value: Option<SystemPrivilegesValue>,
1521    }
1522
1523    #[derive(
1524        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1525    )]
1526    pub struct StorageCollectionMetadata {
1527        pub key: Option<StorageCollectionMetadataKey>,
1528        pub value: Option<StorageCollectionMetadataValue>,
1529    }
1530
1531    #[derive(
1532        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1533    )]
1534    pub struct UnfinalizedShard {
1535        pub key: Option<UnfinalizedShardKey>,
1536    }
1537
1538    #[derive(
1539        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1540    )]
1541    pub struct TxnWalShard {
1542        pub value: Option<TxnWalShardValue>,
1543    }
1544
1545    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1546    // Serialize the top-level enum in the persist-backed catalog as internally tagged to set up
1547    // persist pushdown statistics for success.
1548    #[serde(tag = "kind")]
1549    pub enum Kind {
1550        AuditLog(AuditLog),
1551        Cluster(Cluster),
1552        ClusterReplica(ClusterReplica),
1553        Comment(Comment),
1554        Config(Config),
1555        Database(Database),
1556        DefaultPrivileges(DefaultPrivileges),
1557        IdAlloc(IdAlloc),
1558        ClusterIntrospectionSourceIndex(ClusterIntrospectionSourceIndex),
1559        Item(Item),
1560        Role(Role),
1561        Schema(Schema),
1562        Setting(Setting),
1563        ServerConfiguration(ServerConfiguration),
1564        GidMapping(GidMapping),
1565        SystemPrivileges(SystemPrivileges),
1566        StorageCollectionMetadata(StorageCollectionMetadata),
1567        UnfinalizedShard(UnfinalizedShard),
1568        TxnWalShard(TxnWalShard),
1569        SourceReferences(SourceReferences),
1570        FenceToken(FenceToken),
1571    }
1572}
1573
1574#[derive(
1575    Clone,
1576    Copy,
1577    Debug,
1578    PartialEq,
1579    Eq,
1580    Hash,
1581    PartialOrd,
1582    Ord,
1583    Arbitrary,
1584    IntoPrimitive,
1585    TryFromPrimitive,
1586)]
1587#[repr(i32)]
1588pub enum CatalogItemType {
1589    Unknown = 0,
1590    Table = 1,
1591    Source = 2,
1592    Sink = 3,
1593    View = 4,
1594    MaterializedView = 5,
1595    Index = 6,
1596    Type = 7,
1597    Func = 8,
1598    Secret = 9,
1599    Connection = 10,
1600    ContinualTask = 11,
1601}
1602
1603#[derive(
1604    Clone,
1605    Copy,
1606    Debug,
1607    PartialEq,
1608    Eq,
1609    Hash,
1610    PartialOrd,
1611    Ord,
1612    Arbitrary,
1613    IntoPrimitive,
1614    TryFromPrimitive,
1615)]
1616#[repr(i32)]
1617pub enum ObjectType {
1618    Unknown = 0,
1619    Table = 1,
1620    View = 2,
1621    MaterializedView = 3,
1622    Source = 4,
1623    Sink = 5,
1624    Index = 6,
1625    Type = 7,
1626    Role = 8,
1627    Cluster = 9,
1628    ClusterReplica = 10,
1629    Secret = 11,
1630    Connection = 12,
1631    Database = 13,
1632    Schema = 14,
1633    Func = 15,
1634    ContinualTask = 16,
1635}