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