Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Side by Side Diff: common/api/logdog_coordinator/logs/v1/logs.proto

Issue 1909073002: LogDog: Add project namespace to logs endpoint. (Closed) Base URL: https://github.com/luci/luci-go@logdog-project-storage
Patch Set: Rebase? Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 syntax = "proto3"; 5 syntax = "proto3";
6 6
7 package logdog; 7 package logdog;
8 8
9 import "state.proto"; 9 import "state.proto";
10 import "github.com/luci/luci-go/common/proto/logdog/logpb/log.proto"; 10 import "github.com/luci/luci-go/common/proto/logdog/logpb/log.proto";
11 import "google/protobuf/timestamp.proto"; 11 import "google/protobuf/timestamp.proto";
12 12
13 // GetRequest is the request structure for the user Get endpoint. 13 // GetRequest is the request structure for the user Get endpoint.
14 // 14 //
15 // If the requested log stream exists, a valid GetRequest will succeed 15 // If the requested log stream exists, a valid GetRequest will succeed
16 // regardless of whether the requested log range was available. 16 // regardless of whether the requested log range was available.
17 // 17 //
18 // Note that this endpoint may return fewer logs than requested due to either 18 // Note that this endpoint may return fewer logs than requested due to either
19 // availability or internal constraints. 19 // availability or internal constraints.
20 message GetRequest { 20 message GetRequest {
21 // The request project to request.
22 string project = 1;
21 // The path of the log stream to get. 23 // The path of the log stream to get.
22 // 24 //
23 // This can either be a LogDog stream path or the SHA256 hash of a LogDog 25 // This can either be a LogDog stream path or the SHA256 hash of a LogDog
24 // stream path. 26 // stream path.
25 // 27 //
26 // Some utilities may find passing around a full LogDog path to be cumbersome 28 // Some utilities may find passing around a full LogDog path to be cumbersome
27 // due to its length. They can opt to pass around the hash instead and 29 // due to its length. They can opt to pass around the hash instead and
28 // retrieve logs using it. 30 // retrieve logs using it.
29 string path = 1; 31 string path = 2;
30 32
31 // If true, requests that the log stream's state is returned. 33 // If true, requests that the log stream's state is returned.
32 bool state = 2; 34 bool state = 3;
33 35
34 // The initial log stream index to retrieve. 36 // The initial log stream index to retrieve.
35 int64 index = 10; 37 int64 index = 4;
36 38
37 // The maximum number of bytes to return. If non-zero, it is applied as a 39 // The maximum number of bytes to return. If non-zero, it is applied as a
38 // constraint to limit the number of logs that are returned. 40 // constraint to limit the number of logs that are returned.
39 // 41 //
40 // This only returns complete logs. Assuming logs are available, it will 42 // This only returns complete logs. Assuming logs are available, it will
41 // return at least one log (even if it violates the size constraint) and as 43 // return at least one log (even if it violates the size constraint) and as
42 // many additional logs as it can without exceeding this constraint. 44 // many additional logs as it can without exceeding this constraint.
43 int32 byte_count = 11; 45 int32 byte_count = 5;
44 46
45 // The maximum number of log records to request. 47 // The maximum number of log records to request.
46 // 48 //
47 // If this value is zero, no count constraint will be applied. If this value 49 // If this value is zero, no count constraint will be applied. If this value
48 // is less than zero, no log entries will be returned. This can be used to 50 // is less than zero, no log entries will be returned. This can be used to
49 // fetch log stream descriptors without fetching any log records. 51 // fetch log stream descriptors without fetching any log records.
50 int32 log_count = 12; 52 int32 log_count = 6;
51 53
52 // If true, allows the range request to return non-contiguous records. 54 // If true, allows the range request to return non-contiguous records.
53 // 55 //
54 // A contiguous request (default) will iterate forwards from the supplied 56 // A contiguous request (default) will iterate forwards from the supplied
55 // Index and stop if either the end of stream is encountered or there is a 57 // Index and stop if either the end of stream is encountered or there is a
56 // missing stream index. A NonContiguous request will remove the latter 58 // missing stream index. A NonContiguous request will remove the latter
57 // condition. 59 // condition.
58 // 60 //
59 // For example, say the log stream consists of: 61 // For example, say the log stream consists of:
60 // [3, 4, 6, 7] 62 // [3, 4, 6, 7]
61 // 63 //
62 // A contiguous request with Index 3 will return: [3, 4], stopping because 64 // A contiguous request with Index 3 will return: [3, 4], stopping because
63 // 5 is missing. A non-contiguous request will return [3, 4, 6, 7]. 65 // 5 is missing. A non-contiguous request will return [3, 4, 6, 7].
64 bool non_contiguous = 13; 66 bool non_contiguous = 7;
65 } 67 }
66 68
67 // TailRequest is the request structure for the user Tail endpoint. It returns 69 // TailRequest is the request structure for the user Tail endpoint. It returns
68 // the last log in a given log stream at the time of the request. 70 // the last log in a given log stream at the time of the request.
69 message TailRequest { 71 message TailRequest {
72 // The request project to request.
73 string project = 1;
70 // The path of the log stream to get. 74 // The path of the log stream to get.
71 // 75 //
72 // This can either be a LogDog stream path or the SHA256 hash of a LogDog 76 // This can either be a LogDog stream path or the SHA256 hash of a LogDog
73 // stream path. 77 // stream path.
74 // 78 //
75 // Some utilities may find passing around a full LogDog path to be cumbersome 79 // Some utilities may find passing around a full LogDog path to be cumbersome
76 // due to its length. They can opt to pass around the hash instead and 80 // due to its length. They can opt to pass around the hash instead and
77 // retrieve logs using it. 81 // retrieve logs using it.
78 string path = 1; 82 string path = 2;
79 83
80 // If true, requests that the log stream's state is returned. 84 // If true, requests that the log stream's state is returned.
81 bool state = 2; 85 bool state = 3;
82 } 86 }
83 87
84 // GetResponse is the response structure for the user Get endpoint. 88 // GetResponse is the response structure for the user Get endpoint.
85 message GetResponse { 89 message GetResponse {
86 // The log stream descriptor and state for this stream. 90 // The log stream descriptor and state for this stream.
87 // 91 //
88 // It can be requested by setting the request's State field to true. If the 92 // It can be requested by setting the request's State field to true. If the
89 // Proto field is true, the State's Descriptor field will not be included. 93 // Proto field is true, the State's Descriptor field will not be included.
90 LogStreamState state = 1; 94 LogStreamState state = 1;
91 95
(...skipping 14 matching lines...) Expand all
106 // Trinary represents a trinary value. 110 // Trinary represents a trinary value.
107 enum Trinary { 111 enum Trinary {
108 // Both positive and negative results will be returned. 112 // Both positive and negative results will be returned.
109 BOTH = 0; 113 BOTH = 0;
110 // Only positive results will be returned. 114 // Only positive results will be returned.
111 YES = 1; 115 YES = 1;
112 // Only negative results will be returned. 116 // Only negative results will be returned.
113 NO = 2; 117 NO = 2;
114 } 118 }
115 119
120 // The request project to request.
121 string project = 1;
116 // The query parameter. 122 // The query parameter.
117 // 123 //
118 // The path expression may substitute a glob ("*") for a specific path 124 // The path expression may substitute a glob ("*") for a specific path
119 // component. That is, any stream that matches the remaining structure qualifi es 125 // component. That is, any stream that matches the remaining structure qualifi es
120 // regardless of its value in that specific positional field. 126 // regardless of its value in that specific positional field.
121 // 127 //
122 // An unbounded wildcard may appear as a component at the end of both the 128 // An unbounded wildcard may appear as a component at the end of both the
123 // prefix and name query components. "**" matches all remaining components. 129 // prefix and name query components. "**" matches all remaining components.
124 // 130 //
125 // If the supplied path query does not contain a path separator ("+"), it will 131 // If the supplied path query does not contain a path separator ("+"), it will
126 // be treated as if the prefix is "**". 132 // be treated as if the prefix is "**".
127 // 133 //
128 // Examples: 134 // Examples:
129 // - Empty ("") will return all streams. 135 // - Empty ("") will return all streams.
130 // - **/+/** will return all streams. 136 // - **/+/** will return all streams.
131 // - foo/bar/** will return all streams with the "foo/bar" prefix. 137 // - foo/bar/** will return all streams with the "foo/bar" prefix.
132 // - foo/bar/**/+/baz will return all streams beginning with the "foo/bar" 138 // - foo/bar/**/+/baz will return all streams beginning with the "foo/bar"
133 // prefix and named "baz" (e.g., "foo/bar/qux/lol/+/baz") 139 // prefix and named "baz" (e.g., "foo/bar/qux/lol/+/baz")
134 // - foo/bar/+/** will return all streams with a "foo/bar" prefix. 140 // - foo/bar/+/** will return all streams with a "foo/bar" prefix.
135 // - foo/*/+/baz will return all streams with a two-component prefix whose 141 // - foo/*/+/baz will return all streams with a two-component prefix whose
136 // first value is "foo" and whose name is "baz". 142 // first value is "foo" and whose name is "baz".
137 // - foo/bar will return all streams whose name is "foo/bar". 143 // - foo/bar will return all streams whose name is "foo/bar".
138 // - */* will return all streams with two-component names. 144 // - */* will return all streams with two-component names.
139 string path = 1; 145 string path = 2;
140 146
141 // ContentType, if not empty, restricts results to streams with the supplied 147 // ContentType, if not empty, restricts results to streams with the supplied
142 // content type. 148 // content type.
143 string content_type = 2; 149 string content_type = 3;
144 150
145 // The stream type to filter on. 151 // The stream type to filter on.
146 message StreamTypeFilter { 152 message StreamTypeFilter {
147 // The StreamType value to filter on. 153 // The StreamType value to filter on.
148 logpb.StreamType value = 1; 154 logpb.StreamType value = 1;
149 } 155 }
150 StreamTypeFilter stream_type = 3; 156 StreamTypeFilter stream_type = 4;
151 157
152 // Terminated, if not nil, restricts the query to streams that have or haven't 158 // Terminated, if not nil, restricts the query to streams that have or haven't
153 // been terminated. 159 // been terminated.
154 Trinary terminated = 4; 160 Trinary terminated = 5;
155 161
156 // Archived, if not nil, restricts the query to streams that have or haven't 162 // Archived, if not nil, restricts the query to streams that have or haven't
157 // been archived. 163 // been archived.
158 Trinary archived = 5; 164 Trinary archived = 6;
159 165
160 // Purged, if not nil, restricts the query to streams that have or haven't 166 // Purged, if not nil, restricts the query to streams that have or haven't
161 // been purged. 167 // been purged.
162 Trinary purged = 6; 168 Trinary purged = 7;
163 169
164 // Newer restricts results to streams created after the specified date. 170 // Newer restricts results to streams created after the specified date.
165 google.protobuf.Timestamp newer = 7; 171 google.protobuf.Timestamp newer = 8;
166 // Older restricts results to streams created before the specified date. 172 // Older restricts results to streams created before the specified date.
167 google.protobuf.Timestamp older = 8; 173 google.protobuf.Timestamp older = 9;
168 174
169 // If not empty, constrains the results to those whose protobuf version string 175 // If not empty, constrains the results to those whose protobuf version string
170 // matches the supplied version. 176 // matches the supplied version.
171 string proto_version = 9; 177 string proto_version = 10;
172 178
173 // Tags is the set of tags to constrain the query with. 179 // Tags is the set of tags to constrain the query with.
174 // 180 //
175 // A Tag entry may either be: 181 // A Tag entry may either be:
176 // - A key/value query, in which case the results are constrained by logs 182 // - A key/value query, in which case the results are constrained by logs
177 // whose tag includes that key/value pair. 183 // whose tag includes that key/value pair.
178 // - A key with an missing (nil) value, in which case the results are 184 // - A key with an missing (nil) value, in which case the results are
179 // constraints by logs that have that tag key, regardless of its value. 185 // constraints by logs that have that tag key, regardless of its value.
180 map<string, string> tags = 10; 186 map<string, string> tags = 11;
181 187
182 // Next, if not empty, indicates that this query should continue at the point 188 // Next, if not empty, indicates that this query should continue at the point
183 // where the previous query left off. 189 // where the previous query left off.
184 string next = 11; 190 string next = 12;
185 191
186 // MaxResults is the maximum number of query results to return. 192 // MaxResults is the maximum number of query results to return.
187 // 193 //
188 // If MaxResults is zero, no upper bound will be indicated. However, the 194 // If MaxResults is zero, no upper bound will be indicated. However, the
189 // returned result count is still be subject to internal constraints. 195 // returned result count is still be subject to internal constraints.
190 int32 max_results = 12; 196 int32 max_results = 13;
191 197
192 // If true, returns that the streams' full state is returned instead of just 198 // If true, returns that the streams' full state is returned instead of just
193 // its Path. 199 // its Path.
194 bool state = 13; 200 bool state = 14;
195 201
196 // If true, causes the requested state to be returned as serialized protobuf 202 // If true, causes the requested state to be returned as serialized protobuf
197 // data instead of deserialized JSON structures. 203 // data instead of deserialized JSON structures.
198 bool proto = 14; 204 bool proto = 15;
199 } 205 }
200 206
201 // QueryResponse is the response structure for the user Query endpoint. 207 // QueryResponse is the response structure for the user Query endpoint.
202 message QueryResponse { 208 message QueryResponse {
203 209
204 // Stream represents a single query response stream. 210 // Stream represents a single query response stream.
205 message Stream { 211 message Stream {
206 // Path is the log stream path. 212 // Path is the log stream path.
207 string path = 1; 213 string path = 1;
208 214
(...skipping 20 matching lines...) Expand all
229 repeated Stream streams = 1; 235 repeated Stream streams = 1;
230 236
231 // If not empty, indicates that there are more query results available. 237 // If not empty, indicates that there are more query results available.
232 // These results can be requested by repeating the Query request with the 238 // These results can be requested by repeating the Query request with the
233 // same Path field and supplying this value in the Next field. 239 // same Path field and supplying this value in the Next field.
234 string next = 2; 240 string next = 2;
235 } 241 }
236 242
237 // ListRequest is the request structure for the user List endpoint. 243 // ListRequest is the request structure for the user List endpoint.
238 message ListRequest { 244 message ListRequest {
245 // The request project to request.
246 string project = 1;
239 // Path is the query parameter. 247 // Path is the query parameter.
240 // 248 //
241 // Path should be a prefix fragment of a the valid stream path hierarchy 249 // Path should be a prefix fragment of a the valid stream path hierarchy
242 // root to query. 250 // root to query.
243 string path = 1; 251 string path = 2;
244 252
245 // If true, returns streams under the specified root recursively. Otherwise, 253 // If true, returns streams under the specified root recursively. Otherwise,
246 // only path components immediately under the specified root will be returned. 254 // only path components immediately under the specified root will be returned.
247 bool recursive = 2; 255 bool recursive = 3;
248 // If true, will return only streams. Otherwise, intermediate path components 256 // If true, will return only streams. Otherwise, intermediate path components
249 // will also be returned. 257 // will also be returned.
250 bool stream_only = 3; 258 bool stream_only = 4;
251 // If true, indicates that purged streams should show up in the listing. It is 259 // If true, indicates that purged streams should show up in the listing. It is
252 // an error if a non-admin user requests this option. 260 // an error if a non-admin user requests this option.
253 bool include_purged = 4; 261 bool include_purged = 5;
254 262
255 // The maximum number of componts to return. 263 // The maximum number of componts to return.
256 // 264 //
257 // If <= 0, no upper bound will be indicated. However, the returned result 265 // If <= 0, no upper bound will be indicated. However, the returned result
258 // count is still be subject to internal constraints. 266 // count is still be subject to internal constraints.
259 int32 max_results = 5; 267 int32 max_results = 6;
260 // If not empty, indicates that this query should continue at the point where 268 // If not empty, indicates that this query should continue at the point where
261 // the previous query left off. 269 // the previous query left off.
262 string next = 6; 270 string next = 7;
263 271
264 // State, if true, returns that the streams' full state instead of just its 272 // State, if true, returns that the streams' full state instead of just its
265 // Path. 273 // Path.
266 bool state = 7; 274 bool state = 8;
267 275
268 // Offset, if >= 0, instructs the list operation to skip the supplied number 276 // Offset, if >= 0, instructs the list operation to skip the supplied number
269 // of results. This can be used for pagination. 277 // of results. This can be used for pagination.
270 int32 offset = 8; 278 int32 offset = 9;
271 } 279 }
272 280
273 // ListResponse is the response structure for the user List endpoint. 281 // ListResponse is the response structure for the user List endpoint.
274 message ListResponse { 282 message ListResponse {
283 // The request project to request.
284 string project = 1;
275 // Base is the hierarchy base that was requested. 285 // Base is the hierarchy base that was requested.
276 string base = 1; 286 string base = 2;
277 287
278 // If not empty, indicates that there are more list results available. 288 // If not empty, indicates that there are more list results available.
279 // These results can be requested by repeating the List request with the 289 // These results can be requested by repeating the List request with the
280 // same Path field and supplying this value in the Next field. 290 // same Path field and supplying this value in the Next field.
281 string next = 2; 291 string next = 3;
282 292
283 // The set of listed stream components. 293 // The set of listed stream components.
284 message Component { 294 message Component {
285 // Path is the path component for this entry. When combined with the respons e 295 // Path is the path component for this entry. When combined with the respons e
286 // Base, this will form the full stream path. 296 // Base, this will form the full stream path.
287 string path = 1; 297 string path = 1;
288 // Stream is true if this is a stream component (as opposed to a path 298 // Stream is true if this is a stream component (as opposed to a path
289 // component). 299 // component).
290 bool stream = 2; 300 bool stream = 2;
291 301
292 // State is the log stream descriptor and state for this stream. It will onl y 302 // State is the log stream descriptor and state for this stream. It will onl y
293 // be filled if this is a stream component. 303 // be filled if this is a stream component.
294 // 304 //
295 // It can be requested by setting the request's State field to true. If the 305 // It can be requested by setting the request's State field to true. If the
296 // Proto field is true, the State's Descriptor field will not be included. 306 // Proto field is true, the State's Descriptor field will not be included.
297 LogStreamState state = 3; 307 LogStreamState state = 3;
298 308
299 // Descriptor is the JSON-packed log stream descriptor protobuf. It will onl y 309 // Descriptor is the JSON-packed log stream descriptor protobuf. It will onl y
300 // be filled if this is a stream component. 310 // be filled if this is a stream component.
301 // 311 //
302 // A Descriptor entry corresponds to the Path with the same index. 312 // A Descriptor entry corresponds to the Path with the same index.
303 // 313 //
304 // If the list request's State field is set, the descriptor will be 314 // If the list request's State field is set, the descriptor will be
305 // populated. 315 // populated.
306 logpb.LogStreamDescriptor desc = 4; 316 logpb.LogStreamDescriptor desc = 4;
307 } 317 }
308 repeated Component components = 3; 318 repeated Component components = 4;
309 } 319 }
310 320
311 // Logs is the user-facing log access and query endpoint service. 321 // Logs is the user-facing log access and query endpoint service.
312 service Logs { 322 service Logs {
313 // Get returns state and log data for a single log stream. 323 // Get returns state and log data for a single log stream.
314 rpc Get(GetRequest) returns (GetResponse); 324 rpc Get(GetRequest) returns (GetResponse);
315 325
316 // Tail returns the last log in the log stream at the time of the request. 326 // Tail returns the last log in the log stream at the time of the request.
317 rpc Tail(TailRequest) returns (GetResponse); 327 rpc Tail(TailRequest) returns (GetResponse);
318 328
319 // Query returns log stream paths that match the requested query. 329 // Query returns log stream paths that match the requested query.
320 rpc Query(QueryRequest) returns (QueryResponse); 330 rpc Query(QueryRequest) returns (QueryResponse);
321 331
322 // List returns log stream paths rooted under the path hierarchy. 332 // List returns log stream paths rooted under the path hierarchy.
323 rpc List(ListRequest) returns (ListResponse); 333 rpc List(ListRequest) returns (ListResponse);
324 } 334 }
OLDNEW
« no previous file with comments | « appengine/logdog/coordinator/endpoints/logs/service.go ('k') | common/api/logdog_coordinator/logs/v1/logs.pb.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698