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); // FilesBind binds root file CIDs and their children to space rpc FilesBind(FilesBindRequest) returns (FilesBindResponse); // FilesDelete deletes file CIDs and their children from space rpc FilesDelete(FilesDeleteRequest) returns (FilesDeleteResponse); // FileCheck checks file CIDs and children for exists rpc FilesCheck(FilesCheckRequest) returns (FilesCheckResponse); // BlocksDelete deletes block from space rpc BlocksDelete(BlocksDeleteRequest) returns (BlocksDeleteResponse); // Check checks the connection and credentials rpc Check(CheckRequest) returns (CheckResponse); // CheckUsage checks current usage and limits for a space rpc CheckUsage(CheckUsageRequest) returns (CheckUsageResponse); } 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 FilesBindRequest { repeated bytes fileCids = 1; } message FilesBindResponse {} message FilesDeleteRequest { repeated bytes fileCids = 1; } message FilesDeleteResponse {} message FilesCheckRequest { repeated bytes fileCids = 1; } message FilesCheckResponse { repeated BlockAvailability blocksAvailability = 1; } message CheckRequest {} message CheckResponse { repeated string spaceIds = 1; bool allowWrite = 2; } message CheckUsageRequest { string spaceId = 1; } message CheckUsageResponse { uint64 limitBytes = 1; uint64 usageBytes = 2; uint64 usageCids = 3; }