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;
+}