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