1010
1111class DatabaseType (str , Enum ):
1212 """Database type enumeration."""
13-
13+
1414 MYSQL = "mysql"
1515 POSTGRES = "postgres"
1616
1717
1818class TargetType (str , Enum ):
1919 """Target type enumeration."""
20-
20+
2121 BIGQUERY = "bigquery"
2222
2323
2424class SourceConfig (BaseModel ):
2525 """Source database configuration."""
26-
26+
2727 name : str
2828 type : DatabaseType
2929 host : str
@@ -51,7 +51,7 @@ def build_connection_string(self, dialect: str, default_port: int = 0) -> str:
5151
5252class BigQueryTargetConfig (BaseModel ):
5353 """BigQuery target configuration."""
54-
54+
5555 name : str
5656 type : TargetType = TargetType .BIGQUERY
5757 project_id : str = Field (
@@ -77,23 +77,23 @@ class BigQueryTargetConfig(BaseModel):
7777
7878class RuntimeParams (BaseModel ):
7979 """Runtime parameters for ingestion process."""
80-
80+
8181 retry_attempts : int = Field (ge = 1 , le = 10 , default = 3 )
8282 retry_delay_seconds : int = Field (ge = 1 , le = 3600 , default = 30 )
8383 chunk_size : int = Field (default = 10000 )
8484
8585
8686class SecretProvider (str , Enum ):
8787 """Secret provider enumeration."""
88-
88+
8989 GOOGLE_SECRET_MANAGER = "gcloud"
9090 # AWS_SECRET_MANAGER = "aws"
9191 # AZURE_KEY_VAULT = "azure"
9292
9393
9494class SecretConfig (BaseModel ):
9595 """Secret configuration."""
96-
96+
9797 provider : SecretProvider = Field (
9898 default = SecretProvider .GOOGLE_SECRET_MANAGER , description = "Secret Manager Provider"
9999 )
@@ -107,7 +107,7 @@ class SecretConfig(BaseModel):
107107
108108class Config (BaseModel ):
109109 """Main configuration class."""
110-
110+
111111 version : str
112112 params : RuntimeParams
113113 secrets : List [SecretConfig ]
0 commit comments