mirror of
https://github.com/siderolabs/talos.git
synced 2025-08-25 16:41:12 +02:00
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>
183 lines
4.4 KiB
Protocol Buffer
183 lines
4.4 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";
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
// The Init service definition.
|
|
service Init {
|
|
rpc CopyOut(CopyOutRequest) returns (stream StreamingData);
|
|
rpc DF(google.protobuf.Empty) returns (DFReply);
|
|
rpc LS(LSRequest) returns (stream FileInfo);
|
|
rpc Reboot(google.protobuf.Empty) returns (RebootReply);
|
|
rpc Reset(google.protobuf.Empty) returns (ResetReply);
|
|
rpc Shutdown(google.protobuf.Empty) returns (ShutdownReply);
|
|
rpc Upgrade(UpgradeRequest) returns (UpgradeReply);
|
|
rpc ServiceList(google.protobuf.Empty) returns (ServiceListReply);
|
|
rpc ServiceStart(ServiceStartRequest) returns (ServiceStartReply);
|
|
rpc ServiceStop(ServiceStopRequest) returns (ServiceStopReply);
|
|
rpc ServiceRestart(ServiceRestartRequest) returns (ServiceRestartReply);
|
|
|
|
rpc Start(StartRequest) returns (StartReply) {
|
|
option deprecated = true;
|
|
};
|
|
rpc Stop(StopRequest) returns (StopReply) {
|
|
option deprecated = true;
|
|
};
|
|
}
|
|
|
|
// The response message containing the reboot status.
|
|
message RebootReply {}
|
|
|
|
// The response message containing the restart status.
|
|
message ResetReply {}
|
|
|
|
// The response message containing the shutdown status.
|
|
message ShutdownReply {}
|
|
|
|
message UpgradeRequest {
|
|
string image = 1;
|
|
}
|
|
|
|
message UpgradeReply {
|
|
string ack = 1;
|
|
}
|
|
|
|
message ServiceListReply {
|
|
repeated ServiceInfo services = 1;
|
|
}
|
|
|
|
message ServiceInfo {
|
|
string id = 1;
|
|
string state = 2;
|
|
ServiceEvents events = 3;
|
|
ServiceHealth health = 4;
|
|
}
|
|
|
|
message ServiceEvents {
|
|
repeated ServiceEvent events = 1;
|
|
}
|
|
|
|
message ServiceEvent {
|
|
string msg = 1;
|
|
string state = 2;
|
|
google.protobuf.Timestamp ts = 3;
|
|
}
|
|
|
|
message ServiceHealth {
|
|
bool unknown = 1;
|
|
bool healthy = 2;
|
|
string last_message = 3;
|
|
google.protobuf.Timestamp last_change = 4;
|
|
}
|
|
|
|
message ServiceStartRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message ServiceStartReply {
|
|
string resp = 1;
|
|
}
|
|
|
|
message ServiceStopRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message ServiceStopReply {
|
|
string resp = 1;
|
|
}
|
|
|
|
message ServiceRestartRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message ServiceRestartReply {
|
|
string resp = 1;
|
|
}
|
|
|
|
message StartRequest {
|
|
option deprecated = true;
|
|
string id = 1;
|
|
}
|
|
|
|
message StartReply {
|
|
option deprecated = true;
|
|
string resp = 1;
|
|
}
|
|
|
|
message StopRequest {
|
|
option deprecated = true;
|
|
string id = 1;
|
|
}
|
|
|
|
message StopReply {
|
|
option deprecated = true;
|
|
string resp = 1;
|
|
}
|
|
|
|
// StreamingData is used to stream back responses
|
|
message StreamingData {
|
|
bytes bytes = 1;
|
|
string errors = 2;
|
|
}
|
|
|
|
// CopyOutRequest describes a request to copy data out of Talos node
|
|
//
|
|
// CopyOut produces .tar.gz archive which is streamed back to the caller
|
|
message CopyOutRequest {
|
|
// Root path to start copying data out, it might be either a file or directory
|
|
string root_path = 1;
|
|
}
|
|
|
|
// LSRequest describes a request to list the contents of a directory
|
|
message LSRequest {
|
|
// Root indicates the root directory for the list. If not indicated, '/' is
|
|
// presumed.
|
|
string root = 1;
|
|
// Recurse indicates that subdirectories should be recursed.
|
|
bool recurse = 2;
|
|
// RecursionDepth indicates how many levels of subdirectories should be
|
|
// recursed. The default (0) indicates that no limit should be enforced.
|
|
int32 recursion_depth = 3;
|
|
}
|
|
|
|
// FileInfo describes a file or directory's information
|
|
message FileInfo {
|
|
// Name is the name (including prefixed path) of the file or directory
|
|
string name = 1;
|
|
// Size indicates the number of bytes contained within the file
|
|
int64 size = 2;
|
|
// Mode is the bitmap of UNIX mode/permission flags of the file
|
|
uint32 mode = 3;
|
|
// Modified indicates the UNIX timestamp at which the file was last modified
|
|
int64 modified = 4; // TODO: unix timestamp or include proto's Date type
|
|
// IsDir indicates that the file is a directory
|
|
bool is_dir = 5;
|
|
// Error describes any error encountered while trying to read the file
|
|
// information.
|
|
string error = 6;
|
|
// Link is filled with symlink target
|
|
string link = 7;
|
|
// RelativeName is the name of the file or directory relative to the RootPath
|
|
string relative_name = 8;
|
|
}
|
|
|
|
// The response message containing the requested df stats.
|
|
message DFReply {
|
|
repeated DFStat stats = 1;
|
|
}
|
|
|
|
// The response message containing the requested processes.
|
|
message DFStat {
|
|
string filesystem = 1;
|
|
uint64 size = 2;
|
|
uint64 available = 3;
|
|
string mounted_on = 4;
|
|
}
|