olivetin/OliveTin.proto

275 lines
5.2 KiB
Protocol Buffer

syntax = "proto3";
option go_package = "gen/grpc";
import "google/api/annotations.proto";
import "google/api/httpbody.proto";
message Action {
string id = 1;
string title = 2;
string icon = 3;
bool can_exec = 4;
repeated ActionArgument arguments = 5;
string popup_on_start = 6;
}
message ActionArgument {
string name = 1;
string title = 2;
string type = 3;
string default_value = 4;
repeated ActionArgumentChoice choices = 5;
string description = 6;
map<string, string> suggestions = 7;
}
message ActionArgumentChoice {
string value = 1;
string title = 2;
}
message Entity {
string title = 1;
string icon = 2;
repeated Action actions = 3;
}
message GetDashboardComponentsResponse {
string title = 1;
repeated Action actions = 2;
repeated Entity entities = 3;
repeated DashboardComponent dashboards = 4;
string authenticated_user = 5;
}
message GetDashboardComponentsRequest {}
message DashboardComponent {
string title = 1;
string type = 2;
repeated DashboardComponent contents = 3;
}
message StartActionRequest {
string action_id = 1;
repeated StartActionArgument arguments = 2;
string unique_tracking_id = 3;
}
message StartActionArgument {
string name = 1;
string value = 2;
}
message StartActionResponse {
string execution_tracking_id = 2;
}
message StartActionAndWaitRequest {
string action_id = 1;
}
message StartActionAndWaitResponse {
LogEntry log_entry = 1;
}
message StartActionByGetRequest {
string action_id = 1;
}
message StartActionByGetResponse {
string execution_tracking_id = 2;
}
message StartActionByGetAndWaitRequest {
string action_id = 1;
}
message StartActionByGetAndWaitResponse {
LogEntry log_entry = 1;
}
message GetLogsRequest{};
message LogEntry {
string datetime_started = 1;
string action_title = 2;
string stdout = 3;
string stderr = 4;
bool timed_out = 5;
int32 exit_code = 6;
string user = 7;
string user_class = 8;
string action_icon = 9;
repeated string tags = 10;
string execution_tracking_id = 11;
string datetime_finished = 12;
string action_id = 13;
bool execution_started = 14;
bool execution_finished = 15;
bool blocked = 16;
}
message GetLogsResponse {
repeated LogEntry logs = 1;
}
message ValidateArgumentTypeRequest {
string value = 1;
string type = 2;
}
message ValidateArgumentTypeResponse {
bool valid = 1;
string description = 2;
}
message WatchExecutionRequest {
string execution_tracking_id = 1;
}
message WatchExecutionUpdate {
string update = 1;
}
message ExecutionStatusRequest {
string execution_tracking_id = 1;
string action_id = 2;
}
message ExecutionStatusResponse {
LogEntry log_entry = 1;
}
message WhoAmIRequest {}
message WhoAmIResponse {
string authenticated_user = 1;
}
message SosReportRequest {}
message SosReportResponse {
string alert = 1;
}
message DumpVarsRequest {}
message DumpVarsResponse {
string alert = 1;
map<string, string> contents = 2;
}
message ActionEntityPair {
string action_title = 1;
string entity_prefix = 2;
}
message DumpPublicIdActionMapRequest {}
message DumpPublicIdActionMapResponse {
string alert = 1;
map<string, ActionEntityPair> contents = 2;
}
message GetReadyzRequest {}
message GetReadyzResponse {
string status = 1;
}
message EventConfigChanged {}
message EventExecutionFinished {
LogEntry log_entry = 1;
}
service OliveTinApiService {
rpc GetDashboardComponents(GetDashboardComponentsRequest) returns (GetDashboardComponentsResponse) {
option (google.api.http) = {
get: "/api/GetDashboardComponents"
};
}
rpc StartAction(StartActionRequest) returns (StartActionResponse) {
option (google.api.http) = {
post: "/api/StartAction"
body: "*"
};
}
rpc StartActionAndWait(StartActionAndWaitRequest) returns (StartActionAndWaitResponse) {
option (google.api.http) = {
post: "/api/StartActionAndWait"
body: "*"
};
}
rpc StartActionByGet(StartActionByGetRequest) returns (StartActionByGetResponse) {
option (google.api.http) = {
get: "/api/StartActionByGet/{action_id}"
};
}
rpc StartActionByGetAndWait(StartActionByGetAndWaitRequest) returns (StartActionByGetAndWaitResponse) {
option (google.api.http) = {
get: "/api/StartActionByGetAndWait/{action_id}"
};
}
rpc ExecutionStatus(ExecutionStatusRequest) returns (ExecutionStatusResponse) {
option (google.api.http) = {
post: "/api/ExecutionStatus"
body: "*"
};
}
rpc GetLogs(GetLogsRequest) returns (GetLogsResponse) {
option (google.api.http) = {
get: "/api/GetLogs"
};
}
rpc ValidateArgumentType(ValidateArgumentTypeRequest) returns (ValidateArgumentTypeResponse) {
option (google.api.http) = {
post: "/api/ValidateArgumentType"
body: "*"
};
}
rpc WhoAmI(WhoAmIRequest) returns (WhoAmIResponse) {
option (google.api.http) = {
get: "/api/WhoAmI"
};
}
rpc SosReport(SosReportRequest) returns (google.api.HttpBody) {
option (google.api.http) = {
get: "/api/sosreport"
};
}
rpc DumpVars(DumpVarsRequest) returns (DumpVarsResponse) {
option (google.api.http) = {
get: "/api/DumpVars"
};
}
rpc DumpPublicIdActionMap(DumpPublicIdActionMapRequest) returns (DumpPublicIdActionMapResponse) {
option (google.api.http) = {
get: "/api/DumpPublicActionMap"
};
}
rpc GetReadyz(GetReadyzRequest) returns (GetReadyzResponse) {
option (google.api.http) = {
get: "/api/readyz"
};
}
}