xref: /openbmc/bmcweb/Redfish.md (revision 9d424669)
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- IndicatorLED
521- LastResetTime
522- Links/Chassis
523- Links/ManagedBy
524- LocationIndicatorActive
525- LogServices
526- Manufacturer
527- Memory
528- MemorySummary
529- Model
530- PartNumber
531- PowerMode
532- PowerRestorePolicy
533- PowerState
534- ProcessorSummary
535- Processors
536- SerialNumber
537- Status
538- Storage
539- SubModel
540- SystemType
541
542#### /redfish/v1/Systems/system/EthernetInterfaces/
543##### EthernetInterfaceCollection
544- Members
545- Members@odata.count
546- Description
547
548#### /redfish/v1/Systems/system/LogServices/
549##### LogServiceCollection
550- Description
551- Members
552  - Should default to one member, named SEL
553- Members@odata.count
554
555#### /redfish/v1/Systems/system/LogServices/EventLog/
556##### LogService
557- Actions
558- DateTime
559- DateTimeLocalOffset
560- Description
561- Entries
562- OverWritePolicy
563
564#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/
565##### LogEntryCollection
566- Description
567- Members
568- Members@odata.count
569
570#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/
571##### LogEntry
572- AdditionalDataURI
573- Created
574- EntryType
575- Message
576- Modified
577- Resolved
578- Severity
579
580#### /redfish/v1/Systems/system/LogServices/SEL/Entries/
581##### LogEntryCollection
582- Members
583- Members@odata.count
584- Description
585- @odata.nextLink
586
587#### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/
588##### LogEntry
589- MessageArgs
590- Severity
591- SensorType
592- Message
593- MessageId
594- Created
595- EntryCode
596- EntryType
597
598#### /redfish/v1/Systems/system/Memory/
599##### MemoryCollection
600- Members
601- Members@odata.count
602
603#### /redfish/v1/Systems/system/Memory/{MemoryId}/
604##### Memory
605- AllowedSpeedsMHz
606- BaseModuleType
607- BusWidthBits
608- CapacityMiB
609- DataWidthBits
610- ErrorCorrection
611- FirmwareRevision
612- Manufacturer
613- Model
614- OperatingSpeedMhz
615- PartNumber
616- RankCount
617- SerialNumber
618- SparePartNumber
619- Status
620
621#### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/
622##### MemoryMetrics
623- Description
624- HealthData
625
626#### /redfish/v1/Systems/system/PCIeDevices/
627##### PCIeDeviceCollection
628- Description
629- Members
630- Members@odata.count
631
632#### /redfish/v1/Systems/system/Processors/
633##### ProcessorCollection
634- Members
635  - Should Support CPU1 and CPU2 for dual socket systems
636- Members@odata.count
637
638#### /redfish/v1/Systems/system/Processors/{ProcessorId}/
639##### Processor
640- InstructionSet
641- Manufacturer
642- MaxSpeedMHz
643- PartNumber
644- ProcessorArchitecture
645- ProcessorId
646- ProcessorType
647- SerialNumber
648- Socket
649- SparePartNumber
650- Status
651- TotalCores
652- TotalThreads
653- Version
654
655#### /redfish/v1/Systems/system/Storage/
656##### StorageCollection
657- Members
658- Members@odata.count
659
660#### /redfish/v1/Systems/system/Storage/{StorageId}/
661##### Storage
662- Drives
663- Drives@odata.count
664- Status
665
666#### /redfish/v1/TaskService/
667##### TaskService
668- CompletedTaskOverWritePolicy
669- DateTime
670- LifeCycleEventOnTaskStateChange
671- ServiceEnabled
672- Status
673- Tasks
674
675#### /redfish/v1/TaskService/Tasks/
676##### TaskCollection
677- Members
678- Members@odata.count
679
680#### /redfish/v1/TelemetryService/
681##### TelemetryService
682- MaxReports
683- MetricReportDefinitions
684- MetricReports
685- MinCollectionInterval
686- Status
687
688#### /redfish/v1/TelemetryService/MetricReportDefinitions/
689##### MetricReportDefinitionCollection
690- Members
691- Members@odata.count
692
693#### /redfish/v1/TelemetryService/MetricReports/
694##### MetricReportCollection
695- Members
696- Members@odata.count
697
698#### /redfish/v1/UpdateService/
699##### UpdateService
700- Actions
701- Description
702- FirmwareInventory
703- HttpPushUri
704- HttpPushUriOptions
705- MaxImageSizeBytes
706- ServiceEnabled
707
708#### /redfish/v1/UpdateService/FirmwareInventory/
709##### SoftwareInventoryCollection
710- Members
711  - Should Support BMC, ME, CPLD and BIOS
712- Members@odata.count
713
714#### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/
715##### SoftwareInventory
716- Description
717- RelatedItem@odata.count
718- RelatedItem
719- Status
720- Updateable
721- Version
722
723[1]: https://www.dmtf.org/standards/redfish
724[2]: https://redfish.dmtf.org/schemas/v1/LogService.json
725[3]: https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md
726[4]: https://github.com/openbmc/phosphor-logging
727