// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// This file defines small protobufs that are included as parts of
// multiple services or *_objects.proto PBs.
//
// "Ref" objects contain enough information for a UI to display
// something to the user, and identifying info so that the client can
// request more info from the server.

syntax = "proto3";

package monorail;

option go_package = "infra/monorailv2/api/api_proto;monorail";

// Next available tag: 3
message ComponentRef {
  string path = 1;
  bool is_derived = 2;
}


// Next available tag: 9
enum FieldType {
  NO_TYPE = 0;
  ENUM_TYPE = 1;
  INT_TYPE = 2;
  STR_TYPE = 3;
  USER_TYPE = 4;
  DATE_TYPE = 5;
  BOOL_TYPE = 6;
  URL_TYPE = 7;
  APPROVAL_TYPE = 8;
}


// Next available tag: 5
message FieldRef {
  // TODO(crbug.com/monorail/4062): Don't use field IDs to identify fields.
  uint64 field_id = 1;
  string field_name = 2;
  FieldType type = 3;
  string approval_name = 4;
}


// Next available tag: 3
message LabelRef {
  string label = 1;
  bool is_derived = 2;
}


// Next available tag: 4
message StatusRef {
  string status = 1;
  bool means_open = 2;
  bool is_derived = 3;
}


// Next available tag: 4
message IssueRef {
  string project_name = 1;
  uint32 local_id = 2;
  string ext_identifier = 3; // For referencing external issues, e.g. b/1234.
}


// Next available tag: 4
message UserRef {
  uint64 user_id = 1;
  string display_name = 2;  // email, or obscured like "usern...@example.com".
  bool is_derived = 3;
}


// Next available tag: 4
message HotlistRef {
  // TODO(4131): Don't use hotlist IDs to identify hotlists.
  uint64 hotlist_id = 1;
  string name = 2;
  UserRef owner = 3;
}


// Next available tag: 3
message ValueAndWhy {
  string value = 1;
  string why = 2;
}


// Next available tag: 3
message Pagination {
  uint32 max_items = 1;
  uint32 start = 2;
}


// Next available tag: 5
message SavedQuery {
  uint64 query_id = 1;
  string name = 2;
  string query = 3;
  repeated string project_names = 4;
}
