Chilkat Online Tools

GetRuleGroup Powershell Example

AWS WAFV2

Add-Type -Path "C:\chilkat\ChilkatDotNet47-9.5.0-x64\ChilkatDotNet47.dll"

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

$rest = New-Object Chilkat.Rest

$authAws = New-Object Chilkat.AuthAws
$authAws.AccessKey = "AWS_ACCESS_KEY"
$authAws.SecretKey = "AWS_SECRET_KEY"

# Don't forget to change the region to your particular region. (Also make the same change in the call to Connect below.)
$authAws.Region = "us-west-2"
$authAws.ServiceName = "wafv2"
# SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
$rest.SetAuthAws($authAws)

# URL: https://wafv2.us-west-2.amazonaws.com/
# Use the same region as specified above.
$success = $rest.Connect("wafv2.us-west-2.amazonaws.com",443,$true,$true)
if ($success -ne $true) {
    $("ConnectFailReason: " + $rest.ConnectFailReason)
    $($rest.LastErrorText)
    exit
}

# The following code creates the JSON request body.
# The JSON created by this code is shown below.

# Use this online tool to generate code from sample JSON:
# Generate Code to Create JSON

$json = New-Object Chilkat.JsonObject
$json.UpdateString("ARN","string")
$json.UpdateString("Id","string")
$json.UpdateString("Name","string")
$json.UpdateString("Scope","string")

# The JSON request body created by the above code:

# {
#   "ARN": "string",
#   "Id": "string",
#   "Name": "string",
#   "Scope": "string"
# }

$rest.AddHeader("Content-Type","application/x-amz-json-1.1")
$rest.AddHeader("X-Amz-Target","AWSWAF_20190729.GetRuleGroup")

$sbRequestBody = New-Object Chilkat.StringBuilder
$json.EmitSb($sbRequestBody)
$sbResponseBody = New-Object Chilkat.StringBuilder
$success = $rest.FullRequestSb("POST","/",$sbRequestBody,$sbResponseBody)
if ($success -ne $true) {
    $($rest.LastErrorText)
    exit
}

$respStatusCode = $rest.ResponseStatusCode
$("response status code = " + $respStatusCode)
if ($respStatusCode -ne 200) {
    $("Response Header:")
    $($rest.ResponseHeader)
    $("Response Body:")
    $($sbResponseBody.GetAsString())
    exit
}

$jResp = New-Object Chilkat.JsonObject
$jResp.LoadSb($sbResponseBody)

# The following code parses the JSON response.
# A sample JSON response is shown below the sample code.

# Use this online tool to generate parsing code from sample JSON:
# Generate Parsing Code from JSON

$LockToken = $jResp.StringOf("LockToken")
$ARN = $jResp.StringOf("RuleGroup.ARN")
$Capacity = $jResp.IntOf("RuleGroup.Capacity")
$Content = $jResp.StringOf("RuleGroup.CustomResponseBodies.string.Content")
$ContentType = $jResp.StringOf("RuleGroup.CustomResponseBodies.string.ContentType")
$Description = $jResp.StringOf("RuleGroup.Description")
$Id = $jResp.StringOf("RuleGroup.Id")
$LabelNamespace = $jResp.StringOf("RuleGroup.LabelNamespace")
$Name = $jResp.StringOf("RuleGroup.Name")
$CloudWatchMetricsEnabled = $jResp.IntOf("RuleGroup.VisibilityConfig.CloudWatchMetricsEnabled")
$MetricName = $jResp.StringOf("RuleGroup.VisibilityConfig.MetricName")
$SampledRequestsEnabled = $jResp.IntOf("RuleGroup.VisibilityConfig.SampledRequestsEnabled")
$i = 0
$count_i = $jResp.SizeOfArray("RuleGroup.AvailableLabels")
while ($i -lt $count_i) {
    $jResp.I = $i
    $Name = $jResp.StringOf("RuleGroup.AvailableLabels[i].Name")
    $i = $i + 1
}

$i = 0
$count_i = $jResp.SizeOfArray("RuleGroup.ConsumedLabels")
while ($i -lt $count_i) {
    $jResp.I = $i
    $Name = $jResp.StringOf("RuleGroup.ConsumedLabels[i].Name")
    $i = $i + 1
}

$i = 0
$count_i = $jResp.SizeOfArray("RuleGroup.Rules")
while ($i -lt $count_i) {
    $jResp.I = $i
    $CustomResponseBodyKey = $jResp.StringOf("RuleGroup.Rules[i].Action.Block.CustomResponse.CustomResponseBodyKey")
    $ResponseCode = $jResp.IntOf("RuleGroup.Rules[i].Action.Block.CustomResponse.ResponseCode")
    $ImmunityTime = $jResp.IntOf("RuleGroup.Rules[i].CaptchaConfig.ImmunityTimeProperty.ImmunityTime")
    $Name = $jResp.StringOf("RuleGroup.Rules[i].Name")
    $Priority = $jResp.IntOf("RuleGroup.Rules[i].Priority")
    $OversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Body.OversizeHandling")
    $MatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchScope")
    $CookiesOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.OversizeHandling")
    $HeadersMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchScope")
    $HeadersOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.OversizeHandling")
    $InvalidFallbackBehavior = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
    $JsonBodyMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.JsonBody.MatchScope")
    $JsonBodyOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.JsonBody.OversizeHandling")
    $SingleHeaderName = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.SingleHeader.Name")
    $SingleQueryArgumentName = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.SingleQueryArgument.Name")
    $PositionalConstraint = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.PositionalConstraint")
    $SearchString = $jResp.IntOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.SearchString")
    $FallbackBehavior = $jResp.StringOf("RuleGroup.Rules[i].Statement.GeoMatchStatement.ForwardedIPConfig.FallbackBehavior")
    $HeaderName = $jResp.StringOf("RuleGroup.Rules[i].Statement.GeoMatchStatement.ForwardedIPConfig.HeaderName")
    $IPSetReferenceStatementARN = $jResp.StringOf("RuleGroup.Rules[i].Statement.IPSetReferenceStatement.ARN")
    $IPSetForwardedIPConfigFallbackBehavior = $jResp.StringOf("RuleGroup.Rules[i].Statement.IPSetReferenceStatement.IPSetForwardedIPConfig.FallbackBehavior")
    $IPSetForwardedIPConfigHeaderName = $jResp.StringOf("RuleGroup.Rules[i].Statement.IPSetReferenceStatement.IPSetForwardedIPConfig.HeaderName")
    $Position = $jResp.StringOf("RuleGroup.Rules[i].Statement.IPSetReferenceStatement.IPSetForwardedIPConfig.Position")
    $Key = $jResp.StringOf("RuleGroup.Rules[i].Statement.LabelMatchStatement.Key")
    $Scope = $jResp.StringOf("RuleGroup.Rules[i].Statement.LabelMatchStatement.Scope")
    $ManagedRuleGroupStatementName = $jResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.Name")
    $ScopeDownStatement = $jResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ScopeDownStatement")
    $VendorName = $jResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.VendorName")
    $Version = $jResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.Version")
    $Statement = $jResp.StringOf("RuleGroup.Rules[i].Statement.NotStatement.Statement")
    $AggregateKeyType = $jResp.StringOf("RuleGroup.Rules[i].Statement.RateBasedStatement.AggregateKeyType")
    $ForwardedIPConfigFallbackBehavior = $jResp.StringOf("RuleGroup.Rules[i].Statement.RateBasedStatement.ForwardedIPConfig.FallbackBehavior")
    $ForwardedIPConfigHeaderName = $jResp.StringOf("RuleGroup.Rules[i].Statement.RateBasedStatement.ForwardedIPConfig.HeaderName")
    $Limit = $jResp.IntOf("RuleGroup.Rules[i].Statement.RateBasedStatement.Limit")
    $RateBasedStatementScopeDownStatement = $jResp.StringOf("RuleGroup.Rules[i].Statement.RateBasedStatement.ScopeDownStatement")
    $BodyOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Body.OversizeHandling")
    $CookiesMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchScope")
    $CookiesOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.OversizeHandling")
    $HeadersMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchScope")
    $HeadersOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.OversizeHandling")
    $JsonBodyInvalidFallbackBehavior = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
    $JsonBodyMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.JsonBody.MatchScope")
    $JsonBodyOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.JsonBody.OversizeHandling")
    $SingleHeaderName = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.SingleHeader.Name")
    $SingleQueryArgumentName = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.SingleQueryArgument.Name")
    $RegexString = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.RegexString")
    $RegexPatternSetReferenceStatementARN = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.ARN")
    $BodyOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Body.OversizeHandling")
    $CookiesMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchScope")
    $CookiesOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.OversizeHandling")
    $HeadersMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchScope")
    $HeadersOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.OversizeHandling")
    $JsonBodyInvalidFallbackBehavior = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
    $JsonBodyMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.MatchScope")
    $JsonBodyOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.OversizeHandling")
    $SingleHeaderName = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.SingleHeader.Name")
    $SingleQueryArgumentName = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.SingleQueryArgument.Name")
    $RuleGroupReferenceStatementARN = $jResp.StringOf("RuleGroup.Rules[i].Statement.RuleGroupReferenceStatement.ARN")
    $ComparisonOperator = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.ComparisonOperator")
    $BodyOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Body.OversizeHandling")
    $CookiesMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchScope")
    $CookiesOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.OversizeHandling")
    $HeadersMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchScope")
    $HeadersOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.OversizeHandling")
    $JsonBodyInvalidFallbackBehavior = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
    $JsonBodyMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.MatchScope")
    $JsonBodyOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.OversizeHandling")
    $SingleHeaderName = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.SingleHeader.Name")
    $SingleQueryArgumentName = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.SingleQueryArgument.Name")
    $Size = $jResp.IntOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.Size")
    $BodyOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Body.OversizeHandling")
    $CookiesMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchScope")
    $CookiesOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.OversizeHandling")
    $HeadersMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchScope")
    $HeadersOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.OversizeHandling")
    $JsonBodyInvalidFallbackBehavior = $jResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
    $JsonBodyMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.JsonBody.MatchScope")
    $JsonBodyOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.JsonBody.OversizeHandling")
    $SingleHeaderName = $jResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.SingleHeader.Name")
    $SingleQueryArgumentName = $jResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.SingleQueryArgument.Name")
    $BodyOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Body.OversizeHandling")
    $CookiesMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchScope")
    $CookiesOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.OversizeHandling")
    $HeadersMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.MatchScope")
    $HeadersOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.OversizeHandling")
    $JsonBodyInvalidFallbackBehavior = $jResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
    $JsonBodyMatchScope = $jResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.JsonBody.MatchScope")
    $JsonBodyOversizeHandling = $jResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.JsonBody.OversizeHandling")
    $SingleHeaderName = $jResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.SingleHeader.Name")
    $SingleQueryArgumentName = $jResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.SingleQueryArgument.Name")
    $VisibilityConfigCloudWatchMetricsEnabled = $jResp.IntOf("RuleGroup.Rules[i].VisibilityConfig.CloudWatchMetricsEnabled")
    $VisibilityConfigMetricName = $jResp.StringOf("RuleGroup.Rules[i].VisibilityConfig.MetricName")
    $VisibilityConfigSampledRequestsEnabled = $jResp.IntOf("RuleGroup.Rules[i].VisibilityConfig.SampledRequestsEnabled")
    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Action.Allow.CustomRequestHandling.InsertHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $Name = $jResp.StringOf("RuleGroup.Rules[i].Action.Allow.CustomRequestHandling.InsertHeaders[j].Name")
        $Value = $jResp.StringOf("RuleGroup.Rules[i].Action.Allow.CustomRequestHandling.InsertHeaders[j].Value")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Action.Block.CustomResponse.ResponseHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $Name = $jResp.StringOf("RuleGroup.Rules[i].Action.Block.CustomResponse.ResponseHeaders[j].Name")
        $Value = $jResp.StringOf("RuleGroup.Rules[i].Action.Block.CustomResponse.ResponseHeaders[j].Value")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Action.Captcha.CustomRequestHandling.InsertHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $Name = $jResp.StringOf("RuleGroup.Rules[i].Action.Captcha.CustomRequestHandling.InsertHeaders[j].Name")
        $Value = $jResp.StringOf("RuleGroup.Rules[i].Action.Captcha.CustomRequestHandling.InsertHeaders[j].Value")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Action.Count.CustomRequestHandling.InsertHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $Name = $jResp.StringOf("RuleGroup.Rules[i].Action.Count.CustomRequestHandling.InsertHeaders[j].Name")
        $Value = $jResp.StringOf("RuleGroup.Rules[i].Action.Count.CustomRequestHandling.InsertHeaders[j].Value")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].OverrideAction.Count.CustomRequestHandling.InsertHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $Name = $jResp.StringOf("RuleGroup.Rules[i].OverrideAction.Count.CustomRequestHandling.InsertHeaders[j].Name")
        $Value = $jResp.StringOf("RuleGroup.Rules[i].OverrideAction.Count.CustomRequestHandling.InsertHeaders[j].Value")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].RuleLabels")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $Name = $jResp.StringOf("RuleGroup.Rules[i].RuleLabels[j].Name")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.AndStatement.Statements")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.AndStatement.Statements[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.ByteMatchStatement.TextTransformations")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $Priority = $jResp.IntOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.TextTransformations[j].Priority")
        $v_Type = $jResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.TextTransformations[j].Type")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.GeoMatchStatement.CountryCodes")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.GeoMatchStatement.CountryCodes[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ExcludedRules")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $Name = $jResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ExcludedRules[j].Name")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $LoginPath = $jResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[j].LoginPath")
        $Identifier = $jResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[j].PasswordField.Identifier")
        $PayloadType = $jResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[j].PayloadType")
        $UsernameFieldIdentifier = $jResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[j].UsernameField.Identifier")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.OrStatement.Statements")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.OrStatement.Statements[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexMatchStatement.TextTransformations")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $Priority = $jResp.IntOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.TextTransformations[j].Priority")
        $v_Type = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.TextTransformations[j].Type")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.TextTransformations")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $Priority = $jResp.IntOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.TextTransformations[j].Priority")
        $v_Type = $jResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.TextTransformations[j].Type")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.RuleGroupReferenceStatement.ExcludedRules")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $Name = $jResp.StringOf("RuleGroup.Rules[i].Statement.RuleGroupReferenceStatement.ExcludedRules[j].Name")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.SizeConstraintStatement.TextTransformations")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $Priority = $jResp.IntOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.TextTransformations[j].Priority")
        $v_Type = $jResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.TextTransformations[j].Type")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.SqliMatchStatement.TextTransformations")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $Priority = $jResp.IntOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.TextTransformations[j].Priority")
        $v_Type = $jResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.TextTransformations[j].Type")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("RuleGroup.Rules[i].Statement.XssMatchStatement.TextTransformations")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $Priority = $jResp.IntOf("RuleGroup.Rules[i].Statement.XssMatchStatement.TextTransformations[j].Priority")
        $v_Type = $jResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.TextTransformations[j].Type")
        $j = $j + 1
    }

    $i = $i + 1
}

# A sample JSON response body parsed by the above code:

# {
#   "LockToken": "string",
#   "RuleGroup": {
#     "ARN": "string",
#     "AvailableLabels": [
#       {
#         "Name": "string"
#       }
#     ],
#     "Capacity": number,
#     "ConsumedLabels": [
#       {
#         "Name": "string"
#       }
#     ],
#     "CustomResponseBodies": {
#       "string": {
#         "Content": "string",
#         "ContentType": "string"
#       }
#     },
#     "Description": "string",
#     "Id": "string",
#     "LabelNamespace": "string",
#     "Name": "string",
#     "Rules": [
#       {
#         "Action": {
#           "Allow": {
#             "CustomRequestHandling": {
#               "InsertHeaders": [
#                 {
#                   "Name": "string",
#                   "Value": "string"
#                 }
#               ]
#             }
#           },
#           "Block": {
#             "CustomResponse": {
#               "CustomResponseBodyKey": "string",
#               "ResponseCode": number,
#               "ResponseHeaders": [
#                 {
#                   "Name": "string",
#                   "Value": "string"
#                 }
#               ]
#             }
#           },
#           "Captcha": {
#             "CustomRequestHandling": {
#               "InsertHeaders": [
#                 {
#                   "Name": "string",
#                   "Value": "string"
#                 }
#               ]
#             }
#           },
#           "Count": {
#             "CustomRequestHandling": {
#               "InsertHeaders": [
#                 {
#                   "Name": "string",
#                   "Value": "string"
#                 }
#               ]
#             }
#           }
#         },
#         "CaptchaConfig": {
#           "ImmunityTimeProperty": {
#             "ImmunityTime": number
#           }
#         },
#         "Name": "string",
#         "OverrideAction": {
#           "Count": {
#             "CustomRequestHandling": {
#               "InsertHeaders": [
#                 {
#                   "Name": "string",
#                   "Value": "string"
#                 }
#               ]
#             }
#           },
#           "None": {}
#         },
#         "Priority": number,
#         "RuleLabels": [
#           {
#             "Name": "string"
#           }
#         ],
#         "Statement": {
#           "AndStatement": {
#             "Statements": [
#               "Statement"
#             ]
#           },
#           "ByteMatchStatement": {
#             "FieldToMatch": {
#               "AllQueryArguments": {},
#               "Body": {
#                 "OversizeHandling": "string"
#               },
#               "Cookies": {
#                 "MatchPattern": {
#                   "All": {},
#                   "ExcludedCookies": [
#                     "string"
#                   ],
#                   "IncludedCookies": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "Headers": {
#                 "MatchPattern": {
#                   "All": {},
#                   "ExcludedHeaders": [
#                     "string"
#                   ],
#                   "IncludedHeaders": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "JsonBody": {
#                 "InvalidFallbackBehavior": "string",
#                 "MatchPattern": {
#                   "All": {},
#                   "IncludedPaths": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "Method": {},
#               "QueryString": {},
#               "SingleHeader": {
#                 "Name": "string"
#               },
#               "SingleQueryArgument": {
#                 "Name": "string"
#               },
#               "UriPath": {}
#             },
#             "PositionalConstraint": "string",
#             "SearchString": blob,
#             "TextTransformations": [
#               {
#                 "Priority": number,
#                 "Type": "string"
#               }
#             ]
#           },
#           "GeoMatchStatement": {
#             "CountryCodes": [
#               "string"
#             ],
#             "ForwardedIPConfig": {
#               "FallbackBehavior": "string",
#               "HeaderName": "string"
#             }
#           },
#           "IPSetReferenceStatement": {
#             "ARN": "string",
#             "IPSetForwardedIPConfig": {
#               "FallbackBehavior": "string",
#               "HeaderName": "string",
#               "Position": "string"
#             }
#           },
#           "LabelMatchStatement": {
#             "Key": "string",
#             "Scope": "string"
#           },
#           "ManagedRuleGroupStatement": {
#             "ExcludedRules": [
#               {
#                 "Name": "string"
#               }
#             ],
#             "ManagedRuleGroupConfigs": [
#               {
#                 "LoginPath": "string",
#                 "PasswordField": {
#                   "Identifier": "string"
#                 },
#                 "PayloadType": "string",
#                 "UsernameField": {
#                   "Identifier": "string"
#                 }
#               }
#             ],
#             "Name": "string",
#             "ScopeDownStatement": "Statement",
#             "VendorName": "string",
#             "Version": "string"
#           },
#           "NotStatement": {
#             "Statement": "Statement"
#           },
#           "OrStatement": {
#             "Statements": [
#               "Statement"
#             ]
#           },
#           "RateBasedStatement": {
#             "AggregateKeyType": "string",
#             "ForwardedIPConfig": {
#               "FallbackBehavior": "string",
#               "HeaderName": "string"
#             },
#             "Limit": number,
#             "ScopeDownStatement": "Statement"
#           },
#           "RegexMatchStatement": {
#             "FieldToMatch": {
#               "AllQueryArguments": {},
#               "Body": {
#                 "OversizeHandling": "string"
#               },
#               "Cookies": {
#                 "MatchPattern": {
#                   "All": {},
#                   "ExcludedCookies": [
#                     "string"
#                   ],
#                   "IncludedCookies": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "Headers": {
#                 "MatchPattern": {
#                   "All": {},
#                   "ExcludedHeaders": [
#                     "string"
#                   ],
#                   "IncludedHeaders": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "JsonBody": {
#                 "InvalidFallbackBehavior": "string",
#                 "MatchPattern": {
#                   "All": {},
#                   "IncludedPaths": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "Method": {},
#               "QueryString": {},
#               "SingleHeader": {
#                 "Name": "string"
#               },
#               "SingleQueryArgument": {
#                 "Name": "string"
#               },
#               "UriPath": {}
#             },
#             "RegexString": "string",
#             "TextTransformations": [
#               {
#                 "Priority": number,
#                 "Type": "string"
#               }
#             ]
#           },
#           "RegexPatternSetReferenceStatement": {
#             "ARN": "string",
#             "FieldToMatch": {
#               "AllQueryArguments": {},
#               "Body": {
#                 "OversizeHandling": "string"
#               },
#               "Cookies": {
#                 "MatchPattern": {
#                   "All": {},
#                   "ExcludedCookies": [
#                     "string"
#                   ],
#                   "IncludedCookies": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "Headers": {
#                 "MatchPattern": {
#                   "All": {},
#                   "ExcludedHeaders": [
#                     "string"
#                   ],
#                   "IncludedHeaders": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "JsonBody": {
#                 "InvalidFallbackBehavior": "string",
#                 "MatchPattern": {
#                   "All": {},
#                   "IncludedPaths": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "Method": {},
#               "QueryString": {},
#               "SingleHeader": {
#                 "Name": "string"
#               },
#               "SingleQueryArgument": {
#                 "Name": "string"
#               },
#               "UriPath": {}
#             },
#             "TextTransformations": [
#               {
#                 "Priority": number,
#                 "Type": "string"
#               }
#             ]
#           },
#           "RuleGroupReferenceStatement": {
#             "ARN": "string",
#             "ExcludedRules": [
#               {
#                 "Name": "string"
#               }
#             ]
#           },
#           "SizeConstraintStatement": {
#             "ComparisonOperator": "string",
#             "FieldToMatch": {
#               "AllQueryArguments": {},
#               "Body": {
#                 "OversizeHandling": "string"
#               },
#               "Cookies": {
#                 "MatchPattern": {
#                   "All": {},
#                   "ExcludedCookies": [
#                     "string"
#                   ],
#                   "IncludedCookies": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "Headers": {
#                 "MatchPattern": {
#                   "All": {},
#                   "ExcludedHeaders": [
#                     "string"
#                   ],
#                   "IncludedHeaders": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "JsonBody": {
#                 "InvalidFallbackBehavior": "string",
#                 "MatchPattern": {
#                   "All": {},
#                   "IncludedPaths": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "Method": {},
#               "QueryString": {},
#               "SingleHeader": {
#                 "Name": "string"
#               },
#               "SingleQueryArgument": {
#                 "Name": "string"
#               },
#               "UriPath": {}
#             },
#             "Size": number,
#             "TextTransformations": [
#               {
#                 "Priority": number,
#                 "Type": "string"
#               }
#             ]
#           },
#           "SqliMatchStatement": {
#             "FieldToMatch": {
#               "AllQueryArguments": {},
#               "Body": {
#                 "OversizeHandling": "string"
#               },
#               "Cookies": {
#                 "MatchPattern": {
#                   "All": {},
#                   "ExcludedCookies": [
#                     "string"
#                   ],
#                   "IncludedCookies": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "Headers": {
#                 "MatchPattern": {
#                   "All": {},
#                   "ExcludedHeaders": [
#                     "string"
#                   ],
#                   "IncludedHeaders": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "JsonBody": {
#                 "InvalidFallbackBehavior": "string",
#                 "MatchPattern": {
#                   "All": {},
#                   "IncludedPaths": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "Method": {},
#               "QueryString": {},
#               "SingleHeader": {
#                 "Name": "string"
#               },
#               "SingleQueryArgument": {
#                 "Name": "string"
#               },
#               "UriPath": {}
#             },
#             "TextTransformations": [
#               {
#                 "Priority": number,
#                 "Type": "string"
#               }
#             ]
#           },
#           "XssMatchStatement": {
#             "FieldToMatch": {
#               "AllQueryArguments": {},
#               "Body": {
#                 "OversizeHandling": "string"
#               },
#               "Cookies": {
#                 "MatchPattern": {
#                   "All": {},
#                   "ExcludedCookies": [
#                     "string"
#                   ],
#                   "IncludedCookies": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "Headers": {
#                 "MatchPattern": {
#                   "All": {},
#                   "ExcludedHeaders": [
#                     "string"
#                   ],
#                   "IncludedHeaders": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "JsonBody": {
#                 "InvalidFallbackBehavior": "string",
#                 "MatchPattern": {
#                   "All": {},
#                   "IncludedPaths": [
#                     "string"
#                   ]
#                 },
#                 "MatchScope": "string",
#                 "OversizeHandling": "string"
#               },
#               "Method": {},
#               "QueryString": {},
#               "SingleHeader": {
#                 "Name": "string"
#               },
#               "SingleQueryArgument": {
#                 "Name": "string"
#               },
#               "UriPath": {}
#             },
#             "TextTransformations": [
#               {
#                 "Priority": number,
#                 "Type": "string"
#               }
#             ]
#           }
#         },
#         "VisibilityConfig": {
#           "CloudWatchMetricsEnabled": boolean,
#           "MetricName": "string",
#           "SampledRequestsEnabled": boolean
#         }
#       }
#     ],
#     "VisibilityConfig": {
#       "CloudWatchMetricsEnabled": boolean,
#       "MetricName": "string",
#       "SampledRequestsEnabled": boolean
#     }
#   }
# }