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