1
#pragma once
2

            
3
#include "envoy/content_parser/config.h"
4
#include "envoy/extensions/content_parsers/json/v3/json_content_parser.pb.h"
5
#include "envoy/extensions/content_parsers/json/v3/json_content_parser.pb.validate.h"
6

            
7
namespace Envoy {
8
namespace Extensions {
9
namespace ContentParsers {
10
namespace Json {
11

            
12
/**
13
 * Config registration for the JSON content parser.
14
 */
15
class JsonContentParserConfigFactory : public ContentParser::NamedContentParserConfigFactory {
16
public:
17
  ContentParser::ParserFactoryPtr
18
  createParserFactory(const Protobuf::Message& config,
19
                      Server::Configuration::ServerFactoryContext& context) override;
20

            
21
112
  ProtobufTypes::MessagePtr createEmptyConfigProto() override {
22
112
    return std::make_unique<envoy::extensions::content_parsers::json::v3::JsonContentParser>();
23
112
  }
24

            
25
44
  std::string name() const override { return "envoy.content_parsers.json"; }
26
};
27

            
28
} // namespace Json
29
} // namespace ContentParsers
30
} // namespace Extensions
31
} // namespace Envoy