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