Fastly Compute C++ SDK
Loading...
Searching...
No Matches
security.h
Go to the documentation of this file.
1#ifndef FASTLY_SECURITY_H
2#define FASTLY_SECURITY_H
3
5#include <fastly/expected.h>
6#include <fastly/http/body.h>
8#include <optional>
9
13public:
15 InspectConfig() = default;
16
22 InspectConfig with_client_ip(std::string ip) && {
23 this->client_ip_ = std::move(ip);
24 return std::move(*this);
25 }
26
28 InspectConfig with_corp(std::string name) && {
29 this->corp_ = std::move(name);
30 return std::move(*this);
31 }
32
34 InspectConfig with_workspace(std::string name) && {
35 this->workspace_ = std::move(name);
36 return std::move(*this);
37 }
38
40 InspectConfig with_buffer_size(std::size_t size) && {
41 this->buffer_size_ = size;
42 return std::move(*this);
43 }
44
45 const std::optional<std::string> &client_ip() const { return client_ip_; }
46 const std::optional<std::string> &corp() const { return corp_; }
47 const std::optional<std::string> &workspace() const { return workspace_; }
48 const std::optional<std::size_t> &buffer_size() const { return buffer_size_; }
49
50private:
51 std::optional<std::string> client_ip_;
52 std::optional<std::string> corp_;
53 std::optional<std::string> workspace_;
54 std::optional<std::size_t> buffer_size_;
55};
56using fastly::sys::security::InspectErrorCode;
57using fastly::sys::security::InspectVerdict;
59public:
60 InspectError(fastly::sys::security::InspectError *e)
61 : err_(rust::Box<fastly::sys::security::InspectError>::from_raw(e)) {};
62 InspectError(rust::Box<fastly::sys::security::InspectError> e)
63 : err_(std::move(e)) {};
64 InspectErrorCode error_code();
65 std::string error_msg();
68 std::optional<std::size_t> required_buffer_size();
69
70private:
71 rust::Box<fastly::sys::security::InspectError> err_;
72};
73
75class InspectResponse {
77
78public:
80 std::int16_t status() const;
82 std::optional<std::string> redirect_url() const;
84 std::vector<std::string> tags() const;
86 InspectVerdict verdict() const;
89 std::optional<std::string> unrecognized_verdict_info() const;
91 std::chrono::milliseconds decision_ms() const;
93 bool is_redirect() const;
95 std::optional<Response> into_redirect();
96
97private:
98 rust::Box<fastly::sys::security::InspectResponse> ir_;
99 InspectResponse(rust::Box<fastly::sys::security::InspectResponse> ir)
100 : ir_(std::move(ir)) {};
101};
102
105tl::expected<InspectResponse, InspectError>
107
108} // namespace fastly::security
109
110#endif
Definition request.h:149
Configuration for inspecting a Request using Security.
Definition security.h:12
InspectConfig with_corp(std::string name) &&
Set a corp name for the configuration.
Definition security.h:28
InspectConfig with_workspace(std::string name) &&
Set a workspace name for the configuration.
Definition security.h:34
InspectConfig()=default
Create a new default InspectConfig
const std::optional< std::size_t > & buffer_size() const
Definition security.h:48
const std::optional< std::string > & client_ip() const
Definition security.h:45
const std::optional< std::string > & corp() const
Definition security.h:46
InspectConfig with_client_ip(std::string ip) &&
Definition security.h:22
const std::optional< std::string > & workspace() const
Definition security.h:47
InspectConfig with_buffer_size(std::size_t size) &&
Set a buffer size for the response.
Definition security.h:40
InspectError(rust::Box< fastly::sys::security::InspectError > e)
Definition security.h:62
std::optional< std::size_t > required_buffer_size()
InspectErrorCode error_code()
InspectError(fastly::sys::security::InspectError *e)
Definition security.h:60
std::optional< Response > into_redirect()
Convert a redirect URI returned by Security into a Response.
InspectVerdict verdict() const
Get Security's verdict on how to handle this request.
std::chrono::milliseconds decision_ms() const
How long Security spent determining its verdict.
std::optional< std::string > unrecognized_verdict_info() const
std::int16_t status() const
Security status code.
std::vector< std::string > tags() const
Tags returned by Security.
std::optional< std::string > redirect_url() const
A redirect URL returned from Security.
bool is_redirect() const
A redirect URI returned by Security.
Definition security.h:10
tl::expected< InspectResponse, InspectError > inspect(fastly::http::Request &request, InspectConfig config)
Definition backend.h:13
Definition access_bridge_internals.h:11