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/ 275 276##### Power 277 278PowerControl Voltages PowerSupplies Redundancy 279 280#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName}/ 281 282##### PowerControl 283 284- MemberId 285- PowerConsumedWatts 286- PowerMetrics/IntervalInMin 287- PowerMetrics/MinConsumedWatts 288- PowerMetrics/MaxConsumedWatts 289- PowerMetrics/AverageConsumedWatts 290- RelatedItem 291 - Should list systems and related chassis 292 293#### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName}/ 294 295##### Voltage 296 297- MemberId 298- Status 299- ReadingVolts 300- UpperThresholdNonCritical 301- UpperThresholdCritical 302- LowerThresholdNonCritical 303- LowerThresholdCritical 304- MinReadingRange 305- MaxReadingRange 306- PhysicalContext 307- RelatedItem 308 309#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName}/ 310 311##### PowerSupply 312 313- MemberId 314- Status 315- LininputVoltage 316- Model 317- manufacturer 318- FirmwareVersion 319- SerialNumber 320- PartNumber 321- RelatedItem 322- Redundancy 323 324#### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName}/ 325 326##### Redundancy 327 328- MemberId 329- RedundancySet 330- Mode 331- Status 332- MinNumNeeded 333- MaxNumSupported 334 335#### /redfish/v1/EventService/ 336 337##### EventService 338 339- Actions 340- DeliveryRetryAttempts 341 - Defaults to 3 342- DeliveryRetryIntervalSeconds 343- EventFormatTypes 344- RegistryPrefixes 345- ResourceTypes 346- SSEFilterPropertiesSupported 347- ServiceEnabled 348- Status 349- Subscriptions 350 351#### /redfish/v1/EventService/Subscriptions/ 352 353##### EventDestinationCollection 354 355- Members 356- Members@odata.count 357 358#### /redfish/v1/EventService/Subscriptions/{EventName}/ 359 360##### EventDestination 361 362- Id 363- Destination 364- EventTypes 365- Context 366- OriginResources 367- Protocol 368 369#### /redfish/v1/JsonSchemas/ 370 371##### JsonSchemaFileCollection 372 373- Description 374- Members@odata.count 375- Members 376 377#### /redfish/v1/JsonSchemas/{Id}/ 378 379##### JsonSchemaFile 380 381- Schema 382- Description 383- Languages 384- Languages@odata.count 385- Location 386- Location@odata.count 387 388#### /redfish/v1/Managers/ 389 390##### ManagerCollection 391 392- Members 393- Members@odata.count 394 395#### /redfish/v1/Managers/bmc/ 396 397##### Manager 398 399- Actions 400- DateTime 401- DateTimeLocalOffset 402- Description 403- EthernetInterfaces 404- FirmwareVersion 405- GraphicalConsole 406- LastResetTime 407- Links/ActiveSoftwareImage 408- Links/ManagerForChassis 409- Links/ManagerForChassis@odata.count 410- Links/ManagerForServers 411- Links/ManagerForServers@odata.count 412- Links/ManagerInChassis 413- Links/SoftwareImages 414- Links/SoftwareImages@odata.count 415- LogServices 416- ManagerType 417- Manufacturer 418- Model 419- NetworkProtocol 420- Oem 421- PartNumber 422- PowerState 423- SerialConsole 424- SerialNumber 425- ServiceEntryPointUUID 426- SparePartNumber 427- Status 428- UUID 429 430#### /redfish/v1/Managers/bmc/EthernetInterfaces/ 431 432##### EthernetInterfaceCollection 433 434- Description 435- Members 436- Members@odata.count 437 438#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/ 439 440##### EthernetInterface 441 442- DHCPv4 443- DHCPv6 444- Description 445- FQDN 446- HostName 447- IPv4Addresses 448- IPv4StaticAddresses 449- IPv6AddressPolicyTable 450- IPv6Addresses 451- IPv6DefaultGateway 452- IPv6StaticAddresses 453- InterfaceEnabled 454- LinkStatus 455- MACAddress 456- NameServers 457- SpeedMbps 458- StaticNameServers 459- Status 460- VLANs 461 462#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/VLANs/ 463 464##### VLanNetworkInterfaceCollection 465 466- Members 467- Members@odata.count 468 469#### /redfish/v1/Managers/bmc/LogServices/ 470 471The [LogService][2] resource provides properties for monitoring and configuring 472events for the service or resource to which it is associated. 473 474Within bmcweb, the LogService object resides under the System resource. It 475tracks all events for the system. 476 477The LogService supports multiple log entry types. bmcweb has support for the 478`Event` type. This is the new Redfish-defined type. 479 480bmcweb supports two different implementations of the 481`LogService/EventLog/Entries` URI. 482 483The default implementation uses rsyslog to write Redfish events from the journal 484to the persistent /var/log/ filesystem. The bmcweb software then looks for these 485files in /var/log/ and returns the appropriate Redfish EventLog Entries for 486these. More details on adding events can be found [here][3] 487 488The other implementation of EventLog Entries can be enabled by compiling bmcweb 489with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause 490bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will 491then be translated to Redfish EventLog Entries. 492 493These two implementations do not work together, so choosing one will disable the 494other. 495 496#### /redfish/v1/Managers/bmc/LogServices/ 497 498##### LogServiceCollection 499 500- Description 501- Members 502- Members@odata.count 503 504#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/ 505 506##### LogService 507 508- Entries 509- OverWritePolicy 510- Actions 511- Status 512- DateTime 513- MaxNumberOfRecords 514 515#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/ 516 517##### LogEntry 518 519- Message 520- Created 521- EntryType 522 523#### /redfish/v1/Managers/bmc/NetworkProtocol/ 524 525##### ManagerNetworkProtocol 526 527- Description 528- FQDN 529- HTTP 530- HTTPS 531- HostName 532- IPMI 533- NTP 534- SSH 535- Status 536 537#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/ 538 539##### CertificateCollection 540 541- Description 542- Members 543- Members@odata.count 544 545#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/ 546 547##### Certificate 548 549- CertificateString 550- Description 551- Issuer 552- KeyUsage 553- Subject 554- ValidNotAfter 555- ValidNotBefore 556 557#### /redfish/v1/Managers/bmc/Truststore/Certificates/ 558 559##### CertificateCollection 560 561- Description 562- error 563 564#### /redfish/v1/Registries/ 565 566##### MessageRegistryFileCollection 567 568- Description 569- Members 570 - Should support Base, CommonMessages, and EventingMessages 571- Members@odata.count 572 573#### /redfish/v1/Registries/{MessageRegistryFileId}/ 574 575##### MessageRegistryFile 576 577- Description 578- Languages 579- Languages@odata.count 580- Location 581- Location@odata.count 582- Registry 583 584#### /redfish/v1/SessionService/ 585 586##### SessionService 587 588- Description 589- ServiceEnabled 590- SessionTimeout 591- Sessions 592 593#### /redfish/v1/SessionService/Sessions/ 594 595##### SessionCollection 596 597- Description 598- Members 599- Members@odata.count 600 601#### /redfish/v1/SessionService/Sessions/{SessionId}/ 602 603##### Session 604 605- ClientOriginIPAddress 606- Description 607- Oem 608- UserName 609 610#### /redfish/v1/Systems/ 611 612##### ComputerSystemCollection 613 614- Members 615 - Should support one system 616- Members@odata.count 617 618#### /redfish/v1/Systems/system/Bios/ 619 620##### Bios 621 622- Actions 623- Description 624- Links/ActiveSoftwareImage 625- Links/SoftwareImages 626- Links/SoftwareImages@odata.count 627 628#### /redfish/v1/Systems/system/ 629 630##### ComputerSystem 631 632- Actions 633- AssetTag 634- Bios 635- BiosVersion 636- Boot 637- BootProgress 638- Description 639- HostWatchdogTimer 640- IdlePowerSaver/Enable 641- IdlePowerSaver/EnterUtilizationPercent 642- IdlePowerSaver/EnterDwellTimeSeconds 643- IdlePowerSaver/ExitUtilizationPercent 644- IdlePowerSaver/ExitDwellTimeSeconds 645- IndicatorLED 646- LastResetTime 647- Links/Chassis 648- Links/ManagedBy 649- LocationIndicatorActive 650- LogServices 651- Manufacturer 652- Memory 653- MemorySummary 654- Model 655- PartNumber 656- PowerMode 657- PowerRestorePolicy 658- PowerState 659- ProcessorSummary 660- Processors 661- SerialNumber 662- Status 663- Storage 664- SubModel 665- SystemType 666 667#### /redfish/v1/Systems/system/EthernetInterfaces/ 668 669##### EthernetInterfaceCollection 670 671- Members 672- Members@odata.count 673- Description 674 675#### /redfish/v1/Systems/system/LogServices/ 676 677##### LogServiceCollection 678 679- Description 680- Members 681 - Should default to one member, named SEL 682- Members@odata.count 683 684#### /redfish/v1/Systems/system/LogServices/EventLog/ 685 686##### LogService 687 688- Actions 689- DateTime 690- DateTimeLocalOffset 691- Description 692- Entries 693- OverWritePolicy 694 695#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/ 696 697##### LogEntryCollection 698 699- Description 700- Members 701- Members@odata.count 702 703#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/ 704 705##### LogEntry 706 707- AdditionalDataURI 708- Created 709- EntryType 710- Message 711- Modified 712- Resolved 713- Severity 714 715#### /redfish/v1/Systems/system/LogServices/SEL/Entries/ 716 717##### LogEntryCollection 718 719- Members 720- Members@odata.count 721- Description 722- @odata.nextLink 723 724#### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/ 725 726##### LogEntry 727 728- MessageArgs 729- Severity 730- SensorType 731- Message 732- MessageId 733- Created 734- EntryCode 735- EntryType 736 737#### /redfish/v1/Systems/system/Memory/ 738 739##### MemoryCollection 740 741- Members 742- Members@odata.count 743 744#### /redfish/v1/Systems/system/Memory/{MemoryId}/ 745 746##### Memory 747 748- AllowedSpeedsMHz 749- BaseModuleType 750- BusWidthBits 751- CapacityMiB 752- DataWidthBits 753- ErrorCorrection 754- FirmwareRevision 755- Manufacturer 756- Model 757- OperatingSpeedMhz 758- PartNumber 759- RankCount 760- SerialNumber 761- SparePartNumber 762- Status 763 764#### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/ 765 766##### MemoryMetrics 767 768- Description 769- HealthData 770 771#### /redfish/v1/Systems/system/PCIeDevices/ 772 773##### PCIeDeviceCollection 774 775- Description 776- Members 777- Members@odata.count 778 779#### /redfish/v1/Systems/system/Processors/ 780 781##### ProcessorCollection 782 783- Members 784 - Should Support CPU1 and CPU2 for dual socket systems 785- Members@odata.count 786 787#### /redfish/v1/Systems/system/Processors/{ProcessorId}/ 788 789##### Processor 790 791- InstructionSet 792- Manufacturer 793- MaxSpeedMHz 794- PartNumber 795- ProcessorArchitecture 796- ProcessorId 797- ProcessorType 798- SerialNumber 799- Socket 800- SparePartNumber 801- Status 802- TotalCores 803- TotalThreads 804- Version 805 806#### /redfish/v1/Systems/system/Storage/ 807 808##### StorageCollection 809 810- Members 811- Members@odata.count 812 813#### /redfish/v1/Systems/system/Storage/{StorageId}/ 814 815##### Storage 816 817- Drives 818- Drives@odata.count 819- Status 820 821#### /redfish/v1/Systems/system/Storage/{StorageId}/Drive/{DriveId}/ 822 823##### Storage 824 825- CapacityBytes 826- Links 827- Status 828 829#### /redfish/v1/TaskService/ 830 831##### TaskService 832 833- CompletedTaskOverWritePolicy 834- DateTime 835- LifeCycleEventOnTaskStateChange 836- ServiceEnabled 837- Status 838- Tasks 839 840#### /redfish/v1/TaskService/Tasks/ 841 842##### TaskCollection 843 844- Members 845- Members@odata.count 846 847#### /redfish/v1/TelemetryService/ 848 849##### TelemetryService 850 851- MaxReports 852- MetricReportDefinitions 853- MetricReports 854- MinCollectionInterval 855- Status 856- Triggers 857 858#### /redfish/v1/TelemetryService/MetricReportDefinitions/ 859 860##### MetricReportDefinitionCollection 861 862- Members 863- Members@odata.count 864 865#### /redfish/v1/TelemetryService/MetricReports/ 866 867##### MetricReportCollection 868 869- Members 870- Members@odata.count 871 872#### /redfish/v1/TelemetryService/Triggers/ 873 874##### TriggersCollection 875 876- Members 877- Members@odata.count 878 879#### /redfish/v1/UpdateService/ 880 881##### UpdateService 882 883- Actions 884- Description 885- FirmwareInventory 886- HttpPushUri 887- HttpPushUriOptions 888- MaxImageSizeBytes 889- ServiceEnabled 890 891#### /redfish/v1/UpdateService/FirmwareInventory/ 892 893##### SoftwareInventoryCollection 894 895- Members 896 - Should Support BMC, ME, CPLD and BIOS 897- Members@odata.count 898 899#### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/ 900 901##### SoftwareInventory 902 903- Description 904- RelatedItem@odata.count 905- RelatedItem 906- Status 907- Updateable 908- Version 909 910[1]: https://www.dmtf.org/standards/redfish 911[2]: https://redfish.dmtf.org/schemas/v1/LogService.json 912[3]: 913 https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md 914[4]: https://github.com/openbmc/phosphor-logging 915