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.id 25- @odata.type 26- Id 27- Name 28 29 30#### /redfish/v1/ 31##### ServiceRoot 32- AccountService 33- CertificateService 34- Chassis 35- EventService 36- JsonSchemas 37- Links/Sessions 38- Managers 39- RedfishVersion 40- Registries 41- SessionService 42- Systems 43- Tasks 44- TelemetryService 45- UUID 46- UpdateService 47 48#### /redfish/v1/AccountService/ 49##### AccountService 50- AccountLockoutDuration 51- AccountLockoutThreshold 52- Accounts 53- Description 54- LDAP 55- MaxPasswordLength 56- MinPasswordLength 57- Oem/OpenBMC/AuthMethods/BasicAuth 58- Oem/OpenBMC/AuthMethods/Cookie 59- Oem/OpenBMC/AuthMethods/SessionToken 60- Oem/OpenBMC/AuthMethods/TLS 61- Oem/OpenBMC/AuthMethods/XToken 62- Roles 63- ServiceEnabled 64 65#### /redfish/v1/AccountService/Accounts/ 66##### ManagerAccountCollection 67- Description 68- Members 69- Members\@odata.count 70 71#### /redfish/v1/AccountService/Accounts/{ManagerAccountId}/ 72##### ManagerAccount 73- AccountTypes 74- Description 75- Enabled 76- Links/Role 77- Locked 78- Locked\@Redfish.AllowableValues 79- Password 80- PasswordChangeRequired 81- RoleId 82- UserName 83 84#### /redfish/v1/AccountService/LDAP/Certificates/ 85##### CertificateCollection 86- Description 87- Members 88- Members\@odata.count 89 90#### /redfish/v1/AccountService/Roles/ 91##### RoleCollection 92- Description 93- Members 94 - By default will contain 3 roles, "Administrator", "Operator", and "ReadOnly" 95- Members\@odata.count 96 97#### /redfish/v1/AccountService/Roles/{RoleId}/ 98##### Role 99- AssignedPrivileges 100 - For the default roles, the following privileges will be assigned by 101 default 102 - Administrator: Login, ConfigureManager, ConfigureUsers, ConfigureSelf, 103 ConfigureComponents 104 - Operator: Login, ConfigureComponents, ConfigureSelf 105 - ReadOnly: Login, ConfigureSelf 106- Description 107- IsPredefined 108 - Will be set to true for all default roles. If the given role is 109 non-default, or has been modified from default, will be marked as false. 110- OemPrivileges 111- RoleId 112 113#### /redfish/v1/CertificateService/ 114##### CertificateService 115- Actions 116- CertificateLocations 117- Description 118 119#### /redfish/v1/CertificateService/CertificateLocations/ 120##### CertificateLocations 121- Description 122- Links/Certificates 123- Links/Certificates\@odata.count 124 125#### /redfish/v1/Chassis/ 126##### ChassisCollection 127- Members 128- Members\@odata.count 129 130#### /redfish/v1/Chassis/{ChassisId}/ 131##### Chassis 132- Actions 133- ChassisType 134- Links/ComputerSystems 135- Links/ManagedBy 136- PCIeDevices 137- Power 138 - Shall be included if component contains voltage/current sensing 139 components, otherwise will be omitted. 140- PowerState 141- Sensors 142- Status 143- Thermal 144 - Shall be included if component contains temperature sensors, otherwise 145 shall be omitted. 146 147#### /redfish/v1/Chassis/{ChassisId}/Power/ 148##### Power 149- PowerControl 150- PowerSupplies 151- Redundancy 152- Voltages 153 154#### /redfish/v1/Chassis/{ChassisId}/Sensors/ 155##### SensorCollection 156- Description 157- Members 158- Members\@odata.count 159 160#### /redfish/v1/Chassis/{ChassisId}/Sensors/{Id}/ 161##### Sensor 162- Reading 163- ReadingRangeMax 164- ReadingRangeMin 165- ReadingType 166- ReadingUnits 167- Status 168- Thresholds 169 170#### /redfish/v1/Chassis/{ChassisId}/Thermal/ 171##### Thermal 172- Fans 173- Redundancy 174- Temperatures 175 176#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName}/ 177##### Temperature 178- MemberId 179- Status 180- ReadingCelsius 181- UpperThresholdNonCritical 182- UpperThresholdCritical 183- LowerThresholdNonCritical 184- LowerThresholdCritical 185- MinReadingRange 186- MaxReadingRange 187*threshold fields only present if defined for sensor, otherwise absent* 188 189#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName}/ 190##### Fan 191- MemberId 192- Status 193- Reading 194- ReadingUnits 195- UpperThresholdNonCritical 196- UpperThresholdCritical 197- LowerThresholdNonCritical 198- LowerThresholdCritical 199- MinReadingRange 200- MaxReadingRange 201- Redundancy 202*threshold fields only present if defined for sensor, otherwise absent* 203 204#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName}/ 205##### Redundancy 206- MemberId 207- RedundancySet 208- Mode 209- Status 210- MinNumNeeded 211- MaxNumSupported 212 213#### /redfish/v1/Chassis/{ChassisId}/Power/ 214##### Power 215PowerControl Voltages PowerSupplies Redundancy 216 217#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName}/ 218##### PowerControl 219- MemberId 220- PowerConsumedWatts 221- PowerMetrics/IntervalInMin 222- PowerMetrics/MinConsumedWatts 223- PowerMetrics/MaxConsumedWatts 224- PowerMetrics/AverageConsumedWatts 225- RelatedItem 226 - Should list systems and related chassis 227 228#### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName}/ 229##### Voltage 230- MemberId 231- Status 232- ReadingVolts 233- UpperThresholdNonCritical 234- UpperThresholdCritical 235- LowerThresholdNonCritical 236- LowerThresholdCritical 237- MinReadingRange 238- MaxReadingRange 239- PhysicalContext 240- RelatedItem 241 242#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName}/ 243##### PowerSupply 244- MemberId 245- Status 246- LininputVoltage 247- Model 248- manufacturer 249- FirmwareVersion 250- SerialNumber 251- PartNumber 252- RelatedItem 253- Redundancy 254 255#### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName}/ 256##### Redundancy 257- MemberId 258- RedundancySet 259- Mode 260- Status 261- MinNumNeeded 262- MaxNumSupported 263 264#### /redfish/v1/EventService/ 265##### EventService 266- Actions 267- DeliveryRetryAttempts 268 - Defaults to 3 269- DeliveryRetryIntervalSeconds 270- EventFormatTypes 271- RegistryPrefixes 272- ResourceTypes 273- SSEFilterPropertiesSupported 274- ServiceEnabled 275- Status 276- Subscriptions 277 278#### /redfish/v1/EventService/Subscriptions/ 279##### EventDestinationCollection 280- Members 281- Members\@odata.count 282 283#### /redfish/v1/EventService/Subscriptions/{EventName}/ 284##### EventDestination 285- Id 286- Destination 287- EventTypes 288- Context 289- OriginResources 290- Protocol 291 292#### /redfish/v1/JsonSchemas/ 293##### JsonSchemaFileCollection 294- Description 295- Members\@odata.count 296- Members 297 298#### /redfish/v1/JsonSchemas/{Id}/ 299##### JsonSchemaFile 300- Schema 301- Description 302- Languages 303- Languages\@odata.count 304- Location 305- Location\@odata.count 306 307#### /redfish/v1/Managers/ 308##### ManagerCollection 309- Members 310- Members\@odata.count 311 312#### /redfish/v1/Managers/bmc/ 313##### Manager 314- Actions 315- DateTime 316- Description 317- EthernetInterfaces 318- FirmwareVersion 319- GraphicalConsole 320- LastResetTime 321- Links/ActiveSoftwareImage 322- Links/ManagerForChassis 323- Links/ManagerForChassis\@odata.count 324- Links/ManagerForServers 325- Links/ManagerForServers\@odata.count 326- Links/ManagerInChassis 327- Links/SoftwareImages 328- Links/SoftwareImages\@odata.count 329- LogServices 330- ManagerType 331- Manufacturer 332- Model 333- NetworkProtocol 334- Oem 335- PartNumber 336- PowerState 337- SerialConsole 338- SerialNumber 339- ServiceEntryPointUUID 340- SparePartNumber 341- Status 342- UUID 343 344#### /redfish/v1/Managers/bmc/EthernetInterfaces/ 345##### EthernetInterfaceCollection 346- Description 347- Members 348- Members\@odata.count 349 350#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/ 351##### EthernetInterface 352- DHCPv4 353- DHCPv6 354- Description 355- FQDN 356- HostName 357- IPv4Addresses 358- IPv4StaticAddresses 359- IPv6AddressPolicyTable 360- IPv6Addresses 361- IPv6DefaultGateway 362- IPv6StaticAddresses 363- InterfaceEnabled 364- LinkStatus 365- MACAddress 366- NameServers 367- SpeedMbps 368- StaticNameServers 369- Status 370- VLANs 371 372#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/VLANs/ 373##### VLanNetworkInterfaceCollection 374- Members 375- Members\@odata.count 376 377#### /redfish/v1/Managers/bmc/LogServices/ 378 379The [LogService][2] resource provides properties for monitoring and configuring 380events for the service or resource to which it is associated. 381 382Within bmcweb, the LogService object resides under the System resource. It 383tracks all events for the system. 384 385The LogService supports multiple log entry types. bmcweb has support for 386the `Event` type. This is the new Redfish-defined type. 387 388bmcweb supports two different implementations of the 389`LogService/EventLog/Entries` URI. 390 391The default implementation uses rsyslog to write Redfish events from the journal 392to the persistent /var/log/ filesystem. The bmcweb software then looks for these 393files in /var/log/ and returns the appropriate Redfish EventLog Entries for 394these. More details on adding events can be found [here][3] 395 396The other implementation of EventLog Entries can be enabled by compiling bmcweb 397with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause 398bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will 399then be translated to Redfish EventLog Entries. 400 401These two implementations do not work together, so choosing one will disable 402the other. 403 404#### /redfish/v1/Managers/bmc/LogServices/ 405##### LogServiceCollection 406- Description 407- Members 408- Members\@odata.count 409 410#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/ 411##### LogService 412- Entries 413- OverWritePolicy 414- Actions 415- Status 416- DateTime 417- MaxNumberOfRecords 418 419#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/ 420##### LogEntry 421- Message 422- Created 423- EntryType 424 425#### /redfish/v1/Managers/bmc/NetworkProtocol/ 426##### ManagerNetworkProtocol 427- Description 428- FQDN 429- HTTP 430- HTTPS 431- HostName 432- IPMI 433- NTP 434- SSH 435- Status 436 437#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/ 438##### CertificateCollection 439- Description 440- Members 441- Members\@odata.count 442 443#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/ 444##### Certificate 445- CertificateString 446- Description 447- Issuer 448- KeyUsage 449- Subject 450- ValidNotAfter 451- ValidNotBefore 452 453#### /redfish/v1/Managers/bmc/Truststore/Certificates/ 454##### CertificateCollection 455- Description 456- error 457 458 459#### /redfish/v1/Registries/ 460##### MessageRegistryFileCollection 461- Description 462- Members 463 - Should support Base, CommonMessages, and EventingMessages 464- Members\@odata.count 465 466#### /redfish/v1/Registries/{MessageRegistryFileId}/ 467##### MessageRegistryFile 468- Description 469- Languages 470- Languages\@odata.count 471- Location 472- Location\@odata.count 473- Registry 474 475#### /redfish/v1/SessionService/ 476##### SessionService 477- Description 478- ServiceEnabled 479- SessionTimeout 480- Sessions 481 482#### /redfish/v1/SessionService/Sessions/ 483##### SessionCollection 484- Description 485- Members 486- Members\@odata.count 487 488#### /redfish/v1/SessionService/Sessions/{SessionId}/ 489##### Session 490- ClientOriginIPAddress 491- Description 492- Oem 493- UserName 494 495#### /redfish/v1/Systems/ 496##### ComputerSystemCollection 497- Members 498 - Should support one system 499- Members\@odata.count 500 501#### /redfish/v1/Systems/system/Bios/ 502##### Bios 503- Actions 504- Description 505- Links/ActiveSoftwareImage 506- Links/SoftwareImages 507- Links/SoftwareImages\@odata.count 508 509#### /redfish/v1/Systems/system/ 510##### ComputerSystem 511- Actions 512- AssetTag 513- Bios 514- BiosVersion 515- Boot 516- BootProgress 517- Description 518- HostWatchdogTimer 519- IndicatorLED 520- LastResetTime 521- Links/Chassis 522- Links/ManagedBy 523- LocationIndicatorActive 524- LogServices 525- Manufacturer 526- Memory 527- MemorySummary 528- Model 529- PartNumber 530- PowerRestorePolicy 531- PowerState 532- ProcessorSummary 533- Processors 534- SerialNumber 535- Status 536- Storage 537- SubModel 538- SystemType 539 540#### /redfish/v1/Systems/system/EthernetInterfaces/ 541##### EthernetInterfaceCollection 542- Members 543- Members\@odata.count 544- Description 545 546#### /redfish/v1/Systems/system/LogServices/ 547##### LogServiceCollection 548- Description 549- Members 550 - Should default to one member, named SEL 551- Members\@odata.count 552 553#### /redfish/v1/Systems/system/LogServices/EventLog/ 554##### LogService 555- Actions 556- Description 557- Entries 558- OverWritePolicy 559 560#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/ 561##### LogEntryCollection 562- Description 563- Members 564- Members\@odata.count 565 566#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/ 567##### LogEntry 568- AdditionalDataURI 569- Created 570- EntryType 571- Message 572- Modified 573- Resolved 574- Severity 575 576#### /redfish/v1/Systems/system/LogServices/SEL/Entries/ 577##### LogEntryCollection 578- Members 579- Members\@odata.count 580- Description 581- @odata.nextLink 582 583#### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/ 584##### LogEntry 585- MessageArgs 586- Severity 587- SensorType 588- Message 589- MessageId 590- Created 591- EntryCode 592- EntryType 593 594#### /redfish/v1/Systems/system/Memory/ 595##### MemoryCollection 596- Members 597- Members\@odata.count 598 599#### /redfish/v1/Systems/system/Memory/{MemoryId}/ 600##### Memory 601- AllowedSpeedsMHz 602- BaseModuleType 603- BusWidthBits 604- CapacityMiB 605- DataWidthBits 606- ErrorCorrection 607- FirmwareRevision 608- Manufacturer 609- Model 610- OperatingSpeedMhz 611- PartNumber 612- RankCount 613- SerialNumber 614- SparePartNumber 615- Status 616 617#### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/ 618##### MemoryMetrics 619- Description 620- HealthData 621 622#### /redfish/v1/Systems/system/PCIeDevices/ 623##### PCIeDeviceCollection 624- Description 625- Members 626- Members\@odata.count 627 628#### /redfish/v1/Systems/system/Processors/ 629##### ProcessorCollection 630- Members 631 - Should Support CPU1 and CPU2 for dual socket systems 632- Members\@odata.count 633 634#### /redfish/v1/Systems/system/Processors/{ProcessorId}/ 635##### Processor 636- InstructionSet 637- Manufacturer 638- MaxSpeedMHz 639- PartNumber 640- ProcessorArchitecture 641- ProcessorId 642- ProcessorType 643- SerialNumber 644- Socket 645- SparePartNumber 646- Status 647- TotalCores 648- TotalThreads 649- Version 650 651#### /redfish/v1/Systems/system/Storage/ 652##### StorageCollection 653- Members 654- Members\@odata.count 655 656#### /redfish/v1/Systems/system/Storage/{StorageId}/ 657##### Storage 658- Drives 659- Drives\@odata.count 660- Status 661 662#### /redfish/v1/TaskService/ 663##### TaskService 664- CompletedTaskOverWritePolicy 665- DateTime 666- LifeCycleEventOnTaskStateChange 667- ServiceEnabled 668- Status 669- Tasks 670 671#### /redfish/v1/TaskService/Tasks/ 672##### TaskCollection 673- Members 674- Members\@odata.count 675 676#### /redfish/v1/TelemetryService/ 677##### TelemetryService 678- MaxReports 679- MetricReportDefinitions 680- MetricReports 681- MinCollectionInterval 682- Status 683 684#### /redfish/v1/TelemetryService/MetricReportDefinitions/ 685##### MetricReportDefinitionCollection 686- Members 687- Members\@odata.count 688 689#### /redfish/v1/TelemetryService/MetricReports/ 690##### MetricReportCollection 691- Members 692- Members\@odata.count 693 694#### /redfish/v1/UpdateService/ 695##### UpdateService 696- Actions 697- Description 698- FirmwareInventory 699- HttpPushUri 700- HttpPushUriOptions 701- ServiceEnabled 702 703#### /redfish/v1/UpdateService/FirmwareInventory/ 704##### SoftwareInventoryCollection 705- Members 706 - Should Support BMC, ME, CPLD and BIOS 707- Members\@odata.count 708 709#### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/ 710##### SoftwareInventory 711- Description 712- RelatedItem\@odata.count 713- RelatedItem 714- Status 715- Updateable 716- Version 717 718[1]: https://www.dmtf.org/standards/redfish 719[2]: https://redfish.dmtf.org/schemas/v1/LogService.json 720[3]: https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md 721[4]: https://github.com/openbmc/phosphor-logging 722