Project import generated by Copybara.
GitOrigin-RevId: d9e9e3fb4e31372ec1fb43b178994ca78fa8fe70
diff --git a/api/api_proto/common.proto b/api/api_proto/common.proto
new file mode 100644
index 0000000..0ff0750
--- /dev/null
+++ b/api/api_proto/common.proto
@@ -0,0 +1,109 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file or at
+// https://developers.google.com/open-source/licenses/bsd
+
+// This file defines small protobufs that are included as parts of
+// multiple services or *_objects.proto PBs.
+//
+// "Ref" objects contain enough information for a UI to display
+// something to the user, and identifying info so that the client can
+// request more info from the server.
+
+syntax = "proto3";
+
+package monorail;
+
+
+// Next available tag: 3
+message ComponentRef {
+ string path = 1;
+ bool is_derived = 2;
+}
+
+
+// Next available tag: 9
+enum FieldType {
+ NO_TYPE = 0;
+ ENUM_TYPE = 1;
+ INT_TYPE = 2;
+ STR_TYPE = 3;
+ USER_TYPE = 4;
+ DATE_TYPE = 5;
+ BOOL_TYPE = 6;
+ URL_TYPE = 7;
+ APPROVAL_TYPE = 8;
+}
+
+
+// Next available tag: 5
+message FieldRef {
+ // TODO(crbug.com/monorail/4062): Don't use field IDs to identify fields.
+ uint64 field_id = 1;
+ string field_name = 2;
+ FieldType type = 3;
+ string approval_name = 4;
+}
+
+
+// Next available tag: 3
+message LabelRef {
+ string label = 1;
+ bool is_derived = 2;
+}
+
+
+// Next available tag: 4
+message StatusRef {
+ string status = 1;
+ bool means_open = 2;
+ bool is_derived = 3;
+}
+
+
+// Next available tag: 4
+message IssueRef {
+ string project_name = 1;
+ uint32 local_id = 2;
+ string ext_identifier = 3; // For referencing external issues, e.g. b/1234.
+}
+
+
+// Next available tag: 4
+message UserRef {
+ uint64 user_id = 1;
+ string display_name = 2; // email, or obscured like "usern...@example.com".
+ bool is_derived = 3;
+}
+
+
+// Next available tag: 4
+message HotlistRef {
+ // TODO(4131): Don't use hotlist IDs to identify hotlists.
+ uint64 hotlist_id = 1;
+ string name = 2;
+ UserRef owner = 3;
+}
+
+
+// Next available tag: 3
+message ValueAndWhy {
+ string value = 1;
+ string why = 2;
+}
+
+
+// Next available tag: 3
+message Pagination {
+ uint32 max_items = 1;
+ uint32 start = 2;
+}
+
+
+// Next available tag: 5
+message SavedQuery {
+ uint64 query_id = 1;
+ string name = 2;
+ string query = 3;
+ repeated string project_names = 4;
+}