syntax = "proto3"; option go_package = "proto"; package proto; service NezhaService { rpc ReportSystemState(State)returns(Receipt){} rpc ReportSystemInfo(Host)returns(Receipt){} rpc ReportTask(TaskResult)returns(Receipt){} rpc RequestTask(Host)returns(stream Task){} } message Host { string platform = 1; string platform_version = 2; repeated string cpu = 3; uint64 mem_total = 4; uint64 disk_total = 5; uint64 swap_total = 6; string arch = 7; string virtualization = 8; uint64 boot_time = 9; string ip = 10; string country_code = 11; string version = 12; } message State { double cpu = 1; uint64 mem_used = 3; uint64 swap_used = 4; uint64 disk_used = 5; uint64 net_in_transfer = 6; uint64 net_out_transfer = 7; uint64 net_in_speed = 8; uint64 net_out_speed = 9; uint64 uptime = 10; } message Task { uint64 id = 1; uint64 type = 2; string data = 3; } message TaskResult { uint64 id = 1; uint64 type = 2; float delay = 3; string data = 4; bool successful = 5; } message Receipt{ bool proced = 1; }