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); // FilesDelete deletes files by id rpc FilesDelete(FilesDeleteRequest) returns (FilesDeleteResponse); // FileCheck checks file CIDs and children for exists rpc FilesCheck(FilesCheckRequest) returns (FilesCheckResponse); // Check checks the connection and credentials rpc Check(CheckRequest) returns (CheckResponse); // SpaceInfo returns usage, limit, etc about space rpc SpaceInfo(SpaceInfoRequest) returns (SpaceInfoResponse); } message BlockGetRequest { string spaceId = 1; bytes cid = 2; } message BlockGetResponse { bytes cid = 1; bytes data = 2; } message BlockPushRequest { string spaceId = 1; string fileId = 2; bytes cid = 3; bytes data = 4; } 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; string fileId = 2; repeated bytes cids = 3; } message BlocksBindResponse {} message FilesDeleteRequest { string spaceId = 1; repeated bytes fileIds = 2; } message FilesDeleteResponse {} message FilesCheckRequest { string spaceId = 1; repeated bytes fileIds = 2; } message FilesCheckResponse { repeated BlockAvailability blocksAvailability = 1; } message CheckRequest {} message CheckResponse { repeated string spaceIds = 1; bool allowWrite = 2; } message SpaceInfoRequest { string spaceId = 1; } message SpaceInfoResponse { uint64 limitBytes = 1; uint64 usageBytes = 2; uint64 cidsCount = 3; uint64 filesCount = 4; }