[#194] Generate docs with recent protocol changes

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2022-02-21 19:00:08 +03:00 committed by LeL
parent fc79cd18cc
commit 2743e4ba11
6 changed files with 279 additions and 138 deletions

View file

@ -21,7 +21,7 @@ service ContainerService {
// is added into smart contract storage.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
// - **OK** (0, SECTION_SUCCESS): \
// request to save the container has been sent to the sidechain;
// - Common failures (SECTION_FAILURE_COMMON).
rpc Put(PutRequest) returns (PutResponse);
@ -32,7 +32,7 @@ service ContainerService {
// is added into smart contract storage.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
// - **OK** (0, SECTION_SUCCESS): \
// request to remove the container has been sent to the sidechain;
// - Common failures (SECTION_FAILURE_COMMON).
rpc Delete(DeleteRequest) returns (DeleteResponse);
@ -40,17 +40,17 @@ service ContainerService {
// Returns container structure from `Container` smart contract storage.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
// - **OK** (0, SECTION_SUCCESS): \
// container has been successfully read;
// - Common failures (SECTION_FAILURE_COMMON);
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
// requested container not found.
rpc Get(GetRequest) returns (GetResponse);
// Returns all owner's containers from 'Container` smart contract' storage.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
// - **OK** (0, SECTION_SUCCESS): \
// container list has been successfully read;
// - Common failures (SECTION_FAILURE_COMMON).
rpc List(ListRequest) returns (ListResponse);
@ -60,7 +60,7 @@ service ContainerService {
// added into smart contract storage.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
// - **OK** (0, SECTION_SUCCESS): \
// request to save container eACL has been sent to the sidechain;
// - Common failures (SECTION_FAILURE_COMMON).
rpc SetExtendedACL(SetExtendedACLRequest) returns (SetExtendedACLResponse);
@ -69,17 +69,17 @@ service ContainerService {
// storage.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
// - **OK** (0, SECTION_SUCCESS): \
// container eACL has been successfully read;
// - Common failures (SECTION_FAILURE_COMMON);
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
// container not found.
rpc GetExtendedACL(GetExtendedACLRequest) returns (GetExtendedACLResponse);
// Announce container used space values for P2P synchronization.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
// - **OK** (0, SECTION_SUCCESS): \
// estimation of used space has been successfully announced;
// - Common failures (SECTION_FAILURE_COMMON).
rpc AnnounceUsedSpace(AnnounceUsedSpaceRequest) returns (AnnounceUsedSpaceResponse);

View file

@ -20,18 +20,18 @@ service ObjectService {
// keeping receiving order.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
// - **OK** (0, SECTION_SUCCESS): \
// object has been successfully read;
// - Common failures (SECTION_FAILURE_COMMON);
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
// object container not found;
// - **ACCESS_DENIED** (2048, SECTION_OBJECT):
// - **ACCESS_DENIED** (2048, SECTION_OBJECT): \
// read access to the object is denied;
// - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT):
// - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \
// object not found in container;
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION):
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
// 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.
rpc Get(GetRequest) returns (stream GetResponse);
@ -43,23 +43,23 @@ service ObjectService {
// Chunk messages SHOULD be sent in direct order of fragmentation.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
// - **OK** (0, SECTION_SUCCESS): \
// object has been successfully saved in the container;
// - 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
// 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
// type other than REGULAR is prohibited;
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
// object storage container not found;
// - **ACCESS_DENIED** (2048, SECTION_OBJECT):
// - **ACCESS_DENIED** (2048, SECTION_OBJECT): \
// 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
// been deleted;
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION):
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
// provided session token has expired.
rpc Put(stream PutRequest) returns (PutResponse);
@ -67,16 +67,16 @@ service ObjectService {
// guarantee. Object will be marked for removal and deleted eventually.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
// - **OK** (0, SECTION_SUCCESS): \
// object has been successfully marked to be removed from the container;
// - Common failures (SECTION_FAILURE_COMMON);
// - **LOCKED** (2050, SECTION_OBJECT):
// - **LOCKED** (2050, SECTION_OBJECT): \
// deleting a locked object is prohibited;
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
// object container not found;
// - **ACCESS_DENIED** (2048, SECTION_OBJECT):
// - **ACCESS_DENIED** (2048, SECTION_OBJECT): \
// delete access to the object is denied;
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION):
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
// provided session token has expired.
rpc Delete(DeleteRequest) returns (DeleteResponse);
@ -85,18 +85,18 @@ service ObjectService {
// the very minimal information would be returned instead.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
// - **OK** (0, SECTION_SUCCESS): \
// object header has been successfully read;
// - Common failures (SECTION_FAILURE_COMMON);
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
// object container not found;
// - **ACCESS_DENIED** (2048, SECTION_OBJECT):
// - **ACCESS_DENIED** (2048, SECTION_OBJECT): \
// 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;
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION):
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
// 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.
rpc Head(HeadRequest) returns (HeadResponse);
@ -105,14 +105,14 @@ service ObjectService {
// Specification section for more details.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
// - **OK** (0, SECTION_SUCCESS): \
// objects have been successfully selected;
// - Common failures (SECTION_FAILURE_COMMON);
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
// search container not found;
// - **ACCESS_DENIED** (2048, SECTION_OBJECT):
// - **ACCESS_DENIED** (2048, SECTION_OBJECT): \
// access to operation SEARCH of the object is denied;
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION):
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
// provided session token has expired.
rpc Search(SearchRequest) returns (stream SearchResponse);
@ -122,18 +122,18 @@ service ObjectService {
// order.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
// - **OK** (0, SECTION_SUCCESS): \
// data range of the object payload has been successfully read;
// - Common failures (SECTION_FAILURE_COMMON);
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
// object container not found;
// - **ACCESS_DENIED** (2048, SECTION_OBJECT):
// - **ACCESS_DENIED** (2048, SECTION_OBJECT): \
// 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;
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION):
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
// 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.
rpc GetRange(GetRangeRequest) returns (stream GetRangeResponse);
@ -143,16 +143,16 @@ service ObjectService {
// request. Note that hash is calculated for XORed data.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
// - **OK** (0, SECTION_SUCCESS): \
// data range of the object payload has been successfully hashed;
// - Common failures (SECTION_FAILURE_COMMON);
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER):
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
// object container not found;
// - **ACCESS_DENIED** (2048, SECTION_OBJECT):
// - **ACCESS_DENIED** (2048, SECTION_OBJECT): \
// 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;
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION):
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
// provided session token has expired.
rpc GetRangeHash(GetRangeHashRequest) returns (GetRangeHashResponse);
}

View file

@ -85,8 +85,8 @@ verified by Inner Ring nodes. After one more block in sidechain, container
is added into smart contract storage.
Statuses:
- **OK** (0, SECTION_SUCCESS):
request to save the container has been sent to the sidechain;
- **OK** (0, SECTION_SUCCESS): \
request to save the container has been sent to the sidechain;
- Common failures (SECTION_FAILURE_COMMON).
| Name | Input | Output |
@ -100,8 +100,8 @@ verified by Inner Ring nodes. After one more block in sidechain, container
is added into smart contract storage.
Statuses:
- **OK** (0, SECTION_SUCCESS):
request to remove the container has been sent to the sidechain;
- **OK** (0, SECTION_SUCCESS): \
request to remove the container has been sent to the sidechain;
- Common failures (SECTION_FAILURE_COMMON).
| Name | Input | Output |
@ -112,9 +112,11 @@ request to remove the container has been sent to the sidechain;
Returns container structure from `Container` smart contract storage.
Statuses:
- **OK** (0, SECTION_SUCCESS):
container has been successfully read;
- Common failures (SECTION_FAILURE_COMMON).
- **OK** (0, SECTION_SUCCESS): \
container has been successfully read;
- Common failures (SECTION_FAILURE_COMMON);
- **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
requested container not found.
| Name | Input | Output |
| ---- | ----- | ------ |
@ -124,8 +126,8 @@ container has been successfully read;
Returns all owner's containers from 'Container` smart contract' storage.
Statuses:
- **OK** (0, SECTION_SUCCESS):
container list has been successfully read;
- **OK** (0, SECTION_SUCCESS): \
container list has been successfully read;
- Common failures (SECTION_FAILURE_COMMON).
| Name | Input | Output |
@ -138,8 +140,8 @@ immediately. After one more block in sidechain, Extended ACL changes are
added into smart contract storage.
Statuses:
- **OK** (0, SECTION_SUCCESS):
request to save container eACL has been sent to the sidechain;
- **OK** (0, SECTION_SUCCESS): \
request to save container eACL has been sent to the sidechain;
- Common failures (SECTION_FAILURE_COMMON).
| Name | Input | Output |
@ -151,9 +153,11 @@ Returns Extended ACL table and signature from `Container` smart contract
storage.
Statuses:
- **OK** (0, SECTION_SUCCESS):
container eACL has been successfully read;
- Common failures (SECTION_FAILURE_COMMON).
- **OK** (0, SECTION_SUCCESS): \
container eACL has been successfully read;
- Common failures (SECTION_FAILURE_COMMON);
- **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
container not found.
| Name | Input | Output |
| ---- | ----- | ------ |
@ -163,8 +167,8 @@ container eACL has been successfully read;
Announce container used space values for P2P synchronization.
Statuses:
- **OK** (0, SECTION_SUCCESS):
estimation of used space has been successfully announced;
- **OK** (0, SECTION_SUCCESS): \
estimation of used space has been successfully announced;
- Common failures (SECTION_FAILURE_COMMON).
| Name | Input | Output |

62
proto-docs/lock.md Normal file
View 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 |

View file

@ -93,9 +93,19 @@ be restored by concatenation of object message payload and all chunks
keeping receiving order.
Statuses:
- **OK** (0, SECTION_SUCCESS):
object has been successfully read;
- Common failures (SECTION_FAILURE_COMMON).
- **OK** (0, SECTION_SUCCESS): \
object has been successfully read;
- 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 |
| ---- | ----- | ------ |
@ -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.
Statuses:
- **OK** (0, SECTION_SUCCESS):
object has been successfully saved in the container;
- Common failures (SECTION_FAILURE_COMMON).
- **OK** (0, SECTION_SUCCESS): \
object has been successfully saved in the container;
- 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 |
| ---- | ----- | ------ |
@ -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.
Statuses:
- **OK** (0, SECTION_SUCCESS):
object has been successfully marked to be removed from the container;
- Common failures (SECTION_FAILURE_COMMON).
- **OK** (0, SECTION_SUCCESS): \
object has been successfully marked to be removed from the container;
- 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 |
| ---- | ----- | ------ |
@ -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.
Statuses:
- **OK** (0, SECTION_SUCCESS):
object header has been successfully read;
- Common failures (SECTION_FAILURE_COMMON).
- **OK** (0, SECTION_SUCCESS): \
object header has been successfully read;
- 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 |
| ---- | ----- | ------ |
@ -151,9 +194,15 @@ Header's filed values. Please see the corresponding NeoFS Technical
Specification section for more details.
Statuses:
- **OK** (0, SECTION_SUCCESS):
objects have been successfully selected;
- Common failures (SECTION_FAILURE_COMMON).
- **OK** (0, SECTION_SUCCESS): \
objects have been successfully selected;
- 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 |
| ---- | ----- | ------ |
@ -166,9 +215,19 @@ restored by concatenation of all received payload chunks keeping receiving
order.
Statuses:
- **OK** (0, SECTION_SUCCESS):
data range of the object payload has been successfully read;
- Common failures (SECTION_FAILURE_COMMON).
- **OK** (0, SECTION_SUCCESS): \
data range of the object payload has been successfully read;
- 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 |
| ---- | ----- | ------ |
@ -181,9 +240,17 @@ length) tuples. Hashes order in response corresponds to ranges order in
request. Note that hash is calculated for XORed data.
Statuses:
- **OK** (0, SECTION_SUCCESS):
data range of the object payload has been successfully hashed;
- Common failures (SECTION_FAILURE_COMMON).
- **OK** (0, SECTION_SUCCESS): \
data range of the object payload has been successfully hashed;
- 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 |
| ---- | ----- | ------ |
@ -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
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 |
| ----- | ---- | ----- | ----------- |
@ -843,19 +913,21 @@ Type of match expression
### ObjectType
Type of the object payload content. Only `REGULAR` type objects can be split,
hence `TOMBSTONE` and `STORAGE_GROUP` payload is limited by maximal object
size.
hence `TOMBSTONE`, `STORAGE_GROUP` and `LOCK` payload is limited by maximal
object size.
String presentation of object type is the same as definition:
* REGULAR
* TOMBSTONE
* STORAGE_GROUP
* LOCK
| Name | Number | Description |
| ---- | ------ | ----------- |
| REGULAR | 0 | Just a normal object |
| TOMBSTONE | 1 | Used internally to identify deleted objects |
| STORAGE_GROUP | 2 | StorageGroup information |
| LOCK | 3 | Object lock |
<!-- end enums -->

View file

@ -109,8 +109,11 @@ Section of statuses for object-related operations.
| 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. |
| 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. |