{
    "Resources": [
        {
            "Uri": "/cli/v1/fru0",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get the information of the fru0"
                }
            ]
        },
        {
            "Uri": "/cli/v1/fru0/fruinfo",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get fru information",
                    "RspBody": {
                        "Target": true,
                        "GetFruList": "${ProcessingFlow[1]/Destination/FruDataList}"
                    },
                    "Statements": {},
                    "ProcessingFlow": [
                        {
                            "Type": "Method",
                            "Path": "/bmc/kepler/Chassis/1/FruDatas",
                            "Interface": "bmc.kepler.Chassis.FruDatas",
                            "Name": "GetFruDataList",
                            "Destination": {
                                "FruDataList": "FruDataList"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcget/fru0_fruinfo"
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/_/fruinfo",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get fru information",
                    "ReqHeader": {
                        "SystemId": [
                            "255"
                        ]
                    },
                    "Usage": "ipmcget -d fruinfo [-s <systemid>]",
                    "RspBody": {
                        "Target": false,
                        "GetFruList": "${ProcessingFlow[2]/Destination/FruDataList}",
                        "GetFruHost": "${Statements/GetFruHost()}",
                        "SystemId": "${ReqHeader/SystemId[#INDEX]}"
                    },
                    "Statements": {
                        "GetFruHost": {
                            "Input": "${ProcessingFlow[1]/Destination/FruList}",
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.frudata.get_frudata_list(ProcessingFlow[1].Destination.FruList)"
                                }
                            ]
                        }
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "List",
                            "Path": "/bmc/kepler/Systems/",
                            "Interface": "bmc.kepler.Systems.FruData.Overview",
                            "Params": [
                                3
                            ],
                            "Destination": {
                                "Members": "FruList"
                            }
                        },
                        {
                            "Type": "Method",
                            "Path": "/bmc/kepler/Chassis/1/FruDatas",
                            "Interface": "bmc.kepler.Chassis.FruDatas",
                            "Name": "GetFruDataList",
                            "Destination": {
                                "FruDataList": "FruDataList"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcget/fru0_fruinfo"
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/fru0/health",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get fru0 health status",
                    "Usage": "ipmcget -t fru0 -d health",
                    "RspBody": {
                        "MinorCount": "${ProcessingFlow[1]/Destination/MinorCount}",
                        "MajorCount": "${ProcessingFlow[1]/Destination/MajorCount}",
                        "CriticalCount": "${ProcessingFlow[1]/Destination/CriticalCount}"
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Systems/1/Events",
                            "Interface": "bmc.kepler.Systems.Events",
                            "Destination": {
                                "MinorCount": "MinorCount",
                                "MajorCount": "MajorCount",
                                "CriticalCount": "CriticalCount"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcget/fru0_health",
                        ""
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/_/health",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get health status",
                    "Usage": "ipmcget -d health",
                    "RspBody": {
                        "MinorCount": "${ProcessingFlow[1]/Destination/MinorCount}",
                        "MajorCount": "${ProcessingFlow[1]/Destination/MajorCount}",
                        "CriticalCount": "${ProcessingFlow[1]/Destination/CriticalCount}"
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Systems/1/Events",
                            "Interface": "bmc.kepler.Systems.Events",
                            "Destination": {
                                "MinorCount": "MinorCount",
                                "MajorCount": "MajorCount",
                                "CriticalCount": "CriticalCount"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcget/fru0_health",
                        ""
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/fru0/healthevents",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get fru0 health events",
                    "Usage": "ipmcget -d healthevents",
                    "Query": {
                        "Skip": 0,
                        "Top": 20
                    },
                    "RspBody": {
                        "EventList": "${ProcessingFlow[1]/Destination/EventList}",
                        "Count": "${ProcessingFlow[1]/Destination/Total}",
                        "Skip": "${Query/Skip}",
                        "Top": "${Query/Top}"
                    },
                    "Statements": {
                        "GetIndexAfterAddOne": {
                            "Steps": [
                                {
                                    "Type": "Script",
                                    "Formula": "return ${Query/Skip} + 1"
                                }
                            ]
                        }
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Paging",
                            "Path": "/bmc/kepler/Systems/1/Events",
                            "Interface": "bmc.kepler.Systems.Events",
                            "Name": "GetAlarmList",
                            "Params": [
                                "${Statements/GetIndexAfterAddOne()}",
                                "${Query/Top}",
                                {}
                            ],
                            "Destination": {
                                "Total": "Total",
                                "EventList": "EventList"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcget/fru0_healthevents",
                        ""
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/_/healthevents",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get health events",
                    "Usage": "ipmcget -d healthevents",
                    "Query": {
                        "Skip": 0,
                        "Top": 20
                    },
                    "RspBody": {
                        "EventList": "${ProcessingFlow[1]/Destination/EventList}",
                        "Count": "${ProcessingFlow[1]/Destination/Total}",
                        "Skip": "${Query/Skip}",
                        "Top": "${Query/Top}"
                    },
                    "Statements": {
                        "GetIndexAfterAddOne": {
                            "Steps": [
                                {
                                    "Type": "Script",
                                    "Formula": "return ${Query/Skip} + 1"
                                }
                            ]
                        }
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Paging",
                            "Path": "/bmc/kepler/Systems/1/Events",
                            "Interface": "bmc.kepler.Systems.Events",
                            "Name": "GetAlarmList",
                            "Params": [
                                "${Statements/GetIndexAfterAddOne()}",
                                "${Query/Top}",
                                {}
                            ],
                            "Destination": {
                                "Total": "Total",
                                "EventList": "EventList"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcget/fru0_healthevents",
                        ""
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/fru0/powerstate",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get fru0 power state",
                    "Usage": "ipmcget -d powerstate [-s <systemid>]",
                    "ReqHeader": {
                        "SystemId": []
                    },
                    "RspBody": {
                        "HostType": "${Statements/GetHostType()}",
                        "PowerStateAndPowerSwapHot": "${Statements/GetPowerStateAndPowerSwapHot()}"
                    },
                    "Statements": {
                        "GetPowerStateAndPowerSwapHot": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.fructrl.get_power_state_hotswap(ReqHeader.SystemId)"
                                }
                            ]
                        },
                        "GetHostType": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.fructrl.get_hosttype()"
                                }
                            ]
                        }
                    },
                    "Echoes": [
                        "ipmcget/fru0_powerstate"
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/_/powerstate",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get power state",
                    "Usage": "ipmcget -d powerstate [-s <systemid>]",
                    "ReqHeader": {
                        "SystemId": []
                    },
                    "RspBody": {
                        "HostType": "${Statements/GetHostType()}",
                        "PowerStateAndPowerSwapHot": "${Statements/GetPowerStateAndPowerSwapHot()}"
                    },
                    "Statements": {
                        "GetPowerStateAndPowerSwapHot": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.fructrl.get_power_state_hotswap(ReqHeader.SystemId)"
                                }
                            ]
                        },
                        "GetHostType": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.fructrl.get_hosttype()"
                                }
                            ]
                        }
                    },
                    "Echoes": [
                        "ipmcget/fru0_powerstate"
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/fru0/shutdowntimeout",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get graceful shutdown timeout state and value",
                    "Usage": "ipmcget -t fru0 -d shutdowntimeout [-s <systemid>]",
                    "ReqHeader": {
                        "SystemId": []
                    },
                    "RspBody": {
                        "HostType": "${Statements/GetHostType()}",
                        "ShutdownTimeoutAndEnabled": "${Statements/GetShutDownTimeOutEnabled()}"
                    },
                    "Statements": {
                        "GetShutDownTimeOutEnabled": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.fructrl.get_shutdowntimeenabled(ReqHeader.SystemId)"
                                }
                            ]
                        },
                        "GetHostType": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.fructrl.get_hosttype()"
                                }
                            ]
                        }
                    },
                    "Echoes": [
                        "ipmcget/fru0_shutdowntimeout"
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/_/shutdowntimeout",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get graceful shutdown timeout state and value",
                    "Usage": "ipmcget -d shutdowntimeout [-s <systemid>]",
                    "ReqHeader": {
                        "SystemId": []
                    },
                    "RspBody": {
                        "HostType": "${Statements/GetHostType()}",
                        "ShutdownTimeoutAndEnabled": "${Statements/GetShutDownTimeOutEnabled()}"
                    },
                    "Statements": {
                        "GetShutDownTimeOutEnabled": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.fructrl.get_shutdowntimeenabled(ReqHeader.SystemId)"
                                }
                            ]
                        },
                        "GetHostType": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.fructrl.get_hosttype()"
                                }
                            ]
                        }
                    },
                    "Echoes": [
                        "ipmcget/fru0_shutdowntimeout"
                    ]
                }
            ]
        }
    ]
}