2f5f6f8fde
Define ContainerID message in refs package. In the future, this structure can be ported into messages in place of the container identifier field to maintain format uniformity. Also, storing the identifier in a dedicated message will allow, if necessary, to expand it with additional information without losing backward compatibility within one version of the API. Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
85 lines
3.2 KiB
Markdown
85 lines
3.2 KiB
Markdown
# Protocol Documentation
|
|
<a name="top"></a>
|
|
|
|
## Table of Contents
|
|
|
|
- [refs/types.proto](#refs/types.proto)
|
|
|
|
- Messages
|
|
- [Address](#refs.Address)
|
|
- [ContainerID](#refs.ContainerID)
|
|
- [ObjectID](#refs.ObjectID)
|
|
|
|
|
|
- [Scalar Value Types](#scalar-value-types)
|
|
|
|
|
|
|
|
<a name="refs/types.proto"></a>
|
|
<p align="right"><a href="#top">Top</a></p>
|
|
|
|
## refs/types.proto
|
|
|
|
|
|
<!-- end services -->
|
|
|
|
|
|
<a name="refs.Address"></a>
|
|
|
|
### Message Address
|
|
Address of object (container id + object id)
|
|
|
|
|
|
| Field | Type | Label | Description |
|
|
| ----- | ---- | ----- | ----------- |
|
|
| ObjectID | [ObjectID](#refs.ObjectID) | | ObjectID carries object identifier. |
|
|
| CID | [bytes](#bytes) | | CID is container identifier |
|
|
|
|
|
|
<a name="refs.ContainerID"></a>
|
|
|
|
### Message ContainerID
|
|
ContainerID groups information about the NeoFS container identifier.
|
|
|
|
|
|
| Field | Type | Label | Description |
|
|
| ----- | ---- | ----- | ----------- |
|
|
| Value | [bytes](#bytes) | | Value carries the container identifier in a binary format. |
|
|
|
|
|
|
<a name="refs.ObjectID"></a>
|
|
|
|
### Message ObjectID
|
|
ObjectID groups information about the NeoFS object identifier.
|
|
|
|
|
|
| Field | Type | Label | Description |
|
|
| ----- | ---- | ----- | ----------- |
|
|
| Value | [bytes](#bytes) | | Value carries the object identifier in a binary format. |
|
|
|
|
<!-- 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 |
|
|
|