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

Specifies that WAF should run a CAPTCHA check against the * request:

  • If the request includes a valid, unexpired * CAPTCHA token, WAF applies any custom request handling and labels * that you've configured and then allows the web request inspection to proceed to * the next rule, similar to a CountAction.

  • If the * request doesn't include a valid, unexpired token, WAF discontinues the web ACL * evaluation of the request and blocks it from going to its intended * destination.

    WAF generates a response that it sends back to the client, * which includes the following:

    • The header * x-amzn-waf-action with a value of captcha.

    • *
    • The HTTP status code 405 Method Not Allowed.

    • *
    • If the request contains an Accept header with a value of * text/html, the response includes a CAPTCHA JavaScript * page interstitial.

You can configure the * expiration time in the CaptchaConfig * ImmunityTimeProperty setting at the rule and web ACL level. The * rule setting overrides the web ACL setting.

This action option is * available for rules. It isn't available for web ACL default actions. *

See Also:

AWS * API Reference

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

Defines custom handling for the web request, used when the * CAPTCHA inspection determines that the request's token is valid and * unexpired.

For information about customizing web requests and responses, * see Customizing * web requests and responses in WAF in the WAF Developer Guide.

*/ inline const CustomRequestHandling& GetCustomRequestHandling() const{ return m_customRequestHandling; } /** *

Defines custom handling for the web request, used when the * CAPTCHA inspection determines that the request's token is valid and * unexpired.

For information about customizing web requests and responses, * see Customizing * web requests and responses in WAF in the WAF Developer Guide.

*/ inline bool CustomRequestHandlingHasBeenSet() const { return m_customRequestHandlingHasBeenSet; } /** *

Defines custom handling for the web request, used when the * CAPTCHA inspection determines that the request's token is valid and * unexpired.

For information about customizing web requests and responses, * see Customizing * web requests and responses in WAF in the WAF Developer Guide.

*/ inline void SetCustomRequestHandling(const CustomRequestHandling& value) { m_customRequestHandlingHasBeenSet = true; m_customRequestHandling = value; } /** *

Defines custom handling for the web request, used when the * CAPTCHA inspection determines that the request's token is valid and * unexpired.

For information about customizing web requests and responses, * see Customizing * web requests and responses in WAF in the WAF Developer Guide.

*/ inline void SetCustomRequestHandling(CustomRequestHandling&& value) { m_customRequestHandlingHasBeenSet = true; m_customRequestHandling = std::move(value); } /** *

Defines custom handling for the web request, used when the * CAPTCHA inspection determines that the request's token is valid and * unexpired.

For information about customizing web requests and responses, * see Customizing * web requests and responses in WAF in the WAF Developer Guide.

*/ inline CaptchaAction& WithCustomRequestHandling(const CustomRequestHandling& value) { SetCustomRequestHandling(value); return *this;} /** *

Defines custom handling for the web request, used when the * CAPTCHA inspection determines that the request's token is valid and * unexpired.

For information about customizing web requests and responses, * see Customizing * web requests and responses in WAF in the WAF Developer Guide.

*/ inline CaptchaAction& WithCustomRequestHandling(CustomRequestHandling&& value) { SetCustomRequestHandling(std::move(value)); return *this;} private: CustomRequestHandling m_customRequestHandling; bool m_customRequestHandlingHasBeenSet = false; }; } // namespace Model } // namespace WAFV2 } // namespace Aws