edition = "2023";

package milotic_tlbmc;

import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";

// Refresh mode of telemetry data.
enum RefreshMode {
  // Default value.
  REFRESH_MODE_UNSPECIFIED = 0;
  // Data is refreshed on demand.
  REFRESH_MODE_ON_DEMAND = 1;
  // Data is refreshed periodically.
  REFRESH_MODE_PERIODIC = 2;
}

message RefreshPolicy {
  // Refresh mode of telemetry data.
  RefreshMode refresh_mode = 1;
  // Refresh interval of telemetry data.
  google.protobuf.Duration refresh_interval = 2;
}

// State of telemetry data.
enum Status {
  // Data has not been initialized by the collector.
  // Default state on boot.
  STATUS_UNKNOWN = 0;
  // Fresh data ready to be served.
  STATUS_READY = 1;
  // State when data refresh timed out or an error occurred preventing future
  // refreshes.
  STATUS_STALE = 2;
}

// Type of the resource object.
enum ResourceType {
  RESOURCE_TYPE_UNSPECIFIED = 0;
  RESOURCE_TYPE_BOARD = 1;
  RESOURCE_TYPE_CABLE = 2;
  RESOURCE_TYPE_PROCESSOR = 3;
  RESOURCE_TYPE_STORAGE = 4;
  RESOURCE_TYPE_COMPUTER_SYSTEM = 5;
  RESOURCE_TYPE_FAN = 6;
  RESOURCE_TYPE_ASSEMBLY = 7;
}

// Type of the chassis, used when resource type is RESOURCE_TYPE_BOARD.
// See ChassisType in: https://redfish.dmtf.org/schemas/v1/Chassis.v1_26_0.json
enum ChassisType {
  CHASSIS_TYPE_UNSPECIFIED = 0;
  CHASSIS_TYPE_RACK_MOUNT = 1;
  CHASSIS_TYPE_MODULE = 2;
  CHASSIS_TYPE_STORAGE_ENCLOSURE = 3;
  CHASSIS_TYPE_COMPONENT = 4;
  CHASSIS_TYPE_STANDALONE = 5;
}

message ChassisProperties {
  ChassisType chassis_type = 1;
  bool bmcnet = 2;
}

message Attributes {
  // Unique key of the resource.
  string key = 1;
  // Status of the resource.
  Status status = 2;
  // Refresh mode of the resource.
  RefreshPolicy refresh_policy = 3;
  // Last time the resource was refreshed.
  google.protobuf.Timestamp last_refreshed_time = 4;
  google.protobuf.Timestamp next_refreshed_time = 5;
  // Status message. Can be used to provide more details about the status
  // especially when the status is not ready.
  string status_message = 6;
  // Type of the resource.
  ResourceType resource_type = 7;
  // Properties for Chassis resources, only exist when resource type is
  // RESOURCE_TYPE_BOARD.
  ChassisProperties chassis_properties = 8;
}

// State of the resource.
message State {
  Status status = 1;
  string status_message = 2;
}
