2024-04-23 19:18:22 +00:00
|
|
|
syntax = "proto3";
|
|
|
|
|
|
|
|
package frostfs.v2.apemanager;
|
|
|
|
|
2024-05-27 14:44:56 +00:00
|
|
|
import "ape/types.proto";
|
2024-04-23 19:18:22 +00:00
|
|
|
import "session/types.proto";
|
|
|
|
|
|
|
|
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/apemanager/grpc;apemanager";
|
|
|
|
|
|
|
|
// `APEManagerService` provides API to manage rule chains within sidechain's
|
|
|
|
// `Policy` smart contract.
|
|
|
|
service APEManagerService {
|
|
|
|
// Add a rule chain for a specific target to `Policy` smart contract.
|
|
|
|
//
|
|
|
|
// Statuses:
|
|
|
|
// - **OK** (0, SECTION_SUCCESS): \
|
|
|
|
// the chain has been successfully added;
|
|
|
|
// - Common failures (SECTION_FAILURE_COMMON);
|
|
|
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
|
|
|
// container (as target) not found;
|
|
|
|
// - **APE_MANAGER_ACCESS_DENIED** (5120, SECTION_APE_MANAGER): \
|
|
|
|
// the operation is denied by the service.
|
|
|
|
rpc AddChain(AddChainRequest) returns (AddChainResponse);
|
|
|
|
|
|
|
|
// Remove a rule chain for a specific target from `Policy` smart contract.
|
|
|
|
// RemoveChain is an idempotent operation: removal of non-existing rule chain
|
|
|
|
// also means success.
|
|
|
|
//
|
|
|
|
// Statuses:
|
|
|
|
// - **OK** (0, SECTION_SUCCESS): \
|
|
|
|
// the chain has been successfully removed;
|
|
|
|
// - Common failures (SECTION_FAILURE_COMMON);
|
|
|
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
|
|
|
// container (as target) not found;
|
|
|
|
// - **APE_MANAGER_ACCESS_DENIED** (5120, SECTION_APE_MANAGER): \
|
|
|
|
// the operation is denied by the service.
|
|
|
|
rpc RemoveChain(RemoveChainRequest) returns (RemoveChainResponse);
|
|
|
|
|
|
|
|
// List chains defined for a specific target from `Policy` smart contract.
|
|
|
|
//
|
|
|
|
// Statuses:
|
|
|
|
// - **OK** (0, SECTION_SUCCESS): \
|
|
|
|
// chains have been successfully listed;
|
|
|
|
// - Common failures (SECTION_FAILURE_COMMON);
|
|
|
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
|
|
|
// container (as target) not found;
|
|
|
|
// - **APE_MANAGER_ACCESS_DENIED** (5120, SECTION_APE_MANAGER): \
|
|
|
|
// the operation is denied by the service.
|
|
|
|
rpc ListChains(ListChainsRequest) returns (ListChainsResponse);
|
|
|
|
}
|
|
|
|
|
|
|
|
message AddChainRequest {
|
|
|
|
message Body {
|
|
|
|
// A target for which a rule chain is added.
|
2024-05-27 14:44:56 +00:00
|
|
|
frostfs.v2.ape.ChainTarget target = 1;
|
2024-04-23 19:18:22 +00:00
|
|
|
|
|
|
|
// The chain to set for the target.
|
2024-05-27 14:44:56 +00:00
|
|
|
frostfs.v2.ape.Chain chain = 2;
|
2024-04-23 19:18:22 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// The request's body.
|
|
|
|
Body body = 1;
|
|
|
|
|
|
|
|
// Carries request meta information. Header data is used only to regulate
|
|
|
|
// message transport and does not affect request execution.
|
|
|
|
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
|
|
|
|
|
|
|
// Carries request verification information. This header is used to
|
|
|
|
// authenticate the nodes of the message route and check the correctness of
|
|
|
|
// transmission.
|
|
|
|
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
|
|
|
}
|
|
|
|
|
|
|
|
message AddChainResponse {
|
|
|
|
message Body {
|
|
|
|
// Chain ID assigned for the added rule chain.
|
|
|
|
// If chain ID is left empty in the request, then
|
|
|
|
// it will be generated.
|
|
|
|
bytes chain_id = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
// The response's body.
|
|
|
|
Body body = 1;
|
|
|
|
|
|
|
|
// Carries response meta information. Header data is used only to regulate
|
|
|
|
// message transport and does not affect request execution.
|
|
|
|
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
|
|
|
|
|
|
|
// Carries response verification information. This header is used to
|
|
|
|
// authenticate the nodes of the message route and check the correctness of
|
|
|
|
// transmission.
|
|
|
|
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
|
|
|
}
|
|
|
|
|
|
|
|
message RemoveChainRequest {
|
|
|
|
message Body {
|
|
|
|
// Target for which a rule chain is removed.
|
2024-05-27 14:44:56 +00:00
|
|
|
frostfs.v2.ape.ChainTarget target = 1;
|
2024-04-23 19:18:22 +00:00
|
|
|
|
|
|
|
// Chain ID assigned for the rule chain.
|
|
|
|
bytes chain_id = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
// The request's body.
|
|
|
|
Body body = 1;
|
|
|
|
|
|
|
|
// Carries request meta information. Header data is used only to regulate
|
|
|
|
// message transport and does not affect request execution.
|
|
|
|
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
|
|
|
|
|
|
|
// Carries request verification information. This header is used to
|
|
|
|
// authenticate the nodes of the message route and check the correctness of
|
|
|
|
// transmission.
|
|
|
|
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
|
|
|
}
|
|
|
|
|
|
|
|
message RemoveChainResponse {
|
|
|
|
// Since RemoveChain is an idempotent operation, then the only indicator that
|
|
|
|
// operation could not be performed is an error returning to a client.
|
|
|
|
message Body {}
|
|
|
|
|
|
|
|
// The response's body.
|
|
|
|
Body body = 1;
|
|
|
|
|
|
|
|
// Carries response meta information. Header data is used only to regulate
|
|
|
|
// message transport and does not affect request execution.
|
|
|
|
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
|
|
|
|
|
|
|
// Carries response verification information. This header is used to
|
|
|
|
// authenticate the nodes of the message route and check the correctness of
|
|
|
|
// transmission.
|
|
|
|
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
|
|
|
}
|
|
|
|
|
|
|
|
message ListChainsRequest {
|
|
|
|
message Body {
|
|
|
|
// Target for which rule chains are listed.
|
2024-05-27 14:44:56 +00:00
|
|
|
frostfs.v2.ape.ChainTarget target = 1;
|
2024-04-23 19:18:22 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// The request's body.
|
|
|
|
Body body = 1;
|
|
|
|
|
|
|
|
// Carries request meta information. Header data is used only to regulate
|
|
|
|
// message transport and does not affect request execution.
|
|
|
|
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
|
|
|
|
|
|
|
// Carries request verification information. This header is used to
|
|
|
|
// authenticate the nodes of the message route and check the correctness of
|
|
|
|
// transmission.
|
|
|
|
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
|
|
|
}
|
|
|
|
|
|
|
|
message ListChainsResponse {
|
|
|
|
message Body {
|
|
|
|
// The list of chains defined for the reqeusted target.
|
2024-05-27 14:44:56 +00:00
|
|
|
repeated frostfs.v2.ape.Chain chains = 1;
|
2024-04-23 19:18:22 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// The response's body.
|
|
|
|
Body body = 1;
|
|
|
|
|
|
|
|
// Carries response meta information. Header data is used only to regulate
|
|
|
|
// message transport and does not affect request execution.
|
|
|
|
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
|
|
|
|
|
|
|
// Carries response verification information. This header is used to
|
|
|
|
// authenticate the nodes of the message route and check the correctness of
|
|
|
|
// transmission.
|
|
|
|
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
2024-09-02 12:03:58 +00:00
|
|
|
}
|