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