1
#pragma once
2

            
3
#include "envoy/server/transport_socket_config.h"
4

            
5
namespace Envoy {
6
namespace Extensions {
7
namespace TransportSockets {
8
namespace Alts {
9

            
10
// ALTS config registry
11
class AltsTransportSocketConfigFactory
12
    : public virtual Server::Configuration::TransportSocketConfigFactory {
13
public:
14
  ProtobufTypes::MessagePtr createEmptyConfigProto() override;
15
28
  std::string name() const override { return "envoy.transport_sockets.alts"; }
16
};
17

            
18
class UpstreamAltsTransportSocketConfigFactory
19
    : public AltsTransportSocketConfigFactory,
20
      public Server::Configuration::UpstreamTransportSocketConfigFactory {
21
public:
22
  absl::StatusOr<Network::UpstreamTransportSocketFactoryPtr>
23
  createTransportSocketFactory(const Protobuf::Message&,
24
                               Server::Configuration::TransportSocketFactoryContext&) override;
25
};
26

            
27
class DownstreamAltsTransportSocketConfigFactory
28
    : public AltsTransportSocketConfigFactory,
29
      public Server::Configuration::DownstreamTransportSocketConfigFactory {
30
public:
31
  absl::StatusOr<Network::DownstreamTransportSocketFactoryPtr>
32
  createTransportSocketFactory(const Protobuf::Message&,
33
                               Server::Configuration::TransportSocketFactoryContext&,
34
                               const std::vector<std::string>&) override;
35
};
36

            
37
} // namespace Alts
38
} // namespace TransportSockets
39
} // namespace Extensions
40
} // namespace Envoy