"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnWebACLAssociation=exports.CfnWebACL=exports.CfnRuleGroup=exports.CfnRegexPatternSet=exports.CfnLoggingConfiguration=exports.CfnIPSet=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var cdk=()=>{var tmp=require("../../core/lib");return cdk=()=>tmp,tmp},cfn_parse=()=>{var tmp=require("../../core/lib/helpers-internal");return cfn_parse=()=>tmp,tmp},cdk_errors=()=>{var tmp=require("../../core/lib/errors");return cdk_errors=()=>tmp,tmp};class CfnIPSet extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_wafv2.CfnIPSet",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::WAFv2::IPSet";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPSetPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnIPSet(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnIPSet(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnIPSet.CFN_RESOURCE_TYPE_NAME}static arnForIPSet(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_wafv2_IIPSetRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForIPSet),error}return resource.ipSetRef.ipSetArn}_addresses;_description;_ipAddressVersion;_name;_scope;tags;_tagsRaw;cfnPropertyNames={addresses:"Addresses",description:"Description",ipAddressVersion:"IPAddressVersion",name:"Name",scope:"Scope",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnIPSet.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_wafv2_CfnIPSetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPSet),error}cdk().requireProperty(props,"addresses",this),cdk().requireProperty(props,"ipAddressVersion",this),cdk().requireProperty(props,"scope",this),this._addresses=props.addresses,this._description=props.description,this._ipAddressVersion=props.ipAddressVersion,this._name=props.name,this._scope=props.scope,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::WAFv2::IPSet",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get ipSetRef(){return{ipSetName:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),ipSetId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),scope:cdk().Fn.select(2,cdk().Fn.split("|",this.ref)),ipSetArn:this.attrArn}}get addresses(){return this._addresses}set addresses(value){cdk().traceProperty(this.node,"Addresses"),this._addresses=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get ipAddressVersion(){return this._ipAddressVersion}set ipAddressVersion(value){cdk().traceProperty(this.node,"IPAddressVersion"),this._ipAddressVersion=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get scope(){return this._scope}set scope(value){cdk().traceProperty(this.node,"Scope"),this._scope=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{addresses:this._addresses,description:this._description,ipAddressVersion:this._ipAddressVersion,name:this._name,scope:this._scope,tags:this.tags.renderTags()}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnIPSet.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnIPSetPropsToCloudFormation(props)}}exports.CfnIPSet=CfnIPSet;function CfnIPSetPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("addresses",cdk().requiredValidator)(properties.addresses)),errors.collect(cdk().propertyValidator("addresses",cdk().listValidator(cdk().validateString))(properties.addresses)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("ipAddressVersion",cdk().requiredValidator)(properties.ipAddressVersion)),errors.collect(cdk().propertyValidator("ipAddressVersion",cdk().validateString)(properties.ipAddressVersion)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("scope",cdk().requiredValidator)(properties.scope)),errors.collect(cdk().propertyValidator("scope",cdk().validateString)(properties.scope)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnIPSetProps"')}function convertCfnIPSetPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPSetPropsValidator(properties).assertSuccess(),{Addresses:cdk().listMapper(cdk().stringToCloudFormation)(properties.addresses),Description:cdk().stringToCloudFormation(properties.description),IPAddressVersion:cdk().stringToCloudFormation(properties.ipAddressVersion),Name:cdk().stringToCloudFormation(properties.name),Scope:cdk().stringToCloudFormation(properties.scope),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnIPSetPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("addresses","Addresses",properties.Addresses!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Addresses):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("ipAddressVersion","IPAddressVersion",properties.IPAddressVersion!=null?cfn_parse().FromCloudFormation.getString(properties.IPAddressVersion):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("scope","Scope",properties.Scope!=null?cfn_parse().FromCloudFormation.getString(properties.Scope):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLoggingConfiguration extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_wafv2.CfnLoggingConfiguration",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::WAFv2::LoggingConfiguration";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLoggingConfigurationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnLoggingConfiguration(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnLoggingConfiguration(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnLoggingConfiguration.CFN_RESOURCE_TYPE_NAME}_logDestinationConfigs;_loggingFilter;_redactedFields;_resourceArn;cfnPropertyNames={logDestinationConfigs:"LogDestinationConfigs",loggingFilter:"LoggingFilter",redactedFields:"RedactedFields",resourceArn:"ResourceArn"};constructor(scope,id,props){super(scope,id,{type:CfnLoggingConfiguration.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_wafv2_CfnLoggingConfigurationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLoggingConfiguration),error}cdk().requireProperty(props,"logDestinationConfigs",this),cdk().requireProperty(props,"resourceArn",this),this._logDestinationConfigs=cdk().mapArrayInPlace(props.logDestinationConfigs,item=>cdk().getRefProperty(item?.logGroupRef,"logGroupArn")??cdk().getRefProperty(item?.deliveryStreamRef,"deliveryStreamArn")??cdk().getRefProperty(item?.bucketRef,"bucketArn")??cdk().getRefProperty(item?.logGroupRef,"logGroupName")??cdk().ensureStringOrUndefined(item,"logDestinationConfigs","logs.ILogGroupRef | kinesisfirehose.IDeliveryStreamRef | s3.IBucketRef | string")),this._loggingFilter=props.loggingFilter,this._redactedFields=props.redactedFields,this._resourceArn=cdk().getRefProperty(props.resourceArn?.webAclRef,"webAclArn")??cdk().ensureStringOrUndefined(props.resourceArn,"resourceArn","wafv2.IWebACLRef | string")}get loggingConfigurationRef(){return{resourceArn:this.ref}}get logDestinationConfigs(){return this._logDestinationConfigs}set logDestinationConfigs(value){cdk().traceProperty(this.node,"LogDestinationConfigs"),this._logDestinationConfigs=value}get loggingFilter(){return this._loggingFilter}set loggingFilter(value){cdk().traceProperty(this.node,"LoggingFilter"),this._loggingFilter=value}get redactedFields(){return this._redactedFields}set redactedFields(value){cdk().traceProperty(this.node,"RedactedFields"),this._redactedFields=value}get resourceArn(){return this._resourceArn}set resourceArn(value){cdk().traceProperty(this.node,"ResourceArn"),this._resourceArn=value}get attrManagedByFirewallManager(){return this.getAtt("ManagedByFirewallManager")}get cfnProperties(){return{logDestinationConfigs:this._logDestinationConfigs,loggingFilter:this._loggingFilter,redactedFields:this._redactedFields,resourceArn:this._resourceArn}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnLoggingConfiguration.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLoggingConfigurationPropsToCloudFormation(props)}}exports.CfnLoggingConfiguration=CfnLoggingConfiguration;function CfnLoggingConfigurationFieldToMatchPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("jsonBody",cdk().validateObject)(properties.jsonBody)),errors.collect(cdk().propertyValidator("method",cdk().validateObject)(properties.method)),errors.collect(cdk().propertyValidator("queryString",cdk().validateObject)(properties.queryString)),errors.collect(cdk().propertyValidator("singleHeader",cdk().validateObject)(properties.singleHeader)),errors.collect(cdk().propertyValidator("uriPath",cdk().validateObject)(properties.uriPath)),errors.wrap('supplied properties not correct for "FieldToMatchProperty"')}function convertCfnLoggingConfigurationFieldToMatchPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoggingConfigurationFieldToMatchPropertyValidator(properties).assertSuccess(),{JsonBody:cdk().objectToCloudFormation(properties.jsonBody),Method:cdk().objectToCloudFormation(properties.method),QueryString:cdk().objectToCloudFormation(properties.queryString),SingleHeader:cdk().objectToCloudFormation(properties.singleHeader),UriPath:cdk().objectToCloudFormation(properties.uriPath)}):properties}function CfnLoggingConfigurationFieldToMatchPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("jsonBody","JsonBody",properties.JsonBody!=null?cfn_parse().FromCloudFormation.getAny(properties.JsonBody):void 0),ret.addPropertyResult("method","Method",properties.Method!=null?cfn_parse().FromCloudFormation.getAny(properties.Method):void 0),ret.addPropertyResult("queryString","QueryString",properties.QueryString!=null?cfn_parse().FromCloudFormation.getAny(properties.QueryString):void 0),ret.addPropertyResult("singleHeader","SingleHeader",properties.SingleHeader!=null?cfn_parse().FromCloudFormation.getAny(properties.SingleHeader):void 0),ret.addPropertyResult("uriPath","UriPath",properties.UriPath!=null?cfn_parse().FromCloudFormation.getAny(properties.UriPath):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLoggingConfigurationLabelNameConditionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("labelName",cdk().requiredValidator)(properties.labelName)),errors.collect(cdk().propertyValidator("labelName",cdk().validateString)(properties.labelName)),errors.wrap('supplied properties not correct for "LabelNameConditionProperty"')}function convertCfnLoggingConfigurationLabelNameConditionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoggingConfigurationLabelNameConditionPropertyValidator(properties).assertSuccess(),{LabelName:cdk().stringToCloudFormation(properties.labelName)}):properties}function CfnLoggingConfigurationLabelNameConditionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("labelName","LabelName",properties.LabelName!=null?cfn_parse().FromCloudFormation.getString(properties.LabelName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLoggingConfigurationActionConditionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("action",cdk().requiredValidator)(properties.action)),errors.collect(cdk().propertyValidator("action",cdk().validateString)(properties.action)),errors.wrap('supplied properties not correct for "ActionConditionProperty"')}function convertCfnLoggingConfigurationActionConditionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoggingConfigurationActionConditionPropertyValidator(properties).assertSuccess(),{Action:cdk().stringToCloudFormation(properties.action)}):properties}function CfnLoggingConfigurationActionConditionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",properties.Action!=null?cfn_parse().FromCloudFormation.getString(properties.Action):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLoggingConfigurationConditionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("actionCondition",CfnLoggingConfigurationActionConditionPropertyValidator)(properties.actionCondition)),errors.collect(cdk().propertyValidator("labelNameCondition",CfnLoggingConfigurationLabelNameConditionPropertyValidator)(properties.labelNameCondition)),errors.wrap('supplied properties not correct for "ConditionProperty"')}function convertCfnLoggingConfigurationConditionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoggingConfigurationConditionPropertyValidator(properties).assertSuccess(),{ActionCondition:convertCfnLoggingConfigurationActionConditionPropertyToCloudFormation(properties.actionCondition),LabelNameCondition:convertCfnLoggingConfigurationLabelNameConditionPropertyToCloudFormation(properties.labelNameCondition)}):properties}function CfnLoggingConfigurationConditionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("actionCondition","ActionCondition",properties.ActionCondition!=null?CfnLoggingConfigurationActionConditionPropertyFromCloudFormation(properties.ActionCondition):void 0),ret.addPropertyResult("labelNameCondition","LabelNameCondition",properties.LabelNameCondition!=null?CfnLoggingConfigurationLabelNameConditionPropertyFromCloudFormation(properties.LabelNameCondition):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLoggingConfigurationFilterPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("behavior",cdk().requiredValidator)(properties.behavior)),errors.collect(cdk().propertyValidator("behavior",cdk().validateString)(properties.behavior)),errors.collect(cdk().propertyValidator("conditions",cdk().requiredValidator)(properties.conditions)),errors.collect(cdk().propertyValidator("conditions",cdk().listValidator(CfnLoggingConfigurationConditionPropertyValidator))(properties.conditions)),errors.collect(cdk().propertyValidator("requirement",cdk().requiredValidator)(properties.requirement)),errors.collect(cdk().propertyValidator("requirement",cdk().validateString)(properties.requirement)),errors.wrap('supplied properties not correct for "FilterProperty"')}function convertCfnLoggingConfigurationFilterPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoggingConfigurationFilterPropertyValidator(properties).assertSuccess(),{Behavior:cdk().stringToCloudFormation(properties.behavior),Conditions:cdk().listMapper(convertCfnLoggingConfigurationConditionPropertyToCloudFormation)(properties.conditions),Requirement:cdk().stringToCloudFormation(properties.requirement)}):properties}function CfnLoggingConfigurationFilterPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("behavior","Behavior",properties.Behavior!=null?cfn_parse().FromCloudFormation.getString(properties.Behavior):void 0),ret.addPropertyResult("conditions","Conditions",properties.Conditions!=null?cfn_parse().FromCloudFormation.getArray(CfnLoggingConfigurationConditionPropertyFromCloudFormation)(properties.Conditions):void 0),ret.addPropertyResult("requirement","Requirement",properties.Requirement!=null?cfn_parse().FromCloudFormation.getString(properties.Requirement):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLoggingConfigurationLoggingFilterPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("defaultBehavior",cdk().requiredValidator)(properties.defaultBehavior)),errors.collect(cdk().propertyValidator("defaultBehavior",cdk().validateString)(properties.defaultBehavior)),errors.collect(cdk().propertyValidator("filters",cdk().requiredValidator)(properties.filters)),errors.collect(cdk().propertyValidator("filters",cdk().listValidator(CfnLoggingConfigurationFilterPropertyValidator))(properties.filters)),errors.wrap('supplied properties not correct for "LoggingFilterProperty"')}function convertCfnLoggingConfigurationLoggingFilterPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoggingConfigurationLoggingFilterPropertyValidator(properties).assertSuccess(),{DefaultBehavior:cdk().stringToCloudFormation(properties.defaultBehavior),Filters:cdk().listMapper(convertCfnLoggingConfigurationFilterPropertyToCloudFormation)(properties.filters)}):properties}function CfnLoggingConfigurationLoggingFilterPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("defaultBehavior","DefaultBehavior",properties.DefaultBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.DefaultBehavior):void 0),ret.addPropertyResult("filters","Filters",properties.Filters!=null?cfn_parse().FromCloudFormation.getArray(CfnLoggingConfigurationFilterPropertyFromCloudFormation)(properties.Filters):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLoggingConfigurationPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("logDestinationConfigs",cdk().requiredValidator)(properties.logDestinationConfigs)),errors.collect(cdk().propertyValidator("logDestinationConfigs",cdk().listValidator(cdk().validateString))(properties.logDestinationConfigs)),errors.collect(cdk().propertyValidator("loggingFilter",cdk().validateObject)(properties.loggingFilter)),errors.collect(cdk().propertyValidator("redactedFields",cdk().listValidator(CfnLoggingConfigurationFieldToMatchPropertyValidator))(properties.redactedFields)),errors.collect(cdk().propertyValidator("resourceArn",cdk().requiredValidator)(properties.resourceArn)),errors.collect(cdk().propertyValidator("resourceArn",cdk().validateString)(properties.resourceArn)),errors.wrap('supplied properties not correct for "CfnLoggingConfigurationProps"')}function convertCfnLoggingConfigurationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoggingConfigurationPropsValidator(properties).assertSuccess(),{LogDestinationConfigs:cdk().listMapper(cdk().stringToCloudFormation)(properties.logDestinationConfigs),LoggingFilter:cdk().objectToCloudFormation(properties.loggingFilter),RedactedFields:cdk().listMapper(convertCfnLoggingConfigurationFieldToMatchPropertyToCloudFormation)(properties.redactedFields),ResourceArn:cdk().stringToCloudFormation(properties.resourceArn)}):properties}function CfnLoggingConfigurationPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("logDestinationConfigs","LogDestinationConfigs",properties.LogDestinationConfigs!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.LogDestinationConfigs):void 0),ret.addPropertyResult("loggingFilter","LoggingFilter",properties.LoggingFilter!=null?cfn_parse().FromCloudFormation.getAny(properties.LoggingFilter):void 0),ret.addPropertyResult("redactedFields","RedactedFields",properties.RedactedFields!=null?cfn_parse().FromCloudFormation.getArray(CfnLoggingConfigurationFieldToMatchPropertyFromCloudFormation)(properties.RedactedFields):void 0),ret.addPropertyResult("resourceArn","ResourceArn",properties.ResourceArn!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLoggingConfigurationMatchPatternPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("all",cdk().validateObject)(properties.all)),errors.collect(cdk().propertyValidator("includedPaths",cdk().listValidator(cdk().validateString))(properties.includedPaths)),errors.wrap('supplied properties not correct for "MatchPatternProperty"')}function convertCfnLoggingConfigurationMatchPatternPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoggingConfigurationMatchPatternPropertyValidator(properties).assertSuccess(),{All:cdk().objectToCloudFormation(properties.all),IncludedPaths:cdk().listMapper(cdk().stringToCloudFormation)(properties.includedPaths)}):properties}function CfnLoggingConfigurationMatchPatternPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("all","All",properties.All!=null?cfn_parse().FromCloudFormation.getAny(properties.All):void 0),ret.addPropertyResult("includedPaths","IncludedPaths",properties.IncludedPaths!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.IncludedPaths):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLoggingConfigurationJsonBodyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("invalidFallbackBehavior",cdk().validateString)(properties.invalidFallbackBehavior)),errors.collect(cdk().propertyValidator("matchPattern",cdk().requiredValidator)(properties.matchPattern)),errors.collect(cdk().propertyValidator("matchPattern",CfnLoggingConfigurationMatchPatternPropertyValidator)(properties.matchPattern)),errors.collect(cdk().propertyValidator("matchScope",cdk().requiredValidator)(properties.matchScope)),errors.collect(cdk().propertyValidator("matchScope",cdk().validateString)(properties.matchScope)),errors.wrap('supplied properties not correct for "JsonBodyProperty"')}function convertCfnLoggingConfigurationJsonBodyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoggingConfigurationJsonBodyPropertyValidator(properties).assertSuccess(),{InvalidFallbackBehavior:cdk().stringToCloudFormation(properties.invalidFallbackBehavior),MatchPattern:convertCfnLoggingConfigurationMatchPatternPropertyToCloudFormation(properties.matchPattern),MatchScope:cdk().stringToCloudFormation(properties.matchScope)}):properties}function CfnLoggingConfigurationJsonBodyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("invalidFallbackBehavior","InvalidFallbackBehavior",properties.InvalidFallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.InvalidFallbackBehavior):void 0),ret.addPropertyResult("matchPattern","MatchPattern",properties.MatchPattern!=null?CfnLoggingConfigurationMatchPatternPropertyFromCloudFormation(properties.MatchPattern):void 0),ret.addPropertyResult("matchScope","MatchScope",properties.MatchScope!=null?cfn_parse().FromCloudFormation.getString(properties.MatchScope):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLoggingConfigurationSingleHeaderPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "SingleHeaderProperty"')}function convertCfnLoggingConfigurationSingleHeaderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoggingConfigurationSingleHeaderPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnLoggingConfigurationSingleHeaderPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRegexPatternSet extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_wafv2.CfnRegexPatternSet",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::WAFv2::RegexPatternSet";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRegexPatternSetPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnRegexPatternSet(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnRegexPatternSet(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnRegexPatternSet.CFN_RESOURCE_TYPE_NAME}static arnForRegexPatternSet(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_wafv2_IRegexPatternSetRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForRegexPatternSet),error}return resource.regexPatternSetRef.regexPatternSetArn}_description;_name;_regularExpressionList;_scope;tags;_tagsRaw;cfnPropertyNames={description:"Description",name:"Name",regularExpressionList:"RegularExpressionList",scope:"Scope",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnRegexPatternSet.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_wafv2_CfnRegexPatternSetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRegexPatternSet),error}cdk().requireProperty(props,"regularExpressionList",this),cdk().requireProperty(props,"scope",this),this._description=props.description,this._name=props.name,this._regularExpressionList=props.regularExpressionList,this._scope=props.scope,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::WAFv2::RegexPatternSet",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get regexPatternSetRef(){return{regexPatternSetName:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),regexPatternSetId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),scope:cdk().Fn.select(2,cdk().Fn.split("|",this.ref)),regexPatternSetArn:this.attrArn}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get regularExpressionList(){return this._regularExpressionList}set regularExpressionList(value){cdk().traceProperty(this.node,"RegularExpressionList"),this._regularExpressionList=value}get scope(){return this._scope}set scope(value){cdk().traceProperty(this.node,"Scope"),this._scope=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{description:this._description,name:this._name,regularExpressionList:this._regularExpressionList,scope:this._scope,tags:this.tags.renderTags()}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnRegexPatternSet.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnRegexPatternSetPropsToCloudFormation(props)}}exports.CfnRegexPatternSet=CfnRegexPatternSet;function CfnRegexPatternSetPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("regularExpressionList",cdk().requiredValidator)(properties.regularExpressionList)),errors.collect(cdk().propertyValidator("regularExpressionList",cdk().listValidator(cdk().validateString))(properties.regularExpressionList)),errors.collect(cdk().propertyValidator("scope",cdk().requiredValidator)(properties.scope)),errors.collect(cdk().propertyValidator("scope",cdk().validateString)(properties.scope)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnRegexPatternSetProps"')}function convertCfnRegexPatternSetPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRegexPatternSetPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),Name:cdk().stringToCloudFormation(properties.name),RegularExpressionList:cdk().listMapper(cdk().stringToCloudFormation)(properties.regularExpressionList),Scope:cdk().stringToCloudFormation(properties.scope),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnRegexPatternSetPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("regularExpressionList","RegularExpressionList",properties.RegularExpressionList!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.RegularExpressionList):void 0),ret.addPropertyResult("scope","Scope",properties.Scope!=null?cfn_parse().FromCloudFormation.getString(properties.Scope):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRuleGroup extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_wafv2.CfnRuleGroup",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::WAFv2::RuleGroup";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRuleGroupPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnRuleGroup(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnRuleGroup(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnRuleGroup.CFN_RESOURCE_TYPE_NAME}static arnForRuleGroup(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_wafv2_IRuleGroupRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForRuleGroup),error}return resource.ruleGroupRef.ruleGroupArn}_availableLabels;_capacity;_consumedLabels;_customResponseBodies;_description;_name;_rules;_scope;tags;_tagsRaw;_visibilityConfig;cfnPropertyNames={availableLabels:"AvailableLabels",capacity:"Capacity",consumedLabels:"ConsumedLabels",customResponseBodies:"CustomResponseBodies",description:"Description",name:"Name",rules:"Rules",scope:"Scope",tags:"Tags",visibilityConfig:"VisibilityConfig"};constructor(scope,id,props){super(scope,id,{type:CfnRuleGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_wafv2_CfnRuleGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRuleGroup),error}cdk().requireProperty(props,"capacity",this),cdk().requireProperty(props,"scope",this),cdk().requireProperty(props,"visibilityConfig",this),this._availableLabels=props.availableLabels,this._capacity=props.capacity,this._consumedLabels=props.consumedLabels,this._customResponseBodies=props.customResponseBodies,this._description=props.description,this._name=props.name,this._rules=props.rules,this._scope=props.scope,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::WAFv2::RuleGroup",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._visibilityConfig=props.visibilityConfig}get ruleGroupRef(){return{ruleGroupName:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),ruleGroupId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),scope:cdk().Fn.select(2,cdk().Fn.split("|",this.ref)),ruleGroupArn:this.attrArn}}get availableLabels(){return this._availableLabels}set availableLabels(value){cdk().traceProperty(this.node,"AvailableLabels"),this._availableLabels=value}get capacity(){return this._capacity}set capacity(value){cdk().traceProperty(this.node,"Capacity"),this._capacity=value}get consumedLabels(){return this._consumedLabels}set consumedLabels(value){cdk().traceProperty(this.node,"ConsumedLabels"),this._consumedLabels=value}get customResponseBodies(){return this._customResponseBodies}set customResponseBodies(value){cdk().traceProperty(this.node,"CustomResponseBodies"),this._customResponseBodies=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get rules(){return this._rules}set rules(value){cdk().traceProperty(this.node,"Rules"),this._rules=value}get scope(){return this._scope}set scope(value){cdk().traceProperty(this.node,"Scope"),this._scope=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get visibilityConfig(){return this._visibilityConfig}set visibilityConfig(value){cdk().traceProperty(this.node,"VisibilityConfig"),this._visibilityConfig=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrLabelNamespace(){return cdk().Token.asString(this.getAtt("LabelNamespace",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{availableLabels:this._availableLabels,capacity:this._capacity,consumedLabels:this._consumedLabels,customResponseBodies:this._customResponseBodies,description:this._description,name:this._name,rules:this._rules,scope:this._scope,tags:this.tags.renderTags(),visibilityConfig:this._visibilityConfig}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnRuleGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnRuleGroupPropsToCloudFormation(props)}}exports.CfnRuleGroup=CfnRuleGroup;function CfnRuleGroupLabelSummaryPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "LabelSummaryProperty"')}function convertCfnRuleGroupLabelSummaryPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupLabelSummaryPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnRuleGroupLabelSummaryPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupCustomResponseBodyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("content",cdk().requiredValidator)(properties.content)),errors.collect(cdk().propertyValidator("content",cdk().validateString)(properties.content)),errors.collect(cdk().propertyValidator("contentType",cdk().requiredValidator)(properties.contentType)),errors.collect(cdk().propertyValidator("contentType",cdk().validateString)(properties.contentType)),errors.wrap('supplied properties not correct for "CustomResponseBodyProperty"')}function convertCfnRuleGroupCustomResponseBodyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupCustomResponseBodyPropertyValidator(properties).assertSuccess(),{Content:cdk().stringToCloudFormation(properties.content),ContentType:cdk().stringToCloudFormation(properties.contentType)}):properties}function CfnRuleGroupCustomResponseBodyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("content","Content",properties.Content!=null?cfn_parse().FromCloudFormation.getString(properties.Content):void 0),ret.addPropertyResult("contentType","ContentType",properties.ContentType!=null?cfn_parse().FromCloudFormation.getString(properties.ContentType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRuleActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("allow",cdk().validateObject)(properties.allow)),errors.collect(cdk().propertyValidator("block",cdk().validateObject)(properties.block)),errors.collect(cdk().propertyValidator("captcha",cdk().validateObject)(properties.captcha)),errors.collect(cdk().propertyValidator("challenge",cdk().validateObject)(properties.challenge)),errors.collect(cdk().propertyValidator("count",cdk().validateObject)(properties.count)),errors.wrap('supplied properties not correct for "RuleActionProperty"')}function convertCfnRuleGroupRuleActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRuleActionPropertyValidator(properties).assertSuccess(),{Allow:cdk().objectToCloudFormation(properties.allow),Block:cdk().objectToCloudFormation(properties.block),Captcha:cdk().objectToCloudFormation(properties.captcha),Challenge:cdk().objectToCloudFormation(properties.challenge),Count:cdk().objectToCloudFormation(properties.count)}):properties}function CfnRuleGroupRuleActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("allow","Allow",properties.Allow!=null?cfn_parse().FromCloudFormation.getAny(properties.Allow):void 0),ret.addPropertyResult("block","Block",properties.Block!=null?cfn_parse().FromCloudFormation.getAny(properties.Block):void 0),ret.addPropertyResult("captcha","Captcha",properties.Captcha!=null?cfn_parse().FromCloudFormation.getAny(properties.Captcha):void 0),ret.addPropertyResult("challenge","Challenge",properties.Challenge!=null?cfn_parse().FromCloudFormation.getAny(properties.Challenge):void 0),ret.addPropertyResult("count","Count",properties.Count!=null?cfn_parse().FromCloudFormation.getAny(properties.Count):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupTextTransformationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("priority",cdk().requiredValidator)(properties.priority)),errors.collect(cdk().propertyValidator("priority",cdk().validateNumber)(properties.priority)),errors.collect(cdk().propertyValidator("type",cdk().requiredValidator)(properties.type)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "TextTransformationProperty"')}function convertCfnRuleGroupTextTransformationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupTextTransformationPropertyValidator(properties).assertSuccess(),{Priority:cdk().numberToCloudFormation(properties.priority),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnRuleGroupTextTransformationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse().FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupJsonMatchPatternPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("all",cdk().validateObject)(properties.all)),errors.collect(cdk().propertyValidator("includedPaths",cdk().listValidator(cdk().validateString))(properties.includedPaths)),errors.wrap('supplied properties not correct for "JsonMatchPatternProperty"')}function convertCfnRuleGroupJsonMatchPatternPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupJsonMatchPatternPropertyValidator(properties).assertSuccess(),{All:cdk().objectToCloudFormation(properties.all),IncludedPaths:cdk().listMapper(cdk().stringToCloudFormation)(properties.includedPaths)}):properties}function CfnRuleGroupJsonMatchPatternPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("all","All",properties.All!=null?cfn_parse().FromCloudFormation.getAny(properties.All):void 0),ret.addPropertyResult("includedPaths","IncludedPaths",properties.IncludedPaths!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.IncludedPaths):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupJsonBodyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("invalidFallbackBehavior",cdk().validateString)(properties.invalidFallbackBehavior)),errors.collect(cdk().propertyValidator("matchPattern",cdk().requiredValidator)(properties.matchPattern)),errors.collect(cdk().propertyValidator("matchPattern",CfnRuleGroupJsonMatchPatternPropertyValidator)(properties.matchPattern)),errors.collect(cdk().propertyValidator("matchScope",cdk().requiredValidator)(properties.matchScope)),errors.collect(cdk().propertyValidator("matchScope",cdk().validateString)(properties.matchScope)),errors.collect(cdk().propertyValidator("oversizeHandling",cdk().validateString)(properties.oversizeHandling)),errors.wrap('supplied properties not correct for "JsonBodyProperty"')}function convertCfnRuleGroupJsonBodyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupJsonBodyPropertyValidator(properties).assertSuccess(),{InvalidFallbackBehavior:cdk().stringToCloudFormation(properties.invalidFallbackBehavior),MatchPattern:convertCfnRuleGroupJsonMatchPatternPropertyToCloudFormation(properties.matchPattern),MatchScope:cdk().stringToCloudFormation(properties.matchScope),OversizeHandling:cdk().stringToCloudFormation(properties.oversizeHandling)}):properties}function CfnRuleGroupJsonBodyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("invalidFallbackBehavior","InvalidFallbackBehavior",properties.InvalidFallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.InvalidFallbackBehavior):void 0),ret.addPropertyResult("matchPattern","MatchPattern",properties.MatchPattern!=null?CfnRuleGroupJsonMatchPatternPropertyFromCloudFormation(properties.MatchPattern):void 0),ret.addPropertyResult("matchScope","MatchScope",properties.MatchScope!=null?cfn_parse().FromCloudFormation.getString(properties.MatchScope):void 0),ret.addPropertyResult("oversizeHandling","OversizeHandling",properties.OversizeHandling!=null?cfn_parse().FromCloudFormation.getString(properties.OversizeHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupHeaderMatchPatternPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("all",cdk().validateObject)(properties.all)),errors.collect(cdk().propertyValidator("excludedHeaders",cdk().listValidator(cdk().validateString))(properties.excludedHeaders)),errors.collect(cdk().propertyValidator("includedHeaders",cdk().listValidator(cdk().validateString))(properties.includedHeaders)),errors.wrap('supplied properties not correct for "HeaderMatchPatternProperty"')}function convertCfnRuleGroupHeaderMatchPatternPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupHeaderMatchPatternPropertyValidator(properties).assertSuccess(),{All:cdk().objectToCloudFormation(properties.all),ExcludedHeaders:cdk().listMapper(cdk().stringToCloudFormation)(properties.excludedHeaders),IncludedHeaders:cdk().listMapper(cdk().stringToCloudFormation)(properties.includedHeaders)}):properties}function CfnRuleGroupHeaderMatchPatternPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("all","All",properties.All!=null?cfn_parse().FromCloudFormation.getAny(properties.All):void 0),ret.addPropertyResult("excludedHeaders","ExcludedHeaders",properties.ExcludedHeaders!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ExcludedHeaders):void 0),ret.addPropertyResult("includedHeaders","IncludedHeaders",properties.IncludedHeaders!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.IncludedHeaders):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupHeadersPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("matchPattern",cdk().requiredValidator)(properties.matchPattern)),errors.collect(cdk().propertyValidator("matchPattern",CfnRuleGroupHeaderMatchPatternPropertyValidator)(properties.matchPattern)),errors.collect(cdk().propertyValidator("matchScope",cdk().requiredValidator)(properties.matchScope)),errors.collect(cdk().propertyValidator("matchScope",cdk().validateString)(properties.matchScope)),errors.collect(cdk().propertyValidator("oversizeHandling",cdk().requiredValidator)(properties.oversizeHandling)),errors.collect(cdk().propertyValidator("oversizeHandling",cdk().validateString)(properties.oversizeHandling)),errors.wrap('supplied properties not correct for "HeadersProperty"')}function convertCfnRuleGroupHeadersPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupHeadersPropertyValidator(properties).assertSuccess(),{MatchPattern:convertCfnRuleGroupHeaderMatchPatternPropertyToCloudFormation(properties.matchPattern),MatchScope:cdk().stringToCloudFormation(properties.matchScope),OversizeHandling:cdk().stringToCloudFormation(properties.oversizeHandling)}):properties}function CfnRuleGroupHeadersPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("matchPattern","MatchPattern",properties.MatchPattern!=null?CfnRuleGroupHeaderMatchPatternPropertyFromCloudFormation(properties.MatchPattern):void 0),ret.addPropertyResult("matchScope","MatchScope",properties.MatchScope!=null?cfn_parse().FromCloudFormation.getString(properties.MatchScope):void 0),ret.addPropertyResult("oversizeHandling","OversizeHandling",properties.OversizeHandling!=null?cfn_parse().FromCloudFormation.getString(properties.OversizeHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupCookieMatchPatternPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("all",cdk().validateObject)(properties.all)),errors.collect(cdk().propertyValidator("excludedCookies",cdk().listValidator(cdk().validateString))(properties.excludedCookies)),errors.collect(cdk().propertyValidator("includedCookies",cdk().listValidator(cdk().validateString))(properties.includedCookies)),errors.wrap('supplied properties not correct for "CookieMatchPatternProperty"')}function convertCfnRuleGroupCookieMatchPatternPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupCookieMatchPatternPropertyValidator(properties).assertSuccess(),{All:cdk().objectToCloudFormation(properties.all),ExcludedCookies:cdk().listMapper(cdk().stringToCloudFormation)(properties.excludedCookies),IncludedCookies:cdk().listMapper(cdk().stringToCloudFormation)(properties.includedCookies)}):properties}function CfnRuleGroupCookieMatchPatternPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("all","All",properties.All!=null?cfn_parse().FromCloudFormation.getAny(properties.All):void 0),ret.addPropertyResult("excludedCookies","ExcludedCookies",properties.ExcludedCookies!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ExcludedCookies):void 0),ret.addPropertyResult("includedCookies","IncludedCookies",properties.IncludedCookies!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.IncludedCookies):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupCookiesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("matchPattern",cdk().requiredValidator)(properties.matchPattern)),errors.collect(cdk().propertyValidator("matchPattern",CfnRuleGroupCookieMatchPatternPropertyValidator)(properties.matchPattern)),errors.collect(cdk().propertyValidator("matchScope",cdk().requiredValidator)(properties.matchScope)),errors.collect(cdk().propertyValidator("matchScope",cdk().validateString)(properties.matchScope)),errors.collect(cdk().propertyValidator("oversizeHandling",cdk().requiredValidator)(properties.oversizeHandling)),errors.collect(cdk().propertyValidator("oversizeHandling",cdk().validateString)(properties.oversizeHandling)),errors.wrap('supplied properties not correct for "CookiesProperty"')}function convertCfnRuleGroupCookiesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupCookiesPropertyValidator(properties).assertSuccess(),{MatchPattern:convertCfnRuleGroupCookieMatchPatternPropertyToCloudFormation(properties.matchPattern),MatchScope:cdk().stringToCloudFormation(properties.matchScope),OversizeHandling:cdk().stringToCloudFormation(properties.oversizeHandling)}):properties}function CfnRuleGroupCookiesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("matchPattern","MatchPattern",properties.MatchPattern!=null?CfnRuleGroupCookieMatchPatternPropertyFromCloudFormation(properties.MatchPattern):void 0),ret.addPropertyResult("matchScope","MatchScope",properties.MatchScope!=null?cfn_parse().FromCloudFormation.getString(properties.MatchScope):void 0),ret.addPropertyResult("oversizeHandling","OversizeHandling",properties.OversizeHandling!=null?cfn_parse().FromCloudFormation.getString(properties.OversizeHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupBodyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("oversizeHandling",cdk().validateString)(properties.oversizeHandling)),errors.wrap('supplied properties not correct for "BodyProperty"')}function convertCfnRuleGroupBodyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupBodyPropertyValidator(properties).assertSuccess(),{OversizeHandling:cdk().stringToCloudFormation(properties.oversizeHandling)}):properties}function CfnRuleGroupBodyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("oversizeHandling","OversizeHandling",properties.OversizeHandling!=null?cfn_parse().FromCloudFormation.getString(properties.OversizeHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupJA3FingerprintPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().requiredValidator)(properties.fallbackBehavior)),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().validateString)(properties.fallbackBehavior)),errors.wrap('supplied properties not correct for "JA3FingerprintProperty"')}function convertCfnRuleGroupJA3FingerprintPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupJA3FingerprintPropertyValidator(properties).assertSuccess(),{FallbackBehavior:cdk().stringToCloudFormation(properties.fallbackBehavior)}):properties}function CfnRuleGroupJA3FingerprintPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fallbackBehavior","FallbackBehavior",properties.FallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.FallbackBehavior):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupJA4FingerprintPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().requiredValidator)(properties.fallbackBehavior)),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().validateString)(properties.fallbackBehavior)),errors.wrap('supplied properties not correct for "JA4FingerprintProperty"')}function convertCfnRuleGroupJA4FingerprintPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupJA4FingerprintPropertyValidator(properties).assertSuccess(),{FallbackBehavior:cdk().stringToCloudFormation(properties.fallbackBehavior)}):properties}function CfnRuleGroupJA4FingerprintPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fallbackBehavior","FallbackBehavior",properties.FallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.FallbackBehavior):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupUriFragmentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().validateString)(properties.fallbackBehavior)),errors.wrap('supplied properties not correct for "UriFragmentProperty"')}function convertCfnRuleGroupUriFragmentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupUriFragmentPropertyValidator(properties).assertSuccess(),{FallbackBehavior:cdk().stringToCloudFormation(properties.fallbackBehavior)}):properties}function CfnRuleGroupUriFragmentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fallbackBehavior","FallbackBehavior",properties.FallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.FallbackBehavior):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupHeaderOrderPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("oversizeHandling",cdk().requiredValidator)(properties.oversizeHandling)),errors.collect(cdk().propertyValidator("oversizeHandling",cdk().validateString)(properties.oversizeHandling)),errors.wrap('supplied properties not correct for "HeaderOrderProperty"')}function convertCfnRuleGroupHeaderOrderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupHeaderOrderPropertyValidator(properties).assertSuccess(),{OversizeHandling:cdk().stringToCloudFormation(properties.oversizeHandling)}):properties}function CfnRuleGroupHeaderOrderPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("oversizeHandling","OversizeHandling",properties.OversizeHandling!=null?cfn_parse().FromCloudFormation.getString(properties.OversizeHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupFieldToMatchPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("allQueryArguments",cdk().validateObject)(properties.allQueryArguments)),errors.collect(cdk().propertyValidator("body",CfnRuleGroupBodyPropertyValidator)(properties.body)),errors.collect(cdk().propertyValidator("cookies",CfnRuleGroupCookiesPropertyValidator)(properties.cookies)),errors.collect(cdk().propertyValidator("headerOrder",CfnRuleGroupHeaderOrderPropertyValidator)(properties.headerOrder)),errors.collect(cdk().propertyValidator("headers",CfnRuleGroupHeadersPropertyValidator)(properties.headers)),errors.collect(cdk().propertyValidator("ja3Fingerprint",CfnRuleGroupJA3FingerprintPropertyValidator)(properties.ja3Fingerprint)),errors.collect(cdk().propertyValidator("ja4Fingerprint",CfnRuleGroupJA4FingerprintPropertyValidator)(properties.ja4Fingerprint)),errors.collect(cdk().propertyValidator("jsonBody",CfnRuleGroupJsonBodyPropertyValidator)(properties.jsonBody)),errors.collect(cdk().propertyValidator("method",cdk().validateObject)(properties.method)),errors.collect(cdk().propertyValidator("queryString",cdk().validateObject)(properties.queryString)),errors.collect(cdk().propertyValidator("singleHeader",cdk().validateObject)(properties.singleHeader)),errors.collect(cdk().propertyValidator("singleQueryArgument",cdk().validateObject)(properties.singleQueryArgument)),errors.collect(cdk().propertyValidator("uriFragment",CfnRuleGroupUriFragmentPropertyValidator)(properties.uriFragment)),errors.collect(cdk().propertyValidator("uriPath",cdk().validateObject)(properties.uriPath)),errors.wrap('supplied properties not correct for "FieldToMatchProperty"')}function convertCfnRuleGroupFieldToMatchPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupFieldToMatchPropertyValidator(properties).assertSuccess(),{AllQueryArguments:cdk().objectToCloudFormation(properties.allQueryArguments),Body:convertCfnRuleGroupBodyPropertyToCloudFormation(properties.body),Cookies:convertCfnRuleGroupCookiesPropertyToCloudFormation(properties.cookies),HeaderOrder:convertCfnRuleGroupHeaderOrderPropertyToCloudFormation(properties.headerOrder),Headers:convertCfnRuleGroupHeadersPropertyToCloudFormation(properties.headers),JA3Fingerprint:convertCfnRuleGroupJA3FingerprintPropertyToCloudFormation(properties.ja3Fingerprint),JA4Fingerprint:convertCfnRuleGroupJA4FingerprintPropertyToCloudFormation(properties.ja4Fingerprint),JsonBody:convertCfnRuleGroupJsonBodyPropertyToCloudFormation(properties.jsonBody),Method:cdk().objectToCloudFormation(properties.method),QueryString:cdk().objectToCloudFormation(properties.queryString),SingleHeader:cdk().objectToCloudFormation(properties.singleHeader),SingleQueryArgument:cdk().objectToCloudFormation(properties.singleQueryArgument),UriFragment:convertCfnRuleGroupUriFragmentPropertyToCloudFormation(properties.uriFragment),UriPath:cdk().objectToCloudFormation(properties.uriPath)}):properties}function CfnRuleGroupFieldToMatchPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("allQueryArguments","AllQueryArguments",properties.AllQueryArguments!=null?cfn_parse().FromCloudFormation.getAny(properties.AllQueryArguments):void 0),ret.addPropertyResult("body","Body",properties.Body!=null?CfnRuleGroupBodyPropertyFromCloudFormation(properties.Body):void 0),ret.addPropertyResult("cookies","Cookies",properties.Cookies!=null?CfnRuleGroupCookiesPropertyFromCloudFormation(properties.Cookies):void 0),ret.addPropertyResult("headerOrder","HeaderOrder",properties.HeaderOrder!=null?CfnRuleGroupHeaderOrderPropertyFromCloudFormation(properties.HeaderOrder):void 0),ret.addPropertyResult("headers","Headers",properties.Headers!=null?CfnRuleGroupHeadersPropertyFromCloudFormation(properties.Headers):void 0),ret.addPropertyResult("ja3Fingerprint","JA3Fingerprint",properties.JA3Fingerprint!=null?CfnRuleGroupJA3FingerprintPropertyFromCloudFormation(properties.JA3Fingerprint):void 0),ret.addPropertyResult("ja4Fingerprint","JA4Fingerprint",properties.JA4Fingerprint!=null?CfnRuleGroupJA4FingerprintPropertyFromCloudFormation(properties.JA4Fingerprint):void 0),ret.addPropertyResult("jsonBody","JsonBody",properties.JsonBody!=null?CfnRuleGroupJsonBodyPropertyFromCloudFormation(properties.JsonBody):void 0),ret.addPropertyResult("method","Method",properties.Method!=null?cfn_parse().FromCloudFormation.getAny(properties.Method):void 0),ret.addPropertyResult("queryString","QueryString",properties.QueryString!=null?cfn_parse().FromCloudFormation.getAny(properties.QueryString):void 0),ret.addPropertyResult("singleHeader","SingleHeader",properties.SingleHeader!=null?cfn_parse().FromCloudFormation.getAny(properties.SingleHeader):void 0),ret.addPropertyResult("singleQueryArgument","SingleQueryArgument",properties.SingleQueryArgument!=null?cfn_parse().FromCloudFormation.getAny(properties.SingleQueryArgument):void 0),ret.addPropertyResult("uriFragment","UriFragment",properties.UriFragment!=null?CfnRuleGroupUriFragmentPropertyFromCloudFormation(properties.UriFragment):void 0),ret.addPropertyResult("uriPath","UriPath",properties.UriPath!=null?cfn_parse().FromCloudFormation.getAny(properties.UriPath):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupSizeConstraintStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("comparisonOperator",cdk().requiredValidator)(properties.comparisonOperator)),errors.collect(cdk().propertyValidator("comparisonOperator",cdk().validateString)(properties.comparisonOperator)),errors.collect(cdk().propertyValidator("fieldToMatch",cdk().requiredValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("fieldToMatch",CfnRuleGroupFieldToMatchPropertyValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("size",cdk().requiredValidator)(properties.size)),errors.collect(cdk().propertyValidator("size",cdk().validateNumber)(properties.size)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnRuleGroupTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "SizeConstraintStatementProperty"')}function convertCfnRuleGroupSizeConstraintStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupSizeConstraintStatementPropertyValidator(properties).assertSuccess(),{ComparisonOperator:cdk().stringToCloudFormation(properties.comparisonOperator),FieldToMatch:convertCfnRuleGroupFieldToMatchPropertyToCloudFormation(properties.fieldToMatch),Size:cdk().numberToCloudFormation(properties.size),TextTransformations:cdk().listMapper(convertCfnRuleGroupTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnRuleGroupSizeConstraintStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("comparisonOperator","ComparisonOperator",properties.ComparisonOperator!=null?cfn_parse().FromCloudFormation.getString(properties.ComparisonOperator):void 0),ret.addPropertyResult("fieldToMatch","FieldToMatch",properties.FieldToMatch!=null?CfnRuleGroupFieldToMatchPropertyFromCloudFormation(properties.FieldToMatch):void 0),ret.addPropertyResult("size","Size",properties.Size!=null?cfn_parse().FromCloudFormation.getNumber(properties.Size):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupAndStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("statements",cdk().requiredValidator)(properties.statements)),errors.collect(cdk().propertyValidator("statements",cdk().listValidator(CfnRuleGroupStatementPropertyValidator))(properties.statements)),errors.wrap('supplied properties not correct for "AndStatementProperty"')}function convertCfnRuleGroupAndStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupAndStatementPropertyValidator(properties).assertSuccess(),{Statements:cdk().listMapper(convertCfnRuleGroupStatementPropertyToCloudFormation)(properties.statements)}):properties}function CfnRuleGroupAndStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("statements","Statements",properties.Statements!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupStatementPropertyFromCloudFormation)(properties.Statements):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupXssMatchStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fieldToMatch",cdk().requiredValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("fieldToMatch",CfnRuleGroupFieldToMatchPropertyValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnRuleGroupTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "XssMatchStatementProperty"')}function convertCfnRuleGroupXssMatchStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupXssMatchStatementPropertyValidator(properties).assertSuccess(),{FieldToMatch:convertCfnRuleGroupFieldToMatchPropertyToCloudFormation(properties.fieldToMatch),TextTransformations:cdk().listMapper(convertCfnRuleGroupTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnRuleGroupXssMatchStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fieldToMatch","FieldToMatch",properties.FieldToMatch!=null?CfnRuleGroupFieldToMatchPropertyFromCloudFormation(properties.FieldToMatch):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupNotStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("statement",cdk().requiredValidator)(properties.statement)),errors.collect(cdk().propertyValidator("statement",CfnRuleGroupStatementPropertyValidator)(properties.statement)),errors.wrap('supplied properties not correct for "NotStatementProperty"')}function convertCfnRuleGroupNotStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupNotStatementPropertyValidator(properties).assertSuccess(),{Statement:convertCfnRuleGroupStatementPropertyToCloudFormation(properties.statement)}):properties}function CfnRuleGroupNotStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("statement","Statement",properties.Statement!=null?CfnRuleGroupStatementPropertyFromCloudFormation(properties.Statement):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupByteMatchStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fieldToMatch",cdk().requiredValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("fieldToMatch",CfnRuleGroupFieldToMatchPropertyValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("positionalConstraint",cdk().requiredValidator)(properties.positionalConstraint)),errors.collect(cdk().propertyValidator("positionalConstraint",cdk().validateString)(properties.positionalConstraint)),errors.collect(cdk().propertyValidator("searchString",cdk().validateString)(properties.searchString)),errors.collect(cdk().propertyValidator("searchStringBase64",cdk().validateString)(properties.searchStringBase64)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnRuleGroupTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "ByteMatchStatementProperty"')}function convertCfnRuleGroupByteMatchStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupByteMatchStatementPropertyValidator(properties).assertSuccess(),{FieldToMatch:convertCfnRuleGroupFieldToMatchPropertyToCloudFormation(properties.fieldToMatch),PositionalConstraint:cdk().stringToCloudFormation(properties.positionalConstraint),SearchString:cdk().stringToCloudFormation(properties.searchString),SearchStringBase64:cdk().stringToCloudFormation(properties.searchStringBase64),TextTransformations:cdk().listMapper(convertCfnRuleGroupTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnRuleGroupByteMatchStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fieldToMatch","FieldToMatch",properties.FieldToMatch!=null?CfnRuleGroupFieldToMatchPropertyFromCloudFormation(properties.FieldToMatch):void 0),ret.addPropertyResult("positionalConstraint","PositionalConstraint",properties.PositionalConstraint!=null?cfn_parse().FromCloudFormation.getString(properties.PositionalConstraint):void 0),ret.addPropertyResult("searchString","SearchString",properties.SearchString!=null?cfn_parse().FromCloudFormation.getString(properties.SearchString):void 0),ret.addPropertyResult("searchStringBase64","SearchStringBase64",properties.SearchStringBase64!=null?cfn_parse().FromCloudFormation.getString(properties.SearchStringBase64):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRateLimitCookiePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnRuleGroupTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "RateLimitCookieProperty"')}function convertCfnRuleGroupRateLimitCookiePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRateLimitCookiePropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),TextTransformations:cdk().listMapper(convertCfnRuleGroupTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnRuleGroupRateLimitCookiePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRateLimitQueryArgumentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnRuleGroupTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "RateLimitQueryArgumentProperty"')}function convertCfnRuleGroupRateLimitQueryArgumentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRateLimitQueryArgumentPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),TextTransformations:cdk().listMapper(convertCfnRuleGroupTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnRuleGroupRateLimitQueryArgumentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRateLimitHeaderPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnRuleGroupTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "RateLimitHeaderProperty"')}function convertCfnRuleGroupRateLimitHeaderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRateLimitHeaderPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),TextTransformations:cdk().listMapper(convertCfnRuleGroupTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnRuleGroupRateLimitHeaderPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRateLimitQueryStringPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnRuleGroupTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "RateLimitQueryStringProperty"')}function convertCfnRuleGroupRateLimitQueryStringPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRateLimitQueryStringPropertyValidator(properties).assertSuccess(),{TextTransformations:cdk().listMapper(convertCfnRuleGroupTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnRuleGroupRateLimitQueryStringPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRateLimitUriPathPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnRuleGroupTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "RateLimitUriPathProperty"')}function convertCfnRuleGroupRateLimitUriPathPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRateLimitUriPathPropertyValidator(properties).assertSuccess(),{TextTransformations:cdk().listMapper(convertCfnRuleGroupTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnRuleGroupRateLimitUriPathPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRateLimitLabelNamespacePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("namespace",cdk().requiredValidator)(properties.namespace)),errors.collect(cdk().propertyValidator("namespace",cdk().validateString)(properties.namespace)),errors.wrap('supplied properties not correct for "RateLimitLabelNamespaceProperty"')}function convertCfnRuleGroupRateLimitLabelNamespacePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRateLimitLabelNamespacePropertyValidator(properties).assertSuccess(),{Namespace:cdk().stringToCloudFormation(properties.namespace)}):properties}function CfnRuleGroupRateLimitLabelNamespacePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("namespace","Namespace",properties.Namespace!=null?cfn_parse().FromCloudFormation.getString(properties.Namespace):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRateLimitJA3FingerprintPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().requiredValidator)(properties.fallbackBehavior)),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().validateString)(properties.fallbackBehavior)),errors.wrap('supplied properties not correct for "RateLimitJA3FingerprintProperty"')}function convertCfnRuleGroupRateLimitJA3FingerprintPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRateLimitJA3FingerprintPropertyValidator(properties).assertSuccess(),{FallbackBehavior:cdk().stringToCloudFormation(properties.fallbackBehavior)}):properties}function CfnRuleGroupRateLimitJA3FingerprintPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fallbackBehavior","FallbackBehavior",properties.FallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.FallbackBehavior):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRateLimitJA4FingerprintPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().requiredValidator)(properties.fallbackBehavior)),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().validateString)(properties.fallbackBehavior)),errors.wrap('supplied properties not correct for "RateLimitJA4FingerprintProperty"')}function convertCfnRuleGroupRateLimitJA4FingerprintPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRateLimitJA4FingerprintPropertyValidator(properties).assertSuccess(),{FallbackBehavior:cdk().stringToCloudFormation(properties.fallbackBehavior)}):properties}function CfnRuleGroupRateLimitJA4FingerprintPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fallbackBehavior","FallbackBehavior",properties.FallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.FallbackBehavior):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRateBasedStatementCustomKeyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("asn",cdk().validateObject)(properties.asn)),errors.collect(cdk().propertyValidator("cookie",CfnRuleGroupRateLimitCookiePropertyValidator)(properties.cookie)),errors.collect(cdk().propertyValidator("forwardedIp",cdk().validateObject)(properties.forwardedIp)),errors.collect(cdk().propertyValidator("httpMethod",cdk().validateObject)(properties.httpMethod)),errors.collect(cdk().propertyValidator("header",CfnRuleGroupRateLimitHeaderPropertyValidator)(properties.header)),errors.collect(cdk().propertyValidator("ip",cdk().validateObject)(properties.ip)),errors.collect(cdk().propertyValidator("ja3Fingerprint",CfnRuleGroupRateLimitJA3FingerprintPropertyValidator)(properties.ja3Fingerprint)),errors.collect(cdk().propertyValidator("ja4Fingerprint",CfnRuleGroupRateLimitJA4FingerprintPropertyValidator)(properties.ja4Fingerprint)),errors.collect(cdk().propertyValidator("labelNamespace",CfnRuleGroupRateLimitLabelNamespacePropertyValidator)(properties.labelNamespace)),errors.collect(cdk().propertyValidator("queryArgument",CfnRuleGroupRateLimitQueryArgumentPropertyValidator)(properties.queryArgument)),errors.collect(cdk().propertyValidator("queryString",CfnRuleGroupRateLimitQueryStringPropertyValidator)(properties.queryString)),errors.collect(cdk().propertyValidator("uriPath",CfnRuleGroupRateLimitUriPathPropertyValidator)(properties.uriPath)),errors.wrap('supplied properties not correct for "RateBasedStatementCustomKeyProperty"')}function convertCfnRuleGroupRateBasedStatementCustomKeyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRateBasedStatementCustomKeyPropertyValidator(properties).assertSuccess(),{ASN:cdk().objectToCloudFormation(properties.asn),Cookie:convertCfnRuleGroupRateLimitCookiePropertyToCloudFormation(properties.cookie),ForwardedIP:cdk().objectToCloudFormation(properties.forwardedIp),HTTPMethod:cdk().objectToCloudFormation(properties.httpMethod),Header:convertCfnRuleGroupRateLimitHeaderPropertyToCloudFormation(properties.header),IP:cdk().objectToCloudFormation(properties.ip),JA3Fingerprint:convertCfnRuleGroupRateLimitJA3FingerprintPropertyToCloudFormation(properties.ja3Fingerprint),JA4Fingerprint:convertCfnRuleGroupRateLimitJA4FingerprintPropertyToCloudFormation(properties.ja4Fingerprint),LabelNamespace:convertCfnRuleGroupRateLimitLabelNamespacePropertyToCloudFormation(properties.labelNamespace),QueryArgument:convertCfnRuleGroupRateLimitQueryArgumentPropertyToCloudFormation(properties.queryArgument),QueryString:convertCfnRuleGroupRateLimitQueryStringPropertyToCloudFormation(properties.queryString),UriPath:convertCfnRuleGroupRateLimitUriPathPropertyToCloudFormation(properties.uriPath)}):properties}function CfnRuleGroupRateBasedStatementCustomKeyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("asn","ASN",properties.ASN!=null?cfn_parse().FromCloudFormation.getAny(properties.ASN):void 0),ret.addPropertyResult("cookie","Cookie",properties.Cookie!=null?CfnRuleGroupRateLimitCookiePropertyFromCloudFormation(properties.Cookie):void 0),ret.addPropertyResult("forwardedIp","ForwardedIP",properties.ForwardedIP!=null?cfn_parse().FromCloudFormation.getAny(properties.ForwardedIP):void 0),ret.addPropertyResult("header","Header",properties.Header!=null?CfnRuleGroupRateLimitHeaderPropertyFromCloudFormation(properties.Header):void 0),ret.addPropertyResult("httpMethod","HTTPMethod",properties.HTTPMethod!=null?cfn_parse().FromCloudFormation.getAny(properties.HTTPMethod):void 0),ret.addPropertyResult("ip","IP",properties.IP!=null?cfn_parse().FromCloudFormation.getAny(properties.IP):void 0),ret.addPropertyResult("ja3Fingerprint","JA3Fingerprint",properties.JA3Fingerprint!=null?CfnRuleGroupRateLimitJA3FingerprintPropertyFromCloudFormation(properties.JA3Fingerprint):void 0),ret.addPropertyResult("ja4Fingerprint","JA4Fingerprint",properties.JA4Fingerprint!=null?CfnRuleGroupRateLimitJA4FingerprintPropertyFromCloudFormation(properties.JA4Fingerprint):void 0),ret.addPropertyResult("labelNamespace","LabelNamespace",properties.LabelNamespace!=null?CfnRuleGroupRateLimitLabelNamespacePropertyFromCloudFormation(properties.LabelNamespace):void 0),ret.addPropertyResult("queryArgument","QueryArgument",properties.QueryArgument!=null?CfnRuleGroupRateLimitQueryArgumentPropertyFromCloudFormation(properties.QueryArgument):void 0),ret.addPropertyResult("queryString","QueryString",properties.QueryString!=null?CfnRuleGroupRateLimitQueryStringPropertyFromCloudFormation(properties.QueryString):void 0),ret.addPropertyResult("uriPath","UriPath",properties.UriPath!=null?CfnRuleGroupRateLimitUriPathPropertyFromCloudFormation(properties.UriPath):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupForwardedIPConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().requiredValidator)(properties.fallbackBehavior)),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().validateString)(properties.fallbackBehavior)),errors.collect(cdk().propertyValidator("headerName",cdk().requiredValidator)(properties.headerName)),errors.collect(cdk().propertyValidator("headerName",cdk().validateString)(properties.headerName)),errors.wrap('supplied properties not correct for "ForwardedIPConfigurationProperty"')}function convertCfnRuleGroupForwardedIPConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupForwardedIPConfigurationPropertyValidator(properties).assertSuccess(),{FallbackBehavior:cdk().stringToCloudFormation(properties.fallbackBehavior),HeaderName:cdk().stringToCloudFormation(properties.headerName)}):properties}function CfnRuleGroupForwardedIPConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fallbackBehavior","FallbackBehavior",properties.FallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.FallbackBehavior):void 0),ret.addPropertyResult("headerName","HeaderName",properties.HeaderName!=null?cfn_parse().FromCloudFormation.getString(properties.HeaderName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRateBasedStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("aggregateKeyType",cdk().requiredValidator)(properties.aggregateKeyType)),errors.collect(cdk().propertyValidator("aggregateKeyType",cdk().validateString)(properties.aggregateKeyType)),errors.collect(cdk().propertyValidator("customKeys",cdk().listValidator(CfnRuleGroupRateBasedStatementCustomKeyPropertyValidator))(properties.customKeys)),errors.collect(cdk().propertyValidator("evaluationWindowSec",cdk().validateNumber)(properties.evaluationWindowSec)),errors.collect(cdk().propertyValidator("forwardedIpConfig",CfnRuleGroupForwardedIPConfigurationPropertyValidator)(properties.forwardedIpConfig)),errors.collect(cdk().propertyValidator("limit",cdk().requiredValidator)(properties.limit)),errors.collect(cdk().propertyValidator("limit",cdk().validateNumber)(properties.limit)),errors.collect(cdk().propertyValidator("scopeDownStatement",CfnRuleGroupStatementPropertyValidator)(properties.scopeDownStatement)),errors.wrap('supplied properties not correct for "RateBasedStatementProperty"')}function convertCfnRuleGroupRateBasedStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRateBasedStatementPropertyValidator(properties).assertSuccess(),{AggregateKeyType:cdk().stringToCloudFormation(properties.aggregateKeyType),CustomKeys:cdk().listMapper(convertCfnRuleGroupRateBasedStatementCustomKeyPropertyToCloudFormation)(properties.customKeys),EvaluationWindowSec:cdk().numberToCloudFormation(properties.evaluationWindowSec),ForwardedIPConfig:convertCfnRuleGroupForwardedIPConfigurationPropertyToCloudFormation(properties.forwardedIpConfig),Limit:cdk().numberToCloudFormation(properties.limit),ScopeDownStatement:convertCfnRuleGroupStatementPropertyToCloudFormation(properties.scopeDownStatement)}):properties}function CfnRuleGroupRateBasedStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("aggregateKeyType","AggregateKeyType",properties.AggregateKeyType!=null?cfn_parse().FromCloudFormation.getString(properties.AggregateKeyType):void 0),ret.addPropertyResult("customKeys","CustomKeys",properties.CustomKeys!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupRateBasedStatementCustomKeyPropertyFromCloudFormation)(properties.CustomKeys):void 0),ret.addPropertyResult("evaluationWindowSec","EvaluationWindowSec",properties.EvaluationWindowSec!=null?cfn_parse().FromCloudFormation.getNumber(properties.EvaluationWindowSec):void 0),ret.addPropertyResult("forwardedIpConfig","ForwardedIPConfig",properties.ForwardedIPConfig!=null?CfnRuleGroupForwardedIPConfigurationPropertyFromCloudFormation(properties.ForwardedIPConfig):void 0),ret.addPropertyResult("limit","Limit",properties.Limit!=null?cfn_parse().FromCloudFormation.getNumber(properties.Limit):void 0),ret.addPropertyResult("scopeDownStatement","ScopeDownStatement",properties.ScopeDownStatement!=null?CfnRuleGroupStatementPropertyFromCloudFormation(properties.ScopeDownStatement):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupGeoMatchStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("countryCodes",cdk().listValidator(cdk().validateString))(properties.countryCodes)),errors.collect(cdk().propertyValidator("forwardedIpConfig",CfnRuleGroupForwardedIPConfigurationPropertyValidator)(properties.forwardedIpConfig)),errors.wrap('supplied properties not correct for "GeoMatchStatementProperty"')}function convertCfnRuleGroupGeoMatchStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupGeoMatchStatementPropertyValidator(properties).assertSuccess(),{CountryCodes:cdk().listMapper(cdk().stringToCloudFormation)(properties.countryCodes),ForwardedIPConfig:convertCfnRuleGroupForwardedIPConfigurationPropertyToCloudFormation(properties.forwardedIpConfig)}):properties}function CfnRuleGroupGeoMatchStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("countryCodes","CountryCodes",properties.CountryCodes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CountryCodes):void 0),ret.addPropertyResult("forwardedIpConfig","ForwardedIPConfig",properties.ForwardedIPConfig!=null?CfnRuleGroupForwardedIPConfigurationPropertyFromCloudFormation(properties.ForwardedIPConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupLabelMatchStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("key",cdk().requiredValidator)(properties.key)),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("scope",cdk().requiredValidator)(properties.scope)),errors.collect(cdk().propertyValidator("scope",cdk().validateString)(properties.scope)),errors.wrap('supplied properties not correct for "LabelMatchStatementProperty"')}function convertCfnRuleGroupLabelMatchStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupLabelMatchStatementPropertyValidator(properties).assertSuccess(),{Key:cdk().stringToCloudFormation(properties.key),Scope:cdk().stringToCloudFormation(properties.scope)}):properties}function CfnRuleGroupLabelMatchStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("scope","Scope",properties.Scope!=null?cfn_parse().FromCloudFormation.getString(properties.Scope):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRegexMatchStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fieldToMatch",cdk().requiredValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("fieldToMatch",CfnRuleGroupFieldToMatchPropertyValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("regexString",cdk().requiredValidator)(properties.regexString)),errors.collect(cdk().propertyValidator("regexString",cdk().validateString)(properties.regexString)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnRuleGroupTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "RegexMatchStatementProperty"')}function convertCfnRuleGroupRegexMatchStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRegexMatchStatementPropertyValidator(properties).assertSuccess(),{FieldToMatch:convertCfnRuleGroupFieldToMatchPropertyToCloudFormation(properties.fieldToMatch),RegexString:cdk().stringToCloudFormation(properties.regexString),TextTransformations:cdk().listMapper(convertCfnRuleGroupTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnRuleGroupRegexMatchStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fieldToMatch","FieldToMatch",properties.FieldToMatch!=null?CfnRuleGroupFieldToMatchPropertyFromCloudFormation(properties.FieldToMatch):void 0),ret.addPropertyResult("regexString","RegexString",properties.RegexString!=null?cfn_parse().FromCloudFormation.getString(properties.RegexString):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupSqliMatchStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fieldToMatch",cdk().requiredValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("fieldToMatch",CfnRuleGroupFieldToMatchPropertyValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("sensitivityLevel",cdk().validateString)(properties.sensitivityLevel)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnRuleGroupTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "SqliMatchStatementProperty"')}function convertCfnRuleGroupSqliMatchStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupSqliMatchStatementPropertyValidator(properties).assertSuccess(),{FieldToMatch:convertCfnRuleGroupFieldToMatchPropertyToCloudFormation(properties.fieldToMatch),SensitivityLevel:cdk().stringToCloudFormation(properties.sensitivityLevel),TextTransformations:cdk().listMapper(convertCfnRuleGroupTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnRuleGroupSqliMatchStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fieldToMatch","FieldToMatch",properties.FieldToMatch!=null?CfnRuleGroupFieldToMatchPropertyFromCloudFormation(properties.FieldToMatch):void 0),ret.addPropertyResult("sensitivityLevel","SensitivityLevel",properties.SensitivityLevel!=null?cfn_parse().FromCloudFormation.getString(properties.SensitivityLevel):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRegexPatternSetReferenceStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().requiredValidator)(properties.arn)),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("fieldToMatch",cdk().requiredValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("fieldToMatch",CfnRuleGroupFieldToMatchPropertyValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnRuleGroupTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "RegexPatternSetReferenceStatementProperty"')}function convertCfnRuleGroupRegexPatternSetReferenceStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRegexPatternSetReferenceStatementPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),FieldToMatch:convertCfnRuleGroupFieldToMatchPropertyToCloudFormation(properties.fieldToMatch),TextTransformations:cdk().listMapper(convertCfnRuleGroupTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnRuleGroupRegexPatternSetReferenceStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("fieldToMatch","FieldToMatch",properties.FieldToMatch!=null?CfnRuleGroupFieldToMatchPropertyFromCloudFormation(properties.FieldToMatch):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupOrStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("statements",cdk().requiredValidator)(properties.statements)),errors.collect(cdk().propertyValidator("statements",cdk().listValidator(CfnRuleGroupStatementPropertyValidator))(properties.statements)),errors.wrap('supplied properties not correct for "OrStatementProperty"')}function convertCfnRuleGroupOrStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupOrStatementPropertyValidator(properties).assertSuccess(),{Statements:cdk().listMapper(convertCfnRuleGroupStatementPropertyToCloudFormation)(properties.statements)}):properties}function CfnRuleGroupOrStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("statements","Statements",properties.Statements!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupStatementPropertyFromCloudFormation)(properties.Statements):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupIPSetForwardedIPConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().requiredValidator)(properties.fallbackBehavior)),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().validateString)(properties.fallbackBehavior)),errors.collect(cdk().propertyValidator("headerName",cdk().requiredValidator)(properties.headerName)),errors.collect(cdk().propertyValidator("headerName",cdk().validateString)(properties.headerName)),errors.collect(cdk().propertyValidator("position",cdk().requiredValidator)(properties.position)),errors.collect(cdk().propertyValidator("position",cdk().validateString)(properties.position)),errors.wrap('supplied properties not correct for "IPSetForwardedIPConfigurationProperty"')}function convertCfnRuleGroupIPSetForwardedIPConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupIPSetForwardedIPConfigurationPropertyValidator(properties).assertSuccess(),{FallbackBehavior:cdk().stringToCloudFormation(properties.fallbackBehavior),HeaderName:cdk().stringToCloudFormation(properties.headerName),Position:cdk().stringToCloudFormation(properties.position)}):properties}function CfnRuleGroupIPSetForwardedIPConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fallbackBehavior","FallbackBehavior",properties.FallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.FallbackBehavior):void 0),ret.addPropertyResult("headerName","HeaderName",properties.HeaderName!=null?cfn_parse().FromCloudFormation.getString(properties.HeaderName):void 0),ret.addPropertyResult("position","Position",properties.Position!=null?cfn_parse().FromCloudFormation.getString(properties.Position):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupIPSetReferenceStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().requiredValidator)(properties.arn)),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("ipSetForwardedIpConfig",CfnRuleGroupIPSetForwardedIPConfigurationPropertyValidator)(properties.ipSetForwardedIpConfig)),errors.wrap('supplied properties not correct for "IPSetReferenceStatementProperty"')}function convertCfnRuleGroupIPSetReferenceStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupIPSetReferenceStatementPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),IPSetForwardedIPConfig:convertCfnRuleGroupIPSetForwardedIPConfigurationPropertyToCloudFormation(properties.ipSetForwardedIpConfig)}):properties}function CfnRuleGroupIPSetReferenceStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("ipSetForwardedIpConfig","IPSetForwardedIPConfig",properties.IPSetForwardedIPConfig!=null?CfnRuleGroupIPSetForwardedIPConfigurationPropertyFromCloudFormation(properties.IPSetForwardedIPConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupAsnMatchStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("asnList",cdk().listValidator(cdk().validateNumber))(properties.asnList)),errors.collect(cdk().propertyValidator("forwardedIpConfig",CfnRuleGroupForwardedIPConfigurationPropertyValidator)(properties.forwardedIpConfig)),errors.wrap('supplied properties not correct for "AsnMatchStatementProperty"')}function convertCfnRuleGroupAsnMatchStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupAsnMatchStatementPropertyValidator(properties).assertSuccess(),{AsnList:cdk().listMapper(cdk().numberToCloudFormation)(properties.asnList),ForwardedIPConfig:convertCfnRuleGroupForwardedIPConfigurationPropertyToCloudFormation(properties.forwardedIpConfig)}):properties}function CfnRuleGroupAsnMatchStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("asnList","AsnList",properties.AsnList!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getNumber)(properties.AsnList):void 0),ret.addPropertyResult("forwardedIpConfig","ForwardedIPConfig",properties.ForwardedIPConfig!=null?CfnRuleGroupForwardedIPConfigurationPropertyFromCloudFormation(properties.ForwardedIPConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("andStatement",CfnRuleGroupAndStatementPropertyValidator)(properties.andStatement)),errors.collect(cdk().propertyValidator("asnMatchStatement",CfnRuleGroupAsnMatchStatementPropertyValidator)(properties.asnMatchStatement)),errors.collect(cdk().propertyValidator("byteMatchStatement",CfnRuleGroupByteMatchStatementPropertyValidator)(properties.byteMatchStatement)),errors.collect(cdk().propertyValidator("geoMatchStatement",CfnRuleGroupGeoMatchStatementPropertyValidator)(properties.geoMatchStatement)),errors.collect(cdk().propertyValidator("ipSetReferenceStatement",CfnRuleGroupIPSetReferenceStatementPropertyValidator)(properties.ipSetReferenceStatement)),errors.collect(cdk().propertyValidator("labelMatchStatement",CfnRuleGroupLabelMatchStatementPropertyValidator)(properties.labelMatchStatement)),errors.collect(cdk().propertyValidator("notStatement",CfnRuleGroupNotStatementPropertyValidator)(properties.notStatement)),errors.collect(cdk().propertyValidator("orStatement",CfnRuleGroupOrStatementPropertyValidator)(properties.orStatement)),errors.collect(cdk().propertyValidator("rateBasedStatement",CfnRuleGroupRateBasedStatementPropertyValidator)(properties.rateBasedStatement)),errors.collect(cdk().propertyValidator("regexMatchStatement",CfnRuleGroupRegexMatchStatementPropertyValidator)(properties.regexMatchStatement)),errors.collect(cdk().propertyValidator("regexPatternSetReferenceStatement",CfnRuleGroupRegexPatternSetReferenceStatementPropertyValidator)(properties.regexPatternSetReferenceStatement)),errors.collect(cdk().propertyValidator("sizeConstraintStatement",CfnRuleGroupSizeConstraintStatementPropertyValidator)(properties.sizeConstraintStatement)),errors.collect(cdk().propertyValidator("sqliMatchStatement",CfnRuleGroupSqliMatchStatementPropertyValidator)(properties.sqliMatchStatement)),errors.collect(cdk().propertyValidator("xssMatchStatement",CfnRuleGroupXssMatchStatementPropertyValidator)(properties.xssMatchStatement)),errors.wrap('supplied properties not correct for "StatementProperty"')}function convertCfnRuleGroupStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupStatementPropertyValidator(properties).assertSuccess(),{AndStatement:convertCfnRuleGroupAndStatementPropertyToCloudFormation(properties.andStatement),AsnMatchStatement:convertCfnRuleGroupAsnMatchStatementPropertyToCloudFormation(properties.asnMatchStatement),ByteMatchStatement:convertCfnRuleGroupByteMatchStatementPropertyToCloudFormation(properties.byteMatchStatement),GeoMatchStatement:convertCfnRuleGroupGeoMatchStatementPropertyToCloudFormation(properties.geoMatchStatement),IPSetReferenceStatement:convertCfnRuleGroupIPSetReferenceStatementPropertyToCloudFormation(properties.ipSetReferenceStatement),LabelMatchStatement:convertCfnRuleGroupLabelMatchStatementPropertyToCloudFormation(properties.labelMatchStatement),NotStatement:convertCfnRuleGroupNotStatementPropertyToCloudFormation(properties.notStatement),OrStatement:convertCfnRuleGroupOrStatementPropertyToCloudFormation(properties.orStatement),RateBasedStatement:convertCfnRuleGroupRateBasedStatementPropertyToCloudFormation(properties.rateBasedStatement),RegexMatchStatement:convertCfnRuleGroupRegexMatchStatementPropertyToCloudFormation(properties.regexMatchStatement),RegexPatternSetReferenceStatement:convertCfnRuleGroupRegexPatternSetReferenceStatementPropertyToCloudFormation(properties.regexPatternSetReferenceStatement),SizeConstraintStatement:convertCfnRuleGroupSizeConstraintStatementPropertyToCloudFormation(properties.sizeConstraintStatement),SqliMatchStatement:convertCfnRuleGroupSqliMatchStatementPropertyToCloudFormation(properties.sqliMatchStatement),XssMatchStatement:convertCfnRuleGroupXssMatchStatementPropertyToCloudFormation(properties.xssMatchStatement)}):properties}function CfnRuleGroupStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("andStatement","AndStatement",properties.AndStatement!=null?CfnRuleGroupAndStatementPropertyFromCloudFormation(properties.AndStatement):void 0),ret.addPropertyResult("asnMatchStatement","AsnMatchStatement",properties.AsnMatchStatement!=null?CfnRuleGroupAsnMatchStatementPropertyFromCloudFormation(properties.AsnMatchStatement):void 0),ret.addPropertyResult("byteMatchStatement","ByteMatchStatement",properties.ByteMatchStatement!=null?CfnRuleGroupByteMatchStatementPropertyFromCloudFormation(properties.ByteMatchStatement):void 0),ret.addPropertyResult("geoMatchStatement","GeoMatchStatement",properties.GeoMatchStatement!=null?CfnRuleGroupGeoMatchStatementPropertyFromCloudFormation(properties.GeoMatchStatement):void 0),ret.addPropertyResult("ipSetReferenceStatement","IPSetReferenceStatement",properties.IPSetReferenceStatement!=null?CfnRuleGroupIPSetReferenceStatementPropertyFromCloudFormation(properties.IPSetReferenceStatement):void 0),ret.addPropertyResult("labelMatchStatement","LabelMatchStatement",properties.LabelMatchStatement!=null?CfnRuleGroupLabelMatchStatementPropertyFromCloudFormation(properties.LabelMatchStatement):void 0),ret.addPropertyResult("notStatement","NotStatement",properties.NotStatement!=null?CfnRuleGroupNotStatementPropertyFromCloudFormation(properties.NotStatement):void 0),ret.addPropertyResult("orStatement","OrStatement",properties.OrStatement!=null?CfnRuleGroupOrStatementPropertyFromCloudFormation(properties.OrStatement):void 0),ret.addPropertyResult("rateBasedStatement","RateBasedStatement",properties.RateBasedStatement!=null?CfnRuleGroupRateBasedStatementPropertyFromCloudFormation(properties.RateBasedStatement):void 0),ret.addPropertyResult("regexMatchStatement","RegexMatchStatement",properties.RegexMatchStatement!=null?CfnRuleGroupRegexMatchStatementPropertyFromCloudFormation(properties.RegexMatchStatement):void 0),ret.addPropertyResult("regexPatternSetReferenceStatement","RegexPatternSetReferenceStatement",properties.RegexPatternSetReferenceStatement!=null?CfnRuleGroupRegexPatternSetReferenceStatementPropertyFromCloudFormation(properties.RegexPatternSetReferenceStatement):void 0),ret.addPropertyResult("sizeConstraintStatement","SizeConstraintStatement",properties.SizeConstraintStatement!=null?CfnRuleGroupSizeConstraintStatementPropertyFromCloudFormation(properties.SizeConstraintStatement):void 0),ret.addPropertyResult("sqliMatchStatement","SqliMatchStatement",properties.SqliMatchStatement!=null?CfnRuleGroupSqliMatchStatementPropertyFromCloudFormation(properties.SqliMatchStatement):void 0),ret.addPropertyResult("xssMatchStatement","XssMatchStatement",properties.XssMatchStatement!=null?CfnRuleGroupXssMatchStatementPropertyFromCloudFormation(properties.XssMatchStatement):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupImmunityTimePropertyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("immunityTime",cdk().requiredValidator)(properties.immunityTime)),errors.collect(cdk().propertyValidator("immunityTime",cdk().validateNumber)(properties.immunityTime)),errors.wrap('supplied properties not correct for "ImmunityTimePropertyProperty"')}function convertCfnRuleGroupImmunityTimePropertyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupImmunityTimePropertyPropertyValidator(properties).assertSuccess(),{ImmunityTime:cdk().numberToCloudFormation(properties.immunityTime)}):properties}function CfnRuleGroupImmunityTimePropertyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("immunityTime","ImmunityTime",properties.ImmunityTime!=null?cfn_parse().FromCloudFormation.getNumber(properties.ImmunityTime):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupChallengeConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("immunityTimeProperty",CfnRuleGroupImmunityTimePropertyPropertyValidator)(properties.immunityTimeProperty)),errors.wrap('supplied properties not correct for "ChallengeConfigProperty"')}function convertCfnRuleGroupChallengeConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupChallengeConfigPropertyValidator(properties).assertSuccess(),{ImmunityTimeProperty:convertCfnRuleGroupImmunityTimePropertyPropertyToCloudFormation(properties.immunityTimeProperty)}):properties}function CfnRuleGroupChallengeConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("immunityTimeProperty","ImmunityTimeProperty",properties.ImmunityTimeProperty!=null?CfnRuleGroupImmunityTimePropertyPropertyFromCloudFormation(properties.ImmunityTimeProperty):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupLabelPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "LabelProperty"')}function convertCfnRuleGroupLabelPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupLabelPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnRuleGroupLabelPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupVisibilityConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cloudWatchMetricsEnabled",cdk().requiredValidator)(properties.cloudWatchMetricsEnabled)),errors.collect(cdk().propertyValidator("cloudWatchMetricsEnabled",cdk().validateBoolean)(properties.cloudWatchMetricsEnabled)),errors.collect(cdk().propertyValidator("metricName",cdk().requiredValidator)(properties.metricName)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("sampledRequestsEnabled",cdk().requiredValidator)(properties.sampledRequestsEnabled)),errors.collect(cdk().propertyValidator("sampledRequestsEnabled",cdk().validateBoolean)(properties.sampledRequestsEnabled)),errors.wrap('supplied properties not correct for "VisibilityConfigProperty"')}function convertCfnRuleGroupVisibilityConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupVisibilityConfigPropertyValidator(properties).assertSuccess(),{CloudWatchMetricsEnabled:cdk().booleanToCloudFormation(properties.cloudWatchMetricsEnabled),MetricName:cdk().stringToCloudFormation(properties.metricName),SampledRequestsEnabled:cdk().booleanToCloudFormation(properties.sampledRequestsEnabled)}):properties}function CfnRuleGroupVisibilityConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cloudWatchMetricsEnabled","CloudWatchMetricsEnabled",properties.CloudWatchMetricsEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.CloudWatchMetricsEnabled):void 0),ret.addPropertyResult("metricName","MetricName",properties.MetricName!=null?cfn_parse().FromCloudFormation.getString(properties.MetricName):void 0),ret.addPropertyResult("sampledRequestsEnabled","SampledRequestsEnabled",properties.SampledRequestsEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SampledRequestsEnabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupCaptchaConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("immunityTimeProperty",CfnRuleGroupImmunityTimePropertyPropertyValidator)(properties.immunityTimeProperty)),errors.wrap('supplied properties not correct for "CaptchaConfigProperty"')}function convertCfnRuleGroupCaptchaConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupCaptchaConfigPropertyValidator(properties).assertSuccess(),{ImmunityTimeProperty:convertCfnRuleGroupImmunityTimePropertyPropertyToCloudFormation(properties.immunityTimeProperty)}):properties}function CfnRuleGroupCaptchaConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("immunityTimeProperty","ImmunityTimeProperty",properties.ImmunityTimeProperty!=null?CfnRuleGroupImmunityTimePropertyPropertyFromCloudFormation(properties.ImmunityTimeProperty):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("action",CfnRuleGroupRuleActionPropertyValidator)(properties.action)),errors.collect(cdk().propertyValidator("captchaConfig",CfnRuleGroupCaptchaConfigPropertyValidator)(properties.captchaConfig)),errors.collect(cdk().propertyValidator("challengeConfig",CfnRuleGroupChallengeConfigPropertyValidator)(properties.challengeConfig)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("priority",cdk().requiredValidator)(properties.priority)),errors.collect(cdk().propertyValidator("priority",cdk().validateNumber)(properties.priority)),errors.collect(cdk().propertyValidator("ruleLabels",cdk().listValidator(CfnRuleGroupLabelPropertyValidator))(properties.ruleLabels)),errors.collect(cdk().propertyValidator("statement",cdk().requiredValidator)(properties.statement)),errors.collect(cdk().propertyValidator("statement",CfnRuleGroupStatementPropertyValidator)(properties.statement)),errors.collect(cdk().propertyValidator("visibilityConfig",cdk().requiredValidator)(properties.visibilityConfig)),errors.collect(cdk().propertyValidator("visibilityConfig",CfnRuleGroupVisibilityConfigPropertyValidator)(properties.visibilityConfig)),errors.wrap('supplied properties not correct for "RuleProperty"')}function convertCfnRuleGroupRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRulePropertyValidator(properties).assertSuccess(),{Action:convertCfnRuleGroupRuleActionPropertyToCloudFormation(properties.action),CaptchaConfig:convertCfnRuleGroupCaptchaConfigPropertyToCloudFormation(properties.captchaConfig),ChallengeConfig:convertCfnRuleGroupChallengeConfigPropertyToCloudFormation(properties.challengeConfig),Name:cdk().stringToCloudFormation(properties.name),Priority:cdk().numberToCloudFormation(properties.priority),RuleLabels:cdk().listMapper(convertCfnRuleGroupLabelPropertyToCloudFormation)(properties.ruleLabels),Statement:convertCfnRuleGroupStatementPropertyToCloudFormation(properties.statement),VisibilityConfig:convertCfnRuleGroupVisibilityConfigPropertyToCloudFormation(properties.visibilityConfig)}):properties}function CfnRuleGroupRulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",properties.Action!=null?CfnRuleGroupRuleActionPropertyFromCloudFormation(properties.Action):void 0),ret.addPropertyResult("captchaConfig","CaptchaConfig",properties.CaptchaConfig!=null?CfnRuleGroupCaptchaConfigPropertyFromCloudFormation(properties.CaptchaConfig):void 0),ret.addPropertyResult("challengeConfig","ChallengeConfig",properties.ChallengeConfig!=null?CfnRuleGroupChallengeConfigPropertyFromCloudFormation(properties.ChallengeConfig):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse().FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("ruleLabels","RuleLabels",properties.RuleLabels!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupLabelPropertyFromCloudFormation)(properties.RuleLabels):void 0),ret.addPropertyResult("statement","Statement",properties.Statement!=null?CfnRuleGroupStatementPropertyFromCloudFormation(properties.Statement):void 0),ret.addPropertyResult("visibilityConfig","VisibilityConfig",properties.VisibilityConfig!=null?CfnRuleGroupVisibilityConfigPropertyFromCloudFormation(properties.VisibilityConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("availableLabels",cdk().listValidator(CfnRuleGroupLabelSummaryPropertyValidator))(properties.availableLabels)),errors.collect(cdk().propertyValidator("capacity",cdk().requiredValidator)(properties.capacity)),errors.collect(cdk().propertyValidator("capacity",cdk().validateNumber)(properties.capacity)),errors.collect(cdk().propertyValidator("consumedLabels",cdk().listValidator(CfnRuleGroupLabelSummaryPropertyValidator))(properties.consumedLabels)),errors.collect(cdk().propertyValidator("customResponseBodies",cdk().hashValidator(CfnRuleGroupCustomResponseBodyPropertyValidator))(properties.customResponseBodies)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("rules",cdk().listValidator(CfnRuleGroupRulePropertyValidator))(properties.rules)),errors.collect(cdk().propertyValidator("scope",cdk().requiredValidator)(properties.scope)),errors.collect(cdk().propertyValidator("scope",cdk().validateString)(properties.scope)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("visibilityConfig",cdk().requiredValidator)(properties.visibilityConfig)),errors.collect(cdk().propertyValidator("visibilityConfig",CfnRuleGroupVisibilityConfigPropertyValidator)(properties.visibilityConfig)),errors.wrap('supplied properties not correct for "CfnRuleGroupProps"')}function convertCfnRuleGroupPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupPropsValidator(properties).assertSuccess(),{AvailableLabels:cdk().listMapper(convertCfnRuleGroupLabelSummaryPropertyToCloudFormation)(properties.availableLabels),Capacity:cdk().numberToCloudFormation(properties.capacity),ConsumedLabels:cdk().listMapper(convertCfnRuleGroupLabelSummaryPropertyToCloudFormation)(properties.consumedLabels),CustomResponseBodies:cdk().hashMapper(convertCfnRuleGroupCustomResponseBodyPropertyToCloudFormation)(properties.customResponseBodies),Description:cdk().stringToCloudFormation(properties.description),Name:cdk().stringToCloudFormation(properties.name),Rules:cdk().listMapper(convertCfnRuleGroupRulePropertyToCloudFormation)(properties.rules),Scope:cdk().stringToCloudFormation(properties.scope),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VisibilityConfig:convertCfnRuleGroupVisibilityConfigPropertyToCloudFormation(properties.visibilityConfig)}):properties}function CfnRuleGroupPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("availableLabels","AvailableLabels",properties.AvailableLabels!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupLabelSummaryPropertyFromCloudFormation)(properties.AvailableLabels):void 0),ret.addPropertyResult("capacity","Capacity",properties.Capacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.Capacity):void 0),ret.addPropertyResult("consumedLabels","ConsumedLabels",properties.ConsumedLabels!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupLabelSummaryPropertyFromCloudFormation)(properties.ConsumedLabels):void 0),ret.addPropertyResult("customResponseBodies","CustomResponseBodies",properties.CustomResponseBodies!=null?cfn_parse().FromCloudFormation.getMap(CfnRuleGroupCustomResponseBodyPropertyFromCloudFormation)(properties.CustomResponseBodies):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("rules","Rules",properties.Rules!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupRulePropertyFromCloudFormation)(properties.Rules):void 0),ret.addPropertyResult("scope","Scope",properties.Scope!=null?cfn_parse().FromCloudFormation.getString(properties.Scope):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("visibilityConfig","VisibilityConfig",properties.VisibilityConfig!=null?CfnRuleGroupVisibilityConfigPropertyFromCloudFormation(properties.VisibilityConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupCustomHTTPHeaderPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "CustomHTTPHeaderProperty"')}function convertCfnRuleGroupCustomHTTPHeaderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupCustomHTTPHeaderPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnRuleGroupCustomHTTPHeaderPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupCustomRequestHandlingPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("insertHeaders",cdk().requiredValidator)(properties.insertHeaders)),errors.collect(cdk().propertyValidator("insertHeaders",cdk().listValidator(CfnRuleGroupCustomHTTPHeaderPropertyValidator))(properties.insertHeaders)),errors.wrap('supplied properties not correct for "CustomRequestHandlingProperty"')}function convertCfnRuleGroupCustomRequestHandlingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupCustomRequestHandlingPropertyValidator(properties).assertSuccess(),{InsertHeaders:cdk().listMapper(convertCfnRuleGroupCustomHTTPHeaderPropertyToCloudFormation)(properties.insertHeaders)}):properties}function CfnRuleGroupCustomRequestHandlingPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("insertHeaders","InsertHeaders",properties.InsertHeaders!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupCustomHTTPHeaderPropertyFromCloudFormation)(properties.InsertHeaders):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupCustomResponsePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("customResponseBodyKey",cdk().validateString)(properties.customResponseBodyKey)),errors.collect(cdk().propertyValidator("responseCode",cdk().requiredValidator)(properties.responseCode)),errors.collect(cdk().propertyValidator("responseCode",cdk().validateNumber)(properties.responseCode)),errors.collect(cdk().propertyValidator("responseHeaders",cdk().listValidator(CfnRuleGroupCustomHTTPHeaderPropertyValidator))(properties.responseHeaders)),errors.wrap('supplied properties not correct for "CustomResponseProperty"')}function convertCfnRuleGroupCustomResponsePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupCustomResponsePropertyValidator(properties).assertSuccess(),{CustomResponseBodyKey:cdk().stringToCloudFormation(properties.customResponseBodyKey),ResponseCode:cdk().numberToCloudFormation(properties.responseCode),ResponseHeaders:cdk().listMapper(convertCfnRuleGroupCustomHTTPHeaderPropertyToCloudFormation)(properties.responseHeaders)}):properties}function CfnRuleGroupCustomResponsePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("customResponseBodyKey","CustomResponseBodyKey",properties.CustomResponseBodyKey!=null?cfn_parse().FromCloudFormation.getString(properties.CustomResponseBodyKey):void 0),ret.addPropertyResult("responseCode","ResponseCode",properties.ResponseCode!=null?cfn_parse().FromCloudFormation.getNumber(properties.ResponseCode):void 0),ret.addPropertyResult("responseHeaders","ResponseHeaders",properties.ResponseHeaders!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupCustomHTTPHeaderPropertyFromCloudFormation)(properties.ResponseHeaders):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupSingleHeaderPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "SingleHeaderProperty"')}function convertCfnRuleGroupSingleHeaderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupSingleHeaderPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnRuleGroupSingleHeaderPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupSingleQueryArgumentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "SingleQueryArgumentProperty"')}function convertCfnRuleGroupSingleQueryArgumentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupSingleQueryArgumentPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnRuleGroupSingleQueryArgumentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupAllowPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("customRequestHandling",CfnRuleGroupCustomRequestHandlingPropertyValidator)(properties.customRequestHandling)),errors.wrap('supplied properties not correct for "AllowProperty"')}function convertCfnRuleGroupAllowPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupAllowPropertyValidator(properties).assertSuccess(),{CustomRequestHandling:convertCfnRuleGroupCustomRequestHandlingPropertyToCloudFormation(properties.customRequestHandling)}):properties}function CfnRuleGroupAllowPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("customRequestHandling","CustomRequestHandling",properties.CustomRequestHandling!=null?CfnRuleGroupCustomRequestHandlingPropertyFromCloudFormation(properties.CustomRequestHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupBlockPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("customResponse",CfnRuleGroupCustomResponsePropertyValidator)(properties.customResponse)),errors.wrap('supplied properties not correct for "BlockProperty"')}function convertCfnRuleGroupBlockPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupBlockPropertyValidator(properties).assertSuccess(),{CustomResponse:convertCfnRuleGroupCustomResponsePropertyToCloudFormation(properties.customResponse)}):properties}function CfnRuleGroupBlockPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("customResponse","CustomResponse",properties.CustomResponse!=null?CfnRuleGroupCustomResponsePropertyFromCloudFormation(properties.CustomResponse):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupCaptchaPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("customRequestHandling",CfnRuleGroupCustomRequestHandlingPropertyValidator)(properties.customRequestHandling)),errors.wrap('supplied properties not correct for "CaptchaProperty"')}function convertCfnRuleGroupCaptchaPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupCaptchaPropertyValidator(properties).assertSuccess(),{CustomRequestHandling:convertCfnRuleGroupCustomRequestHandlingPropertyToCloudFormation(properties.customRequestHandling)}):properties}function CfnRuleGroupCaptchaPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("customRequestHandling","CustomRequestHandling",properties.CustomRequestHandling!=null?CfnRuleGroupCustomRequestHandlingPropertyFromCloudFormation(properties.CustomRequestHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupChallengePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("customRequestHandling",CfnRuleGroupCustomRequestHandlingPropertyValidator)(properties.customRequestHandling)),errors.wrap('supplied properties not correct for "ChallengeProperty"')}function convertCfnRuleGroupChallengePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupChallengePropertyValidator(properties).assertSuccess(),{CustomRequestHandling:convertCfnRuleGroupCustomRequestHandlingPropertyToCloudFormation(properties.customRequestHandling)}):properties}function CfnRuleGroupChallengePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("customRequestHandling","CustomRequestHandling",properties.CustomRequestHandling!=null?CfnRuleGroupCustomRequestHandlingPropertyFromCloudFormation(properties.CustomRequestHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupCountPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("customRequestHandling",CfnRuleGroupCustomRequestHandlingPropertyValidator)(properties.customRequestHandling)),errors.wrap('supplied properties not correct for "CountProperty"')}function convertCfnRuleGroupCountPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupCountPropertyValidator(properties).assertSuccess(),{CustomRequestHandling:convertCfnRuleGroupCustomRequestHandlingPropertyToCloudFormation(properties.customRequestHandling)}):properties}function CfnRuleGroupCountPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("customRequestHandling","CustomRequestHandling",properties.CustomRequestHandling!=null?CfnRuleGroupCustomRequestHandlingPropertyFromCloudFormation(properties.CustomRequestHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnWebACL extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_wafv2.CfnWebACL",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::WAFv2::WebACL";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnWebACLPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnWebACL(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnWebACL(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnWebACL.CFN_RESOURCE_TYPE_NAME}static arnForWebACL(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_wafv2_IWebACLRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForWebACL),error}return resource.webAclRef.webAclArn}_applicationConfig;_associationConfig;_captchaConfig;_challengeConfig;_customResponseBodies;_dataProtectionConfig;_defaultAction;_description;_name;_onSourceDDoSProtectionConfig;_rules;_scope;tags;_tagsRaw;_tokenDomains;_visibilityConfig;cfnPropertyNames={applicationConfig:"ApplicationConfig",associationConfig:"AssociationConfig",captchaConfig:"CaptchaConfig",challengeConfig:"ChallengeConfig",customResponseBodies:"CustomResponseBodies",dataProtectionConfig:"DataProtectionConfig",defaultAction:"DefaultAction",description:"Description",name:"Name",onSourceDDoSProtectionConfig:"OnSourceDDoSProtectionConfig",rules:"Rules",scope:"Scope",tags:"Tags",tokenDomains:"TokenDomains",visibilityConfig:"VisibilityConfig"};constructor(scope,id,props){super(scope,id,{type:CfnWebACL.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_wafv2_CfnWebACLProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnWebACL),error}cdk().requireProperty(props,"defaultAction",this),cdk().requireProperty(props,"scope",this),cdk().requireProperty(props,"visibilityConfig",this),this._applicationConfig=props.applicationConfig,this._associationConfig=props.associationConfig,this._captchaConfig=props.captchaConfig,this._challengeConfig=props.challengeConfig,this._customResponseBodies=props.customResponseBodies,this._dataProtectionConfig=props.dataProtectionConfig,this._defaultAction=props.defaultAction,this._description=props.description,this._name=props.name,this._onSourceDDoSProtectionConfig=props.onSourceDDoSProtectionConfig,this._rules=props.rules,this._scope=props.scope,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::WAFv2::WebACL",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._tokenDomains=props.tokenDomains,this._visibilityConfig=props.visibilityConfig}get webAclRef(){return{webAclName:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),webAclId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),scope:cdk().Fn.select(2,cdk().Fn.split("|",this.ref)),webAclArn:this.attrArn}}get applicationConfig(){return this._applicationConfig}set applicationConfig(value){cdk().traceProperty(this.node,"ApplicationConfig"),this._applicationConfig=value}get associationConfig(){return this._associationConfig}set associationConfig(value){cdk().traceProperty(this.node,"AssociationConfig"),this._associationConfig=value}get captchaConfig(){return this._captchaConfig}set captchaConfig(value){cdk().traceProperty(this.node,"CaptchaConfig"),this._captchaConfig=value}get challengeConfig(){return this._challengeConfig}set challengeConfig(value){cdk().traceProperty(this.node,"ChallengeConfig"),this._challengeConfig=value}get customResponseBodies(){return this._customResponseBodies}set customResponseBodies(value){cdk().traceProperty(this.node,"CustomResponseBodies"),this._customResponseBodies=value}get dataProtectionConfig(){return this._dataProtectionConfig}set dataProtectionConfig(value){cdk().traceProperty(this.node,"DataProtectionConfig"),this._dataProtectionConfig=value}get defaultAction(){return this._defaultAction}set defaultAction(value){cdk().traceProperty(this.node,"DefaultAction"),this._defaultAction=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get onSourceDDoSProtectionConfig(){return this._onSourceDDoSProtectionConfig}set onSourceDDoSProtectionConfig(value){cdk().traceProperty(this.node,"OnSourceDDoSProtectionConfig"),this._onSourceDDoSProtectionConfig=value}get rules(){return this._rules}set rules(value){cdk().traceProperty(this.node,"Rules"),this._rules=value}get scope(){return this._scope}set scope(value){cdk().traceProperty(this.node,"Scope"),this._scope=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get tokenDomains(){return this._tokenDomains}set tokenDomains(value){cdk().traceProperty(this.node,"TokenDomains"),this._tokenDomains=value}get visibilityConfig(){return this._visibilityConfig}set visibilityConfig(value){cdk().traceProperty(this.node,"VisibilityConfig"),this._visibilityConfig=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrCapacity(){return cdk().Token.asNumber(this.getAtt("Capacity",cdk().ResolutionTypeHint.NUMBER))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrLabelNamespace(){return cdk().Token.asString(this.getAtt("LabelNamespace",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{applicationConfig:this._applicationConfig,associationConfig:this._associationConfig,captchaConfig:this._captchaConfig,challengeConfig:this._challengeConfig,customResponseBodies:this._customResponseBodies,dataProtectionConfig:this._dataProtectionConfig,defaultAction:this._defaultAction,description:this._description,name:this._name,onSourceDDoSProtectionConfig:this._onSourceDDoSProtectionConfig,rules:this._rules,scope:this._scope,tags:this.tags.renderTags(),tokenDomains:this._tokenDomains,visibilityConfig:this._visibilityConfig}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnWebACL.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnWebACLPropsToCloudFormation(props)}}exports.CfnWebACL=CfnWebACL;function CfnWebACLRequestBodyAssociatedResourceTypeConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("defaultSizeInspectionLimit",cdk().requiredValidator)(properties.defaultSizeInspectionLimit)),errors.collect(cdk().propertyValidator("defaultSizeInspectionLimit",cdk().validateString)(properties.defaultSizeInspectionLimit)),errors.wrap('supplied properties not correct for "RequestBodyAssociatedResourceTypeConfigProperty"')}function convertCfnWebACLRequestBodyAssociatedResourceTypeConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRequestBodyAssociatedResourceTypeConfigPropertyValidator(properties).assertSuccess(),{DefaultSizeInspectionLimit:cdk().stringToCloudFormation(properties.defaultSizeInspectionLimit)}):properties}function CfnWebACLRequestBodyAssociatedResourceTypeConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("defaultSizeInspectionLimit","DefaultSizeInspectionLimit",properties.DefaultSizeInspectionLimit!=null?cfn_parse().FromCloudFormation.getString(properties.DefaultSizeInspectionLimit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLAssociationConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("requestBody",cdk().hashValidator(CfnWebACLRequestBodyAssociatedResourceTypeConfigPropertyValidator))(properties.requestBody)),errors.wrap('supplied properties not correct for "AssociationConfigProperty"')}function convertCfnWebACLAssociationConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLAssociationConfigPropertyValidator(properties).assertSuccess(),{RequestBody:cdk().hashMapper(convertCfnWebACLRequestBodyAssociatedResourceTypeConfigPropertyToCloudFormation)(properties.requestBody)}):properties}function CfnWebACLAssociationConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("requestBody","RequestBody",properties.RequestBody!=null?cfn_parse().FromCloudFormation.getMap(CfnWebACLRequestBodyAssociatedResourceTypeConfigPropertyFromCloudFormation)(properties.RequestBody):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLCustomHTTPHeaderPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "CustomHTTPHeaderProperty"')}function convertCfnWebACLCustomHTTPHeaderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLCustomHTTPHeaderPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnWebACLCustomHTTPHeaderPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLCustomResponsePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("customResponseBodyKey",cdk().validateString)(properties.customResponseBodyKey)),errors.collect(cdk().propertyValidator("responseCode",cdk().requiredValidator)(properties.responseCode)),errors.collect(cdk().propertyValidator("responseCode",cdk().validateNumber)(properties.responseCode)),errors.collect(cdk().propertyValidator("responseHeaders",cdk().listValidator(CfnWebACLCustomHTTPHeaderPropertyValidator))(properties.responseHeaders)),errors.wrap('supplied properties not correct for "CustomResponseProperty"')}function convertCfnWebACLCustomResponsePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLCustomResponsePropertyValidator(properties).assertSuccess(),{CustomResponseBodyKey:cdk().stringToCloudFormation(properties.customResponseBodyKey),ResponseCode:cdk().numberToCloudFormation(properties.responseCode),ResponseHeaders:cdk().listMapper(convertCfnWebACLCustomHTTPHeaderPropertyToCloudFormation)(properties.responseHeaders)}):properties}function CfnWebACLCustomResponsePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("customResponseBodyKey","CustomResponseBodyKey",properties.CustomResponseBodyKey!=null?cfn_parse().FromCloudFormation.getString(properties.CustomResponseBodyKey):void 0),ret.addPropertyResult("responseCode","ResponseCode",properties.ResponseCode!=null?cfn_parse().FromCloudFormation.getNumber(properties.ResponseCode):void 0),ret.addPropertyResult("responseHeaders","ResponseHeaders",properties.ResponseHeaders!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLCustomHTTPHeaderPropertyFromCloudFormation)(properties.ResponseHeaders):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLBlockActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("customResponse",CfnWebACLCustomResponsePropertyValidator)(properties.customResponse)),errors.wrap('supplied properties not correct for "BlockActionProperty"')}function convertCfnWebACLBlockActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLBlockActionPropertyValidator(properties).assertSuccess(),{CustomResponse:convertCfnWebACLCustomResponsePropertyToCloudFormation(properties.customResponse)}):properties}function CfnWebACLBlockActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("customResponse","CustomResponse",properties.CustomResponse!=null?CfnWebACLCustomResponsePropertyFromCloudFormation(properties.CustomResponse):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLCustomRequestHandlingPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("insertHeaders",cdk().requiredValidator)(properties.insertHeaders)),errors.collect(cdk().propertyValidator("insertHeaders",cdk().listValidator(CfnWebACLCustomHTTPHeaderPropertyValidator))(properties.insertHeaders)),errors.wrap('supplied properties not correct for "CustomRequestHandlingProperty"')}function convertCfnWebACLCustomRequestHandlingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLCustomRequestHandlingPropertyValidator(properties).assertSuccess(),{InsertHeaders:cdk().listMapper(convertCfnWebACLCustomHTTPHeaderPropertyToCloudFormation)(properties.insertHeaders)}):properties}function CfnWebACLCustomRequestHandlingPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("insertHeaders","InsertHeaders",properties.InsertHeaders!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLCustomHTTPHeaderPropertyFromCloudFormation)(properties.InsertHeaders):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLAllowActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("customRequestHandling",CfnWebACLCustomRequestHandlingPropertyValidator)(properties.customRequestHandling)),errors.wrap('supplied properties not correct for "AllowActionProperty"')}function convertCfnWebACLAllowActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLAllowActionPropertyValidator(properties).assertSuccess(),{CustomRequestHandling:convertCfnWebACLCustomRequestHandlingPropertyToCloudFormation(properties.customRequestHandling)}):properties}function CfnWebACLAllowActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("customRequestHandling","CustomRequestHandling",properties.CustomRequestHandling!=null?CfnWebACLCustomRequestHandlingPropertyFromCloudFormation(properties.CustomRequestHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLDefaultActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("allow",CfnWebACLAllowActionPropertyValidator)(properties.allow)),errors.collect(cdk().propertyValidator("block",CfnWebACLBlockActionPropertyValidator)(properties.block)),errors.wrap('supplied properties not correct for "DefaultActionProperty"')}function convertCfnWebACLDefaultActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLDefaultActionPropertyValidator(properties).assertSuccess(),{Allow:convertCfnWebACLAllowActionPropertyToCloudFormation(properties.allow),Block:convertCfnWebACLBlockActionPropertyToCloudFormation(properties.block)}):properties}function CfnWebACLDefaultActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("allow","Allow",properties.Allow!=null?CfnWebACLAllowActionPropertyFromCloudFormation(properties.Allow):void 0),ret.addPropertyResult("block","Block",properties.Block!=null?CfnWebACLBlockActionPropertyFromCloudFormation(properties.Block):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLCustomResponseBodyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("content",cdk().requiredValidator)(properties.content)),errors.collect(cdk().propertyValidator("content",cdk().validateString)(properties.content)),errors.collect(cdk().propertyValidator("contentType",cdk().requiredValidator)(properties.contentType)),errors.collect(cdk().propertyValidator("contentType",cdk().validateString)(properties.contentType)),errors.wrap('supplied properties not correct for "CustomResponseBodyProperty"')}function convertCfnWebACLCustomResponseBodyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLCustomResponseBodyPropertyValidator(properties).assertSuccess(),{Content:cdk().stringToCloudFormation(properties.content),ContentType:cdk().stringToCloudFormation(properties.contentType)}):properties}function CfnWebACLCustomResponseBodyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("content","Content",properties.Content!=null?cfn_parse().FromCloudFormation.getString(properties.Content):void 0),ret.addPropertyResult("contentType","ContentType",properties.ContentType!=null?cfn_parse().FromCloudFormation.getString(properties.ContentType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLImmunityTimePropertyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("immunityTime",cdk().requiredValidator)(properties.immunityTime)),errors.collect(cdk().propertyValidator("immunityTime",cdk().validateNumber)(properties.immunityTime)),errors.wrap('supplied properties not correct for "ImmunityTimePropertyProperty"')}function convertCfnWebACLImmunityTimePropertyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLImmunityTimePropertyPropertyValidator(properties).assertSuccess(),{ImmunityTime:cdk().numberToCloudFormation(properties.immunityTime)}):properties}function CfnWebACLImmunityTimePropertyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("immunityTime","ImmunityTime",properties.ImmunityTime!=null?cfn_parse().FromCloudFormation.getNumber(properties.ImmunityTime):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLChallengeConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("immunityTimeProperty",CfnWebACLImmunityTimePropertyPropertyValidator)(properties.immunityTimeProperty)),errors.wrap('supplied properties not correct for "ChallengeConfigProperty"')}function convertCfnWebACLChallengeConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLChallengeConfigPropertyValidator(properties).assertSuccess(),{ImmunityTimeProperty:convertCfnWebACLImmunityTimePropertyPropertyToCloudFormation(properties.immunityTimeProperty)}):properties}function CfnWebACLChallengeConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("immunityTimeProperty","ImmunityTimeProperty",properties.ImmunityTimeProperty!=null?CfnWebACLImmunityTimePropertyPropertyFromCloudFormation(properties.ImmunityTimeProperty):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLCaptchaActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("customRequestHandling",CfnWebACLCustomRequestHandlingPropertyValidator)(properties.customRequestHandling)),errors.wrap('supplied properties not correct for "CaptchaActionProperty"')}function convertCfnWebACLCaptchaActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLCaptchaActionPropertyValidator(properties).assertSuccess(),{CustomRequestHandling:convertCfnWebACLCustomRequestHandlingPropertyToCloudFormation(properties.customRequestHandling)}):properties}function CfnWebACLCaptchaActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("customRequestHandling","CustomRequestHandling",properties.CustomRequestHandling!=null?CfnWebACLCustomRequestHandlingPropertyFromCloudFormation(properties.CustomRequestHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLCountActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("customRequestHandling",CfnWebACLCustomRequestHandlingPropertyValidator)(properties.customRequestHandling)),errors.wrap('supplied properties not correct for "CountActionProperty"')}function convertCfnWebACLCountActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLCountActionPropertyValidator(properties).assertSuccess(),{CustomRequestHandling:convertCfnWebACLCustomRequestHandlingPropertyToCloudFormation(properties.customRequestHandling)}):properties}function CfnWebACLCountActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("customRequestHandling","CustomRequestHandling",properties.CustomRequestHandling!=null?CfnWebACLCustomRequestHandlingPropertyFromCloudFormation(properties.CustomRequestHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLChallengeActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("customRequestHandling",CfnWebACLCustomRequestHandlingPropertyValidator)(properties.customRequestHandling)),errors.wrap('supplied properties not correct for "ChallengeActionProperty"')}function convertCfnWebACLChallengeActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLChallengeActionPropertyValidator(properties).assertSuccess(),{CustomRequestHandling:convertCfnWebACLCustomRequestHandlingPropertyToCloudFormation(properties.customRequestHandling)}):properties}function CfnWebACLChallengeActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("customRequestHandling","CustomRequestHandling",properties.CustomRequestHandling!=null?CfnWebACLCustomRequestHandlingPropertyFromCloudFormation(properties.CustomRequestHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRuleActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("allow",CfnWebACLAllowActionPropertyValidator)(properties.allow)),errors.collect(cdk().propertyValidator("block",CfnWebACLBlockActionPropertyValidator)(properties.block)),errors.collect(cdk().propertyValidator("captcha",CfnWebACLCaptchaActionPropertyValidator)(properties.captcha)),errors.collect(cdk().propertyValidator("challenge",CfnWebACLChallengeActionPropertyValidator)(properties.challenge)),errors.collect(cdk().propertyValidator("count",CfnWebACLCountActionPropertyValidator)(properties.count)),errors.wrap('supplied properties not correct for "RuleActionProperty"')}function convertCfnWebACLRuleActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRuleActionPropertyValidator(properties).assertSuccess(),{Allow:convertCfnWebACLAllowActionPropertyToCloudFormation(properties.allow),Block:convertCfnWebACLBlockActionPropertyToCloudFormation(properties.block),Captcha:convertCfnWebACLCaptchaActionPropertyToCloudFormation(properties.captcha),Challenge:convertCfnWebACLChallengeActionPropertyToCloudFormation(properties.challenge),Count:convertCfnWebACLCountActionPropertyToCloudFormation(properties.count)}):properties}function CfnWebACLRuleActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("allow","Allow",properties.Allow!=null?CfnWebACLAllowActionPropertyFromCloudFormation(properties.Allow):void 0),ret.addPropertyResult("block","Block",properties.Block!=null?CfnWebACLBlockActionPropertyFromCloudFormation(properties.Block):void 0),ret.addPropertyResult("captcha","Captcha",properties.Captcha!=null?CfnWebACLCaptchaActionPropertyFromCloudFormation(properties.Captcha):void 0),ret.addPropertyResult("challenge","Challenge",properties.Challenge!=null?CfnWebACLChallengeActionPropertyFromCloudFormation(properties.Challenge):void 0),ret.addPropertyResult("count","Count",properties.Count!=null?CfnWebACLCountActionPropertyFromCloudFormation(properties.Count):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLTextTransformationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("priority",cdk().requiredValidator)(properties.priority)),errors.collect(cdk().propertyValidator("priority",cdk().validateNumber)(properties.priority)),errors.collect(cdk().propertyValidator("type",cdk().requiredValidator)(properties.type)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "TextTransformationProperty"')}function convertCfnWebACLTextTransformationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLTextTransformationPropertyValidator(properties).assertSuccess(),{Priority:cdk().numberToCloudFormation(properties.priority),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnWebACLTextTransformationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse().FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLJsonMatchPatternPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("all",cdk().validateObject)(properties.all)),errors.collect(cdk().propertyValidator("includedPaths",cdk().listValidator(cdk().validateString))(properties.includedPaths)),errors.wrap('supplied properties not correct for "JsonMatchPatternProperty"')}function convertCfnWebACLJsonMatchPatternPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLJsonMatchPatternPropertyValidator(properties).assertSuccess(),{All:cdk().objectToCloudFormation(properties.all),IncludedPaths:cdk().listMapper(cdk().stringToCloudFormation)(properties.includedPaths)}):properties}function CfnWebACLJsonMatchPatternPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("all","All",properties.All!=null?cfn_parse().FromCloudFormation.getAny(properties.All):void 0),ret.addPropertyResult("includedPaths","IncludedPaths",properties.IncludedPaths!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.IncludedPaths):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLJsonBodyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("invalidFallbackBehavior",cdk().validateString)(properties.invalidFallbackBehavior)),errors.collect(cdk().propertyValidator("matchPattern",cdk().requiredValidator)(properties.matchPattern)),errors.collect(cdk().propertyValidator("matchPattern",CfnWebACLJsonMatchPatternPropertyValidator)(properties.matchPattern)),errors.collect(cdk().propertyValidator("matchScope",cdk().requiredValidator)(properties.matchScope)),errors.collect(cdk().propertyValidator("matchScope",cdk().validateString)(properties.matchScope)),errors.collect(cdk().propertyValidator("oversizeHandling",cdk().validateString)(properties.oversizeHandling)),errors.wrap('supplied properties not correct for "JsonBodyProperty"')}function convertCfnWebACLJsonBodyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLJsonBodyPropertyValidator(properties).assertSuccess(),{InvalidFallbackBehavior:cdk().stringToCloudFormation(properties.invalidFallbackBehavior),MatchPattern:convertCfnWebACLJsonMatchPatternPropertyToCloudFormation(properties.matchPattern),MatchScope:cdk().stringToCloudFormation(properties.matchScope),OversizeHandling:cdk().stringToCloudFormation(properties.oversizeHandling)}):properties}function CfnWebACLJsonBodyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("invalidFallbackBehavior","InvalidFallbackBehavior",properties.InvalidFallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.InvalidFallbackBehavior):void 0),ret.addPropertyResult("matchPattern","MatchPattern",properties.MatchPattern!=null?CfnWebACLJsonMatchPatternPropertyFromCloudFormation(properties.MatchPattern):void 0),ret.addPropertyResult("matchScope","MatchScope",properties.MatchScope!=null?cfn_parse().FromCloudFormation.getString(properties.MatchScope):void 0),ret.addPropertyResult("oversizeHandling","OversizeHandling",properties.OversizeHandling!=null?cfn_parse().FromCloudFormation.getString(properties.OversizeHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLHeaderMatchPatternPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("all",cdk().validateObject)(properties.all)),errors.collect(cdk().propertyValidator("excludedHeaders",cdk().listValidator(cdk().validateString))(properties.excludedHeaders)),errors.collect(cdk().propertyValidator("includedHeaders",cdk().listValidator(cdk().validateString))(properties.includedHeaders)),errors.wrap('supplied properties not correct for "HeaderMatchPatternProperty"')}function convertCfnWebACLHeaderMatchPatternPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLHeaderMatchPatternPropertyValidator(properties).assertSuccess(),{All:cdk().objectToCloudFormation(properties.all),ExcludedHeaders:cdk().listMapper(cdk().stringToCloudFormation)(properties.excludedHeaders),IncludedHeaders:cdk().listMapper(cdk().stringToCloudFormation)(properties.includedHeaders)}):properties}function CfnWebACLHeaderMatchPatternPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("all","All",properties.All!=null?cfn_parse().FromCloudFormation.getAny(properties.All):void 0),ret.addPropertyResult("excludedHeaders","ExcludedHeaders",properties.ExcludedHeaders!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ExcludedHeaders):void 0),ret.addPropertyResult("includedHeaders","IncludedHeaders",properties.IncludedHeaders!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.IncludedHeaders):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLHeadersPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("matchPattern",cdk().requiredValidator)(properties.matchPattern)),errors.collect(cdk().propertyValidator("matchPattern",CfnWebACLHeaderMatchPatternPropertyValidator)(properties.matchPattern)),errors.collect(cdk().propertyValidator("matchScope",cdk().requiredValidator)(properties.matchScope)),errors.collect(cdk().propertyValidator("matchScope",cdk().validateString)(properties.matchScope)),errors.collect(cdk().propertyValidator("oversizeHandling",cdk().requiredValidator)(properties.oversizeHandling)),errors.collect(cdk().propertyValidator("oversizeHandling",cdk().validateString)(properties.oversizeHandling)),errors.wrap('supplied properties not correct for "HeadersProperty"')}function convertCfnWebACLHeadersPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLHeadersPropertyValidator(properties).assertSuccess(),{MatchPattern:convertCfnWebACLHeaderMatchPatternPropertyToCloudFormation(properties.matchPattern),MatchScope:cdk().stringToCloudFormation(properties.matchScope),OversizeHandling:cdk().stringToCloudFormation(properties.oversizeHandling)}):properties}function CfnWebACLHeadersPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("matchPattern","MatchPattern",properties.MatchPattern!=null?CfnWebACLHeaderMatchPatternPropertyFromCloudFormation(properties.MatchPattern):void 0),ret.addPropertyResult("matchScope","MatchScope",properties.MatchScope!=null?cfn_parse().FromCloudFormation.getString(properties.MatchScope):void 0),ret.addPropertyResult("oversizeHandling","OversizeHandling",properties.OversizeHandling!=null?cfn_parse().FromCloudFormation.getString(properties.OversizeHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLCookieMatchPatternPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("all",cdk().validateObject)(properties.all)),errors.collect(cdk().propertyValidator("excludedCookies",cdk().listValidator(cdk().validateString))(properties.excludedCookies)),errors.collect(cdk().propertyValidator("includedCookies",cdk().listValidator(cdk().validateString))(properties.includedCookies)),errors.wrap('supplied properties not correct for "CookieMatchPatternProperty"')}function convertCfnWebACLCookieMatchPatternPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLCookieMatchPatternPropertyValidator(properties).assertSuccess(),{All:cdk().objectToCloudFormation(properties.all),ExcludedCookies:cdk().listMapper(cdk().stringToCloudFormation)(properties.excludedCookies),IncludedCookies:cdk().listMapper(cdk().stringToCloudFormation)(properties.includedCookies)}):properties}function CfnWebACLCookieMatchPatternPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("all","All",properties.All!=null?cfn_parse().FromCloudFormation.getAny(properties.All):void 0),ret.addPropertyResult("excludedCookies","ExcludedCookies",properties.ExcludedCookies!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ExcludedCookies):void 0),ret.addPropertyResult("includedCookies","IncludedCookies",properties.IncludedCookies!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.IncludedCookies):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLCookiesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("matchPattern",cdk().requiredValidator)(properties.matchPattern)),errors.collect(cdk().propertyValidator("matchPattern",CfnWebACLCookieMatchPatternPropertyValidator)(properties.matchPattern)),errors.collect(cdk().propertyValidator("matchScope",cdk().requiredValidator)(properties.matchScope)),errors.collect(cdk().propertyValidator("matchScope",cdk().validateString)(properties.matchScope)),errors.collect(cdk().propertyValidator("oversizeHandling",cdk().requiredValidator)(properties.oversizeHandling)),errors.collect(cdk().propertyValidator("oversizeHandling",cdk().validateString)(properties.oversizeHandling)),errors.wrap('supplied properties not correct for "CookiesProperty"')}function convertCfnWebACLCookiesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLCookiesPropertyValidator(properties).assertSuccess(),{MatchPattern:convertCfnWebACLCookieMatchPatternPropertyToCloudFormation(properties.matchPattern),MatchScope:cdk().stringToCloudFormation(properties.matchScope),OversizeHandling:cdk().stringToCloudFormation(properties.oversizeHandling)}):properties}function CfnWebACLCookiesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("matchPattern","MatchPattern",properties.MatchPattern!=null?CfnWebACLCookieMatchPatternPropertyFromCloudFormation(properties.MatchPattern):void 0),ret.addPropertyResult("matchScope","MatchScope",properties.MatchScope!=null?cfn_parse().FromCloudFormation.getString(properties.MatchScope):void 0),ret.addPropertyResult("oversizeHandling","OversizeHandling",properties.OversizeHandling!=null?cfn_parse().FromCloudFormation.getString(properties.OversizeHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLBodyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("oversizeHandling",cdk().validateString)(properties.oversizeHandling)),errors.wrap('supplied properties not correct for "BodyProperty"')}function convertCfnWebACLBodyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLBodyPropertyValidator(properties).assertSuccess(),{OversizeHandling:cdk().stringToCloudFormation(properties.oversizeHandling)}):properties}function CfnWebACLBodyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("oversizeHandling","OversizeHandling",properties.OversizeHandling!=null?cfn_parse().FromCloudFormation.getString(properties.OversizeHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLJA3FingerprintPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().requiredValidator)(properties.fallbackBehavior)),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().validateString)(properties.fallbackBehavior)),errors.wrap('supplied properties not correct for "JA3FingerprintProperty"')}function convertCfnWebACLJA3FingerprintPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLJA3FingerprintPropertyValidator(properties).assertSuccess(),{FallbackBehavior:cdk().stringToCloudFormation(properties.fallbackBehavior)}):properties}function CfnWebACLJA3FingerprintPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fallbackBehavior","FallbackBehavior",properties.FallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.FallbackBehavior):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLJA4FingerprintPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().requiredValidator)(properties.fallbackBehavior)),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().validateString)(properties.fallbackBehavior)),errors.wrap('supplied properties not correct for "JA4FingerprintProperty"')}function convertCfnWebACLJA4FingerprintPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLJA4FingerprintPropertyValidator(properties).assertSuccess(),{FallbackBehavior:cdk().stringToCloudFormation(properties.fallbackBehavior)}):properties}function CfnWebACLJA4FingerprintPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fallbackBehavior","FallbackBehavior",properties.FallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.FallbackBehavior):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLUriFragmentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().validateString)(properties.fallbackBehavior)),errors.wrap('supplied properties not correct for "UriFragmentProperty"')}function convertCfnWebACLUriFragmentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLUriFragmentPropertyValidator(properties).assertSuccess(),{FallbackBehavior:cdk().stringToCloudFormation(properties.fallbackBehavior)}):properties}function CfnWebACLUriFragmentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fallbackBehavior","FallbackBehavior",properties.FallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.FallbackBehavior):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLHeaderOrderPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("oversizeHandling",cdk().requiredValidator)(properties.oversizeHandling)),errors.collect(cdk().propertyValidator("oversizeHandling",cdk().validateString)(properties.oversizeHandling)),errors.wrap('supplied properties not correct for "HeaderOrderProperty"')}function convertCfnWebACLHeaderOrderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLHeaderOrderPropertyValidator(properties).assertSuccess(),{OversizeHandling:cdk().stringToCloudFormation(properties.oversizeHandling)}):properties}function CfnWebACLHeaderOrderPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("oversizeHandling","OversizeHandling",properties.OversizeHandling!=null?cfn_parse().FromCloudFormation.getString(properties.OversizeHandling):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLFieldToMatchPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("allQueryArguments",cdk().validateObject)(properties.allQueryArguments)),errors.collect(cdk().propertyValidator("body",CfnWebACLBodyPropertyValidator)(properties.body)),errors.collect(cdk().propertyValidator("cookies",CfnWebACLCookiesPropertyValidator)(properties.cookies)),errors.collect(cdk().propertyValidator("headerOrder",CfnWebACLHeaderOrderPropertyValidator)(properties.headerOrder)),errors.collect(cdk().propertyValidator("headers",CfnWebACLHeadersPropertyValidator)(properties.headers)),errors.collect(cdk().propertyValidator("ja3Fingerprint",CfnWebACLJA3FingerprintPropertyValidator)(properties.ja3Fingerprint)),errors.collect(cdk().propertyValidator("ja4Fingerprint",CfnWebACLJA4FingerprintPropertyValidator)(properties.ja4Fingerprint)),errors.collect(cdk().propertyValidator("jsonBody",CfnWebACLJsonBodyPropertyValidator)(properties.jsonBody)),errors.collect(cdk().propertyValidator("method",cdk().validateObject)(properties.method)),errors.collect(cdk().propertyValidator("queryString",cdk().validateObject)(properties.queryString)),errors.collect(cdk().propertyValidator("singleHeader",cdk().validateObject)(properties.singleHeader)),errors.collect(cdk().propertyValidator("singleQueryArgument",cdk().validateObject)(properties.singleQueryArgument)),errors.collect(cdk().propertyValidator("uriFragment",CfnWebACLUriFragmentPropertyValidator)(properties.uriFragment)),errors.collect(cdk().propertyValidator("uriPath",cdk().validateObject)(properties.uriPath)),errors.wrap('supplied properties not correct for "FieldToMatchProperty"')}function convertCfnWebACLFieldToMatchPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLFieldToMatchPropertyValidator(properties).assertSuccess(),{AllQueryArguments:cdk().objectToCloudFormation(properties.allQueryArguments),Body:convertCfnWebACLBodyPropertyToCloudFormation(properties.body),Cookies:convertCfnWebACLCookiesPropertyToCloudFormation(properties.cookies),HeaderOrder:convertCfnWebACLHeaderOrderPropertyToCloudFormation(properties.headerOrder),Headers:convertCfnWebACLHeadersPropertyToCloudFormation(properties.headers),JA3Fingerprint:convertCfnWebACLJA3FingerprintPropertyToCloudFormation(properties.ja3Fingerprint),JA4Fingerprint:convertCfnWebACLJA4FingerprintPropertyToCloudFormation(properties.ja4Fingerprint),JsonBody:convertCfnWebACLJsonBodyPropertyToCloudFormation(properties.jsonBody),Method:cdk().objectToCloudFormation(properties.method),QueryString:cdk().objectToCloudFormation(properties.queryString),SingleHeader:cdk().objectToCloudFormation(properties.singleHeader),SingleQueryArgument:cdk().objectToCloudFormation(properties.singleQueryArgument),UriFragment:convertCfnWebACLUriFragmentPropertyToCloudFormation(properties.uriFragment),UriPath:cdk().objectToCloudFormation(properties.uriPath)}):properties}function CfnWebACLFieldToMatchPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("allQueryArguments","AllQueryArguments",properties.AllQueryArguments!=null?cfn_parse().FromCloudFormation.getAny(properties.AllQueryArguments):void 0),ret.addPropertyResult("body","Body",properties.Body!=null?CfnWebACLBodyPropertyFromCloudFormation(properties.Body):void 0),ret.addPropertyResult("cookies","Cookies",properties.Cookies!=null?CfnWebACLCookiesPropertyFromCloudFormation(properties.Cookies):void 0),ret.addPropertyResult("headerOrder","HeaderOrder",properties.HeaderOrder!=null?CfnWebACLHeaderOrderPropertyFromCloudFormation(properties.HeaderOrder):void 0),ret.addPropertyResult("headers","Headers",properties.Headers!=null?CfnWebACLHeadersPropertyFromCloudFormation(properties.Headers):void 0),ret.addPropertyResult("ja3Fingerprint","JA3Fingerprint",properties.JA3Fingerprint!=null?CfnWebACLJA3FingerprintPropertyFromCloudFormation(properties.JA3Fingerprint):void 0),ret.addPropertyResult("ja4Fingerprint","JA4Fingerprint",properties.JA4Fingerprint!=null?CfnWebACLJA4FingerprintPropertyFromCloudFormation(properties.JA4Fingerprint):void 0),ret.addPropertyResult("jsonBody","JsonBody",properties.JsonBody!=null?CfnWebACLJsonBodyPropertyFromCloudFormation(properties.JsonBody):void 0),ret.addPropertyResult("method","Method",properties.Method!=null?cfn_parse().FromCloudFormation.getAny(properties.Method):void 0),ret.addPropertyResult("queryString","QueryString",properties.QueryString!=null?cfn_parse().FromCloudFormation.getAny(properties.QueryString):void 0),ret.addPropertyResult("singleHeader","SingleHeader",properties.SingleHeader!=null?cfn_parse().FromCloudFormation.getAny(properties.SingleHeader):void 0),ret.addPropertyResult("singleQueryArgument","SingleQueryArgument",properties.SingleQueryArgument!=null?cfn_parse().FromCloudFormation.getAny(properties.SingleQueryArgument):void 0),ret.addPropertyResult("uriFragment","UriFragment",properties.UriFragment!=null?CfnWebACLUriFragmentPropertyFromCloudFormation(properties.UriFragment):void 0),ret.addPropertyResult("uriPath","UriPath",properties.UriPath!=null?cfn_parse().FromCloudFormation.getAny(properties.UriPath):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLSizeConstraintStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("comparisonOperator",cdk().requiredValidator)(properties.comparisonOperator)),errors.collect(cdk().propertyValidator("comparisonOperator",cdk().validateString)(properties.comparisonOperator)),errors.collect(cdk().propertyValidator("fieldToMatch",cdk().requiredValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("fieldToMatch",CfnWebACLFieldToMatchPropertyValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("size",cdk().requiredValidator)(properties.size)),errors.collect(cdk().propertyValidator("size",cdk().validateNumber)(properties.size)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnWebACLTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "SizeConstraintStatementProperty"')}function convertCfnWebACLSizeConstraintStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLSizeConstraintStatementPropertyValidator(properties).assertSuccess(),{ComparisonOperator:cdk().stringToCloudFormation(properties.comparisonOperator),FieldToMatch:convertCfnWebACLFieldToMatchPropertyToCloudFormation(properties.fieldToMatch),Size:cdk().numberToCloudFormation(properties.size),TextTransformations:cdk().listMapper(convertCfnWebACLTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnWebACLSizeConstraintStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("comparisonOperator","ComparisonOperator",properties.ComparisonOperator!=null?cfn_parse().FromCloudFormation.getString(properties.ComparisonOperator):void 0),ret.addPropertyResult("fieldToMatch","FieldToMatch",properties.FieldToMatch!=null?CfnWebACLFieldToMatchPropertyFromCloudFormation(properties.FieldToMatch):void 0),ret.addPropertyResult("size","Size",properties.Size!=null?cfn_parse().FromCloudFormation.getNumber(properties.Size):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLAndStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("statements",cdk().requiredValidator)(properties.statements)),errors.collect(cdk().propertyValidator("statements",cdk().listValidator(CfnWebACLStatementPropertyValidator))(properties.statements)),errors.wrap('supplied properties not correct for "AndStatementProperty"')}function convertCfnWebACLAndStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLAndStatementPropertyValidator(properties).assertSuccess(),{Statements:cdk().listMapper(convertCfnWebACLStatementPropertyToCloudFormation)(properties.statements)}):properties}function CfnWebACLAndStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("statements","Statements",properties.Statements!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLStatementPropertyFromCloudFormation)(properties.Statements):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLXssMatchStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fieldToMatch",cdk().requiredValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("fieldToMatch",CfnWebACLFieldToMatchPropertyValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnWebACLTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "XssMatchStatementProperty"')}function convertCfnWebACLXssMatchStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLXssMatchStatementPropertyValidator(properties).assertSuccess(),{FieldToMatch:convertCfnWebACLFieldToMatchPropertyToCloudFormation(properties.fieldToMatch),TextTransformations:cdk().listMapper(convertCfnWebACLTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnWebACLXssMatchStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fieldToMatch","FieldToMatch",properties.FieldToMatch!=null?CfnWebACLFieldToMatchPropertyFromCloudFormation(properties.FieldToMatch):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLNotStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("statement",cdk().requiredValidator)(properties.statement)),errors.collect(cdk().propertyValidator("statement",CfnWebACLStatementPropertyValidator)(properties.statement)),errors.wrap('supplied properties not correct for "NotStatementProperty"')}function convertCfnWebACLNotStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLNotStatementPropertyValidator(properties).assertSuccess(),{Statement:convertCfnWebACLStatementPropertyToCloudFormation(properties.statement)}):properties}function CfnWebACLNotStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("statement","Statement",properties.Statement!=null?CfnWebACLStatementPropertyFromCloudFormation(properties.Statement):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLByteMatchStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fieldToMatch",cdk().requiredValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("fieldToMatch",CfnWebACLFieldToMatchPropertyValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("positionalConstraint",cdk().requiredValidator)(properties.positionalConstraint)),errors.collect(cdk().propertyValidator("positionalConstraint",cdk().validateString)(properties.positionalConstraint)),errors.collect(cdk().propertyValidator("searchString",cdk().validateString)(properties.searchString)),errors.collect(cdk().propertyValidator("searchStringBase64",cdk().validateString)(properties.searchStringBase64)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnWebACLTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "ByteMatchStatementProperty"')}function convertCfnWebACLByteMatchStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLByteMatchStatementPropertyValidator(properties).assertSuccess(),{FieldToMatch:convertCfnWebACLFieldToMatchPropertyToCloudFormation(properties.fieldToMatch),PositionalConstraint:cdk().stringToCloudFormation(properties.positionalConstraint),SearchString:cdk().stringToCloudFormation(properties.searchString),SearchStringBase64:cdk().stringToCloudFormation(properties.searchStringBase64),TextTransformations:cdk().listMapper(convertCfnWebACLTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnWebACLByteMatchStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fieldToMatch","FieldToMatch",properties.FieldToMatch!=null?CfnWebACLFieldToMatchPropertyFromCloudFormation(properties.FieldToMatch):void 0),ret.addPropertyResult("positionalConstraint","PositionalConstraint",properties.PositionalConstraint!=null?cfn_parse().FromCloudFormation.getString(properties.PositionalConstraint):void 0),ret.addPropertyResult("searchString","SearchString",properties.SearchString!=null?cfn_parse().FromCloudFormation.getString(properties.SearchString):void 0),ret.addPropertyResult("searchStringBase64","SearchStringBase64",properties.SearchStringBase64!=null?cfn_parse().FromCloudFormation.getString(properties.SearchStringBase64):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRateLimitCookiePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnWebACLTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "RateLimitCookieProperty"')}function convertCfnWebACLRateLimitCookiePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRateLimitCookiePropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),TextTransformations:cdk().listMapper(convertCfnWebACLTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnWebACLRateLimitCookiePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRateLimitQueryArgumentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnWebACLTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "RateLimitQueryArgumentProperty"')}function convertCfnWebACLRateLimitQueryArgumentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRateLimitQueryArgumentPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),TextTransformations:cdk().listMapper(convertCfnWebACLTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnWebACLRateLimitQueryArgumentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRateLimitHeaderPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnWebACLTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "RateLimitHeaderProperty"')}function convertCfnWebACLRateLimitHeaderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRateLimitHeaderPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),TextTransformations:cdk().listMapper(convertCfnWebACLTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnWebACLRateLimitHeaderPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRateLimitQueryStringPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnWebACLTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "RateLimitQueryStringProperty"')}function convertCfnWebACLRateLimitQueryStringPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRateLimitQueryStringPropertyValidator(properties).assertSuccess(),{TextTransformations:cdk().listMapper(convertCfnWebACLTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnWebACLRateLimitQueryStringPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRateLimitUriPathPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnWebACLTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "RateLimitUriPathProperty"')}function convertCfnWebACLRateLimitUriPathPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRateLimitUriPathPropertyValidator(properties).assertSuccess(),{TextTransformations:cdk().listMapper(convertCfnWebACLTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnWebACLRateLimitUriPathPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRateLimitLabelNamespacePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("namespace",cdk().requiredValidator)(properties.namespace)),errors.collect(cdk().propertyValidator("namespace",cdk().validateString)(properties.namespace)),errors.wrap('supplied properties not correct for "RateLimitLabelNamespaceProperty"')}function convertCfnWebACLRateLimitLabelNamespacePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRateLimitLabelNamespacePropertyValidator(properties).assertSuccess(),{Namespace:cdk().stringToCloudFormation(properties.namespace)}):properties}function CfnWebACLRateLimitLabelNamespacePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("namespace","Namespace",properties.Namespace!=null?cfn_parse().FromCloudFormation.getString(properties.Namespace):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRateLimitJA3FingerprintPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().requiredValidator)(properties.fallbackBehavior)),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().validateString)(properties.fallbackBehavior)),errors.wrap('supplied properties not correct for "RateLimitJA3FingerprintProperty"')}function convertCfnWebACLRateLimitJA3FingerprintPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRateLimitJA3FingerprintPropertyValidator(properties).assertSuccess(),{FallbackBehavior:cdk().stringToCloudFormation(properties.fallbackBehavior)}):properties}function CfnWebACLRateLimitJA3FingerprintPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fallbackBehavior","FallbackBehavior",properties.FallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.FallbackBehavior):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRateLimitJA4FingerprintPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().requiredValidator)(properties.fallbackBehavior)),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().validateString)(properties.fallbackBehavior)),errors.wrap('supplied properties not correct for "RateLimitJA4FingerprintProperty"')}function convertCfnWebACLRateLimitJA4FingerprintPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRateLimitJA4FingerprintPropertyValidator(properties).assertSuccess(),{FallbackBehavior:cdk().stringToCloudFormation(properties.fallbackBehavior)}):properties}function CfnWebACLRateLimitJA4FingerprintPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fallbackBehavior","FallbackBehavior",properties.FallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.FallbackBehavior):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRateBasedStatementCustomKeyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("asn",cdk().validateObject)(properties.asn)),errors.collect(cdk().propertyValidator("cookie",CfnWebACLRateLimitCookiePropertyValidator)(properties.cookie)),errors.collect(cdk().propertyValidator("forwardedIp",cdk().validateObject)(properties.forwardedIp)),errors.collect(cdk().propertyValidator("httpMethod",cdk().validateObject)(properties.httpMethod)),errors.collect(cdk().propertyValidator("header",CfnWebACLRateLimitHeaderPropertyValidator)(properties.header)),errors.collect(cdk().propertyValidator("ip",cdk().validateObject)(properties.ip)),errors.collect(cdk().propertyValidator("ja3Fingerprint",CfnWebACLRateLimitJA3FingerprintPropertyValidator)(properties.ja3Fingerprint)),errors.collect(cdk().propertyValidator("ja4Fingerprint",CfnWebACLRateLimitJA4FingerprintPropertyValidator)(properties.ja4Fingerprint)),errors.collect(cdk().propertyValidator("labelNamespace",CfnWebACLRateLimitLabelNamespacePropertyValidator)(properties.labelNamespace)),errors.collect(cdk().propertyValidator("queryArgument",CfnWebACLRateLimitQueryArgumentPropertyValidator)(properties.queryArgument)),errors.collect(cdk().propertyValidator("queryString",CfnWebACLRateLimitQueryStringPropertyValidator)(properties.queryString)),errors.collect(cdk().propertyValidator("uriPath",CfnWebACLRateLimitUriPathPropertyValidator)(properties.uriPath)),errors.wrap('supplied properties not correct for "RateBasedStatementCustomKeyProperty"')}function convertCfnWebACLRateBasedStatementCustomKeyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRateBasedStatementCustomKeyPropertyValidator(properties).assertSuccess(),{ASN:cdk().objectToCloudFormation(properties.asn),Cookie:convertCfnWebACLRateLimitCookiePropertyToCloudFormation(properties.cookie),ForwardedIP:cdk().objectToCloudFormation(properties.forwardedIp),HTTPMethod:cdk().objectToCloudFormation(properties.httpMethod),Header:convertCfnWebACLRateLimitHeaderPropertyToCloudFormation(properties.header),IP:cdk().objectToCloudFormation(properties.ip),JA3Fingerprint:convertCfnWebACLRateLimitJA3FingerprintPropertyToCloudFormation(properties.ja3Fingerprint),JA4Fingerprint:convertCfnWebACLRateLimitJA4FingerprintPropertyToCloudFormation(properties.ja4Fingerprint),LabelNamespace:convertCfnWebACLRateLimitLabelNamespacePropertyToCloudFormation(properties.labelNamespace),QueryArgument:convertCfnWebACLRateLimitQueryArgumentPropertyToCloudFormation(properties.queryArgument),QueryString:convertCfnWebACLRateLimitQueryStringPropertyToCloudFormation(properties.queryString),UriPath:convertCfnWebACLRateLimitUriPathPropertyToCloudFormation(properties.uriPath)}):properties}function CfnWebACLRateBasedStatementCustomKeyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("asn","ASN",properties.ASN!=null?cfn_parse().FromCloudFormation.getAny(properties.ASN):void 0),ret.addPropertyResult("cookie","Cookie",properties.Cookie!=null?CfnWebACLRateLimitCookiePropertyFromCloudFormation(properties.Cookie):void 0),ret.addPropertyResult("forwardedIp","ForwardedIP",properties.ForwardedIP!=null?cfn_parse().FromCloudFormation.getAny(properties.ForwardedIP):void 0),ret.addPropertyResult("header","Header",properties.Header!=null?CfnWebACLRateLimitHeaderPropertyFromCloudFormation(properties.Header):void 0),ret.addPropertyResult("httpMethod","HTTPMethod",properties.HTTPMethod!=null?cfn_parse().FromCloudFormation.getAny(properties.HTTPMethod):void 0),ret.addPropertyResult("ip","IP",properties.IP!=null?cfn_parse().FromCloudFormation.getAny(properties.IP):void 0),ret.addPropertyResult("ja3Fingerprint","JA3Fingerprint",properties.JA3Fingerprint!=null?CfnWebACLRateLimitJA3FingerprintPropertyFromCloudFormation(properties.JA3Fingerprint):void 0),ret.addPropertyResult("ja4Fingerprint","JA4Fingerprint",properties.JA4Fingerprint!=null?CfnWebACLRateLimitJA4FingerprintPropertyFromCloudFormation(properties.JA4Fingerprint):void 0),ret.addPropertyResult("labelNamespace","LabelNamespace",properties.LabelNamespace!=null?CfnWebACLRateLimitLabelNamespacePropertyFromCloudFormation(properties.LabelNamespace):void 0),ret.addPropertyResult("queryArgument","QueryArgument",properties.QueryArgument!=null?CfnWebACLRateLimitQueryArgumentPropertyFromCloudFormation(properties.QueryArgument):void 0),ret.addPropertyResult("queryString","QueryString",properties.QueryString!=null?CfnWebACLRateLimitQueryStringPropertyFromCloudFormation(properties.QueryString):void 0),ret.addPropertyResult("uriPath","UriPath",properties.UriPath!=null?CfnWebACLRateLimitUriPathPropertyFromCloudFormation(properties.UriPath):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLForwardedIPConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().requiredValidator)(properties.fallbackBehavior)),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().validateString)(properties.fallbackBehavior)),errors.collect(cdk().propertyValidator("headerName",cdk().requiredValidator)(properties.headerName)),errors.collect(cdk().propertyValidator("headerName",cdk().validateString)(properties.headerName)),errors.wrap('supplied properties not correct for "ForwardedIPConfigurationProperty"')}function convertCfnWebACLForwardedIPConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLForwardedIPConfigurationPropertyValidator(properties).assertSuccess(),{FallbackBehavior:cdk().stringToCloudFormation(properties.fallbackBehavior),HeaderName:cdk().stringToCloudFormation(properties.headerName)}):properties}function CfnWebACLForwardedIPConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fallbackBehavior","FallbackBehavior",properties.FallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.FallbackBehavior):void 0),ret.addPropertyResult("headerName","HeaderName",properties.HeaderName!=null?cfn_parse().FromCloudFormation.getString(properties.HeaderName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRateBasedStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("aggregateKeyType",cdk().requiredValidator)(properties.aggregateKeyType)),errors.collect(cdk().propertyValidator("aggregateKeyType",cdk().validateString)(properties.aggregateKeyType)),errors.collect(cdk().propertyValidator("customKeys",cdk().listValidator(CfnWebACLRateBasedStatementCustomKeyPropertyValidator))(properties.customKeys)),errors.collect(cdk().propertyValidator("evaluationWindowSec",cdk().validateNumber)(properties.evaluationWindowSec)),errors.collect(cdk().propertyValidator("forwardedIpConfig",CfnWebACLForwardedIPConfigurationPropertyValidator)(properties.forwardedIpConfig)),errors.collect(cdk().propertyValidator("limit",cdk().requiredValidator)(properties.limit)),errors.collect(cdk().propertyValidator("limit",cdk().validateNumber)(properties.limit)),errors.collect(cdk().propertyValidator("scopeDownStatement",CfnWebACLStatementPropertyValidator)(properties.scopeDownStatement)),errors.wrap('supplied properties not correct for "RateBasedStatementProperty"')}function convertCfnWebACLRateBasedStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRateBasedStatementPropertyValidator(properties).assertSuccess(),{AggregateKeyType:cdk().stringToCloudFormation(properties.aggregateKeyType),CustomKeys:cdk().listMapper(convertCfnWebACLRateBasedStatementCustomKeyPropertyToCloudFormation)(properties.customKeys),EvaluationWindowSec:cdk().numberToCloudFormation(properties.evaluationWindowSec),ForwardedIPConfig:convertCfnWebACLForwardedIPConfigurationPropertyToCloudFormation(properties.forwardedIpConfig),Limit:cdk().numberToCloudFormation(properties.limit),ScopeDownStatement:convertCfnWebACLStatementPropertyToCloudFormation(properties.scopeDownStatement)}):properties}function CfnWebACLRateBasedStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("aggregateKeyType","AggregateKeyType",properties.AggregateKeyType!=null?cfn_parse().FromCloudFormation.getString(properties.AggregateKeyType):void 0),ret.addPropertyResult("customKeys","CustomKeys",properties.CustomKeys!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLRateBasedStatementCustomKeyPropertyFromCloudFormation)(properties.CustomKeys):void 0),ret.addPropertyResult("evaluationWindowSec","EvaluationWindowSec",properties.EvaluationWindowSec!=null?cfn_parse().FromCloudFormation.getNumber(properties.EvaluationWindowSec):void 0),ret.addPropertyResult("forwardedIpConfig","ForwardedIPConfig",properties.ForwardedIPConfig!=null?CfnWebACLForwardedIPConfigurationPropertyFromCloudFormation(properties.ForwardedIPConfig):void 0),ret.addPropertyResult("limit","Limit",properties.Limit!=null?cfn_parse().FromCloudFormation.getNumber(properties.Limit):void 0),ret.addPropertyResult("scopeDownStatement","ScopeDownStatement",properties.ScopeDownStatement!=null?CfnWebACLStatementPropertyFromCloudFormation(properties.ScopeDownStatement):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLGeoMatchStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("countryCodes",cdk().listValidator(cdk().validateString))(properties.countryCodes)),errors.collect(cdk().propertyValidator("forwardedIpConfig",CfnWebACLForwardedIPConfigurationPropertyValidator)(properties.forwardedIpConfig)),errors.wrap('supplied properties not correct for "GeoMatchStatementProperty"')}function convertCfnWebACLGeoMatchStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLGeoMatchStatementPropertyValidator(properties).assertSuccess(),{CountryCodes:cdk().listMapper(cdk().stringToCloudFormation)(properties.countryCodes),ForwardedIPConfig:convertCfnWebACLForwardedIPConfigurationPropertyToCloudFormation(properties.forwardedIpConfig)}):properties}function CfnWebACLGeoMatchStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("countryCodes","CountryCodes",properties.CountryCodes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CountryCodes):void 0),ret.addPropertyResult("forwardedIpConfig","ForwardedIPConfig",properties.ForwardedIPConfig!=null?CfnWebACLForwardedIPConfigurationPropertyFromCloudFormation(properties.ForwardedIPConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRuleActionOverridePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("actionToUse",cdk().requiredValidator)(properties.actionToUse)),errors.collect(cdk().propertyValidator("actionToUse",CfnWebACLRuleActionPropertyValidator)(properties.actionToUse)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "RuleActionOverrideProperty"')}function convertCfnWebACLRuleActionOverridePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRuleActionOverridePropertyValidator(properties).assertSuccess(),{ActionToUse:convertCfnWebACLRuleActionPropertyToCloudFormation(properties.actionToUse),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnWebACLRuleActionOverridePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("actionToUse","ActionToUse",properties.ActionToUse!=null?CfnWebACLRuleActionPropertyFromCloudFormation(properties.ActionToUse):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLExcludedRulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "ExcludedRuleProperty"')}function convertCfnWebACLExcludedRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLExcludedRulePropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnWebACLExcludedRulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRuleGroupReferenceStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().requiredValidator)(properties.arn)),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("excludedRules",cdk().listValidator(CfnWebACLExcludedRulePropertyValidator))(properties.excludedRules)),errors.collect(cdk().propertyValidator("ruleActionOverrides",cdk().listValidator(CfnWebACLRuleActionOverridePropertyValidator))(properties.ruleActionOverrides)),errors.wrap('supplied properties not correct for "RuleGroupReferenceStatementProperty"')}function convertCfnWebACLRuleGroupReferenceStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRuleGroupReferenceStatementPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),ExcludedRules:cdk().listMapper(convertCfnWebACLExcludedRulePropertyToCloudFormation)(properties.excludedRules),RuleActionOverrides:cdk().listMapper(convertCfnWebACLRuleActionOverridePropertyToCloudFormation)(properties.ruleActionOverrides)}):properties}function CfnWebACLRuleGroupReferenceStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("excludedRules","ExcludedRules",properties.ExcludedRules!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLExcludedRulePropertyFromCloudFormation)(properties.ExcludedRules):void 0),ret.addPropertyResult("ruleActionOverrides","RuleActionOverrides",properties.RuleActionOverrides!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLRuleActionOverridePropertyFromCloudFormation)(properties.RuleActionOverrides):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLLabelMatchStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("key",cdk().requiredValidator)(properties.key)),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("scope",cdk().requiredValidator)(properties.scope)),errors.collect(cdk().propertyValidator("scope",cdk().validateString)(properties.scope)),errors.wrap('supplied properties not correct for "LabelMatchStatementProperty"')}function convertCfnWebACLLabelMatchStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLLabelMatchStatementPropertyValidator(properties).assertSuccess(),{Key:cdk().stringToCloudFormation(properties.key),Scope:cdk().stringToCloudFormation(properties.scope)}):properties}function CfnWebACLLabelMatchStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("scope","Scope",properties.Scope!=null?cfn_parse().FromCloudFormation.getString(properties.Scope):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRegexMatchStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fieldToMatch",cdk().requiredValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("fieldToMatch",CfnWebACLFieldToMatchPropertyValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("regexString",cdk().requiredValidator)(properties.regexString)),errors.collect(cdk().propertyValidator("regexString",cdk().validateString)(properties.regexString)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnWebACLTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "RegexMatchStatementProperty"')}function convertCfnWebACLRegexMatchStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRegexMatchStatementPropertyValidator(properties).assertSuccess(),{FieldToMatch:convertCfnWebACLFieldToMatchPropertyToCloudFormation(properties.fieldToMatch),RegexString:cdk().stringToCloudFormation(properties.regexString),TextTransformations:cdk().listMapper(convertCfnWebACLTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnWebACLRegexMatchStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fieldToMatch","FieldToMatch",properties.FieldToMatch!=null?CfnWebACLFieldToMatchPropertyFromCloudFormation(properties.FieldToMatch):void 0),ret.addPropertyResult("regexString","RegexString",properties.RegexString!=null?cfn_parse().FromCloudFormation.getString(properties.RegexString):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLSqliMatchStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fieldToMatch",cdk().requiredValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("fieldToMatch",CfnWebACLFieldToMatchPropertyValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("sensitivityLevel",cdk().validateString)(properties.sensitivityLevel)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnWebACLTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "SqliMatchStatementProperty"')}function convertCfnWebACLSqliMatchStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLSqliMatchStatementPropertyValidator(properties).assertSuccess(),{FieldToMatch:convertCfnWebACLFieldToMatchPropertyToCloudFormation(properties.fieldToMatch),SensitivityLevel:cdk().stringToCloudFormation(properties.sensitivityLevel),TextTransformations:cdk().listMapper(convertCfnWebACLTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnWebACLSqliMatchStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fieldToMatch","FieldToMatch",properties.FieldToMatch!=null?CfnWebACLFieldToMatchPropertyFromCloudFormation(properties.FieldToMatch):void 0),ret.addPropertyResult("sensitivityLevel","SensitivityLevel",properties.SensitivityLevel!=null?cfn_parse().FromCloudFormation.getString(properties.SensitivityLevel):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRegexPatternSetReferenceStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().requiredValidator)(properties.arn)),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("fieldToMatch",cdk().requiredValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("fieldToMatch",CfnWebACLFieldToMatchPropertyValidator)(properties.fieldToMatch)),errors.collect(cdk().propertyValidator("textTransformations",cdk().requiredValidator)(properties.textTransformations)),errors.collect(cdk().propertyValidator("textTransformations",cdk().listValidator(CfnWebACLTextTransformationPropertyValidator))(properties.textTransformations)),errors.wrap('supplied properties not correct for "RegexPatternSetReferenceStatementProperty"')}function convertCfnWebACLRegexPatternSetReferenceStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRegexPatternSetReferenceStatementPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),FieldToMatch:convertCfnWebACLFieldToMatchPropertyToCloudFormation(properties.fieldToMatch),TextTransformations:cdk().listMapper(convertCfnWebACLTextTransformationPropertyToCloudFormation)(properties.textTransformations)}):properties}function CfnWebACLRegexPatternSetReferenceStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("fieldToMatch","FieldToMatch",properties.FieldToMatch!=null?CfnWebACLFieldToMatchPropertyFromCloudFormation(properties.FieldToMatch):void 0),ret.addPropertyResult("textTransformations","TextTransformations",properties.TextTransformations!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLTextTransformationPropertyFromCloudFormation)(properties.TextTransformations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLOrStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("statements",cdk().requiredValidator)(properties.statements)),errors.collect(cdk().propertyValidator("statements",cdk().listValidator(CfnWebACLStatementPropertyValidator))(properties.statements)),errors.wrap('supplied properties not correct for "OrStatementProperty"')}function convertCfnWebACLOrStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLOrStatementPropertyValidator(properties).assertSuccess(),{Statements:cdk().listMapper(convertCfnWebACLStatementPropertyToCloudFormation)(properties.statements)}):properties}function CfnWebACLOrStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("statements","Statements",properties.Statements!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLStatementPropertyFromCloudFormation)(properties.Statements):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLFieldIdentifierPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("identifier",cdk().requiredValidator)(properties.identifier)),errors.collect(cdk().propertyValidator("identifier",cdk().validateString)(properties.identifier)),errors.wrap('supplied properties not correct for "FieldIdentifierProperty"')}function convertCfnWebACLFieldIdentifierPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLFieldIdentifierPropertyValidator(properties).assertSuccess(),{Identifier:cdk().stringToCloudFormation(properties.identifier)}):properties}function CfnWebACLFieldIdentifierPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("identifier","Identifier",properties.Identifier!=null?cfn_parse().FromCloudFormation.getString(properties.Identifier):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLResponseInspectionHeaderPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("failureValues",cdk().requiredValidator)(properties.failureValues)),errors.collect(cdk().propertyValidator("failureValues",cdk().listValidator(cdk().validateString))(properties.failureValues)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("successValues",cdk().requiredValidator)(properties.successValues)),errors.collect(cdk().propertyValidator("successValues",cdk().listValidator(cdk().validateString))(properties.successValues)),errors.wrap('supplied properties not correct for "ResponseInspectionHeaderProperty"')}function convertCfnWebACLResponseInspectionHeaderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLResponseInspectionHeaderPropertyValidator(properties).assertSuccess(),{FailureValues:cdk().listMapper(cdk().stringToCloudFormation)(properties.failureValues),Name:cdk().stringToCloudFormation(properties.name),SuccessValues:cdk().listMapper(cdk().stringToCloudFormation)(properties.successValues)}):properties}function CfnWebACLResponseInspectionHeaderPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("failureValues","FailureValues",properties.FailureValues!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.FailureValues):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("successValues","SuccessValues",properties.SuccessValues!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SuccessValues):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLResponseInspectionBodyContainsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("failureStrings",cdk().requiredValidator)(properties.failureStrings)),errors.collect(cdk().propertyValidator("failureStrings",cdk().listValidator(cdk().validateString))(properties.failureStrings)),errors.collect(cdk().propertyValidator("successStrings",cdk().requiredValidator)(properties.successStrings)),errors.collect(cdk().propertyValidator("successStrings",cdk().listValidator(cdk().validateString))(properties.successStrings)),errors.wrap('supplied properties not correct for "ResponseInspectionBodyContainsProperty"')}function convertCfnWebACLResponseInspectionBodyContainsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLResponseInspectionBodyContainsPropertyValidator(properties).assertSuccess(),{FailureStrings:cdk().listMapper(cdk().stringToCloudFormation)(properties.failureStrings),SuccessStrings:cdk().listMapper(cdk().stringToCloudFormation)(properties.successStrings)}):properties}function CfnWebACLResponseInspectionBodyContainsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("failureStrings","FailureStrings",properties.FailureStrings!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.FailureStrings):void 0),ret.addPropertyResult("successStrings","SuccessStrings",properties.SuccessStrings!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SuccessStrings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLResponseInspectionJsonPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("failureValues",cdk().requiredValidator)(properties.failureValues)),errors.collect(cdk().propertyValidator("failureValues",cdk().listValidator(cdk().validateString))(properties.failureValues)),errors.collect(cdk().propertyValidator("identifier",cdk().requiredValidator)(properties.identifier)),errors.collect(cdk().propertyValidator("identifier",cdk().validateString)(properties.identifier)),errors.collect(cdk().propertyValidator("successValues",cdk().requiredValidator)(properties.successValues)),errors.collect(cdk().propertyValidator("successValues",cdk().listValidator(cdk().validateString))(properties.successValues)),errors.wrap('supplied properties not correct for "ResponseInspectionJsonProperty"')}function convertCfnWebACLResponseInspectionJsonPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLResponseInspectionJsonPropertyValidator(properties).assertSuccess(),{FailureValues:cdk().listMapper(cdk().stringToCloudFormation)(properties.failureValues),Identifier:cdk().stringToCloudFormation(properties.identifier),SuccessValues:cdk().listMapper(cdk().stringToCloudFormation)(properties.successValues)}):properties}function CfnWebACLResponseInspectionJsonPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("failureValues","FailureValues",properties.FailureValues!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.FailureValues):void 0),ret.addPropertyResult("identifier","Identifier",properties.Identifier!=null?cfn_parse().FromCloudFormation.getString(properties.Identifier):void 0),ret.addPropertyResult("successValues","SuccessValues",properties.SuccessValues!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SuccessValues):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLResponseInspectionStatusCodePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("failureCodes",cdk().requiredValidator)(properties.failureCodes)),errors.collect(cdk().propertyValidator("failureCodes",cdk().listValidator(cdk().validateNumber))(properties.failureCodes)),errors.collect(cdk().propertyValidator("successCodes",cdk().requiredValidator)(properties.successCodes)),errors.collect(cdk().propertyValidator("successCodes",cdk().listValidator(cdk().validateNumber))(properties.successCodes)),errors.wrap('supplied properties not correct for "ResponseInspectionStatusCodeProperty"')}function convertCfnWebACLResponseInspectionStatusCodePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLResponseInspectionStatusCodePropertyValidator(properties).assertSuccess(),{FailureCodes:cdk().listMapper(cdk().numberToCloudFormation)(properties.failureCodes),SuccessCodes:cdk().listMapper(cdk().numberToCloudFormation)(properties.successCodes)}):properties}function CfnWebACLResponseInspectionStatusCodePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("failureCodes","FailureCodes",properties.FailureCodes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getNumber)(properties.FailureCodes):void 0),ret.addPropertyResult("successCodes","SuccessCodes",properties.SuccessCodes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getNumber)(properties.SuccessCodes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLResponseInspectionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("bodyContains",CfnWebACLResponseInspectionBodyContainsPropertyValidator)(properties.bodyContains)),errors.collect(cdk().propertyValidator("header",CfnWebACLResponseInspectionHeaderPropertyValidator)(properties.header)),errors.collect(cdk().propertyValidator("json",CfnWebACLResponseInspectionJsonPropertyValidator)(properties.json)),errors.collect(cdk().propertyValidator("statusCode",CfnWebACLResponseInspectionStatusCodePropertyValidator)(properties.statusCode)),errors.wrap('supplied properties not correct for "ResponseInspectionProperty"')}function convertCfnWebACLResponseInspectionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLResponseInspectionPropertyValidator(properties).assertSuccess(),{BodyContains:convertCfnWebACLResponseInspectionBodyContainsPropertyToCloudFormation(properties.bodyContains),Header:convertCfnWebACLResponseInspectionHeaderPropertyToCloudFormation(properties.header),Json:convertCfnWebACLResponseInspectionJsonPropertyToCloudFormation(properties.json),StatusCode:convertCfnWebACLResponseInspectionStatusCodePropertyToCloudFormation(properties.statusCode)}):properties}function CfnWebACLResponseInspectionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("bodyContains","BodyContains",properties.BodyContains!=null?CfnWebACLResponseInspectionBodyContainsPropertyFromCloudFormation(properties.BodyContains):void 0),ret.addPropertyResult("header","Header",properties.Header!=null?CfnWebACLResponseInspectionHeaderPropertyFromCloudFormation(properties.Header):void 0),ret.addPropertyResult("json","Json",properties.Json!=null?CfnWebACLResponseInspectionJsonPropertyFromCloudFormation(properties.Json):void 0),ret.addPropertyResult("statusCode","StatusCode",properties.StatusCode!=null?CfnWebACLResponseInspectionStatusCodePropertyFromCloudFormation(properties.StatusCode):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRequestInspectionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("passwordField",cdk().requiredValidator)(properties.passwordField)),errors.collect(cdk().propertyValidator("passwordField",CfnWebACLFieldIdentifierPropertyValidator)(properties.passwordField)),errors.collect(cdk().propertyValidator("payloadType",cdk().requiredValidator)(properties.payloadType)),errors.collect(cdk().propertyValidator("payloadType",cdk().validateString)(properties.payloadType)),errors.collect(cdk().propertyValidator("usernameField",cdk().requiredValidator)(properties.usernameField)),errors.collect(cdk().propertyValidator("usernameField",CfnWebACLFieldIdentifierPropertyValidator)(properties.usernameField)),errors.wrap('supplied properties not correct for "RequestInspectionProperty"')}function convertCfnWebACLRequestInspectionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRequestInspectionPropertyValidator(properties).assertSuccess(),{PasswordField:convertCfnWebACLFieldIdentifierPropertyToCloudFormation(properties.passwordField),PayloadType:cdk().stringToCloudFormation(properties.payloadType),UsernameField:convertCfnWebACLFieldIdentifierPropertyToCloudFormation(properties.usernameField)}):properties}function CfnWebACLRequestInspectionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("passwordField","PasswordField",properties.PasswordField!=null?CfnWebACLFieldIdentifierPropertyFromCloudFormation(properties.PasswordField):void 0),ret.addPropertyResult("payloadType","PayloadType",properties.PayloadType!=null?cfn_parse().FromCloudFormation.getString(properties.PayloadType):void 0),ret.addPropertyResult("usernameField","UsernameField",properties.UsernameField!=null?CfnWebACLFieldIdentifierPropertyFromCloudFormation(properties.UsernameField):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLAWSManagedRulesATPRuleSetPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("enableRegexInPath",cdk().validateBoolean)(properties.enableRegexInPath)),errors.collect(cdk().propertyValidator("loginPath",cdk().requiredValidator)(properties.loginPath)),errors.collect(cdk().propertyValidator("loginPath",cdk().validateString)(properties.loginPath)),errors.collect(cdk().propertyValidator("requestInspection",CfnWebACLRequestInspectionPropertyValidator)(properties.requestInspection)),errors.collect(cdk().propertyValidator("responseInspection",CfnWebACLResponseInspectionPropertyValidator)(properties.responseInspection)),errors.wrap('supplied properties not correct for "AWSManagedRulesATPRuleSetProperty"')}function convertCfnWebACLAWSManagedRulesATPRuleSetPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLAWSManagedRulesATPRuleSetPropertyValidator(properties).assertSuccess(),{EnableRegexInPath:cdk().booleanToCloudFormation(properties.enableRegexInPath),LoginPath:cdk().stringToCloudFormation(properties.loginPath),RequestInspection:convertCfnWebACLRequestInspectionPropertyToCloudFormation(properties.requestInspection),ResponseInspection:convertCfnWebACLResponseInspectionPropertyToCloudFormation(properties.responseInspection)}):properties}function CfnWebACLAWSManagedRulesATPRuleSetPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("enableRegexInPath","EnableRegexInPath",properties.EnableRegexInPath!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableRegexInPath):void 0),ret.addPropertyResult("loginPath","LoginPath",properties.LoginPath!=null?cfn_parse().FromCloudFormation.getString(properties.LoginPath):void 0),ret.addPropertyResult("requestInspection","RequestInspection",properties.RequestInspection!=null?CfnWebACLRequestInspectionPropertyFromCloudFormation(properties.RequestInspection):void 0),ret.addPropertyResult("responseInspection","ResponseInspection",properties.ResponseInspection!=null?CfnWebACLResponseInspectionPropertyFromCloudFormation(properties.ResponseInspection):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLAWSManagedRulesBotControlRuleSetPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("enableMachineLearning",cdk().validateBoolean)(properties.enableMachineLearning)),errors.collect(cdk().propertyValidator("inspectionLevel",cdk().requiredValidator)(properties.inspectionLevel)),errors.collect(cdk().propertyValidator("inspectionLevel",cdk().validateString)(properties.inspectionLevel)),errors.wrap('supplied properties not correct for "AWSManagedRulesBotControlRuleSetProperty"')}function convertCfnWebACLAWSManagedRulesBotControlRuleSetPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLAWSManagedRulesBotControlRuleSetPropertyValidator(properties).assertSuccess(),{EnableMachineLearning:cdk().booleanToCloudFormation(properties.enableMachineLearning),InspectionLevel:cdk().stringToCloudFormation(properties.inspectionLevel)}):properties}function CfnWebACLAWSManagedRulesBotControlRuleSetPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("enableMachineLearning","EnableMachineLearning",properties.EnableMachineLearning!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableMachineLearning):void 0),ret.addPropertyResult("inspectionLevel","InspectionLevel",properties.InspectionLevel!=null?cfn_parse().FromCloudFormation.getString(properties.InspectionLevel):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRequestInspectionACFPPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("addressFields",cdk().listValidator(CfnWebACLFieldIdentifierPropertyValidator))(properties.addressFields)),errors.collect(cdk().propertyValidator("emailField",CfnWebACLFieldIdentifierPropertyValidator)(properties.emailField)),errors.collect(cdk().propertyValidator("passwordField",CfnWebACLFieldIdentifierPropertyValidator)(properties.passwordField)),errors.collect(cdk().propertyValidator("payloadType",cdk().requiredValidator)(properties.payloadType)),errors.collect(cdk().propertyValidator("payloadType",cdk().validateString)(properties.payloadType)),errors.collect(cdk().propertyValidator("phoneNumberFields",cdk().listValidator(CfnWebACLFieldIdentifierPropertyValidator))(properties.phoneNumberFields)),errors.collect(cdk().propertyValidator("usernameField",CfnWebACLFieldIdentifierPropertyValidator)(properties.usernameField)),errors.wrap('supplied properties not correct for "RequestInspectionACFPProperty"')}function convertCfnWebACLRequestInspectionACFPPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRequestInspectionACFPPropertyValidator(properties).assertSuccess(),{AddressFields:cdk().listMapper(convertCfnWebACLFieldIdentifierPropertyToCloudFormation)(properties.addressFields),EmailField:convertCfnWebACLFieldIdentifierPropertyToCloudFormation(properties.emailField),PasswordField:convertCfnWebACLFieldIdentifierPropertyToCloudFormation(properties.passwordField),PayloadType:cdk().stringToCloudFormation(properties.payloadType),PhoneNumberFields:cdk().listMapper(convertCfnWebACLFieldIdentifierPropertyToCloudFormation)(properties.phoneNumberFields),UsernameField:convertCfnWebACLFieldIdentifierPropertyToCloudFormation(properties.usernameField)}):properties}function CfnWebACLRequestInspectionACFPPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("addressFields","AddressFields",properties.AddressFields!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLFieldIdentifierPropertyFromCloudFormation)(properties.AddressFields):void 0),ret.addPropertyResult("emailField","EmailField",properties.EmailField!=null?CfnWebACLFieldIdentifierPropertyFromCloudFormation(properties.EmailField):void 0),ret.addPropertyResult("passwordField","PasswordField",properties.PasswordField!=null?CfnWebACLFieldIdentifierPropertyFromCloudFormation(properties.PasswordField):void 0),ret.addPropertyResult("payloadType","PayloadType",properties.PayloadType!=null?cfn_parse().FromCloudFormation.getString(properties.PayloadType):void 0),ret.addPropertyResult("phoneNumberFields","PhoneNumberFields",properties.PhoneNumberFields!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLFieldIdentifierPropertyFromCloudFormation)(properties.PhoneNumberFields):void 0),ret.addPropertyResult("usernameField","UsernameField",properties.UsernameField!=null?CfnWebACLFieldIdentifierPropertyFromCloudFormation(properties.UsernameField):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLAWSManagedRulesACFPRuleSetPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("creationPath",cdk().requiredValidator)(properties.creationPath)),errors.collect(cdk().propertyValidator("creationPath",cdk().validateString)(properties.creationPath)),errors.collect(cdk().propertyValidator("enableRegexInPath",cdk().validateBoolean)(properties.enableRegexInPath)),errors.collect(cdk().propertyValidator("registrationPagePath",cdk().requiredValidator)(properties.registrationPagePath)),errors.collect(cdk().propertyValidator("registrationPagePath",cdk().validateString)(properties.registrationPagePath)),errors.collect(cdk().propertyValidator("requestInspection",cdk().requiredValidator)(properties.requestInspection)),errors.collect(cdk().propertyValidator("requestInspection",CfnWebACLRequestInspectionACFPPropertyValidator)(properties.requestInspection)),errors.collect(cdk().propertyValidator("responseInspection",CfnWebACLResponseInspectionPropertyValidator)(properties.responseInspection)),errors.wrap('supplied properties not correct for "AWSManagedRulesACFPRuleSetProperty"')}function convertCfnWebACLAWSManagedRulesACFPRuleSetPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLAWSManagedRulesACFPRuleSetPropertyValidator(properties).assertSuccess(),{CreationPath:cdk().stringToCloudFormation(properties.creationPath),EnableRegexInPath:cdk().booleanToCloudFormation(properties.enableRegexInPath),RegistrationPagePath:cdk().stringToCloudFormation(properties.registrationPagePath),RequestInspection:convertCfnWebACLRequestInspectionACFPPropertyToCloudFormation(properties.requestInspection),ResponseInspection:convertCfnWebACLResponseInspectionPropertyToCloudFormation(properties.responseInspection)}):properties}function CfnWebACLAWSManagedRulesACFPRuleSetPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("creationPath","CreationPath",properties.CreationPath!=null?cfn_parse().FromCloudFormation.getString(properties.CreationPath):void 0),ret.addPropertyResult("enableRegexInPath","EnableRegexInPath",properties.EnableRegexInPath!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableRegexInPath):void 0),ret.addPropertyResult("registrationPagePath","RegistrationPagePath",properties.RegistrationPagePath!=null?cfn_parse().FromCloudFormation.getString(properties.RegistrationPagePath):void 0),ret.addPropertyResult("requestInspection","RequestInspection",properties.RequestInspection!=null?CfnWebACLRequestInspectionACFPPropertyFromCloudFormation(properties.RequestInspection):void 0),ret.addPropertyResult("responseInspection","ResponseInspection",properties.ResponseInspection!=null?CfnWebACLResponseInspectionPropertyFromCloudFormation(properties.ResponseInspection):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRegexPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("regexString",cdk().validateString)(properties.regexString)),errors.wrap('supplied properties not correct for "RegexProperty"')}function convertCfnWebACLRegexPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRegexPropertyValidator(properties).assertSuccess(),{RegexString:cdk().stringToCloudFormation(properties.regexString)}):properties}function CfnWebACLRegexPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("regexString","RegexString",properties.RegexString!=null?cfn_parse().FromCloudFormation.getString(properties.RegexString):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLClientSideActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("exemptUriRegularExpressions",cdk().listValidator(CfnWebACLRegexPropertyValidator))(properties.exemptUriRegularExpressions)),errors.collect(cdk().propertyValidator("sensitivity",cdk().validateString)(properties.sensitivity)),errors.collect(cdk().propertyValidator("usageOfAction",cdk().requiredValidator)(properties.usageOfAction)),errors.collect(cdk().propertyValidator("usageOfAction",cdk().validateString)(properties.usageOfAction)),errors.wrap('supplied properties not correct for "ClientSideActionProperty"')}function convertCfnWebACLClientSideActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLClientSideActionPropertyValidator(properties).assertSuccess(),{ExemptUriRegularExpressions:cdk().listMapper(convertCfnWebACLRegexPropertyToCloudFormation)(properties.exemptUriRegularExpressions),Sensitivity:cdk().stringToCloudFormation(properties.sensitivity),UsageOfAction:cdk().stringToCloudFormation(properties.usageOfAction)}):properties}function CfnWebACLClientSideActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("exemptUriRegularExpressions","ExemptUriRegularExpressions",properties.ExemptUriRegularExpressions!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLRegexPropertyFromCloudFormation)(properties.ExemptUriRegularExpressions):void 0),ret.addPropertyResult("sensitivity","Sensitivity",properties.Sensitivity!=null?cfn_parse().FromCloudFormation.getString(properties.Sensitivity):void 0),ret.addPropertyResult("usageOfAction","UsageOfAction",properties.UsageOfAction!=null?cfn_parse().FromCloudFormation.getString(properties.UsageOfAction):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLClientSideActionConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("challenge",cdk().requiredValidator)(properties.challenge)),errors.collect(cdk().propertyValidator("challenge",CfnWebACLClientSideActionPropertyValidator)(properties.challenge)),errors.wrap('supplied properties not correct for "ClientSideActionConfigProperty"')}function convertCfnWebACLClientSideActionConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLClientSideActionConfigPropertyValidator(properties).assertSuccess(),{Challenge:convertCfnWebACLClientSideActionPropertyToCloudFormation(properties.challenge)}):properties}function CfnWebACLClientSideActionConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("challenge","Challenge",properties.Challenge!=null?CfnWebACLClientSideActionPropertyFromCloudFormation(properties.Challenge):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLAWSManagedRulesAntiDDoSRuleSetPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("clientSideActionConfig",cdk().requiredValidator)(properties.clientSideActionConfig)),errors.collect(cdk().propertyValidator("clientSideActionConfig",CfnWebACLClientSideActionConfigPropertyValidator)(properties.clientSideActionConfig)),errors.collect(cdk().propertyValidator("sensitivityToBlock",cdk().validateString)(properties.sensitivityToBlock)),errors.wrap('supplied properties not correct for "AWSManagedRulesAntiDDoSRuleSetProperty"')}function convertCfnWebACLAWSManagedRulesAntiDDoSRuleSetPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLAWSManagedRulesAntiDDoSRuleSetPropertyValidator(properties).assertSuccess(),{ClientSideActionConfig:convertCfnWebACLClientSideActionConfigPropertyToCloudFormation(properties.clientSideActionConfig),SensitivityToBlock:cdk().stringToCloudFormation(properties.sensitivityToBlock)}):properties}function CfnWebACLAWSManagedRulesAntiDDoSRuleSetPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("clientSideActionConfig","ClientSideActionConfig",properties.ClientSideActionConfig!=null?CfnWebACLClientSideActionConfigPropertyFromCloudFormation(properties.ClientSideActionConfig):void 0),ret.addPropertyResult("sensitivityToBlock","SensitivityToBlock",properties.SensitivityToBlock!=null?cfn_parse().FromCloudFormation.getString(properties.SensitivityToBlock):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLManagedRuleGroupConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("awsManagedRulesAcfpRuleSet",CfnWebACLAWSManagedRulesACFPRuleSetPropertyValidator)(properties.awsManagedRulesAcfpRuleSet)),errors.collect(cdk().propertyValidator("awsManagedRulesAtpRuleSet",CfnWebACLAWSManagedRulesATPRuleSetPropertyValidator)(properties.awsManagedRulesAtpRuleSet)),errors.collect(cdk().propertyValidator("awsManagedRulesAntiDDoSRuleSet",CfnWebACLAWSManagedRulesAntiDDoSRuleSetPropertyValidator)(properties.awsManagedRulesAntiDDoSRuleSet)),errors.collect(cdk().propertyValidator("awsManagedRulesBotControlRuleSet",CfnWebACLAWSManagedRulesBotControlRuleSetPropertyValidator)(properties.awsManagedRulesBotControlRuleSet)),errors.collect(cdk().propertyValidator("loginPath",cdk().validateString)(properties.loginPath)),errors.collect(cdk().propertyValidator("passwordField",CfnWebACLFieldIdentifierPropertyValidator)(properties.passwordField)),errors.collect(cdk().propertyValidator("payloadType",cdk().validateString)(properties.payloadType)),errors.collect(cdk().propertyValidator("usernameField",CfnWebACLFieldIdentifierPropertyValidator)(properties.usernameField)),errors.wrap('supplied properties not correct for "ManagedRuleGroupConfigProperty"')}function convertCfnWebACLManagedRuleGroupConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLManagedRuleGroupConfigPropertyValidator(properties).assertSuccess(),{AWSManagedRulesACFPRuleSet:convertCfnWebACLAWSManagedRulesACFPRuleSetPropertyToCloudFormation(properties.awsManagedRulesAcfpRuleSet),AWSManagedRulesATPRuleSet:convertCfnWebACLAWSManagedRulesATPRuleSetPropertyToCloudFormation(properties.awsManagedRulesAtpRuleSet),AWSManagedRulesAntiDDoSRuleSet:convertCfnWebACLAWSManagedRulesAntiDDoSRuleSetPropertyToCloudFormation(properties.awsManagedRulesAntiDDoSRuleSet),AWSManagedRulesBotControlRuleSet:convertCfnWebACLAWSManagedRulesBotControlRuleSetPropertyToCloudFormation(properties.awsManagedRulesBotControlRuleSet),LoginPath:cdk().stringToCloudFormation(properties.loginPath),PasswordField:convertCfnWebACLFieldIdentifierPropertyToCloudFormation(properties.passwordField),PayloadType:cdk().stringToCloudFormation(properties.payloadType),UsernameField:convertCfnWebACLFieldIdentifierPropertyToCloudFormation(properties.usernameField)}):properties}function CfnWebACLManagedRuleGroupConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("awsManagedRulesAcfpRuleSet","AWSManagedRulesACFPRuleSet",properties.AWSManagedRulesACFPRuleSet!=null?CfnWebACLAWSManagedRulesACFPRuleSetPropertyFromCloudFormation(properties.AWSManagedRulesACFPRuleSet):void 0),ret.addPropertyResult("awsManagedRulesAntiDDoSRuleSet","AWSManagedRulesAntiDDoSRuleSet",properties.AWSManagedRulesAntiDDoSRuleSet!=null?CfnWebACLAWSManagedRulesAntiDDoSRuleSetPropertyFromCloudFormation(properties.AWSManagedRulesAntiDDoSRuleSet):void 0),ret.addPropertyResult("awsManagedRulesAtpRuleSet","AWSManagedRulesATPRuleSet",properties.AWSManagedRulesATPRuleSet!=null?CfnWebACLAWSManagedRulesATPRuleSetPropertyFromCloudFormation(properties.AWSManagedRulesATPRuleSet):void 0),ret.addPropertyResult("awsManagedRulesBotControlRuleSet","AWSManagedRulesBotControlRuleSet",properties.AWSManagedRulesBotControlRuleSet!=null?CfnWebACLAWSManagedRulesBotControlRuleSetPropertyFromCloudFormation(properties.AWSManagedRulesBotControlRuleSet):void 0),ret.addPropertyResult("loginPath","LoginPath",properties.LoginPath!=null?cfn_parse().FromCloudFormation.getString(properties.LoginPath):void 0),ret.addPropertyResult("passwordField","PasswordField",properties.PasswordField!=null?CfnWebACLFieldIdentifierPropertyFromCloudFormation(properties.PasswordField):void 0),ret.addPropertyResult("payloadType","PayloadType",properties.PayloadType!=null?cfn_parse().FromCloudFormation.getString(properties.PayloadType):void 0),ret.addPropertyResult("usernameField","UsernameField",properties.UsernameField!=null?CfnWebACLFieldIdentifierPropertyFromCloudFormation(properties.UsernameField):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLManagedRuleGroupStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("excludedRules",cdk().listValidator(CfnWebACLExcludedRulePropertyValidator))(properties.excludedRules)),errors.collect(cdk().propertyValidator("managedRuleGroupConfigs",cdk().listValidator(CfnWebACLManagedRuleGroupConfigPropertyValidator))(properties.managedRuleGroupConfigs)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("ruleActionOverrides",cdk().listValidator(CfnWebACLRuleActionOverridePropertyValidator))(properties.ruleActionOverrides)),errors.collect(cdk().propertyValidator("scopeDownStatement",CfnWebACLStatementPropertyValidator)(properties.scopeDownStatement)),errors.collect(cdk().propertyValidator("vendorName",cdk().requiredValidator)(properties.vendorName)),errors.collect(cdk().propertyValidator("vendorName",cdk().validateString)(properties.vendorName)),errors.collect(cdk().propertyValidator("version",cdk().validateString)(properties.version)),errors.wrap('supplied properties not correct for "ManagedRuleGroupStatementProperty"')}function convertCfnWebACLManagedRuleGroupStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLManagedRuleGroupStatementPropertyValidator(properties).assertSuccess(),{ExcludedRules:cdk().listMapper(convertCfnWebACLExcludedRulePropertyToCloudFormation)(properties.excludedRules),ManagedRuleGroupConfigs:cdk().listMapper(convertCfnWebACLManagedRuleGroupConfigPropertyToCloudFormation)(properties.managedRuleGroupConfigs),Name:cdk().stringToCloudFormation(properties.name),RuleActionOverrides:cdk().listMapper(convertCfnWebACLRuleActionOverridePropertyToCloudFormation)(properties.ruleActionOverrides),ScopeDownStatement:convertCfnWebACLStatementPropertyToCloudFormation(properties.scopeDownStatement),VendorName:cdk().stringToCloudFormation(properties.vendorName),Version:cdk().stringToCloudFormation(properties.version)}):properties}function CfnWebACLManagedRuleGroupStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("excludedRules","ExcludedRules",properties.ExcludedRules!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLExcludedRulePropertyFromCloudFormation)(properties.ExcludedRules):void 0),ret.addPropertyResult("managedRuleGroupConfigs","ManagedRuleGroupConfigs",properties.ManagedRuleGroupConfigs!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLManagedRuleGroupConfigPropertyFromCloudFormation)(properties.ManagedRuleGroupConfigs):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("ruleActionOverrides","RuleActionOverrides",properties.RuleActionOverrides!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLRuleActionOverridePropertyFromCloudFormation)(properties.RuleActionOverrides):void 0),ret.addPropertyResult("scopeDownStatement","ScopeDownStatement",properties.ScopeDownStatement!=null?CfnWebACLStatementPropertyFromCloudFormation(properties.ScopeDownStatement):void 0),ret.addPropertyResult("vendorName","VendorName",properties.VendorName!=null?cfn_parse().FromCloudFormation.getString(properties.VendorName):void 0),ret.addPropertyResult("version","Version",properties.Version!=null?cfn_parse().FromCloudFormation.getString(properties.Version):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLIPSetForwardedIPConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().requiredValidator)(properties.fallbackBehavior)),errors.collect(cdk().propertyValidator("fallbackBehavior",cdk().validateString)(properties.fallbackBehavior)),errors.collect(cdk().propertyValidator("headerName",cdk().requiredValidator)(properties.headerName)),errors.collect(cdk().propertyValidator("headerName",cdk().validateString)(properties.headerName)),errors.collect(cdk().propertyValidator("position",cdk().requiredValidator)(properties.position)),errors.collect(cdk().propertyValidator("position",cdk().validateString)(properties.position)),errors.wrap('supplied properties not correct for "IPSetForwardedIPConfigurationProperty"')}function convertCfnWebACLIPSetForwardedIPConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLIPSetForwardedIPConfigurationPropertyValidator(properties).assertSuccess(),{FallbackBehavior:cdk().stringToCloudFormation(properties.fallbackBehavior),HeaderName:cdk().stringToCloudFormation(properties.headerName),Position:cdk().stringToCloudFormation(properties.position)}):properties}function CfnWebACLIPSetForwardedIPConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fallbackBehavior","FallbackBehavior",properties.FallbackBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.FallbackBehavior):void 0),ret.addPropertyResult("headerName","HeaderName",properties.HeaderName!=null?cfn_parse().FromCloudFormation.getString(properties.HeaderName):void 0),ret.addPropertyResult("position","Position",properties.Position!=null?cfn_parse().FromCloudFormation.getString(properties.Position):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLIPSetReferenceStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().requiredValidator)(properties.arn)),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("ipSetForwardedIpConfig",CfnWebACLIPSetForwardedIPConfigurationPropertyValidator)(properties.ipSetForwardedIpConfig)),errors.wrap('supplied properties not correct for "IPSetReferenceStatementProperty"')}function convertCfnWebACLIPSetReferenceStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLIPSetReferenceStatementPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),IPSetForwardedIPConfig:convertCfnWebACLIPSetForwardedIPConfigurationPropertyToCloudFormation(properties.ipSetForwardedIpConfig)}):properties}function CfnWebACLIPSetReferenceStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("ipSetForwardedIpConfig","IPSetForwardedIPConfig",properties.IPSetForwardedIPConfig!=null?CfnWebACLIPSetForwardedIPConfigurationPropertyFromCloudFormation(properties.IPSetForwardedIPConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLAsnMatchStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("asnList",cdk().listValidator(cdk().validateNumber))(properties.asnList)),errors.collect(cdk().propertyValidator("forwardedIpConfig",CfnWebACLForwardedIPConfigurationPropertyValidator)(properties.forwardedIpConfig)),errors.wrap('supplied properties not correct for "AsnMatchStatementProperty"')}function convertCfnWebACLAsnMatchStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLAsnMatchStatementPropertyValidator(properties).assertSuccess(),{AsnList:cdk().listMapper(cdk().numberToCloudFormation)(properties.asnList),ForwardedIPConfig:convertCfnWebACLForwardedIPConfigurationPropertyToCloudFormation(properties.forwardedIpConfig)}):properties}function CfnWebACLAsnMatchStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("asnList","AsnList",properties.AsnList!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getNumber)(properties.AsnList):void 0),ret.addPropertyResult("forwardedIpConfig","ForwardedIPConfig",properties.ForwardedIPConfig!=null?CfnWebACLForwardedIPConfigurationPropertyFromCloudFormation(properties.ForwardedIPConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLStatementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("andStatement",CfnWebACLAndStatementPropertyValidator)(properties.andStatement)),errors.collect(cdk().propertyValidator("asnMatchStatement",CfnWebACLAsnMatchStatementPropertyValidator)(properties.asnMatchStatement)),errors.collect(cdk().propertyValidator("byteMatchStatement",CfnWebACLByteMatchStatementPropertyValidator)(properties.byteMatchStatement)),errors.collect(cdk().propertyValidator("geoMatchStatement",CfnWebACLGeoMatchStatementPropertyValidator)(properties.geoMatchStatement)),errors.collect(cdk().propertyValidator("ipSetReferenceStatement",CfnWebACLIPSetReferenceStatementPropertyValidator)(properties.ipSetReferenceStatement)),errors.collect(cdk().propertyValidator("labelMatchStatement",CfnWebACLLabelMatchStatementPropertyValidator)(properties.labelMatchStatement)),errors.collect(cdk().propertyValidator("managedRuleGroupStatement",CfnWebACLManagedRuleGroupStatementPropertyValidator)(properties.managedRuleGroupStatement)),errors.collect(cdk().propertyValidator("notStatement",CfnWebACLNotStatementPropertyValidator)(properties.notStatement)),errors.collect(cdk().propertyValidator("orStatement",CfnWebACLOrStatementPropertyValidator)(properties.orStatement)),errors.collect(cdk().propertyValidator("rateBasedStatement",CfnWebACLRateBasedStatementPropertyValidator)(properties.rateBasedStatement)),errors.collect(cdk().propertyValidator("regexMatchStatement",CfnWebACLRegexMatchStatementPropertyValidator)(properties.regexMatchStatement)),errors.collect(cdk().propertyValidator("regexPatternSetReferenceStatement",CfnWebACLRegexPatternSetReferenceStatementPropertyValidator)(properties.regexPatternSetReferenceStatement)),errors.collect(cdk().propertyValidator("ruleGroupReferenceStatement",CfnWebACLRuleGroupReferenceStatementPropertyValidator)(properties.ruleGroupReferenceStatement)),errors.collect(cdk().propertyValidator("sizeConstraintStatement",CfnWebACLSizeConstraintStatementPropertyValidator)(properties.sizeConstraintStatement)),errors.collect(cdk().propertyValidator("sqliMatchStatement",CfnWebACLSqliMatchStatementPropertyValidator)(properties.sqliMatchStatement)),errors.collect(cdk().propertyValidator("xssMatchStatement",CfnWebACLXssMatchStatementPropertyValidator)(properties.xssMatchStatement)),errors.wrap('supplied properties not correct for "StatementProperty"')}function convertCfnWebACLStatementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLStatementPropertyValidator(properties).assertSuccess(),{AndStatement:convertCfnWebACLAndStatementPropertyToCloudFormation(properties.andStatement),AsnMatchStatement:convertCfnWebACLAsnMatchStatementPropertyToCloudFormation(properties.asnMatchStatement),ByteMatchStatement:convertCfnWebACLByteMatchStatementPropertyToCloudFormation(properties.byteMatchStatement),GeoMatchStatement:convertCfnWebACLGeoMatchStatementPropertyToCloudFormation(properties.geoMatchStatement),IPSetReferenceStatement:convertCfnWebACLIPSetReferenceStatementPropertyToCloudFormation(properties.ipSetReferenceStatement),LabelMatchStatement:convertCfnWebACLLabelMatchStatementPropertyToCloudFormation(properties.labelMatchStatement),ManagedRuleGroupStatement:convertCfnWebACLManagedRuleGroupStatementPropertyToCloudFormation(properties.managedRuleGroupStatement),NotStatement:convertCfnWebACLNotStatementPropertyToCloudFormation(properties.notStatement),OrStatement:convertCfnWebACLOrStatementPropertyToCloudFormation(properties.orStatement),RateBasedStatement:convertCfnWebACLRateBasedStatementPropertyToCloudFormation(properties.rateBasedStatement),RegexMatchStatement:convertCfnWebACLRegexMatchStatementPropertyToCloudFormation(properties.regexMatchStatement),RegexPatternSetReferenceStatement:convertCfnWebACLRegexPatternSetReferenceStatementPropertyToCloudFormation(properties.regexPatternSetReferenceStatement),RuleGroupReferenceStatement:convertCfnWebACLRuleGroupReferenceStatementPropertyToCloudFormation(properties.ruleGroupReferenceStatement),SizeConstraintStatement:convertCfnWebACLSizeConstraintStatementPropertyToCloudFormation(properties.sizeConstraintStatement),SqliMatchStatement:convertCfnWebACLSqliMatchStatementPropertyToCloudFormation(properties.sqliMatchStatement),XssMatchStatement:convertCfnWebACLXssMatchStatementPropertyToCloudFormation(properties.xssMatchStatement)}):properties}function CfnWebACLStatementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("andStatement","AndStatement",properties.AndStatement!=null?CfnWebACLAndStatementPropertyFromCloudFormation(properties.AndStatement):void 0),ret.addPropertyResult("asnMatchStatement","AsnMatchStatement",properties.AsnMatchStatement!=null?CfnWebACLAsnMatchStatementPropertyFromCloudFormation(properties.AsnMatchStatement):void 0),ret.addPropertyResult("byteMatchStatement","ByteMatchStatement",properties.ByteMatchStatement!=null?CfnWebACLByteMatchStatementPropertyFromCloudFormation(properties.ByteMatchStatement):void 0),ret.addPropertyResult("geoMatchStatement","GeoMatchStatement",properties.GeoMatchStatement!=null?CfnWebACLGeoMatchStatementPropertyFromCloudFormation(properties.GeoMatchStatement):void 0),ret.addPropertyResult("ipSetReferenceStatement","IPSetReferenceStatement",properties.IPSetReferenceStatement!=null?CfnWebACLIPSetReferenceStatementPropertyFromCloudFormation(properties.IPSetReferenceStatement):void 0),ret.addPropertyResult("labelMatchStatement","LabelMatchStatement",properties.LabelMatchStatement!=null?CfnWebACLLabelMatchStatementPropertyFromCloudFormation(properties.LabelMatchStatement):void 0),ret.addPropertyResult("managedRuleGroupStatement","ManagedRuleGroupStatement",properties.ManagedRuleGroupStatement!=null?CfnWebACLManagedRuleGroupStatementPropertyFromCloudFormation(properties.ManagedRuleGroupStatement):void 0),ret.addPropertyResult("notStatement","NotStatement",properties.NotStatement!=null?CfnWebACLNotStatementPropertyFromCloudFormation(properties.NotStatement):void 0),ret.addPropertyResult("orStatement","OrStatement",properties.OrStatement!=null?CfnWebACLOrStatementPropertyFromCloudFormation(properties.OrStatement):void 0),ret.addPropertyResult("rateBasedStatement","RateBasedStatement",properties.RateBasedStatement!=null?CfnWebACLRateBasedStatementPropertyFromCloudFormation(properties.RateBasedStatement):void 0),ret.addPropertyResult("regexMatchStatement","RegexMatchStatement",properties.RegexMatchStatement!=null?CfnWebACLRegexMatchStatementPropertyFromCloudFormation(properties.RegexMatchStatement):void 0),ret.addPropertyResult("regexPatternSetReferenceStatement","RegexPatternSetReferenceStatement",properties.RegexPatternSetReferenceStatement!=null?CfnWebACLRegexPatternSetReferenceStatementPropertyFromCloudFormation(properties.RegexPatternSetReferenceStatement):void 0),ret.addPropertyResult("ruleGroupReferenceStatement","RuleGroupReferenceStatement",properties.RuleGroupReferenceStatement!=null?CfnWebACLRuleGroupReferenceStatementPropertyFromCloudFormation(properties.RuleGroupReferenceStatement):void 0),ret.addPropertyResult("sizeConstraintStatement","SizeConstraintStatement",properties.SizeConstraintStatement!=null?CfnWebACLSizeConstraintStatementPropertyFromCloudFormation(properties.SizeConstraintStatement):void 0),ret.addPropertyResult("sqliMatchStatement","SqliMatchStatement",properties.SqliMatchStatement!=null?CfnWebACLSqliMatchStatementPropertyFromCloudFormation(properties.SqliMatchStatement):void 0),ret.addPropertyResult("xssMatchStatement","XssMatchStatement",properties.XssMatchStatement!=null?CfnWebACLXssMatchStatementPropertyFromCloudFormation(properties.XssMatchStatement):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLOverrideActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("count",cdk().validateObject)(properties.count)),errors.collect(cdk().propertyValidator("none",cdk().validateObject)(properties.none)),errors.wrap('supplied properties not correct for "OverrideActionProperty"')}function convertCfnWebACLOverrideActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLOverrideActionPropertyValidator(properties).assertSuccess(),{Count:cdk().objectToCloudFormation(properties.count),None:cdk().objectToCloudFormation(properties.none)}):properties}function CfnWebACLOverrideActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("count","Count",properties.Count!=null?cfn_parse().FromCloudFormation.getAny(properties.Count):void 0),ret.addPropertyResult("none","None",properties.None!=null?cfn_parse().FromCloudFormation.getAny(properties.None):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLLabelPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "LabelProperty"')}function convertCfnWebACLLabelPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLLabelPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnWebACLLabelPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLVisibilityConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cloudWatchMetricsEnabled",cdk().requiredValidator)(properties.cloudWatchMetricsEnabled)),errors.collect(cdk().propertyValidator("cloudWatchMetricsEnabled",cdk().validateBoolean)(properties.cloudWatchMetricsEnabled)),errors.collect(cdk().propertyValidator("metricName",cdk().requiredValidator)(properties.metricName)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("sampledRequestsEnabled",cdk().requiredValidator)(properties.sampledRequestsEnabled)),errors.collect(cdk().propertyValidator("sampledRequestsEnabled",cdk().validateBoolean)(properties.sampledRequestsEnabled)),errors.wrap('supplied properties not correct for "VisibilityConfigProperty"')}function convertCfnWebACLVisibilityConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLVisibilityConfigPropertyValidator(properties).assertSuccess(),{CloudWatchMetricsEnabled:cdk().booleanToCloudFormation(properties.cloudWatchMetricsEnabled),MetricName:cdk().stringToCloudFormation(properties.metricName),SampledRequestsEnabled:cdk().booleanToCloudFormation(properties.sampledRequestsEnabled)}):properties}function CfnWebACLVisibilityConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cloudWatchMetricsEnabled","CloudWatchMetricsEnabled",properties.CloudWatchMetricsEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.CloudWatchMetricsEnabled):void 0),ret.addPropertyResult("metricName","MetricName",properties.MetricName!=null?cfn_parse().FromCloudFormation.getString(properties.MetricName):void 0),ret.addPropertyResult("sampledRequestsEnabled","SampledRequestsEnabled",properties.SampledRequestsEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SampledRequestsEnabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLCaptchaConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("immunityTimeProperty",CfnWebACLImmunityTimePropertyPropertyValidator)(properties.immunityTimeProperty)),errors.wrap('supplied properties not correct for "CaptchaConfigProperty"')}function convertCfnWebACLCaptchaConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLCaptchaConfigPropertyValidator(properties).assertSuccess(),{ImmunityTimeProperty:convertCfnWebACLImmunityTimePropertyPropertyToCloudFormation(properties.immunityTimeProperty)}):properties}function CfnWebACLCaptchaConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("immunityTimeProperty","ImmunityTimeProperty",properties.ImmunityTimeProperty!=null?CfnWebACLImmunityTimePropertyPropertyFromCloudFormation(properties.ImmunityTimeProperty):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLRulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("action",CfnWebACLRuleActionPropertyValidator)(properties.action)),errors.collect(cdk().propertyValidator("captchaConfig",CfnWebACLCaptchaConfigPropertyValidator)(properties.captchaConfig)),errors.collect(cdk().propertyValidator("challengeConfig",CfnWebACLChallengeConfigPropertyValidator)(properties.challengeConfig)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("overrideAction",CfnWebACLOverrideActionPropertyValidator)(properties.overrideAction)),errors.collect(cdk().propertyValidator("priority",cdk().requiredValidator)(properties.priority)),errors.collect(cdk().propertyValidator("priority",cdk().validateNumber)(properties.priority)),errors.collect(cdk().propertyValidator("ruleLabels",cdk().listValidator(CfnWebACLLabelPropertyValidator))(properties.ruleLabels)),errors.collect(cdk().propertyValidator("statement",cdk().requiredValidator)(properties.statement)),errors.collect(cdk().propertyValidator("statement",CfnWebACLStatementPropertyValidator)(properties.statement)),errors.collect(cdk().propertyValidator("visibilityConfig",cdk().requiredValidator)(properties.visibilityConfig)),errors.collect(cdk().propertyValidator("visibilityConfig",CfnWebACLVisibilityConfigPropertyValidator)(properties.visibilityConfig)),errors.wrap('supplied properties not correct for "RuleProperty"')}function convertCfnWebACLRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLRulePropertyValidator(properties).assertSuccess(),{Action:convertCfnWebACLRuleActionPropertyToCloudFormation(properties.action),CaptchaConfig:convertCfnWebACLCaptchaConfigPropertyToCloudFormation(properties.captchaConfig),ChallengeConfig:convertCfnWebACLChallengeConfigPropertyToCloudFormation(properties.challengeConfig),Name:cdk().stringToCloudFormation(properties.name),OverrideAction:convertCfnWebACLOverrideActionPropertyToCloudFormation(properties.overrideAction),Priority:cdk().numberToCloudFormation(properties.priority),RuleLabels:cdk().listMapper(convertCfnWebACLLabelPropertyToCloudFormation)(properties.ruleLabels),Statement:convertCfnWebACLStatementPropertyToCloudFormation(properties.statement),VisibilityConfig:convertCfnWebACLVisibilityConfigPropertyToCloudFormation(properties.visibilityConfig)}):properties}function CfnWebACLRulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",properties.Action!=null?CfnWebACLRuleActionPropertyFromCloudFormation(properties.Action):void 0),ret.addPropertyResult("captchaConfig","CaptchaConfig",properties.CaptchaConfig!=null?CfnWebACLCaptchaConfigPropertyFromCloudFormation(properties.CaptchaConfig):void 0),ret.addPropertyResult("challengeConfig","ChallengeConfig",properties.ChallengeConfig!=null?CfnWebACLChallengeConfigPropertyFromCloudFormation(properties.ChallengeConfig):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("overrideAction","OverrideAction",properties.OverrideAction!=null?CfnWebACLOverrideActionPropertyFromCloudFormation(properties.OverrideAction):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse().FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("ruleLabels","RuleLabels",properties.RuleLabels!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLLabelPropertyFromCloudFormation)(properties.RuleLabels):void 0),ret.addPropertyResult("statement","Statement",properties.Statement!=null?CfnWebACLStatementPropertyFromCloudFormation(properties.Statement):void 0),ret.addPropertyResult("visibilityConfig","VisibilityConfig",properties.VisibilityConfig!=null?CfnWebACLVisibilityConfigPropertyFromCloudFormation(properties.VisibilityConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLFieldToProtectPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fieldKeys",cdk().listValidator(cdk().validateString))(properties.fieldKeys)),errors.collect(cdk().propertyValidator("fieldType",cdk().requiredValidator)(properties.fieldType)),errors.collect(cdk().propertyValidator("fieldType",cdk().validateString)(properties.fieldType)),errors.wrap('supplied properties not correct for "FieldToProtectProperty"')}function convertCfnWebACLFieldToProtectPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLFieldToProtectPropertyValidator(properties).assertSuccess(),{FieldKeys:cdk().listMapper(cdk().stringToCloudFormation)(properties.fieldKeys),FieldType:cdk().stringToCloudFormation(properties.fieldType)}):properties}function CfnWebACLFieldToProtectPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fieldKeys","FieldKeys",properties.FieldKeys!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.FieldKeys):void 0),ret.addPropertyResult("fieldType","FieldType",properties.FieldType!=null?cfn_parse().FromCloudFormation.getString(properties.FieldType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLDataProtectPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("action",cdk().requiredValidator)(properties.action)),errors.collect(cdk().propertyValidator("action",cdk().validateString)(properties.action)),errors.collect(cdk().propertyValidator("excludeRateBasedDetails",cdk().validateBoolean)(properties.excludeRateBasedDetails)),errors.collect(cdk().propertyValidator("excludeRuleMatchDetails",cdk().validateBoolean)(properties.excludeRuleMatchDetails)),errors.collect(cdk().propertyValidator("field",cdk().requiredValidator)(properties.field)),errors.collect(cdk().propertyValidator("field",CfnWebACLFieldToProtectPropertyValidator)(properties.field)),errors.wrap('supplied properties not correct for "DataProtectProperty"')}function convertCfnWebACLDataProtectPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLDataProtectPropertyValidator(properties).assertSuccess(),{Action:cdk().stringToCloudFormation(properties.action),ExcludeRateBasedDetails:cdk().booleanToCloudFormation(properties.excludeRateBasedDetails),ExcludeRuleMatchDetails:cdk().booleanToCloudFormation(properties.excludeRuleMatchDetails),Field:convertCfnWebACLFieldToProtectPropertyToCloudFormation(properties.field)}):properties}function CfnWebACLDataProtectPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",properties.Action!=null?cfn_parse().FromCloudFormation.getString(properties.Action):void 0),ret.addPropertyResult("excludeRateBasedDetails","ExcludeRateBasedDetails",properties.ExcludeRateBasedDetails!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ExcludeRateBasedDetails):void 0),ret.addPropertyResult("excludeRuleMatchDetails","ExcludeRuleMatchDetails",properties.ExcludeRuleMatchDetails!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ExcludeRuleMatchDetails):void 0),ret.addPropertyResult("field","Field",properties.Field!=null?CfnWebACLFieldToProtectPropertyFromCloudFormation(properties.Field):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLDataProtectionConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("dataProtections",cdk().requiredValidator)(properties.dataProtections)),errors.collect(cdk().propertyValidator("dataProtections",cdk().listValidator(CfnWebACLDataProtectPropertyValidator))(properties.dataProtections)),errors.wrap('supplied properties not correct for "DataProtectionConfigProperty"')}function convertCfnWebACLDataProtectionConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLDataProtectionConfigPropertyValidator(properties).assertSuccess(),{DataProtections:cdk().listMapper(convertCfnWebACLDataProtectPropertyToCloudFormation)(properties.dataProtections)}):properties}function CfnWebACLDataProtectionConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("dataProtections","DataProtections",properties.DataProtections!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLDataProtectPropertyFromCloudFormation)(properties.DataProtections):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLApplicationAttributePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("values",cdk().requiredValidator)(properties.values)),errors.collect(cdk().propertyValidator("values",cdk().listValidator(cdk().validateString))(properties.values)),errors.wrap('supplied properties not correct for "ApplicationAttributeProperty"')}function convertCfnWebACLApplicationAttributePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLApplicationAttributePropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Values:cdk().listMapper(cdk().stringToCloudFormation)(properties.values)}):properties}function CfnWebACLApplicationAttributePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("values","Values",properties.Values!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Values):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLApplicationConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attributes",cdk().requiredValidator)(properties.attributes)),errors.collect(cdk().propertyValidator("attributes",cdk().listValidator(CfnWebACLApplicationAttributePropertyValidator))(properties.attributes)),errors.wrap('supplied properties not correct for "ApplicationConfigProperty"')}function convertCfnWebACLApplicationConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLApplicationConfigPropertyValidator(properties).assertSuccess(),{Attributes:cdk().listMapper(convertCfnWebACLApplicationAttributePropertyToCloudFormation)(properties.attributes)}):properties}function CfnWebACLApplicationConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attributes","Attributes",properties.Attributes!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLApplicationAttributePropertyFromCloudFormation)(properties.Attributes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLOnSourceDDoSProtectionConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("albLowReputationMode",cdk().requiredValidator)(properties.albLowReputationMode)),errors.collect(cdk().propertyValidator("albLowReputationMode",cdk().validateString)(properties.albLowReputationMode)),errors.wrap('supplied properties not correct for "OnSourceDDoSProtectionConfigProperty"')}function convertCfnWebACLOnSourceDDoSProtectionConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLOnSourceDDoSProtectionConfigPropertyValidator(properties).assertSuccess(),{ALBLowReputationMode:cdk().stringToCloudFormation(properties.albLowReputationMode)}):properties}function CfnWebACLOnSourceDDoSProtectionConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("albLowReputationMode","ALBLowReputationMode",properties.ALBLowReputationMode!=null?cfn_parse().FromCloudFormation.getString(properties.ALBLowReputationMode):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("applicationConfig",CfnWebACLApplicationConfigPropertyValidator)(properties.applicationConfig)),errors.collect(cdk().propertyValidator("associationConfig",CfnWebACLAssociationConfigPropertyValidator)(properties.associationConfig)),errors.collect(cdk().propertyValidator("captchaConfig",CfnWebACLCaptchaConfigPropertyValidator)(properties.captchaConfig)),errors.collect(cdk().propertyValidator("challengeConfig",CfnWebACLChallengeConfigPropertyValidator)(properties.challengeConfig)),errors.collect(cdk().propertyValidator("customResponseBodies",cdk().hashValidator(CfnWebACLCustomResponseBodyPropertyValidator))(properties.customResponseBodies)),errors.collect(cdk().propertyValidator("dataProtectionConfig",CfnWebACLDataProtectionConfigPropertyValidator)(properties.dataProtectionConfig)),errors.collect(cdk().propertyValidator("defaultAction",cdk().requiredValidator)(properties.defaultAction)),errors.collect(cdk().propertyValidator("defaultAction",CfnWebACLDefaultActionPropertyValidator)(properties.defaultAction)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("onSourceDDoSProtectionConfig",CfnWebACLOnSourceDDoSProtectionConfigPropertyValidator)(properties.onSourceDDoSProtectionConfig)),errors.collect(cdk().propertyValidator("rules",cdk().listValidator(CfnWebACLRulePropertyValidator))(properties.rules)),errors.collect(cdk().propertyValidator("scope",cdk().requiredValidator)(properties.scope)),errors.collect(cdk().propertyValidator("scope",cdk().validateString)(properties.scope)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("tokenDomains",cdk().listValidator(cdk().validateString))(properties.tokenDomains)),errors.collect(cdk().propertyValidator("visibilityConfig",cdk().requiredValidator)(properties.visibilityConfig)),errors.collect(cdk().propertyValidator("visibilityConfig",CfnWebACLVisibilityConfigPropertyValidator)(properties.visibilityConfig)),errors.wrap('supplied properties not correct for "CfnWebACLProps"')}function convertCfnWebACLPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLPropsValidator(properties).assertSuccess(),{ApplicationConfig:convertCfnWebACLApplicationConfigPropertyToCloudFormation(properties.applicationConfig),AssociationConfig:convertCfnWebACLAssociationConfigPropertyToCloudFormation(properties.associationConfig),CaptchaConfig:convertCfnWebACLCaptchaConfigPropertyToCloudFormation(properties.captchaConfig),ChallengeConfig:convertCfnWebACLChallengeConfigPropertyToCloudFormation(properties.challengeConfig),CustomResponseBodies:cdk().hashMapper(convertCfnWebACLCustomResponseBodyPropertyToCloudFormation)(properties.customResponseBodies),DataProtectionConfig:convertCfnWebACLDataProtectionConfigPropertyToCloudFormation(properties.dataProtectionConfig),DefaultAction:convertCfnWebACLDefaultActionPropertyToCloudFormation(properties.defaultAction),Description:cdk().stringToCloudFormation(properties.description),Name:cdk().stringToCloudFormation(properties.name),OnSourceDDoSProtectionConfig:convertCfnWebACLOnSourceDDoSProtectionConfigPropertyToCloudFormation(properties.onSourceDDoSProtectionConfig),Rules:cdk().listMapper(convertCfnWebACLRulePropertyToCloudFormation)(properties.rules),Scope:cdk().stringToCloudFormation(properties.scope),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TokenDomains:cdk().listMapper(cdk().stringToCloudFormation)(properties.tokenDomains),VisibilityConfig:convertCfnWebACLVisibilityConfigPropertyToCloudFormation(properties.visibilityConfig)}):properties}function CfnWebACLPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("applicationConfig","ApplicationConfig",properties.ApplicationConfig!=null?CfnWebACLApplicationConfigPropertyFromCloudFormation(properties.ApplicationConfig):void 0),ret.addPropertyResult("associationConfig","AssociationConfig",properties.AssociationConfig!=null?CfnWebACLAssociationConfigPropertyFromCloudFormation(properties.AssociationConfig):void 0),ret.addPropertyResult("captchaConfig","CaptchaConfig",properties.CaptchaConfig!=null?CfnWebACLCaptchaConfigPropertyFromCloudFormation(properties.CaptchaConfig):void 0),ret.addPropertyResult("challengeConfig","ChallengeConfig",properties.ChallengeConfig!=null?CfnWebACLChallengeConfigPropertyFromCloudFormation(properties.ChallengeConfig):void 0),ret.addPropertyResult("customResponseBodies","CustomResponseBodies",properties.CustomResponseBodies!=null?cfn_parse().FromCloudFormation.getMap(CfnWebACLCustomResponseBodyPropertyFromCloudFormation)(properties.CustomResponseBodies):void 0),ret.addPropertyResult("dataProtectionConfig","DataProtectionConfig",properties.DataProtectionConfig!=null?CfnWebACLDataProtectionConfigPropertyFromCloudFormation(properties.DataProtectionConfig):void 0),ret.addPropertyResult("defaultAction","DefaultAction",properties.DefaultAction!=null?CfnWebACLDefaultActionPropertyFromCloudFormation(properties.DefaultAction):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("onSourceDDoSProtectionConfig","OnSourceDDoSProtectionConfig",properties.OnSourceDDoSProtectionConfig!=null?CfnWebACLOnSourceDDoSProtectionConfigPropertyFromCloudFormation(properties.OnSourceDDoSProtectionConfig):void 0),ret.addPropertyResult("rules","Rules",properties.Rules!=null?cfn_parse().FromCloudFormation.getArray(CfnWebACLRulePropertyFromCloudFormation)(properties.Rules):void 0),ret.addPropertyResult("scope","Scope",properties.Scope!=null?cfn_parse().FromCloudFormation.getString(properties.Scope):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("tokenDomains","TokenDomains",properties.TokenDomains!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TokenDomains):void 0),ret.addPropertyResult("visibilityConfig","VisibilityConfig",properties.VisibilityConfig!=null?CfnWebACLVisibilityConfigPropertyFromCloudFormation(properties.VisibilityConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLSingleHeaderPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "SingleHeaderProperty"')}function convertCfnWebACLSingleHeaderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLSingleHeaderPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnWebACLSingleHeaderPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWebACLSingleQueryArgumentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "SingleQueryArgumentProperty"')}function convertCfnWebACLSingleQueryArgumentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLSingleQueryArgumentPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnWebACLSingleQueryArgumentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnWebACLAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_wafv2.CfnWebACLAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::WAFv2::WebACLAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnWebACLAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnWebACLAssociation(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnWebACLAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnWebACLAssociation.CFN_RESOURCE_TYPE_NAME}_resourceArn;_webAclArn;cfnPropertyNames={resourceArn:"ResourceArn",webAclArn:"WebACLArn"};constructor(scope,id,props){super(scope,id,{type:CfnWebACLAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_wafv2_CfnWebACLAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnWebACLAssociation),error}cdk().requireProperty(props,"resourceArn",this),cdk().requireProperty(props,"webAclArn",this),this._resourceArn=cdk().getRefProperty(props.resourceArn?.loadBalancerRef,"loadBalancerArn")??cdk().getRefProperty(props.resourceArn?.webAclRef,"webAclArn")??cdk().getRefProperty(props.resourceArn?.graphQlApiRef,"graphQlApiArn")??cdk().ensureStringOrUndefined(props.resourceArn,"resourceArn","elasticloadbalancingv2.ILoadBalancerRef | wafv2.IWebACLRef | appsync.IGraphQLApiRef | string"),this._webAclArn=props.webAclArn}get webAclAssociationRef(){return{resourceArn:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),webAclArn:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get resourceArn(){return this._resourceArn}set resourceArn(value){cdk().traceProperty(this.node,"ResourceArn"),this._resourceArn=value}get webAclArn(){return this._webAclArn}set webAclArn(value){cdk().traceProperty(this.node,"WebACLArn"),this._webAclArn=value}get cfnProperties(){return{resourceArn:this._resourceArn,webAclArn:this._webAclArn}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnWebACLAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnWebACLAssociationPropsToCloudFormation(props)}}exports.CfnWebACLAssociation=CfnWebACLAssociation;function CfnWebACLAssociationPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("resourceArn",cdk().requiredValidator)(properties.resourceArn)),errors.collect(cdk().propertyValidator("resourceArn",cdk().validateString)(properties.resourceArn)),errors.collect(cdk().propertyValidator("webAclArn",cdk().requiredValidator)(properties.webAclArn)),errors.collect(cdk().propertyValidator("webAclArn",cdk().validateString)(properties.webAclArn)),errors.wrap('supplied properties not correct for "CfnWebACLAssociationProps"')}function convertCfnWebACLAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWebACLAssociationPropsValidator(properties).assertSuccess(),{ResourceArn:cdk().stringToCloudFormation(properties.resourceArn),WebACLArn:cdk().stringToCloudFormation(properties.webAclArn)}):properties}function CfnWebACLAssociationPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceArn","ResourceArn",properties.ResourceArn!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceArn):void 0),ret.addPropertyResult("webAclArn","WebACLArn",properties.WebACLArn!=null?cfn_parse().FromCloudFormation.getString(properties.WebACLArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}