xref: /openbmc/bmcweb/Redfish.md (revision a8d8f9d8)
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/LogServices/
668
669#### LogServiceCollection
670
671- Description
672- Members
673  - Should default to one member, named SEL
674- Members@odata.count
675
676### /redfish/v1/Systems/system/LogServices/EventLog/
677
678#### LogService
679
680- Actions
681- DateTime
682- DateTimeLocalOffset
683- Description
684- Entries
685- OverWritePolicy
686
687### /redfish/v1/Systems/system/LogServices/EventLog/Entries/
688
689#### LogEntryCollection
690
691- Description
692- Members
693- Members@odata.count
694
695### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/
696
697#### LogEntry
698
699- AdditionalDataURI
700- Created
701- EntryType
702- Message
703- Modified
704- Resolved
705- Severity
706
707### /redfish/v1/Systems/system/LogServices/SEL/Entries/
708
709#### LogEntryCollection
710
711- Members
712- Members@odata.count
713- Description
714- @odata.nextLink
715
716### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/
717
718#### LogEntry
719
720- MessageArgs
721- Severity
722- SensorType
723- Message
724- MessageId
725- Created
726- EntryCode
727- EntryType
728
729### /redfish/v1/Systems/system/Memory/
730
731#### MemoryCollection
732
733- Members
734- Members@odata.count
735
736### /redfish/v1/Systems/system/Memory/{MemoryId}/
737
738#### Memory
739
740- AllowedSpeedsMHz
741- BaseModuleType
742- BusWidthBits
743- CapacityMiB
744- DataWidthBits
745- ErrorCorrection
746- FirmwareRevision
747- Manufacturer
748- Model
749- OperatingSpeedMhz
750- PartNumber
751- RankCount
752- SerialNumber
753- SparePartNumber
754- Status
755
756### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/
757
758#### MemoryMetrics
759
760- Description
761- HealthData
762
763### /redfish/v1/Systems/system/PCIeDevices/
764
765#### PCIeDeviceCollection
766
767- Description
768- Members
769- Members@odata.count
770
771### /redfish/v1/Systems/system/PCIeDevices/{PCIeDevice}/
772
773- PCIeInterface
774  - LanesInUse
775
776### /redfish/v1/Systems/system/Processors/
777
778#### ProcessorCollection
779
780- Members
781  - Should Support CPU1 and CPU2 for dual socket systems
782- Members@odata.count
783
784### /redfish/v1/Systems/system/Processors/{ProcessorId}/
785
786#### Processor
787
788- InstructionSet
789- Manufacturer
790- MaxSpeedMHz
791- PartNumber
792- ProcessorArchitecture
793- ProcessorId
794- ProcessorType
795- SerialNumber
796- Socket
797- SparePartNumber
798- Status
799- TotalCores
800- TotalThreads
801- Version
802
803### /redfish/v1/Systems/system/Storage/
804
805#### StorageCollection
806
807- Members
808- Members@odata.count
809
810### /redfish/v1/Systems/system/Storage/{StorageId}/
811
812#### Storage
813
814- Drives
815- Drives@odata.count
816- Status
817
818### /redfish/v1/Systems/system/Storage/{StorageId}/Drive/{DriveId}/
819
820#### Storage
821
822- CapacityBytes
823- Links
824- Status
825
826### /redfish/v1/TaskService/
827
828#### TaskService
829
830- CompletedTaskOverWritePolicy
831- DateTime
832- LifeCycleEventOnTaskStateChange
833- ServiceEnabled
834- Status
835- Tasks
836
837### /redfish/v1/TaskService/Tasks/
838
839#### TaskCollection
840
841- Members
842- Members@odata.count
843
844### /redfish/v1/TelemetryService/
845
846#### TelemetryService
847
848- MaxReports
849- MetricReportDefinitions
850- MetricReports
851- MinCollectionInterval
852- Status
853- Triggers
854
855### /redfish/v1/TelemetryService/MetricReportDefinitions/
856
857#### MetricReportDefinitionCollection
858
859- Members
860- Members@odata.count
861
862### /redfish/v1/TelemetryService/MetricReports/
863
864#### MetricReportCollection
865
866- Members
867- Members@odata.count
868
869### /redfish/v1/TelemetryService/Triggers/
870
871#### TriggersCollection
872
873- Members
874- Members@odata.count
875
876### /redfish/v1/UpdateService/
877
878#### UpdateService
879
880- Actions
881- Description
882- FirmwareInventory
883- HttpPushUri
884- HttpPushUriOptions
885- MaxImageSizeBytes
886- ServiceEnabled
887
888### /redfish/v1/UpdateService/FirmwareInventory/
889
890#### SoftwareInventoryCollection
891
892- Members
893  - Should Support BMC, ME, CPLD and BIOS
894- Members@odata.count
895
896### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/
897
898#### SoftwareInventory
899
900- Description
901- RelatedItem@odata.count
902- RelatedItem
903- Status
904- Updateable
905- Version
906
907[1]: https://www.dmtf.org/standards/redfish
908[2]: https://redfish.dmtf.org/schemas/v1/LogService.json
909[3]:
910  https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md
911[4]: https://github.com/openbmc/phosphor-logging
912