blob: 6640afdc69f50e5e2e5ce8342edb87f4013f16c7 [file] [log] [blame]
Giorgi Lekveishvilic548ec52020-03-16 21:59:14 +04001syntax = "proto3";
2
Giorgi Lekveishvilib8f089f2020-03-18 23:28:12 +04003package pcloud.api;
4
5option go_package = "api";
Giorgi Lekveishvilic548ec52020-03-16 21:59:14 +04006
7message Chunk {
8 string chunk_id = 1;
9 int32 size_bytes = 2;
10 bytes data = 3;
11}
12
13// ChunkStorage
14
15service ChunkStorage {
16 rpc ListChunks(ListChunksRequest) returns (ListChunksResponse) {}
17
18 rpc ReadChunk(ReadChunkRequest) returns (ReadChunkResponse) {}
19
20 rpc StoreChunk(StoreChunkRequest) returns (StoreChunkResponse) {}
giolekva7be17df2020-03-21 13:57:02 +040021
22 rpc RemoveChunk(RemoveChunkRequest) returns (RemoveChunkResponse) {}
23
24 rpc ReplicateChunk(ReplicateChunkRequest) returns (ReplicateChunkResponse) {}
Giorgi Lekveishvilic548ec52020-03-16 21:59:14 +040025}
26
27message ListChunksRequest {
28}
29
30message ListChunksResponse {
31 repeated string chunk_id = 1;
32}
33
34message ReadChunkRequest {
35 string chunk_id = 1;
36 int32 offset = 2;
37 int32 num_bytes = 3;
38}
39
40message ReadChunkResponse {
41 bytes data = 1;
42}
43
44message StoreChunkRequest {
45 string chunk_id = 1;
46 bytes data = 2;
47}
48
49message StoreChunkResponse {
50}
51
giolekva7be17df2020-03-21 13:57:02 +040052message RemoveChunkRequest {
53 string chunk_id = 1;
54}
55
56message RemoveChunkResponse {
57}
58
59message ReplicateChunkRequest {
60 string chunk_id = 1;
61 string primary_chunk_server = 2;
62}
63
64message ReplicateChunkResponse {
65}
66
Giorgi Lekveishvilic548ec52020-03-16 21:59:14 +040067// MetadataStorage
68
69message ChunkStorageMetadata {
70 string chunk_id = 1;
71 int32 size_bytes = 2;
72 repeated string server = 3;
73}
74
75service MetadataStorage {
76 rpc AddChunkServer(AddChunkServerRequest) returns (AddChunkServerResponse) {}
77
78 rpc CreateBlob(CreateBlobRequest) returns (CreateBlobResponse) {}
79
80 rpc GetBlobMetadata(GetBlobMetadataRequest) returns (GetBlobMetadataResponse) {}
81}
82
83message AddChunkServerRequest {
84 string address = 1;
85}
86
87message AddChunkServerResponse {
88}
89
90message CreateBlobRequest {
91 int32 size_bytes = 1;
92 int32 chunk_size_bytes = 2;
93 int32 num_replicas = 3;
94}
95
96message CreateBlobResponse {
97 string blob_id = 1;
98 repeated ChunkStorageMetadata chunk = 2;
99}
100
101message GetBlobMetadataRequest {
102 string blob_id = 1;
103}
104
105message GetBlobMetadataResponse {
106 string blob_id = 1;
107 int32 size_bytes = 2;
108 repeated ChunkStorageMetadata chunk = 3;
109}