frostfs-node/pkg/services/control/ir/service.proto

112 lines
2.6 KiB
Protocol Buffer
Raw Permalink Normal View History

syntax = "proto3";
package ircontrol;
import "pkg/services/control/ir/types.proto";
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/services/ir/control";
// `ControlService` provides an interface for internal work with the Inner Ring node.
service ControlService {
// Performs health check of the IR node.
rpc HealthCheck (HealthCheckRequest) returns (HealthCheckResponse);
// Forces a new epoch to be signaled by the IR node with high probability.
rpc TickEpoch (TickEpochRequest) returns (TickEpochResponse);
// Forces a node removal to be signaled by the IR node with high probability.
rpc RemoveNode (RemoveNodeRequest) returns (RemoveNodeResponse);
// Forces a container removal to be signaled by the IR node with high probability.
rpc RemoveContainer(RemoveContainerRequest) returns (RemoveContainerResponse);
}
// Health check request.
message HealthCheckRequest {
// Health check request body.
message Body {}
// Body of health check request message.
Body body = 1;
// Body signature.
// Should be signed by node key or one of
// the keys configured by the node.
Signature signature = 2;
}
// Health check response.
message HealthCheckResponse {
// Health check response body
message Body {
// Health status of IR node application.
HealthStatus health_status = 1;
}
// Body of health check response message.
Body body = 1;
// Body signature.
Signature signature = 2;
}
message TickEpochRequest {
message Body{
// Valid until block value override.
uint32 vub = 1;
}
Body body = 1;
Signature signature = 2;
}
message TickEpochResponse {
message Body{
// Valid until block value for transaction.
uint32 vub = 1;
}
Body body = 1;
Signature signature = 2;
}
message RemoveNodeRequest {
message Body{
bytes key = 1;
// Valid until block value override.
uint32 vub = 2;
}
Body body = 1;
Signature signature = 2;
}
message RemoveNodeResponse {
message Body{
// Valid until block value for transaction.
uint32 vub = 1;
}
Body body = 1;
Signature signature = 2;
}
message RemoveContainerRequest {
message Body{
bytes container_id = 1;
bytes owner = 2;
// Valid until block value override.
uint32 vub = 3;
}
Body body = 1;
Signature signature = 2;
}
message RemoveContainerResponse {
message Body{
// Valid until block value for transaction.
uint32 vub = 1;
}
Body body = 1;
Signature signature = 2;
}