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