data_modelling_sdk/models/
enums.rs

1//! Enums for data modeling
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
7pub enum DatabaseType {
8    DatabricksDelta,
9    DatabricksIceberg,
10    AwsGlue,
11    DatabricksLakebase,
12    Postgres,
13    Mysql,
14    SqlServer,
15    Dynamodb,
16    Cassandra,
17    Kafka,
18    Pulsar,
19}
20
21#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
22#[serde(rename_all = "lowercase")]
23pub enum MedallionLayer {
24    Bronze,
25    Silver,
26    Gold,
27    Operational,
28}
29
30#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
31#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
32pub enum SCDPattern {
33    Type1,
34    Type2,
35}
36
37#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
38pub enum DataVaultClassification {
39    Hub,
40    Link,
41    Satellite,
42}
43
44#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
45#[serde(rename_all = "lowercase")]
46pub enum ModelingLevel {
47    Conceptual,
48    Logical,
49    Physical,
50}
51
52#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
53#[serde(rename_all = "PascalCase")]
54pub enum Cardinality {
55    OneToOne,
56    OneToMany,
57    ManyToOne,
58    ManyToMany,
59}
60
61#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
62#[serde(rename_all = "PascalCase")]
63pub enum RelationshipType {
64    DataFlow,
65    Dependency,
66    ForeignKey,
67    EtlTransformation,
68}