xref: /openbmc/bmcweb/Redfish.md (revision 6c068982)
1# Redfish
2
3bmcweb provides an implementation of the [Redfish][1] API. This document details
4the Redfish schemas supported by bmcweb. This document also discusses some of
5the details of that implementation and different implementations available for
6certain areas.
7
8## Redfish Schema
9
10The redfish implementation shall pass the
11[Redfish Service Validator](https://github.com/DMTF/Redfish-Service-Validator "Validator")
12with no 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
18[here](https://redfish.dmtf.org/schemas/)
19
20If using a previously unused schema, you will need to add it to the included
21schema list in `scripts/update_schemas.py` and run `update_schemas.py`.
22
23Fields common to all schemas
24
25- @odata.id
26- @odata.type
27- Id
28- Name
29
30### /redfish/v1/
31
32#### ServiceRoot
33
34- AccountService
35- AggregationService
36- CertificateService
37- Chassis
38- EventService
39- JsonSchemas
40- Links/Sessions
41- Managers
42- RedfishVersion
43- Registries
44- SessionService
45- Systems
46- Tasks
47- TelemetryService
48- UUID
49- UpdateService
50
51### /redfish/v1/AccountService/
52
53#### AccountService
54
55- AccountLockoutDuration
56- AccountLockoutThreshold
57- Accounts
58- Description
59- LDAP
60- MaxPasswordLength
61- MinPasswordLength
62- Oem/OpenBMC/AuthMethods/BasicAuth
63- Oem/OpenBMC/AuthMethods/Cookie
64- Oem/OpenBMC/AuthMethods/SessionToken
65- Oem/OpenBMC/AuthMethods/TLS
66- Oem/OpenBMC/AuthMethods/XToken
67- Roles
68- ServiceEnabled
69
70### /redfish/v1/AggregationService/
71
72#### AggregationService
73
74- Description
75- ServiceEnabled
76
77### /redfish/v1/AccountService/Accounts/
78
79#### ManagerAccountCollection
80
81- Description
82- Members
83- Members@odata.count
84
85### /redfish/v1/AccountService/Accounts/{ManagerAccountId}/
86
87#### ManagerAccount
88
89- AccountTypes
90- Description
91- Enabled
92- Links/Role
93- Locked
94- Locked@Redfish.AllowableValues
95- Password
96- PasswordChangeRequired
97- RoleId
98- UserName
99
100### /redfish/v1/AccountService/LDAP/Certificates/
101
102#### CertificateCollection
103
104- Description
105- Members
106- Members@odata.count
107
108### /redfish/v1/AccountService/Roles/
109
110#### RoleCollection
111
112- Description
113- Members
114  - By default will contain 3 roles, "Administrator", "Operator", and "ReadOnly"
115- Members@odata.count
116
117### /redfish/v1/AccountService/Roles/{RoleId}/
118
119#### Role
120
121- AssignedPrivileges
122  - For the default roles, the following privileges will be assigned by default
123    - Administrator: Login, ConfigureManager, ConfigureUsers, ConfigureSelf,
124      ConfigureComponents
125    - Operator: Login, ConfigureComponents, ConfigureSelf
126    - ReadOnly: Login, ConfigureSelf
127- Description
128- IsPredefined
129  - Will be set to true for all default roles. If the given role is non-default,
130    or has been modified from default, will be marked as false.
131- OemPrivileges
132- RoleId
133
134### /redfish/v1/CertificateService/
135
136#### CertificateService
137
138- Actions
139- CertificateLocations
140- Description
141
142### /redfish/v1/CertificateService/CertificateLocations/
143
144#### CertificateLocations
145
146- Description
147- Links/Certificates
148- Links/Certificates@odata.count
149
150### /redfish/v1/Chassis/
151
152#### ChassisCollection
153
154- Members
155- Members@odata.count
156
157### /redfish/v1/Chassis/{ChassisId}/
158
159#### Chassis
160
161- Actions
162- ChassisType
163- Links/ComputerSystems
164- Links/ManagedBy
165- PCIeDevices
166- Power
167  - Shall be included if component contains voltage/current sensing components,
168    otherwise will be omitted.
169- PowerState
170- Sensors
171- Status
172- Thermal
173  - Shall be included if component contains temperature sensors, otherwise shall
174    be omitted.
175
176### /redfish/v1/Chassis/{ChassisId}/Drive/
177
178#### Drive
179
180- Members (This is dependent on a entity manager association from Chassis to
181  Drives, The name of the association is `chassis<->drive`)
182
183### /redfish/v1/Chassis/{ChassisId}/Drive/{DriveId}/
184
185#### Drive
186
187- Drives
188- Drives@odata.count
189- Status (this is dependant on a entity manager association from Chassis to
190  Drives)
191
192### /redfish/v1/Chassis/{ChassisId}/EnvironmentMetrics/
193
194#### EnvironmentMetrics
195
196### /redfish/v1/Chassis/{ChassisId}/Power/
197
198#### Power
199
200- PowerControl
201- PowerSupplies
202- Redundancy
203- Voltages
204
205### /redfish/v1/Chassis/{ChassisId}/Sensors/
206
207#### SensorCollection
208
209- Description
210- Members
211- Members@odata.count
212
213### /redfish/v1/Chassis/{ChassisId}/Sensors/{Id}/
214
215#### Sensor
216
217- Reading
218- ReadingRangeMax
219- ReadingRangeMin
220- ReadingType
221- ReadingUnits
222- Status
223- Thresholds
224
225### /redfish/v1/Chassis/{ChassisId}/Thermal/
226
227#### Thermal
228
229- Fans
230- Redundancy
231- Temperatures
232
233### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName}/
234
235#### Temperature
236
237- MemberId
238- Status
239- ReadingCelsius
240- UpperThresholdNonCritical
241- UpperThresholdCritical
242- LowerThresholdNonCritical
243- LowerThresholdCritical
244- MinReadingRange
245- MaxReadingRange _threshold fields only present if defined for sensor,
246  otherwise absent_
247
248### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName}/
249
250#### Fan
251
252- MemberId
253- Status
254- Reading
255- ReadingUnits
256- UpperThresholdNonCritical
257- UpperThresholdCritical
258- LowerThresholdNonCritical
259- LowerThresholdCritical
260- MinReadingRange
261- MaxReadingRange
262- Redundancy _threshold fields only present if defined for sensor, otherwise
263  absent_
264
265### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName}/
266
267#### Redundancy
268
269- MemberId
270- RedundancySet
271- Mode
272- Status
273- MinNumNeeded
274- MaxNumSupported
275
276### /redfish/v1/Chassis/{ChassisId}/ThermalSubsystem
277
278#### ThermalSubsystem
279
280- Status
281
282### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName}/
283
284#### PowerControl
285
286- MemberId
287- PowerConsumedWatts
288- PowerMetrics/IntervalInMin
289- PowerMetrics/MinConsumedWatts
290- PowerMetrics/MaxConsumedWatts
291- PowerMetrics/AverageConsumedWatts
292- RelatedItem
293  - Should list systems and related chassis
294
295### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName}/
296
297#### Voltage
298
299- MemberId
300- Status
301- ReadingVolts
302- UpperThresholdNonCritical
303- UpperThresholdCritical
304- LowerThresholdNonCritical
305- LowerThresholdCritical
306- MinReadingRange
307- MaxReadingRange
308- PhysicalContext
309- RelatedItem
310
311### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName}/
312
313#### PowerSupply
314
315- MemberId
316- Status
317- LininputVoltage
318- Model
319- manufacturer
320- FirmwareVersion
321- SerialNumber
322- PartNumber
323- RelatedItem
324- Redundancy
325
326### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName}/
327
328#### Redundancy
329
330- MemberId
331- RedundancySet
332- Mode
333- Status
334- MinNumNeeded
335- MaxNumSupported
336
337### /redfish/v1/EventService/
338
339#### EventService
340
341- Actions
342- DeliveryRetryAttempts
343  - Defaults to 3
344- DeliveryRetryIntervalSeconds
345- EventFormatTypes
346- RegistryPrefixes
347- ResourceTypes
348- SSEFilterPropertiesSupported
349- ServiceEnabled
350- Status
351- Subscriptions
352
353### /redfish/v1/EventService/Subscriptions/
354
355#### EventDestinationCollection
356
357- Members
358- Members@odata.count
359
360### /redfish/v1/EventService/Subscriptions/{EventName}/
361
362#### EventDestination
363
364- Id
365- Destination
366- EventTypes
367- Context
368- OriginResources
369- Protocol
370
371### /redfish/v1/JsonSchemas/
372
373#### JsonSchemaFileCollection
374
375- Description
376- Members@odata.count
377- Members
378
379### /redfish/v1/JsonSchemas/{Id}/
380
381#### JsonSchemaFile
382
383- Schema
384- Description
385- Languages
386- Languages@odata.count
387- Location
388- Location@odata.count
389
390### /redfish/v1/Managers/
391
392#### ManagerCollection
393
394- Members
395- Members@odata.count
396
397### /redfish/v1/Managers/bmc/
398
399#### Manager
400
401- Actions
402- DateTime
403- DateTimeLocalOffset
404- Description
405- EthernetInterfaces
406- FirmwareVersion
407- GraphicalConsole
408- LastResetTime
409- Links/ActiveSoftwareImage
410- Links/ManagerForChassis
411- Links/ManagerForChassis@odata.count
412- Links/ManagerForServers
413- Links/ManagerForServers@odata.count
414- Links/ManagerInChassis
415- Links/SoftwareImages
416- Links/SoftwareImages@odata.count
417- LogServices
418- ManagerType
419- Manufacturer
420- Model
421- NetworkProtocol
422- Oem
423- PartNumber
424- PowerState
425- SerialConsole
426- SerialNumber
427- ServiceEntryPointUUID
428- SparePartNumber
429- Status
430- UUID
431
432### /redfish/v1/Managers/bmc/EthernetInterfaces/
433
434#### EthernetInterfaceCollection
435
436- Description
437- Members
438- Members@odata.count
439
440### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/
441
442#### EthernetInterface
443
444- DHCPv4
445- DHCPv6
446- Description
447- FQDN
448- HostName
449- IPv4Addresses
450- IPv4StaticAddresses
451- IPv6AddressPolicyTable
452- IPv6Addresses
453- IPv6DefaultGateway
454- IPv6StaticAddresses
455- InterfaceEnabled
456- LinkStatus
457- MACAddress
458- NameServers
459- SpeedMbps
460- StaticNameServers
461- Status
462- VLANs
463
464### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/VLANs/
465
466#### VLanNetworkInterfaceCollection
467
468- Members
469- Members@odata.count
470
471### /redfish/v1/Managers/bmc/LogServices/
472
473The [LogService][2] resource provides properties for monitoring and configuring
474events for the service or resource to which it is associated.
475
476Within bmcweb, the LogService object resides under the System resource. It
477tracks all events for the system.
478
479The LogService supports multiple log entry types. bmcweb has support for the
480`Event` type. This is the new Redfish-defined type.
481
482bmcweb supports two different implementations of the
483`LogService/EventLog/Entries` URI.
484
485The default implementation uses rsyslog to write Redfish events from the journal
486to the persistent /var/log/ filesystem. The bmcweb software then looks for these
487files in /var/log/ and returns the appropriate Redfish EventLog Entries for
488these. More details on adding events can be found [here][3]
489
490The other implementation of EventLog Entries can be enabled by compiling bmcweb
491with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause
492bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will
493then be translated to Redfish EventLog Entries.
494
495These two implementations do not work together, so choosing one will disable the
496other.
497
498#### LogServiceCollection
499
500- Description
501- Members
502- Members@odata.count
503
504### /redfish/v1/Managers/bmc/LogServices/RedfishLog/
505
506#### LogService
507
508- Entries
509- OverWritePolicy
510- Actions
511- Status
512- DateTime
513- MaxNumberOfRecords
514
515### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/
516
517#### LogEntry
518
519- Message
520- Created
521- EntryType
522
523### /redfish/v1/Managers/bmc/NetworkProtocol/
524
525#### ManagerNetworkProtocol
526
527- Description
528- FQDN
529- HTTP
530- HTTPS
531- HostName
532- IPMI
533- NTP
534- SSH
535- Status
536
537### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/
538
539#### CertificateCollection
540
541- Description
542- Members
543- Members@odata.count
544
545### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/
546
547#### Certificate
548
549- CertificateString
550- Description
551- Issuer
552- KeyUsage
553- Subject
554- ValidNotAfter
555- ValidNotBefore
556
557### /redfish/v1/Managers/bmc/Truststore/Certificates/
558
559#### CertificateCollection
560
561- Description
562- error
563
564### /redfish/v1/Registries/
565
566#### MessageRegistryFileCollection
567
568- Description
569- Members
570  - Should support Base, CommonMessages, and EventingMessages
571- Members@odata.count
572
573### /redfish/v1/Registries/{MessageRegistryFileId}/
574
575#### MessageRegistryFile
576
577- Description
578- Languages
579- Languages@odata.count
580- Location
581- Location@odata.count
582- Registry
583
584### /redfish/v1/SessionService/
585
586#### SessionService
587
588- Description
589- ServiceEnabled
590- SessionTimeout
591- Sessions
592
593### /redfish/v1/SessionService/Sessions/
594
595#### SessionCollection
596
597- Description
598- Members
599- Members@odata.count
600
601### /redfish/v1/SessionService/Sessions/{SessionId}/
602
603#### Session
604
605- ClientOriginIPAddress
606- Description
607- Oem
608- UserName
609
610### /redfish/v1/Systems/
611
612#### ComputerSystemCollection
613
614- Members
615  - Should support one system
616- Members@odata.count
617
618### /redfish/v1/Systems/system/Bios/
619
620#### Bios
621
622- Actions
623- Description
624- Links/ActiveSoftwareImage
625- Links/SoftwareImages
626- Links/SoftwareImages@odata.count
627
628### /redfish/v1/Systems/system/
629
630#### ComputerSystem
631
632- Actions
633- AssetTag
634- Bios
635- BiosVersion
636- Boot
637- BootProgress
638- Description
639- HostWatchdogTimer
640- IdlePowerSaver/Enable
641- IdlePowerSaver/EnterUtilizationPercent
642- IdlePowerSaver/EnterDwellTimeSeconds
643- IdlePowerSaver/ExitUtilizationPercent
644- IdlePowerSaver/ExitDwellTimeSeconds
645- IndicatorLED
646- LastResetTime
647- Links/Chassis
648- Links/ManagedBy
649- LocationIndicatorActive
650- LogServices
651- Manufacturer
652- Memory
653- MemorySummary
654- Model
655- PartNumber
656- PowerMode
657- PowerRestorePolicy
658- PowerState
659- ProcessorSummary
660- Processors
661- SerialNumber
662- Status
663- Storage
664- SubModel
665- SystemType
666
667### /redfish/v1/Systems/system/EthernetInterfaces/
668
669#### EthernetInterfaceCollection
670
671- Members
672- Members@odata.count
673- Description
674
675### /redfish/v1/Systems/system/FabricAdapters/
676
677#### FabricAdapterCollection
678
679- Members
680- Members@odata.count
681
682### /redfish/v1/Systems/system/FabricAdapters/{FabricAdapterId}/
683
684#### FabricAdapter
685
686- Location
687- Model
688- PartNumber
689- SerialNumber
690- SparePartNumber
691- Status
692
693### /redfish/v1/Systems/system/LogServices/
694
695#### LogServiceCollection
696
697- Description
698- Members
699  - Should default to one member, named SEL
700- Members@odata.count
701
702### /redfish/v1/Systems/system/LogServices/EventLog/
703
704#### LogService
705
706- Actions
707- DateTime
708- DateTimeLocalOffset
709- Description
710- Entries
711- OverWritePolicy
712
713### /redfish/v1/Systems/system/LogServices/EventLog/Entries/
714
715#### LogEntryCollection
716
717- Description
718- Members
719- Members@odata.count
720
721### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/
722
723#### LogEntry
724
725- AdditionalDataURI
726- Created
727- EntryType
728- Message
729- Modified
730- Resolved
731- Severity
732
733### /redfish/v1/Systems/system/LogServices/SEL/Entries/
734
735#### LogEntryCollection
736
737- Members
738- Members@odata.count
739- Description
740- @odata.nextLink
741
742### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/
743
744#### LogEntry
745
746- MessageArgs
747- Severity
748- SensorType
749- Message
750- MessageId
751- Created
752- EntryCode
753- EntryType
754
755### /redfish/v1/Systems/system/Memory/
756
757#### MemoryCollection
758
759- Members
760- Members@odata.count
761
762### /redfish/v1/Systems/system/Memory/{MemoryId}/
763
764#### Memory
765
766- AllowedSpeedsMHz
767- BaseModuleType
768- BusWidthBits
769- CapacityMiB
770- DataWidthBits
771- ErrorCorrection
772- FirmwareRevision
773- Manufacturer
774- Model
775- OperatingSpeedMhz
776- PartNumber
777- RankCount
778- SerialNumber
779- SparePartNumber
780- Status
781
782### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/
783
784#### MemoryMetrics
785
786- Description
787- HealthData
788
789### /redfish/v1/Systems/system/PCIeDevices/
790
791#### PCIeDeviceCollection
792
793- Description
794- Members
795- Members@odata.count
796
797### /redfish/v1/Systems/system/PCIeDevices/{PCIeDevice}/
798
799- PCIeInterface
800  - LanesInUse
801
802### /redfish/v1/Systems/system/Processors/
803
804#### ProcessorCollection
805
806- Members
807  - Should Support CPU1 and CPU2 for dual socket systems
808- Members@odata.count
809
810### /redfish/v1/Systems/system/Processors/{ProcessorId}/
811
812#### Processor
813
814- InstructionSet
815- Manufacturer
816- MaxSpeedMHz
817- PartNumber
818- ProcessorArchitecture
819- ProcessorId
820- ProcessorType
821- SerialNumber
822- Socket
823- SparePartNumber
824- Status
825- TotalCores
826- TotalThreads
827- Version
828
829### /redfish/v1/Systems/system/Storage/
830
831#### StorageCollection
832
833- Members
834- Members@odata.count
835
836### /redfish/v1/Systems/system/Storage/{StorageId}/
837
838#### Storage
839
840- Drives
841- Drives@odata.count
842- Status
843
844### /redfish/v1/Systems/system/Storage/{StorageId}/Drive/{DriveId}/
845
846#### Storage
847
848- CapacityBytes
849- Links
850- Status
851
852### /redfish/v1/TaskService/
853
854#### TaskService
855
856- CompletedTaskOverWritePolicy
857- DateTime
858- LifeCycleEventOnTaskStateChange
859- ServiceEnabled
860- Status
861- Tasks
862
863### /redfish/v1/TaskService/Tasks/
864
865#### TaskCollection
866
867- Members
868- Members@odata.count
869
870### /redfish/v1/TelemetryService/
871
872#### TelemetryService
873
874- MaxReports
875- MetricReportDefinitions
876- MetricReports
877- MinCollectionInterval
878- Status
879- Triggers
880
881### /redfish/v1/TelemetryService/MetricReportDefinitions/
882
883#### MetricReportDefinitionCollection
884
885- Members
886- Members@odata.count
887
888### /redfish/v1/TelemetryService/MetricReports/
889
890#### MetricReportCollection
891
892- Members
893- Members@odata.count
894
895### /redfish/v1/TelemetryService/Triggers/
896
897#### TriggersCollection
898
899- Members
900- Members@odata.count
901
902### /redfish/v1/UpdateService/
903
904#### UpdateService
905
906- Actions
907- Description
908- FirmwareInventory
909- HttpPushUri
910- HttpPushUriOptions
911- MaxImageSizeBytes
912- ServiceEnabled
913
914### /redfish/v1/UpdateService/FirmwareInventory/
915
916#### SoftwareInventoryCollection
917
918- Members
919  - Should Support BMC, ME, CPLD and BIOS
920- Members@odata.count
921
922### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/
923
924#### SoftwareInventory
925
926- Description
927- RelatedItem@odata.count
928- RelatedItem
929- Status
930- Updateable
931- Version
932
933[1]: https://www.dmtf.org/standards/redfish
934[2]: https://redfish.dmtf.org/schemas/v1/LogService.json
935[3]:
936  https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md
937[4]: https://github.com/openbmc/phosphor-logging
938