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