-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathds.proto
155 lines (136 loc) · 3.14 KB
/
ds.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
syntax = "proto3";
option go_package = "./proto";
import "google/protobuf/any.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
message FeaturesRequest {}
message FeaturesResponse {
enum Feature {
DATASTORE = 0;
BATCHING = 1;
CHECKED = 2;
SCRUBBED = 3;
GC = 4;
PERSISTENT = 5;
TTL = 6;
TRANSACTION = 7;
}
repeated Feature features = 1;
}
message GetRequest {
string Key = 1;
}
message GetResponse {
bytes Value = 1;
}
message HasRequest {
string Key = 1;
}
message HasResponse {
bool Has = 1;
}
message GetSizeRequest {
string key = 1;
}
message GetSizeResponse {
uint64 Size = 1;
}
message PutRequest {
string Key = 1;
bytes Value = 2;
}
message PutResponse {}
message DeleteRequest {
string Key = 1;
}
message DeleteResponse {}
message SyncRequest {
string Prefix = 1;
}
message SyncResponse {}
message QueryRequest {
string Prefix = 1;
map<string, bytes> Filters = 2;
map<string, bytes> Orders = 3;
uint64 Limit = 4;
uint64 Offset = 5;
bool KeysOnly = 6;
bool ReturnExpirations = 7;
bool ReturnSizes = 8;
}
message QueryResult {
string Key = 1;
bytes Value = 2;
uint64 Expiration = 3;
uint64 Size = 4;
google.protobuf.Any Error = 5;
}
message QueryFilterValueCompare {
string Op = 1;
bytes Value = 2;
}
message QueryFilterKeyCompare {
string Op = 1;
string Key = 2;
}
message QueryFilterKeyPrefix {
string Prefix = 1;
}
message BatchRequest {
enum OpCode {
PUT = 0;
DELETE = 1;
}
message Op {
OpCode opCode = 1;
string Key = 2;
bytes Value = 3;
}
repeated Op ops = 1;
}
message BatchResponse {}
message CheckRequest{}
message CheckResponse{}
message ScrubRequest {}
message ScrubResponse {}
message CollectGarbageRequest {}
message CollectGarbageResponse {}
message DiskUsageRequest {}
message DiskUsageResponse {
uint64 Size = 1;
}
message PutWithTTLRequest {
string Key = 1;
bytes Value = 2;
google.protobuf.Duration TTL = 3;
}
message PutWithTTLResponse {}
message SetTTLRequest {
string Key = 1;
google.protobuf.Duration TTL = 2;
}
message SetTTLResponse {}
message GetExpirationRequest {
string Key = 1;
}
message GetExpirationResponse {
google.protobuf.Timestamp Expiration = 1;
}
service Datastore {
rpc Features(FeaturesRequest) returns (FeaturesResponse);
rpc Get(GetRequest) returns (GetResponse);
rpc Has(HasRequest) returns (HasResponse);
rpc GetSize(GetSizeRequest) returns (GetSizeResponse);
rpc Put(PutRequest) returns (PutResponse);
rpc Delete(DeleteRequest) returns (DeleteResponse);
rpc Sync(SyncRequest) returns (SyncResponse);
rpc Query(QueryRequest) returns (stream QueryResult);
rpc Batch(BatchRequest) returns (BatchResponse);
rpc Check(CheckRequest) returns (CheckResponse);
rpc Scrub(ScrubRequest) returns (ScrubResponse);
rpc CollectGarbage(CollectGarbageRequest) returns (CollectGarbageResponse);
rpc DiskUsage(DiskUsageRequest) returns (DiskUsageResponse);
rpc PutWithTTL(PutWithTTLRequest) returns (PutWithTTLResponse);
rpc SetTTL(SetTTLRequest) returns (SetTTLResponse);
rpc GetExpiration(GetExpirationRequest) returns (GetExpirationResponse);
}