mz_catalog_protos/
objects_v79.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 proptest_derive::Arbitrary;
11use serde::{Deserialize, Serialize};
12use serde_repr::{Deserialize_repr, Serialize_repr};
13
14#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
15pub struct ConfigKey {
16    pub key: String,
17}
18
19#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
20pub struct ConfigValue {
21    pub value: u64,
22}
23
24#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
25pub struct SettingKey {
26    pub name: String,
27}
28
29#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
30pub struct SettingValue {
31    pub value: String,
32}
33
34#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
35pub struct IdAllocKey {
36    pub name: String,
37}
38
39#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
40pub struct IdAllocValue {
41    pub next_id: u64,
42}
43
44#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
45pub struct GidMappingKey {
46    pub schema_name: String,
47    pub object_type: CatalogItemType,
48    pub object_name: String,
49}
50
51#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
52pub struct GidMappingValue {
53    pub catalog_id: SystemCatalogItemId,
54    pub global_id: SystemGlobalId,
55    pub fingerprint: String,
56}
57
58#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
59pub struct ClusterKey {
60    pub id: ClusterId,
61}
62
63#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
64pub struct ClusterValue {
65    pub name: String,
66    pub owner_id: RoleId,
67    pub privileges: Vec<MzAclItem>,
68    pub config: ClusterConfig,
69}
70
71#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
72pub struct ClusterIntrospectionSourceIndexKey {
73    pub cluster_id: ClusterId,
74    pub name: String,
75}
76
77#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
78pub struct ClusterIntrospectionSourceIndexValue {
79    pub catalog_id: IntrospectionSourceIndexCatalogItemId,
80    pub global_id: IntrospectionSourceIndexGlobalId,
81    pub oid: u32,
82}
83
84#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
85pub struct ClusterReplicaKey {
86    pub id: ReplicaId,
87}
88
89#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
90pub struct ClusterReplicaValue {
91    pub cluster_id: ClusterId,
92    pub name: String,
93    pub config: ReplicaConfig,
94    pub owner_id: RoleId,
95}
96
97#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
98pub struct DatabaseKey {
99    pub id: DatabaseId,
100}
101
102#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
103pub struct DatabaseValue {
104    pub name: String,
105    pub owner_id: RoleId,
106    pub privileges: Vec<MzAclItem>,
107    pub oid: u32,
108}
109
110#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
111pub struct SchemaKey {
112    pub id: SchemaId,
113}
114
115#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
116pub struct SchemaValue {
117    pub database_id: Option<DatabaseId>,
118    pub name: String,
119    pub owner_id: RoleId,
120    pub privileges: Vec<MzAclItem>,
121    pub oid: u32,
122}
123
124#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
125pub struct ItemKey {
126    pub gid: CatalogItemId,
127}
128
129#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
130pub struct ItemValue {
131    pub schema_id: SchemaId,
132    pub name: String,
133    pub definition: CatalogItem,
134    pub owner_id: RoleId,
135    pub privileges: Vec<MzAclItem>,
136    pub oid: u32,
137    pub global_id: GlobalId,
138    pub extra_versions: Vec<ItemVersion>,
139}
140
141#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
142pub struct ItemVersion {
143    pub global_id: GlobalId,
144    pub version: Version,
145}
146
147#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
148pub struct RoleKey {
149    pub id: RoleId,
150}
151
152#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
153pub struct RoleValue {
154    pub name: String,
155    pub attributes: RoleAttributes,
156    pub membership: RoleMembership,
157    pub vars: RoleVars,
158    pub oid: u32,
159}
160
161#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
162pub struct RoleAuthKey {
163    pub id: RoleId,
164}
165
166#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
167pub struct RoleAuthValue {
168    pub password_hash: Option<String>,
169    pub updated_at: EpochMillis,
170}
171
172#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
173pub struct NetworkPolicyKey {
174    pub id: NetworkPolicyId,
175}
176
177#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
178pub struct NetworkPolicyValue {
179    pub name: String,
180    pub rules: Vec<NetworkPolicyRule>,
181    pub owner_id: RoleId,
182    pub privileges: Vec<MzAclItem>,
183    pub oid: u32,
184}
185
186#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
187pub struct ServerConfigurationKey {
188    pub name: String,
189}
190
191#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
192pub struct ServerConfigurationValue {
193    pub value: String,
194}
195
196#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
197pub struct AuditLogKey {
198    pub event: AuditLogEvent,
199}
200
201#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
202pub enum AuditLogEvent {
203    V1(AuditLogEventV1),
204}
205
206#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
207pub struct CommentKey {
208    pub object: CommentObject,
209    pub sub_component: Option<CommentSubComponent>,
210}
211
212#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
213pub enum CommentObject {
214    Table(CatalogItemId),
215    View(CatalogItemId),
216    MaterializedView(CatalogItemId),
217    Source(CatalogItemId),
218    Sink(CatalogItemId),
219    Index(CatalogItemId),
220    Func(CatalogItemId),
221    Connection(CatalogItemId),
222    Type(CatalogItemId),
223    Secret(CatalogItemId),
224    ContinualTask(CatalogItemId),
225    Role(RoleId),
226    Database(DatabaseId),
227    Schema(ResolvedSchema),
228    Cluster(ClusterId),
229    ClusterReplica(ClusterReplicaId),
230    NetworkPolicy(NetworkPolicyId),
231}
232
233#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
234pub enum CommentSubComponent {
235    ColumnPos(u64),
236}
237
238#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
239pub struct CommentValue {
240    pub comment: String,
241}
242
243#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
244pub struct SourceReferencesKey {
245    pub source: CatalogItemId,
246}
247
248#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
249pub struct SourceReferencesValue {
250    pub references: Vec<SourceReference>,
251    pub updated_at: EpochMillis,
252}
253
254#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
255pub struct SourceReference {
256    pub name: String,
257    pub namespace: Option<String>,
258    pub columns: Vec<String>,
259}
260
261#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
262pub struct StorageCollectionMetadataKey {
263    pub id: GlobalId,
264}
265
266#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
267pub struct StorageCollectionMetadataValue {
268    pub shard: String,
269}
270
271#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
272pub struct UnfinalizedShardKey {
273    pub shard: String,
274}
275
276#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
277pub struct TxnWalShardValue {
278    pub shard: String,
279}
280
281#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
282pub struct Empty {}
283
284#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
285pub struct StringWrapper {
286    pub inner: String,
287}
288
289#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
290pub struct Duration {
291    pub secs: u64,
292    pub nanos: u32,
293}
294
295#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
296pub struct EpochMillis {
297    pub millis: u64,
298}
299
300#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
301pub struct Version {
302    pub value: u64,
303}
304
305#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
306pub enum CatalogItem {
307    V1(CatalogItemV1),
308}
309
310#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
311pub struct CatalogItemV1 {
312    pub create_sql: String,
313}
314
315#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
316pub enum CatalogItemId {
317    System(u64),
318    User(u64),
319    Transient(u64),
320    IntrospectionSourceIndex(u64),
321}
322
323#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
324pub struct SystemCatalogItemId(pub u64);
325
326#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
327pub struct IntrospectionSourceIndexCatalogItemId(pub u64);
328
329#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
330pub enum GlobalId {
331    System(u64),
332    User(u64),
333    Transient(u64),
334    Explain,
335    IntrospectionSourceIndex(u64),
336}
337
338#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
339pub struct SystemGlobalId(pub u64);
340
341#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
342pub struct IntrospectionSourceIndexGlobalId(pub u64);
343
344#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
345pub enum ClusterId {
346    System(u64),
347    User(u64),
348}
349
350#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
351pub enum DatabaseId {
352    System(u64),
353    User(u64),
354}
355
356#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
357pub enum ResolvedDatabaseSpecifier {
358    Ambient,
359    Id(DatabaseId),
360}
361
362#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
363pub enum SchemaId {
364    System(u64),
365    User(u64),
366}
367
368#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
369pub enum SchemaSpecifier {
370    Temporary,
371    Id(SchemaId),
372}
373
374#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
375pub struct ResolvedSchema {
376    pub database: ResolvedDatabaseSpecifier,
377    pub schema: SchemaSpecifier,
378}
379
380#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
381pub enum ReplicaId {
382    System(u64),
383    User(u64),
384}
385
386#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
387pub struct ClusterReplicaId {
388    pub cluster_id: ClusterId,
389    pub replica_id: ReplicaId,
390}
391
392#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
393pub enum NetworkPolicyId {
394    System(u64),
395    User(u64),
396}
397
398#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
399pub struct ReplicaLogging {
400    pub log_logging: bool,
401    pub interval: Option<Duration>,
402}
403
404#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
405pub struct OptimizerFeatureOverride {
406    pub name: String,
407    pub value: String,
408}
409
410#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
411pub struct ClusterScheduleRefreshOptions {
412    pub rehydration_time_estimate: Duration,
413}
414
415#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
416pub enum ClusterSchedule {
417    Manual,
418    Refresh(ClusterScheduleRefreshOptions),
419}
420
421#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
422pub struct ClusterConfig {
423    pub workload_class: Option<String>,
424    pub variant: ClusterVariant,
425}
426
427#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
428pub enum ClusterVariant {
429    Unmanaged,
430    Managed(ManagedCluster),
431}
432
433#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
434pub struct ManagedCluster {
435    pub size: String,
436    pub replication_factor: u32,
437    pub availability_zones: Vec<String>,
438    pub logging: ReplicaLogging,
439    pub optimizer_feature_overrides: Vec<OptimizerFeatureOverride>,
440    pub schedule: ClusterSchedule,
441}
442
443#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
444pub struct ReplicaConfig {
445    pub logging: ReplicaLogging,
446    pub location: ReplicaLocation,
447}
448
449#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
450pub struct UnmanagedLocation {
451    pub storagectl_addrs: Vec<String>,
452    pub computectl_addrs: Vec<String>,
453}
454
455#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
456pub struct ManagedLocation {
457    pub size: String,
458    pub availability_zone: Option<String>,
459    pub internal: bool,
460    pub billed_as: Option<String>,
461    pub pending: bool,
462}
463
464#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
465pub enum ReplicaLocation {
466    Unmanaged(UnmanagedLocation),
467    Managed(ManagedLocation),
468}
469
470#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
471pub enum RoleId {
472    System(u64),
473    User(u64),
474    Public,
475    Predefined(u64),
476}
477
478#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
479pub struct RoleAttributes {
480    pub inherit: bool,
481    pub superuser: Option<bool>,
482    pub login: Option<bool>,
483}
484
485#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
486pub struct RoleMembership {
487    pub map: Vec<RoleMembershipEntry>,
488}
489
490#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
491pub struct RoleMembershipEntry {
492    pub key: RoleId,
493    pub value: RoleId,
494}
495
496#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
497pub struct RoleVars {
498    pub entries: Vec<RoleVarsEntry>,
499}
500
501#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
502pub struct RoleVarsEntry {
503    pub key: String,
504    pub val: RoleVar,
505}
506
507#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
508pub enum RoleVar {
509    Flat(String),
510    SqlSet(Vec<String>),
511}
512
513#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
514pub struct NetworkPolicyRule {
515    pub name: String,
516    pub address: String,
517    pub action: NetworkPolicyRuleAction,
518    pub direction: NetworkPolicyRuleDirection,
519}
520
521#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
522pub enum NetworkPolicyRuleAction {
523    Allow,
524}
525
526#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
527pub enum NetworkPolicyRuleDirection {
528    Ingress,
529}
530
531#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
532pub struct AclMode {
533    pub bitflags: u64,
534}
535
536#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
537pub struct MzAclItem {
538    pub grantee: RoleId,
539    pub grantor: RoleId,
540    pub acl_mode: AclMode,
541}
542
543#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
544pub struct DefaultPrivilegesKey {
545    pub role_id: RoleId,
546    pub database_id: Option<DatabaseId>,
547    pub schema_id: Option<SchemaId>,
548    pub object_type: ObjectType,
549    pub grantee: RoleId,
550}
551
552#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
553pub struct DefaultPrivilegesValue {
554    pub privileges: AclMode,
555}
556
557#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
558pub struct SystemPrivilegesKey {
559    pub grantee: RoleId,
560    pub grantor: RoleId,
561}
562
563#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
564pub struct SystemPrivilegesValue {
565    pub acl_mode: AclMode,
566}
567
568#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
569pub struct AuditLogEventV1 {
570    pub id: u64,
571    pub event_type: audit_log_event_v1::EventType,
572    pub object_type: audit_log_event_v1::ObjectType,
573    pub user: Option<StringWrapper>,
574    pub occurred_at: EpochMillis,
575    pub details: audit_log_event_v1::Details,
576}
577
578pub mod audit_log_event_v1 {
579    use super::*;
580
581    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
582    pub struct IdFullNameV1 {
583        pub id: String,
584        pub name: FullNameV1,
585    }
586
587    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
588    pub struct FullNameV1 {
589        pub database: String,
590        pub schema: String,
591        pub item: String,
592    }
593
594    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
595    pub struct IdNameV1 {
596        pub id: String,
597        pub name: String,
598    }
599
600    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
601    pub struct RenameClusterV1 {
602        pub id: String,
603        pub old_name: String,
604        pub new_name: String,
605    }
606
607    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
608    pub struct RenameClusterReplicaV1 {
609        pub cluster_id: String,
610        pub replica_id: String,
611        pub old_name: String,
612        pub new_name: String,
613    }
614
615    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
616    pub struct RenameItemV1 {
617        pub id: String,
618        pub old_name: FullNameV1,
619        pub new_name: FullNameV1,
620    }
621
622    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
623    pub struct CreateClusterReplicaV1 {
624        pub cluster_id: String,
625        pub cluster_name: String,
626        pub replica_id: Option<StringWrapper>,
627        pub replica_name: String,
628        pub logical_size: String,
629        pub disk: bool,
630        pub billed_as: Option<String>,
631        pub internal: bool,
632    }
633
634    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
635    pub struct CreateClusterReplicaV2 {
636        pub cluster_id: String,
637        pub cluster_name: String,
638        pub replica_id: Option<StringWrapper>,
639        pub replica_name: String,
640        pub logical_size: String,
641        pub disk: bool,
642        pub billed_as: Option<String>,
643        pub internal: bool,
644        pub reason: CreateOrDropClusterReplicaReasonV1,
645        pub scheduling_policies: Option<SchedulingDecisionsWithReasonsV1>,
646    }
647
648    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
649    pub struct CreateClusterReplicaV3 {
650        pub cluster_id: String,
651        pub cluster_name: String,
652        pub replica_id: Option<StringWrapper>,
653        pub replica_name: String,
654        pub logical_size: String,
655        pub disk: bool,
656        pub billed_as: Option<String>,
657        pub internal: bool,
658        pub reason: CreateOrDropClusterReplicaReasonV1,
659        pub scheduling_policies: Option<SchedulingDecisionsWithReasonsV2>,
660    }
661
662    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
663    pub struct CreateClusterReplicaV4 {
664        pub cluster_id: String,
665        pub cluster_name: String,
666        pub replica_id: Option<StringWrapper>,
667        pub replica_name: String,
668        pub logical_size: String,
669        pub billed_as: Option<String>,
670        pub internal: bool,
671        pub reason: CreateOrDropClusterReplicaReasonV1,
672        pub scheduling_policies: Option<SchedulingDecisionsWithReasonsV2>,
673    }
674
675    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
676    pub struct DropClusterReplicaV1 {
677        pub cluster_id: String,
678        pub cluster_name: String,
679        pub replica_id: Option<StringWrapper>,
680        pub replica_name: String,
681    }
682
683    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
684    pub struct DropClusterReplicaV2 {
685        pub cluster_id: String,
686        pub cluster_name: String,
687        pub replica_id: Option<StringWrapper>,
688        pub replica_name: String,
689        pub reason: CreateOrDropClusterReplicaReasonV1,
690        pub scheduling_policies: Option<SchedulingDecisionsWithReasonsV1>,
691    }
692
693    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
694    pub struct DropClusterReplicaV3 {
695        pub cluster_id: String,
696        pub cluster_name: String,
697        pub replica_id: Option<StringWrapper>,
698        pub replica_name: String,
699        pub reason: CreateOrDropClusterReplicaReasonV1,
700        pub scheduling_policies: Option<SchedulingDecisionsWithReasonsV2>,
701    }
702
703    #[derive(
704        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
705    )]
706    pub struct CreateOrDropClusterReplicaReasonV1 {
707        pub reason: CreateOrDropClusterReplicaReasonV1Reason,
708    }
709
710    #[derive(
711        Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary,
712    )]
713    pub enum CreateOrDropClusterReplicaReasonV1Reason {
714        Manual(Empty),
715        Schedule(Empty),
716        System(Empty),
717    }
718
719    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
720    pub struct SchedulingDecisionsWithReasonsV1 {
721        pub on_refresh: RefreshDecisionWithReasonV1,
722    }
723
724    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
725    pub struct SchedulingDecisionsWithReasonsV2 {
726        pub on_refresh: RefreshDecisionWithReasonV2,
727    }
728
729    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
730    pub enum RefreshDecision {
731        On(Empty),
732        Off(Empty),
733    }
734
735    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
736    pub struct RefreshDecisionWithReasonV1 {
737        pub objects_needing_refresh: Vec<String>,
738        pub rehydration_time_estimate: String,
739        pub decision: RefreshDecision,
740    }
741
742    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
743    pub struct RefreshDecisionWithReasonV2 {
744        pub objects_needing_refresh: Vec<String>,
745        pub objects_needing_compaction: Vec<String>,
746        pub rehydration_time_estimate: String,
747        pub decision: RefreshDecision,
748    }
749
750    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
751    pub struct CreateSourceSinkV1 {
752        pub id: String,
753        pub name: FullNameV1,
754        pub size: Option<StringWrapper>,
755    }
756
757    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
758    pub struct CreateSourceSinkV2 {
759        pub id: String,
760        pub name: FullNameV1,
761        pub size: Option<StringWrapper>,
762        pub external_type: String,
763    }
764
765    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
766    pub struct CreateSourceSinkV3 {
767        pub id: String,
768        pub name: FullNameV1,
769        pub external_type: String,
770    }
771
772    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
773    pub struct CreateSourceSinkV4 {
774        pub id: String,
775        pub cluster_id: Option<StringWrapper>,
776        pub name: FullNameV1,
777        pub external_type: String,
778    }
779
780    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
781    pub struct CreateIndexV1 {
782        pub id: String,
783        pub cluster_id: String,
784        pub name: FullNameV1,
785    }
786
787    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
788    pub struct CreateMaterializedViewV1 {
789        pub id: String,
790        pub cluster_id: String,
791        pub name: FullNameV1,
792    }
793
794    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
795    pub struct AlterSourceSinkV1 {
796        pub id: String,
797        pub name: FullNameV1,
798        pub old_size: Option<StringWrapper>,
799        pub new_size: Option<StringWrapper>,
800    }
801
802    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
803    pub struct AlterSetClusterV1 {
804        pub id: String,
805        pub name: FullNameV1,
806        pub old_cluster: Option<StringWrapper>,
807        pub new_cluster: Option<StringWrapper>,
808    }
809
810    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
811    pub struct GrantRoleV1 {
812        pub role_id: String,
813        pub member_id: String,
814        pub grantor_id: String,
815    }
816
817    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
818    pub struct GrantRoleV2 {
819        pub role_id: String,
820        pub member_id: String,
821        pub grantor_id: String,
822        pub executed_by: String,
823    }
824
825    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
826    pub struct RevokeRoleV1 {
827        pub role_id: String,
828        pub member_id: String,
829    }
830
831    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
832    pub struct RevokeRoleV2 {
833        pub role_id: String,
834        pub member_id: String,
835        pub grantor_id: String,
836        pub executed_by: String,
837    }
838
839    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
840    pub struct UpdatePrivilegeV1 {
841        pub object_id: String,
842        pub grantee_id: String,
843        pub grantor_id: String,
844        pub privileges: String,
845    }
846
847    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
848    pub struct AlterDefaultPrivilegeV1 {
849        pub role_id: String,
850        pub database_id: Option<StringWrapper>,
851        pub schema_id: Option<StringWrapper>,
852        pub grantee_id: String,
853        pub privileges: String,
854    }
855
856    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
857    pub struct UpdateOwnerV1 {
858        pub object_id: String,
859        pub old_owner_id: String,
860        pub new_owner_id: String,
861    }
862
863    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
864    pub struct SchemaV1 {
865        pub id: String,
866        pub name: String,
867        pub database_name: String,
868    }
869
870    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
871    pub struct SchemaV2 {
872        pub id: String,
873        pub name: String,
874        pub database_name: Option<StringWrapper>,
875    }
876
877    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
878    pub struct RenameSchemaV1 {
879        pub id: String,
880        pub database_name: Option<String>,
881        pub old_name: String,
882        pub new_name: String,
883    }
884
885    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
886    pub struct UpdateItemV1 {
887        pub id: String,
888        pub name: FullNameV1,
889    }
890
891    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
892    pub struct AlterRetainHistoryV1 {
893        pub id: String,
894        pub old_history: Option<String>,
895        pub new_history: Option<String>,
896    }
897
898    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
899    pub struct ToNewIdV1 {
900        pub id: String,
901        pub new_id: String,
902    }
903
904    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
905    pub struct FromPreviousIdV1 {
906        pub id: String,
907        pub previous_id: String,
908    }
909
910    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
911    pub struct SetV1 {
912        pub name: String,
913        pub value: Option<String>,
914    }
915
916    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
917    pub struct RotateKeysV1 {
918        pub id: String,
919        pub name: String,
920    }
921
922    #[derive(
923        Clone,
924        Copy,
925        Debug,
926        PartialEq,
927        Eq,
928        Hash,
929        PartialOrd,
930        Ord,
931        Serialize_repr,
932        Deserialize_repr,
933        Arbitrary,
934    )]
935    #[repr(u8)]
936    pub enum EventType {
937        Unknown = 0,
938        Create = 1,
939        Drop = 2,
940        Alter = 3,
941        Grant = 4,
942        Revoke = 5,
943        Comment = 6,
944    }
945
946    #[derive(
947        Clone,
948        Copy,
949        Debug,
950        PartialEq,
951        Eq,
952        Hash,
953        PartialOrd,
954        Ord,
955        Serialize_repr,
956        Deserialize_repr,
957        Arbitrary,
958    )]
959    #[repr(u8)]
960    pub enum ObjectType {
961        Unknown = 0,
962        Cluster = 1,
963        ClusterReplica = 2,
964        Connection = 3,
965        Database = 4,
966        Func = 5,
967        Index = 6,
968        MaterializedView = 7,
969        Role = 8,
970        Secret = 9,
971        Schema = 10,
972        Sink = 11,
973        Source = 12,
974        Table = 13,
975        Type = 14,
976        View = 15,
977        System = 16,
978        ContinualTask = 17,
979        NetworkPolicy = 18,
980    }
981
982    #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
983    pub enum Details {
984        CreateClusterReplicaV1(CreateClusterReplicaV1),
985        CreateClusterReplicaV2(CreateClusterReplicaV2),
986        CreateClusterReplicaV3(CreateClusterReplicaV3),
987        CreateClusterReplicaV4(CreateClusterReplicaV4),
988        DropClusterReplicaV1(DropClusterReplicaV1),
989        DropClusterReplicaV2(DropClusterReplicaV2),
990        DropClusterReplicaV3(DropClusterReplicaV3),
991        CreateSourceSinkV1(CreateSourceSinkV1),
992        CreateSourceSinkV2(CreateSourceSinkV2),
993        AlterSourceSinkV1(AlterSourceSinkV1),
994        AlterSetClusterV1(AlterSetClusterV1),
995        GrantRoleV1(GrantRoleV1),
996        GrantRoleV2(GrantRoleV2),
997        RevokeRoleV1(RevokeRoleV1),
998        RevokeRoleV2(RevokeRoleV2),
999        UpdatePrivilegeV1(UpdatePrivilegeV1),
1000        AlterDefaultPrivilegeV1(AlterDefaultPrivilegeV1),
1001        UpdateOwnerV1(UpdateOwnerV1),
1002        IdFullNameV1(IdFullNameV1),
1003        RenameClusterV1(RenameClusterV1),
1004        RenameClusterReplicaV1(RenameClusterReplicaV1),
1005        RenameItemV1(RenameItemV1),
1006        IdNameV1(IdNameV1),
1007        SchemaV1(SchemaV1),
1008        SchemaV2(SchemaV2),
1009        RenameSchemaV1(RenameSchemaV1),
1010        UpdateItemV1(UpdateItemV1),
1011        CreateSourceSinkV3(CreateSourceSinkV3),
1012        AlterRetainHistoryV1(AlterRetainHistoryV1),
1013        ToNewIdV1(ToNewIdV1),
1014        FromPreviousIdV1(FromPreviousIdV1),
1015        SetV1(SetV1),
1016        ResetAllV1(Empty),
1017        RotateKeysV1(RotateKeysV1),
1018        CreateSourceSinkV4(CreateSourceSinkV4),
1019        CreateIndexV1(CreateIndexV1),
1020        CreateMaterializedViewV1(CreateMaterializedViewV1),
1021    }
1022}
1023
1024/// The contents of a single state update.
1025#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1026// Serialize the top-level enum in the persist-backed catalog as internally tagged to set up
1027// persist pushdown statistics for success.
1028#[serde(tag = "kind")]
1029pub enum StateUpdateKind {
1030    AuditLog(AuditLog),
1031    Cluster(Cluster),
1032    ClusterIntrospectionSourceIndex(ClusterIntrospectionSourceIndex),
1033    ClusterReplica(ClusterReplica),
1034    Comment(Comment),
1035    Config(Config),
1036    Database(Database),
1037    DefaultPrivileges(DefaultPrivileges),
1038    FenceToken(FenceToken),
1039    GidMapping(GidMapping),
1040    IdAlloc(IdAlloc),
1041    Item(Item),
1042    NetworkPolicy(NetworkPolicy),
1043    Role(Role),
1044    RoleAuth(RoleAuth),
1045    Schema(Schema),
1046    ServerConfiguration(ServerConfiguration),
1047    Setting(Setting),
1048    SourceReferences(SourceReferences),
1049    StorageCollectionMetadata(StorageCollectionMetadata),
1050    SystemPrivileges(SystemPrivileges),
1051    TxnWalShard(TxnWalShard),
1052    UnfinalizedShard(UnfinalizedShard),
1053}
1054
1055#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1056pub struct AuditLog {
1057    pub key: AuditLogKey,
1058}
1059
1060#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1061pub struct Cluster {
1062    pub key: ClusterKey,
1063    pub value: ClusterValue,
1064}
1065
1066#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1067pub struct ClusterReplica {
1068    pub key: ClusterReplicaKey,
1069    pub value: ClusterReplicaValue,
1070}
1071
1072#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1073pub struct Comment {
1074    pub key: CommentKey,
1075    pub value: CommentValue,
1076}
1077
1078#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1079pub struct Config {
1080    pub key: ConfigKey,
1081    pub value: ConfigValue,
1082}
1083
1084#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1085pub struct Database {
1086    pub key: DatabaseKey,
1087    pub value: DatabaseValue,
1088}
1089
1090#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1091pub struct DefaultPrivileges {
1092    pub key: DefaultPrivilegesKey,
1093    pub value: DefaultPrivilegesValue,
1094}
1095
1096#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1097pub struct FenceToken {
1098    pub deploy_generation: u64,
1099    pub epoch: i64,
1100}
1101
1102#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1103pub struct IdAlloc {
1104    pub key: IdAllocKey,
1105    pub value: IdAllocValue,
1106}
1107
1108#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1109pub struct ClusterIntrospectionSourceIndex {
1110    pub key: ClusterIntrospectionSourceIndexKey,
1111    pub value: ClusterIntrospectionSourceIndexValue,
1112}
1113
1114#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1115pub struct Item {
1116    pub key: ItemKey,
1117    pub value: ItemValue,
1118}
1119
1120#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1121pub struct Role {
1122    pub key: RoleKey,
1123    pub value: RoleValue,
1124}
1125
1126#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1127pub struct RoleAuth {
1128    pub key: RoleAuthKey,
1129    pub value: RoleAuthValue,
1130}
1131
1132#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1133pub struct NetworkPolicy {
1134    pub key: NetworkPolicyKey,
1135    pub value: NetworkPolicyValue,
1136}
1137
1138#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1139pub struct Schema {
1140    pub key: SchemaKey,
1141    pub value: SchemaValue,
1142}
1143
1144#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1145pub struct Setting {
1146    pub key: SettingKey,
1147    pub value: SettingValue,
1148}
1149
1150#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1151pub struct ServerConfiguration {
1152    pub key: ServerConfigurationKey,
1153    pub value: ServerConfigurationValue,
1154}
1155
1156#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1157pub struct SourceReferences {
1158    pub key: SourceReferencesKey,
1159    pub value: SourceReferencesValue,
1160}
1161
1162#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1163pub struct GidMapping {
1164    pub key: GidMappingKey,
1165    pub value: GidMappingValue,
1166}
1167
1168#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1169pub struct SystemPrivileges {
1170    pub key: SystemPrivilegesKey,
1171    pub value: SystemPrivilegesValue,
1172}
1173
1174#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1175pub struct StorageCollectionMetadata {
1176    pub key: StorageCollectionMetadataKey,
1177    pub value: StorageCollectionMetadataValue,
1178}
1179
1180#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1181pub struct UnfinalizedShard {
1182    pub key: UnfinalizedShardKey,
1183}
1184
1185#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Arbitrary)]
1186pub struct TxnWalShard {
1187    pub value: TxnWalShardValue,
1188}
1189
1190#[derive(
1191    Clone,
1192    Copy,
1193    Debug,
1194    PartialEq,
1195    Eq,
1196    Hash,
1197    PartialOrd,
1198    Ord,
1199    Serialize_repr,
1200    Deserialize_repr,
1201    Arbitrary,
1202)]
1203#[repr(u8)]
1204pub enum CatalogItemType {
1205    Unknown = 0,
1206    Table = 1,
1207    Source = 2,
1208    Sink = 3,
1209    View = 4,
1210    MaterializedView = 5,
1211    Index = 6,
1212    Type = 7,
1213    Func = 8,
1214    Secret = 9,
1215    Connection = 10,
1216    ContinualTask = 11,
1217}
1218
1219#[derive(
1220    Clone,
1221    Copy,
1222    Debug,
1223    PartialEq,
1224    Eq,
1225    Hash,
1226    PartialOrd,
1227    Ord,
1228    Serialize_repr,
1229    Deserialize_repr,
1230    Arbitrary,
1231)]
1232#[repr(u8)]
1233pub enum ObjectType {
1234    Unknown = 0,
1235    Table = 1,
1236    View = 2,
1237    MaterializedView = 3,
1238    Source = 4,
1239    Sink = 5,
1240    Index = 6,
1241    Type = 7,
1242    Role = 8,
1243    Cluster = 9,
1244    ClusterReplica = 10,
1245    Secret = 11,
1246    Connection = 12,
1247    Database = 13,
1248    Schema = 14,
1249    Func = 15,
1250    ContinualTask = 16,
1251    NetworkPolicy = 17,
1252}