//Example of topology syntax = "proto3"; package monitoring; import "context.proto"; service MonitoringService { rpc IncludeKpi (Kpi) returns (context.Empty) {} rpc MonitorKpi ( KpiDevice ) returns (context.Empty) {} rpc GetStreamKpi ( KpiId ) returns (stream Kpi) {} rpc GetInstantKpi ( KpiId ) returns ( Kpi) {} } message Kpi { KpiId kpi_id = 1; string timestamp = 2; string kpiDescription = 3; KpiValue kpi_value = 4; } message KpiId { context.Uuid kpi_id = 1; } message KpiDevice { KpiId kpi_id = 1; context.DeviceId device_id = 2; } message KpiList { repeated Kpi kpiList = 1; } message KpiValue { oneof value { uint32 intVal = 1; string stringVal = 2; bool boolVal = 3; } }