syntax = "proto3";

package milotic_tlbmc;

message GpioAction {
  // Name of the GPIO to monitor.
  // The trigger logic is determined by the GPIO monitor.
  string gpio_name = 1;
  repeated string boards_to_record = 2;
}

message StateMonitorConfig {
  repeated GpioAction gpio_actions = 1;
}

message InitialCheckConfig {
  // Name of the board (key in known_boards).
  string board_name = 1;
  // Optional pattern to discard clean logs for this specific board.
  optional string discard_pattern = 2;
}

message BoardInfo {
  // Path to the board configuration file.
  // The path should indicate a board configuration file.
  string board_config_path = 1;
  // Path that contains the component configuration files.
  // The path should be a directory containing one or more component
  // configuration files.
  string component_config_path = 2;
}

message PowerFaultDetectorConfig {
  // Map of board names to their respective board and component configuration
  // paths.
  map<string, BoardInfo> known_boards = 1;
  // GPIO actions to monitor when in S0 state (host power on).
  StateMonitorConfig s0_config = 2;
  // GPIO actions to monitor when in S5 state (host power off).
  StateMonitorConfig s5_config = 3;
  // The log output directory.
  string log_output_directory = 4;
  // Configuration for the initial bmc boot check.
  repeated InitialCheckConfig initial_checks = 5;
  // Delay in seconds before running the initial check.
  // Useful to allow the system/I2C bus to stabilize after boot.
  optional int32 initial_check_delay_seconds = 6;
}
