{
    "Resources": [
        {
            "Uri": "/cli/v1/_/version",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get {{SoftwareName}} version",
                    "Usage": "ipmcget -d version",
                    "RspBody": {
                        "NetworkCards": "${Statements/NetWorkCards()}",
                        "RiserCards": "${Statements/AllBoards()[2]}",
                        "HddBackplanes": "${Statements/AllBoards()[3]}",
                        "M2TransferCards": "${Statements/AllBoards()[9]}",
                        "CpuBoards": "${Statements/AllBoards()[1]}",
                        "NpuBoards": "${Statements/AllBoards()[6]}",
                        "PsuBoards": "${Statements/AllBoards()[7]}",
                        "PeuBoards": "${Statements/AllBoards()[8]}",
                        "ExpBoards": "${Statements/AllBoards()[4]}",
                        "FanBoards": "${Statements/AllBoards()[5]}",
                        "PCIeCards": "${Statements/PCIeCards()}",
                        "PSUs": "${Statements/PSUs()}",
                        "SecurityModules": "${Statements/SecurityModules()}",
                        "CpuType": "${ProcessingFlow[1]/Destination/Name}",
                        "ProductId": "${ProcessingFlow[2]/Destination/ProductId}",
                        "ProductName": "${ProcessingFlow[2]/Destination/ProductName}",
                        "ProductUniqueID": "${Statements/ProductUniqueID()}",
                        "FirmwareInfo": "${Statements/GetAllFirmwareInfo()}",
                        "RetimerVersion": "${Statements/RetimerVersion()}",
                        "SoftwareName": "${ProcessingFlow[4]/Destination/SoftwareName}",
                        "PaddingSoftwareName": "${Statements/ModifySoftwareName()}"
                    },
                    "Statements": {
                        "PSUs": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.system.get_all_psus()"
                                }
                            ]
                        },
                        "NetWorkCards": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.system.get_all_network_adapters()"
                                }
                            ]
                        },
                        "AllBoards": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.system.get_all_boards()"
                                }
                            ]
                        },
                        "PCIeCards": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.system.get_all_pcie_cards()"
                                }
                            ]
                        },
                        "SecurityModules": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.system.get_all_security_modules()"
                                }
                            ]
                        },
                        "RetimerVersion": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.system.get_retimer_version()"
                                }
                            ]
                        },
                        "ProductUniqueID": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.system.get_product_unique_id(ProcessingFlow[2].Destination.ProductUniqueID, ProcessingFlow[2].Destination.ProductVendorID)"
                                }
                            ]
                        },
                        "GetAllFirmwareInfo": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.system.get_all_firmware_info(ProcessingFlow[3].Destination.FirmwareInfoList)"
                                }
                            ]
                        },
                        "ModifySoftwareName": {
                            "Input": "${ProcessingFlow[4]/Destination/SoftwareName}",
                            "Steps": [
                                {
                                    "Type": "Script",
                                    "Formula": "modify_softwarename.lua"
                                }
                            ]
                        }
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/SOC",
                            "Interface": "bmc.kepler.Managers.SOC",
                            "Destination": {
                                "Name": "Name"
                            }
                        },
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Systems/1/Product",
                            "Interface": "bmc.kepler.Systems.Product",
                            "Destination": {
                                "ProductName": "ProductName",
                                "ProductId": "ProductId",
                                "ProductUniqueID": "ProductUniqueID",
                                "ProductVendorID": "ProductVendorID"
                            }
                        },
                        {
                            "Type": "Method",
                            "Path": "/bmc/kepler/UpdateService/FirmwareInventory",
                            "Interface": "bmc.kepler.UpdateService.FirmwareInventory",
                            "Name": "GetAllFirmwareInfo",
                            "Destination": {
                                "FirmwareInfoList": "FirmwareInfoList"
                            }
                        },
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/BMC",
                            "Interface": "bmc.kepler.Managers.BMC",
                            "Destination": {
                                "SoftwareName": "SoftwareName"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcget/_version",
                        ""
                    ]
                }
            ]
        },
        {
            "Uri": "/bmc/kepler/Systems/1/Boards/NpuBoard/:card_id",
            "Interfaces": [
                {
                    "Type": "Get",
                    "RspBody": {
                        "DeviceName": "${ProcessingFlow[1]/Destination/DeviceName}",
                        "Name": "${ProcessingFlow[1]/Destination/Name}",
                        "BoardID": "${ProcessingFlow[1]/Destination/BoardID}",
                        "PCBVersion": "${ProcessingFlow[1]/Destination/PcbVersion}",
                        "LogicUnit": "${ProcessingFlow[1]/Destination/LogicUnit}",
                        "LogicVersion": "${ProcessingFlow[1]/Destination/LogicVersion}",
                        "UID": "${ProcessingFlow[2]/Destination/UID}",
                        "Slot": "${ProcessingFlow[1]/Destination/Slot}",
                        "MCUVersion": "${ProcessingFlow[1]/Destination/MCUVersion}",
                        "SRVersion": "${ProcessingFlow[1]/Destination/SRVersion}",
                        "MultiLogicUnit": "${ProcessingFlow[1]/Destination/MultiLogicUnit}",
                        "MultiLogicVersion": "${ProcessingFlow[1]/Destination/MultiLogicVersion}"
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Systems/1/Boards/NpuBoard/${Uri/card_id}",
                            "Interface": "bmc.kepler.Systems.Board",
                            "Destination": {
                                "DeviceName": "DeviceName",
                                "Name": "Name",
                                "BoardID": "BoardID",
                                "PcbVersion": "PcbVersion",
                                "LogicUnit": "LogicUnit",
                                "LogicVersion": "LogicVersion",
                                "Slot": "Slot",
                                "MCUVersion": "MCUVersion",
                                "SRVersion": "SRVersion",
                                "MultiLogicUnit": "MultiLogicUnit",
                                "MultiLogicVersion": "MultiLogicVersion"
                            }
                        },
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Systems/1/Boards/NpuBoard/${Uri/card_id}",
                            "Interface": "bmc.kepler.Systems.Board.Unit",
                            "Destination": {
                                "UID": "UID"
                            }
                        }
                    ]
                }
            ]
        },
        {
            "Uri": "/bmc/kepler/Systems/1/Boards/PsuBoard/:card_id",
            "Interfaces": [
                {
                    "Type": "Get",
                    "RspBody": {
                        "DeviceName": "${ProcessingFlow[1]/Destination/DeviceName}",
                        "Name": "${ProcessingFlow[1]/Destination/Name}",
                        "BoardID": "${ProcessingFlow[1]/Destination/BoardID}",
                        "PCBVersion": "${ProcessingFlow[1]/Destination/PcbVersion}",
                        "LogicUnit": "${ProcessingFlow[1]/Destination/LogicUnit}",
                        "LogicVersion": "${ProcessingFlow[1]/Destination/LogicVersion}",
                        "UID": "${ProcessingFlow[2]/Destination/UID}",
                        "Slot": "${ProcessingFlow[1]/Destination/Slot}",
                        "MCUVersion": "${ProcessingFlow[1]/Destination/MCUVersion}",
                        "SRVersion": "${ProcessingFlow[1]/Destination/SRVersion}",
                        "MultiLogicUnit": "${ProcessingFlow[1]/Destination/MultiLogicUnit}",
                        "MultiLogicVersion": "${ProcessingFlow[1]/Destination/MultiLogicVersion}"
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Systems/1/Boards/PsuBoard/${Uri/card_id}",
                            "Interface": "bmc.kepler.Systems.Board",
                            "Destination": {
                                "DeviceName": "DeviceName",
                                "Name": "Name",
                                "BoardID": "BoardID",
                                "PcbVersion": "PcbVersion",
                                "LogicUnit": "LogicUnit",
                                "LogicVersion": "LogicVersion",
                                "Slot": "Slot",
                                "MCUVersion": "MCUVersion",
                                "SRVersion": "SRVersion",
                                "MultiLogicUnit": "MultiLogicUnit",
                                "MultiLogicVersion": "MultiLogicVersion"
                            }
                        },
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Systems/1/Boards/PsuBoard/${Uri/card_id}",
                            "Interface": "bmc.kepler.Systems.Board.Unit",
                            "Destination": {
                                "UID": "UID"
                            }
                        }
                    ]
                }
            ]
        },
        {
            "Uri": "/bmc/kepler/Systems/1/Boards/PeuBoard/:card_id",
            "Interfaces": [
                {
                    "Type": "Get",
                    "RspBody": {
                        "DeviceName": "${ProcessingFlow[1]/Destination/DeviceName}",
                        "Name": "${ProcessingFlow[1]/Destination/Name}",
                        "BoardID": "${ProcessingFlow[1]/Destination/BoardID}",
                        "PCBVersion": "${ProcessingFlow[1]/Destination/PcbVersion}",
                        "LogicUnit": "${ProcessingFlow[1]/Destination/LogicUnit}",
                        "LogicVersion": "${ProcessingFlow[1]/Destination/LogicVersion}",
                        "UID": "${ProcessingFlow[2]/Destination/UID}",
                        "Slot": "${ProcessingFlow[1]/Destination/Slot}",
                        "MCUVersion": "${ProcessingFlow[1]/Destination/MCUVersion}",
                        "SRVersion": "${ProcessingFlow[1]/Destination/SRVersion}",
                        "MultiLogicUnit": "${ProcessingFlow[1]/Destination/MultiLogicUnit}",
                        "MultiLogicVersion": "${ProcessingFlow[1]/Destination/MultiLogicVersion}"
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Systems/1/Boards/PeuBoard/${Uri/card_id}",
                            "Interface": "bmc.kepler.Systems.Board",
                            "Destination": {
                                "DeviceName": "DeviceName",
                                "Name": "Name",
                                "BoardID": "BoardID",
                                "PcbVersion": "PcbVersion",
                                "LogicUnit": "LogicUnit",
                                "LogicVersion": "LogicVersion",
                                "Slot": "Slot",
                                "MCUVersion": "MCUVersion",
                                "SRVersion": "SRVersion",
                                "MultiLogicUnit": "MultiLogicUnit",
                                "MultiLogicVersion": "MultiLogicVersion"
                            }
                        },
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Systems/1/Boards/PeuBoard/${Uri/card_id}",
                            "Interface": "bmc.kepler.Systems.Board.Unit",
                            "Destination": {
                                "UID": "UID"
                            }
                        }
                    ]
                }
            ]
        },
        {
            "Uri": "/bmc/kepler/Systems/1/PCIeDevices/PCIeCards/:card_id",
            "Interfaces": [
                {
                    "Type": "Get",
                    "RspBody": {
                        "BoardID": "${ProcessingFlow[1]/Destination/BoardID}",
                        "PCBVersion": "${ProcessingFlow[1]/Destination/PcbVersion}",
                        "Slot": "${ProcessingFlow[1]/Destination/SlotID}",
                        "Name": "${ProcessingFlow[1]/Destination/Name}"
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Systems/1/PCIeDevices/PCIeCards/${Uri/card_id}",
                            "Interface": "bmc.kepler.Systems.PCIeDevices.PCIeCard",
                            "Destination": {
                                "Name": "Name",
                                "SlotID": "SlotID",
                                "BoardID": "BoardID",
                                "PcbVersion": "PcbVersion"
                            }
                        }
                    ]
                }
            ]
        },
        {
            "Uri": "/bmc/kepler/Systems/1/PCIeDevices/PCIeCards/:card_type/:card_id",
            "Interfaces": [
                {
                    "Type": "Get",
                    "RspBody": {
                        "BoardID": "${ProcessingFlow[1]/Destination/BoardID}",
                        "PCBVersion": "${ProcessingFlow[1]/Destination/PcbVersion}",
                        "Slot": "${ProcessingFlow[1]/Destination/SlotID}",
                        "Name": "${ProcessingFlow[1]/Destination/Name}",
                        "SRVersion": "${ProcessingFlow[2]/Destination/SRVersion}",
                        "UID": "${ProcessingFlow[2]/Destination/UID}",
                        "MCUVersion": "${ProcessingFlow[2]/Destination/MCUVersion}",
                        "VrdVersion": "${ProcessingFlow[2]/Destination/VrdVersion}",
                        "CPLDVersion": "${ProcessingFlow[2]/Destination/LogicVersion}",
                        "CPLDCount": "${ProcessingFlow[2]/Destination/CPLDCount}",
                        "MultiLogicVersion": "${ProcessingFlow[2]/Destination/MultiLogicVersion}"
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Systems/1/PCIeDevices/PCIeCards/${Uri/card_type}/${Uri/card_id}",
                            "Interface": "bmc.kepler.Systems.PCIeDevices.PCIeCard",
                            "Destination": {
                                "Name": "Name",
                                "SlotID": "SlotID",
                                "BoardID": "BoardID",
                                "PcbVersion": "PcbVersion"
                            }
                        },
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Systems/1/PCIeDevices/PCIeCards/DPUCards/${Uri/card_id}",
                            "Interface": "bmc.kepler.Systems.DPUCard",
                            "Destination": {
                                "SRVersion": "SRVersion",
                                "UID": "UID",
                                "MCUVersion": "MCUVersion",
                                "VrdVersion": "VrdVersion",
                                "LogicVersion": "LogicVersion",
                                "CPLDCount": "CPLDCount",
                                "MultiLogicVersion": "MultiLogicVersion"
                            }
                        }
                    ]
                }
            ]
        },
        {
            "Uri": "/bmc/kepler/Systems/1/Boards/M2TransferCard/:card_id",
            "Interfaces": [
                {
                    "Type": "Get",
                    "RspBody": {
                        "DeviceName": "${ProcessingFlow[1]/Destination/DeviceName}",
                        "Name": "${ProcessingFlow[1]/Destination/Name}",
                        "BoardID": "${ProcessingFlow[1]/Destination/BoardID}",
                        "PCBVersion": "${ProcessingFlow[1]/Destination/PcbVersion}",
                        "LogicUnit": "${ProcessingFlow[1]/Destination/LogicUnit}",
                        "LogicVersion": "${ProcessingFlow[1]/Destination/LogicVersion}",
                        "UID": "${ProcessingFlow[2]/Destination/UID}",
                        "Slot": "${ProcessingFlow[1]/Destination/Slot}",
                        "MCUVersion": "${ProcessingFlow[1]/Destination/MCUVersion}",
                        "SRVersion": "${ProcessingFlow[1]/Destination/SRVersion}"
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Systems/1/Boards/M2TransferCard/${Uri/card_id}",
                            "Interface": "bmc.kepler.Systems.Board",
                            "Destination": {
                                "DeviceName": "DeviceName",
                                "Name": "Name",
                                "BoardID": "BoardID",
                                "PcbVersion": "PcbVersion",
                                "LogicUnit": "LogicUnit",
                                "LogicVersion": "LogicVersion",
                                "Slot": "Slot",
                                "MCUVersion": "MCUVersion",
                                "SRVersion": "SRVersion"
                            }
                        },
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Systems/1/Boards/M2TransferCard/${Uri/card_id}",
                            "Interface": "bmc.kepler.Systems.Board.Unit",
                            "Destination": {
                                "UID": "UID"
                            }
                        }
                    ]
                }
            ]
        },
        {
            "Uri": "/bmc/kepler/Systems/1/SecurityModule/:card_id",
            "Interfaces": [
                {
                    "Type": "Get",
                    "RspBody": {
                        "FirmwareVersion": "${ProcessingFlow[1]/Destination/FirmwareVersion}",
                        "Manufacturer": "${ProcessingFlow[1]/Destination/Manufacturer}",
                        "Protocol": "${ProcessingFlow[1]/Destination/Protocol}",
                        "ProtocolVersion": "${ProcessingFlow[1]/Destination/ProtocolVersion}"
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Systems/1/SecurityModule/${Uri/card_id}",
                            "Interface": "bmc.kepler.Systems.SecurityModule",
                            "Destination": {
                                "FirmwareVersion": "FirmwareVersion",
                                "Manufacturer": "Manufacturer",
                                "Protocol": "Protocol",
                                "ProtocolVersion": "ProtocolVersion"
                            }
                        }
                    ]
                }
            ]
        },
        {
            "Uri": "/bmc/kepler/UpdateService/FirmwareInventory/:card_id",
            "Interfaces": [
                {
                    "Type": "Get",
                    "RspBody": {
                        "Id": "${ProcessingFlow[1]/Destination/Id}",
                        "Version": "${ProcessingFlow[1]/Destination/Version}",
                        "Name": "${ProcessingFlow[1]/Destination/Name}"
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/UpdateService/FirmwareInventory/${Uri/card_id}",
                            "Interface": "bmc.kepler.UpdateService.FirmwareInfo",
                            "Destination": {
                                "Id": "Id",
                                "Version": "Version",
                                "Name": "Name"
                            }
                        }
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/_/time",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get system time",
                    "Usage": "ipmcget -d time",
                    "RspBody": {
                        "time_list_expand": "${Statements/time_list_expand()}"
                    },
                    "Statements": {
                        "time_list_expand": {
                            "Input": "${ProcessingFlow[1]/Destination/time_list}",
                            "Steps": [
                                {
                                    "Type": "Expand"
                                }
                            ]
                        }
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "List",
                            "Path": "/bmc/kepler/Managers",
                            "Interface": "bmc.kepler.Managers.Time",
                            "Destination": {
                                "Members": "time_list"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcget/_time",
                        ""
                    ]
                }
            ]
        }
    ]
}