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- StrictAccountTypes 115- UserName 116 117### /redfish/v1/AccountService/LDAP/Certificates/ 118 119#### CertificateCollection 120 121- Description 122- Members 123- Members@odata.count 124 125### /redfish/v1/AccountService/Roles/ 126 127#### RoleCollection 128 129- Description 130- Members 131 - By default will contain 3 roles, "Administrator", "Operator", and "ReadOnly" 132- Members@odata.count 133 134### /redfish/v1/AccountService/Roles/{RoleId}/ 135 136#### Role 137 138- AssignedPrivileges 139 - For the default roles, the following privileges will be assigned by default 140 - Administrator: Login, ConfigureManager, ConfigureUsers, ConfigureSelf, 141 ConfigureComponents 142 - Operator: Login, ConfigureComponents, ConfigureSelf 143 - ReadOnly: Login, ConfigureSelf 144- Description 145- IsPredefined 146 - Will be set to true for all default roles. If the given role is non-default, 147 or has been modified from default, will be marked as false. 148- OemPrivileges 149- RoleId 150 151### /redfish/v1/Cables/ 152 153#### CableCollection 154 155- Description 156- Members 157- Members@odata.count 158 159### /redfish/v1/Cables/{CableId}/ 160 161#### Cable 162 163- CableType 164- LengthMeters 165 166### /redfish/v1/CertificateService/ 167 168#### CertificateService 169 170- Actions 171- CertificateLocations 172- Description 173 174### /redfish/v1/CertificateService/CertificateLocations/ 175 176#### CertificateLocations 177 178- Description 179- Links/Certificates 180- Links/Certificates@odata.count 181 182### /redfish/v1/Chassis/ 183 184#### ChassisCollection 185 186- Members 187- Members@odata.count 188 189### /redfish/v1/Chassis/{ChassisId}/ 190 191#### Chassis 192 193- Actions 194- ChassisType 195- HotPluggable 196- Links/ComputerSystems 197- Links/ManagedBy 198- PCIeDevices 199- Power 200 - Shall be included if component contains voltage/current sensing components, 201 otherwise will be omitted. 202- PowerState 203- Sensors 204- Status 205- Thermal 206 - Shall be included if component contains temperature sensors, otherwise shall 207 be omitted. 208 209### /redfish/v1/Chassis/{ChassisId}/Drive/ 210 211#### Drive 212 213- Members (This is dependent on a entity manager association from Chassis to 214 Drives, The name of the association is `chassis<->drive`) 215 216### /redfish/v1/Chassis/{ChassisId}/Drive/{DriveId}/ 217 218#### Drive 219 220- Drives 221- Drives@odata.count 222- Status (this is dependant on a entity manager association from Chassis to 223 Drives) 224 225### /redfish/v1/Chassis/{ChassisId}/EnvironmentMetrics/ 226 227#### EnvironmentMetrics 228 229### /redfish/v1/Chassis/{ChassisId}/Power/ 230 231#### Power 232 233- PowerControl 234- PowerSupplies 235- Redundancy 236- Voltages 237 238### /redfish/v1/Chassis/{ChassisId}/Sensors/ 239 240#### SensorCollection 241 242- Description 243- Members 244- Members@odata.count 245 246### /redfish/v1/Chassis/{ChassisId}/Sensors/{Id}/ 247 248#### Sensor 249 250- Reading 251- ReadingRangeMax 252- ReadingRangeMin 253- ReadingType 254- ReadingUnits 255- Status 256- Thresholds 257 258### /redfish/v1/Chassis/{ChassisId}/Thermal/ 259 260#### Thermal 261 262- Fans 263- Redundancy 264- Temperatures 265 266### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName}/ 267 268#### Temperature 269 270- MemberId 271- Status 272- ReadingCelsius 273- UpperThresholdNonCritical 274- UpperThresholdCritical 275- LowerThresholdNonCritical 276- LowerThresholdCritical 277- MinReadingRange 278- MaxReadingRange _threshold fields only present if defined for sensor, 279 otherwise absent_ 280 281### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName}/ 282 283#### Fan 284 285- MemberId 286- Status 287- Reading 288- ReadingUnits 289- UpperThresholdNonCritical 290- UpperThresholdCritical 291- LowerThresholdNonCritical 292- LowerThresholdCritical 293- MinReadingRange 294- MaxReadingRange 295- Redundancy _threshold fields only present if defined for sensor, otherwise 296 absent_ 297 298### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName}/ 299 300#### Redundancy 301 302- MemberId 303- RedundancySet 304- Mode 305- Status 306- MinNumNeeded 307- MaxNumSupported 308 309### /redfish/v1/Chassis/{ChassisId}/ThermalSubsystem 310 311#### ThermalSubsystem 312 313- Status 314 315### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName}/ 316 317#### PowerControl 318 319- MemberId 320- PowerConsumedWatts 321- PowerMetrics/IntervalInMin 322- PowerMetrics/MinConsumedWatts 323- PowerMetrics/MaxConsumedWatts 324- PowerMetrics/AverageConsumedWatts 325- RelatedItem 326 - Should list systems and related chassis 327 328### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName}/ 329 330#### Voltage 331 332- MemberId 333- Status 334- ReadingVolts 335- UpperThresholdNonCritical 336- UpperThresholdCritical 337- LowerThresholdNonCritical 338- LowerThresholdCritical 339- MinReadingRange 340- MaxReadingRange 341- PhysicalContext 342- RelatedItem 343 344### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName}/ 345 346#### PowerSupply 347 348- MemberId 349- Status 350- LininputVoltage 351- Model 352- manufacturer 353- FirmwareVersion 354- SerialNumber 355- PartNumber 356- RelatedItem 357- Redundancy 358 359### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName}/ 360 361#### Redundancy 362 363- MemberId 364- RedundancySet 365- Mode 366- Status 367- MinNumNeeded 368- MaxNumSupported 369 370#### /redfish/v1/Chassis/{ChassisId}/PowerSubsystem/PowerSupplies 371 372##### PowerSupplies 373 374- Description 375- Members 376- Members@odata.count 377 378#### /redfish/v1/Chassis/{ChassisId}/PowerSubsystem/PowerSupplies/{PowerSupplyId} 379 380##### PowerSupply 381 382- Status 383 384### /redfish/v1/EventService/ 385 386#### EventService 387 388- Actions 389- DeliveryRetryAttempts 390 - Defaults to 3 391- DeliveryRetryIntervalSeconds 392- EventFormatTypes 393- RegistryPrefixes 394- ResourceTypes 395- SSEFilterPropertiesSupported 396- ServiceEnabled 397- Status 398- Subscriptions 399 400### /redfish/v1/EventService/Subscriptions/ 401 402#### EventDestinationCollection 403 404- Members 405- Members@odata.count 406 407### /redfish/v1/EventService/Subscriptions/{EventName}/ 408 409#### EventDestination 410 411- Id 412- Destination 413- EventTypes 414- Context 415- OriginResources 416- Protocol 417 418### /redfish/v1/JsonSchemas/ 419 420#### JsonSchemaFileCollection 421 422- Description 423- Members@odata.count 424- Members 425 426### /redfish/v1/JsonSchemas/{Id}/ 427 428#### JsonSchemaFile 429 430- Schema 431- Description 432- Languages 433- Languages@odata.count 434- Location 435- Location@odata.count 436 437### /redfish/v1/Managers/ 438 439#### ManagerCollection 440 441- Members 442- Members@odata.count 443 444### /redfish/v1/Managers/bmc/ 445 446#### Manager 447 448- Actions 449- DateTime 450- DateTimeLocalOffset 451- Description 452- EthernetInterfaces 453- FirmwareVersion 454- GraphicalConsole 455- LastResetTime 456- Links/ActiveSoftwareImage 457- Links/ManagerForChassis 458- Links/ManagerForChassis@odata.count 459- Links/ManagerForServers 460- Links/ManagerForServers@odata.count 461- Links/ManagerInChassis 462- Links/SoftwareImages 463- Links/SoftwareImages@odata.count 464- LogServices 465- ManagerType 466- Manufacturer 467- Model 468- NetworkProtocol 469- Oem 470- PartNumber 471- PowerState 472- SerialConsole 473- SerialNumber 474- ServiceEntryPointUUID 475- SparePartNumber 476- Status 477- UUID 478 479### /redfish/v1/Managers/bmc/EthernetInterfaces/ 480 481#### EthernetInterfaceCollection 482 483- Description 484- Members 485- Members@odata.count 486 487### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/ 488 489#### EthernetInterface 490 491- DHCPv4 492- DHCPv6 493- Description 494- EthernetInterfaceType 495- FQDN 496- HostName 497- IPv4Addresses 498- IPv4StaticAddresses 499- IPv6AddressPolicyTable 500- IPv6Addresses 501- IPv6DefaultGateway 502- IPv6StaticAddresses 503- InterfaceEnabled 504- Links/RelatedInterfaces 505- LinkStatus 506- MACAddress 507- NameServers 508- SpeedMbps 509- StaticNameServers 510- Status 511- VLAN/VLANEnable 512- VLAN/VLANId 513- VLAN/Tagged 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