syntax = "proto3";
package ubii.sessions;

import "devices/topicMux.proto";
import "devices/topicDemux.proto";

message TopicInputMapping {
    string input_name = 1;
    oneof topic_source {
        string topic = 2;
        ubii.devices.TopicMux topic_mux = 3;
    }
}

message TopicInputMappingList {
    repeated ubii.sessions.TopicInputMapping elements = 1;
}


message TopicOutputMapping {
    string output_name = 1;
    oneof topic_destination {
        string topic = 2;
        ubii.devices.TopicDemux topic_demux = 3;
    }
}

message TopicOutputMappingList {
    repeated ubii.sessions.TopicOutputMapping elements = 1;
}

message IOMapping {
    string processing_module_id = 1;
    repeated ubii.sessions.TopicInputMapping input_mappings = 2;
    repeated ubii.sessions.TopicOutputMapping output_mappings = 3;
    string processing_module_name = 4;
}

message IOMappingList {
    repeated ubii.sessions.IOMapping elements = 1;
}