67 lines
1.4 KiB
Protocol Buffer
67 lines
1.4 KiB
Protocol Buffer
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;
|
|
}
|