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