xref: /openbmc/webui-vue/src/api/types/redfish.ts (revision d3b05033fe82aed6c53f4f2b52c23d3bd285d423)
1/**
2 * Redfish type definitions
3 * These mirror the Redfish schema and preserve PascalCase property names
4 */
5
6/**
7 * Redfish Status object
8 */
9export interface RedfishStatus {
10  State?: string;
11  Health?: string;
12  HealthRollup?: string;
13}
14
15/**
16 * Redfish Sensor Thresholds
17 */
18export interface SensorThresholds {
19  LowerCritical?: {
20    Reading?: number;
21    Activation?: string;
22  };
23  LowerCaution?: {
24    Reading?: number;
25    Activation?: string;
26  };
27  UpperCaution?: {
28    Reading?: number;
29    Activation?: string;
30  };
31  UpperCritical?: {
32    Reading?: number;
33    Activation?: string;
34  };
35}
36
37/**
38 * Redfish Sensor resource
39 * Preserves Redfish property names (PascalCase)
40 */
41export interface Sensor {
42  '@odata.id': string;
43  '@odata.type': string;
44  Id: string;
45  Name: string;
46  Status?: RedfishStatus;
47  Reading?: number;
48  ReadingUnits?: string;
49  ReadingType?: string;
50  Thresholds?: SensorThresholds;
51  // Legacy properties for backward compatibility
52  ReadingCelsius?: number;
53  ReadingVolts?: number;
54  LowerThresholdNonCritical?: number;
55  UpperThresholdNonCritical?: number;
56  LowerThresholdCritical?: number;
57  UpperThresholdCritical?: number;
58}
59
60/**
61 * Redfish Memory resource
62 */
63export interface Memory {
64  '@odata.id': string;
65  '@odata.type': string;
66  Id: string;
67  Name: string;
68  Status?: RedfishStatus;
69  CapacityMiB?: number;
70  MemoryDeviceType?: string;
71  Manufacturer?: string;
72  PartNumber?: string;
73  SerialNumber?: string;
74}
75
76/**
77 * Redfish Drive resource
78 */
79export interface Drive {
80  '@odata.id': string;
81  '@odata.type': string;
82  Id: string;
83  Name: string;
84  Status?: RedfishStatus;
85  CapacityBytes?: number;
86  MediaType?: string;
87  Manufacturer?: string;
88  Model?: string;
89  SerialNumber?: string;
90  Protocol?: string;
91}
92
93/**
94 * Redfish Processor resource
95 */
96export interface Processor {
97  '@odata.id': string;
98  '@odata.type': string;
99  Id: string;
100  Name: string;
101  Status?: RedfishStatus;
102  ProcessorType?: string;
103  ProcessorArchitecture?: string;
104  InstructionSet?: string;
105  Manufacturer?: string;
106  Model?: string;
107  MaxSpeedMHz?: number;
108  TotalCores?: number;
109  TotalThreads?: number;
110}
111
112/**
113 * Redfish Chassis resource
114 */
115export interface Chassis {
116  '@odata.id': string;
117  '@odata.type': string;
118  Id: string;
119  Name: string;
120  ChassisType?: string;
121  Manufacturer?: string;
122  Model?: string;
123  SerialNumber?: string;
124  PartNumber?: string;
125  Status?: RedfishStatus;
126  Sensors?: { '@odata.id': string };
127  Thermal?: { '@odata.id': string };
128  Power?: { '@odata.id': string };
129  PowerSubsystem?: { '@odata.id': string };
130}
131
132/**
133 * Redfish System resource
134 */
135export interface System {
136  '@odata.id': string;
137  '@odata.type': string;
138  Id: string;
139  Name: string;
140  SystemType?: string;
141  Manufacturer?: string;
142  Model?: string;
143  SerialNumber?: string;
144  PartNumber?: string;
145  Status?: RedfishStatus;
146  PowerState?: string;
147  BiosVersion?: string;
148  Memory?: { '@odata.id': string };
149  Processors?: { '@odata.id': string };
150}
151