| syntax = "proto3"; |
| |
| package testgrid.api.v1; |
| option go_package = "github.com/GoogleCloudPlatform/testgrid/pb/api/v1"; |
| |
| import "google/protobuf/timestamp.proto"; |
| import "pb/config/config.proto"; |
| import "pb/state/state.proto"; |
| |
| service TestGridData { |
| // GET /dashboards |
| // Lists dashboard names |
| rpc ListDashboard(ListDashboardRequest) returns (ListDashboardResponse) {} |
| |
| // GET /dashboard-groups |
| // Lists the dashboard group names |
| rpc ListDashboardGroup(ListDashboardGroupRequest) |
| returns (ListDashboardGroupResponse) {} |
| |
| // GET /dashboards/{dashboard}/tabs |
| // Lists the dashboard tab names |
| rpc ListDashboardTabs(ListDashboardTabsRequest) |
| returns (ListDashboardTabsResponse) {} |
| |
| // GET /dashboards/{dashboard} |
| // Returns a Dashboard config's metadata |
| // Excludes subtabs, accessed through the /tabs list method instead |
| rpc GetDashboard(GetDashboardRequest) returns (GetDashboardResponse) {} |
| |
| // GET /dashboard-groups/{dashboard-group} |
| // Lists the dashboard names in that group |
| rpc GetDashboardGroup(GetDashboardGroupRequest) |
| returns (GetDashboardGroupResponse) {} |
| |
| // GET /dashboards/{dashboard}/tabs/{tab} |
| // Returns a tab’s configuration, as stored |
| // rpc GetDashboardTab(GetDashboardTabRequest) returns |
| // (GetDashboardTabResponse) {} |
| |
| // GET /summary/{dashboard} |
| // GET /dashboards/{dashboard}/summary |
| // Returns a summary of this dashboard, as stored |
| // rpc GetSummary(GetSummaryRequest) returns (GetSummaryResponse) {} |
| |
| // GET /dashboards/{dashboard}/tabs/{tab}/headers |
| // Returns the headers for grid results |
| rpc ListHeaders(ListHeadersRequest) returns (ListHeadersResponse) {} |
| |
| // GET /dashboards/{dashboard}/tabs/{tab}/rows |
| // Returns information on grid rows, and data within those rows |
| rpc ListRows(ListRowsRequest) returns (ListRowsResponse) {} |
| } |
| |
| message ListDashboardRequest { string scope = 1; } |
| |
| message ListDashboardResponse { repeated Resource dashboards = 1; } |
| |
| message ListDashboardGroupRequest { string scope = 1; } |
| |
| message ListDashboardGroupResponse { repeated Resource dashboard_groups = 1; } |
| |
| message ListDashboardTabsRequest { |
| string scope = 1; |
| string dashboard = 2; |
| } |
| |
| message ListDashboardTabsResponse { repeated Resource dashboard_tabs = 1; } |
| |
| message GetDashboardRequest { |
| string scope = 1; |
| string dashboard = 2; |
| } |
| |
| message GetDashboardResponse { |
| // A list of notifications attached to this dashboard. |
| // This is displayed on any dashboard tab in this dashboard. |
| repeated Notification notifications = 1; |
| |
| // Control which tab is displayed when first opening a dashboard. |
| // Defaults to Summary |
| string default_tab = 2; |
| |
| // Controls whether to suppress highlighting of failing tabs. |
| bool suppress_failing_tabs = 3; |
| |
| // Controls whether to apply special highlighting to result header columns for |
| // the current day. |
| bool highlight_today = 4; |
| } |
| |
| message GetDashboardGroupRequest { |
| string scope = 1; |
| string dashboard_group = 2; |
| } |
| |
| message GetDashboardGroupResponse { repeated Resource dashboards = 1; } |
| |
| message ListHeadersRequest { |
| string scope = 1; |
| string dashboard = 2; |
| string tab = 3; |
| } |
| |
| message ListHeadersResponse { |
| repeated Header headers = 1; |
| |
| message Header { |
| // Unique instance of the job, typically BUILD_NUMBER from prow or a guid |
| string build = 1; |
| |
| // Name associated with the column (such as the run/invocation ID). No two |
| // columns should have the same build_id and name. The name field allows the |
| // display of multiple columns with the same build_id. |
| string name = 2; |
| |
| // When the build started running |
| google.protobuf.Timestamp started = 3; |
| |
| // Additional custom headers like commit, image used, etc. |
| repeated string extra = 4; |
| |
| // Custom hotlist ids. |
| string hotlist_ids = 5; |
| } |
| } |
| |
| message ListRowsRequest { |
| string scope = 1; |
| string dashboard = 2; |
| string tab = 3; |
| } |
| |
| message ListRowsResponse { |
| repeated Row rows = 1; |
| |
| message Row { |
| // Display name of the test case |
| string name = 1; |
| |
| // Historical results of the test case. Unencoded. |
| repeated Cell cells = 2; |
| |
| // Issue or Bug IDs associated with the test case |
| repeated string issues = 3; |
| |
| // Alert associated with the test case |
| AlertInfo alert = 4; |
| |
| // TODO(chases2): Add metrics to these resources |
| } |
| |
| message Cell { |
| int32 result = 1; |
| string cell_id = 2; |
| string message = 3; |
| string icon = 4; |
| } |
| } |
| |
| // A Resource is a REST resource, often returned by a LIST command |
| // It includes the name of the resource and a link to the resource |
| message Resource { |
| string name = 1; |
| string link = 2; |
| } |