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}/Drive/ 148#### Drive 149- Members 150(This is dependent on a entity manager association from 151Chassis to Drives, The name of the association is "chassis<->drive") 152 153#### /redfish/v1/Chassis/{ChassisId}/Drive/{DriveId}/ 154#### Drive 155- Drives 156- Drives@odata.count 157- Status 158(this is dependant on a entity manager association from Chassis to Drives) 159 160#### /redfish/v1/Chassis/{ChassisId}/Power/ 161##### Power 162- PowerControl 163- PowerSupplies 164- Redundancy 165- Voltages 166 167#### /redfish/v1/Chassis/{ChassisId}/Sensors/ 168##### SensorCollection 169- Description 170- Members 171- Members@odata.count 172 173#### /redfish/v1/Chassis/{ChassisId}/Sensors/{Id}/ 174##### Sensor 175- Reading 176- ReadingRangeMax 177- ReadingRangeMin 178- ReadingType 179- ReadingUnits 180- Status 181- Thresholds 182 183#### /redfish/v1/Chassis/{ChassisId}/Thermal/ 184##### Thermal 185- Fans 186- Redundancy 187- Temperatures 188 189#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName}/ 190##### Temperature 191- MemberId 192- Status 193- ReadingCelsius 194- UpperThresholdNonCritical 195- UpperThresholdCritical 196- LowerThresholdNonCritical 197- LowerThresholdCritical 198- MinReadingRange 199- MaxReadingRange 200*threshold fields only present if defined for sensor, otherwise absent* 201 202#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName}/ 203##### Fan 204- MemberId 205- Status 206- Reading 207- ReadingUnits 208- UpperThresholdNonCritical 209- UpperThresholdCritical 210- LowerThresholdNonCritical 211- LowerThresholdCritical 212- MinReadingRange 213- MaxReadingRange 214- Redundancy 215*threshold fields only present if defined for sensor, otherwise absent* 216 217#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName}/ 218##### Redundancy 219- MemberId 220- RedundancySet 221- Mode 222- Status 223- MinNumNeeded 224- MaxNumSupported 225 226#### /redfish/v1/Chassis/{ChassisId}/Power/ 227##### Power 228PowerControl Voltages PowerSupplies Redundancy 229 230#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName}/ 231##### PowerControl 232- MemberId 233- PowerConsumedWatts 234- PowerMetrics/IntervalInMin 235- PowerMetrics/MinConsumedWatts 236- PowerMetrics/MaxConsumedWatts 237- PowerMetrics/AverageConsumedWatts 238- RelatedItem 239 - Should list systems and related chassis 240 241#### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName}/ 242##### Voltage 243- MemberId 244- Status 245- ReadingVolts 246- UpperThresholdNonCritical 247- UpperThresholdCritical 248- LowerThresholdNonCritical 249- LowerThresholdCritical 250- MinReadingRange 251- MaxReadingRange 252- PhysicalContext 253- RelatedItem 254 255#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName}/ 256##### PowerSupply 257- MemberId 258- Status 259- LininputVoltage 260- Model 261- manufacturer 262- FirmwareVersion 263- SerialNumber 264- PartNumber 265- RelatedItem 266- Redundancy 267 268#### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName}/ 269##### Redundancy 270- MemberId 271- RedundancySet 272- Mode 273- Status 274- MinNumNeeded 275- MaxNumSupported 276 277#### /redfish/v1/Chassis/{ChassisId}/PCIeSlots/ 278- Members 279 280#### /redfish/v1/Chassis/{ChassisId}/PCIeSlots/{SlotName} 281- HotPluggable 282- Lanes 283- PCIeType 284- SlotType 285 286#### /redfish/v1/EventService/ 287##### EventService 288- Actions 289- DeliveryRetryAttempts 290 - Defaults to 3 291- DeliveryRetryIntervalSeconds 292- EventFormatTypes 293- RegistryPrefixes 294- ResourceTypes 295- SSEFilterPropertiesSupported 296- ServiceEnabled 297- Status 298- Subscriptions 299 300#### /redfish/v1/EventService/Subscriptions/ 301##### EventDestinationCollection 302- Members 303- Members@odata.count 304 305#### /redfish/v1/EventService/Subscriptions/{EventName}/ 306##### EventDestination 307- Id 308- Destination 309- EventTypes 310- Context 311- OriginResources 312- Protocol 313 314#### /redfish/v1/JsonSchemas/ 315##### JsonSchemaFileCollection 316- Description 317- Members@odata.count 318- Members 319 320#### /redfish/v1/JsonSchemas/{Id}/ 321##### JsonSchemaFile 322- Schema 323- Description 324- Languages 325- Languages@odata.count 326- Location 327- Location@odata.count 328 329#### /redfish/v1/Managers/ 330##### ManagerCollection 331- Members 332- Members@odata.count 333 334#### /redfish/v1/Managers/bmc/ 335##### Manager 336- Actions 337- DateTime 338- DateTimeLocalOffset 339- Description 340- EthernetInterfaces 341- FirmwareVersion 342- GraphicalConsole 343- LastResetTime 344- Links/ActiveSoftwareImage 345- Links/ManagerForChassis 346- Links/ManagerForChassis@odata.count 347- Links/ManagerForServers 348- Links/ManagerForServers@odata.count 349- Links/ManagerInChassis 350- Links/SoftwareImages 351- Links/SoftwareImages@odata.count 352- LogServices 353- ManagerType 354- Manufacturer 355- Model 356- NetworkProtocol 357- Oem 358- PartNumber 359- PowerState 360- SerialConsole 361- SerialNumber 362- ServiceEntryPointUUID 363- SparePartNumber 364- Status 365- UUID 366 367#### /redfish/v1/Managers/bmc/EthernetInterfaces/ 368##### EthernetInterfaceCollection 369- Description 370- Members 371- Members@odata.count 372 373#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/ 374##### EthernetInterface 375- DHCPv4 376- DHCPv6 377- Description 378- FQDN 379- HostName 380- IPv4Addresses 381- IPv4StaticAddresses 382- IPv6AddressPolicyTable 383- IPv6Addresses 384- IPv6DefaultGateway 385- IPv6StaticAddresses 386- InterfaceEnabled 387- LinkStatus 388- MACAddress 389- NameServers 390- SpeedMbps 391- StaticNameServers 392- Status 393- VLANs 394 395#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/VLANs/ 396##### VLanNetworkInterfaceCollection 397- Members 398- Members@odata.count 399 400#### /redfish/v1/Managers/bmc/LogServices/ 401 402The [LogService][2] resource provides properties for monitoring and configuring 403events for the service or resource to which it is associated. 404 405Within bmcweb, the LogService object resides under the System resource. It 406tracks all events for the system. 407 408The LogService supports multiple log entry types. bmcweb has support for 409the `Event` type. This is the new Redfish-defined type. 410 411bmcweb supports two different implementations of the 412`LogService/EventLog/Entries` URI. 413 414The default implementation uses rsyslog to write Redfish events from the journal 415to the persistent /var/log/ filesystem. The bmcweb software then looks for these 416files in /var/log/ and returns the appropriate Redfish EventLog Entries for 417these. More details on adding events can be found [here][3] 418 419The other implementation of EventLog Entries can be enabled by compiling bmcweb 420with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause 421bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will 422then be translated to Redfish EventLog Entries. 423 424These two implementations do not work together, so choosing one will disable 425the other. 426 427#### /redfish/v1/Managers/bmc/LogServices/ 428##### LogServiceCollection 429- Description 430- Members 431- Members@odata.count 432 433#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/ 434##### LogService 435- Entries 436- OverWritePolicy 437- Actions 438- Status 439- DateTime 440- MaxNumberOfRecords 441 442#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/ 443##### LogEntry 444- Message 445- Created 446- EntryType 447 448#### /redfish/v1/Managers/bmc/NetworkProtocol/ 449##### ManagerNetworkProtocol 450- Description 451- FQDN 452- HTTP 453- HTTPS 454- HostName 455- IPMI 456- NTP 457- SSH 458- Status 459 460#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/ 461##### CertificateCollection 462- Description 463- Members 464- Members@odata.count 465 466#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/ 467##### Certificate 468- CertificateString 469- Description 470- Issuer 471- KeyUsage 472- Subject 473- ValidNotAfter 474- ValidNotBefore 475 476#### /redfish/v1/Managers/bmc/Truststore/Certificates/ 477##### CertificateCollection 478- Description 479- error 480 481 482#### /redfish/v1/Registries/ 483##### MessageRegistryFileCollection 484- Description 485- Members 486 - Should support Base, CommonMessages, and EventingMessages 487- Members@odata.count 488 489#### /redfish/v1/Registries/{MessageRegistryFileId}/ 490##### MessageRegistryFile 491- Description 492- Languages 493- Languages@odata.count 494- Location 495- Location@odata.count 496- Registry 497 498#### /redfish/v1/SessionService/ 499##### SessionService 500- Description 501- ServiceEnabled 502- SessionTimeout 503- Sessions 504 505#### /redfish/v1/SessionService/Sessions/ 506##### SessionCollection 507- Description 508- Members 509- Members@odata.count 510 511#### /redfish/v1/SessionService/Sessions/{SessionId}/ 512##### Session 513- ClientOriginIPAddress 514- Description 515- Oem 516- UserName 517 518#### /redfish/v1/Systems/ 519##### ComputerSystemCollection 520- Members 521 - Should support one system 522- Members@odata.count 523 524#### /redfish/v1/Systems/system/Bios/ 525##### Bios 526- Actions 527- Description 528- Links/ActiveSoftwareImage 529- Links/SoftwareImages 530- Links/SoftwareImages@odata.count 531 532#### /redfish/v1/Systems/system/ 533##### ComputerSystem 534- Actions 535- AssetTag 536- Bios 537- BiosVersion 538- Boot 539- BootProgress 540- Description 541- HostWatchdogTimer 542- IdlePowerSaver/Enable 543- IdlePowerSaver/EnterUtilizationPercent 544- IdlePowerSaver/EnterDwellTimeSeconds 545- IdlePowerSaver/ExitUtilizationPercent 546- IdlePowerSaver/ExitDwellTimeSeconds 547- IndicatorLED 548- LastResetTime 549- Links/Chassis 550- Links/ManagedBy 551- LocationIndicatorActive 552- LogServices 553- Manufacturer 554- Memory 555- MemorySummary 556- Model 557- PartNumber 558- PowerMode 559- PowerRestorePolicy 560- PowerState 561- ProcessorSummary 562- Processors 563- SerialNumber 564- Status 565- Storage 566- SubModel 567- SystemType 568 569#### /redfish/v1/Systems/system/EthernetInterfaces/ 570##### EthernetInterfaceCollection 571- Members 572- Members@odata.count 573- Description 574 575#### /redfish/v1/Systems/system/LogServices/ 576##### LogServiceCollection 577- Description 578- Members 579 - Should default to one member, named SEL 580- Members@odata.count 581 582#### /redfish/v1/Systems/system/LogServices/EventLog/ 583##### LogService 584- Actions 585- DateTime 586- DateTimeLocalOffset 587- Description 588- Entries 589- OverWritePolicy 590 591#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/ 592##### LogEntryCollection 593- Description 594- Members 595- Members@odata.count 596 597#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/ 598##### LogEntry 599- AdditionalDataURI 600- Created 601- EntryType 602- Message 603- Modified 604- Resolved 605- Severity 606 607#### /redfish/v1/Systems/system/LogServices/SEL/Entries/ 608##### LogEntryCollection 609- Members 610- Members@odata.count 611- Description 612- @odata.nextLink 613 614#### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/ 615##### LogEntry 616- MessageArgs 617- Severity 618- SensorType 619- Message 620- MessageId 621- Created 622- EntryCode 623- EntryType 624 625#### /redfish/v1/Systems/system/Memory/ 626##### MemoryCollection 627- Members 628- Members@odata.count 629 630#### /redfish/v1/Systems/system/Memory/{MemoryId}/ 631##### Memory 632- AllowedSpeedsMHz 633- BaseModuleType 634- BusWidthBits 635- CapacityMiB 636- DataWidthBits 637- ErrorCorrection 638- FirmwareRevision 639- Manufacturer 640- Model 641- OperatingSpeedMhz 642- PartNumber 643- RankCount 644- SerialNumber 645- SparePartNumber 646- Status 647 648#### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/ 649##### MemoryMetrics 650- Description 651- HealthData 652 653#### /redfish/v1/Systems/system/PCIeDevices/ 654##### PCIeDeviceCollection 655- Description 656- Members 657- Members@odata.count 658 659#### /redfish/v1/Systems/system/Processors/ 660##### ProcessorCollection 661- Members 662 - Should Support CPU1 and CPU2 for dual socket systems 663- Members@odata.count 664 665#### /redfish/v1/Systems/system/Processors/{ProcessorId}/ 666##### Processor 667- InstructionSet 668- Manufacturer 669- MaxSpeedMHz 670- PartNumber 671- ProcessorArchitecture 672- ProcessorId 673- ProcessorType 674- SerialNumber 675- Socket 676- SparePartNumber 677- Status 678- TotalCores 679- TotalThreads 680- Version 681 682#### /redfish/v1/Systems/system/Storage/ 683##### StorageCollection 684- Members 685- Members@odata.count 686 687#### /redfish/v1/Systems/system/Storage/{StorageId}/ 688##### Storage 689- Drives 690- Drives@odata.count 691- Status 692 693#### /redfish/v1/TaskService/ 694##### TaskService 695- CompletedTaskOverWritePolicy 696- DateTime 697- LifeCycleEventOnTaskStateChange 698- ServiceEnabled 699- Status 700- Tasks 701 702#### /redfish/v1/TaskService/Tasks/ 703##### TaskCollection 704- Members 705- Members@odata.count 706 707#### /redfish/v1/TelemetryService/ 708##### TelemetryService 709- MaxReports 710- MetricReportDefinitions 711- MetricReports 712- MinCollectionInterval 713- Status 714- Triggers 715 716#### /redfish/v1/TelemetryService/MetricReportDefinitions/ 717##### MetricReportDefinitionCollection 718- Members 719- Members@odata.count 720 721#### /redfish/v1/TelemetryService/MetricReports/ 722##### MetricReportCollection 723- Members 724- Members@odata.count 725 726#### /redfish/v1/TelemetryService/Triggers/ 727##### TriggersCollection 728- Members 729- Members@odata.count 730 731#### /redfish/v1/UpdateService/ 732##### UpdateService 733- Actions 734- Description 735- FirmwareInventory 736- HttpPushUri 737- HttpPushUriOptions 738- MaxImageSizeBytes 739- ServiceEnabled 740 741#### /redfish/v1/UpdateService/FirmwareInventory/ 742##### SoftwareInventoryCollection 743- Members 744 - Should Support BMC, ME, CPLD and BIOS 745- Members@odata.count 746 747#### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/ 748##### SoftwareInventory 749- Description 750- RelatedItem@odata.count 751- RelatedItem 752- Status 753- Updateable 754- Version 755 756[1]: https://www.dmtf.org/standards/redfish 757[2]: https://redfish.dmtf.org/schemas/v1/LogService.json 758[3]: https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md 759[4]: https://github.com/openbmc/phosphor-logging 760