Files
2026-05-06 18:55:16 -05:00

2 lines
366 KiB
JavaScript

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnVpcOrigin=exports.CfnTrustStore=exports.CfnKeyValueStore=exports.CfnDistributionTenant=exports.CfnConnectionGroup=exports.CfnConnectionFunction=exports.CfnAnycastIpList=exports.CfnStreamingDistribution=exports.CfnResponseHeadersPolicy=exports.CfnRealtimeLogConfig=exports.CfnPublicKey=exports.CfnOriginRequestPolicy=exports.CfnOriginAccessControl=exports.CfnMonitoringSubscription=exports.CfnKeyGroup=exports.CfnFunction=exports.CfnDistribution=exports.CfnContinuousDeploymentPolicy=exports.CfnCloudFrontOriginAccessIdentity=exports.CfnCachePolicy=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 CfnCachePolicy extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnCachePolicy",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::CachePolicy";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCachePolicyPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCachePolicy(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 isCfnCachePolicy(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCachePolicy.CFN_RESOURCE_TYPE_NAME}static arnForCachePolicy(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudfront_ICachePolicyRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCachePolicy),error}return new(cfn_parse()).TemplateString("arn:${Partition}:cloudfront::${Account}:cache-policy/${Id}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,Id:resource.cachePolicyRef.cachePolicyId})}_cachePolicyConfig;cfnPropertyNames={cachePolicyConfig:"CachePolicyConfig"};constructor(scope,id,props){super(scope,id,{type:CfnCachePolicy.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnCachePolicyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCachePolicy),error}cdk().requireProperty(props,"cachePolicyConfig",this),this._cachePolicyConfig=props.cachePolicyConfig}get cachePolicyRef(){return{cachePolicyId:this.ref}}get cachePolicyConfig(){return this._cachePolicyConfig}set cachePolicyConfig(value){cdk().traceProperty(this.node,"CachePolicyConfig"),this._cachePolicyConfig=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrLastModifiedTime(){return cdk().Token.asString(this.getAtt("LastModifiedTime",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{cachePolicyConfig:this._cachePolicyConfig}}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",CfnCachePolicy.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCachePolicyPropsToCloudFormation(props)}}exports.CfnCachePolicy=CfnCachePolicy;function CfnCachePolicyHeadersConfigPropertyValidator(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("headerBehavior",cdk().requiredValidator)(properties.headerBehavior)),errors.collect(cdk().propertyValidator("headerBehavior",cdk().validateString)(properties.headerBehavior)),errors.collect(cdk().propertyValidator("headers",cdk().listValidator(cdk().validateString))(properties.headers)),errors.wrap('supplied properties not correct for "HeadersConfigProperty"')}function convertCfnCachePolicyHeadersConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCachePolicyHeadersConfigPropertyValidator(properties).assertSuccess(),{HeaderBehavior:cdk().stringToCloudFormation(properties.headerBehavior),Headers:cdk().listMapper(cdk().stringToCloudFormation)(properties.headers)}):properties}function CfnCachePolicyHeadersConfigPropertyFromCloudFormation(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("headerBehavior","HeaderBehavior",properties.HeaderBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.HeaderBehavior):void 0),ret.addPropertyResult("headers","Headers",properties.Headers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Headers):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCachePolicyCookiesConfigPropertyValidator(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("cookieBehavior",cdk().requiredValidator)(properties.cookieBehavior)),errors.collect(cdk().propertyValidator("cookieBehavior",cdk().validateString)(properties.cookieBehavior)),errors.collect(cdk().propertyValidator("cookies",cdk().listValidator(cdk().validateString))(properties.cookies)),errors.wrap('supplied properties not correct for "CookiesConfigProperty"')}function convertCfnCachePolicyCookiesConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCachePolicyCookiesConfigPropertyValidator(properties).assertSuccess(),{CookieBehavior:cdk().stringToCloudFormation(properties.cookieBehavior),Cookies:cdk().listMapper(cdk().stringToCloudFormation)(properties.cookies)}):properties}function CfnCachePolicyCookiesConfigPropertyFromCloudFormation(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("cookieBehavior","CookieBehavior",properties.CookieBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.CookieBehavior):void 0),ret.addPropertyResult("cookies","Cookies",properties.Cookies!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Cookies):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCachePolicyQueryStringsConfigPropertyValidator(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("queryStringBehavior",cdk().requiredValidator)(properties.queryStringBehavior)),errors.collect(cdk().propertyValidator("queryStringBehavior",cdk().validateString)(properties.queryStringBehavior)),errors.collect(cdk().propertyValidator("queryStrings",cdk().listValidator(cdk().validateString))(properties.queryStrings)),errors.wrap('supplied properties not correct for "QueryStringsConfigProperty"')}function convertCfnCachePolicyQueryStringsConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCachePolicyQueryStringsConfigPropertyValidator(properties).assertSuccess(),{QueryStringBehavior:cdk().stringToCloudFormation(properties.queryStringBehavior),QueryStrings:cdk().listMapper(cdk().stringToCloudFormation)(properties.queryStrings)}):properties}function CfnCachePolicyQueryStringsConfigPropertyFromCloudFormation(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("queryStringBehavior","QueryStringBehavior",properties.QueryStringBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.QueryStringBehavior):void 0),ret.addPropertyResult("queryStrings","QueryStrings",properties.QueryStrings!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.QueryStrings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCachePolicyParametersInCacheKeyAndForwardedToOriginPropertyValidator(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("cookiesConfig",cdk().requiredValidator)(properties.cookiesConfig)),errors.collect(cdk().propertyValidator("cookiesConfig",CfnCachePolicyCookiesConfigPropertyValidator)(properties.cookiesConfig)),errors.collect(cdk().propertyValidator("enableAcceptEncodingBrotli",cdk().validateBoolean)(properties.enableAcceptEncodingBrotli)),errors.collect(cdk().propertyValidator("enableAcceptEncodingGzip",cdk().requiredValidator)(properties.enableAcceptEncodingGzip)),errors.collect(cdk().propertyValidator("enableAcceptEncodingGzip",cdk().validateBoolean)(properties.enableAcceptEncodingGzip)),errors.collect(cdk().propertyValidator("headersConfig",cdk().requiredValidator)(properties.headersConfig)),errors.collect(cdk().propertyValidator("headersConfig",CfnCachePolicyHeadersConfigPropertyValidator)(properties.headersConfig)),errors.collect(cdk().propertyValidator("queryStringsConfig",cdk().requiredValidator)(properties.queryStringsConfig)),errors.collect(cdk().propertyValidator("queryStringsConfig",CfnCachePolicyQueryStringsConfigPropertyValidator)(properties.queryStringsConfig)),errors.wrap('supplied properties not correct for "ParametersInCacheKeyAndForwardedToOriginProperty"')}function convertCfnCachePolicyParametersInCacheKeyAndForwardedToOriginPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCachePolicyParametersInCacheKeyAndForwardedToOriginPropertyValidator(properties).assertSuccess(),{CookiesConfig:convertCfnCachePolicyCookiesConfigPropertyToCloudFormation(properties.cookiesConfig),EnableAcceptEncodingBrotli:cdk().booleanToCloudFormation(properties.enableAcceptEncodingBrotli),EnableAcceptEncodingGzip:cdk().booleanToCloudFormation(properties.enableAcceptEncodingGzip),HeadersConfig:convertCfnCachePolicyHeadersConfigPropertyToCloudFormation(properties.headersConfig),QueryStringsConfig:convertCfnCachePolicyQueryStringsConfigPropertyToCloudFormation(properties.queryStringsConfig)}):properties}function CfnCachePolicyParametersInCacheKeyAndForwardedToOriginPropertyFromCloudFormation(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("cookiesConfig","CookiesConfig",properties.CookiesConfig!=null?CfnCachePolicyCookiesConfigPropertyFromCloudFormation(properties.CookiesConfig):void 0),ret.addPropertyResult("enableAcceptEncodingBrotli","EnableAcceptEncodingBrotli",properties.EnableAcceptEncodingBrotli!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableAcceptEncodingBrotli):void 0),ret.addPropertyResult("enableAcceptEncodingGzip","EnableAcceptEncodingGzip",properties.EnableAcceptEncodingGzip!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableAcceptEncodingGzip):void 0),ret.addPropertyResult("headersConfig","HeadersConfig",properties.HeadersConfig!=null?CfnCachePolicyHeadersConfigPropertyFromCloudFormation(properties.HeadersConfig):void 0),ret.addPropertyResult("queryStringsConfig","QueryStringsConfig",properties.QueryStringsConfig!=null?CfnCachePolicyQueryStringsConfigPropertyFromCloudFormation(properties.QueryStringsConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCachePolicyCachePolicyConfigPropertyValidator(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("comment",cdk().validateString)(properties.comment)),errors.collect(cdk().propertyValidator("defaultTtl",cdk().requiredValidator)(properties.defaultTtl)),errors.collect(cdk().propertyValidator("defaultTtl",cdk().validateNumber)(properties.defaultTtl)),errors.collect(cdk().propertyValidator("maxTtl",cdk().requiredValidator)(properties.maxTtl)),errors.collect(cdk().propertyValidator("maxTtl",cdk().validateNumber)(properties.maxTtl)),errors.collect(cdk().propertyValidator("minTtl",cdk().requiredValidator)(properties.minTtl)),errors.collect(cdk().propertyValidator("minTtl",cdk().validateNumber)(properties.minTtl)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("parametersInCacheKeyAndForwardedToOrigin",cdk().requiredValidator)(properties.parametersInCacheKeyAndForwardedToOrigin)),errors.collect(cdk().propertyValidator("parametersInCacheKeyAndForwardedToOrigin",CfnCachePolicyParametersInCacheKeyAndForwardedToOriginPropertyValidator)(properties.parametersInCacheKeyAndForwardedToOrigin)),errors.wrap('supplied properties not correct for "CachePolicyConfigProperty"')}function convertCfnCachePolicyCachePolicyConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCachePolicyCachePolicyConfigPropertyValidator(properties).assertSuccess(),{Comment:cdk().stringToCloudFormation(properties.comment),DefaultTTL:cdk().numberToCloudFormation(properties.defaultTtl),MaxTTL:cdk().numberToCloudFormation(properties.maxTtl),MinTTL:cdk().numberToCloudFormation(properties.minTtl),Name:cdk().stringToCloudFormation(properties.name),ParametersInCacheKeyAndForwardedToOrigin:convertCfnCachePolicyParametersInCacheKeyAndForwardedToOriginPropertyToCloudFormation(properties.parametersInCacheKeyAndForwardedToOrigin)}):properties}function CfnCachePolicyCachePolicyConfigPropertyFromCloudFormation(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("comment","Comment",properties.Comment!=null?cfn_parse().FromCloudFormation.getString(properties.Comment):void 0),ret.addPropertyResult("defaultTtl","DefaultTTL",properties.DefaultTTL!=null?cfn_parse().FromCloudFormation.getNumber(properties.DefaultTTL):void 0),ret.addPropertyResult("maxTtl","MaxTTL",properties.MaxTTL!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxTTL):void 0),ret.addPropertyResult("minTtl","MinTTL",properties.MinTTL!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinTTL):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("parametersInCacheKeyAndForwardedToOrigin","ParametersInCacheKeyAndForwardedToOrigin",properties.ParametersInCacheKeyAndForwardedToOrigin!=null?CfnCachePolicyParametersInCacheKeyAndForwardedToOriginPropertyFromCloudFormation(properties.ParametersInCacheKeyAndForwardedToOrigin):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCachePolicyPropsValidator(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("cachePolicyConfig",cdk().requiredValidator)(properties.cachePolicyConfig)),errors.collect(cdk().propertyValidator("cachePolicyConfig",CfnCachePolicyCachePolicyConfigPropertyValidator)(properties.cachePolicyConfig)),errors.wrap('supplied properties not correct for "CfnCachePolicyProps"')}function convertCfnCachePolicyPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCachePolicyPropsValidator(properties).assertSuccess(),{CachePolicyConfig:convertCfnCachePolicyCachePolicyConfigPropertyToCloudFormation(properties.cachePolicyConfig)}):properties}function CfnCachePolicyPropsFromCloudFormation(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("cachePolicyConfig","CachePolicyConfig",properties.CachePolicyConfig!=null?CfnCachePolicyCachePolicyConfigPropertyFromCloudFormation(properties.CachePolicyConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCloudFrontOriginAccessIdentity extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnCloudFrontOriginAccessIdentity",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::CloudFrontOriginAccessIdentity";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCloudFrontOriginAccessIdentityPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCloudFrontOriginAccessIdentity(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 isCfnCloudFrontOriginAccessIdentity(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCloudFrontOriginAccessIdentity.CFN_RESOURCE_TYPE_NAME}static arnForCloudFrontOriginAccessIdentity(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudfront_ICloudFrontOriginAccessIdentityRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCloudFrontOriginAccessIdentity),error}return new(cfn_parse()).TemplateString("arn:${Partition}:cloudfront::${Account}:origin-access-identity/${Id}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,Id:resource.cloudFrontOriginAccessIdentityRef.cloudFrontOriginAccessIdentityId})}_cloudFrontOriginAccessIdentityConfig;cfnPropertyNames={cloudFrontOriginAccessIdentityConfig:"CloudFrontOriginAccessIdentityConfig"};constructor(scope,id,props){super(scope,id,{type:CfnCloudFrontOriginAccessIdentity.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnCloudFrontOriginAccessIdentityProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCloudFrontOriginAccessIdentity),error}cdk().requireProperty(props,"cloudFrontOriginAccessIdentityConfig",this),this._cloudFrontOriginAccessIdentityConfig=props.cloudFrontOriginAccessIdentityConfig}get cloudFrontOriginAccessIdentityRef(){return{cloudFrontOriginAccessIdentityId:this.ref}}get cloudFrontOriginAccessIdentityConfig(){return this._cloudFrontOriginAccessIdentityConfig}set cloudFrontOriginAccessIdentityConfig(value){cdk().traceProperty(this.node,"CloudFrontOriginAccessIdentityConfig"),this._cloudFrontOriginAccessIdentityConfig=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrS3CanonicalUserId(){return cdk().Token.asString(this.getAtt("S3CanonicalUserId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{cloudFrontOriginAccessIdentityConfig:this._cloudFrontOriginAccessIdentityConfig}}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",CfnCloudFrontOriginAccessIdentity.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCloudFrontOriginAccessIdentityPropsToCloudFormation(props)}}exports.CfnCloudFrontOriginAccessIdentity=CfnCloudFrontOriginAccessIdentity;function CfnCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfigPropertyValidator(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("comment",cdk().requiredValidator)(properties.comment)),errors.collect(cdk().propertyValidator("comment",cdk().validateString)(properties.comment)),errors.wrap('supplied properties not correct for "CloudFrontOriginAccessIdentityConfigProperty"')}function convertCfnCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfigPropertyValidator(properties).assertSuccess(),{Comment:cdk().stringToCloudFormation(properties.comment)}):properties}function CfnCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfigPropertyFromCloudFormation(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("comment","Comment",properties.Comment!=null?cfn_parse().FromCloudFormation.getString(properties.Comment):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCloudFrontOriginAccessIdentityPropsValidator(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("cloudFrontOriginAccessIdentityConfig",cdk().requiredValidator)(properties.cloudFrontOriginAccessIdentityConfig)),errors.collect(cdk().propertyValidator("cloudFrontOriginAccessIdentityConfig",CfnCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfigPropertyValidator)(properties.cloudFrontOriginAccessIdentityConfig)),errors.wrap('supplied properties not correct for "CfnCloudFrontOriginAccessIdentityProps"')}function convertCfnCloudFrontOriginAccessIdentityPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCloudFrontOriginAccessIdentityPropsValidator(properties).assertSuccess(),{CloudFrontOriginAccessIdentityConfig:convertCfnCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfigPropertyToCloudFormation(properties.cloudFrontOriginAccessIdentityConfig)}):properties}function CfnCloudFrontOriginAccessIdentityPropsFromCloudFormation(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("cloudFrontOriginAccessIdentityConfig","CloudFrontOriginAccessIdentityConfig",properties.CloudFrontOriginAccessIdentityConfig!=null?CfnCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfigPropertyFromCloudFormation(properties.CloudFrontOriginAccessIdentityConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnContinuousDeploymentPolicy extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnContinuousDeploymentPolicy",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::ContinuousDeploymentPolicy";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnContinuousDeploymentPolicyPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnContinuousDeploymentPolicy(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 isCfnContinuousDeploymentPolicy(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnContinuousDeploymentPolicy.CFN_RESOURCE_TYPE_NAME}static arnForContinuousDeploymentPolicy(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudfront_IContinuousDeploymentPolicyRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForContinuousDeploymentPolicy),error}return new(cfn_parse()).TemplateString("arn:${Partition}:cloudfront::${Account}:continuous-deployment-policy/${Id}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,Id:resource.continuousDeploymentPolicyRef.continuousDeploymentPolicyId})}_continuousDeploymentPolicyConfig;cfnPropertyNames={continuousDeploymentPolicyConfig:"ContinuousDeploymentPolicyConfig"};constructor(scope,id,props){super(scope,id,{type:CfnContinuousDeploymentPolicy.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnContinuousDeploymentPolicyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnContinuousDeploymentPolicy),error}cdk().requireProperty(props,"continuousDeploymentPolicyConfig",this),this._continuousDeploymentPolicyConfig=props.continuousDeploymentPolicyConfig}get continuousDeploymentPolicyRef(){return{continuousDeploymentPolicyId:this.ref}}get continuousDeploymentPolicyConfig(){return this._continuousDeploymentPolicyConfig}set continuousDeploymentPolicyConfig(value){cdk().traceProperty(this.node,"ContinuousDeploymentPolicyConfig"),this._continuousDeploymentPolicyConfig=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrLastModifiedTime(){return cdk().Token.asString(this.getAtt("LastModifiedTime",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{continuousDeploymentPolicyConfig:this._continuousDeploymentPolicyConfig}}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",CfnContinuousDeploymentPolicy.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnContinuousDeploymentPolicyPropsToCloudFormation(props)}}exports.CfnContinuousDeploymentPolicy=CfnContinuousDeploymentPolicy;function CfnContinuousDeploymentPolicySingleHeaderPolicyConfigPropertyValidator(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("header",cdk().requiredValidator)(properties.header)),errors.collect(cdk().propertyValidator("header",cdk().validateString)(properties.header)),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 "SingleHeaderPolicyConfigProperty"')}function convertCfnContinuousDeploymentPolicySingleHeaderPolicyConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContinuousDeploymentPolicySingleHeaderPolicyConfigPropertyValidator(properties).assertSuccess(),{Header:cdk().stringToCloudFormation(properties.header),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnContinuousDeploymentPolicySingleHeaderPolicyConfigPropertyFromCloudFormation(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("header","Header",properties.Header!=null?cfn_parse().FromCloudFormation.getString(properties.Header):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContinuousDeploymentPolicySessionStickinessConfigPropertyValidator(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("idleTtl",cdk().requiredValidator)(properties.idleTtl)),errors.collect(cdk().propertyValidator("idleTtl",cdk().validateNumber)(properties.idleTtl)),errors.collect(cdk().propertyValidator("maximumTtl",cdk().requiredValidator)(properties.maximumTtl)),errors.collect(cdk().propertyValidator("maximumTtl",cdk().validateNumber)(properties.maximumTtl)),errors.wrap('supplied properties not correct for "SessionStickinessConfigProperty"')}function convertCfnContinuousDeploymentPolicySessionStickinessConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContinuousDeploymentPolicySessionStickinessConfigPropertyValidator(properties).assertSuccess(),{IdleTTL:cdk().numberToCloudFormation(properties.idleTtl),MaximumTTL:cdk().numberToCloudFormation(properties.maximumTtl)}):properties}function CfnContinuousDeploymentPolicySessionStickinessConfigPropertyFromCloudFormation(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("idleTtl","IdleTTL",properties.IdleTTL!=null?cfn_parse().FromCloudFormation.getNumber(properties.IdleTTL):void 0),ret.addPropertyResult("maximumTtl","MaximumTTL",properties.MaximumTTL!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaximumTTL):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContinuousDeploymentPolicySingleWeightConfigPropertyValidator(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("sessionStickinessConfig",CfnContinuousDeploymentPolicySessionStickinessConfigPropertyValidator)(properties.sessionStickinessConfig)),errors.collect(cdk().propertyValidator("weight",cdk().requiredValidator)(properties.weight)),errors.collect(cdk().propertyValidator("weight",cdk().validateNumber)(properties.weight)),errors.wrap('supplied properties not correct for "SingleWeightConfigProperty"')}function convertCfnContinuousDeploymentPolicySingleWeightConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContinuousDeploymentPolicySingleWeightConfigPropertyValidator(properties).assertSuccess(),{SessionStickinessConfig:convertCfnContinuousDeploymentPolicySessionStickinessConfigPropertyToCloudFormation(properties.sessionStickinessConfig),Weight:cdk().numberToCloudFormation(properties.weight)}):properties}function CfnContinuousDeploymentPolicySingleWeightConfigPropertyFromCloudFormation(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("sessionStickinessConfig","SessionStickinessConfig",properties.SessionStickinessConfig!=null?CfnContinuousDeploymentPolicySessionStickinessConfigPropertyFromCloudFormation(properties.SessionStickinessConfig):void 0),ret.addPropertyResult("weight","Weight",properties.Weight!=null?cfn_parse().FromCloudFormation.getNumber(properties.Weight):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContinuousDeploymentPolicySingleHeaderConfigPropertyValidator(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("header",cdk().requiredValidator)(properties.header)),errors.collect(cdk().propertyValidator("header",cdk().validateString)(properties.header)),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 "SingleHeaderConfigProperty"')}function convertCfnContinuousDeploymentPolicySingleHeaderConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContinuousDeploymentPolicySingleHeaderConfigPropertyValidator(properties).assertSuccess(),{Header:cdk().stringToCloudFormation(properties.header),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnContinuousDeploymentPolicySingleHeaderConfigPropertyFromCloudFormation(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("header","Header",properties.Header!=null?cfn_parse().FromCloudFormation.getString(properties.Header):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContinuousDeploymentPolicyTrafficConfigPropertyValidator(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("singleHeaderConfig",CfnContinuousDeploymentPolicySingleHeaderConfigPropertyValidator)(properties.singleHeaderConfig)),errors.collect(cdk().propertyValidator("singleWeightConfig",CfnContinuousDeploymentPolicySingleWeightConfigPropertyValidator)(properties.singleWeightConfig)),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 "TrafficConfigProperty"')}function convertCfnContinuousDeploymentPolicyTrafficConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContinuousDeploymentPolicyTrafficConfigPropertyValidator(properties).assertSuccess(),{SingleHeaderConfig:convertCfnContinuousDeploymentPolicySingleHeaderConfigPropertyToCloudFormation(properties.singleHeaderConfig),SingleWeightConfig:convertCfnContinuousDeploymentPolicySingleWeightConfigPropertyToCloudFormation(properties.singleWeightConfig),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnContinuousDeploymentPolicyTrafficConfigPropertyFromCloudFormation(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("singleHeaderConfig","SingleHeaderConfig",properties.SingleHeaderConfig!=null?CfnContinuousDeploymentPolicySingleHeaderConfigPropertyFromCloudFormation(properties.SingleHeaderConfig):void 0),ret.addPropertyResult("singleWeightConfig","SingleWeightConfig",properties.SingleWeightConfig!=null?CfnContinuousDeploymentPolicySingleWeightConfigPropertyFromCloudFormation(properties.SingleWeightConfig):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContinuousDeploymentPolicySingleWeightPolicyConfigPropertyValidator(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("sessionStickinessConfig",CfnContinuousDeploymentPolicySessionStickinessConfigPropertyValidator)(properties.sessionStickinessConfig)),errors.collect(cdk().propertyValidator("weight",cdk().requiredValidator)(properties.weight)),errors.collect(cdk().propertyValidator("weight",cdk().validateNumber)(properties.weight)),errors.wrap('supplied properties not correct for "SingleWeightPolicyConfigProperty"')}function convertCfnContinuousDeploymentPolicySingleWeightPolicyConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContinuousDeploymentPolicySingleWeightPolicyConfigPropertyValidator(properties).assertSuccess(),{SessionStickinessConfig:convertCfnContinuousDeploymentPolicySessionStickinessConfigPropertyToCloudFormation(properties.sessionStickinessConfig),Weight:cdk().numberToCloudFormation(properties.weight)}):properties}function CfnContinuousDeploymentPolicySingleWeightPolicyConfigPropertyFromCloudFormation(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("sessionStickinessConfig","SessionStickinessConfig",properties.SessionStickinessConfig!=null?CfnContinuousDeploymentPolicySessionStickinessConfigPropertyFromCloudFormation(properties.SessionStickinessConfig):void 0),ret.addPropertyResult("weight","Weight",properties.Weight!=null?cfn_parse().FromCloudFormation.getNumber(properties.Weight):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContinuousDeploymentPolicyContinuousDeploymentPolicyConfigPropertyValidator(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("enabled",cdk().requiredValidator)(properties.enabled)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("singleHeaderPolicyConfig",CfnContinuousDeploymentPolicySingleHeaderPolicyConfigPropertyValidator)(properties.singleHeaderPolicyConfig)),errors.collect(cdk().propertyValidator("singleWeightPolicyConfig",CfnContinuousDeploymentPolicySingleWeightPolicyConfigPropertyValidator)(properties.singleWeightPolicyConfig)),errors.collect(cdk().propertyValidator("stagingDistributionDnsNames",cdk().requiredValidator)(properties.stagingDistributionDnsNames)),errors.collect(cdk().propertyValidator("stagingDistributionDnsNames",cdk().listValidator(cdk().validateString))(properties.stagingDistributionDnsNames)),errors.collect(cdk().propertyValidator("trafficConfig",CfnContinuousDeploymentPolicyTrafficConfigPropertyValidator)(properties.trafficConfig)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "ContinuousDeploymentPolicyConfigProperty"')}function convertCfnContinuousDeploymentPolicyContinuousDeploymentPolicyConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContinuousDeploymentPolicyContinuousDeploymentPolicyConfigPropertyValidator(properties).assertSuccess(),{Enabled:cdk().booleanToCloudFormation(properties.enabled),SingleHeaderPolicyConfig:convertCfnContinuousDeploymentPolicySingleHeaderPolicyConfigPropertyToCloudFormation(properties.singleHeaderPolicyConfig),SingleWeightPolicyConfig:convertCfnContinuousDeploymentPolicySingleWeightPolicyConfigPropertyToCloudFormation(properties.singleWeightPolicyConfig),StagingDistributionDnsNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.stagingDistributionDnsNames),TrafficConfig:convertCfnContinuousDeploymentPolicyTrafficConfigPropertyToCloudFormation(properties.trafficConfig),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnContinuousDeploymentPolicyContinuousDeploymentPolicyConfigPropertyFromCloudFormation(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("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("singleHeaderPolicyConfig","SingleHeaderPolicyConfig",properties.SingleHeaderPolicyConfig!=null?CfnContinuousDeploymentPolicySingleHeaderPolicyConfigPropertyFromCloudFormation(properties.SingleHeaderPolicyConfig):void 0),ret.addPropertyResult("singleWeightPolicyConfig","SingleWeightPolicyConfig",properties.SingleWeightPolicyConfig!=null?CfnContinuousDeploymentPolicySingleWeightPolicyConfigPropertyFromCloudFormation(properties.SingleWeightPolicyConfig):void 0),ret.addPropertyResult("stagingDistributionDnsNames","StagingDistributionDnsNames",properties.StagingDistributionDnsNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.StagingDistributionDnsNames):void 0),ret.addPropertyResult("trafficConfig","TrafficConfig",properties.TrafficConfig!=null?CfnContinuousDeploymentPolicyTrafficConfigPropertyFromCloudFormation(properties.TrafficConfig):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContinuousDeploymentPolicyPropsValidator(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("continuousDeploymentPolicyConfig",cdk().requiredValidator)(properties.continuousDeploymentPolicyConfig)),errors.collect(cdk().propertyValidator("continuousDeploymentPolicyConfig",CfnContinuousDeploymentPolicyContinuousDeploymentPolicyConfigPropertyValidator)(properties.continuousDeploymentPolicyConfig)),errors.wrap('supplied properties not correct for "CfnContinuousDeploymentPolicyProps"')}function convertCfnContinuousDeploymentPolicyPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContinuousDeploymentPolicyPropsValidator(properties).assertSuccess(),{ContinuousDeploymentPolicyConfig:convertCfnContinuousDeploymentPolicyContinuousDeploymentPolicyConfigPropertyToCloudFormation(properties.continuousDeploymentPolicyConfig)}):properties}function CfnContinuousDeploymentPolicyPropsFromCloudFormation(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("continuousDeploymentPolicyConfig","ContinuousDeploymentPolicyConfig",properties.ContinuousDeploymentPolicyConfig!=null?CfnContinuousDeploymentPolicyContinuousDeploymentPolicyConfigPropertyFromCloudFormation(properties.ContinuousDeploymentPolicyConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDistribution extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnDistribution",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::Distribution";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDistributionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDistribution(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 isCfnDistribution(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDistribution.CFN_RESOURCE_TYPE_NAME}static fromDistributionId(scope,id,distributionId){class Import extends cdk().Resource{distributionRef;constructor(scope2,id2,distributionId2){super(scope2,id2),this.distributionRef={distributionId:distributionId2}}}return new Import(scope,id,distributionId)}static arnForDistribution(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudfront_IDistributionRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForDistribution),error}return new(cfn_parse()).TemplateString("arn:${Partition}:cloudfront::${Account}:distribution/${DistributionId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,DistributionId:resource.distributionRef.distributionId})}_distributionConfig;tags;_tagsRaw;cfnPropertyNames={distributionConfig:"DistributionConfig",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnDistribution.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnDistributionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDistribution),error}cdk().requireProperty(props,"distributionConfig",this),this._distributionConfig=props.distributionConfig,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::CloudFront::Distribution",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get distributionRef(){return{distributionId:this.ref}}get distributionConfig(){return this._distributionConfig}set distributionConfig(value){cdk().traceProperty(this.node,"DistributionConfig"),this._distributionConfig=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrDomainName(){return cdk().Token.asString(this.getAtt("DomainName",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{distributionConfig:this._distributionConfig,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",CfnDistribution.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDistributionPropsToCloudFormation(props)}}exports.CfnDistribution=CfnDistribution;function CfnDistributionLoggingPropertyValidator(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("bucket",cdk().validateString)(properties.bucket)),errors.collect(cdk().propertyValidator("includeCookies",cdk().validateBoolean)(properties.includeCookies)),errors.collect(cdk().propertyValidator("prefix",cdk().validateString)(properties.prefix)),errors.wrap('supplied properties not correct for "LoggingProperty"')}function convertCfnDistributionLoggingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionLoggingPropertyValidator(properties).assertSuccess(),{Bucket:cdk().stringToCloudFormation(properties.bucket),IncludeCookies:cdk().booleanToCloudFormation(properties.includeCookies),Prefix:cdk().stringToCloudFormation(properties.prefix)}):properties}function CfnDistributionLoggingPropertyFromCloudFormation(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("bucket","Bucket",properties.Bucket!=null?cfn_parse().FromCloudFormation.getString(properties.Bucket):void 0),ret.addPropertyResult("includeCookies","IncludeCookies",properties.IncludeCookies!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IncludeCookies):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?cfn_parse().FromCloudFormation.getString(properties.Prefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionOriginCustomHeaderPropertyValidator(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("headerName",cdk().requiredValidator)(properties.headerName)),errors.collect(cdk().propertyValidator("headerName",cdk().validateString)(properties.headerName)),errors.collect(cdk().propertyValidator("headerValue",cdk().requiredValidator)(properties.headerValue)),errors.collect(cdk().propertyValidator("headerValue",cdk().validateString)(properties.headerValue)),errors.wrap('supplied properties not correct for "OriginCustomHeaderProperty"')}function convertCfnDistributionOriginCustomHeaderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionOriginCustomHeaderPropertyValidator(properties).assertSuccess(),{HeaderName:cdk().stringToCloudFormation(properties.headerName),HeaderValue:cdk().stringToCloudFormation(properties.headerValue)}):properties}function CfnDistributionOriginCustomHeaderPropertyFromCloudFormation(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("headerName","HeaderName",properties.HeaderName!=null?cfn_parse().FromCloudFormation.getString(properties.HeaderName):void 0),ret.addPropertyResult("headerValue","HeaderValue",properties.HeaderValue!=null?cfn_parse().FromCloudFormation.getString(properties.HeaderValue):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionOriginShieldPropertyValidator(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("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("originShieldRegion",cdk().validateString)(properties.originShieldRegion)),errors.wrap('supplied properties not correct for "OriginShieldProperty"')}function convertCfnDistributionOriginShieldPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionOriginShieldPropertyValidator(properties).assertSuccess(),{Enabled:cdk().booleanToCloudFormation(properties.enabled),OriginShieldRegion:cdk().stringToCloudFormation(properties.originShieldRegion)}):properties}function CfnDistributionOriginShieldPropertyFromCloudFormation(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("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("originShieldRegion","OriginShieldRegion",properties.OriginShieldRegion!=null?cfn_parse().FromCloudFormation.getString(properties.OriginShieldRegion):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionS3OriginConfigPropertyValidator(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("originAccessIdentity",cdk().validateString)(properties.originAccessIdentity)),errors.collect(cdk().propertyValidator("originReadTimeout",cdk().validateNumber)(properties.originReadTimeout)),errors.wrap('supplied properties not correct for "S3OriginConfigProperty"')}function convertCfnDistributionS3OriginConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionS3OriginConfigPropertyValidator(properties).assertSuccess(),{OriginAccessIdentity:cdk().stringToCloudFormation(properties.originAccessIdentity),OriginReadTimeout:cdk().numberToCloudFormation(properties.originReadTimeout)}):properties}function CfnDistributionS3OriginConfigPropertyFromCloudFormation(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("originAccessIdentity","OriginAccessIdentity",properties.OriginAccessIdentity!=null?cfn_parse().FromCloudFormation.getString(properties.OriginAccessIdentity):void 0),ret.addPropertyResult("originReadTimeout","OriginReadTimeout",properties.OriginReadTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.OriginReadTimeout):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionOriginMtlsConfigPropertyValidator(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("clientCertificateArn",cdk().requiredValidator)(properties.clientCertificateArn)),errors.collect(cdk().propertyValidator("clientCertificateArn",cdk().validateString)(properties.clientCertificateArn)),errors.wrap('supplied properties not correct for "OriginMtlsConfigProperty"')}function convertCfnDistributionOriginMtlsConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionOriginMtlsConfigPropertyValidator(properties).assertSuccess(),{ClientCertificateArn:cdk().stringToCloudFormation(properties.clientCertificateArn)}):properties}function CfnDistributionOriginMtlsConfigPropertyFromCloudFormation(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("clientCertificateArn","ClientCertificateArn",properties.ClientCertificateArn!=null?cfn_parse().FromCloudFormation.getString(properties.ClientCertificateArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionCustomOriginConfigPropertyValidator(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("httpPort",cdk().validateNumber)(properties.httpPort)),errors.collect(cdk().propertyValidator("httpsPort",cdk().validateNumber)(properties.httpsPort)),errors.collect(cdk().propertyValidator("ipAddressType",cdk().validateString)(properties.ipAddressType)),errors.collect(cdk().propertyValidator("originKeepaliveTimeout",cdk().validateNumber)(properties.originKeepaliveTimeout)),errors.collect(cdk().propertyValidator("originMtlsConfig",CfnDistributionOriginMtlsConfigPropertyValidator)(properties.originMtlsConfig)),errors.collect(cdk().propertyValidator("originProtocolPolicy",cdk().requiredValidator)(properties.originProtocolPolicy)),errors.collect(cdk().propertyValidator("originProtocolPolicy",cdk().validateString)(properties.originProtocolPolicy)),errors.collect(cdk().propertyValidator("originReadTimeout",cdk().validateNumber)(properties.originReadTimeout)),errors.collect(cdk().propertyValidator("originSslProtocols",cdk().listValidator(cdk().validateString))(properties.originSslProtocols)),errors.wrap('supplied properties not correct for "CustomOriginConfigProperty"')}function convertCfnDistributionCustomOriginConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionCustomOriginConfigPropertyValidator(properties).assertSuccess(),{HTTPPort:cdk().numberToCloudFormation(properties.httpPort),HTTPSPort:cdk().numberToCloudFormation(properties.httpsPort),IpAddressType:cdk().stringToCloudFormation(properties.ipAddressType),OriginKeepaliveTimeout:cdk().numberToCloudFormation(properties.originKeepaliveTimeout),OriginMtlsConfig:convertCfnDistributionOriginMtlsConfigPropertyToCloudFormation(properties.originMtlsConfig),OriginProtocolPolicy:cdk().stringToCloudFormation(properties.originProtocolPolicy),OriginReadTimeout:cdk().numberToCloudFormation(properties.originReadTimeout),OriginSSLProtocols:cdk().listMapper(cdk().stringToCloudFormation)(properties.originSslProtocols)}):properties}function CfnDistributionCustomOriginConfigPropertyFromCloudFormation(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("httpPort","HTTPPort",properties.HTTPPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.HTTPPort):void 0),ret.addPropertyResult("httpsPort","HTTPSPort",properties.HTTPSPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.HTTPSPort):void 0),ret.addPropertyResult("ipAddressType","IpAddressType",properties.IpAddressType!=null?cfn_parse().FromCloudFormation.getString(properties.IpAddressType):void 0),ret.addPropertyResult("originKeepaliveTimeout","OriginKeepaliveTimeout",properties.OriginKeepaliveTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.OriginKeepaliveTimeout):void 0),ret.addPropertyResult("originMtlsConfig","OriginMtlsConfig",properties.OriginMtlsConfig!=null?CfnDistributionOriginMtlsConfigPropertyFromCloudFormation(properties.OriginMtlsConfig):void 0),ret.addPropertyResult("originProtocolPolicy","OriginProtocolPolicy",properties.OriginProtocolPolicy!=null?cfn_parse().FromCloudFormation.getString(properties.OriginProtocolPolicy):void 0),ret.addPropertyResult("originReadTimeout","OriginReadTimeout",properties.OriginReadTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.OriginReadTimeout):void 0),ret.addPropertyResult("originSslProtocols","OriginSSLProtocols",properties.OriginSSLProtocols!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.OriginSSLProtocols):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionVpcOriginConfigPropertyValidator(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("originKeepaliveTimeout",cdk().validateNumber)(properties.originKeepaliveTimeout)),errors.collect(cdk().propertyValidator("originReadTimeout",cdk().validateNumber)(properties.originReadTimeout)),errors.collect(cdk().propertyValidator("ownerAccountId",cdk().validateString)(properties.ownerAccountId)),errors.collect(cdk().propertyValidator("vpcOriginId",cdk().requiredValidator)(properties.vpcOriginId)),errors.collect(cdk().propertyValidator("vpcOriginId",cdk().validateString)(properties.vpcOriginId)),errors.wrap('supplied properties not correct for "VpcOriginConfigProperty"')}function convertCfnDistributionVpcOriginConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionVpcOriginConfigPropertyValidator(properties).assertSuccess(),{OriginKeepaliveTimeout:cdk().numberToCloudFormation(properties.originKeepaliveTimeout),OriginReadTimeout:cdk().numberToCloudFormation(properties.originReadTimeout),OwnerAccountId:cdk().stringToCloudFormation(properties.ownerAccountId),VpcOriginId:cdk().stringToCloudFormation(properties.vpcOriginId)}):properties}function CfnDistributionVpcOriginConfigPropertyFromCloudFormation(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("originKeepaliveTimeout","OriginKeepaliveTimeout",properties.OriginKeepaliveTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.OriginKeepaliveTimeout):void 0),ret.addPropertyResult("originReadTimeout","OriginReadTimeout",properties.OriginReadTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.OriginReadTimeout):void 0),ret.addPropertyResult("ownerAccountId","OwnerAccountId",properties.OwnerAccountId!=null?cfn_parse().FromCloudFormation.getString(properties.OwnerAccountId):void 0),ret.addPropertyResult("vpcOriginId","VpcOriginId",properties.VpcOriginId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcOriginId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionOriginPropertyValidator(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("connectionAttempts",cdk().validateNumber)(properties.connectionAttempts)),errors.collect(cdk().propertyValidator("connectionTimeout",cdk().validateNumber)(properties.connectionTimeout)),errors.collect(cdk().propertyValidator("customOriginConfig",CfnDistributionCustomOriginConfigPropertyValidator)(properties.customOriginConfig)),errors.collect(cdk().propertyValidator("domainName",cdk().requiredValidator)(properties.domainName)),errors.collect(cdk().propertyValidator("domainName",cdk().validateString)(properties.domainName)),errors.collect(cdk().propertyValidator("id",cdk().requiredValidator)(properties.id)),errors.collect(cdk().propertyValidator("id",cdk().validateString)(properties.id)),errors.collect(cdk().propertyValidator("originAccessControlId",cdk().validateString)(properties.originAccessControlId)),errors.collect(cdk().propertyValidator("originCustomHeaders",cdk().listValidator(CfnDistributionOriginCustomHeaderPropertyValidator))(properties.originCustomHeaders)),errors.collect(cdk().propertyValidator("originPath",cdk().validateString)(properties.originPath)),errors.collect(cdk().propertyValidator("originShield",CfnDistributionOriginShieldPropertyValidator)(properties.originShield)),errors.collect(cdk().propertyValidator("responseCompletionTimeout",cdk().validateNumber)(properties.responseCompletionTimeout)),errors.collect(cdk().propertyValidator("s3OriginConfig",CfnDistributionS3OriginConfigPropertyValidator)(properties.s3OriginConfig)),errors.collect(cdk().propertyValidator("vpcOriginConfig",CfnDistributionVpcOriginConfigPropertyValidator)(properties.vpcOriginConfig)),errors.wrap('supplied properties not correct for "OriginProperty"')}function convertCfnDistributionOriginPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionOriginPropertyValidator(properties).assertSuccess(),{ConnectionAttempts:cdk().numberToCloudFormation(properties.connectionAttempts),ConnectionTimeout:cdk().numberToCloudFormation(properties.connectionTimeout),CustomOriginConfig:convertCfnDistributionCustomOriginConfigPropertyToCloudFormation(properties.customOriginConfig),DomainName:cdk().stringToCloudFormation(properties.domainName),Id:cdk().stringToCloudFormation(properties.id),OriginAccessControlId:cdk().stringToCloudFormation(properties.originAccessControlId),OriginCustomHeaders:cdk().listMapper(convertCfnDistributionOriginCustomHeaderPropertyToCloudFormation)(properties.originCustomHeaders),OriginPath:cdk().stringToCloudFormation(properties.originPath),OriginShield:convertCfnDistributionOriginShieldPropertyToCloudFormation(properties.originShield),ResponseCompletionTimeout:cdk().numberToCloudFormation(properties.responseCompletionTimeout),S3OriginConfig:convertCfnDistributionS3OriginConfigPropertyToCloudFormation(properties.s3OriginConfig),VpcOriginConfig:convertCfnDistributionVpcOriginConfigPropertyToCloudFormation(properties.vpcOriginConfig)}):properties}function CfnDistributionOriginPropertyFromCloudFormation(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("connectionAttempts","ConnectionAttempts",properties.ConnectionAttempts!=null?cfn_parse().FromCloudFormation.getNumber(properties.ConnectionAttempts):void 0),ret.addPropertyResult("connectionTimeout","ConnectionTimeout",properties.ConnectionTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.ConnectionTimeout):void 0),ret.addPropertyResult("customOriginConfig","CustomOriginConfig",properties.CustomOriginConfig!=null?CfnDistributionCustomOriginConfigPropertyFromCloudFormation(properties.CustomOriginConfig):void 0),ret.addPropertyResult("domainName","DomainName",properties.DomainName!=null?cfn_parse().FromCloudFormation.getString(properties.DomainName):void 0),ret.addPropertyResult("id","Id",properties.Id!=null?cfn_parse().FromCloudFormation.getString(properties.Id):void 0),ret.addPropertyResult("originAccessControlId","OriginAccessControlId",properties.OriginAccessControlId!=null?cfn_parse().FromCloudFormation.getString(properties.OriginAccessControlId):void 0),ret.addPropertyResult("originCustomHeaders","OriginCustomHeaders",properties.OriginCustomHeaders!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionOriginCustomHeaderPropertyFromCloudFormation)(properties.OriginCustomHeaders):void 0),ret.addPropertyResult("originPath","OriginPath",properties.OriginPath!=null?cfn_parse().FromCloudFormation.getString(properties.OriginPath):void 0),ret.addPropertyResult("originShield","OriginShield",properties.OriginShield!=null?CfnDistributionOriginShieldPropertyFromCloudFormation(properties.OriginShield):void 0),ret.addPropertyResult("responseCompletionTimeout","ResponseCompletionTimeout",properties.ResponseCompletionTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.ResponseCompletionTimeout):void 0),ret.addPropertyResult("s3OriginConfig","S3OriginConfig",properties.S3OriginConfig!=null?CfnDistributionS3OriginConfigPropertyFromCloudFormation(properties.S3OriginConfig):void 0),ret.addPropertyResult("vpcOriginConfig","VpcOriginConfig",properties.VpcOriginConfig!=null?CfnDistributionVpcOriginConfigPropertyFromCloudFormation(properties.VpcOriginConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionViewerCertificatePropertyValidator(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("acmCertificateArn",cdk().validateString)(properties.acmCertificateArn)),errors.collect(cdk().propertyValidator("cloudFrontDefaultCertificate",cdk().validateBoolean)(properties.cloudFrontDefaultCertificate)),errors.collect(cdk().propertyValidator("iamCertificateId",cdk().validateString)(properties.iamCertificateId)),errors.collect(cdk().propertyValidator("minimumProtocolVersion",cdk().validateString)(properties.minimumProtocolVersion)),errors.collect(cdk().propertyValidator("sslSupportMethod",cdk().validateString)(properties.sslSupportMethod)),errors.wrap('supplied properties not correct for "ViewerCertificateProperty"')}function convertCfnDistributionViewerCertificatePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionViewerCertificatePropertyValidator(properties).assertSuccess(),{AcmCertificateArn:cdk().stringToCloudFormation(properties.acmCertificateArn),CloudFrontDefaultCertificate:cdk().booleanToCloudFormation(properties.cloudFrontDefaultCertificate),IamCertificateId:cdk().stringToCloudFormation(properties.iamCertificateId),MinimumProtocolVersion:cdk().stringToCloudFormation(properties.minimumProtocolVersion),SslSupportMethod:cdk().stringToCloudFormation(properties.sslSupportMethod)}):properties}function CfnDistributionViewerCertificatePropertyFromCloudFormation(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("acmCertificateArn","AcmCertificateArn",properties.AcmCertificateArn!=null?cfn_parse().FromCloudFormation.getString(properties.AcmCertificateArn):void 0),ret.addPropertyResult("cloudFrontDefaultCertificate","CloudFrontDefaultCertificate",properties.CloudFrontDefaultCertificate!=null?cfn_parse().FromCloudFormation.getBoolean(properties.CloudFrontDefaultCertificate):void 0),ret.addPropertyResult("iamCertificateId","IamCertificateId",properties.IamCertificateId!=null?cfn_parse().FromCloudFormation.getString(properties.IamCertificateId):void 0),ret.addPropertyResult("minimumProtocolVersion","MinimumProtocolVersion",properties.MinimumProtocolVersion!=null?cfn_parse().FromCloudFormation.getString(properties.MinimumProtocolVersion):void 0),ret.addPropertyResult("sslSupportMethod","SslSupportMethod",properties.SslSupportMethod!=null?cfn_parse().FromCloudFormation.getString(properties.SslSupportMethod):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionLegacyCustomOriginPropertyValidator(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("dnsName",cdk().requiredValidator)(properties.dnsName)),errors.collect(cdk().propertyValidator("dnsName",cdk().validateString)(properties.dnsName)),errors.collect(cdk().propertyValidator("httpPort",cdk().validateNumber)(properties.httpPort)),errors.collect(cdk().propertyValidator("httpsPort",cdk().validateNumber)(properties.httpsPort)),errors.collect(cdk().propertyValidator("originProtocolPolicy",cdk().requiredValidator)(properties.originProtocolPolicy)),errors.collect(cdk().propertyValidator("originProtocolPolicy",cdk().validateString)(properties.originProtocolPolicy)),errors.collect(cdk().propertyValidator("originSslProtocols",cdk().requiredValidator)(properties.originSslProtocols)),errors.collect(cdk().propertyValidator("originSslProtocols",cdk().listValidator(cdk().validateString))(properties.originSslProtocols)),errors.wrap('supplied properties not correct for "LegacyCustomOriginProperty"')}function convertCfnDistributionLegacyCustomOriginPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionLegacyCustomOriginPropertyValidator(properties).assertSuccess(),{DNSName:cdk().stringToCloudFormation(properties.dnsName),HTTPPort:cdk().numberToCloudFormation(properties.httpPort),HTTPSPort:cdk().numberToCloudFormation(properties.httpsPort),OriginProtocolPolicy:cdk().stringToCloudFormation(properties.originProtocolPolicy),OriginSSLProtocols:cdk().listMapper(cdk().stringToCloudFormation)(properties.originSslProtocols)}):properties}function CfnDistributionLegacyCustomOriginPropertyFromCloudFormation(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("dnsName","DNSName",properties.DNSName!=null?cfn_parse().FromCloudFormation.getString(properties.DNSName):void 0),ret.addPropertyResult("httpPort","HTTPPort",properties.HTTPPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.HTTPPort):void 0),ret.addPropertyResult("httpsPort","HTTPSPort",properties.HTTPSPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.HTTPSPort):void 0),ret.addPropertyResult("originProtocolPolicy","OriginProtocolPolicy",properties.OriginProtocolPolicy!=null?cfn_parse().FromCloudFormation.getString(properties.OriginProtocolPolicy):void 0),ret.addPropertyResult("originSslProtocols","OriginSSLProtocols",properties.OriginSSLProtocols!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.OriginSSLProtocols):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionLegacyS3OriginPropertyValidator(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("dnsName",cdk().requiredValidator)(properties.dnsName)),errors.collect(cdk().propertyValidator("dnsName",cdk().validateString)(properties.dnsName)),errors.collect(cdk().propertyValidator("originAccessIdentity",cdk().validateString)(properties.originAccessIdentity)),errors.wrap('supplied properties not correct for "LegacyS3OriginProperty"')}function convertCfnDistributionLegacyS3OriginPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionLegacyS3OriginPropertyValidator(properties).assertSuccess(),{DNSName:cdk().stringToCloudFormation(properties.dnsName),OriginAccessIdentity:cdk().stringToCloudFormation(properties.originAccessIdentity)}):properties}function CfnDistributionLegacyS3OriginPropertyFromCloudFormation(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("dnsName","DNSName",properties.DNSName!=null?cfn_parse().FromCloudFormation.getString(properties.DNSName):void 0),ret.addPropertyResult("originAccessIdentity","OriginAccessIdentity",properties.OriginAccessIdentity!=null?cfn_parse().FromCloudFormation.getString(properties.OriginAccessIdentity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionFunctionAssociationPropertyValidator(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("eventType",cdk().validateString)(properties.eventType)),errors.collect(cdk().propertyValidator("functionArn",cdk().validateString)(properties.functionArn)),errors.wrap('supplied properties not correct for "FunctionAssociationProperty"')}function convertCfnDistributionFunctionAssociationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionFunctionAssociationPropertyValidator(properties).assertSuccess(),{EventType:cdk().stringToCloudFormation(properties.eventType),FunctionARN:cdk().stringToCloudFormation(properties.functionArn)}):properties}function CfnDistributionFunctionAssociationPropertyFromCloudFormation(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("eventType","EventType",properties.EventType!=null?cfn_parse().FromCloudFormation.getString(properties.EventType):void 0),ret.addPropertyResult("functionArn","FunctionARN",properties.FunctionARN!=null?cfn_parse().FromCloudFormation.getString(properties.FunctionARN):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionLambdaFunctionAssociationPropertyValidator(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("eventType",cdk().validateString)(properties.eventType)),errors.collect(cdk().propertyValidator("includeBody",cdk().validateBoolean)(properties.includeBody)),errors.collect(cdk().propertyValidator("lambdaFunctionArn",cdk().validateString)(properties.lambdaFunctionArn)),errors.wrap('supplied properties not correct for "LambdaFunctionAssociationProperty"')}function convertCfnDistributionLambdaFunctionAssociationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionLambdaFunctionAssociationPropertyValidator(properties).assertSuccess(),{EventType:cdk().stringToCloudFormation(properties.eventType),IncludeBody:cdk().booleanToCloudFormation(properties.includeBody),LambdaFunctionARN:cdk().stringToCloudFormation(properties.lambdaFunctionArn)}):properties}function CfnDistributionLambdaFunctionAssociationPropertyFromCloudFormation(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("eventType","EventType",properties.EventType!=null?cfn_parse().FromCloudFormation.getString(properties.EventType):void 0),ret.addPropertyResult("includeBody","IncludeBody",properties.IncludeBody!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IncludeBody):void 0),ret.addPropertyResult("lambdaFunctionArn","LambdaFunctionARN",properties.LambdaFunctionARN!=null?cfn_parse().FromCloudFormation.getString(properties.LambdaFunctionARN):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionCookiesPropertyValidator(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("forward",cdk().requiredValidator)(properties.forward)),errors.collect(cdk().propertyValidator("forward",cdk().validateString)(properties.forward)),errors.collect(cdk().propertyValidator("whitelistedNames",cdk().listValidator(cdk().validateString))(properties.whitelistedNames)),errors.wrap('supplied properties not correct for "CookiesProperty"')}function convertCfnDistributionCookiesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionCookiesPropertyValidator(properties).assertSuccess(),{Forward:cdk().stringToCloudFormation(properties.forward),WhitelistedNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.whitelistedNames)}):properties}function CfnDistributionCookiesPropertyFromCloudFormation(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("forward","Forward",properties.Forward!=null?cfn_parse().FromCloudFormation.getString(properties.Forward):void 0),ret.addPropertyResult("whitelistedNames","WhitelistedNames",properties.WhitelistedNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.WhitelistedNames):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionForwardedValuesPropertyValidator(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("cookies",CfnDistributionCookiesPropertyValidator)(properties.cookies)),errors.collect(cdk().propertyValidator("headers",cdk().listValidator(cdk().validateString))(properties.headers)),errors.collect(cdk().propertyValidator("queryString",cdk().requiredValidator)(properties.queryString)),errors.collect(cdk().propertyValidator("queryString",cdk().validateBoolean)(properties.queryString)),errors.collect(cdk().propertyValidator("queryStringCacheKeys",cdk().listValidator(cdk().validateString))(properties.queryStringCacheKeys)),errors.wrap('supplied properties not correct for "ForwardedValuesProperty"')}function convertCfnDistributionForwardedValuesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionForwardedValuesPropertyValidator(properties).assertSuccess(),{Cookies:convertCfnDistributionCookiesPropertyToCloudFormation(properties.cookies),Headers:cdk().listMapper(cdk().stringToCloudFormation)(properties.headers),QueryString:cdk().booleanToCloudFormation(properties.queryString),QueryStringCacheKeys:cdk().listMapper(cdk().stringToCloudFormation)(properties.queryStringCacheKeys)}):properties}function CfnDistributionForwardedValuesPropertyFromCloudFormation(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("cookies","Cookies",properties.Cookies!=null?CfnDistributionCookiesPropertyFromCloudFormation(properties.Cookies):void 0),ret.addPropertyResult("headers","Headers",properties.Headers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Headers):void 0),ret.addPropertyResult("queryString","QueryString",properties.QueryString!=null?cfn_parse().FromCloudFormation.getBoolean(properties.QueryString):void 0),ret.addPropertyResult("queryStringCacheKeys","QueryStringCacheKeys",properties.QueryStringCacheKeys!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.QueryStringCacheKeys):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionGrpcConfigPropertyValidator(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("enabled",cdk().requiredValidator)(properties.enabled)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "GrpcConfigProperty"')}function convertCfnDistributionGrpcConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionGrpcConfigPropertyValidator(properties).assertSuccess(),{Enabled:cdk().booleanToCloudFormation(properties.enabled)}):properties}function CfnDistributionGrpcConfigPropertyFromCloudFormation(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("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionDefaultCacheBehaviorPropertyValidator(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("allowedMethods",cdk().listValidator(cdk().validateString))(properties.allowedMethods)),errors.collect(cdk().propertyValidator("cachePolicyId",cdk().validateString)(properties.cachePolicyId)),errors.collect(cdk().propertyValidator("cachedMethods",cdk().listValidator(cdk().validateString))(properties.cachedMethods)),errors.collect(cdk().propertyValidator("compress",cdk().validateBoolean)(properties.compress)),errors.collect(cdk().propertyValidator("defaultTtl",cdk().validateNumber)(properties.defaultTtl)),errors.collect(cdk().propertyValidator("fieldLevelEncryptionId",cdk().validateString)(properties.fieldLevelEncryptionId)),errors.collect(cdk().propertyValidator("forwardedValues",CfnDistributionForwardedValuesPropertyValidator)(properties.forwardedValues)),errors.collect(cdk().propertyValidator("functionAssociations",cdk().listValidator(CfnDistributionFunctionAssociationPropertyValidator))(properties.functionAssociations)),errors.collect(cdk().propertyValidator("grpcConfig",CfnDistributionGrpcConfigPropertyValidator)(properties.grpcConfig)),errors.collect(cdk().propertyValidator("lambdaFunctionAssociations",cdk().listValidator(CfnDistributionLambdaFunctionAssociationPropertyValidator))(properties.lambdaFunctionAssociations)),errors.collect(cdk().propertyValidator("maxTtl",cdk().validateNumber)(properties.maxTtl)),errors.collect(cdk().propertyValidator("minTtl",cdk().validateNumber)(properties.minTtl)),errors.collect(cdk().propertyValidator("originRequestPolicyId",cdk().validateString)(properties.originRequestPolicyId)),errors.collect(cdk().propertyValidator("realtimeLogConfigArn",cdk().validateString)(properties.realtimeLogConfigArn)),errors.collect(cdk().propertyValidator("responseHeadersPolicyId",cdk().validateString)(properties.responseHeadersPolicyId)),errors.collect(cdk().propertyValidator("smoothStreaming",cdk().validateBoolean)(properties.smoothStreaming)),errors.collect(cdk().propertyValidator("targetOriginId",cdk().requiredValidator)(properties.targetOriginId)),errors.collect(cdk().propertyValidator("targetOriginId",cdk().validateString)(properties.targetOriginId)),errors.collect(cdk().propertyValidator("trustedKeyGroups",cdk().listValidator(cdk().validateString))(properties.trustedKeyGroups)),errors.collect(cdk().propertyValidator("trustedSigners",cdk().listValidator(cdk().validateString))(properties.trustedSigners)),errors.collect(cdk().propertyValidator("viewerProtocolPolicy",cdk().requiredValidator)(properties.viewerProtocolPolicy)),errors.collect(cdk().propertyValidator("viewerProtocolPolicy",cdk().validateString)(properties.viewerProtocolPolicy)),errors.wrap('supplied properties not correct for "DefaultCacheBehaviorProperty"')}function convertCfnDistributionDefaultCacheBehaviorPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionDefaultCacheBehaviorPropertyValidator(properties).assertSuccess(),{AllowedMethods:cdk().listMapper(cdk().stringToCloudFormation)(properties.allowedMethods),CachePolicyId:cdk().stringToCloudFormation(properties.cachePolicyId),CachedMethods:cdk().listMapper(cdk().stringToCloudFormation)(properties.cachedMethods),Compress:cdk().booleanToCloudFormation(properties.compress),DefaultTTL:cdk().numberToCloudFormation(properties.defaultTtl),FieldLevelEncryptionId:cdk().stringToCloudFormation(properties.fieldLevelEncryptionId),ForwardedValues:convertCfnDistributionForwardedValuesPropertyToCloudFormation(properties.forwardedValues),FunctionAssociations:cdk().listMapper(convertCfnDistributionFunctionAssociationPropertyToCloudFormation)(properties.functionAssociations),GrpcConfig:convertCfnDistributionGrpcConfigPropertyToCloudFormation(properties.grpcConfig),LambdaFunctionAssociations:cdk().listMapper(convertCfnDistributionLambdaFunctionAssociationPropertyToCloudFormation)(properties.lambdaFunctionAssociations),MaxTTL:cdk().numberToCloudFormation(properties.maxTtl),MinTTL:cdk().numberToCloudFormation(properties.minTtl),OriginRequestPolicyId:cdk().stringToCloudFormation(properties.originRequestPolicyId),RealtimeLogConfigArn:cdk().stringToCloudFormation(properties.realtimeLogConfigArn),ResponseHeadersPolicyId:cdk().stringToCloudFormation(properties.responseHeadersPolicyId),SmoothStreaming:cdk().booleanToCloudFormation(properties.smoothStreaming),TargetOriginId:cdk().stringToCloudFormation(properties.targetOriginId),TrustedKeyGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.trustedKeyGroups),TrustedSigners:cdk().listMapper(cdk().stringToCloudFormation)(properties.trustedSigners),ViewerProtocolPolicy:cdk().stringToCloudFormation(properties.viewerProtocolPolicy)}):properties}function CfnDistributionDefaultCacheBehaviorPropertyFromCloudFormation(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("allowedMethods","AllowedMethods",properties.AllowedMethods!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AllowedMethods):void 0),ret.addPropertyResult("cachedMethods","CachedMethods",properties.CachedMethods!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CachedMethods):void 0),ret.addPropertyResult("cachePolicyId","CachePolicyId",properties.CachePolicyId!=null?cfn_parse().FromCloudFormation.getString(properties.CachePolicyId):void 0),ret.addPropertyResult("compress","Compress",properties.Compress!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Compress):void 0),ret.addPropertyResult("defaultTtl","DefaultTTL",properties.DefaultTTL!=null?cfn_parse().FromCloudFormation.getNumber(properties.DefaultTTL):void 0),ret.addPropertyResult("fieldLevelEncryptionId","FieldLevelEncryptionId",properties.FieldLevelEncryptionId!=null?cfn_parse().FromCloudFormation.getString(properties.FieldLevelEncryptionId):void 0),ret.addPropertyResult("forwardedValues","ForwardedValues",properties.ForwardedValues!=null?CfnDistributionForwardedValuesPropertyFromCloudFormation(properties.ForwardedValues):void 0),ret.addPropertyResult("functionAssociations","FunctionAssociations",properties.FunctionAssociations!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionFunctionAssociationPropertyFromCloudFormation)(properties.FunctionAssociations):void 0),ret.addPropertyResult("grpcConfig","GrpcConfig",properties.GrpcConfig!=null?CfnDistributionGrpcConfigPropertyFromCloudFormation(properties.GrpcConfig):void 0),ret.addPropertyResult("lambdaFunctionAssociations","LambdaFunctionAssociations",properties.LambdaFunctionAssociations!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionLambdaFunctionAssociationPropertyFromCloudFormation)(properties.LambdaFunctionAssociations):void 0),ret.addPropertyResult("maxTtl","MaxTTL",properties.MaxTTL!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxTTL):void 0),ret.addPropertyResult("minTtl","MinTTL",properties.MinTTL!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinTTL):void 0),ret.addPropertyResult("originRequestPolicyId","OriginRequestPolicyId",properties.OriginRequestPolicyId!=null?cfn_parse().FromCloudFormation.getString(properties.OriginRequestPolicyId):void 0),ret.addPropertyResult("realtimeLogConfigArn","RealtimeLogConfigArn",properties.RealtimeLogConfigArn!=null?cfn_parse().FromCloudFormation.getString(properties.RealtimeLogConfigArn):void 0),ret.addPropertyResult("responseHeadersPolicyId","ResponseHeadersPolicyId",properties.ResponseHeadersPolicyId!=null?cfn_parse().FromCloudFormation.getString(properties.ResponseHeadersPolicyId):void 0),ret.addPropertyResult("smoothStreaming","SmoothStreaming",properties.SmoothStreaming!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SmoothStreaming):void 0),ret.addPropertyResult("targetOriginId","TargetOriginId",properties.TargetOriginId!=null?cfn_parse().FromCloudFormation.getString(properties.TargetOriginId):void 0),ret.addPropertyResult("trustedKeyGroups","TrustedKeyGroups",properties.TrustedKeyGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TrustedKeyGroups):void 0),ret.addPropertyResult("trustedSigners","TrustedSigners",properties.TrustedSigners!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TrustedSigners):void 0),ret.addPropertyResult("viewerProtocolPolicy","ViewerProtocolPolicy",properties.ViewerProtocolPolicy!=null?cfn_parse().FromCloudFormation.getString(properties.ViewerProtocolPolicy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionCustomErrorResponsePropertyValidator(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("errorCachingMinTtl",cdk().validateNumber)(properties.errorCachingMinTtl)),errors.collect(cdk().propertyValidator("errorCode",cdk().requiredValidator)(properties.errorCode)),errors.collect(cdk().propertyValidator("errorCode",cdk().validateNumber)(properties.errorCode)),errors.collect(cdk().propertyValidator("responseCode",cdk().validateNumber)(properties.responseCode)),errors.collect(cdk().propertyValidator("responsePagePath",cdk().validateString)(properties.responsePagePath)),errors.wrap('supplied properties not correct for "CustomErrorResponseProperty"')}function convertCfnDistributionCustomErrorResponsePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionCustomErrorResponsePropertyValidator(properties).assertSuccess(),{ErrorCachingMinTTL:cdk().numberToCloudFormation(properties.errorCachingMinTtl),ErrorCode:cdk().numberToCloudFormation(properties.errorCode),ResponseCode:cdk().numberToCloudFormation(properties.responseCode),ResponsePagePath:cdk().stringToCloudFormation(properties.responsePagePath)}):properties}function CfnDistributionCustomErrorResponsePropertyFromCloudFormation(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("errorCachingMinTtl","ErrorCachingMinTTL",properties.ErrorCachingMinTTL!=null?cfn_parse().FromCloudFormation.getNumber(properties.ErrorCachingMinTTL):void 0),ret.addPropertyResult("errorCode","ErrorCode",properties.ErrorCode!=null?cfn_parse().FromCloudFormation.getNumber(properties.ErrorCode):void 0),ret.addPropertyResult("responseCode","ResponseCode",properties.ResponseCode!=null?cfn_parse().FromCloudFormation.getNumber(properties.ResponseCode):void 0),ret.addPropertyResult("responsePagePath","ResponsePagePath",properties.ResponsePagePath!=null?cfn_parse().FromCloudFormation.getString(properties.ResponsePagePath):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionStatusCodesPropertyValidator(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("items",cdk().requiredValidator)(properties.items)),errors.collect(cdk().propertyValidator("items",cdk().listValidator(cdk().validateNumber))(properties.items)),errors.collect(cdk().propertyValidator("quantity",cdk().requiredValidator)(properties.quantity)),errors.collect(cdk().propertyValidator("quantity",cdk().validateNumber)(properties.quantity)),errors.wrap('supplied properties not correct for "StatusCodesProperty"')}function convertCfnDistributionStatusCodesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionStatusCodesPropertyValidator(properties).assertSuccess(),{Items:cdk().listMapper(cdk().numberToCloudFormation)(properties.items),Quantity:cdk().numberToCloudFormation(properties.quantity)}):properties}function CfnDistributionStatusCodesPropertyFromCloudFormation(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("items","Items",properties.Items!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getNumber)(properties.Items):void 0),ret.addPropertyResult("quantity","Quantity",properties.Quantity!=null?cfn_parse().FromCloudFormation.getNumber(properties.Quantity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionOriginGroupFailoverCriteriaPropertyValidator(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("statusCodes",cdk().requiredValidator)(properties.statusCodes)),errors.collect(cdk().propertyValidator("statusCodes",CfnDistributionStatusCodesPropertyValidator)(properties.statusCodes)),errors.wrap('supplied properties not correct for "OriginGroupFailoverCriteriaProperty"')}function convertCfnDistributionOriginGroupFailoverCriteriaPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionOriginGroupFailoverCriteriaPropertyValidator(properties).assertSuccess(),{StatusCodes:convertCfnDistributionStatusCodesPropertyToCloudFormation(properties.statusCodes)}):properties}function CfnDistributionOriginGroupFailoverCriteriaPropertyFromCloudFormation(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("statusCodes","StatusCodes",properties.StatusCodes!=null?CfnDistributionStatusCodesPropertyFromCloudFormation(properties.StatusCodes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionOriginGroupMemberPropertyValidator(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("originId",cdk().requiredValidator)(properties.originId)),errors.collect(cdk().propertyValidator("originId",cdk().validateString)(properties.originId)),errors.wrap('supplied properties not correct for "OriginGroupMemberProperty"')}function convertCfnDistributionOriginGroupMemberPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionOriginGroupMemberPropertyValidator(properties).assertSuccess(),{OriginId:cdk().stringToCloudFormation(properties.originId)}):properties}function CfnDistributionOriginGroupMemberPropertyFromCloudFormation(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("originId","OriginId",properties.OriginId!=null?cfn_parse().FromCloudFormation.getString(properties.OriginId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionOriginGroupMembersPropertyValidator(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("items",cdk().requiredValidator)(properties.items)),errors.collect(cdk().propertyValidator("items",cdk().listValidator(CfnDistributionOriginGroupMemberPropertyValidator))(properties.items)),errors.collect(cdk().propertyValidator("quantity",cdk().requiredValidator)(properties.quantity)),errors.collect(cdk().propertyValidator("quantity",cdk().validateNumber)(properties.quantity)),errors.wrap('supplied properties not correct for "OriginGroupMembersProperty"')}function convertCfnDistributionOriginGroupMembersPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionOriginGroupMembersPropertyValidator(properties).assertSuccess(),{Items:cdk().listMapper(convertCfnDistributionOriginGroupMemberPropertyToCloudFormation)(properties.items),Quantity:cdk().numberToCloudFormation(properties.quantity)}):properties}function CfnDistributionOriginGroupMembersPropertyFromCloudFormation(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("items","Items",properties.Items!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionOriginGroupMemberPropertyFromCloudFormation)(properties.Items):void 0),ret.addPropertyResult("quantity","Quantity",properties.Quantity!=null?cfn_parse().FromCloudFormation.getNumber(properties.Quantity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionOriginGroupPropertyValidator(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("failoverCriteria",cdk().requiredValidator)(properties.failoverCriteria)),errors.collect(cdk().propertyValidator("failoverCriteria",CfnDistributionOriginGroupFailoverCriteriaPropertyValidator)(properties.failoverCriteria)),errors.collect(cdk().propertyValidator("id",cdk().requiredValidator)(properties.id)),errors.collect(cdk().propertyValidator("id",cdk().validateString)(properties.id)),errors.collect(cdk().propertyValidator("members",cdk().requiredValidator)(properties.members)),errors.collect(cdk().propertyValidator("members",CfnDistributionOriginGroupMembersPropertyValidator)(properties.members)),errors.collect(cdk().propertyValidator("selectionCriteria",cdk().validateString)(properties.selectionCriteria)),errors.wrap('supplied properties not correct for "OriginGroupProperty"')}function convertCfnDistributionOriginGroupPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionOriginGroupPropertyValidator(properties).assertSuccess(),{FailoverCriteria:convertCfnDistributionOriginGroupFailoverCriteriaPropertyToCloudFormation(properties.failoverCriteria),Id:cdk().stringToCloudFormation(properties.id),Members:convertCfnDistributionOriginGroupMembersPropertyToCloudFormation(properties.members),SelectionCriteria:cdk().stringToCloudFormation(properties.selectionCriteria)}):properties}function CfnDistributionOriginGroupPropertyFromCloudFormation(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("failoverCriteria","FailoverCriteria",properties.FailoverCriteria!=null?CfnDistributionOriginGroupFailoverCriteriaPropertyFromCloudFormation(properties.FailoverCriteria):void 0),ret.addPropertyResult("id","Id",properties.Id!=null?cfn_parse().FromCloudFormation.getString(properties.Id):void 0),ret.addPropertyResult("members","Members",properties.Members!=null?CfnDistributionOriginGroupMembersPropertyFromCloudFormation(properties.Members):void 0),ret.addPropertyResult("selectionCriteria","SelectionCriteria",properties.SelectionCriteria!=null?cfn_parse().FromCloudFormation.getString(properties.SelectionCriteria):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionOriginGroupsPropertyValidator(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("items",cdk().listValidator(CfnDistributionOriginGroupPropertyValidator))(properties.items)),errors.collect(cdk().propertyValidator("quantity",cdk().requiredValidator)(properties.quantity)),errors.collect(cdk().propertyValidator("quantity",cdk().validateNumber)(properties.quantity)),errors.wrap('supplied properties not correct for "OriginGroupsProperty"')}function convertCfnDistributionOriginGroupsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionOriginGroupsPropertyValidator(properties).assertSuccess(),{Items:cdk().listMapper(convertCfnDistributionOriginGroupPropertyToCloudFormation)(properties.items),Quantity:cdk().numberToCloudFormation(properties.quantity)}):properties}function CfnDistributionOriginGroupsPropertyFromCloudFormation(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("items","Items",properties.Items!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionOriginGroupPropertyFromCloudFormation)(properties.Items):void 0),ret.addPropertyResult("quantity","Quantity",properties.Quantity!=null?cfn_parse().FromCloudFormation.getNumber(properties.Quantity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionGeoRestrictionPropertyValidator(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("locations",cdk().listValidator(cdk().validateString))(properties.locations)),errors.collect(cdk().propertyValidator("restrictionType",cdk().requiredValidator)(properties.restrictionType)),errors.collect(cdk().propertyValidator("restrictionType",cdk().validateString)(properties.restrictionType)),errors.wrap('supplied properties not correct for "GeoRestrictionProperty"')}function convertCfnDistributionGeoRestrictionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionGeoRestrictionPropertyValidator(properties).assertSuccess(),{Locations:cdk().listMapper(cdk().stringToCloudFormation)(properties.locations),RestrictionType:cdk().stringToCloudFormation(properties.restrictionType)}):properties}function CfnDistributionGeoRestrictionPropertyFromCloudFormation(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("locations","Locations",properties.Locations!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Locations):void 0),ret.addPropertyResult("restrictionType","RestrictionType",properties.RestrictionType!=null?cfn_parse().FromCloudFormation.getString(properties.RestrictionType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionRestrictionsPropertyValidator(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("geoRestriction",cdk().requiredValidator)(properties.geoRestriction)),errors.collect(cdk().propertyValidator("geoRestriction",CfnDistributionGeoRestrictionPropertyValidator)(properties.geoRestriction)),errors.wrap('supplied properties not correct for "RestrictionsProperty"')}function convertCfnDistributionRestrictionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionRestrictionsPropertyValidator(properties).assertSuccess(),{GeoRestriction:convertCfnDistributionGeoRestrictionPropertyToCloudFormation(properties.geoRestriction)}):properties}function CfnDistributionRestrictionsPropertyFromCloudFormation(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("geoRestriction","GeoRestriction",properties.GeoRestriction!=null?CfnDistributionGeoRestrictionPropertyFromCloudFormation(properties.GeoRestriction):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionCacheBehaviorPropertyValidator(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("allowedMethods",cdk().listValidator(cdk().validateString))(properties.allowedMethods)),errors.collect(cdk().propertyValidator("cachePolicyId",cdk().validateString)(properties.cachePolicyId)),errors.collect(cdk().propertyValidator("cachedMethods",cdk().listValidator(cdk().validateString))(properties.cachedMethods)),errors.collect(cdk().propertyValidator("compress",cdk().validateBoolean)(properties.compress)),errors.collect(cdk().propertyValidator("defaultTtl",cdk().validateNumber)(properties.defaultTtl)),errors.collect(cdk().propertyValidator("fieldLevelEncryptionId",cdk().validateString)(properties.fieldLevelEncryptionId)),errors.collect(cdk().propertyValidator("forwardedValues",CfnDistributionForwardedValuesPropertyValidator)(properties.forwardedValues)),errors.collect(cdk().propertyValidator("functionAssociations",cdk().listValidator(CfnDistributionFunctionAssociationPropertyValidator))(properties.functionAssociations)),errors.collect(cdk().propertyValidator("grpcConfig",CfnDistributionGrpcConfigPropertyValidator)(properties.grpcConfig)),errors.collect(cdk().propertyValidator("lambdaFunctionAssociations",cdk().listValidator(CfnDistributionLambdaFunctionAssociationPropertyValidator))(properties.lambdaFunctionAssociations)),errors.collect(cdk().propertyValidator("maxTtl",cdk().validateNumber)(properties.maxTtl)),errors.collect(cdk().propertyValidator("minTtl",cdk().validateNumber)(properties.minTtl)),errors.collect(cdk().propertyValidator("originRequestPolicyId",cdk().validateString)(properties.originRequestPolicyId)),errors.collect(cdk().propertyValidator("pathPattern",cdk().requiredValidator)(properties.pathPattern)),errors.collect(cdk().propertyValidator("pathPattern",cdk().validateString)(properties.pathPattern)),errors.collect(cdk().propertyValidator("realtimeLogConfigArn",cdk().validateString)(properties.realtimeLogConfigArn)),errors.collect(cdk().propertyValidator("responseHeadersPolicyId",cdk().validateString)(properties.responseHeadersPolicyId)),errors.collect(cdk().propertyValidator("smoothStreaming",cdk().validateBoolean)(properties.smoothStreaming)),errors.collect(cdk().propertyValidator("targetOriginId",cdk().requiredValidator)(properties.targetOriginId)),errors.collect(cdk().propertyValidator("targetOriginId",cdk().validateString)(properties.targetOriginId)),errors.collect(cdk().propertyValidator("trustedKeyGroups",cdk().listValidator(cdk().validateString))(properties.trustedKeyGroups)),errors.collect(cdk().propertyValidator("trustedSigners",cdk().listValidator(cdk().validateString))(properties.trustedSigners)),errors.collect(cdk().propertyValidator("viewerProtocolPolicy",cdk().requiredValidator)(properties.viewerProtocolPolicy)),errors.collect(cdk().propertyValidator("viewerProtocolPolicy",cdk().validateString)(properties.viewerProtocolPolicy)),errors.wrap('supplied properties not correct for "CacheBehaviorProperty"')}function convertCfnDistributionCacheBehaviorPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionCacheBehaviorPropertyValidator(properties).assertSuccess(),{AllowedMethods:cdk().listMapper(cdk().stringToCloudFormation)(properties.allowedMethods),CachePolicyId:cdk().stringToCloudFormation(properties.cachePolicyId),CachedMethods:cdk().listMapper(cdk().stringToCloudFormation)(properties.cachedMethods),Compress:cdk().booleanToCloudFormation(properties.compress),DefaultTTL:cdk().numberToCloudFormation(properties.defaultTtl),FieldLevelEncryptionId:cdk().stringToCloudFormation(properties.fieldLevelEncryptionId),ForwardedValues:convertCfnDistributionForwardedValuesPropertyToCloudFormation(properties.forwardedValues),FunctionAssociations:cdk().listMapper(convertCfnDistributionFunctionAssociationPropertyToCloudFormation)(properties.functionAssociations),GrpcConfig:convertCfnDistributionGrpcConfigPropertyToCloudFormation(properties.grpcConfig),LambdaFunctionAssociations:cdk().listMapper(convertCfnDistributionLambdaFunctionAssociationPropertyToCloudFormation)(properties.lambdaFunctionAssociations),MaxTTL:cdk().numberToCloudFormation(properties.maxTtl),MinTTL:cdk().numberToCloudFormation(properties.minTtl),OriginRequestPolicyId:cdk().stringToCloudFormation(properties.originRequestPolicyId),PathPattern:cdk().stringToCloudFormation(properties.pathPattern),RealtimeLogConfigArn:cdk().stringToCloudFormation(properties.realtimeLogConfigArn),ResponseHeadersPolicyId:cdk().stringToCloudFormation(properties.responseHeadersPolicyId),SmoothStreaming:cdk().booleanToCloudFormation(properties.smoothStreaming),TargetOriginId:cdk().stringToCloudFormation(properties.targetOriginId),TrustedKeyGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.trustedKeyGroups),TrustedSigners:cdk().listMapper(cdk().stringToCloudFormation)(properties.trustedSigners),ViewerProtocolPolicy:cdk().stringToCloudFormation(properties.viewerProtocolPolicy)}):properties}function CfnDistributionCacheBehaviorPropertyFromCloudFormation(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("allowedMethods","AllowedMethods",properties.AllowedMethods!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AllowedMethods):void 0),ret.addPropertyResult("cachedMethods","CachedMethods",properties.CachedMethods!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CachedMethods):void 0),ret.addPropertyResult("cachePolicyId","CachePolicyId",properties.CachePolicyId!=null?cfn_parse().FromCloudFormation.getString(properties.CachePolicyId):void 0),ret.addPropertyResult("compress","Compress",properties.Compress!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Compress):void 0),ret.addPropertyResult("defaultTtl","DefaultTTL",properties.DefaultTTL!=null?cfn_parse().FromCloudFormation.getNumber(properties.DefaultTTL):void 0),ret.addPropertyResult("fieldLevelEncryptionId","FieldLevelEncryptionId",properties.FieldLevelEncryptionId!=null?cfn_parse().FromCloudFormation.getString(properties.FieldLevelEncryptionId):void 0),ret.addPropertyResult("forwardedValues","ForwardedValues",properties.ForwardedValues!=null?CfnDistributionForwardedValuesPropertyFromCloudFormation(properties.ForwardedValues):void 0),ret.addPropertyResult("functionAssociations","FunctionAssociations",properties.FunctionAssociations!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionFunctionAssociationPropertyFromCloudFormation)(properties.FunctionAssociations):void 0),ret.addPropertyResult("grpcConfig","GrpcConfig",properties.GrpcConfig!=null?CfnDistributionGrpcConfigPropertyFromCloudFormation(properties.GrpcConfig):void 0),ret.addPropertyResult("lambdaFunctionAssociations","LambdaFunctionAssociations",properties.LambdaFunctionAssociations!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionLambdaFunctionAssociationPropertyFromCloudFormation)(properties.LambdaFunctionAssociations):void 0),ret.addPropertyResult("maxTtl","MaxTTL",properties.MaxTTL!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxTTL):void 0),ret.addPropertyResult("minTtl","MinTTL",properties.MinTTL!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinTTL):void 0),ret.addPropertyResult("originRequestPolicyId","OriginRequestPolicyId",properties.OriginRequestPolicyId!=null?cfn_parse().FromCloudFormation.getString(properties.OriginRequestPolicyId):void 0),ret.addPropertyResult("pathPattern","PathPattern",properties.PathPattern!=null?cfn_parse().FromCloudFormation.getString(properties.PathPattern):void 0),ret.addPropertyResult("realtimeLogConfigArn","RealtimeLogConfigArn",properties.RealtimeLogConfigArn!=null?cfn_parse().FromCloudFormation.getString(properties.RealtimeLogConfigArn):void 0),ret.addPropertyResult("responseHeadersPolicyId","ResponseHeadersPolicyId",properties.ResponseHeadersPolicyId!=null?cfn_parse().FromCloudFormation.getString(properties.ResponseHeadersPolicyId):void 0),ret.addPropertyResult("smoothStreaming","SmoothStreaming",properties.SmoothStreaming!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SmoothStreaming):void 0),ret.addPropertyResult("targetOriginId","TargetOriginId",properties.TargetOriginId!=null?cfn_parse().FromCloudFormation.getString(properties.TargetOriginId):void 0),ret.addPropertyResult("trustedKeyGroups","TrustedKeyGroups",properties.TrustedKeyGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TrustedKeyGroups):void 0),ret.addPropertyResult("trustedSigners","TrustedSigners",properties.TrustedSigners!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TrustedSigners):void 0),ret.addPropertyResult("viewerProtocolPolicy","ViewerProtocolPolicy",properties.ViewerProtocolPolicy!=null?cfn_parse().FromCloudFormation.getString(properties.ViewerProtocolPolicy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionConnectionFunctionAssociationPropertyValidator(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("id",cdk().requiredValidator)(properties.id)),errors.collect(cdk().propertyValidator("id",cdk().validateString)(properties.id)),errors.wrap('supplied properties not correct for "ConnectionFunctionAssociationProperty"')}function convertCfnDistributionConnectionFunctionAssociationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionConnectionFunctionAssociationPropertyValidator(properties).assertSuccess(),{Id:cdk().stringToCloudFormation(properties.id)}):properties}function CfnDistributionConnectionFunctionAssociationPropertyFromCloudFormation(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("id","Id",properties.Id!=null?cfn_parse().FromCloudFormation.getString(properties.Id):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionStringSchemaPropertyValidator(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("comment",cdk().validateString)(properties.comment)),errors.collect(cdk().propertyValidator("defaultValue",cdk().validateString)(properties.defaultValue)),errors.collect(cdk().propertyValidator("required",cdk().requiredValidator)(properties.required)),errors.collect(cdk().propertyValidator("required",cdk().validateBoolean)(properties.required)),errors.wrap('supplied properties not correct for "StringSchemaProperty"')}function convertCfnDistributionStringSchemaPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionStringSchemaPropertyValidator(properties).assertSuccess(),{Comment:cdk().stringToCloudFormation(properties.comment),DefaultValue:cdk().stringToCloudFormation(properties.defaultValue),Required:cdk().booleanToCloudFormation(properties.required)}):properties}function CfnDistributionStringSchemaPropertyFromCloudFormation(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("comment","Comment",properties.Comment!=null?cfn_parse().FromCloudFormation.getString(properties.Comment):void 0),ret.addPropertyResult("defaultValue","DefaultValue",properties.DefaultValue!=null?cfn_parse().FromCloudFormation.getString(properties.DefaultValue):void 0),ret.addPropertyResult("required","Required",properties.Required!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Required):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionDefinitionPropertyValidator(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("stringSchema",CfnDistributionStringSchemaPropertyValidator)(properties.stringSchema)),errors.wrap('supplied properties not correct for "DefinitionProperty"')}function convertCfnDistributionDefinitionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionDefinitionPropertyValidator(properties).assertSuccess(),{StringSchema:convertCfnDistributionStringSchemaPropertyToCloudFormation(properties.stringSchema)}):properties}function CfnDistributionDefinitionPropertyFromCloudFormation(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("stringSchema","StringSchema",properties.StringSchema!=null?CfnDistributionStringSchemaPropertyFromCloudFormation(properties.StringSchema):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionParameterDefinitionPropertyValidator(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().requiredValidator)(properties.definition)),errors.collect(cdk().propertyValidator("definition",CfnDistributionDefinitionPropertyValidator)(properties.definition)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "ParameterDefinitionProperty"')}function convertCfnDistributionParameterDefinitionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionParameterDefinitionPropertyValidator(properties).assertSuccess(),{Definition:convertCfnDistributionDefinitionPropertyToCloudFormation(properties.definition),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnDistributionParameterDefinitionPropertyFromCloudFormation(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?CfnDistributionDefinitionPropertyFromCloudFormation(properties.Definition):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionTenantConfigPropertyValidator(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("parameterDefinitions",cdk().listValidator(CfnDistributionParameterDefinitionPropertyValidator))(properties.parameterDefinitions)),errors.wrap('supplied properties not correct for "TenantConfigProperty"')}function convertCfnDistributionTenantConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionTenantConfigPropertyValidator(properties).assertSuccess(),{ParameterDefinitions:cdk().listMapper(convertCfnDistributionParameterDefinitionPropertyToCloudFormation)(properties.parameterDefinitions)}):properties}function CfnDistributionTenantConfigPropertyFromCloudFormation(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("parameterDefinitions","ParameterDefinitions",properties.ParameterDefinitions!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionParameterDefinitionPropertyFromCloudFormation)(properties.ParameterDefinitions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionTrustStoreConfigPropertyValidator(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("advertiseTrustStoreCaNames",cdk().validateBoolean)(properties.advertiseTrustStoreCaNames)),errors.collect(cdk().propertyValidator("ignoreCertificateExpiry",cdk().validateBoolean)(properties.ignoreCertificateExpiry)),errors.collect(cdk().propertyValidator("trustStoreId",cdk().requiredValidator)(properties.trustStoreId)),errors.collect(cdk().propertyValidator("trustStoreId",cdk().validateString)(properties.trustStoreId)),errors.wrap('supplied properties not correct for "TrustStoreConfigProperty"')}function convertCfnDistributionTrustStoreConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionTrustStoreConfigPropertyValidator(properties).assertSuccess(),{AdvertiseTrustStoreCaNames:cdk().booleanToCloudFormation(properties.advertiseTrustStoreCaNames),IgnoreCertificateExpiry:cdk().booleanToCloudFormation(properties.ignoreCertificateExpiry),TrustStoreId:cdk().stringToCloudFormation(properties.trustStoreId)}):properties}function CfnDistributionTrustStoreConfigPropertyFromCloudFormation(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("advertiseTrustStoreCaNames","AdvertiseTrustStoreCaNames",properties.AdvertiseTrustStoreCaNames!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AdvertiseTrustStoreCaNames):void 0),ret.addPropertyResult("ignoreCertificateExpiry","IgnoreCertificateExpiry",properties.IgnoreCertificateExpiry!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IgnoreCertificateExpiry):void 0),ret.addPropertyResult("trustStoreId","TrustStoreId",properties.TrustStoreId!=null?cfn_parse().FromCloudFormation.getString(properties.TrustStoreId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionViewerMtlsConfigPropertyValidator(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("mode",cdk().validateString)(properties.mode)),errors.collect(cdk().propertyValidator("trustStoreConfig",CfnDistributionTrustStoreConfigPropertyValidator)(properties.trustStoreConfig)),errors.wrap('supplied properties not correct for "ViewerMtlsConfigProperty"')}function convertCfnDistributionViewerMtlsConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionViewerMtlsConfigPropertyValidator(properties).assertSuccess(),{Mode:cdk().stringToCloudFormation(properties.mode),TrustStoreConfig:convertCfnDistributionTrustStoreConfigPropertyToCloudFormation(properties.trustStoreConfig)}):properties}function CfnDistributionViewerMtlsConfigPropertyFromCloudFormation(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("mode","Mode",properties.Mode!=null?cfn_parse().FromCloudFormation.getString(properties.Mode):void 0),ret.addPropertyResult("trustStoreConfig","TrustStoreConfig",properties.TrustStoreConfig!=null?CfnDistributionTrustStoreConfigPropertyFromCloudFormation(properties.TrustStoreConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionDistributionConfigPropertyValidator(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("aliases",cdk().listValidator(cdk().validateString))(properties.aliases)),errors.collect(cdk().propertyValidator("anycastIpListId",cdk().validateString)(properties.anycastIpListId)),errors.collect(cdk().propertyValidator("cnamEs",cdk().listValidator(cdk().validateString))(properties.cnamEs)),errors.collect(cdk().propertyValidator("cacheBehaviors",cdk().listValidator(CfnDistributionCacheBehaviorPropertyValidator))(properties.cacheBehaviors)),errors.collect(cdk().propertyValidator("comment",cdk().validateString)(properties.comment)),errors.collect(cdk().propertyValidator("connectionFunctionAssociation",CfnDistributionConnectionFunctionAssociationPropertyValidator)(properties.connectionFunctionAssociation)),errors.collect(cdk().propertyValidator("connectionMode",cdk().validateString)(properties.connectionMode)),errors.collect(cdk().propertyValidator("continuousDeploymentPolicyId",cdk().validateString)(properties.continuousDeploymentPolicyId)),errors.collect(cdk().propertyValidator("customErrorResponses",cdk().listValidator(CfnDistributionCustomErrorResponsePropertyValidator))(properties.customErrorResponses)),errors.collect(cdk().propertyValidator("customOrigin",CfnDistributionLegacyCustomOriginPropertyValidator)(properties.customOrigin)),errors.collect(cdk().propertyValidator("defaultCacheBehavior",cdk().requiredValidator)(properties.defaultCacheBehavior)),errors.collect(cdk().propertyValidator("defaultCacheBehavior",CfnDistributionDefaultCacheBehaviorPropertyValidator)(properties.defaultCacheBehavior)),errors.collect(cdk().propertyValidator("defaultRootObject",cdk().validateString)(properties.defaultRootObject)),errors.collect(cdk().propertyValidator("enabled",cdk().requiredValidator)(properties.enabled)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("httpVersion",cdk().validateString)(properties.httpVersion)),errors.collect(cdk().propertyValidator("ipv6Enabled",cdk().validateBoolean)(properties.ipv6Enabled)),errors.collect(cdk().propertyValidator("logging",CfnDistributionLoggingPropertyValidator)(properties.logging)),errors.collect(cdk().propertyValidator("originGroups",CfnDistributionOriginGroupsPropertyValidator)(properties.originGroups)),errors.collect(cdk().propertyValidator("origins",cdk().listValidator(CfnDistributionOriginPropertyValidator))(properties.origins)),errors.collect(cdk().propertyValidator("priceClass",cdk().validateString)(properties.priceClass)),errors.collect(cdk().propertyValidator("restrictions",CfnDistributionRestrictionsPropertyValidator)(properties.restrictions)),errors.collect(cdk().propertyValidator("s3Origin",CfnDistributionLegacyS3OriginPropertyValidator)(properties.s3Origin)),errors.collect(cdk().propertyValidator("staging",cdk().validateBoolean)(properties.staging)),errors.collect(cdk().propertyValidator("tenantConfig",CfnDistributionTenantConfigPropertyValidator)(properties.tenantConfig)),errors.collect(cdk().propertyValidator("viewerCertificate",CfnDistributionViewerCertificatePropertyValidator)(properties.viewerCertificate)),errors.collect(cdk().propertyValidator("viewerMtlsConfig",CfnDistributionViewerMtlsConfigPropertyValidator)(properties.viewerMtlsConfig)),errors.collect(cdk().propertyValidator("webAclId",cdk().validateString)(properties.webAclId)),errors.wrap('supplied properties not correct for "DistributionConfigProperty"')}function convertCfnDistributionDistributionConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionDistributionConfigPropertyValidator(properties).assertSuccess(),{Aliases:cdk().listMapper(cdk().stringToCloudFormation)(properties.aliases),AnycastIpListId:cdk().stringToCloudFormation(properties.anycastIpListId),CNAMEs:cdk().listMapper(cdk().stringToCloudFormation)(properties.cnamEs),CacheBehaviors:cdk().listMapper(convertCfnDistributionCacheBehaviorPropertyToCloudFormation)(properties.cacheBehaviors),Comment:cdk().stringToCloudFormation(properties.comment),ConnectionFunctionAssociation:convertCfnDistributionConnectionFunctionAssociationPropertyToCloudFormation(properties.connectionFunctionAssociation),ConnectionMode:cdk().stringToCloudFormation(properties.connectionMode),ContinuousDeploymentPolicyId:cdk().stringToCloudFormation(properties.continuousDeploymentPolicyId),CustomErrorResponses:cdk().listMapper(convertCfnDistributionCustomErrorResponsePropertyToCloudFormation)(properties.customErrorResponses),CustomOrigin:convertCfnDistributionLegacyCustomOriginPropertyToCloudFormation(properties.customOrigin),DefaultCacheBehavior:convertCfnDistributionDefaultCacheBehaviorPropertyToCloudFormation(properties.defaultCacheBehavior),DefaultRootObject:cdk().stringToCloudFormation(properties.defaultRootObject),Enabled:cdk().booleanToCloudFormation(properties.enabled),HttpVersion:cdk().stringToCloudFormation(properties.httpVersion),IPV6Enabled:cdk().booleanToCloudFormation(properties.ipv6Enabled),Logging:convertCfnDistributionLoggingPropertyToCloudFormation(properties.logging),OriginGroups:convertCfnDistributionOriginGroupsPropertyToCloudFormation(properties.originGroups),Origins:cdk().listMapper(convertCfnDistributionOriginPropertyToCloudFormation)(properties.origins),PriceClass:cdk().stringToCloudFormation(properties.priceClass),Restrictions:convertCfnDistributionRestrictionsPropertyToCloudFormation(properties.restrictions),S3Origin:convertCfnDistributionLegacyS3OriginPropertyToCloudFormation(properties.s3Origin),Staging:cdk().booleanToCloudFormation(properties.staging),TenantConfig:convertCfnDistributionTenantConfigPropertyToCloudFormation(properties.tenantConfig),ViewerCertificate:convertCfnDistributionViewerCertificatePropertyToCloudFormation(properties.viewerCertificate),ViewerMtlsConfig:convertCfnDistributionViewerMtlsConfigPropertyToCloudFormation(properties.viewerMtlsConfig),WebACLId:cdk().stringToCloudFormation(properties.webAclId)}):properties}function CfnDistributionDistributionConfigPropertyFromCloudFormation(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("aliases","Aliases",properties.Aliases!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Aliases):void 0),ret.addPropertyResult("anycastIpListId","AnycastIpListId",properties.AnycastIpListId!=null?cfn_parse().FromCloudFormation.getString(properties.AnycastIpListId):void 0),ret.addPropertyResult("cacheBehaviors","CacheBehaviors",properties.CacheBehaviors!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionCacheBehaviorPropertyFromCloudFormation)(properties.CacheBehaviors):void 0),ret.addPropertyResult("cnamEs","CNAMEs",properties.CNAMEs!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CNAMEs):void 0),ret.addPropertyResult("comment","Comment",properties.Comment!=null?cfn_parse().FromCloudFormation.getString(properties.Comment):void 0),ret.addPropertyResult("connectionFunctionAssociation","ConnectionFunctionAssociation",properties.ConnectionFunctionAssociation!=null?CfnDistributionConnectionFunctionAssociationPropertyFromCloudFormation(properties.ConnectionFunctionAssociation):void 0),ret.addPropertyResult("connectionMode","ConnectionMode",properties.ConnectionMode!=null?cfn_parse().FromCloudFormation.getString(properties.ConnectionMode):void 0),ret.addPropertyResult("continuousDeploymentPolicyId","ContinuousDeploymentPolicyId",properties.ContinuousDeploymentPolicyId!=null?cfn_parse().FromCloudFormation.getString(properties.ContinuousDeploymentPolicyId):void 0),ret.addPropertyResult("customErrorResponses","CustomErrorResponses",properties.CustomErrorResponses!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionCustomErrorResponsePropertyFromCloudFormation)(properties.CustomErrorResponses):void 0),ret.addPropertyResult("customOrigin","CustomOrigin",properties.CustomOrigin!=null?CfnDistributionLegacyCustomOriginPropertyFromCloudFormation(properties.CustomOrigin):void 0),ret.addPropertyResult("defaultCacheBehavior","DefaultCacheBehavior",properties.DefaultCacheBehavior!=null?CfnDistributionDefaultCacheBehaviorPropertyFromCloudFormation(properties.DefaultCacheBehavior):void 0),ret.addPropertyResult("defaultRootObject","DefaultRootObject",properties.DefaultRootObject!=null?cfn_parse().FromCloudFormation.getString(properties.DefaultRootObject):void 0),ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("httpVersion","HttpVersion",properties.HttpVersion!=null?cfn_parse().FromCloudFormation.getString(properties.HttpVersion):void 0),ret.addPropertyResult("ipv6Enabled","IPV6Enabled",properties.IPV6Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IPV6Enabled):void 0),ret.addPropertyResult("logging","Logging",properties.Logging!=null?CfnDistributionLoggingPropertyFromCloudFormation(properties.Logging):void 0),ret.addPropertyResult("originGroups","OriginGroups",properties.OriginGroups!=null?CfnDistributionOriginGroupsPropertyFromCloudFormation(properties.OriginGroups):void 0),ret.addPropertyResult("origins","Origins",properties.Origins!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionOriginPropertyFromCloudFormation)(properties.Origins):void 0),ret.addPropertyResult("priceClass","PriceClass",properties.PriceClass!=null?cfn_parse().FromCloudFormation.getString(properties.PriceClass):void 0),ret.addPropertyResult("restrictions","Restrictions",properties.Restrictions!=null?CfnDistributionRestrictionsPropertyFromCloudFormation(properties.Restrictions):void 0),ret.addPropertyResult("s3Origin","S3Origin",properties.S3Origin!=null?CfnDistributionLegacyS3OriginPropertyFromCloudFormation(properties.S3Origin):void 0),ret.addPropertyResult("staging","Staging",properties.Staging!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Staging):void 0),ret.addPropertyResult("tenantConfig","TenantConfig",properties.TenantConfig!=null?CfnDistributionTenantConfigPropertyFromCloudFormation(properties.TenantConfig):void 0),ret.addPropertyResult("viewerCertificate","ViewerCertificate",properties.ViewerCertificate!=null?CfnDistributionViewerCertificatePropertyFromCloudFormation(properties.ViewerCertificate):void 0),ret.addPropertyResult("viewerMtlsConfig","ViewerMtlsConfig",properties.ViewerMtlsConfig!=null?CfnDistributionViewerMtlsConfigPropertyFromCloudFormation(properties.ViewerMtlsConfig):void 0),ret.addPropertyResult("webAclId","WebACLId",properties.WebACLId!=null?cfn_parse().FromCloudFormation.getString(properties.WebACLId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionPropsValidator(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("distributionConfig",cdk().requiredValidator)(properties.distributionConfig)),errors.collect(cdk().propertyValidator("distributionConfig",CfnDistributionDistributionConfigPropertyValidator)(properties.distributionConfig)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnDistributionProps"')}function convertCfnDistributionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionPropsValidator(properties).assertSuccess(),{DistributionConfig:convertCfnDistributionDistributionConfigPropertyToCloudFormation(properties.distributionConfig),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnDistributionPropsFromCloudFormation(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("distributionConfig","DistributionConfig",properties.DistributionConfig!=null?CfnDistributionDistributionConfigPropertyFromCloudFormation(properties.DistributionConfig):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 CfnFunction extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnFunction",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::Function";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnFunctionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnFunction(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 isCfnFunction(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnFunction.CFN_RESOURCE_TYPE_NAME}static arnForFunction(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudfront_IFunctionRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForFunction),error}return resource.functionRef.functionArn}_autoPublish;cdkTagManager;_functionCode;_functionConfig;_functionMetadata;_name;_tags;cfnPropertyNames={autoPublish:"AutoPublish",tags:"Tags",functionCode:"FunctionCode",functionConfig:"FunctionConfig",functionMetadata:"FunctionMetadata",name:"Name"};constructor(scope,id,props){super(scope,id,{type:CfnFunction.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnFunctionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnFunction),error}cdk().requireProperty(props,"functionCode",this),cdk().requireProperty(props,"functionConfig",this),cdk().requireProperty(props,"name",this),this._autoPublish=props.autoPublish,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::CloudFront::Function",void 0,{tagPropertyName:"tags"}),this._functionCode=props.functionCode,this._functionConfig=props.functionConfig,this._functionMetadata=props.functionMetadata,this._name=props.name,this._tags=props.tags}get functionRef(){return{functionArn:this.ref}}get autoPublish(){return this._autoPublish}set autoPublish(value){cdk().traceProperty(this.node,"AutoPublish"),this._autoPublish=value}get functionCode(){return this._functionCode}set functionCode(value){cdk().traceProperty(this.node,"FunctionCode"),this._functionCode=value}get functionConfig(){return this._functionConfig}set functionConfig(value){cdk().traceProperty(this.node,"FunctionConfig"),this._functionConfig=value}get functionMetadata(){return this._functionMetadata}set functionMetadata(value){cdk().traceProperty(this.node,"FunctionMetadata"),this._functionMetadata=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrFunctionArn(){return cdk().Token.asString(this.getAtt("FunctionARN",cdk().ResolutionTypeHint.STRING))}get attrFunctionMetadataFunctionArn(){return cdk().Token.asString(this.getAtt("FunctionMetadata.FunctionARN",cdk().ResolutionTypeHint.STRING))}get attrStage(){return cdk().Token.asString(this.getAtt("Stage",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{autoPublish:this._autoPublish,tags:this.cdkTagManager.renderTags(this._tags),functionCode:this._functionCode,functionConfig:this._functionConfig,functionMetadata:this._functionMetadata,name:this._name}}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",CfnFunction.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnFunctionPropsToCloudFormation(props)}}exports.CfnFunction=CfnFunction;function CfnFunctionKeyValueStoreAssociationPropertyValidator(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("keyValueStoreArn",cdk().requiredValidator)(properties.keyValueStoreArn)),errors.collect(cdk().propertyValidator("keyValueStoreArn",cdk().validateString)(properties.keyValueStoreArn)),errors.wrap('supplied properties not correct for "KeyValueStoreAssociationProperty"')}function convertCfnFunctionKeyValueStoreAssociationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFunctionKeyValueStoreAssociationPropertyValidator(properties).assertSuccess(),{KeyValueStoreARN:cdk().stringToCloudFormation(properties.keyValueStoreArn)}):properties}function CfnFunctionKeyValueStoreAssociationPropertyFromCloudFormation(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("keyValueStoreArn","KeyValueStoreARN",properties.KeyValueStoreARN!=null?cfn_parse().FromCloudFormation.getString(properties.KeyValueStoreARN):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFunctionFunctionConfigPropertyValidator(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("comment",cdk().requiredValidator)(properties.comment)),errors.collect(cdk().propertyValidator("comment",cdk().validateString)(properties.comment)),errors.collect(cdk().propertyValidator("keyValueStoreAssociations",cdk().listValidator(CfnFunctionKeyValueStoreAssociationPropertyValidator))(properties.keyValueStoreAssociations)),errors.collect(cdk().propertyValidator("runtime",cdk().requiredValidator)(properties.runtime)),errors.collect(cdk().propertyValidator("runtime",cdk().validateString)(properties.runtime)),errors.wrap('supplied properties not correct for "FunctionConfigProperty"')}function convertCfnFunctionFunctionConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFunctionFunctionConfigPropertyValidator(properties).assertSuccess(),{Comment:cdk().stringToCloudFormation(properties.comment),KeyValueStoreAssociations:cdk().listMapper(convertCfnFunctionKeyValueStoreAssociationPropertyToCloudFormation)(properties.keyValueStoreAssociations),Runtime:cdk().stringToCloudFormation(properties.runtime)}):properties}function CfnFunctionFunctionConfigPropertyFromCloudFormation(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("comment","Comment",properties.Comment!=null?cfn_parse().FromCloudFormation.getString(properties.Comment):void 0),ret.addPropertyResult("keyValueStoreAssociations","KeyValueStoreAssociations",properties.KeyValueStoreAssociations!=null?cfn_parse().FromCloudFormation.getArray(CfnFunctionKeyValueStoreAssociationPropertyFromCloudFormation)(properties.KeyValueStoreAssociations):void 0),ret.addPropertyResult("runtime","Runtime",properties.Runtime!=null?cfn_parse().FromCloudFormation.getString(properties.Runtime):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFunctionFunctionMetadataPropertyValidator(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("functionArn",cdk().validateString)(properties.functionArn)),errors.wrap('supplied properties not correct for "FunctionMetadataProperty"')}function convertCfnFunctionFunctionMetadataPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFunctionFunctionMetadataPropertyValidator(properties).assertSuccess(),{FunctionARN:cdk().stringToCloudFormation(properties.functionArn)}):properties}function CfnFunctionFunctionMetadataPropertyFromCloudFormation(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("functionArn","FunctionARN",properties.FunctionARN!=null?cfn_parse().FromCloudFormation.getString(properties.FunctionARN):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFunctionPropsValidator(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("autoPublish",cdk().validateBoolean)(properties.autoPublish)),errors.collect(cdk().propertyValidator("functionCode",cdk().requiredValidator)(properties.functionCode)),errors.collect(cdk().propertyValidator("functionCode",cdk().validateString)(properties.functionCode)),errors.collect(cdk().propertyValidator("functionConfig",cdk().requiredValidator)(properties.functionConfig)),errors.collect(cdk().propertyValidator("functionConfig",CfnFunctionFunctionConfigPropertyValidator)(properties.functionConfig)),errors.collect(cdk().propertyValidator("functionMetadata",CfnFunctionFunctionMetadataPropertyValidator)(properties.functionMetadata)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnFunctionProps"')}function convertCfnFunctionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFunctionPropsValidator(properties).assertSuccess(),{AutoPublish:cdk().booleanToCloudFormation(properties.autoPublish),FunctionCode:cdk().stringToCloudFormation(properties.functionCode),FunctionConfig:convertCfnFunctionFunctionConfigPropertyToCloudFormation(properties.functionConfig),FunctionMetadata:convertCfnFunctionFunctionMetadataPropertyToCloudFormation(properties.functionMetadata),Name:cdk().stringToCloudFormation(properties.name),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnFunctionPropsFromCloudFormation(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("autoPublish","AutoPublish",properties.AutoPublish!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AutoPublish):void 0),ret.addPropertyResult("functionCode","FunctionCode",properties.FunctionCode!=null?cfn_parse().FromCloudFormation.getString(properties.FunctionCode):void 0),ret.addPropertyResult("functionConfig","FunctionConfig",properties.FunctionConfig!=null?CfnFunctionFunctionConfigPropertyFromCloudFormation(properties.FunctionConfig):void 0),ret.addPropertyResult("functionMetadata","FunctionMetadata",properties.FunctionMetadata!=null?CfnFunctionFunctionMetadataPropertyFromCloudFormation(properties.FunctionMetadata):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):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 CfnKeyGroup extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnKeyGroup",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::KeyGroup";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnKeyGroupPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnKeyGroup(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 isCfnKeyGroup(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnKeyGroup.CFN_RESOURCE_TYPE_NAME}_keyGroupConfig;cfnPropertyNames={keyGroupConfig:"KeyGroupConfig"};constructor(scope,id,props){super(scope,id,{type:CfnKeyGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnKeyGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnKeyGroup),error}cdk().requireProperty(props,"keyGroupConfig",this),this._keyGroupConfig=props.keyGroupConfig}get keyGroupRef(){return{keyGroupId:this.ref}}get keyGroupConfig(){return this._keyGroupConfig}set keyGroupConfig(value){cdk().traceProperty(this.node,"KeyGroupConfig"),this._keyGroupConfig=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrLastModifiedTime(){return cdk().Token.asString(this.getAtt("LastModifiedTime",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{keyGroupConfig:this._keyGroupConfig}}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",CfnKeyGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnKeyGroupPropsToCloudFormation(props)}}exports.CfnKeyGroup=CfnKeyGroup;function CfnKeyGroupKeyGroupConfigPropertyValidator(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("comment",cdk().validateString)(properties.comment)),errors.collect(cdk().propertyValidator("items",cdk().requiredValidator)(properties.items)),errors.collect(cdk().propertyValidator("items",cdk().listValidator(cdk().validateString))(properties.items)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "KeyGroupConfigProperty"')}function convertCfnKeyGroupKeyGroupConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnKeyGroupKeyGroupConfigPropertyValidator(properties).assertSuccess(),{Comment:cdk().stringToCloudFormation(properties.comment),Items:cdk().listMapper(cdk().stringToCloudFormation)(properties.items),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnKeyGroupKeyGroupConfigPropertyFromCloudFormation(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("comment","Comment",properties.Comment!=null?cfn_parse().FromCloudFormation.getString(properties.Comment):void 0),ret.addPropertyResult("items","Items",properties.Items!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Items):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnKeyGroupPropsValidator(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("keyGroupConfig",cdk().requiredValidator)(properties.keyGroupConfig)),errors.collect(cdk().propertyValidator("keyGroupConfig",CfnKeyGroupKeyGroupConfigPropertyValidator)(properties.keyGroupConfig)),errors.wrap('supplied properties not correct for "CfnKeyGroupProps"')}function convertCfnKeyGroupPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnKeyGroupPropsValidator(properties).assertSuccess(),{KeyGroupConfig:convertCfnKeyGroupKeyGroupConfigPropertyToCloudFormation(properties.keyGroupConfig)}):properties}function CfnKeyGroupPropsFromCloudFormation(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("keyGroupConfig","KeyGroupConfig",properties.KeyGroupConfig!=null?CfnKeyGroupKeyGroupConfigPropertyFromCloudFormation(properties.KeyGroupConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnMonitoringSubscription extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnMonitoringSubscription",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::MonitoringSubscription";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnMonitoringSubscriptionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnMonitoringSubscription(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 isCfnMonitoringSubscription(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnMonitoringSubscription.CFN_RESOURCE_TYPE_NAME}_distributionId;_monitoringSubscription;cfnPropertyNames={distributionId:"DistributionId",monitoringSubscription:"MonitoringSubscription"};constructor(scope,id,props){super(scope,id,{type:CfnMonitoringSubscription.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnMonitoringSubscriptionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnMonitoringSubscription),error}cdk().requireProperty(props,"distributionId",this),cdk().requireProperty(props,"monitoringSubscription",this),this._distributionId=cdk().getRefProperty(props.distributionId?.distributionRef,"distributionId")??cdk().ensureStringOrUndefined(props.distributionId,"distributionId","cloudfront.IDistributionRef | string"),this._monitoringSubscription=props.monitoringSubscription}get monitoringSubscriptionRef(){return{distributionId:this.ref}}get distributionId(){return this._distributionId}set distributionId(value){cdk().traceProperty(this.node,"DistributionId"),this._distributionId=value}get monitoringSubscription(){return this._monitoringSubscription}set monitoringSubscription(value){cdk().traceProperty(this.node,"MonitoringSubscription"),this._monitoringSubscription=value}get cfnProperties(){return{distributionId:this._distributionId,monitoringSubscription:this._monitoringSubscription}}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",CfnMonitoringSubscription.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnMonitoringSubscriptionPropsToCloudFormation(props)}}exports.CfnMonitoringSubscription=CfnMonitoringSubscription;function CfnMonitoringSubscriptionRealtimeMetricsSubscriptionConfigPropertyValidator(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("realtimeMetricsSubscriptionStatus",cdk().requiredValidator)(properties.realtimeMetricsSubscriptionStatus)),errors.collect(cdk().propertyValidator("realtimeMetricsSubscriptionStatus",cdk().validateString)(properties.realtimeMetricsSubscriptionStatus)),errors.wrap('supplied properties not correct for "RealtimeMetricsSubscriptionConfigProperty"')}function convertCfnMonitoringSubscriptionRealtimeMetricsSubscriptionConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnMonitoringSubscriptionRealtimeMetricsSubscriptionConfigPropertyValidator(properties).assertSuccess(),{RealtimeMetricsSubscriptionStatus:cdk().stringToCloudFormation(properties.realtimeMetricsSubscriptionStatus)}):properties}function CfnMonitoringSubscriptionRealtimeMetricsSubscriptionConfigPropertyFromCloudFormation(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("realtimeMetricsSubscriptionStatus","RealtimeMetricsSubscriptionStatus",properties.RealtimeMetricsSubscriptionStatus!=null?cfn_parse().FromCloudFormation.getString(properties.RealtimeMetricsSubscriptionStatus):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMonitoringSubscriptionMonitoringSubscriptionPropertyValidator(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("realtimeMetricsSubscriptionConfig",CfnMonitoringSubscriptionRealtimeMetricsSubscriptionConfigPropertyValidator)(properties.realtimeMetricsSubscriptionConfig)),errors.wrap('supplied properties not correct for "MonitoringSubscriptionProperty"')}function convertCfnMonitoringSubscriptionMonitoringSubscriptionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnMonitoringSubscriptionMonitoringSubscriptionPropertyValidator(properties).assertSuccess(),{RealtimeMetricsSubscriptionConfig:convertCfnMonitoringSubscriptionRealtimeMetricsSubscriptionConfigPropertyToCloudFormation(properties.realtimeMetricsSubscriptionConfig)}):properties}function CfnMonitoringSubscriptionMonitoringSubscriptionPropertyFromCloudFormation(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("realtimeMetricsSubscriptionConfig","RealtimeMetricsSubscriptionConfig",properties.RealtimeMetricsSubscriptionConfig!=null?CfnMonitoringSubscriptionRealtimeMetricsSubscriptionConfigPropertyFromCloudFormation(properties.RealtimeMetricsSubscriptionConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMonitoringSubscriptionPropsValidator(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("distributionId",cdk().requiredValidator)(properties.distributionId)),errors.collect(cdk().propertyValidator("distributionId",cdk().validateString)(properties.distributionId)),errors.collect(cdk().propertyValidator("monitoringSubscription",cdk().requiredValidator)(properties.monitoringSubscription)),errors.collect(cdk().propertyValidator("monitoringSubscription",CfnMonitoringSubscriptionMonitoringSubscriptionPropertyValidator)(properties.monitoringSubscription)),errors.wrap('supplied properties not correct for "CfnMonitoringSubscriptionProps"')}function convertCfnMonitoringSubscriptionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnMonitoringSubscriptionPropsValidator(properties).assertSuccess(),{DistributionId:cdk().stringToCloudFormation(properties.distributionId),MonitoringSubscription:convertCfnMonitoringSubscriptionMonitoringSubscriptionPropertyToCloudFormation(properties.monitoringSubscription)}):properties}function CfnMonitoringSubscriptionPropsFromCloudFormation(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("distributionId","DistributionId",properties.DistributionId!=null?cfn_parse().FromCloudFormation.getString(properties.DistributionId):void 0),ret.addPropertyResult("monitoringSubscription","MonitoringSubscription",properties.MonitoringSubscription!=null?CfnMonitoringSubscriptionMonitoringSubscriptionPropertyFromCloudFormation(properties.MonitoringSubscription):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnOriginAccessControl extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnOriginAccessControl",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::OriginAccessControl";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnOriginAccessControlPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnOriginAccessControl(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 isCfnOriginAccessControl(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnOriginAccessControl.CFN_RESOURCE_TYPE_NAME}static arnForOriginAccessControl(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudfront_IOriginAccessControlRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForOriginAccessControl),error}return new(cfn_parse()).TemplateString("arn:${Partition}:cloudfront::${Account}:origin-access-control/${Id}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,Id:resource.originAccessControlRef.originAccessControlId})}_originAccessControlConfig;cfnPropertyNames={originAccessControlConfig:"OriginAccessControlConfig"};constructor(scope,id,props){super(scope,id,{type:CfnOriginAccessControl.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnOriginAccessControlProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnOriginAccessControl),error}cdk().requireProperty(props,"originAccessControlConfig",this),this._originAccessControlConfig=props.originAccessControlConfig}get originAccessControlRef(){return{originAccessControlId:this.ref}}get originAccessControlConfig(){return this._originAccessControlConfig}set originAccessControlConfig(value){cdk().traceProperty(this.node,"OriginAccessControlConfig"),this._originAccessControlConfig=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{originAccessControlConfig:this._originAccessControlConfig}}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",CfnOriginAccessControl.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnOriginAccessControlPropsToCloudFormation(props)}}exports.CfnOriginAccessControl=CfnOriginAccessControl;function CfnOriginAccessControlOriginAccessControlConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("originAccessControlOriginType",cdk().requiredValidator)(properties.originAccessControlOriginType)),errors.collect(cdk().propertyValidator("originAccessControlOriginType",cdk().validateString)(properties.originAccessControlOriginType)),errors.collect(cdk().propertyValidator("signingBehavior",cdk().requiredValidator)(properties.signingBehavior)),errors.collect(cdk().propertyValidator("signingBehavior",cdk().validateString)(properties.signingBehavior)),errors.collect(cdk().propertyValidator("signingProtocol",cdk().requiredValidator)(properties.signingProtocol)),errors.collect(cdk().propertyValidator("signingProtocol",cdk().validateString)(properties.signingProtocol)),errors.wrap('supplied properties not correct for "OriginAccessControlConfigProperty"')}function convertCfnOriginAccessControlOriginAccessControlConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnOriginAccessControlOriginAccessControlConfigPropertyValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),Name:cdk().stringToCloudFormation(properties.name),OriginAccessControlOriginType:cdk().stringToCloudFormation(properties.originAccessControlOriginType),SigningBehavior:cdk().stringToCloudFormation(properties.signingBehavior),SigningProtocol:cdk().stringToCloudFormation(properties.signingProtocol)}):properties}function CfnOriginAccessControlOriginAccessControlConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("originAccessControlOriginType","OriginAccessControlOriginType",properties.OriginAccessControlOriginType!=null?cfn_parse().FromCloudFormation.getString(properties.OriginAccessControlOriginType):void 0),ret.addPropertyResult("signingBehavior","SigningBehavior",properties.SigningBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.SigningBehavior):void 0),ret.addPropertyResult("signingProtocol","SigningProtocol",properties.SigningProtocol!=null?cfn_parse().FromCloudFormation.getString(properties.SigningProtocol):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnOriginAccessControlPropsValidator(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("originAccessControlConfig",cdk().requiredValidator)(properties.originAccessControlConfig)),errors.collect(cdk().propertyValidator("originAccessControlConfig",CfnOriginAccessControlOriginAccessControlConfigPropertyValidator)(properties.originAccessControlConfig)),errors.wrap('supplied properties not correct for "CfnOriginAccessControlProps"')}function convertCfnOriginAccessControlPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnOriginAccessControlPropsValidator(properties).assertSuccess(),{OriginAccessControlConfig:convertCfnOriginAccessControlOriginAccessControlConfigPropertyToCloudFormation(properties.originAccessControlConfig)}):properties}function CfnOriginAccessControlPropsFromCloudFormation(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("originAccessControlConfig","OriginAccessControlConfig",properties.OriginAccessControlConfig!=null?CfnOriginAccessControlOriginAccessControlConfigPropertyFromCloudFormation(properties.OriginAccessControlConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnOriginRequestPolicy extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnOriginRequestPolicy",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::OriginRequestPolicy";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnOriginRequestPolicyPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnOriginRequestPolicy(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 isCfnOriginRequestPolicy(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnOriginRequestPolicy.CFN_RESOURCE_TYPE_NAME}static arnForOriginRequestPolicy(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudfront_IOriginRequestPolicyRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForOriginRequestPolicy),error}return new(cfn_parse()).TemplateString("arn:${Partition}:cloudfront::${Account}:origin-request-policy/${Id}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,Id:resource.originRequestPolicyRef.originRequestPolicyId})}_originRequestPolicyConfig;cfnPropertyNames={originRequestPolicyConfig:"OriginRequestPolicyConfig"};constructor(scope,id,props){super(scope,id,{type:CfnOriginRequestPolicy.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnOriginRequestPolicyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnOriginRequestPolicy),error}cdk().requireProperty(props,"originRequestPolicyConfig",this),this._originRequestPolicyConfig=props.originRequestPolicyConfig}get originRequestPolicyRef(){return{originRequestPolicyId:this.ref}}get originRequestPolicyConfig(){return this._originRequestPolicyConfig}set originRequestPolicyConfig(value){cdk().traceProperty(this.node,"OriginRequestPolicyConfig"),this._originRequestPolicyConfig=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrLastModifiedTime(){return cdk().Token.asString(this.getAtt("LastModifiedTime",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{originRequestPolicyConfig:this._originRequestPolicyConfig}}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",CfnOriginRequestPolicy.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnOriginRequestPolicyPropsToCloudFormation(props)}}exports.CfnOriginRequestPolicy=CfnOriginRequestPolicy;function CfnOriginRequestPolicyHeadersConfigPropertyValidator(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("headerBehavior",cdk().requiredValidator)(properties.headerBehavior)),errors.collect(cdk().propertyValidator("headerBehavior",cdk().validateString)(properties.headerBehavior)),errors.collect(cdk().propertyValidator("headers",cdk().listValidator(cdk().validateString))(properties.headers)),errors.wrap('supplied properties not correct for "HeadersConfigProperty"')}function convertCfnOriginRequestPolicyHeadersConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnOriginRequestPolicyHeadersConfigPropertyValidator(properties).assertSuccess(),{HeaderBehavior:cdk().stringToCloudFormation(properties.headerBehavior),Headers:cdk().listMapper(cdk().stringToCloudFormation)(properties.headers)}):properties}function CfnOriginRequestPolicyHeadersConfigPropertyFromCloudFormation(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("headerBehavior","HeaderBehavior",properties.HeaderBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.HeaderBehavior):void 0),ret.addPropertyResult("headers","Headers",properties.Headers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Headers):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnOriginRequestPolicyCookiesConfigPropertyValidator(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("cookieBehavior",cdk().requiredValidator)(properties.cookieBehavior)),errors.collect(cdk().propertyValidator("cookieBehavior",cdk().validateString)(properties.cookieBehavior)),errors.collect(cdk().propertyValidator("cookies",cdk().listValidator(cdk().validateString))(properties.cookies)),errors.wrap('supplied properties not correct for "CookiesConfigProperty"')}function convertCfnOriginRequestPolicyCookiesConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnOriginRequestPolicyCookiesConfigPropertyValidator(properties).assertSuccess(),{CookieBehavior:cdk().stringToCloudFormation(properties.cookieBehavior),Cookies:cdk().listMapper(cdk().stringToCloudFormation)(properties.cookies)}):properties}function CfnOriginRequestPolicyCookiesConfigPropertyFromCloudFormation(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("cookieBehavior","CookieBehavior",properties.CookieBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.CookieBehavior):void 0),ret.addPropertyResult("cookies","Cookies",properties.Cookies!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Cookies):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnOriginRequestPolicyQueryStringsConfigPropertyValidator(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("queryStringBehavior",cdk().requiredValidator)(properties.queryStringBehavior)),errors.collect(cdk().propertyValidator("queryStringBehavior",cdk().validateString)(properties.queryStringBehavior)),errors.collect(cdk().propertyValidator("queryStrings",cdk().listValidator(cdk().validateString))(properties.queryStrings)),errors.wrap('supplied properties not correct for "QueryStringsConfigProperty"')}function convertCfnOriginRequestPolicyQueryStringsConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnOriginRequestPolicyQueryStringsConfigPropertyValidator(properties).assertSuccess(),{QueryStringBehavior:cdk().stringToCloudFormation(properties.queryStringBehavior),QueryStrings:cdk().listMapper(cdk().stringToCloudFormation)(properties.queryStrings)}):properties}function CfnOriginRequestPolicyQueryStringsConfigPropertyFromCloudFormation(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("queryStringBehavior","QueryStringBehavior",properties.QueryStringBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.QueryStringBehavior):void 0),ret.addPropertyResult("queryStrings","QueryStrings",properties.QueryStrings!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.QueryStrings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnOriginRequestPolicyOriginRequestPolicyConfigPropertyValidator(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("comment",cdk().validateString)(properties.comment)),errors.collect(cdk().propertyValidator("cookiesConfig",cdk().requiredValidator)(properties.cookiesConfig)),errors.collect(cdk().propertyValidator("cookiesConfig",CfnOriginRequestPolicyCookiesConfigPropertyValidator)(properties.cookiesConfig)),errors.collect(cdk().propertyValidator("headersConfig",cdk().requiredValidator)(properties.headersConfig)),errors.collect(cdk().propertyValidator("headersConfig",CfnOriginRequestPolicyHeadersConfigPropertyValidator)(properties.headersConfig)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("queryStringsConfig",cdk().requiredValidator)(properties.queryStringsConfig)),errors.collect(cdk().propertyValidator("queryStringsConfig",CfnOriginRequestPolicyQueryStringsConfigPropertyValidator)(properties.queryStringsConfig)),errors.wrap('supplied properties not correct for "OriginRequestPolicyConfigProperty"')}function convertCfnOriginRequestPolicyOriginRequestPolicyConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnOriginRequestPolicyOriginRequestPolicyConfigPropertyValidator(properties).assertSuccess(),{Comment:cdk().stringToCloudFormation(properties.comment),CookiesConfig:convertCfnOriginRequestPolicyCookiesConfigPropertyToCloudFormation(properties.cookiesConfig),HeadersConfig:convertCfnOriginRequestPolicyHeadersConfigPropertyToCloudFormation(properties.headersConfig),Name:cdk().stringToCloudFormation(properties.name),QueryStringsConfig:convertCfnOriginRequestPolicyQueryStringsConfigPropertyToCloudFormation(properties.queryStringsConfig)}):properties}function CfnOriginRequestPolicyOriginRequestPolicyConfigPropertyFromCloudFormation(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("comment","Comment",properties.Comment!=null?cfn_parse().FromCloudFormation.getString(properties.Comment):void 0),ret.addPropertyResult("cookiesConfig","CookiesConfig",properties.CookiesConfig!=null?CfnOriginRequestPolicyCookiesConfigPropertyFromCloudFormation(properties.CookiesConfig):void 0),ret.addPropertyResult("headersConfig","HeadersConfig",properties.HeadersConfig!=null?CfnOriginRequestPolicyHeadersConfigPropertyFromCloudFormation(properties.HeadersConfig):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("queryStringsConfig","QueryStringsConfig",properties.QueryStringsConfig!=null?CfnOriginRequestPolicyQueryStringsConfigPropertyFromCloudFormation(properties.QueryStringsConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnOriginRequestPolicyPropsValidator(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("originRequestPolicyConfig",cdk().requiredValidator)(properties.originRequestPolicyConfig)),errors.collect(cdk().propertyValidator("originRequestPolicyConfig",CfnOriginRequestPolicyOriginRequestPolicyConfigPropertyValidator)(properties.originRequestPolicyConfig)),errors.wrap('supplied properties not correct for "CfnOriginRequestPolicyProps"')}function convertCfnOriginRequestPolicyPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnOriginRequestPolicyPropsValidator(properties).assertSuccess(),{OriginRequestPolicyConfig:convertCfnOriginRequestPolicyOriginRequestPolicyConfigPropertyToCloudFormation(properties.originRequestPolicyConfig)}):properties}function CfnOriginRequestPolicyPropsFromCloudFormation(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("originRequestPolicyConfig","OriginRequestPolicyConfig",properties.OriginRequestPolicyConfig!=null?CfnOriginRequestPolicyOriginRequestPolicyConfigPropertyFromCloudFormation(properties.OriginRequestPolicyConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnPublicKey extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnPublicKey",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::PublicKey";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPublicKeyPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnPublicKey(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 isCfnPublicKey(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnPublicKey.CFN_RESOURCE_TYPE_NAME}_publicKeyConfig;cfnPropertyNames={publicKeyConfig:"PublicKeyConfig"};constructor(scope,id,props){super(scope,id,{type:CfnPublicKey.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnPublicKeyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPublicKey),error}cdk().requireProperty(props,"publicKeyConfig",this),this._publicKeyConfig=props.publicKeyConfig}get publicKeyRef(){return{publicKeyId:this.ref}}get publicKeyConfig(){return this._publicKeyConfig}set publicKeyConfig(value){cdk().traceProperty(this.node,"PublicKeyConfig"),this._publicKeyConfig=value}get attrCreatedTime(){return cdk().Token.asString(this.getAtt("CreatedTime",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{publicKeyConfig:this._publicKeyConfig}}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",CfnPublicKey.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnPublicKeyPropsToCloudFormation(props)}}exports.CfnPublicKey=CfnPublicKey;function CfnPublicKeyPublicKeyConfigPropertyValidator(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("callerReference",cdk().requiredValidator)(properties.callerReference)),errors.collect(cdk().propertyValidator("callerReference",cdk().validateString)(properties.callerReference)),errors.collect(cdk().propertyValidator("comment",cdk().validateString)(properties.comment)),errors.collect(cdk().propertyValidator("encodedKey",cdk().requiredValidator)(properties.encodedKey)),errors.collect(cdk().propertyValidator("encodedKey",cdk().validateString)(properties.encodedKey)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "PublicKeyConfigProperty"')}function convertCfnPublicKeyPublicKeyConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPublicKeyPublicKeyConfigPropertyValidator(properties).assertSuccess(),{CallerReference:cdk().stringToCloudFormation(properties.callerReference),Comment:cdk().stringToCloudFormation(properties.comment),EncodedKey:cdk().stringToCloudFormation(properties.encodedKey),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnPublicKeyPublicKeyConfigPropertyFromCloudFormation(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("callerReference","CallerReference",properties.CallerReference!=null?cfn_parse().FromCloudFormation.getString(properties.CallerReference):void 0),ret.addPropertyResult("comment","Comment",properties.Comment!=null?cfn_parse().FromCloudFormation.getString(properties.Comment):void 0),ret.addPropertyResult("encodedKey","EncodedKey",properties.EncodedKey!=null?cfn_parse().FromCloudFormation.getString(properties.EncodedKey):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPublicKeyPropsValidator(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("publicKeyConfig",cdk().requiredValidator)(properties.publicKeyConfig)),errors.collect(cdk().propertyValidator("publicKeyConfig",CfnPublicKeyPublicKeyConfigPropertyValidator)(properties.publicKeyConfig)),errors.wrap('supplied properties not correct for "CfnPublicKeyProps"')}function convertCfnPublicKeyPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPublicKeyPropsValidator(properties).assertSuccess(),{PublicKeyConfig:convertCfnPublicKeyPublicKeyConfigPropertyToCloudFormation(properties.publicKeyConfig)}):properties}function CfnPublicKeyPropsFromCloudFormation(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("publicKeyConfig","PublicKeyConfig",properties.PublicKeyConfig!=null?CfnPublicKeyPublicKeyConfigPropertyFromCloudFormation(properties.PublicKeyConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRealtimeLogConfig extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnRealtimeLogConfig",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::RealtimeLogConfig";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRealtimeLogConfigPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnRealtimeLogConfig(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 isCfnRealtimeLogConfig(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnRealtimeLogConfig.CFN_RESOURCE_TYPE_NAME}static arnForRealtimeLogConfig(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudfront_IRealtimeLogConfigRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForRealtimeLogConfig),error}return resource.realtimeLogConfigRef.realtimeLogConfigArn}_endPoints;_fields;_name;_samplingRate;cfnPropertyNames={endPoints:"EndPoints",fields:"Fields",name:"Name",samplingRate:"SamplingRate"};constructor(scope,id,props){super(scope,id,{type:CfnRealtimeLogConfig.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnRealtimeLogConfigProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRealtimeLogConfig),error}cdk().requireProperty(props,"endPoints",this),cdk().requireProperty(props,"fields",this),cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"samplingRate",this),this._endPoints=props.endPoints,this._fields=props.fields,this._name=props.name,this._samplingRate=props.samplingRate}get realtimeLogConfigRef(){return{realtimeLogConfigArn:this.ref}}get endPoints(){return this._endPoints}set endPoints(value){cdk().traceProperty(this.node,"EndPoints"),this._endPoints=value}get fields(){return this._fields}set fields(value){cdk().traceProperty(this.node,"Fields"),this._fields=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get samplingRate(){return this._samplingRate}set samplingRate(value){cdk().traceProperty(this.node,"SamplingRate"),this._samplingRate=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{endPoints:this._endPoints,fields:this._fields,name:this._name,samplingRate:this._samplingRate}}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",CfnRealtimeLogConfig.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnRealtimeLogConfigPropsToCloudFormation(props)}}exports.CfnRealtimeLogConfig=CfnRealtimeLogConfig;function CfnRealtimeLogConfigKinesisStreamConfigPropertyValidator(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("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("streamArn",cdk().requiredValidator)(properties.streamArn)),errors.collect(cdk().propertyValidator("streamArn",cdk().validateString)(properties.streamArn)),errors.wrap('supplied properties not correct for "KinesisStreamConfigProperty"')}function convertCfnRealtimeLogConfigKinesisStreamConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRealtimeLogConfigKinesisStreamConfigPropertyValidator(properties).assertSuccess(),{RoleArn:cdk().stringToCloudFormation(properties.roleArn),StreamArn:cdk().stringToCloudFormation(properties.streamArn)}):properties}function CfnRealtimeLogConfigKinesisStreamConfigPropertyFromCloudFormation(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("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("streamArn","StreamArn",properties.StreamArn!=null?cfn_parse().FromCloudFormation.getString(properties.StreamArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRealtimeLogConfigEndPointPropertyValidator(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("kinesisStreamConfig",cdk().requiredValidator)(properties.kinesisStreamConfig)),errors.collect(cdk().propertyValidator("kinesisStreamConfig",CfnRealtimeLogConfigKinesisStreamConfigPropertyValidator)(properties.kinesisStreamConfig)),errors.collect(cdk().propertyValidator("streamType",cdk().requiredValidator)(properties.streamType)),errors.collect(cdk().propertyValidator("streamType",cdk().validateString)(properties.streamType)),errors.wrap('supplied properties not correct for "EndPointProperty"')}function convertCfnRealtimeLogConfigEndPointPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRealtimeLogConfigEndPointPropertyValidator(properties).assertSuccess(),{KinesisStreamConfig:convertCfnRealtimeLogConfigKinesisStreamConfigPropertyToCloudFormation(properties.kinesisStreamConfig),StreamType:cdk().stringToCloudFormation(properties.streamType)}):properties}function CfnRealtimeLogConfigEndPointPropertyFromCloudFormation(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("kinesisStreamConfig","KinesisStreamConfig",properties.KinesisStreamConfig!=null?CfnRealtimeLogConfigKinesisStreamConfigPropertyFromCloudFormation(properties.KinesisStreamConfig):void 0),ret.addPropertyResult("streamType","StreamType",properties.StreamType!=null?cfn_parse().FromCloudFormation.getString(properties.StreamType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRealtimeLogConfigPropsValidator(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("endPoints",cdk().requiredValidator)(properties.endPoints)),errors.collect(cdk().propertyValidator("endPoints",cdk().listValidator(CfnRealtimeLogConfigEndPointPropertyValidator))(properties.endPoints)),errors.collect(cdk().propertyValidator("fields",cdk().requiredValidator)(properties.fields)),errors.collect(cdk().propertyValidator("fields",cdk().listValidator(cdk().validateString))(properties.fields)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("samplingRate",cdk().requiredValidator)(properties.samplingRate)),errors.collect(cdk().propertyValidator("samplingRate",cdk().validateNumber)(properties.samplingRate)),errors.wrap('supplied properties not correct for "CfnRealtimeLogConfigProps"')}function convertCfnRealtimeLogConfigPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRealtimeLogConfigPropsValidator(properties).assertSuccess(),{EndPoints:cdk().listMapper(convertCfnRealtimeLogConfigEndPointPropertyToCloudFormation)(properties.endPoints),Fields:cdk().listMapper(cdk().stringToCloudFormation)(properties.fields),Name:cdk().stringToCloudFormation(properties.name),SamplingRate:cdk().numberToCloudFormation(properties.samplingRate)}):properties}function CfnRealtimeLogConfigPropsFromCloudFormation(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("endPoints","EndPoints",properties.EndPoints!=null?cfn_parse().FromCloudFormation.getArray(CfnRealtimeLogConfigEndPointPropertyFromCloudFormation)(properties.EndPoints):void 0),ret.addPropertyResult("fields","Fields",properties.Fields!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Fields):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("samplingRate","SamplingRate",properties.SamplingRate!=null?cfn_parse().FromCloudFormation.getNumber(properties.SamplingRate):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnResponseHeadersPolicy extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnResponseHeadersPolicy",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::ResponseHeadersPolicy";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnResponseHeadersPolicyPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnResponseHeadersPolicy(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 isCfnResponseHeadersPolicy(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnResponseHeadersPolicy.CFN_RESOURCE_TYPE_NAME}static arnForResponseHeadersPolicy(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudfront_IResponseHeadersPolicyRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForResponseHeadersPolicy),error}return new(cfn_parse()).TemplateString("arn:${Partition}:cloudfront::${Account}:response-headers-policy/${Id}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,Id:resource.responseHeadersPolicyRef.responseHeadersPolicyId})}_responseHeadersPolicyConfig;cfnPropertyNames={responseHeadersPolicyConfig:"ResponseHeadersPolicyConfig"};constructor(scope,id,props){super(scope,id,{type:CfnResponseHeadersPolicy.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnResponseHeadersPolicyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnResponseHeadersPolicy),error}cdk().requireProperty(props,"responseHeadersPolicyConfig",this),this._responseHeadersPolicyConfig=props.responseHeadersPolicyConfig}get responseHeadersPolicyRef(){return{responseHeadersPolicyId:this.ref}}get responseHeadersPolicyConfig(){return this._responseHeadersPolicyConfig}set responseHeadersPolicyConfig(value){cdk().traceProperty(this.node,"ResponseHeadersPolicyConfig"),this._responseHeadersPolicyConfig=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrLastModifiedTime(){return cdk().Token.asString(this.getAtt("LastModifiedTime",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{responseHeadersPolicyConfig:this._responseHeadersPolicyConfig}}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",CfnResponseHeadersPolicy.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnResponseHeadersPolicyPropsToCloudFormation(props)}}exports.CfnResponseHeadersPolicy=CfnResponseHeadersPolicy;function CfnResponseHeadersPolicyContentSecurityPolicyPropertyValidator(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("contentSecurityPolicy",cdk().requiredValidator)(properties.contentSecurityPolicy)),errors.collect(cdk().propertyValidator("contentSecurityPolicy",cdk().validateString)(properties.contentSecurityPolicy)),errors.collect(cdk().propertyValidator("override",cdk().requiredValidator)(properties.override)),errors.collect(cdk().propertyValidator("override",cdk().validateBoolean)(properties.override)),errors.wrap('supplied properties not correct for "ContentSecurityPolicyProperty"')}function convertCfnResponseHeadersPolicyContentSecurityPolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyContentSecurityPolicyPropertyValidator(properties).assertSuccess(),{ContentSecurityPolicy:cdk().stringToCloudFormation(properties.contentSecurityPolicy),Override:cdk().booleanToCloudFormation(properties.override)}):properties}function CfnResponseHeadersPolicyContentSecurityPolicyPropertyFromCloudFormation(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("contentSecurityPolicy","ContentSecurityPolicy",properties.ContentSecurityPolicy!=null?cfn_parse().FromCloudFormation.getString(properties.ContentSecurityPolicy):void 0),ret.addPropertyResult("override","Override",properties.Override!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Override):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyFrameOptionsPropertyValidator(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("frameOption",cdk().requiredValidator)(properties.frameOption)),errors.collect(cdk().propertyValidator("frameOption",cdk().validateString)(properties.frameOption)),errors.collect(cdk().propertyValidator("override",cdk().requiredValidator)(properties.override)),errors.collect(cdk().propertyValidator("override",cdk().validateBoolean)(properties.override)),errors.wrap('supplied properties not correct for "FrameOptionsProperty"')}function convertCfnResponseHeadersPolicyFrameOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyFrameOptionsPropertyValidator(properties).assertSuccess(),{FrameOption:cdk().stringToCloudFormation(properties.frameOption),Override:cdk().booleanToCloudFormation(properties.override)}):properties}function CfnResponseHeadersPolicyFrameOptionsPropertyFromCloudFormation(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("frameOption","FrameOption",properties.FrameOption!=null?cfn_parse().FromCloudFormation.getString(properties.FrameOption):void 0),ret.addPropertyResult("override","Override",properties.Override!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Override):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyContentTypeOptionsPropertyValidator(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("override",cdk().requiredValidator)(properties.override)),errors.collect(cdk().propertyValidator("override",cdk().validateBoolean)(properties.override)),errors.wrap('supplied properties not correct for "ContentTypeOptionsProperty"')}function convertCfnResponseHeadersPolicyContentTypeOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyContentTypeOptionsPropertyValidator(properties).assertSuccess(),{Override:cdk().booleanToCloudFormation(properties.override)}):properties}function CfnResponseHeadersPolicyContentTypeOptionsPropertyFromCloudFormation(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("override","Override",properties.Override!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Override):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyStrictTransportSecurityPropertyValidator(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("accessControlMaxAgeSec",cdk().requiredValidator)(properties.accessControlMaxAgeSec)),errors.collect(cdk().propertyValidator("accessControlMaxAgeSec",cdk().validateNumber)(properties.accessControlMaxAgeSec)),errors.collect(cdk().propertyValidator("includeSubdomains",cdk().validateBoolean)(properties.includeSubdomains)),errors.collect(cdk().propertyValidator("override",cdk().requiredValidator)(properties.override)),errors.collect(cdk().propertyValidator("override",cdk().validateBoolean)(properties.override)),errors.collect(cdk().propertyValidator("preload",cdk().validateBoolean)(properties.preload)),errors.wrap('supplied properties not correct for "StrictTransportSecurityProperty"')}function convertCfnResponseHeadersPolicyStrictTransportSecurityPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyStrictTransportSecurityPropertyValidator(properties).assertSuccess(),{AccessControlMaxAgeSec:cdk().numberToCloudFormation(properties.accessControlMaxAgeSec),IncludeSubdomains:cdk().booleanToCloudFormation(properties.includeSubdomains),Override:cdk().booleanToCloudFormation(properties.override),Preload:cdk().booleanToCloudFormation(properties.preload)}):properties}function CfnResponseHeadersPolicyStrictTransportSecurityPropertyFromCloudFormation(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("accessControlMaxAgeSec","AccessControlMaxAgeSec",properties.AccessControlMaxAgeSec!=null?cfn_parse().FromCloudFormation.getNumber(properties.AccessControlMaxAgeSec):void 0),ret.addPropertyResult("includeSubdomains","IncludeSubdomains",properties.IncludeSubdomains!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IncludeSubdomains):void 0),ret.addPropertyResult("override","Override",properties.Override!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Override):void 0),ret.addPropertyResult("preload","Preload",properties.Preload!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Preload):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyXSSProtectionPropertyValidator(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("modeBlock",cdk().validateBoolean)(properties.modeBlock)),errors.collect(cdk().propertyValidator("override",cdk().requiredValidator)(properties.override)),errors.collect(cdk().propertyValidator("override",cdk().validateBoolean)(properties.override)),errors.collect(cdk().propertyValidator("protection",cdk().requiredValidator)(properties.protection)),errors.collect(cdk().propertyValidator("protection",cdk().validateBoolean)(properties.protection)),errors.collect(cdk().propertyValidator("reportUri",cdk().validateString)(properties.reportUri)),errors.wrap('supplied properties not correct for "XSSProtectionProperty"')}function convertCfnResponseHeadersPolicyXSSProtectionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyXSSProtectionPropertyValidator(properties).assertSuccess(),{ModeBlock:cdk().booleanToCloudFormation(properties.modeBlock),Override:cdk().booleanToCloudFormation(properties.override),Protection:cdk().booleanToCloudFormation(properties.protection),ReportUri:cdk().stringToCloudFormation(properties.reportUri)}):properties}function CfnResponseHeadersPolicyXSSProtectionPropertyFromCloudFormation(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("modeBlock","ModeBlock",properties.ModeBlock!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ModeBlock):void 0),ret.addPropertyResult("override","Override",properties.Override!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Override):void 0),ret.addPropertyResult("protection","Protection",properties.Protection!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Protection):void 0),ret.addPropertyResult("reportUri","ReportUri",properties.ReportUri!=null?cfn_parse().FromCloudFormation.getString(properties.ReportUri):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyReferrerPolicyPropertyValidator(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("override",cdk().requiredValidator)(properties.override)),errors.collect(cdk().propertyValidator("override",cdk().validateBoolean)(properties.override)),errors.collect(cdk().propertyValidator("referrerPolicy",cdk().requiredValidator)(properties.referrerPolicy)),errors.collect(cdk().propertyValidator("referrerPolicy",cdk().validateString)(properties.referrerPolicy)),errors.wrap('supplied properties not correct for "ReferrerPolicyProperty"')}function convertCfnResponseHeadersPolicyReferrerPolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyReferrerPolicyPropertyValidator(properties).assertSuccess(),{Override:cdk().booleanToCloudFormation(properties.override),ReferrerPolicy:cdk().stringToCloudFormation(properties.referrerPolicy)}):properties}function CfnResponseHeadersPolicyReferrerPolicyPropertyFromCloudFormation(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("override","Override",properties.Override!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Override):void 0),ret.addPropertyResult("referrerPolicy","ReferrerPolicy",properties.ReferrerPolicy!=null?cfn_parse().FromCloudFormation.getString(properties.ReferrerPolicy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicySecurityHeadersConfigPropertyValidator(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("contentSecurityPolicy",CfnResponseHeadersPolicyContentSecurityPolicyPropertyValidator)(properties.contentSecurityPolicy)),errors.collect(cdk().propertyValidator("contentTypeOptions",CfnResponseHeadersPolicyContentTypeOptionsPropertyValidator)(properties.contentTypeOptions)),errors.collect(cdk().propertyValidator("frameOptions",CfnResponseHeadersPolicyFrameOptionsPropertyValidator)(properties.frameOptions)),errors.collect(cdk().propertyValidator("referrerPolicy",CfnResponseHeadersPolicyReferrerPolicyPropertyValidator)(properties.referrerPolicy)),errors.collect(cdk().propertyValidator("strictTransportSecurity",CfnResponseHeadersPolicyStrictTransportSecurityPropertyValidator)(properties.strictTransportSecurity)),errors.collect(cdk().propertyValidator("xssProtection",CfnResponseHeadersPolicyXSSProtectionPropertyValidator)(properties.xssProtection)),errors.wrap('supplied properties not correct for "SecurityHeadersConfigProperty"')}function convertCfnResponseHeadersPolicySecurityHeadersConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicySecurityHeadersConfigPropertyValidator(properties).assertSuccess(),{ContentSecurityPolicy:convertCfnResponseHeadersPolicyContentSecurityPolicyPropertyToCloudFormation(properties.contentSecurityPolicy),ContentTypeOptions:convertCfnResponseHeadersPolicyContentTypeOptionsPropertyToCloudFormation(properties.contentTypeOptions),FrameOptions:convertCfnResponseHeadersPolicyFrameOptionsPropertyToCloudFormation(properties.frameOptions),ReferrerPolicy:convertCfnResponseHeadersPolicyReferrerPolicyPropertyToCloudFormation(properties.referrerPolicy),StrictTransportSecurity:convertCfnResponseHeadersPolicyStrictTransportSecurityPropertyToCloudFormation(properties.strictTransportSecurity),XSSProtection:convertCfnResponseHeadersPolicyXSSProtectionPropertyToCloudFormation(properties.xssProtection)}):properties}function CfnResponseHeadersPolicySecurityHeadersConfigPropertyFromCloudFormation(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("contentSecurityPolicy","ContentSecurityPolicy",properties.ContentSecurityPolicy!=null?CfnResponseHeadersPolicyContentSecurityPolicyPropertyFromCloudFormation(properties.ContentSecurityPolicy):void 0),ret.addPropertyResult("contentTypeOptions","ContentTypeOptions",properties.ContentTypeOptions!=null?CfnResponseHeadersPolicyContentTypeOptionsPropertyFromCloudFormation(properties.ContentTypeOptions):void 0),ret.addPropertyResult("frameOptions","FrameOptions",properties.FrameOptions!=null?CfnResponseHeadersPolicyFrameOptionsPropertyFromCloudFormation(properties.FrameOptions):void 0),ret.addPropertyResult("referrerPolicy","ReferrerPolicy",properties.ReferrerPolicy!=null?CfnResponseHeadersPolicyReferrerPolicyPropertyFromCloudFormation(properties.ReferrerPolicy):void 0),ret.addPropertyResult("strictTransportSecurity","StrictTransportSecurity",properties.StrictTransportSecurity!=null?CfnResponseHeadersPolicyStrictTransportSecurityPropertyFromCloudFormation(properties.StrictTransportSecurity):void 0),ret.addPropertyResult("xssProtection","XSSProtection",properties.XSSProtection!=null?CfnResponseHeadersPolicyXSSProtectionPropertyFromCloudFormation(properties.XSSProtection):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyRemoveHeaderPropertyValidator(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("header",cdk().requiredValidator)(properties.header)),errors.collect(cdk().propertyValidator("header",cdk().validateString)(properties.header)),errors.wrap('supplied properties not correct for "RemoveHeaderProperty"')}function convertCfnResponseHeadersPolicyRemoveHeaderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyRemoveHeaderPropertyValidator(properties).assertSuccess(),{Header:cdk().stringToCloudFormation(properties.header)}):properties}function CfnResponseHeadersPolicyRemoveHeaderPropertyFromCloudFormation(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("header","Header",properties.Header!=null?cfn_parse().FromCloudFormation.getString(properties.Header):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyRemoveHeadersConfigPropertyValidator(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("items",cdk().requiredValidator)(properties.items)),errors.collect(cdk().propertyValidator("items",cdk().listValidator(CfnResponseHeadersPolicyRemoveHeaderPropertyValidator))(properties.items)),errors.wrap('supplied properties not correct for "RemoveHeadersConfigProperty"')}function convertCfnResponseHeadersPolicyRemoveHeadersConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyRemoveHeadersConfigPropertyValidator(properties).assertSuccess(),{Items:cdk().listMapper(convertCfnResponseHeadersPolicyRemoveHeaderPropertyToCloudFormation)(properties.items)}):properties}function CfnResponseHeadersPolicyRemoveHeadersConfigPropertyFromCloudFormation(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("items","Items",properties.Items!=null?cfn_parse().FromCloudFormation.getArray(CfnResponseHeadersPolicyRemoveHeaderPropertyFromCloudFormation)(properties.Items):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyAccessControlAllowHeadersPropertyValidator(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("items",cdk().requiredValidator)(properties.items)),errors.collect(cdk().propertyValidator("items",cdk().listValidator(cdk().validateString))(properties.items)),errors.wrap('supplied properties not correct for "AccessControlAllowHeadersProperty"')}function convertCfnResponseHeadersPolicyAccessControlAllowHeadersPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyAccessControlAllowHeadersPropertyValidator(properties).assertSuccess(),{Items:cdk().listMapper(cdk().stringToCloudFormation)(properties.items)}):properties}function CfnResponseHeadersPolicyAccessControlAllowHeadersPropertyFromCloudFormation(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("items","Items",properties.Items!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Items):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyAccessControlAllowMethodsPropertyValidator(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("items",cdk().requiredValidator)(properties.items)),errors.collect(cdk().propertyValidator("items",cdk().listValidator(cdk().validateString))(properties.items)),errors.wrap('supplied properties not correct for "AccessControlAllowMethodsProperty"')}function convertCfnResponseHeadersPolicyAccessControlAllowMethodsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyAccessControlAllowMethodsPropertyValidator(properties).assertSuccess(),{Items:cdk().listMapper(cdk().stringToCloudFormation)(properties.items)}):properties}function CfnResponseHeadersPolicyAccessControlAllowMethodsPropertyFromCloudFormation(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("items","Items",properties.Items!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Items):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyAccessControlExposeHeadersPropertyValidator(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("items",cdk().requiredValidator)(properties.items)),errors.collect(cdk().propertyValidator("items",cdk().listValidator(cdk().validateString))(properties.items)),errors.wrap('supplied properties not correct for "AccessControlExposeHeadersProperty"')}function convertCfnResponseHeadersPolicyAccessControlExposeHeadersPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyAccessControlExposeHeadersPropertyValidator(properties).assertSuccess(),{Items:cdk().listMapper(cdk().stringToCloudFormation)(properties.items)}):properties}function CfnResponseHeadersPolicyAccessControlExposeHeadersPropertyFromCloudFormation(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("items","Items",properties.Items!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Items):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyAccessControlAllowOriginsPropertyValidator(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("items",cdk().requiredValidator)(properties.items)),errors.collect(cdk().propertyValidator("items",cdk().listValidator(cdk().validateString))(properties.items)),errors.wrap('supplied properties not correct for "AccessControlAllowOriginsProperty"')}function convertCfnResponseHeadersPolicyAccessControlAllowOriginsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyAccessControlAllowOriginsPropertyValidator(properties).assertSuccess(),{Items:cdk().listMapper(cdk().stringToCloudFormation)(properties.items)}):properties}function CfnResponseHeadersPolicyAccessControlAllowOriginsPropertyFromCloudFormation(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("items","Items",properties.Items!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Items):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyCorsConfigPropertyValidator(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("accessControlAllowCredentials",cdk().requiredValidator)(properties.accessControlAllowCredentials)),errors.collect(cdk().propertyValidator("accessControlAllowCredentials",cdk().validateBoolean)(properties.accessControlAllowCredentials)),errors.collect(cdk().propertyValidator("accessControlAllowHeaders",cdk().requiredValidator)(properties.accessControlAllowHeaders)),errors.collect(cdk().propertyValidator("accessControlAllowHeaders",CfnResponseHeadersPolicyAccessControlAllowHeadersPropertyValidator)(properties.accessControlAllowHeaders)),errors.collect(cdk().propertyValidator("accessControlAllowMethods",cdk().requiredValidator)(properties.accessControlAllowMethods)),errors.collect(cdk().propertyValidator("accessControlAllowMethods",CfnResponseHeadersPolicyAccessControlAllowMethodsPropertyValidator)(properties.accessControlAllowMethods)),errors.collect(cdk().propertyValidator("accessControlAllowOrigins",cdk().requiredValidator)(properties.accessControlAllowOrigins)),errors.collect(cdk().propertyValidator("accessControlAllowOrigins",CfnResponseHeadersPolicyAccessControlAllowOriginsPropertyValidator)(properties.accessControlAllowOrigins)),errors.collect(cdk().propertyValidator("accessControlExposeHeaders",CfnResponseHeadersPolicyAccessControlExposeHeadersPropertyValidator)(properties.accessControlExposeHeaders)),errors.collect(cdk().propertyValidator("accessControlMaxAgeSec",cdk().validateNumber)(properties.accessControlMaxAgeSec)),errors.collect(cdk().propertyValidator("originOverride",cdk().requiredValidator)(properties.originOverride)),errors.collect(cdk().propertyValidator("originOverride",cdk().validateBoolean)(properties.originOverride)),errors.wrap('supplied properties not correct for "CorsConfigProperty"')}function convertCfnResponseHeadersPolicyCorsConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyCorsConfigPropertyValidator(properties).assertSuccess(),{AccessControlAllowCredentials:cdk().booleanToCloudFormation(properties.accessControlAllowCredentials),AccessControlAllowHeaders:convertCfnResponseHeadersPolicyAccessControlAllowHeadersPropertyToCloudFormation(properties.accessControlAllowHeaders),AccessControlAllowMethods:convertCfnResponseHeadersPolicyAccessControlAllowMethodsPropertyToCloudFormation(properties.accessControlAllowMethods),AccessControlAllowOrigins:convertCfnResponseHeadersPolicyAccessControlAllowOriginsPropertyToCloudFormation(properties.accessControlAllowOrigins),AccessControlExposeHeaders:convertCfnResponseHeadersPolicyAccessControlExposeHeadersPropertyToCloudFormation(properties.accessControlExposeHeaders),AccessControlMaxAgeSec:cdk().numberToCloudFormation(properties.accessControlMaxAgeSec),OriginOverride:cdk().booleanToCloudFormation(properties.originOverride)}):properties}function CfnResponseHeadersPolicyCorsConfigPropertyFromCloudFormation(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("accessControlAllowCredentials","AccessControlAllowCredentials",properties.AccessControlAllowCredentials!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AccessControlAllowCredentials):void 0),ret.addPropertyResult("accessControlAllowHeaders","AccessControlAllowHeaders",properties.AccessControlAllowHeaders!=null?CfnResponseHeadersPolicyAccessControlAllowHeadersPropertyFromCloudFormation(properties.AccessControlAllowHeaders):void 0),ret.addPropertyResult("accessControlAllowMethods","AccessControlAllowMethods",properties.AccessControlAllowMethods!=null?CfnResponseHeadersPolicyAccessControlAllowMethodsPropertyFromCloudFormation(properties.AccessControlAllowMethods):void 0),ret.addPropertyResult("accessControlAllowOrigins","AccessControlAllowOrigins",properties.AccessControlAllowOrigins!=null?CfnResponseHeadersPolicyAccessControlAllowOriginsPropertyFromCloudFormation(properties.AccessControlAllowOrigins):void 0),ret.addPropertyResult("accessControlExposeHeaders","AccessControlExposeHeaders",properties.AccessControlExposeHeaders!=null?CfnResponseHeadersPolicyAccessControlExposeHeadersPropertyFromCloudFormation(properties.AccessControlExposeHeaders):void 0),ret.addPropertyResult("accessControlMaxAgeSec","AccessControlMaxAgeSec",properties.AccessControlMaxAgeSec!=null?cfn_parse().FromCloudFormation.getNumber(properties.AccessControlMaxAgeSec):void 0),ret.addPropertyResult("originOverride","OriginOverride",properties.OriginOverride!=null?cfn_parse().FromCloudFormation.getBoolean(properties.OriginOverride):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyServerTimingHeadersConfigPropertyValidator(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("enabled",cdk().requiredValidator)(properties.enabled)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("samplingRate",cdk().validateNumber)(properties.samplingRate)),errors.wrap('supplied properties not correct for "ServerTimingHeadersConfigProperty"')}function convertCfnResponseHeadersPolicyServerTimingHeadersConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyServerTimingHeadersConfigPropertyValidator(properties).assertSuccess(),{Enabled:cdk().booleanToCloudFormation(properties.enabled),SamplingRate:cdk().numberToCloudFormation(properties.samplingRate)}):properties}function CfnResponseHeadersPolicyServerTimingHeadersConfigPropertyFromCloudFormation(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("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("samplingRate","SamplingRate",properties.SamplingRate!=null?cfn_parse().FromCloudFormation.getNumber(properties.SamplingRate):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyCustomHeaderPropertyValidator(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("header",cdk().requiredValidator)(properties.header)),errors.collect(cdk().propertyValidator("header",cdk().validateString)(properties.header)),errors.collect(cdk().propertyValidator("override",cdk().requiredValidator)(properties.override)),errors.collect(cdk().propertyValidator("override",cdk().validateBoolean)(properties.override)),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 "CustomHeaderProperty"')}function convertCfnResponseHeadersPolicyCustomHeaderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyCustomHeaderPropertyValidator(properties).assertSuccess(),{Header:cdk().stringToCloudFormation(properties.header),Override:cdk().booleanToCloudFormation(properties.override),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnResponseHeadersPolicyCustomHeaderPropertyFromCloudFormation(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("header","Header",properties.Header!=null?cfn_parse().FromCloudFormation.getString(properties.Header):void 0),ret.addPropertyResult("override","Override",properties.Override!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Override):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyCustomHeadersConfigPropertyValidator(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("items",cdk().requiredValidator)(properties.items)),errors.collect(cdk().propertyValidator("items",cdk().listValidator(CfnResponseHeadersPolicyCustomHeaderPropertyValidator))(properties.items)),errors.wrap('supplied properties not correct for "CustomHeadersConfigProperty"')}function convertCfnResponseHeadersPolicyCustomHeadersConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyCustomHeadersConfigPropertyValidator(properties).assertSuccess(),{Items:cdk().listMapper(convertCfnResponseHeadersPolicyCustomHeaderPropertyToCloudFormation)(properties.items)}):properties}function CfnResponseHeadersPolicyCustomHeadersConfigPropertyFromCloudFormation(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("items","Items",properties.Items!=null?cfn_parse().FromCloudFormation.getArray(CfnResponseHeadersPolicyCustomHeaderPropertyFromCloudFormation)(properties.Items):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyResponseHeadersPolicyConfigPropertyValidator(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("comment",cdk().validateString)(properties.comment)),errors.collect(cdk().propertyValidator("corsConfig",CfnResponseHeadersPolicyCorsConfigPropertyValidator)(properties.corsConfig)),errors.collect(cdk().propertyValidator("customHeadersConfig",CfnResponseHeadersPolicyCustomHeadersConfigPropertyValidator)(properties.customHeadersConfig)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("removeHeadersConfig",CfnResponseHeadersPolicyRemoveHeadersConfigPropertyValidator)(properties.removeHeadersConfig)),errors.collect(cdk().propertyValidator("securityHeadersConfig",CfnResponseHeadersPolicySecurityHeadersConfigPropertyValidator)(properties.securityHeadersConfig)),errors.collect(cdk().propertyValidator("serverTimingHeadersConfig",CfnResponseHeadersPolicyServerTimingHeadersConfigPropertyValidator)(properties.serverTimingHeadersConfig)),errors.wrap('supplied properties not correct for "ResponseHeadersPolicyConfigProperty"')}function convertCfnResponseHeadersPolicyResponseHeadersPolicyConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyResponseHeadersPolicyConfigPropertyValidator(properties).assertSuccess(),{Comment:cdk().stringToCloudFormation(properties.comment),CorsConfig:convertCfnResponseHeadersPolicyCorsConfigPropertyToCloudFormation(properties.corsConfig),CustomHeadersConfig:convertCfnResponseHeadersPolicyCustomHeadersConfigPropertyToCloudFormation(properties.customHeadersConfig),Name:cdk().stringToCloudFormation(properties.name),RemoveHeadersConfig:convertCfnResponseHeadersPolicyRemoveHeadersConfigPropertyToCloudFormation(properties.removeHeadersConfig),SecurityHeadersConfig:convertCfnResponseHeadersPolicySecurityHeadersConfigPropertyToCloudFormation(properties.securityHeadersConfig),ServerTimingHeadersConfig:convertCfnResponseHeadersPolicyServerTimingHeadersConfigPropertyToCloudFormation(properties.serverTimingHeadersConfig)}):properties}function CfnResponseHeadersPolicyResponseHeadersPolicyConfigPropertyFromCloudFormation(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("comment","Comment",properties.Comment!=null?cfn_parse().FromCloudFormation.getString(properties.Comment):void 0),ret.addPropertyResult("corsConfig","CorsConfig",properties.CorsConfig!=null?CfnResponseHeadersPolicyCorsConfigPropertyFromCloudFormation(properties.CorsConfig):void 0),ret.addPropertyResult("customHeadersConfig","CustomHeadersConfig",properties.CustomHeadersConfig!=null?CfnResponseHeadersPolicyCustomHeadersConfigPropertyFromCloudFormation(properties.CustomHeadersConfig):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("removeHeadersConfig","RemoveHeadersConfig",properties.RemoveHeadersConfig!=null?CfnResponseHeadersPolicyRemoveHeadersConfigPropertyFromCloudFormation(properties.RemoveHeadersConfig):void 0),ret.addPropertyResult("securityHeadersConfig","SecurityHeadersConfig",properties.SecurityHeadersConfig!=null?CfnResponseHeadersPolicySecurityHeadersConfigPropertyFromCloudFormation(properties.SecurityHeadersConfig):void 0),ret.addPropertyResult("serverTimingHeadersConfig","ServerTimingHeadersConfig",properties.ServerTimingHeadersConfig!=null?CfnResponseHeadersPolicyServerTimingHeadersConfigPropertyFromCloudFormation(properties.ServerTimingHeadersConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnResponseHeadersPolicyPropsValidator(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("responseHeadersPolicyConfig",cdk().requiredValidator)(properties.responseHeadersPolicyConfig)),errors.collect(cdk().propertyValidator("responseHeadersPolicyConfig",CfnResponseHeadersPolicyResponseHeadersPolicyConfigPropertyValidator)(properties.responseHeadersPolicyConfig)),errors.wrap('supplied properties not correct for "CfnResponseHeadersPolicyProps"')}function convertCfnResponseHeadersPolicyPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResponseHeadersPolicyPropsValidator(properties).assertSuccess(),{ResponseHeadersPolicyConfig:convertCfnResponseHeadersPolicyResponseHeadersPolicyConfigPropertyToCloudFormation(properties.responseHeadersPolicyConfig)}):properties}function CfnResponseHeadersPolicyPropsFromCloudFormation(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("responseHeadersPolicyConfig","ResponseHeadersPolicyConfig",properties.ResponseHeadersPolicyConfig!=null?CfnResponseHeadersPolicyResponseHeadersPolicyConfigPropertyFromCloudFormation(properties.ResponseHeadersPolicyConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnStreamingDistribution extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnStreamingDistribution",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::StreamingDistribution";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnStreamingDistributionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnStreamingDistribution(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 isCfnStreamingDistribution(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnStreamingDistribution.CFN_RESOURCE_TYPE_NAME}_streamingDistributionConfig;tags;_tagsRaw;cfnPropertyNames={streamingDistributionConfig:"StreamingDistributionConfig",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnStreamingDistribution.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnStreamingDistributionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnStreamingDistribution),error}cdk().requireProperty(props,"streamingDistributionConfig",this),this._streamingDistributionConfig=props.streamingDistributionConfig,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::CloudFront::StreamingDistribution",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get streamingDistributionRef(){return{streamingDistributionId:this.ref}}get streamingDistributionConfig(){return this._streamingDistributionConfig}set streamingDistributionConfig(value){cdk().traceProperty(this.node,"StreamingDistributionConfig"),this._streamingDistributionConfig=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrDomainName(){return cdk().Token.asString(this.getAtt("DomainName",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{streamingDistributionConfig:this._streamingDistributionConfig,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",CfnStreamingDistribution.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnStreamingDistributionPropsToCloudFormation(props)}}exports.CfnStreamingDistribution=CfnStreamingDistribution;function CfnStreamingDistributionLoggingPropertyValidator(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("bucket",cdk().requiredValidator)(properties.bucket)),errors.collect(cdk().propertyValidator("bucket",cdk().validateString)(properties.bucket)),errors.collect(cdk().propertyValidator("enabled",cdk().requiredValidator)(properties.enabled)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("prefix",cdk().requiredValidator)(properties.prefix)),errors.collect(cdk().propertyValidator("prefix",cdk().validateString)(properties.prefix)),errors.wrap('supplied properties not correct for "LoggingProperty"')}function convertCfnStreamingDistributionLoggingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnStreamingDistributionLoggingPropertyValidator(properties).assertSuccess(),{Bucket:cdk().stringToCloudFormation(properties.bucket),Enabled:cdk().booleanToCloudFormation(properties.enabled),Prefix:cdk().stringToCloudFormation(properties.prefix)}):properties}function CfnStreamingDistributionLoggingPropertyFromCloudFormation(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("bucket","Bucket",properties.Bucket!=null?cfn_parse().FromCloudFormation.getString(properties.Bucket):void 0),ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?cfn_parse().FromCloudFormation.getString(properties.Prefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnStreamingDistributionS3OriginPropertyValidator(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("domainName",cdk().requiredValidator)(properties.domainName)),errors.collect(cdk().propertyValidator("domainName",cdk().validateString)(properties.domainName)),errors.collect(cdk().propertyValidator("originAccessIdentity",cdk().requiredValidator)(properties.originAccessIdentity)),errors.collect(cdk().propertyValidator("originAccessIdentity",cdk().validateString)(properties.originAccessIdentity)),errors.wrap('supplied properties not correct for "S3OriginProperty"')}function convertCfnStreamingDistributionS3OriginPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnStreamingDistributionS3OriginPropertyValidator(properties).assertSuccess(),{DomainName:cdk().stringToCloudFormation(properties.domainName),OriginAccessIdentity:cdk().stringToCloudFormation(properties.originAccessIdentity)}):properties}function CfnStreamingDistributionS3OriginPropertyFromCloudFormation(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("domainName","DomainName",properties.DomainName!=null?cfn_parse().FromCloudFormation.getString(properties.DomainName):void 0),ret.addPropertyResult("originAccessIdentity","OriginAccessIdentity",properties.OriginAccessIdentity!=null?cfn_parse().FromCloudFormation.getString(properties.OriginAccessIdentity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnStreamingDistributionTrustedSignersPropertyValidator(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("awsAccountNumbers",cdk().listValidator(cdk().validateString))(properties.awsAccountNumbers)),errors.collect(cdk().propertyValidator("enabled",cdk().requiredValidator)(properties.enabled)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "TrustedSignersProperty"')}function convertCfnStreamingDistributionTrustedSignersPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnStreamingDistributionTrustedSignersPropertyValidator(properties).assertSuccess(),{AwsAccountNumbers:cdk().listMapper(cdk().stringToCloudFormation)(properties.awsAccountNumbers),Enabled:cdk().booleanToCloudFormation(properties.enabled)}):properties}function CfnStreamingDistributionTrustedSignersPropertyFromCloudFormation(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("awsAccountNumbers","AwsAccountNumbers",properties.AwsAccountNumbers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AwsAccountNumbers):void 0),ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnStreamingDistributionStreamingDistributionConfigPropertyValidator(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("aliases",cdk().listValidator(cdk().validateString))(properties.aliases)),errors.collect(cdk().propertyValidator("comment",cdk().requiredValidator)(properties.comment)),errors.collect(cdk().propertyValidator("comment",cdk().validateString)(properties.comment)),errors.collect(cdk().propertyValidator("enabled",cdk().requiredValidator)(properties.enabled)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("logging",CfnStreamingDistributionLoggingPropertyValidator)(properties.logging)),errors.collect(cdk().propertyValidator("priceClass",cdk().validateString)(properties.priceClass)),errors.collect(cdk().propertyValidator("s3Origin",cdk().requiredValidator)(properties.s3Origin)),errors.collect(cdk().propertyValidator("s3Origin",CfnStreamingDistributionS3OriginPropertyValidator)(properties.s3Origin)),errors.collect(cdk().propertyValidator("trustedSigners",cdk().requiredValidator)(properties.trustedSigners)),errors.collect(cdk().propertyValidator("trustedSigners",CfnStreamingDistributionTrustedSignersPropertyValidator)(properties.trustedSigners)),errors.wrap('supplied properties not correct for "StreamingDistributionConfigProperty"')}function convertCfnStreamingDistributionStreamingDistributionConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnStreamingDistributionStreamingDistributionConfigPropertyValidator(properties).assertSuccess(),{Aliases:cdk().listMapper(cdk().stringToCloudFormation)(properties.aliases),Comment:cdk().stringToCloudFormation(properties.comment),Enabled:cdk().booleanToCloudFormation(properties.enabled),Logging:convertCfnStreamingDistributionLoggingPropertyToCloudFormation(properties.logging),PriceClass:cdk().stringToCloudFormation(properties.priceClass),S3Origin:convertCfnStreamingDistributionS3OriginPropertyToCloudFormation(properties.s3Origin),TrustedSigners:convertCfnStreamingDistributionTrustedSignersPropertyToCloudFormation(properties.trustedSigners)}):properties}function CfnStreamingDistributionStreamingDistributionConfigPropertyFromCloudFormation(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("aliases","Aliases",properties.Aliases!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Aliases):void 0),ret.addPropertyResult("comment","Comment",properties.Comment!=null?cfn_parse().FromCloudFormation.getString(properties.Comment):void 0),ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("logging","Logging",properties.Logging!=null?CfnStreamingDistributionLoggingPropertyFromCloudFormation(properties.Logging):void 0),ret.addPropertyResult("priceClass","PriceClass",properties.PriceClass!=null?cfn_parse().FromCloudFormation.getString(properties.PriceClass):void 0),ret.addPropertyResult("s3Origin","S3Origin",properties.S3Origin!=null?CfnStreamingDistributionS3OriginPropertyFromCloudFormation(properties.S3Origin):void 0),ret.addPropertyResult("trustedSigners","TrustedSigners",properties.TrustedSigners!=null?CfnStreamingDistributionTrustedSignersPropertyFromCloudFormation(properties.TrustedSigners):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnStreamingDistributionPropsValidator(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("streamingDistributionConfig",cdk().requiredValidator)(properties.streamingDistributionConfig)),errors.collect(cdk().propertyValidator("streamingDistributionConfig",CfnStreamingDistributionStreamingDistributionConfigPropertyValidator)(properties.streamingDistributionConfig)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnStreamingDistributionProps"')}function convertCfnStreamingDistributionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnStreamingDistributionPropsValidator(properties).assertSuccess(),{StreamingDistributionConfig:convertCfnStreamingDistributionStreamingDistributionConfigPropertyToCloudFormation(properties.streamingDistributionConfig),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnStreamingDistributionPropsFromCloudFormation(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("streamingDistributionConfig","StreamingDistributionConfig",properties.StreamingDistributionConfig!=null?CfnStreamingDistributionStreamingDistributionConfigPropertyFromCloudFormation(properties.StreamingDistributionConfig):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 CfnAnycastIpList extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnAnycastIpList",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::AnycastIpList";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnAnycastIpListPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnAnycastIpList(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 isCfnAnycastIpList(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnAnycastIpList.CFN_RESOURCE_TYPE_NAME}static arnForAnycastIpList(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudfront_IAnycastIpListRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForAnycastIpList),error}return new(cfn_parse()).TemplateString("arn:${Partition}:cloudfront::${Account}:anycast-ip-list/${Id}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,Id:resource.anycastIpListRef.anycastIpListId})}cdkTagManager;_ipAddressType;_ipamCidrConfigs;_ipCount;_name;_tags;cfnPropertyNames={tags:"Tags",ipAddressType:"IpAddressType",ipamCidrConfigs:"IpamCidrConfigs",ipCount:"IpCount",name:"Name"};constructor(scope,id,props){super(scope,id,{type:CfnAnycastIpList.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnAnycastIpListProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnAnycastIpList),error}cdk().requireProperty(props,"ipCount",this),cdk().requireProperty(props,"name",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::CloudFront::AnycastIpList",void 0,{tagPropertyName:"tags"}),this._ipAddressType=props.ipAddressType,this._ipamCidrConfigs=props.ipamCidrConfigs,this._ipCount=props.ipCount,this._name=props.name,this._tags=props.tags}get anycastIpListRef(){return{anycastIpListId:this.ref}}get ipAddressType(){return this._ipAddressType}set ipAddressType(value){cdk().traceProperty(this.node,"IpAddressType"),this._ipAddressType=value}get ipamCidrConfigs(){return this._ipamCidrConfigs}set ipamCidrConfigs(value){cdk().traceProperty(this.node,"IpamCidrConfigs"),this._ipamCidrConfigs=value}get ipCount(){return this._ipCount}set ipCount(value){cdk().traceProperty(this.node,"IpCount"),this._ipCount=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrAnycastIpList(){return this.getAtt("AnycastIpList")}get attrETag(){return cdk().Token.asString(this.getAtt("ETag",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrIpamCidrConfigResults(){return this.getAtt("IpamCidrConfigResults")}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),ipAddressType:this._ipAddressType,ipamCidrConfigs:this._ipamCidrConfigs,ipCount:this._ipCount,name:this._name}}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",CfnAnycastIpList.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnAnycastIpListPropsToCloudFormation(props)}}exports.CfnAnycastIpList=CfnAnycastIpList;function CfnAnycastIpListIpamCidrConfigPropertyValidator(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("cidr",cdk().requiredValidator)(properties.cidr)),errors.collect(cdk().propertyValidator("cidr",cdk().validateString)(properties.cidr)),errors.collect(cdk().propertyValidator("ipamPoolArn",cdk().requiredValidator)(properties.ipamPoolArn)),errors.collect(cdk().propertyValidator("ipamPoolArn",cdk().validateString)(properties.ipamPoolArn)),errors.wrap('supplied properties not correct for "IpamCidrConfigProperty"')}function convertCfnAnycastIpListIpamCidrConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAnycastIpListIpamCidrConfigPropertyValidator(properties).assertSuccess(),{Cidr:cdk().stringToCloudFormation(properties.cidr),IpamPoolArn:cdk().stringToCloudFormation(properties.ipamPoolArn)}):properties}function CfnAnycastIpListIpamCidrConfigPropertyFromCloudFormation(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("cidr","Cidr",properties.Cidr!=null?cfn_parse().FromCloudFormation.getString(properties.Cidr):void 0),ret.addPropertyResult("ipamPoolArn","IpamPoolArn",properties.IpamPoolArn!=null?cfn_parse().FromCloudFormation.getString(properties.IpamPoolArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAnycastIpListTagsPropertyValidator(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("items",cdk().listValidator(cdk().validateCfnTag))(properties.items)),errors.wrap('supplied properties not correct for "TagsProperty"')}function convertCfnAnycastIpListTagsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAnycastIpListTagsPropertyValidator(properties).assertSuccess(),{Items:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.items)}):properties}function CfnAnycastIpListTagsPropertyFromCloudFormation(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("items","Items",properties.Items!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Items):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAnycastIpListIpamCidrConfigResultPropertyValidator(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("anycastIp",cdk().validateString)(properties.anycastIp)),errors.collect(cdk().propertyValidator("cidr",cdk().validateString)(properties.cidr)),errors.collect(cdk().propertyValidator("ipamPoolArn",cdk().validateString)(properties.ipamPoolArn)),errors.collect(cdk().propertyValidator("status",cdk().validateString)(properties.status)),errors.wrap('supplied properties not correct for "IpamCidrConfigResultProperty"')}function convertCfnAnycastIpListIpamCidrConfigResultPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAnycastIpListIpamCidrConfigResultPropertyValidator(properties).assertSuccess(),{AnycastIp:cdk().stringToCloudFormation(properties.anycastIp),Cidr:cdk().stringToCloudFormation(properties.cidr),IpamPoolArn:cdk().stringToCloudFormation(properties.ipamPoolArn),Status:cdk().stringToCloudFormation(properties.status)}):properties}function CfnAnycastIpListIpamCidrConfigResultPropertyFromCloudFormation(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("anycastIp","AnycastIp",properties.AnycastIp!=null?cfn_parse().FromCloudFormation.getString(properties.AnycastIp):void 0),ret.addPropertyResult("cidr","Cidr",properties.Cidr!=null?cfn_parse().FromCloudFormation.getString(properties.Cidr):void 0),ret.addPropertyResult("ipamPoolArn","IpamPoolArn",properties.IpamPoolArn!=null?cfn_parse().FromCloudFormation.getString(properties.IpamPoolArn):void 0),ret.addPropertyResult("status","Status",properties.Status!=null?cfn_parse().FromCloudFormation.getString(properties.Status):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAnycastIpListAnycastIpListPropertyValidator(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("anycastIps",cdk().requiredValidator)(properties.anycastIps)),errors.collect(cdk().propertyValidator("anycastIps",cdk().listValidator(cdk().validateString))(properties.anycastIps)),errors.collect(cdk().propertyValidator("arn",cdk().requiredValidator)(properties.arn)),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("id",cdk().requiredValidator)(properties.id)),errors.collect(cdk().propertyValidator("id",cdk().validateString)(properties.id)),errors.collect(cdk().propertyValidator("ipAddressType",cdk().validateString)(properties.ipAddressType)),errors.collect(cdk().propertyValidator("ipCount",cdk().requiredValidator)(properties.ipCount)),errors.collect(cdk().propertyValidator("ipCount",cdk().validateNumber)(properties.ipCount)),errors.collect(cdk().propertyValidator("ipamCidrConfigResults",cdk().listValidator(CfnAnycastIpListIpamCidrConfigResultPropertyValidator))(properties.ipamCidrConfigResults)),errors.collect(cdk().propertyValidator("lastModifiedTime",cdk().requiredValidator)(properties.lastModifiedTime)),errors.collect(cdk().propertyValidator("lastModifiedTime",cdk().validateString)(properties.lastModifiedTime)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("status",cdk().requiredValidator)(properties.status)),errors.collect(cdk().propertyValidator("status",cdk().validateString)(properties.status)),errors.wrap('supplied properties not correct for "AnycastIpListProperty"')}function convertCfnAnycastIpListAnycastIpListPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAnycastIpListAnycastIpListPropertyValidator(properties).assertSuccess(),{AnycastIps:cdk().listMapper(cdk().stringToCloudFormation)(properties.anycastIps),Arn:cdk().stringToCloudFormation(properties.arn),Id:cdk().stringToCloudFormation(properties.id),IpAddressType:cdk().stringToCloudFormation(properties.ipAddressType),IpCount:cdk().numberToCloudFormation(properties.ipCount),IpamCidrConfigResults:cdk().listMapper(convertCfnAnycastIpListIpamCidrConfigResultPropertyToCloudFormation)(properties.ipamCidrConfigResults),LastModifiedTime:cdk().stringToCloudFormation(properties.lastModifiedTime),Name:cdk().stringToCloudFormation(properties.name),Status:cdk().stringToCloudFormation(properties.status)}):properties}function CfnAnycastIpListAnycastIpListPropertyFromCloudFormation(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("anycastIps","AnycastIps",properties.AnycastIps!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AnycastIps):void 0),ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("id","Id",properties.Id!=null?cfn_parse().FromCloudFormation.getString(properties.Id):void 0),ret.addPropertyResult("ipAddressType","IpAddressType",properties.IpAddressType!=null?cfn_parse().FromCloudFormation.getString(properties.IpAddressType):void 0),ret.addPropertyResult("ipamCidrConfigResults","IpamCidrConfigResults",properties.IpamCidrConfigResults!=null?cfn_parse().FromCloudFormation.getArray(CfnAnycastIpListIpamCidrConfigResultPropertyFromCloudFormation)(properties.IpamCidrConfigResults):void 0),ret.addPropertyResult("ipCount","IpCount",properties.IpCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.IpCount):void 0),ret.addPropertyResult("lastModifiedTime","LastModifiedTime",properties.LastModifiedTime!=null?cfn_parse().FromCloudFormation.getString(properties.LastModifiedTime):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("status","Status",properties.Status!=null?cfn_parse().FromCloudFormation.getString(properties.Status):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAnycastIpListPropsValidator(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("ipCount",cdk().requiredValidator)(properties.ipCount)),errors.collect(cdk().propertyValidator("ipCount",cdk().validateNumber)(properties.ipCount)),errors.collect(cdk().propertyValidator("ipamCidrConfigs",cdk().listValidator(CfnAnycastIpListIpamCidrConfigPropertyValidator))(properties.ipamCidrConfigs)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("tags",CfnAnycastIpListTagsPropertyValidator)(properties.tags)),errors.wrap('supplied properties not correct for "CfnAnycastIpListProps"')}function convertCfnAnycastIpListPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAnycastIpListPropsValidator(properties).assertSuccess(),{IpAddressType:cdk().stringToCloudFormation(properties.ipAddressType),IpCount:cdk().numberToCloudFormation(properties.ipCount),IpamCidrConfigs:cdk().listMapper(convertCfnAnycastIpListIpamCidrConfigPropertyToCloudFormation)(properties.ipamCidrConfigs),Name:cdk().stringToCloudFormation(properties.name),Tags:convertCfnAnycastIpListTagsPropertyToCloudFormation(properties.tags)}):properties}function CfnAnycastIpListPropsFromCloudFormation(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("ipamCidrConfigs","IpamCidrConfigs",properties.IpamCidrConfigs!=null?cfn_parse().FromCloudFormation.getArray(CfnAnycastIpListIpamCidrConfigPropertyFromCloudFormation)(properties.IpamCidrConfigs):void 0),ret.addPropertyResult("ipCount","IpCount",properties.IpCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.IpCount):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?CfnAnycastIpListTagsPropertyFromCloudFormation(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnConnectionFunction extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnConnectionFunction",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::ConnectionFunction";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnConnectionFunctionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnConnectionFunction(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 isCfnConnectionFunction(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnConnectionFunction.CFN_RESOURCE_TYPE_NAME}static arnForConnectionFunction(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudfront_IConnectionFunctionRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForConnectionFunction),error}return resource.connectionFunctionRef.connectionFunctionArn}_autoPublish;cdkTagManager;_connectionFunctionCode;_connectionFunctionConfig;_name;_tags;cfnPropertyNames={autoPublish:"AutoPublish",tags:"Tags",connectionFunctionCode:"ConnectionFunctionCode",connectionFunctionConfig:"ConnectionFunctionConfig",name:"Name"};constructor(scope,id,props){super(scope,id,{type:CfnConnectionFunction.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnConnectionFunctionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnConnectionFunction),error}cdk().requireProperty(props,"connectionFunctionCode",this),cdk().requireProperty(props,"connectionFunctionConfig",this),cdk().requireProperty(props,"name",this),this._autoPublish=props.autoPublish,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::CloudFront::ConnectionFunction",void 0,{tagPropertyName:"tags"}),this._connectionFunctionCode=props.connectionFunctionCode,this._connectionFunctionConfig=props.connectionFunctionConfig,this._name=props.name,this._tags=props.tags}get connectionFunctionRef(){return{connectionFunctionId:this.ref,connectionFunctionArn:this.attrConnectionFunctionArn}}get autoPublish(){return this._autoPublish}set autoPublish(value){cdk().traceProperty(this.node,"AutoPublish"),this._autoPublish=value}get connectionFunctionCode(){return this._connectionFunctionCode}set connectionFunctionCode(value){cdk().traceProperty(this.node,"ConnectionFunctionCode"),this._connectionFunctionCode=value}get connectionFunctionConfig(){return this._connectionFunctionConfig}set connectionFunctionConfig(value){cdk().traceProperty(this.node,"ConnectionFunctionConfig"),this._connectionFunctionConfig=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrConnectionFunctionArn(){return cdk().Token.asString(this.getAtt("ConnectionFunctionArn",cdk().ResolutionTypeHint.STRING))}get attrCreatedTime(){return cdk().Token.asString(this.getAtt("CreatedTime",cdk().ResolutionTypeHint.STRING))}get attrETag(){return cdk().Token.asString(this.getAtt("ETag",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrLastModifiedTime(){return cdk().Token.asString(this.getAtt("LastModifiedTime",cdk().ResolutionTypeHint.STRING))}get attrStage(){return cdk().Token.asString(this.getAtt("Stage",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{autoPublish:this._autoPublish,tags:this.cdkTagManager.renderTags(this._tags),connectionFunctionCode:this._connectionFunctionCode,connectionFunctionConfig:this._connectionFunctionConfig,name:this._name}}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",CfnConnectionFunction.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnConnectionFunctionPropsToCloudFormation(props)}}exports.CfnConnectionFunction=CfnConnectionFunction;function CfnConnectionFunctionKeyValueStoreAssociationPropertyValidator(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("keyValueStoreArn",cdk().requiredValidator)(properties.keyValueStoreArn)),errors.collect(cdk().propertyValidator("keyValueStoreArn",cdk().validateString)(properties.keyValueStoreArn)),errors.wrap('supplied properties not correct for "KeyValueStoreAssociationProperty"')}function convertCfnConnectionFunctionKeyValueStoreAssociationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnConnectionFunctionKeyValueStoreAssociationPropertyValidator(properties).assertSuccess(),{KeyValueStoreARN:cdk().stringToCloudFormation(properties.keyValueStoreArn)}):properties}function CfnConnectionFunctionKeyValueStoreAssociationPropertyFromCloudFormation(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("keyValueStoreArn","KeyValueStoreARN",properties.KeyValueStoreARN!=null?cfn_parse().FromCloudFormation.getString(properties.KeyValueStoreARN):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnConnectionFunctionConnectionFunctionConfigPropertyValidator(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("comment",cdk().requiredValidator)(properties.comment)),errors.collect(cdk().propertyValidator("comment",cdk().validateString)(properties.comment)),errors.collect(cdk().propertyValidator("keyValueStoreAssociations",cdk().listValidator(CfnConnectionFunctionKeyValueStoreAssociationPropertyValidator))(properties.keyValueStoreAssociations)),errors.collect(cdk().propertyValidator("runtime",cdk().requiredValidator)(properties.runtime)),errors.collect(cdk().propertyValidator("runtime",cdk().validateString)(properties.runtime)),errors.wrap('supplied properties not correct for "ConnectionFunctionConfigProperty"')}function convertCfnConnectionFunctionConnectionFunctionConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnConnectionFunctionConnectionFunctionConfigPropertyValidator(properties).assertSuccess(),{Comment:cdk().stringToCloudFormation(properties.comment),KeyValueStoreAssociations:cdk().listMapper(convertCfnConnectionFunctionKeyValueStoreAssociationPropertyToCloudFormation)(properties.keyValueStoreAssociations),Runtime:cdk().stringToCloudFormation(properties.runtime)}):properties}function CfnConnectionFunctionConnectionFunctionConfigPropertyFromCloudFormation(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("comment","Comment",properties.Comment!=null?cfn_parse().FromCloudFormation.getString(properties.Comment):void 0),ret.addPropertyResult("keyValueStoreAssociations","KeyValueStoreAssociations",properties.KeyValueStoreAssociations!=null?cfn_parse().FromCloudFormation.getArray(CfnConnectionFunctionKeyValueStoreAssociationPropertyFromCloudFormation)(properties.KeyValueStoreAssociations):void 0),ret.addPropertyResult("runtime","Runtime",properties.Runtime!=null?cfn_parse().FromCloudFormation.getString(properties.Runtime):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnConnectionFunctionPropsValidator(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("autoPublish",cdk().validateBoolean)(properties.autoPublish)),errors.collect(cdk().propertyValidator("connectionFunctionCode",cdk().requiredValidator)(properties.connectionFunctionCode)),errors.collect(cdk().propertyValidator("connectionFunctionCode",cdk().validateString)(properties.connectionFunctionCode)),errors.collect(cdk().propertyValidator("connectionFunctionConfig",cdk().requiredValidator)(properties.connectionFunctionConfig)),errors.collect(cdk().propertyValidator("connectionFunctionConfig",CfnConnectionFunctionConnectionFunctionConfigPropertyValidator)(properties.connectionFunctionConfig)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnConnectionFunctionProps"')}function convertCfnConnectionFunctionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnConnectionFunctionPropsValidator(properties).assertSuccess(),{AutoPublish:cdk().booleanToCloudFormation(properties.autoPublish),ConnectionFunctionCode:cdk().stringToCloudFormation(properties.connectionFunctionCode),ConnectionFunctionConfig:convertCfnConnectionFunctionConnectionFunctionConfigPropertyToCloudFormation(properties.connectionFunctionConfig),Name:cdk().stringToCloudFormation(properties.name),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnConnectionFunctionPropsFromCloudFormation(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("autoPublish","AutoPublish",properties.AutoPublish!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AutoPublish):void 0),ret.addPropertyResult("connectionFunctionCode","ConnectionFunctionCode",properties.ConnectionFunctionCode!=null?cfn_parse().FromCloudFormation.getString(properties.ConnectionFunctionCode):void 0),ret.addPropertyResult("connectionFunctionConfig","ConnectionFunctionConfig",properties.ConnectionFunctionConfig!=null?CfnConnectionFunctionConnectionFunctionConfigPropertyFromCloudFormation(properties.ConnectionFunctionConfig):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):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 CfnConnectionGroup extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnConnectionGroup",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::ConnectionGroup";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnConnectionGroupPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnConnectionGroup(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 isCfnConnectionGroup(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnConnectionGroup.CFN_RESOURCE_TYPE_NAME}static arnForConnectionGroup(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudfront_IConnectionGroupRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForConnectionGroup),error}return resource.connectionGroupRef.connectionGroupArn}_anycastIpListId;cdkTagManager;_enabled;_ipv6Enabled;_name;_tags;cfnPropertyNames={anycastIpListId:"AnycastIpListId",tags:"Tags",enabled:"Enabled",ipv6Enabled:"Ipv6Enabled",name:"Name"};constructor(scope,id,props){super(scope,id,{type:CfnConnectionGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnConnectionGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnConnectionGroup),error}cdk().requireProperty(props,"name",this),this._anycastIpListId=props.anycastIpListId,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::CloudFront::ConnectionGroup",void 0,{tagPropertyName:"tags"}),this._enabled=props.enabled,this._ipv6Enabled=props.ipv6Enabled,this._name=props.name,this._tags=props.tags}get connectionGroupRef(){return{connectionGroupId:this.ref,connectionGroupArn:this.attrArn}}get anycastIpListId(){return this._anycastIpListId}set anycastIpListId(value){cdk().traceProperty(this.node,"AnycastIpListId"),this._anycastIpListId=value}get enabled(){return this._enabled}set enabled(value){cdk().traceProperty(this.node,"Enabled"),this._enabled=value}get ipv6Enabled(){return this._ipv6Enabled}set ipv6Enabled(value){cdk().traceProperty(this.node,"Ipv6Enabled"),this._ipv6Enabled=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrCreatedTime(){return cdk().Token.asString(this.getAtt("CreatedTime",cdk().ResolutionTypeHint.STRING))}get attrETag(){return cdk().Token.asString(this.getAtt("ETag",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrIsDefault(){return this.getAtt("IsDefault")}get attrLastModifiedTime(){return cdk().Token.asString(this.getAtt("LastModifiedTime",cdk().ResolutionTypeHint.STRING))}get attrRoutingEndpoint(){return cdk().Token.asString(this.getAtt("RoutingEndpoint",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{anycastIpListId:this._anycastIpListId,tags:this.cdkTagManager.renderTags(this._tags),enabled:this._enabled,ipv6Enabled:this._ipv6Enabled,name:this._name}}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",CfnConnectionGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnConnectionGroupPropsToCloudFormation(props)}}exports.CfnConnectionGroup=CfnConnectionGroup;function CfnConnectionGroupPropsValidator(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("anycastIpListId",cdk().validateString)(properties.anycastIpListId)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("ipv6Enabled",cdk().validateBoolean)(properties.ipv6Enabled)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnConnectionGroupProps"')}function convertCfnConnectionGroupPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnConnectionGroupPropsValidator(properties).assertSuccess(),{AnycastIpListId:cdk().stringToCloudFormation(properties.anycastIpListId),Enabled:cdk().booleanToCloudFormation(properties.enabled),Ipv6Enabled:cdk().booleanToCloudFormation(properties.ipv6Enabled),Name:cdk().stringToCloudFormation(properties.name),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnConnectionGroupPropsFromCloudFormation(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("anycastIpListId","AnycastIpListId",properties.AnycastIpListId!=null?cfn_parse().FromCloudFormation.getString(properties.AnycastIpListId):void 0),ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("ipv6Enabled","Ipv6Enabled",properties.Ipv6Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Ipv6Enabled):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):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 CfnDistributionTenant extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnDistributionTenant",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::DistributionTenant";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDistributionTenantPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDistributionTenant(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 isCfnDistributionTenant(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDistributionTenant.CFN_RESOURCE_TYPE_NAME}static arnForDistributionTenant(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudfront_IDistributionTenantRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForDistributionTenant),error}return resource.distributionTenantRef.distributionTenantArn}cdkTagManager;_connectionGroupId;_customizations;_distributionId;_domains;_enabled;_managedCertificateRequest;_name;_parameters;_tags;cfnPropertyNames={tags:"Tags",connectionGroupId:"ConnectionGroupId",customizations:"Customizations",distributionId:"DistributionId",domains:"Domains",enabled:"Enabled",managedCertificateRequest:"ManagedCertificateRequest",name:"Name",parameters:"Parameters"};constructor(scope,id,props){super(scope,id,{type:CfnDistributionTenant.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnDistributionTenantProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDistributionTenant),error}cdk().requireProperty(props,"distributionId",this),cdk().requireProperty(props,"domains",this),cdk().requireProperty(props,"name",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::CloudFront::DistributionTenant",void 0,{tagPropertyName:"tags"}),this._connectionGroupId=props.connectionGroupId,this._customizations=props.customizations,this._distributionId=props.distributionId,this._domains=props.domains,this._enabled=props.enabled,this._managedCertificateRequest=props.managedCertificateRequest,this._name=props.name,this._parameters=props.parameters,this._tags=props.tags}get distributionTenantRef(){return{distributionTenantId:this.ref,distributionTenantArn:this.attrArn}}get connectionGroupId(){return this._connectionGroupId}set connectionGroupId(value){cdk().traceProperty(this.node,"ConnectionGroupId"),this._connectionGroupId=value}get customizations(){return this._customizations}set customizations(value){cdk().traceProperty(this.node,"Customizations"),this._customizations=value}get distributionId(){return this._distributionId}set distributionId(value){cdk().traceProperty(this.node,"DistributionId"),this._distributionId=value}get domains(){return this._domains}set domains(value){cdk().traceProperty(this.node,"Domains"),this._domains=value}get enabled(){return this._enabled}set enabled(value){cdk().traceProperty(this.node,"Enabled"),this._enabled=value}get managedCertificateRequest(){return this._managedCertificateRequest}set managedCertificateRequest(value){cdk().traceProperty(this.node,"ManagedCertificateRequest"),this._managedCertificateRequest=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get parameters(){return this._parameters}set parameters(value){cdk().traceProperty(this.node,"Parameters"),this._parameters=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrCreatedTime(){return cdk().Token.asString(this.getAtt("CreatedTime",cdk().ResolutionTypeHint.STRING))}get attrDomainResults(){return this.getAtt("DomainResults")}get attrETag(){return cdk().Token.asString(this.getAtt("ETag",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrLastModifiedTime(){return cdk().Token.asString(this.getAtt("LastModifiedTime",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),connectionGroupId:this._connectionGroupId,customizations:this._customizations,distributionId:this._distributionId,domains:this._domains,enabled:this._enabled,managedCertificateRequest:this._managedCertificateRequest,name:this._name,parameters:this._parameters}}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",CfnDistributionTenant.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDistributionTenantPropsToCloudFormation(props)}}exports.CfnDistributionTenant=CfnDistributionTenant;function CfnDistributionTenantWebAclCustomizationPropertyValidator(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.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.wrap('supplied properties not correct for "WebAclCustomizationProperty"')}function convertCfnDistributionTenantWebAclCustomizationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionTenantWebAclCustomizationPropertyValidator(properties).assertSuccess(),{Action:cdk().stringToCloudFormation(properties.action),Arn:cdk().stringToCloudFormation(properties.arn)}):properties}function CfnDistributionTenantWebAclCustomizationPropertyFromCloudFormation(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("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionTenantCertificatePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.wrap('supplied properties not correct for "CertificateProperty"')}function convertCfnDistributionTenantCertificatePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionTenantCertificatePropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn)}):properties}function CfnDistributionTenantCertificatePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionTenantGeoRestrictionCustomizationPropertyValidator(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("locations",cdk().listValidator(cdk().validateString))(properties.locations)),errors.collect(cdk().propertyValidator("restrictionType",cdk().validateString)(properties.restrictionType)),errors.wrap('supplied properties not correct for "GeoRestrictionCustomizationProperty"')}function convertCfnDistributionTenantGeoRestrictionCustomizationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionTenantGeoRestrictionCustomizationPropertyValidator(properties).assertSuccess(),{Locations:cdk().listMapper(cdk().stringToCloudFormation)(properties.locations),RestrictionType:cdk().stringToCloudFormation(properties.restrictionType)}):properties}function CfnDistributionTenantGeoRestrictionCustomizationPropertyFromCloudFormation(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("locations","Locations",properties.Locations!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Locations):void 0),ret.addPropertyResult("restrictionType","RestrictionType",properties.RestrictionType!=null?cfn_parse().FromCloudFormation.getString(properties.RestrictionType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionTenantCustomizationsPropertyValidator(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("certificate",CfnDistributionTenantCertificatePropertyValidator)(properties.certificate)),errors.collect(cdk().propertyValidator("geoRestrictions",CfnDistributionTenantGeoRestrictionCustomizationPropertyValidator)(properties.geoRestrictions)),errors.collect(cdk().propertyValidator("webAcl",CfnDistributionTenantWebAclCustomizationPropertyValidator)(properties.webAcl)),errors.wrap('supplied properties not correct for "CustomizationsProperty"')}function convertCfnDistributionTenantCustomizationsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionTenantCustomizationsPropertyValidator(properties).assertSuccess(),{Certificate:convertCfnDistributionTenantCertificatePropertyToCloudFormation(properties.certificate),GeoRestrictions:convertCfnDistributionTenantGeoRestrictionCustomizationPropertyToCloudFormation(properties.geoRestrictions),WebAcl:convertCfnDistributionTenantWebAclCustomizationPropertyToCloudFormation(properties.webAcl)}):properties}function CfnDistributionTenantCustomizationsPropertyFromCloudFormation(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("certificate","Certificate",properties.Certificate!=null?CfnDistributionTenantCertificatePropertyFromCloudFormation(properties.Certificate):void 0),ret.addPropertyResult("geoRestrictions","GeoRestrictions",properties.GeoRestrictions!=null?CfnDistributionTenantGeoRestrictionCustomizationPropertyFromCloudFormation(properties.GeoRestrictions):void 0),ret.addPropertyResult("webAcl","WebAcl",properties.WebAcl!=null?CfnDistributionTenantWebAclCustomizationPropertyFromCloudFormation(properties.WebAcl):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionTenantParameterPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "ParameterProperty"')}function convertCfnDistributionTenantParameterPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionTenantParameterPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnDistributionTenantParameterPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionTenantManagedCertificateRequestPropertyValidator(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("certificateTransparencyLoggingPreference",cdk().validateString)(properties.certificateTransparencyLoggingPreference)),errors.collect(cdk().propertyValidator("primaryDomainName",cdk().validateString)(properties.primaryDomainName)),errors.collect(cdk().propertyValidator("validationTokenHost",cdk().validateString)(properties.validationTokenHost)),errors.wrap('supplied properties not correct for "ManagedCertificateRequestProperty"')}function convertCfnDistributionTenantManagedCertificateRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionTenantManagedCertificateRequestPropertyValidator(properties).assertSuccess(),{CertificateTransparencyLoggingPreference:cdk().stringToCloudFormation(properties.certificateTransparencyLoggingPreference),PrimaryDomainName:cdk().stringToCloudFormation(properties.primaryDomainName),ValidationTokenHost:cdk().stringToCloudFormation(properties.validationTokenHost)}):properties}function CfnDistributionTenantManagedCertificateRequestPropertyFromCloudFormation(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("certificateTransparencyLoggingPreference","CertificateTransparencyLoggingPreference",properties.CertificateTransparencyLoggingPreference!=null?cfn_parse().FromCloudFormation.getString(properties.CertificateTransparencyLoggingPreference):void 0),ret.addPropertyResult("primaryDomainName","PrimaryDomainName",properties.PrimaryDomainName!=null?cfn_parse().FromCloudFormation.getString(properties.PrimaryDomainName):void 0),ret.addPropertyResult("validationTokenHost","ValidationTokenHost",properties.ValidationTokenHost!=null?cfn_parse().FromCloudFormation.getString(properties.ValidationTokenHost):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionTenantDomainResultPropertyValidator(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("domain",cdk().validateString)(properties.domain)),errors.collect(cdk().propertyValidator("status",cdk().validateString)(properties.status)),errors.wrap('supplied properties not correct for "DomainResultProperty"')}function convertCfnDistributionTenantDomainResultPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionTenantDomainResultPropertyValidator(properties).assertSuccess(),{Domain:cdk().stringToCloudFormation(properties.domain),Status:cdk().stringToCloudFormation(properties.status)}):properties}function CfnDistributionTenantDomainResultPropertyFromCloudFormation(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("domain","Domain",properties.Domain!=null?cfn_parse().FromCloudFormation.getString(properties.Domain):void 0),ret.addPropertyResult("status","Status",properties.Status!=null?cfn_parse().FromCloudFormation.getString(properties.Status):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionTenantPropsValidator(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("connectionGroupId",cdk().validateString)(properties.connectionGroupId)),errors.collect(cdk().propertyValidator("customizations",CfnDistributionTenantCustomizationsPropertyValidator)(properties.customizations)),errors.collect(cdk().propertyValidator("distributionId",cdk().requiredValidator)(properties.distributionId)),errors.collect(cdk().propertyValidator("distributionId",cdk().validateString)(properties.distributionId)),errors.collect(cdk().propertyValidator("domains",cdk().requiredValidator)(properties.domains)),errors.collect(cdk().propertyValidator("domains",cdk().listValidator(cdk().validateString))(properties.domains)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("managedCertificateRequest",CfnDistributionTenantManagedCertificateRequestPropertyValidator)(properties.managedCertificateRequest)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("parameters",cdk().listValidator(CfnDistributionTenantParameterPropertyValidator))(properties.parameters)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnDistributionTenantProps"')}function convertCfnDistributionTenantPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionTenantPropsValidator(properties).assertSuccess(),{ConnectionGroupId:cdk().stringToCloudFormation(properties.connectionGroupId),Customizations:convertCfnDistributionTenantCustomizationsPropertyToCloudFormation(properties.customizations),DistributionId:cdk().stringToCloudFormation(properties.distributionId),Domains:cdk().listMapper(cdk().stringToCloudFormation)(properties.domains),Enabled:cdk().booleanToCloudFormation(properties.enabled),ManagedCertificateRequest:convertCfnDistributionTenantManagedCertificateRequestPropertyToCloudFormation(properties.managedCertificateRequest),Name:cdk().stringToCloudFormation(properties.name),Parameters:cdk().listMapper(convertCfnDistributionTenantParameterPropertyToCloudFormation)(properties.parameters),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnDistributionTenantPropsFromCloudFormation(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("connectionGroupId","ConnectionGroupId",properties.ConnectionGroupId!=null?cfn_parse().FromCloudFormation.getString(properties.ConnectionGroupId):void 0),ret.addPropertyResult("customizations","Customizations",properties.Customizations!=null?CfnDistributionTenantCustomizationsPropertyFromCloudFormation(properties.Customizations):void 0),ret.addPropertyResult("distributionId","DistributionId",properties.DistributionId!=null?cfn_parse().FromCloudFormation.getString(properties.DistributionId):void 0),ret.addPropertyResult("domains","Domains",properties.Domains!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Domains):void 0),ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("managedCertificateRequest","ManagedCertificateRequest",properties.ManagedCertificateRequest!=null?CfnDistributionTenantManagedCertificateRequestPropertyFromCloudFormation(properties.ManagedCertificateRequest):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("parameters","Parameters",properties.Parameters!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionTenantParameterPropertyFromCloudFormation)(properties.Parameters):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 CfnKeyValueStore extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnKeyValueStore",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::KeyValueStore";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnKeyValueStorePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnKeyValueStore(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 isCfnKeyValueStore(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnKeyValueStore.CFN_RESOURCE_TYPE_NAME}static arnForKeyValueStore(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudfront_IKeyValueStoreRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForKeyValueStore),error}return resource.keyValueStoreRef.keyValueStoreArn}cdkTagManager;_comment;_importSource;_name;_tags;cfnPropertyNames={tags:"Tags",comment:"Comment",importSource:"ImportSource",name:"Name"};constructor(scope,id,props){super(scope,id,{type:CfnKeyValueStore.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnKeyValueStoreProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnKeyValueStore),error}cdk().requireProperty(props,"name",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::CloudFront::KeyValueStore",void 0,{tagPropertyName:"tags"}),this._comment=props.comment,this._importSource=props.importSource,this._name=props.name,this._tags=props.tags}get keyValueStoreRef(){return{keyValueStoreName:this.ref,keyValueStoreArn:this.attrArn}}get comment(){return this._comment}set comment(value){cdk().traceProperty(this.node,"Comment"),this._comment=value}get importSource(){return this._importSource}set importSource(value){cdk().traceProperty(this.node,"ImportSource"),this._importSource=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),comment:this._comment,importSource:this._importSource,name:this._name}}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",CfnKeyValueStore.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnKeyValueStorePropsToCloudFormation(props)}}exports.CfnKeyValueStore=CfnKeyValueStore;function CfnKeyValueStoreImportSourcePropertyValidator(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("sourceArn",cdk().requiredValidator)(properties.sourceArn)),errors.collect(cdk().propertyValidator("sourceArn",cdk().validateString)(properties.sourceArn)),errors.collect(cdk().propertyValidator("sourceType",cdk().requiredValidator)(properties.sourceType)),errors.collect(cdk().propertyValidator("sourceType",cdk().validateString)(properties.sourceType)),errors.wrap('supplied properties not correct for "ImportSourceProperty"')}function convertCfnKeyValueStoreImportSourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnKeyValueStoreImportSourcePropertyValidator(properties).assertSuccess(),{SourceArn:cdk().stringToCloudFormation(properties.sourceArn),SourceType:cdk().stringToCloudFormation(properties.sourceType)}):properties}function CfnKeyValueStoreImportSourcePropertyFromCloudFormation(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("sourceArn","SourceArn",properties.SourceArn!=null?cfn_parse().FromCloudFormation.getString(properties.SourceArn):void 0),ret.addPropertyResult("sourceType","SourceType",properties.SourceType!=null?cfn_parse().FromCloudFormation.getString(properties.SourceType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnKeyValueStorePropsValidator(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("comment",cdk().validateString)(properties.comment)),errors.collect(cdk().propertyValidator("importSource",CfnKeyValueStoreImportSourcePropertyValidator)(properties.importSource)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnKeyValueStoreProps"')}function convertCfnKeyValueStorePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnKeyValueStorePropsValidator(properties).assertSuccess(),{Comment:cdk().stringToCloudFormation(properties.comment),ImportSource:convertCfnKeyValueStoreImportSourcePropertyToCloudFormation(properties.importSource),Name:cdk().stringToCloudFormation(properties.name),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnKeyValueStorePropsFromCloudFormation(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("comment","Comment",properties.Comment!=null?cfn_parse().FromCloudFormation.getString(properties.Comment):void 0),ret.addPropertyResult("importSource","ImportSource",properties.ImportSource!=null?CfnKeyValueStoreImportSourcePropertyFromCloudFormation(properties.ImportSource):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):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 CfnTrustStore extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnTrustStore",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::TrustStore";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTrustStorePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTrustStore(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 isCfnTrustStore(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTrustStore.CFN_RESOURCE_TYPE_NAME}static arnForTrustStore(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudfront_ITrustStoreRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTrustStore),error}return resource.trustStoreRef.trustStoreArn}_caCertificatesBundleSource;cdkTagManager;_name;_tags;cfnPropertyNames={caCertificatesBundleSource:"CaCertificatesBundleSource",tags:"Tags",name:"Name"};constructor(scope,id,props){super(scope,id,{type:CfnTrustStore.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnTrustStoreProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTrustStore),error}cdk().requireProperty(props,"name",this),this._caCertificatesBundleSource=props.caCertificatesBundleSource,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::CloudFront::TrustStore",void 0,{tagPropertyName:"tags"}),this._name=props.name,this._tags=props.tags}get trustStoreRef(){return{trustStoreId:this.ref,trustStoreArn:this.attrArn}}get caCertificatesBundleSource(){return this._caCertificatesBundleSource}set caCertificatesBundleSource(value){cdk().traceProperty(this.node,"CaCertificatesBundleSource"),this._caCertificatesBundleSource=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrETag(){return cdk().Token.asString(this.getAtt("ETag",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrLastModifiedTime(){return cdk().Token.asString(this.getAtt("LastModifiedTime",cdk().ResolutionTypeHint.STRING))}get attrNumberOfCaCertificates(){return cdk().Token.asNumber(this.getAtt("NumberOfCaCertificates",cdk().ResolutionTypeHint.NUMBER))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{caCertificatesBundleSource:this._caCertificatesBundleSource,tags:this.cdkTagManager.renderTags(this._tags),name:this._name}}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",CfnTrustStore.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTrustStorePropsToCloudFormation(props)}}exports.CfnTrustStore=CfnTrustStore;function CfnTrustStoreCaCertificatesBundleS3LocationPropertyValidator(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("bucket",cdk().requiredValidator)(properties.bucket)),errors.collect(cdk().propertyValidator("bucket",cdk().validateString)(properties.bucket)),errors.collect(cdk().propertyValidator("key",cdk().requiredValidator)(properties.key)),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("region",cdk().requiredValidator)(properties.region)),errors.collect(cdk().propertyValidator("region",cdk().validateString)(properties.region)),errors.collect(cdk().propertyValidator("version",cdk().validateString)(properties.version)),errors.wrap('supplied properties not correct for "CaCertificatesBundleS3LocationProperty"')}function convertCfnTrustStoreCaCertificatesBundleS3LocationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTrustStoreCaCertificatesBundleS3LocationPropertyValidator(properties).assertSuccess(),{Bucket:cdk().stringToCloudFormation(properties.bucket),Key:cdk().stringToCloudFormation(properties.key),Region:cdk().stringToCloudFormation(properties.region),Version:cdk().stringToCloudFormation(properties.version)}):properties}function CfnTrustStoreCaCertificatesBundleS3LocationPropertyFromCloudFormation(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("bucket","Bucket",properties.Bucket!=null?cfn_parse().FromCloudFormation.getString(properties.Bucket):void 0),ret.addPropertyResult("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("region","Region",properties.Region!=null?cfn_parse().FromCloudFormation.getString(properties.Region):void 0),ret.addPropertyResult("version","Version",properties.Version!=null?cfn_parse().FromCloudFormation.getString(properties.Version):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTrustStoreCaCertificatesBundleSourcePropertyValidator(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("caCertificatesBundleS3Location",cdk().requiredValidator)(properties.caCertificatesBundleS3Location)),errors.collect(cdk().propertyValidator("caCertificatesBundleS3Location",CfnTrustStoreCaCertificatesBundleS3LocationPropertyValidator)(properties.caCertificatesBundleS3Location)),errors.wrap('supplied properties not correct for "CaCertificatesBundleSourceProperty"')}function convertCfnTrustStoreCaCertificatesBundleSourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTrustStoreCaCertificatesBundleSourcePropertyValidator(properties).assertSuccess(),{CaCertificatesBundleS3Location:convertCfnTrustStoreCaCertificatesBundleS3LocationPropertyToCloudFormation(properties.caCertificatesBundleS3Location)}):properties}function CfnTrustStoreCaCertificatesBundleSourcePropertyFromCloudFormation(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("caCertificatesBundleS3Location","CaCertificatesBundleS3Location",properties.CaCertificatesBundleS3Location!=null?CfnTrustStoreCaCertificatesBundleS3LocationPropertyFromCloudFormation(properties.CaCertificatesBundleS3Location):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTrustStorePropsValidator(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("caCertificatesBundleSource",CfnTrustStoreCaCertificatesBundleSourcePropertyValidator)(properties.caCertificatesBundleSource)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnTrustStoreProps"')}function convertCfnTrustStorePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTrustStorePropsValidator(properties).assertSuccess(),{CaCertificatesBundleSource:convertCfnTrustStoreCaCertificatesBundleSourcePropertyToCloudFormation(properties.caCertificatesBundleSource),Name:cdk().stringToCloudFormation(properties.name),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTrustStorePropsFromCloudFormation(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("caCertificatesBundleSource","CaCertificatesBundleSource",properties.CaCertificatesBundleSource!=null?CfnTrustStoreCaCertificatesBundleSourcePropertyFromCloudFormation(properties.CaCertificatesBundleSource):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):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 CfnVpcOrigin extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudfront.CfnVpcOrigin",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudFront::VpcOrigin";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVpcOriginPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVpcOrigin(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 isCfnVpcOrigin(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVpcOrigin.CFN_RESOURCE_TYPE_NAME}static arnForVpcOrigin(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudfront_IVpcOriginRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForVpcOrigin),error}return resource.vpcOriginRef.vpcOriginArn}cdkTagManager;_tags;_vpcOriginEndpointConfig;cfnPropertyNames={tags:"Tags",vpcOriginEndpointConfig:"VpcOriginEndpointConfig"};constructor(scope,id,props){super(scope,id,{type:CfnVpcOrigin.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudfront_CfnVpcOriginProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVpcOrigin),error}cdk().requireProperty(props,"vpcOriginEndpointConfig",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::CloudFront::VpcOrigin",void 0,{tagPropertyName:"tags"}),this._tags=props.tags,this._vpcOriginEndpointConfig=props.vpcOriginEndpointConfig}get vpcOriginRef(){return{vpcOriginId:this.ref,vpcOriginArn:this.attrArn}}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get vpcOriginEndpointConfig(){return this._vpcOriginEndpointConfig}set vpcOriginEndpointConfig(value){cdk().traceProperty(this.node,"VpcOriginEndpointConfig"),this._vpcOriginEndpointConfig=value}get attrAccountId(){return cdk().Token.asString(this.getAtt("AccountId",cdk().ResolutionTypeHint.STRING))}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrCreatedTime(){return cdk().Token.asString(this.getAtt("CreatedTime",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrLastModifiedTime(){return cdk().Token.asString(this.getAtt("LastModifiedTime",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),vpcOriginEndpointConfig:this._vpcOriginEndpointConfig}}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",CfnVpcOrigin.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVpcOriginPropsToCloudFormation(props)}}exports.CfnVpcOrigin=CfnVpcOrigin;function CfnVpcOriginVpcOriginEndpointConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().requiredValidator)(properties.arn)),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("httpPort",cdk().validateNumber)(properties.httpPort)),errors.collect(cdk().propertyValidator("httpsPort",cdk().validateNumber)(properties.httpsPort)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("originProtocolPolicy",cdk().validateString)(properties.originProtocolPolicy)),errors.collect(cdk().propertyValidator("originSslProtocols",cdk().listValidator(cdk().validateString))(properties.originSslProtocols)),errors.wrap('supplied properties not correct for "VpcOriginEndpointConfigProperty"')}function convertCfnVpcOriginVpcOriginEndpointConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVpcOriginVpcOriginEndpointConfigPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),HTTPPort:cdk().numberToCloudFormation(properties.httpPort),HTTPSPort:cdk().numberToCloudFormation(properties.httpsPort),Name:cdk().stringToCloudFormation(properties.name),OriginProtocolPolicy:cdk().stringToCloudFormation(properties.originProtocolPolicy),OriginSSLProtocols:cdk().listMapper(cdk().stringToCloudFormation)(properties.originSslProtocols)}):properties}function CfnVpcOriginVpcOriginEndpointConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("httpPort","HTTPPort",properties.HTTPPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.HTTPPort):void 0),ret.addPropertyResult("httpsPort","HTTPSPort",properties.HTTPSPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.HTTPSPort):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("originProtocolPolicy","OriginProtocolPolicy",properties.OriginProtocolPolicy!=null?cfn_parse().FromCloudFormation.getString(properties.OriginProtocolPolicy):void 0),ret.addPropertyResult("originSslProtocols","OriginSSLProtocols",properties.OriginSSLProtocols!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.OriginSSLProtocols):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVpcOriginPropsValidator(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("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vpcOriginEndpointConfig",cdk().requiredValidator)(properties.vpcOriginEndpointConfig)),errors.collect(cdk().propertyValidator("vpcOriginEndpointConfig",CfnVpcOriginVpcOriginEndpointConfigPropertyValidator)(properties.vpcOriginEndpointConfig)),errors.wrap('supplied properties not correct for "CfnVpcOriginProps"')}function convertCfnVpcOriginPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVpcOriginPropsValidator(properties).assertSuccess(),{Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VpcOriginEndpointConfig:convertCfnVpcOriginVpcOriginEndpointConfigPropertyToCloudFormation(properties.vpcOriginEndpointConfig)}):properties}function CfnVpcOriginPropsFromCloudFormation(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("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpcOriginEndpointConfig","VpcOriginEndpointConfig",properties.VpcOriginEndpointConfig!=null?CfnVpcOriginVpcOriginEndpointConfigPropertyFromCloudFormation(properties.VpcOriginEndpointConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}