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