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