syntax = "proto3"; package control; option go_package = "git.frostfs.info/TrueCloudLab/frostfs-s3-gw/pkg/service/control"; // `ControlService` provides an interface for internal work with the storage node. service ControlService { // Performs health check of the storage node. rpc HealthCheck (HealthCheckRequest) returns (HealthCheckResponse); rpc AddPolicy (AddPolicyRequest) returns (AddPolicyResponse); rpc PutPolicy (PutPolicyRequest) returns (PutPolicyResponse); rpc RemovePolicy (RemovePolicyRequest) returns (RemovePolicyResponse); } // Signature of some message. message Signature { // Public key used for signing. bytes key = 1 [json_name = "key"]; // Binary signature. bytes sign = 2 [json_name = "signature"]; } // Health check request. message HealthCheckRequest { message Body { } // Body of health check request message. Body body = 1; // Body signature. Signature signature = 2; } // Health check request. message HealthCheckResponse { // Health check response body message Body { // Health status of storage node application. HealthStatus health_status = 1; } // Body of health check response message. Body body = 1; Signature signature = 2; } // Health status of the storage node application. enum HealthStatus { // Undefined status, default value. HEALTH_STATUS_UNDEFINED = 0; // Storage node application is starting. STARTING = 1; // Storage node application is started and serves all services. READY = 2; // Storage node application is shutting down. SHUTTING_DOWN = 3; } // Add policy request. message AddPolicyRequest { message Body { // Namespace. string namespace = 1; // Chain rules. bytes chain = 2; } Body body = 1; // Body signature. Signature signature = 2; } // Add policy response. message AddPolicyResponse { message Body { } Body body = 1; Signature signature = 2; } // Put policy request. message PutPolicyRequest { message Body { // Namespace. string namespace = 1; // Chain rules. bytes chain = 2; } Body body = 1; // Body signature. Signature signature = 2; } // Put policy response. message PutPolicyResponse { message Body { } Body body = 1; Signature signature = 2; } // Add policy request. message RemovePolicyRequest { message Body { // Namespace. string namespace = 1; // Chain id to remove. string chainID = 2; } Body body = 1; // Body signature. Signature signature = 2; } // Add policy response. message RemovePolicyResponse { message Body { bool removed = 1; } Body body = 1; Signature signature = 2; }