xref: /openbmc/bmcweb/Redfish.md (revision 1017ef80)
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- EfficiencyRatings
383  - EfficiencyPercent
384- FirmwareVersion
385- Location
386- Manufacturer
387- Model
388- PartNumber
389- SerialNumber
390- SparePartNumber
391- Status
392
393### /redfish/v1/EventService/
394
395#### EventService
396
397- Actions
398- DeliveryRetryAttempts
399  - Defaults to 3
400- DeliveryRetryIntervalSeconds
401- EventFormatTypes
402- RegistryPrefixes
403- ResourceTypes
404- SSEFilterPropertiesSupported
405- ServiceEnabled
406- Status
407- Subscriptions
408
409### /redfish/v1/EventService/Subscriptions/
410
411#### EventDestinationCollection
412
413- Members
414- Members@odata.count
415
416### /redfish/v1/EventService/Subscriptions/{EventName}/
417
418#### EventDestination
419
420- Id
421- Destination
422- EventTypes
423- Context
424- OriginResources
425- Protocol
426
427### /redfish/v1/JsonSchemas/
428
429#### JsonSchemaFileCollection
430
431- Description
432- Members@odata.count
433- Members
434
435### /redfish/v1/JsonSchemas/{Id}/
436
437#### JsonSchemaFile
438
439- Schema
440- Description
441- Languages
442- Languages@odata.count
443- Location
444- Location@odata.count
445
446### /redfish/v1/Managers/
447
448#### ManagerCollection
449
450- Members
451- Members@odata.count
452
453### /redfish/v1/Managers/bmc/
454
455#### Manager
456
457- Actions
458- DateTime
459- DateTimeLocalOffset
460- Description
461- EthernetInterfaces
462- FirmwareVersion
463- GraphicalConsole
464- LastResetTime
465- Links/ActiveSoftwareImage
466- Links/ManagerForChassis
467- Links/ManagerForChassis@odata.count
468- Links/ManagerForServers
469- Links/ManagerForServers@odata.count
470- Links/ManagerInChassis
471- Links/SoftwareImages
472- Links/SoftwareImages@odata.count
473- LogServices
474- ManagerType
475- Manufacturer
476- Model
477- NetworkProtocol
478- Oem
479- PartNumber
480- PowerState
481- SerialConsole
482- SerialNumber
483- ServiceEntryPointUUID
484- SparePartNumber
485- Status
486- UUID
487
488### /redfish/v1/Managers/bmc/EthernetInterfaces/
489
490#### EthernetInterfaceCollection
491
492- Description
493- Members
494- Members@odata.count
495
496### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/
497
498#### EthernetInterface
499
500- DHCPv4
501- DHCPv6
502- Description
503- EthernetInterfaceType
504- FQDN
505- HostName
506- IPv4Addresses
507- IPv4StaticAddresses
508- IPv6AddressPolicyTable
509- IPv6Addresses
510- IPv6DefaultGateway
511- IPv6StaticAddresses
512- InterfaceEnabled
513- Links/RelatedInterfaces
514- LinkStatus
515- MACAddress
516- NameServers
517- SpeedMbps
518- StaticNameServers
519- Status
520- VLAN/VLANEnable
521- VLAN/VLANId
522- VLAN/Tagged
523
524### /redfish/v1/Managers/bmc/LogServices/
525
526The [LogService][2] resource provides properties for monitoring and configuring
527events for the service or resource to which it is associated.
528
529Within bmcweb, the LogService object resides under the System resource. It
530tracks all events for the system.
531
532The LogService supports multiple log entry types. bmcweb has support for the
533`Event` type. This is the new Redfish-defined type.
534
535bmcweb supports two different implementations of the
536`LogService/EventLog/Entries` URI.
537
538The default implementation uses rsyslog to write Redfish events from the journal
539to the persistent /var/log/ filesystem. The bmcweb software then looks for these
540files in /var/log/ and returns the appropriate Redfish EventLog Entries for
541these. More details on adding events can be found [here][3]
542
543The other implementation of EventLog Entries can be enabled by compiling bmcweb
544with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause
545bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will
546then be translated to Redfish EventLog Entries.
547
548These two implementations do not work together, so choosing one will disable the
549other.
550
551#### LogServiceCollection
552
553- Description
554- Members
555- Members@odata.count
556
557### /redfish/v1/Managers/bmc/LogServices/RedfishLog/
558
559#### LogService
560
561- Entries
562- OverWritePolicy
563- Actions
564- Status
565- DateTime
566- MaxNumberOfRecords
567
568### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/
569
570#### LogEntry
571
572- Message
573- Created
574- EntryType
575
576### /redfish/v1/Managers/bmc/ManagerDiagnosticData/
577
578#### ManagerDiagnosticData
579
580- ServiceRootUptimeSeconds
581
582### /redfish/v1/Managers/bmc/NetworkProtocol/
583
584#### ManagerNetworkProtocol
585
586- Description
587- FQDN
588- HTTP
589- HTTPS
590- HostName
591- IPMI
592- NTP
593- SSH
594- Status
595
596### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/
597
598#### CertificateCollection
599
600- Description
601- Members
602- Members@odata.count
603
604### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/
605
606#### Certificate
607
608- CertificateString
609- Description
610- Issuer
611- KeyUsage
612- Subject
613- ValidNotAfter
614- ValidNotBefore
615
616### /redfish/v1/Managers/bmc/Truststore/Certificates/
617
618#### CertificateCollection
619
620- Description
621- error
622
623### /redfish/v1/Registries/
624
625#### MessageRegistryFileCollection
626
627- Description
628- Members
629  - Should support Base, CommonMessages, and EventingMessages
630- Members@odata.count
631
632### /redfish/v1/Registries/{MessageRegistryFileId}/
633
634#### MessageRegistryFile
635
636- Description
637- Languages
638- Languages@odata.count
639- Location
640- Location@odata.count
641- Registry
642
643### /redfish/v1/SessionService/
644
645#### SessionService
646
647- Description
648- ServiceEnabled
649- SessionTimeout
650- Sessions
651
652### /redfish/v1/SessionService/Sessions/
653
654#### SessionCollection
655
656- Description
657- Members
658- Members@odata.count
659
660### /redfish/v1/SessionService/Sessions/{SessionId}/
661
662#### Session
663
664- ClientOriginIPAddress
665- Description
666- Oem
667- UserName
668
669### /redfish/v1/Systems/
670
671#### ComputerSystemCollection
672
673- Members
674  - Should support one system
675- Members@odata.count
676
677### /redfish/v1/Systems/system/Bios/
678
679#### Bios
680
681- Actions
682- Description
683- Links/ActiveSoftwareImage
684- Links/SoftwareImages
685- Links/SoftwareImages@odata.count
686
687### /redfish/v1/Systems/system/
688
689#### ComputerSystem
690
691- Actions
692- AssetTag
693- Bios
694- BiosVersion
695- Boot
696- BootProgress
697- Description
698- HostWatchdogTimer
699- IdlePowerSaver/Enable
700- IdlePowerSaver/EnterUtilizationPercent
701- IdlePowerSaver/EnterDwellTimeSeconds
702- IdlePowerSaver/ExitUtilizationPercent
703- IdlePowerSaver/ExitDwellTimeSeconds
704- IndicatorLED
705- LastResetTime
706- Links/Chassis
707- Links/ManagedBy
708- LocationIndicatorActive
709- LogServices
710- Manufacturer
711- Memory
712- MemorySummary
713- Model
714- PartNumber
715- PowerMode
716- PowerRestorePolicy
717- PowerState
718- ProcessorSummary
719- Processors
720- SerialNumber
721- Status
722- Storage
723- SubModel
724- SystemType
725
726### /redfish/v1/Systems/system/EthernetInterfaces/
727
728#### EthernetInterfaceCollection
729
730- Members
731- Members@odata.count
732- Description
733
734### /redfish/v1/Systems/system/FabricAdapters/
735
736#### FabricAdapterCollection
737
738- Members
739- Members@odata.count
740
741### /redfish/v1/Systems/system/FabricAdapters/{FabricAdapterId}/
742
743#### FabricAdapter
744
745- Location
746- Model
747- PartNumber
748- SerialNumber
749- SparePartNumber
750- Status
751
752### /redfish/v1/Systems/system/LogServices/
753
754#### LogServiceCollection
755
756- Description
757- Members
758  - Should default to one member, named SEL
759- Members@odata.count
760
761### /redfish/v1/Systems/system/LogServices/EventLog/
762
763#### LogService
764
765- Actions
766- DateTime
767- DateTimeLocalOffset
768- Description
769- Entries
770- OverWritePolicy
771
772### /redfish/v1/Systems/system/LogServices/EventLog/Entries/
773
774#### LogEntryCollection
775
776- Description
777- Members
778- Members@odata.count
779
780### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/
781
782#### LogEntry
783
784- AdditionalDataURI
785- Created
786- EntryType
787- Message
788- Modified
789- Resolved
790- Severity
791
792### /redfish/v1/Systems/system/LogServices/SEL/Entries/
793
794#### LogEntryCollection
795
796- Members
797- Members@odata.count
798- Description
799- @odata.nextLink
800
801### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/
802
803#### LogEntry
804
805- MessageArgs
806- Severity
807- SensorType
808- Message
809- MessageId
810- Created
811- EntryCode
812- EntryType
813
814### /redfish/v1/Systems/system/Memory/
815
816#### MemoryCollection
817
818- Members
819- Members@odata.count
820
821### /redfish/v1/Systems/system/Memory/{MemoryId}/
822
823#### Memory
824
825- AllowedSpeedsMHz
826- BaseModuleType
827- BusWidthBits
828- CapacityMiB
829- DataWidthBits
830- ErrorCorrection
831- FirmwareRevision
832- Manufacturer
833- Model
834- OperatingSpeedMhz
835- PartNumber
836- RankCount
837- SerialNumber
838- SparePartNumber
839- Status
840
841### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/
842
843#### MemoryMetrics
844
845- Description
846- HealthData
847
848### /redfish/v1/Systems/system/PCIeDevices/
849
850#### PCIeDeviceCollection
851
852- Description
853- Members
854- Members@odata.count
855
856### /redfish/v1/Systems/system/PCIeDevices/{PCIeDevice}/
857
858- Manufacturer
859- Model
860- PartNumber
861- PCIeInterface
862  - DeviceType
863  - LanesInUse
864  - PCIeType
865- SerialNumber
866- SparePartNumber
867- Status
868
869### /redfish/v1/Systems/system/Processors/
870
871#### ProcessorCollection
872
873- Members
874  - Should Support CPU1 and CPU2 for dual socket systems
875- Members@odata.count
876
877### /redfish/v1/Systems/system/Processors/{ProcessorId}/
878
879#### Processor
880
881- InstructionSet
882- Manufacturer
883- MaxSpeedMHz
884- PartNumber
885- ProcessorArchitecture
886- ProcessorId
887- ProcessorType
888- SerialNumber
889- Socket
890- SparePartNumber
891- Status
892- ThrottleCauses
893- Throttled
894- TotalCores
895- TotalThreads
896- Version
897
898### /redfish/v1/Systems/system/Storage/
899
900#### StorageCollection
901
902- Members
903- Members@odata.count
904
905### /redfish/v1/Systems/system/Storage/{StorageId}/
906
907#### Storage
908
909- Drives
910- Drives@odata.count
911- Status
912
913### /redfish/v1/Systems/system/Storage/{StorageId}/Drive/{DriveId}/
914
915#### Storage
916
917- CapacityBytes
918- EncryptionStatus
919- Links
920- Status
921
922### /redfish/v1/TaskService/
923
924#### TaskService
925
926- CompletedTaskOverWritePolicy
927- DateTime
928- LifeCycleEventOnTaskStateChange
929- ServiceEnabled
930- Status
931- Tasks
932
933### /redfish/v1/TaskService/Tasks/
934
935#### TaskCollection
936
937- Members
938- Members@odata.count
939
940### /redfish/v1/TelemetryService/
941
942#### TelemetryService
943
944- MaxReports
945- MetricReportDefinitions
946- MetricReports
947- MinCollectionInterval
948- Status
949- Triggers
950- SupportedCollectionFunctions
951
952### /redfish/v1/TelemetryService/MetricReportDefinitions/
953
954#### MetricReportDefinitionCollection
955
956- Members
957- Members@odata.count
958
959### /redfish/v1/TelemetryService/MetricReportDefinitions/{MetricReportDefinitionId}/
960
961#### MetricReportDefinition
962
963- AppendLimit
964- Id
965- MetricReport
966- MetricReportDefinitionEnabled
967- MetricReportDefinitionType
968- Metrics
969- Name
970- ReportActions
971- ReportUpdates
972- Schedule
973- Status
974
975### /redfish/v1/TelemetryService/MetricReports/
976
977#### MetricReportCollection
978
979- Members
980- Members@odata.count
981
982### /redfish/v1/TelemetryService/MetricReports/{MetricReportId}/
983
984#### MetricReport
985
986- Id
987- MetricReportDefinition
988- MetricValues
989- Name
990- Timestamp
991
992### /redfish/v1/TelemetryService/Triggers/
993
994#### TriggersCollection
995
996- Members
997- Members@odata.count
998
999### /redfish/v1/UpdateService/
1000
1001#### UpdateService
1002
1003- Actions
1004- Description
1005- FirmwareInventory
1006- HttpPushUri
1007- HttpPushUriOptions
1008- MaxImageSizeBytes
1009- ServiceEnabled
1010
1011### /redfish/v1/UpdateService/FirmwareInventory/
1012
1013#### SoftwareInventoryCollection
1014
1015- Members
1016  - Should Support BMC, ME, CPLD and BIOS
1017- Members@odata.count
1018
1019### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/
1020
1021#### SoftwareInventory
1022
1023- Description
1024- RelatedItem@odata.count
1025- RelatedItem
1026- Status
1027- Updateable
1028- Version
1029
1030[1]: https://www.dmtf.org/standards/redfish
1031[2]: https://redfish.dmtf.org/schemas/v1/LogService.json
1032[3]:
1033  https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md
1034[4]: https://github.com/openbmc/phosphor-logging
1035