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}
69
70/// Infrastructure type for Data Flow nodes and relationships
71///
72/// Comprehensive enumeration covering major cloud databases, container platforms,
73/// data warehouses, message queues, BI/analytics tools, and storage systems
74/// from AWS, Azure, and GCP.
75#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
76#[serde(rename_all = "PascalCase")]
77pub enum InfrastructureType {
78    // Traditional Databases
79    PostgreSQL,
80    MySQL,
81    Mssql,
82    Oracle,
83    Sqlite,
84    MariaDB,
85    // NoSQL Databases
86    DynamoDB,
87    Cassandra,
88    MongoDB,
89    Redis,
90    ElasticSearch,
91    CouchDB,
92    Neo4j,
93    // AWS Services
94    RdsPostgreSQL,
95    RdsMySQL,
96    RdsMariaDB,
97    RdsOracle,
98    RdsSqlServer,
99    Redshift,
100    Aurora,
101    DocumentDB,
102    Neptune,
103    ElastiCache,
104    S3,
105    Eks,
106    Ecs,
107    Lambda,
108    Kinesis,
109    Sqs,
110    Sns,
111    Glue,
112    Athena,
113    QuickSight,
114    // Azure Services
115    AzureSqlDatabase,
116    CosmosDB,
117    AzureSynapseAnalytics,
118    AzureDataLakeStorage,
119    AzureBlobStorage,
120    Aks,
121    Aci,
122    AzureFunctions,
123    EventHubs,
124    ServiceBus,
125    AzureDataFactory,
126    PowerBI,
127    // GCP Services
128    CloudSqlPostgreSQL,
129    CloudSqlMySQL,
130    CloudSqlSqlServer,
131    BigQuery,
132    CloudSpanner,
133    Firestore,
134    CloudStorage,
135    Gke,
136    CloudRun,
137    CloudFunctions,
138    PubSub,
139    Dataflow,
140    Looker,
141    // Message Queues
142    Kafka,
143    Pulsar,
144    RabbitMQ,
145    ActiveMQ,
146    // Container Platforms
147    Kubernetes,
148    Docker,
149    // Data Warehouses
150    Snowflake,
151    Databricks,
152    Teradata,
153    Vertica,
154    // BI/Analytics Tools
155    Tableau,
156    Qlik,
157    Metabase,
158    ApacheSuperset,
159    Grafana,
160    // Other Storage
161    Hdfs,
162    MinIO,
163}