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