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