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