blob: bfd6dffc3a889ebb786b9b91bf60eaf097802d7e [file] [log] [blame] [edit]
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;
}