{
    "Resources": [
        {
            "Uri": "/cli/v1/syslog",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get syslog status"
                }
            ]
        },
        {
            "Uri": "/cli/v1/syslog/severity",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get syslog send severity",
                    "Usage": "ipmcget -t syslog -d severity",
                    "RspBody": {
                        "Severity": "${Statements/Severity()}"
                    },
                    "Statements": {
                        "Severity": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.syslog.get_severity(ProcessingFlow[1].Destination.LowestSeverity)"
                                }
                            ]
                        }
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/Syslog",
                            "Interface": "bmc.kepler.Managers.Syslog",
                            "Destination": {
                                "LowestSeverity": "LowestSeverity"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcget/syslog_severity",
                        ""
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/syslog/protocol",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get syslog protocol",
                    "Usage": "ipmcget -t syslog -d protocol",
                    "RspBody": {
                        "Protocol": "${ProcessingFlow[1]/Destination/Protocol}"
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/Syslog",
                            "Interface": "bmc.kepler.Managers.Syslog",
                            "Destination": {
                                "Protocol": "Protocol"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcget/syslog_protocol",
                        ""
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/syslog/state",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get syslog enable status",
                    "Usage": "ipmcget -t syslog -d state [-v destination]",
                    "Brief": "To obtain the syslog settings of a syslog server, you must specify the destination parameter. The value range of destination is 1 to 4.\nTo obtain the status of syslog function, leave destination unspecified.",
                    "Example": [
                        "ipmcget -t syslog -d state",
                        "ipmcget -t syslog -d state -v 4"
                    ],
                    "ReqBody": {
                        "Type": "object",
                        "Required": true,
                        "Properties": {
                            "destination": {
                                "Type": "integer",
                                "Required": false,
                                "Validator": [
                                    {
                                        "Type": "Range",
                                        "Formula": [
                                            1,
                                            4
                                        ]
                                    }
                                ]
                            }
                        }
                    },
                    "RspBody": {
                        "destination": "${ReqBody/destination}",
                        "enabled_syslog": "${ProcessingFlow[1]/Destination/Enabled}",
                        "enabled_server": "${ProcessingFlow[2]/Destination/Enabled}"
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/Syslog",
                            "Interface": "bmc.kepler.Managers.Syslog",
                            "Destination": {
                                "Enabled": "Enabled"
                            },
                            "CallIf": {
                                "${ReqBody/destination}": "#WITHOUT"
                            }
                        },
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/Syslog/Servers/${ReqBody/destination}",
                            "Interface": "bmc.kepler.Managers.Syslog.Server",
                            "Destination": {
                                "Enabled": "Enabled"
                            },
                            "CallIf": {
                                "${ReqBody/destination}": "#WITH"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcget/syslog_state",
                        ""
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/syslog/auth",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get syslog auth type",
                    "Usage": "ipmcget -t syslog -d auth",
                    "RspBody": {
                        "AuthenticateMode": "${ProcessingFlow[1]/Destination/AuthenticateMode}"
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/Syslog",
                            "Interface": "bmc.kepler.Managers.Syslog",
                            "Destination": {
                                "AuthenticateMode": "AuthenticateMode"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcget/syslog_auth",
                        ""
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/syslog/identity",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get syslog identity",
                    "Usage": "ipmcget -t syslog -d identity",
                    "RspBody": {
                        "Identity": "${Statements/Identity()}"
                    },
                    "Statements": {
                        "Identity": {
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.syslog.get_identity(ProcessingFlow[1].Destination.ServerIdentitySource)"
                                }
                            ]
                        }
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/Syslog",
                            "Interface": "bmc.kepler.Managers.Syslog",
                            "Destination": {
                                "ServerIdentitySource": "ServerIdentitySource"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcget/syslog_identity",
                        ""
                    ]
                }
            ]
        },
        {
            "Uri": "/bmc/kepler/Managers/1/Syslog/Servers/:id",
            "Interfaces": [
                {
                    "Type": "Get",
                    "RspBody": {
                        "MemberId": "${Uri/id}",
                        "Enabled": "${ProcessingFlow[1]/Destination/Enabled}",
                        "Address": "${ProcessingFlow[1]/Destination/Address}",
                        "Port": "${ProcessingFlow[1]/Destination/Port}",
                        "LogType": "${ProcessingFlow[1]/Destination/LogType}"
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/Syslog/Servers/${Uri/id}",
                            "Interface": "bmc.kepler.Managers.Syslog.Server",
                            "Destination": {
                                "Enabled": "Enabled",
                                "Address": "Address",
                                "Port": "Port",
                                "LogType": "LogType"
                            }
                        }
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/syslog/iteminfo",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get syslog dest item information",
                    "Usage": "ipmcget -t syslog -d iteminfo",
                    "Example": [
                        "ipmcget -t syslog -d iteminfo"
                    ],
                    "RspBody": {
                        "ResData": "${Statements/path_list()}"
                    },
                    "Statements": {
                        "path_list": {
                            "Input": "${ProcessingFlow[1]/Destination/path_list}",
                            "Steps": [
                                {
                                    "Type": "Expand"
                                }
                            ]
                        }
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "List",
                            "Path": "/bmc/kepler/Managers/1/Syslog/Servers",
                            "Interface": "bmc.kepler.Managers.Syslog.Server",
                            "Destination": {
                                "Members": "path_list"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcget/syslog_iteminfo",
                        ""
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/syslog/rootcertificate",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get syslog root certificate information",
                    "Usage": "ipmcget -t syslog -d rootcertificate",
                    "Example": [
                        "ipmcget -t syslog -d rootcertificate"
                    ],
                    "RspBody": {
                        "ResData": "${Statements/GetRootCertificateInfo()}"
                    },
                    "Statements": {
                        "GetRootCertificateInfo": {
                            "Input": "${ProcessingFlow[1]/Destination/path_list}",
                            "Steps": [
                                {
                                    "Type": "Plugin",
                                    "Formula": "orchestrator.certificate.get_root_certificate_info(Input)"
                                }
                            ]
                        }
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "List",
                            "Path": "/bmc/kepler/Managers/1/Certificates",
                            "Interface": "bmc.kepler.CertificateService.Certificate",
                            "Destination": {
                                "Members": "path_list"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcget/syslog_rootcertificate",
                        ""
                    ]
                }
            ]
        },
        {
            "Uri": "/cli/v1/syslog/clientcertificate",
            "Interfaces": [
                {
                    "Type": "Get",
                    "Description": "Get syslog client certificate information",
                    "Usage": "ipmcget -t syslog -d clientcertificate",
                    "Example": [
                        "ipmcget -t syslog -d clientcertificate"
                    ],
                    "RspBody": {
                        "Issuer": "${ProcessingFlow[1]/Destination/Issuer}",
                        "Subject": "${ProcessingFlow[1]/Destination/Subject}",
                        "ValidNotAfter": "${ProcessingFlow[1]/Destination/ValidNotAfter}",
                        "ValidNotBefore": "${ProcessingFlow[1]/Destination/ValidNotBefore}",
                        "SerialNumber": "${ProcessingFlow[1]/Destination/SerialNumber}",
                        "AlternativeNames": "${Statements/AlternativeNames()}"
                    },
                    "Statements":{
                        "AlternativeNames": {
                            "Input": "${ProcessingFlow[2]/Destination/AlternativeNames}",
                            "Steps": [
                                {
                                    "Type": "Script",
                                    "Formula": "if (Input == {}) then return '' end return table.concat(Input,',')"
                                }
                            ]
                        }
                    },
                    "ProcessingFlow": [
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/NetworkProtocol/HTTPS/Certificates/1",
                            "Interface": "bmc.kepler.CertificateService.Certificate",
                            "Destination": {
                                "Issuer": "Issuer",
                                "Subject": "Subject",
                                "ValidNotAfter": "ValidNotAfter",
                                "ValidNotBefore": "ValidNotBefore",
                                "SerialNumber": "SerialNumber"
                            }
                        },
                        {
                            "Type": "Property",
                            "Path": "/bmc/kepler/Managers/1/NetworkProtocol/HTTPS/Certificates/1/Subject",
                            "Interface": "bmc.kepler.CertificateService.Certificate.Entity",
                            "Destination": {
                                "AlternativeNames": "AlternativeNames"
                            }
                        }
                    ],
                    "Echoes": [
                        "ipmcget/syslog_clientcertificate",
                        ""
                    ]
                }
            ]
        }
    ]
}