{
    "Resources": [
        {
            "Uri": "/cli/v1/sol",
            "Interfaces": [
                {
                    "Type": "Patch",
                    "Description": "Operate SOL"
                }
            ]
        },
        {
            "Uri": "/cli/v1/sol/activate",
            "Interfaces": [
                {
                    "Type": "Patch",
                    "Description": "Set SOL activate",
                    "Usage": "ipmcset -t sol -d activate -v <option> <mode> [-s <systemid>]",
                    "ReqHeader": {
                        "SystemId": [
                            "1"
                        ]
                    },
                    "ReqBody": {
                        "Type": "object",
                        "Required": true,
                        "Properties": {
                            "option": {
                                "Type": "integer",
                                "Required": true,
                                "Description": "\n\t1    SYS COM\n\t2    BMC COM\n\t5    CARD2 COM"
                            },
                            "mode": {
                                "Type": "integer",
                                "Required": true,
                                "Description": "\n\t0    Shared mode\n\t1    Private mode"
                            }
                        }
                    }
                }
            ]
        },
        {
            "Uri": "/cli/v1/sol/timeout",
            "Interfaces": [
                {
                    "Type": "Patch",
                    "Description": "Set SOL timeout period(min)",
                    "Usage": "ipmcset -t sol -d timeout -v <value>",
                    "ReqBody": {
                        "Type": "object",
                        "Required": true,
                        "Properties": {
                            "Value": {
                                "Required": true,
                                "Type": "integer",
                                "Validator": [
                                    {
                                        "Type": "Range",
                                        "Formula": [
                                            0,
                                            480
                                        ]
                                    }
                                ],
                                "Description": "\n    0       No limit\n    1-480   SOL timeout period(min)"
                            }
                        }
                    },
                    "RspBody": {
                        "Result": "${ProcessingFlow[1]/Destination/Result}"
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Method",
                            "Path": "/bmc/kepler/Managers/1/SOL",
                            "Interface": "bmc.kepler.Managers.SOL",
                            "Name": "SetTimeout",
                            "Params": [
                                "${ReqBody/Value}"
                            ],
                            "Destination": {
                                "Result": "Result"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcset/sol_timeout",
                        ""
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/sol/deactivate",
            "Interfaces": [
                {
                    "Type": "Patch",
                    "Description": "Close SOL session",
                    "Usage": "ipmcset -t sol -d deactivate -v <index>",
                    "ReqBody": {
                        "Type": "object",
                        "Required": true,
                        "Properties": {
                            "index": {
                                "Required": true
                            }
                        }
                    },
                    "RspBody": {
                        "IndexValid": "${Statements/IndexValid()}",
                        "Result": "${ProcessingFlow[1]/Destination/Result}",
                        "Mode": "${ProcessingFlow[4]/Destination/Mode}",
                        "Type1": "${ProcessingFlow[2]/Destination/Type}",
                        "ActivatedTime1": "${ProcessingFlow[2]/Destination/ActivatedTime}",
                        "IP1": "${ProcessingFlow[2]/Destination/IP}",
                        "Name1": "${ProcessingFlow[2]/Destination/Name}",
                        "Type2": "${ProcessingFlow[3]/Destination/Type}",
                        "ActivatedTime2": "${ProcessingFlow[3]/Destination/ActivatedTime}",
                        "IP2": "${ProcessingFlow[3]/Destination/IP}",
                        "Name2": "${ProcessingFlow[3]/Destination/Name}"
                    },
                    "Statements": {
                        "IndexValid": {
                            "Steps": [
                                {
                                    "Type": "Script",
                                    "Formula": "local req_index = tonumber(ReqBody.index) if math.type(req_index) == 'integer' and (req_index == 1 or req_index == 2) then return true else return false end"
                                }
                            ]
                        }
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Method",
                            "Path": "/bmc/kepler/Managers/1/SOL/Session/${ReqBody/index}",
                            "Interface": "bmc.kepler.Managers.SOL.Session",
                            "Name": "Deactivate",
                            "CallIf": {
                                "${Statements/IndexValid()}": true
                            },
                            "Destination": {
                                "Result": "Result"
                            }
                        },
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/SOL/Session/1",
                            "Interface": "bmc.kepler.Managers.SOL.Session",
                            "CallIf": {
                                "${Statements/IndexValid()}": false
                            },
                            "Destination": {
                                "Type": "Type",
                                "ActivatedTime": "ActivatedTime",
                                "ClientAddress": "IP",
                                "UserName": "Name"
                            }
                        },
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/SOL/Session/2",
                            "Interface": "bmc.kepler.Managers.SOL.Session",
                            "CallIf": {
                                "${Statements/IndexValid()}": false
                            },
                            "Destination": {
                                "Type": "Type",
                                "ActivatedTime": "ActivatedTime",
                                "ClientAddress": "IP",
                                "UserName": "Name"
                            }
                        },
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/SOL",
                            "Interface": "bmc.kepler.Managers.SOL",
                            "CallIf": {
                                "${Statements/IndexValid()}": false
                            },
                            "Destination": {
                                "Mode": "Mode"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcset/sol_deactivate",
                        ""
                    ]
                }
            ]
        }
    ]
}