// SonarQube, open source software quality management tool. // Copyright (C) 2008-2016 SonarSource // mailto:contact AT sonarsource DOT com // // SonarQube is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 3 of the License, or (at your option) any later version. // // SonarQube is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License // along with this program; if not, write to the Free Software Foundation, // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. syntax = "proto2"; package sonarqube.ws.commons; option java_package = "org.sonarqube.ws"; option java_outer_classname = "Common"; option optimize_for = SPEED; message Paging { optional int32 pageIndex = 1; optional int32 pageSize = 2; optional int32 total = 3; } message Facet { // kind of key optional string property = 1; repeated FacetValue values = 2; } message Facets { repeated Facet facets = 1; } message FacetValue { optional string val = 1; optional int64 count = 2; } enum Severity { INFO = 0; MINOR = 1; MAJOR = 2; CRITICAL = 3; BLOCKER = 4; } message Rule { optional string key = 1; optional string name = 2; optional string lang = 3; optional RuleStatus status = 4; optional string langName = 5; } message Rules { repeated Rule rules = 1; } enum RuleStatus { BETA = 0; DEPRECATED = 1; READY = 2; REMOVED = 3; } enum RuleScope { MAIN = 0; TEST = 1; ALL = 2; } // Lines start at 1 and line offsets start at 0 message TextRange { // Start line. Should never be absent optional int32 startLine = 1; // End line (inclusive). Absent means it is same as start line optional int32 endLine = 2; // If absent it means range starts at the first offset of start line optional int32 startOffset = 3; // If absent it means range ends at the last offset of end line optional int32 endOffset = 4; } message Metric { optional string key = 1; optional string name = 2; optional string description = 3; optional string domain = 4; optional string type = 5; optional bool higherValuesAreBetter = 6; optional bool qualitative = 7; optional bool hidden = 8; optional bool custom = 9; optional int32 decimalScale = 10; optional string bestValue = 11; optional string worstValue = 12; } enum RuleType { // Zero is required in order to not get MAINTAINABILITY as default value // See http://androiddevblog.com/protocol-buffers-pitfall-adding-enum-values/ UNKNOWN = 0; // same name as in Java enum IssueType, // same index values as in database (see column ISSUES.ISSUE_TYPE) CODE_SMELL = 1; BUG = 2; VULNERABILITY = 3; SECURITY_HOTSPOT = 4; } enum BranchType { // Zero is required in order to not get LONG as default value // See http://androiddevblog.com/protocol-buffers-pitfall-adding-enum-values/ UNKNOWN_BRANCH_TYPE = 0; LONG = 1; SHORT = 2; PULL_REQUEST = 3; } message Organization { optional string key = 1; optional string name = 2; }