Project import generated by Copybara.

GitOrigin-RevId: d9e9e3fb4e31372ec1fb43b178994ca78fa8fe70
diff --git a/api/api_proto/project_objects.proto b/api/api_proto/project_objects.proto
new file mode 100644
index 0000000..a6943ec
--- /dev/null
+++ b/api/api_proto/project_objects.proto
@@ -0,0 +1,136 @@
+// 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 protobufs for issues and related business
+// objects, e.g., field values, comments, and attachments.
+
+syntax = "proto3";
+
+package monorail;
+
+import "api/api_proto/common.proto";
+import "api/api_proto/issue_objects.proto";
+
+
+// Next available tag: 4
+message Project {
+  string name = 1;
+  string summary = 2;
+  string description = 3;
+}
+
+
+// Next available tag: 6
+message StatusDef {
+  string status = 1;
+  bool means_open = 2;
+  uint32 rank = 3;
+  string docstring = 4;
+  bool deprecated = 5;
+}
+
+
+// Next available tag: 5
+message LabelDef {
+  string label = 1;
+  string docstring = 3;
+  bool deprecated = 4;
+}
+
+
+// Next available tag: 11
+message ComponentDef {
+  string path = 1;
+  string docstring = 2;
+  repeated UserRef admin_refs = 3;
+  repeated UserRef cc_refs = 4;
+  bool deprecated = 5;
+  fixed32 created = 6;
+  UserRef creator_ref = 7;
+  fixed32 modified = 8;
+  UserRef modifier_ref = 9;
+  repeated LabelRef label_refs = 10;
+}
+
+
+// Next available tag: 9
+message FieldDef {
+  FieldRef field_ref = 1;
+  string applicable_type = 2;
+  // TODO(jrobbins): applicable_predicate
+  bool is_required = 3;
+  bool is_niche = 4;
+  bool is_multivalued = 5;
+  string docstring = 6;
+  repeated UserRef admin_refs = 7;
+  // TODO(jrobbins): validation, permission granting, and notification options.
+  bool is_phase_field = 8;
+  repeated UserRef user_choices = 9;
+  repeated LabelDef enum_choices = 10;
+}
+
+
+// Next available tag: 3
+message FieldOptions {
+  FieldRef field_ref = 1;
+  repeated UserRef user_refs = 2;
+}
+
+
+// Next available tag: 4
+message ApprovalDef {
+  FieldRef field_ref = 1;
+  repeated UserRef approver_refs = 2;
+  string survey = 3;
+}
+
+
+// Next available tag: 11
+message Config {
+  string project_name = 1;
+  repeated StatusDef status_defs = 2;
+  repeated StatusRef statuses_offer_merge = 3;
+  repeated LabelDef label_defs = 4;
+  repeated string exclusive_label_prefixes = 5;
+  repeated ComponentDef component_defs = 6;
+  repeated FieldDef field_defs = 7;
+  repeated ApprovalDef approval_defs = 8;
+  bool restrict_to_known = 9;
+}
+
+
+// Next available tag: 11
+message PresentationConfig {
+  string project_thumbnail_url = 1;
+  string project_summary = 2;
+  string custom_issue_entry_url = 3;
+  string default_query = 4;
+  repeated SavedQuery saved_queries = 5;
+  string revision_url_format = 6;
+  string default_col_spec = 7;
+  string default_sort_spec = 8;
+  string default_x_attr = 9;
+  string default_y_attr = 10;
+}
+
+
+// Next available tag: 16
+message TemplateDef {
+  string template_name = 1;
+  string content = 2;
+  string summary = 3;
+  bool summary_must_be_edited = 4;
+  UserRef owner_ref = 5;
+  StatusRef status_ref = 6;
+  repeated LabelRef label_refs = 7;
+  bool members_only = 8;
+  bool owner_defaults_to_member = 9;
+  repeated UserRef admin_refs = 10;
+  repeated FieldValue field_values = 11;
+  repeated ComponentRef component_refs = 12;
+  bool component_required = 13;
+  repeated Approval approval_values = 14;
+  repeated PhaseDef phases = 15;
+}