syntax = "proto3";
  

package importer;

import "google/protobuf/empty.proto";
//import "google/api/annotations.proto";


message DeviceInfo {
    string ip_address = 1;
    uint32 frequency = 2;
}

message EventList {
       string event_ip_address = 1;
        repeated string events = 2;
}


service device_management {
    rpc SendDeviceInfo(DeviceInfo) returns (google.protobuf.Empty) {}

    rpc SetFrequency(DeviceInfo) returns (google.protobuf.Empty) {}

    rpc GetEventList(DeviceInfo) returns (EventList) {}

    rpc SubsrcribeGivenEvents(EventList)  returns (google.protobuf.Empty) {}

    rpc UnSubsrcribeGivenEvents(EventList) returns (google.protobuf.Empty) {}
}



