1
#include "source/extensions/config/validators/minimum_clusters/config.h"
2

            
3
#include "envoy/extensions/config/validators/minimum_clusters/v3/minimum_clusters.pb.h"
4
#include "envoy/extensions/config/validators/minimum_clusters/v3/minimum_clusters.pb.validate.h"
5
#include "envoy/registry/registry.h"
6

            
7
#include "source/common/config/resource_name.h"
8

            
9
namespace Envoy {
10
namespace Extensions {
11
namespace Config {
12
namespace Validators {
13

            
14
Envoy::Config::ConfigValidatorPtr MinimumClustersValidatorFactory::createConfigValidator(
15
10
    const Protobuf::Any& config, ProtobufMessage::ValidationVisitor& validation_visitor) {
16
10
  const auto& validator_config = MessageUtil::anyConvertAndValidate<
17
10
      envoy::extensions::config::validators::minimum_clusters::v3::MinimumClustersValidator>(
18
10
      config, validation_visitor);
19

            
20
10
  return std::make_unique<MinimumClustersValidator>(validator_config);
21
10
}
22

            
23
5
Envoy::ProtobufTypes::MessagePtr MinimumClustersValidatorFactory::createEmptyConfigProto() {
24
5
  return std::make_unique<
25
5
      envoy::extensions::config::validators::minimum_clusters::v3::MinimumClustersValidator>();
26
5
}
27

            
28
24
std::string MinimumClustersValidatorFactory::name() const {
29
24
  return absl::StrCat(category(), ".minimum_clusters_validator");
30
24
}
31

            
32
8
std::string MinimumClustersValidatorFactory::typeUrl() const {
33
8
  return Envoy::Config::getTypeUrl<envoy::config::cluster::v3::Cluster>();
34
8
}
35

            
36
/**
37
 * Static registration for this config validator factory. @see RegisterFactory.
38
 */
39
LEGACY_REGISTER_FACTORY(MinimumClustersValidatorFactory, Envoy::Config::ConfigValidatorFactory,
40
                        "envoy.config.validators.minimum_clusters");
41

            
42
} // namespace Validators
43
} // namespace Config
44
} // namespace Extensions
45
} // namespace Envoy