@@ -525,6 +525,61 @@ message Logging {
525525 IamAuth auth = 2 ;
526526}
527527
528+ // TIcebergWarehouse represents settings specific to iceberg warehouse
529+ message IcebergWarehouse {
530+ // Iceberg data located in a S3 storage
531+ message S3 {
532+ // Bucket in a storage
533+ // e.g., s3a://iceberg-bucket
534+ optional string bucket = 1 [(Ydb.length ).le = 1024 ];
535+
536+ // Path in a bucket
537+ // e.g., /storage
538+ optional string path = 2 [(Ydb.length ).le = 1024 ];
539+ }
540+
541+ oneof payload {
542+ S3 s3 = 1 ;
543+ }
544+ }
545+
546+ // TIcebergCatalog represents settings specific to iceberg catalog
547+ message IcebergCatalog {
548+ // Hadoop Iceberg Catalog which is built on top of a storage
549+ message Hadoop {
550+ // Directory where iceberg tables are located. In case of a S3 storage the location
551+ // will be "S3.uri + S3.path + Hadoop.path", e.g., if "Hadoop.path" is equal "warehouse" then
552+ // the final location will be "s3a://iceberg-bucket/storage/warehouse"
553+ optional string directory = 1 [(Ydb.length ).le = 1024 ];
554+ }
555+
556+ // Hive Iceberg Catalog which is based on a Hive Metastore
557+ message HiveMetastore {
558+ // Location of a hive metastore
559+ // e.g., thrift://host:9083/
560+ optional string uri = 1 [(Ydb.length ).le = 1024 ];
561+
562+ // Hive metastore database which holds iceberg namespace
563+ optional string database_name = 2 [(Ydb.length ).le = 1024 ];
564+ }
565+
566+ oneof payload {
567+ Hadoop hadoop = 1 ;
568+ HiveMetastore hive_metastore = 2 ;
569+ }
570+ }
571+
572+ message Iceberg {
573+ // credentials to access a warehouse
574+ IamAuth warehouse_auth = 2 ;
575+
576+ // warehouse config
577+ IcebergWarehouse warehouse = 3 ;
578+
579+ // catalog config
580+ IcebergCatalog catalog = 4 ;
581+ }
582+
528583message ConnectionSetting {
529584 enum ConnectionType {
530585 CONNECTION_TYPE_UNSPECIFIED = 0 ;
@@ -537,6 +592,7 @@ message ConnectionSetting {
537592 GREENPLUM_CLUSTER = 7 ;
538593 MYSQL_CLUSTER = 8 ;
539594 LOGGING = 9 ;
595+ ICEBERG = 10 ;
540596 }
541597
542598 oneof connection {
@@ -549,6 +605,7 @@ message ConnectionSetting {
549605 GreenplumCluster greenplum_cluster = 7 ;
550606 MySQLCluster mysql_cluster = 8 ;
551607 Logging logging = 9 ;
608+ Iceberg iceberg = 10 ;
552609 }
553610}
554611
0 commit comments