syntax = "proto3"; package proto; import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; // The Init service definition. service Init { rpc Reboot(google.protobuf.Empty) returns (RebootReply) {} rpc Shutdown(google.protobuf.Empty) returns (ShutdownReply) {} rpc Upgrade(UpgradeRequest) returns (UpgradeReply) {} rpc ServiceList(google.protobuf.Empty) returns (ServiceListReply) {} } // The response message containing the reboot status. message RebootReply {} // The response message containing the shutdown status. message ShutdownReply {} message UpgradeRequest { string url = 1; } message UpgradeReply { string ack = 1; } message ServiceListReply { repeated ServiceInfo services = 1; } message ServiceInfo { string id = 1; string state = 2; ServiceEvents events = 3; ServiceHealth health = 4; } message ServiceEvents { repeated ServiceEvent events = 1; } message ServiceEvent { string msg = 1; string state = 2; google.protobuf.Timestamp ts = 3; } message ServiceHealth { bool unknown = 1; bool healthy = 2; string lastMessage = 3; google.protobuf.Timestamp lastChange = 4; }