syntax = "proto3";
package device;

import "context.proto";
import "monitoring.proto";

service DeviceService {
  rpc AddDevice       (context.Device    ) returns (context.DeviceId    ) {}
  rpc ConfigureDevice (context.Device    ) returns (context.DeviceId    ) {}
  rpc DeleteDevice    (context.DeviceId  ) returns (context.Empty       ) {}
  rpc GetInitialConfig(context.DeviceId  ) returns (context.DeviceConfig) {}
  rpc MonitorDeviceKpi(MonitoringSettings) returns (context.Empty       ) {}
}

message MonitoringSettings {
  monitoring.KpiId kpi_id = 1;
  monitoring.KpiDescriptor kpi_descriptor = 2;
  float sampling_duration_s = 3;
  float sampling_interval_s = 4;
}
