Chilkat Online Tools

GetRuleGroup phpAx Example

AWS WAFV2

<?php

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

$rest = new COM("Chilkat_9_5_0.Rest");

$authAws = new COM("Chilkat_9_5_0.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,1,1);
if ($success != 1) {
    print 'ConnectFailReason: ' . $rest->ConnectFailReason . "\n";
    print $rest->LastErrorText . "\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 = new COM("Chilkat_9_5_0.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 COM("Chilkat_9_5_0.StringBuilder");
$json->EmitSb($sbRequestBody);
$sbResponseBody = new COM("Chilkat_9_5_0.StringBuilder");
$success = $rest->FullRequestSb('POST','/',$sbRequestBody,$sbResponseBody);
if ($success != 1) {
    print $rest->LastErrorText . "\n";
    exit;
}

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

$jResp = new COM("Chilkat_9_5_0.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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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 < $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
//     }
//   }
// }

?>