syntax = "proto3"; package homelab.v1; option go_package = "pwa-homelab-mon/gen/homelab/v1;homelabv1"; message Item { string name = 1; string data = 2; // monitor: text | percentage string value = 3; // monitor: last output int32 args = 4; // exec: arg count repeated string arg_types = 5; // exec: text | number per arg } message Link { string name = 1; string url = 2; } message ListContentRequest {} message ListContentResponse { repeated Link links = 1; repeated Item monitors = 2; repeated Item exec = 3; } message DocMeta { string name = 1; string hash = 2; // sha256 hex of content } message ListDocsRequest {} message ListDocsResponse { repeated DocMeta docs = 1; } message GetDocRequest { string name = 1; } message GetDocResponse { string content = 1; } message SaveDocRequest { string name = 1; string content = 2; } message SaveDocResponse { string hash = 1; } service HomelabService { rpc ListContent(ListContentRequest) returns (ListContentResponse); rpc ListDocs(ListDocsRequest) returns (ListDocsResponse); rpc GetDoc(GetDocRequest) returns (GetDocResponse); rpc SaveDoc(SaveDocRequest) returns (SaveDocResponse); rpc RunScript(RunScriptRequest) returns (RunScriptResponse); } message RunScriptRequest { string name = 1; repeated string args = 2; } message RunScriptResponse { string output = 1; }