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

Details for your use of the account takeover prevention managed rule group, * AWSManagedRulesATPRuleSet. This configuration is used in * ManagedRuleGroupConfig.

See Also:

AWS * API Reference

*/ class AWSManagedRulesATPRuleSet { public: AWS_WAFV2_API AWSManagedRulesATPRuleSet(); AWS_WAFV2_API AWSManagedRulesATPRuleSet(Aws::Utils::Json::JsonView jsonValue); AWS_WAFV2_API AWSManagedRulesATPRuleSet& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_WAFV2_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The path of the login endpoint for your application. For example, for the URL * https://example.com/web/login, you would provide the path * /web/login.

The rule group inspects only HTTP * POST requests to your specified login endpoint.

*/ inline const Aws::String& GetLoginPath() const{ return m_loginPath; } /** *

The path of the login endpoint for your application. For example, for the URL * https://example.com/web/login, you would provide the path * /web/login.

The rule group inspects only HTTP * POST requests to your specified login endpoint.

*/ inline bool LoginPathHasBeenSet() const { return m_loginPathHasBeenSet; } /** *

The path of the login endpoint for your application. For example, for the URL * https://example.com/web/login, you would provide the path * /web/login.

The rule group inspects only HTTP * POST requests to your specified login endpoint.

*/ inline void SetLoginPath(const Aws::String& value) { m_loginPathHasBeenSet = true; m_loginPath = value; } /** *

The path of the login endpoint for your application. For example, for the URL * https://example.com/web/login, you would provide the path * /web/login.

The rule group inspects only HTTP * POST requests to your specified login endpoint.

*/ inline void SetLoginPath(Aws::String&& value) { m_loginPathHasBeenSet = true; m_loginPath = std::move(value); } /** *

The path of the login endpoint for your application. For example, for the URL * https://example.com/web/login, you would provide the path * /web/login.

The rule group inspects only HTTP * POST requests to your specified login endpoint.

*/ inline void SetLoginPath(const char* value) { m_loginPathHasBeenSet = true; m_loginPath.assign(value); } /** *

The path of the login endpoint for your application. For example, for the URL * https://example.com/web/login, you would provide the path * /web/login.

The rule group inspects only HTTP * POST requests to your specified login endpoint.

*/ inline AWSManagedRulesATPRuleSet& WithLoginPath(const Aws::String& value) { SetLoginPath(value); return *this;} /** *

The path of the login endpoint for your application. For example, for the URL * https://example.com/web/login, you would provide the path * /web/login.

The rule group inspects only HTTP * POST requests to your specified login endpoint.

*/ inline AWSManagedRulesATPRuleSet& WithLoginPath(Aws::String&& value) { SetLoginPath(std::move(value)); return *this;} /** *

The path of the login endpoint for your application. For example, for the URL * https://example.com/web/login, you would provide the path * /web/login.

The rule group inspects only HTTP * POST requests to your specified login endpoint.

*/ inline AWSManagedRulesATPRuleSet& WithLoginPath(const char* value) { SetLoginPath(value); return *this;} /** *

The criteria for inspecting login requests, used by the ATP rule group to * validate credentials usage.

*/ inline const RequestInspection& GetRequestInspection() const{ return m_requestInspection; } /** *

The criteria for inspecting login requests, used by the ATP rule group to * validate credentials usage.

*/ inline bool RequestInspectionHasBeenSet() const { return m_requestInspectionHasBeenSet; } /** *

The criteria for inspecting login requests, used by the ATP rule group to * validate credentials usage.

*/ inline void SetRequestInspection(const RequestInspection& value) { m_requestInspectionHasBeenSet = true; m_requestInspection = value; } /** *

The criteria for inspecting login requests, used by the ATP rule group to * validate credentials usage.

*/ inline void SetRequestInspection(RequestInspection&& value) { m_requestInspectionHasBeenSet = true; m_requestInspection = std::move(value); } /** *

The criteria for inspecting login requests, used by the ATP rule group to * validate credentials usage.

*/ inline AWSManagedRulesATPRuleSet& WithRequestInspection(const RequestInspection& value) { SetRequestInspection(value); return *this;} /** *

The criteria for inspecting login requests, used by the ATP rule group to * validate credentials usage.

*/ inline AWSManagedRulesATPRuleSet& WithRequestInspection(RequestInspection&& value) { SetRequestInspection(std::move(value)); return *this;} /** *

The criteria for inspecting responses to login requests, used by the ATP rule * group to track login failure rates.

Response inspection is * available only in web ACLs that protect Amazon CloudFront distributions.

*

The ATP rule group evaluates the responses that your protected * resources send back to client login attempts, keeping count of successful and * failed attempts for each IP address and client session. Using this information, * the rule group labels and mitigates requests from client sessions and IP * addresses that have had too many failed login attempts in a short amount of * time.

*/ inline const ResponseInspection& GetResponseInspection() const{ return m_responseInspection; } /** *

The criteria for inspecting responses to login requests, used by the ATP rule * group to track login failure rates.

Response inspection is * available only in web ACLs that protect Amazon CloudFront distributions.

*

The ATP rule group evaluates the responses that your protected * resources send back to client login attempts, keeping count of successful and * failed attempts for each IP address and client session. Using this information, * the rule group labels and mitigates requests from client sessions and IP * addresses that have had too many failed login attempts in a short amount of * time.

*/ inline bool ResponseInspectionHasBeenSet() const { return m_responseInspectionHasBeenSet; } /** *

The criteria for inspecting responses to login requests, used by the ATP rule * group to track login failure rates.

Response inspection is * available only in web ACLs that protect Amazon CloudFront distributions.

*

The ATP rule group evaluates the responses that your protected * resources send back to client login attempts, keeping count of successful and * failed attempts for each IP address and client session. Using this information, * the rule group labels and mitigates requests from client sessions and IP * addresses that have had too many failed login attempts in a short amount of * time.

*/ inline void SetResponseInspection(const ResponseInspection& value) { m_responseInspectionHasBeenSet = true; m_responseInspection = value; } /** *

The criteria for inspecting responses to login requests, used by the ATP rule * group to track login failure rates.

Response inspection is * available only in web ACLs that protect Amazon CloudFront distributions.

*

The ATP rule group evaluates the responses that your protected * resources send back to client login attempts, keeping count of successful and * failed attempts for each IP address and client session. Using this information, * the rule group labels and mitigates requests from client sessions and IP * addresses that have had too many failed login attempts in a short amount of * time.

*/ inline void SetResponseInspection(ResponseInspection&& value) { m_responseInspectionHasBeenSet = true; m_responseInspection = std::move(value); } /** *

The criteria for inspecting responses to login requests, used by the ATP rule * group to track login failure rates.

Response inspection is * available only in web ACLs that protect Amazon CloudFront distributions.

*

The ATP rule group evaluates the responses that your protected * resources send back to client login attempts, keeping count of successful and * failed attempts for each IP address and client session. Using this information, * the rule group labels and mitigates requests from client sessions and IP * addresses that have had too many failed login attempts in a short amount of * time.

*/ inline AWSManagedRulesATPRuleSet& WithResponseInspection(const ResponseInspection& value) { SetResponseInspection(value); return *this;} /** *

The criteria for inspecting responses to login requests, used by the ATP rule * group to track login failure rates.

Response inspection is * available only in web ACLs that protect Amazon CloudFront distributions.

*

The ATP rule group evaluates the responses that your protected * resources send back to client login attempts, keeping count of successful and * failed attempts for each IP address and client session. Using this information, * the rule group labels and mitigates requests from client sessions and IP * addresses that have had too many failed login attempts in a short amount of * time.

*/ inline AWSManagedRulesATPRuleSet& WithResponseInspection(ResponseInspection&& value) { SetResponseInspection(std::move(value)); return *this;} /** *

Allow the use of regular expressions in the login page path.

*/ inline bool GetEnableRegexInPath() const{ return m_enableRegexInPath; } /** *

Allow the use of regular expressions in the login page path.

*/ inline bool EnableRegexInPathHasBeenSet() const { return m_enableRegexInPathHasBeenSet; } /** *

Allow the use of regular expressions in the login page path.

*/ inline void SetEnableRegexInPath(bool value) { m_enableRegexInPathHasBeenSet = true; m_enableRegexInPath = value; } /** *

Allow the use of regular expressions in the login page path.

*/ inline AWSManagedRulesATPRuleSet& WithEnableRegexInPath(bool value) { SetEnableRegexInPath(value); return *this;} private: Aws::String m_loginPath; bool m_loginPathHasBeenSet = false; RequestInspection m_requestInspection; bool m_requestInspectionHasBeenSet = false; ResponseInspection m_responseInspection; bool m_responseInspectionHasBeenSet = false; bool m_enableRegexInPath; bool m_enableRegexInPathHasBeenSet = false; }; } // namespace Model } // namespace WAFV2 } // namespace Aws