forked from TrueCloudLab/frostfs-api
[#194] object: Define payload format of LOCK objects
Define `object.Lock` message which carries list of locked objects. Require this message to be a payload of locked objects (`LOCK` type). Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
7b83b9df4e
commit
d6bf64589f
2 changed files with 22 additions and 0 deletions
14
lock/types.proto
Normal file
14
lock/types.proto
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package neo.fs.v2.lock;
|
||||||
|
|
||||||
|
option go_package = "github.com/nspcc-dev/neofs-api-go/v2/lock/grpc;lock";
|
||||||
|
option csharp_namespace = "Neo.FileStorage.API.Lock";
|
||||||
|
|
||||||
|
import "refs/types.proto";
|
||||||
|
|
||||||
|
// Lock keeps record of objects that are locked.
|
||||||
|
message Lock {
|
||||||
|
// List of objects to be locked.
|
||||||
|
repeated neo.fs.v2.refs.ObjectID members = 1 [json_name = "members"];
|
||||||
|
}
|
|
@ -184,6 +184,14 @@ message Header {
|
||||||
// Object structure. Object is immutable and content-addressed. It means
|
// 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.
|
||||||
|
//
|
||||||
|
// Payload format depends on object type specified in the header:
|
||||||
|
// * **LOCK** \
|
||||||
|
// Must be encoded message of type `Lock` in Protocol Buffers binary format
|
||||||
|
// with direct field order. Member list must no be empty or carry empty IDs.
|
||||||
|
// All members must regular objects (`REGULAR` type). Lifetime of the lock
|
||||||
|
// object is limited similar to regular objects in `__NEOFS__EXPIRATION_EPOCH`
|
||||||
|
// attribute.
|
||||||
message Object {
|
message Object {
|
||||||
// Object's unique identifier.
|
// Object's unique identifier.
|
||||||
neo.fs.v2.refs.ObjectID object_id = 1 [json_name = "objectID"];
|
neo.fs.v2.refs.ObjectID object_id = 1 [json_name = "objectID"];
|
||||||
|
|
Loading…
Reference in a new issue