syntax = "proto3"; package filesync; option go_package = "commonfile/fileproto"; enum ErrCodes { Unexpected = 0; CIDNotFound = 1; ErrorOffset = 200; } service File { // GetBlocks streams ipfs blocks from server to client rpc BlocksGet(stream BlockGetRequest) returns (stream BlockGetResponse); // PushBlock pushes one block to 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); // DeleteBlock deletes block from space rpc BlocksDelete(BlocksDeleteRequest) returns (BlocksDeleteResponse); // Ping checks the connection rpc Check(CheckRequest) returns (CheckResponse); } message BlockGetRequest { string spaceId = 1; bytes cid = 2; } message BlockGetResponse { bytes cid = 1; bytes data = 2; CIDError code = 3; } 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; } enum CIDError { CIDErrorOk = 0; CIDErrorNotFound = 1; CIDErrorUnexpected = 2; }