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; }