"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnVpcEndpointAssociation=exports.CfnTLSInspectionConfiguration=exports.CfnRuleGroup=exports.CfnLoggingConfiguration=exports.CfnFirewallPolicy=exports.CfnFirewall=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 CfnFirewall extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkfirewall.CfnFirewall",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkFirewall::Firewall";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnFirewallPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnFirewall(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 isCfnFirewall(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnFirewall.CFN_RESOURCE_TYPE_NAME}static arnForFirewall(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_networkfirewall_IFirewallRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForFirewall),error}return resource.firewallRef.firewallArn}_availabilityZoneChangeProtection;_availabilityZoneMappings;_deleteProtection;_description;_enabledAnalysisTypes;_firewallName;_firewallPolicyArn;_firewallPolicyChangeProtection;_subnetChangeProtection;_subnetMappings;tags;_tagsRaw;_transitGatewayId;_vpcId;cfnPropertyNames={availabilityZoneChangeProtection:"AvailabilityZoneChangeProtection",availabilityZoneMappings:"AvailabilityZoneMappings",deleteProtection:"DeleteProtection",description:"Description",enabledAnalysisTypes:"EnabledAnalysisTypes",firewallName:"FirewallName",firewallPolicyArn:"FirewallPolicyArn",firewallPolicyChangeProtection:"FirewallPolicyChangeProtection",subnetChangeProtection:"SubnetChangeProtection",subnetMappings:"SubnetMappings",tags:"Tags",transitGatewayId:"TransitGatewayId",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnFirewall.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkfirewall_CfnFirewallProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnFirewall),error}cdk().requireProperty(props,"firewallName",this),cdk().requireProperty(props,"firewallPolicyArn",this),this._availabilityZoneChangeProtection=props.availabilityZoneChangeProtection,this._availabilityZoneMappings=props.availabilityZoneMappings,this._deleteProtection=props.deleteProtection,this._description=props.description,this._enabledAnalysisTypes=props.enabledAnalysisTypes,this._firewallName=props.firewallName,this._firewallPolicyArn=cdk().getRefProperty(props.firewallPolicyArn?.firewallPolicyRef,"firewallPolicyArn")??cdk().ensureStringOrUndefined(props.firewallPolicyArn,"firewallPolicyArn","networkfirewall.IFirewallPolicyRef | string"),this._firewallPolicyChangeProtection=props.firewallPolicyChangeProtection,this._subnetChangeProtection=props.subnetChangeProtection,this._subnetMappings=props.subnetMappings,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkFirewall::Firewall",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._transitGatewayId=props.transitGatewayId,this._vpcId=cdk().getRefProperty(props.vpcId?.vpcRef,"vpcId")??cdk().ensureStringOrUndefined(props.vpcId,"vpcId","ec2.IVPCRef | string")}get firewallRef(){return{firewallArn:this.ref}}get availabilityZoneChangeProtection(){return this._availabilityZoneChangeProtection}set availabilityZoneChangeProtection(value){cdk().traceProperty(this.node,"AvailabilityZoneChangeProtection"),this._availabilityZoneChangeProtection=value}get availabilityZoneMappings(){return this._availabilityZoneMappings}set availabilityZoneMappings(value){cdk().traceProperty(this.node,"AvailabilityZoneMappings"),this._availabilityZoneMappings=value}get deleteProtection(){return this._deleteProtection}set deleteProtection(value){cdk().traceProperty(this.node,"DeleteProtection"),this._deleteProtection=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get enabledAnalysisTypes(){return this._enabledAnalysisTypes}set enabledAnalysisTypes(value){cdk().traceProperty(this.node,"EnabledAnalysisTypes"),this._enabledAnalysisTypes=value}get firewallName(){return this._firewallName}set firewallName(value){cdk().traceProperty(this.node,"FirewallName"),this._firewallName=value}get firewallPolicyArn(){return this._firewallPolicyArn}set firewallPolicyArn(value){cdk().traceProperty(this.node,"FirewallPolicyArn"),this._firewallPolicyArn=value}get firewallPolicyChangeProtection(){return this._firewallPolicyChangeProtection}set firewallPolicyChangeProtection(value){cdk().traceProperty(this.node,"FirewallPolicyChangeProtection"),this._firewallPolicyChangeProtection=value}get subnetChangeProtection(){return this._subnetChangeProtection}set subnetChangeProtection(value){cdk().traceProperty(this.node,"SubnetChangeProtection"),this._subnetChangeProtection=value}get subnetMappings(){return this._subnetMappings}set subnetMappings(value){cdk().traceProperty(this.node,"SubnetMappings"),this._subnetMappings=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get transitGatewayId(){return this._transitGatewayId}set transitGatewayId(value){cdk().traceProperty(this.node,"TransitGatewayId"),this._transitGatewayId=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrEndpointIds(){return cdk().Token.asList(this.getAtt("EndpointIds",cdk().ResolutionTypeHint.STRING_LIST))}get attrFirewallArn(){return cdk().Token.asString(this.getAtt("FirewallArn",cdk().ResolutionTypeHint.STRING))}get attrFirewallId(){return cdk().Token.asString(this.getAtt("FirewallId",cdk().ResolutionTypeHint.STRING))}get attrTransitGatewayAttachmentId(){return cdk().Token.asString(this.getAtt("TransitGatewayAttachmentId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{availabilityZoneChangeProtection:this._availabilityZoneChangeProtection,availabilityZoneMappings:this._availabilityZoneMappings,deleteProtection:this._deleteProtection,description:this._description,enabledAnalysisTypes:this._enabledAnalysisTypes,firewallName:this._firewallName,firewallPolicyArn:this._firewallPolicyArn,firewallPolicyChangeProtection:this._firewallPolicyChangeProtection,subnetChangeProtection:this._subnetChangeProtection,subnetMappings:this._subnetMappings,tags:this.tags.renderTags(),transitGatewayId:this._transitGatewayId,vpcId:this._vpcId}}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",CfnFirewall.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnFirewallPropsToCloudFormation(props)}}exports.CfnFirewall=CfnFirewall;function CfnFirewallSubnetMappingPropertyValidator(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("ipAddressType",cdk().validateString)(properties.ipAddressType)),errors.collect(cdk().propertyValidator("subnetId",cdk().requiredValidator)(properties.subnetId)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "SubnetMappingProperty"')}function convertCfnFirewallSubnetMappingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFirewallSubnetMappingPropertyValidator(properties).assertSuccess(),{IPAddressType:cdk().stringToCloudFormation(properties.ipAddressType),SubnetId:cdk().stringToCloudFormation(properties.subnetId)}):properties}function CfnFirewallSubnetMappingPropertyFromCloudFormation(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("ipAddressType","IPAddressType",properties.IPAddressType!=null?cfn_parse().FromCloudFormation.getString(properties.IPAddressType):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFirewallAvailabilityZoneMappingPropertyValidator(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("availabilityZone",cdk().requiredValidator)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.wrap('supplied properties not correct for "AvailabilityZoneMappingProperty"')}function convertCfnFirewallAvailabilityZoneMappingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFirewallAvailabilityZoneMappingPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone)}):properties}function CfnFirewallAvailabilityZoneMappingPropertyFromCloudFormation(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("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFirewallPropsValidator(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("availabilityZoneChangeProtection",cdk().validateBoolean)(properties.availabilityZoneChangeProtection)),errors.collect(cdk().propertyValidator("availabilityZoneMappings",cdk().listValidator(CfnFirewallAvailabilityZoneMappingPropertyValidator))(properties.availabilityZoneMappings)),errors.collect(cdk().propertyValidator("deleteProtection",cdk().validateBoolean)(properties.deleteProtection)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("enabledAnalysisTypes",cdk().listValidator(cdk().validateString))(properties.enabledAnalysisTypes)),errors.collect(cdk().propertyValidator("firewallName",cdk().requiredValidator)(properties.firewallName)),errors.collect(cdk().propertyValidator("firewallName",cdk().validateString)(properties.firewallName)),errors.collect(cdk().propertyValidator("firewallPolicyArn",cdk().requiredValidator)(properties.firewallPolicyArn)),errors.collect(cdk().propertyValidator("firewallPolicyArn",cdk().validateString)(properties.firewallPolicyArn)),errors.collect(cdk().propertyValidator("firewallPolicyChangeProtection",cdk().validateBoolean)(properties.firewallPolicyChangeProtection)),errors.collect(cdk().propertyValidator("subnetChangeProtection",cdk().validateBoolean)(properties.subnetChangeProtection)),errors.collect(cdk().propertyValidator("subnetMappings",cdk().listValidator(CfnFirewallSubnetMappingPropertyValidator))(properties.subnetMappings)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().validateString)(properties.transitGatewayId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnFirewallProps"')}function convertCfnFirewallPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFirewallPropsValidator(properties).assertSuccess(),{AvailabilityZoneChangeProtection:cdk().booleanToCloudFormation(properties.availabilityZoneChangeProtection),AvailabilityZoneMappings:cdk().listMapper(convertCfnFirewallAvailabilityZoneMappingPropertyToCloudFormation)(properties.availabilityZoneMappings),DeleteProtection:cdk().booleanToCloudFormation(properties.deleteProtection),Description:cdk().stringToCloudFormation(properties.description),EnabledAnalysisTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.enabledAnalysisTypes),FirewallName:cdk().stringToCloudFormation(properties.firewallName),FirewallPolicyArn:cdk().stringToCloudFormation(properties.firewallPolicyArn),FirewallPolicyChangeProtection:cdk().booleanToCloudFormation(properties.firewallPolicyChangeProtection),SubnetChangeProtection:cdk().booleanToCloudFormation(properties.subnetChangeProtection),SubnetMappings:cdk().listMapper(convertCfnFirewallSubnetMappingPropertyToCloudFormation)(properties.subnetMappings),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransitGatewayId:cdk().stringToCloudFormation(properties.transitGatewayId),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnFirewallPropsFromCloudFormation(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("availabilityZoneChangeProtection","AvailabilityZoneChangeProtection",properties.AvailabilityZoneChangeProtection!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AvailabilityZoneChangeProtection):void 0),ret.addPropertyResult("availabilityZoneMappings","AvailabilityZoneMappings",properties.AvailabilityZoneMappings!=null?cfn_parse().FromCloudFormation.getArray(CfnFirewallAvailabilityZoneMappingPropertyFromCloudFormation)(properties.AvailabilityZoneMappings):void 0),ret.addPropertyResult("deleteProtection","DeleteProtection",properties.DeleteProtection!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeleteProtection):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("enabledAnalysisTypes","EnabledAnalysisTypes",properties.EnabledAnalysisTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.EnabledAnalysisTypes):void 0),ret.addPropertyResult("firewallName","FirewallName",properties.FirewallName!=null?cfn_parse().FromCloudFormation.getString(properties.FirewallName):void 0),ret.addPropertyResult("firewallPolicyArn","FirewallPolicyArn",properties.FirewallPolicyArn!=null?cfn_parse().FromCloudFormation.getString(properties.FirewallPolicyArn):void 0),ret.addPropertyResult("firewallPolicyChangeProtection","FirewallPolicyChangeProtection",properties.FirewallPolicyChangeProtection!=null?cfn_parse().FromCloudFormation.getBoolean(properties.FirewallPolicyChangeProtection):void 0),ret.addPropertyResult("subnetChangeProtection","SubnetChangeProtection",properties.SubnetChangeProtection!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SubnetChangeProtection):void 0),ret.addPropertyResult("subnetMappings","SubnetMappings",properties.SubnetMappings!=null?cfn_parse().FromCloudFormation.getArray(CfnFirewallSubnetMappingPropertyFromCloudFormation)(properties.SubnetMappings):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnFirewallPolicy extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkfirewall.CfnFirewallPolicy",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkFirewall::FirewallPolicy";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnFirewallPolicyPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnFirewallPolicy(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 isCfnFirewallPolicy(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnFirewallPolicy.CFN_RESOURCE_TYPE_NAME}static arnForFirewallPolicy(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_networkfirewall_IFirewallPolicyRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForFirewallPolicy),error}return resource.firewallPolicyRef.firewallPolicyArn}_description;_firewallPolicy;_firewallPolicyName;tags;_tagsRaw;cfnPropertyNames={description:"Description",firewallPolicy:"FirewallPolicy",firewallPolicyName:"FirewallPolicyName",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnFirewallPolicy.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkfirewall_CfnFirewallPolicyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnFirewallPolicy),error}cdk().requireProperty(props,"firewallPolicy",this),cdk().requireProperty(props,"firewallPolicyName",this),this._description=props.description,this._firewallPolicy=props.firewallPolicy,this._firewallPolicyName=props.firewallPolicyName,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkFirewall::FirewallPolicy",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get firewallPolicyRef(){return{firewallPolicyArn:this.ref}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get firewallPolicy(){return this._firewallPolicy}set firewallPolicy(value){cdk().traceProperty(this.node,"FirewallPolicy"),this._firewallPolicy=value}get firewallPolicyName(){return this._firewallPolicyName}set firewallPolicyName(value){cdk().traceProperty(this.node,"FirewallPolicyName"),this._firewallPolicyName=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrFirewallPolicyArn(){return cdk().Token.asString(this.getAtt("FirewallPolicyArn",cdk().ResolutionTypeHint.STRING))}get attrFirewallPolicyId(){return cdk().Token.asString(this.getAtt("FirewallPolicyId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{description:this._description,firewallPolicy:this._firewallPolicy,firewallPolicyName:this._firewallPolicyName,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",CfnFirewallPolicy.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnFirewallPolicyPropsToCloudFormation(props)}}exports.CfnFirewallPolicy=CfnFirewallPolicy;function CfnFirewallPolicyStatelessRuleGroupReferencePropertyValidator(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("resourceArn",cdk().requiredValidator)(properties.resourceArn)),errors.collect(cdk().propertyValidator("resourceArn",cdk().validateString)(properties.resourceArn)),errors.wrap('supplied properties not correct for "StatelessRuleGroupReferenceProperty"')}function convertCfnFirewallPolicyStatelessRuleGroupReferencePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFirewallPolicyStatelessRuleGroupReferencePropertyValidator(properties).assertSuccess(),{Priority:cdk().numberToCloudFormation(properties.priority),ResourceArn:cdk().stringToCloudFormation(properties.resourceArn)}):properties}function CfnFirewallPolicyStatelessRuleGroupReferencePropertyFromCloudFormation(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("resourceArn","ResourceArn",properties.ResourceArn!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFirewallPolicyStatefulRuleGroupOverridePropertyValidator(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().validateString)(properties.action)),errors.wrap('supplied properties not correct for "StatefulRuleGroupOverrideProperty"')}function convertCfnFirewallPolicyStatefulRuleGroupOverridePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFirewallPolicyStatefulRuleGroupOverridePropertyValidator(properties).assertSuccess(),{Action:cdk().stringToCloudFormation(properties.action)}):properties}function CfnFirewallPolicyStatefulRuleGroupOverridePropertyFromCloudFormation(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 CfnFirewallPolicyStatefulRuleGroupReferencePropertyValidator(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("deepThreatInspection",cdk().validateBoolean)(properties.deepThreatInspection)),errors.collect(cdk().propertyValidator("override",CfnFirewallPolicyStatefulRuleGroupOverridePropertyValidator)(properties.override)),errors.collect(cdk().propertyValidator("priority",cdk().validateNumber)(properties.priority)),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 "StatefulRuleGroupReferenceProperty"')}function convertCfnFirewallPolicyStatefulRuleGroupReferencePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFirewallPolicyStatefulRuleGroupReferencePropertyValidator(properties).assertSuccess(),{DeepThreatInspection:cdk().booleanToCloudFormation(properties.deepThreatInspection),Override:convertCfnFirewallPolicyStatefulRuleGroupOverridePropertyToCloudFormation(properties.override),Priority:cdk().numberToCloudFormation(properties.priority),ResourceArn:cdk().stringToCloudFormation(properties.resourceArn)}):properties}function CfnFirewallPolicyStatefulRuleGroupReferencePropertyFromCloudFormation(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("deepThreatInspection","DeepThreatInspection",properties.DeepThreatInspection!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeepThreatInspection):void 0),ret.addPropertyResult("override","Override",properties.Override!=null?CfnFirewallPolicyStatefulRuleGroupOverridePropertyFromCloudFormation(properties.Override):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse().FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("resourceArn","ResourceArn",properties.ResourceArn!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFirewallPolicyFlowTimeoutsPropertyValidator(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("tcpIdleTimeoutSeconds",cdk().validateNumber)(properties.tcpIdleTimeoutSeconds)),errors.wrap('supplied properties not correct for "FlowTimeoutsProperty"')}function convertCfnFirewallPolicyFlowTimeoutsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFirewallPolicyFlowTimeoutsPropertyValidator(properties).assertSuccess(),{TcpIdleTimeoutSeconds:cdk().numberToCloudFormation(properties.tcpIdleTimeoutSeconds)}):properties}function CfnFirewallPolicyFlowTimeoutsPropertyFromCloudFormation(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("tcpIdleTimeoutSeconds","TcpIdleTimeoutSeconds",properties.TcpIdleTimeoutSeconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.TcpIdleTimeoutSeconds):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFirewallPolicyStatefulEngineOptionsPropertyValidator(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("flowTimeouts",CfnFirewallPolicyFlowTimeoutsPropertyValidator)(properties.flowTimeouts)),errors.collect(cdk().propertyValidator("ruleOrder",cdk().validateString)(properties.ruleOrder)),errors.collect(cdk().propertyValidator("streamExceptionPolicy",cdk().validateString)(properties.streamExceptionPolicy)),errors.wrap('supplied properties not correct for "StatefulEngineOptionsProperty"')}function convertCfnFirewallPolicyStatefulEngineOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFirewallPolicyStatefulEngineOptionsPropertyValidator(properties).assertSuccess(),{FlowTimeouts:convertCfnFirewallPolicyFlowTimeoutsPropertyToCloudFormation(properties.flowTimeouts),RuleOrder:cdk().stringToCloudFormation(properties.ruleOrder),StreamExceptionPolicy:cdk().stringToCloudFormation(properties.streamExceptionPolicy)}):properties}function CfnFirewallPolicyStatefulEngineOptionsPropertyFromCloudFormation(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("flowTimeouts","FlowTimeouts",properties.FlowTimeouts!=null?CfnFirewallPolicyFlowTimeoutsPropertyFromCloudFormation(properties.FlowTimeouts):void 0),ret.addPropertyResult("ruleOrder","RuleOrder",properties.RuleOrder!=null?cfn_parse().FromCloudFormation.getString(properties.RuleOrder):void 0),ret.addPropertyResult("streamExceptionPolicy","StreamExceptionPolicy",properties.StreamExceptionPolicy!=null?cfn_parse().FromCloudFormation.getString(properties.StreamExceptionPolicy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFirewallPolicyDimensionPropertyValidator(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("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "DimensionProperty"')}function convertCfnFirewallPolicyDimensionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFirewallPolicyDimensionPropertyValidator(properties).assertSuccess(),{Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnFirewallPolicyDimensionPropertyFromCloudFormation(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("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFirewallPolicyPublishMetricActionPropertyValidator(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("dimensions",cdk().requiredValidator)(properties.dimensions)),errors.collect(cdk().propertyValidator("dimensions",cdk().listValidator(CfnFirewallPolicyDimensionPropertyValidator))(properties.dimensions)),errors.wrap('supplied properties not correct for "PublishMetricActionProperty"')}function convertCfnFirewallPolicyPublishMetricActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFirewallPolicyPublishMetricActionPropertyValidator(properties).assertSuccess(),{Dimensions:cdk().listMapper(convertCfnFirewallPolicyDimensionPropertyToCloudFormation)(properties.dimensions)}):properties}function CfnFirewallPolicyPublishMetricActionPropertyFromCloudFormation(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("dimensions","Dimensions",properties.Dimensions!=null?cfn_parse().FromCloudFormation.getArray(CfnFirewallPolicyDimensionPropertyFromCloudFormation)(properties.Dimensions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFirewallPolicyActionDefinitionPropertyValidator(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("publishMetricAction",CfnFirewallPolicyPublishMetricActionPropertyValidator)(properties.publishMetricAction)),errors.wrap('supplied properties not correct for "ActionDefinitionProperty"')}function convertCfnFirewallPolicyActionDefinitionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFirewallPolicyActionDefinitionPropertyValidator(properties).assertSuccess(),{PublishMetricAction:convertCfnFirewallPolicyPublishMetricActionPropertyToCloudFormation(properties.publishMetricAction)}):properties}function CfnFirewallPolicyActionDefinitionPropertyFromCloudFormation(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("publishMetricAction","PublishMetricAction",properties.PublishMetricAction!=null?CfnFirewallPolicyPublishMetricActionPropertyFromCloudFormation(properties.PublishMetricAction):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFirewallPolicyCustomActionPropertyValidator(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("actionDefinition",cdk().requiredValidator)(properties.actionDefinition)),errors.collect(cdk().propertyValidator("actionDefinition",CfnFirewallPolicyActionDefinitionPropertyValidator)(properties.actionDefinition)),errors.collect(cdk().propertyValidator("actionName",cdk().requiredValidator)(properties.actionName)),errors.collect(cdk().propertyValidator("actionName",cdk().validateString)(properties.actionName)),errors.wrap('supplied properties not correct for "CustomActionProperty"')}function convertCfnFirewallPolicyCustomActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFirewallPolicyCustomActionPropertyValidator(properties).assertSuccess(),{ActionDefinition:convertCfnFirewallPolicyActionDefinitionPropertyToCloudFormation(properties.actionDefinition),ActionName:cdk().stringToCloudFormation(properties.actionName)}):properties}function CfnFirewallPolicyCustomActionPropertyFromCloudFormation(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("actionDefinition","ActionDefinition",properties.ActionDefinition!=null?CfnFirewallPolicyActionDefinitionPropertyFromCloudFormation(properties.ActionDefinition):void 0),ret.addPropertyResult("actionName","ActionName",properties.ActionName!=null?cfn_parse().FromCloudFormation.getString(properties.ActionName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFirewallPolicyIPSetPropertyValidator(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("definition",cdk().listValidator(cdk().validateString))(properties.definition)),errors.wrap('supplied properties not correct for "IPSetProperty"')}function convertCfnFirewallPolicyIPSetPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFirewallPolicyIPSetPropertyValidator(properties).assertSuccess(),{Definition:cdk().listMapper(cdk().stringToCloudFormation)(properties.definition)}):properties}function CfnFirewallPolicyIPSetPropertyFromCloudFormation(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("definition","Definition",properties.Definition!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Definition):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFirewallPolicyPolicyVariablesPropertyValidator(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("ruleVariables",cdk().hashValidator(CfnFirewallPolicyIPSetPropertyValidator))(properties.ruleVariables)),errors.wrap('supplied properties not correct for "PolicyVariablesProperty"')}function convertCfnFirewallPolicyPolicyVariablesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFirewallPolicyPolicyVariablesPropertyValidator(properties).assertSuccess(),{RuleVariables:cdk().hashMapper(convertCfnFirewallPolicyIPSetPropertyToCloudFormation)(properties.ruleVariables)}):properties}function CfnFirewallPolicyPolicyVariablesPropertyFromCloudFormation(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("ruleVariables","RuleVariables",properties.RuleVariables!=null?cfn_parse().FromCloudFormation.getMap(CfnFirewallPolicyIPSetPropertyFromCloudFormation)(properties.RuleVariables):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFirewallPolicyFirewallPolicyPropertyValidator(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("enableTlsSessionHolding",cdk().validateBoolean)(properties.enableTlsSessionHolding)),errors.collect(cdk().propertyValidator("policyVariables",CfnFirewallPolicyPolicyVariablesPropertyValidator)(properties.policyVariables)),errors.collect(cdk().propertyValidator("statefulDefaultActions",cdk().listValidator(cdk().validateString))(properties.statefulDefaultActions)),errors.collect(cdk().propertyValidator("statefulEngineOptions",CfnFirewallPolicyStatefulEngineOptionsPropertyValidator)(properties.statefulEngineOptions)),errors.collect(cdk().propertyValidator("statefulRuleGroupReferences",cdk().listValidator(CfnFirewallPolicyStatefulRuleGroupReferencePropertyValidator))(properties.statefulRuleGroupReferences)),errors.collect(cdk().propertyValidator("statelessCustomActions",cdk().listValidator(CfnFirewallPolicyCustomActionPropertyValidator))(properties.statelessCustomActions)),errors.collect(cdk().propertyValidator("statelessDefaultActions",cdk().requiredValidator)(properties.statelessDefaultActions)),errors.collect(cdk().propertyValidator("statelessDefaultActions",cdk().listValidator(cdk().validateString))(properties.statelessDefaultActions)),errors.collect(cdk().propertyValidator("statelessFragmentDefaultActions",cdk().requiredValidator)(properties.statelessFragmentDefaultActions)),errors.collect(cdk().propertyValidator("statelessFragmentDefaultActions",cdk().listValidator(cdk().validateString))(properties.statelessFragmentDefaultActions)),errors.collect(cdk().propertyValidator("statelessRuleGroupReferences",cdk().listValidator(CfnFirewallPolicyStatelessRuleGroupReferencePropertyValidator))(properties.statelessRuleGroupReferences)),errors.collect(cdk().propertyValidator("tlsInspectionConfigurationArn",cdk().validateString)(properties.tlsInspectionConfigurationArn)),errors.wrap('supplied properties not correct for "FirewallPolicyProperty"')}function convertCfnFirewallPolicyFirewallPolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFirewallPolicyFirewallPolicyPropertyValidator(properties).assertSuccess(),{EnableTLSSessionHolding:cdk().booleanToCloudFormation(properties.enableTlsSessionHolding),PolicyVariables:convertCfnFirewallPolicyPolicyVariablesPropertyToCloudFormation(properties.policyVariables),StatefulDefaultActions:cdk().listMapper(cdk().stringToCloudFormation)(properties.statefulDefaultActions),StatefulEngineOptions:convertCfnFirewallPolicyStatefulEngineOptionsPropertyToCloudFormation(properties.statefulEngineOptions),StatefulRuleGroupReferences:cdk().listMapper(convertCfnFirewallPolicyStatefulRuleGroupReferencePropertyToCloudFormation)(properties.statefulRuleGroupReferences),StatelessCustomActions:cdk().listMapper(convertCfnFirewallPolicyCustomActionPropertyToCloudFormation)(properties.statelessCustomActions),StatelessDefaultActions:cdk().listMapper(cdk().stringToCloudFormation)(properties.statelessDefaultActions),StatelessFragmentDefaultActions:cdk().listMapper(cdk().stringToCloudFormation)(properties.statelessFragmentDefaultActions),StatelessRuleGroupReferences:cdk().listMapper(convertCfnFirewallPolicyStatelessRuleGroupReferencePropertyToCloudFormation)(properties.statelessRuleGroupReferences),TLSInspectionConfigurationArn:cdk().stringToCloudFormation(properties.tlsInspectionConfigurationArn)}):properties}function CfnFirewallPolicyFirewallPolicyPropertyFromCloudFormation(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("enableTlsSessionHolding","EnableTLSSessionHolding",properties.EnableTLSSessionHolding!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableTLSSessionHolding):void 0),ret.addPropertyResult("policyVariables","PolicyVariables",properties.PolicyVariables!=null?CfnFirewallPolicyPolicyVariablesPropertyFromCloudFormation(properties.PolicyVariables):void 0),ret.addPropertyResult("statefulDefaultActions","StatefulDefaultActions",properties.StatefulDefaultActions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.StatefulDefaultActions):void 0),ret.addPropertyResult("statefulEngineOptions","StatefulEngineOptions",properties.StatefulEngineOptions!=null?CfnFirewallPolicyStatefulEngineOptionsPropertyFromCloudFormation(properties.StatefulEngineOptions):void 0),ret.addPropertyResult("statefulRuleGroupReferences","StatefulRuleGroupReferences",properties.StatefulRuleGroupReferences!=null?cfn_parse().FromCloudFormation.getArray(CfnFirewallPolicyStatefulRuleGroupReferencePropertyFromCloudFormation)(properties.StatefulRuleGroupReferences):void 0),ret.addPropertyResult("statelessCustomActions","StatelessCustomActions",properties.StatelessCustomActions!=null?cfn_parse().FromCloudFormation.getArray(CfnFirewallPolicyCustomActionPropertyFromCloudFormation)(properties.StatelessCustomActions):void 0),ret.addPropertyResult("statelessDefaultActions","StatelessDefaultActions",properties.StatelessDefaultActions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.StatelessDefaultActions):void 0),ret.addPropertyResult("statelessFragmentDefaultActions","StatelessFragmentDefaultActions",properties.StatelessFragmentDefaultActions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.StatelessFragmentDefaultActions):void 0),ret.addPropertyResult("statelessRuleGroupReferences","StatelessRuleGroupReferences",properties.StatelessRuleGroupReferences!=null?cfn_parse().FromCloudFormation.getArray(CfnFirewallPolicyStatelessRuleGroupReferencePropertyFromCloudFormation)(properties.StatelessRuleGroupReferences):void 0),ret.addPropertyResult("tlsInspectionConfigurationArn","TLSInspectionConfigurationArn",properties.TLSInspectionConfigurationArn!=null?cfn_parse().FromCloudFormation.getString(properties.TLSInspectionConfigurationArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFirewallPolicyPropsValidator(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("firewallPolicy",cdk().requiredValidator)(properties.firewallPolicy)),errors.collect(cdk().propertyValidator("firewallPolicy",CfnFirewallPolicyFirewallPolicyPropertyValidator)(properties.firewallPolicy)),errors.collect(cdk().propertyValidator("firewallPolicyName",cdk().requiredValidator)(properties.firewallPolicyName)),errors.collect(cdk().propertyValidator("firewallPolicyName",cdk().validateString)(properties.firewallPolicyName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnFirewallPolicyProps"')}function convertCfnFirewallPolicyPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFirewallPolicyPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),FirewallPolicy:convertCfnFirewallPolicyFirewallPolicyPropertyToCloudFormation(properties.firewallPolicy),FirewallPolicyName:cdk().stringToCloudFormation(properties.firewallPolicyName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnFirewallPolicyPropsFromCloudFormation(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("firewallPolicy","FirewallPolicy",properties.FirewallPolicy!=null?CfnFirewallPolicyFirewallPolicyPropertyFromCloudFormation(properties.FirewallPolicy):void 0),ret.addPropertyResult("firewallPolicyName","FirewallPolicyName",properties.FirewallPolicyName!=null?cfn_parse().FromCloudFormation.getString(properties.FirewallPolicyName):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_networkfirewall.CfnLoggingConfiguration",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkFirewall::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}_enableMonitoringDashboard;_firewallArn;_firewallName;_loggingConfiguration;cfnPropertyNames={enableMonitoringDashboard:"EnableMonitoringDashboard",firewallArn:"FirewallArn",firewallName:"FirewallName",loggingConfiguration:"LoggingConfiguration"};constructor(scope,id,props){super(scope,id,{type:CfnLoggingConfiguration.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkfirewall_CfnLoggingConfigurationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLoggingConfiguration),error}cdk().requireProperty(props,"firewallArn",this),cdk().requireProperty(props,"loggingConfiguration",this),this._enableMonitoringDashboard=props.enableMonitoringDashboard,this._firewallArn=cdk().getRefProperty(props.firewallArn?.firewallRef,"firewallArn")??cdk().ensureStringOrUndefined(props.firewallArn,"firewallArn","networkfirewall.IFirewallRef | string"),this._firewallName=props.firewallName,this._loggingConfiguration=props.loggingConfiguration}get loggingConfigurationRef(){return{firewallArn:this.ref}}get enableMonitoringDashboard(){return this._enableMonitoringDashboard}set enableMonitoringDashboard(value){cdk().traceProperty(this.node,"EnableMonitoringDashboard"),this._enableMonitoringDashboard=value}get firewallArn(){return this._firewallArn}set firewallArn(value){cdk().traceProperty(this.node,"FirewallArn"),this._firewallArn=value}get firewallName(){return this._firewallName}set firewallName(value){cdk().traceProperty(this.node,"FirewallName"),this._firewallName=value}get loggingConfiguration(){return this._loggingConfiguration}set loggingConfiguration(value){cdk().traceProperty(this.node,"LoggingConfiguration"),this._loggingConfiguration=value}get cfnProperties(){return{enableMonitoringDashboard:this._enableMonitoringDashboard,firewallArn:this._firewallArn,firewallName:this._firewallName,loggingConfiguration:this._loggingConfiguration}}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 CfnLoggingConfigurationLogDestinationConfigPropertyValidator(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("logDestination",cdk().requiredValidator)(properties.logDestination)),errors.collect(cdk().propertyValidator("logDestination",cdk().hashValidator(cdk().validateString))(properties.logDestination)),errors.collect(cdk().propertyValidator("logDestinationType",cdk().requiredValidator)(properties.logDestinationType)),errors.collect(cdk().propertyValidator("logDestinationType",cdk().validateString)(properties.logDestinationType)),errors.collect(cdk().propertyValidator("logType",cdk().requiredValidator)(properties.logType)),errors.collect(cdk().propertyValidator("logType",cdk().validateString)(properties.logType)),errors.wrap('supplied properties not correct for "LogDestinationConfigProperty"')}function convertCfnLoggingConfigurationLogDestinationConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoggingConfigurationLogDestinationConfigPropertyValidator(properties).assertSuccess(),{LogDestination:cdk().hashMapper(cdk().stringToCloudFormation)(properties.logDestination),LogDestinationType:cdk().stringToCloudFormation(properties.logDestinationType),LogType:cdk().stringToCloudFormation(properties.logType)}):properties}function CfnLoggingConfigurationLogDestinationConfigPropertyFromCloudFormation(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("logDestination","LogDestination",properties.LogDestination!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.LogDestination):void 0),ret.addPropertyResult("logDestinationType","LogDestinationType",properties.LogDestinationType!=null?cfn_parse().FromCloudFormation.getString(properties.LogDestinationType):void 0),ret.addPropertyResult("logType","LogType",properties.LogType!=null?cfn_parse().FromCloudFormation.getString(properties.LogType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLoggingConfigurationLoggingConfigurationPropertyValidator(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(CfnLoggingConfigurationLogDestinationConfigPropertyValidator))(properties.logDestinationConfigs)),errors.wrap('supplied properties not correct for "LoggingConfigurationProperty"')}function convertCfnLoggingConfigurationLoggingConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoggingConfigurationLoggingConfigurationPropertyValidator(properties).assertSuccess(),{LogDestinationConfigs:cdk().listMapper(convertCfnLoggingConfigurationLogDestinationConfigPropertyToCloudFormation)(properties.logDestinationConfigs)}):properties}function CfnLoggingConfigurationLoggingConfigurationPropertyFromCloudFormation(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(CfnLoggingConfigurationLogDestinationConfigPropertyFromCloudFormation)(properties.LogDestinationConfigs):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("enableMonitoringDashboard",cdk().validateBoolean)(properties.enableMonitoringDashboard)),errors.collect(cdk().propertyValidator("firewallArn",cdk().requiredValidator)(properties.firewallArn)),errors.collect(cdk().propertyValidator("firewallArn",cdk().validateString)(properties.firewallArn)),errors.collect(cdk().propertyValidator("firewallName",cdk().validateString)(properties.firewallName)),errors.collect(cdk().propertyValidator("loggingConfiguration",cdk().requiredValidator)(properties.loggingConfiguration)),errors.collect(cdk().propertyValidator("loggingConfiguration",CfnLoggingConfigurationLoggingConfigurationPropertyValidator)(properties.loggingConfiguration)),errors.wrap('supplied properties not correct for "CfnLoggingConfigurationProps"')}function convertCfnLoggingConfigurationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoggingConfigurationPropsValidator(properties).assertSuccess(),{EnableMonitoringDashboard:cdk().booleanToCloudFormation(properties.enableMonitoringDashboard),FirewallArn:cdk().stringToCloudFormation(properties.firewallArn),FirewallName:cdk().stringToCloudFormation(properties.firewallName),LoggingConfiguration:convertCfnLoggingConfigurationLoggingConfigurationPropertyToCloudFormation(properties.loggingConfiguration)}):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("enableMonitoringDashboard","EnableMonitoringDashboard",properties.EnableMonitoringDashboard!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableMonitoringDashboard):void 0),ret.addPropertyResult("firewallArn","FirewallArn",properties.FirewallArn!=null?cfn_parse().FromCloudFormation.getString(properties.FirewallArn):void 0),ret.addPropertyResult("firewallName","FirewallName",properties.FirewallName!=null?cfn_parse().FromCloudFormation.getString(properties.FirewallName):void 0),ret.addPropertyResult("loggingConfiguration","LoggingConfiguration",properties.LoggingConfiguration!=null?CfnLoggingConfigurationLoggingConfigurationPropertyFromCloudFormation(properties.LoggingConfiguration):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRuleGroup extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkfirewall.CfnRuleGroup",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkFirewall::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_networkfirewall_IRuleGroupRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForRuleGroup),error}return resource.ruleGroupRef.ruleGroupArn}_capacity;_description;_ruleGroup;_ruleGroupName;_summaryConfiguration;tags;_tagsRaw;_type;cfnPropertyNames={capacity:"Capacity",description:"Description",ruleGroup:"RuleGroup",ruleGroupName:"RuleGroupName",summaryConfiguration:"SummaryConfiguration",tags:"Tags",type:"Type"};constructor(scope,id,props){super(scope,id,{type:CfnRuleGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkfirewall_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,"ruleGroupName",this),cdk().requireProperty(props,"type",this),this._capacity=props.capacity,this._description=props.description,this._ruleGroup=props.ruleGroup,this._ruleGroupName=props.ruleGroupName,this._summaryConfiguration=props.summaryConfiguration,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkFirewall::RuleGroup",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._type=props.type}get ruleGroupRef(){return{ruleGroupArn:this.ref}}get capacity(){return this._capacity}set capacity(value){cdk().traceProperty(this.node,"Capacity"),this._capacity=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get ruleGroup(){return this._ruleGroup}set ruleGroup(value){cdk().traceProperty(this.node,"RuleGroup"),this._ruleGroup=value}get ruleGroupName(){return this._ruleGroupName}set ruleGroupName(value){cdk().traceProperty(this.node,"RuleGroupName"),this._ruleGroupName=value}get summaryConfiguration(){return this._summaryConfiguration}set summaryConfiguration(value){cdk().traceProperty(this.node,"SummaryConfiguration"),this._summaryConfiguration=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get type(){return this._type}set type(value){cdk().traceProperty(this.node,"Type"),this._type=value}get attrRuleGroupArn(){return cdk().Token.asString(this.getAtt("RuleGroupArn",cdk().ResolutionTypeHint.STRING))}get attrRuleGroupId(){return cdk().Token.asString(this.getAtt("RuleGroupId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{capacity:this._capacity,description:this._description,ruleGroup:this._ruleGroup,ruleGroupName:this._ruleGroupName,summaryConfiguration:this._summaryConfiguration,tags:this.tags.renderTags(),type:this._type}}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 CfnRuleGroupStatefulRuleOptionsPropertyValidator(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("ruleOrder",cdk().validateString)(properties.ruleOrder)),errors.wrap('supplied properties not correct for "StatefulRuleOptionsProperty"')}function convertCfnRuleGroupStatefulRuleOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupStatefulRuleOptionsPropertyValidator(properties).assertSuccess(),{RuleOrder:cdk().stringToCloudFormation(properties.ruleOrder)}):properties}function CfnRuleGroupStatefulRuleOptionsPropertyFromCloudFormation(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("ruleOrder","RuleOrder",properties.RuleOrder!=null?cfn_parse().FromCloudFormation.getString(properties.RuleOrder):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupIPSetReferencePropertyValidator(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("referenceArn",cdk().validateString)(properties.referenceArn)),errors.wrap('supplied properties not correct for "IPSetReferenceProperty"')}function convertCfnRuleGroupIPSetReferencePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupIPSetReferencePropertyValidator(properties).assertSuccess(),{ReferenceArn:cdk().stringToCloudFormation(properties.referenceArn)}):properties}function CfnRuleGroupIPSetReferencePropertyFromCloudFormation(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("referenceArn","ReferenceArn",properties.ReferenceArn!=null?cfn_parse().FromCloudFormation.getString(properties.ReferenceArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupReferenceSetsPropertyValidator(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("ipSetReferences",cdk().hashValidator(CfnRuleGroupIPSetReferencePropertyValidator))(properties.ipSetReferences)),errors.wrap('supplied properties not correct for "ReferenceSetsProperty"')}function convertCfnRuleGroupReferenceSetsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupReferenceSetsPropertyValidator(properties).assertSuccess(),{IPSetReferences:cdk().hashMapper(convertCfnRuleGroupIPSetReferencePropertyToCloudFormation)(properties.ipSetReferences)}):properties}function CfnRuleGroupReferenceSetsPropertyFromCloudFormation(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("ipSetReferences","IPSetReferences",properties.IPSetReferences!=null?cfn_parse().FromCloudFormation.getMap(CfnRuleGroupIPSetReferencePropertyFromCloudFormation)(properties.IPSetReferences):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupTCPFlagFieldPropertyValidator(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("flags",cdk().requiredValidator)(properties.flags)),errors.collect(cdk().propertyValidator("flags",cdk().listValidator(cdk().validateString))(properties.flags)),errors.collect(cdk().propertyValidator("masks",cdk().listValidator(cdk().validateString))(properties.masks)),errors.wrap('supplied properties not correct for "TCPFlagFieldProperty"')}function convertCfnRuleGroupTCPFlagFieldPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupTCPFlagFieldPropertyValidator(properties).assertSuccess(),{Flags:cdk().listMapper(cdk().stringToCloudFormation)(properties.flags),Masks:cdk().listMapper(cdk().stringToCloudFormation)(properties.masks)}):properties}function CfnRuleGroupTCPFlagFieldPropertyFromCloudFormation(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("flags","Flags",properties.Flags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Flags):void 0),ret.addPropertyResult("masks","Masks",properties.Masks!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Masks):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupPortRangePropertyValidator(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("fromPort",cdk().requiredValidator)(properties.fromPort)),errors.collect(cdk().propertyValidator("fromPort",cdk().validateNumber)(properties.fromPort)),errors.collect(cdk().propertyValidator("toPort",cdk().requiredValidator)(properties.toPort)),errors.collect(cdk().propertyValidator("toPort",cdk().validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "PortRangeProperty"')}function convertCfnRuleGroupPortRangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupPortRangePropertyValidator(properties).assertSuccess(),{FromPort:cdk().numberToCloudFormation(properties.fromPort),ToPort:cdk().numberToCloudFormation(properties.toPort)}):properties}function CfnRuleGroupPortRangePropertyFromCloudFormation(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("fromPort","FromPort",properties.FromPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupAddressPropertyValidator(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("addressDefinition",cdk().requiredValidator)(properties.addressDefinition)),errors.collect(cdk().propertyValidator("addressDefinition",cdk().validateString)(properties.addressDefinition)),errors.wrap('supplied properties not correct for "AddressProperty"')}function convertCfnRuleGroupAddressPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupAddressPropertyValidator(properties).assertSuccess(),{AddressDefinition:cdk().stringToCloudFormation(properties.addressDefinition)}):properties}function CfnRuleGroupAddressPropertyFromCloudFormation(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("addressDefinition","AddressDefinition",properties.AddressDefinition!=null?cfn_parse().FromCloudFormation.getString(properties.AddressDefinition):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupMatchAttributesPropertyValidator(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("destinationPorts",cdk().listValidator(CfnRuleGroupPortRangePropertyValidator))(properties.destinationPorts)),errors.collect(cdk().propertyValidator("destinations",cdk().listValidator(CfnRuleGroupAddressPropertyValidator))(properties.destinations)),errors.collect(cdk().propertyValidator("protocols",cdk().listValidator(cdk().validateNumber))(properties.protocols)),errors.collect(cdk().propertyValidator("sourcePorts",cdk().listValidator(CfnRuleGroupPortRangePropertyValidator))(properties.sourcePorts)),errors.collect(cdk().propertyValidator("sources",cdk().listValidator(CfnRuleGroupAddressPropertyValidator))(properties.sources)),errors.collect(cdk().propertyValidator("tcpFlags",cdk().listValidator(CfnRuleGroupTCPFlagFieldPropertyValidator))(properties.tcpFlags)),errors.wrap('supplied properties not correct for "MatchAttributesProperty"')}function convertCfnRuleGroupMatchAttributesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupMatchAttributesPropertyValidator(properties).assertSuccess(),{DestinationPorts:cdk().listMapper(convertCfnRuleGroupPortRangePropertyToCloudFormation)(properties.destinationPorts),Destinations:cdk().listMapper(convertCfnRuleGroupAddressPropertyToCloudFormation)(properties.destinations),Protocols:cdk().listMapper(cdk().numberToCloudFormation)(properties.protocols),SourcePorts:cdk().listMapper(convertCfnRuleGroupPortRangePropertyToCloudFormation)(properties.sourcePorts),Sources:cdk().listMapper(convertCfnRuleGroupAddressPropertyToCloudFormation)(properties.sources),TCPFlags:cdk().listMapper(convertCfnRuleGroupTCPFlagFieldPropertyToCloudFormation)(properties.tcpFlags)}):properties}function CfnRuleGroupMatchAttributesPropertyFromCloudFormation(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("destinationPorts","DestinationPorts",properties.DestinationPorts!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupPortRangePropertyFromCloudFormation)(properties.DestinationPorts):void 0),ret.addPropertyResult("destinations","Destinations",properties.Destinations!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupAddressPropertyFromCloudFormation)(properties.Destinations):void 0),ret.addPropertyResult("protocols","Protocols",properties.Protocols!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getNumber)(properties.Protocols):void 0),ret.addPropertyResult("sourcePorts","SourcePorts",properties.SourcePorts!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupPortRangePropertyFromCloudFormation)(properties.SourcePorts):void 0),ret.addPropertyResult("sources","Sources",properties.Sources!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupAddressPropertyFromCloudFormation)(properties.Sources):void 0),ret.addPropertyResult("tcpFlags","TCPFlags",properties.TCPFlags!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupTCPFlagFieldPropertyFromCloudFormation)(properties.TCPFlags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRuleDefinitionPropertyValidator(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("actions",cdk().requiredValidator)(properties.actions)),errors.collect(cdk().propertyValidator("actions",cdk().listValidator(cdk().validateString))(properties.actions)),errors.collect(cdk().propertyValidator("matchAttributes",cdk().requiredValidator)(properties.matchAttributes)),errors.collect(cdk().propertyValidator("matchAttributes",CfnRuleGroupMatchAttributesPropertyValidator)(properties.matchAttributes)),errors.wrap('supplied properties not correct for "RuleDefinitionProperty"')}function convertCfnRuleGroupRuleDefinitionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRuleDefinitionPropertyValidator(properties).assertSuccess(),{Actions:cdk().listMapper(cdk().stringToCloudFormation)(properties.actions),MatchAttributes:convertCfnRuleGroupMatchAttributesPropertyToCloudFormation(properties.matchAttributes)}):properties}function CfnRuleGroupRuleDefinitionPropertyFromCloudFormation(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("actions","Actions",properties.Actions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Actions):void 0),ret.addPropertyResult("matchAttributes","MatchAttributes",properties.MatchAttributes!=null?CfnRuleGroupMatchAttributesPropertyFromCloudFormation(properties.MatchAttributes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupStatelessRulePropertyValidator(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("ruleDefinition",cdk().requiredValidator)(properties.ruleDefinition)),errors.collect(cdk().propertyValidator("ruleDefinition",CfnRuleGroupRuleDefinitionPropertyValidator)(properties.ruleDefinition)),errors.wrap('supplied properties not correct for "StatelessRuleProperty"')}function convertCfnRuleGroupStatelessRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupStatelessRulePropertyValidator(properties).assertSuccess(),{Priority:cdk().numberToCloudFormation(properties.priority),RuleDefinition:convertCfnRuleGroupRuleDefinitionPropertyToCloudFormation(properties.ruleDefinition)}):properties}function CfnRuleGroupStatelessRulePropertyFromCloudFormation(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("ruleDefinition","RuleDefinition",properties.RuleDefinition!=null?CfnRuleGroupRuleDefinitionPropertyFromCloudFormation(properties.RuleDefinition):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupDimensionPropertyValidator(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("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "DimensionProperty"')}function convertCfnRuleGroupDimensionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupDimensionPropertyValidator(properties).assertSuccess(),{Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnRuleGroupDimensionPropertyFromCloudFormation(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("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupPublishMetricActionPropertyValidator(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("dimensions",cdk().requiredValidator)(properties.dimensions)),errors.collect(cdk().propertyValidator("dimensions",cdk().listValidator(CfnRuleGroupDimensionPropertyValidator))(properties.dimensions)),errors.wrap('supplied properties not correct for "PublishMetricActionProperty"')}function convertCfnRuleGroupPublishMetricActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupPublishMetricActionPropertyValidator(properties).assertSuccess(),{Dimensions:cdk().listMapper(convertCfnRuleGroupDimensionPropertyToCloudFormation)(properties.dimensions)}):properties}function CfnRuleGroupPublishMetricActionPropertyFromCloudFormation(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("dimensions","Dimensions",properties.Dimensions!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupDimensionPropertyFromCloudFormation)(properties.Dimensions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupActionDefinitionPropertyValidator(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("publishMetricAction",CfnRuleGroupPublishMetricActionPropertyValidator)(properties.publishMetricAction)),errors.wrap('supplied properties not correct for "ActionDefinitionProperty"')}function convertCfnRuleGroupActionDefinitionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupActionDefinitionPropertyValidator(properties).assertSuccess(),{PublishMetricAction:convertCfnRuleGroupPublishMetricActionPropertyToCloudFormation(properties.publishMetricAction)}):properties}function CfnRuleGroupActionDefinitionPropertyFromCloudFormation(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("publishMetricAction","PublishMetricAction",properties.PublishMetricAction!=null?CfnRuleGroupPublishMetricActionPropertyFromCloudFormation(properties.PublishMetricAction):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupCustomActionPropertyValidator(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("actionDefinition",cdk().requiredValidator)(properties.actionDefinition)),errors.collect(cdk().propertyValidator("actionDefinition",CfnRuleGroupActionDefinitionPropertyValidator)(properties.actionDefinition)),errors.collect(cdk().propertyValidator("actionName",cdk().requiredValidator)(properties.actionName)),errors.collect(cdk().propertyValidator("actionName",cdk().validateString)(properties.actionName)),errors.wrap('supplied properties not correct for "CustomActionProperty"')}function convertCfnRuleGroupCustomActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupCustomActionPropertyValidator(properties).assertSuccess(),{ActionDefinition:convertCfnRuleGroupActionDefinitionPropertyToCloudFormation(properties.actionDefinition),ActionName:cdk().stringToCloudFormation(properties.actionName)}):properties}function CfnRuleGroupCustomActionPropertyFromCloudFormation(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("actionDefinition","ActionDefinition",properties.ActionDefinition!=null?CfnRuleGroupActionDefinitionPropertyFromCloudFormation(properties.ActionDefinition):void 0),ret.addPropertyResult("actionName","ActionName",properties.ActionName!=null?cfn_parse().FromCloudFormation.getString(properties.ActionName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupStatelessRulesAndCustomActionsPropertyValidator(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("customActions",cdk().listValidator(CfnRuleGroupCustomActionPropertyValidator))(properties.customActions)),errors.collect(cdk().propertyValidator("statelessRules",cdk().requiredValidator)(properties.statelessRules)),errors.collect(cdk().propertyValidator("statelessRules",cdk().listValidator(CfnRuleGroupStatelessRulePropertyValidator))(properties.statelessRules)),errors.wrap('supplied properties not correct for "StatelessRulesAndCustomActionsProperty"')}function convertCfnRuleGroupStatelessRulesAndCustomActionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupStatelessRulesAndCustomActionsPropertyValidator(properties).assertSuccess(),{CustomActions:cdk().listMapper(convertCfnRuleGroupCustomActionPropertyToCloudFormation)(properties.customActions),StatelessRules:cdk().listMapper(convertCfnRuleGroupStatelessRulePropertyToCloudFormation)(properties.statelessRules)}):properties}function CfnRuleGroupStatelessRulesAndCustomActionsPropertyFromCloudFormation(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("customActions","CustomActions",properties.CustomActions!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupCustomActionPropertyFromCloudFormation)(properties.CustomActions):void 0),ret.addPropertyResult("statelessRules","StatelessRules",properties.StatelessRules!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupStatelessRulePropertyFromCloudFormation)(properties.StatelessRules):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupHeaderPropertyValidator(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("destination",cdk().requiredValidator)(properties.destination)),errors.collect(cdk().propertyValidator("destination",cdk().validateString)(properties.destination)),errors.collect(cdk().propertyValidator("destinationPort",cdk().requiredValidator)(properties.destinationPort)),errors.collect(cdk().propertyValidator("destinationPort",cdk().validateString)(properties.destinationPort)),errors.collect(cdk().propertyValidator("direction",cdk().requiredValidator)(properties.direction)),errors.collect(cdk().propertyValidator("direction",cdk().validateString)(properties.direction)),errors.collect(cdk().propertyValidator("protocol",cdk().requiredValidator)(properties.protocol)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("source",cdk().requiredValidator)(properties.source)),errors.collect(cdk().propertyValidator("source",cdk().validateString)(properties.source)),errors.collect(cdk().propertyValidator("sourcePort",cdk().requiredValidator)(properties.sourcePort)),errors.collect(cdk().propertyValidator("sourcePort",cdk().validateString)(properties.sourcePort)),errors.wrap('supplied properties not correct for "HeaderProperty"')}function convertCfnRuleGroupHeaderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupHeaderPropertyValidator(properties).assertSuccess(),{Destination:cdk().stringToCloudFormation(properties.destination),DestinationPort:cdk().stringToCloudFormation(properties.destinationPort),Direction:cdk().stringToCloudFormation(properties.direction),Protocol:cdk().stringToCloudFormation(properties.protocol),Source:cdk().stringToCloudFormation(properties.source),SourcePort:cdk().stringToCloudFormation(properties.sourcePort)}):properties}function CfnRuleGroupHeaderPropertyFromCloudFormation(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("destination","Destination",properties.Destination!=null?cfn_parse().FromCloudFormation.getString(properties.Destination):void 0),ret.addPropertyResult("destinationPort","DestinationPort",properties.DestinationPort!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationPort):void 0),ret.addPropertyResult("direction","Direction",properties.Direction!=null?cfn_parse().FromCloudFormation.getString(properties.Direction):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("source","Source",properties.Source!=null?cfn_parse().FromCloudFormation.getString(properties.Source):void 0),ret.addPropertyResult("sourcePort","SourcePort",properties.SourcePort!=null?cfn_parse().FromCloudFormation.getString(properties.SourcePort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRuleOptionPropertyValidator(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("keyword",cdk().requiredValidator)(properties.keyword)),errors.collect(cdk().propertyValidator("keyword",cdk().validateString)(properties.keyword)),errors.collect(cdk().propertyValidator("settings",cdk().listValidator(cdk().validateString))(properties.settings)),errors.wrap('supplied properties not correct for "RuleOptionProperty"')}function convertCfnRuleGroupRuleOptionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRuleOptionPropertyValidator(properties).assertSuccess(),{Keyword:cdk().stringToCloudFormation(properties.keyword),Settings:cdk().listMapper(cdk().stringToCloudFormation)(properties.settings)}):properties}function CfnRuleGroupRuleOptionPropertyFromCloudFormation(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("keyword","Keyword",properties.Keyword!=null?cfn_parse().FromCloudFormation.getString(properties.Keyword):void 0),ret.addPropertyResult("settings","Settings",properties.Settings!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Settings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupStatefulRulePropertyValidator(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("header",cdk().requiredValidator)(properties.header)),errors.collect(cdk().propertyValidator("header",CfnRuleGroupHeaderPropertyValidator)(properties.header)),errors.collect(cdk().propertyValidator("ruleOptions",cdk().requiredValidator)(properties.ruleOptions)),errors.collect(cdk().propertyValidator("ruleOptions",cdk().listValidator(CfnRuleGroupRuleOptionPropertyValidator))(properties.ruleOptions)),errors.wrap('supplied properties not correct for "StatefulRuleProperty"')}function convertCfnRuleGroupStatefulRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupStatefulRulePropertyValidator(properties).assertSuccess(),{Action:cdk().stringToCloudFormation(properties.action),Header:convertCfnRuleGroupHeaderPropertyToCloudFormation(properties.header),RuleOptions:cdk().listMapper(convertCfnRuleGroupRuleOptionPropertyToCloudFormation)(properties.ruleOptions)}):properties}function CfnRuleGroupStatefulRulePropertyFromCloudFormation(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("header","Header",properties.Header!=null?CfnRuleGroupHeaderPropertyFromCloudFormation(properties.Header):void 0),ret.addPropertyResult("ruleOptions","RuleOptions",properties.RuleOptions!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupRuleOptionPropertyFromCloudFormation)(properties.RuleOptions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRulesSourceListPropertyValidator(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("generatedRulesType",cdk().requiredValidator)(properties.generatedRulesType)),errors.collect(cdk().propertyValidator("generatedRulesType",cdk().validateString)(properties.generatedRulesType)),errors.collect(cdk().propertyValidator("targetTypes",cdk().requiredValidator)(properties.targetTypes)),errors.collect(cdk().propertyValidator("targetTypes",cdk().listValidator(cdk().validateString))(properties.targetTypes)),errors.collect(cdk().propertyValidator("targets",cdk().requiredValidator)(properties.targets)),errors.collect(cdk().propertyValidator("targets",cdk().listValidator(cdk().validateString))(properties.targets)),errors.wrap('supplied properties not correct for "RulesSourceListProperty"')}function convertCfnRuleGroupRulesSourceListPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRulesSourceListPropertyValidator(properties).assertSuccess(),{GeneratedRulesType:cdk().stringToCloudFormation(properties.generatedRulesType),TargetTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.targetTypes),Targets:cdk().listMapper(cdk().stringToCloudFormation)(properties.targets)}):properties}function CfnRuleGroupRulesSourceListPropertyFromCloudFormation(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("generatedRulesType","GeneratedRulesType",properties.GeneratedRulesType!=null?cfn_parse().FromCloudFormation.getString(properties.GeneratedRulesType):void 0),ret.addPropertyResult("targets","Targets",properties.Targets!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Targets):void 0),ret.addPropertyResult("targetTypes","TargetTypes",properties.TargetTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TargetTypes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRulesSourcePropertyValidator(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("rulesSourceList",CfnRuleGroupRulesSourceListPropertyValidator)(properties.rulesSourceList)),errors.collect(cdk().propertyValidator("rulesString",cdk().validateString)(properties.rulesString)),errors.collect(cdk().propertyValidator("statefulRules",cdk().listValidator(CfnRuleGroupStatefulRulePropertyValidator))(properties.statefulRules)),errors.collect(cdk().propertyValidator("statelessRulesAndCustomActions",CfnRuleGroupStatelessRulesAndCustomActionsPropertyValidator)(properties.statelessRulesAndCustomActions)),errors.wrap('supplied properties not correct for "RulesSourceProperty"')}function convertCfnRuleGroupRulesSourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRulesSourcePropertyValidator(properties).assertSuccess(),{RulesSourceList:convertCfnRuleGroupRulesSourceListPropertyToCloudFormation(properties.rulesSourceList),RulesString:cdk().stringToCloudFormation(properties.rulesString),StatefulRules:cdk().listMapper(convertCfnRuleGroupStatefulRulePropertyToCloudFormation)(properties.statefulRules),StatelessRulesAndCustomActions:convertCfnRuleGroupStatelessRulesAndCustomActionsPropertyToCloudFormation(properties.statelessRulesAndCustomActions)}):properties}function CfnRuleGroupRulesSourcePropertyFromCloudFormation(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("rulesSourceList","RulesSourceList",properties.RulesSourceList!=null?CfnRuleGroupRulesSourceListPropertyFromCloudFormation(properties.RulesSourceList):void 0),ret.addPropertyResult("rulesString","RulesString",properties.RulesString!=null?cfn_parse().FromCloudFormation.getString(properties.RulesString):void 0),ret.addPropertyResult("statefulRules","StatefulRules",properties.StatefulRules!=null?cfn_parse().FromCloudFormation.getArray(CfnRuleGroupStatefulRulePropertyFromCloudFormation)(properties.StatefulRules):void 0),ret.addPropertyResult("statelessRulesAndCustomActions","StatelessRulesAndCustomActions",properties.StatelessRulesAndCustomActions!=null?CfnRuleGroupStatelessRulesAndCustomActionsPropertyFromCloudFormation(properties.StatelessRulesAndCustomActions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupPortSetPropertyValidator(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("definition",cdk().listValidator(cdk().validateString))(properties.definition)),errors.wrap('supplied properties not correct for "PortSetProperty"')}function convertCfnRuleGroupPortSetPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupPortSetPropertyValidator(properties).assertSuccess(),{Definition:cdk().listMapper(cdk().stringToCloudFormation)(properties.definition)}):properties}function CfnRuleGroupPortSetPropertyFromCloudFormation(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("definition","Definition",properties.Definition!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Definition):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupIPSetPropertyValidator(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("definition",cdk().listValidator(cdk().validateString))(properties.definition)),errors.wrap('supplied properties not correct for "IPSetProperty"')}function convertCfnRuleGroupIPSetPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupIPSetPropertyValidator(properties).assertSuccess(),{Definition:cdk().listMapper(cdk().stringToCloudFormation)(properties.definition)}):properties}function CfnRuleGroupIPSetPropertyFromCloudFormation(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("definition","Definition",properties.Definition!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Definition):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRuleVariablesPropertyValidator(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("ipSets",cdk().hashValidator(CfnRuleGroupIPSetPropertyValidator))(properties.ipSets)),errors.collect(cdk().propertyValidator("portSets",cdk().hashValidator(CfnRuleGroupPortSetPropertyValidator))(properties.portSets)),errors.wrap('supplied properties not correct for "RuleVariablesProperty"')}function convertCfnRuleGroupRuleVariablesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRuleVariablesPropertyValidator(properties).assertSuccess(),{IPSets:cdk().hashMapper(convertCfnRuleGroupIPSetPropertyToCloudFormation)(properties.ipSets),PortSets:cdk().hashMapper(convertCfnRuleGroupPortSetPropertyToCloudFormation)(properties.portSets)}):properties}function CfnRuleGroupRuleVariablesPropertyFromCloudFormation(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("ipSets","IPSets",properties.IPSets!=null?cfn_parse().FromCloudFormation.getMap(CfnRuleGroupIPSetPropertyFromCloudFormation)(properties.IPSets):void 0),ret.addPropertyResult("portSets","PortSets",properties.PortSets!=null?cfn_parse().FromCloudFormation.getMap(CfnRuleGroupPortSetPropertyFromCloudFormation)(properties.PortSets):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupRuleGroupPropertyValidator(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("referenceSets",CfnRuleGroupReferenceSetsPropertyValidator)(properties.referenceSets)),errors.collect(cdk().propertyValidator("ruleVariables",CfnRuleGroupRuleVariablesPropertyValidator)(properties.ruleVariables)),errors.collect(cdk().propertyValidator("rulesSource",cdk().requiredValidator)(properties.rulesSource)),errors.collect(cdk().propertyValidator("rulesSource",CfnRuleGroupRulesSourcePropertyValidator)(properties.rulesSource)),errors.collect(cdk().propertyValidator("statefulRuleOptions",CfnRuleGroupStatefulRuleOptionsPropertyValidator)(properties.statefulRuleOptions)),errors.wrap('supplied properties not correct for "RuleGroupProperty"')}function convertCfnRuleGroupRuleGroupPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupRuleGroupPropertyValidator(properties).assertSuccess(),{ReferenceSets:convertCfnRuleGroupReferenceSetsPropertyToCloudFormation(properties.referenceSets),RuleVariables:convertCfnRuleGroupRuleVariablesPropertyToCloudFormation(properties.ruleVariables),RulesSource:convertCfnRuleGroupRulesSourcePropertyToCloudFormation(properties.rulesSource),StatefulRuleOptions:convertCfnRuleGroupStatefulRuleOptionsPropertyToCloudFormation(properties.statefulRuleOptions)}):properties}function CfnRuleGroupRuleGroupPropertyFromCloudFormation(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("referenceSets","ReferenceSets",properties.ReferenceSets!=null?CfnRuleGroupReferenceSetsPropertyFromCloudFormation(properties.ReferenceSets):void 0),ret.addPropertyResult("rulesSource","RulesSource",properties.RulesSource!=null?CfnRuleGroupRulesSourcePropertyFromCloudFormation(properties.RulesSource):void 0),ret.addPropertyResult("ruleVariables","RuleVariables",properties.RuleVariables!=null?CfnRuleGroupRuleVariablesPropertyFromCloudFormation(properties.RuleVariables):void 0),ret.addPropertyResult("statefulRuleOptions","StatefulRuleOptions",properties.StatefulRuleOptions!=null?CfnRuleGroupStatefulRuleOptionsPropertyFromCloudFormation(properties.StatefulRuleOptions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRuleGroupSummaryConfigurationPropertyValidator(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("ruleOptions",cdk().listValidator(cdk().validateString))(properties.ruleOptions)),errors.wrap('supplied properties not correct for "SummaryConfigurationProperty"')}function convertCfnRuleGroupSummaryConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupSummaryConfigurationPropertyValidator(properties).assertSuccess(),{RuleOptions:cdk().listMapper(cdk().stringToCloudFormation)(properties.ruleOptions)}):properties}function CfnRuleGroupSummaryConfigurationPropertyFromCloudFormation(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("ruleOptions","RuleOptions",properties.RuleOptions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.RuleOptions):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("capacity",cdk().requiredValidator)(properties.capacity)),errors.collect(cdk().propertyValidator("capacity",cdk().validateNumber)(properties.capacity)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("ruleGroup",CfnRuleGroupRuleGroupPropertyValidator)(properties.ruleGroup)),errors.collect(cdk().propertyValidator("ruleGroupName",cdk().requiredValidator)(properties.ruleGroupName)),errors.collect(cdk().propertyValidator("ruleGroupName",cdk().validateString)(properties.ruleGroupName)),errors.collect(cdk().propertyValidator("summaryConfiguration",CfnRuleGroupSummaryConfigurationPropertyValidator)(properties.summaryConfiguration)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),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 "CfnRuleGroupProps"')}function convertCfnRuleGroupPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRuleGroupPropsValidator(properties).assertSuccess(),{Capacity:cdk().numberToCloudFormation(properties.capacity),Description:cdk().stringToCloudFormation(properties.description),RuleGroup:convertCfnRuleGroupRuleGroupPropertyToCloudFormation(properties.ruleGroup),RuleGroupName:cdk().stringToCloudFormation(properties.ruleGroupName),SummaryConfiguration:convertCfnRuleGroupSummaryConfigurationPropertyToCloudFormation(properties.summaryConfiguration),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),Type:cdk().stringToCloudFormation(properties.type)}):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("capacity","Capacity",properties.Capacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.Capacity):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("ruleGroup","RuleGroup",properties.RuleGroup!=null?CfnRuleGroupRuleGroupPropertyFromCloudFormation(properties.RuleGroup):void 0),ret.addPropertyResult("ruleGroupName","RuleGroupName",properties.RuleGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.RuleGroupName):void 0),ret.addPropertyResult("summaryConfiguration","SummaryConfiguration",properties.SummaryConfiguration!=null?CfnRuleGroupSummaryConfigurationPropertyFromCloudFormation(properties.SummaryConfiguration):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTLSInspectionConfiguration extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkfirewall.CfnTLSInspectionConfiguration",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkFirewall::TLSInspectionConfiguration";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTLSInspectionConfigurationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTLSInspectionConfiguration(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 isCfnTLSInspectionConfiguration(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTLSInspectionConfiguration.CFN_RESOURCE_TYPE_NAME}static arnForTLSInspectionConfiguration(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_networkfirewall_ITLSInspectionConfigurationRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTLSInspectionConfiguration),error}return resource.tlsInspectionConfigurationRef.tlsInspectionConfigurationArn}cdkTagManager;_description;_tags;_tlsInspectionConfiguration;_tlsInspectionConfigurationName;cfnPropertyNames={tags:"Tags",description:"Description",tlsInspectionConfiguration:"TLSInspectionConfiguration",tlsInspectionConfigurationName:"TLSInspectionConfigurationName"};constructor(scope,id,props){super(scope,id,{type:CfnTLSInspectionConfiguration.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkfirewall_CfnTLSInspectionConfigurationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTLSInspectionConfiguration),error}cdk().requireProperty(props,"tlsInspectionConfiguration",this),cdk().requireProperty(props,"tlsInspectionConfigurationName",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkFirewall::TLSInspectionConfiguration",void 0,{tagPropertyName:"tags"}),this._description=props.description,this._tags=props.tags,this._tlsInspectionConfiguration=props.tlsInspectionConfiguration,this._tlsInspectionConfigurationName=props.tlsInspectionConfigurationName}get tlsInspectionConfigurationRef(){return{tlsInspectionConfigurationArn:this.ref}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get tlsInspectionConfiguration(){return this._tlsInspectionConfiguration}set tlsInspectionConfiguration(value){cdk().traceProperty(this.node,"TLSInspectionConfiguration"),this._tlsInspectionConfiguration=value}get tlsInspectionConfigurationName(){return this._tlsInspectionConfigurationName}set tlsInspectionConfigurationName(value){cdk().traceProperty(this.node,"TLSInspectionConfigurationName"),this._tlsInspectionConfigurationName=value}get attrTlsInspectionConfigurationArn(){return cdk().Token.asString(this.getAtt("TLSInspectionConfigurationArn",cdk().ResolutionTypeHint.STRING))}get attrTlsInspectionConfigurationId(){return cdk().Token.asString(this.getAtt("TLSInspectionConfigurationId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),description:this._description,tlsInspectionConfiguration:this._tlsInspectionConfiguration,tlsInspectionConfigurationName:this._tlsInspectionConfigurationName}}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",CfnTLSInspectionConfiguration.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTLSInspectionConfigurationPropsToCloudFormation(props)}}exports.CfnTLSInspectionConfiguration=CfnTLSInspectionConfiguration;function CfnTLSInspectionConfigurationServerCertificatePropertyValidator(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().validateString)(properties.resourceArn)),errors.wrap('supplied properties not correct for "ServerCertificateProperty"')}function convertCfnTLSInspectionConfigurationServerCertificatePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTLSInspectionConfigurationServerCertificatePropertyValidator(properties).assertSuccess(),{ResourceArn:cdk().stringToCloudFormation(properties.resourceArn)}):properties}function CfnTLSInspectionConfigurationServerCertificatePropertyFromCloudFormation(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.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTLSInspectionConfigurationAddressPropertyValidator(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("addressDefinition",cdk().requiredValidator)(properties.addressDefinition)),errors.collect(cdk().propertyValidator("addressDefinition",cdk().validateString)(properties.addressDefinition)),errors.wrap('supplied properties not correct for "AddressProperty"')}function convertCfnTLSInspectionConfigurationAddressPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTLSInspectionConfigurationAddressPropertyValidator(properties).assertSuccess(),{AddressDefinition:cdk().stringToCloudFormation(properties.addressDefinition)}):properties}function CfnTLSInspectionConfigurationAddressPropertyFromCloudFormation(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("addressDefinition","AddressDefinition",properties.AddressDefinition!=null?cfn_parse().FromCloudFormation.getString(properties.AddressDefinition):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTLSInspectionConfigurationPortRangePropertyValidator(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("fromPort",cdk().requiredValidator)(properties.fromPort)),errors.collect(cdk().propertyValidator("fromPort",cdk().validateNumber)(properties.fromPort)),errors.collect(cdk().propertyValidator("toPort",cdk().requiredValidator)(properties.toPort)),errors.collect(cdk().propertyValidator("toPort",cdk().validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "PortRangeProperty"')}function convertCfnTLSInspectionConfigurationPortRangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTLSInspectionConfigurationPortRangePropertyValidator(properties).assertSuccess(),{FromPort:cdk().numberToCloudFormation(properties.fromPort),ToPort:cdk().numberToCloudFormation(properties.toPort)}):properties}function CfnTLSInspectionConfigurationPortRangePropertyFromCloudFormation(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("fromPort","FromPort",properties.FromPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTLSInspectionConfigurationServerCertificateScopePropertyValidator(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("destinationPorts",cdk().listValidator(CfnTLSInspectionConfigurationPortRangePropertyValidator))(properties.destinationPorts)),errors.collect(cdk().propertyValidator("destinations",cdk().listValidator(CfnTLSInspectionConfigurationAddressPropertyValidator))(properties.destinations)),errors.collect(cdk().propertyValidator("protocols",cdk().listValidator(cdk().validateNumber))(properties.protocols)),errors.collect(cdk().propertyValidator("sourcePorts",cdk().listValidator(CfnTLSInspectionConfigurationPortRangePropertyValidator))(properties.sourcePorts)),errors.collect(cdk().propertyValidator("sources",cdk().listValidator(CfnTLSInspectionConfigurationAddressPropertyValidator))(properties.sources)),errors.wrap('supplied properties not correct for "ServerCertificateScopeProperty"')}function convertCfnTLSInspectionConfigurationServerCertificateScopePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTLSInspectionConfigurationServerCertificateScopePropertyValidator(properties).assertSuccess(),{DestinationPorts:cdk().listMapper(convertCfnTLSInspectionConfigurationPortRangePropertyToCloudFormation)(properties.destinationPorts),Destinations:cdk().listMapper(convertCfnTLSInspectionConfigurationAddressPropertyToCloudFormation)(properties.destinations),Protocols:cdk().listMapper(cdk().numberToCloudFormation)(properties.protocols),SourcePorts:cdk().listMapper(convertCfnTLSInspectionConfigurationPortRangePropertyToCloudFormation)(properties.sourcePorts),Sources:cdk().listMapper(convertCfnTLSInspectionConfigurationAddressPropertyToCloudFormation)(properties.sources)}):properties}function CfnTLSInspectionConfigurationServerCertificateScopePropertyFromCloudFormation(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("destinationPorts","DestinationPorts",properties.DestinationPorts!=null?cfn_parse().FromCloudFormation.getArray(CfnTLSInspectionConfigurationPortRangePropertyFromCloudFormation)(properties.DestinationPorts):void 0),ret.addPropertyResult("destinations","Destinations",properties.Destinations!=null?cfn_parse().FromCloudFormation.getArray(CfnTLSInspectionConfigurationAddressPropertyFromCloudFormation)(properties.Destinations):void 0),ret.addPropertyResult("protocols","Protocols",properties.Protocols!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getNumber)(properties.Protocols):void 0),ret.addPropertyResult("sourcePorts","SourcePorts",properties.SourcePorts!=null?cfn_parse().FromCloudFormation.getArray(CfnTLSInspectionConfigurationPortRangePropertyFromCloudFormation)(properties.SourcePorts):void 0),ret.addPropertyResult("sources","Sources",properties.Sources!=null?cfn_parse().FromCloudFormation.getArray(CfnTLSInspectionConfigurationAddressPropertyFromCloudFormation)(properties.Sources):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTLSInspectionConfigurationCheckCertificateRevocationStatusPropertyValidator(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("revokedStatusAction",cdk().validateString)(properties.revokedStatusAction)),errors.collect(cdk().propertyValidator("unknownStatusAction",cdk().validateString)(properties.unknownStatusAction)),errors.wrap('supplied properties not correct for "CheckCertificateRevocationStatusProperty"')}function convertCfnTLSInspectionConfigurationCheckCertificateRevocationStatusPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTLSInspectionConfigurationCheckCertificateRevocationStatusPropertyValidator(properties).assertSuccess(),{RevokedStatusAction:cdk().stringToCloudFormation(properties.revokedStatusAction),UnknownStatusAction:cdk().stringToCloudFormation(properties.unknownStatusAction)}):properties}function CfnTLSInspectionConfigurationCheckCertificateRevocationStatusPropertyFromCloudFormation(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("revokedStatusAction","RevokedStatusAction",properties.RevokedStatusAction!=null?cfn_parse().FromCloudFormation.getString(properties.RevokedStatusAction):void 0),ret.addPropertyResult("unknownStatusAction","UnknownStatusAction",properties.UnknownStatusAction!=null?cfn_parse().FromCloudFormation.getString(properties.UnknownStatusAction):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTLSInspectionConfigurationServerCertificateConfigurationPropertyValidator(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("certificateAuthorityArn",cdk().validateString)(properties.certificateAuthorityArn)),errors.collect(cdk().propertyValidator("checkCertificateRevocationStatus",CfnTLSInspectionConfigurationCheckCertificateRevocationStatusPropertyValidator)(properties.checkCertificateRevocationStatus)),errors.collect(cdk().propertyValidator("scopes",cdk().listValidator(CfnTLSInspectionConfigurationServerCertificateScopePropertyValidator))(properties.scopes)),errors.collect(cdk().propertyValidator("serverCertificates",cdk().listValidator(CfnTLSInspectionConfigurationServerCertificatePropertyValidator))(properties.serverCertificates)),errors.wrap('supplied properties not correct for "ServerCertificateConfigurationProperty"')}function convertCfnTLSInspectionConfigurationServerCertificateConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTLSInspectionConfigurationServerCertificateConfigurationPropertyValidator(properties).assertSuccess(),{CertificateAuthorityArn:cdk().stringToCloudFormation(properties.certificateAuthorityArn),CheckCertificateRevocationStatus:convertCfnTLSInspectionConfigurationCheckCertificateRevocationStatusPropertyToCloudFormation(properties.checkCertificateRevocationStatus),Scopes:cdk().listMapper(convertCfnTLSInspectionConfigurationServerCertificateScopePropertyToCloudFormation)(properties.scopes),ServerCertificates:cdk().listMapper(convertCfnTLSInspectionConfigurationServerCertificatePropertyToCloudFormation)(properties.serverCertificates)}):properties}function CfnTLSInspectionConfigurationServerCertificateConfigurationPropertyFromCloudFormation(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("certificateAuthorityArn","CertificateAuthorityArn",properties.CertificateAuthorityArn!=null?cfn_parse().FromCloudFormation.getString(properties.CertificateAuthorityArn):void 0),ret.addPropertyResult("checkCertificateRevocationStatus","CheckCertificateRevocationStatus",properties.CheckCertificateRevocationStatus!=null?CfnTLSInspectionConfigurationCheckCertificateRevocationStatusPropertyFromCloudFormation(properties.CheckCertificateRevocationStatus):void 0),ret.addPropertyResult("scopes","Scopes",properties.Scopes!=null?cfn_parse().FromCloudFormation.getArray(CfnTLSInspectionConfigurationServerCertificateScopePropertyFromCloudFormation)(properties.Scopes):void 0),ret.addPropertyResult("serverCertificates","ServerCertificates",properties.ServerCertificates!=null?cfn_parse().FromCloudFormation.getArray(CfnTLSInspectionConfigurationServerCertificatePropertyFromCloudFormation)(properties.ServerCertificates):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTLSInspectionConfigurationTLSInspectionConfigurationPropertyValidator(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("serverCertificateConfigurations",cdk().listValidator(CfnTLSInspectionConfigurationServerCertificateConfigurationPropertyValidator))(properties.serverCertificateConfigurations)),errors.wrap('supplied properties not correct for "TLSInspectionConfigurationProperty"')}function convertCfnTLSInspectionConfigurationTLSInspectionConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTLSInspectionConfigurationTLSInspectionConfigurationPropertyValidator(properties).assertSuccess(),{ServerCertificateConfigurations:cdk().listMapper(convertCfnTLSInspectionConfigurationServerCertificateConfigurationPropertyToCloudFormation)(properties.serverCertificateConfigurations)}):properties}function CfnTLSInspectionConfigurationTLSInspectionConfigurationPropertyFromCloudFormation(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("serverCertificateConfigurations","ServerCertificateConfigurations",properties.ServerCertificateConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnTLSInspectionConfigurationServerCertificateConfigurationPropertyFromCloudFormation)(properties.ServerCertificateConfigurations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTLSInspectionConfigurationPropsValidator(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("tlsInspectionConfiguration",cdk().requiredValidator)(properties.tlsInspectionConfiguration)),errors.collect(cdk().propertyValidator("tlsInspectionConfiguration",CfnTLSInspectionConfigurationTLSInspectionConfigurationPropertyValidator)(properties.tlsInspectionConfiguration)),errors.collect(cdk().propertyValidator("tlsInspectionConfigurationName",cdk().requiredValidator)(properties.tlsInspectionConfigurationName)),errors.collect(cdk().propertyValidator("tlsInspectionConfigurationName",cdk().validateString)(properties.tlsInspectionConfigurationName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnTLSInspectionConfigurationProps"')}function convertCfnTLSInspectionConfigurationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTLSInspectionConfigurationPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),TLSInspectionConfiguration:convertCfnTLSInspectionConfigurationTLSInspectionConfigurationPropertyToCloudFormation(properties.tlsInspectionConfiguration),TLSInspectionConfigurationName:cdk().stringToCloudFormation(properties.tlsInspectionConfigurationName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTLSInspectionConfigurationPropsFromCloudFormation(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("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("tlsInspectionConfiguration","TLSInspectionConfiguration",properties.TLSInspectionConfiguration!=null?CfnTLSInspectionConfigurationTLSInspectionConfigurationPropertyFromCloudFormation(properties.TLSInspectionConfiguration):void 0),ret.addPropertyResult("tlsInspectionConfigurationName","TLSInspectionConfigurationName",properties.TLSInspectionConfigurationName!=null?cfn_parse().FromCloudFormation.getString(properties.TLSInspectionConfigurationName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVpcEndpointAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkfirewall.CfnVpcEndpointAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkFirewall::VpcEndpointAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVpcEndpointAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVpcEndpointAssociation(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 isCfnVpcEndpointAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVpcEndpointAssociation.CFN_RESOURCE_TYPE_NAME}static arnForVpcEndpointAssociation(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_networkfirewall_IVpcEndpointAssociationRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForVpcEndpointAssociation),error}return resource.vpcEndpointAssociationRef.vpcEndpointAssociationArn}cdkTagManager;_description;_firewallArn;_subnetMapping;_tags;_vpcId;cfnPropertyNames={tags:"Tags",description:"Description",firewallArn:"FirewallArn",subnetMapping:"SubnetMapping",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnVpcEndpointAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkfirewall_CfnVpcEndpointAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVpcEndpointAssociation),error}cdk().requireProperty(props,"firewallArn",this),cdk().requireProperty(props,"subnetMapping",this),cdk().requireProperty(props,"vpcId",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkFirewall::VpcEndpointAssociation",void 0,{tagPropertyName:"tags"}),this._description=props.description,this._firewallArn=props.firewallArn,this._subnetMapping=props.subnetMapping,this._tags=props.tags,this._vpcId=props.vpcId}get vpcEndpointAssociationRef(){return{vpcEndpointAssociationArn:this.ref}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get firewallArn(){return this._firewallArn}set firewallArn(value){cdk().traceProperty(this.node,"FirewallArn"),this._firewallArn=value}get subnetMapping(){return this._subnetMapping}set subnetMapping(value){cdk().traceProperty(this.node,"SubnetMapping"),this._subnetMapping=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrEndpointId(){return cdk().Token.asString(this.getAtt("EndpointId",cdk().ResolutionTypeHint.STRING))}get attrVpcEndpointAssociationArn(){return cdk().Token.asString(this.getAtt("VpcEndpointAssociationArn",cdk().ResolutionTypeHint.STRING))}get attrVpcEndpointAssociationId(){return cdk().Token.asString(this.getAtt("VpcEndpointAssociationId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),description:this._description,firewallArn:this._firewallArn,subnetMapping:this._subnetMapping,vpcId:this._vpcId}}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",CfnVpcEndpointAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVpcEndpointAssociationPropsToCloudFormation(props)}}exports.CfnVpcEndpointAssociation=CfnVpcEndpointAssociation;function CfnVpcEndpointAssociationSubnetMappingPropertyValidator(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("ipAddressType",cdk().validateString)(properties.ipAddressType)),errors.collect(cdk().propertyValidator("subnetId",cdk().requiredValidator)(properties.subnetId)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "SubnetMappingProperty"')}function convertCfnVpcEndpointAssociationSubnetMappingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVpcEndpointAssociationSubnetMappingPropertyValidator(properties).assertSuccess(),{IPAddressType:cdk().stringToCloudFormation(properties.ipAddressType),SubnetId:cdk().stringToCloudFormation(properties.subnetId)}):properties}function CfnVpcEndpointAssociationSubnetMappingPropertyFromCloudFormation(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("ipAddressType","IPAddressType",properties.IPAddressType!=null?cfn_parse().FromCloudFormation.getString(properties.IPAddressType):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVpcEndpointAssociationPropsValidator(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("firewallArn",cdk().requiredValidator)(properties.firewallArn)),errors.collect(cdk().propertyValidator("firewallArn",cdk().validateString)(properties.firewallArn)),errors.collect(cdk().propertyValidator("subnetMapping",cdk().requiredValidator)(properties.subnetMapping)),errors.collect(cdk().propertyValidator("subnetMapping",CfnVpcEndpointAssociationSubnetMappingPropertyValidator)(properties.subnetMapping)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnVpcEndpointAssociationProps"')}function convertCfnVpcEndpointAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVpcEndpointAssociationPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),FirewallArn:cdk().stringToCloudFormation(properties.firewallArn),SubnetMapping:convertCfnVpcEndpointAssociationSubnetMappingPropertyToCloudFormation(properties.subnetMapping),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnVpcEndpointAssociationPropsFromCloudFormation(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("firewallArn","FirewallArn",properties.FirewallArn!=null?cfn_parse().FromCloudFormation.getString(properties.FirewallArn):void 0),ret.addPropertyResult("subnetMapping","SubnetMapping",properties.SubnetMapping!=null?CfnVpcEndpointAssociationSubnetMappingPropertyFromCloudFormation(properties.SubnetMapping):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}