Chilkat Online Tools

GetRuleGroup Perl Example

AWS WAFV2

use chilkat();

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

$rest = chilkat::CkRest->new();

$authAws = chilkat::CkAuthAws->new();
$authAws->put_AccessKey("AWS_ACCESS_KEY");
$authAws->put_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->put_Region("us-west-2");
$authAws->put_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,1,1);
if ($success != 1) {
    print "ConnectFailReason: " . $rest->get_ConnectFailReason() . "\r\n";
    print $rest->lastErrorText() . "\r\n";
    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 = chilkat::CkJsonObject->new();
$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 = chilkat::CkStringBuilder->new();
$json->EmitSb($sbRequestBody);
$sbResponseBody = chilkat::CkStringBuilder->new();
$success = $rest->FullRequestSb("POST","/",$sbRequestBody,$sbResponseBody);
if ($success != 1) {
    print $rest->lastErrorText() . "\r\n";
    exit;
}

$respStatusCode = $rest->get_ResponseStatusCode();
print "response status code = " . $respStatusCode . "\r\n";
if ($respStatusCode != 200) {
    print "Response Header:" . "\r\n";
    print $rest->responseHeader() . "\r\n";
    print "Response Body:" . "\r\n";
    print $sbResponseBody->getAsString() . "\r\n";
    exit;
}

$jResp = chilkat::CkJsonObject->new();
$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 < $count_i) {
    $jResp->put_I($i);
    $Name = $jResp->stringOf("RuleGroup.AvailableLabels[i].Name");
    $i = $i + 1;
}

$i = 0;
$count_i = $jResp->SizeOfArray("RuleGroup.ConsumedLabels");
while ($i < $count_i) {
    $jResp->put_I($i);
    $Name = $jResp->stringOf("RuleGroup.ConsumedLabels[i].Name");
    $i = $i + 1;
}

$i = 0;
$count_i = $jResp->SizeOfArray("RuleGroup.Rules");
while ($i < $count_i) {
    $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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 < $count_j) {
        $jResp->put_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
#     }
#   }
# }