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