{
  "name"      : "Forwarders",
  "attributes": {
    "name"  : {"desc": "The name of the forwarder; no more than 30 characters."},
    "desc"  : {"desc": "The description of the forwarder."},
    "uuid"  : {"desc": "The unique identifier of the forwarder."},
    "config": {
      "attributes": {
        "events": {
          "name"      : "Events",
          "type"      : "object",
          "subtype"   : "source",
          "attributes": {
            "archives"  : {
              "name"       : "Source",
              "desc"       : "Select archives to forward events.",
              "requirement": "required",
              "type"       : "string",
              "subtype"    : "archive",
              "default"    : ["default"],
              "is_array"   : true
            },
            "when"      : {
              "name"       : "Filter",
              "desc"       : "The filter that specifies the subset of events to forward.",
              "requirement": "optional",
              "type"       : "string",
              "subtype"    : "filter"
            },
            // attribute filters, only one can be used
            "include"   : {
              "name"       : "Included Attributes",
              "desc"       : "The comma-delimited list of attributes to include in the forwarded data; takes precedence over the Excluded Attributes.",
              "requirement": "optional",
              "type"       : "string",
              "subtype"    : "field_name",
              "is_array"   : true
            },
            "exclude"   : {
              "name"       : "Excluded Attributes",
              "desc"       : "The comma-delimited list of attributes to exclude from the forwarded data.",
              "requirement": "optional",
              "type"       : "string",
              "subtype"    : "field_name",
              "is_array"   : true
            },
            "translate" : {
              "name" : "Translation",
              "desc" : "Translate enumerated values and/or event attribute names.",
              "requirement": "optional",
              "type" : "integer",
              "enum": {
                "0": {"name": "None"},
                "1": {"name": "Enumerated Values"},
                "2": {"name": "Enumerated Values and Attribute Names"},
                "3": {"name": "Verbose Mode"}
              },
              "default" : 0
            },
            "batch_size": {
              "name"       : "Batch Size",
              "desc"       : "Select the batch size.",
              "requirement": "optional",
              "type"       : "integer",
              "enum"       : {
                "10"  : {"name": "10"},
                "50"  : {"name": "50"},
                "100" : {"name": "100"},
                "500" : {"name": "500"},
                "1000": {"name": "1000"}
              },
              "default"    : 100
            },
            "rate_limit": {
              "name"       : "Rate Limit",
              "desc"       : "Select the rate limit (events per second).",
              "requirement": "optional",
              "type"       : "integer",
              "enum"       : {
                "0"    : {"name": "Unlimited"},
                "500"  : {"name": "500"},
                "1000" : {"name": "1000"},
                "5000" : {"name": "5000"},
                "10000": {"name": "10000"}
              },
              "default"    : 5000
            }
          }
        }
      }
    }
  }
}
