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}/Drive/ 148#### Drive 149- Members 150(This is dependent on a entity manager association from 151Chassis to Drives, The name of the association is "chassis<->drive") 152 153#### /redfish/v1/Chassis/{ChassisId}/Drive/{DriveId}/ 154#### Drive 155- Drives 156- Drives@odata.count 157- Status 158(this is dependant on a entity manager association from Chassis to Drives) 159 160#### /redfish/v1/Chassis/{ChassisId}/Power/ 161##### Power 162- PowerControl 163- PowerSupplies 164- Redundancy 165- Voltages 166 167#### /redfish/v1/Chassis/{ChassisId}/Sensors/ 168##### SensorCollection 169- Description 170- Members 171- Members@odata.count 172 173#### /redfish/v1/Chassis/{ChassisId}/Sensors/{Id}/ 174##### Sensor 175- Reading 176- ReadingRangeMax 177- ReadingRangeMin 178- ReadingType 179- ReadingUnits 180- Status 181- Thresholds 182 183#### /redfish/v1/Chassis/{ChassisId}/Thermal/ 184##### Thermal 185- Fans 186- Redundancy 187- Temperatures 188 189#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName}/ 190##### Temperature 191- MemberId 192- Status 193- ReadingCelsius 194- UpperThresholdNonCritical 195- UpperThresholdCritical 196- LowerThresholdNonCritical 197- LowerThresholdCritical 198- MinReadingRange 199- MaxReadingRange 200*threshold fields only present if defined for sensor, otherwise absent* 201 202#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName}/ 203##### Fan 204- MemberId 205- Status 206- Reading 207- ReadingUnits 208- UpperThresholdNonCritical 209- UpperThresholdCritical 210- LowerThresholdNonCritical 211- LowerThresholdCritical 212- MinReadingRange 213- MaxReadingRange 214- Redundancy 215*threshold fields only present if defined for sensor, otherwise absent* 216 217#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName}/ 218##### Redundancy 219- MemberId 220- RedundancySet 221- Mode 222- Status 223- MinNumNeeded 224- MaxNumSupported 225 226#### /redfish/v1/Chassis/{ChassisId}/Power/ 227##### Power 228PowerControl Voltages PowerSupplies Redundancy 229 230#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName}/ 231##### PowerControl 232- MemberId 233- PowerConsumedWatts 234- PowerMetrics/IntervalInMin 235- PowerMetrics/MinConsumedWatts 236- PowerMetrics/MaxConsumedWatts 237- PowerMetrics/AverageConsumedWatts 238- RelatedItem 239 - Should list systems and related chassis 240 241#### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName}/ 242##### Voltage 243- MemberId 244- Status 245- ReadingVolts 246- UpperThresholdNonCritical 247- UpperThresholdCritical 248- LowerThresholdNonCritical 249- LowerThresholdCritical 250- MinReadingRange 251- MaxReadingRange 252- PhysicalContext 253- RelatedItem 254 255#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName}/ 256##### PowerSupply 257- MemberId 258- Status 259- LininputVoltage 260- Model 261- manufacturer 262- FirmwareVersion 263- SerialNumber 264- PartNumber 265- RelatedItem 266- Redundancy 267 268#### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName}/ 269##### Redundancy 270- MemberId 271- RedundancySet 272- Mode 273- Status 274- MinNumNeeded 275- MaxNumSupported 276 277#### /redfish/v1/EventService/ 278##### EventService 279- Actions 280- DeliveryRetryAttempts 281 - Defaults to 3 282- DeliveryRetryIntervalSeconds 283- EventFormatTypes 284- RegistryPrefixes 285- ResourceTypes 286- SSEFilterPropertiesSupported 287- ServiceEnabled 288- Status 289- Subscriptions 290 291#### /redfish/v1/EventService/Subscriptions/ 292##### EventDestinationCollection 293- Members 294- Members@odata.count 295 296#### /redfish/v1/EventService/Subscriptions/{EventName}/ 297##### EventDestination 298- Id 299- Destination 300- EventTypes 301- Context 302- OriginResources 303- Protocol 304 305#### /redfish/v1/JsonSchemas/ 306##### JsonSchemaFileCollection 307- Description 308- Members@odata.count 309- Members 310 311#### /redfish/v1/JsonSchemas/{Id}/ 312##### JsonSchemaFile 313- Schema 314- Description 315- Languages 316- Languages@odata.count 317- Location 318- Location@odata.count 319 320#### /redfish/v1/Managers/ 321##### ManagerCollection 322- Members 323- Members@odata.count 324 325#### /redfish/v1/Managers/bmc/ 326##### Manager 327- Actions 328- DateTime 329- DateTimeLocalOffset 330- Description 331- EthernetInterfaces 332- FirmwareVersion 333- GraphicalConsole 334- LastResetTime 335- Links/ActiveSoftwareImage 336- Links/ManagerForChassis 337- Links/ManagerForChassis@odata.count 338- Links/ManagerForServers 339- Links/ManagerForServers@odata.count 340- Links/ManagerInChassis 341- Links/SoftwareImages 342- Links/SoftwareImages@odata.count 343- LogServices 344- ManagerType 345- Manufacturer 346- Model 347- NetworkProtocol 348- Oem 349- PartNumber 350- PowerState 351- SerialConsole 352- SerialNumber 353- ServiceEntryPointUUID 354- SparePartNumber 355- Status 356- UUID 357 358#### /redfish/v1/Managers/bmc/EthernetInterfaces/ 359##### EthernetInterfaceCollection 360- Description 361- Members 362- Members@odata.count 363 364#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/ 365##### EthernetInterface 366- DHCPv4 367- DHCPv6 368- Description 369- FQDN 370- HostName 371- IPv4Addresses 372- IPv4StaticAddresses 373- IPv6AddressPolicyTable 374- IPv6Addresses 375- IPv6DefaultGateway 376- IPv6StaticAddresses 377- InterfaceEnabled 378- LinkStatus 379- MACAddress 380- NameServers 381- SpeedMbps 382- StaticNameServers 383- Status 384- VLANs 385 386#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/VLANs/ 387##### VLanNetworkInterfaceCollection 388- Members 389- Members@odata.count 390 391#### /redfish/v1/Managers/bmc/LogServices/ 392 393The [LogService][2] resource provides properties for monitoring and configuring 394events for the service or resource to which it is associated. 395 396Within bmcweb, the LogService object resides under the System resource. It 397tracks all events for the system. 398 399The LogService supports multiple log entry types. bmcweb has support for 400the `Event` type. This is the new Redfish-defined type. 401 402bmcweb supports two different implementations of the 403`LogService/EventLog/Entries` URI. 404 405The default implementation uses rsyslog to write Redfish events from the journal 406to the persistent /var/log/ filesystem. The bmcweb software then looks for these 407files in /var/log/ and returns the appropriate Redfish EventLog Entries for 408these. More details on adding events can be found [here][3] 409 410The other implementation of EventLog Entries can be enabled by compiling bmcweb 411with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause 412bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will 413then be translated to Redfish EventLog Entries. 414 415These two implementations do not work together, so choosing one will disable 416the other. 417 418#### /redfish/v1/Managers/bmc/LogServices/ 419##### LogServiceCollection 420- Description 421- Members 422- Members@odata.count 423 424#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/ 425##### LogService 426- Entries 427- OverWritePolicy 428- Actions 429- Status 430- DateTime 431- MaxNumberOfRecords 432 433#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/ 434##### LogEntry 435- Message 436- Created 437- EntryType 438 439#### /redfish/v1/Managers/bmc/NetworkProtocol/ 440##### ManagerNetworkProtocol 441- Description 442- FQDN 443- HTTP 444- HTTPS 445- HostName 446- IPMI 447- NTP 448- SSH 449- Status 450 451#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/ 452##### CertificateCollection 453- Description 454- Members 455- Members@odata.count 456 457#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/ 458##### Certificate 459- CertificateString 460- Description 461- Issuer 462- KeyUsage 463- Subject 464- ValidNotAfter 465- ValidNotBefore 466 467#### /redfish/v1/Managers/bmc/Truststore/Certificates/ 468##### CertificateCollection 469- Description 470- error 471 472 473#### /redfish/v1/Registries/ 474##### MessageRegistryFileCollection 475- Description 476- Members 477 - Should support Base, CommonMessages, and EventingMessages 478- Members@odata.count 479 480#### /redfish/v1/Registries/{MessageRegistryFileId}/ 481##### MessageRegistryFile 482- Description 483- Languages 484- Languages@odata.count 485- Location 486- Location@odata.count 487- Registry 488 489#### /redfish/v1/SessionService/ 490##### SessionService 491- Description 492- ServiceEnabled 493- SessionTimeout 494- Sessions 495 496#### /redfish/v1/SessionService/Sessions/ 497##### SessionCollection 498- Description 499- Members 500- Members@odata.count 501 502#### /redfish/v1/SessionService/Sessions/{SessionId}/ 503##### Session 504- ClientOriginIPAddress 505- Description 506- Oem 507- UserName 508 509#### /redfish/v1/Systems/ 510##### ComputerSystemCollection 511- Members 512 - Should support one system 513- Members@odata.count 514 515#### /redfish/v1/Systems/system/Bios/ 516##### Bios 517- Actions 518- Description 519- Links/ActiveSoftwareImage 520- Links/SoftwareImages 521- Links/SoftwareImages@odata.count 522 523#### /redfish/v1/Systems/system/ 524##### ComputerSystem 525- Actions 526- AssetTag 527- Bios 528- BiosVersion 529- Boot 530- BootProgress 531- Description 532- HostWatchdogTimer 533- IdlePowerSaver/Enable 534- IdlePowerSaver/EnterUtilizationPercent 535- IdlePowerSaver/EnterDwellTimeSeconds 536- IdlePowerSaver/ExitUtilizationPercent 537- IdlePowerSaver/ExitDwellTimeSeconds 538- IndicatorLED 539- LastResetTime 540- Links/Chassis 541- Links/ManagedBy 542- LocationIndicatorActive 543- LogServices 544- Manufacturer 545- Memory 546- MemorySummary 547- Model 548- PartNumber 549- PowerMode 550- PowerRestorePolicy 551- PowerState 552- ProcessorSummary 553- Processors 554- SerialNumber 555- Status 556- Storage 557- SubModel 558- SystemType 559 560#### /redfish/v1/Systems/system/EthernetInterfaces/ 561##### EthernetInterfaceCollection 562- Members 563- Members@odata.count 564- Description 565 566#### /redfish/v1/Systems/system/LogServices/ 567##### LogServiceCollection 568- Description 569- Members 570 - Should default to one member, named SEL 571- Members@odata.count 572 573#### /redfish/v1/Systems/system/LogServices/EventLog/ 574##### LogService 575- Actions 576- DateTime 577- DateTimeLocalOffset 578- Description 579- Entries 580- OverWritePolicy 581 582#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/ 583##### LogEntryCollection 584- Description 585- Members 586- Members@odata.count 587 588#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/ 589##### LogEntry 590- AdditionalDataURI 591- Created 592- EntryType 593- Message 594- Modified 595- Resolved 596- Severity 597 598#### /redfish/v1/Systems/system/LogServices/SEL/Entries/ 599##### LogEntryCollection 600- Members 601- Members@odata.count 602- Description 603- @odata.nextLink 604 605#### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/ 606##### LogEntry 607- MessageArgs 608- Severity 609- SensorType 610- Message 611- MessageId 612- Created 613- EntryCode 614- EntryType 615 616#### /redfish/v1/Systems/system/Memory/ 617##### MemoryCollection 618- Members 619- Members@odata.count 620 621#### /redfish/v1/Systems/system/Memory/{MemoryId}/ 622##### Memory 623- AllowedSpeedsMHz 624- BaseModuleType 625- BusWidthBits 626- CapacityMiB 627- DataWidthBits 628- ErrorCorrection 629- FirmwareRevision 630- Manufacturer 631- Model 632- OperatingSpeedMhz 633- PartNumber 634- RankCount 635- SerialNumber 636- SparePartNumber 637- Status 638 639#### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/ 640##### MemoryMetrics 641- Description 642- HealthData 643 644#### /redfish/v1/Systems/system/PCIeDevices/ 645##### PCIeDeviceCollection 646- Description 647- Members 648- Members@odata.count 649 650#### /redfish/v1/Systems/system/Processors/ 651##### ProcessorCollection 652- Members 653 - Should Support CPU1 and CPU2 for dual socket systems 654- Members@odata.count 655 656#### /redfish/v1/Systems/system/Processors/{ProcessorId}/ 657##### Processor 658- InstructionSet 659- Manufacturer 660- MaxSpeedMHz 661- PartNumber 662- ProcessorArchitecture 663- ProcessorId 664- ProcessorType 665- SerialNumber 666- Socket 667- SparePartNumber 668- Status 669- TotalCores 670- TotalThreads 671- Version 672 673#### /redfish/v1/Systems/system/Storage/ 674##### StorageCollection 675- Members 676- Members@odata.count 677 678#### /redfish/v1/Systems/system/Storage/{StorageId}/ 679##### Storage 680- Drives 681- Drives@odata.count 682- Status 683 684#### /redfish/v1/Systems/system/Storage/{StorageId}/Drive/{DriveId}/ 685##### Storage 686- CapacityBytes 687- Links 688- Status 689 690#### /redfish/v1/TaskService/ 691##### TaskService 692- CompletedTaskOverWritePolicy 693- DateTime 694- LifeCycleEventOnTaskStateChange 695- ServiceEnabled 696- Status 697- Tasks 698 699#### /redfish/v1/TaskService/Tasks/ 700##### TaskCollection 701- Members 702- Members@odata.count 703 704#### /redfish/v1/TelemetryService/ 705##### TelemetryService 706- MaxReports 707- MetricReportDefinitions 708- MetricReports 709- MinCollectionInterval 710- Status 711- Triggers 712 713#### /redfish/v1/TelemetryService/MetricReportDefinitions/ 714##### MetricReportDefinitionCollection 715- Members 716- Members@odata.count 717 718#### /redfish/v1/TelemetryService/MetricReports/ 719##### MetricReportCollection 720- Members 721- Members@odata.count 722 723#### /redfish/v1/TelemetryService/Triggers/ 724##### TriggersCollection 725- Members 726- Members@odata.count 727 728#### /redfish/v1/UpdateService/ 729##### UpdateService 730- Actions 731- Description 732- FirmwareInventory 733- HttpPushUri 734- HttpPushUriOptions 735- MaxImageSizeBytes 736- ServiceEnabled 737 738#### /redfish/v1/UpdateService/FirmwareInventory/ 739##### SoftwareInventoryCollection 740- Members 741 - Should Support BMC, ME, CPLD and BIOS 742- Members@odata.count 743 744#### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/ 745##### SoftwareInventory 746- Description 747- RelatedItem@odata.count 748- RelatedItem 749- Status 750- Updateable 751- Version 752 753[1]: https://www.dmtf.org/standards/redfish 754[2]: https://redfish.dmtf.org/schemas/v1/LogService.json 755[3]: https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md 756[4]: https://github.com/openbmc/phosphor-logging 757