1# Redfish 2 3bmcweb provides an implementation of the [Redfish][1] API. This document details 4the Redfish schemas supported by bmcweb. This document also discusses some of 5the details of that implementation and different implementations available for 6certain areas. 7 8## Redfish Schema 9 10The redfish implementation shall pass the 11[Redfish Service Validator](https://github.com/DMTF/Redfish-Service-Validator "Validator") 12with no 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 18[here](https://redfish.dmtf.org/schemas/) 19 20If using a previously unused schema, you will need to add it to the included 21schema list in `scripts/update_schemas.py` and run `update_schemas.py`. 22 23Fields common to all schemas 24 25- @odata.id 26- @odata.type 27- Id 28- Name 29 30### /redfish/v1/ 31 32#### ServiceRoot 33 34- AccountService 35- AggregationService 36- CertificateService 37- Chassis 38- EventService 39- JsonSchemas 40- Links/Sessions 41- Managers 42- RedfishVersion 43- Registries 44- SessionService 45- Systems 46- Tasks 47- TelemetryService 48- UUID 49- UpdateService 50 51### /redfish/v1/AccountService/ 52 53#### AccountService 54 55- AccountLockoutDuration 56- AccountLockoutThreshold 57- Accounts 58- Description 59- LDAP 60- MaxPasswordLength 61- MinPasswordLength 62- Oem/OpenBMC/AuthMethods/BasicAuth 63- Oem/OpenBMC/AuthMethods/Cookie 64- Oem/OpenBMC/AuthMethods/SessionToken 65- Oem/OpenBMC/AuthMethods/TLS 66- Oem/OpenBMC/AuthMethods/XToken 67- Roles 68- ServiceEnabled 69 70### /redfish/v1/AggregationService/ 71 72#### AggregationService 73 74- Description 75- ServiceEnabled 76 77### /redfish/v1/AccountService/Accounts/ 78 79#### ManagerAccountCollection 80 81- Description 82- Members 83- Members@odata.count 84 85### /redfish/v1/AccountService/Accounts/{ManagerAccountId}/ 86 87#### ManagerAccount 88 89- AccountTypes 90- Description 91- Enabled 92- Links/Role 93- Locked 94- Locked@Redfish.AllowableValues 95- Password 96- PasswordChangeRequired 97- RoleId 98- UserName 99 100### /redfish/v1/AccountService/LDAP/Certificates/ 101 102#### CertificateCollection 103 104- Description 105- Members 106- Members@odata.count 107 108### /redfish/v1/AccountService/Roles/ 109 110#### RoleCollection 111 112- Description 113- Members 114 - By default will contain 3 roles, "Administrator", "Operator", and "ReadOnly" 115- Members@odata.count 116 117### /redfish/v1/AccountService/Roles/{RoleId}/ 118 119#### Role 120 121- AssignedPrivileges 122 - For the default roles, the following privileges will be assigned by default 123 - Administrator: Login, ConfigureManager, ConfigureUsers, ConfigureSelf, 124 ConfigureComponents 125 - Operator: Login, ConfigureComponents, ConfigureSelf 126 - ReadOnly: Login, ConfigureSelf 127- Description 128- IsPredefined 129 - Will be set to true for all default roles. If the given role is non-default, 130 or has been modified from default, will be marked as false. 131- OemPrivileges 132- RoleId 133 134### /redfish/v1/CertificateService/ 135 136#### CertificateService 137 138- Actions 139- CertificateLocations 140- Description 141 142### /redfish/v1/CertificateService/CertificateLocations/ 143 144#### CertificateLocations 145 146- Description 147- Links/Certificates 148- Links/Certificates@odata.count 149 150### /redfish/v1/Chassis/ 151 152#### ChassisCollection 153 154- Members 155- Members@odata.count 156 157### /redfish/v1/Chassis/{ChassisId}/ 158 159#### Chassis 160 161- Actions 162- ChassisType 163- Links/ComputerSystems 164- Links/ManagedBy 165- PCIeDevices 166- Power 167 - Shall be included if component contains voltage/current sensing components, 168 otherwise will be omitted. 169- PowerState 170- Sensors 171- Status 172- Thermal 173 - Shall be included if component contains temperature sensors, otherwise shall 174 be omitted. 175 176### /redfish/v1/Chassis/{ChassisId}/Drive/ 177 178#### Drive 179 180- Members (This is dependent on a entity manager association from Chassis to 181 Drives, The name of the association is `chassis<->drive`) 182 183### /redfish/v1/Chassis/{ChassisId}/Drive/{DriveId}/ 184 185#### Drive 186 187- Drives 188- Drives@odata.count 189- Status (this is dependant on a entity manager association from Chassis to 190 Drives) 191 192### /redfish/v1/Chassis/{ChassisId}/EnvironmentMetrics/ 193 194#### EnvironmentMetrics 195 196### /redfish/v1/Chassis/{ChassisId}/Power/ 197 198#### Power 199 200- PowerControl 201- PowerSupplies 202- Redundancy 203- Voltages 204 205### /redfish/v1/Chassis/{ChassisId}/Sensors/ 206 207#### SensorCollection 208 209- Description 210- Members 211- Members@odata.count 212 213### /redfish/v1/Chassis/{ChassisId}/Sensors/{Id}/ 214 215#### Sensor 216 217- Reading 218- ReadingRangeMax 219- ReadingRangeMin 220- ReadingType 221- ReadingUnits 222- Status 223- Thresholds 224 225### /redfish/v1/Chassis/{ChassisId}/Thermal/ 226 227#### Thermal 228 229- Fans 230- Redundancy 231- Temperatures 232 233### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName}/ 234 235#### Temperature 236 237- MemberId 238- Status 239- ReadingCelsius 240- UpperThresholdNonCritical 241- UpperThresholdCritical 242- LowerThresholdNonCritical 243- LowerThresholdCritical 244- MinReadingRange 245- MaxReadingRange _threshold fields only present if defined for sensor, 246 otherwise absent_ 247 248### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName}/ 249 250#### Fan 251 252- MemberId 253- Status 254- Reading 255- ReadingUnits 256- UpperThresholdNonCritical 257- UpperThresholdCritical 258- LowerThresholdNonCritical 259- LowerThresholdCritical 260- MinReadingRange 261- MaxReadingRange 262- Redundancy _threshold fields only present if defined for sensor, otherwise 263 absent_ 264 265### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName}/ 266 267#### Redundancy 268 269- MemberId 270- RedundancySet 271- Mode 272- Status 273- MinNumNeeded 274- MaxNumSupported 275 276### /redfish/v1/Chassis/{ChassisId}/ThermalSubsystem 277 278#### ThermalSubsystem 279 280- Status 281 282### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName}/ 283 284#### PowerControl 285 286- MemberId 287- PowerConsumedWatts 288- PowerMetrics/IntervalInMin 289- PowerMetrics/MinConsumedWatts 290- PowerMetrics/MaxConsumedWatts 291- PowerMetrics/AverageConsumedWatts 292- RelatedItem 293 - Should list systems and related chassis 294 295### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName}/ 296 297#### Voltage 298 299- MemberId 300- Status 301- ReadingVolts 302- UpperThresholdNonCritical 303- UpperThresholdCritical 304- LowerThresholdNonCritical 305- LowerThresholdCritical 306- MinReadingRange 307- MaxReadingRange 308- PhysicalContext 309- RelatedItem 310 311### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName}/ 312 313#### PowerSupply 314 315- MemberId 316- Status 317- LininputVoltage 318- Model 319- manufacturer 320- FirmwareVersion 321- SerialNumber 322- PartNumber 323- RelatedItem 324- Redundancy 325 326### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName}/ 327 328#### Redundancy 329 330- MemberId 331- RedundancySet 332- Mode 333- Status 334- MinNumNeeded 335- MaxNumSupported 336 337### /redfish/v1/EventService/ 338 339#### EventService 340 341- Actions 342- DeliveryRetryAttempts 343 - Defaults to 3 344- DeliveryRetryIntervalSeconds 345- EventFormatTypes 346- RegistryPrefixes 347- ResourceTypes 348- SSEFilterPropertiesSupported 349- ServiceEnabled 350- Status 351- Subscriptions 352 353### /redfish/v1/EventService/Subscriptions/ 354 355#### EventDestinationCollection 356 357- Members 358- Members@odata.count 359 360### /redfish/v1/EventService/Subscriptions/{EventName}/ 361 362#### EventDestination 363 364- Id 365- Destination 366- EventTypes 367- Context 368- OriginResources 369- Protocol 370 371### /redfish/v1/JsonSchemas/ 372 373#### JsonSchemaFileCollection 374 375- Description 376- Members@odata.count 377- Members 378 379### /redfish/v1/JsonSchemas/{Id}/ 380 381#### JsonSchemaFile 382 383- Schema 384- Description 385- Languages 386- Languages@odata.count 387- Location 388- Location@odata.count 389 390### /redfish/v1/Managers/ 391 392#### ManagerCollection 393 394- Members 395- Members@odata.count 396 397### /redfish/v1/Managers/bmc/ 398 399#### Manager 400 401- Actions 402- DateTime 403- DateTimeLocalOffset 404- Description 405- EthernetInterfaces 406- FirmwareVersion 407- GraphicalConsole 408- LastResetTime 409- Links/ActiveSoftwareImage 410- Links/ManagerForChassis 411- Links/ManagerForChassis@odata.count 412- Links/ManagerForServers 413- Links/ManagerForServers@odata.count 414- Links/ManagerInChassis 415- Links/SoftwareImages 416- Links/SoftwareImages@odata.count 417- LogServices 418- ManagerType 419- Manufacturer 420- Model 421- NetworkProtocol 422- Oem 423- PartNumber 424- PowerState 425- SerialConsole 426- SerialNumber 427- ServiceEntryPointUUID 428- SparePartNumber 429- Status 430- UUID 431 432### /redfish/v1/Managers/bmc/EthernetInterfaces/ 433 434#### EthernetInterfaceCollection 435 436- Description 437- Members 438- Members@odata.count 439 440### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/ 441 442#### EthernetInterface 443 444- DHCPv4 445- DHCPv6 446- Description 447- FQDN 448- HostName 449- IPv4Addresses 450- IPv4StaticAddresses 451- IPv6AddressPolicyTable 452- IPv6Addresses 453- IPv6DefaultGateway 454- IPv6StaticAddresses 455- InterfaceEnabled 456- LinkStatus 457- MACAddress 458- NameServers 459- SpeedMbps 460- StaticNameServers 461- Status 462- VLANs 463 464### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/VLANs/ 465 466#### VLanNetworkInterfaceCollection 467 468- Members 469- Members@odata.count 470 471### /redfish/v1/Managers/bmc/LogServices/ 472 473The [LogService][2] resource provides properties for monitoring and configuring 474events for the service or resource to which it is associated. 475 476Within bmcweb, the LogService object resides under the System resource. It 477tracks all events for the system. 478 479The LogService supports multiple log entry types. bmcweb has support for the 480`Event` type. This is the new Redfish-defined type. 481 482bmcweb supports two different implementations of the 483`LogService/EventLog/Entries` URI. 484 485The default implementation uses rsyslog to write Redfish events from the journal 486to the persistent /var/log/ filesystem. The bmcweb software then looks for these 487files in /var/log/ and returns the appropriate Redfish EventLog Entries for 488these. More details on adding events can be found [here][3] 489 490The other implementation of EventLog Entries can be enabled by compiling bmcweb 491with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause 492bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will 493then be translated to Redfish EventLog Entries. 494 495These two implementations do not work together, so choosing one will disable the 496other. 497 498#### LogServiceCollection 499 500- Description 501- Members 502- Members@odata.count 503 504### /redfish/v1/Managers/bmc/LogServices/RedfishLog/ 505 506#### LogService 507 508- Entries 509- OverWritePolicy 510- Actions 511- Status 512- DateTime 513- MaxNumberOfRecords 514 515### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/ 516 517#### LogEntry 518 519- Message 520- Created 521- EntryType 522 523### /redfish/v1/Managers/bmc/NetworkProtocol/ 524 525#### ManagerNetworkProtocol 526 527- Description 528- FQDN 529- HTTP 530- HTTPS 531- HostName 532- IPMI 533- NTP 534- SSH 535- Status 536 537### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/ 538 539#### CertificateCollection 540 541- Description 542- Members 543- Members@odata.count 544 545### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/ 546 547#### Certificate 548 549- CertificateString 550- Description 551- Issuer 552- KeyUsage 553- Subject 554- ValidNotAfter 555- ValidNotBefore 556 557### /redfish/v1/Managers/bmc/Truststore/Certificates/ 558 559#### CertificateCollection 560 561- Description 562- error 563 564### /redfish/v1/Registries/ 565 566#### MessageRegistryFileCollection 567 568- Description 569- Members 570 - Should support Base, CommonMessages, and EventingMessages 571- Members@odata.count 572 573### /redfish/v1/Registries/{MessageRegistryFileId}/ 574 575#### MessageRegistryFile 576 577- Description 578- Languages 579- Languages@odata.count 580- Location 581- Location@odata.count 582- Registry 583 584### /redfish/v1/SessionService/ 585 586#### SessionService 587 588- Description 589- ServiceEnabled 590- SessionTimeout 591- Sessions 592 593### /redfish/v1/SessionService/Sessions/ 594 595#### SessionCollection 596 597- Description 598- Members 599- Members@odata.count 600 601### /redfish/v1/SessionService/Sessions/{SessionId}/ 602 603#### Session 604 605- ClientOriginIPAddress 606- Description 607- Oem 608- UserName 609 610### /redfish/v1/Systems/ 611 612#### ComputerSystemCollection 613 614- Members 615 - Should support one system 616- Members@odata.count 617 618### /redfish/v1/Systems/system/Bios/ 619 620#### Bios 621 622- Actions 623- Description 624- Links/ActiveSoftwareImage 625- Links/SoftwareImages 626- Links/SoftwareImages@odata.count 627 628### /redfish/v1/Systems/system/ 629 630#### ComputerSystem 631 632- Actions 633- AssetTag 634- Bios 635- BiosVersion 636- Boot 637- BootProgress 638- Description 639- HostWatchdogTimer 640- IdlePowerSaver/Enable 641- IdlePowerSaver/EnterUtilizationPercent 642- IdlePowerSaver/EnterDwellTimeSeconds 643- IdlePowerSaver/ExitUtilizationPercent 644- IdlePowerSaver/ExitDwellTimeSeconds 645- IndicatorLED 646- LastResetTime 647- Links/Chassis 648- Links/ManagedBy 649- LocationIndicatorActive 650- LogServices 651- Manufacturer 652- Memory 653- MemorySummary 654- Model 655- PartNumber 656- PowerMode 657- PowerRestorePolicy 658- PowerState 659- ProcessorSummary 660- Processors 661- SerialNumber 662- Status 663- Storage 664- SubModel 665- SystemType 666 667### /redfish/v1/Systems/system/EthernetInterfaces/ 668 669#### EthernetInterfaceCollection 670 671- Members 672- Members@odata.count 673- Description 674 675### /redfish/v1/Systems/system/FabricAdapters/ 676 677#### FabricAdapterCollection 678 679- Members 680- Members@odata.count 681 682### /redfish/v1/Systems/system/FabricAdapters/{FabricAdapterId}/ 683 684#### FabricAdapter 685 686- Location 687- Model 688- PartNumber 689- SerialNumber 690- SparePartNumber 691- Status 692 693### /redfish/v1/Systems/system/LogServices/ 694 695#### LogServiceCollection 696 697- Description 698- Members 699 - Should default to one member, named SEL 700- Members@odata.count 701 702### /redfish/v1/Systems/system/LogServices/EventLog/ 703 704#### LogService 705 706- Actions 707- DateTime 708- DateTimeLocalOffset 709- Description 710- Entries 711- OverWritePolicy 712 713### /redfish/v1/Systems/system/LogServices/EventLog/Entries/ 714 715#### LogEntryCollection 716 717- Description 718- Members 719- Members@odata.count 720 721### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/ 722 723#### LogEntry 724 725- AdditionalDataURI 726- Created 727- EntryType 728- Message 729- Modified 730- Resolved 731- Severity 732 733### /redfish/v1/Systems/system/LogServices/SEL/Entries/ 734 735#### LogEntryCollection 736 737- Members 738- Members@odata.count 739- Description 740- @odata.nextLink 741 742### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/ 743 744#### LogEntry 745 746- MessageArgs 747- Severity 748- SensorType 749- Message 750- MessageId 751- Created 752- EntryCode 753- EntryType 754 755### /redfish/v1/Systems/system/Memory/ 756 757#### MemoryCollection 758 759- Members 760- Members@odata.count 761 762### /redfish/v1/Systems/system/Memory/{MemoryId}/ 763 764#### Memory 765 766- AllowedSpeedsMHz 767- BaseModuleType 768- BusWidthBits 769- CapacityMiB 770- DataWidthBits 771- ErrorCorrection 772- FirmwareRevision 773- Manufacturer 774- Model 775- OperatingSpeedMhz 776- PartNumber 777- RankCount 778- SerialNumber 779- SparePartNumber 780- Status 781 782### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/ 783 784#### MemoryMetrics 785 786- Description 787- HealthData 788 789### /redfish/v1/Systems/system/PCIeDevices/ 790 791#### PCIeDeviceCollection 792 793- Description 794- Members 795- Members@odata.count 796 797### /redfish/v1/Systems/system/PCIeDevices/{PCIeDevice}/ 798 799- PCIeInterface 800 - LanesInUse 801 802### /redfish/v1/Systems/system/Processors/ 803 804#### ProcessorCollection 805 806- Members 807 - Should Support CPU1 and CPU2 for dual socket systems 808- Members@odata.count 809 810### /redfish/v1/Systems/system/Processors/{ProcessorId}/ 811 812#### Processor 813 814- InstructionSet 815- Manufacturer 816- MaxSpeedMHz 817- PartNumber 818- ProcessorArchitecture 819- ProcessorId 820- ProcessorType 821- SerialNumber 822- Socket 823- SparePartNumber 824- Status 825- TotalCores 826- TotalThreads 827- Version 828 829### /redfish/v1/Systems/system/Storage/ 830 831#### StorageCollection 832 833- Members 834- Members@odata.count 835 836### /redfish/v1/Systems/system/Storage/{StorageId}/ 837 838#### Storage 839 840- Drives 841- Drives@odata.count 842- Status 843 844### /redfish/v1/Systems/system/Storage/{StorageId}/Drive/{DriveId}/ 845 846#### Storage 847 848- CapacityBytes 849- Links 850- Status 851 852### /redfish/v1/TaskService/ 853 854#### TaskService 855 856- CompletedTaskOverWritePolicy 857- DateTime 858- LifeCycleEventOnTaskStateChange 859- ServiceEnabled 860- Status 861- Tasks 862 863### /redfish/v1/TaskService/Tasks/ 864 865#### TaskCollection 866 867- Members 868- Members@odata.count 869 870### /redfish/v1/TelemetryService/ 871 872#### TelemetryService 873 874- MaxReports 875- MetricReportDefinitions 876- MetricReports 877- MinCollectionInterval 878- Status 879- Triggers 880 881### /redfish/v1/TelemetryService/MetricReportDefinitions/ 882 883#### MetricReportDefinitionCollection 884 885- Members 886- Members@odata.count 887 888### /redfish/v1/TelemetryService/MetricReports/ 889 890#### MetricReportCollection 891 892- Members 893- Members@odata.count 894 895### /redfish/v1/TelemetryService/Triggers/ 896 897#### TriggersCollection 898 899- Members 900- Members@odata.count 901 902### /redfish/v1/UpdateService/ 903 904#### UpdateService 905 906- Actions 907- Description 908- FirmwareInventory 909- HttpPushUri 910- HttpPushUriOptions 911- MaxImageSizeBytes 912- ServiceEnabled 913 914### /redfish/v1/UpdateService/FirmwareInventory/ 915 916#### SoftwareInventoryCollection 917 918- Members 919 - Should Support BMC, ME, CPLD and BIOS 920- Members@odata.count 921 922### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/ 923 924#### SoftwareInventory 925 926- Description 927- RelatedItem@odata.count 928- RelatedItem 929- Status 930- Updateable 931- Version 932 933[1]: https://www.dmtf.org/standards/redfish 934[2]: https://redfish.dmtf.org/schemas/v1/LogService.json 935[3]: 936 https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md 937[4]: https://github.com/openbmc/phosphor-logging 938