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/LogServices/ 668 669#### LogServiceCollection 670 671- Description 672- Members 673 - Should default to one member, named SEL 674- Members@odata.count 675 676### /redfish/v1/Systems/system/LogServices/EventLog/ 677 678#### LogService 679 680- Actions 681- DateTime 682- DateTimeLocalOffset 683- Description 684- Entries 685- OverWritePolicy 686 687### /redfish/v1/Systems/system/LogServices/EventLog/Entries/ 688 689#### LogEntryCollection 690 691- Description 692- Members 693- Members@odata.count 694 695### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/ 696 697#### LogEntry 698 699- AdditionalDataURI 700- Created 701- EntryType 702- Message 703- Modified 704- Resolved 705- Severity 706 707### /redfish/v1/Systems/system/LogServices/SEL/Entries/ 708 709#### LogEntryCollection 710 711- Members 712- Members@odata.count 713- Description 714- @odata.nextLink 715 716### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/ 717 718#### LogEntry 719 720- MessageArgs 721- Severity 722- SensorType 723- Message 724- MessageId 725- Created 726- EntryCode 727- EntryType 728 729### /redfish/v1/Systems/system/Memory/ 730 731#### MemoryCollection 732 733- Members 734- Members@odata.count 735 736### /redfish/v1/Systems/system/Memory/{MemoryId}/ 737 738#### Memory 739 740- AllowedSpeedsMHz 741- BaseModuleType 742- BusWidthBits 743- CapacityMiB 744- DataWidthBits 745- ErrorCorrection 746- FirmwareRevision 747- Manufacturer 748- Model 749- OperatingSpeedMhz 750- PartNumber 751- RankCount 752- SerialNumber 753- SparePartNumber 754- Status 755 756### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/ 757 758#### MemoryMetrics 759 760- Description 761- HealthData 762 763### /redfish/v1/Systems/system/PCIeDevices/ 764 765#### PCIeDeviceCollection 766 767- Description 768- Members 769- Members@odata.count 770 771### /redfish/v1/Systems/system/Processors/ 772 773#### ProcessorCollection 774 775- Members 776 - Should Support CPU1 and CPU2 for dual socket systems 777- Members@odata.count 778 779### /redfish/v1/Systems/system/Processors/{ProcessorId}/ 780 781#### Processor 782 783- InstructionSet 784- Manufacturer 785- MaxSpeedMHz 786- PartNumber 787- ProcessorArchitecture 788- ProcessorId 789- ProcessorType 790- SerialNumber 791- Socket 792- SparePartNumber 793- Status 794- TotalCores 795- TotalThreads 796- Version 797 798### /redfish/v1/Systems/system/Storage/ 799 800#### StorageCollection 801 802- Members 803- Members@odata.count 804 805### /redfish/v1/Systems/system/Storage/{StorageId}/ 806 807#### Storage 808 809- Drives 810- Drives@odata.count 811- Status 812 813### /redfish/v1/Systems/system/Storage/{StorageId}/Drive/{DriveId}/ 814 815#### Storage 816 817- CapacityBytes 818- Links 819- Status 820 821### /redfish/v1/TaskService/ 822 823#### TaskService 824 825- CompletedTaskOverWritePolicy 826- DateTime 827- LifeCycleEventOnTaskStateChange 828- ServiceEnabled 829- Status 830- Tasks 831 832### /redfish/v1/TaskService/Tasks/ 833 834#### TaskCollection 835 836- Members 837- Members@odata.count 838 839### /redfish/v1/TelemetryService/ 840 841#### TelemetryService 842 843- MaxReports 844- MetricReportDefinitions 845- MetricReports 846- MinCollectionInterval 847- Status 848- Triggers 849 850### /redfish/v1/TelemetryService/MetricReportDefinitions/ 851 852#### MetricReportDefinitionCollection 853 854- Members 855- Members@odata.count 856 857### /redfish/v1/TelemetryService/MetricReports/ 858 859#### MetricReportCollection 860 861- Members 862- Members@odata.count 863 864### /redfish/v1/TelemetryService/Triggers/ 865 866#### TriggersCollection 867 868- Members 869- Members@odata.count 870 871### /redfish/v1/UpdateService/ 872 873#### UpdateService 874 875- Actions 876- Description 877- FirmwareInventory 878- HttpPushUri 879- HttpPushUriOptions 880- MaxImageSizeBytes 881- ServiceEnabled 882 883### /redfish/v1/UpdateService/FirmwareInventory/ 884 885#### SoftwareInventoryCollection 886 887- Members 888 - Should Support BMC, ME, CPLD and BIOS 889- Members@odata.count 890 891### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/ 892 893#### SoftwareInventory 894 895- Description 896- RelatedItem@odata.count 897- RelatedItem 898- Status 899- Updateable 900- Version 901 902[1]: https://www.dmtf.org/standards/redfish 903[2]: https://redfish.dmtf.org/schemas/v1/LogService.json 904[3]: 905 https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md 906[4]: https://github.com/openbmc/phosphor-logging 907