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