206 lines
3.8 KiB
Protocol Buffer
206 lines
3.8 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package s3gw.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 PutPolicies (PutPoliciesRequest) returns (PutPoliciesResponse);
|
|
|
|
rpc RemovePolicies (RemovePoliciesRequest) returns (RemovePoliciesResponse);
|
|
|
|
rpc GetPolicy (GetPolicyRequest) returns (GetPolicyResponse);
|
|
|
|
rpc ListPolicies (ListPoliciesRequest) returns (ListPoliciesResponse);
|
|
}
|
|
|
|
// 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 response.
|
|
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;
|
|
}
|
|
|
|
// Policy target to store chains.
|
|
enum PolicyTarget {
|
|
// Undefined target, invalid to use.
|
|
TARGET_UNDEFINED = 0;
|
|
|
|
// Container target for bucket policies.
|
|
CONTAINER = 1;
|
|
|
|
// Namespace target for namespace policies.
|
|
NAMESPACE = 2;
|
|
|
|
// User target for namespace user policies.
|
|
USER = 3;
|
|
|
|
// Group target for namespace target policies.
|
|
GROUP = 4;
|
|
}
|
|
|
|
// Put policies request.
|
|
message PutPoliciesRequest {
|
|
message ChainData {
|
|
// Policy entity type.
|
|
PolicyTarget target = 1;
|
|
// Policy name.
|
|
string name = 2;
|
|
// Chain rules.
|
|
bytes chain = 3;
|
|
}
|
|
|
|
message Body {
|
|
repeated ChainData chainDatas = 1;
|
|
}
|
|
|
|
Body body = 1;
|
|
|
|
// Body signature.
|
|
Signature signature = 2;
|
|
}
|
|
|
|
// Put policies response.
|
|
message PutPoliciesResponse {
|
|
message Body {
|
|
}
|
|
|
|
Body body = 1;
|
|
|
|
Signature signature = 2;
|
|
}
|
|
|
|
// Remove policies request.
|
|
message RemovePoliciesRequest {
|
|
message ChainInfo {
|
|
// Policy entity type.
|
|
PolicyTarget target = 1;
|
|
// Policy name.
|
|
string name = 2;
|
|
// Chain id to remove.
|
|
bytes chainID = 3;
|
|
}
|
|
|
|
message Body {
|
|
repeated ChainInfo chainInfos = 1;
|
|
}
|
|
|
|
Body body = 1;
|
|
|
|
// Body signature.
|
|
Signature signature = 2;
|
|
}
|
|
|
|
// Remove policies response.
|
|
message RemovePoliciesResponse {
|
|
message Body {
|
|
}
|
|
|
|
Body body = 1;
|
|
|
|
Signature signature = 2;
|
|
}
|
|
|
|
// Get policy request.
|
|
message GetPolicyRequest {
|
|
message Body {
|
|
// Policy entity type.
|
|
PolicyTarget target = 1;
|
|
// Policy name.
|
|
string name = 2;
|
|
// Chain id to get.
|
|
bytes chainID = 3;
|
|
}
|
|
|
|
Body body = 1;
|
|
|
|
// Body signature.
|
|
Signature signature = 2;
|
|
}
|
|
|
|
// Get policy response.
|
|
message GetPolicyResponse {
|
|
message Body {
|
|
// Chain rules.
|
|
bytes chain = 1;
|
|
}
|
|
|
|
Body body = 1;
|
|
|
|
Signature signature = 2;
|
|
}
|
|
|
|
// List policies request.
|
|
message ListPoliciesRequest {
|
|
message Body {
|
|
// Policy entity type.
|
|
PolicyTarget target = 1;
|
|
// Policy name.
|
|
string name = 2;
|
|
}
|
|
|
|
Body body = 1;
|
|
|
|
// Body signature.
|
|
Signature signature = 2;
|
|
}
|
|
|
|
// List policies response.
|
|
message ListPoliciesResponse {
|
|
message Body {
|
|
// Chain ids.
|
|
repeated bytes chainIDs = 1;
|
|
}
|
|
|
|
Body body = 1;
|
|
|
|
Signature signature = 2;
|
|
}
|