Project import generated by Copybara.
GitOrigin-RevId: d9e9e3fb4e31372ec1fb43b178994ca78fa8fe70
diff --git a/api/api_proto/projects.proto b/api/api_proto/projects.proto
new file mode 100644
index 0000000..bcd1167
--- /dev/null
+++ b/api/api_proto/projects.proto
@@ -0,0 +1,211 @@
+// 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
+
+syntax = "proto3";
+
+
+package monorail;
+
+import "api/api_proto/common.proto";
+import "api/api_proto/project_objects.proto";
+
+
+service Projects {
+ rpc ListProjects (ListProjectsRequest) returns (ListProjectsResponse) {}
+ rpc ListProjectTemplates (ListProjectTemplatesRequest) returns (ListProjectTemplatesResponse) {}
+ rpc GetConfig (GetConfigRequest) returns (Config) {}
+ rpc GetPresentationConfig (GetPresentationConfigRequest) returns (PresentationConfig) {}
+ rpc GetCustomPermissions (GetCustomPermissionsRequest) returns (GetCustomPermissionsResponse) {}
+ rpc GetVisibleMembers (GetVisibleMembersRequest) returns (GetVisibleMembersResponse) {}
+ rpc GetLabelOptions (GetLabelOptionsRequest) returns (GetLabelOptionsResponse) {}
+ rpc ListStatuses (ListStatusesRequest) returns (ListStatusesResponse) {}
+ rpc ListComponents (ListComponentsRequest) returns (ListComponentsResponse) {}
+ rpc ListFields (ListFieldsRequest) returns (ListFieldsResponse) {}
+ rpc GetProjectStarCount (GetProjectStarCountRequest) returns (GetProjectStarCountResponse) {}
+ rpc StarProject (StarProjectRequest) returns (StarProjectResponse) {}
+ rpc CheckProjectName (CheckProjectNameRequest) returns (CheckProjectNameResponse) {}
+ rpc CheckComponentName (CheckComponentNameRequest) returns (CheckComponentNameResponse) {}
+ rpc CheckFieldName (CheckFieldNameRequest) returns (CheckFieldNameResponse) {}
+}
+
+
+// Next available tag: 3
+message ListProjectsRequest {
+ int32 page_size = 1;
+ string page_token = 2;
+}
+
+
+// Next available tag: 3
+message ListProjectsResponse {
+ repeated Project projects = 1;
+ string next_page_token = 2;
+}
+
+
+// Next available tag: 3
+message ListProjectTemplatesRequest {
+ string project_name = 2;
+}
+
+
+// Next available tag: 2
+message ListProjectTemplatesResponse {
+ repeated TemplateDef templates = 1;
+}
+
+
+// Next available tag: 3
+message GetConfigRequest {
+ string project_name = 2;
+}
+
+// Next available tag: 3
+message GetPresentationConfigRequest {
+ string project_name = 2;
+}
+
+
+// Next available tag: 3
+message GetCustomPermissionsRequest {
+ string project_name = 2;
+}
+
+
+// Next available tag: 2
+message GetCustomPermissionsResponse {
+ repeated string permissions = 1;
+}
+
+
+// Next available tag: 3
+message GetVisibleMembersRequest {
+ string project_name = 2;
+}
+
+
+// Next available tag: 3
+message GetVisibleMembersResponse {
+ repeated UserRef user_refs = 1;
+ repeated UserRef group_refs = 2;
+}
+
+
+// Next available tag: 3
+message GetLabelOptionsRequest {
+ string project_name = 2;
+}
+
+
+// Next available tag: 3
+message GetLabelOptionsResponse {
+ repeated LabelDef label_options = 1;
+ repeated string exclusive_label_prefixes = 2;
+}
+
+
+// Next available tag: 3
+message ListStatusesRequest {
+ string project_name = 2;
+}
+
+
+// Next available tag: 4
+message ListStatusesResponse {
+ repeated StatusDef status_defs = 1;
+ repeated StatusRef statuses_offer_merge = 2;
+ bool restrict_to_known = 3;
+}
+
+
+// Next available tag: 4
+message ListComponentsRequest {
+ string project_name = 2;
+ bool include_admin_info = 3;
+}
+
+
+// Next available tag: 2
+message ListComponentsResponse {
+ repeated ComponentDef component_defs = 1;
+}
+
+
+// Next available tag: 5
+message ListFieldsRequest {
+ string project_name = 2;
+ bool include_admin_info = 3;
+ bool include_user_choices = 4;
+}
+
+
+// Next available tag: 2
+message ListFieldsResponse {
+ repeated FieldDef field_defs = 1;
+}
+
+
+// Next available tag: 3
+message GetProjectStarCountRequest {
+ string project_name = 2;
+}
+
+
+// Next available tag: 2
+message GetProjectStarCountResponse {
+ uint32 star_count = 1;
+}
+
+
+// Next available tag: 3
+message StarProjectRequest {
+ string project_name = 2;
+ bool starred = 3;
+}
+
+
+// Next available tag: 2
+message StarProjectResponse {
+ uint32 star_count = 1;
+}
+
+
+// Next available tag: 3
+message CheckProjectNameRequest {
+ string project_name = 2;
+}
+
+
+// Next available tag: 1
+message CheckProjectNameResponse {
+ string error = 1;
+}
+
+
+// Next available tag: 5
+message CheckComponentNameRequest {
+ string project_name = 2;
+ string parent_path = 3;
+ string component_name = 4;
+}
+
+
+// Next available tag: 2
+message CheckComponentNameResponse {
+ string error = 1;
+}
+
+
+// Next available tag: 4
+message CheckFieldNameRequest {
+ string project_name = 2;
+ string field_name = 3;
+}
+
+
+// Next available tag: 2
+message CheckFieldNameResponse {
+ string error = 1;
+}