1# Redfish # 2 3bmcweb provides an implementation of the [Redfish][1] API. This document 4details the Redfish schemas supported by bmcweb. This document also discusses 5some of the details of that implementation and different implementations 6available for certain areas. 7 8## Redfish Schema 9 10The redfish implementation shall pass the [Redfish Service 11Validator](https://github.com/DMTF/Redfish-Service-Validator "Validator") with 12no 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 [here](https://redfish.dmtf.org/schemas/) 18 19Fields common to all schemas 20 21- @odata.context 22- @odata.id 23- @odata.type 24- Id 25- Name 26 27 28#### /redfish/v1/ 29##### ServiceRoot 30 31- AccountService 32- CertificateService 33- Chassis 34- JsonSchemas 35- Managers 36- RedfishVersion 37- SessionService 38- Systems 39- UUID 40- UpdateService 41 42#### /redfish/v1/AccountService/ 43##### AccountService 44 45- Description 46- ServiceEnabled 47- MinpasswordLength 48- MaxPasswordLength 49- Accounts 50- Roles 51 52#### /redfish/v1/AccountService/Accounts/ 53##### AccountCollection 54 55- Description 56- Members@odata.count 57- Members 58 59#### /redfish/v1/AccountService/Accounts/{ManagerAccountId} 60##### ManagerAccount 61 62- Description 63- Enabled 64- Password 65- UserName 66- RoleId 67- Links/Role 68 69#### /redfish/v1/AccountService/Roles/ 70##### RoleCollection 71 72- Description 73- Members@odata.count 74- Members 75 - By default will contain 3 roles, "Administrator", "Operator", and "ReadOnly" 76 77#### /redfish/v1/AccountService/Roles/{RoleId} 78##### Role 79 80- Description 81- IsPredefined 82 - Will be set to true for all default roles. If the given role is 83 non-default, or has been modified from default, will be marked as false. 84- AssignedPrivileges 85 - For the default roles, the following privileges will be assigned by 86 default 87 - Administrator: Login, ConfigureManager, ConfigureUsers, ConfigureSelf, 88 ConfigureComponents 89 - Operator: Login, ConfigureComponents, ConfigureSelf 90 - ReadOnly: Login, ConfigureSelf 91 92 93#### /redfish/v1/Chassis 94##### ChassisCollection 95 96- Members@odata.count 97- Members 98 99#### /redfish/v1/Chassis/{ChassisId} 100##### Chassis 101 102- ChassisType 103- Manufacturer 104- Model 105- SerialNumber 106- PartNumber 107- PowerState 108- Thermal 109 - Shall be included if component contains temperature sensors, otherwise 110 shall be omitted. 111- Power 112 - Shall be included if component contains voltage/current sensing 113 components, otherwise will be omitted. 114 115#### /redfish/v1/Chassis/{ChassisId}/Thermal 116##### Thermal 117Temperatures Fans Redundancy 118 119#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName} 120##### Temperature 121- MemberId 122- Status 123- ReadingCelsius 124- UpperThresholdNonCritical 125- UpperThresholdCritical 126- LowerThresholdNonCritical 127- LowerThresholdCritical 128- MinReadingRange 129- MaxReadingRange 130 131*threshold fields only present if defined for sensor, otherwise absent* 132 133#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName} 134##### Fan 135- MemberId 136- Status 137- Reading 138- ReadingUnits 139- UpperThresholdNonCritical 140- UpperThresholdCritical 141- LowerThresholdNonCritical 142- LowerThresholdCritical 143- MinReadingRange 144- MaxReadingRange 145- Redundancy 146 147*threshold fields only present if defined for sensor, otherwise absent* 148 149#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName} 150##### Redundancy 151- MemberId 152- RedundancySet 153- Mode 154- Status 155- MinNumNeeded 156- MaxNumSupported 157 158 159#### /redfish/v1/Chassis/{ChassisId}/Power/ 160##### Power 161PowerControl Voltages PowerSupplies Redundancy 162 163#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName} 164##### PowerControl 165- MemberId 166- PowerConsumedWatts 167- PowerMetrics/IntervalInMin 168- PowerMetrics/MinConsumedWatts 169- PowerMetrics/MaxConsumedWatts 170- PowerMetrics/AverageConsumedWatts 171- RelatedItem 172 - Should list systems and related chassis 173 174#### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName} 175##### Voltage 176- MemberId 177- Status 178- ReadingVolts 179- UpperThresholdNonCritical 180- UpperThresholdCritical 181- LowerThresholdNonCritical 182- LowerThresholdCritical 183- MinReadingRange 184- MaxReadingRange 185- PhysicalContext 186- RelatedItem 187 188#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName} 189##### PowerSupply 190- MemberId 191- Status 192- LininputVoltage 193- Model 194- manufacturer 195- FirmwareVersion 196- SerialNumber 197- PartNumber 198- RelatedItem 199- Redundancy 200 201#### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName} 202##### Redundancy 203- MemberId 204- RedundancySet 205- Mode 206- Status 207- MinNumNeeded 208- MaxNumSupported 209 210 211#### /redfish/v1/EventService 212##### EventService 213- Id 214- ServiceEnabled 215- DeliveryRetryAttempts 216 - Defaults to 3 217- EventTypesForSubscription 218 - Defaults to "Alert" 219- Actions 220- Subscriptions 221 222#### /redfish/v1/EventService/Subscriptions 223##### EventDestinationCollection 224- Members@odata.count 225- Members 226 227#### /redfish/v1/EventService/Subscriptions/{EventName} 228##### EventDestination 229- Id 230- Destination 231- EventTypes 232- Context 233- OriginResources 234- Protocol 235 236 237#### /redfish/v1/Managers 238##### ManagerCollection 239- Members 240- Members@odata.count 241 242#### /redfish/v1/Managers/bmc 243##### Manager 244- Description 245- LogServices 246- GraphicalConsole 247- UUID 248- Model 249- Links 250- PowerState 251- FirmwareVersion 252- ManagerType 253- ServiceEntryPointUUID 254- DateTime 255- NetworkProtocol 256- Actions 257- Status 258- SerialConsole 259- VirtualMedia 260- EthernetInterfaces 261 262#### /redfish/v1/Managers/bmc/EthernetInterfaces 263##### EthernetInterfaceCollection 264- Members 265- Members@odata.count 266- Description 267 268#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId} 269##### EthernetInterface 270- Description 271- VLAN 272- MaxIPv6StaticAddresses 273 274#### /redfish/v1/Managers/bmc/LogServices 275 276The [LogService][2] resource provides properties for monitoring and configuring 277events for the service or resource to which it is associated. 278 279Within bmcweb, the LogService object resides under the System resource. It 280tracks all events for the system. 281 282The LogService supports multiple log entry types. bmcweb has support for 283the `Event` type. This is the new Redfish-defined type. 284 285bmcweb supports two different implementations of the 286`LogService/EventLog/Entries` URI. 287 288The default implementation uses rsyslog to write Redfish events from the journal 289to the persistent /var/log/ filesystem. The bmcweb software then looks for these 290files in /var/log/ and returns the appropriate Redfish EventLog Entries for 291these. More details on adding events can be found [here][3] 292 293The other implementation of EventLog Entries can be enabled by compiling bmcweb 294with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause 295bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will 296then be translated to Redfish EventLog Entries. 297 298These two implementations do not work together, so choosing one will disable 299the other. 300 301#### /redfish/v1/Managers/bmc/LogServices 302##### LogServiceCollection 303- Members 304- Members@odata.count 305- Description 306 307#### /redfish/v1/Managers/bmc/LogServices/RedfishLog 308##### LogService 309- Entries 310- OverWritePolicy 311- Actions 312- Status 313- DateTime 314- MaxNumberOfRecords 315 316#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId} 317##### LogEntry 318- Message 319- Created 320- EntryType 321 322#### /redfish/v1/Managers/bmc/NetworkProtocol 323##### ManagerNetworkProtocol 324- Description 325- SSDP 326- HTTPS 327- SSH 328- VirtualMedia 329- KVMIP 330- Status 331 332 333#### /redfish/v1/Registries 334##### MessageRegistryFileCollection 335- Members 336 - Should support Base, CommonMessages, and EventingMessages 337- Members@odata.count 338- Description 339 340#### /redfish/v1/Registries/{MessageRegistryFileId} 341##### MessageRegistryFile 342- Location 343- Description 344- Location@odata.count 345- Languages@odata.count 346- Languages 347- Registry 348 349 350#### /redfish/v1/SessionService 351##### SessionService 352- Description 353- ServiceEnabled 354- Status 355- SessionTimeout 356- Sessions 357 358#### /redfish/v1/SessionService/Sessions 359##### SessionCollection 360- Members 361- Members@odata.count 362- Description 363 364 365#### /redfish/v1/Systems 366##### ComputerSystemCollection 367- Members 368 - Should support one system 369- Members@odata.count 370 371#### /redfish/v1/Systems/system 372##### ComputerSystem 373- Boot 374- PartNumber 375- IndicatorLED 376- UUID 377- LogServices 378- SystemType 379- Manufacturer 380- Description 381- Model 382- Links 383- PowerState 384- BiosVersion 385- Storage 386- SerialNumber 387- Processors 388- ProcessorSummary 389- Memory 390- Actions 391- Status 392- EthernetInterfaces 393- MemorySummary 394 395#### /redfish/v1/Systems/system/EthernetInterfaces 396##### EthernetInterfaceCollection 397- Members 398- Members@odata.count 399- Description 400 401#### /redfish/v1/Systems/system/LogServices 402##### LogServiceCollection 403- Members 404 - Should default to one member, named SEL 405- Members@odata.count 406- Description 407 408#### /redfish/v1/Systems/system/LogServices/SEL/Entries 409##### LogEntryCollection 410- Members 411- Members@odata.count 412- Description 413- @odata.nextLink 414 415#### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId} 416##### LogEntry 417- MessageArgs 418- Severity 419- SensorType 420- Message 421- MessageId 422- Created 423- EntryCode 424- EntryType 425 426#### /redfish/v1/Systems/system/Memory 427##### MemoryCollection 428- Members 429- Members@odata.count 430 431#### /redfish/v1/Systems/system/Memory/{MemoryId} 432##### Memory 433- MemoryType 434- Description 435- DeviceLocator 436- Oem 437- Metrics 438- BaseModuleType 439- Manufacturer 440- MemoryDeviceType 441- RankCount 442- AllowedSpeedsMHz 443- CapacityMiB 444- DataWidthBits 445- SerialNumber 446- OperatingSpeedMhz 447- ErrorCorrection 448- PartNumber 449- Status 450- BusWidthBits 451- MemoryMedia 452 453#### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics 454##### MemoryMetrics 455- Description 456- HealthData 457 458#### /redfish/v1/Systems/system/Processors 459##### ProcessorCollection 460- Members 461 - Should Support CPU1 and CPU2 for dual socket systems 462- Members@odata.count 463 464#### /redfish/v1/Systems/system/Processors/{ProcessorId} 465##### Processor 466- ProcessorArchitecture 467- TotalCores 468- ProcessorId 469- MaxSpeedMHz 470- Manufacturer 471- Status 472- Socket 473- InstructionSet 474- Model 475- ProcessorType 476- TotalThreads 477 478#### /redfish/v1/Systems/system/Storage 479##### StorageCollection 480- Members 481- Members@odata.count 482 483#### /redfish/v1/Systems/system/Storage/{StorageId} 484##### Storage 485- Drives 486- Links 487 488 489#### /redfish/v1/UpdateService 490##### UpdateService 491- SoftwareInventory 492 493#### /redfish/v1/UpdateService/FirmwareInventory 494##### SoftwareInventoryCollection 495- Members 496- Should Support BMC, ME, CPLD and BIOS 497- Members@odata.count 498 499#### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId} 500##### SoftwareInventory 501- Version 502- Updateable 503 504[1]: https://www.dmtf.org/standards/redfish 505[2]: https://redfish.dmtf.org/schemas/v1/LogService.json 506[3]: https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md 507[4]: https://github.com/openbmc/phosphor-logging 508