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/Chassis/{ChassisId}/PowerSubsystem/PowerSupplies 370 371##### PowerSupplies 372 373- Description 374- Members 375- Members@odata.count 376 377#### /redfish/v1/Chassis/{ChassisId}/PowerSubsystem/PowerSupplies/{PowerSupplyId} 378 379##### PowerSupply 380 381### /redfish/v1/EventService/ 382 383#### EventService 384 385- Actions 386- DeliveryRetryAttempts 387 - Defaults to 3 388- DeliveryRetryIntervalSeconds 389- EventFormatTypes 390- RegistryPrefixes 391- ResourceTypes 392- SSEFilterPropertiesSupported 393- ServiceEnabled 394- Status 395- Subscriptions 396 397### /redfish/v1/EventService/Subscriptions/ 398 399#### EventDestinationCollection 400 401- Members 402- Members@odata.count 403 404### /redfish/v1/EventService/Subscriptions/{EventName}/ 405 406#### EventDestination 407 408- Id 409- Destination 410- EventTypes 411- Context 412- OriginResources 413- Protocol 414 415### /redfish/v1/JsonSchemas/ 416 417#### JsonSchemaFileCollection 418 419- Description 420- Members@odata.count 421- Members 422 423### /redfish/v1/JsonSchemas/{Id}/ 424 425#### JsonSchemaFile 426 427- Schema 428- Description 429- Languages 430- Languages@odata.count 431- Location 432- Location@odata.count 433 434### /redfish/v1/Managers/ 435 436#### ManagerCollection 437 438- Members 439- Members@odata.count 440 441### /redfish/v1/Managers/bmc/ 442 443#### Manager 444 445- Actions 446- DateTime 447- DateTimeLocalOffset 448- Description 449- EthernetInterfaces 450- FirmwareVersion 451- GraphicalConsole 452- LastResetTime 453- Links/ActiveSoftwareImage 454- Links/ManagerForChassis 455- Links/ManagerForChassis@odata.count 456- Links/ManagerForServers 457- Links/ManagerForServers@odata.count 458- Links/ManagerInChassis 459- Links/SoftwareImages 460- Links/SoftwareImages@odata.count 461- LogServices 462- ManagerType 463- Manufacturer 464- Model 465- NetworkProtocol 466- Oem 467- PartNumber 468- PowerState 469- SerialConsole 470- SerialNumber 471- ServiceEntryPointUUID 472- SparePartNumber 473- Status 474- UUID 475 476### /redfish/v1/Managers/bmc/EthernetInterfaces/ 477 478#### EthernetInterfaceCollection 479 480- Description 481- Members 482- Members@odata.count 483 484### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/ 485 486#### EthernetInterface 487 488- DHCPv4 489- DHCPv6 490- Description 491- FQDN 492- HostName 493- IPv4Addresses 494- IPv4StaticAddresses 495- IPv6AddressPolicyTable 496- IPv6Addresses 497- IPv6DefaultGateway 498- IPv6StaticAddresses 499- InterfaceEnabled 500- LinkStatus 501- MACAddress 502- NameServers 503- SpeedMbps 504- StaticNameServers 505- Status 506- VLANs 507 508### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/VLANs/ 509 510#### VLanNetworkInterfaceCollection 511 512- Members 513- Members@odata.count 514 515### /redfish/v1/Managers/bmc/LogServices/ 516 517The [LogService][2] resource provides properties for monitoring and configuring 518events for the service or resource to which it is associated. 519 520Within bmcweb, the LogService object resides under the System resource. It 521tracks all events for the system. 522 523The LogService supports multiple log entry types. bmcweb has support for the 524`Event` type. This is the new Redfish-defined type. 525 526bmcweb supports two different implementations of the 527`LogService/EventLog/Entries` URI. 528 529The default implementation uses rsyslog to write Redfish events from the journal 530to the persistent /var/log/ filesystem. The bmcweb software then looks for these 531files in /var/log/ and returns the appropriate Redfish EventLog Entries for 532these. More details on adding events can be found [here][3] 533 534The other implementation of EventLog Entries can be enabled by compiling bmcweb 535with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause 536bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will 537then be translated to Redfish EventLog Entries. 538 539These two implementations do not work together, so choosing one will disable the 540other. 541 542#### LogServiceCollection 543 544- Description 545- Members 546- Members@odata.count 547 548### /redfish/v1/Managers/bmc/LogServices/RedfishLog/ 549 550#### LogService 551 552- Entries 553- OverWritePolicy 554- Actions 555- Status 556- DateTime 557- MaxNumberOfRecords 558 559### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/ 560 561#### LogEntry 562 563- Message 564- Created 565- EntryType 566 567### /redfish/v1/Managers/bmc/ManagerDiagnosticData/ 568 569#### ManagerDiagnosticData 570 571- ServiceRootUptimeSeconds 572 573### /redfish/v1/Managers/bmc/NetworkProtocol/ 574 575#### ManagerNetworkProtocol 576 577- Description 578- FQDN 579- HTTP 580- HTTPS 581- HostName 582- IPMI 583- NTP 584- SSH 585- Status 586 587### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/ 588 589#### CertificateCollection 590 591- Description 592- Members 593- Members@odata.count 594 595### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/ 596 597#### Certificate 598 599- CertificateString 600- Description 601- Issuer 602- KeyUsage 603- Subject 604- ValidNotAfter 605- ValidNotBefore 606 607### /redfish/v1/Managers/bmc/Truststore/Certificates/ 608 609#### CertificateCollection 610 611- Description 612- error 613 614### /redfish/v1/Registries/ 615 616#### MessageRegistryFileCollection 617 618- Description 619- Members 620 - Should support Base, CommonMessages, and EventingMessages 621- Members@odata.count 622 623### /redfish/v1/Registries/{MessageRegistryFileId}/ 624 625#### MessageRegistryFile 626 627- Description 628- Languages 629- Languages@odata.count 630- Location 631- Location@odata.count 632- Registry 633 634### /redfish/v1/SessionService/ 635 636#### SessionService 637 638- Description 639- ServiceEnabled 640- SessionTimeout 641- Sessions 642 643### /redfish/v1/SessionService/Sessions/ 644 645#### SessionCollection 646 647- Description 648- Members 649- Members@odata.count 650 651### /redfish/v1/SessionService/Sessions/{SessionId}/ 652 653#### Session 654 655- ClientOriginIPAddress 656- Description 657- Oem 658- UserName 659 660### /redfish/v1/Systems/ 661 662#### ComputerSystemCollection 663 664- Members 665 - Should support one system 666- Members@odata.count 667 668### /redfish/v1/Systems/system/Bios/ 669 670#### Bios 671 672- Actions 673- Description 674- Links/ActiveSoftwareImage 675- Links/SoftwareImages 676- Links/SoftwareImages@odata.count 677 678### /redfish/v1/Systems/system/ 679 680#### ComputerSystem 681 682- Actions 683- AssetTag 684- Bios 685- BiosVersion 686- Boot 687- BootProgress 688- Description 689- HostWatchdogTimer 690- IdlePowerSaver/Enable 691- IdlePowerSaver/EnterUtilizationPercent 692- IdlePowerSaver/EnterDwellTimeSeconds 693- IdlePowerSaver/ExitUtilizationPercent 694- IdlePowerSaver/ExitDwellTimeSeconds 695- IndicatorLED 696- LastResetTime 697- Links/Chassis 698- Links/ManagedBy 699- LocationIndicatorActive 700- LogServices 701- Manufacturer 702- Memory 703- MemorySummary 704- Model 705- PartNumber 706- PowerMode 707- PowerRestorePolicy 708- PowerState 709- ProcessorSummary 710- Processors 711- SerialNumber 712- Status 713- Storage 714- SubModel 715- SystemType 716 717### /redfish/v1/Systems/system/EthernetInterfaces/ 718 719#### EthernetInterfaceCollection 720 721- Members 722- Members@odata.count 723- Description 724 725### /redfish/v1/Systems/system/FabricAdapters/ 726 727#### FabricAdapterCollection 728 729- Members 730- Members@odata.count 731 732### /redfish/v1/Systems/system/FabricAdapters/{FabricAdapterId}/ 733 734#### FabricAdapter 735 736- Location 737- Model 738- PartNumber 739- SerialNumber 740- SparePartNumber 741- Status 742 743### /redfish/v1/Systems/system/LogServices/ 744 745#### LogServiceCollection 746 747- Description 748- Members 749 - Should default to one member, named SEL 750- Members@odata.count 751 752### /redfish/v1/Systems/system/LogServices/EventLog/ 753 754#### LogService 755 756- Actions 757- DateTime 758- DateTimeLocalOffset 759- Description 760- Entries 761- OverWritePolicy 762 763### /redfish/v1/Systems/system/LogServices/EventLog/Entries/ 764 765#### LogEntryCollection 766 767- Description 768- Members 769- Members@odata.count 770 771### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/ 772 773#### LogEntry 774 775- AdditionalDataURI 776- Created 777- EntryType 778- Message 779- Modified 780- Resolved 781- Severity 782 783### /redfish/v1/Systems/system/LogServices/SEL/Entries/ 784 785#### LogEntryCollection 786 787- Members 788- Members@odata.count 789- Description 790- @odata.nextLink 791 792### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/ 793 794#### LogEntry 795 796- MessageArgs 797- Severity 798- SensorType 799- Message 800- MessageId 801- Created 802- EntryCode 803- EntryType 804 805### /redfish/v1/Systems/system/Memory/ 806 807#### MemoryCollection 808 809- Members 810- Members@odata.count 811 812### /redfish/v1/Systems/system/Memory/{MemoryId}/ 813 814#### Memory 815 816- AllowedSpeedsMHz 817- BaseModuleType 818- BusWidthBits 819- CapacityMiB 820- DataWidthBits 821- ErrorCorrection 822- FirmwareRevision 823- Manufacturer 824- Model 825- OperatingSpeedMhz 826- PartNumber 827- RankCount 828- SerialNumber 829- SparePartNumber 830- Status 831 832### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/ 833 834#### MemoryMetrics 835 836- Description 837- HealthData 838 839### /redfish/v1/Systems/system/PCIeDevices/ 840 841#### PCIeDeviceCollection 842 843- Description 844- Members 845- Members@odata.count 846 847### /redfish/v1/Systems/system/PCIeDevices/{PCIeDevice}/ 848 849- Manufacturer 850- Model 851- PartNumber 852- PCIeInterface 853 - DeviceType 854 - LanesInUse 855 - PCIeType 856- SerialNumber 857- SparePartNumber 858- Status 859 860### /redfish/v1/Systems/system/Processors/ 861 862#### ProcessorCollection 863 864- Members 865 - Should Support CPU1 and CPU2 for dual socket systems 866- Members@odata.count 867 868### /redfish/v1/Systems/system/Processors/{ProcessorId}/ 869 870#### Processor 871 872- InstructionSet 873- Manufacturer 874- MaxSpeedMHz 875- PartNumber 876- ProcessorArchitecture 877- ProcessorId 878- ProcessorType 879- SerialNumber 880- Socket 881- SparePartNumber 882- Status 883- ThrottleCauses 884- Throttled 885- TotalCores 886- TotalThreads 887- Version 888 889### /redfish/v1/Systems/system/Storage/ 890 891#### StorageCollection 892 893- Members 894- Members@odata.count 895 896### /redfish/v1/Systems/system/Storage/{StorageId}/ 897 898#### Storage 899 900- Drives 901- Drives@odata.count 902- Status 903 904### /redfish/v1/Systems/system/Storage/{StorageId}/Drive/{DriveId}/ 905 906#### Storage 907 908- CapacityBytes 909- EncryptionStatus 910- Links 911- Status 912 913### /redfish/v1/TaskService/ 914 915#### TaskService 916 917- CompletedTaskOverWritePolicy 918- DateTime 919- LifeCycleEventOnTaskStateChange 920- ServiceEnabled 921- Status 922- Tasks 923 924### /redfish/v1/TaskService/Tasks/ 925 926#### TaskCollection 927 928- Members 929- Members@odata.count 930 931### /redfish/v1/TelemetryService/ 932 933#### TelemetryService 934 935- MaxReports 936- MetricReportDefinitions 937- MetricReports 938- MinCollectionInterval 939- Status 940- Triggers 941- SupportedCollectionFunctions 942 943### /redfish/v1/TelemetryService/MetricReportDefinitions/ 944 945#### MetricReportDefinitionCollection 946 947- Members 948- Members@odata.count 949 950### /redfish/v1/TelemetryService/MetricReportDefinitions/{MetricReportDefinitionId}/ 951 952#### MetricReportDefinition 953 954- AppendLimit 955- Id 956- MetricReport 957- MetricReportDefinitionEnabled 958- MetricReportDefinitionType 959- Metrics 960- Name 961- ReportActions 962- ReportUpdates 963- Schedule 964- Status 965 966### /redfish/v1/TelemetryService/MetricReports/ 967 968#### MetricReportCollection 969 970- Members 971- Members@odata.count 972 973### /redfish/v1/TelemetryService/MetricReports/{MetricReportId}/ 974 975#### MetricReport 976 977- Id 978- MetricReportDefinition 979- MetricValues 980- Name 981- Timestamp 982 983### /redfish/v1/TelemetryService/Triggers/ 984 985#### TriggersCollection 986 987- Members 988- Members@odata.count 989 990### /redfish/v1/UpdateService/ 991 992#### UpdateService 993 994- Actions 995- Description 996- FirmwareInventory 997- HttpPushUri 998- HttpPushUriOptions 999- MaxImageSizeBytes 1000- ServiceEnabled 1001 1002### /redfish/v1/UpdateService/FirmwareInventory/ 1003 1004#### SoftwareInventoryCollection 1005 1006- Members 1007 - Should Support BMC, ME, CPLD and BIOS 1008- Members@odata.count 1009 1010### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/ 1011 1012#### SoftwareInventory 1013 1014- Description 1015- RelatedItem@odata.count 1016- RelatedItem 1017- Status 1018- Updateable 1019- Version 1020 1021[1]: https://www.dmtf.org/standards/redfish 1022[2]: https://redfish.dmtf.org/schemas/v1/LogService.json 1023[3]: 1024 https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md 1025[4]: https://github.com/openbmc/phosphor-logging 1026