Chilkat Online Tools

GetRuleGroup Foxpro Example

AWS WAFV2

LOCAL loRest
LOCAL lnSuccess
LOCAL loAuthAws
LOCAL loJson
LOCAL loSbRequestBody
LOCAL loSbResponseBody
LOCAL lnRespStatusCode
LOCAL loJResp
LOCAL lcCustomResponseBodyKey
LOCAL lnResponseCode
LOCAL lnImmunityTime
LOCAL lnPriority
LOCAL lcOversizeHandling
LOCAL lcMatchScope
LOCAL lcCookiesOversizeHandling
LOCAL lcHeadersMatchScope
LOCAL lcHeadersOversizeHandling
LOCAL lcInvalidFallbackBehavior
LOCAL lcJsonBodyMatchScope
LOCAL lcJsonBodyOversizeHandling
LOCAL lcSingleHeaderName
LOCAL lcSingleQueryArgumentName
LOCAL lcPositionalConstraint
LOCAL lnSearchString
LOCAL lcFallbackBehavior
LOCAL lcHeaderName
LOCAL lcIPSetReferenceStatementARN
LOCAL lcIPSetForwardedIPConfigFallbackBehavior
LOCAL lcIPSetForwardedIPConfigHeaderName
LOCAL lcPosition
LOCAL lcKey
LOCAL lcScope
LOCAL lcManagedRuleGroupStatementName
LOCAL lcScopeDownStatement
LOCAL lcVendorName
LOCAL lcVersion
LOCAL lcStatement
LOCAL lcAggregateKeyType
LOCAL lcForwardedIPConfigFallbackBehavior
LOCAL lcForwardedIPConfigHeaderName
LOCAL lnLimit
LOCAL lcRateBasedStatementScopeDownStatement
LOCAL lcBodyOversizeHandling
LOCAL lcCookiesMatchScope
LOCAL lcJsonBodyInvalidFallbackBehavior
LOCAL lcRegexString
LOCAL lcRegexPatternSetReferenceStatementARN
LOCAL lcRuleGroupReferenceStatementARN
LOCAL lcComparisonOperator
LOCAL lnSize
LOCAL lnVisibilityConfigCloudWatchMetricsEnabled
LOCAL lcVisibilityConfigMetricName
LOCAL lnVisibilityConfigSampledRequestsEnabled
LOCAL j
LOCAL lnCount_j
LOCAL lcValue
LOCAL lcStrVal
LOCAL lcV_Type
LOCAL lcLoginPath
LOCAL lcIdentifier
LOCAL lcPayloadType
LOCAL lcUsernameFieldIdentifier
LOCAL lcLockToken
LOCAL lcARN
LOCAL lnCapacity
LOCAL lcContent
LOCAL lcContentType
LOCAL lcDescription
LOCAL lcId
LOCAL lcLabelNamespace
LOCAL lcName
LOCAL lnCloudWatchMetricsEnabled
LOCAL lcMetricName
LOCAL lnSampledRequestsEnabled
LOCAL i
LOCAL lnCount_i

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

loRest = CreateObject('Chilkat_9_5_0.Rest')

loAuthAws = CreateObject('Chilkat_9_5_0.AuthAws')
loAuthAws.AccessKey = "AWS_ACCESS_KEY"
loAuthAws.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.)
loAuthAws.Region = "us-west-2"
loAuthAws.ServiceName = "wafv2"
* SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
loRest.SetAuthAws(loAuthAws)

* URL: https://wafv2.us-west-2.amazonaws.com/
* Use the same region as specified above.
lnSuccess = loRest.Connect("wafv2.us-west-2.amazonaws.com",443,1,1)
IF (lnSuccess <> 1) THEN
    ? "ConnectFailReason: " + STR(loRest.ConnectFailReason)
    ? loRest.LastErrorText
    RELEASE loRest
    RELEASE loAuthAws
    CANCEL
ENDIF

* 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

loJson = CreateObject('Chilkat_9_5_0.JsonObject')
loJson.UpdateString("ARN","string")
loJson.UpdateString("Id","string")
loJson.UpdateString("Name","string")
loJson.UpdateString("Scope","string")

* The JSON request body created by the above code:

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

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

loSbRequestBody = CreateObject('Chilkat_9_5_0.StringBuilder')
loJson.EmitSb(loSbRequestBody)
loSbResponseBody = CreateObject('Chilkat_9_5_0.StringBuilder')
lnSuccess = loRest.FullRequestSb("POST","/",loSbRequestBody,loSbResponseBody)
IF (lnSuccess <> 1) THEN
    ? loRest.LastErrorText
    RELEASE loRest
    RELEASE loAuthAws
    RELEASE loJson
    RELEASE loSbRequestBody
    RELEASE loSbResponseBody
    CANCEL
ENDIF

lnRespStatusCode = loRest.ResponseStatusCode
? "response status code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode <> 200) THEN
    ? "Response Header:"
    ? loRest.ResponseHeader
    ? "Response Body:"
    ? loSbResponseBody.GetAsString()
    RELEASE loRest
    RELEASE loAuthAws
    RELEASE loJson
    RELEASE loSbRequestBody
    RELEASE loSbResponseBody
    CANCEL
ENDIF

loJResp = CreateObject('Chilkat_9_5_0.JsonObject')
loJResp.LoadSb(loSbResponseBody)

* 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

lcLockToken = loJResp.StringOf("LockToken")
lcARN = loJResp.StringOf("RuleGroup.ARN")
lnCapacity = loJResp.IntOf("RuleGroup.Capacity")
lcContent = loJResp.StringOf("RuleGroup.CustomResponseBodies.string.Content")
lcContentType = loJResp.StringOf("RuleGroup.CustomResponseBodies.string.ContentType")
lcDescription = loJResp.StringOf("RuleGroup.Description")
lcId = loJResp.StringOf("RuleGroup.Id")
lcLabelNamespace = loJResp.StringOf("RuleGroup.LabelNamespace")
lcName = loJResp.StringOf("RuleGroup.Name")
lnCloudWatchMetricsEnabled = loJResp.IntOf("RuleGroup.VisibilityConfig.CloudWatchMetricsEnabled")
lcMetricName = loJResp.StringOf("RuleGroup.VisibilityConfig.MetricName")
lnSampledRequestsEnabled = loJResp.IntOf("RuleGroup.VisibilityConfig.SampledRequestsEnabled")
i = 0
lnCount_i = loJResp.SizeOfArray("RuleGroup.AvailableLabels")
DO WHILE i < lnCount_i
    loJResp.I = i
    lcName = loJResp.StringOf("RuleGroup.AvailableLabels[i].Name")
    i = i + 1
ENDDO
i = 0
lnCount_i = loJResp.SizeOfArray("RuleGroup.ConsumedLabels")
DO WHILE i < lnCount_i
    loJResp.I = i
    lcName = loJResp.StringOf("RuleGroup.ConsumedLabels[i].Name")
    i = i + 1
ENDDO
i = 0
lnCount_i = loJResp.SizeOfArray("RuleGroup.Rules")
DO WHILE i < lnCount_i
    loJResp.I = i
    lcCustomResponseBodyKey = loJResp.StringOf("RuleGroup.Rules[i].Action.Block.CustomResponse.CustomResponseBodyKey")
    lnResponseCode = loJResp.IntOf("RuleGroup.Rules[i].Action.Block.CustomResponse.ResponseCode")
    lnImmunityTime = loJResp.IntOf("RuleGroup.Rules[i].CaptchaConfig.ImmunityTimeProperty.ImmunityTime")
    lcName = loJResp.StringOf("RuleGroup.Rules[i].Name")
    lnPriority = loJResp.IntOf("RuleGroup.Rules[i].Priority")
    lcOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Body.OversizeHandling")
    lcMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchScope")
    lcCookiesOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.OversizeHandling")
    lcHeadersMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchScope")
    lcHeadersOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.OversizeHandling")
    lcInvalidFallbackBehavior = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
    lcJsonBodyMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.JsonBody.MatchScope")
    lcJsonBodyOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.JsonBody.OversizeHandling")
    lcSingleHeaderName = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.SingleHeader.Name")
    lcSingleQueryArgumentName = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.SingleQueryArgument.Name")
    lcPositionalConstraint = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.PositionalConstraint")
    lnSearchString = loJResp.IntOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.SearchString")
    lcFallbackBehavior = loJResp.StringOf("RuleGroup.Rules[i].Statement.GeoMatchStatement.ForwardedIPConfig.FallbackBehavior")
    lcHeaderName = loJResp.StringOf("RuleGroup.Rules[i].Statement.GeoMatchStatement.ForwardedIPConfig.HeaderName")
    lcIPSetReferenceStatementARN = loJResp.StringOf("RuleGroup.Rules[i].Statement.IPSetReferenceStatement.ARN")
    lcIPSetForwardedIPConfigFallbackBehavior = loJResp.StringOf("RuleGroup.Rules[i].Statement.IPSetReferenceStatement.IPSetForwardedIPConfig.FallbackBehavior")
    lcIPSetForwardedIPConfigHeaderName = loJResp.StringOf("RuleGroup.Rules[i].Statement.IPSetReferenceStatement.IPSetForwardedIPConfig.HeaderName")
    lcPosition = loJResp.StringOf("RuleGroup.Rules[i].Statement.IPSetReferenceStatement.IPSetForwardedIPConfig.Position")
    lcKey = loJResp.StringOf("RuleGroup.Rules[i].Statement.LabelMatchStatement.Key")
    lcScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.LabelMatchStatement.Scope")
    lcManagedRuleGroupStatementName = loJResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.Name")
    lcScopeDownStatement = loJResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ScopeDownStatement")
    lcVendorName = loJResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.VendorName")
    lcVersion = loJResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.Version")
    lcStatement = loJResp.StringOf("RuleGroup.Rules[i].Statement.NotStatement.Statement")
    lcAggregateKeyType = loJResp.StringOf("RuleGroup.Rules[i].Statement.RateBasedStatement.AggregateKeyType")
    lcForwardedIPConfigFallbackBehavior = loJResp.StringOf("RuleGroup.Rules[i].Statement.RateBasedStatement.ForwardedIPConfig.FallbackBehavior")
    lcForwardedIPConfigHeaderName = loJResp.StringOf("RuleGroup.Rules[i].Statement.RateBasedStatement.ForwardedIPConfig.HeaderName")
    lnLimit = loJResp.IntOf("RuleGroup.Rules[i].Statement.RateBasedStatement.Limit")
    lcRateBasedStatementScopeDownStatement = loJResp.StringOf("RuleGroup.Rules[i].Statement.RateBasedStatement.ScopeDownStatement")
    lcBodyOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Body.OversizeHandling")
    lcCookiesMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchScope")
    lcCookiesOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.OversizeHandling")
    lcHeadersMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchScope")
    lcHeadersOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.OversizeHandling")
    lcJsonBodyInvalidFallbackBehavior = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
    lcJsonBodyMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.JsonBody.MatchScope")
    lcJsonBodyOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.JsonBody.OversizeHandling")
    lcSingleHeaderName = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.SingleHeader.Name")
    lcSingleQueryArgumentName = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.SingleQueryArgument.Name")
    lcRegexString = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.RegexString")
    lcRegexPatternSetReferenceStatementARN = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.ARN")
    lcBodyOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Body.OversizeHandling")
    lcCookiesMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchScope")
    lcCookiesOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.OversizeHandling")
    lcHeadersMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchScope")
    lcHeadersOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.OversizeHandling")
    lcJsonBodyInvalidFallbackBehavior = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
    lcJsonBodyMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.MatchScope")
    lcJsonBodyOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.OversizeHandling")
    lcSingleHeaderName = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.SingleHeader.Name")
    lcSingleQueryArgumentName = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.SingleQueryArgument.Name")
    lcRuleGroupReferenceStatementARN = loJResp.StringOf("RuleGroup.Rules[i].Statement.RuleGroupReferenceStatement.ARN")
    lcComparisonOperator = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.ComparisonOperator")
    lcBodyOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Body.OversizeHandling")
    lcCookiesMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchScope")
    lcCookiesOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.OversizeHandling")
    lcHeadersMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchScope")
    lcHeadersOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.OversizeHandling")
    lcJsonBodyInvalidFallbackBehavior = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
    lcJsonBodyMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.MatchScope")
    lcJsonBodyOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.OversizeHandling")
    lcSingleHeaderName = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.SingleHeader.Name")
    lcSingleQueryArgumentName = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.SingleQueryArgument.Name")
    lnSize = loJResp.IntOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.Size")
    lcBodyOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Body.OversizeHandling")
    lcCookiesMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchScope")
    lcCookiesOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.OversizeHandling")
    lcHeadersMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchScope")
    lcHeadersOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.OversizeHandling")
    lcJsonBodyInvalidFallbackBehavior = loJResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
    lcJsonBodyMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.JsonBody.MatchScope")
    lcJsonBodyOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.JsonBody.OversizeHandling")
    lcSingleHeaderName = loJResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.SingleHeader.Name")
    lcSingleQueryArgumentName = loJResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.SingleQueryArgument.Name")
    lcBodyOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Body.OversizeHandling")
    lcCookiesMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchScope")
    lcCookiesOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.OversizeHandling")
    lcHeadersMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.MatchScope")
    lcHeadersOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.OversizeHandling")
    lcJsonBodyInvalidFallbackBehavior = loJResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
    lcJsonBodyMatchScope = loJResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.JsonBody.MatchScope")
    lcJsonBodyOversizeHandling = loJResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.JsonBody.OversizeHandling")
    lcSingleHeaderName = loJResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.SingleHeader.Name")
    lcSingleQueryArgumentName = loJResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.SingleQueryArgument.Name")
    lnVisibilityConfigCloudWatchMetricsEnabled = loJResp.IntOf("RuleGroup.Rules[i].VisibilityConfig.CloudWatchMetricsEnabled")
    lcVisibilityConfigMetricName = loJResp.StringOf("RuleGroup.Rules[i].VisibilityConfig.MetricName")
    lnVisibilityConfigSampledRequestsEnabled = loJResp.IntOf("RuleGroup.Rules[i].VisibilityConfig.SampledRequestsEnabled")
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Action.Allow.CustomRequestHandling.InsertHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcName = loJResp.StringOf("RuleGroup.Rules[i].Action.Allow.CustomRequestHandling.InsertHeaders[j].Name")
        lcValue = loJResp.StringOf("RuleGroup.Rules[i].Action.Allow.CustomRequestHandling.InsertHeaders[j].Value")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Action.Block.CustomResponse.ResponseHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcName = loJResp.StringOf("RuleGroup.Rules[i].Action.Block.CustomResponse.ResponseHeaders[j].Name")
        lcValue = loJResp.StringOf("RuleGroup.Rules[i].Action.Block.CustomResponse.ResponseHeaders[j].Value")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Action.Captcha.CustomRequestHandling.InsertHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcName = loJResp.StringOf("RuleGroup.Rules[i].Action.Captcha.CustomRequestHandling.InsertHeaders[j].Name")
        lcValue = loJResp.StringOf("RuleGroup.Rules[i].Action.Captcha.CustomRequestHandling.InsertHeaders[j].Value")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Action.Count.CustomRequestHandling.InsertHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcName = loJResp.StringOf("RuleGroup.Rules[i].Action.Count.CustomRequestHandling.InsertHeaders[j].Name")
        lcValue = loJResp.StringOf("RuleGroup.Rules[i].Action.Count.CustomRequestHandling.InsertHeaders[j].Value")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].OverrideAction.Count.CustomRequestHandling.InsertHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcName = loJResp.StringOf("RuleGroup.Rules[i].OverrideAction.Count.CustomRequestHandling.InsertHeaders[j].Name")
        lcValue = loJResp.StringOf("RuleGroup.Rules[i].OverrideAction.Count.CustomRequestHandling.InsertHeaders[j].Value")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].RuleLabels")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcName = loJResp.StringOf("RuleGroup.Rules[i].RuleLabels[j].Name")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.AndStatement.Statements")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.AndStatement.Statements[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.ByteMatchStatement.TextTransformations")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lnPriority = loJResp.IntOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.TextTransformations[j].Priority")
        lcV_Type = loJResp.StringOf("RuleGroup.Rules[i].Statement.ByteMatchStatement.TextTransformations[j].Type")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.GeoMatchStatement.CountryCodes")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.GeoMatchStatement.CountryCodes[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ExcludedRules")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcName = loJResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ExcludedRules[j].Name")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcLoginPath = loJResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[j].LoginPath")
        lcIdentifier = loJResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[j].PasswordField.Identifier")
        lcPayloadType = loJResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[j].PayloadType")
        lcUsernameFieldIdentifier = loJResp.StringOf("RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[j].UsernameField.Identifier")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.OrStatement.Statements")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.OrStatement.Statements[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexMatchStatement.TextTransformations")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lnPriority = loJResp.IntOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.TextTransformations[j].Priority")
        lcV_Type = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexMatchStatement.TextTransformations[j].Type")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.TextTransformations")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lnPriority = loJResp.IntOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.TextTransformations[j].Priority")
        lcV_Type = loJResp.StringOf("RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.TextTransformations[j].Type")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.RuleGroupReferenceStatement.ExcludedRules")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcName = loJResp.StringOf("RuleGroup.Rules[i].Statement.RuleGroupReferenceStatement.ExcludedRules[j].Name")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.SizeConstraintStatement.TextTransformations")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lnPriority = loJResp.IntOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.TextTransformations[j].Priority")
        lcV_Type = loJResp.StringOf("RuleGroup.Rules[i].Statement.SizeConstraintStatement.TextTransformations[j].Type")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.SqliMatchStatement.TextTransformations")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lnPriority = loJResp.IntOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.TextTransformations[j].Priority")
        lcV_Type = loJResp.StringOf("RuleGroup.Rules[i].Statement.SqliMatchStatement.TextTransformations[j].Type")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcStrVal = loJResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("RuleGroup.Rules[i].Statement.XssMatchStatement.TextTransformations")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lnPriority = loJResp.IntOf("RuleGroup.Rules[i].Statement.XssMatchStatement.TextTransformations[j].Priority")
        lcV_Type = loJResp.StringOf("RuleGroup.Rules[i].Statement.XssMatchStatement.TextTransformations[j].Type")
        j = j + 1
    ENDDO
    i = i + 1
ENDDO

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

RELEASE loRest
RELEASE loAuthAws
RELEASE loJson
RELEASE loSbRequestBody
RELEASE loSbResponseBody
RELEASE loJResp