/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace WAFV2 { namespace Model { /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

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 AWS_WAFV2_API SampledHTTPRequest { public: SampledHTTPRequest(); SampledHTTPRequest(Aws::Utils::Json::JsonView jsonValue); SampledHTTPRequest& operator=(Aws::Utils::Json::JsonView jsonValue); 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 AWS WAF received the request from your AWS resource, in * Unix time format (in seconds).

*/ inline const Aws::Utils::DateTime& GetTimestamp() const{ return m_timestamp; } /** *

The time at which AWS WAF received the request from your AWS resource, in * Unix time format (in seconds).

*/ inline bool TimestampHasBeenSet() const { return m_timestampHasBeenSet; } /** *

The time at which AWS WAF received the request from your AWS 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 AWS WAF received the request from your AWS 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 AWS WAF received the request from your AWS resource, in * Unix time format (in seconds).

*/ inline SampledHTTPRequest& WithTimestamp(const Aws::Utils::DateTime& value) { SetTimestamp(value); return *this;} /** *

The time at which AWS WAF received the request from your AWS resource, in * Unix time format (in seconds).

*/ inline SampledHTTPRequest& WithTimestamp(Aws::Utils::DateTime&& value) { SetTimestamp(std::move(value)); return *this;} /** *

The action for the Rule that the request matched: * ALLOW, BLOCK, or COUNT.

*/ inline const Aws::String& GetAction() const{ return m_action; } /** *

The action for the Rule that the request matched: * ALLOW, BLOCK, or COUNT.

*/ inline bool ActionHasBeenSet() const { return m_actionHasBeenSet; } /** *

The action for the Rule that the request matched: * ALLOW, BLOCK, or COUNT.

*/ inline void SetAction(const Aws::String& value) { m_actionHasBeenSet = true; m_action = value; } /** *

The action for the Rule that the request matched: * ALLOW, BLOCK, or COUNT.

*/ inline void SetAction(Aws::String&& value) { m_actionHasBeenSet = true; m_action = std::move(value); } /** *

The action for the Rule that the request matched: * ALLOW, BLOCK, or COUNT.

*/ inline void SetAction(const char* value) { m_actionHasBeenSet = true; m_action.assign(value); } /** *

The action for the Rule that the request matched: * ALLOW, BLOCK, or COUNT.

*/ inline SampledHTTPRequest& WithAction(const Aws::String& value) { SetAction(value); return *this;} /** *

The action for the Rule that the request matched: * ALLOW, BLOCK, or COUNT.

*/ inline SampledHTTPRequest& WithAction(Aws::String&& value) { SetAction(std::move(value)); return *this;} /** *

The action for the Rule that the request matched: * ALLOW, BLOCK, or COUNT.

*/ 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;} private: HTTPRequest m_request; bool m_requestHasBeenSet; long long m_weight; bool m_weightHasBeenSet; Aws::Utils::DateTime m_timestamp; bool m_timestampHasBeenSet; Aws::String m_action; bool m_actionHasBeenSet; Aws::String m_ruleNameWithinRuleGroup; bool m_ruleNameWithinRuleGroupHasBeenSet; }; } // namespace Model } // namespace WAFV2 } // namespace Aws