frostfs-api/proto-docs/apemanager.md
Airat Arifullin 393c95899f [#54] apemanager: Move APE specific types to separate package
* Introduce `ape` package and move `apemanager/types.proto`
  to `ape/`;
* Fix `apemanager/service.proto`.

Signed-off-by: Airat Arifullin <aarifullin@yadro.com>
2024-05-30 08:09:00 +00:00

12 KiB

Protocol Documentation

Table of Contents

Top

apemanager/service.proto

Service "frostfs.v2.apemanager.APEManagerService"

APEManagerService provides API to manage rule chains within sidechain's Policy smart contract.

rpc AddChain(AddChainRequest) returns (AddChainResponse);
rpc RemoveChain(RemoveChainRequest) returns (RemoveChainResponse);
rpc ListChains(ListChainsRequest) returns (ListChainsResponse);

Method AddChain

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.
Name Input Output
AddChain AddChainRequest AddChainResponse

Method RemoveChain

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.
Name Input Output
RemoveChain RemoveChainRequest RemoveChainResponse

Method ListChains

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.
Name Input Output
ListChains ListChainsRequest ListChainsResponse

Message AddChainRequest

Field Type Label Description
body AddChainRequest.Body The request's body.
meta_header neo.fs.v2.session.RequestMetaHeader Carries request meta information. Header data is used only to regulate message transport and does not affect request execution.
verify_header neo.fs.v2.session.RequestVerificationHeader Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission.

Message AddChainRequest.Body

Field Type Label Description
target frostfs.v2.ape.ChainTarget A target for which a rule chain is added.
chain frostfs.v2.ape.Chain The chain to set for the target.

Message AddChainResponse

Field Type Label Description
body AddChainResponse.Body The response's body.
meta_header neo.fs.v2.session.ResponseMetaHeader Carries response meta information. Header data is used only to regulate message transport and does not affect request execution.
verify_header neo.fs.v2.session.ResponseVerificationHeader Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission.

Message AddChainResponse.Body

Field Type Label Description
chain_id bytes Chain ID assigned for the added rule chain. If chain ID is left empty in the request, then it will be generated.

Message ListChainsRequest

Field Type Label Description
body ListChainsRequest.Body The request's body.
meta_header neo.fs.v2.session.RequestMetaHeader Carries request meta information. Header data is used only to regulate message transport and does not affect request execution.
verify_header neo.fs.v2.session.RequestVerificationHeader Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission.

Message ListChainsRequest.Body

Field Type Label Description
target frostfs.v2.ape.ChainTarget Target for which rule chains are listed.

Message ListChainsResponse

Field Type Label Description
body ListChainsResponse.Body The response's body.
meta_header neo.fs.v2.session.ResponseMetaHeader Carries response meta information. Header data is used only to regulate message transport and does not affect request execution.
verify_header neo.fs.v2.session.ResponseVerificationHeader Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission.

Message ListChainsResponse.Body

Field Type Label Description
chains frostfs.v2.ape.Chain repeated The list of chains defined for the reqeusted target.

Message RemoveChainRequest

Field Type Label Description
body RemoveChainRequest.Body The request's body.
meta_header neo.fs.v2.session.RequestMetaHeader Carries request meta information. Header data is used only to regulate message transport and does not affect request execution.
verify_header neo.fs.v2.session.RequestVerificationHeader Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission.

Message RemoveChainRequest.Body

Field Type Label Description
target frostfs.v2.ape.ChainTarget Target for which a rule chain is removed.
chain_id bytes Chain ID assigned for the rule chain.

Message RemoveChainResponse

Field Type Label Description
body RemoveChainResponse.Body The response's body.
meta_header neo.fs.v2.session.ResponseMetaHeader Carries response meta information. Header data is used only to regulate message transport and does not affect request execution.
verify_header neo.fs.v2.session.ResponseVerificationHeader Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission.

Message RemoveChainResponse.Body

Since RemoveChain is an idempotent operation, then the only indicator that operation could not be performed is an error returning to a client.

Scalar Value Types

.proto Type Notes C++ Type Java Type Python Type
double double double float
float float float float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long
uint32 Uses variable-length encoding. uint32 int int/long
uint64 Uses variable-length encoding. uint64 long int/long
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long
sfixed32 Always four bytes. int32 int int
sfixed64 Always eight bytes. int64 long int/long
bool bool boolean boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode
bytes May contain any arbitrary sequence of bytes. string ByteString str