xref: /openbmc/bmcweb/Redfish.md (revision 5315c1b1)
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/AccountService/Accounts/
87
88#### ManagerAccountCollection
89
90- Description
91- Members
92- Members@odata.count
93
94### /redfish/v1/AccountService/Accounts/{ManagerAccountId}/
95
96#### ManagerAccount
97
98- AccountTypes
99- Description
100- Enabled
101- Links/Role
102- Locked
103- Locked@Redfish.AllowableValues
104- Password
105- PasswordChangeRequired
106- RoleId
107- UserName
108
109### /redfish/v1/AccountService/LDAP/Certificates/
110
111#### CertificateCollection
112
113- Description
114- Members
115- Members@odata.count
116
117### /redfish/v1/AccountService/Roles/
118
119#### RoleCollection
120
121- Description
122- Members
123  - By default will contain 3 roles, "Administrator", "Operator", and "ReadOnly"
124- Members@odata.count
125
126### /redfish/v1/AccountService/Roles/{RoleId}/
127
128#### Role
129
130- AssignedPrivileges
131  - For the default roles, the following privileges will be assigned by default
132    - Administrator: Login, ConfigureManager, ConfigureUsers, ConfigureSelf,
133      ConfigureComponents
134    - Operator: Login, ConfigureComponents, ConfigureSelf
135    - ReadOnly: Login, ConfigureSelf
136- Description
137- IsPredefined
138  - Will be set to true for all default roles. If the given role is non-default,
139    or has been modified from default, will be marked as false.
140- OemPrivileges
141- RoleId
142
143### /redfish/v1/Cables/
144
145#### CableCollection
146
147- Description
148- Members
149- Members@odata.count
150
151### /redfish/v1/Cables/{CableId}/
152
153#### Cable
154
155- CableType
156- LengthMeters
157
158### /redfish/v1/CertificateService/
159
160#### CertificateService
161
162- Actions
163- CertificateLocations
164- Description
165
166### /redfish/v1/CertificateService/CertificateLocations/
167
168#### CertificateLocations
169
170- Description
171- Links/Certificates
172- Links/Certificates@odata.count
173
174### /redfish/v1/Chassis/
175
176#### ChassisCollection
177
178- Members
179- Members@odata.count
180
181### /redfish/v1/Chassis/{ChassisId}/
182
183#### Chassis
184
185- Actions
186- ChassisType
187- Links/ComputerSystems
188- Links/ManagedBy
189- PCIeDevices
190- Power
191  - Shall be included if component contains voltage/current sensing components,
192    otherwise will be omitted.
193- PowerState
194- Sensors
195- Status
196- Thermal
197  - Shall be included if component contains temperature sensors, otherwise shall
198    be omitted.
199
200### /redfish/v1/Chassis/{ChassisId}/Drive/
201
202#### Drive
203
204- Members (This is dependent on a entity manager association from Chassis to
205  Drives, The name of the association is `chassis<->drive`)
206
207### /redfish/v1/Chassis/{ChassisId}/Drive/{DriveId}/
208
209#### Drive
210
211- Drives
212- Drives@odata.count
213- Status (this is dependant on a entity manager association from Chassis to
214  Drives)
215
216### /redfish/v1/Chassis/{ChassisId}/EnvironmentMetrics/
217
218#### EnvironmentMetrics
219
220### /redfish/v1/Chassis/{ChassisId}/Power/
221
222#### Power
223
224- PowerControl
225- PowerSupplies
226- Redundancy
227- Voltages
228
229### /redfish/v1/Chassis/{ChassisId}/Sensors/
230
231#### SensorCollection
232
233- Description
234- Members
235- Members@odata.count
236
237### /redfish/v1/Chassis/{ChassisId}/Sensors/{Id}/
238
239#### Sensor
240
241- Reading
242- ReadingRangeMax
243- ReadingRangeMin
244- ReadingType
245- ReadingUnits
246- Status
247- Thresholds
248
249### /redfish/v1/Chassis/{ChassisId}/Thermal/
250
251#### Thermal
252
253- Fans
254- Redundancy
255- Temperatures
256
257### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName}/
258
259#### Temperature
260
261- MemberId
262- Status
263- ReadingCelsius
264- UpperThresholdNonCritical
265- UpperThresholdCritical
266- LowerThresholdNonCritical
267- LowerThresholdCritical
268- MinReadingRange
269- MaxReadingRange _threshold fields only present if defined for sensor,
270  otherwise absent_
271
272### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName}/
273
274#### Fan
275
276- MemberId
277- Status
278- Reading
279- ReadingUnits
280- UpperThresholdNonCritical
281- UpperThresholdCritical
282- LowerThresholdNonCritical
283- LowerThresholdCritical
284- MinReadingRange
285- MaxReadingRange
286- Redundancy _threshold fields only present if defined for sensor, otherwise
287  absent_
288
289### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName}/
290
291#### Redundancy
292
293- MemberId
294- RedundancySet
295- Mode
296- Status
297- MinNumNeeded
298- MaxNumSupported
299
300### /redfish/v1/Chassis/{ChassisId}/ThermalSubsystem
301
302#### ThermalSubsystem
303
304- Status
305
306### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName}/
307
308#### PowerControl
309
310- MemberId
311- PowerConsumedWatts
312- PowerMetrics/IntervalInMin
313- PowerMetrics/MinConsumedWatts
314- PowerMetrics/MaxConsumedWatts
315- PowerMetrics/AverageConsumedWatts
316- RelatedItem
317  - Should list systems and related chassis
318
319### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName}/
320
321#### Voltage
322
323- MemberId
324- Status
325- ReadingVolts
326- UpperThresholdNonCritical
327- UpperThresholdCritical
328- LowerThresholdNonCritical
329- LowerThresholdCritical
330- MinReadingRange
331- MaxReadingRange
332- PhysicalContext
333- RelatedItem
334
335### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName}/
336
337#### PowerSupply
338
339- MemberId
340- Status
341- LininputVoltage
342- Model
343- manufacturer
344- FirmwareVersion
345- SerialNumber
346- PartNumber
347- RelatedItem
348- Redundancy
349
350### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName}/
351
352#### Redundancy
353
354- MemberId
355- RedundancySet
356- Mode
357- Status
358- MinNumNeeded
359- MaxNumSupported
360
361### /redfish/v1/EventService/
362
363#### EventService
364
365- Actions
366- DeliveryRetryAttempts
367  - Defaults to 3
368- DeliveryRetryIntervalSeconds
369- EventFormatTypes
370- RegistryPrefixes
371- ResourceTypes
372- SSEFilterPropertiesSupported
373- ServiceEnabled
374- Status
375- Subscriptions
376
377### /redfish/v1/EventService/Subscriptions/
378
379#### EventDestinationCollection
380
381- Members
382- Members@odata.count
383
384### /redfish/v1/EventService/Subscriptions/{EventName}/
385
386#### EventDestination
387
388- Id
389- Destination
390- EventTypes
391- Context
392- OriginResources
393- Protocol
394
395### /redfish/v1/JsonSchemas/
396
397#### JsonSchemaFileCollection
398
399- Description
400- Members@odata.count
401- Members
402
403### /redfish/v1/JsonSchemas/{Id}/
404
405#### JsonSchemaFile
406
407- Schema
408- Description
409- Languages
410- Languages@odata.count
411- Location
412- Location@odata.count
413
414### /redfish/v1/Managers/
415
416#### ManagerCollection
417
418- Members
419- Members@odata.count
420
421### /redfish/v1/Managers/bmc/
422
423#### Manager
424
425- Actions
426- DateTime
427- DateTimeLocalOffset
428- Description
429- EthernetInterfaces
430- FirmwareVersion
431- GraphicalConsole
432- LastResetTime
433- Links/ActiveSoftwareImage
434- Links/ManagerForChassis
435- Links/ManagerForChassis@odata.count
436- Links/ManagerForServers
437- Links/ManagerForServers@odata.count
438- Links/ManagerInChassis
439- Links/SoftwareImages
440- Links/SoftwareImages@odata.count
441- LogServices
442- ManagerType
443- Manufacturer
444- Model
445- NetworkProtocol
446- Oem
447- PartNumber
448- PowerState
449- SerialConsole
450- SerialNumber
451- ServiceEntryPointUUID
452- SparePartNumber
453- Status
454- UUID
455
456### /redfish/v1/Managers/bmc/EthernetInterfaces/
457
458#### EthernetInterfaceCollection
459
460- Description
461- Members
462- Members@odata.count
463
464### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/
465
466#### EthernetInterface
467
468- DHCPv4
469- DHCPv6
470- Description
471- FQDN
472- HostName
473- IPv4Addresses
474- IPv4StaticAddresses
475- IPv6AddressPolicyTable
476- IPv6Addresses
477- IPv6DefaultGateway
478- IPv6StaticAddresses
479- InterfaceEnabled
480- LinkStatus
481- MACAddress
482- NameServers
483- SpeedMbps
484- StaticNameServers
485- Status
486- VLANs
487
488### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/VLANs/
489
490#### VLanNetworkInterfaceCollection
491
492- Members
493- Members@odata.count
494
495### /redfish/v1/Managers/bmc/LogServices/
496
497The [LogService][2] resource provides properties for monitoring and configuring
498events for the service or resource to which it is associated.
499
500Within bmcweb, the LogService object resides under the System resource. It
501tracks all events for the system.
502
503The LogService supports multiple log entry types. bmcweb has support for the
504`Event` type. This is the new Redfish-defined type.
505
506bmcweb supports two different implementations of the
507`LogService/EventLog/Entries` URI.
508
509The default implementation uses rsyslog to write Redfish events from the journal
510to the persistent /var/log/ filesystem. The bmcweb software then looks for these
511files in /var/log/ and returns the appropriate Redfish EventLog Entries for
512these. More details on adding events can be found [here][3]
513
514The other implementation of EventLog Entries can be enabled by compiling bmcweb
515with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause
516bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will
517then be translated to Redfish EventLog Entries.
518
519These two implementations do not work together, so choosing one will disable the
520other.
521
522#### LogServiceCollection
523
524- Description
525- Members
526- Members@odata.count
527
528### /redfish/v1/Managers/bmc/LogServices/RedfishLog/
529
530#### LogService
531
532- Entries
533- OverWritePolicy
534- Actions
535- Status
536- DateTime
537- MaxNumberOfRecords
538
539### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/
540
541#### LogEntry
542
543- Message
544- Created
545- EntryType
546
547### /redfish/v1/Managers/bmc/ManagerDiagnosticData/
548
549#### ManagerDiagnosticData
550
551- ServiceRootUptimeSeconds
552
553### /redfish/v1/Managers/bmc/NetworkProtocol/
554
555#### ManagerNetworkProtocol
556
557- Description
558- FQDN
559- HTTP
560- HTTPS
561- HostName
562- IPMI
563- NTP
564- SSH
565- Status
566
567### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/
568
569#### CertificateCollection
570
571- Description
572- Members
573- Members@odata.count
574
575### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/
576
577#### Certificate
578
579- CertificateString
580- Description
581- Issuer
582- KeyUsage
583- Subject
584- ValidNotAfter
585- ValidNotBefore
586
587### /redfish/v1/Managers/bmc/Truststore/Certificates/
588
589#### CertificateCollection
590
591- Description
592- error
593
594### /redfish/v1/Registries/
595
596#### MessageRegistryFileCollection
597
598- Description
599- Members
600  - Should support Base, CommonMessages, and EventingMessages
601- Members@odata.count
602
603### /redfish/v1/Registries/{MessageRegistryFileId}/
604
605#### MessageRegistryFile
606
607- Description
608- Languages
609- Languages@odata.count
610- Location
611- Location@odata.count
612- Registry
613
614### /redfish/v1/SessionService/
615
616#### SessionService
617
618- Description
619- ServiceEnabled
620- SessionTimeout
621- Sessions
622
623### /redfish/v1/SessionService/Sessions/
624
625#### SessionCollection
626
627- Description
628- Members
629- Members@odata.count
630
631### /redfish/v1/SessionService/Sessions/{SessionId}/
632
633#### Session
634
635- ClientOriginIPAddress
636- Description
637- Oem
638- UserName
639
640### /redfish/v1/Systems/
641
642#### ComputerSystemCollection
643
644- Members
645  - Should support one system
646- Members@odata.count
647
648### /redfish/v1/Systems/system/Bios/
649
650#### Bios
651
652- Actions
653- Description
654- Links/ActiveSoftwareImage
655- Links/SoftwareImages
656- Links/SoftwareImages@odata.count
657
658### /redfish/v1/Systems/system/
659
660#### ComputerSystem
661
662- Actions
663- AssetTag
664- Bios
665- BiosVersion
666- Boot
667- BootProgress
668- Description
669- HostWatchdogTimer
670- IdlePowerSaver/Enable
671- IdlePowerSaver/EnterUtilizationPercent
672- IdlePowerSaver/EnterDwellTimeSeconds
673- IdlePowerSaver/ExitUtilizationPercent
674- IdlePowerSaver/ExitDwellTimeSeconds
675- IndicatorLED
676- LastResetTime
677- Links/Chassis
678- Links/ManagedBy
679- LocationIndicatorActive
680- LogServices
681- Manufacturer
682- Memory
683- MemorySummary
684- Model
685- PartNumber
686- PowerMode
687- PowerRestorePolicy
688- PowerState
689- ProcessorSummary
690- Processors
691- SerialNumber
692- Status
693- Storage
694- SubModel
695- SystemType
696
697### /redfish/v1/Systems/system/EthernetInterfaces/
698
699#### EthernetInterfaceCollection
700
701- Members
702- Members@odata.count
703- Description
704
705### /redfish/v1/Systems/system/FabricAdapters/
706
707#### FabricAdapterCollection
708
709- Members
710- Members@odata.count
711
712### /redfish/v1/Systems/system/FabricAdapters/{FabricAdapterId}/
713
714#### FabricAdapter
715
716- Location
717- Model
718- PartNumber
719- SerialNumber
720- SparePartNumber
721- Status
722
723### /redfish/v1/Systems/system/LogServices/
724
725#### LogServiceCollection
726
727- Description
728- Members
729  - Should default to one member, named SEL
730- Members@odata.count
731
732### /redfish/v1/Systems/system/LogServices/EventLog/
733
734#### LogService
735
736- Actions
737- DateTime
738- DateTimeLocalOffset
739- Description
740- Entries
741- OverWritePolicy
742
743### /redfish/v1/Systems/system/LogServices/EventLog/Entries/
744
745#### LogEntryCollection
746
747- Description
748- Members
749- Members@odata.count
750
751### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/
752
753#### LogEntry
754
755- AdditionalDataURI
756- Created
757- EntryType
758- Message
759- Modified
760- Resolved
761- Severity
762
763### /redfish/v1/Systems/system/LogServices/SEL/Entries/
764
765#### LogEntryCollection
766
767- Members
768- Members@odata.count
769- Description
770- @odata.nextLink
771
772### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/
773
774#### LogEntry
775
776- MessageArgs
777- Severity
778- SensorType
779- Message
780- MessageId
781- Created
782- EntryCode
783- EntryType
784
785### /redfish/v1/Systems/system/Memory/
786
787#### MemoryCollection
788
789- Members
790- Members@odata.count
791
792### /redfish/v1/Systems/system/Memory/{MemoryId}/
793
794#### Memory
795
796- AllowedSpeedsMHz
797- BaseModuleType
798- BusWidthBits
799- CapacityMiB
800- DataWidthBits
801- ErrorCorrection
802- FirmwareRevision
803- Manufacturer
804- Model
805- OperatingSpeedMhz
806- PartNumber
807- RankCount
808- SerialNumber
809- SparePartNumber
810- Status
811
812### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/
813
814#### MemoryMetrics
815
816- Description
817- HealthData
818
819### /redfish/v1/Systems/system/PCIeDevices/
820
821#### PCIeDeviceCollection
822
823- Description
824- Members
825- Members@odata.count
826
827### /redfish/v1/Systems/system/PCIeDevices/{PCIeDevice}/
828
829- PCIeInterface
830  - LanesInUse
831
832### /redfish/v1/Systems/system/Processors/
833
834#### ProcessorCollection
835
836- Members
837  - Should Support CPU1 and CPU2 for dual socket systems
838- Members@odata.count
839
840### /redfish/v1/Systems/system/Processors/{ProcessorId}/
841
842#### Processor
843
844- InstructionSet
845- Manufacturer
846- MaxSpeedMHz
847- PartNumber
848- ProcessorArchitecture
849- ProcessorId
850- ProcessorType
851- SerialNumber
852- Socket
853- SparePartNumber
854- Status
855- TotalCores
856- TotalThreads
857- Version
858
859### /redfish/v1/Systems/system/Storage/
860
861#### StorageCollection
862
863- Members
864- Members@odata.count
865
866### /redfish/v1/Systems/system/Storage/{StorageId}/
867
868#### Storage
869
870- Drives
871- Drives@odata.count
872- Status
873
874### /redfish/v1/Systems/system/Storage/{StorageId}/Drive/{DriveId}/
875
876#### Storage
877
878- CapacityBytes
879- Links
880- Status
881
882### /redfish/v1/TaskService/
883
884#### TaskService
885
886- CompletedTaskOverWritePolicy
887- DateTime
888- LifeCycleEventOnTaskStateChange
889- ServiceEnabled
890- Status
891- Tasks
892
893### /redfish/v1/TaskService/Tasks/
894
895#### TaskCollection
896
897- Members
898- Members@odata.count
899
900### /redfish/v1/TelemetryService/
901
902#### TelemetryService
903
904- MaxReports
905- MetricReportDefinitions
906- MetricReports
907- MinCollectionInterval
908- Status
909- Triggers
910
911### /redfish/v1/TelemetryService/MetricReportDefinitions/
912
913#### MetricReportDefinitionCollection
914
915- Members
916- Members@odata.count
917
918### /redfish/v1/TelemetryService/MetricReports/
919
920#### MetricReportCollection
921
922- Members
923- Members@odata.count
924
925### /redfish/v1/TelemetryService/Triggers/
926
927#### TriggersCollection
928
929- Members
930- Members@odata.count
931
932### /redfish/v1/UpdateService/
933
934#### UpdateService
935
936- Actions
937- Description
938- FirmwareInventory
939- HttpPushUri
940- HttpPushUriOptions
941- MaxImageSizeBytes
942- ServiceEnabled
943
944### /redfish/v1/UpdateService/FirmwareInventory/
945
946#### SoftwareInventoryCollection
947
948- Members
949  - Should Support BMC, ME, CPLD and BIOS
950- Members@odata.count
951
952### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/
953
954#### SoftwareInventory
955
956- Description
957- RelatedItem@odata.count
958- RelatedItem
959- Status
960- Updateable
961- Version
962
963[1]: https://www.dmtf.org/standards/redfish
964[2]: https://redfish.dmtf.org/schemas/v1/LogService.json
965[3]:
966  https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md
967[4]: https://github.com/openbmc/phosphor-logging
968