/proc/self/cwd/envoy/grpc/google_grpc_creds.h
Line | Count | Source |
1 | | #pragma once |
2 | | |
3 | | #include <memory> |
4 | | |
5 | | #include "envoy/api/api.h" |
6 | | #include "envoy/common/pure.h" |
7 | | #include "envoy/config/core/v3/grpc_service.pb.h" |
8 | | #include "envoy/config/typed_config.h" |
9 | | |
10 | | #include "grpcpp/grpcpp.h" |
11 | | |
12 | | namespace Envoy { |
13 | | namespace Grpc { |
14 | | |
15 | | /** |
16 | | * Interface for all Google gRPC credentials factories. |
17 | | */ |
18 | | class GoogleGrpcCredentialsFactory : public Config::UntypedFactory { |
19 | | public: |
20 | | ~GoogleGrpcCredentialsFactory() override = default; |
21 | | |
22 | | /** |
23 | | * Get a ChannelCredentials to be used for authentication of a gRPC channel. |
24 | | * |
25 | | * GoogleGrpcCredentialsFactory should always return a ChannelCredentials. To use CallCredentials, |
26 | | * the ChannelCredentials can be created by using a combination of CompositeChannelCredentials and |
27 | | * CompositeCallCredentials to combine multiple credentials. |
28 | | * |
29 | | * @param grpc_service_config contains configuration options |
30 | | * @param api reference to the Api object |
31 | | * @return std::shared_ptr<grpc::ChannelCredentials> to be used to authenticate a Google gRPC |
32 | | * channel. |
33 | | */ |
34 | | virtual std::shared_ptr<grpc::ChannelCredentials> |
35 | | getChannelCredentials(const envoy::config::core::v3::GrpcService& grpc_service_config, |
36 | | Api::Api& api) PURE; |
37 | | |
38 | 64 | std::string category() const override { return "envoy.grpc_credentials"; } |
39 | | }; |
40 | | |
41 | | } // namespace Grpc |
42 | | } // namespace Envoy |