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

return {
  name = "o11y-proxy",
  fields = {
    { consumer = typedefs.no_consumer },
    { protocols = typedefs.protocols_http },
    {
      config = {
        type = "record",
        fields = {
          {
            require_auth = {
              type = "boolean",
              required = false,
              default = true,
            }
          },
          {
            router_service_url = {
              type = "string",
              required = true,
            }
          },
          {
            authn_service_url = {
              type = "string",
              required = false,
            }
          },
          {
            authz_service_url = {
              type = "string",
              required = false,
            }
          },
          {
            region = {
              type = "string",
              required = false,
              default = "us-west-2",
            }
          },
          {
            router_timeout = {
              type = "number",
              required = false,
              default = 5000,
            }
          },
          {
            authn_timeout = {
              type = "number",
              required = false,
              default = 10000,
            }
          },
          {
            authz_timeout = {
              type = "number",
              required = false,
              default = 10000,
            }
          },
          {
            aws_sts_timeout = {
              type = "number",
              required = false,
              default = 10000,
            }
          },
          {
            router_cache_ttl = {
              type = "number",
              required = false,
              default = 300,
            }
          },
          {
            authn_cache_ttl = {
              type = "number",
              required = false,
              default = 1800,
            }
          },
          {
            authz_cache_ttl = {
              type = "number",
              required = false,
              default = 60,
            }
          },
        }
      }
    }
  },
}
