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