1syntax = "proto2";
2option go_package = "memcache";
3
4package appengine;
5
6message MemcacheServiceError {
7  enum ErrorCode {
8    OK = 0;
9    UNSPECIFIED_ERROR = 1;
10    NAMESPACE_NOT_SET = 2;
11    PERMISSION_DENIED = 3;
12    INVALID_VALUE = 6;
13  }
14}
15
16message AppOverride {
17  required string app_id = 1;
18
19  optional int32 num_memcacheg_backends = 2 [deprecated=true];
20  optional bool ignore_shardlock = 3 [deprecated=true];
21  optional string memcache_pool_hint = 4 [deprecated=true];
22  optional bytes memcache_sharding_strategy = 5 [deprecated=true];
23}
24
25message MemcacheGetRequest {
26  repeated bytes key = 1;
27  optional string name_space = 2 [default = ""];
28  optional bool for_cas = 4;
29  optional AppOverride override = 5;
30}
31
32message MemcacheGetResponse {
33  repeated group Item = 1 {
34    required bytes key = 2;
35    required bytes value = 3;
36    optional fixed32 flags = 4;
37    optional fixed64 cas_id = 5;
38    optional int32 expires_in_seconds = 6;
39  }
40}
41
42message MemcacheSetRequest {
43  enum SetPolicy {
44    SET = 1;
45    ADD = 2;
46    REPLACE = 3;
47    CAS = 4;
48  }
49  repeated group Item = 1 {
50    required bytes key = 2;
51    required bytes value = 3;
52
53    optional fixed32 flags = 4;
54    optional SetPolicy set_policy = 5 [default = SET];
55    optional fixed32 expiration_time = 6 [default = 0];
56
57    optional fixed64 cas_id = 8;
58    optional bool for_cas = 9;
59  }
60  optional string name_space = 7 [default = ""];
61  optional AppOverride override = 10;
62}
63
64message MemcacheSetResponse {
65  enum SetStatusCode {
66    STORED = 1;
67    NOT_STORED = 2;
68    ERROR = 3;
69    EXISTS = 4;
70  }
71  repeated SetStatusCode set_status = 1;
72}
73
74message MemcacheDeleteRequest {
75  repeated group Item = 1 {
76    required bytes key = 2;
77    optional fixed32 delete_time = 3 [default = 0];
78  }
79  optional string name_space = 4 [default = ""];
80  optional AppOverride override = 5;
81}
82
83message MemcacheDeleteResponse {
84  enum DeleteStatusCode {
85    DELETED = 1;
86    NOT_FOUND = 2;
87  }
88  repeated DeleteStatusCode delete_status = 1;
89}
90
91message MemcacheIncrementRequest {
92  enum Direction {
93    INCREMENT = 1;
94    DECREMENT = 2;
95  }
96  required bytes key = 1;
97  optional string name_space = 4 [default = ""];
98
99  optional uint64 delta = 2 [default = 1];
100  optional Direction direction = 3 [default = INCREMENT];
101
102  optional uint64 initial_value = 5;
103  optional fixed32 initial_flags = 6;
104  optional AppOverride override = 7;
105}
106
107message MemcacheIncrementResponse {
108  enum IncrementStatusCode {
109    OK = 1;
110    NOT_CHANGED = 2;
111    ERROR = 3;
112  }
113
114  optional uint64 new_value = 1;
115  optional IncrementStatusCode increment_status = 2;
116}
117
118message MemcacheBatchIncrementRequest {
119  optional string name_space = 1 [default = ""];
120  repeated MemcacheIncrementRequest item = 2;
121  optional AppOverride override = 3;
122}
123
124message MemcacheBatchIncrementResponse {
125  repeated MemcacheIncrementResponse item = 1;
126}
127
128message MemcacheFlushRequest {
129  optional AppOverride override = 1;
130}
131
132message MemcacheFlushResponse {
133}
134
135message MemcacheStatsRequest {
136  optional AppOverride override = 1;
137}
138
139message MergedNamespaceStats {
140  required uint64 hits = 1;
141  required uint64 misses = 2;
142  required uint64 byte_hits = 3;
143
144  required uint64 items = 4;
145  required uint64 bytes = 5;
146
147  required fixed32 oldest_item_age = 6;
148}
149
150message MemcacheStatsResponse {
151  optional MergedNamespaceStats stats = 1;
152}
153
154message MemcacheGrabTailRequest {
155  required int32 item_count = 1;
156  optional string name_space = 2 [default = ""];
157  optional AppOverride override = 3;
158}
159
160message MemcacheGrabTailResponse {
161  repeated group Item = 1 {
162    required bytes value = 2;
163    optional fixed32 flags = 3;
164  }
165}
166