xref: /openbmc/bmcweb/Redfish.md (revision ed76121b)
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}/Drive/
148#### Drive
149- Members
150(This is dependent on a entity manager association from
151Chassis to Drives, The name of the association is "chassis<->drive")
152
153#### /redfish/v1/Chassis/{ChassisId}/Drive/{DriveId}/
154#### Drive
155- Drives
156- Drives@odata.count
157- Status
158(this is dependant on a entity manager association from Chassis to Drives)
159
160#### /redfish/v1/Chassis/{ChassisId}/Power/
161##### Power
162- PowerControl
163- PowerSupplies
164- Redundancy
165- Voltages
166
167#### /redfish/v1/Chassis/{ChassisId}/Sensors/
168##### SensorCollection
169- Description
170- Members
171- Members@odata.count
172
173#### /redfish/v1/Chassis/{ChassisId}/Sensors/{Id}/
174##### Sensor
175- Reading
176- ReadingRangeMax
177- ReadingRangeMin
178- ReadingType
179- ReadingUnits
180- Status
181- Thresholds
182
183#### /redfish/v1/Chassis/{ChassisId}/Thermal/
184##### Thermal
185- Fans
186- Redundancy
187- Temperatures
188
189#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName}/
190##### Temperature
191- MemberId
192- Status
193- ReadingCelsius
194- UpperThresholdNonCritical
195- UpperThresholdCritical
196- LowerThresholdNonCritical
197- LowerThresholdCritical
198- MinReadingRange
199- MaxReadingRange
200*threshold fields only present if defined for sensor, otherwise absent*
201
202#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName}/
203##### Fan
204- MemberId
205- Status
206- Reading
207- ReadingUnits
208- UpperThresholdNonCritical
209- UpperThresholdCritical
210- LowerThresholdNonCritical
211- LowerThresholdCritical
212- MinReadingRange
213- MaxReadingRange
214- Redundancy
215*threshold fields only present if defined for sensor, otherwise absent*
216
217#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName}/
218##### Redundancy
219- MemberId
220- RedundancySet
221- Mode
222- Status
223- MinNumNeeded
224- MaxNumSupported
225
226#### /redfish/v1/Chassis/{ChassisId}/ThermalSubsystem
227
228##### ThermalSubsystem
229- Status
230
231#### /redfish/v1/Chassis/{ChassisId}/Power/
232##### Power
233PowerControl Voltages PowerSupplies Redundancy
234
235#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName}/
236##### PowerControl
237- MemberId
238- PowerConsumedWatts
239- PowerMetrics/IntervalInMin
240- PowerMetrics/MinConsumedWatts
241- PowerMetrics/MaxConsumedWatts
242- PowerMetrics/AverageConsumedWatts
243- RelatedItem
244  - Should list systems and related chassis
245
246#### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName}/
247##### Voltage
248- MemberId
249- Status
250- ReadingVolts
251- UpperThresholdNonCritical
252- UpperThresholdCritical
253- LowerThresholdNonCritical
254- LowerThresholdCritical
255- MinReadingRange
256- MaxReadingRange
257- PhysicalContext
258- RelatedItem
259
260#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName}/
261##### PowerSupply
262- MemberId
263- Status
264- LininputVoltage
265- Model
266- manufacturer
267- FirmwareVersion
268- SerialNumber
269- PartNumber
270- RelatedItem
271- Redundancy
272
273#### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName}/
274##### Redundancy
275- MemberId
276- RedundancySet
277- Mode
278- Status
279- MinNumNeeded
280- MaxNumSupported
281
282#### /redfish/v1/EventService/
283##### EventService
284- Actions
285- DeliveryRetryAttempts
286  - Defaults to 3
287- DeliveryRetryIntervalSeconds
288- EventFormatTypes
289- RegistryPrefixes
290- ResourceTypes
291- SSEFilterPropertiesSupported
292- ServiceEnabled
293- Status
294- Subscriptions
295
296#### /redfish/v1/EventService/Subscriptions/
297##### EventDestinationCollection
298- Members
299- Members@odata.count
300
301#### /redfish/v1/EventService/Subscriptions/{EventName}/
302##### EventDestination
303- Id
304- Destination
305- EventTypes
306- Context
307- OriginResources
308- Protocol
309
310#### /redfish/v1/JsonSchemas/
311##### JsonSchemaFileCollection
312- Description
313- Members@odata.count
314- Members
315
316#### /redfish/v1/JsonSchemas/{Id}/
317##### JsonSchemaFile
318- Schema
319- Description
320- Languages
321- Languages@odata.count
322- Location
323- Location@odata.count
324
325#### /redfish/v1/Managers/
326##### ManagerCollection
327- Members
328- Members@odata.count
329
330#### /redfish/v1/Managers/bmc/
331##### Manager
332- Actions
333- DateTime
334- DateTimeLocalOffset
335- Description
336- EthernetInterfaces
337- FirmwareVersion
338- GraphicalConsole
339- LastResetTime
340- Links/ActiveSoftwareImage
341- Links/ManagerForChassis
342- Links/ManagerForChassis@odata.count
343- Links/ManagerForServers
344- Links/ManagerForServers@odata.count
345- Links/ManagerInChassis
346- Links/SoftwareImages
347- Links/SoftwareImages@odata.count
348- LogServices
349- ManagerType
350- Manufacturer
351- Model
352- NetworkProtocol
353- Oem
354- PartNumber
355- PowerState
356- SerialConsole
357- SerialNumber
358- ServiceEntryPointUUID
359- SparePartNumber
360- Status
361- UUID
362
363#### /redfish/v1/Managers/bmc/EthernetInterfaces/
364##### EthernetInterfaceCollection
365- Description
366- Members
367- Members@odata.count
368
369#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/
370##### EthernetInterface
371- DHCPv4
372- DHCPv6
373- Description
374- FQDN
375- HostName
376- IPv4Addresses
377- IPv4StaticAddresses
378- IPv6AddressPolicyTable
379- IPv6Addresses
380- IPv6DefaultGateway
381- IPv6StaticAddresses
382- InterfaceEnabled
383- LinkStatus
384- MACAddress
385- NameServers
386- SpeedMbps
387- StaticNameServers
388- Status
389- VLANs
390
391#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/VLANs/
392##### VLanNetworkInterfaceCollection
393- Members
394- Members@odata.count
395
396#### /redfish/v1/Managers/bmc/LogServices/
397
398The [LogService][2] resource provides properties for monitoring and configuring
399events for the service or resource to which it is associated.
400
401Within bmcweb, the LogService object resides under the System resource. It
402tracks all events for the system.
403
404The LogService supports multiple log entry types. bmcweb has support for
405the `Event` type. This is the new Redfish-defined type.
406
407bmcweb supports two different implementations of the
408`LogService/EventLog/Entries` URI.
409
410The default implementation uses rsyslog to write Redfish events from the journal
411to the persistent /var/log/ filesystem. The bmcweb software then looks for these
412files in /var/log/ and returns the appropriate Redfish EventLog Entries for
413these. More details on adding events can be found [here][3]
414
415The other implementation of EventLog Entries can be enabled by compiling bmcweb
416with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause
417bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will
418then be translated to Redfish EventLog Entries.
419
420These two implementations do not work together, so choosing one will disable
421the other.
422
423#### /redfish/v1/Managers/bmc/LogServices/
424##### LogServiceCollection
425- Description
426- Members
427- Members@odata.count
428
429#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/
430##### LogService
431- Entries
432- OverWritePolicy
433- Actions
434- Status
435- DateTime
436- MaxNumberOfRecords
437
438#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/
439##### LogEntry
440- Message
441- Created
442- EntryType
443
444#### /redfish/v1/Managers/bmc/NetworkProtocol/
445##### ManagerNetworkProtocol
446- Description
447- FQDN
448- HTTP
449- HTTPS
450- HostName
451- IPMI
452- NTP
453- SSH
454- Status
455
456#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/
457##### CertificateCollection
458- Description
459- Members
460- Members@odata.count
461
462#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/
463##### Certificate
464- CertificateString
465- Description
466- Issuer
467- KeyUsage
468- Subject
469- ValidNotAfter
470- ValidNotBefore
471
472#### /redfish/v1/Managers/bmc/Truststore/Certificates/
473##### CertificateCollection
474- Description
475- error
476
477
478#### /redfish/v1/Registries/
479##### MessageRegistryFileCollection
480- Description
481- Members
482  - Should support Base, CommonMessages, and EventingMessages
483- Members@odata.count
484
485#### /redfish/v1/Registries/{MessageRegistryFileId}/
486##### MessageRegistryFile
487- Description
488- Languages
489- Languages@odata.count
490- Location
491- Location@odata.count
492- Registry
493
494#### /redfish/v1/SessionService/
495##### SessionService
496- Description
497- ServiceEnabled
498- SessionTimeout
499- Sessions
500
501#### /redfish/v1/SessionService/Sessions/
502##### SessionCollection
503- Description
504- Members
505- Members@odata.count
506
507#### /redfish/v1/SessionService/Sessions/{SessionId}/
508##### Session
509- ClientOriginIPAddress
510- Description
511- Oem
512- UserName
513
514#### /redfish/v1/Systems/
515##### ComputerSystemCollection
516- Members
517  - Should support one system
518- Members@odata.count
519
520#### /redfish/v1/Systems/system/Bios/
521##### Bios
522- Actions
523- Description
524- Links/ActiveSoftwareImage
525- Links/SoftwareImages
526- Links/SoftwareImages@odata.count
527
528#### /redfish/v1/Systems/system/
529##### ComputerSystem
530- Actions
531- AssetTag
532- Bios
533- BiosVersion
534- Boot
535- BootProgress
536- Description
537- HostWatchdogTimer
538- IdlePowerSaver/Enable
539- IdlePowerSaver/EnterUtilizationPercent
540- IdlePowerSaver/EnterDwellTimeSeconds
541- IdlePowerSaver/ExitUtilizationPercent
542- IdlePowerSaver/ExitDwellTimeSeconds
543- IndicatorLED
544- LastResetTime
545- Links/Chassis
546- Links/ManagedBy
547- LocationIndicatorActive
548- LogServices
549- Manufacturer
550- Memory
551- MemorySummary
552- Model
553- PartNumber
554- PowerMode
555- PowerRestorePolicy
556- PowerState
557- ProcessorSummary
558- Processors
559- SerialNumber
560- Status
561- Storage
562- SubModel
563- SystemType
564
565#### /redfish/v1/Systems/system/EthernetInterfaces/
566##### EthernetInterfaceCollection
567- Members
568- Members@odata.count
569- Description
570
571#### /redfish/v1/Systems/system/LogServices/
572##### LogServiceCollection
573- Description
574- Members
575  - Should default to one member, named SEL
576- Members@odata.count
577
578#### /redfish/v1/Systems/system/LogServices/EventLog/
579##### LogService
580- Actions
581- DateTime
582- DateTimeLocalOffset
583- Description
584- Entries
585- OverWritePolicy
586
587#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/
588##### LogEntryCollection
589- Description
590- Members
591- Members@odata.count
592
593#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/
594##### LogEntry
595- AdditionalDataURI
596- Created
597- EntryType
598- Message
599- Modified
600- Resolved
601- Severity
602
603#### /redfish/v1/Systems/system/LogServices/SEL/Entries/
604##### LogEntryCollection
605- Members
606- Members@odata.count
607- Description
608- @odata.nextLink
609
610#### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/
611##### LogEntry
612- MessageArgs
613- Severity
614- SensorType
615- Message
616- MessageId
617- Created
618- EntryCode
619- EntryType
620
621#### /redfish/v1/Systems/system/Memory/
622##### MemoryCollection
623- Members
624- Members@odata.count
625
626#### /redfish/v1/Systems/system/Memory/{MemoryId}/
627##### Memory
628- AllowedSpeedsMHz
629- BaseModuleType
630- BusWidthBits
631- CapacityMiB
632- DataWidthBits
633- ErrorCorrection
634- FirmwareRevision
635- Manufacturer
636- Model
637- OperatingSpeedMhz
638- PartNumber
639- RankCount
640- SerialNumber
641- SparePartNumber
642- Status
643
644#### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/
645##### MemoryMetrics
646- Description
647- HealthData
648
649#### /redfish/v1/Systems/system/PCIeDevices/
650##### PCIeDeviceCollection
651- Description
652- Members
653- Members@odata.count
654
655#### /redfish/v1/Systems/system/Processors/
656##### ProcessorCollection
657- Members
658  - Should Support CPU1 and CPU2 for dual socket systems
659- Members@odata.count
660
661#### /redfish/v1/Systems/system/Processors/{ProcessorId}/
662##### Processor
663- InstructionSet
664- Manufacturer
665- MaxSpeedMHz
666- PartNumber
667- ProcessorArchitecture
668- ProcessorId
669- ProcessorType
670- SerialNumber
671- Socket
672- SparePartNumber
673- Status
674- TotalCores
675- TotalThreads
676- Version
677
678#### /redfish/v1/Systems/system/Storage/
679##### StorageCollection
680- Members
681- Members@odata.count
682
683#### /redfish/v1/Systems/system/Storage/{StorageId}/
684##### Storage
685- Drives
686- Drives@odata.count
687- Status
688
689#### /redfish/v1/Systems/system/Storage/{StorageId}/Drive/{DriveId}/
690##### Storage
691- CapacityBytes
692- Links
693- Status
694
695#### /redfish/v1/TaskService/
696##### TaskService
697- CompletedTaskOverWritePolicy
698- DateTime
699- LifeCycleEventOnTaskStateChange
700- ServiceEnabled
701- Status
702- Tasks
703
704#### /redfish/v1/TaskService/Tasks/
705##### TaskCollection
706- Members
707- Members@odata.count
708
709#### /redfish/v1/TelemetryService/
710##### TelemetryService
711- MaxReports
712- MetricReportDefinitions
713- MetricReports
714- MinCollectionInterval
715- Status
716- Triggers
717
718#### /redfish/v1/TelemetryService/MetricReportDefinitions/
719##### MetricReportDefinitionCollection
720- Members
721- Members@odata.count
722
723#### /redfish/v1/TelemetryService/MetricReports/
724##### MetricReportCollection
725- Members
726- Members@odata.count
727
728#### /redfish/v1/TelemetryService/Triggers/
729##### TriggersCollection
730- Members
731- Members@odata.count
732
733#### /redfish/v1/UpdateService/
734##### UpdateService
735- Actions
736- Description
737- FirmwareInventory
738- HttpPushUri
739- HttpPushUriOptions
740- MaxImageSizeBytes
741- ServiceEnabled
742
743#### /redfish/v1/UpdateService/FirmwareInventory/
744##### SoftwareInventoryCollection
745- Members
746  - Should Support BMC, ME, CPLD and BIOS
747- Members@odata.count
748
749#### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/
750##### SoftwareInventory
751- Description
752- RelatedItem@odata.count
753- RelatedItem
754- Status
755- Updateable
756- Version
757
758[1]: https://www.dmtf.org/standards/redfish
759[2]: https://redfish.dmtf.org/schemas/v1/LogService.json
760[3]: https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md
761[4]: https://github.com/openbmc/phosphor-logging
762