7#include <aws/wafv2/WAFV2_EXPORTS.h>
8#include <aws/wafv2/model/ByteMatchStatement.h>
9#include <aws/wafv2/model/SqliMatchStatement.h>
10#include <aws/wafv2/model/XssMatchStatement.h>
11#include <aws/wafv2/model/SizeConstraintStatement.h>
12#include <aws/wafv2/model/GeoMatchStatement.h>
13#include <aws/wafv2/model/RuleGroupReferenceStatement.h>
14#include <aws/wafv2/model/IPSetReferenceStatement.h>
15#include <aws/wafv2/model/RegexPatternSetReferenceStatement.h>
16#include <aws/wafv2/model/LabelMatchStatement.h>
17#include <aws/wafv2/model/RegexMatchStatement.h>
18#include <aws/wafv2/model/AsnMatchStatement.h>
19#include <aws/core/utils/memory/stl/AWSAllocator.h>
36 class RateBasedStatement;
40 class ManagedRuleGroupStatement;
69 template<
typename ByteMatchStatementT = ByteMatchStatement>
71 template<
typename ByteMatchStatementT = ByteMatchStatement>
83 template<
typename SqliMatchStatementT = SqliMatchStatement>
85 template<
typename SqliMatchStatementT = SqliMatchStatement>
97 template<
typename XssMatchStatementT = XssMatchStatement>
99 template<
typename XssMatchStatementT = XssMatchStatement>
122 template<
typename SizeConstra
intStatementT = SizeConstra
intStatement>
124 template<
typename SizeConstra
intStatementT = SizeConstra
intStatement>
157 template<
typename GeoMatchStatementT = GeoMatchStatement>
159 template<
typename GeoMatchStatementT = GeoMatchStatement>
176 template<
typename RuleGroupReferenceStatementT = RuleGroupReferenceStatement>
178 template<
typename RuleGroupReferenceStatementT = RuleGroupReferenceStatement>
195 template<
typename IPSetReferenceStatementT = IPSetReferenceStatement>
197 template<
typename IPSetReferenceStatementT = IPSetReferenceStatement>
216 template<
typename RegexPatternSetReferenceStatementT = RegexPatternSetReferenceStatement>
218 template<
typename RegexPatternSetReferenceStatementT = RegexPatternSetReferenceStatement>
286 return *m_rateBasedStatement;
289 template<
typename RateBasedStatementT = RateBasedStatement>
291 m_rateBasedStatementHasBeenSet =
true;
294 template<
typename RateBasedStatementT = RateBasedStatement>
305 return *m_andStatement;
308 template<
typename AndStatementT = AndStatement>
310 m_andStatementHasBeenSet =
true;
313 template<
typename AndStatementT = AndStatement>
324 return *m_orStatement;
327 template<
typename OrStatementT = OrStatement>
329 m_orStatementHasBeenSet =
true;
332 template<
typename OrStatementT = OrStatement>
343 return *m_notStatement;
346 template<
typename NotStatementT = NotStatement>
348 m_notStatementHasBeenSet =
true;
351 template<
typename NotStatementT = NotStatement>
374 return *m_managedRuleGroupStatement;
377 template<
typename ManagedRuleGroupStatementT = ManagedRuleGroupStatement>
379 m_managedRuleGroupStatementHasBeenSet =
true;
382 template<
typename ManagedRuleGroupStatementT = ManagedRuleGroupStatement>
400 template<
typename LabelMatchStatementT = LabelMatchStatement>
402 template<
typename LabelMatchStatementT = LabelMatchStatement>
413 template<
typename RegexMatchStatementT = RegexMatchStatement>
415 template<
typename RegexMatchStatementT = RegexMatchStatement>
431 template<
typename AsnMatchStatementT = AsnMatchStatement>
433 template<
typename AsnMatchStatementT = AsnMatchStatement>
439 bool m_byteMatchStatementHasBeenSet =
false;
442 bool m_sqliMatchStatementHasBeenSet =
false;
445 bool m_xssMatchStatementHasBeenSet =
false;
448 bool m_sizeConstraintStatementHasBeenSet =
false;
451 bool m_geoMatchStatementHasBeenSet =
false;
454 bool m_ruleGroupReferenceStatementHasBeenSet =
false;
457 bool m_iPSetReferenceStatementHasBeenSet =
false;
460 bool m_regexPatternSetReferenceStatementHasBeenSet =
false;
462 std::shared_ptr<RateBasedStatement> m_rateBasedStatement;
463 bool m_rateBasedStatementHasBeenSet =
false;
465 std::shared_ptr<AndStatement> m_andStatement;
466 bool m_andStatementHasBeenSet =
false;
468 std::shared_ptr<OrStatement> m_orStatement;
469 bool m_orStatementHasBeenSet =
false;
471 std::shared_ptr<NotStatement> m_notStatement;
472 bool m_notStatementHasBeenSet =
false;
474 std::shared_ptr<ManagedRuleGroupStatement> m_managedRuleGroupStatement;
475 bool m_managedRuleGroupStatementHasBeenSet =
false;
478 bool m_labelMatchStatementHasBeenSet =
false;
481 bool m_regexMatchStatementHasBeenSet =
false;
484 bool m_asnMatchStatementHasBeenSet =
false;
bool XssMatchStatementHasBeenSet() const
AWS_WAFV2_API Aws::Utils::Json::JsonValue Jsonize() const
const LabelMatchStatement & GetLabelMatchStatement() const
Statement & WithLabelMatchStatement(LabelMatchStatementT &&value)
Statement & WithRuleGroupReferenceStatement(RuleGroupReferenceStatementT &&value)
Statement & WithAndStatement(AndStatementT &&value)
bool SizeConstraintStatementHasBeenSet() const
void SetOrStatement(OrStatementT &&value)
void SetGeoMatchStatement(GeoMatchStatementT &&value)
void SetLabelMatchStatement(LabelMatchStatementT &&value)
bool LabelMatchStatementHasBeenSet() const
const RegexMatchStatement & GetRegexMatchStatement() const
bool SqliMatchStatementHasBeenSet() const
void SetNotStatement(NotStatementT &&value)
const OrStatement & GetOrStatement() const
void SetManagedRuleGroupStatement(ManagedRuleGroupStatementT &&value)
Statement & WithManagedRuleGroupStatement(ManagedRuleGroupStatementT &&value)
AWS_WAFV2_API Statement & operator=(Aws::Utils::Json::JsonView jsonValue)
void SetRateBasedStatement(RateBasedStatementT &&value)
Statement & WithRateBasedStatement(RateBasedStatementT &&value)
bool RuleGroupReferenceStatementHasBeenSet() const
const SqliMatchStatement & GetSqliMatchStatement() const
const RegexPatternSetReferenceStatement & GetRegexPatternSetReferenceStatement() const
void SetAndStatement(AndStatementT &&value)
void SetIPSetReferenceStatement(IPSetReferenceStatementT &&value)
bool RegexPatternSetReferenceStatementHasBeenSet() const
Statement & WithByteMatchStatement(ByteMatchStatementT &&value)
const ByteMatchStatement & GetByteMatchStatement() const
Statement & WithXssMatchStatement(XssMatchStatementT &&value)
Statement & WithAsnMatchStatement(AsnMatchStatementT &&value)
const IPSetReferenceStatement & GetIPSetReferenceStatement() const
bool RegexMatchStatementHasBeenSet() const
bool GeoMatchStatementHasBeenSet() const
Statement & WithGeoMatchStatement(GeoMatchStatementT &&value)
bool RateBasedStatementHasBeenSet() const
const AsnMatchStatement & GetAsnMatchStatement() const
Statement & WithNotStatement(NotStatementT &&value)
bool OrStatementHasBeenSet() const
Statement & WithSizeConstraintStatement(SizeConstraintStatementT &&value)
Statement & WithSqliMatchStatement(SqliMatchStatementT &&value)
void SetRuleGroupReferenceStatement(RuleGroupReferenceStatementT &&value)
void SetSqliMatchStatement(SqliMatchStatementT &&value)
void SetAsnMatchStatement(AsnMatchStatementT &&value)
bool NotStatementHasBeenSet() const
void SetRegexMatchStatement(RegexMatchStatementT &&value)
bool ManagedRuleGroupStatementHasBeenSet() const
const XssMatchStatement & GetXssMatchStatement() const
bool ByteMatchStatementHasBeenSet() const
const GeoMatchStatement & GetGeoMatchStatement() const
Statement & WithOrStatement(OrStatementT &&value)
void SetByteMatchStatement(ByteMatchStatementT &&value)
bool AndStatementHasBeenSet() const
const SizeConstraintStatement & GetSizeConstraintStatement() const
void SetRegexPatternSetReferenceStatement(RegexPatternSetReferenceStatementT &&value)
const RateBasedStatement & GetRateBasedStatement() const
const AndStatement & GetAndStatement() const
Statement & WithRegexMatchStatement(RegexMatchStatementT &&value)
const NotStatement & GetNotStatement() const
void SetSizeConstraintStatement(SizeConstraintStatementT &&value)
const RuleGroupReferenceStatement & GetRuleGroupReferenceStatement() const
const ManagedRuleGroupStatement & GetManagedRuleGroupStatement() const
AWS_WAFV2_API Statement(Aws::Utils::Json::JsonView jsonValue)
void SetXssMatchStatement(XssMatchStatementT &&value)
bool AsnMatchStatementHasBeenSet() const
Statement & WithIPSetReferenceStatement(IPSetReferenceStatementT &&value)
AWS_WAFV2_API Statement()=default
Statement & WithRegexPatternSetReferenceStatement(RegexPatternSetReferenceStatementT &&value)
bool IPSetReferenceStatementHasBeenSet() const
std::shared_ptr< T > MakeShared(const char *allocationTag, ArgTypes &&... args)
Aws::Utils::Json::JsonValue JsonValue