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

in source/common/json/config_schemas.cc [1225:1347]


const std::string Json::Schema::TOP_LEVEL_CONFIG_SCHEMA(R"EOF(
  {
    "$schema": "http://json-schema.org/schema#",
    "definitions" : {
      "lightstep_driver" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "enum" : ["lightstep"]
          },
          "config" : {
            "type" : "object",
            "properties" : {
              "collector_cluster" : {"type" : "string"},
              "access_token_file" : {"type" : "string"}
            },
            "required": ["collector_cluster", "access_token_file"],
            "additionalProperties" : false
          }
        },
        "required" : ["type", "config"],
        "additionalProperties" : false
      },
      "zipkin_driver" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "enum" : ["zipkin"]
          },
          "config" : {
            "type" : "object",
            "properties" : {
              "collector_cluster" : {"type" : "string"},
              "collector_endpoint": {"type": "string"}
            },
            "required": ["collector_cluster"],
            "additionalProperties" : false
          }
        },
        "required" : ["type", "config"],
        "additionalProperties" : false
      },
      "rate_limit_service" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "enum" : ["grpc_service"]
          },
          "config" : {
            "type" : "object",
            "properties" : {
              "cluster_name" :{"type" : "string"}
            },
            "required" : ["cluster_name"],
            "additionalProperties" : false
          }
        },
        "required" : ["type", "config"],
        "additionalProperties" : false
      }
    },
    "type" : "object",
    "properties" : {
      "listeners" : {
        "type" : "array",
        "items" : {"type" : "object"}
      },
      "lds" : {"type" : "object"},
      "admin" : {
        "type" : "object",
        "properties" : {
          "access_log_path" : {"type" : "string"},
          "profile_path" : {"type" : "string"},
          "address" : {"type" : "string"}
        },
        "required" : ["access_log_path", "address"],
        "additionalProperties" : false
      },
      "cluster_manager" : {"type" : "object"},
      "flags_path" : {"type" : "string"},
      "statsd_udp_ip_address" : {"type" : "string"},
      "statsd_tcp_cluster_name" : {"type" : "string"},
      "stats_flush_interval_ms" : {"type" : "integer"},
      "watchdog_miss_timeout_ms" : {"type" : "integer"},
      "watchdog_megamiss_timeout_ms" : {"type" : "integer"},
      "watchdog_kill_timeout_ms" : {"type" : "integer"},
      "watchdog_multikill_timeout_ms" : {"type" : "integer"},
      "tracing" : {
        "type" : "object",
        "properties" : {
          "http": {
            "type" : "object",
            "properties" : {
              "driver" : {
                "type" : "object",
                "oneOf" : [
                  {"$ref" : "#/definitions/lightstep_driver"},
                  {"$ref" : "#/definitions/zipkin_driver"}
                ]
              }
            },
            "additionalProperties" : false
          }
        }
      },
      "rate_limit_service" : {"$ref" : "#/definitions/rate_limit_service"},
      "runtime" : {
        "type" : "object",
        "properties" : {
          "symlink_root" : {"type" : "string"},
          "subdirectory" : {"type" : "string"},
          "override_subdirectory" : {"type" : "string"}
        },
        "required" : ["symlink_root", "subdirectory"],
        "additionalProperties" : false
      }
    },
    "required" : ["listeners", "admin", "cluster_manager"],
    "additionalProperties" : false
  }