7#include <aws/wafv2/WAFV2_EXPORTS.h>
8#include <aws/wafv2/model/RateLimitHeader.h>
9#include <aws/wafv2/model/RateLimitCookie.h>
10#include <aws/wafv2/model/RateLimitQueryArgument.h>
11#include <aws/wafv2/model/RateLimitQueryString.h>
12#include <aws/wafv2/model/RateLimitHTTPMethod.h>
13#include <aws/wafv2/model/RateLimitForwardedIP.h>
14#include <aws/wafv2/model/RateLimitIP.h>
15#include <aws/wafv2/model/RateLimitLabelNamespace.h>
16#include <aws/wafv2/model/RateLimitUriPath.h>
17#include <aws/wafv2/model/RateLimitJA3Fingerprint.h>
18#include <aws/wafv2/model/RateLimitJA4Fingerprint.h>
19#include <aws/wafv2/model/RateLimitAsn.h>
63 template<
typename HeaderT = RateLimitHeader>
64 void SetHeader(
HeaderT&& value) { m_headerHasBeenSet =
true; m_header = std::forward<HeaderT>(value); }
65 template<
typename HeaderT = RateLimitHeader>
78 template<
typename CookieT = RateLimitCookie>
79 void SetCookie(
CookieT&& value) { m_cookieHasBeenSet =
true; m_cookie = std::forward<CookieT>(value); }
80 template<
typename CookieT = RateLimitCookie>
93 template<
typename QueryArgumentT = RateLimitQueryArgument>
95 template<
typename QueryArgumentT = RateLimitQueryArgument>
107 template<
typename QueryStringT = RateLimitQueryString>
109 template<
typename QueryStringT = RateLimitQueryString>
121 template<
typename HTTPMethodT = RateLimitHTTPMethod>
123 template<
typename HTTPMethodT = RateLimitHTTPMethod>
140 template<
typename ForwardedIPT = RateLimitForwardedIP>
142 template<
typename ForwardedIPT = RateLimitForwardedIP>
157 template<
typename IPT = RateLimitIP>
158 void SetIP(
IPT&& value) { m_iPHasBeenSet =
true; m_iP = std::forward<IPT>(value); }
159 template<
typename IPT = RateLimitIP>
177 template<
typename LabelNamespaceT = RateLimitLabelNamespace>
179 template<
typename LabelNamespaceT = RateLimitLabelNamespace>
191 template<
typename UriPathT = RateLimitUriPath>
192 void SetUriPath(
UriPathT&& value) { m_uriPathHasBeenSet =
true; m_uriPath = std::forward<UriPathT>(value); }
193 template<
typename UriPathT = RateLimitUriPath>
205 template<
typename JA3Fingerpr
intT = RateLimitJA3Fingerpr
int>
207 template<
typename JA3Fingerpr
intT = RateLimitJA3Fingerpr
int>
219 template<
typename JA4Fingerpr
intT = RateLimitJA4Fingerpr
int>
221 template<
typename JA4Fingerpr
intT = RateLimitJA4Fingerpr
int>
233 template<
typename ASNT = RateLimitAsn>
234 void SetASN(
ASNT&& value) { m_aSNHasBeenSet =
true; m_aSN = std::forward<ASNT>(value); }
235 template<
typename ASNT = RateLimitAsn>
241 bool m_headerHasBeenSet =
false;
244 bool m_cookieHasBeenSet =
false;
247 bool m_queryArgumentHasBeenSet =
false;
250 bool m_queryStringHasBeenSet =
false;
253 bool m_hTTPMethodHasBeenSet =
false;
256 bool m_forwardedIPHasBeenSet =
false;
259 bool m_iPHasBeenSet =
false;
262 bool m_labelNamespaceHasBeenSet =
false;
265 bool m_uriPathHasBeenSet =
false;
268 bool m_jA3FingerprintHasBeenSet =
false;
271 bool m_jA4FingerprintHasBeenSet =
false;
274 bool m_aSNHasBeenSet =
false;
void SetHTTPMethod(HTTPMethodT &&value)
const RateLimitHTTPMethod & GetHTTPMethod() const
RateBasedStatementCustomKey & WithASN(ASNT &&value)
bool QueryArgumentHasBeenSet() const
AWS_WAFV2_API RateBasedStatementCustomKey & operator=(Aws::Utils::Json::JsonView jsonValue)
bool JA3FingerprintHasBeenSet() const
bool HTTPMethodHasBeenSet() const
const RateLimitJA3Fingerprint & GetJA3Fingerprint() const
void SetForwardedIP(ForwardedIPT &&value)
void SetUriPath(UriPathT &&value)
AWS_WAFV2_API RateBasedStatementCustomKey()=default
void SetHeader(HeaderT &&value)
RateBasedStatementCustomKey & WithJA3Fingerprint(JA3FingerprintT &&value)
void SetASN(ASNT &&value)
bool CookieHasBeenSet() const
void SetLabelNamespace(LabelNamespaceT &&value)
AWS_WAFV2_API RateBasedStatementCustomKey(Aws::Utils::Json::JsonView jsonValue)
RateBasedStatementCustomKey & WithUriPath(UriPathT &&value)
RateBasedStatementCustomKey & WithHeader(HeaderT &&value)
bool IPHasBeenSet() const
RateBasedStatementCustomKey & WithQueryArgument(QueryArgumentT &&value)
AWS_WAFV2_API Aws::Utils::Json::JsonValue Jsonize() const
const RateLimitCookie & GetCookie() const
RateBasedStatementCustomKey & WithForwardedIP(ForwardedIPT &&value)
const RateLimitQueryArgument & GetQueryArgument() const
const RateLimitLabelNamespace & GetLabelNamespace() const
void SetJA3Fingerprint(JA3FingerprintT &&value)
RateBasedStatementCustomKey & WithHTTPMethod(HTTPMethodT &&value)
const RateLimitUriPath & GetUriPath() const
bool LabelNamespaceHasBeenSet() const
bool JA4FingerprintHasBeenSet() const
const RateLimitForwardedIP & GetForwardedIP() const
const RateLimitIP & GetIP() const
void SetJA4Fingerprint(JA4FingerprintT &&value)
bool QueryStringHasBeenSet() const
const RateLimitHeader & GetHeader() const
bool ForwardedIPHasBeenSet() const
const RateLimitJA4Fingerprint & GetJA4Fingerprint() const
void SetQueryString(QueryStringT &&value)
bool ASNHasBeenSet() const
RateBasedStatementCustomKey & WithCookie(CookieT &&value)
bool UriPathHasBeenSet() const
RateBasedStatementCustomKey & WithQueryString(QueryStringT &&value)
const RateLimitAsn & GetASN() const
RateBasedStatementCustomKey & WithLabelNamespace(LabelNamespaceT &&value)
bool HeaderHasBeenSet() const
RateBasedStatementCustomKey & WithJA4Fingerprint(JA4FingerprintT &&value)
void SetQueryArgument(QueryArgumentT &&value)
void SetCookie(CookieT &&value)
RateBasedStatementCustomKey & WithIP(IPT &&value)
const RateLimitQueryString & GetQueryString() const
std::shared_ptr< T > MakeShared(const char *allocationTag, ArgTypes &&... args)
Aws::Utils::Json::JsonValue JsonValue