// 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

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