Chilkat Online Tools

CreateRuleGroup autoit Example

AWS WAFV2

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

$oRest = ObjCreate("Chilkat_9_5_0.Rest")
Local $bSuccess

$oAuthAws = ObjCreate("Chilkat_9_5_0.AuthAws")
$oAuthAws.AccessKey = "AWS_ACCESS_KEY"
$oAuthAws.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.)
$oAuthAws.Region = "us-west-2"
$oAuthAws.ServiceName = "wafv2"
; SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
$oRest.SetAuthAws($oAuthAws)

; URL: https://wafv2.us-west-2.amazonaws.com/
; Use the same region as specified above.
$bSuccess = $oRest.Connect("wafv2.us-west-2.amazonaws.com",443,True,True)
If ($bSuccess <> True) Then
    ConsoleWrite("ConnectFailReason: " & $oRest.ConnectFailReason & @CRLF)
    ConsoleWrite($oRest.LastErrorText & @CRLF)
    Exit
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

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

; The JSON request body created by the above code:

; {
;   "Capacity": number,
;   "CustomResponseBodies": {
;     "string": {
;       "Content": "string",
;       "ContentType": "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
;   }
; }

$oRest.AddHeader("Content-Type","application/x-amz-json-1.1")
$oRest.AddHeader("X-Amz-Target","AWSWAF_20190729.CreateRuleGroup")

$oSbRequestBody = ObjCreate("Chilkat_9_5_0.StringBuilder")
$oJson.EmitSb($oSbRequestBody)
$oSbResponseBody = ObjCreate("Chilkat_9_5_0.StringBuilder")
$bSuccess = $oRest.FullRequestSb("POST","/",$oSbRequestBody,$oSbResponseBody)
If ($bSuccess <> True) Then
    ConsoleWrite($oRest.LastErrorText & @CRLF)
    Exit
EndIf

Local $iRespStatusCode = $oRest.ResponseStatusCode
ConsoleWrite("response status code = " & $iRespStatusCode & @CRLF)
If ($iRespStatusCode <> 200) Then
    ConsoleWrite("Response Header:" & @CRLF)
    ConsoleWrite($oRest.ResponseHeader & @CRLF)
    ConsoleWrite("Response Body:" & @CRLF)
    ConsoleWrite($oSbResponseBody.GetAsString() & @CRLF)
    Exit
EndIf

$oJResp = ObjCreate("Chilkat_9_5_0.JsonObject")
$oJResp.LoadSb($oSbResponseBody)

; 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

Local $sARN = $oJResp.StringOf("Summary.ARN")
Local $sDescription = $oJResp.StringOf("Summary.Description")
Local $sId = $oJResp.StringOf("Summary.Id")
Local $sLockToken = $oJResp.StringOf("Summary.LockToken")
Local $sName = $oJResp.StringOf("Summary.Name")

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

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