blob: a7ddd3bf92a29a1d69ebd7c76bf619b0ad6890e5 [file] [log] [blame]
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;
}
// FRU data.
message FruData {
map<string, string> fields = 1;
FruI2CInfo fru_info = 2;
AssetInfo asset_info = 3;
}