local typedefs = require "kong.db.schema.typedefs"

return {
    name = "custom-baisic-auth",
    fields = {
        {protocols = typedefs.protocols_http},
        {consumer = typedefs.no_consumer}, {
            config = {
                type = "record",
                fields = {
                    {redis_host = typedefs.host({required = true})},
                    {redis_port = typedefs.port({default = 6379})},
                    {redis_password = {type = "string", len_min = 0}},
                    {redis_username = {type = "string"}},
                    {redis_timeout = {type = "number", default = 2000}},
                    {redis_database = {type = "integer", default = 0}},
                    {
                        redis_ssl = {
                            type = "boolean",
                            required = true,
                            default = false
                        }
                    },
                    {
                        redis_ssl_verify = {
                            type = "boolean",
                            required = true,
                            default = false
                        }
                    },
                    {
                        nonce_key = {
                            type = "string",
                            required = true,
                            len_eq = 16
                        }
                    },
                    {nonce_iv = {type = "string", required = true, len_eq = 16}},
                    {
                        error_format = {
                            type = "string",
                            default = "openapi",
                            one_of = {"dataapi", "openapi"}
                        }
                    }
                }
            }
        }
    }
}
