1# Redfish # 2 3bmcweb provides an implementation of the [Redfish][1] API. This document 4details the Redfish schemas supported by bmcweb. This document also discusses 5some of the details of that implementation and different implementations 6available for certain areas. 7 8## Redfish Schema 9 10The redfish implementation shall pass the [Redfish Service 11Validator](https://github.com/DMTF/Redfish-Service-Validator "Validator") with 12no 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 [here](https://redfish.dmtf.org/schemas/) 18 19If using a previously unused schema, you will need to add it to the included 20schema list in scripts/update_schemas.py and run update_schemas.py. 21 22Fields common to all schemas 23 24- @odata.id 25- @odata.type 26- Id 27- Name 28 29 30#### /redfish/v1/ 31##### ServiceRoot 32- AccountService 33- CertificateService 34- Chassis 35- EventService 36- JsonSchemas 37- Links/Sessions 38- Managers 39- RedfishVersion 40- Registries 41- SessionService 42- Systems 43- Tasks 44- TelemetryService 45- UUID 46- UpdateService 47 48#### /redfish/v1/AccountService/ 49##### AccountService 50- AccountLockoutDuration 51- AccountLockoutThreshold 52- Accounts 53- Description 54- LDAP 55- MaxPasswordLength 56- MinPasswordLength 57- Oem/OpenBMC/AuthMethods/BasicAuth 58- Oem/OpenBMC/AuthMethods/Cookie 59- Oem/OpenBMC/AuthMethods/SessionToken 60- Oem/OpenBMC/AuthMethods/TLS 61- Oem/OpenBMC/AuthMethods/XToken 62- Roles 63- ServiceEnabled 64 65#### /redfish/v1/AccountService/Accounts/ 66##### ManagerAccountCollection 67- Description 68- Members 69- Members@odata.count 70 71#### /redfish/v1/AccountService/Accounts/{ManagerAccountId}/ 72##### ManagerAccount 73- AccountTypes 74- Description 75- Enabled 76- Links/Role 77- Locked 78- Locked@Redfish.AllowableValues 79- Password 80- PasswordChangeRequired 81- RoleId 82- UserName 83 84#### /redfish/v1/AccountService/LDAP/Certificates/ 85##### CertificateCollection 86- Description 87- Members 88- Members@odata.count 89 90#### /redfish/v1/AccountService/Roles/ 91##### RoleCollection 92- Description 93- Members 94 - By default will contain 3 roles, "Administrator", "Operator", and "ReadOnly" 95- Members@odata.count 96 97#### /redfish/v1/AccountService/Roles/{RoleId}/ 98##### Role 99- AssignedPrivileges 100 - For the default roles, the following privileges will be assigned by 101 default 102 - Administrator: Login, ConfigureManager, ConfigureUsers, ConfigureSelf, 103 ConfigureComponents 104 - Operator: Login, ConfigureComponents, ConfigureSelf 105 - ReadOnly: Login, ConfigureSelf 106- Description 107- IsPredefined 108 - Will be set to true for all default roles. If the given role is 109 non-default, or has been modified from default, will be marked as false. 110- OemPrivileges 111- RoleId 112 113#### /redfish/v1/CertificateService/ 114##### CertificateService 115- Actions 116- CertificateLocations 117- Description 118 119#### /redfish/v1/CertificateService/CertificateLocations/ 120##### CertificateLocations 121- Description 122- Links/Certificates 123- Links/Certificates@odata.count 124 125#### /redfish/v1/Chassis/ 126##### ChassisCollection 127- Members 128- Members@odata.count 129 130#### /redfish/v1/Chassis/{ChassisId}/ 131##### Chassis 132- Actions 133- ChassisType 134- Links/ComputerSystems 135- Links/ManagedBy 136- PCIeDevices 137- Power 138 - Shall be included if component contains voltage/current sensing 139 components, otherwise will be omitted. 140- PowerState 141- Sensors 142- Status 143- Thermal 144 - Shall be included if component contains temperature sensors, otherwise 145 shall be omitted. 146 147#### /redfish/v1/Chassis/{ChassisId}/Power/ 148##### Power 149- PowerControl 150- PowerSupplies 151- Redundancy 152- Voltages 153 154#### /redfish/v1/Chassis/{ChassisId}/Sensors/ 155##### SensorCollection 156- Description 157- Members 158- Members@odata.count 159 160#### /redfish/v1/Chassis/{ChassisId}/Sensors/{Id}/ 161##### Sensor 162- Reading 163- ReadingRangeMax 164- ReadingRangeMin 165- ReadingType 166- ReadingUnits 167- Status 168- Thresholds 169 170#### /redfish/v1/Chassis/{ChassisId}/Thermal/ 171##### Thermal 172- Fans 173- Redundancy 174- Temperatures 175 176#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName}/ 177##### Temperature 178- MemberId 179- Status 180- ReadingCelsius 181- UpperThresholdNonCritical 182- UpperThresholdCritical 183- LowerThresholdNonCritical 184- LowerThresholdCritical 185- MinReadingRange 186- MaxReadingRange 187*threshold fields only present if defined for sensor, otherwise absent* 188 189#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName}/ 190##### Fan 191- MemberId 192- Status 193- Reading 194- ReadingUnits 195- UpperThresholdNonCritical 196- UpperThresholdCritical 197- LowerThresholdNonCritical 198- LowerThresholdCritical 199- MinReadingRange 200- MaxReadingRange 201- Redundancy 202*threshold fields only present if defined for sensor, otherwise absent* 203 204#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName}/ 205##### Redundancy 206- MemberId 207- RedundancySet 208- Mode 209- Status 210- MinNumNeeded 211- MaxNumSupported 212 213#### /redfish/v1/Chassis/{ChassisId}/Power/ 214##### Power 215PowerControl Voltages PowerSupplies Redundancy 216 217#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName}/ 218##### PowerControl 219- MemberId 220- PowerConsumedWatts 221- PowerMetrics/IntervalInMin 222- PowerMetrics/MinConsumedWatts 223- PowerMetrics/MaxConsumedWatts 224- PowerMetrics/AverageConsumedWatts 225- RelatedItem 226 - Should list systems and related chassis 227 228#### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName}/ 229##### Voltage 230- MemberId 231- Status 232- ReadingVolts 233- UpperThresholdNonCritical 234- UpperThresholdCritical 235- LowerThresholdNonCritical 236- LowerThresholdCritical 237- MinReadingRange 238- MaxReadingRange 239- PhysicalContext 240- RelatedItem 241 242#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName}/ 243##### PowerSupply 244- MemberId 245- Status 246- LininputVoltage 247- Model 248- manufacturer 249- FirmwareVersion 250- SerialNumber 251- PartNumber 252- RelatedItem 253- Redundancy 254 255#### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName}/ 256##### Redundancy 257- MemberId 258- RedundancySet 259- Mode 260- Status 261- MinNumNeeded 262- MaxNumSupported 263 264#### /redfish/v1/EventService/ 265##### EventService 266- Actions 267- DeliveryRetryAttempts 268 - Defaults to 3 269- DeliveryRetryIntervalSeconds 270- EventFormatTypes 271- RegistryPrefixes 272- ResourceTypes 273- SSEFilterPropertiesSupported 274- ServiceEnabled 275- Status 276- Subscriptions 277 278#### /redfish/v1/EventService/Subscriptions/ 279##### EventDestinationCollection 280- Members 281- Members@odata.count 282 283#### /redfish/v1/EventService/Subscriptions/{EventName}/ 284##### EventDestination 285- Id 286- Destination 287- EventTypes 288- Context 289- OriginResources 290- Protocol 291 292#### /redfish/v1/JsonSchemas/ 293##### JsonSchemaFileCollection 294- Description 295- Members@odata.count 296- Members 297 298#### /redfish/v1/JsonSchemas/{Id}/ 299##### JsonSchemaFile 300- Schema 301- Description 302- Languages 303- Languages@odata.count 304- Location 305- Location@odata.count 306 307#### /redfish/v1/Managers/ 308##### ManagerCollection 309- Members 310- Members@odata.count 311 312#### /redfish/v1/Managers/bmc/ 313##### Manager 314- Actions 315- DateTime 316- DateTimeLocalOffset 317- Description 318- EthernetInterfaces 319- FirmwareVersion 320- GraphicalConsole 321- LastResetTime 322- Links/ActiveSoftwareImage 323- Links/ManagerForChassis 324- Links/ManagerForChassis@odata.count 325- Links/ManagerForServers 326- Links/ManagerForServers@odata.count 327- Links/ManagerInChassis 328- Links/SoftwareImages 329- Links/SoftwareImages@odata.count 330- LogServices 331- ManagerType 332- Manufacturer 333- Model 334- NetworkProtocol 335- Oem 336- PartNumber 337- PowerState 338- SerialConsole 339- SerialNumber 340- ServiceEntryPointUUID 341- SparePartNumber 342- Status 343- UUID 344 345#### /redfish/v1/Managers/bmc/EthernetInterfaces/ 346##### EthernetInterfaceCollection 347- Description 348- Members 349- Members@odata.count 350 351#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/ 352##### EthernetInterface 353- DHCPv4 354- DHCPv6 355- Description 356- FQDN 357- HostName 358- IPv4Addresses 359- IPv4StaticAddresses 360- IPv6AddressPolicyTable 361- IPv6Addresses 362- IPv6DefaultGateway 363- IPv6StaticAddresses 364- InterfaceEnabled 365- LinkStatus 366- MACAddress 367- NameServers 368- SpeedMbps 369- StaticNameServers 370- Status 371- VLANs 372 373#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/VLANs/ 374##### VLanNetworkInterfaceCollection 375- Members 376- Members@odata.count 377 378#### /redfish/v1/Managers/bmc/LogServices/ 379 380The [LogService][2] resource provides properties for monitoring and configuring 381events for the service or resource to which it is associated. 382 383Within bmcweb, the LogService object resides under the System resource. It 384tracks all events for the system. 385 386The LogService supports multiple log entry types. bmcweb has support for 387the `Event` type. This is the new Redfish-defined type. 388 389bmcweb supports two different implementations of the 390`LogService/EventLog/Entries` URI. 391 392The default implementation uses rsyslog to write Redfish events from the journal 393to the persistent /var/log/ filesystem. The bmcweb software then looks for these 394files in /var/log/ and returns the appropriate Redfish EventLog Entries for 395these. More details on adding events can be found [here][3] 396 397The other implementation of EventLog Entries can be enabled by compiling bmcweb 398with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause 399bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will 400then be translated to Redfish EventLog Entries. 401 402These two implementations do not work together, so choosing one will disable 403the other. 404 405#### /redfish/v1/Managers/bmc/LogServices/ 406##### LogServiceCollection 407- Description 408- Members 409- Members@odata.count 410 411#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/ 412##### LogService 413- Entries 414- OverWritePolicy 415- Actions 416- Status 417- DateTime 418- MaxNumberOfRecords 419 420#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/ 421##### LogEntry 422- Message 423- Created 424- EntryType 425 426#### /redfish/v1/Managers/bmc/NetworkProtocol/ 427##### ManagerNetworkProtocol 428- Description 429- FQDN 430- HTTP 431- HTTPS 432- HostName 433- IPMI 434- NTP 435- SSH 436- Status 437 438#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/ 439##### CertificateCollection 440- Description 441- Members 442- Members@odata.count 443 444#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/ 445##### Certificate 446- CertificateString 447- Description 448- Issuer 449- KeyUsage 450- Subject 451- ValidNotAfter 452- ValidNotBefore 453 454#### /redfish/v1/Managers/bmc/Truststore/Certificates/ 455##### CertificateCollection 456- Description 457- error 458 459 460#### /redfish/v1/Registries/ 461##### MessageRegistryFileCollection 462- Description 463- Members 464 - Should support Base, CommonMessages, and EventingMessages 465- Members@odata.count 466 467#### /redfish/v1/Registries/{MessageRegistryFileId}/ 468##### MessageRegistryFile 469- Description 470- Languages 471- Languages@odata.count 472- Location 473- Location@odata.count 474- Registry 475 476#### /redfish/v1/SessionService/ 477##### SessionService 478- Description 479- ServiceEnabled 480- SessionTimeout 481- Sessions 482 483#### /redfish/v1/SessionService/Sessions/ 484##### SessionCollection 485- Description 486- Members 487- Members@odata.count 488 489#### /redfish/v1/SessionService/Sessions/{SessionId}/ 490##### Session 491- ClientOriginIPAddress 492- Description 493- Oem 494- UserName 495 496#### /redfish/v1/Systems/ 497##### ComputerSystemCollection 498- Members 499 - Should support one system 500- Members@odata.count 501 502#### /redfish/v1/Systems/system/Bios/ 503##### Bios 504- Actions 505- Description 506- Links/ActiveSoftwareImage 507- Links/SoftwareImages 508- Links/SoftwareImages@odata.count 509 510#### /redfish/v1/Systems/system/ 511##### ComputerSystem 512- Actions 513- AssetTag 514- Bios 515- BiosVersion 516- Boot 517- BootProgress 518- Description 519- HostWatchdogTimer 520- IndicatorLED 521- LastResetTime 522- Links/Chassis 523- Links/ManagedBy 524- LocationIndicatorActive 525- LogServices 526- Manufacturer 527- Memory 528- MemorySummary 529- Model 530- PartNumber 531- PowerMode 532- PowerRestorePolicy 533- PowerState 534- ProcessorSummary 535- Processors 536- SerialNumber 537- Status 538- Storage 539- SubModel 540- SystemType 541 542#### /redfish/v1/Systems/system/EthernetInterfaces/ 543##### EthernetInterfaceCollection 544- Members 545- Members@odata.count 546- Description 547 548#### /redfish/v1/Systems/system/LogServices/ 549##### LogServiceCollection 550- Description 551- Members 552 - Should default to one member, named SEL 553- Members@odata.count 554 555#### /redfish/v1/Systems/system/LogServices/EventLog/ 556##### LogService 557- Actions 558- DateTime 559- DateTimeLocalOffset 560- Description 561- Entries 562- OverWritePolicy 563 564#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/ 565##### LogEntryCollection 566- Description 567- Members 568- Members@odata.count 569 570#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/ 571##### LogEntry 572- AdditionalDataURI 573- Created 574- EntryType 575- Message 576- Modified 577- Resolved 578- Severity 579 580#### /redfish/v1/Systems/system/LogServices/SEL/Entries/ 581##### LogEntryCollection 582- Members 583- Members@odata.count 584- Description 585- @odata.nextLink 586 587#### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/ 588##### LogEntry 589- MessageArgs 590- Severity 591- SensorType 592- Message 593- MessageId 594- Created 595- EntryCode 596- EntryType 597 598#### /redfish/v1/Systems/system/Memory/ 599##### MemoryCollection 600- Members 601- Members@odata.count 602 603#### /redfish/v1/Systems/system/Memory/{MemoryId}/ 604##### Memory 605- AllowedSpeedsMHz 606- BaseModuleType 607- BusWidthBits 608- CapacityMiB 609- DataWidthBits 610- ErrorCorrection 611- FirmwareRevision 612- Manufacturer 613- Model 614- OperatingSpeedMhz 615- PartNumber 616- RankCount 617- SerialNumber 618- SparePartNumber 619- Status 620 621#### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/ 622##### MemoryMetrics 623- Description 624- HealthData 625 626#### /redfish/v1/Systems/system/PCIeDevices/ 627##### PCIeDeviceCollection 628- Description 629- Members 630- Members@odata.count 631 632#### /redfish/v1/Systems/system/Processors/ 633##### ProcessorCollection 634- Members 635 - Should Support CPU1 and CPU2 for dual socket systems 636- Members@odata.count 637 638#### /redfish/v1/Systems/system/Processors/{ProcessorId}/ 639##### Processor 640- InstructionSet 641- Manufacturer 642- MaxSpeedMHz 643- PartNumber 644- ProcessorArchitecture 645- ProcessorId 646- ProcessorType 647- SerialNumber 648- Socket 649- SparePartNumber 650- Status 651- TotalCores 652- TotalThreads 653- Version 654 655#### /redfish/v1/Systems/system/Storage/ 656##### StorageCollection 657- Members 658- Members@odata.count 659 660#### /redfish/v1/Systems/system/Storage/{StorageId}/ 661##### Storage 662- Drives 663- Drives@odata.count 664- Status 665 666#### /redfish/v1/TaskService/ 667##### TaskService 668- CompletedTaskOverWritePolicy 669- DateTime 670- LifeCycleEventOnTaskStateChange 671- ServiceEnabled 672- Status 673- Tasks 674 675#### /redfish/v1/TaskService/Tasks/ 676##### TaskCollection 677- Members 678- Members@odata.count 679 680#### /redfish/v1/TelemetryService/ 681##### TelemetryService 682- MaxReports 683- MetricReportDefinitions 684- MetricReports 685- MinCollectionInterval 686- Status 687 688#### /redfish/v1/TelemetryService/MetricReportDefinitions/ 689##### MetricReportDefinitionCollection 690- Members 691- Members@odata.count 692 693#### /redfish/v1/TelemetryService/MetricReports/ 694##### MetricReportCollection 695- Members 696- Members@odata.count 697 698#### /redfish/v1/UpdateService/ 699##### UpdateService 700- Actions 701- Description 702- FirmwareInventory 703- HttpPushUri 704- HttpPushUriOptions 705- MaxImageSizeBytes 706- ServiceEnabled 707 708#### /redfish/v1/UpdateService/FirmwareInventory/ 709##### SoftwareInventoryCollection 710- Members 711 - Should Support BMC, ME, CPLD and BIOS 712- Members@odata.count 713 714#### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/ 715##### SoftwareInventory 716- Description 717- RelatedItem@odata.count 718- RelatedItem 719- Status 720- Updateable 721- Version 722 723[1]: https://www.dmtf.org/standards/redfish 724[2]: https://redfish.dmtf.org/schemas/v1/LogService.json 725[3]: https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md 726[4]: https://github.com/openbmc/phosphor-logging 727