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