forked from TrueCloudLab/frostfs-api
[#194] Generate docs with recent protocol changes
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
fc79cd18cc
commit
2743e4ba11
6 changed files with 279 additions and 138 deletions
|
@ -21,7 +21,7 @@ service ContainerService {
|
||||||
// is added into smart contract storage.
|
// is added into smart contract storage.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS):
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// request to save the container has been sent to the sidechain;
|
// request to save the container has been sent to the sidechain;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON).
|
// - Common failures (SECTION_FAILURE_COMMON).
|
||||||
rpc Put(PutRequest) returns (PutResponse);
|
rpc Put(PutRequest) returns (PutResponse);
|
||||||
|
@ -32,7 +32,7 @@ service ContainerService {
|
||||||
// is added into smart contract storage.
|
// is added into smart contract storage.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS):
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// request to remove the container has been sent to the sidechain;
|
// request to remove the container has been sent to the sidechain;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON).
|
// - Common failures (SECTION_FAILURE_COMMON).
|
||||||
rpc Delete(DeleteRequest) returns (DeleteResponse);
|
rpc Delete(DeleteRequest) returns (DeleteResponse);
|
||||||
|
@ -40,17 +40,17 @@ service ContainerService {
|
||||||
// Returns container structure from `Container` smart contract storage.
|
// Returns container structure from `Container` smart contract storage.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS):
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// container has been successfully read;
|
// container has been successfully read;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON);
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// requested container not found.
|
// requested container not found.
|
||||||
rpc Get(GetRequest) returns (GetResponse);
|
rpc Get(GetRequest) returns (GetResponse);
|
||||||
|
|
||||||
// Returns all owner's containers from 'Container` smart contract' storage.
|
// Returns all owner's containers from 'Container` smart contract' storage.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS):
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// container list has been successfully read;
|
// container list has been successfully read;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON).
|
// - Common failures (SECTION_FAILURE_COMMON).
|
||||||
rpc List(ListRequest) returns (ListResponse);
|
rpc List(ListRequest) returns (ListResponse);
|
||||||
|
@ -60,7 +60,7 @@ service ContainerService {
|
||||||
// added into smart contract storage.
|
// added into smart contract storage.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS):
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// request to save container eACL has been sent to the sidechain;
|
// request to save container eACL has been sent to the sidechain;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON).
|
// - Common failures (SECTION_FAILURE_COMMON).
|
||||||
rpc SetExtendedACL(SetExtendedACLRequest) returns (SetExtendedACLResponse);
|
rpc SetExtendedACL(SetExtendedACLRequest) returns (SetExtendedACLResponse);
|
||||||
|
@ -69,17 +69,17 @@ service ContainerService {
|
||||||
// storage.
|
// storage.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS):
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// container eACL has been successfully read;
|
// container eACL has been successfully read;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON);
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// container not found.
|
// container not found.
|
||||||
rpc GetExtendedACL(GetExtendedACLRequest) returns (GetExtendedACLResponse);
|
rpc GetExtendedACL(GetExtendedACLRequest) returns (GetExtendedACLResponse);
|
||||||
|
|
||||||
// Announce container used space values for P2P synchronization.
|
// Announce container used space values for P2P synchronization.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS):
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// estimation of used space has been successfully announced;
|
// estimation of used space has been successfully announced;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON).
|
// - Common failures (SECTION_FAILURE_COMMON).
|
||||||
rpc AnnounceUsedSpace(AnnounceUsedSpaceRequest) returns (AnnounceUsedSpaceResponse);
|
rpc AnnounceUsedSpace(AnnounceUsedSpaceRequest) returns (AnnounceUsedSpaceResponse);
|
||||||
|
|
|
@ -20,18 +20,18 @@ service ObjectService {
|
||||||
// keeping receiving order.
|
// keeping receiving order.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS):
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// object has been successfully read;
|
// object has been successfully read;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON);
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object container not found;
|
// object container not found;
|
||||||
// - **ACCESS_DENIED** (2048, SECTION_OBJECT):
|
// - **ACCESS_DENIED** (2048, SECTION_OBJECT): \
|
||||||
// read access to the object is denied;
|
// read access to the object is denied;
|
||||||
// - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT):
|
// - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \
|
||||||
// object not found in container;
|
// object not found in container;
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION):
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired;
|
// provided session token has expired;
|
||||||
// - **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT):
|
// - **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT): \
|
||||||
// the requested object has been marked as deleted.
|
// the requested object has been marked as deleted.
|
||||||
rpc Get(GetRequest) returns (stream GetResponse);
|
rpc Get(GetRequest) returns (stream GetResponse);
|
||||||
|
|
||||||
|
@ -43,23 +43,23 @@ service ObjectService {
|
||||||
// Chunk messages SHOULD be sent in direct order of fragmentation.
|
// Chunk messages SHOULD be sent in direct order of fragmentation.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS):
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// object has been successfully saved in the container;
|
// object has been successfully saved in the container;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON);
|
||||||
// - **LOCKED** (2050, SECTION_OBJECT):
|
// - **LOCKED** (2050, SECTION_OBJECT): \
|
||||||
// placement of an object of type TOMBSTONE that includes at least one locked
|
// placement of an object of type TOMBSTONE that includes at least one locked
|
||||||
// object is prohibited;
|
// object is prohibited;
|
||||||
// - **LOCK_NON_REGULAR_OBJECT** (2051, SECTION_OBJECT):
|
// - **LOCK_NON_REGULAR_OBJECT** (2051, SECTION_OBJECT): \
|
||||||
// placement of an object of type LOCK that includes at least one object of
|
// placement of an object of type LOCK that includes at least one object of
|
||||||
// type other than REGULAR is prohibited;
|
// type other than REGULAR is prohibited;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object storage container not found;
|
// object storage container not found;
|
||||||
// - **ACCESS_DENIED** (2048, SECTION_OBJECT):
|
// - **ACCESS_DENIED** (2048, SECTION_OBJECT): \
|
||||||
// write access to the container is denied;
|
// write access to the container is denied;
|
||||||
// - **TOKEN_NOT_FOUND** (4096, SECTION_SESSION):
|
// - **TOKEN_NOT_FOUND** (4096, SECTION_SESSION): \
|
||||||
// (for trusted object preparation) session private key does not exist or has
|
// (for trusted object preparation) session private key does not exist or has
|
||||||
// been deleted;
|
// been deleted;
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION):
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
rpc Put(stream PutRequest) returns (PutResponse);
|
rpc Put(stream PutRequest) returns (PutResponse);
|
||||||
|
|
||||||
|
@ -67,16 +67,16 @@ service ObjectService {
|
||||||
// guarantee. Object will be marked for removal and deleted eventually.
|
// guarantee. Object will be marked for removal and deleted eventually.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS):
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// object has been successfully marked to be removed from the container;
|
// object has been successfully marked to be removed from the container;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON);
|
||||||
// - **LOCKED** (2050, SECTION_OBJECT):
|
// - **LOCKED** (2050, SECTION_OBJECT): \
|
||||||
// deleting a locked object is prohibited;
|
// deleting a locked object is prohibited;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object container not found;
|
// object container not found;
|
||||||
// - **ACCESS_DENIED** (2048, SECTION_OBJECT):
|
// - **ACCESS_DENIED** (2048, SECTION_OBJECT): \
|
||||||
// delete access to the object is denied;
|
// delete access to the object is denied;
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION):
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
rpc Delete(DeleteRequest) returns (DeleteResponse);
|
rpc Delete(DeleteRequest) returns (DeleteResponse);
|
||||||
|
|
||||||
|
@ -85,18 +85,18 @@ service ObjectService {
|
||||||
// the very minimal information would be returned instead.
|
// the very minimal information would be returned instead.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS):
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// object header has been successfully read;
|
// object header has been successfully read;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON);
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object container not found;
|
// object container not found;
|
||||||
// - **ACCESS_DENIED** (2048, SECTION_OBJECT):
|
// - **ACCESS_DENIED** (2048, SECTION_OBJECT): \
|
||||||
// access to operation HEAD of the object is denied;
|
// access to operation HEAD of the object is denied;
|
||||||
// - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT):
|
// - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \
|
||||||
// object not found in container;
|
// object not found in container;
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION):
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired;
|
// provided session token has expired;
|
||||||
// - **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT):
|
// - **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT): \
|
||||||
// the requested object has been marked as deleted.
|
// the requested object has been marked as deleted.
|
||||||
rpc Head(HeadRequest) returns (HeadResponse);
|
rpc Head(HeadRequest) returns (HeadResponse);
|
||||||
|
|
||||||
|
@ -105,14 +105,14 @@ service ObjectService {
|
||||||
// Specification section for more details.
|
// Specification section for more details.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS):
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// objects have been successfully selected;
|
// objects have been successfully selected;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON);
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// search container not found;
|
// search container not found;
|
||||||
// - **ACCESS_DENIED** (2048, SECTION_OBJECT):
|
// - **ACCESS_DENIED** (2048, SECTION_OBJECT): \
|
||||||
// access to operation SEARCH of the object is denied;
|
// access to operation SEARCH of the object is denied;
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION):
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
rpc Search(SearchRequest) returns (stream SearchResponse);
|
rpc Search(SearchRequest) returns (stream SearchResponse);
|
||||||
|
|
||||||
|
@ -122,18 +122,18 @@ service ObjectService {
|
||||||
// order.
|
// order.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS):
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// data range of the object payload has been successfully read;
|
// data range of the object payload has been successfully read;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON);
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object container not found;
|
// object container not found;
|
||||||
// - **ACCESS_DENIED** (2048, SECTION_OBJECT):
|
// - **ACCESS_DENIED** (2048, SECTION_OBJECT): \
|
||||||
// access to operation RANGE of the object is denied;
|
// access to operation RANGE of the object is denied;
|
||||||
// - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT):
|
// - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \
|
||||||
// object not found in container;
|
// object not found in container;
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION):
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired;
|
// provided session token has expired;
|
||||||
// - **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT):
|
// - **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT): \
|
||||||
// the requested object has been marked as deleted.
|
// the requested object has been marked as deleted.
|
||||||
rpc GetRange(GetRangeRequest) returns (stream GetRangeResponse);
|
rpc GetRange(GetRangeRequest) returns (stream GetRangeResponse);
|
||||||
|
|
||||||
|
@ -143,16 +143,16 @@ service ObjectService {
|
||||||
// request. Note that hash is calculated for XORed data.
|
// request. Note that hash is calculated for XORed data.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS):
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// data range of the object payload has been successfully hashed;
|
// data range of the object payload has been successfully hashed;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON);
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object container not found;
|
// object container not found;
|
||||||
// - **ACCESS_DENIED** (2048, SECTION_OBJECT):
|
// - **ACCESS_DENIED** (2048, SECTION_OBJECT): \
|
||||||
// access to operation RANGEHASH of the object is denied;
|
// access to operation RANGEHASH of the object is denied;
|
||||||
// - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT):
|
// - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \
|
||||||
// object not found in container;
|
// object not found in container;
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION):
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
rpc GetRangeHash(GetRangeHashRequest) returns (GetRangeHashResponse);
|
rpc GetRangeHash(GetRangeHashRequest) returns (GetRangeHashResponse);
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,7 +85,7 @@ verified by Inner Ring nodes. After one more block in sidechain, container
|
||||||
is added into smart contract storage.
|
is added into smart contract storage.
|
||||||
|
|
||||||
Statuses:
|
Statuses:
|
||||||
- **OK** (0, SECTION_SUCCESS):
|
- **OK** (0, SECTION_SUCCESS): \
|
||||||
request to save the container has been sent to the sidechain;
|
request to save the container has been sent to the sidechain;
|
||||||
- Common failures (SECTION_FAILURE_COMMON).
|
- Common failures (SECTION_FAILURE_COMMON).
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ verified by Inner Ring nodes. After one more block in sidechain, container
|
||||||
is added into smart contract storage.
|
is added into smart contract storage.
|
||||||
|
|
||||||
Statuses:
|
Statuses:
|
||||||
- **OK** (0, SECTION_SUCCESS):
|
- **OK** (0, SECTION_SUCCESS): \
|
||||||
request to remove the container has been sent to the sidechain;
|
request to remove the container has been sent to the sidechain;
|
||||||
- Common failures (SECTION_FAILURE_COMMON).
|
- Common failures (SECTION_FAILURE_COMMON).
|
||||||
|
|
||||||
|
@ -112,9 +112,11 @@ request to remove the container has been sent to the sidechain;
|
||||||
Returns container structure from `Container` smart contract storage.
|
Returns container structure from `Container` smart contract storage.
|
||||||
|
|
||||||
Statuses:
|
Statuses:
|
||||||
- **OK** (0, SECTION_SUCCESS):
|
- **OK** (0, SECTION_SUCCESS): \
|
||||||
container has been successfully read;
|
container has been successfully read;
|
||||||
- Common failures (SECTION_FAILURE_COMMON).
|
- Common failures (SECTION_FAILURE_COMMON);
|
||||||
|
- **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
|
requested container not found.
|
||||||
|
|
||||||
| Name | Input | Output |
|
| Name | Input | Output |
|
||||||
| ---- | ----- | ------ |
|
| ---- | ----- | ------ |
|
||||||
|
@ -124,7 +126,7 @@ container has been successfully read;
|
||||||
Returns all owner's containers from 'Container` smart contract' storage.
|
Returns all owner's containers from 'Container` smart contract' storage.
|
||||||
|
|
||||||
Statuses:
|
Statuses:
|
||||||
- **OK** (0, SECTION_SUCCESS):
|
- **OK** (0, SECTION_SUCCESS): \
|
||||||
container list has been successfully read;
|
container list has been successfully read;
|
||||||
- Common failures (SECTION_FAILURE_COMMON).
|
- Common failures (SECTION_FAILURE_COMMON).
|
||||||
|
|
||||||
|
@ -138,7 +140,7 @@ immediately. After one more block in sidechain, Extended ACL changes are
|
||||||
added into smart contract storage.
|
added into smart contract storage.
|
||||||
|
|
||||||
Statuses:
|
Statuses:
|
||||||
- **OK** (0, SECTION_SUCCESS):
|
- **OK** (0, SECTION_SUCCESS): \
|
||||||
request to save container eACL has been sent to the sidechain;
|
request to save container eACL has been sent to the sidechain;
|
||||||
- Common failures (SECTION_FAILURE_COMMON).
|
- Common failures (SECTION_FAILURE_COMMON).
|
||||||
|
|
||||||
|
@ -151,9 +153,11 @@ Returns Extended ACL table and signature from `Container` smart contract
|
||||||
storage.
|
storage.
|
||||||
|
|
||||||
Statuses:
|
Statuses:
|
||||||
- **OK** (0, SECTION_SUCCESS):
|
- **OK** (0, SECTION_SUCCESS): \
|
||||||
container eACL has been successfully read;
|
container eACL has been successfully read;
|
||||||
- Common failures (SECTION_FAILURE_COMMON).
|
- Common failures (SECTION_FAILURE_COMMON);
|
||||||
|
- **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
|
container not found.
|
||||||
|
|
||||||
| Name | Input | Output |
|
| Name | Input | Output |
|
||||||
| ---- | ----- | ------ |
|
| ---- | ----- | ------ |
|
||||||
|
@ -163,7 +167,7 @@ container eACL has been successfully read;
|
||||||
Announce container used space values for P2P synchronization.
|
Announce container used space values for P2P synchronization.
|
||||||
|
|
||||||
Statuses:
|
Statuses:
|
||||||
- **OK** (0, SECTION_SUCCESS):
|
- **OK** (0, SECTION_SUCCESS): \
|
||||||
estimation of used space has been successfully announced;
|
estimation of used space has been successfully announced;
|
||||||
- Common failures (SECTION_FAILURE_COMMON).
|
- Common failures (SECTION_FAILURE_COMMON).
|
||||||
|
|
||||||
|
|
62
proto-docs/lock.md
Normal file
62
proto-docs/lock.md
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
# Protocol Documentation
|
||||||
|
<a name="top"></a>
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
- [lock/types.proto](#lock/types.proto)
|
||||||
|
|
||||||
|
- Messages
|
||||||
|
- [Lock](#neo.fs.v2.lock.Lock)
|
||||||
|
|
||||||
|
|
||||||
|
- [Scalar Value Types](#scalar-value-types)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="lock/types.proto"></a>
|
||||||
|
<p align="right"><a href="#top">Top</a></p>
|
||||||
|
|
||||||
|
## lock/types.proto
|
||||||
|
|
||||||
|
|
||||||
|
<!-- end services -->
|
||||||
|
|
||||||
|
|
||||||
|
<a name="neo.fs.v2.lock.Lock"></a>
|
||||||
|
|
||||||
|
### Message Lock
|
||||||
|
Lock objects protects a list of objects from being deleted. Lifetime of the
|
||||||
|
lock object is limited similar to regular objects in
|
||||||
|
`__NEOFS__EXPIRATION_EPOCH` attribute.
|
||||||
|
|
||||||
|
|
||||||
|
| Field | Type | Label | Description |
|
||||||
|
| ----- | ---- | ----- | ----------- |
|
||||||
|
| members | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | repeated | List of objects to lock. Must not be empty or carry empty IDs. All members must be of the `REGULAR` type. |
|
||||||
|
|
||||||
|
<!-- end messages -->
|
||||||
|
|
||||||
|
<!-- end enums -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Scalar Value Types
|
||||||
|
|
||||||
|
| .proto Type | Notes | C++ Type | Java Type | Python Type |
|
||||||
|
| ----------- | ----- | -------- | --------- | ----------- |
|
||||||
|
| <a name="double" /> double | | double | double | float |
|
||||||
|
| <a name="float" /> float | | float | float | float |
|
||||||
|
| <a name="int32" /> 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 |
|
||||||
|
| <a name="int64" /> 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 |
|
||||||
|
| <a name="uint32" /> uint32 | Uses variable-length encoding. | uint32 | int | int/long |
|
||||||
|
| <a name="uint64" /> uint64 | Uses variable-length encoding. | uint64 | long | int/long |
|
||||||
|
| <a name="sint32" /> sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int |
|
||||||
|
| <a name="sint64" /> sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long |
|
||||||
|
| <a name="fixed32" /> fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int |
|
||||||
|
| <a name="fixed64" /> fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long |
|
||||||
|
| <a name="sfixed32" /> sfixed32 | Always four bytes. | int32 | int | int |
|
||||||
|
| <a name="sfixed64" /> sfixed64 | Always eight bytes. | int64 | long | int/long |
|
||||||
|
| <a name="bool" /> bool | | bool | boolean | boolean |
|
||||||
|
| <a name="string" /> string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode |
|
||||||
|
| <a name="bytes" /> bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str |
|
||||||
|
|
|
@ -93,9 +93,19 @@ be restored by concatenation of object message payload and all chunks
|
||||||
keeping receiving order.
|
keeping receiving order.
|
||||||
|
|
||||||
Statuses:
|
Statuses:
|
||||||
- **OK** (0, SECTION_SUCCESS):
|
- **OK** (0, SECTION_SUCCESS): \
|
||||||
object has been successfully read;
|
object has been successfully read;
|
||||||
- Common failures (SECTION_FAILURE_COMMON).
|
- Common failures (SECTION_FAILURE_COMMON);
|
||||||
|
- **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
|
object container not found;
|
||||||
|
- **ACCESS_DENIED** (2048, SECTION_OBJECT): \
|
||||||
|
read access to the object is denied;
|
||||||
|
- **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \
|
||||||
|
object not found in container;
|
||||||
|
- **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
|
provided session token has expired;
|
||||||
|
- **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT): \
|
||||||
|
the requested object has been marked as deleted.
|
||||||
|
|
||||||
| Name | Input | Output |
|
| Name | Input | Output |
|
||||||
| ---- | ----- | ------ |
|
| ---- | ----- | ------ |
|
||||||
|
@ -110,9 +120,24 @@ object payload. All messages, except first one, SHOULD be payload chunks.
|
||||||
Chunk messages SHOULD be sent in direct order of fragmentation.
|
Chunk messages SHOULD be sent in direct order of fragmentation.
|
||||||
|
|
||||||
Statuses:
|
Statuses:
|
||||||
- **OK** (0, SECTION_SUCCESS):
|
- **OK** (0, SECTION_SUCCESS): \
|
||||||
object has been successfully saved in the container;
|
object has been successfully saved in the container;
|
||||||
- Common failures (SECTION_FAILURE_COMMON).
|
- Common failures (SECTION_FAILURE_COMMON);
|
||||||
|
- **LOCKED** (2050, SECTION_OBJECT): \
|
||||||
|
placement of an object of type TOMBSTONE that includes at least one locked
|
||||||
|
object is prohibited;
|
||||||
|
- **LOCK_NON_REGULAR_OBJECT** (2051, SECTION_OBJECT): \
|
||||||
|
placement of an object of type LOCK that includes at least one object of
|
||||||
|
type other than REGULAR is prohibited;
|
||||||
|
- **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
|
object storage container not found;
|
||||||
|
- **ACCESS_DENIED** (2048, SECTION_OBJECT): \
|
||||||
|
write access to the container is denied;
|
||||||
|
- **TOKEN_NOT_FOUND** (4096, SECTION_SESSION): \
|
||||||
|
(for trusted object preparation) session private key does not exist or has
|
||||||
|
been deleted;
|
||||||
|
- **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
|
provided session token has expired.
|
||||||
|
|
||||||
| Name | Input | Output |
|
| Name | Input | Output |
|
||||||
| ---- | ----- | ------ |
|
| ---- | ----- | ------ |
|
||||||
|
@ -123,9 +148,17 @@ Delete the object from a container. There is no immediate removal
|
||||||
guarantee. Object will be marked for removal and deleted eventually.
|
guarantee. Object will be marked for removal and deleted eventually.
|
||||||
|
|
||||||
Statuses:
|
Statuses:
|
||||||
- **OK** (0, SECTION_SUCCESS):
|
- **OK** (0, SECTION_SUCCESS): \
|
||||||
object has been successfully marked to be removed from the container;
|
object has been successfully marked to be removed from the container;
|
||||||
- Common failures (SECTION_FAILURE_COMMON).
|
- Common failures (SECTION_FAILURE_COMMON);
|
||||||
|
- **LOCKED** (2050, SECTION_OBJECT): \
|
||||||
|
deleting a locked object is prohibited;
|
||||||
|
- **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
|
object container not found;
|
||||||
|
- **ACCESS_DENIED** (2048, SECTION_OBJECT): \
|
||||||
|
delete access to the object is denied;
|
||||||
|
- **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
|
provided session token has expired.
|
||||||
|
|
||||||
| Name | Input | Output |
|
| Name | Input | Output |
|
||||||
| ---- | ----- | ------ |
|
| ---- | ----- | ------ |
|
||||||
|
@ -137,9 +170,19 @@ returned. If `main_only` request field is set, the short header with only
|
||||||
the very minimal information would be returned instead.
|
the very minimal information would be returned instead.
|
||||||
|
|
||||||
Statuses:
|
Statuses:
|
||||||
- **OK** (0, SECTION_SUCCESS):
|
- **OK** (0, SECTION_SUCCESS): \
|
||||||
object header has been successfully read;
|
object header has been successfully read;
|
||||||
- Common failures (SECTION_FAILURE_COMMON).
|
- Common failures (SECTION_FAILURE_COMMON);
|
||||||
|
- **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
|
object container not found;
|
||||||
|
- **ACCESS_DENIED** (2048, SECTION_OBJECT): \
|
||||||
|
access to operation HEAD of the object is denied;
|
||||||
|
- **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \
|
||||||
|
object not found in container;
|
||||||
|
- **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
|
provided session token has expired;
|
||||||
|
- **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT): \
|
||||||
|
the requested object has been marked as deleted.
|
||||||
|
|
||||||
| Name | Input | Output |
|
| Name | Input | Output |
|
||||||
| ---- | ----- | ------ |
|
| ---- | ----- | ------ |
|
||||||
|
@ -151,9 +194,15 @@ Header's filed values. Please see the corresponding NeoFS Technical
|
||||||
Specification section for more details.
|
Specification section for more details.
|
||||||
|
|
||||||
Statuses:
|
Statuses:
|
||||||
- **OK** (0, SECTION_SUCCESS):
|
- **OK** (0, SECTION_SUCCESS): \
|
||||||
objects have been successfully selected;
|
objects have been successfully selected;
|
||||||
- Common failures (SECTION_FAILURE_COMMON).
|
- Common failures (SECTION_FAILURE_COMMON);
|
||||||
|
- **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
|
search container not found;
|
||||||
|
- **ACCESS_DENIED** (2048, SECTION_OBJECT): \
|
||||||
|
access to operation SEARCH of the object is denied;
|
||||||
|
- **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
|
provided session token has expired.
|
||||||
|
|
||||||
| Name | Input | Output |
|
| Name | Input | Output |
|
||||||
| ---- | ----- | ------ |
|
| ---- | ----- | ------ |
|
||||||
|
@ -166,9 +215,19 @@ restored by concatenation of all received payload chunks keeping receiving
|
||||||
order.
|
order.
|
||||||
|
|
||||||
Statuses:
|
Statuses:
|
||||||
- **OK** (0, SECTION_SUCCESS):
|
- **OK** (0, SECTION_SUCCESS): \
|
||||||
data range of the object payload has been successfully read;
|
data range of the object payload has been successfully read;
|
||||||
- Common failures (SECTION_FAILURE_COMMON).
|
- Common failures (SECTION_FAILURE_COMMON);
|
||||||
|
- **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
|
object container not found;
|
||||||
|
- **ACCESS_DENIED** (2048, SECTION_OBJECT): \
|
||||||
|
access to operation RANGE of the object is denied;
|
||||||
|
- **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \
|
||||||
|
object not found in container;
|
||||||
|
- **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
|
provided session token has expired;
|
||||||
|
- **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT): \
|
||||||
|
the requested object has been marked as deleted.
|
||||||
|
|
||||||
| Name | Input | Output |
|
| Name | Input | Output |
|
||||||
| ---- | ----- | ------ |
|
| ---- | ----- | ------ |
|
||||||
|
@ -181,9 +240,17 @@ length) tuples. Hashes order in response corresponds to ranges order in
|
||||||
request. Note that hash is calculated for XORed data.
|
request. Note that hash is calculated for XORed data.
|
||||||
|
|
||||||
Statuses:
|
Statuses:
|
||||||
- **OK** (0, SECTION_SUCCESS):
|
- **OK** (0, SECTION_SUCCESS): \
|
||||||
data range of the object payload has been successfully hashed;
|
data range of the object payload has been successfully hashed;
|
||||||
- Common failures (SECTION_FAILURE_COMMON).
|
- Common failures (SECTION_FAILURE_COMMON);
|
||||||
|
- **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
|
object container not found;
|
||||||
|
- **ACCESS_DENIED** (2048, SECTION_OBJECT): \
|
||||||
|
access to operation RANGEHASH of the object is denied;
|
||||||
|
- **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \
|
||||||
|
object not found in container;
|
||||||
|
- **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
|
provided session token has expired.
|
||||||
|
|
||||||
| Name | Input | Output |
|
| Name | Input | Output |
|
||||||
| ---- | ----- | ------ |
|
| ---- | ----- | ------ |
|
||||||
|
@ -780,6 +847,9 @@ Object structure. Object is immutable and content-addressed. It means
|
||||||
`ObjectID` will change if header or payload changes. It's calculated as a
|
`ObjectID` will change if header or payload changes. It's calculated as a
|
||||||
hash of header field, which contains hash of object's payload.
|
hash of header field, which contains hash of object's payload.
|
||||||
|
|
||||||
|
For non-regular object types payload format depends on object type specified
|
||||||
|
in the header.
|
||||||
|
|
||||||
|
|
||||||
| Field | Type | Label | Description |
|
| Field | Type | Label | Description |
|
||||||
| ----- | ---- | ----- | ----------- |
|
| ----- | ---- | ----- | ----------- |
|
||||||
|
@ -843,19 +913,21 @@ Type of match expression
|
||||||
|
|
||||||
### ObjectType
|
### ObjectType
|
||||||
Type of the object payload content. Only `REGULAR` type objects can be split,
|
Type of the object payload content. Only `REGULAR` type objects can be split,
|
||||||
hence `TOMBSTONE` and `STORAGE_GROUP` payload is limited by maximal object
|
hence `TOMBSTONE`, `STORAGE_GROUP` and `LOCK` payload is limited by maximal
|
||||||
size.
|
object size.
|
||||||
|
|
||||||
String presentation of object type is the same as definition:
|
String presentation of object type is the same as definition:
|
||||||
* REGULAR
|
* REGULAR
|
||||||
* TOMBSTONE
|
* TOMBSTONE
|
||||||
* STORAGE_GROUP
|
* STORAGE_GROUP
|
||||||
|
* LOCK
|
||||||
|
|
||||||
| Name | Number | Description |
|
| Name | Number | Description |
|
||||||
| ---- | ------ | ----------- |
|
| ---- | ------ | ----------- |
|
||||||
| REGULAR | 0 | Just a normal object |
|
| REGULAR | 0 | Just a normal object |
|
||||||
| TOMBSTONE | 1 | Used internally to identify deleted objects |
|
| TOMBSTONE | 1 | Used internally to identify deleted objects |
|
||||||
| STORAGE_GROUP | 2 | StorageGroup information |
|
| STORAGE_GROUP | 2 | StorageGroup information |
|
||||||
|
| LOCK | 3 | Object lock |
|
||||||
|
|
||||||
|
|
||||||
<!-- end enums -->
|
<!-- end enums -->
|
||||||
|
|
|
@ -109,8 +109,11 @@ Section of statuses for object-related operations.
|
||||||
|
|
||||||
| Name | Number | Description |
|
| Name | Number | Description |
|
||||||
| ---- | ------ | ----------- |
|
| ---- | ------ | ----------- |
|
||||||
| ACCESS_DENIED | 0 | [**2048**] Access denied by ACL. Details: - [**0**] Human-readable description. |
|
| ACCESS_DENIED | 0 | [**2048**] Access denied by ACL. Details: - [**0**] Human-readable description (UTF-8 encoded string). |
|
||||||
| OBJECT_NOT_FOUND | 1 | [**2049**] Object not found. |
|
| OBJECT_NOT_FOUND | 1 | [**2049**] Object not found. |
|
||||||
|
| LOCKED | 2 | [**2050**] Operation rejected by the object lock. |
|
||||||
|
| LOCK_NON_REGULAR_OBJECT | 3 | [**2051**] Locking an object with a non-REGULAR type rejected. |
|
||||||
|
| OBJECT_ALREADY_REMOVED | 4 | [**2052**] Object has been marked deleted. |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue