syntax = "proto3"; package profile; // The transporter service definition. service ProfileMgr { rpc Profile(ProfileInfo) returns (stream AckCheck) {} rpc CheckInitProfile(ProfileInfo) returns (stream AckCheck) {} rpc Analysis(AnalysisMessage) returns (stream AckCheck) {} rpc Tuning(ProfileInfo) returns (stream AckCheck) {} rpc ListWorkload(ProfileInfo) returns (stream ListMessage) {} rpc UpgradeProfile(ProfileInfo) returns (stream AckCheck) {} rpc InfoProfile(ProfileInfo) returns (stream ProfileInfo) {} rpc CheckActiveProfile(ProfileInfo) returns (stream AckCheck) {} rpc ProfileRollback(ProfileInfo) returns (stream AckCheck) {} rpc Charaterization(ProfileInfo) returns (stream AckCheck) {} rpc Collection(CollectFlag) returns (stream AckCheck) {} rpc Training(TrainMessage) returns (stream AckCheck) {} rpc Define(DefineMessage) returns (Ack) {} rpc Delete(DefineMessage) returns (Ack) {} rpc Update(DefineMessage) returns (Ack) {} rpc Schedule(ScheduleMessage) returns (stream AckCheck) {} } message ListMessage { string WorkloadType = 1; string ProfileNames = 2; string Active = 3; } message ProfileInfo { string Name = 1; bytes Content = 2; } message AnalysisMessage { string Name = 1; string Model = 2; } message Ack { string Status = 1; } message AckCheck { string Name = 1; string Status = 2; string Description = 3; } message ProfileLog { int64 Id = 1; string ProfileId = 2; string Timestamp = 3; } message CollectFlag { int64 Interval = 1; int64 Duration = 2; string Workload = 3; string OutputPath = 4; string Block = 5; string Network = 6; string Type = 7; } message TrainMessage { string DataPath = 1; string OutputPath = 2; } message DefineMessage { string WorkloadType = 1; string ProfileName = 2; bytes Content = 3; } message ScheduleMessage { string App = 1; string Type = 2; string Strategy = 3; }