talos/api/os/api.proto
Andrew Rynhard 6efd6fbe08 chore: move gRPC API to public
In order for other projects to make use of our APIs, they must not
reside underneath the internal directory. This moves the protobuf
definitions to a top-level "api" directory and scopes them according to
their domain. This change also removes generated code from the gitignore
file so that users don't have to generate the code themseleves.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-09-19 08:55:13 -07:00

99 lines
2.5 KiB
Protocol Buffer

syntax = "proto3";
package proto;
option go_package = "proto";
option java_multiple_files = true;
option java_outer_classname = "ApiProto";
option java_package = "com.proto";
import "google/protobuf/empty.proto";
// The OSD service definition.
//
// OSD Service also implements all the API of Init Service
service OSD {
rpc Dmesg(google.protobuf.Empty) returns (Data);
rpc Kubeconfig(google.protobuf.Empty) returns (Data);
rpc Logs(LogsRequest) returns (stream Data);
rpc Processes(ProcessesRequest) returns (ProcessesReply);
rpc Restart(RestartRequest) returns (RestartReply);
rpc Stats(StatsRequest) returns (StatsReply);
rpc Top(google.protobuf.Empty) returns (TopReply);
rpc Version(google.protobuf.Empty) returns (Data);
}
enum ContainerDriver {
CONTAINERD = 0;
CRI = 1;
}
// The request message containing the containerd namespace.
message ProcessesRequest {
string namespace = 1;
// driver might be default "containerd" or "cri"
ContainerDriver driver = 2;
}
// The response message containing the requested processes.
message ProcessesReply { repeated Process processes = 1; }
// The response message containing the requested processes.
message Process {
string namespace = 1;
string id = 2;
string image = 3;
uint32 pid = 4;
string status = 5;
string pod_id = 6;
string name = 7;
}
// The request message containing the containerd namespace.
message StatsRequest {
string namespace = 1;
// driver might be default "containerd" or "cri"
ContainerDriver driver = 2;
}
// The response message containing the requested stats.
message StatsReply { repeated Stat stats = 1; }
// The response message containing the requested stat.
message Stat {
string namespace = 1;
string id = 2;
uint64 memory_usage = 4;
uint64 cpu_usage = 5;
string pod_id = 6;
string name = 7;
}
// The request message containing the process to restart.
message RestartRequest {
string namespace = 1;
string id = 2;
// driver might be default "containerd" or "cri"
ContainerDriver driver = 3;
}
// The response message containing the restart status.
message RestartReply {}
// The request message containing the process name.
message LogsRequest {
string namespace = 1;
string id = 2;
// driver might be default "containerd" or "cri"
ContainerDriver driver = 3;
}
// The response message containing the requested logs.
message Data { bytes bytes = 1; }
message TopRequest {}
message TopReply { ProcessList process_list = 1; }
message ProcessList { bytes bytes = 1; }