xref: /openbmc/bmcweb/Redfish.md (revision f263e09c)
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- UserName
115
116### /redfish/v1/AccountService/LDAP/Certificates/
117
118#### CertificateCollection
119
120- Description
121- Members
122- Members@odata.count
123
124### /redfish/v1/AccountService/Roles/
125
126#### RoleCollection
127
128- Description
129- Members
130  - By default will contain 3 roles, "Administrator", "Operator", and "ReadOnly"
131- Members@odata.count
132
133### /redfish/v1/AccountService/Roles/{RoleId}/
134
135#### Role
136
137- AssignedPrivileges
138  - For the default roles, the following privileges will be assigned by default
139    - Administrator: Login, ConfigureManager, ConfigureUsers, ConfigureSelf,
140      ConfigureComponents
141    - Operator: Login, ConfigureComponents, ConfigureSelf
142    - ReadOnly: Login, ConfigureSelf
143- Description
144- IsPredefined
145  - Will be set to true for all default roles. If the given role is non-default,
146    or has been modified from default, will be marked as false.
147- OemPrivileges
148- RoleId
149
150### /redfish/v1/Cables/
151
152#### CableCollection
153
154- Description
155- Members
156- Members@odata.count
157
158### /redfish/v1/Cables/{CableId}/
159
160#### Cable
161
162- CableType
163- LengthMeters
164
165### /redfish/v1/CertificateService/
166
167#### CertificateService
168
169- Actions
170- CertificateLocations
171- Description
172
173### /redfish/v1/CertificateService/CertificateLocations/
174
175#### CertificateLocations
176
177- Description
178- Links/Certificates
179- Links/Certificates@odata.count
180
181### /redfish/v1/Chassis/
182
183#### ChassisCollection
184
185- Members
186- Members@odata.count
187
188### /redfish/v1/Chassis/{ChassisId}/
189
190#### Chassis
191
192- Actions
193- ChassisType
194- HotPluggable
195- Links/ComputerSystems
196- Links/ManagedBy
197- PCIeDevices
198- Power
199  - Shall be included if component contains voltage/current sensing components,
200    otherwise will be omitted.
201- PowerState
202- Sensors
203- Status
204- Thermal
205  - Shall be included if component contains temperature sensors, otherwise shall
206    be omitted.
207
208### /redfish/v1/Chassis/{ChassisId}/Drive/
209
210#### Drive
211
212- Members (This is dependent on a entity manager association from Chassis to
213  Drives, The name of the association is `chassis<->drive`)
214
215### /redfish/v1/Chassis/{ChassisId}/Drive/{DriveId}/
216
217#### Drive
218
219- Drives
220- Drives@odata.count
221- Status (this is dependant on a entity manager association from Chassis to
222  Drives)
223
224### /redfish/v1/Chassis/{ChassisId}/EnvironmentMetrics/
225
226#### EnvironmentMetrics
227
228### /redfish/v1/Chassis/{ChassisId}/Power/
229
230#### Power
231
232- PowerControl
233- PowerSupplies
234- Redundancy
235- Voltages
236
237### /redfish/v1/Chassis/{ChassisId}/Sensors/
238
239#### SensorCollection
240
241- Description
242- Members
243- Members@odata.count
244
245### /redfish/v1/Chassis/{ChassisId}/Sensors/{Id}/
246
247#### Sensor
248
249- Reading
250- ReadingRangeMax
251- ReadingRangeMin
252- ReadingType
253- ReadingUnits
254- Status
255- Thresholds
256
257### /redfish/v1/Chassis/{ChassisId}/Thermal/
258
259#### Thermal
260
261- Fans
262- Redundancy
263- Temperatures
264
265### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName}/
266
267#### Temperature
268
269- MemberId
270- Status
271- ReadingCelsius
272- UpperThresholdNonCritical
273- UpperThresholdCritical
274- LowerThresholdNonCritical
275- LowerThresholdCritical
276- MinReadingRange
277- MaxReadingRange _threshold fields only present if defined for sensor,
278  otherwise absent_
279
280### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName}/
281
282#### Fan
283
284- MemberId
285- Status
286- Reading
287- ReadingUnits
288- UpperThresholdNonCritical
289- UpperThresholdCritical
290- LowerThresholdNonCritical
291- LowerThresholdCritical
292- MinReadingRange
293- MaxReadingRange
294- Redundancy _threshold fields only present if defined for sensor, otherwise
295  absent_
296
297### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName}/
298
299#### Redundancy
300
301- MemberId
302- RedundancySet
303- Mode
304- Status
305- MinNumNeeded
306- MaxNumSupported
307
308### /redfish/v1/Chassis/{ChassisId}/ThermalSubsystem
309
310#### ThermalSubsystem
311
312- Status
313
314### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName}/
315
316#### PowerControl
317
318- MemberId
319- PowerConsumedWatts
320- PowerMetrics/IntervalInMin
321- PowerMetrics/MinConsumedWatts
322- PowerMetrics/MaxConsumedWatts
323- PowerMetrics/AverageConsumedWatts
324- RelatedItem
325  - Should list systems and related chassis
326
327### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName}/
328
329#### Voltage
330
331- MemberId
332- Status
333- ReadingVolts
334- UpperThresholdNonCritical
335- UpperThresholdCritical
336- LowerThresholdNonCritical
337- LowerThresholdCritical
338- MinReadingRange
339- MaxReadingRange
340- PhysicalContext
341- RelatedItem
342
343### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName}/
344
345#### PowerSupply
346
347- MemberId
348- Status
349- LininputVoltage
350- Model
351- manufacturer
352- FirmwareVersion
353- SerialNumber
354- PartNumber
355- RelatedItem
356- Redundancy
357
358### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName}/
359
360#### Redundancy
361
362- MemberId
363- RedundancySet
364- Mode
365- Status
366- MinNumNeeded
367- MaxNumSupported
368
369#### /redfish/v1/Chassis/{ChassisId}/PowerSubsystem/PowerSupplies
370
371##### PowerSupplies
372
373- Description
374- Members
375- Members@odata.count
376
377#### /redfish/v1/Chassis/{ChassisId}/PowerSubsystem/PowerSupplies/{PowerSupplyId}
378
379##### PowerSupply
380
381### /redfish/v1/EventService/
382
383#### EventService
384
385- Actions
386- DeliveryRetryAttempts
387  - Defaults to 3
388- DeliveryRetryIntervalSeconds
389- EventFormatTypes
390- RegistryPrefixes
391- ResourceTypes
392- SSEFilterPropertiesSupported
393- ServiceEnabled
394- Status
395- Subscriptions
396
397### /redfish/v1/EventService/Subscriptions/
398
399#### EventDestinationCollection
400
401- Members
402- Members@odata.count
403
404### /redfish/v1/EventService/Subscriptions/{EventName}/
405
406#### EventDestination
407
408- Id
409- Destination
410- EventTypes
411- Context
412- OriginResources
413- Protocol
414
415### /redfish/v1/JsonSchemas/
416
417#### JsonSchemaFileCollection
418
419- Description
420- Members@odata.count
421- Members
422
423### /redfish/v1/JsonSchemas/{Id}/
424
425#### JsonSchemaFile
426
427- Schema
428- Description
429- Languages
430- Languages@odata.count
431- Location
432- Location@odata.count
433
434### /redfish/v1/Managers/
435
436#### ManagerCollection
437
438- Members
439- Members@odata.count
440
441### /redfish/v1/Managers/bmc/
442
443#### Manager
444
445- Actions
446- DateTime
447- DateTimeLocalOffset
448- Description
449- EthernetInterfaces
450- FirmwareVersion
451- GraphicalConsole
452- LastResetTime
453- Links/ActiveSoftwareImage
454- Links/ManagerForChassis
455- Links/ManagerForChassis@odata.count
456- Links/ManagerForServers
457- Links/ManagerForServers@odata.count
458- Links/ManagerInChassis
459- Links/SoftwareImages
460- Links/SoftwareImages@odata.count
461- LogServices
462- ManagerType
463- Manufacturer
464- Model
465- NetworkProtocol
466- Oem
467- PartNumber
468- PowerState
469- SerialConsole
470- SerialNumber
471- ServiceEntryPointUUID
472- SparePartNumber
473- Status
474- UUID
475
476### /redfish/v1/Managers/bmc/EthernetInterfaces/
477
478#### EthernetInterfaceCollection
479
480- Description
481- Members
482- Members@odata.count
483
484### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/
485
486#### EthernetInterface
487
488- DHCPv4
489- DHCPv6
490- Description
491- FQDN
492- HostName
493- IPv4Addresses
494- IPv4StaticAddresses
495- IPv6AddressPolicyTable
496- IPv6Addresses
497- IPv6DefaultGateway
498- IPv6StaticAddresses
499- InterfaceEnabled
500- LinkStatus
501- MACAddress
502- NameServers
503- SpeedMbps
504- StaticNameServers
505- Status
506- VLANs
507
508### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/VLANs/
509
510#### VLanNetworkInterfaceCollection
511
512- Members
513- Members@odata.count
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- TotalCores
884- TotalThreads
885- Version
886
887### /redfish/v1/Systems/system/Storage/
888
889#### StorageCollection
890
891- Members
892- Members@odata.count
893
894### /redfish/v1/Systems/system/Storage/{StorageId}/
895
896#### Storage
897
898- Drives
899- Drives@odata.count
900- Status
901
902### /redfish/v1/Systems/system/Storage/{StorageId}/Drive/{DriveId}/
903
904#### Storage
905
906- CapacityBytes
907- EncryptionStatus
908- Links
909- Status
910
911### /redfish/v1/TaskService/
912
913#### TaskService
914
915- CompletedTaskOverWritePolicy
916- DateTime
917- LifeCycleEventOnTaskStateChange
918- ServiceEnabled
919- Status
920- Tasks
921
922### /redfish/v1/TaskService/Tasks/
923
924#### TaskCollection
925
926- Members
927- Members@odata.count
928
929### /redfish/v1/TelemetryService/
930
931#### TelemetryService
932
933- MaxReports
934- MetricReportDefinitions
935- MetricReports
936- MinCollectionInterval
937- Status
938- Triggers
939
940### /redfish/v1/TelemetryService/MetricReportDefinitions/
941
942#### MetricReportDefinitionCollection
943
944- Members
945- Members@odata.count
946
947### /redfish/v1/TelemetryService/MetricReports/
948
949#### MetricReportCollection
950
951- Members
952- Members@odata.count
953
954### /redfish/v1/TelemetryService/Triggers/
955
956#### TriggersCollection
957
958- Members
959- Members@odata.count
960
961### /redfish/v1/UpdateService/
962
963#### UpdateService
964
965- Actions
966- Description
967- FirmwareInventory
968- HttpPushUri
969- HttpPushUriOptions
970- MaxImageSizeBytes
971- ServiceEnabled
972
973### /redfish/v1/UpdateService/FirmwareInventory/
974
975#### SoftwareInventoryCollection
976
977- Members
978  - Should Support BMC, ME, CPLD and BIOS
979- Members@odata.count
980
981### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/
982
983#### SoftwareInventory
984
985- Description
986- RelatedItem@odata.count
987- RelatedItem
988- Status
989- Updateable
990- Version
991
992[1]: https://www.dmtf.org/standards/redfish
993[2]: https://redfish.dmtf.org/schemas/v1/LogService.json
994[3]:
995  https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md
996[4]: https://github.com/openbmc/phosphor-logging
997