| // 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 "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; |
| } |