xref: /openbmc/bmcweb/Redfish.md (revision d8ef9915)
1# Redfish #
2
3bmcweb provides an implementation of the [Redfish][1] API.  This document
4details the Redfish schemas supported by bmcweb. This document also discusses
5some of the details of that implementation and different implementations
6available for certain areas.
7
8## Redfish Schema
9
10The redfish implementation shall pass the [Redfish Service
11Validator](https://github.com/DMTF/Redfish-Service-Validator "Validator") with
12no warnings or errors
13
14The following redfish schemas and fields are targeted for OpenBMC.  This is a
15living document, and these schemas are subject to change.
16
17The latest Redfish schemas can be found [here](https://redfish.dmtf.org/schemas/)
18
19If using a previously unused schema, you will need to add it to the included
20schema list in scripts/update_schemas.py and run update_schemas.py.
21
22Fields common to all schemas
23
24- @odata.context
25- @odata.id
26- @odata.type
27- Id
28- Name
29
30
31#### /redfish/v1/
32##### ServiceRoot
33
34- AccountService
35- CertificateService
36- Chassis
37- JsonSchemas
38- Managers
39- RedfishVersion
40- SessionService
41- Systems
42- UUID
43- UpdateService
44
45#### /redfish/v1/AccountService/
46##### AccountService
47
48- Description
49- ServiceEnabled
50- MinpasswordLength
51- MaxPasswordLength
52- Accounts
53- Roles
54
55#### /redfish/v1/AccountService/Accounts/
56##### AccountCollection
57
58- Description
59- Members@odata.count
60- Members
61
62#### /redfish/v1/AccountService/Accounts/{ManagerAccountId}
63##### ManagerAccount
64
65- Description
66- Enabled
67- Password
68- UserName
69- RoleId
70- Links/Role
71
72#### /redfish/v1/AccountService/Roles/
73##### RoleCollection
74
75- Description
76- Members@odata.count
77- Members
78  - By default will contain 3 roles, "Administrator", "Operator", and "ReadOnly"
79
80#### /redfish/v1/AccountService/Roles/{RoleId}
81##### Role
82
83- Description
84- IsPredefined
85  - Will be set to true for all default roles.  If the given role is
86    non-default, or has been modified from default, will be marked as false.
87- AssignedPrivileges
88  - For the default roles, the following privileges will be assigned by
89    default
90      - Administrator: Login, ConfigureManager, ConfigureUsers, ConfigureSelf,
91        ConfigureComponents
92      - Operator: Login, ConfigureComponents, ConfigureSelf
93      - ReadOnly: Login, ConfigureSelf
94
95
96#### /redfish/v1/Chassis
97##### ChassisCollection
98
99- Members@odata.count
100- Members
101
102#### /redfish/v1/Chassis/{ChassisId}
103##### Chassis
104
105- ChassisType
106- Manufacturer
107- Model
108- SerialNumber
109- PartNumber
110- PowerState
111- Thermal
112  - Shall be included if component contains temperature sensors, otherwise
113    shall be omitted.
114- Power
115  - Shall be included if component contains voltage/current sensing
116    components, otherwise will be omitted.
117
118#### /redfish/v1/Chassis/{ChassisId}/Thermal
119##### Thermal
120Temperatures Fans Redundancy
121
122#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName}
123##### Temperature
124- MemberId
125- Status
126- ReadingCelsius
127- UpperThresholdNonCritical
128- UpperThresholdCritical
129- LowerThresholdNonCritical
130- LowerThresholdCritical
131- MinReadingRange
132- MaxReadingRange
133
134*threshold fields only present if defined for sensor, otherwise absent*
135
136#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName}
137##### Fan
138- MemberId
139- Status
140- Reading
141- ReadingUnits
142- UpperThresholdNonCritical
143- UpperThresholdCritical
144- LowerThresholdNonCritical
145- LowerThresholdCritical
146- MinReadingRange
147- MaxReadingRange
148- Redundancy
149
150*threshold fields only present if defined for sensor, otherwise absent*
151
152#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName}
153##### Redundancy
154- MemberId
155- RedundancySet
156- Mode
157- Status
158- MinNumNeeded
159- MaxNumSupported
160
161
162#### /redfish/v1/Chassis/{ChassisId}/Power/
163##### Power
164PowerControl Voltages PowerSupplies Redundancy
165
166#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName}
167##### PowerControl
168- MemberId
169- PowerConsumedWatts
170- PowerMetrics/IntervalInMin
171- PowerMetrics/MinConsumedWatts
172- PowerMetrics/MaxConsumedWatts
173- PowerMetrics/AverageConsumedWatts
174- RelatedItem
175  - Should list systems and related chassis
176
177#### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName}
178##### Voltage
179- MemberId
180- Status
181- ReadingVolts
182- UpperThresholdNonCritical
183- UpperThresholdCritical
184- LowerThresholdNonCritical
185- LowerThresholdCritical
186- MinReadingRange
187- MaxReadingRange
188- PhysicalContext
189- RelatedItem
190
191#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName}
192##### PowerSupply
193- MemberId
194- Status
195- LininputVoltage
196- Model
197- manufacturer
198- FirmwareVersion
199- SerialNumber
200- PartNumber
201- RelatedItem
202- Redundancy
203
204#### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName}
205##### Redundancy
206- MemberId
207- RedundancySet
208- Mode
209- Status
210- MinNumNeeded
211- MaxNumSupported
212
213
214#### /redfish/v1/EventService
215##### EventService
216- Id
217- ServiceEnabled
218- DeliveryRetryAttempts
219  - Defaults to 3
220- EventTypesForSubscription
221  - Defaults to "Alert"
222- Actions
223- Subscriptions
224
225#### /redfish/v1/EventService/Subscriptions
226##### EventDestinationCollection
227- Members@odata.count
228- Members
229
230#### /redfish/v1/EventService/Subscriptions/{EventName}
231##### EventDestination
232- Id
233- Destination
234- EventTypes
235- Context
236- OriginResources
237- Protocol
238
239
240#### /redfish/v1/Managers
241##### ManagerCollection
242- Members
243- Members@odata.count
244
245#### /redfish/v1/Managers/bmc
246##### Manager
247- Description
248- LogServices
249- GraphicalConsole
250- UUID
251- Model
252- Links
253- PowerState
254- FirmwareVersion
255- ManagerType
256- ServiceEntryPointUUID
257- DateTime
258- NetworkProtocol
259- Actions
260- Status
261- SerialConsole
262- VirtualMedia
263- EthernetInterfaces
264
265#### /redfish/v1/Managers/bmc/EthernetInterfaces
266##### EthernetInterfaceCollection
267- Members
268- Members@odata.count
269- Description
270
271#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}
272##### EthernetInterface
273- Description
274- VLAN
275- MaxIPv6StaticAddresses
276
277#### /redfish/v1/Managers/bmc/LogServices
278
279The [LogService][2] resource provides properties for monitoring and configuring
280events for the service or resource to which it is associated.
281
282Within bmcweb, the LogService object resides under the System resource. It
283tracks all events for the system.
284
285The LogService supports multiple log entry types. bmcweb has support for
286the `Event` type. This is the new Redfish-defined type.
287
288bmcweb supports two different implementations of the
289`LogService/EventLog/Entries` URI.
290
291The default implementation uses rsyslog to write Redfish events from the journal
292to the persistent /var/log/ filesystem. The bmcweb software then looks for these
293files in /var/log/ and returns the appropriate Redfish EventLog Entries for
294these. More details on adding events can be found [here][3]
295
296The other implementation of EventLog Entries can be enabled by compiling bmcweb
297with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause
298bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will
299then be translated to Redfish EventLog Entries.
300
301These two implementations do not work together, so choosing one will disable
302the other.
303
304#### /redfish/v1/Managers/bmc/LogServices
305##### LogServiceCollection
306- Members
307- Members@odata.count
308- Description
309
310#### /redfish/v1/Managers/bmc/LogServices/RedfishLog
311##### LogService
312- Entries
313- OverWritePolicy
314- Actions
315- Status
316- DateTime
317- MaxNumberOfRecords
318
319#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}
320##### LogEntry
321- Message
322- Created
323- EntryType
324
325#### /redfish/v1/Managers/bmc/NetworkProtocol
326##### ManagerNetworkProtocol
327- Description
328- SSDP
329- HTTPS
330- SSH
331- VirtualMedia
332- KVMIP
333- Status
334
335
336#### /redfish/v1/Registries
337##### MessageRegistryFileCollection
338- Members
339  - Should support Base, CommonMessages, and EventingMessages
340- Members@odata.count
341- Description
342
343#### /redfish/v1/Registries/{MessageRegistryFileId}
344##### MessageRegistryFile
345- Location
346- Description
347- Location@odata.count
348- Languages@odata.count
349- Languages
350- Registry
351
352
353#### /redfish/v1/SessionService
354##### SessionService
355- Description
356- ServiceEnabled
357- Status
358- SessionTimeout
359- Sessions
360
361#### /redfish/v1/SessionService/Sessions
362##### SessionCollection
363- Members
364- Members@odata.count
365- Description
366
367
368#### /redfish/v1/Systems
369##### ComputerSystemCollection
370- Members
371  - Should support one system
372- Members@odata.count
373
374#### /redfish/v1/Systems/system
375##### ComputerSystem
376- Boot
377- PartNumber
378- IndicatorLED
379- UUID
380- LogServices
381- SystemType
382- Manufacturer
383- Description
384- Model
385- Links
386- PowerState
387- BiosVersion
388- Storage
389- SerialNumber
390- Processors
391- ProcessorSummary
392- Memory
393- Actions
394- Status
395- EthernetInterfaces
396- MemorySummary
397
398#### /redfish/v1/Systems/system/EthernetInterfaces
399##### EthernetInterfaceCollection
400- Members
401- Members@odata.count
402- Description
403
404#### /redfish/v1/Systems/system/LogServices
405##### LogServiceCollection
406- Members
407  - Should default to one member, named SEL
408- Members@odata.count
409- Description
410
411#### /redfish/v1/Systems/system/LogServices/SEL/Entries
412##### LogEntryCollection
413- Members
414- Members@odata.count
415- Description
416- @odata.nextLink
417
418#### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}
419##### LogEntry
420- MessageArgs
421- Severity
422- SensorType
423- Message
424- MessageId
425- Created
426- EntryCode
427- EntryType
428
429#### /redfish/v1/Systems/system/Memory
430##### MemoryCollection
431- Members
432- Members@odata.count
433
434#### /redfish/v1/Systems/system/Memory/{MemoryId}
435##### Memory
436- MemoryType
437- Description
438- DeviceLocator
439- Oem
440- Metrics
441- BaseModuleType
442- Manufacturer
443- MemoryDeviceType
444- RankCount
445- AllowedSpeedsMHz
446- CapacityMiB
447- DataWidthBits
448- SerialNumber
449- OperatingSpeedMhz
450- ErrorCorrection
451- PartNumber
452- Status
453- BusWidthBits
454- MemoryMedia
455
456#### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics
457##### MemoryMetrics
458- Description
459- HealthData
460
461#### /redfish/v1/Systems/system/Processors
462##### ProcessorCollection
463- Members
464  - Should Support CPU1 and CPU2 for dual socket systems
465- Members@odata.count
466
467#### /redfish/v1/Systems/system/Processors/{ProcessorId}
468##### Processor
469- ProcessorArchitecture
470- TotalCores
471- ProcessorId
472- MaxSpeedMHz
473- Manufacturer
474- Status
475- Socket
476- InstructionSet
477- Model
478- ProcessorType
479- TotalThreads
480
481#### /redfish/v1/Systems/system/Storage
482##### StorageCollection
483- Members
484- Members@odata.count
485
486#### /redfish/v1/Systems/system/Storage/{StorageId}
487##### Storage
488- Drives
489- Links
490
491
492#### /redfish/v1/UpdateService
493##### UpdateService
494- SoftwareInventory
495
496#### /redfish/v1/UpdateService/FirmwareInventory
497##### SoftwareInventoryCollection
498- Members
499- Should Support BMC, ME, CPLD and BIOS
500- Members@odata.count
501
502#### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}
503##### SoftwareInventory
504- Version
505- Updateable
506
507[1]: https://www.dmtf.org/standards/redfish
508[2]: https://redfish.dmtf.org/schemas/v1/LogService.json
509[3]: https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md
510[4]: https://github.com/openbmc/phosphor-logging
511