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