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