1
+ use std:: collections:: HashMap ;
2
+
1
3
use etl_config:: SerializableSecretString ;
2
4
use etl_config:: shared:: DestinationConfig ;
3
5
use secrecy:: ExposeSecret ;
@@ -34,10 +36,10 @@ pub enum FullApiDestinationConfig {
34
36
DeltaLake {
35
37
#[ schema( example = "s3://my-bucket/my-path" ) ]
36
38
base_uri : String ,
37
- #[ schema( example = "s3: //my-bucket/my-path " ) ]
38
- warehouse : Option < String > ,
39
- #[ schema( example = "[\" date\" ]" ) ]
40
- partition_columns : Option < Vec < String > > ,
39
+ #[ schema( example = "{ \" aws_access_key_id \" : \" https: //my-endpoint.com \" } " ) ]
40
+ storage_options : Option < HashMap < String , String > > ,
41
+ #[ schema( example = "{ \" my_table \" : [\" date\" ]} " ) ]
42
+ partition_columns : Option < HashMap < String , Vec < String > > > ,
41
43
#[ schema( example = 100 ) ]
42
44
optimize_after_commits : Option < u64 > ,
43
45
} ,
@@ -62,12 +64,12 @@ impl From<StoredDestinationConfig> for FullApiDestinationConfig {
62
64
} ,
63
65
StoredDestinationConfig :: DeltaLake {
64
66
base_uri,
65
- warehouse ,
67
+ storage_options ,
66
68
partition_columns,
67
69
optimize_after_commits,
68
70
} => Self :: DeltaLake {
69
71
base_uri,
70
- warehouse ,
72
+ storage_options ,
71
73
partition_columns,
72
74
optimize_after_commits,
73
75
} ,
@@ -88,8 +90,8 @@ pub enum StoredDestinationConfig {
88
90
} ,
89
91
DeltaLake {
90
92
base_uri : String ,
91
- warehouse : Option < String > ,
92
- partition_columns : Option < Vec < String > > ,
93
+ storage_options : Option < HashMap < String , String > > ,
94
+ partition_columns : Option < HashMap < String , Vec < String > > > ,
93
95
optimize_after_commits : Option < u64 > ,
94
96
} ,
95
97
}
@@ -113,12 +115,12 @@ impl StoredDestinationConfig {
113
115
} ,
114
116
Self :: DeltaLake {
115
117
base_uri,
116
- warehouse ,
118
+ storage_options ,
117
119
partition_columns,
118
120
optimize_after_commits,
119
121
} => DestinationConfig :: DeltaLake {
120
122
base_uri,
121
- warehouse ,
123
+ storage_options ,
122
124
partition_columns,
123
125
optimize_after_commits,
124
126
} ,
@@ -146,12 +148,12 @@ impl From<FullApiDestinationConfig> for StoredDestinationConfig {
146
148
} ,
147
149
FullApiDestinationConfig :: DeltaLake {
148
150
base_uri,
149
- warehouse ,
151
+ storage_options ,
150
152
partition_columns,
151
153
optimize_after_commits,
152
154
} => Self :: DeltaLake {
153
155
base_uri,
154
- warehouse ,
156
+ storage_options ,
155
157
partition_columns,
156
158
optimize_after_commits,
157
159
} ,
@@ -188,12 +190,12 @@ impl Encrypt<EncryptedStoredDestinationConfig> for StoredDestinationConfig {
188
190
}
189
191
Self :: DeltaLake {
190
192
base_uri,
191
- warehouse ,
193
+ storage_options ,
192
194
partition_columns,
193
195
optimize_after_commits,
194
196
} => Ok ( EncryptedStoredDestinationConfig :: DeltaLake {
195
197
base_uri,
196
- warehouse ,
198
+ storage_options ,
197
199
partition_columns,
198
200
optimize_after_commits,
199
201
} ) ,
@@ -215,8 +217,8 @@ pub enum EncryptedStoredDestinationConfig {
215
217
} ,
216
218
DeltaLake {
217
219
base_uri : String ,
218
- warehouse : Option < String > ,
219
- partition_columns : Option < Vec < String > > ,
220
+ storage_options : Option < HashMap < String , String > > ,
221
+ partition_columns : Option < HashMap < String , Vec < String > > > ,
220
222
optimize_after_commits : Option < u64 > ,
221
223
} ,
222
224
}
@@ -252,12 +254,12 @@ impl Decrypt<StoredDestinationConfig> for EncryptedStoredDestinationConfig {
252
254
}
253
255
Self :: DeltaLake {
254
256
base_uri,
255
- warehouse ,
257
+ storage_options ,
256
258
partition_columns,
257
259
optimize_after_commits,
258
260
} => Ok ( StoredDestinationConfig :: DeltaLake {
259
261
base_uri,
260
- warehouse ,
262
+ storage_options ,
261
263
partition_columns,
262
264
optimize_after_commits,
263
265
} ) ,
0 commit comments