All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cloudshift.awscdk.dsl.services.wafv2.CfnWebACLRuleActionPropertyDsl.kt Maven / Gradle / Ivy

There is a newer version: 0.7.0
Show newest version
@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION")

package cloudshift.awscdk.dsl.services.wafv2

import cloudshift.awscdk.common.CdkDslMarker
import software.amazon.awscdk.IResolvable
import software.amazon.awscdk.services.wafv2.CfnWebACL

/**
 * The action that AWS WAF should take on a web request when it matches a rule's statement.
 *
 * Settings at the web ACL level can override the rule action setting.
 *
 * Example:
 *
 * ```
 * // The code below shows an example of how to instantiate this type.
 * // The values are placeholders you should change.
 * import software.amazon.awscdk.services.wafv2.*;
 * RuleActionProperty ruleActionProperty = RuleActionProperty.builder()
 * .allow(AllowActionProperty.builder()
 * .customRequestHandling(CustomRequestHandlingProperty.builder()
 * .insertHeaders(List.of(CustomHTTPHeaderProperty.builder()
 * .name("name")
 * .value("value")
 * .build()))
 * .build())
 * .build())
 * .block(BlockActionProperty.builder()
 * .customResponse(CustomResponseProperty.builder()
 * .responseCode(123)
 * // the properties below are optional
 * .customResponseBodyKey("customResponseBodyKey")
 * .responseHeaders(List.of(CustomHTTPHeaderProperty.builder()
 * .name("name")
 * .value("value")
 * .build()))
 * .build())
 * .build())
 * .captcha(CaptchaActionProperty.builder()
 * .customRequestHandling(CustomRequestHandlingProperty.builder()
 * .insertHeaders(List.of(CustomHTTPHeaderProperty.builder()
 * .name("name")
 * .value("value")
 * .build()))
 * .build())
 * .build())
 * .challenge(ChallengeActionProperty.builder()
 * .customRequestHandling(CustomRequestHandlingProperty.builder()
 * .insertHeaders(List.of(CustomHTTPHeaderProperty.builder()
 * .name("name")
 * .value("value")
 * .build()))
 * .build())
 * .build())
 * .count(CountActionProperty.builder()
 * .customRequestHandling(CustomRequestHandlingProperty.builder()
 * .insertHeaders(List.of(CustomHTTPHeaderProperty.builder()
 * .name("name")
 * .value("value")
 * .build()))
 * .build())
 * .build())
 * .build();
 * ```
 *
 * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ruleaction.html)
 */
@CdkDslMarker
public class CfnWebACLRuleActionPropertyDsl {
  private val cdkBuilder: CfnWebACL.RuleActionProperty.Builder =
      CfnWebACL.RuleActionProperty.builder()

  /**
   * @param allow Instructs AWS WAF to allow the web request.
   */
  public fun allow(allow: IResolvable) {
    cdkBuilder.allow(allow)
  }

  /**
   * @param allow Instructs AWS WAF to allow the web request.
   */
  public fun allow(allow: CfnWebACL.AllowActionProperty) {
    cdkBuilder.allow(allow)
  }

  /**
   * @param block Instructs AWS WAF to block the web request.
   */
  public fun block(block: IResolvable) {
    cdkBuilder.block(block)
  }

  /**
   * @param block Instructs AWS WAF to block the web request.
   */
  public fun block(block: CfnWebACL.BlockActionProperty) {
    cdkBuilder.block(block)
  }

  /**
   * @param captcha Specifies that AWS WAF should run a `CAPTCHA` check against the request:.
   * * If the request includes a valid, unexpired `CAPTCHA` token, AWS WAF allows the web request
   * inspection to proceed to the next rule, similar to a `CountAction` .
   * * If the request doesn't include a valid, unexpired `CAPTCHA` token, AWS WAF discontinues the
   * web ACL evaluation of the request and blocks it from going to its intended destination.
   *
   * AWS 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` challenge.
   *
   * 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.
   */
  public fun captcha(captcha: IResolvable) {
    cdkBuilder.captcha(captcha)
  }

  /**
   * @param captcha Specifies that AWS WAF should run a `CAPTCHA` check against the request:.
   * * If the request includes a valid, unexpired `CAPTCHA` token, AWS WAF allows the web request
   * inspection to proceed to the next rule, similar to a `CountAction` .
   * * If the request doesn't include a valid, unexpired `CAPTCHA` token, AWS WAF discontinues the
   * web ACL evaluation of the request and blocks it from going to its intended destination.
   *
   * AWS 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` challenge.
   *
   * 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.
   */
  public fun captcha(captcha: CfnWebACL.CaptchaActionProperty) {
    cdkBuilder.captcha(captcha)
  }

  /**
   * @param challenge Instructs AWS WAF to run a `Challenge` check against the web request.
   */
  public fun challenge(challenge: IResolvable) {
    cdkBuilder.challenge(challenge)
  }

  /**
   * @param challenge Instructs AWS WAF to run a `Challenge` check against the web request.
   */
  public fun challenge(challenge: CfnWebACL.ChallengeActionProperty) {
    cdkBuilder.challenge(challenge)
  }

  /**
   * @param count Instructs AWS WAF to count the web request and then continue evaluating the
   * request using the remaining rules in the web ACL.
   */
  public fun count(count: IResolvable) {
    cdkBuilder.count(count)
  }

  /**
   * @param count Instructs AWS WAF to count the web request and then continue evaluating the
   * request using the remaining rules in the web ACL.
   */
  public fun count(count: CfnWebACL.CountActionProperty) {
    cdkBuilder.count(count)
  }

  public fun build(): CfnWebACL.RuleActionProperty = cdkBuilder.build()
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy