/** * 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