syntax = "proto3";

package nominal.iceberg.v1;

import "buf/validate/validate.proto";

option java_multiple_files = true;
option java_package = "io.nominal.iceberg.v1";

// Shared Iceberg table identity primitives. Used by the Iceberg compaction
// service, the WAL committer, and any other proto in this package that needs
// to reference an Iceberg table.

message Namespace {
  repeated string levels = 1 [(buf.validate.field).repeated.min_items = 1];
}

message TableName {
  string name = 1 [(buf.validate.field).string.min_len = 1];
}

message TableTarget {
  Namespace namespace = 1 [(buf.validate.field).required = true];
  TableName table_name = 2 [(buf.validate.field).required = true];
}
