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