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