syntax = "proto3";

package nominal.ingest.v2;

import "buf/validate/validate.proto";
import "nominal/protos/gen/v1/alias.proto";
import "nominal/protos/ingest/v2/common.proto";

option java_multiple_files = true;
option java_package = "io.nominal.ingest.v2";

// Dataset-backed point cloud ingest work.
message PointCloudIngestItem {
  IngestSource source = 1 [(buf.validate.field).required = true];
  PointCloudIngestOptions ingest = 2 [(buf.validate.field).required = true];
}

message PointCloudIngestOptions {
  optional PointCloudSensorMetadata sensor_metadata = 1;
  string channel = 2 [
    (buf.validate.field).required = true,
    (nominal.gen.v1.alias) = {java_name: "io.nominal.api.Channel"}
  ];
}

// Placeholder for point-cloud sensor metadata until the spatial metadata proto is promoted.
message PointCloudSensorMetadata {
  map<string, string> properties = 1;
}
