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); } // 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{} Body body = 1; Signature signature = 2; } message TickEpochResponse { message Body{} Body body = 1; Signature signature = 2; } message RemoveNodeRequest { message Body{ bytes key = 1; } Body body = 1; Signature signature = 2; } message RemoveNodeResponse { message Body{} Body body = 1; Signature signature = 2; }