blob: 890b8a7de4b3a5417fde6fdb4a46e2d38ba47e02 [file]
edition = "2023";
package milotic_fast_sanity;
import "fru_component_model.proto";
import "memory.proto";
import "processor.proto";
import "status.proto";
message GetAllFruInfoRequest {
// Optional filter by the general component node type.
// Only FRUs matching these types will be returned.
// This is an OR filter.
repeated ComponentType filter_by_fru_type = 1;
// Optional filter by the FRU class.
// Only FRUs matching this FruClass will be returned.
repeated ComponentClassification filter_by_fru_class = 2;
// Optional filter by an identifier's value.
// This is an OR filter.
repeated UniqueIdentifier filter_by_identifier_value = 3;
// List of expected FRU components.
repeated UniqueIdentifier expected_fru_components = 4;
enum FruScanType {
FRU_SCAN_TYPE_UNSPECIFIED = 0;
// Performs a scan of the expected FRUs only provided in the request.
FRU_SCAN_TYPE_EXPECTED_ONLY = 1;
// Performs a scan of all FRUs on the system.
FRU_SCAN_TYPE_ALL = 2;
}
// Optional filter by the type of FRU scan to perform.
// If unspecified, defaults to FRU_SCAN_TYPE_ALL.
FruScanType fru_scan_type = 5 [default = FRU_SCAN_TYPE_ALL];
}
message GetAllFruInfoResponse {
repeated FruComponent fru_components = 1;
}
message GetFruInfoDeterministicallyRequest {}
message Fru {
string barepath = 1;
milotic_tlbmc.PresenceStatus presence_status = 2;
oneof fru_info {
milotic_tlbmc.Processor processor_info = 3;
milotic_tlbmc.Memory memory_info = 4;
}
}
message GetFruInfoDeterministicallyResponse {
repeated Fru frus = 1;
}
service FruService {
// Get the FRU information for a given component.
rpc GetAllFruInfo(GetAllFruInfoRequest) returns (GetAllFruInfoResponse) {}
// Get the FRU information for all FRUs on the system deterministically. This
// gRPC call will trigger a rescan of all FRUs on the system and return the
// most updaded FRU information.
rpc GetFruInfoDeterministicallyOnDemand(GetFruInfoDeterministicallyRequest)
returns (GetFruInfoDeterministicallyResponse) {}
}