mz_catalog_protos/
objects_v70.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 CreateClusterReplicaV3 {
1012        pub cluster_id: String,
1013        pub cluster_name: String,
1014        pub replica_id: Option<StringWrapper>,
1015        pub replica_name: String,
1016        pub logical_size: String,
1017        pub disk: bool,
1018        pub billed_as: Option<String>,
1019        pub internal: bool,
1020        pub reason: Option<CreateOrDropClusterReplicaReasonV1>,
1021        pub scheduling_policies: Option<SchedulingDecisionsWithReasonsV2>,
1022    }
1023
1024    #[derive(
1025        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1026    )]
1027    pub struct DropClusterReplicaV1 {
1028        pub cluster_id: String,
1029        pub cluster_name: String,
1030        pub replica_id: Option<StringWrapper>,
1031        pub replica_name: String,
1032    }
1033
1034    #[derive(
1035        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1036    )]
1037    pub struct DropClusterReplicaV2 {
1038        pub cluster_id: String,
1039        pub cluster_name: String,
1040        pub replica_id: Option<StringWrapper>,
1041        pub replica_name: String,
1042        pub reason: Option<CreateOrDropClusterReplicaReasonV1>,
1043        pub scheduling_policies: Option<SchedulingDecisionsWithReasonsV1>,
1044    }
1045
1046    #[derive(
1047        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1048    )]
1049    pub struct DropClusterReplicaV3 {
1050        pub cluster_id: String,
1051        pub cluster_name: String,
1052        pub replica_id: Option<StringWrapper>,
1053        pub replica_name: String,
1054        pub reason: Option<CreateOrDropClusterReplicaReasonV1>,
1055        pub scheduling_policies: Option<SchedulingDecisionsWithReasonsV2>,
1056    }
1057
1058    #[derive(
1059        Clone,
1060        Copy,
1061        Debug,
1062        Default,
1063        PartialEq,
1064        Eq,
1065        PartialOrd,
1066        Ord,
1067        Serialize,
1068        Deserialize,
1069        Arbitrary,
1070    )]
1071    pub struct CreateOrDropClusterReplicaReasonV1 {
1072        pub reason: Option<create_or_drop_cluster_replica_reason_v1::Reason>,
1073    }
1074
1075    pub mod create_or_drop_cluster_replica_reason_v1 {
1076        use super::*;
1077
1078        #[derive(
1079            Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1080        )]
1081        pub enum Reason {
1082            Manual(Empty),
1083            Schedule(Empty),
1084            System(Empty),
1085        }
1086    }
1087
1088    #[derive(
1089        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1090    )]
1091    pub struct SchedulingDecisionsWithReasonsV1 {
1092        pub on_refresh: Option<RefreshDecisionWithReasonV1>,
1093    }
1094
1095    #[derive(
1096        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1097    )]
1098    pub struct SchedulingDecisionsWithReasonsV2 {
1099        pub on_refresh: Option<RefreshDecisionWithReasonV2>,
1100    }
1101
1102    #[derive(
1103        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1104    )]
1105    pub struct RefreshDecisionWithReasonV1 {
1106        pub objects_needing_refresh: Vec<String>,
1107        pub rehydration_time_estimate: String,
1108        pub decision: Option<refresh_decision_with_reason_v1::Decision>,
1109    }
1110
1111    pub mod refresh_decision_with_reason_v1 {
1112        use super::*;
1113
1114        #[derive(
1115            Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1116        )]
1117        pub enum Decision {
1118            On(Empty),
1119            Off(Empty),
1120        }
1121    }
1122
1123    #[derive(
1124        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1125    )]
1126    pub struct RefreshDecisionWithReasonV2 {
1127        pub objects_needing_refresh: Vec<String>,
1128        pub objects_needing_compaction: Vec<String>,
1129        pub rehydration_time_estimate: String,
1130        pub decision: Option<refresh_decision_with_reason_v2::Decision>,
1131    }
1132
1133    pub mod refresh_decision_with_reason_v2 {
1134        use super::*;
1135
1136        #[derive(
1137            Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1138        )]
1139        pub enum Decision {
1140            On(Empty),
1141            Off(Empty),
1142        }
1143    }
1144
1145    #[derive(
1146        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1147    )]
1148    pub struct CreateSourceSinkV1 {
1149        pub id: String,
1150        pub name: Option<FullNameV1>,
1151        pub size: Option<StringWrapper>,
1152    }
1153
1154    #[derive(
1155        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1156    )]
1157    pub struct CreateSourceSinkV2 {
1158        pub id: String,
1159        pub name: Option<FullNameV1>,
1160        pub size: Option<StringWrapper>,
1161        pub external_type: String,
1162    }
1163
1164    #[derive(
1165        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1166    )]
1167    pub struct CreateSourceSinkV3 {
1168        pub id: String,
1169        pub name: Option<FullNameV1>,
1170        pub external_type: String,
1171    }
1172
1173    #[derive(
1174        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1175    )]
1176    pub struct CreateSourceSinkV4 {
1177        pub id: String,
1178        pub cluster_id: Option<StringWrapper>,
1179        pub name: Option<FullNameV1>,
1180        pub external_type: String,
1181    }
1182
1183    #[derive(
1184        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1185    )]
1186    pub struct CreateIndexV1 {
1187        pub id: String,
1188        pub cluster_id: String,
1189        pub name: Option<FullNameV1>,
1190    }
1191
1192    #[derive(
1193        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1194    )]
1195    pub struct CreateMaterializedViewV1 {
1196        pub id: String,
1197        pub cluster_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 AlterSourceSinkV1 {
1205        pub id: String,
1206        pub name: Option<FullNameV1>,
1207        pub old_size: Option<StringWrapper>,
1208        pub new_size: Option<StringWrapper>,
1209    }
1210
1211    #[derive(
1212        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1213    )]
1214    pub struct AlterSetClusterV1 {
1215        pub id: String,
1216        pub name: Option<FullNameV1>,
1217        pub old_cluster: Option<StringWrapper>,
1218        pub new_cluster: Option<StringWrapper>,
1219    }
1220
1221    #[derive(
1222        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1223    )]
1224    pub struct GrantRoleV1 {
1225        pub role_id: String,
1226        pub member_id: String,
1227        pub grantor_id: String,
1228    }
1229
1230    #[derive(
1231        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1232    )]
1233    pub struct GrantRoleV2 {
1234        pub role_id: String,
1235        pub member_id: String,
1236        pub grantor_id: String,
1237        pub executed_by: String,
1238    }
1239
1240    #[derive(
1241        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1242    )]
1243    pub struct RevokeRoleV1 {
1244        pub role_id: String,
1245        pub member_id: String,
1246    }
1247
1248    #[derive(
1249        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1250    )]
1251    pub struct RevokeRoleV2 {
1252        pub role_id: String,
1253        pub member_id: String,
1254        pub grantor_id: String,
1255        pub executed_by: String,
1256    }
1257
1258    #[derive(
1259        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1260    )]
1261    pub struct UpdatePrivilegeV1 {
1262        pub object_id: String,
1263        pub grantee_id: String,
1264        pub grantor_id: String,
1265        pub privileges: String,
1266    }
1267
1268    #[derive(
1269        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1270    )]
1271    pub struct AlterDefaultPrivilegeV1 {
1272        pub role_id: String,
1273        pub database_id: Option<StringWrapper>,
1274        pub schema_id: Option<StringWrapper>,
1275        pub grantee_id: String,
1276        pub privileges: String,
1277    }
1278
1279    #[derive(
1280        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1281    )]
1282    pub struct UpdateOwnerV1 {
1283        pub object_id: String,
1284        pub old_owner_id: String,
1285        pub new_owner_id: String,
1286    }
1287
1288    #[derive(
1289        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1290    )]
1291    pub struct SchemaV1 {
1292        pub id: String,
1293        pub name: String,
1294        pub database_name: String,
1295    }
1296
1297    #[derive(
1298        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1299    )]
1300    pub struct SchemaV2 {
1301        pub id: String,
1302        pub name: String,
1303        pub database_name: Option<StringWrapper>,
1304    }
1305
1306    #[derive(
1307        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1308    )]
1309    pub struct RenameSchemaV1 {
1310        pub id: String,
1311        pub database_name: Option<String>,
1312        pub old_name: String,
1313        pub new_name: String,
1314    }
1315
1316    #[derive(
1317        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1318    )]
1319    pub struct UpdateItemV1 {
1320        pub id: String,
1321        pub name: Option<FullNameV1>,
1322    }
1323
1324    #[derive(
1325        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1326    )]
1327    pub struct AlterRetainHistoryV1 {
1328        pub id: String,
1329        pub old_history: Option<String>,
1330        pub new_history: Option<String>,
1331    }
1332
1333    #[derive(
1334        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1335    )]
1336    pub struct ToNewIdV1 {
1337        pub id: String,
1338        pub new_id: String,
1339    }
1340
1341    #[derive(
1342        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1343    )]
1344    pub struct FromPreviousIdV1 {
1345        pub id: String,
1346        pub previous_id: String,
1347    }
1348
1349    #[derive(
1350        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1351    )]
1352    pub struct SetV1 {
1353        pub name: String,
1354        pub value: Option<String>,
1355    }
1356
1357    #[derive(
1358        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1359    )]
1360    pub struct RotateKeysV1 {
1361        pub id: String,
1362        pub name: String,
1363    }
1364
1365    #[derive(
1366        Clone,
1367        Copy,
1368        Debug,
1369        PartialEq,
1370        Eq,
1371        Hash,
1372        PartialOrd,
1373        Ord,
1374        Arbitrary,
1375        IntoPrimitive,
1376        TryFromPrimitive,
1377    )]
1378    #[repr(i32)]
1379    pub enum EventType {
1380        Unknown = 0,
1381        Create = 1,
1382        Drop = 2,
1383        Alter = 3,
1384        Grant = 4,
1385        Revoke = 5,
1386        Comment = 6,
1387    }
1388
1389    #[derive(
1390        Clone,
1391        Copy,
1392        Debug,
1393        PartialEq,
1394        Eq,
1395        Hash,
1396        PartialOrd,
1397        Ord,
1398        Arbitrary,
1399        IntoPrimitive,
1400        TryFromPrimitive,
1401    )]
1402    #[repr(i32)]
1403    pub enum ObjectType {
1404        Unknown = 0,
1405        Cluster = 1,
1406        ClusterReplica = 2,
1407        Connection = 3,
1408        Database = 4,
1409        Func = 5,
1410        Index = 6,
1411        MaterializedView = 7,
1412        Role = 8,
1413        Secret = 9,
1414        Schema = 10,
1415        Sink = 11,
1416        Source = 12,
1417        Table = 13,
1418        Type = 14,
1419        View = 15,
1420        System = 16,
1421        ContinualTask = 17,
1422        NetworkPolicy = 18,
1423    }
1424    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1425    pub enum Details {
1426        CreateClusterReplicaV1(CreateClusterReplicaV1),
1427        CreateClusterReplicaV2(CreateClusterReplicaV2),
1428        CreateClusterReplicaV3(CreateClusterReplicaV3),
1429        DropClusterReplicaV1(DropClusterReplicaV1),
1430        DropClusterReplicaV2(DropClusterReplicaV2),
1431        DropClusterReplicaV3(DropClusterReplicaV3),
1432        CreateSourceSinkV1(CreateSourceSinkV1),
1433        CreateSourceSinkV2(CreateSourceSinkV2),
1434        AlterSourceSinkV1(AlterSourceSinkV1),
1435        AlterSetClusterV1(AlterSetClusterV1),
1436        GrantRoleV1(GrantRoleV1),
1437        GrantRoleV2(GrantRoleV2),
1438        RevokeRoleV1(RevokeRoleV1),
1439        RevokeRoleV2(RevokeRoleV2),
1440        UpdatePrivilegeV1(UpdatePrivilegeV1),
1441        AlterDefaultPrivilegeV1(AlterDefaultPrivilegeV1),
1442        UpdateOwnerV1(UpdateOwnerV1),
1443        IdFullNameV1(IdFullNameV1),
1444        RenameClusterV1(RenameClusterV1),
1445        RenameClusterReplicaV1(RenameClusterReplicaV1),
1446        RenameItemV1(RenameItemV1),
1447        IdNameV1(IdNameV1),
1448        SchemaV1(SchemaV1),
1449        SchemaV2(SchemaV2),
1450        RenameSchemaV1(RenameSchemaV1),
1451        UpdateItemV1(UpdateItemV1),
1452        CreateSourceSinkV3(CreateSourceSinkV3),
1453        AlterRetainHistoryV1(AlterRetainHistoryV1),
1454        ToNewIdV1(ToNewIdV1),
1455        FromPreviousIdV1(FromPreviousIdV1),
1456        SetV1(SetV1),
1457        ResetAllV1(Empty),
1458        RotateKeysV1(RotateKeysV1),
1459        CreateSourceSinkV4(CreateSourceSinkV4),
1460        CreateIndexV1(CreateIndexV1),
1461        CreateMaterializedViewV1(CreateMaterializedViewV1),
1462    }
1463}
1464
1465#[derive(
1466    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1467)]
1468pub struct StateUpdateKind {
1469    pub kind: Option<state_update_kind::Kind>,
1470}
1471
1472pub mod state_update_kind {
1473    use super::*;
1474
1475    #[derive(
1476        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1477    )]
1478    pub struct AuditLog {
1479        pub key: Option<AuditLogKey>,
1480    }
1481
1482    #[derive(
1483        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1484    )]
1485    pub struct Cluster {
1486        pub key: Option<ClusterKey>,
1487        pub value: Option<ClusterValue>,
1488    }
1489
1490    #[derive(
1491        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1492    )]
1493    pub struct ClusterReplica {
1494        pub key: Option<ClusterReplicaKey>,
1495        pub value: Option<ClusterReplicaValue>,
1496    }
1497
1498    #[derive(
1499        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1500    )]
1501    pub struct Comment {
1502        pub key: Option<CommentKey>,
1503        pub value: Option<CommentValue>,
1504    }
1505
1506    #[derive(
1507        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1508    )]
1509    pub struct Config {
1510        pub key: Option<ConfigKey>,
1511        pub value: Option<ConfigValue>,
1512    }
1513
1514    #[derive(
1515        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1516    )]
1517    pub struct Database {
1518        pub key: Option<DatabaseKey>,
1519        pub value: Option<DatabaseValue>,
1520    }
1521
1522    #[derive(
1523        Clone,
1524        Copy,
1525        Debug,
1526        Default,
1527        PartialEq,
1528        Eq,
1529        PartialOrd,
1530        Ord,
1531        Serialize,
1532        Deserialize,
1533        Arbitrary,
1534    )]
1535    pub struct DefaultPrivileges {
1536        pub key: Option<DefaultPrivilegesKey>,
1537        pub value: Option<DefaultPrivilegesValue>,
1538    }
1539
1540    #[derive(
1541        Clone,
1542        Copy,
1543        Debug,
1544        Default,
1545        PartialEq,
1546        Eq,
1547        PartialOrd,
1548        Ord,
1549        Serialize,
1550        Deserialize,
1551        Arbitrary,
1552    )]
1553    pub struct FenceToken {
1554        pub deploy_generation: u64,
1555        pub epoch: i64,
1556    }
1557
1558    #[derive(
1559        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1560    )]
1561    pub struct IdAlloc {
1562        pub key: Option<IdAllocKey>,
1563        pub value: Option<IdAllocValue>,
1564    }
1565
1566    #[derive(
1567        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1568    )]
1569    pub struct ClusterIntrospectionSourceIndex {
1570        pub key: Option<ClusterIntrospectionSourceIndexKey>,
1571        pub value: Option<ClusterIntrospectionSourceIndexValue>,
1572    }
1573
1574    #[derive(
1575        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1576    )]
1577    pub struct Item {
1578        pub key: Option<ItemKey>,
1579        pub value: Option<ItemValue>,
1580    }
1581
1582    #[derive(
1583        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1584    )]
1585    pub struct Role {
1586        pub key: Option<RoleKey>,
1587        pub value: Option<RoleValue>,
1588    }
1589
1590    #[derive(
1591        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1592    )]
1593    pub struct NetworkPolicy {
1594        pub key: Option<NetworkPolicyKey>,
1595        pub value: Option<NetworkPolicyValue>,
1596    }
1597
1598    #[derive(
1599        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1600    )]
1601    pub struct Schema {
1602        pub key: Option<SchemaKey>,
1603        pub value: Option<SchemaValue>,
1604    }
1605
1606    #[derive(
1607        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1608    )]
1609    pub struct Setting {
1610        pub key: Option<SettingKey>,
1611        pub value: Option<SettingValue>,
1612    }
1613
1614    #[derive(
1615        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1616    )]
1617    pub struct ServerConfiguration {
1618        pub key: Option<ServerConfigurationKey>,
1619        pub value: Option<ServerConfigurationValue>,
1620    }
1621
1622    #[derive(
1623        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1624    )]
1625    pub struct SourceReferences {
1626        pub key: Option<SourceReferencesKey>,
1627        pub value: Option<SourceReferencesValue>,
1628    }
1629
1630    #[derive(
1631        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1632    )]
1633    pub struct GidMapping {
1634        pub key: Option<GidMappingKey>,
1635        pub value: Option<GidMappingValue>,
1636    }
1637
1638    #[derive(
1639        Clone,
1640        Copy,
1641        Debug,
1642        Default,
1643        PartialEq,
1644        Eq,
1645        PartialOrd,
1646        Ord,
1647        Serialize,
1648        Deserialize,
1649        Arbitrary,
1650    )]
1651    pub struct SystemPrivileges {
1652        pub key: Option<SystemPrivilegesKey>,
1653        pub value: Option<SystemPrivilegesValue>,
1654    }
1655
1656    #[derive(
1657        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1658    )]
1659    pub struct StorageCollectionMetadata {
1660        pub key: Option<StorageCollectionMetadataKey>,
1661        pub value: Option<StorageCollectionMetadataValue>,
1662    }
1663
1664    #[derive(
1665        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1666    )]
1667    pub struct UnfinalizedShard {
1668        pub key: Option<UnfinalizedShardKey>,
1669    }
1670
1671    #[derive(
1672        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1673    )]
1674    pub struct TxnWalShard {
1675        pub value: Option<TxnWalShardValue>,
1676    }
1677
1678    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1679    // Serialize the top-level enum in the persist-backed catalog as internally tagged to set up
1680    // persist pushdown statistics for success.
1681    #[serde(tag = "kind")]
1682    pub enum Kind {
1683        AuditLog(AuditLog),
1684        Cluster(Cluster),
1685        ClusterReplica(ClusterReplica),
1686        Comment(Comment),
1687        Config(Config),
1688        Database(Database),
1689        DefaultPrivileges(DefaultPrivileges),
1690        IdAlloc(IdAlloc),
1691        ClusterIntrospectionSourceIndex(ClusterIntrospectionSourceIndex),
1692        Item(Item),
1693        Role(Role),
1694        Schema(Schema),
1695        Setting(Setting),
1696        ServerConfiguration(ServerConfiguration),
1697        GidMapping(GidMapping),
1698        SystemPrivileges(SystemPrivileges),
1699        StorageCollectionMetadata(StorageCollectionMetadata),
1700        UnfinalizedShard(UnfinalizedShard),
1701        TxnWalShard(TxnWalShard),
1702        SourceReferences(SourceReferences),
1703        FenceToken(FenceToken),
1704        NetworkPolicy(NetworkPolicy),
1705    }
1706}
1707
1708#[derive(
1709    Clone,
1710    Copy,
1711    Debug,
1712    PartialEq,
1713    Eq,
1714    Hash,
1715    PartialOrd,
1716    Ord,
1717    Arbitrary,
1718    IntoPrimitive,
1719    TryFromPrimitive,
1720)]
1721#[repr(i32)]
1722pub enum CatalogItemType {
1723    Unknown = 0,
1724    Table = 1,
1725    Source = 2,
1726    Sink = 3,
1727    View = 4,
1728    MaterializedView = 5,
1729    Index = 6,
1730    Type = 7,
1731    Func = 8,
1732    Secret = 9,
1733    Connection = 10,
1734    ContinualTask = 11,
1735}
1736
1737#[derive(
1738    Clone,
1739    Copy,
1740    Debug,
1741    PartialEq,
1742    Eq,
1743    Hash,
1744    PartialOrd,
1745    Ord,
1746    Arbitrary,
1747    IntoPrimitive,
1748    TryFromPrimitive,
1749)]
1750#[repr(i32)]
1751pub enum ObjectType {
1752    Unknown = 0,
1753    Table = 1,
1754    View = 2,
1755    MaterializedView = 3,
1756    Source = 4,
1757    Sink = 5,
1758    Index = 6,
1759    Type = 7,
1760    Role = 8,
1761    Cluster = 9,
1762    ClusterReplica = 10,
1763    Secret = 11,
1764    Connection = 12,
1765    Database = 13,
1766    Schema = 14,
1767    Func = 15,
1768    ContinualTask = 16,
1769    NetworkPolicy = 17,
1770}