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
}