xref: /openbmc/bmcweb/Redfish.md (revision 90e97e1d26b78d899a543831a8051dacbbdde71a)
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.id
25- @odata.type
26- Id
27- Name
28
29
30#### /redfish/v1/
31##### ServiceRoot
32- AccountService
33- CertificateService
34- Chassis
35- EventService
36- JsonSchemas
37- Links/Sessions
38- Managers
39- RedfishVersion
40- Registries
41- SessionService
42- Systems
43- Tasks
44- TelemetryService
45- UUID
46- UpdateService
47
48#### /redfish/v1/AccountService/
49##### AccountService
50- AccountLockoutDuration
51- AccountLockoutThreshold
52- Accounts
53- Description
54- LDAP
55- MaxPasswordLength
56- MinPasswordLength
57- Oem/OpenBMC/AuthMethods/BasicAuth
58- Oem/OpenBMC/AuthMethods/Cookie
59- Oem/OpenBMC/AuthMethods/SessionToken
60- Oem/OpenBMC/AuthMethods/TLS
61- Oem/OpenBMC/AuthMethods/XToken
62- Roles
63- ServiceEnabled
64
65#### /redfish/v1/AccountService/Accounts/
66##### ManagerAccountCollection
67- Description
68- Members
69- Members\@odata.count
70
71#### /redfish/v1/AccountService/Accounts/{ManagerAccountId}/
72##### ManagerAccount
73- AccountTypes
74- Description
75- Enabled
76- Links/Role
77- Locked
78- Locked\@Redfish.AllowableValues
79- Password
80- PasswordChangeRequired
81- RoleId
82- UserName
83
84#### /redfish/v1/AccountService/LDAP/Certificates/
85##### CertificateCollection
86- Description
87- Members
88- Members\@odata.count
89
90#### /redfish/v1/AccountService/Roles/
91##### RoleCollection
92- Description
93- Members
94  - By default will contain 3 roles, "Administrator", "Operator", and "ReadOnly"
95- Members\@odata.count
96
97#### /redfish/v1/AccountService/Roles/{RoleId}/
98##### Role
99- AssignedPrivileges
100  - For the default roles, the following privileges will be assigned by
101    default
102      - Administrator: Login, ConfigureManager, ConfigureUsers, ConfigureSelf,
103        ConfigureComponents
104      - Operator: Login, ConfigureComponents, ConfigureSelf
105      - ReadOnly: Login, ConfigureSelf
106- Description
107- IsPredefined
108  - Will be set to true for all default roles.  If the given role is
109    non-default, or has been modified from default, will be marked as false.
110- OemPrivileges
111- RoleId
112
113#### /redfish/v1/CertificateService/
114##### CertificateService
115- Actions
116- CertificateLocations
117- Description
118
119#### /redfish/v1/CertificateService/CertificateLocations/
120##### CertificateLocations
121- Description
122- Links/Certificates
123- Links/Certificates\@odata.count
124
125#### /redfish/v1/Chassis/
126##### ChassisCollection
127- Members
128- Members\@odata.count
129
130#### /redfish/v1/Chassis/{ChassisId}/
131##### Chassis
132- Actions
133- ChassisType
134- Links/ComputerSystems
135- Links/ManagedBy
136- PCIeDevices
137- Power
138  - Shall be included if component contains voltage/current sensing
139    components, otherwise will be omitted.
140- PowerState
141- Sensors
142- Status
143- Thermal
144  - Shall be included if component contains temperature sensors, otherwise
145    shall be omitted.
146
147#### /redfish/v1/Chassis/{ChassisId}/Power/
148##### Power
149- PowerControl
150- PowerSupplies
151- Redundancy
152- Voltages
153
154#### /redfish/v1/Chassis/{ChassisId}/Sensors/
155##### SensorCollection
156- Description
157- Members
158- Members\@odata.count
159
160#### /redfish/v1/Chassis/{ChassisId}/Sensors/{Id}/
161##### Sensor
162- Reading
163- ReadingRangeMax
164- ReadingRangeMin
165- ReadingType
166- ReadingUnits
167- Status
168- Thresholds
169
170#### /redfish/v1/Chassis/{ChassisId}/Thermal/
171##### Thermal
172- Fans
173- Redundancy
174- Temperatures
175
176#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName}/
177##### Temperature
178- MemberId
179- Status
180- ReadingCelsius
181- UpperThresholdNonCritical
182- UpperThresholdCritical
183- LowerThresholdNonCritical
184- LowerThresholdCritical
185- MinReadingRange
186- MaxReadingRange
187*threshold fields only present if defined for sensor, otherwise absent*
188
189#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName}/
190##### Fan
191- MemberId
192- Status
193- Reading
194- ReadingUnits
195- UpperThresholdNonCritical
196- UpperThresholdCritical
197- LowerThresholdNonCritical
198- LowerThresholdCritical
199- MinReadingRange
200- MaxReadingRange
201- Redundancy
202*threshold fields only present if defined for sensor, otherwise absent*
203
204#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName}/
205##### Redundancy
206- MemberId
207- RedundancySet
208- Mode
209- Status
210- MinNumNeeded
211- MaxNumSupported
212
213#### /redfish/v1/Chassis/{ChassisId}/Power/
214##### Power
215PowerControl Voltages PowerSupplies Redundancy
216
217#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName}/
218##### PowerControl
219- MemberId
220- PowerConsumedWatts
221- PowerMetrics/IntervalInMin
222- PowerMetrics/MinConsumedWatts
223- PowerMetrics/MaxConsumedWatts
224- PowerMetrics/AverageConsumedWatts
225- RelatedItem
226  - Should list systems and related chassis
227
228#### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName}/
229##### Voltage
230- MemberId
231- Status
232- ReadingVolts
233- UpperThresholdNonCritical
234- UpperThresholdCritical
235- LowerThresholdNonCritical
236- LowerThresholdCritical
237- MinReadingRange
238- MaxReadingRange
239- PhysicalContext
240- RelatedItem
241
242#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName}/
243##### PowerSupply
244- MemberId
245- Status
246- LininputVoltage
247- Model
248- manufacturer
249- FirmwareVersion
250- SerialNumber
251- PartNumber
252- RelatedItem
253- Redundancy
254
255#### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName}/
256##### Redundancy
257- MemberId
258- RedundancySet
259- Mode
260- Status
261- MinNumNeeded
262- MaxNumSupported
263
264#### /redfish/v1/EventService/
265##### EventService
266- Actions
267- DeliveryRetryAttempts
268  - Defaults to 3
269- DeliveryRetryIntervalSeconds
270- EventFormatTypes
271- RegistryPrefixes
272- ResourceTypes
273- SSEFilterPropertiesSupported
274- ServiceEnabled
275- Status
276- Subscriptions
277
278#### /redfish/v1/EventService/Subscriptions/
279##### EventDestinationCollection
280- Members
281- Members\@odata.count
282
283#### /redfish/v1/EventService/Subscriptions/{EventName}/
284##### EventDestination
285- Id
286- Destination
287- EventTypes
288- Context
289- OriginResources
290- Protocol
291
292#### /redfish/v1/JsonSchemas/
293##### JsonSchemaFileCollection
294- Description
295- Members\@odata.count
296- Members
297
298#### /redfish/v1/JsonSchemas/{Id}/
299##### JsonSchemaFile
300- Schema
301- Description
302- Languages
303- Languages\@odata.count
304- Location
305- Location\@odata.count
306
307#### /redfish/v1/Managers/
308##### ManagerCollection
309- Members
310- Members\@odata.count
311
312#### /redfish/v1/Managers/bmc/
313##### Manager
314- Actions
315- DateTime
316- Description
317- EthernetInterfaces
318- FirmwareVersion
319- GraphicalConsole
320- LastResetTime
321- Links/ActiveSoftwareImage
322- Links/ManagerForChassis
323- Links/ManagerForChassis\@odata.count
324- Links/ManagerForServers
325- Links/ManagerForServers\@odata.count
326- Links/ManagerInChassis
327- Links/SoftwareImages
328- Links/SoftwareImages\@odata.count
329- LogServices
330- ManagerType
331- Manufacturer
332- Model
333- NetworkProtocol
334- Oem
335- PartNumber
336- PowerState
337- SerialConsole
338- SerialNumber
339- ServiceEntryPointUUID
340- SparePartNumber
341- Status
342- UUID
343
344#### /redfish/v1/Managers/bmc/EthernetInterfaces/
345##### EthernetInterfaceCollection
346- Description
347- Members
348- Members\@odata.count
349
350#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/
351##### EthernetInterface
352- DHCPv4
353- DHCPv6
354- Description
355- FQDN
356- HostName
357- IPv4Addresses
358- IPv4StaticAddresses
359- IPv6AddressPolicyTable
360- IPv6Addresses
361- IPv6DefaultGateway
362- IPv6StaticAddresses
363- InterfaceEnabled
364- LinkStatus
365- MACAddress
366- NameServers
367- SpeedMbps
368- StaticNameServers
369- Status
370- VLANs
371
372#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/VLANs/
373##### VLanNetworkInterfaceCollection
374- Members
375- Members\@odata.count
376
377#### /redfish/v1/Managers/bmc/LogServices/
378
379The [LogService][2] resource provides properties for monitoring and configuring
380events for the service or resource to which it is associated.
381
382Within bmcweb, the LogService object resides under the System resource. It
383tracks all events for the system.
384
385The LogService supports multiple log entry types. bmcweb has support for
386the `Event` type. This is the new Redfish-defined type.
387
388bmcweb supports two different implementations of the
389`LogService/EventLog/Entries` URI.
390
391The default implementation uses rsyslog to write Redfish events from the journal
392to the persistent /var/log/ filesystem. The bmcweb software then looks for these
393files in /var/log/ and returns the appropriate Redfish EventLog Entries for
394these. More details on adding events can be found [here][3]
395
396The other implementation of EventLog Entries can be enabled by compiling bmcweb
397with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause
398bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will
399then be translated to Redfish EventLog Entries.
400
401These two implementations do not work together, so choosing one will disable
402the other.
403
404#### /redfish/v1/Managers/bmc/LogServices/
405##### LogServiceCollection
406- Description
407- Members
408- Members\@odata.count
409
410#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/
411##### LogService
412- Entries
413- OverWritePolicy
414- Actions
415- Status
416- DateTime
417- MaxNumberOfRecords
418
419#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/
420##### LogEntry
421- Message
422- Created
423- EntryType
424
425#### /redfish/v1/Managers/bmc/NetworkProtocol/
426##### ManagerNetworkProtocol
427- Description
428- FQDN
429- HTTP
430- HTTPS
431- HostName
432- IPMI
433- NTP
434- SSH
435- Status
436
437#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/
438##### CertificateCollection
439- Description
440- Members
441- Members\@odata.count
442
443#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/
444##### Certificate
445- CertificateString
446- Description
447- Issuer
448- KeyUsage
449- Subject
450- ValidNotAfter
451- ValidNotBefore
452
453#### /redfish/v1/Managers/bmc/Truststore/Certificates/
454##### CertificateCollection
455- Description
456- error
457
458
459#### /redfish/v1/Registries/
460##### MessageRegistryFileCollection
461- Description
462- Members
463  - Should support Base, CommonMessages, and EventingMessages
464- Members\@odata.count
465
466#### /redfish/v1/Registries/{MessageRegistryFileId}/
467##### MessageRegistryFile
468- Description
469- Languages
470- Languages\@odata.count
471- Location
472- Location\@odata.count
473- Registry
474
475#### /redfish/v1/SessionService/
476##### SessionService
477- Description
478- ServiceEnabled
479- SessionTimeout
480- Sessions
481
482#### /redfish/v1/SessionService/Sessions/
483##### SessionCollection
484- Description
485- Members
486- Members\@odata.count
487
488#### /redfish/v1/SessionService/Sessions/{SessionId}/
489##### Session
490- ClientOriginIPAddress
491- Description
492- Oem
493- UserName
494
495#### /redfish/v1/Systems/
496##### ComputerSystemCollection
497- Members
498  - Should support one system
499- Members\@odata.count
500
501#### /redfish/v1/Systems/system/Bios/
502##### Bios
503- Actions
504- Description
505- Links/ActiveSoftwareImage
506- Links/SoftwareImages
507- Links/SoftwareImages\@odata.count
508
509#### /redfish/v1/Systems/system/
510##### ComputerSystem
511- Actions
512- AssetTag
513- Bios
514- BiosVersion
515- Boot
516- BootProgress
517- Description
518- HostWatchdogTimer
519- IndicatorLED
520- LastResetTime
521- Links/Chassis
522- Links/ManagedBy
523- LocationIndicatorActive
524- LogServices
525- Manufacturer
526- Memory
527- MemorySummary
528- Model
529- PartNumber
530- PowerRestorePolicy
531- PowerState
532- ProcessorSummary
533- Processors
534- SerialNumber
535- Status
536- Storage
537- SubModel
538- SystemType
539
540#### /redfish/v1/Systems/system/EthernetInterfaces/
541##### EthernetInterfaceCollection
542- Members
543- Members\@odata.count
544- Description
545
546#### /redfish/v1/Systems/system/LogServices/
547##### LogServiceCollection
548- Description
549- Members
550  - Should default to one member, named SEL
551- Members\@odata.count
552
553#### /redfish/v1/Systems/system/LogServices/EventLog/
554##### LogService
555- Actions
556- Description
557- Entries
558- OverWritePolicy
559
560#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/
561##### LogEntryCollection
562- Description
563- Members
564- Members\@odata.count
565
566#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/
567##### LogEntry
568- AdditionalDataURI
569- Created
570- EntryType
571- Message
572- Modified
573- Resolved
574- Severity
575
576#### /redfish/v1/Systems/system/LogServices/SEL/Entries/
577##### LogEntryCollection
578- Members
579- Members\@odata.count
580- Description
581- @odata.nextLink
582
583#### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/
584##### LogEntry
585- MessageArgs
586- Severity
587- SensorType
588- Message
589- MessageId
590- Created
591- EntryCode
592- EntryType
593
594#### /redfish/v1/Systems/system/Memory/
595##### MemoryCollection
596- Members
597- Members\@odata.count
598
599#### /redfish/v1/Systems/system/Memory/{MemoryId}/
600##### Memory
601- AllowedSpeedsMHz
602- BaseModuleType
603- BusWidthBits
604- CapacityMiB
605- DataWidthBits
606- ErrorCorrection
607- FirmwareRevision
608- Manufacturer
609- Model
610- OperatingSpeedMhz
611- PartNumber
612- RankCount
613- SerialNumber
614- SparePartNumber
615- Status
616
617#### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/
618##### MemoryMetrics
619- Description
620- HealthData
621
622#### /redfish/v1/Systems/system/PCIeDevices/
623##### PCIeDeviceCollection
624- Description
625- Members
626- Members\@odata.count
627
628#### /redfish/v1/Systems/system/Processors/
629##### ProcessorCollection
630- Members
631  - Should Support CPU1 and CPU2 for dual socket systems
632- Members\@odata.count
633
634#### /redfish/v1/Systems/system/Processors/{ProcessorId}/
635##### Processor
636- InstructionSet
637- Manufacturer
638- MaxSpeedMHz
639- PartNumber
640- ProcessorArchitecture
641- ProcessorId
642- ProcessorType
643- SerialNumber
644- Socket
645- SparePartNumber
646- Status
647- TotalCores
648- TotalThreads
649- Version
650
651#### /redfish/v1/Systems/system/Storage/
652##### StorageCollection
653- Members
654- Members\@odata.count
655
656#### /redfish/v1/Systems/system/Storage/{StorageId}/
657##### Storage
658- Drives
659- Drives\@odata.count
660- Status
661
662#### /redfish/v1/TaskService/
663##### TaskService
664- CompletedTaskOverWritePolicy
665- DateTime
666- LifeCycleEventOnTaskStateChange
667- ServiceEnabled
668- Status
669- Tasks
670
671#### /redfish/v1/TaskService/Tasks/
672##### TaskCollection
673- Members
674- Members\@odata.count
675
676#### /redfish/v1/TelemetryService/
677##### TelemetryService
678- MaxReports
679- MetricReportDefinitions
680- MetricReports
681- MinCollectionInterval
682- Status
683
684#### /redfish/v1/TelemetryService/MetricReportDefinitions/
685##### MetricReportDefinitionCollection
686- Members
687- Members\@odata.count
688
689#### /redfish/v1/TelemetryService/MetricReports/
690##### MetricReportCollection
691- Members
692- Members\@odata.count
693
694#### /redfish/v1/UpdateService/
695##### UpdateService
696- Actions
697- Description
698- FirmwareInventory
699- HttpPushUri
700- HttpPushUriOptions
701- ServiceEnabled
702
703#### /redfish/v1/UpdateService/FirmwareInventory/
704##### SoftwareInventoryCollection
705- Members
706  - Should Support BMC, ME, CPLD and BIOS
707- Members\@odata.count
708
709#### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/
710##### SoftwareInventory
711- Description
712- RelatedItem\@odata.count
713- RelatedItem
714- Status
715- Updateable
716- Version
717
718[1]: https://www.dmtf.org/standards/redfish
719[2]: https://redfish.dmtf.org/schemas/v1/LogService.json
720[3]: https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md
721[4]: https://github.com/openbmc/phosphor-logging
722