syntax = "proto3"; package filesync; option go_package = "commonfile/fileproto"; enum ErrCodes { Unexpected = 0; CIDNotFound = 1; ErrorOffset = 200; } service File { // BlockGet gets one block from a server rpc BlockGet(BlockGetRequest) returns (BlockGetResponse); // BlockPush pushes one block to a server rpc BlockPush(BlockPushRequest) returns (BlockPushResponse); // BlocksCheck checks is CIDs exists rpc BlocksCheck(BlocksCheckRequest) returns (BlocksCheckResponse); // BlocksBind binds CIDs to space rpc BlocksBind(BlocksBindRequest) returns (BlocksBindResponse); // BlocksDelete deletes block from space rpc BlocksDelete(BlocksDeleteRequest) returns (BlocksDeleteResponse); // Check checks the connection and credentials rpc Check(CheckRequest) returns (CheckResponse); } message BlockGetRequest { string spaceId = 1; bytes cid = 2; } message BlockGetResponse { bytes cid = 1; bytes data = 2; } message BlockPushRequest { string spaceId = 1; bytes cid = 2; bytes data = 3; } message BlockPushResponse {} message BlocksDeleteRequest { string spaceId = 1; repeated bytes cids = 2; } message BlocksDeleteResponse {} message BlocksCheckRequest { string spaceId = 1; repeated bytes cids = 2; } message BlocksCheckResponse { repeated BlockAvailability blocksAvailability = 1; } message BlockAvailability { bytes cid = 1; AvailabilityStatus status = 2; } enum AvailabilityStatus { NotExists = 0; Exists = 1; ExistsInSpace = 2; } message BlocksBindRequest { string spaceId = 1; repeated bytes cids = 2; } message BlocksBindResponse {} message CheckRequest {} message CheckResponse { repeated string spaceIds = 1; bool allowWrite = 2; }