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- DateTimeLocalOffset 317- Description 318- EthernetInterfaces 319- FirmwareVersion 320- GraphicalConsole 321- LastResetTime 322- Links/ActiveSoftwareImage 323- Links/ManagerForChassis 324- Links/ManagerForChassis@odata.count 325- Links/ManagerForServers 326- Links/ManagerForServers@odata.count 327- Links/ManagerInChassis 328- Links/SoftwareImages 329- Links/SoftwareImages@odata.count 330- LogServices 331- ManagerType 332- Manufacturer 333- Model 334- NetworkProtocol 335- Oem 336- PartNumber 337- PowerState 338- SerialConsole 339- SerialNumber 340- ServiceEntryPointUUID 341- SparePartNumber 342- Status 343- UUID 344 345#### /redfish/v1/Managers/bmc/EthernetInterfaces/ 346##### EthernetInterfaceCollection 347- Description 348- Members 349- Members@odata.count 350 351#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/ 352##### EthernetInterface 353- DHCPv4 354- DHCPv6 355- Description 356- FQDN 357- HostName 358- IPv4Addresses 359- IPv4StaticAddresses 360- IPv6AddressPolicyTable 361- IPv6Addresses 362- IPv6DefaultGateway 363- IPv6StaticAddresses 364- InterfaceEnabled 365- LinkStatus 366- MACAddress 367- NameServers 368- SpeedMbps 369- StaticNameServers 370- Status 371- VLANs 372 373#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/VLANs/ 374##### VLanNetworkInterfaceCollection 375- Members 376- Members@odata.count 377 378#### /redfish/v1/Managers/bmc/LogServices/ 379 380The [LogService][2] resource provides properties for monitoring and configuring 381events for the service or resource to which it is associated. 382 383Within bmcweb, the LogService object resides under the System resource. It 384tracks all events for the system. 385 386The LogService supports multiple log entry types. bmcweb has support for 387the `Event` type. This is the new Redfish-defined type. 388 389bmcweb supports two different implementations of the 390`LogService/EventLog/Entries` URI. 391 392The default implementation uses rsyslog to write Redfish events from the journal 393to the persistent /var/log/ filesystem. The bmcweb software then looks for these 394files in /var/log/ and returns the appropriate Redfish EventLog Entries for 395these. More details on adding events can be found [here][3] 396 397The other implementation of EventLog Entries can be enabled by compiling bmcweb 398with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause 399bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will 400then be translated to Redfish EventLog Entries. 401 402These two implementations do not work together, so choosing one will disable 403the other. 404 405#### /redfish/v1/Managers/bmc/LogServices/ 406##### LogServiceCollection 407- Description 408- Members 409- Members@odata.count 410 411#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/ 412##### LogService 413- Entries 414- OverWritePolicy 415- Actions 416- Status 417- DateTime 418- MaxNumberOfRecords 419 420#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/ 421##### LogEntry 422- Message 423- Created 424- EntryType 425 426#### /redfish/v1/Managers/bmc/NetworkProtocol/ 427##### ManagerNetworkProtocol 428- Description 429- FQDN 430- HTTP 431- HTTPS 432- HostName 433- IPMI 434- NTP 435- SSH 436- Status 437 438#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/ 439##### CertificateCollection 440- Description 441- Members 442- Members@odata.count 443 444#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/ 445##### Certificate 446- CertificateString 447- Description 448- Issuer 449- KeyUsage 450- Subject 451- ValidNotAfter 452- ValidNotBefore 453 454#### /redfish/v1/Managers/bmc/Truststore/Certificates/ 455##### CertificateCollection 456- Description 457- error 458 459 460#### /redfish/v1/Registries/ 461##### MessageRegistryFileCollection 462- Description 463- Members 464 - Should support Base, CommonMessages, and EventingMessages 465- Members@odata.count 466 467#### /redfish/v1/Registries/{MessageRegistryFileId}/ 468##### MessageRegistryFile 469- Description 470- Languages 471- Languages@odata.count 472- Location 473- Location@odata.count 474- Registry 475 476#### /redfish/v1/SessionService/ 477##### SessionService 478- Description 479- ServiceEnabled 480- SessionTimeout 481- Sessions 482 483#### /redfish/v1/SessionService/Sessions/ 484##### SessionCollection 485- Description 486- Members 487- Members@odata.count 488 489#### /redfish/v1/SessionService/Sessions/{SessionId}/ 490##### Session 491- ClientOriginIPAddress 492- Description 493- Oem 494- UserName 495 496#### /redfish/v1/Systems/ 497##### ComputerSystemCollection 498- Members 499 - Should support one system 500- Members@odata.count 501 502#### /redfish/v1/Systems/system/Bios/ 503##### Bios 504- Actions 505- Description 506- Links/ActiveSoftwareImage 507- Links/SoftwareImages 508- Links/SoftwareImages@odata.count 509 510#### /redfish/v1/Systems/system/ 511##### ComputerSystem 512- Actions 513- AssetTag 514- Bios 515- BiosVersion 516- Boot 517- BootProgress 518- Description 519- HostWatchdogTimer 520- IdlePowerSaver/Enable 521- IdlePowerSaver/EnterUtilizationPercent 522- IdlePowerSaver/EnterDwellTimeSeconds 523- IdlePowerSaver/ExitUtilizationPercent 524- IdlePowerSaver/ExitDwellTimeSeconds 525- IndicatorLED 526- LastResetTime 527- Links/Chassis 528- Links/ManagedBy 529- LocationIndicatorActive 530- LogServices 531- Manufacturer 532- Memory 533- MemorySummary 534- Model 535- PartNumber 536- PowerMode 537- PowerRestorePolicy 538- PowerState 539- ProcessorSummary 540- Processors 541- SerialNumber 542- Status 543- Storage 544- SubModel 545- SystemType 546 547#### /redfish/v1/Systems/system/EthernetInterfaces/ 548##### EthernetInterfaceCollection 549- Members 550- Members@odata.count 551- Description 552 553#### /redfish/v1/Systems/system/LogServices/ 554##### LogServiceCollection 555- Description 556- Members 557 - Should default to one member, named SEL 558- Members@odata.count 559 560#### /redfish/v1/Systems/system/LogServices/EventLog/ 561##### LogService 562- Actions 563- DateTime 564- DateTimeLocalOffset 565- Description 566- Entries 567- OverWritePolicy 568 569#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/ 570##### LogEntryCollection 571- Description 572- Members 573- Members@odata.count 574 575#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/ 576##### LogEntry 577- AdditionalDataURI 578- Created 579- EntryType 580- Message 581- Modified 582- Resolved 583- Severity 584 585#### /redfish/v1/Systems/system/LogServices/SEL/Entries/ 586##### LogEntryCollection 587- Members 588- Members@odata.count 589- Description 590- @odata.nextLink 591 592#### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/ 593##### LogEntry 594- MessageArgs 595- Severity 596- SensorType 597- Message 598- MessageId 599- Created 600- EntryCode 601- EntryType 602 603#### /redfish/v1/Systems/system/Memory/ 604##### MemoryCollection 605- Members 606- Members@odata.count 607 608#### /redfish/v1/Systems/system/Memory/{MemoryId}/ 609##### Memory 610- AllowedSpeedsMHz 611- BaseModuleType 612- BusWidthBits 613- CapacityMiB 614- DataWidthBits 615- ErrorCorrection 616- FirmwareRevision 617- Manufacturer 618- Model 619- OperatingSpeedMhz 620- PartNumber 621- RankCount 622- SerialNumber 623- SparePartNumber 624- Status 625 626#### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/ 627##### MemoryMetrics 628- Description 629- HealthData 630 631#### /redfish/v1/Systems/system/PCIeDevices/ 632##### PCIeDeviceCollection 633- Description 634- Members 635- Members@odata.count 636 637#### /redfish/v1/Systems/system/Processors/ 638##### ProcessorCollection 639- Members 640 - Should Support CPU1 and CPU2 for dual socket systems 641- Members@odata.count 642 643#### /redfish/v1/Systems/system/Processors/{ProcessorId}/ 644##### Processor 645- InstructionSet 646- Manufacturer 647- MaxSpeedMHz 648- PartNumber 649- ProcessorArchitecture 650- ProcessorId 651- ProcessorType 652- SerialNumber 653- Socket 654- SparePartNumber 655- Status 656- TotalCores 657- TotalThreads 658- Version 659 660#### /redfish/v1/Systems/system/Storage/ 661##### StorageCollection 662- Members 663- Members@odata.count 664 665#### /redfish/v1/Systems/system/Storage/{StorageId}/ 666##### Storage 667- Drives 668- Drives@odata.count 669- Status 670 671#### /redfish/v1/TaskService/ 672##### TaskService 673- CompletedTaskOverWritePolicy 674- DateTime 675- LifeCycleEventOnTaskStateChange 676- ServiceEnabled 677- Status 678- Tasks 679 680#### /redfish/v1/TaskService/Tasks/ 681##### TaskCollection 682- Members 683- Members@odata.count 684 685#### /redfish/v1/TelemetryService/ 686##### TelemetryService 687- MaxReports 688- MetricReportDefinitions 689- MetricReports 690- MinCollectionInterval 691- Status 692- Triggers 693 694#### /redfish/v1/TelemetryService/MetricReportDefinitions/ 695##### MetricReportDefinitionCollection 696- Members 697- Members@odata.count 698 699#### /redfish/v1/TelemetryService/MetricReports/ 700##### MetricReportCollection 701- Members 702- Members@odata.count 703 704#### /redfish/v1/TelemetryService/Triggers/ 705##### TriggersCollection 706- Members 707- Members@odata.count 708 709#### /redfish/v1/UpdateService/ 710##### UpdateService 711- Actions 712- Description 713- FirmwareInventory 714- HttpPushUri 715- HttpPushUriOptions 716- MaxImageSizeBytes 717- ServiceEnabled 718 719#### /redfish/v1/UpdateService/FirmwareInventory/ 720##### SoftwareInventoryCollection 721- Members 722 - Should Support BMC, ME, CPLD and BIOS 723- Members@odata.count 724 725#### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/ 726##### SoftwareInventory 727- Description 728- RelatedItem@odata.count 729- RelatedItem 730- Status 731- Updateable 732- Version 733 734[1]: https://www.dmtf.org/standards/redfish 735[2]: https://redfish.dmtf.org/schemas/v1/LogService.json 736[3]: https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md 737[4]: https://github.com/openbmc/phosphor-logging 738