edition = "2023";

package milotic_tlbmc;

import "resource.proto";

message RawFruTable {
  map<string, RawFru> key_to_raw_fru = 1;
}

message FruTable {
  map<string, Fru> key_to_fru = 1;
}

message RawFru {
  // Key in raw fru table.
  string key = 1;

  // Transport information.
  oneof transport {
    I2CAddress i2c_info = 2;
  }
  // FRU data.
  FruData data = 3;
}

// FRU information.
message Fru {
  // FRU attributes.
  Attributes attributes = 1;
  // Transport information.
  oneof transport {
    I2CAddress i2c_info = 2;
  }
  // FRU data.
  FruData data = 3;
}

// I2C information.
message I2CAddress {
  // I2C bus number.
  uint64 bus = 1;
  // I2C address.
  uint64 address = 2;
}

message FruI2CInfo {
  string board_manufacturer = 1;
  string board_product_name = 2;
  string board_serial_number = 3;
  string board_part_number = 4;
  string product_manufacturer = 5;
  string product_product_name = 6;
  string product_serial_number = 7;
  string product_part_number = 8;
}

// The relevant asset information for the FRU. An asset information field can
// either be derived from FRU, or from the specified string value in config.
message AssetInfo {
  string manufacturer = 1;
  string product_name = 2;
  string serial_number = 3;
  string part_number = 4;
}

// Fans have special properties that need to be exposed.
message FanInfo {
  string name = 1;
  string model = 2;
  bool is_hotpluggable = 3;
  string pwm_sensor_name = 4;
  string tach_sensor_name = 5;
}

// FRU data.
message FruData {
  map<string, string> fields = 1;
  FruI2CInfo fru_info = 2;
  AssetInfo asset_info = 3;

  // There are many different types of FRUs, so we need the relevant data for each type of FRU.
  oneof subtype {
    FanInfo fan_info = 4;
  }
}
