Chilkat Online Tools

CreateWebACL Foxpro Example

AWS WAFV2

LOCAL loRest
LOCAL lnSuccess
LOCAL loAuthAws
LOCAL loJson
LOCAL loSbRequestBody
LOCAL loSbResponseBody
LOCAL lnRespStatusCode
LOCAL loJResp
LOCAL lcARN
LOCAL lcDescription
LOCAL lcId
LOCAL lcLockToken
LOCAL lcName

* 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.UpdateInt("CaptchaConfig.ImmunityTimeProperty.ImmunityTime",123)
loJson.UpdateString("CustomResponseBodies.string.Content","string")
loJson.UpdateString("CustomResponseBodies.string.ContentType","string")
loJson.UpdateString("DefaultAction.Allow.CustomRequestHandling.InsertHeaders[0].Name","string")
loJson.UpdateString("DefaultAction.Allow.CustomRequestHandling.InsertHeaders[0].Value","string")
loJson.UpdateString("DefaultAction.Block.CustomResponse.CustomResponseBodyKey","string")
loJson.UpdateInt("DefaultAction.Block.CustomResponse.ResponseCode",123)
loJson.UpdateString("DefaultAction.Block.CustomResponse.ResponseHeaders[0].Name","string")
loJson.UpdateString("DefaultAction.Block.CustomResponse.ResponseHeaders[0].Value","string")
loJson.UpdateString("Description","string")
loJson.UpdateString("Name","string")
loJson.UpdateString("Rules[0].Action.Allow.CustomRequestHandling.InsertHeaders[0].Name","string")
loJson.UpdateString("Rules[0].Action.Allow.CustomRequestHandling.InsertHeaders[0].Value","string")
loJson.UpdateString("Rules[0].Action.Block.CustomResponse.CustomResponseBodyKey","string")
loJson.UpdateInt("Rules[0].Action.Block.CustomResponse.ResponseCode",123)
loJson.UpdateString("Rules[0].Action.Block.CustomResponse.ResponseHeaders[0].Name","string")
loJson.UpdateString("Rules[0].Action.Block.CustomResponse.ResponseHeaders[0].Value","string")
loJson.UpdateString("Rules[0].Action.Captcha.CustomRequestHandling.InsertHeaders[0].Name","string")
loJson.UpdateString("Rules[0].Action.Captcha.CustomRequestHandling.InsertHeaders[0].Value","string")
loJson.UpdateString("Rules[0].Action.Count.CustomRequestHandling.InsertHeaders[0].Name","string")
loJson.UpdateString("Rules[0].Action.Count.CustomRequestHandling.InsertHeaders[0].Value","string")
loJson.UpdateInt("Rules[0].CaptchaConfig.ImmunityTimeProperty.ImmunityTime",123)
loJson.UpdateString("Rules[0].Name","string")
loJson.UpdateString("Rules[0].OverrideAction.Count.CustomRequestHandling.InsertHeaders[0].Name","string")
loJson.UpdateString("Rules[0].OverrideAction.Count.CustomRequestHandling.InsertHeaders[0].Value","string")
loJson.UpdateNewObject("Rules[0].OverrideAction.None")
loJson.UpdateInt("Rules[0].Priority",123)
loJson.UpdateString("Rules[0].RuleLabels[0].Name","string")
loJson.UpdateString("Rules[0].Statement.AndStatement.Statements[0]","Statement")
loJson.UpdateNewObject("Rules[0].Statement.ByteMatchStatement.FieldToMatch.AllQueryArguments")
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.FieldToMatch.Body.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[0]","string")
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[0]","string")
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.FieldToMatch.Cookies.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[0]","string")
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[0]","string")
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.FieldToMatch.Headers.OversizeHandling","string")
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior","string")
loJson.UpdateNewObject("Rules[0].Statement.ByteMatchStatement.FieldToMatch.JsonBody.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[0]","string")
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.FieldToMatch.JsonBody.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.FieldToMatch.JsonBody.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.ByteMatchStatement.FieldToMatch.Method")
loJson.UpdateNewObject("Rules[0].Statement.ByteMatchStatement.FieldToMatch.QueryString")
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.FieldToMatch.SingleHeader.Name","string")
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.FieldToMatch.SingleQueryArgument.Name","string")
loJson.UpdateNewObject("Rules[0].Statement.ByteMatchStatement.FieldToMatch.UriPath")
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.PositionalConstraint","string")
loJson.UpdateInt("Rules[0].Statement.ByteMatchStatement.SearchString",123)
loJson.UpdateInt("Rules[0].Statement.ByteMatchStatement.TextTransformations[0].Priority",123)
loJson.UpdateString("Rules[0].Statement.ByteMatchStatement.TextTransformations[0].Type","string")
loJson.UpdateString("Rules[0].Statement.GeoMatchStatement.CountryCodes[0]","string")
loJson.UpdateString("Rules[0].Statement.GeoMatchStatement.ForwardedIPConfig.FallbackBehavior","string")
loJson.UpdateString("Rules[0].Statement.GeoMatchStatement.ForwardedIPConfig.HeaderName","string")
loJson.UpdateString("Rules[0].Statement.IPSetReferenceStatement.ARN","string")
loJson.UpdateString("Rules[0].Statement.IPSetReferenceStatement.IPSetForwardedIPConfig.FallbackBehavior","string")
loJson.UpdateString("Rules[0].Statement.IPSetReferenceStatement.IPSetForwardedIPConfig.HeaderName","string")
loJson.UpdateString("Rules[0].Statement.IPSetReferenceStatement.IPSetForwardedIPConfig.Position","string")
loJson.UpdateString("Rules[0].Statement.LabelMatchStatement.Key","string")
loJson.UpdateString("Rules[0].Statement.LabelMatchStatement.Scope","string")
loJson.UpdateString("Rules[0].Statement.ManagedRuleGroupStatement.ExcludedRules[0].Name","string")
loJson.UpdateString("Rules[0].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[0].LoginPath","string")
loJson.UpdateString("Rules[0].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[0].PasswordField.Identifier","string")
loJson.UpdateString("Rules[0].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[0].PayloadType","string")
loJson.UpdateString("Rules[0].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[0].UsernameField.Identifier","string")
loJson.UpdateString("Rules[0].Statement.ManagedRuleGroupStatement.Name","string")
loJson.UpdateString("Rules[0].Statement.ManagedRuleGroupStatement.ScopeDownStatement","Statement")
loJson.UpdateString("Rules[0].Statement.ManagedRuleGroupStatement.VendorName","string")
loJson.UpdateString("Rules[0].Statement.ManagedRuleGroupStatement.Version","string")
loJson.UpdateString("Rules[0].Statement.NotStatement.Statement","Statement")
loJson.UpdateString("Rules[0].Statement.OrStatement.Statements[0]","Statement")
loJson.UpdateString("Rules[0].Statement.RateBasedStatement.AggregateKeyType","string")
loJson.UpdateString("Rules[0].Statement.RateBasedStatement.ForwardedIPConfig.FallbackBehavior","string")
loJson.UpdateString("Rules[0].Statement.RateBasedStatement.ForwardedIPConfig.HeaderName","string")
loJson.UpdateInt("Rules[0].Statement.RateBasedStatement.Limit",123)
loJson.UpdateString("Rules[0].Statement.RateBasedStatement.ScopeDownStatement","Statement")
loJson.UpdateNewObject("Rules[0].Statement.RegexMatchStatement.FieldToMatch.AllQueryArguments")
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.FieldToMatch.Body.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[0]","string")
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[0]","string")
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.FieldToMatch.Cookies.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[0]","string")
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[0]","string")
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.FieldToMatch.Headers.OversizeHandling","string")
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior","string")
loJson.UpdateNewObject("Rules[0].Statement.RegexMatchStatement.FieldToMatch.JsonBody.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[0]","string")
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.FieldToMatch.JsonBody.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.FieldToMatch.JsonBody.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.RegexMatchStatement.FieldToMatch.Method")
loJson.UpdateNewObject("Rules[0].Statement.RegexMatchStatement.FieldToMatch.QueryString")
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.FieldToMatch.SingleHeader.Name","string")
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.FieldToMatch.SingleQueryArgument.Name","string")
loJson.UpdateNewObject("Rules[0].Statement.RegexMatchStatement.FieldToMatch.UriPath")
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.RegexString","string")
loJson.UpdateInt("Rules[0].Statement.RegexMatchStatement.TextTransformations[0].Priority",123)
loJson.UpdateString("Rules[0].Statement.RegexMatchStatement.TextTransformations[0].Type","string")
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.ARN","string")
loJson.UpdateNewObject("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.AllQueryArguments")
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Body.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[0]","string")
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[0]","string")
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[0]","string")
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[0]","string")
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.OversizeHandling","string")
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior","string")
loJson.UpdateNewObject("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[0]","string")
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Method")
loJson.UpdateNewObject("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.QueryString")
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.SingleHeader.Name","string")
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.SingleQueryArgument.Name","string")
loJson.UpdateNewObject("Rules[0].Statement.RegexPatternSetReferenceStatement.FieldToMatch.UriPath")
loJson.UpdateInt("Rules[0].Statement.RegexPatternSetReferenceStatement.TextTransformations[0].Priority",123)
loJson.UpdateString("Rules[0].Statement.RegexPatternSetReferenceStatement.TextTransformations[0].Type","string")
loJson.UpdateString("Rules[0].Statement.RuleGroupReferenceStatement.ARN","string")
loJson.UpdateString("Rules[0].Statement.RuleGroupReferenceStatement.ExcludedRules[0].Name","string")
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.ComparisonOperator","string")
loJson.UpdateNewObject("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.AllQueryArguments")
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.Body.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[0]","string")
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[0]","string")
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.Cookies.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[0]","string")
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[0]","string")
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.Headers.OversizeHandling","string")
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior","string")
loJson.UpdateNewObject("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[0]","string")
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.Method")
loJson.UpdateNewObject("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.QueryString")
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.SingleHeader.Name","string")
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.SingleQueryArgument.Name","string")
loJson.UpdateNewObject("Rules[0].Statement.SizeConstraintStatement.FieldToMatch.UriPath")
loJson.UpdateInt("Rules[0].Statement.SizeConstraintStatement.Size",123)
loJson.UpdateInt("Rules[0].Statement.SizeConstraintStatement.TextTransformations[0].Priority",123)
loJson.UpdateString("Rules[0].Statement.SizeConstraintStatement.TextTransformations[0].Type","string")
loJson.UpdateNewObject("Rules[0].Statement.SqliMatchStatement.FieldToMatch.AllQueryArguments")
loJson.UpdateString("Rules[0].Statement.SqliMatchStatement.FieldToMatch.Body.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[0]","string")
loJson.UpdateString("Rules[0].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[0]","string")
loJson.UpdateString("Rules[0].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.SqliMatchStatement.FieldToMatch.Cookies.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[0]","string")
loJson.UpdateString("Rules[0].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[0]","string")
loJson.UpdateString("Rules[0].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.SqliMatchStatement.FieldToMatch.Headers.OversizeHandling","string")
loJson.UpdateString("Rules[0].Statement.SqliMatchStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior","string")
loJson.UpdateNewObject("Rules[0].Statement.SqliMatchStatement.FieldToMatch.JsonBody.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.SqliMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[0]","string")
loJson.UpdateString("Rules[0].Statement.SqliMatchStatement.FieldToMatch.JsonBody.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.SqliMatchStatement.FieldToMatch.JsonBody.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.SqliMatchStatement.FieldToMatch.Method")
loJson.UpdateNewObject("Rules[0].Statement.SqliMatchStatement.FieldToMatch.QueryString")
loJson.UpdateString("Rules[0].Statement.SqliMatchStatement.FieldToMatch.SingleHeader.Name","string")
loJson.UpdateString("Rules[0].Statement.SqliMatchStatement.FieldToMatch.SingleQueryArgument.Name","string")
loJson.UpdateNewObject("Rules[0].Statement.SqliMatchStatement.FieldToMatch.UriPath")
loJson.UpdateInt("Rules[0].Statement.SqliMatchStatement.TextTransformations[0].Priority",123)
loJson.UpdateString("Rules[0].Statement.SqliMatchStatement.TextTransformations[0].Type","string")
loJson.UpdateNewObject("Rules[0].Statement.XssMatchStatement.FieldToMatch.AllQueryArguments")
loJson.UpdateString("Rules[0].Statement.XssMatchStatement.FieldToMatch.Body.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies[0]","string")
loJson.UpdateString("Rules[0].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies[0]","string")
loJson.UpdateString("Rules[0].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.XssMatchStatement.FieldToMatch.Cookies.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders[0]","string")
loJson.UpdateString("Rules[0].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders[0]","string")
loJson.UpdateString("Rules[0].Statement.XssMatchStatement.FieldToMatch.Headers.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.XssMatchStatement.FieldToMatch.Headers.OversizeHandling","string")
loJson.UpdateString("Rules[0].Statement.XssMatchStatement.FieldToMatch.JsonBody.InvalidFallbackBehavior","string")
loJson.UpdateNewObject("Rules[0].Statement.XssMatchStatement.FieldToMatch.JsonBody.MatchPattern.All")
loJson.UpdateString("Rules[0].Statement.XssMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths[0]","string")
loJson.UpdateString("Rules[0].Statement.XssMatchStatement.FieldToMatch.JsonBody.MatchScope","string")
loJson.UpdateString("Rules[0].Statement.XssMatchStatement.FieldToMatch.JsonBody.OversizeHandling","string")
loJson.UpdateNewObject("Rules[0].Statement.XssMatchStatement.FieldToMatch.Method")
loJson.UpdateNewObject("Rules[0].Statement.XssMatchStatement.FieldToMatch.QueryString")
loJson.UpdateString("Rules[0].Statement.XssMatchStatement.FieldToMatch.SingleHeader.Name","string")
loJson.UpdateString("Rules[0].Statement.XssMatchStatement.FieldToMatch.SingleQueryArgument.Name","string")
loJson.UpdateNewObject("Rules[0].Statement.XssMatchStatement.FieldToMatch.UriPath")
loJson.UpdateInt("Rules[0].Statement.XssMatchStatement.TextTransformations[0].Priority",123)
loJson.UpdateString("Rules[0].Statement.XssMatchStatement.TextTransformations[0].Type","string")
loJson.UpdateInt("Rules[0].VisibilityConfig.CloudWatchMetricsEnabled",123)
loJson.UpdateString("Rules[0].VisibilityConfig.MetricName","string")
loJson.UpdateInt("Rules[0].VisibilityConfig.SampledRequestsEnabled",123)
loJson.UpdateString("Scope","string")
loJson.UpdateString("Tags[0].Key","string")
loJson.UpdateString("Tags[0].Value","string")
loJson.UpdateInt("VisibilityConfig.CloudWatchMetricsEnabled",123)
loJson.UpdateString("VisibilityConfig.MetricName","string")
loJson.UpdateInt("VisibilityConfig.SampledRequestsEnabled",123)

* The JSON request body created by the above code:

* {
*   "CaptchaConfig": {
*     "ImmunityTimeProperty": {
*       "ImmunityTime": number
*     }
*   },
*   "CustomResponseBodies": {
*     "string": {
*       "Content": "string",
*       "ContentType": "string"
*     }
*   },
*   "DefaultAction": {
*     "Allow": {
*       "CustomRequestHandling": {
*         "InsertHeaders": [
*           {
*             "Name": "string",
*             "Value": "string"
*           }
*         ]
*       }
*     },
*     "Block": {
*       "CustomResponse": {
*         "CustomResponseBodyKey": "string",
*         "ResponseCode": number,
*         "ResponseHeaders": [
*           {
*             "Name": "string",
*             "Value": "string"
*           }
*         ]
*       }
*     }
*   },
*   "Description": "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
*       }
*     }
*   ],
*   "Scope": "string",
*   "Tags": [
*     {
*       "Key": "string",
*       "Value": "string"
*     }
*   ],
*   "VisibilityConfig": {
*     "CloudWatchMetricsEnabled": boolean,
*     "MetricName": "string",
*     "SampledRequestsEnabled": boolean
*   }
* }

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

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

lcARN = loJResp.StringOf("Summary.ARN")
lcDescription = loJResp.StringOf("Summary.Description")
lcId = loJResp.StringOf("Summary.Id")
lcLockToken = loJResp.StringOf("Summary.LockToken")
lcName = loJResp.StringOf("Summary.Name")

* A sample JSON response body parsed by the above code:

* {
*   "Summary": {
*     "ARN": "string",
*     "Description": "string",
*     "Id": "string",
*     "LockToken": "string",
*     "Name": "string"
*   }
* }

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