# A YAML similar to this example would have to be generated, for eg with MRW
# inputs and system configuration, to depict IPMI Fru information.
#
# This file maps IPMI properties to phosphor dbus inventory properties
#
# This YAML could help generate C++ code.
# Format of the YAML:
# Fruid:
#   Associated Fru paths
#     d-bus Interfaces
#       d-bus Properties
#         IPMI Fru mapping
0:
  /system:
    entityID: 200
    entityInstance: 1
    interfaces:
      xyz.openbmc_project.Inventory.Item:
        PrettyName:
          IPMIFruProperty: Product Name
          IPMIFruSection: Product
      xyz.openbmc_project.Inventory.Decorator.Asset:
        Manufacturer:
          IPMIFruProperty: Manufacturer
          IPMIFruSection: Product
        PartNumber:
          IPMIFruProperty: Part Number
          IPMIFruSection: Product
        SerialNumber:
          IPMIFruProperty: Serial Number
          IPMIFruSection: Product
        BuildDate:
          IPMIFruProperty: Mfg Date
          IPMIFruSection: Product
      xyz.openbmc_project.Inventory.Decorator.Revision:
        Version:
          IPMIFruProperty: Version
          IPMIFruSection: Product
      xyz.openbmc_project.Inventory.Item.System:
1:
  /system/chassis/motherboard/dimm0:
    entityID: 8
    entityInstance: 1
    interfaces:
      xyz.openbmc_project.Inventory.Item:
        PrettyName:
          IPMIFruProperty: Product Name
          IPMIFruSection: Product
      xyz.openbmc_project.Inventory.Decorator.Asset:
        Manufacturer:
          IPMIFruProperty: Manufacturer
          IPMIFruSection: Product
        BuildDate:
          IPMIFruProperty: Mfg Date
          IPMIFruSection: Product
        SerialNumber:
          IPMIFruProperty: Serial Number
          IPMIFruSection: Product
        PartNumber:
          IPMIFruProperty: Part Number
          IPMIFruSection: Product
      xyz.openbmc_project.Inventory.Decorator.Revision:
        Version:
          IPMIFruProperty: Version
          IPMIFruSection: Product
      xyz.openbmc_project.Inventory.Item.Dimm:
2:
  /system/chassis/motherboard/dimm1:
    entityID: 8
    entityInstance: 2
    interfaces:
      xyz.openbmc_project.Inventory.Item:
        PrettyName:
          IPMIFruProperty: Product Name
          IPMIFruSection: Product
      xyz.openbmc_project.Inventory.Decorator.Asset:
        Manufacturer:
          IPMIFruProperty: Manufacturer
          IPMIFruSection: Product
        BuildDate:
          IPMIFruProperty: Mfg Date
          IPMIFruSection: Product
        SerialNumber:
          IPMIFruProperty: Serial Number
          IPMIFruSection: Product
        PartNumber:
          IPMIFruProperty: Part Number
          IPMIFruSection: Product
      xyz.openbmc_project.Inventory.Decorator.Revision:
        Version:
          IPMIFruProperty: Version
          IPMIFruSection: Product
      xyz.openbmc_project.Inventory.Item.Dimm:
3:
  /system/chassis/motherboard/cpu0:
    entityID: 3
    entityInstance: 1
    interfaces:
      xyz.openbmc_project.Inventory.Item:
        PrettyName:
          IPMIFruProperty: Product Name
          IPMIFruSection: Board
      xyz.openbmc_project.Inventory.Decorator.Asset:
        BuildDate:
          IPMIFruProperty: Mfg Date
          IPMIFruSection: Board
        SerialNumber:
          IPMIFruProperty: Serial Number
          IPMIFruSection: Board
        PartNumber:
          IPMIFruProperty: Part Number
          IPMIFruSection: Board
        Manufacturer:
          IPMIFruProperty: Manufacturer
          IPMIFruSection: Board
      xyz.openbmc_project.Inventory.Item.Cpu:
4:
  /system/chassis/motherboard/cpu1:
    entityID: 3
    entityInstance: 2
    interfaces:
      xyz.openbmc_project.Inventory.Item:
        PrettyName:
          IPMIFruProperty: Product Name
          IPMIFruSection: Board
      xyz.openbmc_project.Inventory.Decorator.Asset:
        BuildDate:
          IPMIFruProperty: Mfg Date
          IPMIFruSection: Board
        SerialNumber:
          IPMIFruProperty: Serial Number
          IPMIFruSection: Board
        PartNumber:
          IPMIFruProperty: Part Number
          IPMIFruSection: Board
        Manufacturer:
          IPMIFruProperty: Manufacturer
          IPMIFruSection: Board
      xyz.openbmc_project.Inventory.Item.Cpu:
