blob: 9bee6ed5ae207a03f380eadd47a1fc3a460f8dc2 [file] [log] [blame]
// 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;
option go_package = "infra/monorailv2/api/api_proto;monorail";
import "google/protobuf/empty.proto";
import "api/api_proto/common.proto";
import "api/api_proto/issue_objects.proto";
import "api/api_proto/project_objects.proto";
service Issues {
rpc CreateIssue (CreateIssueRequest) returns (IssueResponse) {}
rpc GetIssue (GetIssueRequest) returns (IssueResponse) {}
rpc ListIssues (ListIssuesRequest) returns (ListIssuesResponse) {}
rpc ListReferencedIssues(ListReferencedIssuesRequest) returns (ListReferencedIssuesResponse) {}
rpc ListApplicableFieldDefs(ListApplicableFieldDefsRequest) returns (ListApplicableFieldDefsResponse) {}
rpc UpdateIssue (UpdateIssueRequest) returns (IssueResponse) {}
rpc StarIssue (StarIssueRequest) returns (StarIssueResponse) {}
rpc IsIssueStarred (IsIssueStarredRequest) returns (IsIssueStarredResponse) {}
rpc ListStarredIssues (ListStarredIssuesRequest) returns (ListStarredIssuesResponse) {}
// There is no CreateComment method because comments are created by updates,
// which may have just comment content and no delta.
// There is no GetComment method, clients should use ListComments.
rpc ListComments (ListCommentsRequest) returns (ListCommentsResponse) {}
rpc ListActivities (ListActivitiesRequest) returns (ListActivitiesResponse) {}
rpc DeleteComment (DeleteCommentRequest) returns (google.protobuf.Empty) {}
rpc BulkUpdateApprovals (BulkUpdateApprovalsRequest) returns (BulkUpdateApprovalsResponse) {}
rpc UpdateApproval (UpdateApprovalRequest) returns (UpdateApprovalResponse) {}
rpc ConvertIssueApprovalsTemplate (ConvertIssueApprovalsTemplateRequest) returns (ConvertIssueApprovalsTemplateResponse) {}
rpc IssueSnapshot (IssueSnapshotRequest) returns (IssueSnapshotResponse) {}
rpc PresubmitIssue (PresubmitIssueRequest) returns (PresubmitIssueResponse) {}
rpc RerankBlockedOnIssues (RerankBlockedOnIssuesRequest) returns (RerankBlockedOnIssuesResponse) {}
rpc DeleteIssue (DeleteIssueRequest) returns (DeleteIssueResponse) {}
rpc DeleteIssueComment (DeleteIssueCommentRequest) returns (DeleteIssueCommentResponse) {}
rpc DeleteAttachment (DeleteAttachmentRequest) returns (DeleteAttachmentResponse) {}
rpc FlagIssues (FlagIssuesRequest) returns (FlagIssuesResponse) {}
rpc FlagComment (FlagCommentRequest) returns (FlagCommentResponse) {}
rpc ListIssuePermissions (ListIssuePermissionsRequest) returns (ListIssuePermissionsResponse) {}
rpc MoveIssue (MoveIssueRequest) returns (MoveIssueResponse) {}
rpc CopyIssue (CopyIssueRequest) returns (CopyIssueResponse) {}
}
// Next available tag: 4
message CreateIssueRequest {
string project_name = 2;
Issue issue = 3;
}
// Next available tag: 3
message GetIssueRequest {
IssueRef issue_ref = 2;
}
// Next available tag: 3
message IssueResponse {
Issue issue = 1;
IssueRef moved_to_ref = 2;
}
// Next available tag: 8
message ListIssuesRequest {
string query = 2;
uint32 canned_query = 3;
repeated string project_names = 4;
Pagination pagination = 5;
string group_by_spec = 6;
string sort_spec = 7;
}
// Next available tag: 3
message ListIssuesResponse {
repeated Issue issues = 1;
uint32 total_results = 2;
}
// Next available tag: 3
message ListReferencedIssuesRequest {
repeated IssueRef issue_refs = 2;
}
// Next available tag: 2
message ListReferencedIssuesResponse {
// TODO(ehmaldonado): monorail:4033 Rename these fields to issues rather than
// refs.
repeated Issue open_refs = 1;
repeated Issue closed_refs = 2;
}
// Next available tag: 3
message ListApplicableFieldDefsRequest {
repeated IssueRef issue_refs = 2;
}
// Next available tag: 2
message ListApplicableFieldDefsResponse {
repeated FieldDef field_defs = 1;
}
// Next available tag: 9
message UpdateIssueRequest {
IssueRef issue_ref = 2;
bool send_email = 3;
IssueDelta delta = 4;
string comment_content = 5;
bool is_description = 6;
repeated AttachmentUpload uploads = 7;
repeated int64 kept_attachments = 8;
}
// Next available tag: 4
message StarIssueRequest {
IssueRef issue_ref = 2;
bool starred = 3; // True to add a star, False to remove one.
}
// Next available tag: 2
message StarIssueResponse {
uint32 star_count = 1;
}
// Next available tag: 3
message IsIssueStarredRequest {
IssueRef issue_ref = 2;
}
// Next available tag: 2
message IsIssueStarredResponse {
bool is_starred = 1;
}
// Next available tag: 1
message ListStarredIssuesRequest {
}
// Next available tag: 2
message ListStarredIssuesResponse {
repeated IssueRef starred_issue_refs = 1;
}
// Next available tag: 3
message ListCommentsRequest {
IssueRef issue_ref = 2;
}
// Next available tag: 2
message ListCommentsResponse {
// Comments are in chronological order. The list of comments may
// include deleted, spam, and description comments. Spam and
// deleted comments will only have content supplied if the user is
// allowed to see it.
repeated Comment comments = 1;
}
// Next available tag: 5
message ListActivitiesRequest {
// TODO(tyreej) description
UserRef user_ref = 2;
fixed32 before = 3;
fixed32 after = 4;
}
// Next available tag: 3
message ListActivitiesResponse {
// TODO(tyreej) description
repeated Comment comments = 1;
repeated IssueSummary issue_summaries = 2;
}
// Next available tag: 5
message DeleteCommentRequest {
IssueRef issue_ref = 2;
int64 sequence_num = 3;
bool delete = 4; // True to delete, False to undelete.
}
// TODO: Consider eventually replacing calls to UpdateApprovalRequest
// with BulkUpdateApprovalsRequest.
// TODO: For now, block bulk attaching uploads and survey editing.
// Next available tag: 7
message BulkUpdateApprovalsRequest {
repeated IssueRef issue_refs = 2;
FieldRef field_ref = 3;
ApprovalDelta approval_delta = 4;
string comment_content = 5;
bool send_email = 6;
}
// Next available tag: 2
message BulkUpdateApprovalsResponse {
repeated IssueRef issue_refs = 1;
}
// Next available tag: 10
message UpdateApprovalRequest {
IssueRef issue_ref = 2;
FieldRef field_ref = 3;
ApprovalDelta approval_delta = 4;
string comment_content = 5;
bool send_email = 6;
bool is_description = 7;
repeated AttachmentUpload uploads = 8;
repeated int64 kept_attachments = 9;
}
// Next available tag: 2
message UpdateApprovalResponse {
Approval approval = 1;
// TODO(jojwang): monorail:3895, add new_comment field.
}
// Next available tag: 6
message ConvertIssueApprovalsTemplateRequest {
IssueRef issue_ref = 2;
string template_name = 3;
string comment_content = 4;
bool send_email = 5;
}
// Next available tag: 2
message ConvertIssueApprovalsTemplateResponse {
Issue issue = 1;
}
// Next available tag: 9
message IssueSnapshotRequest {
int32 timestamp = 2;
string query = 3;
int32 canned_query = 4;
string group_by = 5;
string label_prefix = 6;
string project_name = 7;
int32 hotlist_id = 8;
}
// Next available tag: 3
message IssueSnapshotCount {
string dimension = 1;
int32 count = 2;
}
// Next available tag: 3
message IssueSnapshotResponse {
repeated IssueSnapshotCount snapshot_count = 1;
repeated string unsupported_field = 2;
bool search_limit_reached = 3;
}
// Next available tag: 4
message PresubmitIssueRequest {
IssueRef issue_ref = 2;
IssueDelta issue_delta = 3;
}
// Next available tag: 8
message PresubmitIssueResponse {
string owner_availability = 1;
string owner_availability_state = 2;
repeated ValueAndWhy derived_labels = 3;
repeated ValueAndWhy derived_owners = 4;
repeated ValueAndWhy derived_ccs = 5;
repeated ValueAndWhy warnings = 6;
repeated ValueAndWhy errors = 7;
}
// Next available tag: 6
message RerankBlockedOnIssuesRequest {
IssueRef issue_ref = 2;
IssueRef moved_ref = 3;
IssueRef target_ref = 4;
bool split_above = 5;
}
// Next available tag: 2
message RerankBlockedOnIssuesResponse {
repeated IssueRef blocked_on_issue_refs = 1;
}
// Next available tag: 4
message DeleteIssueRequest {
IssueRef issue_ref = 2;
bool delete = 3;
}
// Next available tag: 1
message DeleteIssueResponse {
}
// Next available tag: 5
message DeleteIssueCommentRequest {
IssueRef issue_ref = 2;
uint32 sequence_num = 3;
bool delete = 4;
}
// Next available tag: 1
message DeleteIssueCommentResponse {
}
// Next available tag: 6
message DeleteAttachmentRequest {
IssueRef issue_ref = 2;
uint32 sequence_num = 3;
uint32 attachment_id = 4;
bool delete = 5;
}
// Next available tag: 1
message DeleteAttachmentResponse {
}
// Next available tag: 4
message FlagIssuesRequest {
repeated IssueRef issue_refs = 2;
bool flag = 3;
}
// Next available tag: 1
message FlagIssuesResponse {
}
// Next available tag: 5
message FlagCommentRequest {
IssueRef issue_ref = 2;
uint32 sequence_num = 3;
bool flag = 4;
}
// Next available tag: 1
message FlagCommentResponse {
}
// Next available tag: 3
message ListIssuePermissionsRequest {
IssueRef issue_ref = 2;
}
// Next available tag: 2
message ListIssuePermissionsResponse {
repeated string permissions = 1;
}
// Next available tag: 4
message MoveIssueRequest {
IssueRef issue_ref = 2;
string target_project_name = 3;
}
// Next available tag: 2
message MoveIssueResponse {
IssueRef new_issue_ref = 1;
}
// Next available tag: 4
message CopyIssueRequest {
IssueRef issue_ref = 2;
string target_project_name = 3;
}
// Next available tag: 2
message CopyIssueResponse {
IssueRef new_issue_ref = 1;
}