/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
namespace Aws
{
namespace Utils
{
namespace Json
{
class JsonValue;
class JsonView;
} // namespace Json
} // namespace Utils
namespace WAFV2
{
namespace Model
{
/**
* Represents a single sampled web request. The response from
* GetSampledRequests includes a SampledHTTPRequests
complex
* type that appears as SampledRequests
in the response syntax.
* SampledHTTPRequests
contains an array of
* SampledHTTPRequest
objects.
See Also: AWS
* API Reference
*/
class SampledHTTPRequest
{
public:
AWS_WAFV2_API SampledHTTPRequest();
AWS_WAFV2_API SampledHTTPRequest(Aws::Utils::Json::JsonView jsonValue);
AWS_WAFV2_API SampledHTTPRequest& operator=(Aws::Utils::Json::JsonView jsonValue);
AWS_WAFV2_API Aws::Utils::Json::JsonValue Jsonize() const;
/**
* A complex type that contains detailed information about the request.
*/
inline const HTTPRequest& GetRequest() const{ return m_request; }
/**
* A complex type that contains detailed information about the request.
*/
inline bool RequestHasBeenSet() const { return m_requestHasBeenSet; }
/**
* A complex type that contains detailed information about the request.
*/
inline void SetRequest(const HTTPRequest& value) { m_requestHasBeenSet = true; m_request = value; }
/**
* A complex type that contains detailed information about the request.
*/
inline void SetRequest(HTTPRequest&& value) { m_requestHasBeenSet = true; m_request = std::move(value); }
/**
* A complex type that contains detailed information about the request.
*/
inline SampledHTTPRequest& WithRequest(const HTTPRequest& value) { SetRequest(value); return *this;}
/**
* A complex type that contains detailed information about the request.
*/
inline SampledHTTPRequest& WithRequest(HTTPRequest&& value) { SetRequest(std::move(value)); return *this;}
/**
* A value that indicates how one result in the response relates proportionally
* to other results in the response. For example, a result that has a weight of
* 2
represents roughly twice as many web requests as a result that
* has a weight of 1
.
*/
inline long long GetWeight() const{ return m_weight; }
/**
* A value that indicates how one result in the response relates proportionally
* to other results in the response. For example, a result that has a weight of
* 2
represents roughly twice as many web requests as a result that
* has a weight of 1
.
*/
inline bool WeightHasBeenSet() const { return m_weightHasBeenSet; }
/**
* A value that indicates how one result in the response relates proportionally
* to other results in the response. For example, a result that has a weight of
* 2
represents roughly twice as many web requests as a result that
* has a weight of 1
.
*/
inline void SetWeight(long long value) { m_weightHasBeenSet = true; m_weight = value; }
/**
* A value that indicates how one result in the response relates proportionally
* to other results in the response. For example, a result that has a weight of
* 2
represents roughly twice as many web requests as a result that
* has a weight of 1
.
*/
inline SampledHTTPRequest& WithWeight(long long value) { SetWeight(value); return *this;}
/**
* The time at which WAF received the request from your Amazon Web Services
* resource, in Unix time format (in seconds).
*/
inline const Aws::Utils::DateTime& GetTimestamp() const{ return m_timestamp; }
/**
* The time at which WAF received the request from your Amazon Web Services
* resource, in Unix time format (in seconds).
*/
inline bool TimestampHasBeenSet() const { return m_timestampHasBeenSet; }
/**
* The time at which WAF received the request from your Amazon Web Services
* resource, in Unix time format (in seconds).
*/
inline void SetTimestamp(const Aws::Utils::DateTime& value) { m_timestampHasBeenSet = true; m_timestamp = value; }
/**
* The time at which WAF received the request from your Amazon Web Services
* resource, in Unix time format (in seconds).
*/
inline void SetTimestamp(Aws::Utils::DateTime&& value) { m_timestampHasBeenSet = true; m_timestamp = std::move(value); }
/**
* The time at which WAF received the request from your Amazon Web Services
* resource, in Unix time format (in seconds).
*/
inline SampledHTTPRequest& WithTimestamp(const Aws::Utils::DateTime& value) { SetTimestamp(value); return *this;}
/**
* The time at which WAF received the request from your Amazon Web Services
* resource, in Unix time format (in seconds).
*/
inline SampledHTTPRequest& WithTimestamp(Aws::Utils::DateTime&& value) { SetTimestamp(std::move(value)); return *this;}
/**
* The action that WAF applied to the request.
*/
inline const Aws::String& GetAction() const{ return m_action; }
/**
* The action that WAF applied to the request.
*/
inline bool ActionHasBeenSet() const { return m_actionHasBeenSet; }
/**
* The action that WAF applied to the request.
*/
inline void SetAction(const Aws::String& value) { m_actionHasBeenSet = true; m_action = value; }
/**
* The action that WAF applied to the request.
*/
inline void SetAction(Aws::String&& value) { m_actionHasBeenSet = true; m_action = std::move(value); }
/**
* The action that WAF applied to the request.
*/
inline void SetAction(const char* value) { m_actionHasBeenSet = true; m_action.assign(value); }
/**
* The action that WAF applied to the request.
*/
inline SampledHTTPRequest& WithAction(const Aws::String& value) { SetAction(value); return *this;}
/**
* The action that WAF applied to the request.
*/
inline SampledHTTPRequest& WithAction(Aws::String&& value) { SetAction(std::move(value)); return *this;}
/**
* The action that WAF applied to the request.
*/
inline SampledHTTPRequest& WithAction(const char* value) { SetAction(value); return *this;}
/**
* The name of the Rule
that the request matched. For managed rule
* groups, the format for this name is <vendor name>#<managed rule
* group name>#<rule name>
. For your own rule groups, the format
* for this name is <rule group name>#<rule name>
. If the
* rule is not in a rule group, this field is absent.
*/
inline const Aws::String& GetRuleNameWithinRuleGroup() const{ return m_ruleNameWithinRuleGroup; }
/**
* The name of the Rule
that the request matched. For managed rule
* groups, the format for this name is <vendor name>#<managed rule
* group name>#<rule name>
. For your own rule groups, the format
* for this name is <rule group name>#<rule name>
. If the
* rule is not in a rule group, this field is absent.
*/
inline bool RuleNameWithinRuleGroupHasBeenSet() const { return m_ruleNameWithinRuleGroupHasBeenSet; }
/**
* The name of the Rule
that the request matched. For managed rule
* groups, the format for this name is <vendor name>#<managed rule
* group name>#<rule name>
. For your own rule groups, the format
* for this name is <rule group name>#<rule name>
. If the
* rule is not in a rule group, this field is absent.
*/
inline void SetRuleNameWithinRuleGroup(const Aws::String& value) { m_ruleNameWithinRuleGroupHasBeenSet = true; m_ruleNameWithinRuleGroup = value; }
/**
* The name of the Rule
that the request matched. For managed rule
* groups, the format for this name is <vendor name>#<managed rule
* group name>#<rule name>
. For your own rule groups, the format
* for this name is <rule group name>#<rule name>
. If the
* rule is not in a rule group, this field is absent.
*/
inline void SetRuleNameWithinRuleGroup(Aws::String&& value) { m_ruleNameWithinRuleGroupHasBeenSet = true; m_ruleNameWithinRuleGroup = std::move(value); }
/**
* The name of the Rule
that the request matched. For managed rule
* groups, the format for this name is <vendor name>#<managed rule
* group name>#<rule name>
. For your own rule groups, the format
* for this name is <rule group name>#<rule name>
. If the
* rule is not in a rule group, this field is absent.
*/
inline void SetRuleNameWithinRuleGroup(const char* value) { m_ruleNameWithinRuleGroupHasBeenSet = true; m_ruleNameWithinRuleGroup.assign(value); }
/**
* The name of the Rule
that the request matched. For managed rule
* groups, the format for this name is <vendor name>#<managed rule
* group name>#<rule name>
. For your own rule groups, the format
* for this name is <rule group name>#<rule name>
. If the
* rule is not in a rule group, this field is absent.
*/
inline SampledHTTPRequest& WithRuleNameWithinRuleGroup(const Aws::String& value) { SetRuleNameWithinRuleGroup(value); return *this;}
/**
* The name of the Rule
that the request matched. For managed rule
* groups, the format for this name is <vendor name>#<managed rule
* group name>#<rule name>
. For your own rule groups, the format
* for this name is <rule group name>#<rule name>
. If the
* rule is not in a rule group, this field is absent.
*/
inline SampledHTTPRequest& WithRuleNameWithinRuleGroup(Aws::String&& value) { SetRuleNameWithinRuleGroup(std::move(value)); return *this;}
/**
* The name of the Rule
that the request matched. For managed rule
* groups, the format for this name is <vendor name>#<managed rule
* group name>#<rule name>
. For your own rule groups, the format
* for this name is <rule group name>#<rule name>
. If the
* rule is not in a rule group, this field is absent.
*/
inline SampledHTTPRequest& WithRuleNameWithinRuleGroup(const char* value) { SetRuleNameWithinRuleGroup(value); return *this;}
/**
* Custom request headers inserted by WAF into the request, according to the
* custom request configuration for the matching rule action.
*/
inline const Aws::Vector& GetRequestHeadersInserted() const{ return m_requestHeadersInserted; }
/**
* Custom request headers inserted by WAF into the request, according to the
* custom request configuration for the matching rule action.
*/
inline bool RequestHeadersInsertedHasBeenSet() const { return m_requestHeadersInsertedHasBeenSet; }
/**
* Custom request headers inserted by WAF into the request, according to the
* custom request configuration for the matching rule action.
*/
inline void SetRequestHeadersInserted(const Aws::Vector& value) { m_requestHeadersInsertedHasBeenSet = true; m_requestHeadersInserted = value; }
/**
* Custom request headers inserted by WAF into the request, according to the
* custom request configuration for the matching rule action.
*/
inline void SetRequestHeadersInserted(Aws::Vector&& value) { m_requestHeadersInsertedHasBeenSet = true; m_requestHeadersInserted = std::move(value); }
/**
* Custom request headers inserted by WAF into the request, according to the
* custom request configuration for the matching rule action.
*/
inline SampledHTTPRequest& WithRequestHeadersInserted(const Aws::Vector& value) { SetRequestHeadersInserted(value); return *this;}
/**
* Custom request headers inserted by WAF into the request, according to the
* custom request configuration for the matching rule action.
*/
inline SampledHTTPRequest& WithRequestHeadersInserted(Aws::Vector&& value) { SetRequestHeadersInserted(std::move(value)); return *this;}
/**
* Custom request headers inserted by WAF into the request, according to the
* custom request configuration for the matching rule action.
*/
inline SampledHTTPRequest& AddRequestHeadersInserted(const HTTPHeader& value) { m_requestHeadersInsertedHasBeenSet = true; m_requestHeadersInserted.push_back(value); return *this; }
/**
* Custom request headers inserted by WAF into the request, according to the
* custom request configuration for the matching rule action.
*/
inline SampledHTTPRequest& AddRequestHeadersInserted(HTTPHeader&& value) { m_requestHeadersInsertedHasBeenSet = true; m_requestHeadersInserted.push_back(std::move(value)); return *this; }
/**
* The response code that was sent for the request.
*/
inline int GetResponseCodeSent() const{ return m_responseCodeSent; }
/**
* The response code that was sent for the request.
*/
inline bool ResponseCodeSentHasBeenSet() const { return m_responseCodeSentHasBeenSet; }
/**
* The response code that was sent for the request.
*/
inline void SetResponseCodeSent(int value) { m_responseCodeSentHasBeenSet = true; m_responseCodeSent = value; }
/**
* The response code that was sent for the request.
*/
inline SampledHTTPRequest& WithResponseCodeSent(int value) { SetResponseCodeSent(value); return *this;}
/**
* Labels applied to the web request by matching rules. WAF applies fully
* qualified labels to matching web requests. A fully qualified label is the
* concatenation of a label namespace and a rule label. The rule's rule group or
* web ACL defines the label namespace.
For example,
* awswaf:111122223333:myRuleGroup:testRules:testNS1:testNS2:labelNameA
* or awswaf:managed:aws:managed-rule-set:header:encoding:utf8
.
*/
inline const Aws::Vector& GetLabels() const{ return m_labels; }
/**
* Labels applied to the web request by matching rules. WAF applies fully
* qualified labels to matching web requests. A fully qualified label is the
* concatenation of a label namespace and a rule label. The rule's rule group or
* web ACL defines the label namespace.
For example,
* awswaf:111122223333:myRuleGroup:testRules:testNS1:testNS2:labelNameA
* or awswaf:managed:aws:managed-rule-set:header:encoding:utf8
.
*/
inline bool LabelsHasBeenSet() const { return m_labelsHasBeenSet; }
/**
* Labels applied to the web request by matching rules. WAF applies fully
* qualified labels to matching web requests. A fully qualified label is the
* concatenation of a label namespace and a rule label. The rule's rule group or
* web ACL defines the label namespace.
For example,
* awswaf:111122223333:myRuleGroup:testRules:testNS1:testNS2:labelNameA
* or awswaf:managed:aws:managed-rule-set:header:encoding:utf8
.
*/
inline void SetLabels(const Aws::Vector& value) { m_labelsHasBeenSet = true; m_labels = value; }
/**
* Labels applied to the web request by matching rules. WAF applies fully
* qualified labels to matching web requests. A fully qualified label is the
* concatenation of a label namespace and a rule label. The rule's rule group or
* web ACL defines the label namespace.
For example,
* awswaf:111122223333:myRuleGroup:testRules:testNS1:testNS2:labelNameA
* or awswaf:managed:aws:managed-rule-set:header:encoding:utf8
.
*/
inline void SetLabels(Aws::Vector&& value) { m_labelsHasBeenSet = true; m_labels = std::move(value); }
/**
* Labels applied to the web request by matching rules. WAF applies fully
* qualified labels to matching web requests. A fully qualified label is the
* concatenation of a label namespace and a rule label. The rule's rule group or
* web ACL defines the label namespace.
For example,
* awswaf:111122223333:myRuleGroup:testRules:testNS1:testNS2:labelNameA
* or awswaf:managed:aws:managed-rule-set:header:encoding:utf8
.
*/
inline SampledHTTPRequest& WithLabels(const Aws::Vector& value) { SetLabels(value); return *this;}
/**
* Labels applied to the web request by matching rules. WAF applies fully
* qualified labels to matching web requests. A fully qualified label is the
* concatenation of a label namespace and a rule label. The rule's rule group or
* web ACL defines the label namespace.
For example,
* awswaf:111122223333:myRuleGroup:testRules:testNS1:testNS2:labelNameA
* or awswaf:managed:aws:managed-rule-set:header:encoding:utf8
.
*/
inline SampledHTTPRequest& WithLabels(Aws::Vector&& value) { SetLabels(std::move(value)); return *this;}
/**
* Labels applied to the web request by matching rules. WAF applies fully
* qualified labels to matching web requests. A fully qualified label is the
* concatenation of a label namespace and a rule label. The rule's rule group or
* web ACL defines the label namespace.
For example,
* awswaf:111122223333:myRuleGroup:testRules:testNS1:testNS2:labelNameA
* or awswaf:managed:aws:managed-rule-set:header:encoding:utf8
.
*/
inline SampledHTTPRequest& AddLabels(const Label& value) { m_labelsHasBeenSet = true; m_labels.push_back(value); return *this; }
/**
* Labels applied to the web request by matching rules. WAF applies fully
* qualified labels to matching web requests. A fully qualified label is the
* concatenation of a label namespace and a rule label. The rule's rule group or
* web ACL defines the label namespace.
For example,
* awswaf:111122223333:myRuleGroup:testRules:testNS1:testNS2:labelNameA
* or awswaf:managed:aws:managed-rule-set:header:encoding:utf8
.
*/
inline SampledHTTPRequest& AddLabels(Label&& value) { m_labelsHasBeenSet = true; m_labels.push_back(std::move(value)); return *this; }
/**
* The CAPTCHA
response for the request.
*/
inline const CaptchaResponse& GetCaptchaResponse() const{ return m_captchaResponse; }
/**
* The CAPTCHA
response for the request.
*/
inline bool CaptchaResponseHasBeenSet() const { return m_captchaResponseHasBeenSet; }
/**
* The CAPTCHA
response for the request.
*/
inline void SetCaptchaResponse(const CaptchaResponse& value) { m_captchaResponseHasBeenSet = true; m_captchaResponse = value; }
/**
* The CAPTCHA
response for the request.
*/
inline void SetCaptchaResponse(CaptchaResponse&& value) { m_captchaResponseHasBeenSet = true; m_captchaResponse = std::move(value); }
/**
* The CAPTCHA
response for the request.
*/
inline SampledHTTPRequest& WithCaptchaResponse(const CaptchaResponse& value) { SetCaptchaResponse(value); return *this;}
/**
* The CAPTCHA
response for the request.
*/
inline SampledHTTPRequest& WithCaptchaResponse(CaptchaResponse&& value) { SetCaptchaResponse(std::move(value)); return *this;}
/**
* The Challenge
response for the request.
*/
inline const ChallengeResponse& GetChallengeResponse() const{ return m_challengeResponse; }
/**
* The Challenge
response for the request.
*/
inline bool ChallengeResponseHasBeenSet() const { return m_challengeResponseHasBeenSet; }
/**
* The Challenge
response for the request.
*/
inline void SetChallengeResponse(const ChallengeResponse& value) { m_challengeResponseHasBeenSet = true; m_challengeResponse = value; }
/**
* The Challenge
response for the request.
*/
inline void SetChallengeResponse(ChallengeResponse&& value) { m_challengeResponseHasBeenSet = true; m_challengeResponse = std::move(value); }
/**
* The Challenge
response for the request.
*/
inline SampledHTTPRequest& WithChallengeResponse(const ChallengeResponse& value) { SetChallengeResponse(value); return *this;}
/**
* The Challenge
response for the request.
*/
inline SampledHTTPRequest& WithChallengeResponse(ChallengeResponse&& value) { SetChallengeResponse(std::move(value)); return *this;}
/**
* Used only for rule group rules that have a rule action override in place in
* the web ACL. This is the action that the rule group rule is configured for, and
* not the action that was applied to the request. The action that WAF applied is
* the Action
value.
*/
inline const Aws::String& GetOverriddenAction() const{ return m_overriddenAction; }
/**
* Used only for rule group rules that have a rule action override in place in
* the web ACL. This is the action that the rule group rule is configured for, and
* not the action that was applied to the request. The action that WAF applied is
* the Action
value.
*/
inline bool OverriddenActionHasBeenSet() const { return m_overriddenActionHasBeenSet; }
/**
* Used only for rule group rules that have a rule action override in place in
* the web ACL. This is the action that the rule group rule is configured for, and
* not the action that was applied to the request. The action that WAF applied is
* the Action
value.
*/
inline void SetOverriddenAction(const Aws::String& value) { m_overriddenActionHasBeenSet = true; m_overriddenAction = value; }
/**
* Used only for rule group rules that have a rule action override in place in
* the web ACL. This is the action that the rule group rule is configured for, and
* not the action that was applied to the request. The action that WAF applied is
* the Action
value.
*/
inline void SetOverriddenAction(Aws::String&& value) { m_overriddenActionHasBeenSet = true; m_overriddenAction = std::move(value); }
/**
* Used only for rule group rules that have a rule action override in place in
* the web ACL. This is the action that the rule group rule is configured for, and
* not the action that was applied to the request. The action that WAF applied is
* the Action
value.
*/
inline void SetOverriddenAction(const char* value) { m_overriddenActionHasBeenSet = true; m_overriddenAction.assign(value); }
/**
* Used only for rule group rules that have a rule action override in place in
* the web ACL. This is the action that the rule group rule is configured for, and
* not the action that was applied to the request. The action that WAF applied is
* the Action
value.
*/
inline SampledHTTPRequest& WithOverriddenAction(const Aws::String& value) { SetOverriddenAction(value); return *this;}
/**
* Used only for rule group rules that have a rule action override in place in
* the web ACL. This is the action that the rule group rule is configured for, and
* not the action that was applied to the request. The action that WAF applied is
* the Action
value.
*/
inline SampledHTTPRequest& WithOverriddenAction(Aws::String&& value) { SetOverriddenAction(std::move(value)); return *this;}
/**
* Used only for rule group rules that have a rule action override in place in
* the web ACL. This is the action that the rule group rule is configured for, and
* not the action that was applied to the request. The action that WAF applied is
* the Action
value.
*/
inline SampledHTTPRequest& WithOverriddenAction(const char* value) { SetOverriddenAction(value); return *this;}
private:
HTTPRequest m_request;
bool m_requestHasBeenSet = false;
long long m_weight;
bool m_weightHasBeenSet = false;
Aws::Utils::DateTime m_timestamp;
bool m_timestampHasBeenSet = false;
Aws::String m_action;
bool m_actionHasBeenSet = false;
Aws::String m_ruleNameWithinRuleGroup;
bool m_ruleNameWithinRuleGroupHasBeenSet = false;
Aws::Vector m_requestHeadersInserted;
bool m_requestHeadersInsertedHasBeenSet = false;
int m_responseCodeSent;
bool m_responseCodeSentHasBeenSet = false;
Aws::Vector m_labels;
bool m_labelsHasBeenSet = false;
CaptchaResponse m_captchaResponse;
bool m_captchaResponseHasBeenSet = false;
ChallengeResponse m_challengeResponse;
bool m_challengeResponseHasBeenSet = false;
Aws::String m_overriddenAction;
bool m_overriddenActionHasBeenSet = false;
};
} // namespace Model
} // namespace WAFV2
} // namespace Aws