{
  "$schema" : "https://json-schema.org/draft/2020-12/schema",
  "$id" : "https://voltdb.com/voltsp/schemas/source/beats",
  "title" : "Beats Source Configuration",
  "description" : "The `beats` source receives data from Elastic Beats agents.\n",
  "type" : "object",
  "properties" : {
    "beats" : {
      "type" : "object",
      "properties" : {
        "address" : {
          "type" : "string",
          "description" : "Sets the listening address in `host:port` format.",
          "anyOf" : [ {
            "type" : "string",
            "format" : "hostname"
          }, {
            "type" : "string",
            "format" : "ipv4"
          }, {
            "type" : "string",
            "format" : "ipv6"
          } ]
        },
        "clientInactivityTimeout" : {
          "type" : "string",
          "pattern" : "^(\\d+[smhd]|P(T|\\d+[YMD]).*)",
          "description" : "Time after which inactive connections will be closed.",
          "default" : "30s"
        },
        "decoder" : {
          "type" : "string",
          "description" : "Decoder to be applied to Beats data payloads received.\nExamples are decoders that convert incoming data to string or to byte arrays.\n"
        },
        "exceptionHandler" : {
          "type" : "string",
          "description" : "Custom exception handler enabling interception of all errors related to this source.\n"
        }
      },
      "required" : [ "address", "decoder" ],
      "additionalProperties" : false
    }
  },
  "required" : [ "beats" ],
  "additionalProperties" : false
}
