use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum DatabaseType {
DatabricksDelta,
DatabricksIceberg,
AwsGlue,
DatabricksLakebase,
Postgres,
Mysql,
SqlServer,
Dynamodb,
Cassandra,
Kafka,
Pulsar,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum MedallionLayer {
Bronze,
Silver,
Gold,
Operational,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum SCDPattern {
Type1,
Type2,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum DataVaultClassification {
Hub,
Link,
Satellite,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum ModelingLevel {
Conceptual,
Logical,
Physical,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum Cardinality {
OneToOne,
OneToMany,
ManyToOne,
ManyToMany,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum EndpointCardinality {
ZeroOrOne,
ExactlyOne,
ZeroOrMany,
OneOrMany,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum FlowDirection {
SourceToTarget,
TargetToSource,
Bidirectional,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum RelationshipType {
DataFlow,
Dependency,
ForeignKey,
#[serde(rename = "etl")]
EtlTransformation,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum AuthMethod {
OAuth2,
ApiKey,
IamRole,
Certificate,
BasicAuth,
Saml,
Oidc,
Kerberos,
AwsSignatureV4,
GcpServiceAccount,
AzureActiveDirectory,
Mtls,
None,
Custom,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub enum EnvironmentStatus {
#[default]
Active,
Deprecated,
Maintenance,
Inactive,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum InfrastructureType {
PostgreSQL,
MySQL,
Mssql,
Oracle,
Sqlite,
MariaDB,
DynamoDB,
Cassandra,
MongoDB,
Redis,
ElasticSearch,
CouchDB,
Neo4j,
RdsPostgreSQL,
RdsMySQL,
RdsMariaDB,
RdsOracle,
RdsSqlServer,
Redshift,
Aurora,
DocumentDB,
Neptune,
ElastiCache,
S3,
Eks,
Ecs,
Lambda,
Kinesis,
Sqs,
Sns,
Glue,
Athena,
QuickSight,
AzureSqlDatabase,
CosmosDB,
AzureSynapseAnalytics,
AzureDataLakeStorage,
AzureBlobStorage,
Aks,
Aci,
AzureFunctions,
EventHubs,
ServiceBus,
AzureDataFactory,
PowerBI,
CloudSqlPostgreSQL,
CloudSqlMySQL,
CloudSqlSqlServer,
BigQuery,
CloudSpanner,
Firestore,
CloudStorage,
Gke,
CloudRun,
CloudFunctions,
PubSub,
Dataflow,
Looker,
Kafka,
Pulsar,
RabbitMQ,
ActiveMQ,
Kubernetes,
Docker,
Snowflake,
Databricks,
Teradata,
Vertica,
Tableau,
Qlik,
Metabase,
ApacheSuperset,
Grafana,
Hdfs,
MinIO,
}