{
    "Resources": [
        {
            "Uri": "/cli/v1/securitybanner",
            "Interfaces": [
                {
                    "Type": "Patch",
                    "Description": "Operate login security banner information"
                }
            ]
        },
        {
            "Uri": "/cli/v1/securitybanner/content",
            "Interfaces": [
                {
                    "Type": "Patch",
                    "Description": "Set login security banner content",
                    "Usage": "ipmcset -t securitybanner -d content -v <option>",
                    "Example": [
                        "1. ipmcset -t securitybanner -d content -v default",
                        "2. ipmcset -t securitybanner -d content -v \"Warning! This is a private system. Unauthorized use of the system is prohibited.\""
                    ],
                    "ReqBody": {
                        "Type": "object",
                        "Required": true,
                        "Properties": {
                            "option": {
                                "Required": true,
                                "Type": "string",
                                "Validator": [
                                    {
                                        "Type": "Length",
                                        "Formula": [
                                            0,
                                            1024
                                        ]
                                    }
                                ],
                                "Description": "\ndefault    Set login security banner information to default messages.\n\"<strings>\"    Set logint security banner information to given strings(0~1024 bytes)."
                            }
                        }
                    },
                    "RspBody": {
                        "Enabled": "${ProcessingFlow[1]/Destination/Enabled}"
                    },
                    "Statements": {
                        "GetContent": {
                            "Input": "${ReqBody/option}",
                            "Steps": [
                                {
                                    "Type": "Switch",
                                    "Formula": [
                                        {
                                            "Case": "default",
                                            "To": "${ProcessingFlow[1]/Destination/DefaultContent}"
                                        }
                                    ]
                                }
                            ]
                        }
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/Security/Banner",
                            "Interface": "bmc.kepler.Managers.Security.Banner",
                            "Destination": {
                                "DefaultContent": "DefaultContent",
                                "Enabled": "Enabled"
                            }
                        },
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/Security/Banner",
                            "Interface": "bmc.kepler.Managers.Security.Banner",
                            "Source": {
                                "Content": "${Statements/GetContent()}"
                            },
                            "CallIf": {
                                "${ProcessingFlow[1]/Destination/Enabled}": true
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcset/securitybanner_content",
                        ""
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/securitybanner/state",
            "Interfaces": [
                {
                    "Type": "Patch",
                    "Description": "Set login security banner state",
                    "Usage": "ipmcset -t securitybanner -d state -v <enabled|disabled>",
                    "Example": [
                        "ipmcset -t securitybanner -d state -v enabled",
                        "ipmcset -t securitybanner -d state -v disabled"
                    ],
                    "ReqBody": {
                        "Type": "object",
                        "Required": true,
                        "Properties": {
                            "state": {
                                "Required": true,
                                "Type": "string",
                                "Validator": [
                                    {
                                        "Type": "Enum",
                                        "Formula": [
                                            "enabled",
                                            "disabled"
                                        ]
                                    }
                                ]
                            }
                        }
                    },
                    "RspBody": {
                        "state": "${ReqBody/state}"
                    },
                    "Statements": {
                        "Enabled": {
                            "Input": "${ReqBody/state}",
                            "Steps": [
                                {
                                    "Type": "Switch",
                                    "Formula": [
                                        {
                                            "Case": "enabled",
                                            "To": true
                                        },
                                        {
                                            "Case": "disabled",
                                            "To": false
                                        }
                                    ]
                                }
                            ]
                        }
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/Security/Banner",
                            "Interface": "bmc.kepler.Managers.Security.Banner",
                            "Source": {
                                "Enabled": "${Statements/Enabled()}"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcset/securitybanner_state",
                        ""
                    ]
                }
            ]
        }
    ]
}