xref: /openbmc/bmcweb/Redfish.md (revision 60c922df)
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- DateTimeLocalOffset
317- Description
318- EthernetInterfaces
319- FirmwareVersion
320- GraphicalConsole
321- LastResetTime
322- Links/ActiveSoftwareImage
323- Links/ManagerForChassis
324- Links/ManagerForChassis@odata.count
325- Links/ManagerForServers
326- Links/ManagerForServers@odata.count
327- Links/ManagerInChassis
328- Links/SoftwareImages
329- Links/SoftwareImages@odata.count
330- LogServices
331- ManagerType
332- Manufacturer
333- Model
334- NetworkProtocol
335- Oem
336- PartNumber
337- PowerState
338- SerialConsole
339- SerialNumber
340- ServiceEntryPointUUID
341- SparePartNumber
342- Status
343- UUID
344
345#### /redfish/v1/Managers/bmc/EthernetInterfaces/
346##### EthernetInterfaceCollection
347- Description
348- Members
349- Members@odata.count
350
351#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/
352##### EthernetInterface
353- DHCPv4
354- DHCPv6
355- Description
356- FQDN
357- HostName
358- IPv4Addresses
359- IPv4StaticAddresses
360- IPv6AddressPolicyTable
361- IPv6Addresses
362- IPv6DefaultGateway
363- IPv6StaticAddresses
364- InterfaceEnabled
365- LinkStatus
366- MACAddress
367- NameServers
368- SpeedMbps
369- StaticNameServers
370- Status
371- VLANs
372
373#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/VLANs/
374##### VLanNetworkInterfaceCollection
375- Members
376- Members@odata.count
377
378#### /redfish/v1/Managers/bmc/LogServices/
379
380The [LogService][2] resource provides properties for monitoring and configuring
381events for the service or resource to which it is associated.
382
383Within bmcweb, the LogService object resides under the System resource. It
384tracks all events for the system.
385
386The LogService supports multiple log entry types. bmcweb has support for
387the `Event` type. This is the new Redfish-defined type.
388
389bmcweb supports two different implementations of the
390`LogService/EventLog/Entries` URI.
391
392The default implementation uses rsyslog to write Redfish events from the journal
393to the persistent /var/log/ filesystem. The bmcweb software then looks for these
394files in /var/log/ and returns the appropriate Redfish EventLog Entries for
395these. More details on adding events can be found [here][3]
396
397The other implementation of EventLog Entries can be enabled by compiling bmcweb
398with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause
399bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will
400then be translated to Redfish EventLog Entries.
401
402These two implementations do not work together, so choosing one will disable
403the other.
404
405#### /redfish/v1/Managers/bmc/LogServices/
406##### LogServiceCollection
407- Description
408- Members
409- Members@odata.count
410
411#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/
412##### LogService
413- Entries
414- OverWritePolicy
415- Actions
416- Status
417- DateTime
418- MaxNumberOfRecords
419
420#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/
421##### LogEntry
422- Message
423- Created
424- EntryType
425
426#### /redfish/v1/Managers/bmc/NetworkProtocol/
427##### ManagerNetworkProtocol
428- Description
429- FQDN
430- HTTP
431- HTTPS
432- HostName
433- IPMI
434- NTP
435- SSH
436- Status
437
438#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/
439##### CertificateCollection
440- Description
441- Members
442- Members@odata.count
443
444#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/
445##### Certificate
446- CertificateString
447- Description
448- Issuer
449- KeyUsage
450- Subject
451- ValidNotAfter
452- ValidNotBefore
453
454#### /redfish/v1/Managers/bmc/Truststore/Certificates/
455##### CertificateCollection
456- Description
457- error
458
459
460#### /redfish/v1/Registries/
461##### MessageRegistryFileCollection
462- Description
463- Members
464  - Should support Base, CommonMessages, and EventingMessages
465- Members@odata.count
466
467#### /redfish/v1/Registries/{MessageRegistryFileId}/
468##### MessageRegistryFile
469- Description
470- Languages
471- Languages@odata.count
472- Location
473- Location@odata.count
474- Registry
475
476#### /redfish/v1/SessionService/
477##### SessionService
478- Description
479- ServiceEnabled
480- SessionTimeout
481- Sessions
482
483#### /redfish/v1/SessionService/Sessions/
484##### SessionCollection
485- Description
486- Members
487- Members@odata.count
488
489#### /redfish/v1/SessionService/Sessions/{SessionId}/
490##### Session
491- ClientOriginIPAddress
492- Description
493- Oem
494- UserName
495
496#### /redfish/v1/Systems/
497##### ComputerSystemCollection
498- Members
499  - Should support one system
500- Members@odata.count
501
502#### /redfish/v1/Systems/system/Bios/
503##### Bios
504- Actions
505- Description
506- Links/ActiveSoftwareImage
507- Links/SoftwareImages
508- Links/SoftwareImages@odata.count
509
510#### /redfish/v1/Systems/system/
511##### ComputerSystem
512- Actions
513- AssetTag
514- Bios
515- BiosVersion
516- Boot
517- BootProgress
518- Description
519- HostWatchdogTimer
520- IdlePowerSaver/Enable
521- IdlePowerSaver/EnterUtilizationPercent
522- IdlePowerSaver/EnterDwellTimeSeconds
523- IdlePowerSaver/ExitUtilizationPercent
524- IdlePowerSaver/ExitDwellTimeSeconds
525- IndicatorLED
526- LastResetTime
527- Links/Chassis
528- Links/ManagedBy
529- LocationIndicatorActive
530- LogServices
531- Manufacturer
532- Memory
533- MemorySummary
534- Model
535- PartNumber
536- PowerMode
537- PowerRestorePolicy
538- PowerState
539- ProcessorSummary
540- Processors
541- SerialNumber
542- Status
543- Storage
544- SubModel
545- SystemType
546
547#### /redfish/v1/Systems/system/EthernetInterfaces/
548##### EthernetInterfaceCollection
549- Members
550- Members@odata.count
551- Description
552
553#### /redfish/v1/Systems/system/LogServices/
554##### LogServiceCollection
555- Description
556- Members
557  - Should default to one member, named SEL
558- Members@odata.count
559
560#### /redfish/v1/Systems/system/LogServices/EventLog/
561##### LogService
562- Actions
563- DateTime
564- DateTimeLocalOffset
565- Description
566- Entries
567- OverWritePolicy
568
569#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/
570##### LogEntryCollection
571- Description
572- Members
573- Members@odata.count
574
575#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/
576##### LogEntry
577- AdditionalDataURI
578- Created
579- EntryType
580- Message
581- Modified
582- Resolved
583- Severity
584
585#### /redfish/v1/Systems/system/LogServices/SEL/Entries/
586##### LogEntryCollection
587- Members
588- Members@odata.count
589- Description
590- @odata.nextLink
591
592#### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/
593##### LogEntry
594- MessageArgs
595- Severity
596- SensorType
597- Message
598- MessageId
599- Created
600- EntryCode
601- EntryType
602
603#### /redfish/v1/Systems/system/Memory/
604##### MemoryCollection
605- Members
606- Members@odata.count
607
608#### /redfish/v1/Systems/system/Memory/{MemoryId}/
609##### Memory
610- AllowedSpeedsMHz
611- BaseModuleType
612- BusWidthBits
613- CapacityMiB
614- DataWidthBits
615- ErrorCorrection
616- FirmwareRevision
617- Manufacturer
618- Model
619- OperatingSpeedMhz
620- PartNumber
621- RankCount
622- SerialNumber
623- SparePartNumber
624- Status
625
626#### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/
627##### MemoryMetrics
628- Description
629- HealthData
630
631#### /redfish/v1/Systems/system/PCIeDevices/
632##### PCIeDeviceCollection
633- Description
634- Members
635- Members@odata.count
636
637#### /redfish/v1/Systems/system/Processors/
638##### ProcessorCollection
639- Members
640  - Should Support CPU1 and CPU2 for dual socket systems
641- Members@odata.count
642
643#### /redfish/v1/Systems/system/Processors/{ProcessorId}/
644##### Processor
645- InstructionSet
646- Manufacturer
647- MaxSpeedMHz
648- PartNumber
649- ProcessorArchitecture
650- ProcessorId
651- ProcessorType
652- SerialNumber
653- Socket
654- SparePartNumber
655- Status
656- TotalCores
657- TotalThreads
658- Version
659
660#### /redfish/v1/Systems/system/Storage/
661##### StorageCollection
662- Members
663- Members@odata.count
664
665#### /redfish/v1/Systems/system/Storage/{StorageId}/
666##### Storage
667- Drives
668- Drives@odata.count
669- Status
670
671#### /redfish/v1/TaskService/
672##### TaskService
673- CompletedTaskOverWritePolicy
674- DateTime
675- LifeCycleEventOnTaskStateChange
676- ServiceEnabled
677- Status
678- Tasks
679
680#### /redfish/v1/TaskService/Tasks/
681##### TaskCollection
682- Members
683- Members@odata.count
684
685#### /redfish/v1/TelemetryService/
686##### TelemetryService
687- MaxReports
688- MetricReportDefinitions
689- MetricReports
690- MinCollectionInterval
691- Status
692
693#### /redfish/v1/TelemetryService/MetricReportDefinitions/
694##### MetricReportDefinitionCollection
695- Members
696- Members@odata.count
697
698#### /redfish/v1/TelemetryService/MetricReports/
699##### MetricReportCollection
700- Members
701- Members@odata.count
702
703#### /redfish/v1/UpdateService/
704##### UpdateService
705- Actions
706- Description
707- FirmwareInventory
708- HttpPushUri
709- HttpPushUriOptions
710- MaxImageSizeBytes
711- ServiceEnabled
712
713#### /redfish/v1/UpdateService/FirmwareInventory/
714##### SoftwareInventoryCollection
715- Members
716  - Should Support BMC, ME, CPLD and BIOS
717- Members@odata.count
718
719#### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/
720##### SoftwareInventory
721- Description
722- RelatedItem@odata.count
723- RelatedItem
724- Status
725- Updateable
726- Version
727
728[1]: https://www.dmtf.org/standards/redfish
729[2]: https://redfish.dmtf.org/schemas/v1/LogService.json
730[3]: https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md
731[4]: https://github.com/openbmc/phosphor-logging
732