mz_catalog_protos/
objects_v74.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 storage_addrs: Vec<String>,
745        pub computectl_addrs: Vec<String>,
746        pub compute_addrs: Vec<String>,
747        pub workers: u64,
748    }
749
750    #[derive(
751        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
752    )]
753    pub struct ManagedLocation {
754        pub size: String,
755        pub availability_zone: Option<String>,
756        pub disk: bool,
757        pub internal: bool,
758        pub billed_as: Option<String>,
759        pub pending: bool,
760    }
761
762    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
763    pub enum Location {
764        Unmanaged(UnmanagedLocation),
765        Managed(ManagedLocation),
766    }
767}
768
769#[derive(
770    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
771)]
772pub struct RoleId {
773    pub value: Option<role_id::Value>,
774}
775
776pub mod role_id {
777    use super::*;
778
779    #[derive(
780        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
781    )]
782    pub enum Value {
783        System(u64),
784        User(u64),
785        Public(Empty),
786        Predefined(u64),
787    }
788}
789
790#[derive(
791    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
792)]
793pub struct RoleAttributes {
794    pub inherit: bool,
795    pub superuser: Option<bool>,
796    pub login: Option<bool>,
797}
798
799#[derive(
800    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
801)]
802pub struct RoleMembership {
803    pub map: Vec<role_membership::Entry>,
804}
805
806pub mod role_membership {
807    use super::*;
808
809    #[derive(
810        Clone,
811        Copy,
812        Debug,
813        Default,
814        PartialEq,
815        Eq,
816        PartialOrd,
817        Ord,
818        Serialize,
819        Deserialize,
820        Arbitrary,
821    )]
822    pub struct Entry {
823        pub key: Option<RoleId>,
824        pub value: Option<RoleId>,
825    }
826}
827
828#[derive(
829    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
830)]
831pub struct RoleVars {
832    pub entries: Vec<role_vars::Entry>,
833}
834
835pub mod role_vars {
836    use super::*;
837
838    #[derive(
839        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
840    )]
841    pub struct SqlSet {
842        pub entries: Vec<String>,
843    }
844
845    #[derive(
846        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
847    )]
848    pub struct Entry {
849        pub key: String,
850        pub val: Option<entry::Val>,
851    }
852
853    pub mod entry {
854        use super::*;
855
856        #[derive(
857            Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
858        )]
859        pub enum Val {
860            Flat(String),
861            SqlSet(SqlSet),
862        }
863    }
864}
865
866#[derive(
867    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
868)]
869pub struct NetworkPolicyRule {
870    pub name: String,
871    pub address: String,
872    pub action: Option<network_policy_rule::Action>,
873    pub direction: Option<network_policy_rule::Direction>,
874}
875
876pub mod network_policy_rule {
877    use super::*;
878
879    #[derive(
880        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
881    )]
882    pub enum Action {
883        Allow(Empty),
884    }
885
886    #[derive(
887        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
888    )]
889    pub enum Direction {
890        Ingress(Empty),
891    }
892}
893
894#[derive(
895    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
896)]
897pub struct AclMode {
898    pub bitflags: u64,
899}
900
901#[derive(
902    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
903)]
904pub struct MzAclItem {
905    pub grantee: Option<RoleId>,
906    pub grantor: Option<RoleId>,
907    pub acl_mode: Option<AclMode>,
908}
909
910#[derive(
911    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
912)]
913pub struct DefaultPrivilegesKey {
914    pub role_id: Option<RoleId>,
915    pub database_id: Option<DatabaseId>,
916    pub schema_id: Option<SchemaId>,
917    pub object_type: i32,
918    pub grantee: Option<RoleId>,
919}
920
921#[derive(
922    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
923)]
924pub struct DefaultPrivilegesValue {
925    pub privileges: Option<AclMode>,
926}
927
928#[derive(
929    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
930)]
931pub struct SystemPrivilegesKey {
932    pub grantee: Option<RoleId>,
933    pub grantor: Option<RoleId>,
934}
935
936#[derive(
937    Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
938)]
939pub struct SystemPrivilegesValue {
940    pub acl_mode: Option<AclMode>,
941}
942
943#[derive(
944    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
945)]
946pub struct AuditLogEventV1 {
947    pub id: u64,
948    pub event_type: i32,
949    pub object_type: i32,
950    pub user: Option<StringWrapper>,
951    pub occurred_at: Option<EpochMillis>,
952    pub details: Option<audit_log_event_v1::Details>,
953}
954
955pub mod audit_log_event_v1 {
956    use super::*;
957
958    #[derive(
959        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
960    )]
961    pub struct IdFullNameV1 {
962        pub id: String,
963        pub name: Option<FullNameV1>,
964    }
965
966    #[derive(
967        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
968    )]
969    pub struct FullNameV1 {
970        pub database: String,
971        pub schema: String,
972        pub item: String,
973    }
974
975    #[derive(
976        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
977    )]
978    pub struct IdNameV1 {
979        pub id: String,
980        pub name: String,
981    }
982
983    #[derive(
984        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
985    )]
986    pub struct RenameClusterV1 {
987        pub id: String,
988        pub old_name: String,
989        pub new_name: String,
990    }
991
992    #[derive(
993        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
994    )]
995    pub struct RenameClusterReplicaV1 {
996        pub cluster_id: String,
997        pub replica_id: String,
998        pub old_name: String,
999        pub new_name: String,
1000    }
1001
1002    #[derive(
1003        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1004    )]
1005    pub struct RenameItemV1 {
1006        pub id: String,
1007        pub old_name: Option<FullNameV1>,
1008        pub new_name: Option<FullNameV1>,
1009    }
1010
1011    #[derive(
1012        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1013    )]
1014    pub struct CreateClusterReplicaV1 {
1015        pub cluster_id: String,
1016        pub cluster_name: String,
1017        pub replica_id: Option<StringWrapper>,
1018        pub replica_name: String,
1019        pub logical_size: String,
1020        pub disk: bool,
1021        pub billed_as: Option<String>,
1022        pub internal: bool,
1023    }
1024
1025    #[derive(
1026        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1027    )]
1028    pub struct CreateClusterReplicaV2 {
1029        pub cluster_id: String,
1030        pub cluster_name: String,
1031        pub replica_id: Option<StringWrapper>,
1032        pub replica_name: String,
1033        pub logical_size: String,
1034        pub disk: bool,
1035        pub billed_as: Option<String>,
1036        pub internal: bool,
1037        pub reason: Option<CreateOrDropClusterReplicaReasonV1>,
1038        pub scheduling_policies: Option<SchedulingDecisionsWithReasonsV1>,
1039    }
1040
1041    #[derive(
1042        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1043    )]
1044    pub struct CreateClusterReplicaV3 {
1045        pub cluster_id: String,
1046        pub cluster_name: String,
1047        pub replica_id: Option<StringWrapper>,
1048        pub replica_name: String,
1049        pub logical_size: String,
1050        pub disk: bool,
1051        pub billed_as: Option<String>,
1052        pub internal: bool,
1053        pub reason: Option<CreateOrDropClusterReplicaReasonV1>,
1054        pub scheduling_policies: Option<SchedulingDecisionsWithReasonsV2>,
1055    }
1056
1057    #[derive(
1058        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1059    )]
1060    pub struct DropClusterReplicaV1 {
1061        pub cluster_id: String,
1062        pub cluster_name: String,
1063        pub replica_id: Option<StringWrapper>,
1064        pub replica_name: String,
1065    }
1066
1067    #[derive(
1068        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1069    )]
1070    pub struct DropClusterReplicaV2 {
1071        pub cluster_id: String,
1072        pub cluster_name: String,
1073        pub replica_id: Option<StringWrapper>,
1074        pub replica_name: String,
1075        pub reason: Option<CreateOrDropClusterReplicaReasonV1>,
1076        pub scheduling_policies: Option<SchedulingDecisionsWithReasonsV1>,
1077    }
1078
1079    #[derive(
1080        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1081    )]
1082    pub struct DropClusterReplicaV3 {
1083        pub cluster_id: String,
1084        pub cluster_name: String,
1085        pub replica_id: Option<StringWrapper>,
1086        pub replica_name: String,
1087        pub reason: Option<CreateOrDropClusterReplicaReasonV1>,
1088        pub scheduling_policies: Option<SchedulingDecisionsWithReasonsV2>,
1089    }
1090
1091    #[derive(
1092        Clone,
1093        Copy,
1094        Debug,
1095        Default,
1096        PartialEq,
1097        Eq,
1098        PartialOrd,
1099        Ord,
1100        Serialize,
1101        Deserialize,
1102        Arbitrary,
1103    )]
1104    pub struct CreateOrDropClusterReplicaReasonV1 {
1105        pub reason: Option<create_or_drop_cluster_replica_reason_v1::Reason>,
1106    }
1107
1108    pub mod create_or_drop_cluster_replica_reason_v1 {
1109        use super::*;
1110
1111        #[derive(
1112            Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1113        )]
1114        pub enum Reason {
1115            Manual(Empty),
1116            Schedule(Empty),
1117            System(Empty),
1118        }
1119    }
1120
1121    #[derive(
1122        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1123    )]
1124    pub struct SchedulingDecisionsWithReasonsV1 {
1125        pub on_refresh: Option<RefreshDecisionWithReasonV1>,
1126    }
1127
1128    #[derive(
1129        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1130    )]
1131    pub struct SchedulingDecisionsWithReasonsV2 {
1132        pub on_refresh: Option<RefreshDecisionWithReasonV2>,
1133    }
1134
1135    #[derive(
1136        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1137    )]
1138    pub struct RefreshDecisionWithReasonV1 {
1139        pub objects_needing_refresh: Vec<String>,
1140        pub rehydration_time_estimate: String,
1141        pub decision: Option<refresh_decision_with_reason_v1::Decision>,
1142    }
1143
1144    pub mod refresh_decision_with_reason_v1 {
1145        use super::*;
1146
1147        #[derive(
1148            Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1149        )]
1150        pub enum Decision {
1151            On(Empty),
1152            Off(Empty),
1153        }
1154    }
1155
1156    #[derive(
1157        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1158    )]
1159    pub struct RefreshDecisionWithReasonV2 {
1160        pub objects_needing_refresh: Vec<String>,
1161        pub objects_needing_compaction: Vec<String>,
1162        pub rehydration_time_estimate: String,
1163        pub decision: Option<refresh_decision_with_reason_v2::Decision>,
1164    }
1165
1166    pub mod refresh_decision_with_reason_v2 {
1167        use super::*;
1168
1169        #[derive(
1170            Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1171        )]
1172        pub enum Decision {
1173            On(Empty),
1174            Off(Empty),
1175        }
1176    }
1177
1178    #[derive(
1179        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1180    )]
1181    pub struct CreateSourceSinkV1 {
1182        pub id: String,
1183        pub name: Option<FullNameV1>,
1184        pub size: Option<StringWrapper>,
1185    }
1186
1187    #[derive(
1188        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1189    )]
1190    pub struct CreateSourceSinkV2 {
1191        pub id: String,
1192        pub name: Option<FullNameV1>,
1193        pub size: Option<StringWrapper>,
1194        pub external_type: String,
1195    }
1196
1197    #[derive(
1198        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1199    )]
1200    pub struct CreateSourceSinkV3 {
1201        pub id: String,
1202        pub name: Option<FullNameV1>,
1203        pub external_type: String,
1204    }
1205
1206    #[derive(
1207        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1208    )]
1209    pub struct CreateSourceSinkV4 {
1210        pub id: String,
1211        pub cluster_id: Option<StringWrapper>,
1212        pub name: Option<FullNameV1>,
1213        pub external_type: String,
1214    }
1215
1216    #[derive(
1217        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1218    )]
1219    pub struct CreateIndexV1 {
1220        pub id: String,
1221        pub cluster_id: String,
1222        pub name: Option<FullNameV1>,
1223    }
1224
1225    #[derive(
1226        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1227    )]
1228    pub struct CreateMaterializedViewV1 {
1229        pub id: String,
1230        pub cluster_id: String,
1231        pub name: Option<FullNameV1>,
1232    }
1233
1234    #[derive(
1235        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1236    )]
1237    pub struct AlterSourceSinkV1 {
1238        pub id: String,
1239        pub name: Option<FullNameV1>,
1240        pub old_size: Option<StringWrapper>,
1241        pub new_size: Option<StringWrapper>,
1242    }
1243
1244    #[derive(
1245        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1246    )]
1247    pub struct AlterSetClusterV1 {
1248        pub id: String,
1249        pub name: Option<FullNameV1>,
1250        pub old_cluster: Option<StringWrapper>,
1251        pub new_cluster: Option<StringWrapper>,
1252    }
1253
1254    #[derive(
1255        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1256    )]
1257    pub struct GrantRoleV1 {
1258        pub role_id: String,
1259        pub member_id: String,
1260        pub grantor_id: String,
1261    }
1262
1263    #[derive(
1264        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1265    )]
1266    pub struct GrantRoleV2 {
1267        pub role_id: String,
1268        pub member_id: String,
1269        pub grantor_id: String,
1270        pub executed_by: String,
1271    }
1272
1273    #[derive(
1274        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1275    )]
1276    pub struct RevokeRoleV1 {
1277        pub role_id: String,
1278        pub member_id: String,
1279    }
1280
1281    #[derive(
1282        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1283    )]
1284    pub struct RevokeRoleV2 {
1285        pub role_id: String,
1286        pub member_id: String,
1287        pub grantor_id: String,
1288        pub executed_by: String,
1289    }
1290
1291    #[derive(
1292        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1293    )]
1294    pub struct UpdatePrivilegeV1 {
1295        pub object_id: String,
1296        pub grantee_id: String,
1297        pub grantor_id: String,
1298        pub privileges: String,
1299    }
1300
1301    #[derive(
1302        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1303    )]
1304    pub struct AlterDefaultPrivilegeV1 {
1305        pub role_id: String,
1306        pub database_id: Option<StringWrapper>,
1307        pub schema_id: Option<StringWrapper>,
1308        pub grantee_id: String,
1309        pub privileges: String,
1310    }
1311
1312    #[derive(
1313        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1314    )]
1315    pub struct UpdateOwnerV1 {
1316        pub object_id: String,
1317        pub old_owner_id: String,
1318        pub new_owner_id: String,
1319    }
1320
1321    #[derive(
1322        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1323    )]
1324    pub struct SchemaV1 {
1325        pub id: String,
1326        pub name: String,
1327        pub database_name: String,
1328    }
1329
1330    #[derive(
1331        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1332    )]
1333    pub struct SchemaV2 {
1334        pub id: String,
1335        pub name: String,
1336        pub database_name: Option<StringWrapper>,
1337    }
1338
1339    #[derive(
1340        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1341    )]
1342    pub struct RenameSchemaV1 {
1343        pub id: String,
1344        pub database_name: Option<String>,
1345        pub old_name: String,
1346        pub new_name: String,
1347    }
1348
1349    #[derive(
1350        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1351    )]
1352    pub struct UpdateItemV1 {
1353        pub id: String,
1354        pub name: Option<FullNameV1>,
1355    }
1356
1357    #[derive(
1358        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1359    )]
1360    pub struct AlterRetainHistoryV1 {
1361        pub id: String,
1362        pub old_history: Option<String>,
1363        pub new_history: Option<String>,
1364    }
1365
1366    #[derive(
1367        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1368    )]
1369    pub struct ToNewIdV1 {
1370        pub id: String,
1371        pub new_id: String,
1372    }
1373
1374    #[derive(
1375        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1376    )]
1377    pub struct FromPreviousIdV1 {
1378        pub id: String,
1379        pub previous_id: String,
1380    }
1381
1382    #[derive(
1383        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1384    )]
1385    pub struct SetV1 {
1386        pub name: String,
1387        pub value: Option<String>,
1388    }
1389
1390    #[derive(
1391        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1392    )]
1393    pub struct RotateKeysV1 {
1394        pub id: String,
1395        pub name: String,
1396    }
1397
1398    #[derive(
1399        Clone,
1400        Copy,
1401        Debug,
1402        PartialEq,
1403        Eq,
1404        Hash,
1405        PartialOrd,
1406        Ord,
1407        Arbitrary,
1408        IntoPrimitive,
1409        TryFromPrimitive,
1410    )]
1411    #[repr(i32)]
1412    pub enum EventType {
1413        Unknown = 0,
1414        Create = 1,
1415        Drop = 2,
1416        Alter = 3,
1417        Grant = 4,
1418        Revoke = 5,
1419        Comment = 6,
1420    }
1421
1422    #[derive(
1423        Clone,
1424        Copy,
1425        Debug,
1426        PartialEq,
1427        Eq,
1428        Hash,
1429        PartialOrd,
1430        Ord,
1431        Arbitrary,
1432        IntoPrimitive,
1433        TryFromPrimitive,
1434    )]
1435    #[repr(i32)]
1436    pub enum ObjectType {
1437        Unknown = 0,
1438        Cluster = 1,
1439        ClusterReplica = 2,
1440        Connection = 3,
1441        Database = 4,
1442        Func = 5,
1443        Index = 6,
1444        MaterializedView = 7,
1445        Role = 8,
1446        Secret = 9,
1447        Schema = 10,
1448        Sink = 11,
1449        Source = 12,
1450        Table = 13,
1451        Type = 14,
1452        View = 15,
1453        System = 16,
1454        ContinualTask = 17,
1455        NetworkPolicy = 18,
1456    }
1457    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1458    pub enum Details {
1459        CreateClusterReplicaV1(CreateClusterReplicaV1),
1460        CreateClusterReplicaV2(CreateClusterReplicaV2),
1461        CreateClusterReplicaV3(CreateClusterReplicaV3),
1462        DropClusterReplicaV1(DropClusterReplicaV1),
1463        DropClusterReplicaV2(DropClusterReplicaV2),
1464        DropClusterReplicaV3(DropClusterReplicaV3),
1465        CreateSourceSinkV1(CreateSourceSinkV1),
1466        CreateSourceSinkV2(CreateSourceSinkV2),
1467        AlterSourceSinkV1(AlterSourceSinkV1),
1468        AlterSetClusterV1(AlterSetClusterV1),
1469        GrantRoleV1(GrantRoleV1),
1470        GrantRoleV2(GrantRoleV2),
1471        RevokeRoleV1(RevokeRoleV1),
1472        RevokeRoleV2(RevokeRoleV2),
1473        UpdatePrivilegeV1(UpdatePrivilegeV1),
1474        AlterDefaultPrivilegeV1(AlterDefaultPrivilegeV1),
1475        UpdateOwnerV1(UpdateOwnerV1),
1476        IdFullNameV1(IdFullNameV1),
1477        RenameClusterV1(RenameClusterV1),
1478        RenameClusterReplicaV1(RenameClusterReplicaV1),
1479        RenameItemV1(RenameItemV1),
1480        IdNameV1(IdNameV1),
1481        SchemaV1(SchemaV1),
1482        SchemaV2(SchemaV2),
1483        RenameSchemaV1(RenameSchemaV1),
1484        UpdateItemV1(UpdateItemV1),
1485        CreateSourceSinkV3(CreateSourceSinkV3),
1486        AlterRetainHistoryV1(AlterRetainHistoryV1),
1487        ToNewIdV1(ToNewIdV1),
1488        FromPreviousIdV1(FromPreviousIdV1),
1489        SetV1(SetV1),
1490        ResetAllV1(Empty),
1491        RotateKeysV1(RotateKeysV1),
1492        CreateSourceSinkV4(CreateSourceSinkV4),
1493        CreateIndexV1(CreateIndexV1),
1494        CreateMaterializedViewV1(CreateMaterializedViewV1),
1495    }
1496}
1497
1498#[derive(
1499    Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1500)]
1501pub struct StateUpdateKind {
1502    pub kind: Option<state_update_kind::Kind>,
1503}
1504
1505pub mod state_update_kind {
1506    use super::*;
1507
1508    #[derive(
1509        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1510    )]
1511    pub struct AuditLog {
1512        pub key: Option<AuditLogKey>,
1513    }
1514
1515    #[derive(
1516        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1517    )]
1518    pub struct Cluster {
1519        pub key: Option<ClusterKey>,
1520        pub value: Option<ClusterValue>,
1521    }
1522
1523    #[derive(
1524        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1525    )]
1526    pub struct ClusterReplica {
1527        pub key: Option<ClusterReplicaKey>,
1528        pub value: Option<ClusterReplicaValue>,
1529    }
1530
1531    #[derive(
1532        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1533    )]
1534    pub struct Comment {
1535        pub key: Option<CommentKey>,
1536        pub value: Option<CommentValue>,
1537    }
1538
1539    #[derive(
1540        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1541    )]
1542    pub struct Config {
1543        pub key: Option<ConfigKey>,
1544        pub value: Option<ConfigValue>,
1545    }
1546
1547    #[derive(
1548        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1549    )]
1550    pub struct Database {
1551        pub key: Option<DatabaseKey>,
1552        pub value: Option<DatabaseValue>,
1553    }
1554
1555    #[derive(
1556        Clone,
1557        Copy,
1558        Debug,
1559        Default,
1560        PartialEq,
1561        Eq,
1562        PartialOrd,
1563        Ord,
1564        Serialize,
1565        Deserialize,
1566        Arbitrary,
1567    )]
1568    pub struct DefaultPrivileges {
1569        pub key: Option<DefaultPrivilegesKey>,
1570        pub value: Option<DefaultPrivilegesValue>,
1571    }
1572
1573    #[derive(
1574        Clone,
1575        Copy,
1576        Debug,
1577        Default,
1578        PartialEq,
1579        Eq,
1580        PartialOrd,
1581        Ord,
1582        Serialize,
1583        Deserialize,
1584        Arbitrary,
1585    )]
1586    pub struct FenceToken {
1587        pub deploy_generation: u64,
1588        pub epoch: i64,
1589    }
1590
1591    #[derive(
1592        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1593    )]
1594    pub struct IdAlloc {
1595        pub key: Option<IdAllocKey>,
1596        pub value: Option<IdAllocValue>,
1597    }
1598
1599    #[derive(
1600        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1601    )]
1602    pub struct ClusterIntrospectionSourceIndex {
1603        pub key: Option<ClusterIntrospectionSourceIndexKey>,
1604        pub value: Option<ClusterIntrospectionSourceIndexValue>,
1605    }
1606
1607    #[derive(
1608        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1609    )]
1610    pub struct Item {
1611        pub key: Option<ItemKey>,
1612        pub value: Option<ItemValue>,
1613    }
1614
1615    #[derive(
1616        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1617    )]
1618    pub struct Role {
1619        pub key: Option<RoleKey>,
1620        pub value: Option<RoleValue>,
1621    }
1622
1623    #[derive(
1624        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1625    )]
1626    pub struct RoleAuth {
1627        pub key: Option<RoleAuthKey>,
1628        pub value: Option<RoleAuthValue>,
1629    }
1630
1631    #[derive(
1632        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1633    )]
1634    pub struct NetworkPolicy {
1635        pub key: Option<NetworkPolicyKey>,
1636        pub value: Option<NetworkPolicyValue>,
1637    }
1638
1639    #[derive(
1640        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1641    )]
1642    pub struct Schema {
1643        pub key: Option<SchemaKey>,
1644        pub value: Option<SchemaValue>,
1645    }
1646
1647    #[derive(
1648        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1649    )]
1650    pub struct Setting {
1651        pub key: Option<SettingKey>,
1652        pub value: Option<SettingValue>,
1653    }
1654
1655    #[derive(
1656        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1657    )]
1658    pub struct ServerConfiguration {
1659        pub key: Option<ServerConfigurationKey>,
1660        pub value: Option<ServerConfigurationValue>,
1661    }
1662
1663    #[derive(
1664        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1665    )]
1666    pub struct SourceReferences {
1667        pub key: Option<SourceReferencesKey>,
1668        pub value: Option<SourceReferencesValue>,
1669    }
1670
1671    #[derive(
1672        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1673    )]
1674    pub struct GidMapping {
1675        pub key: Option<GidMappingKey>,
1676        pub value: Option<GidMappingValue>,
1677    }
1678
1679    #[derive(
1680        Clone,
1681        Copy,
1682        Debug,
1683        Default,
1684        PartialEq,
1685        Eq,
1686        PartialOrd,
1687        Ord,
1688        Serialize,
1689        Deserialize,
1690        Arbitrary,
1691    )]
1692    pub struct SystemPrivileges {
1693        pub key: Option<SystemPrivilegesKey>,
1694        pub value: Option<SystemPrivilegesValue>,
1695    }
1696
1697    #[derive(
1698        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1699    )]
1700    pub struct StorageCollectionMetadata {
1701        pub key: Option<StorageCollectionMetadataKey>,
1702        pub value: Option<StorageCollectionMetadataValue>,
1703    }
1704
1705    #[derive(
1706        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1707    )]
1708    pub struct UnfinalizedShard {
1709        pub key: Option<UnfinalizedShardKey>,
1710    }
1711
1712    #[derive(
1713        Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
1714    )]
1715    pub struct TxnWalShard {
1716        pub value: Option<TxnWalShardValue>,
1717    }
1718
1719    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1720    // Serialize the top-level enum in the persist-backed catalog as internally tagged to set up
1721    // persist pushdown statistics for success.
1722    #[serde(tag = "kind")]
1723    pub enum Kind {
1724        AuditLog(AuditLog),
1725        Cluster(Cluster),
1726        ClusterReplica(ClusterReplica),
1727        Comment(Comment),
1728        Config(Config),
1729        Database(Database),
1730        DefaultPrivileges(DefaultPrivileges),
1731        IdAlloc(IdAlloc),
1732        ClusterIntrospectionSourceIndex(ClusterIntrospectionSourceIndex),
1733        Item(Item),
1734        Role(Role),
1735        Schema(Schema),
1736        Setting(Setting),
1737        ServerConfiguration(ServerConfiguration),
1738        GidMapping(GidMapping),
1739        SystemPrivileges(SystemPrivileges),
1740        StorageCollectionMetadata(StorageCollectionMetadata),
1741        UnfinalizedShard(UnfinalizedShard),
1742        TxnWalShard(TxnWalShard),
1743        SourceReferences(SourceReferences),
1744        FenceToken(FenceToken),
1745        NetworkPolicy(NetworkPolicy),
1746        RoleAuth(RoleAuth),
1747    }
1748}
1749
1750#[derive(
1751    Clone,
1752    Copy,
1753    Debug,
1754    PartialEq,
1755    Eq,
1756    Hash,
1757    PartialOrd,
1758    Ord,
1759    Arbitrary,
1760    IntoPrimitive,
1761    TryFromPrimitive,
1762)]
1763#[repr(i32)]
1764pub enum CatalogItemType {
1765    Unknown = 0,
1766    Table = 1,
1767    Source = 2,
1768    Sink = 3,
1769    View = 4,
1770    MaterializedView = 5,
1771    Index = 6,
1772    Type = 7,
1773    Func = 8,
1774    Secret = 9,
1775    Connection = 10,
1776    ContinualTask = 11,
1777}
1778
1779#[derive(
1780    Clone,
1781    Copy,
1782    Debug,
1783    PartialEq,
1784    Eq,
1785    Hash,
1786    PartialOrd,
1787    Ord,
1788    Arbitrary,
1789    IntoPrimitive,
1790    TryFromPrimitive,
1791)]
1792#[repr(i32)]
1793pub enum ObjectType {
1794    Unknown = 0,
1795    Table = 1,
1796    View = 2,
1797    MaterializedView = 3,
1798    Source = 4,
1799    Sink = 5,
1800    Index = 6,
1801    Type = 7,
1802    Role = 8,
1803    Cluster = 9,
1804    ClusterReplica = 10,
1805    Secret = 11,
1806    Connection = 12,
1807    Database = 13,
1808    Schema = 14,
1809    Func = 15,
1810    ContinualTask = 16,
1811    NetworkPolicy = 17,
1812}