Chilkat Online Tools

GetRuleGroup Ruby Example

AWS WAFV2

require '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,true,true)
if (success != true)
    print "ConnectFailReason: " + rest.get_ConnectFailReason().to_s() + "\n";
    print rest.lastErrorText() + "\n";
    exit
end

# 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 != true)
    print rest.lastErrorText() + "\n";
    exit
end

respStatusCode = rest.get_ResponseStatusCode()
print "response status code = " + respStatusCode.to_s() + "\n";
if (respStatusCode != 200)
    print "Response Header:" + "\n";
    print rest.responseHeader() + "\n";
    print "Response Body:" + "\n";
    print sbResponseBody.getAsString() + "\n";
    exit
end

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
end
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
end
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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    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
    end
    i = i + 1
end

# 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
#     }
#   }
# }