Sergey Cherepanov 748994be2e
rename proto pkg
2023-01-30 20:19:52 +03:00

92 lines
1.9 KiB
Protocol Buffer

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;
}