burusftp user inspect JSON schema

{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://www.rebex.net/buru-sftp-server/schemas/user-inspect/v1",
    "title": "user inspect",
    "type": "object",
    "properties": {
        "username": {
            "type": "string"
        },
        "note": {
            "type": [ "null", "string" ]
        },
        "auth": {
            "type": "array",
            "items": {
                "allOf": [
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "constant": "localPassword"
                            },
                            "enabled": {
                                "enum": [ "enabled", "disabled", "required" ]
                            },
                            "passwordSet": {
                                "type": "boolean"
                            },
                            "hashAlgorithm": {
                                "type": [ "null", "string" ]
                            }
                        }
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "constant": "systemPassword"
                            },
                            "enabled": {
                                "enum": [ "enabled", "disabled", "required" ]
                            },
                            "mode": {
                                "enum": [ "windowsNetwork", "windowsInteractive" ]
                            },
                            "account": {
                                "type": [ "null", "string" ]
                            }
                        }
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "constant": "publicKey"
                            },
                            "enabled": {
                                "enum": [ "enabled", "disabled", "required" ]
                            },
                            "keys": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "algorithm": {
                                            "type": "string",
                                            "description": "Public key algorithm, e.g. 'ssh-rsa'"
                                        },
                                        "comment": {
                                            "type": ["null", "string"],
                                            "description": "Comment assigned to the public key"
                                        },
                                        "fingerprint": {
                                            "type": "string",
                                            "description": "SHA256 base-64 public key fingerprint with SHA256: prefix"
                                        }
                                    },
                                    "additionalProperties": false
                                }
                            }
                        }
                    }
                ]
            }
        },
        "ftp": {
            "type": ["boolean", "null"]
        },
        "paths": {
            "description": "Virtual path mappings",
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "virtual": {
                        "type": "string"
                    },
                    "physical": {
                        "type": "string"
                    },
                    "access": {
                        "type": "integer",
                        "description": "Bitmask value of none=0, read=1, write=2, delete=4, all=-1"
                    },
                    "accessArray": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "enum": [ "read", "write", "delete", "all" ]
                        }
                    }
                },
                "additionalProperties": false
            }
        },
        "impersonation": {
            "type": "object",
            "properties": {
                "enabled": {
                    "type": "boolean"
                },
                "account": {
                    "type": [ "null", "string" ]
                }
            },
            "required": [ "enabled", "account" ],
            "additionalProperties": false
        },
        "shell": {
            "type": "object",
            "properties": {
                "type": {
                    "enum": [null, "none", "legacy", "terminal"]
                },
                "home": {
                    "type": ["null", "string"]
                },
                "shellPath": {
                    "type": ["null", "string"]
                }
            }
        },
        "loginStatus": {
            "type": "object",
            "properties": {
                "lockout": {
                    "type": [ "null", "object" ],
                    "properties": {
                        "until": {
                            "type": [ "null", "string" ],
                            "format": "date-time"
                        },
                        "reason": {
                            "type": "string",
                            "enum": [ "manual", "tooManyFailedLogins" ]
                        }
                    },
                    "required": [ "until", "reason" ],
                    "additionalProperties": false
                }
            }
        }
    },
    "required": [ "username", "impersonation" ],
    "additionalProperties": false
}