blob: a6943ec69843dfebb334433ec3d1b396bbacb930 [file] [log] [blame]
Copybara854996b2021-09-07 19:36:02 +00001// Copyright 2018 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file or at
4// https://developers.google.com/open-source/licenses/bsd
5
6// This file defines protobufs for issues and related business
7// objects, e.g., field values, comments, and attachments.
8
9syntax = "proto3";
10
11package monorail;
12
13import "api/api_proto/common.proto";
14import "api/api_proto/issue_objects.proto";
15
16
17// Next available tag: 4
18message Project {
19 string name = 1;
20 string summary = 2;
21 string description = 3;
22}
23
24
25// Next available tag: 6
26message StatusDef {
27 string status = 1;
28 bool means_open = 2;
29 uint32 rank = 3;
30 string docstring = 4;
31 bool deprecated = 5;
32}
33
34
35// Next available tag: 5
36message LabelDef {
37 string label = 1;
38 string docstring = 3;
39 bool deprecated = 4;
40}
41
42
43// Next available tag: 11
44message ComponentDef {
45 string path = 1;
46 string docstring = 2;
47 repeated UserRef admin_refs = 3;
48 repeated UserRef cc_refs = 4;
49 bool deprecated = 5;
50 fixed32 created = 6;
51 UserRef creator_ref = 7;
52 fixed32 modified = 8;
53 UserRef modifier_ref = 9;
54 repeated LabelRef label_refs = 10;
55}
56
57
58// Next available tag: 9
59message FieldDef {
60 FieldRef field_ref = 1;
61 string applicable_type = 2;
62 // TODO(jrobbins): applicable_predicate
63 bool is_required = 3;
64 bool is_niche = 4;
65 bool is_multivalued = 5;
66 string docstring = 6;
67 repeated UserRef admin_refs = 7;
68 // TODO(jrobbins): validation, permission granting, and notification options.
69 bool is_phase_field = 8;
70 repeated UserRef user_choices = 9;
71 repeated LabelDef enum_choices = 10;
72}
73
74
75// Next available tag: 3
76message FieldOptions {
77 FieldRef field_ref = 1;
78 repeated UserRef user_refs = 2;
79}
80
81
82// Next available tag: 4
83message ApprovalDef {
84 FieldRef field_ref = 1;
85 repeated UserRef approver_refs = 2;
86 string survey = 3;
87}
88
89
90// Next available tag: 11
91message Config {
92 string project_name = 1;
93 repeated StatusDef status_defs = 2;
94 repeated StatusRef statuses_offer_merge = 3;
95 repeated LabelDef label_defs = 4;
96 repeated string exclusive_label_prefixes = 5;
97 repeated ComponentDef component_defs = 6;
98 repeated FieldDef field_defs = 7;
99 repeated ApprovalDef approval_defs = 8;
100 bool restrict_to_known = 9;
101}
102
103
104// Next available tag: 11
105message PresentationConfig {
106 string project_thumbnail_url = 1;
107 string project_summary = 2;
108 string custom_issue_entry_url = 3;
109 string default_query = 4;
110 repeated SavedQuery saved_queries = 5;
111 string revision_url_format = 6;
112 string default_col_spec = 7;
113 string default_sort_spec = 8;
114 string default_x_attr = 9;
115 string default_y_attr = 10;
116}
117
118
119// Next available tag: 16
120message TemplateDef {
121 string template_name = 1;
122 string content = 2;
123 string summary = 3;
124 bool summary_must_be_edited = 4;
125 UserRef owner_ref = 5;
126 StatusRef status_ref = 6;
127 repeated LabelRef label_refs = 7;
128 bool members_only = 8;
129 bool owner_defaults_to_member = 9;
130 repeated UserRef admin_refs = 10;
131 repeated FieldValue field_values = 11;
132 repeated ComponentRef component_refs = 12;
133 bool component_required = 13;
134 repeated Approval approval_values = 14;
135 repeated PhaseDef phases = 15;
136}