in router/src/rest_routing/src/rest_routing_plugin.cc [291:1326]
static void spec_adder(RestApiComponent::JsonDocument &spec_doc) {
auto &allocator = spec_doc.GetAllocator();
{
JsonPointer ptr(tags_append_tokens.data(), tags_append_tokens.size());
ptr.Set(spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember("name", "routes", allocator)
.AddMember("description", "Routes", allocator),
allocator);
}
// /definitions/RoutingGlobalStatus
const RestApiComponent::JsonPointer routing_status_def_ptr(
routing_status_def_tokens.data(), routing_status_def_tokens.size());
routing_status_def_ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember("totalMaxConnections",
"number of total connections allowed", allocator)
.AddMember("currentMaxConnections",
"number of current total connections", allocator),
allocator);
std::string routing_status_def_ptr_str =
json_pointer_stringfy(routing_status_def_ptr);
// /definitions/RoutingGuidelinesDef
const RestApiComponent::JsonPointer routing_guidelines_def_ptr(
routing_guidelines_def.data(), routing_guidelines_def.size());
routing_guidelines_def_ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "object", allocator)
.AddMember("additionalProperties", "true", allocator),
allocator);
std::string routing_guidelines_def_ptr_str =
json_pointer_stringfy(routing_guidelines_def_ptr);
// /parameters/routeNameParam
const RestApiComponent::JsonPointer route_name_param_ptr(
route_name_param_tokens.data(), route_name_param_tokens.size());
route_name_param_ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember("name", "routeName", allocator)
.AddMember("in", "path", allocator)
.AddMember("description", "name of a route", allocator)
.AddMember("required", true, allocator)
.AddMember("type", "string", allocator),
allocator);
std::string route_name_param_str =
json_pointer_stringfy(route_name_param_ptr);
// /definitions/RoutesHealth
const RestApiComponent::JsonPointer routes_health_def_ptr(
routes_health_def_tokens.data(), routes_health_def_tokens.size());
routes_health_def_ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "object", allocator)
.AddMember(
"properties",
JsonValue(rapidjson::kObjectType)
.AddMember("isAlive",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "boolean", allocator),
allocator),
allocator),
allocator);
std::string routes_health_def_ptr_str =
json_pointer_stringfy(routes_health_def_ptr);
// /definitions/RoutesStatus
const RestApiComponent::JsonPointer routes_status_def_ptr(
routes_status_def_tokens.data(), routes_status_def_tokens.size());
routes_status_def_ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "object", allocator)
.AddMember(
"properties",
JsonValue(rapidjson::kObjectType)
.AddMember("activeConnections",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "integer", allocator),
allocator)
.AddMember("totalConnections",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "integer", allocator),
allocator)
.AddMember("blockedHosts",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "integer", allocator),
allocator),
allocator),
allocator);
std::string routes_status_def_ptr_str =
json_pointer_stringfy(routes_status_def_ptr);
// /definitions/RoutesConfig
const RestApiComponent::JsonPointer routes_config_def_ptr(
routes_config_def_tokens.data(), routes_config_def_tokens.size());
routes_config_def_ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "object", allocator)
.AddMember(
"properties",
JsonValue(rapidjson::kObjectType)
.AddMember("bindAddress",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "string", allocator),
allocator)
.AddMember("bindPort",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "integer", allocator),
allocator)
.AddMember("clientConnectTimeoutInMs",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "integer", allocator),
allocator)
.AddMember("destinationConnectTimeoutInMs",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "integer", allocator),
allocator)
.AddMember("maxActiveConnections",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "integer", allocator),
allocator)
.AddMember("maxConnectErrors",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "integer", allocator),
allocator)
.AddMember("protocol",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "string", allocator),
allocator)
// these are stubbed now
// .AddMember("destinationClusterName",
// JsonValue(rapidjson::kObjectType)
// .AddMember("type",
// "string", allocator),
// allocator)
// .AddMember("destinationReplicasetName",
// JsonValue(rapidjson::kObjectType)
// .AddMember("type",
// "string", allocator),
// allocator)
.AddMember("socket",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "string", allocator),
allocator)
.AddMember("routingStrategy",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "string", allocator),
allocator)
.AddMember("mode",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "string", allocator),
allocator),
allocator),
allocator);
std::string routes_config_def_ptr_str =
json_pointer_stringfy(routes_config_def_ptr);
// /definitions/RoutesSummary
const RestApiComponent::JsonPointer routes_summary_def_ptr(
routes_summary_def_tokens.data(), routes_summary_def_tokens.size());
routes_summary_def_ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "object", allocator)
.AddMember("properties",
JsonValue(rapidjson::kObjectType)
.AddMember("name",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "string", allocator),
allocator),
allocator),
allocator);
std::string routes_summary_def_ptr_str =
json_pointer_stringfy(routes_summary_def_ptr);
// /definitions/RoutesList
const RestApiComponent::JsonPointer routes_list_def_ptr(
routes_list_def_tokens.data(), routes_list_def_tokens.size());
routes_list_def_ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "object", allocator)
.AddMember(
"properties",
JsonValue(rapidjson::kObjectType)
.AddMember(
"items",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "array", allocator)
.AddMember(
"items",
JsonValue(rapidjson::kObjectType)
.AddMember(
"$ref",
JsonValue(
routes_summary_def_ptr_str.data(),
routes_summary_def_ptr_str.size(),
allocator),
allocator),
allocator),
allocator),
allocator),
allocator);
std::string routes_list_def_ptr_str =
json_pointer_stringfy(routes_list_def_ptr);
// /definitions/RoutesDestinationSummary
const RestApiComponent::JsonPointer routes_destination_summary_def_ptr(
routes_destination_summary_def_tokens.data(),
routes_destination_summary_def_tokens.size());
routes_destination_summary_def_ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "object", allocator)
.AddMember("properties",
JsonValue(rapidjson::kObjectType)
.AddMember("name",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "string", allocator),
allocator),
allocator),
allocator);
std::string routes_destination_summary_def_ptr_str =
json_pointer_stringfy(routes_destination_summary_def_ptr);
// /definitions/RoutesDestinationList
const RestApiComponent::JsonPointer routes_destination_list_def_ptr(
routes_destination_list_def_tokens.data(),
routes_destination_list_def_tokens.size());
routes_destination_list_def_ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "object", allocator)
.AddMember(
"properties",
JsonValue(rapidjson::kObjectType)
.AddMember(
"items",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "array", allocator)
.AddMember(
"items",
JsonValue(rapidjson::kObjectType)
.AddMember(
"$ref",
JsonValue(
routes_destination_summary_def_ptr_str
.data(),
routes_destination_summary_def_ptr_str
.size(),
allocator),
allocator),
allocator),
allocator),
allocator),
allocator);
std::string routes_destination_list_def_ptr_str =
json_pointer_stringfy(routes_destination_list_def_ptr);
// /definitions/RoutesBlockedHostSummary
const RestApiComponent::JsonPointer routes_blockedhost_summary_def_ptr(
routes_blockedhost_summary_def_tokens.data(),
routes_blockedhost_summary_def_tokens.size());
routes_blockedhost_summary_def_ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "object", allocator)
.AddMember("properties",
JsonValue(rapidjson::kObjectType)
.AddMember("name",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "string", allocator),
allocator),
allocator),
allocator);
std::string routes_blockedhost_summary_def_ptr_str =
json_pointer_stringfy(routes_blockedhost_summary_def_ptr);
// /definitions/RoutesBlockedHostList
const RestApiComponent::JsonPointer routes_blockedhost_list_def_ptr(
routes_blockedhost_list_def_tokens.data(),
routes_blockedhost_list_def_tokens.size());
routes_blockedhost_list_def_ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "object", allocator)
.AddMember(
"properties",
JsonValue(rapidjson::kObjectType)
.AddMember(
"items",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "array", allocator)
.AddMember(
"items",
JsonValue(rapidjson::kObjectType)
.AddMember(
"$ref",
JsonValue(
routes_blockedhost_summary_def_ptr_str
.data(),
routes_blockedhost_summary_def_ptr_str
.size(),
allocator),
allocator),
allocator),
allocator),
allocator),
allocator);
std::string routes_blockedhost_list_def_ptr_str =
json_pointer_stringfy(routes_blockedhost_list_def_ptr);
// /definitions/RoutesConnectionSummary
const RestApiComponent::JsonPointer routes_connection_summary_def_ptr(
routes_connection_summary_def_tokens.data(),
routes_connection_summary_def_tokens.size());
routes_connection_summary_def_ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "object", allocator)
.AddMember(
"properties",
JsonValue(rapidjson::kObjectType)
.AddMember(RestRoutingConnections::kKeyTimeStarted,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "string", allocator)
.AddMember("format", "date-time", allocator)
.AddMember("description",
"timepoint when connection to "
"server was initiated",
allocator),
allocator)
.AddMember(
RestRoutingConnections::kKeyTimeConnectedToServer,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "string", allocator)
.AddMember("format", "date-time", allocator)
.AddMember(
"description",
"timepoint when connection to server succeeded",
allocator),
allocator)
.AddMember(RestRoutingConnections::kKeyTimeLastSentToServer,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "string", allocator)
.AddMember("format", "date-time", allocator)
.AddMember("description",
"timepoint when there was last "
"data sent from client to server",
allocator),
allocator)
.AddMember(
RestRoutingConnections::kKeyTimeLastReceivedFromServer,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "string", allocator)
.AddMember("format", "date-time", allocator)
.AddMember("description",
"timepoint when there was last data sent "
"from server to client",
allocator),
allocator)
.AddMember(
RestRoutingConnections::kKeyBytesToServer,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "integer", allocator)
.AddMember("description", "bytes sent to destination",
allocator),
allocator)
.AddMember(RestRoutingConnections::kKeyBytesFromServer,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "integer", allocator)
.AddMember("description",
"bytes received from destination",
allocator),
allocator)
.AddMember(
RestRoutingConnections::kKeyDestinationAddress,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "string", allocator)
.AddMember(
"description",
"address of the destination of the connection",
allocator),
allocator)
.AddMember(
RestRoutingConnections::kKeySourceAddress,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "string", allocator)
.AddMember("description",
"address of the source of the connection",
allocator),
allocator),
allocator),
allocator);
std::string routes_connection_summary_def_ptr_str =
json_pointer_stringfy(routes_connection_summary_def_ptr);
// /definitions/RoutesConnectionList
const RestApiComponent::JsonPointer routes_connection_list_def_ptr(
routes_connection_list_def_tokens.data(),
routes_connection_list_def_tokens.size());
routes_connection_list_def_ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember("type", "object", allocator)
.AddMember(
"properties",
JsonValue(rapidjson::kObjectType)
.AddMember(
"items",
JsonValue(rapidjson::kObjectType)
.AddMember("type", "array", allocator)
.AddMember(
"items",
JsonValue(rapidjson::kObjectType)
.AddMember(
"$ref",
JsonValue(
routes_connection_summary_def_ptr_str
.data(),
routes_connection_summary_def_ptr_str
.size(),
allocator),
allocator),
allocator),
allocator),
allocator),
allocator);
std::string routes_connection_list_def_ptr_str =
json_pointer_stringfy(routes_connection_list_def_ptr);
// /paths/routingStatus
{
JsonPointer ptr(routing_status_path_tokens.data(),
routing_status_path_tokens.size());
ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember(
"get",
JsonValue(rapidjson::kObjectType)
.AddMember("tags",
JsonValue(rapidjson::kArrayType)
.PushBack("routing", allocator),
allocator)
.AddMember("description",
"Get status of the routing plugin", allocator)
.AddMember(
"responses",
JsonValue(rapidjson::kObjectType)
.AddMember(
"200",
JsonValue(rapidjson::kObjectType)
.AddMember("description",
"status of the routing plugin",
allocator)
.AddMember(
"schema",
JsonValue(rapidjson::kObjectType)
.AddMember(
"$ref",
JsonValue(
routing_status_def_ptr_str
.data(),
routing_status_def_ptr_str
.size(),
allocator),
allocator),
allocator),
allocator),
allocator),
allocator),
allocator);
}
// /guidelines schema
{
JsonPointer ptr(routing_guidelines_schema_tokens.data(),
routing_guidelines_schema_tokens.size());
ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember(
"get",
JsonValue(rapidjson::kObjectType)
.AddMember("tags",
JsonValue(rapidjson::kArrayType)
.PushBack("routing", allocator),
allocator)
.AddMember("description",
"Get routing guidelines document schema",
allocator)
.AddMember(
"responses",
JsonValue(rapidjson::kObjectType)
.AddMember(
"200",
JsonValue(rapidjson::kObjectType)
.AddMember(
"description",
"routing guidelines document schema",
allocator)
.AddMember(
"schema",
JsonValue(rapidjson::kObjectType)
.AddMember(
"$ref",
JsonValue(
routing_guidelines_def_ptr_str
.data(),
routing_guidelines_def_ptr_str
.size(),
allocator),
allocator),
allocator),
allocator),
allocator),
allocator),
allocator);
}
// /guidelines
{
JsonPointer ptr(routing_guidelines_tokens.data(),
routing_guidelines_tokens.size());
ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember(
"get",
JsonValue(rapidjson::kObjectType)
.AddMember("tags",
JsonValue(rapidjson::kArrayType)
.PushBack("routing", allocator),
allocator)
.AddMember("description", "Get routing guidelines document",
allocator)
.AddMember(
"responses",
JsonValue(rapidjson::kObjectType)
.AddMember(
"200",
JsonValue(rapidjson::kObjectType)
.AddMember("description",
"routing guidelines document",
allocator)
.AddMember(
"schema",
JsonValue(rapidjson::kObjectType)
.AddMember(
"$ref",
JsonValue(
routing_guidelines_def_ptr_str
.data(),
routing_guidelines_def_ptr_str
.size(),
allocator),
allocator),
allocator),
allocator),
allocator),
allocator),
allocator);
}
// /paths/routesConfig
{
JsonPointer ptr(routes_config_path_tokens.data(),
routes_config_path_tokens.size());
ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember(
"get",
JsonValue(rapidjson::kObjectType)
.AddMember("tags",
JsonValue(rapidjson::kArrayType)
.PushBack("routes", allocator),
allocator)
.AddMember("description", "Get config of a route",
allocator)
.AddMember(
"responses",
JsonValue(rapidjson::kObjectType)
.AddMember(
"200",
JsonValue(rapidjson::kObjectType)
.AddMember("description",
"config of a route", allocator)
.AddMember(
"schema",
JsonValue(rapidjson::kObjectType)
.AddMember(
"$ref",
JsonValue(
routes_config_def_ptr_str
.data(),
routes_config_def_ptr_str
.size(),
allocator),
allocator),
allocator),
allocator)
.AddMember(
"404",
JsonValue(rapidjson::kObjectType)
.AddMember("description", "route not found",
allocator),
allocator),
allocator)
//
,
allocator)
.AddMember(
"parameters",
JsonValue(rapidjson::kArrayType)
.PushBack(
JsonValue(rapidjson::kObjectType)
.AddMember("$ref",
JsonValue(route_name_param_str.data(),
route_name_param_str.size(),
allocator),
allocator),
allocator),
allocator),
allocator);
}
// /paths/routesStatus
{
JsonPointer ptr(routes_status_path_tokens.data(),
routes_status_path_tokens.size());
ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember(
"get",
JsonValue(rapidjson::kObjectType)
.AddMember("tags",
JsonValue(rapidjson::kArrayType)
.PushBack("routes", allocator),
allocator)
.AddMember("description", "Get status of a route",
allocator)
.AddMember(
"responses",
JsonValue(rapidjson::kObjectType)
.AddMember(
"200",
JsonValue(rapidjson::kObjectType)
.AddMember("description",
"status of a route", allocator)
.AddMember(
"schema",
JsonValue(rapidjson::kObjectType)
.AddMember(
"$ref",
JsonValue(
routes_status_def_ptr_str
.data(),
routes_status_def_ptr_str
.size(),
allocator),
allocator),
allocator),
allocator)
.AddMember(
"404",
JsonValue(rapidjson::kObjectType)
.AddMember("description", "route not found",
allocator),
allocator),
allocator)
//
,
allocator)
.AddMember(
"parameters",
JsonValue(rapidjson::kArrayType)
.PushBack(
JsonValue(rapidjson::kObjectType)
.AddMember("$ref",
JsonValue(route_name_param_str.data(),
route_name_param_str.size(),
allocator),
allocator),
allocator),
allocator),
allocator);
}
// /paths/RoutesHealth
{
JsonPointer ptr(routes_health_path_tokens.data(),
routes_health_path_tokens.size());
ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember(
"get",
JsonValue(rapidjson::kObjectType)
.AddMember("tags",
JsonValue(rapidjson::kArrayType)
.PushBack("routes", allocator),
allocator)
.AddMember("description", "Get health of a route",
allocator)
.AddMember(
"responses",
JsonValue(rapidjson::kObjectType)
.AddMember(
"200",
JsonValue(rapidjson::kObjectType)
.AddMember("description",
"health of a route", allocator)
.AddMember(
"schema",
JsonValue(rapidjson::kObjectType)
.AddMember(
"$ref",
JsonValue(
routes_health_def_ptr_str
.data(),
routes_health_def_ptr_str
.size(),
allocator),
allocator),
allocator),
allocator)
.AddMember(
"404",
JsonValue(rapidjson::kObjectType)
.AddMember("description", "route not found",
allocator),
allocator),
allocator)
//
,
allocator)
.AddMember(
"parameters",
JsonValue(rapidjson::kArrayType)
.PushBack(
JsonValue(rapidjson::kObjectType)
.AddMember("$ref",
JsonValue(route_name_param_str.data(),
route_name_param_str.size(),
allocator),
allocator),
allocator),
allocator),
allocator);
}
// /paths/RoutesDestinations
{
JsonPointer ptr(routes_destination_list_path_tokens.data(),
routes_destination_list_path_tokens.size());
ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember(
"get",
JsonValue(rapidjson::kObjectType)
.AddMember("tags",
JsonValue(rapidjson::kArrayType)
.PushBack("routes", allocator),
allocator)
.AddMember("description", "Get destinations of a route",
allocator)
.AddMember(
"responses",
JsonValue(rapidjson::kObjectType)
.AddMember(
"200",
JsonValue(rapidjson::kObjectType)
.AddMember("description",
"destinations of a route",
allocator)
.AddMember(
"schema",
JsonValue(rapidjson::kObjectType)
.AddMember(
"$ref",
JsonValue(
routes_destination_list_def_ptr_str
.data(),
routes_destination_list_def_ptr_str
.size(),
allocator),
allocator),
allocator),
allocator)
.AddMember(
"404",
JsonValue(rapidjson::kObjectType)
.AddMember("description", "route not found",
allocator),
allocator),
allocator)
//
,
allocator)
.AddMember(
"parameters",
JsonValue(rapidjson::kArrayType)
.PushBack(
JsonValue(rapidjson::kObjectType)
.AddMember("$ref",
JsonValue(route_name_param_str.data(),
route_name_param_str.size(),
allocator),
allocator),
allocator),
allocator),
allocator);
}
// /paths/RoutesConnections
{
JsonPointer ptr(routes_connection_list_path_tokens.data(),
routes_connection_list_path_tokens.size());
ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember(
"get",
JsonValue(rapidjson::kObjectType)
.AddMember("tags",
JsonValue(rapidjson::kArrayType)
.PushBack("routes", allocator),
allocator)
.AddMember("description", "Get connections of a route",
allocator)
.AddMember(
"responses",
JsonValue(rapidjson::kObjectType)
.AddMember(
"200",
JsonValue(rapidjson::kObjectType)
.AddMember("description",
"connections of a route",
allocator)
.AddMember(
"schema",
JsonValue(rapidjson::kObjectType)
.AddMember(
"$ref",
JsonValue(
routes_connection_list_def_ptr_str
.data(),
routes_connection_list_def_ptr_str
.size(),
allocator),
allocator),
allocator),
allocator)
.AddMember(
"404",
JsonValue(rapidjson::kObjectType)
.AddMember("description", "route not found",
allocator),
allocator),
allocator)
//
,
allocator)
.AddMember(
"parameters",
JsonValue(rapidjson::kArrayType)
.PushBack(
JsonValue(rapidjson::kObjectType)
.AddMember("$ref",
JsonValue(route_name_param_str.data(),
route_name_param_str.size(),
allocator),
allocator),
allocator),
allocator),
allocator);
}
// /paths/RoutesBlockedHosts
{
JsonPointer ptr(routes_blockedhost_list_path_tokens.data(),
routes_blockedhost_list_path_tokens.size());
ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember(
"get",
JsonValue(rapidjson::kObjectType)
.AddMember("tags",
JsonValue(rapidjson::kArrayType)
.PushBack("routes", allocator),
allocator)
.AddMember("description",
"Get blocked host list for a route", allocator)
.AddMember(
"responses",
JsonValue(rapidjson::kObjectType)
.AddMember(
"200",
JsonValue(rapidjson::kObjectType)
.AddMember("description",
"blocked host list for a route",
allocator)
.AddMember(
"schema",
JsonValue(rapidjson::kObjectType)
.AddMember(
"$ref",
JsonValue(
routes_blockedhost_list_def_ptr_str
.data(),
routes_blockedhost_list_def_ptr_str
.size(),
allocator),
allocator),
allocator),
allocator)
.AddMember(
"404",
JsonValue(rapidjson::kObjectType)
.AddMember("description", "route not found",
allocator),
allocator),
allocator)
//
,
allocator)
.AddMember(
"parameters",
JsonValue(rapidjson::kArrayType)
.PushBack(
JsonValue(rapidjson::kObjectType)
.AddMember("$ref",
JsonValue(route_name_param_str.data(),
route_name_param_str.size(),
allocator),
allocator),
allocator),
allocator),
allocator);
}
// /paths/routes/
{
JsonPointer ptr(routes_list_path_tokens.data(),
routes_list_path_tokens.size());
ptr.Set(
spec_doc,
JsonValue(rapidjson::kObjectType)
.AddMember(
"get",
JsonValue(rapidjson::kObjectType)
.AddMember("tags",
JsonValue(rapidjson::kArrayType)
.PushBack("routes", allocator),
allocator)
.AddMember("description", "Get list of the routes",
allocator)
.AddMember(
"responses",
JsonValue(rapidjson::kObjectType)
.AddMember(
"200",
JsonValue(rapidjson::kObjectType)
.AddMember("description",
"list of the routes", allocator)
.AddMember(
"schema",
JsonValue(rapidjson::kObjectType)
.AddMember(
"$ref",
JsonValue(
routes_list_def_ptr_str
.data(),
routes_list_def_ptr_str
.size(),
allocator),
allocator),
allocator),
allocator),
allocator),
allocator),
allocator);
}
}