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