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