Chilkat Online Tools

GetRuleGroup PureBasic Example

AWS WAFV2

IncludeFile "CkJsonObject.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkRest.pb"
IncludeFile "CkAuthAws.pb"

Procedure ChilkatExample()

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

    rest.i = CkRest::ckCreate()
    If rest.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success.i

    authAws.i = CkAuthAws::ckCreate()
    If authAws.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkAuthAws::setCkAccessKey(authAws, "AWS_ACCESS_KEY")
    CkAuthAws::setCkSecretKey(authAws, "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.)
    CkAuthAws::setCkRegion(authAws, "us-west-2")
    CkAuthAws::setCkServiceName(authAws, "wafv2")
    ; SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
    CkRest::ckSetAuthAws(rest,authAws)

    ; URL: https://wafv2.us-west-2.amazonaws.com/
    ; Use the same region as specified above.
    success = CkRest::ckConnect(rest,"wafv2.us-west-2.amazonaws.com",443,1,1)
    If success <> 1
        Debug "ConnectFailReason: " + Str(CkRest::ckConnectFailReason(rest))
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        CkAuthAws::ckDispose(authAws)
        ProcedureReturn
    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

    json.i = CkJsonObject::ckCreate()
    If json.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckUpdateString(json,"ARN","string")
    CkJsonObject::ckUpdateString(json,"Id","string")
    CkJsonObject::ckUpdateString(json,"Name","string")
    CkJsonObject::ckUpdateString(json,"Scope","string")

    ; The JSON request body created by the above code:

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

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

    sbRequestBody.i = CkStringBuilder::ckCreate()
    If sbRequestBody.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckEmitSb(json,sbRequestBody)
    sbResponseBody.i = CkStringBuilder::ckCreate()
    If sbResponseBody.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkRest::ckFullRequestSb(rest,"POST","/",sbRequestBody,sbResponseBody)
    If success <> 1
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        CkAuthAws::ckDispose(authAws)
        CkJsonObject::ckDispose(json)
        CkStringBuilder::ckDispose(sbRequestBody)
        CkStringBuilder::ckDispose(sbResponseBody)
        ProcedureReturn
    EndIf

    respStatusCode.i = CkRest::ckResponseStatusCode(rest)
    Debug "response status code = " + Str(respStatusCode)
    If respStatusCode <> 200
        Debug "Response Header:"
        Debug CkRest::ckResponseHeader(rest)
        Debug "Response Body:"
        Debug CkStringBuilder::ckGetAsString(sbResponseBody)
        CkRest::ckDispose(rest)
        CkAuthAws::ckDispose(authAws)
        CkJsonObject::ckDispose(json)
        CkStringBuilder::ckDispose(sbRequestBody)
        CkStringBuilder::ckDispose(sbResponseBody)
        ProcedureReturn
    EndIf

    jResp.i = CkJsonObject::ckCreate()
    If jResp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckLoadSb(jResp,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

    CustomResponseBodyKey.s
    ResponseCode.i
    ImmunityTime.i
    Priority.i
    OversizeHandling.s
    MatchScope.s
    CookiesOversizeHandling.s
    HeadersMatchScope.s
    HeadersOversizeHandling.s
    InvalidFallbackBehavior.s
    JsonBodyMatchScope.s
    JsonBodyOversizeHandling.s
    SingleHeaderName.s
    SingleQueryArgumentName.s
    PositionalConstraint.s
    SearchString.i
    FallbackBehavior.s
    HeaderName.s
    IPSetReferenceStatementARN.s
    IPSetForwardedIPConfigFallbackBehavior.s
    IPSetForwardedIPConfigHeaderName.s
    Position.s
    Key.s
    Scope.s
    ManagedRuleGroupStatementName.s
    ScopeDownStatement.s
    VendorName.s
    Version.s
    Statement.s
    AggregateKeyType.s
    ForwardedIPConfigFallbackBehavior.s
    ForwardedIPConfigHeaderName.s
    Limit.i
    RateBasedStatementScopeDownStatement.s
    BodyOversizeHandling.s
    CookiesMatchScope.s
    JsonBodyInvalidFallbackBehavior.s
    RegexString.s
    RegexPatternSetReferenceStatementARN.s
    RuleGroupReferenceStatementARN.s
    ComparisonOperator.s
    Size.i
    VisibilityConfigCloudWatchMetricsEnabled.i
    VisibilityConfigMetricName.s
    VisibilityConfigSampledRequestsEnabled.i
    j.i
    count_j.i
    Value.s
    strVal.s
    v_Type.s
    LoginPath.s
    Identifier.s
    PayloadType.s
    UsernameFieldIdentifier.s

    LockToken.s = CkJsonObject::ckStringOf(jResp,"LockToken")
    ARN.s = CkJsonObject::ckStringOf(jResp,"RuleGroup.ARN")
    Capacity.i = CkJsonObject::ckIntOf(jResp,"RuleGroup.Capacity")
    Content.s = CkJsonObject::ckStringOf(jResp,"RuleGroup.CustomResponseBodies.string.Content")
    ContentType.s = CkJsonObject::ckStringOf(jResp,"RuleGroup.CustomResponseBodies.string.ContentType")
    Description.s = CkJsonObject::ckStringOf(jResp,"RuleGroup.Description")
    Id.s = CkJsonObject::ckStringOf(jResp,"RuleGroup.Id")
    LabelNamespace.s = CkJsonObject::ckStringOf(jResp,"RuleGroup.LabelNamespace")
    Name.s = CkJsonObject::ckStringOf(jResp,"RuleGroup.Name")
    CloudWatchMetricsEnabled.i = CkJsonObject::ckIntOf(jResp,"RuleGroup.VisibilityConfig.CloudWatchMetricsEnabled")
    MetricName.s = CkJsonObject::ckStringOf(jResp,"RuleGroup.VisibilityConfig.MetricName")
    SampledRequestsEnabled.i = CkJsonObject::ckIntOf(jResp,"RuleGroup.VisibilityConfig.SampledRequestsEnabled")
    i.i = 0
    count_i.i = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.AvailableLabels")
    While i < count_i
        CkJsonObject::setCkI(jResp, i)
        Name = CkJsonObject::ckStringOf(jResp,"RuleGroup.AvailableLabels[i].Name")
        i = i + 1
    Wend
    i = 0
    count_i = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.ConsumedLabels")
    While i < count_i
        CkJsonObject::setCkI(jResp, i)
        Name = CkJsonObject::ckStringOf(jResp,"RuleGroup.ConsumedLabels[i].Name")
        i = i + 1
    Wend
    i = 0
    count_i = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules")
    While i < count_i
        CkJsonObject::setCkI(jResp, i)
        CustomResponseBodyKey = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Action.Block.CustomResponse.CustomResponseBodyKey")
        ResponseCode = CkJsonObject::ckIntOf(jResp,"RuleGroup.Rules[i].Action.Block.CustomResponse.ResponseCode")
        ImmunityTime = CkJsonObject::ckIntOf(jResp,"RuleGroup.Rules[i].CaptchaConfig.ImmunityTimeProperty.ImmunityTime")
        Name = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Name")
        Priority = CkJsonObject::ckIntOf(jResp,"RuleGroup.Rules[i].Priority")
        OversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Body.OversizeHandling")
        MatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchScope")
        CookiesOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.OversizeHandling")
        HeadersMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchScope")
        HeadersOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.OversizeHandling")
        InvalidFallbackBehavior = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
        JsonBodyMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.JsonBody.MatchScope")
        JsonBodyOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.JsonBody.OversizeHandling")
        SingleHeaderName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.SingleHeader.Name")
        SingleQueryArgumentName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.SingleQueryArgument.Name")
        PositionalConstraint = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.PositionalConstraint")
        SearchString = CkJsonObject::ckIntOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.SearchString")
        FallbackBehavior = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.GeoMatchStatement.ForwardedIPConfig.FallbackBehavior")
        HeaderName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.GeoMatchStatement.ForwardedIPConfig.HeaderName")
        IPSetReferenceStatementARN = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.IPSetReferenceStatement.ARN")
        IPSetForwardedIPConfigFallbackBehavior = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.IPSetReferenceStatement.IPSetForwardedIPConfig.FallbackBehavior")
        IPSetForwardedIPConfigHeaderName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.IPSetReferenceStatement.IPSetForwardedIPConfig.HeaderName")
        Position = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.IPSetReferenceStatement.IPSetForwardedIPConfig.Position")
        Key = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.LabelMatchStatement.Key")
        Scope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.LabelMatchStatement.Scope")
        ManagedRuleGroupStatementName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.Name")
        ScopeDownStatement = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ScopeDownStatement")
        VendorName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.VendorName")
        Version = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.Version")
        Statement = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.NotStatement.Statement")
        AggregateKeyType = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RateBasedStatement.AggregateKeyType")
        ForwardedIPConfigFallbackBehavior = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RateBasedStatement.ForwardedIPConfig.FallbackBehavior")
        ForwardedIPConfigHeaderName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RateBasedStatement.ForwardedIPConfig.HeaderName")
        Limit = CkJsonObject::ckIntOf(jResp,"RuleGroup.Rules[i].Statement.RateBasedStatement.Limit")
        RateBasedStatementScopeDownStatement = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RateBasedStatement.ScopeDownStatement")
        BodyOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Body.OversizeHandling")
        CookiesMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchScope")
        CookiesOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.OversizeHandling")
        HeadersMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchScope")
        HeadersOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.OversizeHandling")
        JsonBodyInvalidFallbackBehavior = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
        JsonBodyMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.JsonBody.MatchScope")
        JsonBodyOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.JsonBody.OversizeHandling")
        SingleHeaderName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.SingleHeader.Name")
        SingleQueryArgumentName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.SingleQueryArgument.Name")
        RegexString = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.RegexString")
        RegexPatternSetReferenceStatementARN = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.ARN")
        BodyOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Body.OversizeHandling")
        CookiesMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchScope")
        CookiesOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.OversizeHandling")
        HeadersMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchScope")
        HeadersOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.OversizeHandling")
        JsonBodyInvalidFallbackBehavior = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
        JsonBodyMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.MatchScope")
        JsonBodyOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.OversizeHandling")
        SingleHeaderName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.SingleHeader.Name")
        SingleQueryArgumentName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.SingleQueryArgument.Name")
        RuleGroupReferenceStatementARN = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RuleGroupReferenceStatement.ARN")
        ComparisonOperator = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.ComparisonOperator")
        BodyOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Body.OversizeHandling")
        CookiesMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchScope")
        CookiesOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.OversizeHandling")
        HeadersMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchScope")
        HeadersOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.OversizeHandling")
        JsonBodyInvalidFallbackBehavior = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
        JsonBodyMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.MatchScope")
        JsonBodyOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.OversizeHandling")
        SingleHeaderName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.SingleHeader.Name")
        SingleQueryArgumentName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.SingleQueryArgument.Name")
        Size = CkJsonObject::ckIntOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.Size")
        BodyOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Body.OversizeHandling")
        CookiesMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchScope")
        CookiesOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.OversizeHandling")
        HeadersMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchScope")
        HeadersOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.OversizeHandling")
        JsonBodyInvalidFallbackBehavior = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
        JsonBodyMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.JsonBody.MatchScope")
        JsonBodyOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.JsonBody.OversizeHandling")
        SingleHeaderName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.SingleHeader.Name")
        SingleQueryArgumentName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.SingleQueryArgument.Name")
        BodyOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Body.OversizeHandling")
        CookiesMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchScope")
        CookiesOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.OversizeHandling")
        HeadersMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.MatchScope")
        HeadersOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.OversizeHandling")
        JsonBodyInvalidFallbackBehavior = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior")
        JsonBodyMatchScope = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.JsonBody.MatchScope")
        JsonBodyOversizeHandling = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.JsonBody.OversizeHandling")
        SingleHeaderName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.SingleHeader.Name")
        SingleQueryArgumentName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.SingleQueryArgument.Name")
        VisibilityConfigCloudWatchMetricsEnabled = CkJsonObject::ckIntOf(jResp,"RuleGroup.Rules[i].VisibilityConfig.CloudWatchMetricsEnabled")
        VisibilityConfigMetricName = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].VisibilityConfig.MetricName")
        VisibilityConfigSampledRequestsEnabled = CkJsonObject::ckIntOf(jResp,"RuleGroup.Rules[i].VisibilityConfig.SampledRequestsEnabled")
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Action.Allow.CustomRequestHandling.InsertHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            Name = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Action.Allow.CustomRequestHandling.InsertHeaders[j].Name")
            Value = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Action.Allow.CustomRequestHandling.InsertHeaders[j].Value")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Action.Block.CustomResponse.ResponseHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            Name = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Action.Block.CustomResponse.ResponseHeaders[j].Name")
            Value = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Action.Block.CustomResponse.ResponseHeaders[j].Value")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Action.Captcha.CustomRequestHandling.InsertHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            Name = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Action.Captcha.CustomRequestHandling.InsertHeaders[j].Name")
            Value = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Action.Captcha.CustomRequestHandling.InsertHeaders[j].Value")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Action.Count.CustomRequestHandling.InsertHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            Name = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Action.Count.CustomRequestHandling.InsertHeaders[j].Name")
            Value = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Action.Count.CustomRequestHandling.InsertHeaders[j].Value")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].OverrideAction.Count.CustomRequestHandling.InsertHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            Name = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].OverrideAction.Count.CustomRequestHandling.InsertHeaders[j].Name")
            Value = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].OverrideAction.Count.CustomRequestHandling.InsertHeaders[j].Value")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].RuleLabels")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            Name = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].RuleLabels[j].Name")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.AndStatement.Statements")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.AndStatement.Statements[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.TextTransformations")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            Priority = CkJsonObject::ckIntOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.TextTransformations[j].Priority")
            v_Type = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ByteMatchStatement.TextTransformations[j].Type")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.GeoMatchStatement.CountryCodes")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.GeoMatchStatement.CountryCodes[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ExcludedRules")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            Name = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ExcludedRules[j].Name")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            LoginPath = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[j].LoginPath")
            Identifier = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[j].PasswordField.Identifier")
            PayloadType = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[j].PayloadType")
            UsernameFieldIdentifier = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[j].UsernameField.Identifier")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.OrStatement.Statements")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.OrStatement.Statements[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.TextTransformations")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            Priority = CkJsonObject::ckIntOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.TextTransformations[j].Priority")
            v_Type = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexMatchStatement.TextTransformations[j].Type")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.TextTransformations")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            Priority = CkJsonObject::ckIntOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.TextTransformations[j].Priority")
            v_Type = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RegexPatternSetReferenceStatement.TextTransformations[j].Type")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.RuleGroupReferenceStatement.ExcludedRules")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            Name = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.RuleGroupReferenceStatement.ExcludedRules[j].Name")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.TextTransformations")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            Priority = CkJsonObject::ckIntOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.TextTransformations[j].Priority")
            v_Type = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SizeConstraintStatement.TextTransformations[j].Type")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.TextTransformations")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            Priority = CkJsonObject::ckIntOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.TextTransformations[j].Priority")
            v_Type = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.SqliMatchStatement.TextTransformations[j].Type")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            strVal = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[j]")
            j = j + 1
        Wend
        j = 0
        count_j = CkJsonObject::ckSizeOfArray(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.TextTransformations")
        While j < count_j
            CkJsonObject::setCkJ(jResp, j)
            Priority = CkJsonObject::ckIntOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.TextTransformations[j].Priority")
            v_Type = CkJsonObject::ckStringOf(jResp,"RuleGroup.Rules[i].Statement.XssMatchStatement.TextTransformations[j].Type")
            j = j + 1
        Wend
        i = i + 1
    Wend

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


    CkRest::ckDispose(rest)
    CkAuthAws::ckDispose(authAws)
    CkJsonObject::ckDispose(json)
    CkStringBuilder::ckDispose(sbRequestBody)
    CkStringBuilder::ckDispose(sbResponseBody)
    CkJsonObject::ckDispose(jResp)


    ProcedureReturn
EndProcedure