const std::string Json::Schema::HTTP_RATE_LIMITS_CONFIGURATION_SCHEMA()

in source/common/json/config_schemas.cc [820:928]


const std::string Json::Schema::HTTP_RATE_LIMITS_CONFIGURATION_SCHEMA(R"EOF(
  {
    "$schema": "http://json-schema.org/schema#",
    "definitions" : {
      "source_cluster" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "enum" : ["source_cluster"]
          }
        },
        "required" : ["type"],
        "additionalProperties" : false
      },
      "destination_cluster" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "enum" : ["destination_cluster"]
          }
        },
        "required" : ["type"],
        "additionalProperties" : false
      },
      "request_headers" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "enum" : ["request_headers"]
          },
          "header_name" : {"type" : "string"},
          "descriptor_key" : {"type" : "string"}
        },
        "required" : ["type", "header_name", "descriptor_key"],
        "additionalProperties" : false
      },
      "remote_address" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "enum" : ["remote_address"]
          }
        },
        "required" : ["type"],
        "additionalProperties" : false
      },
      "generic_key" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "enum" : ["generic_key"]
          },
          "descriptor_value" : {"type" : "string"}
        },
        "required" : ["type", "descriptor_value"],
        "additionalProperties" : false
      },
      "header_value_match" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "enum" : ["header_value_match"]
          },
          "descriptor_value" : {"type" : "string"},
          "expect_match" : {"type" : "boolean"},
          "headers" : {
            "type" : "array",
            "minItems" : 1,
            "items" : {
              "type" : "object"
            }
          },
          "required" : ["type", "descriptor_value", "headers"],
          "additionalProperties" : false
        }
      }
    },
    "type" : "object",
    "properties" : {
      "stage" : {
        "type" : "integer",
        "minimum" : 0,
        "maximum" : 10
      },
      "disable_key" : {"type" : "string"},
      "actions" : {
        "type" : "array",
        "minItems": 1,
        "items" : {
          "anyOf" : [
            {"$ref" : "#/definitions/source_cluster"},
            {"$ref" : "#/definitions/destination_cluster"},
            {"$ref" : "#/definitions/request_headers"},
            {"$ref" : "#/definitions/remote_address"},
            {"$ref" : "#/definitions/generic_key"},
            {"$ref" : "#/definitions/header_value_match"}
          ]
        }
      }
    },
    "required" : ["actions"],
    "additionalProperties" : false
  }