@@ -20,7 +20,8 @@ export type ConnectionData =
2020 | ConnectionPostgres
2121 | ConnectionClickhouse
2222 | ConnectionMySql
23- | ConnectionMsSql ;
23+ | ConnectionMsSql
24+ | ConnectionIceberg ;
2425
2526export type ConnectionBucketStyle = 'domain' | 'path' ;
2627
@@ -30,10 +31,21 @@ export type ConnectionSambaProtocol = 'SMB' | 'NetBIOS';
3031
3132export type ConnectionSambaAuthType = 'NTLMv1' | 'NTLMv2' ;
3233
34+ export type ConnectionIcebergS3AccessDelegation = 'vended-credentials' | 'remote-signing' ;
35+
36+ export enum ConnectionIcebergConnectionType {
37+ ICEBERG_REST_S3_DIRECT = 'iceberg_rest_s3_direct' ,
38+ ICEBERG_REST_S3_DELEGATED = 'iceberg_rest_s3_delegated' ,
39+ }
40+
3341export enum ConnectionAuthType {
3442 BASIC = 'basic' ,
3543 S3 = 's3' ,
3644 SAMBA = 'samba' ,
45+ ICEBERG_REST_BEARER = 'iceberg_rest_bearer' ,
46+ ICEBERG_REST_OAUTH2_CLIENT_CREDENTIALS = 'iceberg_rest_oauth2_client_credentials' ,
47+ ICEBERG_REST_BEARER_S3_BASIC = 'iceberg_rest_bearer_s3_basic' ,
48+ ICEBERG_REST_OAUTH2_CLIENT_CREDENTIALS_S3_BASIC = 'iceberg_rest_oauth2_client_credentials_s3_basic' ,
3749}
3850
3951interface ConnectionAuthBasic {
@@ -63,6 +75,68 @@ export interface ConnectionHive {
6375 } ;
6476}
6577
78+ export interface ConnectionIcebergRestS3Direct {
79+ type : ConnectionIcebergConnectionType . ICEBERG_REST_S3_DIRECT ;
80+ rest_catalog_url : string ;
81+ s3_warehouse_path : string ;
82+ s3_host : string ;
83+ s3_bucket : string ;
84+ s3_bucket_style : ConnectionBucketStyle ;
85+ s3_port : number | null ;
86+ s3_region : string ;
87+ s3_protocol : ConnectionProtocol ;
88+ }
89+
90+ export interface ConnectionIcebergRestS3Delegated {
91+ type : ConnectionIcebergConnectionType . ICEBERG_REST_S3_DELEGATED ;
92+ rest_catalog_url : string ;
93+ s3_warehouse_name : string | null ;
94+ s3_access_delegation : ConnectionIcebergS3AccessDelegation ;
95+ }
96+
97+ export interface ConnectionIcebergRestBearer {
98+ type : ConnectionAuthType . ICEBERG_REST_BEARER ;
99+ rest_catalog_token ?: string ;
100+ }
101+
102+ export interface ConnectionIcebergRestBearerS3Basic {
103+ type : ConnectionAuthType . ICEBERG_REST_BEARER_S3_BASIC ;
104+ rest_catalog_token ?: string ;
105+ s3_access_key : string ;
106+ s3_secret_key ?: string ;
107+ }
108+
109+ export interface ConnectionIcebergRestClientCredentials {
110+ type : ConnectionAuthType . ICEBERG_REST_OAUTH2_CLIENT_CREDENTIALS ;
111+ rest_catalog_oauth2_client_id : string ;
112+ rest_catalog_oauth2_scopes : string [ ] ;
113+ rest_catalog_oauth2_resource : string | null ;
114+ rest_catalog_oauth2_audience : string | null ;
115+ rest_catalog_oauth2_token_endpoint : string | null ;
116+ }
117+
118+ export interface ConnectionIcebergRestClientCredentialsS3Basic {
119+ type : ConnectionAuthType . ICEBERG_REST_OAUTH2_CLIENT_CREDENTIALS_S3_BASIC ;
120+ rest_catalog_oauth2_client_id : string ;
121+ rest_catalog_oauth2_client_secret ?: string ;
122+ rest_catalog_oauth2_scopes : string [ ] ;
123+ rest_catalog_oauth2_resource : string | null ;
124+ rest_catalog_oauth2_audience : string | null ;
125+ rest_catalog_oauth2_token_endpoint : string | null ;
126+ s3_access_key : string ;
127+ s3_secret_key ?: string ;
128+ }
129+
130+ export interface ConnectionIceberg {
131+ type : ConnectionType . ICEBERG ;
132+ auth_data :
133+ | ConnectionIcebergRestBearer
134+ | ConnectionIcebergRestClientCredentials
135+ | ConnectionIcebergRestBearerS3Basic
136+ | ConnectionIcebergRestClientCredentialsS3Basic ;
137+ connection_data : ConnectionIcebergRestS3Direct | ConnectionIcebergRestS3Delegated ;
138+ }
139+
66140export interface ConnectionHdfs {
67141 type : ConnectionType . HDFS ;
68142 auth_data : ConnectionAuthBasic ;
0 commit comments