Skip to content

Commit

Permalink
[nspcc-dev#194] object: Define payload format of LOCK objects
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Leonard Lyubich committed Feb 21, 2022
1 parent b836798 commit 446e6ff
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
14 changes: 14 additions & 0 deletions lock/types.proto
Original file line number Diff line number Diff line change
@@ -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"];
}
8 changes: 8 additions & 0 deletions object/types.proto
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,14 @@ message Header {
// 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.
//
// 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 {
// Object's unique identifier.
neo.fs.v2.refs.ObjectID object_id = 1 [json_name = "objectID"];
Expand Down

0 comments on commit 446e6ff

Please sign in to comment.