Show / Hide Table of Contents

Class CfnWebACLPropsMixin.RateBasedStatementCustomKeyProperty

Specifies a single custom aggregate key for a rate-base rule.

Inheritance
object
CfnWebACLPropsMixin.RateBasedStatementCustomKeyProperty
Implements
CfnWebACLPropsMixin.IRateBasedStatementCustomKeyProperty
Inherited Members
object.GetType()
object.MemberwiseClone()
object.ToString()
object.Equals(object)
object.Equals(object, object)
object.ReferenceEquals(object, object)
object.GetHashCode()
Namespace: Amazon.CDK.Mixins.Preview.AWS.WAFv2.Mixins
Assembly: Amazon.CDK.Mixins.Preview.dll
Syntax (csharp)
public class CfnWebACLPropsMixin.RateBasedStatementCustomKeyProperty : CfnWebACLPropsMixin.IRateBasedStatementCustomKeyProperty
Syntax (vb)
Public Class CfnWebACLPropsMixin.RateBasedStatementCustomKeyProperty Implements CfnWebACLPropsMixin.IRateBasedStatementCustomKeyProperty
Remarks
Web requests that are missing any of the components specified in the aggregation keys are omitted from the rate-based rule evaluation and handling.

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatementcustomkey.html

ExampleMetadata: fixture=_generated

Examples
// The code below shows an example of how to instantiate this type.
             // The values are placeholders you should change.
             using Amazon.CDK.Mixins.Preview.AWS.WAFv2.Mixins;

             var asn;
             var forwardedIp;
             var httpMethod;
             var ip;

             var rateBasedStatementCustomKeyProperty = new RateBasedStatementCustomKeyProperty {
                 Asn = asn,
                 Cookie = new RateLimitCookieProperty {
                     Name = "name",
                     TextTransformations = new [] { new TextTransformationProperty {
                         Priority = 123,
                         Type = "type"
                     } }
                 },
                 ForwardedIp = forwardedIp,
                 Header = new RateLimitHeaderProperty {
                     Name = "name",
                     TextTransformations = new [] { new TextTransformationProperty {
                         Priority = 123,
                         Type = "type"
                     } }
                 },
                 HttpMethod = httpMethod,
                 Ip = ip,
                 Ja3Fingerprint = new RateLimitJA3FingerprintProperty {
                     FallbackBehavior = "fallbackBehavior"
                 },
                 Ja4Fingerprint = new RateLimitJA4FingerprintProperty {
                     FallbackBehavior = "fallbackBehavior"
                 },
                 LabelNamespace = new RateLimitLabelNamespaceProperty {
                     Namespace = "namespace"
                 },
                 QueryArgument = new RateLimitQueryArgumentProperty {
                     Name = "name",
                     TextTransformations = new [] { new TextTransformationProperty {
                         Priority = 123,
                         Type = "type"
                     } }
                 },
                 QueryString = new RateLimitQueryStringProperty {
                     TextTransformations = new [] { new TextTransformationProperty {
                         Priority = 123,
                         Type = "type"
                     } }
                 },
                 UriPath = new RateLimitUriPathProperty {
                     TextTransformations = new [] { new TextTransformationProperty {
                         Priority = 123,
                         Type = "type"
                     } }
                 }
             };

Synopsis

Constructors

RateBasedStatementCustomKeyProperty()

Specifies a single custom aggregate key for a rate-base rule.

Properties

Asn

Use an Autonomous System Number (ASN) derived from the request's originating or forwarded IP address as an aggregate key.

Cookie

Use the value of a cookie in the request as an aggregate key.

ForwardedIp

Use the first IP address in an HTTP header as an aggregate key.

Header

Use the value of a header in the request as an aggregate key.

HttpMethod

Use the request's HTTP method as an aggregate key.

Ip

Use the request's originating IP address as an aggregate key. Each distinct IP address contributes to the aggregation instance.

Ja3Fingerprint

Use the request's JA3 fingerprint as an aggregate key.

Ja4Fingerprint

Use the request's JA4 fingerprint as an aggregate key.

LabelNamespace

Use the specified label namespace as an aggregate key.

QueryArgument

Use the specified query argument as an aggregate key.

QueryString

Use the request's query string as an aggregate key.

UriPath

Use the request's URI path as an aggregate key.

Constructors

RateBasedStatementCustomKeyProperty()

Specifies a single custom aggregate key for a rate-base rule.

public RateBasedStatementCustomKeyProperty()
Remarks
Web requests that are missing any of the components specified in the aggregation keys are omitted from the rate-based rule evaluation and handling.

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatementcustomkey.html

ExampleMetadata: fixture=_generated

Examples
// The code below shows an example of how to instantiate this type.
             // The values are placeholders you should change.
             using Amazon.CDK.Mixins.Preview.AWS.WAFv2.Mixins;

             var asn;
             var forwardedIp;
             var httpMethod;
             var ip;

             var rateBasedStatementCustomKeyProperty = new RateBasedStatementCustomKeyProperty {
                 Asn = asn,
                 Cookie = new RateLimitCookieProperty {
                     Name = "name",
                     TextTransformations = new [] { new TextTransformationProperty {
                         Priority = 123,
                         Type = "type"
                     } }
                 },
                 ForwardedIp = forwardedIp,
                 Header = new RateLimitHeaderProperty {
                     Name = "name",
                     TextTransformations = new [] { new TextTransformationProperty {
                         Priority = 123,
                         Type = "type"
                     } }
                 },
                 HttpMethod = httpMethod,
                 Ip = ip,
                 Ja3Fingerprint = new RateLimitJA3FingerprintProperty {
                     FallbackBehavior = "fallbackBehavior"
                 },
                 Ja4Fingerprint = new RateLimitJA4FingerprintProperty {
                     FallbackBehavior = "fallbackBehavior"
                 },
                 LabelNamespace = new RateLimitLabelNamespaceProperty {
                     Namespace = "namespace"
                 },
                 QueryArgument = new RateLimitQueryArgumentProperty {
                     Name = "name",
                     TextTransformations = new [] { new TextTransformationProperty {
                         Priority = 123,
                         Type = "type"
                     } }
                 },
                 QueryString = new RateLimitQueryStringProperty {
                     TextTransformations = new [] { new TextTransformationProperty {
                         Priority = 123,
                         Type = "type"
                     } }
                 },
                 UriPath = new RateLimitUriPathProperty {
                     TextTransformations = new [] { new TextTransformationProperty {
                         Priority = 123,
                         Type = "type"
                     } }
                 }
             };

Properties

Asn

Use an Autonomous System Number (ASN) derived from the request's originating or forwarded IP address as an aggregate key.

public object? Asn { get; set; }
Property Value

object

Remarks

Each distinct ASN contributes to the aggregation instance.

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatementcustomkey.html#cfn-wafv2-webacl-ratebasedstatementcustomkey-asn

Cookie

Use the value of a cookie in the request as an aggregate key.

public object? Cookie { get; set; }
Property Value

object

Remarks

Each distinct value in the cookie contributes to the aggregation instance. If you use a single cookie as your custom key, then each value fully defines an aggregation instance.

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatementcustomkey.html#cfn-wafv2-webacl-ratebasedstatementcustomkey-cookie

Type union: either IResolvable or CfnWebACLPropsMixin.IRateLimitCookieProperty

ForwardedIp

Use the first IP address in an HTTP header as an aggregate key.

public object? ForwardedIp { get; set; }
Property Value

object

Remarks

Each distinct forwarded IP address contributes to the aggregation instance.

When you specify an IP or forwarded IP in the custom key settings, you must also specify at least one other key to use. You can aggregate on only the forwarded IP address by specifying FORWARDED_IP in your rate-based statement's AggregateKeyType .

With this option, you must specify the header to use in the rate-based rule's ForwardedIPConfig property.

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatementcustomkey.html#cfn-wafv2-webacl-ratebasedstatementcustomkey-forwardedip

Header

Use the value of a header in the request as an aggregate key.

public object? Header { get; set; }
Property Value

object

Remarks

Each distinct value in the header contributes to the aggregation instance. If you use a single header as your custom key, then each value fully defines an aggregation instance.

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatementcustomkey.html#cfn-wafv2-webacl-ratebasedstatementcustomkey-header

Type union: either IResolvable or CfnWebACLPropsMixin.IRateLimitHeaderProperty

HttpMethod

Use the request's HTTP method as an aggregate key.

public object? HttpMethod { get; set; }
Property Value

object

Remarks

Each distinct HTTP method contributes to the aggregation instance. If you use just the HTTP method as your custom key, then each method fully defines an aggregation instance.

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatementcustomkey.html#cfn-wafv2-webacl-ratebasedstatementcustomkey-httpmethod

Ip

Use the request's originating IP address as an aggregate key. Each distinct IP address contributes to the aggregation instance.

public object? Ip { get; set; }
Property Value

object

Remarks

When you specify an IP or forwarded IP in the custom key settings, you must also specify at least one other key to use. You can aggregate on only the IP address by specifying IP in your rate-based statement's AggregateKeyType .

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatementcustomkey.html#cfn-wafv2-webacl-ratebasedstatementcustomkey-ip

Ja3Fingerprint

Use the request's JA3 fingerprint as an aggregate key.

public object? Ja3Fingerprint { get; set; }
Property Value

object

Remarks

If you use a single JA3 fingerprint as your custom key, then each value fully defines an aggregation instance.

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatementcustomkey.html#cfn-wafv2-webacl-ratebasedstatementcustomkey-ja3fingerprint

Type union: either IResolvable or CfnWebACLPropsMixin.IRateLimitJA3FingerprintProperty

Ja4Fingerprint

Use the request's JA4 fingerprint as an aggregate key.

public object? Ja4Fingerprint { get; set; }
Property Value

object

Remarks

If you use a single JA4 fingerprint as your custom key, then each value fully defines an aggregation instance.

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatementcustomkey.html#cfn-wafv2-webacl-ratebasedstatementcustomkey-ja4fingerprint

Type union: either IResolvable or CfnWebACLPropsMixin.IRateLimitJA4FingerprintProperty

LabelNamespace

Use the specified label namespace as an aggregate key.

public object? LabelNamespace { get; set; }
Property Value

object

Remarks

Each distinct fully qualified label name that has the specified label namespace contributes to the aggregation instance. If you use just one label namespace as your custom key, then each label name fully defines an aggregation instance.

This uses only labels that have been added to the request by rules that are evaluated before this rate-based rule in the web ACL.

For information about label namespaces and names, see Label syntax and naming requirements in the AWS WAF Developer Guide .

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatementcustomkey.html#cfn-wafv2-webacl-ratebasedstatementcustomkey-labelnamespace

Type union: either IResolvable or CfnWebACLPropsMixin.IRateLimitLabelNamespaceProperty

QueryArgument

Use the specified query argument as an aggregate key.

public object? QueryArgument { get; set; }
Property Value

object

Remarks

Each distinct value for the named query argument contributes to the aggregation instance. If you use a single query argument as your custom key, then each value fully defines an aggregation instance.

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatementcustomkey.html#cfn-wafv2-webacl-ratebasedstatementcustomkey-queryargument

Type union: either IResolvable or CfnWebACLPropsMixin.IRateLimitQueryArgumentProperty

QueryString

Use the request's query string as an aggregate key.

public object? QueryString { get; set; }
Property Value

object

Remarks

Each distinct string contributes to the aggregation instance. If you use just the query string as your custom key, then each string fully defines an aggregation instance.

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatementcustomkey.html#cfn-wafv2-webacl-ratebasedstatementcustomkey-querystring

Type union: either IResolvable or CfnWebACLPropsMixin.IRateLimitQueryStringProperty

UriPath

Use the request's URI path as an aggregate key.

public object? UriPath { get; set; }
Property Value

object

Remarks

Each distinct URI path contributes to the aggregation instance. If you use just the URI path as your custom key, then each URI path fully defines an aggregation instance.

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatementcustomkey.html#cfn-wafv2-webacl-ratebasedstatementcustomkey-uripath

Type union: either IResolvable or CfnWebACLPropsMixin.IRateLimitUriPathProperty

Implements

CfnWebACLPropsMixin.IRateBasedStatementCustomKeyProperty
Back to top Generated by DocFX