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