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; } 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; } 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; } 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 contents = 2; } message ActionEntityPair { string action_title = 1; string entity_prefix = 2; } message DumpPublicIdActionMapRequest {} message DumpPublicIdActionMapResponse { string alert = 1; map contents = 2; } message GetReadyzRequest {} message GetReadyzResponse { string status = 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" }; } }