forked from TrueCloudLab/frostfs-api
393c95899f
* Introduce `ape` package and move `apemanager/types.proto` to `ape/`; * Fix `apemanager/service.proto`. Signed-off-by: Airat Arifullin <aarifullin@yadro.com>
12 KiB
12 KiB
Protocol Documentation
Table of Contents
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 |